<?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>199986</bug_id>
          
          <creation_ts>2019-07-20 21:01:16 -0700</creation_ts>
          <short_desc>Use ObjectIdentifier&lt;FrameIdentifierType&gt; for frameIDs</short_desc>
          <delta_ts>2019-08-22 05:15:39 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>200793</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1554563</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-07-20 21:01:16 -0700</bug_when>
    <thetext>Use ObjectIdentifier&lt;FrameIdentifierType&gt; for frameIDs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554564</commentid>
    <comment_count>1</comment_count>
      <attachid>374566</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-07-20 21:05:44 -0700</bug_when>
    <thetext>Created attachment 374566
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1554565</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-07-20 21:07:33 -0700</bug_when>
    <thetext>This currently asserts when it tries to IPC FrameIdentifiers with a zero value. We should convert all those call sites to Optional&lt;FrameIdentifier&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561286</commentid>
    <comment_count>3</comment_count>
      <attachid>376295</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-14 12:43:34 -0700</bug_when>
    <thetext>Created attachment 376295
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561287</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-14 12:45:13 -0700</bug_when>
    <thetext>Attachment 376295 did not pass style-queue:


ERROR: Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:1460:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/Automation/SimulatedInputDispatcher.h:136:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/page/ChromeClient.h:490:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/page/ChromeClient.h:491:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebKit/UIProcess/Automation/WebAutomationSession.h:156:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/loader/EmptyFrameLoaderClient.h:35:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 6 in 106 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>1561294</commentid>
    <comment_count>5</comment_count>
      <attachid>376298</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-14 12:51:02 -0700</bug_when>
    <thetext>Created attachment 376298
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561295</commentid>
    <comment_count>6</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-14 12:54:43 -0700</bug_when>
    <thetext>Attachment 376298 did not pass style-queue:


ERROR: Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:1460:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/Automation/SimulatedInputDispatcher.h:136:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/page/ChromeClient.h:490:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/page/ChromeClient.h:491:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebKit/UIProcess/Automation/WebAutomationSession.h:156:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/loader/EmptyFrameLoaderClient.h:35:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 6 in 106 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>1561299</commentid>
    <comment_count>7</comment_count>
      <attachid>376301</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-14 12:59:56 -0700</bug_when>
    <thetext>Created attachment 376301
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561300</commentid>
    <comment_count>8</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-14 13:03:16 -0700</bug_when>
    <thetext>Attachment 376301 did not pass style-queue:


ERROR: Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:1460:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/Automation/SimulatedInputDispatcher.h:136:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/page/ChromeClient.h:490:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/page/ChromeClient.h:491:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebKit/UIProcess/Automation/WebAutomationSession.h:156:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/loader/EmptyFrameLoaderClient.h:35:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 6 in 107 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>1561301</commentid>
    <comment_count>9</comment_count>
      <attachid>376302</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-14 13:05:48 -0700</bug_when>
    <thetext>Created attachment 376302
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561302</commentid>
    <comment_count>10</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-14 13:08:46 -0700</bug_when>
    <thetext>Attachment 376302 did not pass style-queue:


ERROR: Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:1460:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/Automation/SimulatedInputDispatcher.h:136:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/page/ChromeClient.h:490:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/page/ChromeClient.h:491:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:46:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:47:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:52:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:54:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit/UIProcess/Automation/WebAutomationSession.h:156:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/loader/EmptyFrameLoaderClient.h:35:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 10 in 110 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>1561310</commentid>
    <comment_count>11</comment_count>
      <attachid>376303</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-14 13:16:32 -0700</bug_when>
    <thetext>Created attachment 376303
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561311</commentid>
    <comment_count>12</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-14 13:19:27 -0700</bug_when>
    <thetext>Attachment 376303 did not pass style-queue:


ERROR: Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:1460:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/Automation/SimulatedInputDispatcher.h:136:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/page/ChromeClient.h:490:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/page/ChromeClient.h:491:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:46:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:47:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:52:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:54:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit/UIProcess/Automation/WebAutomationSession.h:156:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/loader/EmptyFrameLoaderClient.h:35:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 10 in 110 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>1561318</commentid>
    <comment_count>13</comment_count>
      <attachid>376305</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-14 13:42:45 -0700</bug_when>
    <thetext>Created attachment 376305
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561320</commentid>
    <comment_count>14</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-14 13:46:11 -0700</bug_when>
    <thetext>Attachment 376305 did not pass style-queue:


ERROR: Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:1460:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/Automation/SimulatedInputDispatcher.h:136:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/page/ChromeClient.h:490:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/page/ChromeClient.h:491:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:46:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:47:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:52:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:54:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit/UIProcess/Automation/WebAutomationSession.h:156:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/API/APIFrameInfo.cpp:58:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/loader/EmptyFrameLoaderClient.h:35:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 11 in 113 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>1561325</commentid>
    <comment_count>15</comment_count>
      <attachid>376307</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-14 14:13:05 -0700</bug_when>
    <thetext>Created attachment 376307
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561326</commentid>
    <comment_count>16</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-14 14:14:33 -0700</bug_when>
    <thetext>Attachment 376307 did not pass style-queue:


ERROR: Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:1460:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/Automation/SimulatedInputDispatcher.h:136:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/page/ChromeClient.h:490:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/page/ChromeClient.h:491:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:46:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:47:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:52:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:54:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit/UIProcess/Automation/WebAutomationSession.h:156:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/API/APIFrameInfo.cpp:58:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/loader/EmptyFrameLoaderClient.h:35:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 11 in 114 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>1561332</commentid>
    <comment_count>17</comment_count>
      <attachid>376309</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-14 14:34:36 -0700</bug_when>
    <thetext>Created attachment 376309
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561334</commentid>
    <comment_count>18</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-14 14:37:56 -0700</bug_when>
    <thetext>Attachment 376309 did not pass style-queue:


ERROR: Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:1460:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/Automation/SimulatedInputDispatcher.h:136:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/page/ChromeClient.h:490:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/page/ChromeClient.h:491:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:46:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:47:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:52:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:54:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit/UIProcess/Automation/WebAutomationSession.h:156:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/API/APIFrameInfo.cpp:58:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/loader/EmptyFrameLoaderClient.h:35:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 11 in 115 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>1561350</commentid>
    <comment_count>19</comment_count>
      <attachid>376318</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-14 15:11:14 -0700</bug_when>
    <thetext>Created attachment 376318
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561354</commentid>
    <comment_count>20</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-14 15:14:15 -0700</bug_when>
    <thetext>Attachment 376318 did not pass style-queue:


ERROR: Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:1460:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/Automation/SimulatedInputDispatcher.h:136:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/page/ChromeClient.h:490:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/page/ChromeClient.h:491:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:46:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:47:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:52:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:54:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit/UIProcess/Automation/WebAutomationSession.h:156:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/API/APIFrameInfo.cpp:58:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/loader/EmptyFrameLoaderClient.h:35:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 11 in 116 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>1561358</commentid>
    <comment_count>21</comment_count>
      <attachid>376322</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-14 15:36:52 -0700</bug_when>
    <thetext>Created attachment 376322
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561361</commentid>
    <comment_count>22</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-14 15:39:42 -0700</bug_when>
    <thetext>Attachment 376322 did not pass style-queue:


ERROR: Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:1460:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/Automation/SimulatedInputDispatcher.h:136:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/page/ChromeClient.h:490:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/page/ChromeClient.h:491:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:46:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:47:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:52:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:54:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit/UIProcess/Automation/WebAutomationSession.h:156:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/API/APIFrameInfo.cpp:58:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/loader/EmptyFrameLoaderClient.h:35:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 11 in 115 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>1561365</commentid>
    <comment_count>23</comment_count>
      <attachid>376322</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-14 15:54:15 -0700</bug_when>
    <thetext>Comment on attachment 376322
Patch

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

&gt; Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.cpp:316
&gt; +// FIXME: These callbacks should take Optional&lt;WebCore::FrameIdentifier&gt;.

Will take a look into this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561373</commentid>
    <comment_count>24</comment_count>
      <attachid>376329</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-14 16:06:36 -0700</bug_when>
    <thetext>Created attachment 376329
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561374</commentid>
    <comment_count>25</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-14 16:10:28 -0700</bug_when>
    <thetext>Attachment 376329 did not pass style-queue:


ERROR: Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:1460:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/Automation/SimulatedInputDispatcher.h:136:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/page/ChromeClient.h:490:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/page/ChromeClient.h:491:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:46:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:47:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:52:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:54:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit/UIProcess/Automation/WebAutomationSession.h:156:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/API/APIFrameInfo.cpp:58:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/loader/EmptyFrameLoaderClient.h:35:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 11 in 115 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>1561413</commentid>
    <comment_count>26</comment_count>
      <attachid>376329</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-08-14 18:33:25 -0700</bug_when>
    <thetext>Comment on attachment 376329
Patch

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

&gt; Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:208
&gt; -        return 0;
&gt; +        return FrameIdentifier { }; // This is explicitly zero; see webkit.org/b/159777.

Instead of just saying webkit.org/b/159777.
Can we also add a comment about how this is a race with the main frame&apos;s creation?

Also, using 0 is quite subtle since that&apos;s also the default value of ObjectIdentifier.
I wonder if we can use some other explicit value.
e.g. max()-1 since max() is used for hash deleted value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561463</commentid>
    <comment_count>27</comment_count>
      <attachid>376353</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-14 22:01:32 -0700</bug_when>
    <thetext>Created attachment 376353
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561464</commentid>
    <comment_count>28</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-14 22:04:35 -0700</bug_when>
    <thetext>Attachment 376353 did not pass style-queue:


ERROR: Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:1460:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/Automation/SimulatedInputDispatcher.h:136:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/page/ChromeClient.h:490:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/page/ChromeClient.h:491:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:46:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:47:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:52:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:54:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit/UIProcess/Automation/WebAutomationSession.h:156:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/API/APIFrameInfo.cpp:58:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/loader/EmptyFrameLoaderClient.h:35:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 11 in 116 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>1561465</commentid>
    <comment_count>29</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-14 22:05:54 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #26)
&gt; Comment on attachment 376329 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=376329&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:208
&gt; &gt; -        return 0;
&gt; &gt; +        return FrameIdentifier { }; // This is explicitly zero; see webkit.org/b/159777.
&gt; 
&gt; Instead of just saying webkit.org/b/159777.
&gt; Can we also add a comment about how this is a race with the main frame&apos;s
&gt; creation?
&gt; 
&gt; Also, using 0 is quite subtle since that&apos;s also the default value of
&gt; ObjectIdentifier.
&gt; I wonder if we can use some other explicit value.
&gt; e.g. max()-1 since max() is used for hash deleted value.

Agreed, will look into clarifying this code before landing. Maybe returning a std::expected&lt;Optional&lt;FrameIdentifier&gt;, error_type&gt; so we can use WTF::nullopt to mean *main frame* and still deal with errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561469</commentid>
    <comment_count>30</comment_count>
      <attachid>376356</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-14 22:41:33 -0700</bug_when>
    <thetext>Created attachment 376356
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561470</commentid>
    <comment_count>31</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-14 22:43:55 -0700</bug_when>
    <thetext>Attachment 376356 did not pass style-queue:


ERROR: Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:1465:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/Automation/SimulatedInputDispatcher.h:136:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/page/ChromeClient.h:490:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/page/ChromeClient.h:491:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:46:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:47:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:52:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:54:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit/UIProcess/Automation/WebAutomationSession.h:156:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/API/APIFrameInfo.cpp:58:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/loader/EmptyFrameLoaderClient.h:35:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 11 in 118 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>1561540</commentid>
    <comment_count>32</comment_count>
      <attachid>376377</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-15 07:43:47 -0700</bug_when>
    <thetext>Created attachment 376377
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561541</commentid>
    <comment_count>33</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-08-15 07:45:42 -0700</bug_when>
    <thetext>Attachment 376377 did not pass style-queue:


ERROR: Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:1465:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/Automation/SimulatedInputDispatcher.h:136:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/page/ChromeClient.h:490:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/page/ChromeClient.h:491:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:46:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:47:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:52:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/platform/network/curl/CookieJarCurl.h:54:  The parameter name &quot;frameID&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit/UIProcess/Automation/WebAutomationSession.h:156:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit/UIProcess/API/APIFrameInfo.cpp:58:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/loader/EmptyFrameLoaderClient.h:35:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 11 in 118 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>1561555</commentid>
    <comment_count>34</comment_count>
      <attachid>376377</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-15 08:35:44 -0700</bug_when>
    <thetext>Comment on attachment 376377
Patch

Clearing flags on attachment: 376377

Committed r248713: &lt;https://trac.webkit.org/changeset/248713&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561556</commentid>
    <comment_count>35</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-15 08:35:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561558</commentid>
    <comment_count>36</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-15 08:36:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/54347183&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1561561</commentid>
    <comment_count>37</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-15 08:58:49 -0700</bug_when>
    <thetext>Follow-up WinCairo build fix: &lt;https://trac.webkit.org/changeset/248714&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374566</attachid>
            <date>2019-07-20 21:05:44 -0700</date>
            <delta_ts>2019-08-14 12:43:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199986-20190720210538.patch</filename>
            <type>text/plain</type>
            <size>428934</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3NjY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDE3ODY3MDZjMTAwMzRk
ZWYxZWU1ZGFjZWU4ODUyM2I4MmI1NjNkNC4uMWRhMDkxYWJlMDYwZjI5YjllZDlmN2Q0NDkwNzM1
MDI0MzgxOGY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE5LTA3LTIwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBPYmplY3RJ
ZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+IGZvciBmcmFtZUlEcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5OTg2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBzdHJvbmdseS10eXBl
ZCBGcmFtZUlkZW50aWZpZXIgaW5zdGVhZCBvZiB1aW50NjRfdCBhcyBmcmFtZSBpZGVudGlmaWVy
cyBldmVyeXdoZXJlLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGxvYWRlci9Db29raWVKYXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q29va2llSmFyOjpjb29raWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tpZUphcjo6
c2V0Q29va2llcyk6CisgICAgICAgIChXZWJDb3JlOjpDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tpZUphcjo6Z2V0
UmF3Q29va2llcyBjb25zdCk6CisgICAgICAgICogbG9hZGVyL0Nvb2tpZUphci5oOgorICAgICAg
ICAqIGxvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3Bw
OgorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
OjpOYXZpZ2F0aW9uQWN0aW9uOjpSZXF1ZXN0ZXI6OmZyYW1lSUQgY29uc3QpOgorICAgICAgICAq
IHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9HbG9iYWxGcmFtZUlkZW50aWZp
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Okdsb2JhbEZyYW1lSWRlbnRpZmllcjo6ZGVjb2RlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Nvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzaG91bGRCbG9ja0Nv
b2tpZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpo
YXNTdG9yYWdlQWNjZXNzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6Z3JhbnRTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW06CisgICAgICAg
IChXZWJDb3JlOjpjb29raWVzRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZXNGb3JT
ZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2ll
c0ZvckRPTSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzIGNvbnN0KToK
KwogMjAxOS0wNy0xOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmVtb3RlIFdlYkluc3BlY3RvciBzaG91bGQgZW5hYmxlIG1vY2sgY2FwdHVyZSBkZXZpY2Vz
IGluIFVJUHJvY2VzcyBpZiBkb2luZyBpdCBpbiBXZWJQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZlYzI0
OTI5NzhhZDMzYTA5NmRiMjIyYjYzYTA0YzRkMzBhMGNhZjUuLjE3NzBiY2VhN2U1Y2M1NTZiN2M1
YTUxNjMzZjA5YmY5MWRlMDc4YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQ5IEBACisyMDE5LTA3
LTIwICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFVz
ZSBPYmplY3RJZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+IGZvciBmcmFtZUlEcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5OTg2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBzdHJv
bmdseS10eXBlZCBGcmFtZUlkZW50aWZpZXIgaW5zdGVhZCBvZiB1aW50NjRfdCBhcyBmcmFtZSBp
ZGVudGlmaWVycyBldmVyeXdoZXJlLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNTdG9yYWdlQWNj
ZXNzKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFudFN0b3JhZ2VB
Y2Nlc3NJbnRlcm5hbCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpoYXNTdG9y
YWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9y
eVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKToKKyAgICAgICAg
KFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpncmFudFN0b3JhZ2VB
Y2Nlc3NJbnRlcm5hbCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpoYXNT
dG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVI
YW5kbGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsR3JhbnRTdG9yYWdlQWNjZXNzSGFu
ZGxlcik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09S
U1ByZWZsaWdodENoZWNrZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRm9yRE9NKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldENvb2tpZXNGcm9tRE9NKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OmdldFJhd0Nvb2tpZXMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Omhhc1N0b3JhZ2VBY2Nlc3MpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVxdWVzdFN0b3Jh
Z2VBY2Nlc3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0xvYWRDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpO
ZXR3b3JrTG9hZENoZWNrZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2Fk
Q2hlY2tlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVy
cy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtSZXNvdXJjZUxvYWRlcjo6cmV0cmlldmVDYWNoZUVudHJ5KToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydE5ldHdvcmtMb2FkKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpjb252ZXJ0VG9Eb3dubG9hZCk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZUJ1ZmZlcik6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbExvYWRpbmcpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlV2lsbFNlbmRSZXF1
ZXN0KToKKyAgICAgICAgKFdlYktpdDo6ZXNjYXBlSURGb3JKU09OKToKKyAgICAgICAgKFdlYktp
dDo6bG9nQmxvY2tlZENvb2tpZUluZm9ybWF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6bG9nQ29v
a2llSW5mb3JtYXRpb25JbnRlcm5hbCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJj
ZUxvYWRlcjo6bG9nQ29va2llSW5mb3JtYXRpb24pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hl
L05ldHdvcmtDYWNoZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtE
YXRhVGFza0NvY29hLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0Rh
dGFUYXNrQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjpO
ZXR3b3JrRGF0YVRhc2tDb2NvYSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0Nv
Y29hOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbik6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHk6CisgICAgICAgICogU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5jcHA6
CisgICAgICAgIChBUEk6OkZyYW1lSGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAoQVBJOjpGcmFt
ZUhhbmRsZTo6Y3JlYXRlQXV0b2NvbnZlcnRpbmcpOgorICAgICAgICAoQVBJOjpGcmFtZUhhbmRs
ZTo6RnJhbWVIYW5kbGUpOgorICAgICAgICAoQVBJOjpGcmFtZUhhbmRsZTo6ZGVjb2RlKToKKyAg
ICAgICAgKiBTaGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmg6CisgICAgICAgIChBUEk6OkZyYW1l
SGFuZGxlOjpmcmFtZUlEIGNvbnN0KToKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL19XS0Zy
YW1lSGFuZGxlLm1tOgorICAgICAgICAoLVtfV0tGcmFtZUhhbmRsZSBoYXNoXSk6CisgICAgICAg
ICgtW19XS0ZyYW1lSGFuZGxlIF9mcmFtZUlEXSk6CisgICAgICAgICgtW19XS0ZyYW1lSGFuZGxl
IGluaXRXaXRoQ29kZXI6XSk6CisgICAgICAgICgtW19XS0ZyYW1lSGFuZGxlIGVuY29kZVdpdGhD
b2RlcjpdKToKKyAgICAgICAgKiBTaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25N
YW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRpb25NYW5hZ2VyOjpkaWRS
ZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAqIFNoYXJlZC9BdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaDoKKyAgICAgICAgKiBTaGFyZWQvRnJhbWVJ
bmZvRGF0YS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lSGFuZGxlUmVmLmNw
cDoKKyAgICAgICAgKFdLRnJhbWVIYW5kbGVHZXRGcmFtZUlEKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9wcmludE9w
ZXJhdGlvbldpdGhQcmludEluZm86Zm9yRnJhbWU6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBf
Y2FuQ2hhbmdlRnJhbWVMYXlvdXQ6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tJbnNwZWN0b3IubW06CisgICAgICAgICgtW19XS0luc3BlY3RvciBzaG93TWFpblJlc291cmNl
Rm9yRnJhbWU6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5w
dXREaXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2ltdWxhdGVkSW5wdXREaXNwYXRj
aGVyOjpydW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0
RGlzcGF0Y2hlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRp
b25TZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246Ondl
YkZyYW1lSURGb3JIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lv
bjo6aGFuZGxlRm9yV2ViRnJhbWVJRCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25T
ZXNzaW9uOjpzd2l0Y2hUb0Jyb3dzaW5nQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dG9tYXRpb25TZXNzaW9uOjp3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGUpOgorICAgICAgICAo
V2ViS2l0OjpmaW5kUGFnZUZvckZyYW1lSUQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0
aW9uU2Vzc2lvbjo6cmVzcG9uZFRvUGVuZGluZ0ZyYW1lTmF2aWdhdGlvbkNhbGxiYWNrc1dpdGhU
aW1lb3V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OmV2YWx1YXRl
SmF2YVNjcmlwdEZ1bmN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Np
b246OnJlc29sdmVDaGlsZEZyYW1lSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21h
dGlvblNlc3Npb246OnJlc29sdmVQYXJlbnRGcmFtZUhhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYkF1dG9tYXRpb25TZXNzaW9uOjpjb21wdXRlRWxlbWVudExheW91dCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpzZWxlY3RPcHRpb25FbGVtZW50KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OmdldEFsbENvb2tpZXMpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6ZGVsZXRlU2luZ2xlQ29va2llKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnZpZXdwb3J0SW5WaWV3Q2VudGVy
UG9pbnRPZkVsZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6
dGFrZVNjcmVlbnNob3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9t
YXRpb25TZXNzaW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW06
CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBl
cm1pc3Npb25Gb3JPcmlnaW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XS1JlbG9hZEZy
YW1lRXJyb3JSZWNvdmVyeUF0dGVtcHRlci5tbToKKyAgICAgICAgKC1bV0tSZWxvYWRGcmFtZUVy
cm9yUmVjb3ZlcnlBdHRlbXB0ZXIgYXR0ZW1wdFJlY292ZXJ5XSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hhcmVk
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6
cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvdmlz
aW9uYWxQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94
eTo6dmFsaWRhdGVJbnB1dCk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5
OjpkaWRDcmVhdGVNYWluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQ
cm94eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlz
aW9uYWxQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAg
ICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENvbW1p
dExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5Ojpk
aWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lv
bmFsUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKToKKyAgICAgICAg
KFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25Bc3luYyk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVBy
b3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNp
b25hbFBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNp
b25hbFBhZ2VQcm94eTo6Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNlcnZp
Y2VXb3JrZXJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6
CisgICAgICAgICogVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
U3VzcGVuZGVkUGFnZVByb3h5OjpTdXNwZW5kZWRQYWdlUHJveHkpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvbkNoZWNrUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uQ2hlY2tQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eTo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OmZyYW1lSUQgY29uc3QpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5OjpyZXNldEFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5OjpzZWFyY2hGb3JHcmFudGVkUmVxdWVzdCBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp3
YXNSZXF1ZXN0RGVuaWVkKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUpOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
Z2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8pOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6d2FzR3JhbnRlZFZpZGVvT3JBdWRpb0FjY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5OjplbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5OjptYWluRnJhbWVJRCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmZyYW1lSUQgY29uc3QpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJGcmFtZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVQcm94eTo6
V2ViRnJhbWVQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViRnJhbWVQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViRnJhbWVQcm94eTo6ZnJhbWVJRCBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3VzcGVuZEN1cnJl
bnRQYWdlSWZQb3NzaWJsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29tbWl0
UHJvdmlzaW9uYWxQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpydW5KYXZh
U2NyaXB0SW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRl
TWFpbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDcmVhdGVTdWJm
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRlV2luZG93KToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpk
aWRFeHBsaWNpdE9wZW5Gb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5Ojp3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJM
Rm9yRnJhbWVTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZhaWxQ
cm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZEZhaWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlTWFpbkRvY3VtZW50KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmlyc3RMYXlvdXRGb3JGcmFtZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0
Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZERpc3BsYXlJbnNl
Y3VyZUNvbnRlbnRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlk
UnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmRpZERldGVjdFhTU0ZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpmcmFtZURpZEJlY29tZUZyYW1lU2V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJl
ZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvblN5bmMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dW5hYmxlVG9JbXBsZW1lbnRQb2xpY3kpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OndpbGxTdWJtaXRGb3JtKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFT
aGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRS
ZWRpcmVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybUNsaWVu
dFJlZGlyZWN0U2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRQZXJm
b3JtU2VydmVyUmVkaXJlY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFBl
cmZvcm1TZXJ2ZXJSZWRpcmVjdFNoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGlkVXBkYXRlSGlzdG9yeVRpdGxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpydW5KYXZhU2NyaXB0QWxlcnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJ1
bkphdmFTY3JpcHRDb25maXJtKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpydW5K
YXZhU2NyaXB0UHJvbXB0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpydW5CZWZv
cmVVbmxvYWRDb25maXJtUGFuZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJ1
bk9wZW5QYW5lbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cHJpbnRGcmFtZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZnJhbWVTZXRMYXJnZXN0RnJhbWVDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZXhjZWVk
ZWREYXRhYmFzZVF1b3RhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXF1ZXN0
U3RvcmFnZVNwYWNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjptYWtlU3RvcmFn
ZVNwYWNlUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdEdl
b2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjplbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1v
dGlvbkFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFN0b3Jh
Z2VBY2Nlc3NDb25maXJtKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c1Byb3h5Ojp3ZWJGcmFtZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94
eTo6Y2FuQ3JlYXRlRnJhbWUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJv
eHk6OmZyYW1lQ3JlYXRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlk
RGVzdHJveUZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW06CisgICAgICAgICgtW1dLQ29udGVudFZp
ZXcgX3drX3BhZ2VDb3VudEZvclByaW50Rm9ybWF0dGVyOl0pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OmV2YWx1YXRlSmF2YVNjcmlwdENhbGxiYWNrKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
QXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZGlkQ2xlYXJXaW5kb3dPYmplY3RGb3JGcmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmV2YWx1YXRlSmF2YVNj
cmlwdEZ1bmN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eTo6ZGlkRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJB
dXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhPcmRpbmFsKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJh
bWVXaXRoTm9kZUhhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9u
UHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJB
dXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlUGFyZW50RnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpmb2N1c0ZyYW1lKToKKyAgICAgICAgKFdl
YktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Y29tcHV0ZUVsZW1lbnRMYXlvdXQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpzZWxlY3RPcHRpb25F
bGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6dGFr
ZVNjcmVlbnNob3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5
OjpnZXRDb29raWVzRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vz
c2lvblByb3h5OjpkZWxldGVDb29raWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvQXV0b21hdGlv
bi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9BdXRv
bWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJh
bWUubW06CisgICAgICAgICgrW1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lIGxvb2tVcEZyYW1lRnJv
bUhhbmRsZTpdKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRl
Z3kuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2Fk
KToKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZEZyb21O
ZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5Ojpsb2Fk
UmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2Vi
UmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6
d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6OmRp
ZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVyOjpk
aWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVyOjpkaWRG
aW5pc2hSZXNvdXJjZUxvYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6
ZGlkRmFpbFJlc291cmNlTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVy
OjpkaWRCbG9ja0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UmVzb3VyY2VMb2FkZXI6OnN0b3BMb2FkaW5nQWZ0ZXJYRnJhbWVPcHRpb25zT3JDb250ZW50U2Vj
dXJpdHlQb2xpY3lEZW5pZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6
ZGlkUmVjZWl2ZVJlc291cmNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVz
b3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbjo6aW5zdGFsbFNlcnZpY2VXb3JrZXIpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViQ2hyb21lQ2xpZW50Ojpmb2N1c2VkRnJhbWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViQ2hyb21lQ2xpZW50OjpoYXNTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktp
dDo6V2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZyYW1lSUQgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxM
b2FkKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlk
RmFpbExvYWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llSmFyOjpjb29raWVzIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29va2llSmFyOjpzZXRDb29raWVzKToKKyAgICAgICAgKFdlYktp
dDo6V2ViQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6Z2V0UmF3Q29va2llcyBjb25zdCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpX
ZWJGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OmdlbmVyYXRlRnJhbWVJRCk6IERlbGV0ZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmg6CisgICAgICAgIChXZWJLaXQ6
OldlYkZyYW1lOjpmcmFtZUlEIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViSW5zcGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yOjpzaG93TWFp
blJlc291cmNlRm9yRnJhbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNw
ZWN0b3IuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6bG9hZFVSTEluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpsb2FkRGF0YUluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzdG9w
TG9hZGluZ0ZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZVBvbGlj
eURlY2lzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y29udGludWVXaWxsU3VibWl0
Rm9ybSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJ1bkphdmFTY3JpcHRJbkZyYW1lKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0U291cmNlRm9yRnJhbWUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpnZXRNYWluUmVzb3VyY2VEYXRhT2ZGcmFtZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmdldFJlc291cmNlRGF0YUZyb21GcmFtZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OmdldFdlYkFyY2hpdmVPZkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6YWRkQ29uc29sZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZW5k
Q1NQVmlvbGF0aW9uUmVwb3J0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZW5xdWV1ZVNl
Y3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpi
ZWdpblByaW50aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9y
UHJpbnRpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmlu
dGluZ0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmF3UmVjdFRvSW1hZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmF3UGFnZXNUb1BERik6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OmRyYXdQYWdlc1RvUERGSW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmRyYXdQYWdlc0ZvclByaW50aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZnJh
bWVCZWNhbWVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpoYXNTdG9yYWdlQWNj
ZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5k
TW90aW9uQWNjZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdQREZEb2N1bWVudCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERGRG9jdW1lbnQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OndlYkZyYW1lIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
YWRkV2ViRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpyZW1vdmVXZWJGcmFt
ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisKIDIwMTktMDctMTkgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW90ZSBXZWJJbnNw
ZWN0b3Igc2hvdWxkIGVuYWJsZSBtb2NrIGNhcHR1cmUgZGV2aWNlcyBpbiBVSVByb2Nlc3MgaWYg
ZG9pbmcgaXQgaW4gV2ViUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDdl
YzY3ZGViNjc1M2IwMWZkMDQ4YTUzNWM4ZjExNDY2ODMxMjhmMjMuLmUzZjAzNzE0NmNiZTliNjE2
NmVjYzU0YThkZGRhMTA0NjJhMWYyMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAxOS0wNy0yMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFw
cGxlLmNvbT4KKworICAgICAgICBVc2UgT2JqZWN0SWRlbnRpZmllcjxGcmFtZUlkZW50aWZpZXJU
eXBlPiBmb3IgZnJhbWVJRHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5OTk4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFVzZSB0aGUgc3Ryb25nbHktdHlwZWQgRnJhbWVJZGVudGlmaWVyIGluc3RlYWQg
b2YgdWludDY0X3QgYXMgZnJhbWUgaWRlbnRpZmllcnMgZXZlcnl3aGVyZS4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAgIChXZWJGcmFtZUxvYWRl
ckNsaWVudDo6ZnJhbWVJRCBjb25zdCk6CisKIDIwMTktMDctMTggIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBVbmlmeSBidWlsZHMgaW4gV2Vi
S2l0TGVnYWN5L21hYy9ET00KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCBmYmJmYmI0ODc3N2Y1NTc3NjE2OTU0MGM1OTcxYTFjOGYx
MWM5ZWM0Li41ZTU4ODExYThhMWM4MzgxMjNkYzQwYzBjZWJhOGU2ZTc5NzM4MTk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0y
ODMsNiArMjgzLDcgQEAKIAkJMEYwM0MwNzQxODg0Njk1RTAwQTVGOENBIC8qIFN5c3RlbU1lbW9y
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYwM0Mw
NzMxODg0Njk1RTAwQTVGOENBIC8qIFN5c3RlbU1lbW9yeS5oICovOyB9OwogCQkwRjAzQzA3NTE4
ODQ4MDU1MDBBNUY4Q0EgLyogSW5zcGVjdG9yT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M1MjJENEExNUI0NzhCMjAwOUI3Qzk1IC8qIElu
c3BlY3Rvck92ZXJsYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkwRjA5OUQwOTE3Qjk2OEExMDBGRjg0QjkgLyogV2ViQ29yZVR5cGVkQXJyYXlD
b250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjA5OUQwNzE3Qjk2OEExMDBGRjg0QjkgLyogV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEYx
MTc4MTgyMkUzQzQ3RjAwOEJENTcwIC8qIEZyYW1lSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxMTc4MTYyMkUzQzQ3RTAwOEJENTcw
IC8qIEZyYW1lSWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTBGMTFBNTRGMEYzOTIzMzEwMEMzNzg4NCAvKiBSZW5kZXJTZWxlY3Rp
b25JbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjExQTU0RTBGMzkyMzMxMDBDMzc4ODQgLyogUmVuZGVyU2VsZWN0aW9uSW5mby5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMTMxNjNFMTZFRDBD
QzgwMDM1Q0MwNCAvKiBQbGF0Zm9ybUNBRmlsdGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxMzE2M0QxNkVEMENDODAwMzVDQzA0IC8qIFBsYXRm
b3JtQ0FGaWx0ZXJzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMEYxNURBOEEwRjNBQUVFNzAwMDBDRTQ3IC8qIENTU0FuaW1hdGlvbkNvbnRyb2xs
ZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjE1REE4OTBGM0FBRUU3MDAwMENFNDcgLyogQ1NTQW5pbWF0aW9uQ29udHJvbGxlclByaXZh
dGUuaCAqLzsgfTsKQEAgLTU1OTAsNiArNTU5MSw3IEBACiAJCTBGMDNDMDczMTg4NDY5NUUwMEE1
RjhDQSAvKiBTeXN0ZW1NZW1vcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3lzdGVtTWVtb3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMDk5RDA2MTdC
OTY4QTEwMEZGODRCOSAvKiBXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYwOTlEMDcxN0I5NjhBMTAwRkY4
NEI5IC8qIFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMEYxMTc4MTYyMkUzQzQ3RTAwOEJENTcwIC8qIEZyYW1lSWRlbnRp
Zmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGcmFtZUlkZW50aWZpZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxMUE1NEUwRjM5MjMzMTAwQzM3ODg0
IC8qIFJlbmRlclNlbGVjdGlvbkluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVuZGVyU2VsZWN0aW9uSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
RjEzMTYzRDE2RUQwQ0M4MDAzNUNDMDQgLyogUGxhdGZvcm1DQUZpbHRlcnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1DQUZpbHRlcnMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEYxMzE2M0YxNkVEMENERTAwMzVDQzA0IC8qIFBsYXRmb3JtQ0FG
aWx0ZXJzQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQ
bGF0Zm9ybUNBRmlsdGVyc0NvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjAyMDMsNiArMjAyMDUsNyBAQAogCQkJCTY1QkYwMjJBMDk3NDgxNjMwMEM0MzE5NiAvKiBGcmFt
ZS5oICovLAogCQkJCTk3NEE4NjIwMTRCN0FEQkIwMDNGREM3NiAvKiBGcmFtZURlc3RydWN0aW9u
T2JzZXJ2ZXIuY3BwICovLAogCQkJCTk3NEE4NjIxMTRCN0FEQkIwMDNGREM3NiAvKiBGcmFtZURl
c3RydWN0aW9uT2JzZXJ2ZXIuaCAqLywKKwkJCQkwRjExNzgxNjIyRTNDNDdFMDA4QkQ1NzAgLyog
RnJhbWVJZGVudGlmaWVyLmggKi8sCiAJCQkJQzRDRDYyOTgxODM4Mzc2NjAwN0VCQUYxIC8qIEZy
YW1lU25hcHNob3R0aW5nLmNwcCAqLywKIAkJCQlDNENENjI5OTE4MzgzNzY2MDA3RUJBRjEgLyog
RnJhbWVTbmFwc2hvdHRpbmcuaCAqLywKIAkJCQk2NUEyMTQ4MjA5N0EzRjUzMDBCOTA1MEEgLyog
RnJhbWVUcmVlLmNwcCAqLywKQEAgLTI5MjM0LDYgKzI5MjM3LDcgQEAKIAkJCQlBODUzMTIzRDEx
RDA0NzFCMDBENEQwNzcgLyogRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk2NUJGMDIyRjA5NzQ4MTYzMDBDNDMxOTYgLyogRnJhbWUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTk3NEE4NjIzMTRCN0FEQkIwMDNGREM3NiAvKiBGcmFtZURlc3RydWN0aW9uT2Jz
ZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMTE3ODE4MjJFM0M0N0YwMDhCRDU3MCAvKiBG
cmFtZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NkQzNzNDMEFEQkE1REUwMEE0
NTU0RCAvKiBGcmFtZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2RDM3M0UwQURCQTVE
RTAwQTQ1NTREIC8qIEZyYW1lTG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlEMDAw
RUJBMzExQkRBRkQ0MDBDNDc3MjYgLyogRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmNwcAppbmRleCAzM2UyNzg2MzgzNjU2
OTBkMTZkNzJiM2Q3YjViZTBiZTIwODViNmM5Li5jY2MyZTNiMDc1MjI0ZThjMTBiOGNiZmU1NWRi
MDY5Zjk2NTE1MWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmNwcApAQCAtNzEsNyAr
NzEsNyBAQCBTdHJpbmcgQ29va2llSmFyOjpjb29raWVzKERvY3VtZW50JiBkb2N1bWVudCwgY29u
c3QgVVJMJiB1cmwpIGNvbnN0CiAKICAgICBhdXRvIGluY2x1ZGVTZWN1cmVDb29raWVzID0gc2hv
dWxkSW5jbHVkZVNlY3VyZUNvb2tpZXMoZG9jdW1lbnQsIHVybCk7CiAKLSAgICBPcHRpb25hbDx1
aW50NjRfdD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQ7
CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKICAgICBpZiAoYXV0byogZnJh
bWUgPSBkb2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGZyYW1lSUQgPSBmcmFtZS0+bG9hZGVy
KCkuY2xpZW50KCkuZnJhbWVJRCgpOwpAQCAtMTA5LDcgKzEwOSw3IEBAIENvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFByb3h5IENvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHko
Y29uc3QgRG9jCiAKIHZvaWQgQ29va2llSmFyOjpzZXRDb29raWVzKERvY3VtZW50JiBkb2N1bWVu
dCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKQogewotICAgIE9w
dGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4g
ZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEOwogICAgIGlmIChh
dXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKICAgICAgICAgZnJhbWVJRCA9IGZyYW1l
LT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CkBAIC0xMzEsNyArMTMxLDcgQEAgYm9vbCBD
b29raWVKYXI6OmNvb2tpZXNFbmFibGVkKGNvbnN0IERvY3VtZW50JikgY29uc3QKICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIFNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4g
Q29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBQQUw6OlNlc3Np
b25JRCYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0
ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNl
Y3VyZUNvb2tpZXMpIGNvbnN0CitzdGQ6OnBhaXI8U3RyaW5nLCBTZWN1cmVDb29raWVzQWNjZXNz
ZWQ+IENvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgUEFMOjpT
ZXNzaW9uSUQmLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2Ft
ZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFt
ZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2ll
cyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKIHsKICAgICBpZiAoYXV0byogc2Vzc2lvbiA9
IG1fc3RvcmFnZVNlc3Npb25Qcm92aWRlci0+c3RvcmFnZVNlc3Npb24oKSkgewogICAgICAgICBz
dGQ6OnBhaXI8U3RyaW5nLCBib29sPiByZXN1bHQgPSBzZXNzaW9uLT5jb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZShmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFn
ZUlELCBpbmNsdWRlU2VjdXJlQ29va2llcyk7CkBAIC0xNDQsNyArMTQ0LDcgQEAgc3RkOjpwYWly
PFN0cmluZywgU2VjdXJlQ29va2llc0FjY2Vzc2VkPiBDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHUKIAogU3RyaW5nIENvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZp
ZWxkVmFsdWUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCkgY29uc3QKIHsKLSAg
ICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZp
ZXI+IGZyYW1lSUQ7CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKICAgICBp
ZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGZyYW1lSUQgPSBm
cmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuZnJhbWVJRCgpOwpAQCAtMTU5LDcgKzE1OSw3IEBAIFN0
cmluZyBDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKERvY3VtZW50JiBk
b2N1bWVudCwgY29uc3QgVVJMJiB1CiAKIGJvb2wgQ29va2llSmFyOjpnZXRSYXdDb29raWVzKGNv
bnN0IERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwsIFZlY3RvcjxDb29raWU+JiBj
b29raWVzKSBjb25zdAogewotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9w
dGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRp
Zmllcj4gcGFnZUlEOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsK
ICAgICAgICAgZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvQ29va2llSmFyLmgKaW5kZXggMjgxZjg0YzQ5MDA1MjY3ZWEwNTRkNTFkNzY4
YTllYjczMmNiYzIzOS4uODA4N2I4Y2Q1YjdjZjRmNTY5M2UyZjdlOTVkOGVmNmExNzk4NDZhOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21h
IG9uY2UKIAorI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlBhZ2VJZGVu
dGlmaWVyLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KQEAgLTU5LDcgKzYwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBz
ZXRDb29raWVzKERvY3VtZW50JiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJp
bmcpOwogCiAgICAgdmlydHVhbCBib29sIGNvb2tpZXNFbmFibGVkKGNvbnN0IERvY3VtZW50Jikg
Y29uc3Q7Ci0gICAgdmlydHVhbCBzdGQ6OnBhaXI8U3RyaW5nLCBTZWN1cmVDb29raWVzQWNjZXNz
ZWQ+IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwg
Y29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBP
cHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJbmNs
dWRlU2VjdXJlQ29va2llcykgY29uc3Q7CisgICAgdmlydHVhbCBzdGQ6OnBhaXI8U3RyaW5nLCBT
ZWN1cmVDb29raWVzQWNjZXNzZWQ+IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0
IFBBTDo6U2Vzc2lvbklEJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUlu
Zm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxQYWdl
SWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKICAgICB2aXJ0dWFsIGJv
b2wgZ2V0UmF3Q29va2llcyhjb25zdCBEb2N1bWVudCYsIGNvbnN0IFVSTCYsIFZlY3RvcjxDb29r
aWU+JikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBEb2N1bWVu
dCYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDFmN2EyOWM0YjMw
MWEzNjU4MjJlNDIzM2I0MTVkZDFjMDAxOTEzMmQuLmU1OWQxNzBkZjBiYTA4YTJjNGY2MDNmZGNm
YTgzNTdkZmY4OWJkYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZy
YW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVM
b2FkZXJDbGllbnQuaApAQCAtMzIsNyArMzIsNyBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBFbXB0
eUZyYW1lTG9hZGVyQ2xpZW50IDogcHVibGljIEZyYW1lTG9hZGVyQ2xpZW50IHsKIAogICAgIHZv
aWQgZnJhbWVMb2FkZXJEZXN0cm95ZWQoKSBvdmVycmlkZSB7IH0KIAotICAgIE9wdGlvbmFsPHVp
bnQ2NF90PiBmcmFtZUlEKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gV1RGOjpudWxsb3B0OyB9
CisgICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gV1RGOjpudWxsb3B0OyB9CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBh
Z2VJRCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFdURjo6bnVsbG9wdDsgfQogICAgIFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDA3NDg3NjExOGRjNjkxYWE3YzhhZGE5N2I3
OTcxMzczM2EyOGE2OTUuLmVkODQ3Y2IwNDc4NTI1ZTUyMTBmMWNjODViN2ZlYzUzY2U3MjIyZWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0yOSw2ICsy
OSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiRnJhbWVJZGVudGlmaWVyLmgiCiAj
aW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIkxheW91dE1pbGVzdG9uZS5o
IgogI2luY2x1ZGUgIkxpbmtJY29uLmgiCkBAIC0xMjgsNyArMTI5LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBtYWtlUmVwcmVzZW50YXRpb24oRG9jdW1lbnRMb2FkZXIqKSA9IDA7CiAK
ICAgICB2aXJ0dWFsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQoKSBjb25zdCA9IDA7
Ci0gICAgdmlydHVhbCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCgpIGNvbnN0ID0gMDsKKyAg
ICB2aXJ0dWFsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCgpIGNvbnN0ID0gMDsK
ICAgICB2aXJ0dWFsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0ID0gMDsKIAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
TmF2aWdhdGlvbkFjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFj
dGlvbi5jcHAKaW5kZXggNjJiYTJkZDJmNzcwYTQwNmUxNWM5MDM5NWU0MTdjNDJjMjhmNTIwZS4u
YmQ3MzhlMDg5NTdlMmZkODRkYTA1NWFiNDUzZTFhNDNlMGIyODhkYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcApAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBOYXZpZ2F0aW9uQWN0aW9uOjpSZXF1ZXN0ZXI6OlJlcXVlc3Rlcihjb25z
dCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgOiBtX3VybCB7IFVSTCB7IGRvY3VtZW50LnVybCgp
IH0gfQogICAgICwgbV9vcmlnaW4geyBtYWtlUmVmUHRyKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2lu
KCkpIH0KLSAgICAsIG1fcGFnZUlEQW5kRnJhbWVJRFBhaXIgeyBkb2N1bWVudC5mcmFtZSgpID8g
c3RkOjptYWtlX3BhaXIoZG9jdW1lbnQuZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkucGFnZUlE
KCkudmFsdWVPcihQYWdlSWRlbnRpZmllciB7IH0pLCBkb2N1bWVudC5mcmFtZSgpLT5sb2FkZXIo
KS5jbGllbnQoKS5mcmFtZUlEKCkudmFsdWVPcigwKSkgOiBzdGQ6Om1ha2VfcGFpcjxQYWdlSWRl
bnRpZmllciwgdWludDY0X3Q+KHsgfSwgMCkgfQorICAgICwgbV9wYWdlSURBbmRGcmFtZUlEUGFp
ciB7IGRvY3VtZW50LmZyYW1lKCkgPyBzdGQ6Om1ha2VfcGFpcihkb2N1bWVudC5mcmFtZSgpLT5s
b2FkZXIoKS5jbGllbnQoKS5wYWdlSUQoKS52YWx1ZU9yKFBhZ2VJZGVudGlmaWVyIHsgfSksIGRv
Y3VtZW50LmZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKS52YWx1ZU9yKEZyYW1l
SWRlbnRpZmllciB7IH0pKSA6IHN0ZDo6bWFrZV9wYWlyPFBhZ2VJZGVudGlmaWVyLCBGcmFtZUlk
ZW50aWZpZXI+KHsgfSwgeyB9KSB9CiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdh
dGlvbkFjdGlvbi5oCmluZGV4IDM1Yzk2MWFhMTU0N2I4ZWEwYzRiOTA0MDcwM2M4NWQzZWE4ZTdl
NTcuLjBhMDIxZDRmYzc5ZDk2YjNmMmE4OGJhZTQwNDU2MTkxMDRjZTkwYjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5j
bHVkZSAiQWRDbGlja0F0dHJpYnV0aW9uLmgiCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRJdGVtSWRl
bnRpZmllci5oIgorI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkZyYW1l
TG9hZGVyVHlwZXMuaCIKICNpbmNsdWRlICJMYXlvdXRQb2ludC5oIgogI2luY2x1ZGUgIlBhZ2VJ
ZGVudGlmaWVyLmgiCkBAIC02NCw3ICs2NSw3IEBAIHB1YmxpYzoKICAgICBOYXZpZ2F0aW9uQWN0
aW9uKE5hdmlnYXRpb25BY3Rpb24mJik7CiAgICAgTmF2aWdhdGlvbkFjdGlvbiYgb3BlcmF0b3I9
KE5hdmlnYXRpb25BY3Rpb24mJik7CiAKLSAgICB1c2luZyBQYWdlSURBbmRGcmFtZUlEUGFpciA9
IHN0ZDo6cGFpcjxQYWdlSWRlbnRpZmllciwgdWludDY0X3QgLyogZnJhbWVJRCAqLz47CisgICAg
dXNpbmcgUGFnZUlEQW5kRnJhbWVJRFBhaXIgPSBzdGQ6OnBhaXI8UGFnZUlkZW50aWZpZXIsIEZy
YW1lSWRlbnRpZmllcj47IC8vIEZJWE1FOiBVc2UgR2xvYmFsRnJhbWVJZGVudGlmaWVyLgogICAg
IGNsYXNzIFJlcXVlc3RlciB7CiAgICAgcHVibGljOgogICAgICAgICBSZXF1ZXN0ZXIoY29uc3Qg
RG9jdW1lbnQmKTsKQEAgLTcyLDcgKzczLDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBVUkwm
IHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9CiAgICAgICAgIGNvbnN0IFNlY3VyaXR5T3Jp
Z2luJiBzZWN1cml0eU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuICptX29yaWdpbjsgfQogICAgICAg
ICBQYWdlSWRlbnRpZmllciBwYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VJREFuZEZyYW1l
SURQYWlyLmZpcnN0OyB9Ci0gICAgICAgIHVpbnQ2NF90IGZyYW1lSUQoKSBjb25zdCB7IHJldHVy
biBtX3BhZ2VJREFuZEZyYW1lSURQYWlyLnNlY29uZDsgfQorICAgICAgICBGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUlEQW5kRnJhbWVJRFBhaXIuc2Vjb25k
OyB9CiAgICAgcHJpdmF0ZToKICAgICAgICAgVVJMIG1fdXJsOwogICAgICAgICBSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+IG1fb3JpZ2luOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
aHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXgg
MTY5ODE1YTA5ZGU1M2ZmMjNkYjNmMThlMjYxN2U4OTNmZWIzNTc1Mi4uOGQ0ODA3YWUyNzRmYzZh
NThlODVkZjkyYzI0MTFiOWE2MDI4M2JkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
CkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRGlzcGxheVJlZnJlc2hNb25pdG9yLmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnRTdG9yYWdlQWNjZXNzLmgiCiAjaW5jbHVkZSAiRm9jdXNEaXJlY3Rp
b24uaCIKKyNpbmNsdWRlICJGcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRl
ci5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5
ZXIuaCIKQEAgLTQ4Niw4ICs0ODcsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBSZWZQdHI8SWNv
bj4gY3JlYXRlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiAvKiBmaWxlbmFtZXMg
Ki8pID0gMDsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgdmly
dHVhbCB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiAvKnN1YkZyYW1l
RG9tYWluKi8sIFJlZ2lzdHJhYmxlRG9tYWluJiYgLyp0b3BGcmFtZURvbWFpbiovLCB1aW50NjRf
dCAvKmZyYW1lSUQqLywgUGFnZUlkZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21h
aW4mJiAvKnN1YkZyYW1lRG9tYWluKi8sIFJlZ2lzdHJhYmxlRG9tYWluJiYgLyp0b3BGcmFtZURv
bWFpbiovLCB1aW50NjRfdCAvKmZyYW1lSUQqLywgUGFnZUlkZW50aWZpZXIsIFdURjo6Q29tcGxl
dGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1By
b21wdFdhc1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihT
dG9yYWdlQWNjZXNzV2FzR3JhbnRlZDo6Tm8sIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bjo6
Tm8pOyB9CisgICAgdmlydHVhbCB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21h
aW4mJiAvKnN1YkZyYW1lRG9tYWluKi8sIFJlZ2lzdHJhYmxlRG9tYWluJiYgLyp0b3BGcmFtZURv
bWFpbiovLCBGcmFtZUlkZW50aWZpZXIsIFBhZ2VJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRs
ZXIoZmFsc2UpOyB9CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFJlZ2lz
dHJhYmxlRG9tYWluJiYgLypzdWJGcmFtZURvbWFpbiovLCBSZWdpc3RyYWJsZURvbWFpbiYmIC8q
dG9wRnJhbWVEb21haW4qLywgRnJhbWVJZGVudGlmaWVyLCBQYWdlSWRlbnRpZmllciwgV1RGOjpD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNj
ZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5k
bGVyKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOjpObywgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1No
b3duOjpObyk7IH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVJZGVudGlmaWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lSWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1ZDQ5NjdhYjFiNDU0
MjM1OGU4NjcyNDA1Y2I2NmI3ZDc4ZDcyMjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lSWRlbnRpZmllci5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBGcmFtZUlkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5n
IEZyYW1lSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8RnJhbWVJZGVudGlmaWVyVHlwZT47
CisKK2lubGluZSBGcmFtZUlkZW50aWZpZXIgZnJhbWVJZGVudGlmaWVyRnJvbUlEKHVpbnQ2NF90
IGZyYW1lSUQpCit7CisgICAgcmV0dXJuIG1ha2VPYmplY3RJZGVudGlmaWVyPEZyYW1lSWRlbnRp
ZmllclR5cGU+KGZyYW1lSUQpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0dsb2JhbEZyYW1lSWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9HbG9iYWxG
cmFtZUlkZW50aWZpZXIuaAppbmRleCAwZDdiM2RiZjcyZjgxZTRmZDYyYTczZmVkMjU4MWNlYWVl
MTY3YjRhLi43MDkzNDY3YjEyZjg1NjYxYThmN2ZhZGYwMmIzNTc3OTk0ZWI2YTAzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0dsb2JhbEZyYW1lSWRlbnRpZmllci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvR2xvYmFsRnJhbWVJZGVudGlmaWVyLmgKQEAgLTI1LDYgKzI1LDcg
QEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJGcmFtZUlkZW50aWZpZXIuaCIKICNpbmNs
dWRlICJQYWdlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogCkBAIC0z
Myw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIEZyYW1lIGlkZW50aWZpZXIgdGhh
dCBpcyB1bmlxdWUgYWNyb3NzIGFsbCBXZWJDb250ZW50IHByb2Nlc3Nlcy4KIHN0cnVjdCBHbG9i
YWxGcmFtZUlkZW50aWZpZXIgewogICAgIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRDsKLSAgICB1aW50
NjRfdCBmcmFtZUlEOworICAgIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEOwogCiAgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxHbG9iYWxGcmFtZUlkZW50aWZpZXI+
IGRlY29kZShEZWNvZGVyJik7CkBAIC01Myw3ICs1NCw3IEBAIE9wdGlvbmFsPEdsb2JhbEZyYW1l
SWRlbnRpZmllcj4gR2xvYmFsRnJhbWVJZGVudGlmaWVyOjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKICAgICBpZiAoIXBhZ2VJRCkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAg
IE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmll
cj4gZnJhbWVJRDsKICAgICBkZWNvZGVyID4+IGZyYW1lSUQ7CiAgICAgaWYgKCFmcmFtZUlEKQog
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9Db29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Db29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eS5o
CmluZGV4IGE2ZjgzNjY0Y2IwMTk3MjQ1YWViN2JjOGYwNDA5ZjRlYmJlYjBlYjIuLjkxNWUxMTAx
Yjk2NGRiOGQzOTczMjFjMjQxOTIyN2NjNjQzYjViMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Nvb2tpZVJlcXVlc3RIZWFkZXJGaWVs
ZFByb3h5LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQ29v
a2llSmFyLmgiCisjaW5jbHVkZSAiRnJhbWVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUlk
ZW50aWZpZXIuaCIKICNpbmNsdWRlICJTYW1lU2l0ZUluZm8uaCIKICNpbmNsdWRlIDxwYWwvU2Vz
c2lvbklELmg+CkBAIC0zOCw3ICszOSw3IEBAIHN0cnVjdCBDb29raWVSZXF1ZXN0SGVhZGVyRmll
bGRQcm94eSB7CiAgICAgVVJMIGZpcnN0UGFydHk7CiAgICAgU2FtZVNpdGVJbmZvIHNhbWVTaXRl
SW5mbzsKICAgICBVUkwgdXJsOwotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAg
IE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdlSWRl
bnRpZmllcj4gcGFnZUlEOwogICAgIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVD
b29raWVzIHsgSW5jbHVkZVNlY3VyZUNvb2tpZXM6Ok5vIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcApp
bmRleCA3YTI3ZWI1MzQwNmQ2MTkxOWI1MjAxMDAzMmI1NGFkYzE1NDgwODQ5Li5lYWE3ODMzOWE0
ZDQwMDgxNzRkMWEyYzNhZGM4MDZhMzAxNDBkMGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3BwCkBAIC02
NiwxMiArNjYsMTIgQEAgYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNob3VsZEJsb2NrVGhp
cmRQYXJ0eUNvb2tpZXMoY29uc3QgUmVnaXN0cmFibGVEb21haW4KICAgICByZXR1cm4gbV9yZWdp
c3RyYWJsZURvbWFpbnNUb0Jsb2NrQ29va2llRm9yLmNvbnRhaW5zKHJlZ2lzdHJhYmxlRG9tYWlu
KTsKIH0KIAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNob3VsZEJsb2NrQ29va2llcyhj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlE
LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEKSBjb25zdAorYm9vbCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OnNob3VsZEJsb2NrQ29va2llcyhjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+IHBhZ2VJRCkgY29uc3QKIHsKICAgICByZXR1cm4gc2hvdWxkQmxvY2tDb29raWVz
KHJlcXVlc3QuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgcmVxdWVzdC51cmwoKSwgZnJhbWVJRCwg
cGFnZUlEKTsKIH0KICAgICAKLWJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzaG91bGRCbG9j
a0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5Rm9yQ29va2llcywgY29uc3QgVVJMJiByZXNv
dXJjZSwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVy
PiBwYWdlSUQpIGNvbnN0Citib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2hvdWxkQmxvY2tD
b29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eUZvckNvb2tpZXMsIGNvbnN0IFVSTCYgcmVzb3Vy
Y2UsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRCkgY29uc3QKIHsKICAgICBSZWdpc3RyYWJsZURvbWFpbiBmaXJzdFBhcnR5
RG9tYWluIHsgZmlyc3RQYXJ0eUZvckNvb2tpZXMgfTsKICAgICBpZiAoZmlyc3RQYXJ0eURvbWFp
bi5pc0VtcHR5KCkpCkBAIC0xMTUsNyArMTE1LDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Np
b246OnJlbW92ZVByZXZhbGVudERvbWFpbnMoY29uc3QgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWkK
ICAgICAgICAgbV9yZWdpc3RyYWJsZURvbWFpbnNUb0Jsb2NrQ29va2llRm9yLnJlbW92ZShkb21h
aW4pOwogfQogCi1ib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6aGFzU3RvcmFnZUFjY2Vzcyhj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgUGFn
ZUlkZW50aWZpZXIgcGFnZUlEKSBjb25zdAorYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246Omhh
c1N0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJ
ZGVudGlmaWVyPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQpIGNvbnN0CiB7CiAgICAg
aWYgKGZyYW1lSUQpIHsKICAgICAgICAgYXV0byBmcmFtZXNHcmFudGVkSXRlcmF0b3IgPSBtX2Zy
YW1lc0dyYW50ZWRTdG9yYWdlQWNjZXNzLmZpbmQocGFnZUlEKTsKQEAgLTE0OCw3ICsxNDgsNyBA
QCBWZWN0b3I8U3RyaW5nPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldEFsbFN0b3JhZ2VBY2Nl
c3NFbnRyaWVzKCkgY29uc3QKICAgICByZXR1cm4gZW50cmllczsKIH0KICAgICAKLXZvaWQgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0
eURvbWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCkKK3ZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBQ
YWdlSWRlbnRpZmllciBwYWdlSUQpCiB7CiAgICAgaWYgKCFmcmFtZUlEKSB7CiAgICAgICAgIGlm
IChmaXJzdFBhcnR5RG9tYWluLmlzRW1wdHkoKSkKQEAgLTE3MCw3ICsxNzAsNyBAQCB2b2lkIE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiByZXNvdXJjZQogCiAgICAgYXV0byBwYWdlc0dyYW50ZWRJdGVyYXRvciA9IG1fZnJh
bWVzR3JhbnRlZFN0b3JhZ2VBY2Nlc3MuZmluZChwYWdlSUQpOwogICAgIGlmIChwYWdlc0dyYW50
ZWRJdGVyYXRvciA9PSBtX2ZyYW1lc0dyYW50ZWRTdG9yYWdlQWNjZXNzLmVuZCgpKSB7Ci0gICAg
ICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZ2lzdHJhYmxlRG9tYWluLCBEZWZhdWx0SGFzaDx1aW50
NjRfdD46Okhhc2gsIFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8dWludDY0X3Q+
PiBlbnRyeTsKKyAgICAgICAgSGFzaE1hcDxGcmFtZUlkZW50aWZpZXIsIFJlZ2lzdHJhYmxlRG9t
YWluPiBlbnRyeTsKICAgICAgICAgZW50cnkuYWRkKGZyYW1lSUQudmFsdWUoKSwgcmVzb3VyY2VE
b21haW4pOwogICAgICAgICBtX2ZyYW1lc0dyYW50ZWRTdG9yYWdlQWNjZXNzLmFkZChwYWdlSUQs
IGVudHJ5KTsKICAgICB9IGVsc2UgewpAQCAtMTgyLDcgKzE4Miw3IEBAIHZvaWQgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHJlc291cmNlCiAgICAgfQogfQogCi12b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6cmVtb3Zl
U3RvcmFnZUFjY2Vzc0ZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCkKK3ZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpyZW1vdmVTdG9yYWdlQWNjZXNzRm9y
RnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKIHsK
ICAgICBhdXRvIGl0ZXJhdGlvbiA9IG1fZnJhbWVzR3JhbnRlZFN0b3JhZ2VBY2Nlc3MuZmluZChw
YWdlSUQpOwogICAgIGlmIChpdGVyYXRpb24gPT0gbV9mcmFtZXNHcmFudGVkU3RvcmFnZUFjY2Vz
cy5lbmQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05l
dHdvcmtTdG9yYWdlU2Vzc2lvbi5oCmluZGV4IDU4ZGE4Nzg5MDdmZjc0MDI0OGMzYjE1ODc0ZDkx
MzI5NzlhOGQzMzguLjc2Njc0ZDRmMTNiMWEwZGU3N2FkNjY1OWM4ZjA5YWNkOTJmZmI3MDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3Rv
cmFnZVNlc3Npb24uaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRl
ICJDcmVkZW50aWFsU3RvcmFnZS5oIgorI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmllci5oIgogI2lu
Y2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUmVnaXN0cmFibGVEb21haW4uaCIK
ICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CkBAIC0xMjYsNyArMTI3LDcgQEAgcHVibGljOgog
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY29va2llc0VuYWJsZWQoKSBjb25zdDsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldENvb2tpZShjb25zdCBDb29raWUmKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldENvb2tpZXMoY29uc3QgVmVjdG9yPENvb2tpZT4mLCBjb25zdCBVUkwmLCBj
b25zdCBVUkwmIG1haW5Eb2N1bWVudFVSTCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRD
b29raWVzRnJvbURPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYs
IGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRl
bnRpZmllcj4sIGNvbnN0IFN0cmluZyYpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUlu
Zm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxQYWdl
SWRlbnRpZmllcj4sIGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgZGVsZXRlQ29va2llKGNvbnN0IENvb2tpZSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
ZGVsZXRlQ29va2llKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgZGVsZXRlQWxsQ29va2llcygpOwpAQCAtMTM1LDI0ICsxMzYsMjQgQEAg
cHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVsZXRlQ29va2llc0Zvckhvc3RuYW1l
cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgY29va2llSG9zdE5hbWVzLCBJbmNsdWRlSHR0cE9ubHlD
b29raWVzKTsKICAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8Q29va2llPiBnZXRBbGxDb29raWVz
KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPENvb2tpZT4gZ2V0Q29va2llcyhjb25zdCBV
UkwmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIGdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50
NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBWZWN0b3I8Q29va2llPiYp
IGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZy
YW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgVmVjdG9yPENvb2tpZT4m
KSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZsdXNoQ29va2llU3RvcmUoKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdldEhvc3RuYW1lc1dpdGhDb29raWVzKEhhc2hTZXQ8U3Ry
aW5nPiYgaG9zdG5hbWVzKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6OnBhaXI8U3RyaW5nLCBi
b29sPiBjb29raWVzRm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJ
bmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0OwotICAgIFdFQkNPUkVf
RVhQT1JUIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZh
bHVlKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJM
JiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwg
SW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6cGFp
cjxTdHJpbmcsIGJvb2w+IGNvb2tpZXNGb3JET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBP
cHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYs
IGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JU
IHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNv
bnN0IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5JikgY29uc3Q7CiAKICNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2hvdWxk
QmxvY2tDb29raWVzKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBm
cmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4pIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQ
T1JUIGJvb2wgc2hvdWxkQmxvY2tDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eUZvckNvb2tp
ZXMsIGNvbnN0IFVSTCYgcmVzb3VyY2UsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4pIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2hv
dWxkQmxvY2tDb29raWVzKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIE9wdGlvbmFsPEZyYW1lSWRl
bnRpZmllcj4sIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPikgY29uc3Q7CisgICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5Rm9yQ29v
a2llcywgY29uc3QgVVJMJiByZXNvdXJjZSwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0
aW9uYWw8UGFnZUlkZW50aWZpZXI+KSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNo
b3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXMoY29uc3QgUmVnaXN0cmFibGVEb21haW4mKSBjb25z
dDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29v
a2llc0Zvcihjb25zdCBWZWN0b3I8UmVnaXN0cmFibGVEb21haW4+Jik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyhPcHRpb25hbDxTZWNvbmRz
Pik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVQcmV2YWxlbnREb21haW5zKGNvbnN0
IFZlY3RvcjxSZWdpc3RyYWJsZURvbWFpbj4mIGRvbWFpbnMpOwotICAgIFdFQkNPUkVfRVhQT1JU
IGJvb2wgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VE
b21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIpIGNvbnN0OworICAgIFdFQkNPUkVf
RVhQT1JUIGJvb2wgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVz
b3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBP
cHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBQYWdlSWRlbnRpZmllcikgY29uc3Q7CiAgICAgV0VC
Q09SRV9FWFBPUlQgVmVjdG9yPFN0cmluZz4gZ2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoKSBj
b25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgUGFnZUlkZW50
aWZpZXIpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3Vy
Y2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRp
b25hbDxGcmFtZUlkZW50aWZpZXI+LCBQYWdlSWRlbnRpZmllcik7CisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCByZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyLCBQYWdl
SWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhclBhZ2VTcGVjaWZpY0Rh
dGFGb3JSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKFBhZ2VJZGVudGlmaWVyKTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3MoKTsKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKFNlY29uZHMpOwpA
QCAtMTg1LDcgKzE4Niw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKICAgICBPcHRpb25hbDxTZWNvbmRzPiBjbGllbnRTaWRlQ29va2llQ2FwKGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4p
IGNvbnN0OwogICAgIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+IG1fcmVnaXN0cmFibGVEb21h
aW5zVG9CbG9ja0Nvb2tpZUZvcjsKLSAgICBIYXNoTWFwPFBhZ2VJZGVudGlmaWVyLCBIYXNoTWFw
PHVpbnQ2NF90LCBSZWdpc3RyYWJsZURvbWFpbiwgRGVmYXVsdEhhc2g8dWludDY0X3Q+OjpIYXNo
LCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPHVpbnQ2NF90Pj4+IG1fZnJhbWVz
R3JhbnRlZFN0b3JhZ2VBY2Nlc3M7CisgICAgSGFzaE1hcDxQYWdlSWRlbnRpZmllciwgSGFzaE1h
cDxGcmFtZUlkZW50aWZpZXIsIFJlZ2lzdHJhYmxlRG9tYWluPj4gbV9mcmFtZXNHcmFudGVkU3Rv
cmFnZUFjY2VzczsKICAgICBIYXNoTWFwPFBhZ2VJZGVudGlmaWVyLCBIYXNoTWFwPFJlZ2lzdHJh
YmxlRG9tYWluLCBSZWdpc3RyYWJsZURvbWFpbj4+IG1fcGFnZXNHcmFudGVkU3RvcmFnZUFjY2Vz
czsKICAgICBPcHRpb25hbDxTZWNvbmRzPiBtX2NhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVz
b3VyY2VzIHsgfTsKICAgICBPcHRpb25hbDxTZWNvbmRzPiBtX2FnZUNhcEZvckNsaWVudFNpZGVD
b29raWVzIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tCmluZGV4IDg0
YjczYjgzNDRiMGNhYjVhOTA0OGI0ODVlZmIxNzZkNWQzNDA1ODEuLjg1ZjRjNjJlM2JmNzRjMGRl
NTQzNWYyZjAwYmU5ODRkODJlYWVmNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25D
b2NvYS5tbQpAQCAtMjk0LDcgKzI5NCw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gZmls
dGVyQ29va2llcyhOU0FycmF5ICp1bmZpbHRlcmVkQ29va2llcywgT3B0aW9uYWw8U2VjCiAgICAg
cmV0dXJuIGZpbHRlcmVkQ29va2llczsKIH0KIAotc3RhdGljIE5TQXJyYXkgKmNvb2tpZXNGb3JV
UkwoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwg
T3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdl
SUQpCitzdGF0aWMgTlNBcnJheSAqY29va2llc0ZvclVSTChjb25zdCBOZXR3b3JrU3RvcmFnZVNl
c3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZv
JiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+
IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQpCiB7CiAjaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBpZiAoc2Vzc2lvbi5zaG91bGRCbG9ja0Nv
b2tpZXMoZmlyc3RQYXJ0eSwgdXJsLCBmcmFtZUlELCBwYWdlSUQpKQpAQCAtMzA3LDcgKzMwNyw3
IEBAIHN0YXRpYyBOU0FycmF5ICpjb29raWVzRm9yVVJMKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmCiB9CiAKIGVudW0gSW5jbHVkZUhUVFBPbmx5T3JO
b3QgeyBEb05vdEluY2x1ZGVIVFRQT25seSwgSW5jbHVkZUhUVFBPbmx5IH07Ci1zdGF0aWMgc3Rk
OjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvclNlc3Npb24oY29uc3QgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRl
SW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVIVFRQT25seU9y
Tm90IGluY2x1ZGVIVFRQT25seSwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNv
b2tpZXMpCitzdGF0aWMgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvclNlc3Npb24o
Y29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0
aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
cGFnZUlELCBJbmNsdWRlSFRUUE9ubHlPck5vdCBpbmNsdWRlSFRUUE9ubHksIEluY2x1ZGVTZWN1
cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKQogewogICAgIEFTU0VSVChoYXNQcm9jZXNz
UHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsKIApAQCAt
MzYzLDEyICszNjMsMTIgQEAgc3RhdGljIHZvaWQgZGVsZXRlQWxsSFRUUENvb2tpZXMoQ0ZIVFRQ
Q29va2llU3RvcmFnZVJlZiBjb29raWVTdG9yYWdlKQogICAgIENGSFRUUENvb2tpZVN0b3JhZ2VE
ZWxldGVBbGxDb29raWVzKGNvb2tpZVN0b3JhZ2UpOwogfQogCi1zdGQ6OnBhaXI8U3RyaW5nLCBi
b29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNGb3JET00oY29uc3QgVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmws
IE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFn
ZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKK3N0
ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRP
TShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZv
LCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRl
U2VjdXJlQ29va2llcykgY29uc3QKIHsKICAgICByZXR1cm4gY29va2llc0ZvclNlc3Npb24oKnRo
aXMsIGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIERvTm90
SW5jbHVkZUhUVFBPbmx5LCBpbmNsdWRlU2VjdXJlQ29va2llcyk7CiB9CiAKLXN0ZDo6cGFpcjxT
dHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llUmVxdWVzdEhlYWRlckZp
ZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVT
aXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRl
U2VjdXJlQ29va2llcykgY29uc3QKK3N0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmws
IE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZp
ZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIGNvb2tpZXNGb3JTZXNzaW9uKCp0aGlzLCBmaXJzdFBhcnR5LCBz
YW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlELCBJbmNsdWRlSFRUUE9ubHksIGluY2x1
ZGVTZWN1cmVDb29raWVzKTsKIH0KQEAgLTM3OCw3ICszNzgsNyBAQCBzdGQ6OnBhaXI8U3RyaW5n
LCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZh
bHVlKGNvbgogICAgIHJldHVybiBjb29raWVzRm9yU2Vzc2lvbigqdGhpcywgaGVhZGVyRmllbGRQ
cm94eS5maXJzdFBhcnR5LCBoZWFkZXJGaWVsZFByb3h5LnNhbWVTaXRlSW5mbywgaGVhZGVyRmll
bGRQcm94eS51cmwsIGhlYWRlckZpZWxkUHJveHkuZnJhbWVJRCwgaGVhZGVyRmllbGRQcm94eS5w
YWdlSUQsIEluY2x1ZGVIVFRQT25seSwgaGVhZGVyRmllbGRQcm94eS5pbmNsdWRlU2VjdXJlQ29v
a2llcyk7CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVzRnJvbURP
TShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZv
LCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiBwYWdlSUQsIGNvbnN0IFN0cmluZyYgY29va2llU3RyKSBjb25zdAordm9p
ZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJs
LCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlm
aWVyPiBwYWdlSUQsIGNvbnN0IFN0cmluZyYgY29va2llU3RyKSBjb25zdAogewogICAgIEFTU0VS
VChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tp
ZXMpKTsKIApAQCAtNDQzLDcgKzQ0Myw3IEBAIGJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpj
b29raWVzRW5hYmxlZCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFZlY3Rv
cjxDb29raWU+JiByYXdDb29raWVzKSBjb25zdAorYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8m
IHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4g
ZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgVmVjdG9yPENvb2tpZT4m
IHJhd0Nvb2tpZXMpIGNvbnN0CiB7CiAgICAgcmF3Q29va2llcy5jbGVhcigpOwogICAgIEJFR0lO
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCmluZGV4IDA0OTIzZWU0MzNmYzEyZjU2YzEyOGY3
MGFjNzgyMzY0ZTM1NmJlYTIuLjdhOWQ0YjBhZjhjMzBhNjRkYzgzMDFjZDJjNzdlN2Y3ODkxMmQ4
NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlLmNwcApAQCAtNzE2LDcgKzcxNiw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OnN5bmNTdG9yYWdlSW1tZWRpYXRlbHkoKQogICAgIG1fZGF0YWJhc2Uu
cnVuVmFjdXVtQ29tbWFuZCgpOwogfQogCi12b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiBzdWJGcmFt
ZURvbWFpbiwgY29uc3QgVG9wRnJhbWVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDxG
cmFtZUlEPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWlu
JiBzdWJGcmFtZURvbWFpbiwgY29uc3QgVG9wRnJhbWVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBP
cHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtNzQzLDcgKzc0Myw3IEBAIHZvaWQg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29u
c3QgU3ViRnJhbWVEb21haW4mCiAgICAgfSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYg
c3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSUQg
ZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0
b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVE
b21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwg
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtODA0LDcgKzgwNCw3IEBA
IHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlcXVlc3RTdG9yYWdl
QWNjZXNzVW5kZXJPcGVuZXIoRG9tYWluCiAgICAgZ3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwo
V1RGTW92ZShkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MpLCBXVEZNb3ZlKG9wZW5lckRvbWFp
biksIFdURjo6bnVsbG9wdCwgb3BlbmVyUGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hv
d246Ok5vLCBbXShTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCkgeyB9KTsKIH0KIAotdm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKFN1YkZy
YW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVEb21h
aW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vz
c1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0
b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFt
ZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWlu
LCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBTdG9yYWdl
QWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC04MTgsNyArODE4LDcgQEAgdm9pZCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKFN1
YkZyYW1lRG9tYWluJiYgc3UKICAgICBncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChXVEZNb3Zl
KHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0b3BGcmFtZURvbWFpbiksIGZyYW1lSUQsIHBhZ2VJ
RCwgcHJvbXB0V2FzU2hvd24sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9p
ZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNz
SW50ZXJuYWwoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21haW4m
JiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJRD4gZnJhbWVJRCwgUGFnZUlkZW50aWZp
ZXIgcGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd25Ob3dP
ckVhcmxpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoU3ViRnJhbWVEb21haW4mJiBzdWJG
cmFtZURvbWFpbiwgVG9wRnJhbWVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJh
bWVJZGVudGlmaWVyPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIFN0b3JhZ2VBY2Nl
c3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93bk5vd09yRWFybGllciwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKaW5kZXggMTFkNzMzMzMwYWMz
MjYyZDM1NjFjNzNjZTY3NDdkZmNiODg1NjhlYi4uZTJhNTU2YWZiNGVjODE3YjFlOGJmMDljNzM1
MzUzNjA2ZjQ4ZjRjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlLmgKQEAgLTkxLDkgKzkxLDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBj
YWxjdWxhdGVBbmRTdWJtaXRUZWxlbWV0cnkoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZvaWQg
aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9t
YWluJiwgT3B0aW9uYWw8RnJhbWVJRD4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlcXVlc3RTdG9y
YWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIEZyYW1lSUQsIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nl
c3NTdGF0dXMpPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2VzcyhTdWJG
cmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBGcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29u
c3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikg
b3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYm
LCBUb3BGcmFtZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMp
PiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFp
biYmLCBUb3BGcmFtZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYm
KSBvdmVycmlkZTsKIAogICAgIHZvaWQgbG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IE5hdmlnYXRl
ZFRvRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBjb25zdCBOYXZpZ2F0ZWRGcm9tRG9t
YWluJiwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlzTWFpbkZyYW1lKSBvdmVycmlkZTsKICAgICB2
b2lkIGxvZ1VzZXJJbnRlcmFjdGlvbihjb25zdCBUb3BGcmFtZURvbWFpbiYpIG92ZXJyaWRlOwpA
QCAtMTUyLDcgKzE1Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJj
ZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIFJlc291cmNlTG9hZFByZXZhbGVuY2UpOwogICAg
IHVuc2lnbmVkIHJlY3Vyc2l2ZWx5RmluZE5vblByZXZhbGVudERvbWFpbnNUaGF0UmVkaXJlY3Rl
ZFRvVGhpc0RvbWFpbih1bnNpZ25lZCBwcmltYXJ5RG9tYWluSUQsIFN0ZFNldDx1bnNpZ25lZD4m
IG5vblByZXZhbGVudFJlZGlyZWN0aW9uU291cmNlcywgdW5zaWduZWQgbnVtYmVyT2ZSZWN1cnNp
dmVDYWxscyk7CiAgICAgdm9pZCBzZXREb21haW5zQXNQcmV2YWxlbnQoU3RkU2V0PHVuc2lnbmVk
PiYmKTsKLSAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFN1YkZyYW1lRG9tYWlu
JiYsIFRvcEZyYW1lRG9tYWluJiYsIE9wdGlvbmFsPEZyYW1lSUQ+LCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJik7CisgICAg
dm9pZCBncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFt
ZURvbWFpbiYmLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJik7
CiAgICAgdm9pZCBtYXJrQXNQcmV2YWxlbnRJZkhhc1JlZGlyZWN0ZWRUb1ByZXZhbGVudCgpOwog
ICAgIFZlY3RvcjxSZWdpc3RyYWJsZURvbWFpbj4gZW5zdXJlUHJldmFsZW50UmVzb3VyY2VzRm9y
RGVidWdNb2RlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZW1vdmVEYXRhUmVjb3JkcyhDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc01lbW9yeVN0b3JlLmNwcAppbmRleCA3MzA1YzUxMDIzNmE0YzhhM2EzNmY2MDUwNWY5
NjExODJlNGVlNzM2Li5lMjJmNGJkNjBkOTQyODVhNDQ2ZjYyNTUzN2JlNjY1MjdjZjY5YmMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNw
cApAQCAtMTk5LDcgKzE5OSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0
b3JlOjpzeW5jU3RvcmFnZUltbWVkaWF0ZWx5KCkKICAgICAgICAgbV9wZXJzaXN0ZW50U3RvcmFn
ZS0+c2NoZWR1bGVPcldyaXRlTWVtb3J5U3RvcmUoUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNp
c3RlbnRTdG9yYWdlOjpGb3JjZUltbWVkaWF0ZVdyaXRlOjpZZXMpOwogfQogCi12b2lkIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJG
cmFtZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFt
ZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJRD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9p
ZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29u
c3QgU3ViRnJhbWVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBUb3BGcmFtZURvbWFpbiYg
dG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlk
ZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC0yMjMs
NyArMjIzLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6Omhhc1N0
b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mIHMKICAgICB9KTsKIH0KIAotdm9pZCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1
YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVE
b21haW4sIEZyYW1lSUQgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
dm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNj
ZXNzKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9w
RnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdl
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTI3
Niw3ICsyNzYsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVx
dWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihEb21haW5JbgogICAgIGdyYW50U3RvcmFnZUFj
Y2Vzc0ludGVybmFsKFdURk1vdmUoZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzKSwgV1RGTW92
ZShvcGVuZXJEb21haW4pLCBXVEY6Om51bGxvcHQsIG9wZW5lclBhZ2VJRCwgU3RvcmFnZUFjY2Vz
c1Byb21wdFdhc1Nob3duOjpObywgW10oU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpIHsgfSk7CiB9
CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpncmFudFN0b3JhZ2VB
Y2Nlc3MoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21haW4mJiB0
b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBT
dG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
dm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vz
cyhTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZy
YW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC0yODgsNyArMjg4LDcg
QEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmdyYW50U3RvcmFnZUFj
Y2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1YkYKICAgICBncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5h
bChXVEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0b3BGcmFtZURvbWFpbiksIGZyYW1l
SUQsIHBhZ2VJRCwgcHJvbXB0V2FzU2hvd24sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
IH0KIAotdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmdyYW50U3RvcmFn
ZUFjY2Vzc0ludGVybmFsKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1l
RG9tYWluJiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPEZyYW1lSUQ+IGZyYW1lSUQsIFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1No
b3duTm93T3JFYXJsaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNH
cmFudGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c01lbW9yeVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChTdWJGcmFtZURvbWFpbiYm
IHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBPcHRpb25h
bDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFn
ZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duTm93T3JFYXJsaWVyLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NNZW1vcnlTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCmluZGV4IDVhZjY3YTE2ZjA2
MTZkYTlmYTBjMDkzMzE1YWNiYzM1ZGFhNWIxMTkuLmE0YTdiODhlMmRmYjAwMzQ2YmRjMjcxZmVi
N2U1YjI0YmE4MjA5NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c01lbW9yeVN0b3JlLmgKQEAgLTk3LDkgKzk3LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBjYWxj
dWxhdGVBbmRTdWJtaXRUZWxlbWV0cnkoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZvaWQgaGFz
U3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWlu
JiwgT3B0aW9uYWw8RnJhbWVJRD4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlcXVlc3RTdG9yYWdl
QWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIEZyYW1lSUQsIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NT
dGF0dXMpPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFt
ZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBGcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJikgb3ZlcnJpZGU7
CisgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3Qg
VG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgb3Zl
cnJpZGU7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBU
b3BGcmFtZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYm
KSBvdmVycmlkZTsKKyAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYm
LCBUb3BGcmFtZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKSBv
dmVycmlkZTsKIAogICAgIHZvaWQgbG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IE5hdmlnYXRlZFRv
RG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBjb25zdCBOYXZpZ2F0ZWRGcm9tRG9tYWlu
JiwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlzTWFpbkZyYW1lKSBvdmVycmlkZTsKICAgICB2b2lk
IGxvZ1VzZXJJbnRlcmFjdGlvbihjb25zdCBUb3BGcmFtZURvbWFpbiYpIG92ZXJyaWRlOwpAQCAt
MTIzLDcgKzEyMyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbmNyZW1lbnRSZWNvcmRzRGVsZXRl
ZENvdW50Rm9yRG9tYWlucyhIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiYmKSBvdmVycmlkZTsK
ICAgICB2b2lkIHNldFByZXZhbGVudFJlc291cmNlKFJlc291cmNlTG9hZFN0YXRpc3RpY3MmLCBS
ZXNvdXJjZUxvYWRQcmV2YWxlbmNlKTsKICAgICB1bnNpZ25lZCByZWN1cnNpdmVseUdldEFsbERv
bWFpbnNUaGF0SGF2ZVJlZGlyZWN0ZWRUb1RoaXNEb21haW4oY29uc3QgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcyYsIEhhc2hTZXQ8UmVkaXJlY3RlZFRvRG9tYWluPiYsIHVuc2lnbmVkIG51bWJlck9m
UmVjdXJzaXZlQ2FsbHMpIGNvbnN0OwotICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJu
YWwoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgT3B0aW9uYWw8RnJhbWVJRD4s
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2Fz
U2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dy
YW50ZWQpPiYmKTsKKyAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFN1YkZyYW1l
RG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRp
Zmllcj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJv
bXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vz
c1dhc0dyYW50ZWQpPiYmKTsKICAgICB2b2lkIG1hcmtBc1ByZXZhbGVudElmSGFzUmVkaXJlY3Rl
ZFRvUHJldmFsZW50KFJlc291cmNlTG9hZFN0YXRpc3RpY3MmKTsKICAgICBib29sIGlzUHJldmFs
ZW50RHVlVG9EZWJ1Z01vZGUoUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpOwogICAgIFZlY3RvcjxS
ZWdpc3RyYWJsZURvbWFpbj4gZW5zdXJlUHJldmFsZW50UmVzb3VyY2VzRm9yRGVidWdNb2RlKCkg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKaW5kZXgg
YWRlYzE0Y2Y5Y2NkOTY0YzI5MDFjZTJkODRlYTM1NmRmNmRiMGZmMi4uY2Y2Njg5YWY4YWI2ZTY3
YTdjOTIxNDFhNzQ5NmNkZGQ3YjY3YjBjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmUuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0NsYXNzaWZpZXIuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1
ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNp
bmNsdWRlIDx3dGYvV2Vha1B0ci5oPgpAQCAtOTAsNyArOTEsNiBAQCBwdWJsaWM6CiAgICAgdXNp
bmcgTmF2aWdhdGVkVG9Eb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKICAgICB1
c2luZyBEb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MgPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbjsKICAgICB1c2luZyBPcGVuZXJEb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
bjsKLSAgICB1c2luZyBGcmFtZUlEID0gdWludDY0X3Q7CiAgICAgCiAgICAgdmlydHVhbCB+UmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKCk7CiAKQEAgLTE1OSw5ICsxNTksOSBAQCBwdWJsaWM6
CiAgICAgYm9vbCBpc0RlYnVnTW9kZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2RlYnVnTW9k
ZUVuYWJsZWQ7IH07CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYpOwogCi0gICAgdmlydHVhbCB2b2lkIGhhc1N0b3JhZ2VB
Y2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlv
bmFsPEZyYW1lSUQ+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vz
cyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBGcmFtZUlELCBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVz
KT4mJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVE
b21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgRnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0
IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4m
JiwgVG9wRnJhbWVEb21haW4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVz
KT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVE
b21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3du
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVk
KT4mJikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBO
YXZpZ2F0ZWRUb0RvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgY29uc3QgTmF2aWdhdGVk
RnJvbURvbWFpbiYsIGJvb2wgaXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFtZSkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb24oY29uc3QgVG9wRnJhbWVEb21haW4mKSA9
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIv
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCmlu
ZGV4IDI2YzI1YjllY2M4OWY3ZmEwNTNhYjFjMGZlMDA2MzUwYTExOTZiMDcuLjIyODlkYTVmZmVm
ZmY1OTBmMmQ3MmNiYzg1ZGQ3Y2FkMDFjYmZjYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCkBAIC0yNzUsNyArMjc1LDcgQEAgdm9pZCBXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVk
KFZlY3RvcjxXZWJDb3IKICAgICB9KTsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZy
YW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIE9wdGlv
bmFsPHVpbnQ2NF90PiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURv
bWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBw
YWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgQVNTRVJUKHN1YkZyYW1lRG9tYWluICE9IHRvcEZyYW1lRG9tYWluKTsKICAgICBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAtMjk4LDcgKzI5OCw3IEBAIHZvaWQgV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiBzCiAgICAgfSk7CiB9CiAKLWJvb2wgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFp
biwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKQorYm9vbCBXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiBmaXJzdFBhcnR5RG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZp
ZXIgcGFnZUlEKQogewogICAgIGlmIChtX25ldHdvcmtTZXNzaW9uKSB7CiAgICAgICAgIGlmIChh
dXRvKiBzdG9yYWdlU2Vzc2lvbiA9IG1fbmV0d29ya1Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vz
c2lvbigpKQpAQCAtMzA3LDcgKzMwNyw3IEBAIGJvb2wgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoY29uc3QgUmVnaXN0cmFibGVECiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6
Y2FsbEhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURv
bWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wgaGFzQWNjZXNzKT4mJiBjYWxsYmFjaykKK3ZvaWQgV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsSGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxl
cihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFn
ZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgaGFzQWNjZXNz
KT4mJiBjYWxsYmFjaykKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC0z
MjEsNyArMzIxLDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxI
YXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKGNvbnN0IFIKICAgICBjYWxsYmFjayhmYWxz
ZSk7CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXF1ZXN0U3Rv
cmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFn
ZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NX
YXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlcXVlc3RTdG9yYWdl
QWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
UGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nl
c3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewogICAgIGlmIChzdWJGcmFtZURvbWFpbiA9PSB0b3BGcmFtZURvbWFpbikgewog
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZDo6WWVzLCBT
dG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd246Ok5vKTsKQEAgLTM4MSw3ICszODEsNyBAQCB2b2lk
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRl
ck9wZW5lcihSZWdpc3RyYWJsZQogICAgIH0pOwogfQogCi12b2lkIFdlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWlu
LCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQ
cm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9y
YWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpncmFu
dFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93
biBwcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2Fz
R3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIHBvc3RUYXNrKFt0aGlz
LCBzdWJGcmFtZURvbWFpbiA9IHN1YkZyYW1lRG9tYWluLmlzb2xhdGVkQ29weSgpLCB0b3BGcmFt
ZURvbWFpbiA9IHRvcEZyYW1lRG9tYWluLmlzb2xhdGVkQ29weSgpLCBmcmFtZUlELCBwYWdlSUQs
IHByb21wdFdhc1Nob3duLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXSgpIG11dGFibGUgewpAQCAtNDAyLDcgKzQwMiw3IEBAIHZvaWQgV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVE
b21haW4mCiAgICAgfSk7CiB9CiAKLVN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFy
dHlEb21haW4sIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdl
SUQpCitTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VE
b21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25h
bDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKIHsKICAg
ICBib29sIGlzU3RvcmFnZUdyYW50ZWQgPSBmYWxzZTsKIApAQCAtNDE3LDcgKzQxNyw3IEBAIFN0
b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Z3Jh
bnRTdG9yYWdlQWNjZXNzKGNvbnN0CiAgICAgcmV0dXJuIGlzU3RvcmFnZUdyYW50ZWQgPyBTdG9y
YWdlQWNjZXNzV2FzR3JhbnRlZDo6WWVzIDogU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQ6Ok5vOwog
fQogCi12b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEdyYW50U3RvcmFn
ZUFjY2Vzc0hhbmRsZXIoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPHVpbnQ2NF90
PiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxHcmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVy
KGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1l
SUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdl
QWNjZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1
bkxvb3A6OmlzTWFpbigpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5oCmluZGV4IDFmYzQ4YTJmYjk4MzUwMzgyOGI4Zjc0YTViMTk5YjZlZTI3ZDQxNjgu
LjM0NjM0NzRmODIyNzhiNDM4ZGMyMzI1NzkzNjU5OGNlMTc3YjdiZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNp
bmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFjY2Vzc1N0YXR1cy5oIgog
I2luY2x1ZGUgIldlYnNpdGVEYXRhVHlwZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVu
dGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUmVnaXN0cmFibGVEb21haW4uaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhh
bmRsZXIuaD4KQEAgLTgzLDcgKzg0LDYgQEAgcHVibGljOgogICAgIHVzaW5nIE5hdmlnYXRlZFRv
RG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNpbmcgRG9tYWluSW5O
ZWVkT2ZTdG9yYWdlQWNjZXNzID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNp
bmcgT3BlbmVyRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47Ci0gICAgdXNpbmcg
RnJhbWVJRCA9IHVpbnQ2NF90OwogICAgIHVzaW5nIFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkID0g
V2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQ7CiAgICAgdXNpbmcgU3RvcmFnZUFjY2Vz
c1Byb21wdFdhc1Nob3duID0gV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOwog
CkBAIC0xMDMsNyArMTAzLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2hvdWxkQ2xhc3NpZnlS
ZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFNob3VsZFN1Ym1pdFRlbGVtZXRyeShib29sKTsKIAot
ICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3Qg
VG9wRnJhbWVEb21haW4mLCBGcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgU3RvcmFn
ZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nl
c3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKTsKKyAgICB2b2lk
IGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1l
RG9tYWluJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0
b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKTsK
IAogICAgIHZvaWQgYXBwbGljYXRpb25XaWxsVGVybWluYXRlKCk7CiAKQEAgLTExNywxMSArMTE3
LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyVXNlckludGVyYWN0aW9uKGNvbnN0IFRvcEZy
YW1lRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGRlbGV0
ZVdlYnNpdGVEYXRhRm9yUmVnaXN0cmFibGVEb21haW5zKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5
cGU+LCBIYXNoTWFwPFJlZ2lzdHJhYmxlRG9tYWluLCBXZWJzaXRlRGF0YVRvUmVtb3ZlPiYmLCBi
b29sIHNob3VsZE5vdGlmeVBhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgSGFzaFNl
dDxSZWdpc3RyYWJsZURvbWFpbj4mKT4mJik7CiAgICAgdm9pZCByZWdpc3RyYWJsZURvbWFpbnNX
aXRoV2Vic2l0ZURhdGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIGJvb2wgc2hvdWxkTm90
aWZ5UGFnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWlu
PiYmKT4mJik7Ci0gICAgU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgZ3JhbnRTdG9yYWdlQWNjZXNz
KGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxG
cmFtZUlEPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOworICAgIFN0b3JhZ2VBY2Nlc3NXYXNH
cmFudGVkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRv
cEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIpOwogICAgIHZvaWQgaGFzSGFkVXNlckludGVyYWN0aW9uKGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0g
ICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9w
RnJhbWVEb21haW4mLCBPcHRpb25hbDxGcmFtZUlEPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotICAgIGJvb2wgaGFzU3RvcmFnZUFj
Y2Vzc0ZvckZyYW1lKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4m
LCBGcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7Ci0gICAgdm9pZCByZXF1ZXN0U3Rv
cmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwg
RnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYp
OworICAgIHZvaWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0
IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwor
ICAgIGJvb2wgaGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwg
Y29uc3QgVG9wRnJhbWVEb21haW4mLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKGNvbnN0IFN1
YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0
b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKTsK
ICAgICB2b2lkIHNldExhc3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgU2Vjb25kcywg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFByZXZhbGVudFJlc291
cmNlKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKICAgICB2b2lkIHNldFZlcnlQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CkBAIC0xNjQsMTEgKzE2NCwxMSBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICAg
ICB2b2lkIGxvZ1Rlc3RpbmdFdmVudChjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIGNhbGxHcmFu
dFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJh
bWVEb21haW4mLCBPcHRpb25hbDxGcmFtZUlEPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKTsKKyAgICB2
b2lkIGNhbGxHcmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwg
Y29uc3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdl
QWNjZXNzV2FzR3JhbnRlZCk+JiYpOwogICAgIHZvaWQgcmVtb3ZlQWxsU3RvcmFnZUFjY2VzcyhD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgY2FsbFVwZGF0ZVByZXZhbGVu
dERvbWFpbnNUb0Jsb2NrQ29va2llc0ZvckhhbmRsZXIoY29uc3QgVmVjdG9yPFJlZ2lzdHJhYmxl
RG9tYWluPiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBjYWxsUmVt
b3ZlRG9tYWluc0hhbmRsZXIoY29uc3QgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiYpOwotICAg
IHZvaWQgY2FsbEhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29uc3QgU3ViRnJhbWVE
b21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIEZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIGNhbGxI
YXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29u
c3QgVG9wRnJhbWVEb21haW4mLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKIAogICAgIHZv
aWQgZGlkQ3JlYXRlTmV0d29ya1Byb2Nlc3MoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmgKaW5kZXgg
ODcyNDhmMGUwZTEyODQ5M2E1NTZlNWNmYjFjMzViZDUzNGQ5MWVlMy4uMGFiYjgzODUwYThlN2Y5
YjQ0NDQyYzNkZmFmODI1M2NhNTQ1ZWI2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oCkBAIC01MCw3
ICs1MCw3IEBAIHB1YmxpYzoKICAgICAgICAgU3RyaW5nIHVzZXJBZ2VudDsKICAgICAgICAgUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEOwogICAgICAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBw
YWdlSUQ7Ci0gICAgICAgIHVpbnQ2NF90IGZyYW1lSUQ7CisgICAgICAgIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlEOwogICAgICAgICBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeTsKICAgICB9OwogICAgIHVzaW5nIENvbXBsZXRp
b25DYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciYmKT47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDJkNTBlMmY0M2RiZTc4YTZl
OWQ2OGM0ODQ2YjcwMWM4ZWQ1NWY0MjIuLmViMTljMTA5N2NjMDM2Y2JkZjlmYTMzYmI0OWNlYTY2
MzE2MTJlYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC01MTMsNyArNTEzLDcg
QEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29udmVydE1haW5SZXNvdXJj
ZUxvYWRUb0Rvd25sb2FkKFBBTDo6U2Vzc2kKICAgICBsb2FkZXItPmNvbnZlcnRUb0Rvd25sb2Fk
KGRvd25sb2FkSUQsIHJlcXVlc3QsIHJlc3BvbnNlKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8s
IGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFn
ZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNv
b2tpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBz
ZWN1cmVDb29raWVzQWNjZXNzZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0
ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQs
IE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGlu
Y2x1ZGVTZWN1cmVDb29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyBjb29raWVT
dHJpbmcsIGJvb2wgc2VjdXJlQ29va2llc0FjY2Vzc2VkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBhdXRvJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBzdG9yYWdlU2Vzc2lvbihuZXR3
b3JrUHJvY2VzcygpLCBzZXNzaW9uSUQpOwogICAgIGF1dG8gcmVzdWx0ID0gbmV0d29ya1N0b3Jh
Z2VTZXNzaW9uLmNvb2tpZXNGb3JET00oZmlyc3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmwsIGZy
YW1lSUQsIHBhZ2VJRCwgaW5jbHVkZVNlY3VyZUNvb2tpZXMpOwpAQCAtNTI2LDcgKzUyNiw3IEBA
IHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNGb3JET00oUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zCiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShy
ZXN1bHQuZmlyc3QpLCByZXN1bHQuc2Vjb25kKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6c2V0Q29va2llc0Zyb21ET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZv
LCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiBwYWdlSUQsIGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKQordm9pZCBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0Q29va2llc0Zyb21ET00oUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5m
byYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBjb25z
dCBTdHJpbmcmIGNvb2tpZVN0cmluZykKIHsKICAgICBhdXRvJiBuZXR3b3JrU3RvcmFnZVNlc3Np
b24gPSBzdG9yYWdlU2Vzc2lvbihuZXR3b3JrUHJvY2VzcygpLCBzZXNzaW9uSUQpOwogICAgIG5l
dHdvcmtTdG9yYWdlU2Vzc2lvbi5zZXRDb29raWVzRnJvbURPTShmaXJzdFBhcnR5LCBzYW1lU2l0
ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlELCBjb29raWVTdHJpbmcpOwpAQCAtNTQzLDEzICs1
NDMsMTMgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0VuYWJs
ZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb20KICAgICBjb21wbGV0aW9uSGFuZGxlcihz
dG9yYWdlU2Vzc2lvbihuZXR3b3JrUHJvY2VzcygpLCBzZXNzaW9uSUQpLmNvb2tpZXNFbmFibGVk
KCkpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVSZXF1
ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYg
dXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+
IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nLCBib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVs
ZFZhbHVlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFs
PEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJ
RCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoU3RyaW5nLCBib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBh
dXRvIHJlc3VsdCA9IHN0b3JhZ2VTZXNzaW9uKG5ldHdvcmtQcm9jZXNzKCksIHNlc3Npb25JRCku
Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoZmlyc3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1
cmwsIGZyYW1lSUQsIHBhZ2VJRCwgaW5jbHVkZVNlY3VyZUNvb2tpZXMpOwogICAgIGNvbXBsZXRp
b25IYW5kbGVyKFdURk1vdmUocmVzdWx0LmZpcnN0KSwgcmVzdWx0LnNlY29uZCk7CiB9CiAKLXZv
aWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmdldFJhd0Nvb2tpZXMoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5m
byYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1l
SUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lk
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXRSYXdDb29raWVzKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8m
IHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4g
ZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiByZXN1bHQ7CiAgICAgc3RvcmFnZVNlc3Np
b24obmV0d29ya1Byb2Nlc3MoKSwgc2Vzc2lvbklEKS5nZXRSYXdDb29raWVzKGZpcnN0UGFydHks
IHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIHJlc3VsdCk7CkBAIC02MzksNyAr
NjM5LDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZW5zdXJlTGVnYWN5
UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCiB9CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKQotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVtb3ZlU3Rv
cmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgZnJh
bWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKIHsK
ICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBuZXR3b3JrUHJvY2VzcygpLnN0b3JhZ2VT
ZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAgIHN0b3JhZ2VTZXNzaW9uLT5yZW1vdmVTdG9yYWdl
QWNjZXNzRm9yRnJhbWUoZnJhbWVJRCwgcGFnZUlEKTsKQEAgLTY5OCw3ICs2OTgsNyBAQCB2b2lk
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzVXBk
YXRlZChWZWN0b3I8V2ViQ29yZQogICAgIH0KIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6aGFzU3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBw
YWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
Cit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpoYXNTdG9yYWdlQWNjZXNzKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1l
RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdv
cmtTZXNzaW9uID0gbmV0d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7
CiAgICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Np
b24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkgewpAQCAtNzEwLDcgKzcxMCw3IEBAIHZvaWQg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Omhhc1N0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBjCiAgICAgY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CiB9CiAKLXZv
aWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1l
RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90
IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
ZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCB3YXNHcmFudGVkLCBXZWJDb3JlOjpTdG9y
YWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVxdWVzdFN0b3JhZ2VB
Y2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
c3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwg
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCB3YXNHcmFudGVk
LCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24pPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IG5l
dHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewogICAgICAgICBpZiAo
YXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IG5ldHdvcmtTZXNzaW9uLT5yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCAxOWU3NjcyMzc4
MWJmZWI0NzBmYjI2MjJiOTNlY2E3NGU5YWVlZThjLi5hNTVmNjQzMjU2NTQ1YjJkYTg3MjYzZGVj
NGU1YmRmM2I4NjM5MjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0zNCw2ICszNCw3
IEBACiAjaW5jbHVkZSAiTmV0d29ya1JUQ1Byb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jl
c291cmNlTG9hZE1hcC5oIgogI2luY2x1ZGUgIldlYlBheW1lbnRDb29yZGluYXRvclByb3h5Lmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L05ldHdvcmtMb2FkSW5mb3JtYXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlm
aWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmllci5oPgpAQCAtMTc1LDEx
ICsxNzYsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0RG93bmxvYWQoUEFMOjpTZXNzaW9u
SUQsIERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0
cmluZyYgc3VnZ2VzdGVkTmFtZSA9IHsgfSk7CiAgICAgdm9pZCBjb252ZXJ0TWFpblJlc291cmNl
TG9hZFRvRG93bmxvYWQoUEFMOjpTZXNzaW9uSUQsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyLCBEb3dubG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CiAKLSAgICB2b2lkIGNvb2tpZXNGb3JE
T00oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6
U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9w
dGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNv
b2tpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBz
ZWN1cmVDb29raWVzQWNjZXNzZWQpPiYmKTsKLSAgICB2b2lkIHNldENvb2tpZXNGcm9tRE9NKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVT
aXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25h
bDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgY29v
a2llc0ZvckRPTShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBX
ZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXI+LCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIFdlYkNvcmU6
OkluY2x1ZGVTZWN1cmVDb29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyBjb29r
aWVTdHJpbmcsIGJvb2wgc2VjdXJlQ29va2llc0FjY2Vzc2VkKT4mJik7CisgICAgdm9pZCBzZXRD
b29raWVzRnJvbURPTShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIGNvbnN0
IFN0cmluZyYpOwogICAgIHZvaWQgY29va2llc0VuYWJsZWQoUEFMOjpTZXNzaW9uSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotICAgIHZvaWQgY29va2llUmVxdWVzdEhlYWRl
ckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
V2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgV2ViQ29yZTo6SW5jbHVk
ZVNlY3VyZUNvb2tpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0cmlu
ZywgYm9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQpPiYmKTsKLSAgICB2b2lkIGdldFJhd0Nvb2tp
ZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6
U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9w
dGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChW
ZWN0b3I8V2ViQ29yZTo6Q29va2llPiYmKT4mJik7CisgICAgdm9pZCBjb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIFdlYkNv
cmU6OkluY2x1ZGVTZWN1cmVDb29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyBj
b29raWVTdHJpbmcsIGJvb2wgc2VjdXJlQ29va2llc0FjY2Vzc2VkKT4mJik7CisgICAgdm9pZCBn
ZXRSYXdDb29raWVzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYmKT4mJik7CiAgICAgdm9p
ZCBkZWxldGVDb29raWUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYg
Y29va2llTmFtZSk7CiAKICAgICB2b2lkIHJlZ2lzdGVyRmlsZUJsb2JVUkwoY29uc3QgVVJMJiwg
Y29uc3QgU3RyaW5nJiBwYXRoLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiwgY29uc3QgU3Ry
aW5nJiBjb250ZW50VHlwZSk7CkBAIC0yMTksNyArMjIwLDcgQEAgcHJpdmF0ZToKICAgICBDYWNo
ZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uJiBjYWNoZVN0b3JhZ2VDb25uZWN0aW9uKCk7CiAKICNp
ZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIHZvaWQgcmVtb3ZlU3RvcmFn
ZUFjY2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lvbklELCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcik7CisgICAgdm9pZCByZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUo
UEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIpOwogICAgIHZvaWQgY2xlYXJQYWdlU3BlY2lmaWNEYXRhRm9yUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcyhQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogCiAg
ICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJik7CkBAIC0yMjcsOCArMjI4LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGxvZ1N1
YnJlc291cmNlTG9hZGluZyhQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHRhcmdldERvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBX
YWxsVGltZSBsYXN0U2Vlbik7CiAgICAgdm9pZCBsb2dTdWJyZXNvdXJjZVJlZGlyZWN0KFBBTDo6
U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc291cmNlRG9tYWluLCBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgdGFyZ2V0RG9tYWluKTsKICAgICB2b2lkIHJlc291cmNlTG9hZFN0
YXRpc3RpY3NVcGRhdGVkKFZlY3RvcjxXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPiYm
KTsKLSAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRv
cEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCByZXF1ZXN0U3RvcmFn
ZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1l
RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90
IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNz
UHJvbXB0V2FzU2hvd24pPiYmKTsKKyAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNz
aW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KTsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNz
V2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJik7CiAg
ICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyKFBBTDo6U2Vzc2lvbklELCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2Vzcywg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgb3BlbmVyUGFnZUlELCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiYmIG9wZW5lckRvbWFpbik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggNzcwOWUyZjY1YzE2NDg4YzY4ZmIxZTcyMzUyYjFh
MjQ5YzVkOTRkNC4uZGI5MzQ2ZDk2YTQwMzE4NTMyNTMwZjhkMmE2NWZiMmU0NDU4MjYyMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0zMywxMSArMzMs
MTEgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVj
ZWl2ZXIgewogICAgIFN0YXJ0RG93bmxvYWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJL
aXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QsIFN0cmluZyBzdWdnZXN0ZWROYW1lKQogICAgIENvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9E
b3dubG9hZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxv
YWRJZGVudGlmaWVyLCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2Up
CiAKLSAgICBDb29raWVzRm9yRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZpcnN0
UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJs
LCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRCwgZW51bTpib29sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGlu
Y2x1ZGVTZWN1cmVDb29raWVzKSAtPiAoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBkaWRBY2Nl
c3NTZWN1cmVDb29raWVzKSBTeW5jaHJvbm91cwotICAgIFNldENvb2tpZXNGcm9tRE9NKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1l
U2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgU3RyaW5nIGNvb2tp
ZVN0cmluZykKKyAgICBDb29raWVzRm9yRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJM
IGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBV
UkwgdXJsLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlv
bmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpJ
bmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgLT4gKFN0cmluZyBjb29r
aWVTdHJpbmcsIGJvb2wgZGlkQWNjZXNzU2VjdXJlQ29va2llcykgU3luY2hyb25vdXMKKyAgICBT
ZXRDb29raWVzRnJvbURPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5
LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0
aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBTdHJpbmcgY29va2llU3RyaW5nKQogICAgIENvb2tp
ZXNFbmFibGVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKGJvb2wgZW5hYmxlZCkgU3lu
Y2hyb25vdXMKLSAgICBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZv
IHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlv
bmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpJ
bmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgLT4gKFN0cmluZyBjb29r
aWVTdHJpbmcsIGJvb2wgZGlkQWNjZXNzU2VjdXJlQ29va2llcykgU3luY2hyb25vdXMKLSAgICBH
ZXRSYXdDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZpcnN0UGFydHksIHN0
cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBh
Z2VJRCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IGNvb2tpZXMpIFN5bmNocm9ub3VzCisg
ICAgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUlu
Zm8sIFVSTCB1cmwsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwg
T3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgZW51bTpib29sIFdlYkNv
cmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSAtPiAoU3RyaW5n
IGNvb2tpZVN0cmluZywgYm9vbCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzKSBTeW5jaHJvbm91cwor
ICAgIEdldFJhd0Nvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgZmlyc3RQYXJ0
eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9w
dGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IGNv
b2tpZXMpIFN5bmNocm9ub3VzCiAgICAgRGVsZXRlQ29va2llKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgVVJMIHVybCwgU3RyaW5nIGNvb2tpZU5hbWUpCiAKICAgICBSZWdpc3RlckZpbGVCbG9i
VVJMKFVSTCB1cmwsIFN0cmluZyBwYXRoLCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSBleHRlbnNpb25IYW5kbGUsIFN0cmluZyBjb250ZW50VHlwZSkKQEAgLTU3LDE1ICs1NywxNSBA
QCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZl
ciB7CiAgICAgRW5zdXJlTGVnYWN5UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCiAKICNpZiBFTkFC
TEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIFJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JG
cmFtZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCk7CisgICAgUmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1l
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCk7CiAgICAgQ2xlYXJQYWdlU3BlY2lm
aWNEYXRhRm9yUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCk7CiAgICAgTG9nVXNlckludGVyYWN0aW9u
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9t
YWluKQogICAgIExvZ1dlYlNvY2tldExvYWRpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0YXJnZXREb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCBXYWxsVGltZSBsYXN0U2VlbikKICAgICBMb2dTdWJy
ZXNvdXJjZUxvYWRpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiB0YXJnZXREb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZy
YW1lRG9tYWluLCBXYWxsVGltZSBsYXN0U2VlbikKICAgICBMb2dTdWJyZXNvdXJjZVJlZGlyZWN0
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc291
cmNlRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0YXJnZXREb21haW4pCiAgICAg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0ZWQoVmVjdG9yPFdlYkNvcmU6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3M+IHN0YXRpc3RpY3MpCi0gICAgSGFzU3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkZyYW1lRG9tYWlu
LCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJh
bWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKSAtPiAoYm9vbCBoYXNTdG9yYWdl
QWNjZXNzKSBBc3luYwotICAgIFJlcXVlc3RTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3ViRnJhbWVEb21haW4sIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpIC0+IChlbnVtOmJvb2wgV2ViQ29yZTo6U3Rv
cmFnZUFjY2Vzc1dhc0dyYW50ZWQgd2FzR3JhbnRlZCwgZW51bTpib29sIFdlYkNvcmU6OlN0b3Jh
Z2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93bikgQXN5bmMKKyAgICBIYXNTdG9y
YWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1l
RG9tYWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgcGFnZUlEKSAtPiAoYm9vbCBoYXNTdG9yYWdlQWNjZXNzKSBBc3luYworICAgIFJl
cXVlc3RTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4gc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
IHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKSAtPiAoZW51bTpib29sIFdlYkNvcmU6OlN0b3JhZ2VB
Y2Nlc3NXYXNHcmFudGVkIHdhc0dyYW50ZWQsIGVudW06Ym9vbCBXZWJDb3JlOjpTdG9yYWdlQWNj
ZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24pIEFzeW5jCiAgICAgUmVxdWVzdFN0b3Jh
Z2VBY2Nlc3NVbmRlck9wZW5lcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluIGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcywgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgb3BlbmVyUGFnZUlELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBvcGVu
ZXJEb21haW4pCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwCmluZGV4IDQwOTcxNGQ2NjcyNmE4NDc0YWZmMjlhMTYw
ODE3ZjI0Nzk2N2IwMTYuLjExNzZmNTM3YTg1ODA5YjRiYWUxY2U3NjhiNTY1MzViMTVkNWViYjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVj
a2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hl
Y2tlci5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RhdGljIGlubGluZSBib29sIGlzU2FtZU9yaWdp
bihjb25zdCBVUkwmIHVybCwgY29uc3QgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKICAgICByZXR1
cm4gdXJsLnByb3RvY29sSXNEYXRhKCkgfHwgdXJsLnByb3RvY29sSXNCbG9iKCkgfHwgIW9yaWdp
biB8fCBvcmlnaW4tPmNhblJlcXVlc3QodXJsKTsKIH0KIAotTmV0d29ya0xvYWRDaGVja2VyOjpO
ZXR3b3JrTG9hZENoZWNrZXIoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBGZXRjaE9w
dGlvbnMmJiBvcHRpb25zLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgSFRUUEhlYWRlck1hcCYmIG9yaWdpbmFsUmVxdWVz
dEhlYWRlcnMsIFVSTCYmIHVybCwgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiYmIHNvdXJjZU9yaWdp
biwgUHJlZmxpZ2h0UG9saWN5IHByZWZsaWdodFBvbGljeSwgU3RyaW5nJiYgcmVmZXJyZXIsIGJv
b2wgaXNIVFRQU1VwZ3JhZGVFbmFibGVkLCBib29sIHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtM
b2FkTWV0cmljcywgTG9hZFR5cGUgcmVxdWVzdExvYWRUeXBlKQorTmV0d29ya0xvYWRDaGVja2Vy
OjpOZXR3b3JrTG9hZENoZWNrZXIoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBGZXRj
aE9wdGlvbnMmJiBvcHRpb25zLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEhUVFBIZWFkZXJNYXAmJiBvcmln
aW5hbFJlcXVlc3RIZWFkZXJzLCBVUkwmJiB1cmwsIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4mJiBz
b3VyY2VPcmlnaW4sIFByZWZsaWdodFBvbGljeSBwcmVmbGlnaHRQb2xpY3ksIFN0cmluZyYmIHJl
ZmVycmVyLCBib29sIGlzSFRUUFNVcGdyYWRlRW5hYmxlZCwgYm9vbCBzaG91bGRDYXB0dXJlRXh0
cmFOZXR3b3JrTG9hZE1ldHJpY3MsIExvYWRUeXBlIHJlcXVlc3RMb2FkVHlwZSkKICAgICA6IG1f
b3B0aW9ucyhXVEZNb3ZlKG9wdGlvbnMpKQogICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQog
ICAgICwgbV9uZXR3b3JrUHJvY2VzcyhuZXR3b3JrUHJvY2VzcykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oCmluZGV4IDU3ZGYxZGE0Njgw
ZDI1ODRlZTIxNmFhZGZmMDhkZTgyYTEzNmJjZTkuLjE3ODM2NDE0NWY1ODgzZjU5ZTc5NjdmZjlj
YzUzNjQ2Njc3MzBhNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0xvYWRDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZENoZWNrZXIuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
Q29udGVudEV4dGVuc2lvbkFjdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NvbnRlbnRTZWN1
cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmV0Y2hPcHRp
b25zLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL05ldHdvcmtMb2FkSW5mb3JtYXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlRXJyb3IuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KQEAgLTU0LDcg
KzU1LDcgQEAgY2xhc3MgTmV0d29ya0xvYWRDaGVja2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRy
PE5ldHdvcmtMb2FkQ2hlY2tlcj4gewogcHVibGljOgogICAgIGVudW0gY2xhc3MgTG9hZFR5cGUg
OiBib29sIHsgTWFpbkZyYW1lLCBPdGhlciB9OwogCi0gICAgTmV0d29ya0xvYWRDaGVja2VyKE5l
dHdvcmtQcm9jZXNzJiwgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiYsIFBBTDo6U2Vzc2lvbklELCBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6SFRUUEhl
YWRlck1hcCYmLCBVUkwmJiwgUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmLCBXZWJD
b3JlOjpQcmVmbGlnaHRQb2xpY3ksIFN0cmluZyYmIHJlZmVycmVyLCBib29sIGlzSFRUUFNVcGdy
YWRlRW5hYmxlZCA9IGZhbHNlLCBib29sIHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0
cmljcyA9IGZhbHNlLCBMb2FkVHlwZSByZXF1ZXN0TG9hZFR5cGUgPSBMb2FkVHlwZTo6T3RoZXIp
OworICAgIE5ldHdvcmtMb2FkQ2hlY2tlcihOZXR3b3JrUHJvY2VzcyYsIFdlYkNvcmU6OkZldGNo
T3B0aW9ucyYmLCBQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYmLCBVUkwmJiwgUmVm
UHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmLCBXZWJDb3JlOjpQcmVmbGlnaHRQb2xpY3ks
IFN0cmluZyYmIHJlZmVycmVyLCBib29sIGlzSFRUUFNVcGdyYWRlRW5hYmxlZCA9IGZhbHNlLCBi
b29sIHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyA9IGZhbHNlLCBMb2FkVHlw
ZSByZXF1ZXN0TG9hZFR5cGUgPSBMb2FkVHlwZTo6T3RoZXIpOwogICAgIH5OZXR3b3JrTG9hZENo
ZWNrZXIoKTsKIAogICAgIHN0cnVjdCBSZWRpcmVjdGlvblRyaXBsZXQgewpAQCAtMTI2LDcgKzEy
Nyw3IEBAIHByaXZhdGU6CiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgUmVm
PE5ldHdvcmtQcm9jZXNzPiBtX25ldHdvcmtQcm9jZXNzOwogICAgIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIG1fcGFnZUlEOwotICAgIHVpbnQ2NF90IG1fZnJhbWVJRDsKKyAgICBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgbV9mcmFtZUlEOwogICAgIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAgbV9v
cmlnaW5hbFJlcXVlc3RIZWFkZXJzOyAvLyBOZWVkZWQgZm9yIENPUlMgY2hlY2tzLgogICAgIFdl
YkNvcmU6OkhUVFBIZWFkZXJNYXAgbV9maXJzdFJlcXVlc3RIZWFkZXJzOyAvLyBOZWVkZWQgZm9y
IENPUlMgY2hlY2tzLgogICAgIFVSTCBtX3VybDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCmluZGV4IGNmYjJjNzVjMGNkNzky
YTAwYTUwNWM4MGI2OThjMTYwYTgwMjEzNTQuLmQxNWVjNDgzMTQxMjE2MTdlMzkwYTk5MGEyMWI5
OGJjYzI1YjM3OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0xvYWRQYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZFBhcmFtZXRlcnMuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiTmV0
d29ya0FjdGl2aXR5VHJhY2tlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQmxvYkRhdGFGaWxlUmVm
ZXJlbmNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxv
YWRlck9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgpAQCAt
NDAsNyArNDEsNyBAQCBlbnVtIGNsYXNzIFByZWNvbm5lY3RPbmx5IHsgTm8sIFllcyB9OwogY2xh
c3MgTmV0d29ya0xvYWRQYXJhbWV0ZXJzIHsKIHB1YmxpYzoKICAgICBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciB3ZWJQYWdlSUQ7Ci0gICAgdWludDY0X3Qgd2ViRnJhbWVJRCB7IDAgfTsKKyAgICBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgd2ViRnJhbWVJRDsKICAgICBXVEY6OlByb2Nlc3NJRCBw
YXJlbnRQSUQgeyAwIH07CiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEIHsgUEFMOjpTZXNz
aW9uSUQ6OmVtcHR5U2Vzc2lvbklEKCkgfTsKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aAppbmRleCA2OWYzZDRmNjc5MmMwYjljYzdhMTAyODZhODJhYzUzZDhiMTI5NDdkLi40NTk5ODUx
ODJjMDQ1ZmMyOGRjYzdjODMwNjI1YjA4Y2ZiODQwNDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0xMzgsNyArMTM4LDYgQEAgcHVibGlj
OgogICAgIHVzaW5nIE5hdmlnYXRlZFRvRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW47CiAgICAgdXNpbmcgRG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzID0gV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW47CiAgICAgdXNpbmcgT3BlbmVyRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW47Ci0gICAgdXNpbmcgRnJhbWVJRCA9IHVpbnQ2NF90OwogCiAgICAgTmV0d29y
a1Byb2Nlc3MoQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYmKTsKICAg
ICB+TmV0d29ya1Byb2Nlc3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCA1Y2E0NmRmNWJkMGQ2Y2UxNTRk
OWNmZDVjYmY5NDM1OTBmZDIzN2IyLi45YTcyMjBkNDlkYmRjMzMwNjlmMzI1NTFlNGE4OGU5YTc2
YzZmNGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0xNzcsMTggKzE3NywxOCBAQCB2b2lkIE5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6c3RhcnQoKQogICAgICAgICBtX25ldHdvcmtMb2FkQ2hlY2tlci0+Y2hl
Y2soUmVzb3VyY2VSZXF1ZXN0IHsgb3JpZ2luYWxSZXF1ZXN0KCkgfSwgdGhpcywgW3RoaXNdIChh
dXRvJiYgcmVzdWx0KSB7CiAgICAgICAgICAgICBXVEY6OnN3aXRjaE9uKHJlc3VsdCwKICAgICAg
ICAgICAgICAgICBbdGhpc10gKFJlc291cmNlRXJyb3ImIGVycm9yKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0OiBlcnJvciBjaGVja2luZyAocGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUi
IFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQsIHBhcmVu
dFBJRCA9ICVkLCBlcnJvci5kb21haW4gPSAle3B1YmxpY31zLCBlcnJvci5jb2RlID0gJWQpIiwg
bV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJ
RCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIHRoaXMtPmlzTWFpblJlc291cmNlKCksIHRoaXMt
PmlzU3luY2hyb25vdXMoKSwgbV9wYXJhbWV0ZXJzLnBhcmVudFBJRCwgZXJyb3IuZG9tYWluKCku
dXRmOCgpLmRhdGEoKSwgZXJyb3IuZXJyb3JDb2RlKCkpOworICAgICAgICAgICAgICAgICAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydDogZXJyb3IgY2hlY2tpbmcgKHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQg
IiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkLCBwYXJlbnRQSUQgPSAl
ZCwgZXJyb3IuZG9tYWluID0gJXtwdWJsaWN9cywgZXJyb3IuY29kZSA9ICVkKSIsIG1fcGFyYW1l
dGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50
NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIHRoaXMtPmlzTWFpblJlc291cmNlKCksIHRo
aXMtPmlzU3luY2hyb25vdXMoKSwgbV9wYXJhbWV0ZXJzLnBhcmVudFBJRCwgZXJyb3IuZG9tYWlu
KCkudXRmOCgpLmRhdGEoKSwgZXJyb3IuZXJyb3JDb2RlKCkpOwogICAgICAgICAgICAgICAgICAg
ICBpZiAoIWVycm9yLmlzQ2FuY2VsbGF0aW9uKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICB0
aGlzLT5kaWRGYWlsTG9hZGluZyhlcnJvcik7CiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAg
ICAgICAgICBbdGhpc10gKE5ldHdvcmtMb2FkQ2hlY2tlcjo6UmVkaXJlY3Rpb25UcmlwbGV0JiB0
cmlwbGV0KSB7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMtPm1faXNXYWl0aW5nQ29udGludWVX
aWxsU2VuZFJlcXVlc3RGb3JDYWNoZWRSZWRpcmVjdCA9IHRydWU7CiAgICAgICAgICAgICAgICAg
ICAgIHRoaXMtPndpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3QoV1RGTW92ZSh0cmlwbGV0LnJlcXVl
c3QpLCBXVEZNb3ZlKHRyaXBsZXQucmVkaXJlY3RSZXF1ZXN0KSwgV1RGTW92ZSh0cmlwbGV0LnJl
ZGlyZWN0UmVzcG9uc2UpKTsKLSAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRCgic3RhcnQ6IHN5bnRoZXRpYyByZWRpcmVjdCBzZW50IGJlY2F1c2UgcmVxdWVzdCBVUkwg
d2FzIG1vZGlmaWVkIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAi
LCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hy
b25vdXMgPSAlZCwgcGFyZW50UElEID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJ
bnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIs
IHRoaXMtPmlzTWFpblJlc291cmNlKCksIHRoaXMtPmlzU3luY2hyb25vdXMoKSwgbV9wYXJhbWV0
ZXJzLnBhcmVudFBJRCk7CisgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoInN0YXJ0OiBzeW50aGV0aWMgcmVkaXJlY3Qgc2VudCBiZWNhdXNlIHJlcXVlc3QgVVJMIHdh
cyBtb2RpZmllZCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwg
cmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9u
b3VzID0gJWQsIHBhcmVudFBJRCA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50
NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlk
ZW50aWZpZXIsIHRoaXMtPmlzTWFpblJlc291cmNlKCksIHRoaXMtPmlzU3luY2hyb25vdXMoKSwg
bV9wYXJhbWV0ZXJzLnBhcmVudFBJRCk7CiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAg
ICAgICBbdGhpc10gKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkgewogICAgICAgICAgICAgICAg
ICAgICBpZiAodGhpcy0+Y2FuVXNlQ2FjaGUocmVxdWVzdCkpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0OiBDaGVja2luZyBjYWNoZSBmb3Ig
cmVzb3VyY2UgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJl
c291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91
cyA9ICVkLCBwYXJlbnRQSUQgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0
KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgdGhp
cy0+aXNNYWluUmVzb3VyY2UoKSwgdGhpcy0+aXNTeW5jaHJvbm91cygpLCBtX3BhcmFtZXRlcnMu
cGFyZW50UElEKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoInN0YXJ0OiBDaGVja2luZyBjYWNoZSBmb3IgcmVzb3VyY2UgKHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNN
YWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkLCBwYXJlbnRQSUQgPSAlZCkiLCBt
X3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlE
LnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCB0aGlzLT5pc01haW5SZXNvdXJj
ZSgpLCB0aGlzLT5pc1N5bmNocm9ub3VzKCksIG1fcGFyYW1ldGVycy5wYXJlbnRQSUQpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgdGhpcy0+cmV0cmlldmVDYWNoZUVudHJ5KHJlcXVlc3QpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgICB9CkBA
IC0yMDEsNyArMjAxLDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KCkKICAg
ICB9CiAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGF0IGNvZGUgcGF0aCBvbmNlIG1fbmV0d29ya0xv
YWRDaGVja2VyIGlzIHVzZWQgZm9yIGFsbCBuZXR3b3JrIGxvYWRzLgogICAgIGlmIChjYW5Vc2VD
YWNoZShvcmlnaW5hbFJlcXVlc3QoKSkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RCgic3RhcnQ6IENoZWNraW5nIGNhY2hlIGZvciByZXNvdXJjZSAocGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01h
aW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQsIHBhcmVudFBJRCA9ICVkKSIsIG1f
cGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQs
IG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3Vz
KCksIG1fcGFyYW1ldGVycy5wYXJlbnRQSUQpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKCJzdGFydDogQ2hlY2tpbmcgY2FjaGUgZm9yIHJlc291cmNlIChwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlz
TWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCwgcGFyZW50UElEID0gJWQpIiwg
bV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJ
RC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwg
aXNTeW5jaHJvbm91cygpLCBtX3BhcmFtZXRlcnMucGFyZW50UElEKTsKICAgICAgICAgcmV0cmll
dmVDYWNoZUVudHJ5KG9yaWdpbmFsUmVxdWVzdCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
QEAgLTIzNSwxMyArMjM1LDEzIEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpyZXRyaWV2
ZUNhY2hlRW50cnkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogICAgICAgICBsb2Fk
ZXItPmxvZ1Nsb3dDYWNoZVJldHJpZXZlSWZOZWVkZWQoaW5mbyk7CiAKICAgICAgICAgaWYgKCFl
bnRyeSkgewotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNo
ZUVudHJ5OiBSZXNvdXJjZSBub3QgaW4gY2FjaGUgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3Vy
Y2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9V
SW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVy
LCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOworICAgICAgICAgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNoZUVudHJ5OiBSZXNvdXJjZSBub3QgaW4gY2Fj
aGUgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNl
SUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVk
KSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZy
YW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNl
KCksIGlzU3luY2hyb25vdXMoKSk7CiAgICAgICAgICAgICBsb2FkZXItPnN0YXJ0TmV0d29ya0xv
YWQoV1RGTW92ZShyZXF1ZXN0KSwgRmlyc3RMb2FkOjpZZXMpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICAg
ICAgaWYgKGVudHJ5LT5oYXNSZWFjaGVkUHJldmFsZW50UmVzb3VyY2VBZ2VDYXAoKSkgewotICAg
ICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNoZUVudHJ5OiBSZXNv
dXJjZSBoYXMgcmVhY2hlZCBwcmV2YWxlbnQgcmVzb3VyY2UgYWdlIGNhcCAocGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAi
LCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJz
LndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0
ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CisgICAg
ICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJlc291
cmNlIGhhcyByZWFjaGVkIHByZXZhbGVudCByZXNvdXJjZSBhZ2UgY2FwIChwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIs
IGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMu
d2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCks
IG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3Vz
KCkpOwogICAgICAgICAgICAgbV9jYWNoZUVudHJ5Rm9yTWF4QWdlQ2FwVmFsaWRhdGlvbiA9IFdU
Rk1vdmUoZW50cnkpOwogICAgICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJldmFsaWRhdGlvblJl
cXVlc3QgPSBvcmlnaW5hbFJlcXVlc3QoKTsKICAgICAgICAgICAgIGxvYWRlci0+c3RhcnROZXR3
b3JrTG9hZChXVEZNb3ZlKHJldmFsaWRhdGlvblJlcXVlc3QpLCBGaXJzdExvYWQ6Olllcyk7CkBA
IC0yNDksMjEgKzI0OSwyMSBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6cmV0cmlldmVD
YWNoZUVudHJ5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKICAgICAgICAgfQogI2Vu
ZGlmCiAgICAgICAgIGlmIChlbnRyeS0+cmVkaXJlY3RSZXF1ZXN0KCkpIHsKLSAgICAgICAgICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogSGFuZGxpbmcgcmVk
aXJlY3QgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9
ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndl
YkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5
bmNocm9ub3VzKCkpOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmll
dmVDYWNoZUVudHJ5OiBIYW5kbGluZyByZWRpcmVjdCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZy
YW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNv
dXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50
b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRl
cnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKICAgICAg
ICAgICAgIGxvYWRlci0+ZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3RGb3JDYWNoZUVudHJ5KFdURk1v
dmUocmVxdWVzdCksIFdURk1vdmUoZW50cnkpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQogICAgICAgICBpZiAobG9hZGVyLT5tX3BhcmFtZXRlcnMubmVlZHNDZXJ0aWZpY2F0ZUlu
Zm8gJiYgIWVudHJ5LT5yZXNwb25zZSgpLmNlcnRpZmljYXRlSW5mbygpKSB7Ci0gICAgICAgICAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJlc291cmNlIGRv
ZXMgbm90IGhhdmUgcmVxdWlyZWQgY2VydGlmaWNhdGUgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVz
b3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQu
dG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlm
aWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOworICAgICAgICAgICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNoZUVudHJ5OiBSZXNvdXJjZSBkb2VzIG5v
dCBoYXZlIHJlcXVpcmVkIGNlcnRpZmljYXRlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNl
ID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUlu
dDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5p
ZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOwogICAgICAgICAg
ICAgbG9hZGVyLT5zdGFydE5ldHdvcmtMb2FkKFdURk1vdmUocmVxdWVzdCksIEZpcnN0TG9hZDo6
WWVzKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBpZiAoZW50cnkt
Pm5lZWRzVmFsaWRhdGlvbigpIHx8IHJlcXVlc3QuY2FjaGVQb2xpY3koKSA9PSBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeTo6UmVmcmVzaEFueUNhY2hlRGF0YSkgewotICAgICAg
ICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNoZUVudHJ5OiBWYWxpZGF0
aW5nIGNhY2hlIGVudHJ5IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2
NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3lu
Y2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFy
YW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3Vy
Y2UoKSwgaXNTeW5jaHJvbm91cygpKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoInJldHJpZXZlQ2FjaGVFbnRyeTogVmFsaWRhdGluZyBjYWNoZSBlbnRyeSAocGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2
NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0
ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2
NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJv
bm91cygpKTsKICAgICAgICAgICAgIGxvYWRlci0+dmFsaWRhdGVDYWNoZUVudHJ5KFdURk1vdmUo
ZW50cnkpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJldHJpZXZlZCByZXNvdXJjZSBm
cm9tIGNhY2hlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBy
ZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25v
dXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVy
cy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwg
aXNTeW5jaHJvbm91cygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmll
dmVDYWNoZUVudHJ5OiBSZXRyaWV2ZWQgcmVzb3VyY2UgZnJvbSBjYWNoZSAocGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAi
LCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJz
LndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgp
LCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91
cygpKTsKICAgICAgICAgbG9hZGVyLT5kaWRSZXRyaWV2ZUNhY2hlRW50cnkoV1RGTW92ZShlbnRy
eSkpOwogICAgIH0pOwogfQpAQCAtMjcxLDcgKzI3MSw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNl
TG9hZGVyOjpyZXRyaWV2ZUNhY2hlRW50cnkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
KQogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0TmV0d29ya0xvYWQoUmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCwgRmlyc3RMb2FkIGxvYWQpCiB7CiAgICAgaWYgKGxvYWQgPT0gRmly
c3RMb2FkOjpZZXMpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnROZXR3
b3JrTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJl
c291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91
cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJz
LndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBp
c1N5bmNocm9ub3VzKCkpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydE5l
dHdvcmtMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwg
cmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9u
b3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRl
cnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWlu
UmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKIAogICAgICAgICBjb25zdW1lU2FuZGJveEV4
dGVuc2lvbnMoKTsKIApAQCAtMjk3LDcgKzI5Nyw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9h
ZGVyOjpzdGFydE5ldHdvcmtMb2FkKFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEZpcnN0TG9h
CiAgICAgfQogICAgIGlmICghbmV0d29ya1Nlc3Npb24pIHsKICAgICAgICAgV1RGTG9nQWx3YXlz
KCJBdHRlbXB0ZWQgdG8gY3JlYXRlIGEgTmV0d29ya0xvYWQgd2l0aCBhIHNlc3Npb24gKGlkPSUi
IFBSSXU2NCAiKSB0aGF0IGRvZXMgbm90IGV4aXN0LiIsIHBhcmFtZXRlcnMuc2Vzc2lvbklELnNl
c3Npb25JRCgpKTsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgic3RhcnRO
ZXR3b3JrTG9hZDogQXR0ZW1wdGVkIHRvIGNyZWF0ZSBhIE5ldHdvcmtMb2FkIHdpdGggYSBzZXNz
aW9uIHRoYXQgZG9lcyBub3QgZXhpc3QgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgc2Vzc2lvbklEPSUiIFBSSXU2
NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndl
YkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBwYXJhbWV0ZXJzLnNlc3Npb25JRC5z
ZXNzaW9uSUQoKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoInN0YXJ0
TmV0d29ya0xvYWQ6IEF0dGVtcHRlZCB0byBjcmVhdGUgYSBOZXR3b3JrTG9hZCB3aXRoIGEgc2Vz
c2lvbiB0aGF0IGRvZXMgbm90IGV4aXN0IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9
ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIHNlc3Npb25JRD0lIiBQUkl1
NjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53
ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBwYXJhbWV0ZXJz
LnNlc3Npb25JRC5zZXNzaW9uSUQoKSk7CiAgICAgICAgIG1fY29ubmVjdGlvbi0+bmV0d29ya1By
b2Nlc3MoKS5sb2dEaWFnbm9zdGljTWVzc2FnZShtX3BhcmFtZXRlcnMud2ViUGFnZUlELCBXZWJD
b3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmludGVybmFsRXJyb3JLZXkoKSwgV2ViQ29yZTo6
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjppbnZhbGlkU2Vzc2lvbklES2V5KCksIFdlYkNvcmU6OlNo
b3VsZFNhbXBsZTo6Tm8pOwogICAgICAgICBkaWRGYWlsTG9hZGluZyhpbnRlcm5hbEVycm9yKHJl
cXVlc3QudXJsKCkpKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMzA2LDcgKzMwNiw3IEBAIHZvaWQg
TmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydE5ldHdvcmtMb2FkKFJlc291cmNlUmVxdWVzdCYm
IHJlcXVlc3QsIEZpcnN0TG9hCiAgICAgcGFyYW1ldGVycy5yZXF1ZXN0ID0gV1RGTW92ZShyZXF1
ZXN0KTsKICAgICBtX25ldHdvcmtMb2FkID0gc3RkOjptYWtlX3VuaXF1ZTxOZXR3b3JrTG9hZD4o
KnRoaXMsICZtX2Nvbm5lY3Rpb24tPmJsb2JSZWdpc3RyeSgpLCBXVEZNb3ZlKHBhcmFtZXRlcnMp
LCAqbmV0d29ya1Nlc3Npb24pOwogCi0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnRO
ZXR3b3JrTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgZGVzY3JpcHRpb24gPSAle3B1YmxpY31zKSIsIG1f
cGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQs
IG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBtX25ldHdvcmtMb2FkLT5kZXNjcmlwdGlvbigpLnV0
ZjgoKS5kYXRhKCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0TmV0d29ya0xv
YWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJj
ZUlEID0gJSIgUFJJdTY0ICIsIGRlc2NyaXB0aW9uID0gJXtwdWJsaWN9cykiLCBtX3BhcmFtZXRl
cnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0
KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBtX25ldHdvcmtMb2FkLT5kZXNjcmlwdGlvbigp
LnV0ZjgoKS5kYXRhKCkpOwogfQogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y2xlYW51
cChMb2FkUmVzdWx0IHJlc3VsdCkKQEAgLTMzMCw3ICszMzAsNyBAQCB2b2lkIE5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6Y2xlYW51cChMb2FkUmVzdWx0IHJlc3VsdCkKIAogdm9pZCBOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OmNvbnZlcnRUb0Rvd25sb2FkKERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSkKIHsKLSAgICBSRUxFQVNFX0xPRyhMb2FkaW5nLCAiQ29udmVydGluZyBOZXR3b3JrUmVz
b3VyY2VMb2FkZXIgJXAgdG8gZG93bmxvYWQgJSIgUFJJdTY0ICIgKHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCB0
aGlzLCBkb3dubG9hZElELmRvd25sb2FkSUQoKSwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJ
bnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIp
OworICAgIFJFTEVBU0VfTE9HKExvYWRpbmcsICJDb252ZXJ0aW5nIE5ldHdvcmtSZXNvdXJjZUxv
YWRlciAlcCB0byBkb3dubG9hZCAlIiBQUkl1NjQgIiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZy
YW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHRoaXMsIGRv
d25sb2FkSUQuZG93bmxvYWRJRCgpLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCks
IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlm
aWVyKTsKICAgICAKICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gaWYgdGhlIHJlc291cmNlIGNhbWUg
ZnJvbSB0aGUgZGlzayBjYWNoZS4KICAgICBpZiAoIW1fbmV0d29ya0xvYWQpIHsKQEAgLTM0OCw3
ICszNDgsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6YWJvcnQoKQogICAgIEFTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJhYm9y
dDogQ2FuY2VsaW5nIHJlc291cmNlIGxvYWQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLAotICAgICAgICBtX3Bh
cmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBt
X3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CisgICAgICAgIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQu
dG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0
ZXJzLmlkZW50aWZpZXIpOwogCiAgICAgaWYgKG1fcGFyYW1ldGVycy5vcHRpb25zLmtlZXBBbGl2
ZSAmJiBtX3Jlc3BvbnNlLmlzTnVsbCgpICYmICFtX2lzS2VwdEFsaXZlKSB7CiAgICAgICAgIG1f
aXNLZXB0QWxpdmUgPSB0cnVlOwpAQCAtNDMzLDcgKzQzMyw3IEBAIGJvb2wgTmV0d29ya1Jlc291
cmNlTG9hZGVyOjpzaG91bGRJbnRlcnJ1cHRMb2FkRm9yQ1NQRnJhbWVBbmNlc3RvcnNPclhGcmFt
ZU9wdGlvCiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2Uo
UmVzb3VyY2VSZXNwb25zZSYmIHJlY2VpdmVkUmVzcG9uc2UsIFJlc3BvbnNlQ29tcGxldGlvbkhh
bmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KCJkaWRSZWNlaXZlUmVzcG9uc2U6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGh0dHBTdGF0dXNDb2RlID0gJWQs
IGxlbmd0aCA9ICUiIFBSSWQ2NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQo
KSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCByZWNl
aXZlZFJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCksIHJlY2VpdmVkUmVzcG9uc2UuZXhwZWN0ZWRD
b250ZW50TGVuZ3RoKCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVS
ZXNwb25zZTogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJl
c291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaHR0cFN0YXR1c0NvZGUgPSAlZCwgbGVuZ3RoID0gJSIg
UFJJZDY0ICIpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRl
cnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgcmVjZWl2
ZWRSZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpLCByZWNlaXZlZFJlc3BvbnNlLmV4cGVjdGVkQ29u
dGVudExlbmd0aCgpKTsKIAogICAgIG1fcmVzcG9uc2UgPSBXVEZNb3ZlKHJlY2VpdmVkUmVzcG9u
c2UpOwogCkBAIC01MTMsNyArNTEzLDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRp
ZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVjZWl2ZWRSZXNwb24KIHZvaWQg
TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlQnVmZmVyKFJlZjxTaGFyZWRCdWZmZXI+
JiYgYnVmZmVyLCBpbnQgcmVwb3J0ZWRFbmNvZGVkRGF0YUxlbmd0aCkKIHsKICAgICBpZiAoIW1f
bnVtQnl0ZXNSZWNlaXZlZCkKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVj
ZWl2ZUJ1ZmZlcjogU3RhcnRlZCByZWNlaXZpbmcgZGF0YSAocGFnZUlEID0gJSIgUFJJdTY0ICIs
IGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fcGFy
YW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1f
cGFyYW1ldGVycy5pZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgi
ZGlkUmVjZWl2ZUJ1ZmZlcjogU3RhcnRlZCByZWNlaXZpbmcgZGF0YSAocGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIs
IG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1l
SUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIpOwogICAgIG1fbnVtQnl0ZXNS
ZWNlaXZlZCArPSBidWZmZXItPnNpemUoKTsKIAogICAgIEFTU0VSVCghbV9jYWNoZUVudHJ5Rm9y
VmFsaWRhdGlvbik7CkBAIC01NDIsNyArNTQyLDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXI6OmRpZFJlY2VpdmVCdWZmZXIoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIsIGludCByZXAK
IAogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoY29uc3QgTmV0
d29ya0xvYWRNZXRyaWNzJiBuZXR3b3JrTG9hZE1ldHJpY3MpCiB7Ci0gICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgiZGlkRmluaXNoTG9hZGluZzogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgbGVuZ3RoID0gJXpk
KSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZy
YW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBtX251bUJ5dGVzUmVjZWl2ZWQpOworICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZpbmlzaExvYWRpbmc6IChwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIs
IGxlbmd0aCA9ICV6ZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFy
YW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBt
X251bUJ5dGVzUmVjZWl2ZWQpOwogCiAgICAgaWYgKHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtM
b2FkTWV0cmljcygpKQogICAgICAgICBtX2Nvbm5lY3Rpb24tPmFkZE5ldHdvcmtMb2FkSW5mb3Jt
YXRpb25NZXRyaWNzKGlkZW50aWZpZXIoKSwgbmV0d29ya0xvYWRNZXRyaWNzKTsKQEAgLTU3Nyw3
ICs1NzcsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhj
b25zdCBOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMbwogCiB2b2lkIE5ldHdvcmtSZXNvdXJj
ZUxvYWRlcjo6ZGlkRmFpbExvYWRpbmcoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7Ci0g
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkRmFpbExvYWRpbmc6IChwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIs
IGlzVGltZW91dCA9ICVkLCBpc0NhbmNlbGxhdGlvbiA9ICVkLCBpc0FjY2Vzc0NvbnRyb2wgPSAl
ZCwgZXJyQ29kZSA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9w
YXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBlcnJvci5pc1Rp
bWVvdXQoKSwgZXJyb3IuaXNDYW5jZWxsYXRpb24oKSwgZXJyb3IuaXNBY2Nlc3NDb250cm9sKCks
IGVycm9yLmVycm9yQ29kZSgpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRGYWls
TG9hZGluZzogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJl
c291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNUaW1lb3V0ID0gJWQsIGlzQ2FuY2VsbGF0aW9uID0g
JWQsIGlzQWNjZXNzQ29udHJvbCA9ICVkLCBlcnJDb2RlID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndl
YlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBt
X3BhcmFtZXRlcnMuaWRlbnRpZmllciwgZXJyb3IuaXNUaW1lb3V0KCksIGVycm9yLmlzQ2FuY2Vs
bGF0aW9uKCksIGVycm9yLmlzQWNjZXNzQ29udHJvbCgpLCBlcnJvci5lcnJvckNvZGUoKSk7CiAK
ICAgICBpZiAoc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKCkpCiAgICAgICAg
IG1fY29ubmVjdGlvbi0+cmVtb3ZlTmV0d29ya0xvYWRJbmZvcm1hdGlvbihpZGVudGlmaWVyKCkp
OwpAQCAtNzQyLDcgKzc0Miw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjb250aW51
ZVdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiBuZXdSZXF1ZXN0CiAgICAgICAgIH0K
ICAgICB9CiAKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJjb250aW51ZVdpbGxTZW5kUmVx
dWVzdDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCks
IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CisgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiY29udGludWVXaWxsU2VuZFJlcXVlc3Q6IChwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJ
dTY0ICIpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMu
d2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CiAKICAgICBt
X2lzQWxsb3dlZFRvQXNrVXNlckZvckNyZWRlbnRpYWxzID0gaXNBbGxvd2VkVG9Bc2tVc2VyRm9y
Q3JlZGVudGlhbHM7CiAKQEAgLTk5NywxMiArOTk3LDE3IEBAIHN0YXRpYyBTdHJpbmcgZXNjYXBl
Rm9ySlNPTihTdHJpbmcgcykKIHN0YXRpYyBTdHJpbmcgZXNjYXBlSURGb3JKU09OKGNvbnN0IE9w
dGlvbmFsPHVpbnQ2NF90PiYgdmFsdWUpCiB7CiAgICAgcmV0dXJuIHZhbHVlID8gU3RyaW5nOjpu
dW1iZXIodmFsdWUudmFsdWUoKSkgOiBTdHJpbmcoIk5vbmUiX3MpOwotfTsKK30KKworc3RhdGlj
IFN0cmluZyBlc2NhcGVJREZvckpTT04oY29uc3QgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiYg
dmFsdWUpCit7CisgICAgcmV0dXJuIHZhbHVlID8gU3RyaW5nOjpudW1iZXIodmFsdWUtPnRvVUlu
dDY0KCkpIDogU3RyaW5nKCJOb25lIl9zKTsKK30KIAogc3RhdGljIFN0cmluZyBlc2NhcGVJREZv
ckpTT04oY29uc3QgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+JiB2YWx1ZSkKIHsKICAgICByZXR1
cm4gdmFsdWUgPyBTdHJpbmc6Om51bWJlcih2YWx1ZS0+dG9VSW50NjQoKSkgOiBTdHJpbmcoIk5v
bmUiX3MpOwotfTsKK30KIAogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmxvZ0Nvb2tpZUlu
Zm9ybWF0aW9uKCkgY29uc3QKIHsKQEAgLTEwMTQsNyArMTAxOSw3IEBAIHZvaWQgTmV0d29ya1Jl
c291cmNlTG9hZGVyOjpsb2dDb29raWVJbmZvcm1hdGlvbigpIGNvbnN0CiAgICAgbG9nQ29va2ll
SW5mb3JtYXRpb24obV9jb25uZWN0aW9uLCAiTmV0d29ya1Jlc291cmNlTG9hZGVyIiwgcmVpbnRl
cnByZXRfY2FzdDxjb25zdCB2b2lkKj4odGhpcyksICpuZXR3b3JrU3RvcmFnZVNlc3Npb24sIG9y
aWdpbmFsUmVxdWVzdCgpLmZpcnN0UGFydHlGb3JDb29raWVzKCksIFNhbWVTaXRlSW5mbzo6Y3Jl
YXRlKG9yaWdpbmFsUmVxdWVzdCgpKSwgb3JpZ2luYWxSZXF1ZXN0KCkudXJsKCksIG9yaWdpbmFs
UmVxdWVzdCgpLmh0dHBSZWZlcnJlcigpLCBmcmFtZUlEKCksIHBhZ2VJRCgpLCBpZGVudGlmaWVy
KCkpOwogfQogCi1zdGF0aWMgdm9pZCBsb2dCbG9ja2VkQ29va2llSW5mb3JtYXRpb24oTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIGNvbnN0IFN0cmluZyYgbGFiZWws
IGNvbnN0IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VT
ZXNzaW9uJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJp
bmcmIHJlZmVycmVyLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+IHBhZ2VJRCwgT3B0aW9uYWw8dWludDY0X3Q+IGlkZW50aWZpZXIpCitzdGF0aWMg
dm9pZCBsb2dCbG9ja2VkQ29va2llSW5mb3JtYXRpb24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MmIGNvbm5lY3Rpb24sIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IHZvaWQqIGxvZ2dl
ZE9iamVjdCwgY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBuZXR3b3JrU3Rv
cmFnZVNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBz
YW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBPcHRp
b25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBw
YWdlSUQsIE9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyKQogewogICAgIEFTU0VSVChOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OnNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKGNvbm5lY3Rpb24s
IG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5zZXNzaW9uSUQoKSkpOwogCkBAIC0xMDQxLDcgKzEwNDYs
NyBAQCBzdGF0aWMgdm9pZCBsb2dCbG9ja2VkQ29va2llSW5mb3JtYXRpb24oTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3RpbwogI3VuZGVmIExPQ0FMX0xPR19JRl9BTExPV0VE
CiB9CiAKLXN0YXRpYyB2b2lkIGxvZ0Nvb2tpZUluZm9ybWF0aW9uSW50ZXJuYWwoTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNv
bnN0IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNz
aW9uJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
V2ViQ29yZTo6U2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBjb25z
dCBTdHJpbmcmIHJlZmVycmVyLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8
UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgT3B0aW9uYWw8dWludDY0X3Q+IGlkZW50aWZpZXIpCitz
dGF0aWMgdm9pZCBsb2dDb29raWVJbmZvcm1hdGlvbkludGVybmFsKE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2b2lk
KiBsb2dnZWRPYmplY3QsIGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgbmV0
d29ya1N0b3JhZ2VTZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6
OlNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5n
JiByZWZlcnJlciwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQ
YWdlSWRlbnRpZmllcj4gcGFnZUlELCBPcHRpb25hbDx1aW50NjRfdD4gaWRlbnRpZmllcikKIHsK
ICAgICBBU1NFUlQoTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzaG91bGRMb2dDb29raWVJbmZvcm1h
dGlvbihjb25uZWN0aW9uLCBuZXR3b3JrU3RvcmFnZVNlc3Npb24uc2Vzc2lvbklEKCkpKTsKIApA
QCAtMTEwMiw3ICsxMTA3LDcgQEAgc3RhdGljIHZvaWQgbG9nQ29va2llSW5mb3JtYXRpb25JbnRl
cm5hbChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGkKICN1bmRlZiBMT0NB
TF9MT0dfSUZfQUxMT1dFRAogfQogCi12b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6bG9nQ29v
a2llSW5mb3JtYXRpb24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24s
IGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29uc3QgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24sIGNvbnN0IFVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJs
LCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0
aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgT3B0aW9uYWw8dWludDY0X3Q+IGlkZW50aWZp
ZXIpCit2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6bG9nQ29va2llSW5mb3JtYXRpb24oTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIGNvbnN0IFN0cmluZyYgbGFi
ZWwsIGNvbnN0IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiBuZXR3b3JrU3RvcmFnZVNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2Ft
ZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJl
ZmVycmVyLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPiBwYWdlSUQsIE9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyKQogewogICAg
IEFTU0VSVChzaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbihjb25uZWN0aW9uLCBuZXR3b3JrU3Rv
cmFnZVNlc3Npb24uc2Vzc2lvbklEKCkpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKaW5kZXggNGI0Y2U0ZjA4ZjhiODBh
YTc5ZDgxYmJhMjVmNmUyNDk4N2E2MjRkMi4uMDg2OTU2YmEyODZhMjRlMzE0MjI3NmMxOTZlMDFj
MzkyNWEzNDRmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5oCkBAIC04Myw3ICs4Myw3IEBAIHB1YmxpYzoKICAgICBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvblRvV2ViUHJvY2VzcygpIGNvbnN0
IHsgcmV0dXJuIG1fY29ubmVjdGlvbjsgfQogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgp
IGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy5zZXNzaW9uSUQ7IH0KICAgICBSZXNvdXJjZUxv
YWRJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3BhcmFtZXRlcnMuaWRl
bnRpZmllcjsgfQotICAgIHVpbnQ2NF90IGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX3BhcmFt
ZXRlcnMud2ViRnJhbWVJRDsgfQorICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
KCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQ7IH0KICAgICBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciBwYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3BhcmFtZXRlcnMud2Vi
UGFnZUlEOyB9CiAKICAgICBzdHJ1Y3QgU3luY2hyb25vdXNMb2FkRGF0YTsKQEAgLTExMCw3ICsx
MTAsNyBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAm
JiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBzdGF0aWMgYm9vbCBzaG91bGRMb2dDb29raWVJ
bmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIGNvbnN0IFBBTDo6U2Vz
c2lvbklEJik7Ci0gICAgc3RhdGljIHZvaWQgbG9nQ29va2llSW5mb3JtYXRpb24oTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2b2lkKiBs
b2dnZWRPYmplY3QsIGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJM
JiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9w
dGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgT3B0aW9uYWw8dWludDY0X3Q+IGlkZW50
aWZpZXIpOworICAgIHN0YXRpYyB2b2lkIGxvZ0Nvb2tpZUluZm9ybWF0aW9uKE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzJiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9n
Z2VkT2JqZWN0LCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBV
UkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYs
IGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
cj4sIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgT3B0aW9uYWw8dWludDY0X3Q+
IGlkZW50aWZpZXIpOwogI2VuZGlmCiAKICAgICB2b2lkIGRpc2FibGVFeHRyYU5ldHdvcmtMb2Fk
TWV0cmljc0NhcHR1cmUoKSB7IG1fc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNz
ID0gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZS5oCmluZGV4IGQ5NGZjNzM4MGYxOWE1ZjVmNWI3OGVhMzllZjFkNjVhOTIxMWVl
NGYuLjg1ZDEwMGNhNmM3YzA1ZmI4YzNkMTJkMDNhNDQwMjgxMTAzOTVlZjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaApAQCAtMjgs
NiArMjgsNyBAQAogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZUVudHJ5LmgiCiAjaW5jbHVkZSAiTmV0
d29ya0NhY2hlU3RvcmFnZS5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZVJlc291cmNlLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJ
ZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CiAjaW5j
bHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CkBAIC04NSw3ICs4Niw3IEBAIGVudW0gY2xh
c3MgVXNlRGVjaXNpb24gewogICAgIE5vRHVlVG9FeHBpcmVkUmVkaXJlY3QKIH07CiAKLXVzaW5n
IEdsb2JhbEZyYW1lSUQgPSBzdGQ6OnBhaXI8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2
NF90IC8qd2ViRnJhbWVJRCovPjsKK3VzaW5nIEdsb2JhbEZyYW1lSUQgPSBzdGQ6OnBhaXI8V2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj47IC8vIEZJWE1F
OiBVc2UgR2xvYmFsRnJhbWVJZGVudGlmaWVyLgogCiBlbnVtIGNsYXNzIENhY2hlT3B0aW9uIDog
dWludDhfdCB7CiAgICAgLy8gSW4gdGVzdGluZyBtb2RlIHdlIHRyeSB0byBlbGltaW5hdGUgc291
cmNlcyBvZiByYW5kb21uZXNzLiBDYWNoZSBkb2VzIG5vdCBzaHJpbmsgYW5kIHRoZXJlIGFyZSBu
byByZWFkIHRpbWVvdXRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCmluZGV4IDc3MWIzYWI1OTExM2UzNTE5
N2JiOWVkMjg0ZDBlY2IwZTIzMGM2ZTIuLjZjNjFlOTIxYjQwMTRjMWQ1Mzg0MGE4N2FiMjcwNzg3
NTZhNjQ4OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2Ev
TmV0d29ya0RhdGFUYXNrQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKQEAgLTQyLDcgKzQyLDcgQEAgY2xhc3MgTmV0
d29ya1Nlc3Npb25Db2NvYTsKIGNsYXNzIE5ldHdvcmtEYXRhVGFza0NvY29hIGZpbmFsIDogcHVi
bGljIE5ldHdvcmtEYXRhVGFzayB7CiAgICAgZnJpZW5kIGNsYXNzIE5ldHdvcmtTZXNzaW9uQ29j
b2E7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxOZXR3b3JrRGF0YVRhc2s+IGNyZWF0ZShOZXR3
b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgdWludDY0X3QgZnJhbWVJRCwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9s
aWN5IHNob3VsZENvbnRlbnRTbmlmZiwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQ
b2xpY3kgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJl
ck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVjdE9u
bHksIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24sIGJvb2wgZGF0YVRhc2tJ
c0Zvck1haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSwgT3B0aW9uYWw8TmV0d29ya0Fj
dGl2aXR5VHJhY2tlcj4gbmV0d29ya0FjdGl2aXR5VHJhY2tlcikKKyAgICBzdGF0aWMgUmVmPE5l
dHdvcmtEYXRhVGFzaz4gY3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0
YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRl
bnRTbmlmZiwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgc2hvdWxkQ29u
dGVudEVuY29kaW5nU25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBS
ZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHksIGJvb2wgZGF0YVRh
c2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24sIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5SZXNvdXJj
ZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSwgT3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4g
bmV0d29ya0FjdGl2aXR5VHJhY2tlcikKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IE5ldHdvcmtEYXRhVGFza0NvY29hKHNlc3Npb24sIGNsaWVudCwgcmVxdWVzdCwgZnJhbWVJ
RCwgcGFnZUlELCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgc2hvdWxkQ29udGVudFNuaWZmLCBz
aG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hU
VFBSZWRpcmVjdCwgc2hvdWxkUHJlY29ubmVjdE9ubHksIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVO
YXZpZ2F0aW9uLCBkYXRhVGFza0lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1l
LCBuZXR3b3JrQWN0aXZpdHlUcmFja2VyKSk7CiAgICAgfQpAQCAtNjksMTMgKzY5LDEzIEBAIHB1
YmxpYzoKIAogICAgIFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRNZXRy
aWNzKCkgeyByZXR1cm4gbV9uZXR3b3JrTG9hZE1ldHJpY3M7IH0KIAotICAgIHVpbnQ2NF90IGZy
YW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH07CisgICAgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH07CiAgICAgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlSUQ7IH07
CiAKICAgICBTdHJpbmcgZGVzY3JpcHRpb24oKSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToK
LSAgICBOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtEYXRhVGFz
a0NsaWVudCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIHVpbnQ2NF90IGZyYW1l
SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBXZWJDb3JlOjpDb250ZW50RW5j
b2RpbmdTbmlmZmluZ1BvbGljeSwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRU
UFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2
aWdhdGlvbiwgYm9vbCBkYXRhVGFza0lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZy
YW1lLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPik7CisgICAgTmV0d29ya0RhdGFU
YXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2Vi
Q29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlm
ZmluZ1BvbGljeSwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0
LCBQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwg
Ym9vbCBkYXRhVGFza0lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lLCBPcHRp
b25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPik7CiAKICAgICBib29sIHRyeVBhc3N3b3JkQmFz
ZWRBdXRoZW50aWNhdGlvbihjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYs
IENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJik7CiAgICAgdm9pZCBhcHBseVNuaWZmaW5nUG9s
aWNpZXNBbmRCaW5kUmVxdWVzdFRvSW5mZXJmYWNlSWZOZWVkZWQoX19zdHJvbmcgTlNVUkxSZXF1
ZXN0KiYsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENvbnRlbnRFbmNvZGlu
Z1NuaWZmKTsKQEAgLTkyLDcgKzkyLDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8U2FuZGJveEV4
dGVuc2lvbj4gbV9zYW5kYm94RXh0ZW5zaW9uOwogICAgIFJldGFpblB0cjxOU1VSTFNlc3Npb25E
YXRhVGFzaz4gbV90YXNrOwogICAgIFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyBtX25ldHdv
cmtMb2FkTWV0cmljczsKLSAgICB1aW50NjRfdCBtX2ZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIG1fZnJhbWVJRDsKICAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBtX3Bh
Z2VJRDsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29h
Lm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tD
b2NvYS5tbQppbmRleCAxZjRlN2I0NGM4ODQ2YWJjZWRlYWVhZWM5YWVjOWFjZWM1MWQ0ZDFjLi4w
NDhiOTU5MjAyNzg1ODQ3MTFkZGI5ZTg3YjI1MTI5NmZkYmQ1M2EwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29j
b2EubW0KQEAgLTE2OCw3ICsxNjgsNyBAQCBzdGF0aWMgdm9pZCB1cGRhdGVUYXNrV2l0aEZpcnN0
UGFydHlGb3JTYW1lU2l0ZUNvb2tpZXMoTlNVUkxTZXNzaW9uRGF0YVRhc2sqIHRhcwogI2VuZGlm
CiB9CiAKLU5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3Jr
U2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgdWludDY0X3Qg
ZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpTdG9yZWRD
cmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVu
dFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgV2ViQ29yZTo6Q29udGVudEVuY29k
aW5nU25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIGJvb2wgc2hvdWxk
Q2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hvdWxk
UHJlY29ubmVjdE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24sIGJv
b2wgZGF0YVRhc2tJc0Zvck1haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSwgT3B0aW9u
YWw8TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4gbmV0d29ya0FjdGl2aXR5VHJhY2tlcikKK05ldHdv
cmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vz
c2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6U3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNv
bnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIFdlYkNvcmU6OkNvbnRlbnRF
bmNvZGluZ1NuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBib29sIHNo
b3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNo
b3VsZFByZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9u
LCBib29sIGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIE9w
dGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+IG5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpCiAg
ICAgOiBOZXR3b3JrRGF0YVRhc2soc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0V2l0aENyZWRlbnRp
YWxzLCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNU
b0hUVFBSZWRpcmVjdCwgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24pCiAgICAgLCBt
X2ZyYW1lSUQoZnJhbWVJRCkKICAgICAsIG1fcGFnZUlEKHBhZ2VJRCkKQEAgLTI0OCw3ICsyNDgs
NyBAQCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nl
c3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVAogICAgIGlmIChzaG91bGRCbG9ja0Nvb2tpZXMp
IHsKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAgICAgaWYgKG1fc2Vzc2lvbi0+c2hv
dWxkTG9nQ29va2llSW5mb3JtYXRpb24oKSkKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGKGlz
QWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3b3JrLCAiJXAgLSBOZXR3b3JrRGF0YVRhc2tD
b2NvYTo6bG9nQ29va2llSW5mb3JtYXRpb246IHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1
LCB0YXNrSUQgPSAlbHU6IEJsb2NraW5nIGNvb2tpZXMgZm9yIFVSTCAlcyIsIHRoaXMsIHBhZ2VJ
RC50b1VJbnQ2NCgpLCBmcmFtZUlELCAodW5zaWduZWQgbG9uZylbbV90YXNrIHRhc2tJZGVudGlm
aWVyXSwgbnNSZXF1ZXN0LlVSTC5hYnNvbHV0ZVN0cmluZy5VVEY4U3RyaW5nKTsKKyAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3b3JrLCAi
JXAgLSBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6bG9nQ29va2llSW5mb3JtYXRpb246IHBhZ2VJRCA9
ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCB0YXNrSUQgPSAlbHU6IEJsb2NraW5nIGNvb2tpZXMgZm9y
IFVSTCAlcyIsIHRoaXMsIHBhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCksICh1
bnNpZ25lZCBsb25nKVttX3Rhc2sgdGFza0lkZW50aWZpZXJdLCBuc1JlcXVlc3QuVVJMLmFic29s
dXRlU3RyaW5nLlVURjhTdHJpbmcpOwogI2Vsc2UKICAgICAgICAgTE9HKE5ldHdvcmtTZXNzaW9u
LCAiJWxsdSBCbG9ja2luZyBjb29raWVzIGZvciBVUkwgJXMiLCBbbV90YXNrIHRhc2tJZGVudGlm
aWVyXSwgbnNSZXF1ZXN0LlVSTC5hYnNvbHV0ZVN0cmluZy5VVEY4U3RyaW5nKTsKICNlbmRpZgpA
QCAtMzc5LDcgKzM3OSw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrQ29jb2E6OndpbGxQZXJmb3Jt
SFRUUFJlZGlyZWN0aW9uKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmCiAgICAgICAgIHx8ICht
X3Nlc3Npb24tPm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpICYmIG1fc2Vzc2lvbi0+bmV0d29ya1N0
b3JhZ2VTZXNzaW9uKCktPnNob3VsZEJsb2NrQ29va2llcyhyZXF1ZXN0LCBtX2ZyYW1lSUQsIG1f
cGFnZUlEKSk7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgaWYgKG1fc2Vzc2lvbi0+
c2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oKSkKLSAgICAgICAgUkVMRUFTRV9MT0dfSUYoaXNB
bHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdvcmssICIlcCAtIE5ldHdvcmtEYXRhVGFza0Nv
Y29hOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbjo6bG9nQ29va2llSW5mb3JtYXRpb246IHBh
Z2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCB0YXNrSUQgPSAlbHU6ICVzIGNvb2tpZXMgZm9y
IHJlZGlyZWN0IFVSTCAlcyIsIHRoaXMsIG1fcGFnZUlELnRvVUludDY0KCksIG1fZnJhbWVJRCwg
KHVuc2lnbmVkIGxvbmcpW21fdGFzayB0YXNrSWRlbnRpZmllcl0sIChzaG91bGRCbG9ja0Nvb2tp
ZXMgPyAiQmxvY2tpbmciIDogIk5vdCBibG9ja2luZyIpLCByZXF1ZXN0LnVybCgpLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9nZ2lu
Z0FsbG93ZWQoKSwgTmV0d29yaywgIiVwIC0gTmV0d29ya0RhdGFUYXNrQ29jb2E6OndpbGxQZXJm
b3JtSFRUUFJlZGlyZWN0aW9uOjpsb2dDb29raWVJbmZvcm1hdGlvbjogcGFnZUlEID0gJWxsdSwg
ZnJhbWVJRCA9ICVsbHUsIHRhc2tJRCA9ICVsdTogJXMgY29va2llcyBmb3IgcmVkaXJlY3QgVVJM
ICVzIiwgdGhpcywgbV9wYWdlSUQudG9VSW50NjQoKSwgbV9mcmFtZUlELnRvVUludDY0KCksICh1
bnNpZ25lZCBsb25nKVttX3Rhc2sgdGFza0lkZW50aWZpZXJdLCAoc2hvdWxkQmxvY2tDb29raWVz
ID8gIkJsb2NraW5nIiA6ICJOb3QgYmxvY2tpbmciKSwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKS51
dGY4KCkuZGF0YSgpKTsKICNlbHNlCiAgICAgTE9HKE5ldHdvcmtTZXNzaW9uLCAiJWxsdSAlcyBj
b29raWVzIGZvciByZWRpcmVjdCBVUkwgJXMiLCBbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgKHNo
b3VsZEJsb2NrQ29va2llcyA/ICJCbG9ja2luZyIgOiAiTm90IGJsb2NraW5nIiksIHJlcXVlc3Qu
dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYKQEAgLTM5Miw3ICszOTIsNyBA
QCB2b2lkIE5ldHdvcmtEYXRhVGFza0NvY29hOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbihX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJgogICAgIGlmICghc2hvdWxkQmxvY2tDb29raWVzKSB7
CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgICAgIGlmIChtX3Nlc3Npb24tPnNob3Vs
ZExvZ0Nvb2tpZUluZm9ybWF0aW9uKCkpCi0gICAgICAgICAgICBSRUxFQVNFX0xPR19JRihpc0Fs
d2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29yaywgIiVwIC0gTmV0d29ya0RhdGFUYXNrQ29j
b2E6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uOjpsb2dDb29raWVJbmZvcm1hdGlvbjogcGFn
ZUlEID0gJWxsdSwgZnJhbWVJRCA9ICVsbHUsIHRhc2tJRCA9ICVsdTogTm90IHBhcnRpdGlvbmlu
ZyBjb29raWVzIGZvciByZWRpcmVjdCBVUkwgJXMiLCB0aGlzLCBtX3BhZ2VJRC50b1VJbnQ2NCgp
LCBtX2ZyYW1lSUQsICh1bnNpZ25lZCBsb25nKVttX3Rhc2sgdGFza0lkZW50aWZpZXJdLCByZXF1
ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgUkVMRUFTRV9M
T0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdvcmssICIlcCAtIE5ldHdvcmtE
YXRhVGFza0NvY29hOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbjo6bG9nQ29va2llSW5mb3Jt
YXRpb246IHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCB0YXNrSUQgPSAlbHU6IE5vdCBw
YXJ0aXRpb25pbmcgY29va2llcyBmb3IgcmVkaXJlY3QgVVJMICVzIiwgdGhpcywgbV9wYWdlSUQu
dG9VSW50NjQoKSwgbV9mcmFtZUlELnRvVUludDY0KCksICh1bnNpZ25lZCBsb25nKVttX3Rhc2sg
dGFza0lkZW50aWZpZXJdLCByZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwog
I2Vsc2UKICAgICAgICAgTE9HKE5ldHdvcmtTZXNzaW9uLCAiJWxsdSBOb3QgcGFydGl0aW9uaW5n
IGNvb2tpZXMgZm9yIHJlZGlyZWN0IFVSTCAlcyIsIFttX3Rhc2sgdGFza0lkZW50aWZpZXJdLCBy
ZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCBmMGVjOGRjMWI3MTY5YmNjYTU1YTY1
NDkxMmVkMmZlZjUzNzBkZjEwLi5jMDFlODk1OWU4MDdmZjYyNGVmODU3N2ViMzU1NjVlNDJkOTNh
M2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTIwNSw2
ICsyMDUsNyBAQCBkZWYgZm9yd2FyZF9kZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnMocmVjZWl2ZXIp
OgogICAgICAgICAnU3RyaW5nJywKICAgICAgICAgJ1dlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmll
cicsCiAgICAgICAgICdXZWJDb3JlOjpGZXRjaElkZW50aWZpZXInLAorICAgICAgICAnV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlBhZ2VJZGVudGlmaWVyJywK
ICAgICAgICAgJ1dlYkNvcmU6OlBvaW50ZXJJRCcsCiAgICAgICAgICdXZWJDb3JlOjpQcm9jZXNz
SWRlbnRpZmllcicsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRnJh
bWVIYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmNw
cAppbmRleCA3OTY0NmFjNmU1OWM0MWQ0ZGY3MDkwMWRiYTdlMjY3NTMzNmQ1MjRhLi40MDgwMTM4
ODU0OGExODExYWI1OWU1Y2IyNDVhMTE1MjExNDJiZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0FQSS9BUElGcmFtZUhhbmRsZS5jcHAKQEAgLTMxLDE3ICszMSwxNyBAQAogCiBuYW1lc3Bh
Y2UgQVBJIHsKIAotUmVmPEZyYW1lSGFuZGxlPiBGcmFtZUhhbmRsZTo6Y3JlYXRlKHVpbnQ2NF90
IGZyYW1lSUQpCitSZWY8RnJhbWVIYW5kbGU+IEZyYW1lSGFuZGxlOjpjcmVhdGUoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRnJh
bWVIYW5kbGUoZnJhbWVJRCwgZmFsc2UpKTsKIH0KIAotUmVmPEZyYW1lSGFuZGxlPiBGcmFtZUhh
bmRsZTo6Y3JlYXRlQXV0b2NvbnZlcnRpbmcodWludDY0X3QgZnJhbWVJRCkKK1JlZjxGcmFtZUhh
bmRsZT4gRnJhbWVIYW5kbGU6OmNyZWF0ZUF1dG9jb252ZXJ0aW5nKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBmcmFtZUlEKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZyYW1lSGFuZGxl
KGZyYW1lSUQsIHRydWUpKTsKIH0KIAotRnJhbWVIYW5kbGU6OkZyYW1lSGFuZGxlKHVpbnQ2NF90
IGZyYW1lSUQsIGJvb2wgaXNBdXRvY29udmVydGluZykKK0ZyYW1lSGFuZGxlOjpGcmFtZUhhbmRs
ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCBpc0F1dG9jb252ZXJ0aW5n
KQogICAgIDogbV9mcmFtZUlEKGZyYW1lSUQpCiAgICAgLCBtX2lzQXV0b2NvbnZlcnRpbmcoaXNB
dXRvY29udmVydGluZykKIHsKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBGcmFtZUhhbmRsZTo6ZW5j
b2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIAogYm9vbCBGcmFtZUhhbmRsZTo6ZGVj
b2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPE9iamVjdD4mIHJlc3VsdCkKIHsKLSAg
ICB1aW50NjRfdCBmcmFtZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZnJhbWVJRCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxl
LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuaAppbmRleCBiMTBl
ODA4YTRiMTlhZDMxM2Q4YjQ1NWMyM2I5ZDgzOTljYzM4NTUwLi4xYzY0YTRhZDFlODAyYTA0Njcy
OTgxYmNiZjhhNzYwMTY0MjVmZmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
UEkvQVBJRnJhbWVIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRnJh
bWVIYW5kbGUuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBBUElGcmFtZUhhbmRsZV9oCiAK
ICNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmll
ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIAogbmFtZXNwYWNlIElQQyB7CkBAIC0zOCwyMCAr
MzksMjAgQEAgbmFtZXNwYWNlIEFQSSB7CiAKIGNsYXNzIEZyYW1lSGFuZGxlIDogcHVibGljIE9i
amVjdEltcGw8T2JqZWN0OjpUeXBlOjpGcmFtZUhhbmRsZT4gewogcHVibGljOgotICAgIHN0YXRp
YyBSZWY8RnJhbWVIYW5kbGU+IGNyZWF0ZSh1aW50NjRfdCBmcmFtZUlEKTsKLSAgICBzdGF0aWMg
UmVmPEZyYW1lSGFuZGxlPiBjcmVhdGVBdXRvY29udmVydGluZyh1aW50NjRfdCBmcmFtZUlEKTsK
KyAgICBzdGF0aWMgUmVmPEZyYW1lSGFuZGxlPiBjcmVhdGUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyKTsKKyAgICBzdGF0aWMgUmVmPEZyYW1lSGFuZGxlPiBjcmVhdGVBdXRvY29udmVydGluZyhX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogCi0gICAgZXhwbGljaXQgRnJhbWVIYW5kbGUodWlu
dDY0X3QgZnJhbWVJRCwgYm9vbCBpc0F1dG9jb252ZXJ0aW5nKTsKKyAgICBleHBsaWNpdCBGcmFt
ZUhhbmRsZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGJvb2wgaXNBdXRvY29udmVydGluZyk7
CiAgICAgdmlydHVhbCB+RnJhbWVIYW5kbGUoKTsKIAotICAgIHVpbnQ2NF90IGZyYW1lSUQoKSBj
b25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQogICAgIGJvb2wgaXNBdXRvY29u
dmVydGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNBdXRvY29udmVydGluZzsgfQogCiAgICAgdm9p
ZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQ
Qzo6RGVjb2RlciYsIFJlZlB0cjxPYmplY3Q+Jik7CiAKIHByaXZhdGU6Ci0gICAgY29uc3QgdWlu
dDY0X3QgbV9mcmFtZUlEOworICAgIGNvbnN0IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX2Zy
YW1lSUQ7CiAgICAgY29uc3QgYm9vbCBtX2lzQXV0b2NvbnZlcnRpbmc7CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5kbGUubW0gYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5kbGUubW0KaW5kZXggYTQx
YTYxM2E3ZDM3MWQ3YWUyYTczZTQwNTgyN2IwYWJkNzM1NzA3MC4uZWRjYjM4ZTYzNWE3YmYwOTI3
YjExMGNjN2Q0Y2Y5NzY2YWI1ZDA4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
QVBJL0NvY29hL19XS0ZyYW1lSGFuZGxlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQ
SS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5tbQpAQCAtMjYsNiArMjYsOCBAQAogI2ltcG9ydCAiY29u
ZmlnLmgiCiAjaW1wb3J0ICJfV0tGcmFtZUhhbmRsZUludGVybmFsLmgiCiAKKyNpbXBvcnQgPFdl
YkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CisKIEBpbXBsZW1lbnRhdGlvbiBfV0tGcmFtZUhhbmRs
ZSB7CiAgICAgQVBJOjpPYmplY3RTdG9yYWdlPEFQSTo6RnJhbWVIYW5kbGU+IF9mcmFtZUhhbmRs
ZTsKIH0KQEAgLTUwLDEyICs1MiwxMiBAQCAtIChCT09MKWlzRXF1YWw6KGlkKW9iamVjdAogCiAt
IChOU1VJbnRlZ2VyKWhhc2gKIHsKLSAgICByZXR1cm4gX2ZyYW1lSGFuZGxlLT5mcmFtZUlEKCk7
CisgICAgcmV0dXJuIF9mcmFtZUhhbmRsZS0+ZnJhbWVJRCgpLnRvVUludDY0KCk7CiB9CiAKIC0g
KHVpbnQ2NF90KV9mcmFtZUlECiB7Ci0gICAgcmV0dXJuIF9mcmFtZUhhbmRsZS0+ZnJhbWVJRCgp
OworICAgIHJldHVybiBfZnJhbWVIYW5kbGUtPmZyYW1lSUQoKS50b1VJbnQ2NCgpOwogfQogCiAj
cHJhZ21hIG1hcmsgTlNDb3B5aW5nIHByb3RvY29sIGltcGxlbWVudGF0aW9uCkBAIC04MywxNCAr
ODUsMTQgQEAgLSAoaWQpaW5pdFdpdGhDb2RlcjooTlNDb2RlciAqKWRlY29kZXIKICAgICAgICAg
cmV0dXJuIG5pbDsKICAgICB9CiAKLSAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVy
PEFQSTo6RnJhbWVIYW5kbGU+KHNlbGYsIGZyYW1lSUQudW5zaWduZWRMb25nTG9uZ1ZhbHVlLCBm
YWxzZSk7CisgICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OkZyYW1lSGFu
ZGxlPihzZWxmLCBXZWJDb3JlOjpmcmFtZUlkZW50aWZpZXJGcm9tSUQoZnJhbWVJRC51bnNpZ25l
ZExvbmdMb25nVmFsdWUpLCBmYWxzZSk7CiAKICAgICByZXR1cm4gc2VsZjsKIH0KIAogLSAodm9p
ZCllbmNvZGVXaXRoQ29kZXI6KE5TQ29kZXIgKiljb2RlcgogewotICAgIFtjb2RlciBlbmNvZGVP
YmplY3Q6QChfZnJhbWVIYW5kbGUtPmZyYW1lSUQoKSkgZm9yS2V5OkAiZnJhbWVJRCJdOworICAg
IFtjb2RlciBlbmNvZGVPYmplY3Q6QChbc2VsZiBfZnJhbWVJRF0pIGZvcktleTpAImZyYW1lSUQi
XTsKIH0KIAogI3ByYWdtYSBtYXJrIFdLT2JqZWN0IHByb3RvY29sIGltcGxlbWVudGF0aW9uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNh
dGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0
aGVudGljYXRpb25NYW5hZ2VyLmNwcAppbmRleCA5ZGViNzZmZjEzMmM2Y2I1ZmRmNWViZjUyMjIz
NGY2ZDQ0M2VmOTRkLi4zOGE1YmZmNmFmZDI1NzFkNTJkY2U0YzA5ODA0YWE3NTQ0YWJlNGYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNh
dGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9u
L0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAKQEAgLTEwOCw3ICsxMDgsNyBAQCBWZWN0b3I8dWlu
dDY0X3Q+IEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6Y29hbGVzY2VDaGFsbGVuZ2VzTWF0Y2hpbmco
dWludDY0X3QgY2hhbAogICAgIHJldHVybiBjaGFsbGVuZ2VzVG9Db2FsZXNjZTsKIH0KIAotdm9p
ZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgQ2hhbGxlbmdlQ29tcGxl
dGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgQXV0aGVudGljYXRpb25NYW5h
Z2VyOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUGFnZUlkZW50aWZpZXIgcGFn
ZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChwYWdlSUQpOwogICAgIEFTU0VSVChm
cmFtZUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9u
L0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGlj
YXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgKaW5kZXggODZlNzQ0YzEwOGRmNGNiY2Y1ZDA0
NzYwOWFjZjk2YzY4MjNkNmIxNi4uNDAzNmVhYjc3ZmQ5Y2UxNTU1MzBmYjZhNGNjNTYxNjgzZDdl
ZDkxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0
aGVudGljYXRpb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGlj
YXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRl
ICJOZXR3b3JrUHJvY2Vzc1N1cHBsZW1lbnQuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzU3VwcGxl
bWVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFn
ZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtNjEsNyArNjIsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0
aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUoKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxsZW5n
ZUNvbXBsZXRpb25IYW5kbGVyJiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgQ2hhbGxlbmdlQ29t
cGxldGlvbkhhbmRsZXImJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UoSVBDOjpNZXNzYWdlU2VuZGVyJiBkb3dubG9hZCwgY29uc3QgV2ViQ29yZTo6QXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYmKTsKIAogICAg
IHZvaWQgY29tcGxldGVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh1aW50NjRfdCBjaGFsbGVuZ2VJ
RCwgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbiwgV2ViQ29yZTo6Q3JlZGVudGlh
bCYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaAppbmRleCBhODI4MzY4NmYxNmFi
M2NkMzUyNDljZTcwNWQzZjJiOGU3YmIzYzY2Li4xM2EwMjk5NDRiMjg5OTBhY2FiNDgyNmY3NmY1
M2Q0NDc5ZDM3YTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9GcmFtZUluZm9E
YXRhLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRnJhbWVJbmZvRGF0YS5oCkBAIC0yNSw2
ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50
aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAKQEAgLTQyLDcgKzQzLDcgQEAgc3RydWN0
IEZyYW1lSW5mb0RhdGEgewogICAgIGJvb2wgaXNNYWluRnJhbWUgeyBmYWxzZSB9OwogICAgIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0OwogICAgIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSBzZWN1cml0eU9yaWdpbjsKLSAgICB1aW50NjRfdCBmcmFtZUlEIHsgMCB9OworICAg
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tGcmFtZUhhbmRsZVJlZi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lSGFuZGxlUmVmLmNwcAppbmRleCBiMzlm
Y2ExYmU1N2YwZDI3NGQ4NDU3ZjA0M2Y1MGVhYjYyZjIzYzU4Li5lODczZmM0NjUxZDUyNjkzODkz
NjlmYzYwYTc4MDI2NTQyMDVkZDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS0ZyYW1lSGFuZGxlUmVmLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS0ZyYW1lSGFuZGxlUmVmLmNwcApAQCAtMzgsNSArMzgsNSBAQCBXS1R5cGVJRCBX
S0ZyYW1lSGFuZGxlR2V0VHlwZUlEKCkKIAogdWludDY0X3QgV0tGcmFtZUhhbmRsZUdldEZyYW1l
SUQoV0tGcmFtZUhhbmRsZVJlZiBmcmFtZUhhbmRsZVJlZikKIHsKLSAgICByZXR1cm4gdG9JbXBs
KGZyYW1lSGFuZGxlUmVmKS0+ZnJhbWVJRCgpOworICAgIHJldHVybiB0b0ltcGwoZnJhbWVIYW5k
bGVSZWYpLT5mcmFtZUlEKCkudG9VSW50NjQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDNjYzg2YTlmNzNlNDgyYjU5NDE1YmVk
OGVlZTc0ZGY5ODUwMjdlMGYuLmU3YTFkOWExNWJkMzU1NWQ1MmQ5OWEzNjQyM2NkMjBhYTVkNDVj
NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQpAQCAtNjYxOCw3ICs2NjE4LDcgQEAgLSAoTlNQcmludE9wZXJhdGlvbiAqKV9wcmludE9wZXJh
dGlvbldpdGhQcmludEluZm86KE5TUHJpbnRJbmZvICopcHJpbnRJbmZvCiAKIC0gKE5TUHJpbnRP
cGVyYXRpb24gKilfcHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvOihOU1ByaW50SW5mbyAqKXBy
aW50SW5mbyBmb3JGcmFtZTooX1dLRnJhbWVIYW5kbGUgKilmcmFtZUhhbmRsZQogewotICAgIGlm
IChhdXRvKiB3ZWJGcmFtZVByb3h5ID0gX3BhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUhh
bmRsZS5fZnJhbWVJRCkpCisgICAgaWYgKGF1dG8qIHdlYkZyYW1lUHJveHkgPSBfcGFnZS0+cHJv
Y2VzcygpLndlYkZyYW1lKFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRChmcmFtZUhhbmRs
ZS5fZnJhbWVJRCkpKQogICAgICAgICByZXR1cm4gX2ltcGwtPnByaW50T3BlcmF0aW9uV2l0aFBy
aW50SW5mbyhwcmludEluZm8sICp3ZWJGcmFtZVByb3h5KTsKICAgICByZXR1cm4gbmlsOwogfQpA
QCAtNzExMSw3ICs3MTExLDcgQEAgLSAodm9pZClfY29tcGxldGVJbW1lZGlhdGVBY3Rpb25Bbmlt
YXRpb24KIAogLSAoQk9PTClfY2FuQ2hhbmdlRnJhbWVMYXlvdXQ6KF9XS0ZyYW1lSGFuZGxlICop
ZnJhbWVIYW5kbGUKIHsKLSAgICBpZiAoYXV0byogd2ViRnJhbWVQcm94eSA9IF9wYWdlLT5wcm9j
ZXNzKCkud2ViRnJhbWUoZnJhbWVIYW5kbGUuX2ZyYW1lSUQpKQorICAgIGlmIChhdXRvKiB3ZWJG
cmFtZVByb3h5ID0gX3BhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShXZWJDb3JlOjpmcmFtZUlkZW50
aWZpZXJGcm9tSUQoZnJhbWVIYW5kbGUuX2ZyYW1lSUQpKSkKICAgICAgICAgcmV0dXJuIF9pbXBs
LT5jYW5DaGFuZ2VGcmFtZUxheW91dCgqd2ViRnJhbWVQcm94eSk7CiAgICAgcmV0dXJuIGZhbHNl
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0lu
c3BlY3Rvci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0
b3IubW0KaW5kZXggNzRiOTk5ZDU4NTc2OTU0YzEzN2EzZWM3MTVlNTQwOGJjYmZmY2IxNy4uODVh
NDY1N2M2MmMyY2FlNTJiODA0NjI1NGI3OTQ0ODQ1YjZhNGNlMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCkBAIC0zMCw2ICszMCw3
IEBACiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbXBvcnQgIl9XS0ZyYW1lSGFuZGxl
SW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS0luc3BlY3RvckludGVybmFsLmgiCisjaW1wb3J0IDxX
ZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiBA
aW1wbGVtZW50YXRpb24gX1dLSW5zcGVjdG9yCkBAIC05OSw3ICsxMDAsNyBAQCAtICh2b2lkKXNo
b3dSZXNvdXJjZXMKIC0gKHZvaWQpc2hvd01haW5SZXNvdXJjZUZvckZyYW1lOihfV0tGcmFtZUhh
bmRsZSAqKWZyYW1lCiB7CiAgICAgaWYgKGF1dG8qIHBhZ2UgPSBfaW5zcGVjdG9yLT5pbnNwZWN0
ZWRQYWdlKCkpCi0gICAgICAgIF9pbnNwZWN0b3ItPnNob3dNYWluUmVzb3VyY2VGb3JGcmFtZShw
YWdlLT5wcm9jZXNzKCkud2ViRnJhbWUoZnJhbWUuX2ZyYW1lSUQpKTsKKyAgICAgICAgX2luc3Bl
Y3Rvci0+c2hvd01haW5SZXNvdXJjZUZvckZyYW1lKHBhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShX
ZWJDb3JlOjpmcmFtZUlkZW50aWZpZXJGcm9tSUQoZnJhbWUuX2ZyYW1lSUQpKSk7CiB9CiAKIC0g
KHZvaWQpYXR0YWNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0
aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHAKaW5kZXggN2FjYzY4YmFl
ZmVhYjA3M2JmNjYwZjZjMGJjZTVlZmI5N2I1YWU2Mi4uZDg3NDhlZWE3ZmM2ZGFlMTU0MjZhZGFl
YTk2OWI3NGJkZWU2M2RjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0
b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmNwcApAQCAtMzgy
LDcgKzM4Miw3IEBAIHZvaWQgU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyOjp0cmFuc2l0aW9uSW5w
dXRTb3VyY2VUb1N0YXRlKFNpbXVsYXRlZElucHV0U291cmNlCiAgICAgfQogfQogCi12b2lkIFNp
bXVsYXRlZElucHV0RGlzcGF0Y2hlcjo6cnVuKHVpbnQ2NF90IGZyYW1lSUQsIFZlY3RvcjxTaW11
bGF0ZWRJbnB1dEtleUZyYW1lPiYmIGtleUZyYW1lcywgSGFzaFNldDxSZWY8U2ltdWxhdGVkSW5w
dXRTb3VyY2U+PiYgaW5wdXRTb3VyY2VzLCBBdXRvbWF0aW9uQ29tcGxldGlvbkhhbmRsZXImJiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyOjpydW4oV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFZlY3RvcjxTaW11bGF0ZWRJbnB1dEtleUZy
YW1lPiYmIGtleUZyYW1lcywgSGFzaFNldDxSZWY8U2ltdWxhdGVkSW5wdXRTb3VyY2U+PiYgaW5w
dXRTb3VyY2VzLCBBdXRvbWF0aW9uQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBBU1NFUlQoIWlzQWN0aXZlKCkpOwogICAgIGlmIChpc0FjdGl2ZSgpKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElu
cHV0RGlzcGF0Y2hlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11
bGF0ZWRJbnB1dERpc3BhdGNoZXIuaAppbmRleCA3ZjQxNDFjZTBhMzllNTYwNzNjN2VjOGE5NjU2
MGNiYzM0OGFkZmE2Li5iMDg5MWE4ZjBiNjc1MjljYjliMzk4NmI4Nzk1MzA3MTJhNGFhZDQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElu
cHV0RGlzcGF0Y2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24v
U2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUo
V0VCRFJJVkVSX0FDVElPTlNfQVBJKQogCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFu
ZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFs
Lmg+CkBAIC0xMzIsNyArMTMzLDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShXRUJEUklWRVJfS0VZ
Qk9BUkRfSU5URVJBQ1RJT05TKQogICAgICAgICB2aXJ0dWFsIHZvaWQgc2ltdWxhdGVLZXlib2Fy
ZEludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYsIEtleWJvYXJkSW50ZXJhY3Rpb24sIFdURjo6VmFy
aWFudDxWaXJ0dWFsS2V5LCBDaGFyS2V5PiYmLCBBdXRvbWF0aW9uQ29tcGxldGlvbkhhbmRsZXIm
JikgPSAwOwogI2VuZGlmCi0gICAgICAgIHZpcnR1YWwgdm9pZCB2aWV3cG9ydEluVmlld0NlbnRl
clBvaW50T2ZFbGVtZW50KFdlYlBhZ2VQcm94eSYsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0
cmluZyYgbm9kZUhhbmRsZSwgRnVuY3Rpb248dm9pZCAoT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9p
bnQ+LCBPcHRpb25hbDxBdXRvbWF0aW9uQ29tbWFuZEVycm9yPik+JiYpID0gMDsKKyAgICAgICAg
dmlydHVhbCB2b2lkIHZpZXdwb3J0SW5WaWV3Q2VudGVyUG9pbnRPZkVsZW1lbnQoV2ViUGFnZVBy
b3h5JiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5vZGVIYW5kbGUs
IEZ1bmN0aW9uPHZvaWQgKE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiwgT3B0aW9uYWw8QXV0
b21hdGlvbkNvbW1hbmRFcnJvcj4pPiYmKSA9IDA7CiAgICAgfTsKIAogICAgIHN0YXRpYyBSZWY8
U2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyPiBjcmVhdGUoV2ViUGFnZVByb3h5JiBwYWdlLCBTaW11
bGF0ZWRJbnB1dERpc3BhdGNoZXI6OkNsaWVudCYgY2xpZW50KQpAQCAtMTQyLDcgKzE0Myw3IEBA
IHB1YmxpYzoKIAogICAgIH5TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIoKTsKIAotICAgIHZvaWQg
cnVuKHVpbnQ2NF90IGZyYW1lSUQsIFZlY3RvcjxTaW11bGF0ZWRJbnB1dEtleUZyYW1lPiYmIGtl
eUZyYW1lcywgSGFzaFNldDxSZWY8U2ltdWxhdGVkSW5wdXRTb3VyY2U+PiYgaW5wdXRTb3VyY2Vz
LCBBdXRvbWF0aW9uQ29tcGxldGlvbkhhbmRsZXImJik7CisgICAgdm9pZCBydW4oV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBWZWN0b3I8U2ltdWxhdGVkSW5wdXRLZXlGcmFtZT4mJiBrZXlGcmFt
ZXMsIEhhc2hTZXQ8UmVmPFNpbXVsYXRlZElucHV0U291cmNlPj4mIGlucHV0U291cmNlcywgQXV0
b21hdGlvbkNvbXBsZXRpb25IYW5kbGVyJiYpOwogICAgIHZvaWQgY2FuY2VsKCk7CiAKICAgICBi
b29sIGlzQWN0aXZlKCkgY29uc3Q7CkBAIC0xNjUsNyArMTY2LDcgQEAgcHJpdmF0ZToKICAgICBX
ZWJQYWdlUHJveHkmIG1fcGFnZTsKICAgICBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXI6OkNsaWVu
dCYgbV9jbGllbnQ7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gbV9mcmFtZUlEOworICAgIE9w
dGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gbV9mcmFtZUlEOwogICAgIEF1dG9tYXRp
b25Db21wbGV0aW9uSGFuZGxlciBtX3J1bkNvbXBsZXRpb25IYW5kbGVyOwogICAgIEF1dG9tYXRp
b25Db21wbGV0aW9uSGFuZGxlciBtX2tleUZyYW1lVHJhbnNpdGlvbkNvbXBsZXRpb25IYW5kbGVy
OwogICAgIFJ1bkxvb3A6OlRpbWVyPFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlcj4gbV9rZXlGcmFt
ZVRyYW5zaXRpb25EdXJhdGlvblRpbWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcAppbmRleCBjY2U1
YzQ4MTdhODA0OTE3Y2RjMTk5YzFiMDE2MGUyNTZlOWJlMjk3Li42OGJkYWRjODI3MTc0MzcyMzc0
NGVkNWM5MjhmMTBhMGRmOWYyY2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcApAQCAtMjAyLDEw
ICsyMDIsMTAgQEAgU3RyaW5nIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpoYW5kbGVGb3JXZWJQYWdl
UHJveHkoY29uc3QgV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHIKICAgICByZXR1cm4gaGFuZGxlOwog
fQogCi1PcHRpb25hbDx1aW50NjRfdD4gV2ViQXV0b21hdGlvblNlc3Npb246OndlYkZyYW1lSURG
b3JIYW5kbGUoY29uc3QgU3RyaW5nJiBoYW5kbGUpCitPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+
IFdlYkF1dG9tYXRpb25TZXNzaW9uOjp3ZWJGcmFtZUlERm9ySGFuZGxlKGNvbnN0IFN0cmluZyYg
aGFuZGxlKQogewogICAgIGlmIChoYW5kbGUuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgcmV0dXJuIEZyYW1lSWRlbnRpZmllciB7IH07IC8vIFRoaXMgaXMgZXhwbGljaXRs
eSB6ZXJvOyBzZWUgd2Via2l0Lm9yZy9iLzE1OTc3Ny4KIAogICAgIGF1dG8gaXRlciA9IG1faGFu
ZGxlV2ViRnJhbWVNYXAuZmluZChoYW5kbGUpOwogICAgIGlmIChpdGVyID09IG1faGFuZGxlV2Vi
RnJhbWVNYXAuZW5kKCkpCkBAIC0yMTQsNyArMjE0LDcgQEAgT3B0aW9uYWw8dWludDY0X3Q+IFdl
YkF1dG9tYXRpb25TZXNzaW9uOjp3ZWJGcmFtZUlERm9ySGFuZGxlKGNvbnN0IFN0cmluZyYgaGFu
ZGwKICAgICByZXR1cm4gaXRlci0+dmFsdWU7CiB9CiAKLVN0cmluZyBXZWJBdXRvbWF0aW9uU2Vz
c2lvbjo6aGFuZGxlRm9yV2ViRnJhbWVJRCh1aW50NjRfdCBmcmFtZUlEKQorU3RyaW5nIFdlYkF1
dG9tYXRpb25TZXNzaW9uOjpoYW5kbGVGb3JXZWJGcmFtZUlEKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlEKQogewogICAgIGlmICghZnJhbWVJRCkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7
CkBAIC0zNjIsNyArMzYyLDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c3dpdGNoVG9C
cm93c2luZ0NvbnRleHQoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHQKICAgICBpZiAoIXBh
Z2UpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZv
dW5kKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhh
bmRsZShvcHRpb25hbEZyYW1lSGFuZGxlID8gKm9wdGlvbmFsRnJhbWVIYW5kbGUgOiBlbXB0eVN0
cmluZygpKTsKKyAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9wdGlvbmFs
RnJhbWVIYW5kbGUgPyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCkpOwogICAg
IGlmICghZnJhbWVJRCkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1Io
RnJhbWVOb3RGb3VuZCk7CiAKQEAgLTQ1OSw3ICs0NTksNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25T
ZXNzaW9uOjp3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGUoY29uc3QgU3RyaW5nJiBicm93c2lu
Z0NvbgogICAgICAgICAmJiBwYWdlLT5wYWdlTG9hZFN0YXRlKCkuaXNMb2FkaW5nKCkgJiYgbV9j
bGllbnQtPmlzU2hvd2luZ0phdmFTY3JpcHREaWFsb2dPblBhZ2UoKnRoaXMsICpwYWdlKTsKIAog
ICAgIGlmIChvcHRpb25hbEZyYW1lSGFuZGxlICYmICFvcHRpb25hbEZyYW1lSGFuZGxlLT5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQgPSB3ZWJGcmFtZUlE
Rm9ySGFuZGxlKCpvcHRpb25hbEZyYW1lSGFuZGxlKTsKKyAgICAgICAgYXV0byBmcmFtZUlEID0g
d2ViRnJhbWVJREZvckhhbmRsZSgqb3B0aW9uYWxGcmFtZUhhbmRsZSk7CiAgICAgICAgIGlmICgh
ZnJhbWVJRCkKICAgICAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKEZy
YW1lTm90Rm91bmQpOwogICAgICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IHBhZ2UtPnByb2Nl
c3MoKS53ZWJGcmFtZShmcmFtZUlELnZhbHVlKCkpOwpAQCAtNTM3LDcgKzUzNyw3IEBAIHZvaWQg
V2ViQXV0b21hdGlvblNlc3Npb246OnJlc3BvbmRUb1BlbmRpbmdQYWdlTmF2aWdhdGlvbkNhbGxi
YWNrc1dpdGhUaW1lb3V0KEhhCiAgICAgfQogfQogCi1zdGF0aWMgV2ViUGFnZVByb3h5KiBmaW5k
UGFnZUZvckZyYW1lSUQoY29uc3QgV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCB1aW50NjRf
dCBmcmFtZUlEKQorc3RhdGljIFdlYlBhZ2VQcm94eSogZmluZFBhZ2VGb3JGcmFtZUlEKGNvbnN0
IFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7
CiAgICAgZm9yIChhdXRvJiBwcm9jZXNzIDogcHJvY2Vzc1Bvb2wucHJvY2Vzc2VzKCkpIHsKICAg
ICAgICAgaWYgKGF1dG8qIGZyYW1lID0gcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCkpCkBAIC01
NDYsNyArNTQ2LDcgQEAgc3RhdGljIFdlYlBhZ2VQcm94eSogZmluZFBhZ2VGb3JGcmFtZUlEKGNv
bnN0IFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgdWludDYKICAgICByZXR1cm4gbnVsbHB0
cjsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVzcG9uZFRvUGVuZGluZ0ZyYW1l
TmF2aWdhdGlvbkNhbGxiYWNrc1dpdGhUaW1lb3V0KEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxJ
bnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiYgbWFwKQordm9pZCBX
ZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVzcG9uZFRvUGVuZGluZ0ZyYW1lTmF2aWdhdGlvbkNhbGxi
YWNrc1dpdGhUaW1lb3V0KEhhc2hNYXA8RnJhbWVJZGVudGlmaWVyLCBSZWZQdHI8SW5zcGVjdG9y
OjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4mIG1hcCkKIHsKICAgICBJbnNwZWN0
b3I6OkVycm9yU3RyaW5nIHRpbWVvdXRFcnJvciA9IFNUUklOR19GT1JfUFJFREVGSU5FRF9FUlJP
Ul9OQU1FKFRpbWVvdXQpOwogICAgIGZvciAoYXV0byBpZCA6IGNvcHlUb1ZlY3RvcihtYXAua2V5
cygpKSkgewpAQCAtOTI0LDcgKzkyNCw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmV2
YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250CiAgICAg
aWYgKCFwYWdlKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5k
b3dOb3RGb3VuZCk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCA9IHdlYkZyYW1l
SURGb3JIYW5kbGUob3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpvcHRpb25hbEZyYW1lSGFuZGxlIDog
ZW1wdHlTdHJpbmcoKSk7CisgICAgYXV0byBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShv
cHRpb25hbEZyYW1lSGFuZGxlID8gKm9wdGlvbmFsRnJhbWVIYW5kbGUgOiBlbXB0eVN0cmluZygp
KTsKICAgICBpZiAoIWZyYW1lSUQpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVE
X0VSUk9SKEZyYW1lTm90Rm91bmQpOwogCkBAIC05NjcsMTEgKzk2NywxMSBAQCB2b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZlQ2hpbGRGcmFtZUhhbmRsZShjb25zdCBTdHJpbmcmIGJy
b3dzaW5nQ29udGV4dAogICAgIGlmICghcGFnZSkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BS
RURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+
IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5kbGUgPyAqb3B0
aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCkpOworICAgIGF1dG8gZnJhbWVJRCA9IHdl
YkZyYW1lSURGb3JIYW5kbGUob3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpvcHRpb25hbEZyYW1lSGFu
ZGxlIDogZW1wdHlTdHJpbmcoKSk7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICBBU1lOQ19G
QUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIAotICAgIFdURjo6Q29t
cGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCB1aW50NjRfdCk+IGNvbXBsZXRp
b25IYW5kbGVyID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FsbGJh
Y2sgPSBjYWxsYmFjay5jb3B5UmVmKCldKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCB1aW50
NjRfdCBmcmFtZUlEKSBtdXRhYmxlIHsKKyAgICBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQo
T3B0aW9uYWw8U3RyaW5nPiwgRnJhbWVJZGVudGlmaWVyKT4gY29tcGxldGlvbkhhbmRsZXIgPSBb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxsYmFjayA9IGNhbGxiYWNr
LmNvcHlSZWYoKV0oT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIEZyYW1lSWRlbnRpZmllciBm
cmFtZUlEKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGVycm9yVHlwZSkgewogICAgICAgICAgICAg
Y2FsbGJhY2stPnNlbmRGYWlsdXJlKFNUUklOR19GT1JfUFJFREVGSU5FRF9FUlJPUl9NRVNTQUdF
KCplcnJvclR5cGUpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTEwMDQsMTEgKzEwMDQsMTEg
QEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVzb2x2ZVBhcmVudEZyYW1lSGFuZGxlKGNv
bnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXgKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIEFTWU5D
X0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKIAotICAgIE9wdGlv
bmFsPHVpbnQ2NF90PiBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShmcmFtZUhhbmRsZSk7
CisgICAgYXV0byBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShmcmFtZUhhbmRsZSk7CiAg
ICAgaWYgKCFmcmFtZUlEKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJP
UihGcmFtZU5vdEZvdW5kKTsKIAotICAgIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRp
b25hbDxTdHJpbmc+LCB1aW50NjRfdCk+IGNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FsbGJhY2sgPSBjYWxsYmFjay5jb3B5UmVmKCld
KE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCB1aW50NjRfdCBmcmFtZUlEKSBtdXRhYmxlIHsK
KyAgICBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgRnJhbWVJ
ZGVudGlmaWVyKT4gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCBjYWxsYmFjayA9IGNhbGxiYWNrLmNvcHlSZWYoKV0oT3B0aW9uYWw8U3Ry
aW5nPiBlcnJvclR5cGUsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSBtdXRhYmxlIHsKICAgICAg
ICAgaWYgKGVycm9yVHlwZSkgewogICAgICAgICAgICAgY2FsbGJhY2stPnNlbmRGYWlsdXJlKFNU
UklOR19GT1JfUFJFREVGSU5FRF9FUlJPUl9NRVNTQUdFKCplcnJvclR5cGUpKTsKICAgICAgICAg
ICAgIHJldHVybjsKQEAgLTEwMzUsNyArMTAzNSw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b246OmNvbXB1dGVFbGVtZW50TGF5b3V0KGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFu
CiAgICAgaWYgKCFwYWdlKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJP
UihXaW5kb3dOb3RGb3VuZCk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCA9IHdl
YkZyYW1lSURGb3JIYW5kbGUoZnJhbWVIYW5kbGUpOworICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZy
YW1lSURGb3JIYW5kbGUoZnJhbWVIYW5kbGUpOwogICAgIGlmICghZnJhbWVJRCkKICAgICAgICAg
QVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoRnJhbWVOb3RGb3VuZCk7CiAKQEAgLTEw
ODcsNyArMTA4Nyw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnNlbGVjdE9wdGlvbkVs
ZW1lbnQoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kCiAgICAgaWYgKCFwYWdlKQog
ICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5kb3dOb3RGb3VuZCk7
CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUo
ZnJhbWVIYW5kbGUpOworICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUoZnJh
bWVIYW5kbGUpOwogICAgIGlmICghZnJhbWVJRCkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BS
RURFRklORURfRVJST1IoRnJhbWVOb3RGb3VuZCk7CiAKQEAgLTEyNzEsNyArMTI3MSw3IEBAIHZv
aWQgV2ViQXV0b21hdGlvblNlc3Npb246OmdldEFsbENvb2tpZXMoY29uc3QgU3RyaW5nJiBicm93
c2luZ0NvbnRleHRIYW5kbGUsIFJlCiAgICAgfTsKIAogICAgIC8vIEFsd2F5cyBzZW5kIHRoZSBt
YWluIGZyYW1lIElEIGFzIDAgc28gaXQgaXMgcmVzb2x2ZWQgb24gdGhlIFdlYlByb2Nlc3Mgc2lk
ZS4gVGhpcyBhdm9pZHMgYSByYWNlIHdoZW4gcGFnZS0+bWFpbkZyYW1lKCkgaXMgbnVsbCBzdGls
bC4KLSAgICBjb25zdCB1aW50NjRfdCBtYWluRnJhbWVJRCA9IDA7CisgICAgY29uc3QgRnJhbWVJ
ZGVudGlmaWVyIG1haW5GcmFtZUlEOwogICAgIHBhZ2UtPnByb2Nlc3MoKS5zZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OkdldENvb2tpZXNGb3JG
cmFtZShwYWdlLT5wYWdlSUQoKSwgbWFpbkZyYW1lSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CiB9CiAKQEAgLTEyOTEsNyArMTI5MSw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b246OmRlbGV0ZVNpbmdsZUNvb2tpZShjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRs
CiAgICAgfTsKIAogICAgIC8vIEFsd2F5cyBzZW5kIHRoZSBtYWluIGZyYW1lIElEIGFzIDAgc28g
aXQgaXMgcmVzb2x2ZWQgb24gdGhlIFdlYlByb2Nlc3Mgc2lkZS4gVGhpcyBhdm9pZHMgYSByYWNl
IHdoZW4gcGFnZS0+bWFpbkZyYW1lKCkgaXMgbnVsbCBzdGlsbC4KLSAgICBjb25zdCB1aW50NjRf
dCBtYWluRnJhbWVJRCA9IDA7CisgICAgY29uc3QgRnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlE
OwogICAgIHBhZ2UtPnByb2Nlc3MoKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OkRlbGV0ZUNvb2tpZShwYWdlLT5wYWdlSUQoKSwgbWFpbkZy
YW1lSUQsIGNvb2tpZU5hbWUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKQEAg
LTE0NTcsNyArMTQ1Nyw3IEBAIFNpbXVsYXRlZElucHV0U291cmNlKiBXZWJBdXRvbWF0aW9uU2Vz
c2lvbjo6aW5wdXRTb3VyY2VGb3JUeXBlKFNpbXVsYXRlZElucHV0U291CiB9CiAKIC8vIE1BUks6
IFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlcjo6Q2xpZW50IEFQSQotdm9pZCBXZWJBdXRvbWF0aW9u
U2Vzc2lvbjo6dmlld3BvcnRJblZpZXdDZW50ZXJQb2ludE9mRWxlbWVudChXZWJQYWdlUHJveHkm
IHBhZ2UsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbm9kZUhhbmRsZSwgRnVuY3Rp
b248dm9pZCAoT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBPcHRpb25hbDxBdXRvbWF0aW9u
Q29tbWFuZEVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkF1dG9tYXRpb25T
ZXNzaW9uOjp2aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVtZW50KFdlYlBhZ2VQcm94eSYg
cGFnZSwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbm9kZUhhbmRsZSwg
RnVuY3Rpb248dm9pZCAoT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBPcHRpb25hbDxBdXRv
bWF0aW9uQ29tbWFuZEVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV1RGOjpD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkludFJlY3Qs
IE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiwgYm9vbCk+IGRpZENvbXB1dGVFbGVtZW50TGF5
b3V0SGFuZGxlciA9IFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXShPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgV2ViQ29yZTo6SW50UmVjdCwgT3B0aW9u
YWw8V2ViQ29yZTo6SW50UG9pbnQ+IGluVmlld0NlbnRlclBvaW50LCBib29sKSBtdXRhYmxlIHsK
ICAgICAgICAgaWYgKGVycm9yVHlwZSkgewpAQCAtMTk3Niw3ICsxOTc2LDcgQEAgdm9pZCBXZWJB
dXRvbWF0aW9uU2Vzc2lvbjo6dGFrZVNjcmVlbnNob3QoY29uc3QgU3RyaW5nJiBoYW5kbGUsIGNv
bnN0IFN0cmluZyogb3AKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9Q
UkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90
PiBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShvcHRpb25hbEZyYW1lSGFuZGxlID8gKm9w
dGlvbmFsRnJhbWVIYW5kbGUgOiBlbXB0eVN0cmluZygpKTsKKyAgICBhdXRvIGZyYW1lSUQgPSB3
ZWJGcmFtZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5kbGUgPyAqb3B0aW9uYWxGcmFtZUhh
bmRsZSA6IGVtcHR5U3RyaW5nKCkpOwogICAgIGlmICghZnJhbWVJRCkKICAgICAgICAgQVNZTkNf
RkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoRnJhbWVOb3RGb3VuZCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24u
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Np
b24uaAppbmRleCBmMzljMDYxYjU3ODkyYTkyNDhmZDA5ZGZmY2ZhN2I4YzUwYTA3NTM3Li4xMjIy
YzI4NDIyYmY5NmM2Y2M0YjFhNWRmY2E0MjI3MGZkMDIzYWEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5o
CkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCiAjaW5jbHVk
ZSAiU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFn
ZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtMTUyLDcgKzE1Myw3IEBAIHB1YmxpYzoKICNpZiBFTkFC
TEUoV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykKICAgICB2b2lkIHNpbXVsYXRlS2V5
Ym9hcmRJbnRlcmFjdGlvbihXZWJQYWdlUHJveHkmLCBLZXlib2FyZEludGVyYWN0aW9uLCBXVEY6
OlZhcmlhbnQ8VmlydHVhbEtleSwgQ2hhcktleT4mJiwgQXV0b21hdGlvbkNvbXBsZXRpb25IYW5k
bGVyJiYpIGZpbmFsOwogI2VuZGlmCi0gICAgdm9pZCB2aWV3cG9ydEluVmlld0NlbnRlclBvaW50
T2ZFbGVtZW50KFdlYlBhZ2VQcm94eSYsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYg
bm9kZUhhbmRsZSwgRnVuY3Rpb248dm9pZCAoT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBP
cHRpb25hbDxBdXRvbWF0aW9uQ29tbWFuZEVycm9yPik+JiYpIGZpbmFsOworICAgIHZvaWQgdmll
d3BvcnRJblZpZXdDZW50ZXJQb2ludE9mRWxlbWVudChXZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbm9kZUhhbmRsZSwgRnVuY3Rpb248dm9pZCAo
T3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBPcHRpb25hbDxBdXRvbWF0aW9uQ29tbWFuZEVy
cm9yPik+JiYpIGZpbmFsOwogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkRSSVZFUl9BQ1RJT05TX0FQ
SSkKIApAQCAtMjIwLDE0ICsyMjEsMTQgQEAgcHJpdmF0ZToKICAgICBSZWY8SW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6QnJvd3NpbmdDb250ZXh0PiBidWlsZEJyb3dzaW5nQ29udGV4
dEZvclBhZ2UoV2ViUGFnZVByb3h5JiwgV2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRvd0ZyYW1lKTsK
ICAgICB2b2lkIGdldE5leHRDb250ZXh0KFJlZjxXZWJBdXRvbWF0aW9uU2Vzc2lvbj4mJiwgVmVj
dG9yPFJlZjxXZWJQYWdlUHJveHk+PiYmLCBSZWY8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uOjpCcm93c2luZ0NvbnRleHQ+PiwgUmVmPFdlYkF1dG9tYXRpb25T
ZXNzaW9uOjpHZXRCcm93c2luZ0NvbnRleHRzQ2FsbGJhY2s+JiYpOwogCi0gICAgT3B0aW9uYWw8
dWludDY0X3Q+IHdlYkZyYW1lSURGb3JIYW5kbGUoY29uc3QgU3RyaW5nJik7Ci0gICAgU3RyaW5n
IGhhbmRsZUZvcldlYkZyYW1lSUQodWludDY0X3QgZnJhbWVJRCk7CisgICAgT3B0aW9uYWw8V2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyPiB3ZWJGcmFtZUlERm9ySGFuZGxlKGNvbnN0IFN0cmluZyYp
OworICAgIFN0cmluZyBoYW5kbGVGb3JXZWJGcmFtZUlEKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
cik7CiAgICAgU3RyaW5nIGhhbmRsZUZvcldlYkZyYW1lUHJveHkoY29uc3QgV2ViRnJhbWVQcm94
eSYpOwogCiAgICAgdm9pZCB3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVPblBhZ2UoV2ViUGFn
ZVByb3h5JiwgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6UGFnZUxvYWRTdHJhdGVn
eSwgU2Vjb25kcywgUmVmPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFz
ZT4mJik7CiAgICAgdm9pZCB3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVPbkZyYW1lKFdlYkZy
YW1lUHJveHkmLCBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpQYWdlTG9hZFN0cmF0
ZWd5LCBTZWNvbmRzLCBSZWY8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tC
YXNlPiYmKTsKICAgICB2b2lkIHJlc3BvbmRUb1BlbmRpbmdQYWdlTmF2aWdhdGlvbkNhbGxiYWNr
c1dpdGhUaW1lb3V0KEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFJlZlB0cjxJbnNw
ZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiYpOwotICAgIHZvaWQgcmVz
cG9uZFRvUGVuZGluZ0ZyYW1lTmF2aWdhdGlvbkNhbGxiYWNrc1dpdGhUaW1lb3V0KEhhc2hNYXA8
dWludDY0X3QsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jh
c2U+PiYpOworICAgIHZvaWQgcmVzcG9uZFRvUGVuZGluZ0ZyYW1lTmF2aWdhdGlvbkNhbGxiYWNr
c1dpdGhUaW1lb3V0KEhhc2hNYXA8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWZQdHI8SW5z
cGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4mKTsKICAgICB2b2lkIGxv
YWRUaW1lckZpcmVkKCk7CiAKICAgICB2b2lkIGV4aXRGdWxsc2NyZWVuV2luZG93Rm9yUGFnZShX
ZWJQYWdlUHJveHkmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CkBAIC0yODQs
MTMgKzI4NSwxMyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIFN0cmluZz4gbV93ZWJQYWdlSGFuZGxlTWFwOwogICAgIEhhc2hNYXA8U3RyaW5nLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcj4gbV9oYW5kbGVXZWJQYWdlTWFwOwogCi0gICAgSGFzaE1hcDx1
aW50NjRfdCwgU3RyaW5nPiBtX3dlYkZyYW1lSGFuZGxlTWFwOwotICAgIEhhc2hNYXA8U3RyaW5n
LCB1aW50NjRfdD4gbV9oYW5kbGVXZWJGcmFtZU1hcDsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgU3RyaW5nPiBtX3dlYkZyYW1lSGFuZGxlTWFwOworICAgIEhhc2hNYXA8
U3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IG1faGFuZGxlV2ViRnJhbWVNYXA7CiAK
ICAgICBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBSZWZQdHI8SW5zcGVjdG9yOjpC
YWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4gbV9wZW5kaW5nTm9ybWFsTmF2aWdhdGlv
bkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyUGFnZTsKICAgICBIYXNoTWFwPFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2Fs
bGJhY2tCYXNlPj4gbV9wZW5kaW5nRWFnZXJOYXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxs
YmFja3NQZXJQYWdlOwotICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxJbnNwZWN0b3I6OkJh
Y2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiBtX3BlbmRpbmdOb3JtYWxOYXZpZ2F0aW9u
SW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJGcmFtZTsKLSAgICBIYXNoTWFwPHVpbnQ2NF90
LCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4gbV9w
ZW5kaW5nRWFnZXJOYXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJGcmFtZTsK
KyAgICBIYXNoTWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmUHRyPEluc3BlY3Rvcjo6
QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGluZ05vcm1hbE5hdmlnYXRp
b25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlckZyYW1lOworICAgIEhhc2hNYXA8V2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6
Q2FsbGJhY2tCYXNlPj4gbV9wZW5kaW5nRWFnZXJOYXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRD
YWxsYmFja3NQZXJGcmFtZTsKICAgICBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBS
ZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4gbV9wZW5k
aW5nSW5zcGVjdG9yQ2FsbGJhY2tzUGVyUGFnZTsKICNpZiBFTkFCTEUoV0VCRFJJVkVSX0tFWUJP
QVJEX0lOVEVSQUNUSU9OUykKICAgICBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBG
dW5jdGlvbjx2b2lkKE9wdGlvbmFsPEF1dG9tYXRpb25Db21tYW5kRXJyb3I+KT4+IG1fcGVuZGlu
Z0tleWJvYXJkRXZlbnRzRmx1c2hlZENhbGxiYWNrc1BlclBhZ2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCBhNTFhMjIzNjIzODQxNTFhYjExZDQ4
OTQzNjlmOGExODU4MDA2N2RhLi4zMDJmNjgyMjgyYmNjN2VlMzhkM2Y2NzI3ZDZkMjNmODRiMjg5
ZGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRl
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAg
LTEwMzIsNyArMTAzMiw3IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmNoZWNrVXNlck1l
ZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJQYWdlUHJveHkmIHBhZ2UsCiAgICAgVVJMIHJlcXVl
c3RGcmFtZVVSTCB7IFVSTCgpLCBmcmFtZS51cmwoKSB9OwogICAgIFVSTCBtYWluRnJhbWVVUkwg
eyBVUkwoKSwgbWFpbkZyYW1lLT51cmwoKSB9OwogCi0gICAgWyhpZCA8V0tVSURlbGVnYXRlUHJp
dmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyBjaGVja1VzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JVUkw6cmVxdWVzdEZyYW1lVVJMIG1haW5GcmFtZVVSTDptYWluRnJh
bWVVUkwgZnJhbWVJZGVudGlmaWVyOmZyYW1lLmZyYW1lSUQoKSBkZWNpc2lvbkhhbmRsZXI6ZGVj
aXNpb25IYW5kbGVyLmdldCgpXTsKKyAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxl
Z2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlz
c2lvbkZvclVSTDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVSTCBmcmFt
ZUlkZW50aWZpZXI6ZnJhbWUuZnJhbWVJRCgpLnRvVUludDY0KCkgZGVjaXNpb25IYW5kbGVyOmRl
Y2lzaW9uSGFuZGxlci5nZXQoKV07CiB9CiAKIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6Om1l
ZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBzdGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dLUmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW0KaW5k
ZXggODRkMjBjNGNlOGIxZjAwMTdlMWJhNzdiOWQwZGY0ZjEwMTM4YTkwMC4uOWM0MDkyZWZkNDM2
ZDAyMjQwYjgwNmEyYzI0MGY2NDM2ZDJlZGI1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3Zl
cnlBdHRlbXB0ZXIubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIldlYkZyYW1lUHJveHku
aCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5Lmgi
CisjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2ltcG9ydCA8d3RmL1JldGFp
blB0ci5oPgogI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+CiAKQEAgLTYyLDggKzYzLDcgQEAg
LSAoQk9PTClhdHRlbXB0UmVjb3ZlcnkKICAgICBpZiAoIXdlYlZpZXcpCiAgICAgICAgIHJldHVy
biBOTzsKIAotICAgIHVpbnQ2NF90IGZyYW1lSUQgPSBbX2ZyYW1lSGFuZGxlIF9mcmFtZUlEXTsK
LSAgICBXZWJLaXQ6OldlYkZyYW1lUHJveHkqIHdlYkZyYW1lUHJveHkgPSB3ZWJWaWV3LT5fcGFn
ZS0+cHJvY2VzcygpLndlYkZyYW1lKGZyYW1lSUQpOworICAgIFdlYktpdDo6V2ViRnJhbWVQcm94
eSogd2ViRnJhbWVQcm94eSA9IHdlYlZpZXctPl9wYWdlLT5wcm9jZXNzKCkud2ViRnJhbWUoV2Vi
Q29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKFtfZnJhbWVIYW5kbGUgX2ZyYW1lSURdKSk7CiAg
ICAgaWYgKCF3ZWJGcmFtZVByb3h5KQogICAgICAgICByZXR1cm4gTk87CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KaW5kZXggYTQx
Y2QzYTAwNGQzM2IxZGFkOGI2ZjQ2NGY3YzViN2IzNGExMjBiYi4uNjkwOWViZjYzN2NhNDEzNDM4
OTRlZTUwYTlkZjAzMWFjNzRjNDJhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KQEAgLTEwMSwxMiArMTAxLDEyIEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpiZWdpblNhZmVCcm93c2luZ0NoZWNrKGNvbnN0IFVSTCYgdXJsLCBib29s
IGZvck1haW5GcmFtZU5hdmlnCiB9CiAKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCi12
b2lkIFdlYlBhZ2VQcm94eTo6Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKGNvbnN0
IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYgdW5ibG9ja0hhbmRsZXIsIHVp
bnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGVudEZpbHRlckRpZEJsb2Nr
TG9hZEZvckZyYW1lKGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYg
dW5ibG9ja0hhbmRsZXIsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIGNvbnRlbnRG
aWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCB1bmJs
b2NrSGFuZGxlciwgZnJhbWVJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpjb250ZW50Rmls
dGVyRGlkQmxvY2tMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9j
ZXNzLCBjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIHVuYmxvY2tI
YW5kbGVyLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmNvbnRlbnRGaWx0
ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nl
c3MsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYgdW5ibG9ja0hh
bmRsZXIsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIGlmIChXZWJGcmFtZVByb3h5
KiBmcmFtZSA9IHByb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpKQogICAgICAgICBmcmFtZS0+Y29u
dGVudEZpbHRlckRpZEJsb2NrTG9hZCh1bmJsb2NrSGFuZGxlcik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRl
eCAzNDZhYzY3MjBhNjU4ODFmZDA5OGI1YzM0ZjFiZDhhZGQ5Y2NlMDllLi5iMzI3NmU5ODA4OGQw
ZDZlYmIxNDAyNDc3OTI0NzVhNDNlYWZhODBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTMxMSw3ICsz
MTEsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZENyZWF0ZU5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzKGNvbnN0IElQQzo6QXR0YQogI2VuZGlmCiB9CiAKLXZvaWQgTmV0d29y
a1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6QXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmJiBjb3JlQ2hhbGxlbmdlLCB1aW50NjRfdCBjaGFsbGVuZ2VJRCkKK3ZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OkF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlJiYgY29yZUNoYWxsZW5nZSwgdWludDY0X3QgY2hhbGxlbmdlSUQp
CiB7CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIGlmIChhdXRvKiBzZXJ2aWNlV29y
a2VyUHJvY2Vzc1Byb3h5ID0gbV9wcm9jZXNzUG9vbC5zZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5
RnJvbVBhZ2VJRChwYWdlSUQpKSB7CkBAIC03MzYsNyArNzM2LDcgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpzZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29u
c3QgUmVnaXMKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNz
OjpTZXRHcmFuZGZhdGhlcmVkKHNlc3Npb25JRCwgcmVzb3VyY2VEb21haW4sIGlzR3JhbmRmYXRo
ZXJlZCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oUGFnZUlkZW50aWZpZXIgcGFn
ZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVE
b21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBz
dWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IFdlYlBhZ2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZShwYWdlSUQpOwog
ICAgIGlmICghcGFnZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCA5NzA4OGU5YTRlZWRjOTA3NDU5ODdmNzdj
MzQzODM0ODU0MDViOTkwLi43MTM5Y2U0NjgxMTkwOTU0ZDNlNmVmMmQ0MzY2YTE1NmZiNWNjZTkx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuaApAQCAtODIsNyArODIsNiBAQCBwdWJsaWM6CiAgICAgdXNpbmcgTmF2aWdh
dGVkVG9Eb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKICAgICB1c2luZyBEb21h
aW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MgPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKICAg
ICB1c2luZyBPcGVuZXJEb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKLSAgICB1
c2luZyBGcmFtZUlEID0gdWludDY0X3Q7CiAKICAgICBleHBsaWNpdCBOZXR3b3JrUHJvY2Vzc1By
b3h5KFdlYlByb2Nlc3NQb29sJik7CiAgICAgfk5ldHdvcmtQcm9jZXNzUHJveHkoKTsKQEAgLTEz
MCw3ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRl
YnVnTW9kZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0VmVyeVByZXZhbGVudFJlc291cmNl
KFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBnZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcyhQQUw6
OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiBkb21haW5z
KT4mJik7Ci0gICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIsIEZyYW1lSUQsIGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJh
bWVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHJl
cXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1l
RG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCByZXNl
dFBhcmFtZXRlcnNUb0RlZmF1bHRWYWx1ZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0
ZW50KFBBTDo6U2Vzc2lvbklELCBTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3MsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQ
ZXJzaXN0ZW50KFBBTDo6U2Vzc2lvbklELCBPcHRpb25hbDxXYWxsVGltZT4gbW9kaWZpZWRTaW5j
ZSwgU2hvdWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwpAQCAtMjA3LDcgKzIwNiw3IEBAIHByaXZhdGU6CiAgICAgLy8gTWVzc2FnZSBoYW5kbGVy
cwogICAgIHZvaWQgZGlkUmVjZWl2ZU5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwogICAgIHZvaWQgZGlkQ3JlYXRlTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MoY29uc3QgSVBDOjpBdHRhY2htZW50Jik7Ci0gICAgdm9pZCBkaWRS
ZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVp
bnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYsIHVpbnQ2
NF90IGNoYWxsZW5nZUlEKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBX
ZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYmLCB1aW50NjRfdCBjaGFsbGVuZ2VJRCk7
CiAgICAgdm9pZCBkaWRGZXRjaFdlYnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0
IFdlYnNpdGVEYXRhJik7CiAgICAgdm9pZCBkaWREZWxldGVXZWJzaXRlRGF0YSh1aW50NjRfdCBj
YWxsYmFja0lEKTsKICAgICB2b2lkIGRpZERlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyh1aW50
NjRfdCBjYWxsYmFja0lEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCAwNDdk
ZmU4ODc4MWJiY2I2ODIwMTY1MDkxYjg2NmQxMzM2Zjg4Y2JhLi43NjkyZjMzZmRiNmJlYjU4YWM0
MDcwOWIzZGZmODI0N2MyZjIwN2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBA
IC0yMyw3ICsyMyw3IEBACiBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc1Byb3h5IExlZ2FjeVJl
Y2VpdmVyIHsKICAgICBEaWRDcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhJUEM6
OkF0dGFjaG1lbnQgY29ubmVjdGlvbklkZW50aWZpZXIpCiAKLSAgICBEaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRf
dCBmcmFtZUlELCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjaGFsbGVuZ2UsIHVp
bnQ2NF90IGNoYWxsZW5nZUlEKQorICAgIERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjaGFsbGVuZ2UsIHVp
bnQ2NF90IGNoYWxsZW5nZUlEKQogCiAgICAgRGlkRmV0Y2hXZWJzaXRlRGF0YSh1aW50NjRfdCBj
YWxsYmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpXZWJzaXRlRGF0YSB3ZWJzaXRlRGF0YSkKICAgICBE
aWREZWxldGVXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lEKQpAQCAtNDYsNyArNDYsNyBA
QCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBO
b3RpZnlXZWJzaXRlRGF0YURlbGV0aW9uRm9yUmVnaXN0cmFibGVEb21haW5zRmluaXNoZWQoKQog
ICAgIE5vdGlmeVdlYnNpdGVEYXRhU2NhbkZvclJlZ2lzdHJhYmxlRG9tYWluc0ZpbmlzaGVkKCkK
ICAgICBOb3RpZnlSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5RmluaXNoZWQodW5zaWdu
ZWQgdG90YWxQcmV2YWxlbnRSZXNvdXJjZXMsIHVuc2lnbmVkIHRvdGFsUHJldmFsZW50UmVzb3Vy
Y2VzV2l0aFVzZXJJbnRlcmFjdGlvbiwgdW5zaWduZWQgdG9wM1N1YmZyYW1lVW5kZXJUb3BGcmFt
ZU9yaWdpbnMpCi0gICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1l
RG9tYWluKSAtPiAoYm9vbCB1c2VyRGlkR3JhbnRBY2Nlc3MpIEFzeW5jCisgICAgUmVxdWVzdFN0
b3JhZ2VBY2Nlc3NDb25maXJtKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1
YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbikg
LT4gKGJvb2wgdXNlckRpZEdyYW50QWNjZXNzKSBBc3luYwogICAgIERlbGV0ZVdlYnNpdGVEYXRh
SW5VSVByb2Nlc3NGb3JSZWdpc3RyYWJsZURvbWFpbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgT3B0aW9uU2V0
PFdlYktpdDo6V2Vic2l0ZURhdGFGZXRjaE9wdGlvbj4gZmV0Y2hPcHRpb25zLCBWZWN0b3I8V2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4+IGRvbWFpbnMpIC0+IChIYXNoU2V0PFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluPiBkb21haW5zV2l0aE1hdGNoaW5nRGF0YVJlY29yZHMpIEFzeW5jCiAg
ICAgRGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXJGcm9tUHJldmFsZW50UmVz
b3VyY2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKQogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKaW5kZXggOTFiMjQ2
MmQ3MTI3NjBhMTRmMThlNmI1MmY2ODAzYjZlZWI2ZWIyZS4uZWU1NTllNGE1YzRiNjE3ZTI4OTNm
ZGI1YTIxODA5YzhkODRlMWNjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1By
b3Zpc2lvbmFsUGFnZVByb3h5LmNwcApAQCAtMTc0LDcgKzE3NCw3IEBAIHZvaWQgUHJvdmlzaW9u
YWxQYWdlUHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0oQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0
aW9uLCBXZWJCCiAgICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQoKTsK
IH0KIAotaW5saW5lIGJvb2wgUHJvdmlzaW9uYWxQYWdlUHJveHk6OnZhbGlkYXRlSW5wdXQodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgT3B0aW9uYWw8dWludDY0X3Q+JiBuYXZpZ2F0aW9uSUQpCitp
bmxpbmUgYm9vbCBQcm92aXNpb25hbFBhZ2VQcm94eTo6dmFsaWRhdGVJbnB1dChGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgY29uc3QgT3B0aW9uYWw8dWludDY0X3Q+JiBuYXZpZ2F0aW9uSUQpCiB7
CiAgICAgLy8gSWYgdGhlIHByZXZpb3VzIHByb3Zpc2lvbmFsIGxvYWQgdXNlZCBhbiBleGlzdGlu
ZyBwcm9jZXNzLCB3ZSBtYXkgcmVjZWl2ZSBsZWZ0b3ZlciBJUEMgZm9yIGEgcHJldmlvdXMgbmF2
aWdhdGlvbiwgd2hpY2ggd2UgbmVlZCB0byBpZ25vcmUuCiAgICAgaWYgKCFtX21haW5GcmFtZSB8
fCBtX21haW5GcmFtZS0+ZnJhbWVJRCgpICE9IGZyYW1lSUQpCkBAIC0xODMsOSArMTgzLDkgQEAg
aW5saW5lIGJvb2wgUHJvdmlzaW9uYWxQYWdlUHJveHk6OnZhbGlkYXRlSW5wdXQodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgT3B0aW9uYWwKICAgICByZXR1cm4gIW5hdmlnYXRpb25JRCB8fCAhKm5h
dmlnYXRpb25JRCB8fCAqbmF2aWdhdGlvbklEID09IG1fbmF2aWdhdGlvbklEOwogfQogCi12b2lk
IFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJ
RCkKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZShGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NT
d2FwcGluZywgImRpZENyZWF0ZU1haW5GcmFtZTogcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQsIG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgImRpZENyZWF0ZU1haW5G
cmFtZTogcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcGFnZS5w
YWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCkpOwogICAgIEFTU0VSVCghbV9t
YWluRnJhbWUpOwogCiAgICAgbV9tYWluRnJhbWUgPSBXZWJGcmFtZVByb3h5OjpjcmVhdGUobV9w
YWdlLCBmcmFtZUlEKTsKQEAgLTIxMCw3ICsyMTAsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVBy
b3h5OjpkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJRCkKICAgICB9CiB9CiAKLXZv
aWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBT
dHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmlu
ZywgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZv
cm1DbGllbnRSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3Ry
aW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAg
ICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQpKQogICAgICAgICByZXR1cm47CkBAIC0yMTgs
MTIgKzIxOCwxMiBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQZXJmb3JtQ2xpZW50
UmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbgogICAgIG1fcGFnZS5kaWRQZXJm
b3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgc291cmNlVVJMU3Ry
aW5nLCBkZXN0aW5hdGlvblVSTFN0cmluZywgZnJhbWVJRCk7CiB9CiAKLXZvaWQgUHJvdmlzaW9u
YWxQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwsIFVSTCYmIHVucmVhY2hhYmxl
VVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5
OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCwgVVJMJiYgdW5yZWFjaGFibGVVUkws
IGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJh
bWVJRCwgbmF2aWdhdGlvbklEKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICJkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lOiBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBuYXZpZ2F0
aW9uSUQgPSAlIiBQUkl1NjQsIG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFtZUlELCBu
YXZpZ2F0aW9uSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2Vzc1N3YXBwaW5n
LCAiZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZTogcGFnZUlEID0gJSIgUFJJdTY0ICIs
IGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEID0gJSIgUFJJdTY0LCBtX3BhZ2Uu
cGFnZUlEKCkudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpLCBuYXZpZ2F0aW9uSUQpOwog
ICAgIEFTU0VSVChtX3Byb3Zpc2lvbmFsTG9hZFVSTC5pc051bGwoKSk7CiAgICAgbV9wcm92aXNp
b25hbExvYWRVUkwgPSB1cmw7CiAKQEAgLTIzOCwxMiArMjM4LDEyIEBAIHZvaWQgUHJvdmlzaW9u
YWxQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgdWluCiAgICAgbV9wYWdlLmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFy
ZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKHVy
bCksIFdURk1vdmUodW5yZWFjaGFibGVVUkwpLCB1c2VyRGF0YSk7CiB9CiAKLXZvaWQgUHJvdmlz
aW9uYWxQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlP
cmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVS
TCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IsIFdlYkNvcmU6OldpbGxDb250
aW51ZUxvYWRpbmcgd2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRh
KQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3Qg
U3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJy
b3IsIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcgd2lsbENvbnRpbnVlTG9hZGluZywgY29u
c3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlE
LCBuYXZpZ2F0aW9uSUQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBSRUxFQVNFX0xPR19FUlJP
Ul9JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgImRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JG
cmFtZTogcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgbmF2aWdh
dGlvbklEID0gJSIgUFJJdTY0LCBtX3BhZ2UucGFnZUlEKCkudG9VSW50NjQoKSwgZnJhbWVJRCwg
bmF2aWdhdGlvbklEKTsKKyAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKFByb2Nlc3NT
d2FwcGluZywgImRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZTogcGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEID0gJSIgUFJJdTY0LCBt
X3BhZ2UucGFnZUlEKCkudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpLCBuYXZpZ2F0aW9u
SUQpOwogICAgIEFTU0VSVCghbV9wcm92aXNpb25hbExvYWRVUkwuaXNOdWxsKCkpOwogICAgIG1f
cHJvdmlzaW9uYWxMb2FkVVJMID0geyB9OwogCkBAIC0yNTQsMTIgKzI1NCwxMiBAQCB2b2lkIFBy
b3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgY29ucwogICAgIG1fcGFnZS5kaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0eU9yaWdp
biwgbmF2aWdhdGlvbklELCBwcm92aXNpb25hbFVSTCwgZXJyb3IsIHdpbGxDb250aW51ZUxvYWRp
bmcsIHVzZXJEYXRhKTsgLy8gTWF5IGRlbGV0ZSB8dGhpc3wuCiB9CiAKLXZvaWQgUHJvdmlzaW9u
YWxQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXND
dXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNv
cmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBib29sIGNvbnRhaW5zUGx1Z2lu
RG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFz
SW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFByb3Zpc2lv
bmFsUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBm
cmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29u
c3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFp
bnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBm
b3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAg
ICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICJkaWRD
b21taXRMb2FkRm9yRnJhbWU6IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIsIG5hdmlnYXRpb25JRCA9ICUiIFBSSXU2NCwgbV9wYWdlLnBhZ2VJRCgpLnRvVUludDY0
KCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQ
cm9jZXNzU3dhcHBpbmcsICJkaWRDb21taXRMb2FkRm9yRnJhbWU6IHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIG5hdmlnYXRpb25JRCA9ICUiIFBSSXU2NCwgbV9w
YWdlLnBhZ2VJRCgpLnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSwgbmF2aWdhdGlvbklE
KTsKICAgICBtX3Byb3Zpc2lvbmFsTG9hZFVSTCA9IHsgfTsKICAgICBtX3Byb2Nlc3MtPnJlbW92
ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViUGFnZVByb3h5OjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCksIG1fcGFnZS5wYWdlSUQoKSk7CiAKQEAgLTI2Nyw3ICsyNjcsNyBAQCB2b2lkIFByb3Zp
c2lvbmFsUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgbmF2aQogICAgIG1fcGFnZS5jb21taXRQcm92aXNpb25hbFBhZ2UoZnJhbWVJRCwg
bmF2aWdhdGlvbklELCBtaW1lVHlwZSwgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIGZy
YW1lTG9hZFR5cGUsIGNlcnRpZmljYXRlSW5mbywgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgZm9y
Y2VkSGFzSW5zZWN1cmVDb250ZW50LCB1c2VyRGF0YSk7IC8vIFdpbGwgZGVsZXRlIHx0aGlzfC4K
IH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlv
bkRhdGEoY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYgc3RvcmUsIHVpbnQ2NF90IGZyYW1l
SUQpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9u
RGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiBzdG9yZSwgRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQpKQogICAgICAgICBy
ZXR1cm47CkBAIC0yNzUsNyArMjc1LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlk
TmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdhdGlvbkRhdGEKICAgICBt
X3BhZ2UuZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQobV9wcm9jZXNzLmNvcHlS
ZWYoKSwgc3RvcmUsIGZyYW1lSUQpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpk
aWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgVVJMJiYgdXJsKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlk
Q2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0
KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKQEAgLTI4Myw3ICsyODMs
NyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbgogICAgIG1fcGFnZS5kaWRDaGFuZ2VQcm92aXNp
b25hbFVSTEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIG5hdmln
YXRpb25JRCwgV1RGTW92ZSh1cmwpKTsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKHVpbnQ2NF90IGZyYW1lSUQsIFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6
OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAordm9pZCBQcm92aXNpb25hbFBhZ2VQ
cm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3Jp
Z2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKICAgICB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlv
bkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxQYWdlSWRlbnRp
Zmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYg
b3JpZ2luYWxSZXF1ZXN0LAogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3Qs
IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgdWlu
dDY0X3QgbGlzdGVuZXJJRCkKIHsKQEAgLTI5NCw3ICsyOTQsNyBAQCB2b2lkIFByb3Zpc2lvbmFs
UGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmModWludDY0X3Qg
ZnJhbWVJRAogICAgICAgICBXVEZNb3ZlKGZyYW1lSW5mb0RhdGEpLCBvcmlnaW5hdGluZ1BhZ2VJ
RCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVlc3RCb2R5
KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNlckRhdGEsIGxpc3RlbmVySUQpOwogfQog
Ci12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAor
dm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJh
bWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZp
ZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwg
dWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIGlm
ICghdmFsaWRhdGVJbnB1dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQpKQpAQCAtMzAzLDcgKzMwMyw3
IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvCiAgICAgbV9wYWdlLmRlY2lkZVBvbGljeUZvclJl
c3BvbnNlU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlP
cmlnaW4sIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNo
b3dNSU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsKIH0K
IAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNv
bnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJM
U3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlk
UGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25z
dCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkK
IHsKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCkpCiAgICAgICAgIHJldHVybjsKQEAg
LTMxMSw3ICszMTEsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQZXJmb3JtU2Vy
dmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbgogICAgIG1fcGFnZS5kaWRQ
ZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgc291cmNlVVJM
U3RyaW5nLCBkZXN0aW5hdGlvblVSTFN0cmluZywgZnJhbWVJRCk7CiB9CiAKLXZvaWQgUHJvdmlz
aW9uYWxQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQor
dm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVXNl
ckRhdGEmIHVzZXJEYXRhKQogewogICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlELCBuYXZp
Z2F0aW9uSUQpKQogICAgICAgICByZXR1cm47CkBAIC0zMjksNyArMzI5LDcgQEAgdm9pZCBQcm92
aXNpb25hbFBhZ2VQcm94eTo6YmFja0ZvcndhcmRHb1RvSXRlbShjb25zdCBXZWJDb3JlOjpCYWNr
Rm9yd2FyZEl0ZW1JZGUKICAgICBtX3BhZ2UuYmFja0ZvcndhcmRHb1RvSXRlbVNoYXJlZChtX3By
b2Nlc3MuY29weVJlZigpLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb25TeW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1l
U2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVy
LAogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZp
Z2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9wdGlvbmFs
PFBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwKICAgICBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiYgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwKICAgICBjb25zdCBVc2VyRGF0
YSYgdXNlckRhdGEsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25TeW5jOjpEZWxheWVkUmVwbHkmJiByZXBseSkKQEAgLTM2NCw3ICszNjQsNyBA
QCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpyZWdpc3RlcldlYlByb2Nlc3NBY2Nlc3NpYmls
aXR5VG9rZW4oY29uc3QgSVBDOjpEYXRhUgogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ09OVEVOVF9G
SUxURVJJTkcpCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxv
Y2tMb2FkRm9yRnJhbWUoY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVy
JiB1bmJsb2NrSGFuZGxlciwgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgUHJvdmlzaW9uYWxQYWdl
UHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpD
b250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIHVuYmxvY2tIYW5kbGVyLCBGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCkKIHsKICAgICBtX3BhZ2UuY29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZy
YW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIHVuYmxvY2tIYW5kbGVyLCBmcmFtZUlEKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCmlu
ZGV4IDMzMzIxNmEyY2M3ODU2NjcxNjMyNGFiMDZmZjFiM2I5NjA4MGMwYmUuLmRlM2VlNjg3ZmE3
ZDgxNzUwYjU4ZmVkYTU4NDU4M2ZkMWYxZTJkNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaApAQCAtOTIsMjMgKzkyLDIzIEBAIHByaXZhdGU6
CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImKSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIGZpbmFs
OwogCi0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmModWludDY0
X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9u
RGF0YSYmLCBGcmFtZUluZm9EYXRhJiYsCisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uQXN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiwKICAg
ICAgICAgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlE
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9k
eSwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2Us
IGNvbnN0IFVzZXJEYXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7Ci0gICAgdm9pZCBkZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsCisgICAgdm9pZCBk
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiwKICAgICAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93
TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3Rl
bmVySUQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVS
TEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYp
OwotICAgIHZvaWQgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNl
VVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBm
cmFtZUlEKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRO
YXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiwg
dWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29u
c3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxT
dHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkQ3JlYXRlTWFpbkZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmLCBVUkwmJiB1
bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZENvbW1pdExvYWRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0
cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQz
Ml90IGZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYsIGJvb2wg
Y29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250
ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9p
ZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBV
c2VyRGF0YSYpOworICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOworICAg
IHZvaWQgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIpOworICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBVc2VyRGF0YSYpOworICAg
IHZvaWQgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdhdGlvbkRh
dGFTdG9yZSYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRQZXJmb3Jt
Q2xpZW50UmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAg
dm9pZCBkaWRDcmVhdGVNYWluRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2
b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmLCBVUkwmJiB1bnJlYWNoYWJsZVVSTCwg
Y29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJh
bWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiwgYm9vbCBjb250YWlu
c1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZv
cmNlZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZEZh
aWxQcm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZywgY29uc3Qg
VXNlckRhdGEmKTsKICAgICB2b2lkIHN0YXJ0VVJMU2NoZW1lVGFzayhVUkxTY2hlbWVUYXNrUGFy
YW1ldGVycyYmKTsKICAgICB2b2lkIGJhY2tGb3J3YXJkR29Ub0l0ZW0oY29uc3QgV2ViQ29yZTo6
QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlJiYpPiYmKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25TeW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKKyAgICB2b2lk
IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZp
Z2F0aW9uQWN0aW9uRGF0YSYmLAogICAgICAgICBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAgIFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYs
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25T
eW5jOjpEZWxheWVkUmVwbHkmJik7CiAjaWYgVVNFKFFVSUNLX0xPT0spCkBAIC0xMTgsMTEgKzEx
OCwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJXZWJQcm9jZXNzQWNjZXNzaWJpbGl0
eVRva2VuKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENP
TlRFTlRfRklMVEVSSU5HKQotICAgIHZvaWQgY29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZy
YW1lKGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYsIHVpbnQ2NF90
IGZyYW1lSUQpOworICAgIHZvaWQgY29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKGNv
bnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcik7CiAjZW5kaWYKIAogICAgIHZvaWQgaW5pdGlhbGl6ZVdlYlBhZ2UoKTsKLSAg
ICBib29sIHZhbGlkYXRlSW5wdXQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgT3B0aW9uYWw8dWlu
dDY0X3Q+JiBuYXZpZ2F0aW9uSUQgPSBXVEY6Om51bGxvcHQpOworICAgIGJvb2wgdmFsaWRhdGVJ
bnB1dChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IE9wdGlvbmFsPHVpbnQ2NF90PiYg
bmF2aWdhdGlvbklEID0gV1RGOjpudWxsb3B0KTsKIAogICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdl
OwogICAgIFJlZjxXZWJQcm9jZXNzUHJveHk+IG1fcHJvY2VzczsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHAKaW5kZXggYjJm
NzcyOWZkMzkzNWY3MmUxYmM5MTE1YTMwYTE4ZjY0ZTM5ZmQyNS4uZjc4YTdjMzg2Yzg5NTkwMTE1
NmI1NjhhYWY5OGJhYjIzYjA4MDZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHAKQEAgLTkwLDcgKzkwLDcgQEAgdm9p
ZCBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5Ojp1cGRhdGVQcmVmZXJlbmNlc1N0b3JlKGNvbnN0
IFdlYlByZWZlcmVuY2VzU3RvcmUKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbjo6VXBkYXRlUHJlZmVyZW5jZXNTdG9yZSB7IHN0b3JlIH0sIDApOwogfQog
Ci12b2lkIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmIGNoYWxsZW5nZSkKK3ZvaWQgU2VydmljZVdv
cmtlclByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZVByb3h5PiYmIGNoYWxsZW5nZSkKIHsKICAgICBVTlVTRURfUEFSQU0ocGFn
ZUlEKTsKICAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgKaW5kZXggZTkzNjVhZmFjNGY0
N2Q3ZmQ3NDdmOTg5ODNhZDk5OTBlOGFiOTc1NS4uN2Q4ODc2MDVlZWEwYjY0NzlkNjk3NjkxYWJi
NTUyODA3ZGUyMTg0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2Vydmlj
ZVdvcmtlclByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZp
Y2VXb3JrZXJQcm9jZXNzUHJveHkuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAKICAgICBz
dGF0aWMgYm9vbCBoYXNSZWdpc3RlcmVkU2VydmljZVdvcmtlcnMoY29uc3QgU3RyaW5nJiBzZXJ2
aWNlV29ya2VyRGlyZWN0b3J5KTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBSZWY8
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJik7CisgICAgdm9pZCBkaWRSZWNlaXZlQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYpOwogCiAg
ICAgdm9pZCBzdGFydChjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiwgT3B0aW9uYWw8UEFMOjpT
ZXNzaW9uSUQ+IGluaXRpYWxTZXNzaW9uSUQpOwogICAgIHZvaWQgc2V0VXNlckFnZW50KGNvbnN0
IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVk
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94
eS5jcHAKaW5kZXggZjZkM2I1MzZkZjhhYWIxOTdkOTExZWQxNGQyZWE0MGZlZmYyZTFkZC4uYzY0
ZDdlZjE5YmQwZGU3MTE2OTY5OTkyYzA3NjcxZTYxZDgyODNlZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwCkBAIC03OCw3ICs3OCw3IEBAIHN0
YXRpYyBjb25zdCBIYXNoU2V0PElQQzo6U3RyaW5nUmVmZXJlbmNlPiYgbWVzc2FnZU5hbWVzVG9J
Z25vcmVXaGlsZVN1c3BlbmRlZCgpCiB9CiAjZW5kaWYKIAotU3VzcGVuZGVkUGFnZVByb3h5OjpT
dXNwZW5kZWRQYWdlUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmIHByb2Nlc3MsIHVpbnQ2NF90IG1haW5GcmFtZUlELCBTaG91bGREZWxheUNsb3NpbmdVbnRp
bEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUgc2hvdWxkRGVsYXlDbG9zaW5nVW50
aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKQorU3VzcGVuZGVkUGFnZVByb3h5
OjpTdXNwZW5kZWRQYWdlUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmIHByb2Nlc3MsIEZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCwgU2hvdWxkRGVsYXlD
bG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlIHNob3VsZERlbGF5
Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSkKICAgICA6IG1f
cGFnZShwYWdlKQogICAgICwgbV9wcm9jZXNzKFdURk1vdmUocHJvY2VzcykpCiAgICAgLCBtX21h
aW5GcmFtZUlEKG1haW5GcmFtZUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvU3VzcGVuZGVkUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5k
ZWRQYWdlUHJveHkuaAppbmRleCAwZGFkMDU0YjI3MmE4MTlkNmUwYjA2Yzc3Y2VkODEyYTI2M2Qx
MzQwLi45MTY1M2NjNzhlYTAwODY2MGIxNGUzMzUwNTUzYWE4OWU3M2QxOTEwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuaApAQCAtMjksNiArMjksNyBA
QAogI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXIuaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2Fy
ZExpc3RJdGVtLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIApAQCAtNDIsMTIgKzQzLDEyIEBAIGVudW0gY2xh
c3MgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdN
b2RlIDogYm9vbCB7IE5vCiBjbGFzcyBTdXNwZW5kZWRQYWdlUHJveHkgZmluYWw6IHB1YmxpYyBJ
UEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHVibGljIENhbk1ha2VXZWFrUHRyPFN1c3BlbmRlZFBhZ2VQ
cm94eT4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFN1c3Bl
bmRlZFBhZ2VQcm94eShXZWJQYWdlUHJveHkmLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCB1aW50
NjRfdCBtYWluRnJhbWVJRCwgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJh
dGVkQ29tcG9zaXRpbmdNb2RlKTsKKyAgICBTdXNwZW5kZWRQYWdlUHJveHkoV2ViUGFnZVByb3h5
JiwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1haW5G
cmFtZUlELCBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ01vZGUpOwogICAgIH5TdXNwZW5kZWRQYWdlUHJveHkoKTsKIAogICAgIFdlYlBhZ2VQcm94
eSYgcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZTsgfQogICAgIFdlYlByb2Nlc3NQcm94eSYg
cHJvY2VzcygpIHsgcmV0dXJuIG1fcHJvY2Vzcy5nZXQoKTsgfQotICAgIHVpbnQ2NF90IG1haW5G
cmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJhbWVJRDsgfQorICAgIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbkZyYW1lSUQ7
IH0KIAogICAgIGJvb2wgcGFnZUlzQ2xvc2VkT3JDbG9zaW5nKCkgY29uc3Q7CiAKQEAgLTc0LDcg
Kzc1LDcgQEAgcHJpdmF0ZToKIAogICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdlOwogICAgIFJlZjxX
ZWJQcm9jZXNzUHJveHk+IG1fcHJvY2VzczsKLSAgICB1aW50NjRfdCBtX21haW5GcmFtZUlEOwor
ICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX21haW5GcmFtZUlEOwogICAgIGJvb2wgbV9p
c0Nsb3NlZCB7IGZhbHNlIH07CiAgICAgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlIG1fc2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmlu
Z0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlIHsgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRl
cmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlOjpObyB9OwogICAgIGJvb2wgbV9zaG91bGRD
bG9zZVdoZW5FbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlIHsgZmFsc2UgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVj
a1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25D
aGVja1Byb3h5LmNwcAppbmRleCBhYjc5MjQwMjllMGVmM2EzYmJhYjc0Y2JhYzAwYzI5N2ZhOTZh
M2NhLi40ZmE2ZmRmNjA4ZDZjMzdlZmVjYjBhNWUwNmMyY2ZkZTUwZWI1ODRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNr
UHJveHkuY3BwCkBAIC0zMyw3ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCi1Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eTo6VXNlck1l
ZGlhUGVybWlzc2lvbkNoZWNrUHJveHkodWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRs
ZXImJiBoYW5kbGVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9j
dW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luKQorVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OlVzZXJNZWRpYVBlcm1p
c3Npb25DaGVja1Byb3h5KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxl
ciYmIGhhbmRsZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1
bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1l
bnRPcmlnaW4pCiAgICAgOiBtX2ZyYW1lSUQoZnJhbWVJRCkKICAgICAsIG1fY29tcGxldGlvbkhh
bmRsZXIoV1RGTW92ZShoYW5kbGVyKSkKICAgICAsIG1fdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0
eU9yaWdpbihXVEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oCmlu
ZGV4IGRjMzQwOTgxNzE0YzcyNzkzYzAxMDVkNzgzMzkxYjdmYTk0NTkxOGYuLmU4MGI1MTkxODQx
ZmRiMjQ2NzU1MTA5NzI1MDk2NmU5MGI3ZTJhMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaApAQCAtMjYsNiAr
MjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFDb25z
dHJhaW50cy5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNDEsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgZW51
bSBjbGFzcyBQZXJtaXNzaW9uSW5mbyB7IEVycm9yLCBVbmtub3duLCBHcmFudGVkIH07CiAgICAg
dXNpbmcgQ29tcGxldGlvbkhhbmRsZXIgPSBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoUGVy
bWlzc2lvbkluZm8pPjsKIAotICAgIHN0YXRpYyBSZWY8VXNlck1lZGlhUGVybWlzc2lvbkNoZWNr
UHJveHk+IGNyZWF0ZSh1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRs
ZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
biwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4p
CisgICAgc3RhdGljIFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eT4gY3JlYXRlKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRs
ZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
biwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4p
CiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBVc2VyTWVkaWFQZXJtaXNzaW9u
Q2hlY2tQcm94eShmcmFtZUlELCBXVEZNb3ZlKGhhbmRsZXIpLCBXVEZNb3ZlKHVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSkpOwogICAgIH0K
QEAgLTUwLDE3ICs1MSwxNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRVc2VyTWVkaWFBY2Nlc3NJ
bmZvKGJvb2wpOwogICAgIHZvaWQgaW52YWxpZGF0ZSgpIHsgY29tcGxldGUoUGVybWlzc2lvbklu
Zm86OkVycm9yKTsgfQogCi0gICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZnJhbWVJRDsgfQorICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKCkgY29uc3Qg
eyByZXR1cm4gbV9mcmFtZUlEOyB9CiAgICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJN
ZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSB7IHJldHVybiBtX3VzZXJNZWRpYURvY3VtZW50
U2VjdXJpdHlPcmlnaW4uZ2V0KCk7IH0KICAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9w
TGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkgeyByZXR1cm4gbV90b3BMZXZlbERvY3VtZW50
U2VjdXJpdHlPcmlnaW4uZ2V0KCk7IH0KICAgICAKIHByaXZhdGU6Ci0gICAgVXNlck1lZGlhUGVy
bWlzc2lvbkNoZWNrUHJveHkodWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXImJiwg
UmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBS
ZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7Cisg
ICAgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBDb21wbGV0aW9uSGFuZGxlciYmLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNl
ck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BM
ZXZlbERvY3VtZW50T3JpZ2luKTsKICAgICB+VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHko
KTsKIAogICAgIHZvaWQgY29tcGxldGUoUGVybWlzc2lvbkluZm8pOwogICAgIAotICAgIHVpbnQ2
NF90IG1fZnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbV9mcmFtZUlEOwog
ICAgIENvbXBsZXRpb25IYW5kbGVyIG1fY29tcGxldGlvbkhhbmRsZXI7CiAgICAgUmVmPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luPiBtX3VzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW47CiAg
ICAgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBtX3RvcExldmVsRG9jdW1lbnRTZWN1cml0
eU9yaWdpbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAppbmRleCBmOWZiMTE3
YzNlMjJmYjJjYWU0NWFlZTBkMmM2OTEwMTk1MzQ3MDU0Li5jNDU3MTM3MWExODg0MjU1YTE4N2Ex
NWQzOTBlNGVhNmFiMTgyMzI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3Bw
CkBAIC0yNDAsOSArMjQwLDkgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTo6ZmluaXNoR3JhbnRpbmdSZXF1ZXN0KFVzZXJNZWRpYVBlcm0KICAgICBwcm9jZXNz
TmV4dFVzZXJNZWRpYVJlcXVlc3RJZk5lZWRlZCgpOwogfQogCi12b2lkIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXNldEFjY2Vzcyh1aW50NjRfdCBmcmFtZUlEKQor
dm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVzZXRBY2Nlc3Mo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7Ci0gICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVS
LCBmcmFtZUlEKTsKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIGZyYW1lSUQubG9nZ2lu
Z1N0cmluZygpKTsKICAgICBtX2dyYW50ZWRSZXF1ZXN0cy5yZW1vdmVBbGxNYXRjaGluZyhbZnJh
bWVJRF0oY29uc3QgYXV0byYgZ3JhbnRlZFJlcXVlc3QpIHsKICAgICAgICAgcmV0dXJuIGdyYW50
ZWRSZXF1ZXN0LT5tYWluRnJhbWVJRCgpID09IGZyYW1lSUQ7CiAgICAgfSk7CkBAIC0yNTEsNyAr
MjUxLDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVz
ZXRBY2Nlc3ModWludDY0X3QgZnJhbWVJRCkKICAgICBtX2hhc0ZpbHRlcmVkRGV2aWNlTGlzdCA9
IGZhbHNlOwogfQogCi1jb25zdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KiBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6c2VhcmNoRm9yR3JhbnRlZFJlcXVl
c3QodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwg
Ym9vbCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8pIGNvbnN0Citjb25zdCBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5KiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6c2VhcmNoRm9yR3JhbnRlZFJlcXVlc3QoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNv
bnN0IFNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgU2VjdXJp
dHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGJvb2wgbmVlZHNBdWRpbywgYm9vbCBu
ZWVkc1ZpZGVvKSBjb25zdAogewogICAgIGlmIChtX3BhZ2UuaXNNZWRpYVN0cmVhbUNhcHR1cmVN
dXRlZCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTI4Miw3ICsyODIsNyBAQCBjb25z
dCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6cwogICAgIHJldHVybiBudWxscHRyOwogfQogCi1ib29sIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp3YXNSZXF1ZXN0RGVuaWVkKHVpbnQ2
NF90IG1haW5GcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBib29s
IG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbywgYm9vbCBuZWVkc1NjcmVlbkNhcHR1cmUpCiti
b29sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp3YXNSZXF1ZXN0RGVu
aWVkKEZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHVz
ZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8sIGJvb2wgbmVlZHNT
Y3JlZW5DYXB0dXJlKQogewogICAgIGZvciAoY29uc3QgYXV0byYgZGVuaWVkUmVxdWVzdCA6IG1f
ZGVuaWVkUmVxdWVzdHMpIHsKICAgICAgICAgaWYgKCFkZW5pZWRSZXF1ZXN0LnVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luLT5pc1NhbWVTY2hlbWVIb3N0UG9ydCh1c2VyTWVkaWFEb2N1bWVudE9yaWdp
bikpCkBAIC0zMzcsNyArMzM3LDcgQEAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk6OlJlcXVlc3RBY3Rpb24gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QKIH0KICNlbmRp
ZgogCi12b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0
VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRf
dCBmcmFtZUlELCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4s
IFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBNZWRpYVN0cmVh
bVJlcXVlc3QmJiB1c2VyUmVxdWVzdCkKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3Qg
dXNlck1lZGlhSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8U2VjdXJpdHlPcmlnaW4+
JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luLCBNZWRpYVN0cmVhbVJlcXVlc3QmJiB1c2VyUmVxdWVzdCkKIHsKICNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIGlmICghbV9wYWdlLmhhc1J1bm5pbmdQcm9jZXNz
KCkpCkBAIC01MTIsNyArNTEyLDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eTo6cHJvY2Vzc1VzZXJNZWRpYVBlcm1pc3Npb25WYWxpZFJlcXUKICAgICBtX3Bh
Z2UudWlDbGllbnQoKS5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCht
X3BhZ2UsICp3ZWJGcmFtZSwgV1RGTW92ZSh1c2VyTWVkaWFPcmlnaW4pLCBXVEZNb3ZlKHRvcExl
dmVsT3JpZ2luKSwgKm1fY3VycmVudFVzZXJNZWRpYVJlcXVlc3QpOwogfQogCi12b2lkIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpnZXRVc2VyTWVkaWFQZXJtaXNzaW9u
SW5mbyh1aW50NjRfdCBmcmFtZUlELCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9j
dW1lbnRPcmlnaW4sIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBlcm1pc3Npb25JbmZvKT4mJiBoYW5kbGVyKQordm9p
ZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Z2V0VXNlck1lZGlhUGVy
bWlzc2lvbkluZm8oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxTZWN1cml0eU9yaWdpbj4m
JiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVs
RG9jdW1lbnRPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUGVybWlzc2lvbkluZm8pPiYm
IGhhbmRsZXIpCiB7CiAgICAgYXV0byogd2ViRnJhbWUgPSBtX3BhZ2UucHJvY2VzcygpLndlYkZy
YW1lKGZyYW1lSUQpOwogICAgIGlmICghd2ViRnJhbWUgfHwgIVNlY3VyaXR5T3JpZ2luOjpjcmVh
dGVGcm9tU3RyaW5nKG1fcGFnZS5wYWdlTG9hZFN0YXRlKCkuYWN0aXZlVVJMKCkpLT5pc1NhbWVT
Y2hlbWVIb3N0UG9ydCh0b3BMZXZlbERvY3VtZW50T3JpZ2luLmdldCgpKSkgewpAQCAtNTM2LDcg
KzUzNiw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Omdl
dFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKHVpbnQ2NF90CiAgICAgbV9wYWdlLnVpQ2xpZW50KCku
Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKG1fcGFnZSwgKndlYkZyYW1lLCB1c2Vy
TWVkaWFPcmlnaW4uZ2V0KCksIHRvcExldmVsT3JpZ2luLmdldCgpLCByZXF1ZXN0LmdldCgpKTsK
IH0KIAotYm9vbCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6d2FzR3Jh
bnRlZFZpZGVvT3JBdWRpb0FjY2Vzcyh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9y
aWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BM
ZXZlbERvY3VtZW50T3JpZ2luKQorYm9vbCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTo6d2FzR3JhbnRlZFZpZGVvT3JBdWRpb0FjY2VzcyhGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25z
dCBTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbikKIHsKICAgICBmb3IgKGNv
bnN0IGF1dG8mIGdyYW50ZWRSZXF1ZXN0IDogbV9ncmFudGVkUmVxdWVzdHMpIHsKICAgICAgICAg
aWYgKGdyYW50ZWRSZXF1ZXN0LT5yZXF1aXJlc0Rpc3BsYXlDYXB0dXJlKCkpCkBAIC01OTUsNyAr
NTk1LDcgQEAgVmVjdG9yPENhcHR1cmVEZXZpY2U+IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5Ojpjb21wdXRlRmlsdGVyZWREZXYKIH0KICNlbmRpZgogCi12b2lkIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjplbnVtZXJhdGVNZWRpYURldmljZXNG
b3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFNlY3Vy
aXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlPcmlnaW4+
JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbikKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVz
ZXJNZWRpYUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUmVmPFNlY3VyaXR5T3JpZ2luPiYm
IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxE
b2N1bWVudE9yaWdpbikKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIEFMV0FZU19M
T0coTE9HSURFTlRJRklFUiwgdXNlck1lZGlhSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmgKaW5kZXggZjUwNWUyODBjNDQyOTBhODAzZGJkYjY4Yzk4ZWVhNjMwYjFjOWJiNi4uYmJi
YTQ0YWM4MmJkMjgwNzViZGRmYmI0NTQ0NGNhNTY5YWNjZmI5NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5oCkBAIC02MCwxNSArNjAsMTUgQEAgcHVibGljOgogCiAgICAgdm9pZCBp
bnZhbGlkYXRlUGVuZGluZ1JlcXVlc3RzKCk7CiAKLSAgICB2b2lkIHJlcXVlc3RVc2VyTWVkaWFQ
ZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQs
IFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiAgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4s
IFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBX
ZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJik7CisgICAgdm9pZCByZXF1ZXN0VXNlck1lZGlh
UGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiAgdXNlck1lZGlhRG9jdW1l
bnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50
T3JpZ2luLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJik7CiAKLSAgICB2b2lkIHJlc2V0
QWNjZXNzKHVpbnQ2NF90IG1haW5GcmFtZUlEKTsKKyAgICB2b2lkIHJlc2V0QWNjZXNzKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCk7CiAgICAgdm9pZCB2aWV3SXNCZWNvbWlu
Z1Zpc2libGUoKTsKIAogICAgIHZvaWQgZ3JhbnRSZXF1ZXN0KFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkmKTsKICAgICB2b2lkIGRlbnlSZXF1ZXN0KFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkmLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFB
Y2Nlc3NEZW5pYWxSZWFzb24sIGNvbnN0IFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnQgPSB7IH0p
OwogCi0gICAgdm9pZCBlbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2Vy
TWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYm
IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYg
dG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7CisgICAgdm9pZCBlbnVtZXJhdGVNZWRpYURldmljZXNG
b3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBS
ZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJl
ZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKTsKIAog
ICAgIHZvaWQgc3RvcENhcHR1cmUoKTsKICAgICB2b2lkIHNjaGVkdWxlTmV4dFJlamVjdGlvbigp
OwpAQCAtOTUsMTkgKzk1LDE5IEBAIHByaXZhdGU6CiAgICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hh
bm5lbCgpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKLSAgICBSZWY8VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eT4gY3JlYXRlUGVybWlzc2lvblJlcXVlc3QodWludDY0X3QgdXNlck1lZGlh
SUQsIHVpbnQ2NF90IG1haW5GcmFtZUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0b3I8V2ViQ29yZTo6
Q2FwdHVyZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlPiYmIHZpZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYpOworICAg
IFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGVQZXJtaXNzaW9uUmVx
dWVzdCh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1haW5G
cmFtZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgdmlk
ZW9EZXZpY2VzLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJik7CiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKICAgICB2b2lkIGZpbmlzaEdyYW50aW5nUmVxdWVzdChVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5Jik7CiAKLSAgICBjb25zdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5KiBzZWFyY2hGb3JHcmFudGVkUmVxdWVzdCh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBib29sIG5l
ZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbykgY29uc3Q7Ci0gICAgYm9vbCB3YXNSZXF1ZXN0RGVu
aWVkKHVpbnQ2NF90IG1haW5GcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYg
dXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0
b3BMZXZlbERvY3VtZW50T3JpZ2luLCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbywg
Ym9vbCBuZWVkc1NjcmVlbkNhcHR1cmUpOworICAgIGNvbnN0IFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkqIHNlYXJjaEZvckdyYW50ZWRSZXF1ZXN0KFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3Jp
Z2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdp
biwgYm9vbCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8pIGNvbnN0OworICAgIGJvb2wgd2Fz
UmVxdWVzdERlbmllZChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQsIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGJvb2wgbmVl
ZHNBdWRpbywgYm9vbCBuZWVkc1ZpZGVvLCBib29sIG5lZWRzU2NyZWVuQ2FwdHVyZSk7CiAKICAg
ICB1c2luZyBQZXJtaXNzaW9uSW5mbyA9IFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5OjpQ
ZXJtaXNzaW9uSW5mbzsKLSAgICB2b2lkIGdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKHVpbnQ2
NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1
bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1l
bnRPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUGVybWlzc2lvbkluZm8pPiYmKTsKKyAg
ICB2b2lkIGdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
LCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChQZXJtaXNzaW9uSW5mbyk+JiYpOwogCiAgICAgUmVxdWVz
dEFjdGlvbiBnZXRSZXF1ZXN0QWN0aW9uKGNvbnN0IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkmKTsKIAotICAgIGJvb2wgd2FzR3JhbnRlZFZpZGVvT3JBdWRpb0FjY2Vzcyh1aW50NjRf
dCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7
CisgICAgYm9vbCB3YXNHcmFudGVkVmlkZW9PckF1ZGlvQWNjZXNzKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50
T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9y
aWdpbik7CiAKICAgICBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gY29tcHV0ZUZpbHRl
cmVkRGV2aWNlTGlzdChib29sIHJldmVhbElkc0FuZExhYmVscywgY29uc3QgU3RyaW5nJiBkZXZp
Y2VJREhhc2hTYWx0KTsKIApAQCAtMTM0LDcgKzEzNCw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9y
PFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Pj4gbV9ncmFudGVkUmVxdWVzdHM7
CiAKICAgICBzdHJ1Y3QgRGVuaWVkUmVxdWVzdCB7Ci0gICAgICAgIHVpbnQ2NF90IG1haW5GcmFt
ZUlEOworICAgICAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQ7CiAgICAg
ICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gdXNlck1lZGlhRG9jdW1lbnRPcmlnaW47
CiAgICAgICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gdG9wTGV2ZWxEb2N1bWVudE9y
aWdpbjsKICAgICAgICAgYm9vbCBpc0F1ZGlvRGVuaWVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcApp
bmRleCA0ZjAyODQwNmJhNGE3NzUxNjQ3MDY0NzY3MWYzYTk1MDg4YWZmNGFiLi45NjZmZGFkNWNm
MGRkMDliOThmZjU1NjEwM2UyMDZhYTExNzVjOTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcApA
QCAtMzAsNyArMzAsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIAotVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYg
bWFuYWdlciwgdWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IG1haW5GcmFtZUlELCB1aW50
NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9j
dW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiBhdWRpb0RldmljZXMs
IFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgV2ViQ29yZTo6
TWVkaWFTdHJlYW1SZXF1ZXN0JiYgcmVxdWVzdCkKK1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJNZWRpYUlELCBGcmFt
ZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0b3I8V2Vi
Q29yZTo6Q2FwdHVyZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYg
cmVxdWVzdCkKICAgICA6IG1fbWFuYWdlcigmbWFuYWdlcikKICAgICAsIG1fdXNlck1lZGlhSUQo
dXNlck1lZGlhSUQpCiAgICAgLCBtX21haW5GcmFtZUlEKG1haW5GcmFtZUlEKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eS5oCmluZGV4IDU0NGY2MTE2ZWRiNjYyYThmYTk2MzFiYzNhZjhiNzBkZWRjNTgyN2YuLmJh
NGUwYTM0NzE2MDMxYjE4ZjA4NWNmZDAxYTczNTE3NzhhMDMwNTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmgKQEAgLTIxLDYgKzIxLDcgQEAKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlm
aWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVN0cmVhbVJlcXVlc3QuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC0zNSw3
ICszNiw3IEBAIGNsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Owog
CiBjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5IDogcHVibGljIEFQSTo6T2Jq
ZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q+IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+
IGNyZWF0ZShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwg
dWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IG1haW5GcmFtZUlELCB1aW50NjRfdCBmcmFt
ZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmln
aW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
LCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVkaWFTdHJl
YW1SZXF1ZXN0JiYgcmVxdWVzdCkKKyAgICBzdGF0aWMgUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk+IGNyZWF0ZShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eSYgbWFuYWdlciwgdWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBtYWluRnJhbWVJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJiBy
ZXF1ZXN0KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eShtYW5hZ2VyLCB1c2VyTWVkaWFJRCwgbWFpbkZyYW1lSUQsIGZy
YW1lSUQsIFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVs
RG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKGF1ZGlvRGV2aWNlcyksIFdURk1vdmUodmlkZW9EZXZp
Y2VzKSwgV1RGTW92ZShyZXF1ZXN0KSkpOwogICAgIH0KQEAgLTY1LDggKzY2LDggQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0SGFzUGVyc2lzdGVudEFjY2VzcygpIHsgbV9oYXNQZXJzaXN0ZW50QWNj
ZXNzID0gdHJ1ZTsgfQogCiAgICAgdWludDY0X3QgdXNlck1lZGlhSUQoKSBjb25zdCB7IHJldHVy
biBtX3VzZXJNZWRpYUlEOyB9Ci0gICAgdWludDY0X3QgbWFpbkZyYW1lSUQoKSBjb25zdCB7IHJl
dHVybiBtX21haW5GcmFtZUlEOyB9Ci0gICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0
dXJuIG1fZnJhbWVJRDsgfQorICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJ
RCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbkZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQogCiAgICAgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIHsg
cmV0dXJuIG1fdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luLmdldCgpOyB9CiAgICAgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSB7
IHJldHVybiBtX3VzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW4uZ2V0KCk7IH0KQEAgLTg0
LDEyICs4NSwxMiBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZSB2aWRlb0Rl
dmljZSgpIGNvbnN0IHsgcmV0dXJuIG1fZWxpZ2libGVWaWRlb0RldmljZXMuaXNFbXB0eSgpID8g
V2ViQ29yZTo6Q2FwdHVyZURldmljZSB7IH0gOiBtX2VsaWdpYmxlVmlkZW9EZXZpY2VzWzBdOyB9
CiAKIHByaXZhdGU6Ci0gICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYsIHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1
aW50NjRfdCBtYWluRnJhbWVJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVjdG9yPFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4m
JiB2aWRlb0RldmljZXMsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKKyAgICBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5JiwgdWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBtYWluRnJhbWVJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0b3I8V2ViQ29yZTo6Q2Fw
dHVyZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
PiYmIHZpZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYpOwogCiAgICAg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkqIG1fbWFuYWdlcjsKICAgICB1
aW50NjRfdCBtX3VzZXJNZWRpYUlEOwotICAgIHVpbnQ2NF90IG1fbWFpbkZyYW1lSUQ7Ci0gICAg
dWludDY0X3QgbV9mcmFtZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX21haW5G
cmFtZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX2ZyYW1lSUQ7CiAgICAgUmVm
PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBtX3VzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmln
aW47CiAgICAgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBtX3RvcExldmVsRG9jdW1lbnRT
ZWN1cml0eU9yaWdpbjsKICAgICBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gbV9lbGln
aWJsZVZpZGVvRGV2aWNlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkZyYW1lUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5j
cHAKaW5kZXggMDcxNGI0MWViNjc3NjhkOWUwYzlkNDEyZTIwZTg5OGY4MWU3M2RkOC4uZWUzMzcx
MDgxNzA3ZWEzNmQzNTBlZmUyY2M1YTAzYzFkMTkxZGE0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAKQEAgLTQ1LDkgKzQ1LDggQEAgdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIAotV2ViRnJhbWVQcm94eTo6V2ViRnJh
bWVQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIHVpbnQ2NF90IGZyYW1lSUQpCitXZWJGcmFtZVBy
b3h5OjpXZWJGcmFtZVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQpCiAgICAgOiBtX3BhZ2UobWFrZVdlYWtQdHIocGFnZSkpCi0gICAgLCBtX2lzRnJhbWVT
ZXQoZmFsc2UpCiAgICAgLCBtX2ZyYW1lSUQoZnJhbWVJRCkKIHsKICAgICBXZWJQcm9jZXNzUG9v
bDo6c3RhdGlzdGljcygpLndrRnJhbWVDb3VudCsrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
RnJhbWVQcm94eS5oCmluZGV4IDQ0NjAwZjFjMjcyOTBlNWU0YzE2OGVhOGNkM2NjMzk2MzZmZGJi
ZTEuLmNjZGE2Mzc4MDAyZDU1YWIxNTdhNmYxNTM3YzVlZjc5ZGI0NWMyNTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgKQEAgLTU5LDE0ICs1OSwxNCBAQCBzdHJ1Y3Qg
V2Vic2l0ZVBvbGljaWVzRGF0YTsKIAogY2xhc3MgV2ViRnJhbWVQcm94eSA6IHB1YmxpYyBBUEk6
Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OkZyYW1lPiB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZjxXZWJGcmFtZVByb3h5PiBjcmVhdGUoV2ViUGFnZVByb3h5JiBwYWdlLCB1aW50NjRf
dCBmcmFtZUlEKQorICAgIHN0YXRpYyBSZWY8V2ViRnJhbWVQcm94eT4gY3JlYXRlKFdlYlBhZ2VQ
cm94eSYgcGFnZSwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAgICAgewogICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJGcmFtZVByb3h5KHBhZ2UsIGZyYW1lSUQpKTsK
ICAgICB9CiAKICAgICB2aXJ0dWFsIH5XZWJGcmFtZVByb3h5KCk7CiAKLSAgICB1aW50NjRfdCBm
cmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KICAgICBXZWJQ
YWdlUHJveHkqIHBhZ2UoKSBjb25zdCB7IHJldHVybiBtX3BhZ2UuZ2V0KCk7IH0KIAogICAgIHZv
aWQgd2ViUHJvY2Vzc1dpbGxTaHV0RG93bigpOwpAQCAtMTMwLDcgKzEzMCw3IEBAIHB1YmxpYzoK
ICNlbmRpZgogCiBwcml2YXRlOgotICAgIFdlYkZyYW1lUHJveHkoV2ViUGFnZVByb3h5JiwgdWlu
dDY0X3QgZnJhbWVJRCk7CisgICAgV2ViRnJhbWVQcm94eShXZWJQYWdlUHJveHkmLCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIpOwogCiAgICAgV2Vha1B0cjxXZWJQYWdlUHJveHk+IG1fcGFnZTsK
IApAQCAtMTM4LDExICsxMzgsMTEgQEAgcHJpdmF0ZToKIAogICAgIFN0cmluZyBtX01JTUVUeXBl
OwogICAgIFN0cmluZyBtX3RpdGxlOwotICAgIGJvb2wgbV9pc0ZyYW1lU2V0OworICAgIGJvb2wg
bV9pc0ZyYW1lU2V0IHsgZmFsc2UgfTsKICAgICBib29sIG1fY29udGFpbnNQbHVnaW5Eb2N1bWVu
dCB7IGZhbHNlIH07CiAgICAgUmVmUHRyPFdlYkNlcnRpZmljYXRlSW5mbz4gbV9jZXJ0aWZpY2F0
ZUluZm87CiAgICAgUmVmUHRyPFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eT4gbV9hY3RpdmVM
aXN0ZW5lcjsKLSAgICB1aW50NjRfdCBtX2ZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIG1fZnJhbWVJRDsKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCiAgICAgV2Vi
Q29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyIG1fY29udGVudEZpbHRlclVuYmxvY2tI
YW5kbGVyOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApp
bmRleCA3YzgxNzg0NzE5MWU5ZjU0MDJkMTQzYTRlZjg1ZWRlNGI2MjU4MWViLi5lZDdkYTYzYmIw
ZTg5ODFjNWY3NzE4NjUzZmZlMTExY2Q1MjQyODBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKQEAgLTczMSw3ICs3MzEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
bGF1bmNoUHJvY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVnaXN0cmFibGVEb21haW4p
CiAgICAgZmluaXNoQXR0YWNoaW5nVG9XZWJQcm9jZXNzKElzUHJvY2Vzc1N3YXA6Ok5vKTsKIH0K
IAotYm9vbCBXZWJQYWdlUHJveHk6OnN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUoQVBJOjpO
YXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBPcHRpb25hbDx1aW50NjRfdD4gbWFpbkZyYW1lSUQsIFBy
b2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwg
U2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2Rl
IHNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9k
ZSkKK2Jvb2wgV2ViUGFnZVByb3h5OjpzdXNwZW5kQ3VycmVudFBhZ2VJZlBvc3NpYmxlKEFQSTo6
TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBtYWluRnJh
bWVJRCwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5
Q2xpZW50LCBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ01vZGUgc2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdNb2RlKQogewogICAgIG1fbGFzdFN1c3BlbmRlZFBhZ2UgPSBudWxscHRyOwogCkBAIC0y
ODg3LDEyICsyODg3LDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWNlaXZlZFBvbGljeURlY2lz
aW9uKFBvbGljeUFjdGlvbiBhY3Rpb24sIEFQSTo6TmF2aWdhdGlvbioKICAgICBzZW5kZXItPnNl
bmQoYWN0aW9uLCBuYXZpZ2F0aW9uID8gbmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCkgOiAwLCBk
b3dubG9hZElELCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcykpOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6Y29tbWl0UHJvdmlzaW9uYWxQYWdlKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNv
bnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2Vy
dGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVu
dCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3Vy
ZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpj
b21taXRQcm92aXNpb25hbFBhZ2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNv
bnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2Vy
dGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVu
dCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3Vy
ZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBBU1NFUlQobV9wcm92
aXNpb25hbFBhZ2UpOwogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImNvbW1p
dFByb3Zpc2lvbmFsUGFnZTogcHJldmlvdXNQSUQgPSAlaSwgbmV3UElEID0gJWksIHBhZ2VJRCA9
ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3Byb3Zpc2lvbmFs
UGFnZS0+cHJvY2VzcygpLnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCkp
OwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IG1haW5GcmFtZUlESW5QcmV2aW91c1Byb2Nlc3Mg
PSBtX21haW5GcmFtZSA/IG1ha2VPcHRpb25hbChtX21haW5GcmFtZS0+ZnJhbWVJRCgpKSA6IFdU
Rjo6bnVsbG9wdDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IG1haW5GcmFtZUlESW5Q
cmV2aW91c1Byb2Nlc3MgPSBtX21haW5GcmFtZSA/IG1ha2VPcHRpb25hbChtX21haW5GcmFtZS0+
ZnJhbWVJRCgpKSA6IFdURjo6bnVsbG9wdDsKIAogICAgIEFTU0VSVChtX3Byb2Nlc3MucHRyKCkg
IT0gJm1fcHJvdmlzaW9uYWxQYWdlLT5wcm9jZXNzKCkpOwogCkBAIC0zNjI4LDcgKzM2MjgsNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lU2NyaXB0V29ybGQo
Y29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvbwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6UnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lU2NyaXB0V29ybGQoc2NyaXB0LCBmb3Jj
ZVVzZXJHZXN0dXJlLCB3b3JsZE5hbWUsIGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7CiB9CiAKLXZv
aWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0SW5GcmFtZSh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBTdHJpbmcmIHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBXVEY6OkZ1bmN0aW9u
PHZvaWQoQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqLCBib29sIGhhZEV4Y2VwdGlvbiwgY29u
c3QgRXhjZXB0aW9uRGV0YWlscyYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVu
Y3Rpb24pCit2b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEluRnJhbWUoRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1
cmUsIFdURjo6RnVuY3Rpb248dm9pZChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSosIGJvb2wg
aGFkRXhjZXB0aW9uLCBjb25zdCBFeGNlcHRpb25EZXRhaWxzJiwgQ2FsbGJhY2tCYXNlOjpFcnJv
cik+JiYgY2FsbGJhY2tGdW5jdGlvbikKIHsKICAgICBBU1NFUlQobWFpbkZyYW1lKCktPmZyYW1l
SUQoKSAhPSBmcmFtZUlEKTsKICAgICBhdXRvIGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQo
V1RGTW92ZShjYWxsYmFja0Z1bmN0aW9uKSwgbV9wcm9jZXNzLT50aHJvdHRsZXIoKS5iYWNrZ3Jv
dW5kQWN0aXZpdHlUb2tlbigpKTsKQEAgLTM4MzQsNyArMzgzNCw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpwcmVmZXJlbmNlc0RpZENoYW5nZSgpCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpQcmVmZXJlbmNlc0RpZENoYW5nZShwcmVmZXJlbmNlc1N0b3JlKCkpLCBtX3Bh
Z2VJRCwgcHJpbnRpbmdTZW5kT3B0aW9ucyhtX2lzUGVyZm9ybWluZ0RPTVByaW50T3BlcmF0aW9u
KSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUoRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgLy8gVGhlIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25TeW5jIElQQyBpcyBzeW5jaHJvbm91cyBhbmQgbWF5IHRoZXJlZm9yZSBnZXQgcHJvY2Vz
c2VkIGJlZm9yZSB0aGUgRGlkQ3JlYXRlTWFpbkZyYW1lIG9uZS4KICAgICAvLyBXaGVuIHRoaXMg
aGFwcGVucywgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoKSBjYWxscyBkaWRD
cmVhdGVNYWluRnJhbWUoKSBhbmQgd2UgbmVlZCB0byBpZ25vcmUgdGhlIERpZENyZWF0ZU1haW5G
cmFtZQpAQCAtMzg1Myw3ICszODUzLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0ZU1h
aW5GcmFtZSh1aW50NjRfdCBmcmFtZUlEKQogICAgIG1fcHJvY2Vzcy0+ZnJhbWVDcmVhdGVkKGZy
YW1lSUQsICptX21haW5GcmFtZSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVT
dWJmcmFtZSh1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0ZVN1
YmZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0
b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTM4NzMsNyArMzg3Myw3IEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpkaWRDcmVhdGVTdWJmcmFtZSh1aW50NjRfdCBmcmFtZUlEKQogICAgIG1f
cHJvY2Vzcy0+ZnJhbWVDcmVhdGVkKGZyYW1lSUQsIHN1YkZyYW1lLmdldCgpKTsKIH0KIAotdm9p
ZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0ZVdpbmRvdyh1aW50NjRfdCBmcmFtZUlELCBHbG9iYWxX
aW5kb3dJZGVudGlmaWVyJiYgd2luZG93SWRlbnRpZmllcikKK3ZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRDcmVhdGVXaW5kb3coRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEdsb2JhbFdpbmRvd0lkZW50
aWZpZXImJiB3aW5kb3dJZGVudGlmaWVyKQogewogfQogCkBAIC0zOTM3LDEyICszOTM3LDEyIEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpkaWREZXN0cm95TmF2aWdhdGlvbih1aW50NjRfdCBuYXZpZ2F0
aW9uSUQpCiAgICAgbV9uYXZpZ2F0aW9uU3RhdGUtPmRpZERlc3Ryb3lOYXZpZ2F0aW9uKG5hdmln
YXRpb25JRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYg
dXJsLCBVUkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9p
ZCBXZWJQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYgdXJsLCBVUkwmJiB1
bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIGRpZFN0YXJ0
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJ
RCwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKHVybCksIFdURk1vdmUodW5yZWFjaGFibGVVUkwpLCB1
c2VyRGF0YSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgdWludDY0X3Qg
ZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwsIFVSTCYmIHVucmVhY2hh
YmxlVVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
U3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
IHByb2Nlc3MsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IFVSTCYmIHVybCwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0
YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwog
CkBAIC0zOTYxLDggKzM5NjEsOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNp
b25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmCiAgICAgaWYgKGZy
YW1lLT5pc01haW5GcmFtZSgpICYmIG5hdmlnYXRpb25JRCkKICAgICAgICAgbmF2aWdhdGlvbiA9
IG5hdmlnYXRpb25TdGF0ZSgpLm5hdmlnYXRpb24obmF2aWdhdGlvbklEKTsKIAotICAgIExPRyhM
b2FkaW5nLCAiV2ViUGFnZVByb3h5ICUiIFBSSXU2NCAiIGluIHByb2Nlc3MgcGlkICVpIGRpZFN0
YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUgdG8gZnJhbWVJRCAlIiBQUkl1NjQgIiwgbmF2aWdh
dGlvbklEICUiIFBSSXU2NCAiLCB1cmwgJXMiLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBwcm9jZXNz
LT5wcm9jZXNzSWRlbnRpZmllcigpLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQsIHVybC5zdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJk
aWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVy
KCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQpOworICAgIExPRyhMb2FkaW5nLCAiV2Vi
UGFnZVByb3h5ICUiIFBSSXU2NCAiIGluIHByb2Nlc3MgcGlkICVpIGRpZFN0YXJ0UHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUgdG8gZnJhbWVJRCAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEICUiIFBS
SXU2NCAiLCB1cmwgJXMiLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBwcm9jZXNzLT5wcm9jZXNzSWRl
bnRpZmllcigpLCBmcmFtZUlELnRvVUludDY0KCksIG5hdmlnYXRpb25JRCwgdXJsLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRp
ZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIo
KSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAgIGF1dG8g
dHJhbnNhY3Rpb24gPSBtX3BhZ2VMb2FkU3RhdGUudHJhbnNhY3Rpb24oKTsKIApAQCAtMzk4Nyw3
ICszOTg3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJgogICAgICAgICBtX25hdmlnYXRpb25D
bGllbnQtPmRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uKCp0aGlzLCBuYXZpZ2F0aW9uLmdl
dCgpLCBwcm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9iamVjdCgp
KS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRFeHBsaWNpdE9wZW5Gb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBVUkwmJiB1cmwpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRXhw
bGljaXRPcGVuRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFVSTCYmIHVybCkKIHsK
ICAgICBhdXRvKiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVT
U0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKQEAgLTQwMDYsMTUgKzQwMDYsMTUgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OmRpZEV4cGxpY2l0T3BlbkZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IFVSTCYmIHVybCkKICAgICBtX3BhZ2VMb2FkU3RhdGUuY29tbWl0Q2hhbmdlcygpOwogfQogCi12
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgUmVz
b3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAg
IGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVk
KG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgV1RGTW92ZShyZXF1
ZXN0KSwgdXNlckRhdGEpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZl
clJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiBwcm9jZXNzLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3Zv
aWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExv
YWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFJlc291cmNlUmVxdWVzdCYm
IHJlcXVlc3QsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKLSAgICBMT0coTG9hZGluZywg
IldlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWUgdG8gZnJhbWVJRCAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEICUiIFBSSXU2NCAi
LCB1cmwgJXMiLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQsIHJlcXVlc3QudXJsKCkuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlk
UmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6IHdlYlBJRCA9
ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgcHJvY2Vzcy0+
cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAg
TE9HKExvYWRpbmcsICJXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lIHRvIGZyYW1lSUQgJSIgUFJJdTY0ICIsIG5hdmlnYXRpb25J
RCAlIiBQUkl1NjQgIiwgdXJsICVzIiwgZnJhbWVJRC50b1VJbnQ2NCgpLCBuYXZpZ2F0aW9uSUQs
IHJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9V
SW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3Ig
cHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQwNDEsOSArNDA0MSw5IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JG
cmFtZVNoYXJlZChSZWY8CiAgICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkUmVjZWl2ZVNl
cnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxOYXZpZ2F0aW9uKCp0aGlzLCBuYXZpZ2F0aW9uLmdl
dCgpLCBwcm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9iamVjdCgp
KS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsUGVyZm9ybUNsaWVudFJlZGly
ZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1cmwsIGRvdWJsZSBk
ZWxheSwgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCkKK3ZvaWQgV2ViUGFnZVByb3h5Ojp3
aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IGNvbnN0IFN0cmluZyYgdXJsLCBkb3VibGUgZGVsYXksIFdlYkNvcmU6OkxvY2tCYWNrRm9yd2Fy
ZExpc3QpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAid2lsbFBlcmZv
cm1DbGllbnRSZWRpcmVjdEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwg
bV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RChMb2FkaW5nLCAid2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lOiB3ZWJQSUQgPSAl
aSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+
cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2
NCgpKTsKIAogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7
CiAKQEAgLTQwNTQsOSArNDA1NCw5IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsUGVyZm9ybUNs
aWVudFJlZGlyZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyCiAgICAgICAg
IG1fbmF2aWdhdGlvbkNsaWVudC0+d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdCgqdGhpcywgdXJs
LCBkZWxheSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRDYW5jZWxDbGllbnRSZWRpcmVj
dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2FuY2Vs
Q2xpZW50UmVkaXJlY3RGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKLSAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZv
ckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQ
Ukl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQo
KSwgZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkQ2Fu
Y2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCks
IG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAKICAgICBQYWdlQ2xp
ZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00MDY3LDEyICs0MDY3
LDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQpCiAgICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkQ2FuY2Vs
Q2xpZW50UmVkaXJlY3QoKnRoaXMpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdl
UHJvdmlzaW9uYWxVUkxGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIFVSTCYmIHVybCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92aXNpb25h
bFVSTEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIFVSTCYmIHVybCkKIHsKICAgICBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hh
cmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgV1RGTW92ZSh1
cmwpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9y
RnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCB1aW50NjRfdCBmcmFt
ZUlELCB1aW50NjRfdCwgVVJMJiYgdXJsKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZVBy
b3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNz
LCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QsIFVSTCYmIHVybCkKIHsKICAgICBQ
YWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00MDkxLDcg
KzQwOTEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JG
cmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmCiAgICAgZnJhbWUtPmRpZFJlY2VpdmVT
ZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZCh1cmwpOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBSZXNvdXJjZUVy
cm9yJiBlcnJvciwgV2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBjb25z
dCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9y
aWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29u
c3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFdp
bGxDb250aW51ZUxvYWRpbmcgd2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEmIHVz
ZXJEYXRhKQogewogICAgIGlmIChtX3Byb3Zpc2lvbmFsUGFnZSAmJiBtX3Byb3Zpc2lvbmFsUGFn
ZS0+bmF2aWdhdGlvbklEKCkgPT0gbmF2aWdhdGlvbklEKSB7CiAgICAgICAgIC8vIFRoZSBsb2Fk
IGRpZCBub3QgZmFpbCwgaXQgaXMgbWVyZWx5IGhhcHBlbmluZyBpbiBhIG5ldyBwcm92aXNpb25h
bCBwcm9jZXNzLgpAQCAtNDEwMSwxMCArNDEwMSwxMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
RmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3Vy
aQogICAgIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29w
eVJlZigpLCBmcmFtZUlELCBmcmFtZVNlY3VyaXR5T3JpZ2luLCBuYXZpZ2F0aW9uSUQsIHByb3Zp
c2lvbmFsVVJMLCBlcnJvciwgd2lsbENvbnRpbnVlTG9hZGluZywgdXNlckRhdGEpOwogfQogCi12
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2Vj
dXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVy
cm9yLCBXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJE
YXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3Jp
Z2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkws
IGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250
aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBMT0coTG9hZGlu
ZywgIihMb2FkaW5nKSBXZWJQYWdlUHJveHkgJSIgUFJJdTY0ICIgaW4gd2ViIHByb2Nlc3MgcGlk
ICVpIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSB0byBwcm92aXNpb25hbFVSTCAlcyIs
IG1fcGFnZUlELnRvVUludDY0KCksIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIHByb3Zp
c2lvbmFsVVJMLnV0ZjgoKS5kYXRhKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJv
Y2VzcywgImRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIGRvbWFpbiA9ICVzLCBjb2Rl
ID0gJWQiLCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgp
LCBmcmFtZUlELCBlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJvci5lcnJvckNvZGUo
KSk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzLCAiZGlkRmFpbFByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIiwgZG9tYWluID0gJXMsIGNvZGUgPSAlZCIsIHByb2Nlc3MtPnByb2Nl
c3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSwg
ZXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSwgZXJyb3IuZXJyb3JDb2RlKCkpOwogCiAgICAg
UGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDE4MCwx
MSArNDE4MCwxMSBAQCBzdGF0aWMgT3B0aW9uU2V0PENyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJh
bnNmZXI6OkZsYWc+IGNoZWNrSWZOYXZpZ2F0aW9uQ29udGFpbgogfQogI2VuZGlmCiAKLXZvaWQg
V2ViUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFz
Q3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBvcGFxdWVGcmFtZUxvYWRUeXBlLCBjb25z
dCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWlu
c1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxIYXNJbnNlY3VyZUNvbnRlbnQ+IGhhc0luc2VjdXJl
Q29udGVudCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRp
ZENvbW1pdExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29u
dGVudFByb3ZpZGVyLCB1aW50MzJfdCBvcGFxdWVGcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3Jl
OjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdpbkRv
Y3VtZW50LCBPcHRpb25hbDxIYXNJbnNlY3VyZUNvbnRlbnQ+IGhhc0luc2VjdXJlQ29udGVudCwg
Y29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIExPRyhMb2FkaW5nLCAiKExvYWRpbmcp
IFdlYlBhZ2VQcm94eSAlIiBQUkl1NjQgIiBkaWRDb21taXRMb2FkRm9yRnJhbWUgaW4gbmF2aWdh
dGlvbiAlIiBQUkl1NjQsIG1fcGFnZUlELnRvVUludDY0KCksIG5hdmlnYXRpb25JRCk7CiAgICAg
TE9HKEJhY2tGb3J3YXJkLCAiKEJhY2svRm9yd2FyZCkgQWZ0ZXIgbG9hZCBjb21taXQsIGJhY2sv
Zm9yd2FyZCBsaXN0IGlzIG5vdzolcyIsIG1fYmFja0ZvcndhcmRMaXN0LT5sb2dnaW5nU3RyaW5n
KCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZENvbW1pdExvYWRG
b3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0
KCksIGZyYW1lSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZENv
bW1pdExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlE
LnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAKICAgICBQYWdlQ2xpZW50UHJvdGVj
dG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00Mjk0LDkgKzQyOTQsOSBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRAogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRG
aW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7Ci0gICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJh
bWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2
NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBm
cmFtZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRGaW5pc2hE
b2N1bWVudExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFn
ZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAKICAgICBQYWdlQ2xpZW50UHJv
dGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00MzE3LDEwICs0MzE3LDEwIEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBuYXZpCiAgICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlk
RmluaXNoRG9jdW1lbnRMb2FkKCp0aGlzLCBuYXZpZ2F0aW9uLmdldCgpLCBtX3Byb2Nlc3MtPnRy
YW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0KCkpLmdldCgpKTsKIH0KIAot
dm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQg
V2ViUGFnZVByb3h5OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewog
ICAgIExPRyhMb2FkaW5nLCAiV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUgLSBX
ZWJQYWdlUHJveHkgJXAgd2l0aCBuYXZpZ2F0aW9uSUQgJSIgUFJJdTY0ICIgZGlkRmluaXNoTG9h
ZCIsIHRoaXMsIG5hdmlnYXRpb25JRCk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2Fk
aW5nLCAiZGlkRmluaXNoTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIo
KSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRChMb2FkaW5nLCAiZGlkRmluaXNoTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lk
ZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAog
ICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQz
NjMsOSArNDM2Myw5IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklECiAgICAgbV9pc0xvYWRpbmdB
bHRlcm5hdGVIVE1MU3RyaW5nRm9yRmFpbGluZ1Byb3Zpc2lvbmFsTG9hZCA9IGZhbHNlOwogfQog
Ci12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBjb25z
dCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbExvYWRGb3JG
cmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25z
dCBSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewotICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZEZhaWxMb2FkRm9yRnJhbWU6IHdl
YlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBk
b21haW4gPSAlcywgY29kZSA9ICVkIiwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBt
X3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELCBlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgp
LCBlcnJvci5lcnJvckNvZGUoKSk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5n
LCAiZGlkRmFpbExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIGRvbWFpbiA9ICVzLCBjb2RlID0gJWQiLCBtX3Byb2Nl
c3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9V
SW50NjQoKSwgZXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSwgZXJyb3IuZXJyb3JDb2RlKCkp
OwogCiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApA
QCAtNDQwNSw5ICs0NDA1LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxMb2FkRm9yRnJh
bWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELAogICAgIH0KIH0KIAot
dm9pZCBXZWJQYWdlUHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQzMl90IG9wYXF1ZVNhbWVE
b2N1bWVudE5hdmlnYXRpb25UeXBlLCBVUkwmJiB1cmwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0
YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMyX3Qg
b3BhcXVlU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUsIFVSTCYmIHVybCwgY29uc3QgVXNlckRh
dGEmIHVzZXJEYXRhKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRp
ZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlm
aWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQpOworICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoTG9hZGluZywgImRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZTogd2Vi
UElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3By
b2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQu
dG9VSW50NjQoKSk7CiAKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xp
ZW50KCkpOwogCkBAIC00NDQ0LDcgKzQ0NDQsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU2Ft
ZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90CiAg
ICAgICAgIHBhZ2VDbGllbnQoKS5kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1l
KG5hdmlnYXRpb25UeXBlKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZU1haW5E
b2N1bWVudCh1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZU1h
aW5Eb2N1bWVudChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQogICAgIGlmIChtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcikKQEAg
LTQ0NjMsNyArNDQ2Myw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp2aWV3SXNCZWNvbWluZ1Zpc2li
bGUoKQogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlVGl0bGVGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBVc2VyRGF0
YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFVzZXJE
YXRhJiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdl
Q2xpZW50KCkpOwogCkBAIC00NDg1LDExICs0NDg1LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHRp
dGxlCiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpcnN0TGF5b3V0Rm9yRnJh
bWUodWludDY0X3QsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5
OjpkaWRGaXJzdExheW91dEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciwgY29uc3QgVXNlckRhdGEm
IHVzZXJEYXRhKQogewogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmlyc3RWaXN1YWxseU5v
bkVtcHR5TGF5b3V0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVXNlckRhdGEmIHVz
ZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91
dEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBVc2VyRGF0YSYgdXNlckRh
dGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsK
IApAQCAtNDUyMCw3ICs0NTIwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlYWNoTGF5b3V0
TWlsZXN0b25lKE9wdGlvblNldDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+IGwKICAgICBtX25h
dmlnYXRpb25DbGllbnQtPnJlbmRlcmluZ1Byb2dyZXNzRGlkQ2hhbmdlKCp0aGlzLCBsYXlvdXRN
aWxlc3RvbmVzKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZERpc3BsYXlJbnNlY3VyZUNv
bnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEp
Cit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAg
UGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDUzNCw3
ICs0NTM0LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVc2UKICAgICBtX25hdmlnYXRpb25DbGll
bnQtPmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQoKnRoaXMsIG1fcHJvY2Vzcy0+dHJhbnNmb3Jt
SGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOwogfQogCi12b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJ1bklu
c2VjdXJlQ29udGVudEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBVc2Vy
RGF0YSYgdXNlckRhdGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFn
ZUNsaWVudCgpKTsKIApAQCAtNDU0OCw3ICs0NTQ4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJE
YXQKICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRpZFJ1bkluc2VjdXJlQ29udGVudCgqdGhpcywg
bV9wcm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9iamVjdCgpKS5n
ZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFtZSh1aW50
NjRfdCwgY29uc3QgVXNlckRhdGEmKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZERldGVjdFhTU0Zv
ckZyYW1lKEZyYW1lSWRlbnRpZmllciwgY29uc3QgVXNlckRhdGEmKQogewogfQogCkBAIC00NTU3
LDcgKzQ1NTcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bWFpbkZyYW1lUGx1Z2luSGFuZGxlc1Bh
Z2VTY2FsZUdlc3R1cmVEaWRDaGFuZ2UoYm9vbCBtYWluRnJhbQogICAgIG1fbWFpbkZyYW1lUGx1
Z2luSGFuZGxlc1BhZ2VTY2FsZUdlc3R1cmUgPSBtYWluRnJhbWVQbHVnaW5IYW5kbGVzUGFnZVNj
YWxlR2VzdHVyZTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmZyYW1lRGlkQmVjb21lRnJhbWVT
ZXQodWludDY0X3QgZnJhbWVJRCwgYm9vbCB2YWx1ZSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpmcmFt
ZURpZEJlY29tZUZyYW1lU2V0KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIHZhbHVlKQog
ewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAg
LTQ1NzYsNyArNDU3Niw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpiZWdpblNhZmVCcm93c2luZ0No
ZWNrKGNvbnN0IFVSTCYsIGJvb2wsIFdlYkZyYW1lUG9saWN5TGlzdGVuCiB9CiAjZW5kaWYKIAot
dm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyh1
aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3QgbmF2
aWdhdGlvbklELAordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25Bc3luYyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50
aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwKICAgICBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYm
IG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0
aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYgcmVxdWVzdCwKICAgICBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVz
dEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25z
dCBVc2VyRGF0YSYgdXNlckRhdGEsIHVpbnQ2NF90IGxpc3RlbmVySUQpCiB7CkBAIC00NTg0LDcg
KzQ1ODQsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbkFzeW5jKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcgogICAgICAgICBXVEZNb3ZlKGZyYW1l
SW5mb0RhdGEpLCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZNb3ZlKHJl
cXVlc3QpLCBXVEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwg
dXNlckRhdGEsIGxpc3RlbmVySUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYg
cHJvY2VzcywgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYg
ZnJhbWVTZWN1cml0eU9yaWdpbiwKK3ZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNz
LCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYg
ZnJhbWVTZWN1cml0eU9yaWdpbiwKICAgICBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIg
aWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYm
IG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0
aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELAogICAgIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVz
dEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLAogICAg
IGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKQEAgLTQ4MTQs
NyArNDgxNCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3Qg
V2ViRnJhbWVQcm94eSYgZnJhbWUsIGNvbnN0IFVSTCYgcGFnCiB9CiAjZW5kaWYKIAotdm9pZCBX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKHVpbnQ2NF90
IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYm
IGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAor
dm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIg
aWRlbnRpZmllciwKICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25E
YXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRh
LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsCiAgICAgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9k
eSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsCiAgICAgY29u
c3QgVXNlckRhdGEmIHVzZXJEYXRhLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCkBAIC00ODMy
LDcgKzQ4MzIsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvblN5bmModWludDY0X3QgZnJhbWVJRCwgYm9vbCBpcwogICAgICAgICBXVEZNb3ZlKGZy
YW1lSW5mb0RhdGEpLCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZNb3Zl
KHJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNl
KSwgdXNlckRhdGEsIFdURk1vdmUocmVwbHkpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYgcHJvY2VzcywgdWludDY0X3QgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvblN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNz
LCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlm
aWVyIGlkZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0
aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZv
RGF0YSwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELAogICAgIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVz
dEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLAogICAg
IGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQpAQCAt
NDg0OSw3ICs0ODQ5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHkKICAgICBzZW5kZXItPnNl
bmQoUG9saWN5QWN0aW9uOjpVc2UsIG5hdmlnYXRpb25JRCwgRG93bmxvYWRJRCgpLCBXVEY6Om51
bGxvcHQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93
QWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCit2b2lkIFdl
YlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4s
IFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAogICAgIE5hdmlnYXRpb25BY3Rpb25E
YXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNv
bnN0IFN0cmluZyYgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0
YSYgdXNlckRhdGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNs
aWVudCgpKTsKQEAgLTQ4ODcsMTMgKzQ4ODcsMTMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lk
ZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cmkK
ICAgICAgICAgCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJp
dHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAordm9pZCBXZWJQYWdl
UHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBj
b25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNr
SWRlbnRpZmllciBpZGVudGlmaWVyLAogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUs
IHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBk
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlE
LCBmcmFtZVNlY3VyaXR5T3JpZ2luLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNl
LCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRlLCBsaXN0ZW5lcklE
LCB1c2VyRGF0YSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNw
b25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5
Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKICAgICB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJp
bmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0
YSYgdXNlckRhdGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNs
aWVudCgpKTsKQEAgLTQ5MjcsNyArNDkyNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsCiAg
ICAgfQogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6dW5hYmxlVG9JbXBsZW1lbnRQb2xpY3kodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0IFVzZXJEYXRh
JiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojp1bmFibGVUb0ltcGxlbWVudFBvbGljeShG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0
IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3Rv
cihwYWdlQ2xpZW50KCkpOwogCkBAIC00OTQxLDcgKzQ5NDEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6dW5hYmxlVG9JbXBsZW1lbnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUmVzb3Vy
Y2VFcnJvcgogCiAvLyBGb3JtQ2xpZW50CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0
Rm9ybSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBzb3VyY2VGcmFtZUlELCBjb25zdCBWZWN0
b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4mIHRleHRGaWVsZFZhbHVlcywgdWludDY0X3Qg
bGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6
OndpbGxTdWJtaXRGb3JtKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUlkZW50aWZpZXIg
c291cmNlRnJhbWVJRCwgY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+JiB0
ZXh0RmllbGRWYWx1ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2Vy
RGF0YSkKIHsKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUo
ZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKQEAgLTQ5NTks
MTIgKzQ5NTksMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRlbnRSdWxlTGlzdE5vdGlmaWNh
dGlvbihVUkwmJiB1cmwsIENvbnRlbnRSdWxlTGlzdFJlc3VsdHMKICAgICBtX25hdmlnYXRpb25D
bGllbnQtPmNvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlvbigqdGhpcywgV1RGTW92ZSh1cmwpLCBX
VEZNb3ZlKHJlc3VsdHMpKTsKIH0KICAgICAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWROYXZpZ2F0
ZVdpdGhOYXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiBzdG9yZSwg
dWludDY0X3QgZnJhbWVJRCkgCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2
aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYgc3RvcmUsIEZyYW1lSWRl
bnRpZmllciBmcmFtZUlEKQogewogICAgIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hh
cmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIHN0b3JlLCBmcmFtZUlEKTsKIH0KIAotdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYgcHJvY2VzcywgY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYgc3RvcmUs
IHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2
aWdhdGlvbkRhdGFTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBjb25zdCBX
ZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiBzdG9yZSwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7
CiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkTmF2aWdhdGVXaXRoTmF2
aWdhdGlvbkRhdGFTaGFyZWQ6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQsIHByb2Nl
c3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCkpOwogCkBAIC00OTc5
LDE0ICs0OTc5LDE0IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0
aW9uRGF0YVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByCiAgICAgcHJvY2Vzcy0+cHJv
Y2Vzc1Bvb2woKS5oaXN0b3J5Q2xpZW50KCkuZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEo
cHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKSwgKnRoaXMsIHN0b3JlLCAqZnJhbWUpOwogfQogCi12b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291
cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRf
dCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdChj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVS
TFN0cmluZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgZGlkUGVyZm9ybUNsaWVu
dFJlZGlyZWN0U2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIHNvdXJjZVVSTFN0cmluZywgZGVz
dGluYXRpb25VUkxTdHJpbmcsIGZyYW1lSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
UGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vz
cywgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRp
b25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVy
Zm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vzcywg
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25V
UkxTdHJpbmcsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewotICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoTG9hZGluZywgImRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZDogd2ViUElE
ID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBwcm9jZXNz
LT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRQZXJmb3JtQ2xpZW50UmVkaXJl
Y3RTaGFyZWQ6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQo
KSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVj
dG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTUwMDYsMTIgKzUwMDYsMTIgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmIHByb2Nlc3MKICAgICBwcm9jZXNzLT5wcm9jZXNzUG9vbCgpLmhpc3RvcnlDbGllbnQoKS5k
aWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QocHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKSwgKnRoaXMsIHNv
dXJjZVVSTFN0cmluZywgZGVzdGluYXRpb25VUkxTdHJpbmcsICpmcmFtZSk7CiB9CiAKLXZvaWQg
V2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90
IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNv
bnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJM
U3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBkaWRQZXJmb3JtU2VydmVy
UmVkaXJlY3RTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgc291cmNlVVJMU3RyaW5nLCBkZXN0
aW5hdGlvblVSTFN0cmluZywgZnJhbWVJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRQ
ZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNz
LCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlv
blVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJm
b3JtU2VydmVyUmVkaXJlY3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVS
TFN0cmluZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRChMb2FkaW5nLCAiZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0OiB3ZWJQSUQgPSAlaSwg
cGFnZUlEID0gJSIgUFJJdTY0LCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJ
RC50b1VJbnQ2NCgpKTsKIApAQCAtNTAzMiw3ICs1MDMyLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHBy
b2Nlc3MKICAgICBwcm9jZXNzLT5wcm9jZXNzUG9vbCgpLmhpc3RvcnlDbGllbnQoKS5kaWRQZXJm
b3JtU2VydmVyUmVkaXJlY3QocHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKSwgKnRoaXMsIHNvdXJjZVVS
TFN0cmluZywgZGVzdGluYXRpb25VUkxTdHJpbmcsICpmcmFtZSk7CiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRVcGRhdGVIaXN0b3J5VGl0bGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3Qg
U3RyaW5nJiB1cmwsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkVXBk
YXRlSGlzdG9yeVRpdGxlKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgdXJsLCBG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3Rl
Y3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC01MTM0LDcgKzUxMzQsNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6Y2xvc2VQYWdlKGJvb2wgc3RvcFJlc3BvbnNpdmVuZXNzVGltZXIpCiAgICAgbV91aUNs
aWVudC0+Y2xvc2UodGhpcyk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0
QWxlcnQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0
eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpS
dW5KYXZhU2NyaXB0QWxlcnQ6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQordm9pZCBXZWJQYWdlUHJv
eHk6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2Vj
dXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQ6OkRlbGF5ZWRSZXBseSYm
IHJlcGx5KQogewogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFt
ZShmcmFtZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwpAQCAtNTE1
Myw3ICs1MTUzLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRBbGVydCh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEKICAgICBtX3VpQ2xpZW50LT5y
dW5KYXZhU2NyaXB0QWxlcnQodGhpcywgbWVzc2FnZSwgZnJhbWUsIHNlY3VyaXR5T3JpZ2luLCBX
VEZNb3ZlKHJlcGx5KSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0Q29u
ZmlybSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5
T3JpZ2luLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1
bkphdmFTY3JpcHRDb25maXJtOjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3Qg
U2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybTo6RGVsYXllZFJl
cGx5JiYgcmVwbHkpCiB7CiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndl
YkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBmcmFtZSk7CkBA
IC01MTczLDcgKzUxNzMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdENvbmZp
cm0odWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYQogICAgIG1fdWlDbGll
bnQtPnJ1bkphdmFTY3JpcHRDb25maXJtKHRoaXMsIG1lc3NhZ2UsIGZyYW1lLCBzZWN1cml0eU9y
aWdpbiwgV1RGTW92ZShyZXBseSkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNj
cmlwdFByb21wdCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNl
Y3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVs
dFZhbHVlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0OjpEZWxh
eWVkUmVwbHkmJiByZXBseSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0UHJvbXB0
KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3Vy
aXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZh
bHVlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0OjpEZWxheWVk
UmVwbHkmJiByZXBseSkKIHsKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+
d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsK
QEAgLTUzMzIsNyArNTMzMiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpyb290Vmlld1RvQWNjZXNz
aWJpbGl0eVNjcmVlbihjb25zdCBJbnRSZWN0JiB2aWV3UmVjdCwgQ29tcGxlCiAgICAgY29tcGxl
dGlvbkhhbmRsZXIocGFnZUNsaWVudCgpLnJvb3RWaWV3VG9BY2Nlc3NpYmlsaXR5U2NyZWVuKHZp
ZXdSZWN0KSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpydW5CZWZvcmVVbmxvYWRDb25maXJt
UGFuZWwodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0
eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpS
dW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQordm9pZCBX
ZWJQYWdlUHJveHk6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbiwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5CZWZvcmVVbmxvYWRD
b25maXJtUGFuZWw6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQogewogICAgIFdlYkZyYW1lUHJveHkq
IGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBNRVNTQUdFX0NIRUNL
KG1fcHJvY2VzcywgZnJhbWUpOwpAQCAtNTM3Miw3ICs1MzcyLDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnBhZ2VEaWRTY3JvbGwoKQogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpydW5P
cGVuUGFuZWwodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFt
ZVNlY3VyaXR5T3JpZ2luLCBjb25zdCBGaWxlQ2hvb3NlclNldHRpbmdzJiBzZXR0aW5ncykKK3Zv
aWQgV2ViUGFnZVByb3h5OjpydW5PcGVuUGFuZWwoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNv
bnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgY29uc3QgRmlsZUNo
b29zZXJTZXR0aW5ncyYgc2V0dGluZ3MpCiB7CiAgICAgaWYgKG1fb3BlblBhbmVsUmVzdWx0TGlz
dGVuZXIpIHsKICAgICAgICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci0+aW52YWxpZGF0ZSgp
OwpAQCAtNTQxMSw3ICs1NDExLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNob3dTaGFyZVNoZWV0
KGNvbnN0IFNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmIHNoYXJlRGF0YSwgU2hhcmUKICAgICBwYWdl
Q2xpZW50KCkuc2hvd1NoYXJlU2hlZXQoc2hhcmVEYXRhLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CiB9CiAgICAgCi12b2lkIFdlYlBhZ2VQcm94eTo6cHJpbnRGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2
b2lkIFdlYlBhZ2VQcm94eTo6cHJpbnRGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VS
VCghbV9pc1BlcmZvcm1pbmdET01QcmludE9wZXJhdGlvbik7CiAgICAgbV9pc1BlcmZvcm1pbmdE
T01QcmludE9wZXJhdGlvbiA9IHRydWU7CkBAIC02NzI1LDcgKzY3MjUsNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6cHJpbnRGaW5pc2hlZENhbGxiYWNrKGNvbnN0IFJlc291cmNlRXJyb3ImIHByaW50
RXJyb3IsIENhbGxiYQogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpmb2N1c2VkRnJh
bWVDaGFuZ2VkKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6Zm9jdXNlZEZy
YW1lQ2hhbmdlZChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBpZiAoIWZyYW1lSUQp
IHsKICAgICAgICAgbV9mb2N1c2VkRnJhbWUgPSBudWxscHRyOwpAQCAtNjczOCw3ICs2NzM4LDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmZvY3VzZWRGcmFtZUNoYW5nZWQodWludDY0X3QgZnJhbWVJ
RCkKICAgICBtX2ZvY3VzZWRGcmFtZSA9IGZyYW1lOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6
ZnJhbWVTZXRMYXJnZXN0RnJhbWVDaGFuZ2VkKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBh
Z2VQcm94eTo6ZnJhbWVTZXRMYXJnZXN0RnJhbWVDaGFuZ2VkKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlEKQogewogICAgIGlmICghZnJhbWVJRCkgewogICAgICAgICBtX2ZyYW1lU2V0TGFyZ2VzdEZy
YW1lID0gbnVsbHB0cjsKQEAgLTczMDAsMjYgKzczMDAsMjYgQEAgV2Vha1B0cjxTZWNLZXlQcm94
eVN0b3JlPiBXZWJQYWdlUHJveHk6OnNlY0tleVByb3h5U3RvcmUoY29uc3QgV2ViQ29yZTo6QXV0
aGVudGkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KICAgICAKLXZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSh1aW50NjRfdCwgUmVmPEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpCit2b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkoRnJh
bWVJZGVudGlmaWVyLCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJiBhdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSkKIHsKICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRpZFJlY2VpdmVB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSgqdGhpcywgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UuZ2V0
KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJl
bnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0
YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6RXhjZWVkZWREYXRhYmFzZVF1b3RhOjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5h
bWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWlu
dDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwg
dWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhjZWVkZWRE
YXRhYmFzZVF1b3RhOjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsKICAgICByZXF1ZXN0U3RvcmFn
ZVNwYWNlKGZyYW1lSUQsIG9yaWdpbklkZW50aWZpZXIsIGRhdGFiYXNlTmFtZSwgZGlzcGxheU5h
bWUsIGN1cnJlbnRRdW90YSwgY3VycmVudE9yaWdpblVzYWdlLCBjdXJyZW50RGF0YWJhc2VVc2Fn
ZSwgZXhwZWN0ZWRVc2FnZSwgW3JlcGx5ID0gV1RGTW92ZShyZXBseSldKGF1dG8gcXVvdGEpIG11
dGFibGUgewogICAgICAgICByZXBseShxdW90YSk7CiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpyZXF1ZXN0U3RvcmFnZVNwYWNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmlu
ZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0
cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVu
dE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhw
ZWN0ZWRVc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFN0b3JhZ2VTcGFjZShGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3Qg
Y3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJl
bnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKFN0b3JhZ2UsICJyZXF1ZXN0U3RvcmFnZVNwYWNlIGZvciBmcmFtZSAlIiBQ
Ukl1NjQgIiwgY3VycmVudCBxdW90YSAlIiBQUkl1NjQgIiBjdXJyZW50IHVzYWdlICUiIFBSSXU2
NCAiIGV4cGVjdGVkIHVzYWdlICUiIFBSSXU2NCwgZnJhbWVJRCwgY3VycmVudFF1b3RhLCBjdXJy
ZW50RGF0YWJhc2VVc2FnZSwgZXhwZWN0ZWRVc2FnZSk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRChTdG9yYWdlLCAicmVxdWVzdFN0b3JhZ2VTcGFjZSBmb3IgZnJhbWUgJSIgUFJJdTY0ICIs
IGN1cnJlbnQgcXVvdGEgJSIgUFJJdTY0ICIgY3VycmVudCB1c2FnZSAlIiBQUkl1NjQgIiBleHBl
Y3RlZCB1c2FnZSAlIiBQUkl1NjQsIGZyYW1lSUQudG9VSW50NjQoKSwgY3VycmVudFF1b3RhLCBj
dXJyZW50RGF0YWJhc2VVc2FnZSwgZXhwZWN0ZWRVc2FnZSk7CiAKICAgICBTdG9yYWdlUmVxdWVz
dHM6OnNpbmdsZXRvbigpLnByb2Nlc3NPckFwcGVuZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCBwYWdlVVJMID0gY3VycmVudFVSTCgpLCBmcmFtZUlELCBvcmlnaW5JZGVu
dGlmaWVyLCBkYXRhYmFzZU5hbWUsIGRpc3BsYXlOYW1lLCBjdXJyZW50UXVvdGEsIGN1cnJlbnRP
cmlnaW5Vc2FnZSwgY3VycmVudERhdGFiYXNlVXNhZ2UsIGV4cGVjdGVkVXNhZ2UsIGNvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CiAgICAg
ICAgIHRoaXMtPm1ha2VTdG9yYWdlU3BhY2VSZXF1ZXN0KGZyYW1lSUQsIG9yaWdpbklkZW50aWZp
ZXIsIGRhdGFiYXNlTmFtZSwgZGlzcGxheU5hbWUsIGN1cnJlbnRRdW90YSwgY3VycmVudE9yaWdp
blVzYWdlLCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgZXhwZWN0ZWRVc2FnZSwgW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBmcmFtZUlELCBwYWdlVVJMID0gV1RG
TW92ZShwYWdlVVJMKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSwgY3VycmVudFF1b3RhXShhdXRvIHF1b3RhKSBtdXRhYmxlIHsKIAotICAgICAgICAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRChTdG9yYWdlLCAicmVxdWVzdFN0b3JhZ2VTcGFjZSByZXNw
b25zZSBmb3IgZnJhbWUgJSIgUFJJdTY0ICIsIHF1b3RhICUiIFBSSXU2NCwgZnJhbWVJRCwgcXVv
dGEpOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChTdG9yYWdlLCAicmVxdWVz
dFN0b3JhZ2VTcGFjZSByZXNwb25zZSBmb3IgZnJhbWUgJSIgUFJJdTY0ICIsIHF1b3RhICUiIFBS
SXU2NCwgZnJhbWVJRC50b1VJbnQ2NCgpLCBxdW90YSk7CiAKICAgICAgICAgICAgIGlmIChxdW90
YSA8PSBjdXJyZW50UXVvdGEgJiYgdGhpcy0+Y3VycmVudFVSTCgpID09IHBhZ2VVUkwpIHsKICAg
ICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFN0b3JhZ2UsICJzdG9yYWdlIHNw
YWNlIGluY3JlYXNlIGRlbmllZCIpOwpAQCAtNzMzMSw3ICs3MzMxLDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OnJlcXVlc3RTdG9yYWdlU3BhY2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5n
JiBvcmlnaW5JZGUKICAgICB9KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6Om1ha2VTdG9yYWdl
U3BhY2VSZXF1ZXN0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5h
bWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1
aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lk
IFdlYlBhZ2VQcm94eTo6bWFrZVN0b3JhZ2VTcGFjZVJlcXVlc3QoRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRh
YmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90
YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VV
c2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50
NjRfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKG1faXNRdW90YUluY3JlYXNl
RGVuaWVkKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGN1cnJlbnRRdW90YSk7CkBAIC03
MzU3LDcgKzczNTcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVhY2hlZEFwcGxpY2F0aW9uQ2Fj
aGVPcmlnaW5RdW90YShjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aQogICAgIG1fdWlDbGllbnQt
PnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodGhpcywgc2VjdXJpdHlPcmlnaW4u
Z2V0KCksIGN1cnJlbnRRdW90YSwgdG90YWxCeXRlc05lZWRlZCwgV1RGTW92ZShyZXBseSkpOwog
fQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZy
YW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmln
aW5JZGVudGlmaWVyKQordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1p
c3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCBGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCiB7CiAgICAgV2ViRnJhbWVQcm94eSogZnJh
bWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9w
cm9jZXNzLCBmcmFtZSk7CkBAIC03NDAxLDcgKzc0MDEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
c2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZE92ZXJyaWRlKE9wdGlvbmFsPGJvb2w+IGVuYWJs
ZWQpCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJt
aXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgIHVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
RGF0YSwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50
T3JpZ2luRGF0YSwgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYgcmVxdWVzdCkKK3ZvaWQg
V2ViUGFnZVByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90
IHVzZXJNZWRpYUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiAgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5EYXRhLCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5EYXRhLCBXZWJD
b3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJiByZXF1ZXN0KQogewogI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIG1fcHJvY2Vzcy0+d2ViRnJhbWUo
ZnJhbWVJRCkpOwpAQCAtNzQxNiw3ICs3NDE2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVl
c3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQK
ICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9y
RnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5EYXRhLCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5EYXRh
KQordm9pZCBXZWJQYWdlUHJveHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2
NF90IHVzZXJNZWRpYUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRhdGEsIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEpCiB7
CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1f
cHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC03NDQ4LDcgKzc0NDgsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6Y2xlYXJVc2VyTWVkaWFTdGF0ZSgpCiB9CiAKICNpZiBFTkFCTEUoREVWSUNF
X09SSUVOVEFUSU9OKQotdm9pZCBXZWJQYWdlUHJveHk6OnNob3VsZEFsbG93RGV2aWNlT3JpZW50
YXRpb25BbmRNb3Rpb25BY2Nlc3ModWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiYgb3JpZ2luRGF0YSwgYm9vbCBtYXlQcm9tcHQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRh
dGlvbkFuZE1vdGlvbkFjY2VzcyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiYgb3JpZ2luRGF0YSwgYm9vbCBtYXlQcm9tcHQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nl
c3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBmcmFt
ZSk7CkBAIC04NjkxLDcgKzg2OTEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFN5bmNocm9u
b3VzVVJMU2NoZW1lVGFzayhVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmIHBhcmFtZQogfQogCiAj
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLXZvaWQgV2ViUGFnZVByb3h5Ojpy
ZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZy
YW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2
NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3VpQ2xp
ZW50LT5yZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oKnRoaXMsIG1fcHJvY2Vzcy0+d2ViRnJh
bWUoZnJhbWVJRCksIHN1YkZyYW1lRG9tYWluLCB0b3BGcmFtZURvbWFpbiwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApp
bmRleCBmNTY3NzhkN2M2OWY5NjM3MDFiMzViNDIyYTAzOWFhZGI4MjIwMjZiLi42M2EyNTlmMmRm
ODUwMzJhODRjN2RlY2IyYjhmODRkN2U4NWNmOGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaApAQCAtMTAxNiw3ICsxMDE2LDcgQEAgcHVibGljOgogICAgIHZvaWQgcnVu
SmF2YVNjcmlwdEluTWFpbkZyYW1lKGNvbnN0IFN0cmluZyYsIGJvb2wsIFdURjo6RnVuY3Rpb248
dm9pZCAoQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqLCBib29sIGhhZEV4Y2VwdGlvbiwgY29u
c3QgV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNh
bGxiYWNrRnVuY3Rpb24pOwogICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lU2NyaXB0
V29ybGQoY29uc3QgU3RyaW5nJiwgYm9vbCwgY29uc3QgT3B0aW9uYWw8U3RyaW5nPiYgd29ybGRO
YW1lLCBXVEY6OkZ1bmN0aW9uPHZvaWQoQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqLCBib29s
IGhhZEV4Y2VwdGlvbiwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyYsIENhbGxiYWNr
QmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pOwogICAgIC8vIEZvciBzdWIgZnJhbWVz
LgotICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
U3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgV1RGOjpGdW5jdGlvbjx2b2lk
KEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiwgYm9vbCBoYWRFeGNlcHRpb24sIGNvbnN0IFdl
YkNvcmU6OkV4Y2VwdGlvbkRldGFpbHMmLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFj
a0Z1bmN0aW9uKTsKKyAgICB2b2lkIHJ1bkphdmFTY3JpcHRJbkZyYW1lKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwg
V1RGOjpGdW5jdGlvbjx2b2lkKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiwgYm9vbCBoYWRF
eGNlcHRpb24sIGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHMmLCBDYWxsYmFja0Jhc2U6
OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKTsKICAgICB2b2lkIGZvcmNlUmVwYWludChSZWZQ
dHI8Vm9pZENhbGxiYWNrPiYmKTsKIAogICAgIGZsb2F0IGhlYWRlckhlaWdodChXZWJGcmFtZVBy
b3h5Jik7CkBAIC0xMTU5LDcgKzExNTksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkcmF3UmVjdFRv
SW1hZ2UoV2ViRnJhbWVQcm94eSosIGNvbnN0IFByaW50SW5mbyYsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgUmVmPEltYWdlQ2FsbGJhY2s+JiYpOwog
ICAgIHZvaWQgZHJhd1BhZ2VzVG9QREYoV2ViRnJhbWVQcm94eSosIGNvbnN0IFByaW50SW5mbyYs
IHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgUmVmPERhdGFDYWxsYmFjaz4mJik7CiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB1aW50MzJfdCBjb21wdXRlUGFnZXNGb3JQcmlu
dGluZ0FuZERyYXdUb1BERih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mLCBEcmF3
VG9QREZDYWxsYmFjazo6Q2FsbGJhY2tGdW5jdGlvbiYmKTsKKyAgICB1aW50MzJfdCBjb21wdXRl
UGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNv
bnN0IFByaW50SW5mbyYsIERyYXdUb1BERkNhbGxiYWNrOjpDYWxsYmFja0Z1bmN0aW9uJiYpOwog
ICAgIHZvaWQgZHJhd1RvUERGQ2FsbGJhY2soY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBwZGZE
YXRhLCBXZWJLaXQ6OkNhbGxiYWNrSUQpOwogI2VuZGlmCiAjZWxpZiBQTEFURk9STShHVEspCkBA
IC0xMjQ5LDcgKzEyNDksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRWaWV3cG9ydFNpemVGb3JD
U1NWaWV3cG9ydFVuaXRzKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKICAgICBXZWJDb3JlOjpJ
bnRTaXplIHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKSBjb25zdCB7IHJldHVybiBt
X3ZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMudmFsdWVPcihXZWJDb3JlOjpJbnRTaXpl
KCkpOyB9CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5
KHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmKTsK
KyAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5KFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYpOwog
CiAgICAgU3BlbGxEb2N1bWVudFRhZyBzcGVsbERvY3VtZW50VGFnKCk7CiAKQEAgLTE0NDksMTIg
KzE0NDksMTIgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKQotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKGNvbnN0IFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNj
ZXNzQ29uZmlybShjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21h
aW4sIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsK
ICAgICB2b2lkIGRpZENvbW1pdENyb3NzU2l0ZUxvYWRXaXRoRGF0YVRyYW5zZmVyRnJvbVByZXZh
bGVudFJlc291cmNlKCk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04p
Ci0gICAgdm9pZCBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKHVp
bnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBib29sIG1heVBy
b21wdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbk9y
TW90aW9uUGVybWlzc2lvblN0YXRlKT4mJik7CisgICAgdm9pZCBzaG91bGRBbGxvd0RldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUp
PiYmKTsKICNlbmRpZgogCiAgICAgc3RhdGljIFdlYlBhZ2VQcm94eSogbm9uRXBoZW1lcmFsV2Vi
UGFnZVByb3h5KCk7CkBAIC0xNDk1LDMzICsxNDk1LDMzIEBAIHB1YmxpYzoKICNlbmRpZgogCiAg
ICAgUHJvdmlzaW9uYWxQYWdlUHJveHkqIHByb3Zpc2lvbmFsUGFnZVByb3h5KCkgY29uc3QgeyBy
ZXR1cm4gbV9wcm92aXNpb25hbFBhZ2UuZ2V0KCk7IH0KLSAgICB2b2lkIGNvbW1pdFByb3Zpc2lv
bmFsUGFnZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0
cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQz
Ml90IGZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYsIGJvb2wg
Y29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250
ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9p
ZCBjb21taXRQcm92aXNpb25hbFBhZ2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0
b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6
OkNlcnRpZmljYXRlSW5mbyYsIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8
V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIGNv
bnN0IFVzZXJEYXRhJik7CiAKICAgICAvLyBMb2dpYyBzaGFyZWQgYmV0d2VlbiB0aGUgV2ViUGFn
ZVByb3h5IGFuZCB0aGUgUHJvdmlzaW9uYWxQYWdlUHJveHkuCi0gICAgdm9pZCBkaWRTdGFydFBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVpbnQ2
NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYsIFVSTCYmIHVucmVhY2hh
YmxlVVJMLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZywg
Y29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVpbnQ2
NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJl
Y3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxT
dHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1l
SUQpOwotICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcm
IGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZE5h
dmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNv
bnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmLCB1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lk
IGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJik7Ci0g
ICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlm
aWVyLAorICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8
V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgVVJMJiYsIFVSTCYmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYp
OworICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQ
cm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlRXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYp
OworICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBj
b25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0U2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBj
b25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIpOworICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcm
IGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAgIHZv
aWQgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiwgY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
Zmllcik7CisgICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBVUkwmJik7CisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3Jp
Z2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsCiAgICAgICAgIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0YSYmLCBPcHRp
b25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmJiwKICAgICAgICAgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5
LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNl
ckRhdGEmLCB1aW50NjRfdCBsaXN0ZW5lcklEKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJl
c3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmln
aW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwKICAgICAgICAgdWludDY0X3QgbmF2
aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYg
ZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7
CiAgICAgdm9pZCBzdGFydFVSTFNjaGVtZVRhc2tTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiwgVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJik7CiAgICAgdm9pZCBsb2FkRGF0YVdpdGhOYXZp
Z2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIEFQSTo6TmF2aWdhdGlvbiYsIGNv
bnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0
cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJE
YXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9wdGlvbmFsPFdlYnNp
dGVQb2xpY2llc0RhdGE+JiYgPSBXVEY6Om51bGxvcHQsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpT
aG91bGROb3RBbGxvdyk7CiAgICAgdm9pZCBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIEFQSTo6TmF2aWdhdGlvbiYsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBBUEk6
Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwg
T3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiA9IFdURjo6bnVsbG9wdCk7CiAgICAgdm9p
ZCBiYWNrRm9yd2FyZEdvVG9JdGVtU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0
IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmKT4mJik7Ci0gICAgdm9pZCBkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCB1
aW50NjRfdCBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAgRnJhbWVJbmZvRGF0YSYm
LCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAog
ICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29u
c3QgVXNlckRhdGEmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYpOwogI2lmIFVTRShRVUlDS19MT09LKQog
ICAgIHZvaWQgZGlkUmVxdWVzdFBhc3N3b3JkRm9yUXVpY2tMb29rRG9jdW1lbnRJbk1haW5GcmFt
ZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lKTsK
ICNlbmRpZgogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKLSAgICB2b2lkIGNvbnRlbnRG
aWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBj
b25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImLCB1aW50NjRfdCBmcmFt
ZUlEKTsKKyAgICB2b2lkIGNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZVNoYXJlZChS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9j
a0hhbmRsZXImLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogI2VuZGlmCiAKICAgICB2b2lk
IGR1bXBBZENsaWNrQXR0cmlidXRpb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBTdHJp
bmcmKT4mJik7CkBAIC0xNTU3LDcgKzE1NTcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKICAg
ICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOwogCi0gICAgdm9p
ZCByZXF1ZXN0U3RvcmFnZVNwYWNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3Jp
Z2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYg
ZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdp
blVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRV
c2FnZSwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJik7CisgICAgdm9p
ZCByZXF1ZXN0U3RvcmFnZVNwYWNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3Qg
U3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJy
ZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBl
eHBlY3RlZFVzYWdlLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmKTsK
IAogICAgIFVSTCBjdXJyZW50UmVzb3VyY2VEaXJlY3RvcnlVUkwoKSBjb25zdDsKIApAQCAtMTU3
Nyw3ICsxNTc3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZVRocm90dGxlU3RhdGUoKTsK
ICAgICB2b2lkIHVwZGF0ZUhpZGRlblBhZ2VUaHJvdHRsaW5nQXV0b0luY3JlYXNlcygpOwogCi0g
ICAgYm9vbCBzdXNwZW5kQ3VycmVudFBhZ2VJZlBvc3NpYmxlKEFQSTo6TmF2aWdhdGlvbiYsIE9w
dGlvbmFsPHVpbnQ2NF90PiBtYWluRnJhbWVJRCwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVu
dCwgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdN
b2RlKTsKKyAgICBib29sIHN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUoQVBJOjpOYXZpZ2F0
aW9uJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBtYWluRnJhbWVJRCwgUHJv
Y2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmlu
Z0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKTsKIAogICAgIGVudW0gY2xhc3MgUmVzZXRTdGF0
ZVJlYXNvbiB7CiAgICAgICAgIFBhZ2VJbnZhbGlkYXRlZCwKQEAgLTE2MDYsMzIgKzE2MDYsMzIg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RQb2ludGVyVW5sb2NrKCk7CiAjZW5kaWYKIAot
ICAgIHZvaWQgZGlkQ3JlYXRlTWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQg
ZGlkQ3JlYXRlU3ViZnJhbWUodWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRDcmVhdGVX
aW5kb3codWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6R2xvYmFsV2luZG93SWRlbnRpZmllciYm
KTsKLQotICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmLCBVUkwmJiB1bnJlYWNoYWJsZVVS
TCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZv
clByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFVzZXJEYXRhJik7Ci0g
ICAgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgU3RyaW5nJiB1cmwsIGRvdWJsZSBkZWxheSwgV2ViQ29yZTo6TG9ja0JhY2tGb3J3
YXJkTGlzdCk7Ci0gICAgdm9pZCBkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKLSAgICB2b2lk
IGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVz
ZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZy
YW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25z
dCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQs
IE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVD
b250ZW50LCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkRmluaXNoRG9jdW1lbnRMb2Fk
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBV
c2VyRGF0YSYpOwotICAgIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRp
ZEZhaWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2
b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQzMl90IHNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBl
LCBVUkwmJiwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZENoYW5nZU1haW5Eb2N1bWVu
dCh1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZEV4cGxpY2l0T3BlbkZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIFVSTCYmKTsKLQotICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9yRnJh
bWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiwgY29uc3QgVXNlckRhdGEmKTsKLSAg
ICB2b2lkIGRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVXNl
ckRhdGEmKTsKLSAgICB2b2lkIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWREaXNwbGF5
SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVXNlckRhdGEm
KTsKLSAgICB2b2lkIGRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWREZXRlY3RYU1NGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkQ3JlYXRlTWFpbkZy
YW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRDcmVhdGVTdWJmcmFt
ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkQ3JlYXRlV2luZG93KFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6R2xvYmFsV2luZG93SWRlbnRpZmllciYm
KTsKKworICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYsIFVSTCYmIHVucmVh
Y2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJl
ZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25z
dCBVc2VyRGF0YSYpOworICAgIHZvaWQgd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1l
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1cmwsIGRvdWJsZSBkZWxh
eSwgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCk7CisgICAgdm9pZCBkaWRDYW5jZWxDbGll
bnRSZWRpcmVjdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBk
aWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJik7CisgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciYsIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJik7
CisgICAgdm9pZCBkaWRDb21taXRMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJh
bWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0
IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYsIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwg
T3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNv
bnRlbnQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRGaW5pc2hEb2N1bWVudExvYWRG
b3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
Y29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEm
KTsKKyAgICB2b2lkIGRpZEZhaWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBj
b25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZy
YW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50
MzJfdCBzYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgVVJMJiYsIGNvbnN0IFVzZXJEYXRhJik7
CisgICAgdm9pZCBkaWRDaGFuZ2VNYWluRG9jdW1lbnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
KTsKKyAgICB2b2lkIGRpZEV4cGxpY2l0T3BlbkZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciwgVVJMJiYpOworCisgICAgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFVzZXJEYXRhJik7CisgICAg
dm9pZCBkaWRGaXJzdExheW91dEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29u
c3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZv
ckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2
b2lkIGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRSdW5JbnNlY3VyZUNvbnRlbnRG
b3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFVzZXJEYXRhJik7CisgICAg
dm9pZCBkaWREZXRlY3RYU1NGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0
IFVzZXJEYXRhJik7CiAgICAgdm9pZCBtYWluRnJhbWVQbHVnaW5IYW5kbGVzUGFnZVNjYWxlR2Vz
dHVyZURpZENoYW5nZShib29sKTsKLSAgICB2b2lkIGZyYW1lRGlkQmVjb21lRnJhbWVTZXQodWlu
dDY0X3QgZnJhbWVJRCwgYm9vbCk7CisgICAgdm9pZCBmcmFtZURpZEJlY29tZUZyYW1lU2V0KFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCk7CiAgICAgdm9pZCBkaWRTdGFydFByb2dyZXNz
KCk7CiAgICAgdm9pZCBkaWRDaGFuZ2VQcm9ncmVzcyhkb3VibGUpOwogICAgIHZvaWQgZGlkRmlu
aXNoUHJvZ3Jlc3MoKTsKQEAgLTE2NDQsMzcgKzE2NDQsMzcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
V2ViRnJhbWVQcm94eSYsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAgIEZyYW1lSW5mb0Rh
dGEmJiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlE
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9k
eSwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2Us
IGNvbnN0IFVzZXJEYXRhJiwgUmVmPFBvbGljeURlY2lzaW9uU2VuZGVyPiYmKTsKLSAgICB2b2lk
IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyh1aW50NjRfdCBmcmFtZUlELCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlm
aWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCisgICAg
dm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5
Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25E
YXRhJiYsCiAgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9y
bURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgdWludDY0X3QgbGlz
dGVuZXJJRCk7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyh1
aW50NjRfdCBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uU3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGJvb2wgaXNNYWlu
RnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEm
JiwKICAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRp
Zmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYg
b3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0
YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5
JiYpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKKyAgICB2b2lkIGRlY2lk
ZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiYsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBj
b25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UodWludDY0
X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsCisgICAgdm9pZCBk
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciwgdWludDY0X3QgbmF2aWdhdGlvbklELAogICAgICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93
TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3Rl
bmVySUQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCB1bmFibGVUb0ltcGxlbWVudFBvbGlj
eSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3Qg
VXNlckRhdGEmKTsKKyAgICB2b2lkIHVuYWJsZVRvSW1wbGVtZW50UG9saWN5KFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFVzZXJE
YXRhJik7CiAgICAgdm9pZCBiZWdpblNhZmVCcm93c2luZ0NoZWNrKGNvbnN0IFVSTCYsIGJvb2ws
IFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eSYpOwogCiAgICAgV2ViQ29udGVudE1vZGUgZWZm
ZWN0aXZlQ29udGVudE1vZGVBZnRlckFkanVzdGluZ1BvbGljaWVzKEFQSTo6V2Vic2l0ZVBvbGlj
aWVzJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAKLSAgICB2b2lkIHdpbGxT
dWJtaXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZyYW1lSUQsIGNvbnN0
IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiYgdGV4dEZpZWxkVmFsdWVzLCB1aW50
NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgd2lsbFN1Ym1pdEZv
cm0oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgc291
cmNlRnJhbWVJRCwgY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+JiB0ZXh0
RmllbGRWYWx1ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CiAKICAg
ICB2b2lkIGNvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlvbihVUkwmJiwgV2ViQ29yZTo6Q29udGVu
dFJ1bGVMaXN0UmVzdWx0cyYmKTsKIAogICAgIC8vIEhpc3RvcnkgY2xpZW50Ci0gICAgdm9pZCBk
aWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3Jl
JiwgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3Qo
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25V
UkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkUGVyZm9ybVNlcnZlclJl
ZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3Rp
bmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZFVwZGF0ZUhp
c3RvcnlUaXRsZShjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIHVybCwgdWludDY0
X3QgZnJhbWVJRCk7CisgICAgdm9pZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShjb25z
dCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAg
ICB2b2lkIGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0
cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJp
bmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZFVwZGF0ZUhpc3RvcnlUaXRs
ZShjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIHVybCwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyKTsKIAogICAgIC8vIFVJIGNsaWVudAogICAgIHZvaWQgY3JlYXRlTmV3UGFnZShj
b25zdCBGcmFtZUluZm9EYXRhJiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9y
aWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6V2lu
ZG93RmVhdHVyZXMmJiwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6Q3JlYXRlTmV3UGFnZTo6RGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgc2hvd1BhZ2Uo
KTsKLSAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmLCBNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQ6OkRlbGF5ZWRSZXBseSYmKTsKLSAgICB2b2lk
IHJ1bkphdmFTY3JpcHRDb25maXJtKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlJ1bkphdmFTY3JpcHRDb25maXJtOjpEZWxheWVkUmVwbHkmJik7Ci0gICAgdm9pZCBydW5KYXZh
U2NyaXB0UHJvbXB0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIHJ1
bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlJ1bkphdmFTY3JpcHRBbGVydDo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgcnVuSmF2
YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpSdW5KYXZhU2NyaXB0Q29uZmlybTo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgcnVuSmF2
YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OkRlbGF5ZWRSZXBseSYmKTsKICAg
ICB2b2lkIHNldFN0YXR1c1RleHQoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBtb3VzZURpZE1v
dmVPdmVyRWxlbWVudChXZWJIaXRUZXN0UmVzdWx0RGF0YSYmLCB1aW50MzJfdCBtb2RpZmllcnMs
IFVzZXJEYXRhJiYpOwogCkBAIC0xNjk3LDIxICsxNjk3LDIxIEBAIHByaXZhdGU6CiAgICAgdm9p
ZCByb290Vmlld1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHZpZXdSZWN0LCBNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpSb290Vmlld1RvU2NyZWVuOjpEZWxheWVkUmVwbHkmJik7CiAg
ICAgdm9pZCBhY2Nlc3NpYmlsaXR5U2NyZWVuVG9Sb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgc2NyZWVuUG9pbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6SW50UG9p
bnQpPiYmKTsKICAgICB2b2lkIHJvb3RWaWV3VG9BY2Nlc3NpYmlsaXR5U2NyZWVuKGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIHZpZXdSZWN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6
OkludFJlY3QpPiYmKTsKLSAgICB2b2lkIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkJlZm9yZVVubG9hZENv
bmZpcm1QYW5lbDo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgcnVuQmVmb3JlVW5sb2FkQ29u
ZmlybVBhbmVsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw6OkRlbGF5ZWRSZXBseSYmKTsKICAgICB2
b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0
dHJpYnV0ZXMmKTsKICAgICB2b2lkIHBhZ2VEaWRTY3JvbGwoKTsKLSAgICB2b2lkIHJ1bk9wZW5Q
YW5lbCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
LCBjb25zdCBXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzJik7CisgICAgdm9pZCBydW5PcGVu
UGFuZWwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmLCBjb25zdCBXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzJik7CiAgICAgdm9p
ZCBzaG93U2hhcmVTaGVldChjb25zdCBXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJMJiwg
U2hhcmVTaGVldENhbGxiYWNrSUQpOwotICAgIHZvaWQgcHJpbnRGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgZXhjZWVkZWREYXRh
YmFzZVF1b3RhKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUs
IHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50
NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6RXhjZWVkZWREYXRhYmFzZVF1b3RhOjpEZWxheWVkUmVwbHkmJik7
CisgICAgdm9pZCBwcmludEZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2
NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBj
dXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6RXhjZWVkZWREYXRhYmFzZVF1b3RhOjpEZWxheWVkUmVwbHkmJik7CiAgICAg
dm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKGNvbnN0IFN0cmluZyYgb3Jp
Z2luSWRlbnRpZmllciwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCB0b3RhbEJ5dGVz
TmVlZGVkLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZWFjaGVkQXBwbGljYXRpb25DYWNoZU9y
aWdpblF1b3RhOjpEZWxheWVkUmVwbHkmJik7Ci0gICAgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25Q
ZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgdWludDY0X3QgZnJhbWVJ
RCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpOworICAgIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9u
UGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpOwogCiAjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKICAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgdXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCk7CiAjZW5kaWYKLSAgICB2b2lkIHJlcXVl
c3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdXNlck1lZGlh
RG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVN0cmVh
bVJlcXVlc3QmJik7Ci0gICAgdm9pZCBlbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50
NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRhdGEsIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEpOworICAgIHZv
aWQgcmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJ
RCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgV2Vi
Q29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYpOworICAgIHZvaWQgZW51bWVyYXRlTWVkaWFEZXZp
Y2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2VyTWVkaWFEb2N1bWVudE9y
aWdpbkRhdGEsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbkRhdGEpOwogICAgIHZvaWQgYmVnaW5Nb25pdG9yaW5nQ2FwdHVyZURldmljZXMo
KTsKIAogICAgIHZvaWQgcnVuTW9kYWwoKTsKQEAgLTE4OTEsOCArMTg5MSw4IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBwcmludEZpbmlzaGVkQ2FsbGJhY2soY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciYsIENhbGxiYWNrSUQpOwogI2VuZGlmCiAKLSAgICB2b2lkIGZvY3VzZWRGcmFtZUNoYW5n
ZWQodWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBmcmFtZVNldExhcmdlc3RGcmFtZUNoYW5n
ZWQodWludDY0X3QgZnJhbWVJRCk7CisgICAgdm9pZCBmb2N1c2VkRnJhbWVDaGFuZ2VkKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBmcmFtZVNldExhcmdlc3RGcmFtZUNoYW5n
ZWQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKIAogICAgIHZvaWQgZGlkRmluaXNoTG9hZGlu
Z0RhdGFGb3JDdXN0b21Db250ZW50UHJvdmlkZXIoY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxl
bmFtZSwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7CiAKQEAgLTE5OTAsNyArMTk5MCw3IEBA
IHByaXZhdGU6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKLSAgICB2
b2lkIGNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250
ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImLCB1aW50NjRfdCBmcmFtZUlEKTsKKyAgICB2b2lkIGNv
bnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250ZW50Rmls
dGVyVW5ibG9ja0hhbmRsZXImLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogI2VuZGlmCiAK
ICAgICB2b2lkIHRyeVJlbG9hZEFmdGVyUHJvY2Vzc1Rlcm1pbmF0aW9uKCk7CkBAIC0yMTAyLDcg
KzIxMDIsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBib29sIGlzSW5IYXJkd2FyZUtleWJvYXJk
TW9kZSgpOwogI2VuZGlmCiAKLSAgICB2b2lkIG1ha2VTdG9yYWdlU3BhY2VSZXF1ZXN0KHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJl
bnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0
YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCh1aW50NjRfdCk+JiYpOworICAgIHZvaWQgbWFrZVN0b3JhZ2VTcGFjZVJlcXVlc3QoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRf
dCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3Vy
cmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQodWludDY0X3QpPiYmKTsKIAogICAgIFdlYWtQdHI8UGFnZUNsaWVudD4gbV9wYWdl
Q2xpZW50OwogICAgIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiBtX2NvbmZpZ3VyYXRpb247
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
aW5kZXggZGZiZDE2Nzg4ZDlhZjdlMjNhNWFjNjEyNGJmODkyMTE5MGEzNGYxYi4uN2QyODBlMTk0
NDM2MDRkOTlkMTA4MzdkZGExNzMyM2YwOTMzMmViZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjUsOSArMjUsOSBAQCBtZXNz
YWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIENyZWF0ZU5ld1BhZ2Uoc3RydWN0IFdlYktpdDo6
RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QsIHN0cnVjdCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyB3aW5kb3dGZWF0dXJl
cywgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRh
dGEpIC0+IChPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gbmV3UGFnZUlELCBPcHRp
b25hbDxXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM+IG5ld1BhZ2VQYXJhbWV0ZXJz
KSBTeW5jaHJvbm91cwogICAgIFNob3dQYWdlKCkKICAgICBDbG9zZVBhZ2UoYm9vbCBzdG9wUmVz
cG9uc2l2ZW5lc3NUaW1lcikKLSAgICBSdW5KYXZhU2NyaXB0QWxlcnQodWludDY0X3QgZnJhbWVJ
RCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2lu
LCBTdHJpbmcgbWVzc2FnZSkgLT4gKCkgU3luY2hyb25vdXMKLSAgICBSdW5KYXZhU2NyaXB0Q29u
ZmlybSh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
IGZyYW1lU2VjdXJpdHlPcmlnaW4sIFN0cmluZyBtZXNzYWdlKSAtPiAoYm9vbCByZXN1bHQpIFN5
bmNocm9ub3VzCi0gICAgUnVuSmF2YVNjcmlwdFByb21wdCh1aW50NjRfdCBmcmFtZUlELCBzdHJ1
Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFN0cmlu
ZyBtZXNzYWdlLCBTdHJpbmcgZGVmYXVsdFZhbHVlKSAtPiAoU3RyaW5nIHJlc3VsdCkgU3luY2hy
b25vdXMKKyAgICBSdW5KYXZhU2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9y
aWdpbiwgU3RyaW5nIG1lc3NhZ2UpIC0+ICgpIFN5bmNocm9ub3VzCisgICAgUnVuSmF2YVNjcmlw
dENvbmZpcm0oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3NhZ2Up
IC0+IChib29sIHJlc3VsdCkgU3luY2hyb25vdXMKKyAgICBSdW5KYXZhU2NyaXB0UHJvbXB0KFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVm
YXVsdFZhbHVlKSAtPiAoU3RyaW5nIHJlc3VsdCkgU3luY2hyb25vdXMKICAgICBNb3VzZURpZE1v
dmVPdmVyRWxlbWVudChzdHJ1Y3QgV2ViS2l0OjpXZWJIaXRUZXN0UmVzdWx0RGF0YSBoaXRUZXN0
UmVzdWx0RGF0YSwgdWludDMyX3QgbW9kaWZpZXJzLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRh
KQogCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCkBAIC00Nyw4ICs0Nyw4IEBAIG1l
c3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgU2V0VG9vbFRpcChTdHJpbmcgdG9vbFRpcCkK
ICAgICBTZXRGb2N1cyhib29sIGZvY3VzZWQpCiAgICAgVGFrZUZvY3VzKHVpbnQzMl90IGRpcmVj
dGlvbikKLSAgICBGb2N1c2VkRnJhbWVDaGFuZ2VkKHVpbnQ2NF90IGZyYW1lSUQpCi0gICAgRnJh
bWVTZXRMYXJnZXN0RnJhbWVDaGFuZ2VkKHVpbnQ2NF90IGZyYW1lSUQpCisgICAgRm9jdXNlZEZy
YW1lQ2hhbmdlZChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKKyAgICBGcmFtZVNl
dExhcmdlc3RGcmFtZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAg
ICAgU2V0UmVuZGVyVHJlZVNpemUodWludDY0X3QgdHJlZVNpemUpCiAgICAgU2V0VG9vbGJhcnNB
cmVWaXNpYmxlKGJvb2wgdG9vbGJhcnNBcmVWaXNpYmxlKQogICAgIEdldFRvb2xiYXJzQXJlVmlz
aWJsZSgpIC0+IChib29sIHRvb2xiYXJzQXJlVmlzaWJsZSkgU3luY2hyb25vdXMKQEAgLTY5LDEx
ICs2OSwxMSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIEhpZGVWYWxpZGF0aW9u
TWVzc2FnZSgpCiAjZW5kaWYKIAotICAgIFJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCh1aW50
NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIFN0cmluZyBtZXNzYWdlKSAtPiAoYm9vbCBzaG91bGRDbG9zZSkgU3luY2hy
b25vdXMKKyAgICBSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3NhZ2UpIC0+IChib29sIHNob3VsZENsb3NlKSBTeW5j
aHJvbm91cwogICAgIFBhZ2VEaWRTY3JvbGwoKQotICAgIFJ1bk9wZW5QYW5lbCh1aW50NjRfdCBm
cmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlP
cmlnaW4sIHN0cnVjdCBXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzIHBhcmFtZXRlcnMpCisg
ICAgUnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHN0cnVjdCBX
ZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzIHBhcmFtZXRlcnMpCiAgICAgU2hvd1NoYXJlU2hl
ZXQoc3RydWN0IFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwgc2hhcmVEYXRhLCB1aW50
NjRfdCBjYWxsYmFja0lEKQotICAgIFByaW50RnJhbWUodWludDY0X3QgZnJhbWVJRCkgLT4gKCkg
U3luY2hyb25vdXMKKyAgICBQcmludEZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlEKSAtPiAoKSBTeW5jaHJvbm91cwogICAgIFJ1bk1vZGFsKCkKICAgICBOb3RpZnlTY3JvbGxl
clRodW1iSXNWaXNpYmxlSW5SZWN0KFdlYkNvcmU6OkludFJlY3Qgc2Nyb2xsZXJUaHVtYikKICAg
ICBSZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdlKGludDMyX3QgbmV3U3R5bGUpCkBA
IC0xMDMsMTEgKzEwMywxMSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2VuZGlmCiAK
ICAgICAjIFBvbGljeSBtZXNzYWdlcwotICAgIERlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2
NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1
cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRl
bnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
IHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgYm9vbCBjYW5TaG93
TUlNRVR5cGUsIFN0cmluZyBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwg
V2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uQXN5bmModWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZp
ZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBX
ZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBzdHJ1Y3Qg
V2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVx
dWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhLCB1
aW50NjRfdCBsaXN0ZW5lcklEKQotICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25T
eW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIHN0cnVjdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0
YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEs
IE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHksIFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpVc2VyRGF0YSB1
c2VyRGF0YSkgLT4gKFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lk
ZW50aWZpZXIsIGVudW06dWludDhfdCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9u
LCB1aW50NjRfdCBuZXdOYXZpZ2F0aW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElE
LCBPcHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQb2xpY2llcykg
U3luY2hyb25vdXMKLSAgICBEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24odWludDY0X3Qg
ZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5
T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlm
aWVyLCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9u
RGF0YSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBmcmFtZU5hbWUs
IHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgVW5h
YmxlVG9JbXBsZW1lbnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciBlcnJvciwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEZWNpZGVQb2xpY3lG
b3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xp
Y3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgU3RyaW5nIGRvd25sb2Fk
QXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRh
KQorICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBm
cmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5
Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJLaXQ6Ok5h
dmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBzdHJ1Y3QgV2ViS2l0OjpG
cmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViQ29yZTo6
UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgSVBD
OjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhLCB1aW50NjRfdCBs
aXN0ZW5lcklEKQorICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBzdHJ1Y3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBv
bGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFj
dGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUlu
Zm9EYXRhLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdl
SUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5
LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UsIFdlYktpdDo6VXNl
ckRhdGEgdXNlckRhdGEpIC0+IChXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5
Q2hlY2tJZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UG9saWN5QWN0aW9uIHBvbGlj
eUFjdGlvbiwgdWludDY0X3QgbmV3TmF2aWdhdGlvbklELCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93
bmxvYWRJRCwgT3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9s
aWNpZXMpIFN5bmNocm9ub3VzCisgICAgRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rp
b25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVx
dWVzdCwgU3RyaW5nIGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2Vy
RGF0YSB1c2VyRGF0YSkKKyAgICBVbmFibGVUb0ltcGxlbWVudFBvbGljeShXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgV2ViS2l0
OjpVc2VyRGF0YSB1c2VyRGF0YSkKIAogICAgICMgUHJvZ3Jlc3MgbWVzc2FnZXMKICAgICBEaWRD
aGFuZ2VQcm9ncmVzcyhkb3VibGUgdmFsdWUpCkBAIC0xMTcsNTEgKzExNyw1MSBAQCBtZXNzYWdl
cyAtPiBXZWJQYWdlUHJveHkgewogICAgIFNldE5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3MoYm9v
bCBuZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzKQogCiAgICAgIyBGcmFtZSBsaWZldGltZSBtZXNz
YWdlcwotICAgIERpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRfdCBmcmFtZUlEKQotICAgIERpZENy
ZWF0ZVN1YmZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCisgICAgRGlkQ3JlYXRlTWFpbkZyYW1lKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQorICAgIERpZENyZWF0ZVN1YmZyYW1lKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogCi0gICAgRGlkQ3JlYXRlV2luZG93KHVp
bnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlmaWVyIHdp
bmRvd0lkZW50aWZpZXIpCisgICAgRGlkQ3JlYXRlV2luZG93KFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6R2xvYmFsV2luZG93SWRlbnRpZmllciB3aW5k
b3dJZGVudGlmaWVyKQogCiAgICAgIyBGcmFtZSBsb2FkIG1lc3NhZ2VzCi0gICAgRGlkU3RhcnRQ
cm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIFVSTCB1cmwsIFVSTCB1bnJlYWNoYWJsZVVSTCwgV2ViS2l0OjpVc2VyRGF0YSB1c2Vy
RGF0YSkKLSAgICBEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIFdp
bGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcg
dXJsLCBkb3VibGUgZGVsYXksIGVudW06Ym9vbCBXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0
IGxvY2tCYWNrRm9yd2FyZExpc3QpCi0gICAgRGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlEKQotICAgIERpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwgdXJsKQotICAgIERp
ZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgU3RyaW5nIHByb3Zpc2lvbmFsVVJMLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
IGVycm9yLCBlbnVtOmJvb2wgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGlu
dWVMb2FkaW5nLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZENvbW1pdExvYWRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFN0cmluZyBt
aW1lVHlwZSwgYm9vbCBoYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGxvYWRUeXBl
LCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGVJbmZvLCBib29sIGNvbnRhaW5z
UGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9y
Y2VkSGFzSW5zZWN1cmVDb250ZW50LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERp
ZEZhaWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRh
KQotICAgIERpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWRG
aW5pc2hMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZEZpcnN0TGF5b3V0Rm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWRGaXJz
dFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6
OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
VVJMIHVybCwgVVJMIHVucmVhY2hhYmxlVVJMLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQor
ICAgIERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRh
KQorICAgIFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIHVybCwgZG91YmxlIGRlbGF5LCBlbnVtOmJvb2wgV2Vi
Q29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0KQorICAgIERpZENh
bmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQpCisgICAgRGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwgdXJsKQorICAgIERp
ZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3Jp
Z2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFN0cmluZyBwcm92aXNpb25hbFVSTCwgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgZW51bTpib29sIFdlYkNvcmU6OldpbGxDb250aW51ZUxv
YWRpbmcgd2lsbENvbnRpbnVlTG9hZGluZywgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAg
ICBEaWRDb21taXRMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgU3RyaW5nIG1pbWVUeXBlLCBib29sIGhhc0N1c3RvbUNv
bnRlbnRQcm92aWRlciwgdWludDMyX3QgbG9hZFR5cGUsIFdlYkNvcmU6OkNlcnRpZmljYXRlSW5m
byBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8
V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIFdl
YktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkRmFpbExvYWRGb3JGcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yIGVycm9yLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERp
ZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisg
ICAgRGlkRmluaXNoTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAg
RGlkRmlyc3RMYXlvdXRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
V2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlM
YXlvdXRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViS2l0OjpV
c2VyRGF0YSB1c2VyRGF0YSkKICAgICBEaWRSZWFjaExheW91dE1pbGVzdG9uZShPcHRpb25TZXQ8
V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPiBsYXlvdXRNaWxlc3RvbmVzKQotICAgIERpZFJlY2Vp
dmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyB0aXRsZSwgV2ViS2l0OjpV
c2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWRSdW5J
bnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6OlVzZXJEYXRh
IHVzZXJEYXRhKQotICAgIERpZERldGVjdFhTU0ZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdl
YktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMyX3Qg
dHlwZSwgVVJMIHVybCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWRDaGFuZ2VN
YWluRG9jdW1lbnQodWludDY0X3QgZnJhbWVJRCkKLSAgICBEaWRFeHBsaWNpdE9wZW5Gb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBVUkwgdXJsKQorICAgIERpZFJlY2VpdmVUaXRsZUZvckZyYW1l
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgdGl0bGUsIFdlYktpdDo6
VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1l
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJE
YXRhKQorICAgIERpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZERldGVj
dFhTU0ZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJLaXQ6OlVz
ZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZShX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCB1
aW50MzJfdCB0eXBlLCBVUkwgdXJsLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERp
ZENoYW5nZU1haW5Eb2N1bWVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKKyAg
ICBEaWRFeHBsaWNpdE9wZW5Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgVVJMIHVybCkKICAgICBEaWREZXN0cm95TmF2aWdhdGlvbih1aW50NjRfdCBuYXZpZ2F0aW9u
SUQpCiAKICAgICBIYXNJbnNlY3VyZUNvbnRlbnQoKSAtPiAoZW51bTpib29sIFdlYkNvcmU6Okhh
c0luc2VjdXJlQ29udGVudCBoYXNJbnNlY3VyZUNvbnRlbnQpIFN5bmNocm9ub3VzCiAKICAgICBN
YWluRnJhbWVQbHVnaW5IYW5kbGVzUGFnZVNjYWxlR2VzdHVyZURpZENoYW5nZShib29sIG1haW5G
cmFtZVBsdWdpbkhhbmRsZXNQYWdlU2NhbGVHZXN0dXJlKQogCi0gICAgRnJhbWVEaWRCZWNvbWVG
cmFtZVNldCh1aW50NjRfdCBmcmFtZUlELCBib29sIHZhbHVlKQorICAgIEZyYW1lRGlkQmVjb21l
RnJhbWVTZXQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wgdmFsdWUpCiAK
ICAgICAjIEhpc3RvcnkgY2xpZW50IG1lc3NhZ2VzLgotICAgIERpZE5hdmlnYXRlV2l0aE5hdmln
YXRpb25EYXRhKHN0cnVjdCBXZWJLaXQ6OldlYk5hdmlnYXRpb25EYXRhU3RvcmUgc3RvcmUsIHVp
bnQ2NF90IGZyYW1lSUQpCi0gICAgRGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KFN0cmluZyBzb3Vy
Y2VVUkxTdHJpbmcsIFN0cmluZyBkZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJ
RCkKLSAgICBEaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoU3RyaW5nIHNvdXJjZVVSTFN0cmluZywg
U3RyaW5nIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKQotICAgIERpZFVw
ZGF0ZUhpc3RvcnlUaXRsZShTdHJpbmcgdGl0bGUsIFN0cmluZyB1cmwsIHVpbnQ2NF90IGZyYW1l
SUQpCisgICAgRGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoc3RydWN0IFdlYktpdDo6V2Vi
TmF2aWdhdGlvbkRhdGFTdG9yZSBzdG9yZSwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQpCisgICAgRGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KFN0cmluZyBzb3VyY2VVUkxTdHJpbmcs
IFN0cmluZyBkZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQpCisgICAgRGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KFN0cmluZyBzb3VyY2VVUkxTdHJp
bmcsIFN0cmluZyBkZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQpCisgICAgRGlkVXBkYXRlSGlzdG9yeVRpdGxlKFN0cmluZyB0aXRsZSwgU3RyaW5n
IHVybCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAKICAgICAjIEN1c3RvbSBy
ZXByZXNlbnRhdGlvbnMKICAgICBEaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3RvbUNvbnRlbnRQ
cm92aWRlcihTdHJpbmcgc3VnZ2VzdGVkRmlsZW5hbWUsIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRh
KQogCiAgICAgIyBGb3JtcyBtZXNzYWdlcwotICAgIFdpbGxTdWJtaXRGb3JtKHVpbnQ2NF90IGZy
YW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZyYW1lSUQsIFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBT
dHJpbmc+PiB0ZXh0RmllbGRWYWx1ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNl
ckRhdGEgdXNlckRhdGEpCisgICAgV2lsbFN1Ym1pdEZvcm0oV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBzb3VyY2VGcmFtZUlELCBWZWN0
b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4gdGV4dEZpZWxkVmFsdWVzLCB1aW50NjRfdCBs
aXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQogCiAgICAgIyBDYWxsYmFjayBt
ZXNzYWdlcwogICAgIFZvaWRDYWxsYmFjayhXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkK
QEAgLTI3NSwxOCArMjc1LDE4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjZW5kaWYK
IAogICAgICMgRGF0YWJhc2UgbWVzc2FnZXMKLSAgICBFeGNlZWRlZERhdGFiYXNlUXVvdGEodWlu
dDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIsIFN0cmluZyBkYXRhYmFzZU5h
bWUsIFN0cmluZyBkYXRhYmFzZURpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVp
bnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2Us
IHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UpIC0+ICh1aW50NjRfdCBuZXdRdW90YSkgU3luY2hyb25v
dXMKKyAgICBFeGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCBTdHJpbmcgZGF0YWJhc2VOYW1lLCBTdHJp
bmcgZGF0YWJhc2VEaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBj
dXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRf
dCBleHBlY3RlZFVzYWdlKSAtPiAodWludDY0X3QgbmV3UXVvdGEpIFN5bmNocm9ub3VzCiAKICAg
ICAjIEFwcGxpY2F0aW9uIGNhY2hlIG1lc3NhZ2VzCiAgICAgUmVhY2hlZEFwcGxpY2F0aW9uQ2Fj
aGVPcmlnaW5RdW90YShTdHJpbmcgb3JpZ2luSWRlbnRpZmllciwgdWludDY0X3QgY3VycmVudFF1
b3RhLCB1aW50NjRfdCB0b3RhbEJ5dGVzTmVlZGVkKSAtPiAodWludDY0X3QgbmV3UXVvdGEpIFN5
bmNocm9ub3VzCiAKICAgICAjIEdlb2xvY2F0aW9uIG1lc3NhZ2VzCi0gICAgUmVxdWVzdEdlb2xv
Y2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIHVpbnQ2NF90
IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQorICAgIFJlcXVlc3RHZW9sb2NhdGlv
blBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCiAgICAgCiAjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICAjIE1lZGlhU3RlYW0gbWVzc2FnZXMKLSAgICBSZXF1
ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50
NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Ok1l
ZGlhU3RyZWFtUmVxdWVzdCByZXF1ZXN0KQotICAgIEVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZy
YW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwg
c3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
SWRlbnRpZmllcikKKyAgICBSZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2
NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50
aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QgcmVx
dWVzdCkKKyAgICBFbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVk
aWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBzdHJ1
Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVu
dGlmaWVyKQogICAgIEJlZ2luTW9uaXRvcmluZ0NhcHR1cmVEZXZpY2VzKCkKICNlbmRpZgogCkBA
IC00NzMsNyArNDczLDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgogCiAj
aWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQotICAgIENvbnRlbnRGaWx0ZXJEaWRCbG9ja0xv
YWRGb3JGcmFtZShXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIgdW5ibG9ja0hh
bmRsZXIsIHVpbnQ2NF90IGZyYW1lSUQpCisgICAgQ29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZv
ckZyYW1lKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciB1bmJsb2NrSGFuZGxl
ciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAjZW5kaWYKIAogICAgIElzUGxh
eWluZ01lZGlhRGlkQ2hhbmdlKHVuc2lnbmVkIHN0YXRlLCB1aW50NjRfdCBzb3VyY2VFbGVtZW50
SUQpCkBAIC01MzksNyArNTM5LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBM
b2FkU3luY2hyb25vdXNVUkxTY2hlbWVUYXNrKHN0cnVjdCBXZWJLaXQ6OlVSTFNjaGVtZVRhc2tQ
YXJhbWV0ZXJzIHBhcmFtZXRlcnMpIC0+IChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBWZWN0b3I8Y2hhcj4gZGF0YSkgU3lu
Y2hyb25vdXMKIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgU2hvdWxkQWxs
b3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh1aW50NjRfdCBmcmFtZUlELCBzdHJ1
Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbiwgYm9vbCBtYXlQcm9tcHQpIC0+
IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Np
b25TdGF0ZSBwZXJtaXNzaW9uU3RhdGUpIEFzeW5jCisgICAgU2hvdWxkQWxsb3dEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
c3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4sIGJvb2wgbWF5UHJvbXB0
KSAtPiAoZW51bTp1aW50OF90IFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJt
aXNzaW9uU3RhdGUgcGVybWlzc2lvblN0YXRlKSBBc3luYwogI2VuZGlmCiAKICNpZiBFTkFCTEUo
QVRUQUNITUVOVF9FTEVNRU5UKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKaW5kZXggZWE0MmYwY2IyY2VmMTZjYWJkMjU4NjgyNDFlN2Y5YWE1NzAxOWIwNy4u
NmRjNTVlODc0NjdhMjVmMjJiOTg2MzhjNzNlMTAzZWI5M2IxMGYzNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC04MjEsMjUgKzgyMSwyNSBAQCB2
b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciog
bGF1bmNoZXIsIElQQzo6Q29ubmVjdAogI2VuZGlmCiB9CiAKLVdlYkZyYW1lUHJveHkqIFdlYlBy
b2Nlc3NQcm94eTo6d2ViRnJhbWUodWludDY0X3QgZnJhbWVJRCkgY29uc3QKK1dlYkZyYW1lUHJv
eHkqIFdlYlByb2Nlc3NQcm94eTo6d2ViRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIGNv
bnN0CiB7CiAgICAgaWYgKCFXZWJGcmFtZVByb3h5TWFwOjppc1ZhbGlkS2V5KGZyYW1lSUQpKQot
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICByZXR1cm4g
bV9mcmFtZU1hcC5nZXQoZnJhbWVJRCk7CiB9CiAKLWJvb2wgV2ViUHJvY2Vzc1Byb3h5OjpjYW5D
cmVhdGVGcmFtZSh1aW50NjRfdCBmcmFtZUlEKSBjb25zdAorYm9vbCBXZWJQcm9jZXNzUHJveHk6
OmNhbkNyZWF0ZUZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSBjb25zdAogewogICAgIHJl
dHVybiBXZWJGcmFtZVByb3h5TWFwOjppc1ZhbGlkS2V5KGZyYW1lSUQpICYmICFtX2ZyYW1lTWFw
LmNvbnRhaW5zKGZyYW1lSUQpOwogfQogCi12b2lkIFdlYlByb2Nlc3NQcm94eTo6ZnJhbWVDcmVh
dGVkKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkZyYW1lUHJveHkmIGZyYW1lUHJveHkpCit2b2lkIFdl
YlByb2Nlc3NQcm94eTo6ZnJhbWVDcmVhdGVkKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJG
cmFtZVByb3h5JiBmcmFtZVByb3h5KQogewogICAgIG1fZnJhbWVNYXAuc2V0KGZyYW1lSUQsICZm
cmFtZVByb3h5KTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZERlc3Ryb3lGcmFtZSh1
aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZERlc3Ryb3lGcmFtZShG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICAvLyBJZiB0aGUgcGFnZSBpcyBjbG9zZWQg
YmVmb3JlIGl0IGhhcyBoYWQgdGhlIGNoYW5jZSB0byBzZW5kIHRoZSBEaWRDcmVhdGVNYWluRnJh
bWUgbWVzc2FnZQogICAgIC8vIGJhY2sgdG8gdGhlIFVJUHJvY2VzcywgdGhlbiB0aGUgZnJhbWVE
ZXN0cm95ZWQgbWVzc2FnZSB3aWxsIHN0aWxsIGJlIHJlY2VpdmVkIGJlY2F1c2UgaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggNmU0YTY4ZTZjNWQ0YjBh
MzQ4NDA4NmFiZTU4MjQwZjQ1NDkwYmMxNC4uZjMyYTNkMWI1OWU4N2Y5OGYxMGJkNjU4OTk0MmM0
YjZhZjA2MTY1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgK
QEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJWaXNpYmxlV2ViUGFnZUNvdW50ZXIuaCIKICNp
bmNsdWRlICJXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vz
c1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL01lc3NhZ2VQb3J0SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFn
ZUlkZW50aWZpZXIuaD4KQEAgLTk3LDcgKzk4LDcgQEAgZW51bSBjbGFzcyBBbGxvd1Byb2Nlc3ND
YWNoaW5nIHsgTm8sIFllcyB9OwogCiBjbGFzcyBXZWJQcm9jZXNzUHJveHkgOiBwdWJsaWMgQXV4
aWxpYXJ5UHJvY2Vzc1Byb3h5LCBwdWJsaWMgUmVzcG9uc2l2ZW5lc3NUaW1lcjo6Q2xpZW50LCBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V2ViUHJvY2Vzc1Byb3h5PiwgcHVibGljIENhbk1h
a2VXZWFrUHRyPFdlYlByb2Nlc3NQcm94eT4sIHByaXZhdGUgUHJvY2Vzc1Rocm90dGxlckNsaWVu
dCB7CiBwdWJsaWM6Ci0gICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViRnJh
bWVQcm94eT4+IFdlYkZyYW1lUHJveHlNYXA7CisgICAgdHlwZWRlZiBIYXNoTWFwPFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgUmVmUHRyPFdlYkZyYW1lUHJveHk+PiBXZWJGcmFtZVByb3h5TWFw
OwogICAgIHR5cGVkZWYgSGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViUGFnZVBy
b3h5Kj4gV2ViUGFnZVByb3h5TWFwOwogICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgUmVm
UHRyPEFQSTo6VXNlckluaXRpYXRlZEFjdGlvbj4+IFVzZXJJbml0aWF0ZWRBY3Rpb25NYXA7CiAK
QEAgLTE2NCw5ICsxNjUsOSBAQCBwdWJsaWM6CiAgICAgUmVzcG9uc2l2ZW5lc3NUaW1lciYgcmVz
cG9uc2l2ZW5lc3NUaW1lcigpIHsgcmV0dXJuIG1fcmVzcG9uc2l2ZW5lc3NUaW1lcjsgfQogICAg
IGJvb2wgaXNSZXNwb25zaXZlKCkgY29uc3Q7CiAKLSAgICBXZWJGcmFtZVByb3h5KiB3ZWJGcmFt
ZSh1aW50NjRfdCkgY29uc3Q7Ci0gICAgYm9vbCBjYW5DcmVhdGVGcmFtZSh1aW50NjRfdCBmcmFt
ZUlEKSBjb25zdDsKLSAgICB2b2lkIGZyYW1lQ3JlYXRlZCh1aW50NjRfdCwgV2ViRnJhbWVQcm94
eSYpOworICAgIFdlYkZyYW1lUHJveHkqIHdlYkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
cikgY29uc3Q7CisgICAgYm9vbCBjYW5DcmVhdGVGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIpIGNvbnN0OworICAgIHZvaWQgZnJhbWVDcmVhdGVkKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgV2ViRnJhbWVQcm94eSYpOwogICAgIHZvaWQgZGlzY29ubmVjdEZyYW1lc0Zyb21QYWdlKFdl
YlBhZ2VQcm94eSopOyAvLyBJbmNsdWRpbmcgbWFpbiBmcmFtZS4KICAgICBzaXplX3QgZnJhbWVD
b3VudEluUGFnZShXZWJQYWdlUHJveHkqKSBjb25zdDsgLy8gSW5jbHVkaW5nIG1haW4gZnJhbWUu
CiAKQEAgLTMzMiw3ICszMzMsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIC8vIElQQyBt
ZXNzYWdlIGhhbmRsZXJzLgogICAgIHZvaWQgdXBkYXRlQmFja0ZvcndhcmRJdGVtKGNvbnN0IEJh
Y2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSYpOwotICAgIHZvaWQgZGlkRGVzdHJveUZyYW1lKHVpbnQ2
NF90KTsKKyAgICB2b2lkIGRpZERlc3Ryb3lGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIp
OwogICAgIHZvaWQgZGlkRGVzdHJveVVzZXJHZXN0dXJlVG9rZW4odWludDY0X3QpOwogCiAgICAg
Ym9vbCBjYW5CZUFkZGVkVG9XZWJQcm9jZXNzQ2FjaGUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCBmM2Q1
ZTkzMWU2ZGVlOTAyYTRhYzVlNWZjNWIxMGRkNDYxNWIxNWQwLi4zMmJhZmVhOWUxMDk1OGMyNWNk
MTk0ZGExODQ1MzZhZDA5M2Y3NTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0yMiw3ICsyMiw3IEBACiAKIG1lc3Nh
Z2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgVXBkYXRlQmFja0Zv
cndhcmRJdGVtKHN0cnVjdCBXZWJLaXQ6OkJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSBiYWNrRm9y
d2FyZExpc3RJdGVtU3RhdGUpCi0gICAgRGlkRGVzdHJveUZyYW1lKHVpbnQ2NF90IGZyYW1lSUQp
IAorICAgIERpZERlc3Ryb3lGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkg
CiAKICAgICBEaWREZXN0cm95VXNlckdlc3R1cmVUb2tlbih1aW50NjRfdCB1c2VyR2VzdHVyZVRv
a2VuSUQpIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1t
CmluZGV4IDg0Zjg1NDc4OWMzNWJiMmI1NmRmNzE1ZmMzNmQ0ZTljN2ZkMzRlOTQuLmIyY2U5MTA1
MDQ1YTVmZmYwYWE2MTY3NDllMDg4ZGEwY2Q5NGFkMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCkBAIC03MDgsOSArNzA4LDkgQEAgLSAoTlNVSW50
ZWdlcilfd2tfcGFnZUNvdW50Rm9yUHJpbnRGb3JtYXR0ZXI6KF9XS1dlYlZpZXdQcmludEZvcm1h
dHRlciAqKXByaW50Rm8KICAgICBpZiAoX2lzUHJpbnRpbmdUb1BERikKICAgICAgICAgcmV0dXJu
IDA7CiAKLSAgICB1aW50NjRfdCBmcmFtZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlEOwogICAgIGlmIChfV0tGcmFtZUhhbmRsZSAqaGFuZGxlID0gcHJpbnRGb3JtYXR0
ZXIuZnJhbWVUb1ByaW50KQotICAgICAgICBmcmFtZUlEID0gaGFuZGxlLl9mcmFtZUlEOworICAg
ICAgICBmcmFtZUlEID0gV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKGhhbmRsZS5fZnJh
bWVJRCk7CiAgICAgZWxzZSBpZiAoYXV0byBtYWluRnJhbWUgPSBfcGFnZS0+bWFpbkZyYW1lKCkp
CiAgICAgICAgIGZyYW1lSUQgPSBtYWluRnJhbWUtPmZyYW1lSUQoKTsKICAgICBlbHNlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCA2YjQ3
NTgxNWY0NzU3MWQ1OWJkOGJlZmNhNmQ3OWYxMDM3YzliMjJjLi45NTU4ODMyYzFjOGFiZmZkMTFk
OGFkMWQwMWExYjhmNTY5ZjljYzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTEwNDIsNyArMTA0Miw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpoYW5kbGVTbWFydE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbkZvclBvdGVudGlhbFRhcCh1
aW50NjRfdCByCiAgICAgcGFnZUNsaWVudCgpLmhhbmRsZVNtYXJ0TWFnbmlmaWNhdGlvbkluZm9y
bWF0aW9uRm9yUG90ZW50aWFsVGFwKHJlcXVlc3RJRCwgcmVuZGVyUmVjdCwgZml0RW50aXJlUmVj
dCwgdmlld3BvcnRNaW5pbXVtU2NhbGUsIHZpZXdwb3J0TWF4aW11bVNjYWxlKTsKIH0KIAotdWlu
dDMyX3QgV2ViUGFnZVByb3h5Ojpjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERih1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgRHJhd1RvUERGQ2Fs
bGJhY2s6OkNhbGxiYWNrRnVuY3Rpb24mJiBjYWxsYmFjaykKK3VpbnQzMl90IFdlYlBhZ2VQcm94
eTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYoRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBEcmF3VG9QREZDYWxsYmFjazo6Q2Fs
bGJhY2tGdW5jdGlvbiYmIGNhbGxiYWNrKQogewogICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3Mo
KSkgewogICAgICAgICBjYWxsYmFjayhJUEM6OkRhdGFSZWZlcmVuY2UoKSwgQ2FsbGJhY2tCYXNl
OjpFcnJvcjo6T3duZXJXYXNJbnZhbGlkYXRlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHkuY3BwCmluZGV4IGU2MzUzY2NkZDU0YWRmYTVhYTU5MDViODk3MzAzNGJjMWNlOTU2ZjIuLjdm
NTdmZjgwYWNkMmI5NTExNTkxMGY1OTU5NGQxZGZjZjQzNmQzYzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHkuY3BwCkBAIC0xNDMsNyArMTQzLDcgQEAgc3RhdGljIEpTVmFsdWVSZWYg
ZXZhbHVhdGVKYXZhU2NyaXB0Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0
UmVmIGYKICAgICBpZiAoIWF1dG9tYXRpb25TZXNzaW9uUHJveHkpCiAgICAgICAgIHJldHVybiBK
U1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIAotICAgIHVpbnQ2NF90IGZyYW1lSUQgPSBK
U1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pOworICAgIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEID0gV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVy
RnJvbUlEKEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbikp
OwogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJn
dW1lbnRzWzFdLCBleGNlcHRpb24pOwogICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoSlNWYWx1
ZVRvU3RyaW5nQ29weShjb250ZXh0LCBhcmd1bWVudHNbMl0sIGV4Y2VwdGlvbikpOwogCkBAIC0y
MjAsNyArMjIwLDcgQEAgV2ViQ29yZTo6RWxlbWVudCogV2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eTo6ZWxlbWVudEZvck5vZGVIYW5kbGUoV2ViRnJhbWUmIGZyYW0KIAogdm9pZCBXZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5OjpkaWRDbGVhcldpbmRvd09iamVjdEZvckZyYW1lKFdlYkZyYW1lJiBm
cmFtZSkKIHsKLSAgICB1aW50NjRfdCBmcmFtZUlEID0gZnJhbWUuZnJhbWVJRCgpOworICAgIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEID0gZnJhbWUuZnJhbWVJRCgpOwogICAgIGlm
IChKU09iamVjdFJlZiBzY3JpcHRPYmplY3QgPSBtX3dlYkZyYW1lU2NyaXB0T2JqZWN0TWFwLnRh
a2UoZnJhbWVJRCkpCiAgICAgICAgIEpTVmFsdWVVbnByb3RlY3QoZnJhbWUuanNDb250ZXh0KCks
IHNjcmlwdE9iamVjdCk7CiAKQEAgLTIzMiw3ICsyMzIsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25T
ZXNzaW9uUHJveHk6OmRpZENsZWFyV2luZG93T2JqZWN0Rm9yRnJhbWUoV2ViRnJhbWUmIGZyYW1l
KQogICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6RGlkRXZhbHVhdGVKYXZh
U2NyaXB0RnVuY3Rpb24oY2FsbGJhY2tJRCwgZXJyb3JNZXNzYWdlLCBlcnJvclR5cGUpLCAwKTsK
IH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpldmFsdWF0ZUphdmFTY3JpcHRG
dW5jdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFN0cmluZyYgZnVuY3Rpb24sIFZlY3RvcjxTdHJpbmc+IGFyZ3VtZW50cywgYm9vbCBl
eHBlY3RzSW1wbGljaXRDYWxsYmFja0FyZ3VtZW50LCBpbnQgY2FsbGJhY2tUaW1lb3V0LCB1aW50
NjRfdCBjYWxsYmFja0lEKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpldmFsdWF0
ZUphdmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIGZ1bmN0aW9uLCBWZWN0
b3I8U3RyaW5nPiBhcmd1bWVudHMsIGJvb2wgZXhwZWN0c0ltcGxpY2l0Q2FsbGJhY2tBcmd1bWVu
dCwgaW50IGNhbGxiYWNrVGltZW91dCwgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKICAgICBXZWJQ
YWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAg
IGlmICghcGFnZSkgewpAQCAtMjYzLDcgKzI2Myw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b25Qcm94eTo6ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6UGFnZUlkZW50aWZp
CiAgICAgICAgIHRvSlNWYWx1ZShjb250ZXh0LCBmdW5jdGlvbiksCiAgICAgICAgIHRvSlNBcnJh
eShjb250ZXh0LCBhcmd1bWVudHMsIHRvSlNWYWx1ZSwgJmV4Y2VwdGlvbiksCiAgICAgICAgIEpT
VmFsdWVNYWtlQm9vbGVhbihjb250ZXh0LCBleHBlY3RzSW1wbGljaXRDYWxsYmFja0FyZ3VtZW50
KSwKLSAgICAgICAgSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgZnJhbWVJRCksCisgICAgICAg
IEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIGZyYW1lSUQudG9VSW50NjQoKSksCiAgICAgICAg
IEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIGNhbGxiYWNrSUQpLAogICAgICAgICBKU09iamVj
dE1ha2VGdW5jdGlvbldpdGhDYWxsYmFjayhjb250ZXh0LCBudWxscHRyLCBldmFsdWF0ZUphdmFT
Y3JpcHRDYWxsYmFjayksCiAgICAgICAgIEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIGNhbGxi
YWNrVGltZW91dCkKQEAgLTMwMCw3ICszMDAsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9u
UHJveHk6OmV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OlBhZ2VJZGVudGlmaQog
ICAgIGRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKGZyYW1lSUQsIGNhbGxiYWNrSUQsIGV4
Y2VwdGlvbk1lc3NhZ2UsIGVycm9yVHlwZSk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b25Qcm94eTo6ZGlkRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24odWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgU3RyaW5nJiByZXN1bHQsIGNvbnN0IFN0cmluZyYg
ZXJyb3JUeXBlKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpkaWRFdmFsdWF0ZUph
dmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0
X3QgY2FsbGJhY2tJRCwgY29uc3QgU3RyaW5nJiByZXN1bHQsIGNvbnN0IFN0cmluZyYgZXJyb3JU
eXBlKQogewogICAgIGF1dG8gZmluZFJlc3VsdCA9IG1fd2ViRnJhbWVQZW5kaW5nRXZhbHVhdGVK
YXZhU2NyaXB0Q2FsbGJhY2tzTWFwLmZpbmQoZnJhbWVJRCk7CiAgICAgaWYgKGZpbmRSZXN1bHQg
IT0gbV93ZWJGcmFtZVBlbmRpbmdFdmFsdWF0ZUphdmFTY3JpcHRDYWxsYmFja3NNYXAuZW5kKCkp
IHsKQEAgLTMxMywxMiArMzEzLDEzIEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6
ZGlkRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24odWludDY0X3QgZnJhbWVJRCwKICAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6RGlkRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24o
Y2FsbGJhY2tJRCwgcmVzdWx0LCBlcnJvclR5cGUpLCAwKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhPcmRpbmFsKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgdWludDMyX3Qgb3JkaW5hbCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCB1aW50NjRfdCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCisvLyBGSVhNRTogVGhlc2UgY2FsbGJhY2tzIHNob3VsZCB0YWtlIE9w
dGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4uCit2b2lkIFdlYkF1dG9tYXRpb25TZXNz
aW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGluYWwoV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDMyX3Qg
b3JkaW5hbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlBhZ2Uq
IHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAgICAgaWYg
KCFwYWdlKSB7CiAgICAgICAgIFN0cmluZyB3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSA9IEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1ZShJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OldpbmRvd05vdEZv
dW5kKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIod2luZG93Tm90Rm91bmRFcnJvclR5cGUs
IDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSwg
eyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMzI2LDM3ICszMjcsMzcgQEAgdm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhPcmRpbmFs
KFdlYkNvcmU6OlBhZ2VJZGVudGkKIAogICAgIFdlYkZyYW1lKiBmcmFtZSA9IGZyYW1lSUQgPyBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSA6IHBhZ2UtPm1haW5XZWJG
cmFtZSgpOwogICAgIGlmICghZnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJh
bWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1l
Tm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBX
ZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lID0gZnJhbWUtPmNvcmVGcmFtZSgpOwogICAgIGlmICgh
Y29yZUZyYW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJv
clR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JU
eXBlLCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgV2ViQ29yZTo6RnJhbWUq
IGNvcmVDaGlsZEZyYW1lID0gY29yZUZyYW1lLT50cmVlKCkuc2NvcGVkQ2hpbGQob3JkaW5hbCk7
CiAgICAgaWYgKCFjb3JlQ2hpbGRGcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihm
cmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJh
bWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAg
IFdlYkZyYW1lKiBjaGlsZEZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmNvcmVDaGls
ZEZyYW1lKTsKICAgICBpZiAoIWNoaWxkRnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
ICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQsIGNoaWxkRnJhbWUtPmZyYW1lSUQo
KSk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJh
bWVXaXRoTm9kZUhhbmRsZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbm9kZUhhbmRsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChPcHRpb25hbDxTdHJpbmc+LCB1aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lk
IFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5k
bGUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsKICAgICAgICAgU3RyaW5nIHdp
bmRvd05vdEZvdW5kRXJyb3JUeXBlID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhl
bHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVlKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b246OkVycm9yTWVzc2FnZTo6V2luZG93Tm90Rm91bmQpOwotICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcih3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC0zNjQsMzcgKzM2NSwzNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6
OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUoV2ViQ29yZTo6UGFnZUlkZQogCiAgICAg
V2ViRnJhbWUqIGZyYW1lID0gZnJhbWVJRCA/IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZy
YW1lKGZyYW1lSUQpIDogcGFnZS0+bWFpbldlYkZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkgewot
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFdlYkNvcmU6OkVsZW1lbnQqIGNvcmVFbGVtZW50
ID0gZWxlbWVudEZvck5vZGVIYW5kbGUoKmZyYW1lLCBub2RlSGFuZGxlKTsKICAgICBpZiAoIWlz
PFdlYkNvcmU6OkhUTUxGcmFtZUVsZW1lbnRCYXNlPihjb3JlRWxlbWVudCkpIHsKLSAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKICAgICBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lRnJvbUVsZW1lbnQg
PSBkb3duY2FzdDxXZWJDb3JlOjpIVE1MRnJhbWVFbGVtZW50QmFzZT4oKmNvcmVFbGVtZW50KS5j
b250ZW50RnJhbWUoKTsKICAgICBpZiAoIWNvcmVGcmFtZUZyb21FbGVtZW50KSB7Ci0gICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCiAgICAgV2ViRnJhbWUqIGZyYW1lRnJvbUVsZW1lbnQgPSBXZWJGcmFt
ZTo6ZnJvbUNvcmVGcmFtZSgqY29yZUZyYW1lRnJvbUVsZW1lbnQpOwogICAgIGlmICghZnJhbWVG
cm9tRWxlbWVudCkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJy
b3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9y
VHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGNvbXBsZXRpb25IYW5k
bGVyKFdURjo6bnVsbG9wdCwgZnJhbWVGcm9tRWxlbWVudC0+ZnJhbWVJRCgpKTsKIH0KIAotdm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2
NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoTmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdl
SUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG5hbWUs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQYWdlKiBwYWdlID0g
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAgIGlmICghcGFnZSkg
ewogICAgICAgICBTdHJpbmcgd2luZG93Tm90Rm91bmRFcnJvclR5cGUgPSBJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUoSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JNZXNzYWdlOjpXaW5kb3dOb3RGb3VuZCk7Ci0g
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIod2luZG93Tm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTQwMiwzNyArNDAzLDM3IEBAIHZvaWQgV2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoTmFtZShXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllCiAKICAgICBXZWJGcmFtZSogZnJhbWUgPSBmcmFtZUlEID8gV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCkgOiBwYWdlLT5tYWluV2ViRnJhbWUoKTsK
ICAgICBpZiAoIWZyYW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91
bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5k
RXJyb3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgV2ViQ29yZTo6
RnJhbWUqIGNvcmVGcmFtZSA9IGZyYW1lLT5jb3JlRnJhbWUoKTsKICAgICBpZiAoIWNvcmVGcmFt
ZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAw
KTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFdlYkNvcmU6OkZyYW1lKiBjb3JlQ2hp
bGRGcmFtZSA9IGNvcmVGcmFtZS0+dHJlZSgpLnNjb3BlZENoaWxkKG5hbWUpOwogICAgIGlmICgh
Y29yZUNoaWxkRnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3Vu
ZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRF
cnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBXZWJGcmFtZSog
Y2hpbGRGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpjb3JlQ2hpbGRGcmFtZSk7CiAg
ICAgaWYgKCFjaGlsZEZyYW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90
Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZv
dW5kRXJyb3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgY29tcGxl
dGlvbkhhbmRsZXIoV1RGOjpudWxsb3B0LCBjaGlsZEZyYW1lLT5mcmFtZUlEKCkpOwogfQogCi12
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVQYXJlbnRGcmFtZShXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlUGFyZW50RnJhbWUoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlBhZ2UqIHBh
Z2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAgICAgaWYgKCFw
YWdlKSB7CiAgICAgICAgIFN0cmluZyB3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSA9IEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1ZShJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OldpbmRvd05vdEZvdW5k
KTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIod2luZG93Tm90Rm91bmRFcnJvclR5cGUsIDAp
OworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSwgeyB9
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNDQwLDIwICs0NDEsMjAgQEAgdm9pZCBX
ZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlUGFyZW50RnJhbWUoV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgcGFnZUkKIAogICAgIFdlYkZyYW1lKiBmcmFtZSA9IGZyYW1lSUQgPyBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSA6IHBhZ2UtPm1haW5XZWJGcmFt
ZSgpOwogICAgIGlmICghZnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVO
b3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90
Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBXZWJG
cmFtZSogcGFyZW50RnJhbWUgPSBmcmFtZS0+cGFyZW50RnJhbWUoKTsKICAgICBpZiAoIXBhcmVu
dEZyYW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5
cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBl
LCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgY29tcGxldGlvbkhhbmRsZXIo
V1RGOjpudWxsb3B0LCBwYXJlbnRGcmFtZS0+ZnJhbWVJRCgpKTsKIH0KIAotdm9pZCBXZWJBdXRv
bWF0aW9uU2Vzc2lvblByb3h5Ojpmb2N1c0ZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6
Zm9jdXNGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAgICAgaWYgKCFwYWdlKQpAQCAtNTI4LDcgKzUy
OSw3IEBAIHN0YXRpYyBXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnZlcnRQb2ludEZyb21GcmFtZUNs
aWVudFRvUm9vdFZpZXcoV2ViQ29yZTo6RnJhbWVWCiAgICAgcmV0dXJuIGNsaWVudFBvaW50Owog
fQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmNvbXB1dGVFbGVtZW50TGF5b3V0
KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5n
IG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgQ29vcmRpbmF0ZVN5c3Rl
bSBjb29yZGluYXRlU3lzdGVtLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmlu
Zz4sIFdlYkNvcmU6OkludFJlY3QsIE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiwgYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmNv
bXB1dGVFbGVtZW50TGF5b3V0KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9s
bEludG9WaWV3SWZOZWVkZWQsIENvb3JkaW5hdGVTeXN0ZW0gY29vcmRpbmF0ZVN5c3RlbSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBXZWJDb3JlOjpJbnRSZWN0LCBP
cHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBh
Z2VJRCk7CiAgICAgaWYgKCFwYWdlKSB7CkBAIC02MzYsNyArNjM3LDcgQEAgdm9pZCBXZWJBdXRv
bWF0aW9uU2Vzc2lvblByb3h5Ojpjb21wdXRlRWxlbWVudExheW91dChXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciBwYWcKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQsIHJlc3VsdEVs
ZW1lbnRCb3VuZHMsIHJlc3VsdEluVmlld0NlbnRlclBvaW50LCBpc09ic2N1cmVkKTsKIH0KIAot
dm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpzZWxlY3RPcHRpb25FbGVtZW50KFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVI
YW5kbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnNlbGVjdE9wdGlv
bkVsZW1lbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoT3B0aW9uYWw8U3RyaW5nPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUGFn
ZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBp
ZiAoIXBhZ2UpIHsKQEAgLTcwNCw3ICs3MDUsNyBAQCBzdGF0aWMgV2ViQ29yZTo6SW50UmVjdCBz
bmFwc2hvdFJlY3RGb3JTY3JlZW5zaG90KFdlYlBhZ2UmIHBhZ2UsIFdlYkNvcmU6OkVsZW1lbgog
ICAgIHJldHVybiB7IH07CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6dGFr
ZVNjcmVlbnNob3QoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFt
ZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBib29s
IGNsaXBUb1ZpZXdwb3J0LCB1aW50NjRfdCBjYWxsYmFja0lEKQordm9pZCBXZWJBdXRvbWF0aW9u
U2Vzc2lvblByb3h5Ojp0YWtlU2NyZWVuc2hvdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdl
SUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwg
Ym9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBib29sIGNsaXBUb1ZpZXdwb3J0LCB1aW50NjRf
dCBjYWxsYmFja0lEKQogewogICAgIFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGhhbmRsZTsKIApA
QCAtNzUyLDcgKzc1Myw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6dGFrZVNj
cmVlbnNob3QoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1CiAgICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6
V2ViQXV0b21hdGlvblNlc3Npb246OkRpZFRha2VTY3JlZW5zaG90KGNhbGxiYWNrSUQsIGhhbmRs
ZSwgeyB9KSwgMCk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Z2V0Q29v
a2llc0ZvckZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJh
bWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBWZWN0b3I8V2Vi
Q29yZTo6Q29va2llPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkF1dG9tYXRpb25T
ZXNzaW9uUHJveHk6OmdldENvb2tpZXNGb3JGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBw
YWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+KT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAgIGlmICghcGFnZSkgewpAQCAtNzc3LDcgKzc3OCw3
IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Z2V0Q29va2llc0ZvckZyYW1lKFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJCiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGOjpu
dWxsb3B0LCBmb3VuZENvb2tpZXMpOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHk6OmRlbGV0ZUNvb2tpZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90
IGZyYW1lSUQsIFN0cmluZyBjb29raWVOYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlv
bmFsPFN0cmluZz4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvblByb3h5OjpkZWxldGVDb29raWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIGNvb2tpZU5hbWUsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2Uo
cGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaApp
bmRleCAxMTY3NjQ1Mjc3ZGJjMTkzMGE1YTdhNTk3ZGNiYzJkZjNlY2Y1NWM5Li41ZTFiMGZjZmYw
ZmM4NTk4YjhjNzk3NzBhNjhiMTgxZTc4ZjYzOTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eS5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1
ZGUgIkNvb3JkaW5hdGVTeXN0ZW0uaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0Jhc2Uu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApA
QCAtNTEsNyArNTIsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpZENsZWFyV2luZG93T2JqZWN0
Rm9yRnJhbWUoV2ViRnJhbWUmKTsKIAotICAgIHZvaWQgZGlkRXZhbHVhdGVKYXZhU2NyaXB0RnVu
Y3Rpb24odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgU3RyaW5n
JiByZXN1bHQsIGNvbnN0IFN0cmluZyYgZXJyb3JUeXBlKTsKKyAgICB2b2lkIGRpZEV2YWx1YXRl
SmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgY2Fs
bGJhY2tJRCwgY29uc3QgU3RyaW5nJiByZXN1bHQsIGNvbnN0IFN0cmluZyYgZXJyb3JUeXBlKTsK
IAogcHJpdmF0ZToKICAgICBKU09iamVjdFJlZiBzY3JpcHRPYmplY3RGb3JGcmFtZShXZWJGcmFt
ZSYpOwpAQCAtNjEsMjIgKzYyLDIyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKIAogICAgIC8v
IENhbGxlZCBieSBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5IG1lc3NhZ2VzCi0gICAgdm9pZCBl
dmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0
X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBmdW5jdGlvbiwgVmVjdG9yPFN0cmluZz4gYXJndW1l
bnRzLCBib29sIGV4cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJndW1lbnQsIGludCBjYWxsYmFja1Rp
bWVvdXQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwotICAgIHZvaWQgcmVzb2x2ZUNoaWxkRnJhbWVX
aXRoT3JkaW5hbChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgdWlu
dDMyX3Qgb3JkaW5hbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCB1
aW50NjRfdCk+JiYpOwotICAgIHZvaWQgcmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhhbmRsZShX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBu
b2RlSGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2
NF90KT4mJik7Ci0gICAgdm9pZCByZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWludDY0X3QpPiYmKTsKLSAgICB2
b2lkIHJlc29sdmVQYXJlbnRGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3Qg
ZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCB1aW50NjRf
dCk+JiYpOwotICAgIHZvaWQgZm9jdXNGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWlu
dDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBjb21wdXRlRWxlbWVudExheW91dChXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wg
c2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgQ29vcmRpbmF0ZVN5c3RlbSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBXZWJDb3JlOjpJbnRSZWN0LCBPcHRpb25hbDxXZWJD
b3JlOjpJbnRQb2ludD4sIGJvb2wpPiYmKTsKLSAgICB2b2lkIHNlbGVjdE9wdGlvbkVsZW1lbnQo
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFu
ZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4pPiYmKTsKLSAgICB2
b2lkIHRha2VTY3JlZW5zaG90KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFt
ZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBib29s
IGNsaXBUb1ZpZXdwb3J0LCB1aW50NjRfdCBjYWxsYmFja0lEKTsKLSAgICB2b2lkIGdldENvb2tp
ZXNGb3JGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBWZWN0b3I8V2ViQ29yZTo6Q29v
a2llPik+JiYpOwotICAgIHZvaWQgZGVsZXRlQ29va2llKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
LCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgY29va2llTmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJik7CisgICAgdm9pZCBldmFsdWF0ZUphdmFTY3JpcHRG
dW5jdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIGZ1bmN0aW9uLCBWZWN0b3I8U3RyaW5nPiBhcmd1bWVudHMsIGJvb2wg
ZXhwZWN0c0ltcGxpY2l0Q2FsbGJhY2tBcmd1bWVudCwgaW50IGNhbGxiYWNrVGltZW91dCwgdWlu
dDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCByZXNvbHZlQ2hpbGRGcmFtZVdpdGhPcmRpbmFs
KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQz
Ml90IG9yZGluYWwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyKT4mJik7CisgICAgdm9pZCByZXNvbHZlQ2hpbGRGcmFtZVdp
dGhOb2RlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgbm9kZUhhbmRsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChP
cHRpb25hbDxTdHJpbmc+LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpPiYmKTsKKyAgICB2b2lk
IHJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik+JiYpOwor
ICAgIHZvaWQgcmVzb2x2ZVBhcmVudEZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3Ry
aW5nPiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKT4mJik7CisgICAgdm9pZCBmb2N1c0ZyYW1l
KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAg
IHZvaWQgY29tcHV0ZUVsZW1lbnRMYXlvdXQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1Zp
ZXdJZk5lZWRlZCwgQ29vcmRpbmF0ZVN5c3RlbSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRp
b25hbDxTdHJpbmc+LCBXZWJDb3JlOjpJbnRSZWN0LCBPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2lu
dD4sIGJvb2wpPiYmKTsKKyAgICB2b2lkIHNlbGVjdE9wdGlvbkVsZW1lbnQoV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgU3RyaW5nIG5vZGVIYW5kbGUs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+JiYpOworICAgIHZvaWQg
dGFrZVNjcmVlbnNob3QoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwg
Ym9vbCBjbGlwVG9WaWV3cG9ydCwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCBnZXRD
b29raWVzRm9yRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBWZWN0b3I8
V2ViQ29yZTo6Q29va2llPik+JiYpOworICAgIHZvaWQgZGVsZXRlQ29va2llKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFN0cmluZyBjb29raWVOYW1l
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4pPiYmKTsKIAogICAgIFN0
cmluZyBtX3Nlc3Npb25JZGVudGlmaWVyOwogCi0gICAgSGFzaE1hcDx1aW50NjRfdCwgSlNPYmpl
Y3RSZWY+IG1fd2ViRnJhbWVTY3JpcHRPYmplY3RNYXA7Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwg
VmVjdG9yPHVpbnQ2NF90Pj4gbV93ZWJGcmFtZVBlbmRpbmdFdmFsdWF0ZUphdmFTY3JpcHRDYWxs
YmFja3NNYXA7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEpTT2JqZWN0
UmVmPiBtX3dlYkZyYW1lU2NyaXB0T2JqZWN0TWFwOworICAgIEhhc2hNYXA8V2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBWZWN0b3I8dWludDY0X3Q+PiBtX3dlYkZyYW1lUGVuZGluZ0V2YWx1YXRl
SmF2YVNjcmlwdENhbGxiYWNrc01hcDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlv
blNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRv
bWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZDcyZjg5
ZDI2MzU5Y2YwMWNjZmQ1MzFlOTZlMDFmNDQ0MDlhYWY1OC4uZjI3NjQ5YjliNzMxMGJhNTkxM2Iw
ZDZmZmZlMTdmMjI0ZWM1ZjYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC0yMSwyMSArMjEsMjEgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogbWVz
c2FnZXMgLT4gV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eSB7Ci0gICAgRXZhbHVhdGVKYXZhU2Ny
aXB0RnVuY3Rpb24oV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFt
ZUlELCBTdHJpbmcgZnVuY3Rpb24sIFZlY3RvcjxTdHJpbmc+IGFyZ3VtZW50cywgYm9vbCBleHBl
Y3RzSW1wbGljaXRDYWxsYmFja0FyZ3VtZW50LCBpbnQgY2FsbGJhY2tUaW1lb3V0LCB1aW50NjRf
dCBjYWxsYmFja0lEKQorICAgIEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0
cmluZyBmdW5jdGlvbiwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRzLCBib29sIGV4cGVjdHNJbXBs
aWNpdENhbGxiYWNrQXJndW1lbnQsIGludCBjYWxsYmFja1RpbWVvdXQsIHVpbnQ2NF90IGNhbGxi
YWNrSUQpCiAKLSAgICBSZXNvbHZlQ2hpbGRGcmFtZVdpdGhPcmRpbmFsKFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgdWludDMyX3Qgb3JkaW5hbCkgLT4g
KE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCB1aW50NjRfdCBmcmFtZUlEKSBBc3luYwotICAg
IFJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
cGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSkgLT4gKE9wdGlvbmFs
PFN0cmluZz4gZXJyb3JUeXBlLCB1aW50NjRfdCBmcmFtZUlEKSBBc3luYwotICAgIFJlc29sdmVD
aGlsZEZyYW1lV2l0aE5hbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRf
dCBmcmFtZUlELCBTdHJpbmcgbmFtZSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCB1
aW50NjRfdCBmcmFtZUlEKSBBc3luYwotICAgIFJlc29sdmVQYXJlbnRGcmFtZShXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQpIC0+IChPcHRpb25hbDxTdHJp
bmc+IGVycm9yVHlwZSwgdWludDY0X3QgZnJhbWVJRCkgQXN5bmMKKyAgICBSZXNvbHZlQ2hpbGRG
cmFtZVdpdGhPcmRpbmFsKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQzMl90IG9yZGluYWwpIC0+IChPcHRpb25hbDxT
dHJpbmc+IGVycm9yVHlwZSwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIEFzeW5j
CisgICAgUmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhhbmRsZShXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgbm9k
ZUhhbmRsZSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCkgQXN5bmMKKyAgICBSZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFN0cmluZyBuYW1lKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSBBc3luYworICAgIFJlc29sdmVQYXJlbnRGcmFt
ZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlEKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlEKSBBc3luYwogCi0gICAgRm9jdXNGcmFtZShXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQpCisgICAgRm9jdXNGcmFtZShXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlEKQogCi0gICAgQ29tcHV0ZUVsZW1lbnRMYXlvdXQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
cGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJ
bnRvVmlld0lmTmVlZGVkLCBlbnVtOnVpbnQ4X3QgV2ViS2l0OjpDb29yZGluYXRlU3lzdGVtIGNv
b3JkaW5hdGVTeXN0ZW0pIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgV2ViQ29yZTo6
SW50UmVjdCByZWN0LCBPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4gaW5WaWV3Q2VudGVyUG9p
bnQsIGJvb2wgaXNPYnNjdXJlZCkgQXN5bmMKKyAgICBDb21wdXRlRWxlbWVudExheW91dChXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBlbnVt
OnVpbnQ4X3QgV2ViS2l0OjpDb29yZGluYXRlU3lzdGVtIGNvb3JkaW5hdGVTeXN0ZW0pIC0+IChP
cHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgV2ViQ29yZTo6SW50UmVjdCByZWN0LCBPcHRpb25h
bDxXZWJDb3JlOjpJbnRQb2ludD4gaW5WaWV3Q2VudGVyUG9pbnQsIGJvb2wgaXNPYnNjdXJlZCkg
QXN5bmMKIAotICAgIFNlbGVjdE9wdGlvbkVsZW1lbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
cGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSkgLT4gKE9wdGlvbmFs
PFN0cmluZz4gZXJyb3JUeXBlKSBBc3luYworICAgIFNlbGVjdE9wdGlvbkVsZW1lbnQoV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgU3RyaW5nIG5vZGVIYW5kbGUpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSkgQXN5
bmMKIAotICAgIFRha2VTY3JlZW5zaG90KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwg
dWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJ
Zk5lZWRlZCwgYm9vbCBjbGlwVG9WaWV3cG9ydCwgdWludDY0X3QgY2FsbGJhY2tJRCkKKyAgICBU
YWtlU2NyZWVuc2hvdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRv
Vmlld0lmTmVlZGVkLCBib29sIGNsaXBUb1ZpZXdwb3J0LCB1aW50NjRfdCBjYWxsYmFja0lEKQog
Ci0gICAgR2V0Q29va2llc0ZvckZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwg
dWludDY0X3QgZnJhbWVJRCkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBWZWN0b3I8
V2ViQ29yZTo6Q29va2llPiBjb29raWVzKSBBc3luYwotICAgIERlbGV0ZUNvb2tpZShXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBjb29raWVO
YW1lKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUpIEFzeW5jCisgICAgR2V0Q29va2ll
c0ZvckZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgVmVjdG9y
PFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykgQXN5bmMKKyAgICBEZWxldGVDb29raWUoV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgU3RyaW5nIGNvb2tpZU5hbWUpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSkgQXN5
bmMKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1l
Lm1tCmluZGV4IDA5OTc2MzcyZjA3Mzc1N2VlZGIxNzQ5M2Q3MzFmYTBhM2Q0NjY4YzYuLjI1NzNl
NmQ0ODU5ZTVlMGNmZTRhNjdmNWY0ZjNiYmE2YjMwZmU4NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1
Z0luRnJhbWUubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbQpAQCAtNDgsNyArNDgsNyBAQCBA
aW1wbGVtZW50YXRpb24gV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUgewogCiArIChpbnN0YW5jZXR5
cGUpbG9va1VwRnJhbWVGcm9tSGFuZGxlOihfV0tGcmFtZUhhbmRsZSAqKWhhbmRsZQogewotICAg
IHJldHVybiB3cmFwcGVyKFdlYktpdDo6V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUo
aGFuZGxlLl9mcmFtZUlEKSk7CisgICAgcmV0dXJuIHdyYXBwZXIoV2ViS2l0OjpXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS53ZWJGcmFtZShXZWJDb3JlOjpmcmFtZUlkZW50aWZpZXJGcm9tSUQoaGFu
ZGxlLl9mcmFtZUlEKSkpOwogfQogCiAtICh2b2lkKWRlYWxsb2MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAppbmRleCBl
MjFmNGExMzk1N2M0ZGU5ODdhZTQ3YjNlMjA2YjhiY2QxOWM4MDY2Li45M2NlOGQ2ODQxYzg5MWE3
YWM1YTIwNjMzZmUxY2I3OWE5ZDViNzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCkBAIC0xNTksNyArMTU5LDcg
QEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiBy
ZXNvdXJjZUxvYWRlciwgQ2FjaGVkUmVzb3UKIAogICAgIFdlYlJlc291cmNlTG9hZGVyOjpUcmFj
a2luZ1BhcmFtZXRlcnMgdHJhY2tpbmdQYXJhbWV0ZXJzOwogICAgIHRyYWNraW5nUGFyYW1ldGVy
cy5wYWdlSUQgPSBmcmFtZUxvYWRlckNsaWVudC5wYWdlSUQoKS52YWx1ZU9yKFBhZ2VJZGVudGlm
aWVyIHsgfSk7Ci0gICAgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQgPSBmcmFtZUxvYWRlckNs
aWVudC5mcmFtZUlEKCkudmFsdWVPcigwKTsKKyAgICB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJ
RCA9IGZyYW1lTG9hZGVyQ2xpZW50LmZyYW1lSUQoKS52YWx1ZU9yKEZyYW1lSWRlbnRpZmllciB7
IH0pOwogICAgIHRyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEID0gaWRlbnRpZmllcjsKICAg
ICBhdXRvIHNlc3Npb25JRCA9IGZyYW1lTG9hZGVyQ2xpZW50LnNlc3Npb25JRCgpOwogCkBAIC0x
NjgsNyArMTY4LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKFJlc291
cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlciwgQ2FjaGVkUmVzb3UKICAgICAvLyB0aGVuIHdlIHNo
b3VsZCByZW1lbWJlciB0aGUgUmVzb3VyY2VMb2FkZXIgaW4gb3VyIHJlY29yZHMgYnV0IG5vdCBz
Y2hlZHVsZSBpdCBpbiB0aGUgTmV0d29ya1Byb2Nlc3MuCiAgICAgaWYgKHJlc291cmNlTG9hZGVy
LmRvY3VtZW50TG9hZGVyKCktPnNjaGVkdWxlQXJjaGl2ZUxvYWQocmVzb3VyY2VMb2FkZXIsIHJl
c291cmNlTG9hZGVyLnJlcXVlc3QoKSkpIHsKICAgICAgICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5n
LCAiKFdlYlByb2Nlc3MpIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQsIHVybCAnJXMn
IHdpbGwgYmUgaGFuZGxlZCBhcyBhbiBhcmNoaXZlIHJlc291cmNlLiIsIHJlc291cmNlTG9hZGVy
LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBoYW5kbGVk
IGFzIGFuIGFyY2hpdmUgcmVzb3VyY2UgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNv
dXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCks
IHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBpZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwg
YmUgaGFuZGxlZCBhcyBhbiBhcmNoaXZlIHJlc291cmNlIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0
ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50
b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlm
aWVyKTsKICAgICAgICAgbV93ZWJSZXNvdXJjZUxvYWRlcnMuc2V0KGlkZW50aWZpZXIsIFdlYlJl
c291cmNlTG9hZGVyOjpjcmVhdGUocmVzb3VyY2VMb2FkZXIsIHRyYWNraW5nUGFyYW1ldGVycykp
OwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTc2LDE0ICsxNzYsMTQgQEAgdm9pZCBXZWJM
b2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRl
ciwgQ2FjaGVkUmVzb3UKIAogICAgIGlmIChyZXNvdXJjZUxvYWRlci5kb2N1bWVudExvYWRlcigp
LT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLm1heWJlTG9hZFJlc291cmNlKHJlc291cmNlTG9hZGVy
LCByZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCksIHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS51cmwo
KSkpIHsKICAgICAgICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5nLCAiKFdlYlByb2Nlc3MpIFdlYkxv
YWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQsIHVybCAnJXMnIHdpbGwgYmUgbG9hZGVkIGZyb20g
YXBwbGljYXRpb24gY2FjaGUuIiwgcmVzb3VyY2VMb2FkZXIudXJsKCkuc3RyaW5nKCkudXRmOCgp
LmRhdGEoKSk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIs
ICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGxvYWRlZCBmcm9tIGFwcGxpY2F0aW9uIGNhY2hl
IChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAi
LCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJh
Y2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJh
bWVJRCwgaWRlbnRpZmllcik7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3Vy
Y2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGxvYWRlZCBmcm9tIGFwcGxpY2F0
aW9uIGNhY2hlIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJh
bWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFt
ZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsKICAgICAgICAgbV93ZWJSZXNv
dXJjZUxvYWRlcnMuc2V0KGlkZW50aWZpZXIsIFdlYlJlc291cmNlTG9hZGVyOjpjcmVhdGUocmVz
b3VyY2VMb2FkZXIsIHRyYWNraW5nUGFyYW1ldGVycykpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCiAgICAgaWYgKHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS51cmwoKS5wcm90b2NvbElzRGF0
YSgpKSB7CiAgICAgICAgIExPRyhOZXR3b3JrU2NoZWR1bGluZywgIihXZWJQcm9jZXNzKSBXZWJM
b2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkLCB1cmwgJyVzJyB3aWxsIGJlIGxvYWRlZCBhcyBk
YXRhLiIsIHJlc291cmNlTG9hZGVyLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAg
ICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2Fk
OiBVUkwgd2lsbCBiZSBsb2FkZWQgYXMgZGF0YSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIs
IHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50
NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIGlkZW50aWZpZXIpOworICAgICAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwg
d2lsbCBiZSBsb2FkZWQgYXMgZGF0YSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIs
IGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291
cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwg
dHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmllcik7CiAgICAg
ICAgIHN0YXJ0TG9jYWxMb2FkKHJlc291cmNlTG9hZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KQEAgLTE5MSw3ICsxOTEsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxv
YWQoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTG9hZGVyLCBDYWNoZWRSZXNvdQogI2lmIFVTRShR
VUlDS19MT09LKQogICAgIGlmIChpc1F1aWNrTG9va1ByZXZpZXdVUkwocmVzb3VyY2VMb2FkZXIu
cmVxdWVzdCgpLnVybCgpKSkgewogICAgICAgICBMT0coTmV0d29ya1NjaGVkdWxpbmcsICIoV2Vi
UHJvY2VzcykgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZCwgdXJsICclcycgd2lsbCBi
ZSBoYW5kbGVkIGFzIGEgUXVpY2tMb29rIHJlc291cmNlLiIsIHJlc291cmNlTG9hZGVyLnVybCgp
LnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBoYW5kbGVkIGFzIGEg
UXVpY2tMb29rIHJlc291cmNlIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VM
b2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFj
a2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7CisgICAgICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGhh
bmRsZWQgYXMgYSBRdWlja0xvb2sgcmVzb3VyY2UgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiki
LCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUlu
dDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIGlkZW50aWZpZXIp
OwogICAgICAgICBzdGFydExvY2FsTG9hZChyZXNvdXJjZUxvYWRlcik7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CkBAIC0yMDIsNyArMjAyLDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2No
ZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlciwgQ2FjaGVkUmVzb3UKICAg
ICAvLyBodHRwczovL2Jsb2dzLmdub21lLm9yZy9hbGV4bC8yMDEyLzAxLzI2L3Jlc291cmNlcy1p
bi1nbGliLwogICAgIGlmIChyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkudXJsKCkucHJvdG9jb2xJ
cygicmVzb3VyY2UiKSkgewogICAgICAgICBMT0coTmV0d29ya1NjaGVkdWxpbmcsICIoV2ViUHJv
Y2VzcykgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZCwgdXJsICclcycgd2lsbCBiZSBo
YW5kbGVkIGFzIGEgR1Jlc291cmNlLiIsIHJlc291cmNlTG9hZGVyLnVybCgpLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOwotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9h
ZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBoYW5kbGVkIGFzIGEgR1Jlc291cmNlIChm
cmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBy
ZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tp
bmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJ
RCwgaWRlbnRpZmllcik7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VM
b2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGhhbmRsZWQgYXMgYSBHUmVzb3VyY2Ug
KGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFj
a2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFt
ZUlELnRvVUludDY0KCksIGlkZW50aWZpZXIpOwogICAgICAgICBzdGFydExvY2FsTG9hZChyZXNv
dXJjZUxvYWRlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yMTIsMTEgKzIxMiwxMSBA
QCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXImIHJl
c291cmNlTG9hZGVyLCBDYWNoZWRSZXNvdQogICAgIFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlcjo6
c2luZ2xldG9uKCkuaGFuZGxlRmV0Y2gocmVzb3VyY2VMb2FkZXIsIHNlc3Npb25JRCwgc2hvdWxk
Q2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgW3RoaXMsIHRyYWNraW5nUGFyYW1l
dGVycywgaWRlbnRpZmllciwgc2Vzc2lvbklELCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1Rv
SFRUUFJlZGlyZWN0LCBtYXhpbXVtQnVmZmVyaW5nVGltZSA9IG1heGltdW1CdWZmZXJpbmdUaW1l
KHJlc291cmNlKSwgcmVzb3VyY2VMb2FkZXIgPSBtYWtlUmVmKHJlc291cmNlTG9hZGVyKV0gKFNl
cnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6UmVzdWx0IHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAg
IGlmIChyZXN1bHQgIT0gU2VydmljZVdvcmtlckNsaWVudEZldGNoOjpSZXN1bHQ6OlVuaGFuZGxl
ZCkgewogICAgICAgICAgICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5nLCAiKFdlYlByb2Nlc3MpIFdl
YkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQsIHVybCAnJXMnIHdpbGwgYmUgc2NoZWR1bGVk
IHRocm91Z2ggU2VydmljZVdvcmtlciBoYW5kbGUgZmV0Y2ggYWxnb3JpdGhtIiwgcmVzb3VyY2VM
b2FkZXItPnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSk7Ci0gICAgICAgICAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLmdldCgpLCAic2NoZWR1bGVMb2FkOiBV
Ukwgd2lsbCBiZSBzY2hlZHVsZWQgdGhyb3VnaCBTZXJ2aWNlV29ya2VyIGhhbmRsZSBmZXRjaCBh
bGdvcml0aG0gKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci0+ZnJh
bWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFt
ZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKHJlc291cmNlTG9hZGVyLmdldCgpLCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBz
Y2hlZHVsZWQgdGhyb3VnaCBTZXJ2aWNlV29ya2VyIGhhbmRsZSBmZXRjaCBhbGdvcml0aG0gKGZy
YW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJl
c291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci0+ZnJhbWUoKSwgdHJhY2tp
bmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJ
RC50b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQogICAgICAgICBpZiAocmVzb3VyY2VMb2FkZXItPm9wdGlvbnMoKS5zZXJ2aWNlV29ya2Vyc01v
ZGUgPT0gU2VydmljZVdvcmtlcnNNb2RlOjpPbmx5KSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUl9JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLmdldCgpLCAic2NoZWR1bGVMb2FkOiB1
bmFibGUgdG8gc2NoZWR1bGUgVVJMIHRocm91Z2ggU2VydmljZVdvcmtlciBoYW5kbGUgZmV0Y2gg
YWxnb3JpdGhtIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXItPmZy
YW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJh
bWV0ZXJzLmZyYW1lSUQsIGlkZW50aWZpZXIpOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1JfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlci5nZXQoKSwgInNjaGVkdWxlTG9hZDogdW5hYmxl
IHRvIHNjaGVkdWxlIFVSTCB0aHJvdWdoIFNlcnZpY2VXb3JrZXIgaGFuZGxlIGZldGNoIGFsZ29y
aXRobSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLT5mcmFtZSgp
LCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVy
cy5mcmFtZUlELnRvVUludDY0KCksIGlkZW50aWZpZXIpOwogICAgICAgICAgICAgY2FsbE9uTWFp
blRocmVhZChbcmVzb3VyY2VMb2FkZXIgPSBXVEZNb3ZlKHJlc291cmNlTG9hZGVyKV0gewogICAg
ICAgICAgICAgICAgIGF1dG8gZXJyb3IgPSBpbnRlcm5hbEVycm9yKHJlc291cmNlTG9hZGVyLT5y
ZXF1ZXN0KCkudXJsKCkpOwogICAgICAgICAgICAgICAgIGVycm9yLnNldFR5cGUoUmVzb3VyY2VF
cnJvcjo6VHlwZTo6Q2FuY2VsbGF0aW9uKTsKQEAgLTIyOCwxMyArMjI4LDEzIEBAIHZvaWQgV2Vi
TG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMb2Fk
ZXIsIENhY2hlZFJlc291CiAgICAgICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2Vi
TG9hZGVyU3RyYXRlZ3koKS50cnlMb2FkaW5nVXNpbmdVUkxTY2hlbWVIYW5kbGVyKHJlc291cmNl
TG9hZGVyKSkKICAgICAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkxvYWRlclN0
cmF0ZWd5KCkuc2NoZWR1bGVMb2FkRnJvbU5ldHdvcmtQcm9jZXNzKHJlc291cmNlTG9hZGVyLmdl
dCgpLCByZXNvdXJjZUxvYWRlci0+cmVxdWVzdCgpLCB0cmFja2luZ1BhcmFtZXRlcnMsIHNlc3Np
b25JRCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgbWF4aW11bUJ1
ZmZlcmluZ1RpbWUpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKHJlc291cmNlTG9hZGVyLmdldCgpLCAic2NoZWR1bGVMb2FkOiBVUkwgbm90IGhhbmRs
ZWQgYnkgYW55IGhhbmRsZXJzIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VM
b2FkZXItPmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJh
Y2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIGlkZW50aWZpZXIpOworICAgICAgICAgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlci5nZXQoKSwgInNjaGVkdWxlTG9hZDogVVJM
IG5vdCBoYW5kbGVkIGJ5IGFueSBoYW5kbGVycyAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIs
IHJlc291cmNlTG9hZGVyLT5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUlu
dDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIGlkZW50aWZpZXIp
OwogICAgIH0pOwogI2Vsc2UKICAgICBpZiAoIXRyeUxvYWRpbmdVc2luZ1VSTFNjaGVtZUhhbmRs
ZXIocmVzb3VyY2VMb2FkZXIpKQogICAgICAgICBzY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nl
c3MocmVzb3VyY2VMb2FkZXIsIHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKSwgdHJhY2tpbmdQYXJh
bWV0ZXJzLCBzZXNzaW9uSUQsIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJl
Y3QsIG1heGltdW1CdWZmZXJpbmdUaW1lKHJlc291cmNlKSk7CiAgICAgZWxzZQotICAgICAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwg
bm90IGhhbmRsZWQgYnkgYW55IGhhbmRsZXJzIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwg
cmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2
NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7CisgICAgICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCBu
b3QgaGFuZGxlZCBieSBhbnkgaGFuZGxlcnMgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBy
ZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0
KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIGlkZW50aWZpZXIpOwog
I2VuZGlmCiB9CiAKQEAgLTMyNiw3ICszMjYsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpz
Y2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTAog
ICAgIGlmIChsb2FkUGFyYW1ldGVycy5vcHRpb25zLm1vZGUgIT0gRmV0Y2hPcHRpb25zOjpNb2Rl
OjpOYXZpZ2F0ZSkgewogICAgICAgICBBU1NFUlQobG9hZFBhcmFtZXRlcnMuc291cmNlT3JpZ2lu
KTsKICAgICAgICAgaWYgKCFsb2FkUGFyYW1ldGVycy5zb3VyY2VPcmlnaW4pIHsKLSAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVs
ZUxvYWQ6IG5vIHNvdXJjZU9yaWdpbiAoZnJhbWUgPSAlcCwgcHJpb3JpdHkgPSAlZCwgcGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBS
SXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHN0YXRpY19jYXN0PGludD4ocmVzb3Vy
Y2VMb2FkZXIucmVxdWVzdCgpLnByaW9yaXR5KCkpLCBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQu
dG9VSW50NjQoKSwgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRCwgbG9hZFBhcmFtZXRlcnMuaWRl
bnRpZmllcik7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHJlc291
cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBubyBzb3VyY2VPcmlnaW4gKGZyYW1lID0gJXAsIHBy
aW9yaXR5ID0gJWQsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCBzdGF0
aWNfY2FzdDxpbnQ+KHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS5wcmlvcml0eSgpKSwgbG9hZFBh
cmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQu
dG9VSW50NjQoKSwgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllcik7CiAgICAgICAgICAgICBzY2hl
ZHVsZUludGVybmFsbHlGYWlsZWRMb2FkKHJlc291cmNlTG9hZGVyKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQpAQCAtMzQ5LDkgKzM0OSw5IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRl
Z3k6OnNjaGVkdWxlTG9hZEZyb21OZXR3b3JrUHJvY2VzcyhSZXNvdXJjZUxvYWRlciYgcmVzb3Vy
Y2VMCiAKICAgICBBU1NFUlQoKGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRCAmJiBsb2FkUGFyYW1l
dGVycy53ZWJGcmFtZUlEKSB8fCBsb2FkUGFyYW1ldGVycy5jbGllbnRDcmVkZW50aWFsUG9saWN5
ID09IENsaWVudENyZWRlbnRpYWxQb2xpY3k6OkNhbm5vdEFza0NsaWVudEZvckNyZWRlbnRpYWxz
KTsKIAotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVs
ZUxvYWQ6IFJlc291cmNlIGlzIGJlaW5nIHNjaGVkdWxlZCB3aXRoIHRoZSBOZXR3b3JrUHJvY2Vz
cyAoZnJhbWUgPSAlcCwgcHJpb3JpdHkgPSAlZCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9h
ZGVyLmZyYW1lKCksIHN0YXRpY19jYXN0PGludD4ocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnBy
aW9yaXR5KCkpLCBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbG9hZFBhcmFt
ZXRlcnMud2ViRnJhbWVJRCwgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllcik7CisgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogUmVzb3VyY2Ug
aXMgYmVpbmcgc2NoZWR1bGVkIHdpdGggdGhlIE5ldHdvcmtQcm9jZXNzIChmcmFtZSA9ICVwLCBw
cmlvcml0eSA9ICVkLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAi
LCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgc3Rh
dGljX2Nhc3Q8aW50PihyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkucHJpb3JpdHkoKSksIGxvYWRQ
YXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlE
LnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIpOwogICAgIGlmICghV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVj
dGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpTY2hl
ZHVsZVJlc291cmNlTG9hZChsb2FkUGFyYW1ldGVycyksIDApKSB7Ci0gICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVuYWJs
ZSB0byBzY2hlZHVsZSByZXNvdXJjZSB3aXRoIHRoZSBOZXR3b3JrUHJvY2VzcyAoZnJhbWUgPSAl
cCwgcHJpb3JpdHkgPSAlZCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCks
IHN0YXRpY19jYXN0PGludD4ocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnByaW9yaXR5KCkpLCBs
b2FkUGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbG9hZFBhcmFtZXRlcnMud2ViRnJh
bWVJRCwgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllcik7CisgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVuYWJsZSB0byBz
Y2hlZHVsZSByZXNvdXJjZSB3aXRoIHRoZSBOZXR3b3JrUHJvY2VzcyAoZnJhbWUgPSAlcCwgcHJp
b3JpdHkgPSAlZCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwg
cmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHN0YXRp
Y19jYXN0PGludD4ocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnByaW9yaXR5KCkpLCBsb2FkUGFy
YW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRC50
b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyKTsKICAgICAgICAgLy8gV2UgcHJv
YmFibHkgZmFpbGVkIHRvIHNjaGVkdWxlIHRoaXMgbG9hZCB3aXRoIHRoZSBOZXR3b3JrUHJvY2Vz
cyBiZWNhdXNlIGl0IGhhZCBjcmFzaGVkLgogICAgICAgICAvLyBUaGlzIGxvYWQgd2lsbCBuZXZl
ciBzdWNjZWVkIHNvIHdlIHdpbGwgc2NoZWR1bGUgaXQgdG8gZmFpbCBhc3luY2hyb25vdXNseS4K
ICAgICAgICAgc2NoZWR1bGVJbnRlcm5hbGx5RmFpbGVkTG9hZChyZXNvdXJjZUxvYWRlcik7CkBA
IC01MjEsMTggKzUyMSwxOCBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VT
eW5jaHJvbm91c2x5KEZyYW1lTG9hZGVyJiBmcmFtZUxvYWRlciwgdW5zaQogICAgIFdlYlBhZ2Uq
IHdlYlBhZ2UgPSB3ZWJGcmFtZSA/IHdlYkZyYW1lLT5wYWdlKCkgOiBudWxscHRyOwogCiAgICAg
YXV0byBwYWdlSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+cGFnZUlEKCkgOiBQYWdlSWRlbnRpZmll
ciB7IH07Ci0gICAgYXV0byBmcmFtZUlEID0gd2ViRnJhbWUgPyB3ZWJGcmFtZS0+ZnJhbWVJRCgp
IDogMDsKKyAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZSA/IHdlYkZyYW1lLT5mcmFtZUlEKCkg
OiBGcmFtZUlkZW50aWZpZXIgeyB9OwogICAgIGF1dG8gc2Vzc2lvbklEID0gd2ViUGFnZSA/IHdl
YlBhZ2UtPnNlc3Npb25JRCgpIDogUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsK
IAogICAgIGF1dG8qIGRvY3VtZW50ID0gZnJhbWVMb2FkZXIuZnJhbWUoKS5kb2N1bWVudCgpOwog
ICAgIGlmICghZG9jdW1lbnQpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dF
RChzZXNzaW9uSUQsICJsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiBubyBkb2N1bWVudCAocGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICVs
dSkiLCBwYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCwgcmVzb3VyY2VMb2FkSWRlbnRpZmllcik7
CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoc2Vzc2lvbklELCAibG9hZFJl
c291cmNlU3luY2hyb25vdXNseTogbm8gZG9jdW1lbnQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlbHUpIiwgcGFnZUlELnRvVUludDY0
KCksIGZyYW1lSUQudG9VSW50NjQoKSwgcmVzb3VyY2VMb2FkSWRlbnRpZmllcik7CiAgICAgICAg
IGVycm9yID0gaW50ZXJuYWxFcnJvcihyZXF1ZXN0LnVybCgpKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAogICAgIGlmIChhdXRvIHN5bmNMb2FkUmVzdWx0ID0gdHJ5TG9hZGluZ1N5bmNocm9u
b3VzbHlVc2luZ1VSTFNjaGVtZUhhbmRsZXIoZnJhbWVMb2FkZXIsIHJlc291cmNlTG9hZElkZW50
aWZpZXIsIHJlcXVlc3QpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQo
c2Vzc2lvbklELCAibG9hZFJlc291cmNlU3luY2hyb25vdXNseTogZmFpbGVkIGNhbGxpbmcgdHJ5
TG9hZGluZ1N5bmNocm9ub3VzbHlVc2luZ1VSTFNjaGVtZUhhbmRsZXIgKHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlbHUsIGVycm9yID0g
JWQpIiwgcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQsIHJlc291cmNlTG9hZElkZW50aWZpZXIs
IHN5bmNMb2FkUmVzdWx0LT5lcnJvci5lcnJvckNvZGUoKSk7CisgICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SX0lGX0FMTE9XRUQoc2Vzc2lvbklELCAibG9hZFJlc291cmNlU3luY2hyb25vdXNseTog
ZmFpbGVkIGNhbGxpbmcgdHJ5TG9hZGluZ1N5bmNocm9ub3VzbHlVc2luZ1VSTFNjaGVtZUhhbmRs
ZXIgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNl
SUQgPSAlbHUsIGVycm9yID0gJWQpIiwgcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50
NjQoKSwgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgc3luY0xvYWRSZXN1bHQtPmVycm9yLmVycm9y
Q29kZSgpKTsKICAgICAgICAgZXJyb3IgPSBXVEZNb3ZlKHN5bmNMb2FkUmVzdWx0LT5lcnJvcik7
CiAgICAgICAgIHJlc3BvbnNlID0gV1RGTW92ZShzeW5jTG9hZFJlc3VsdC0+cmVzcG9uc2UpOwog
ICAgICAgICBkYXRhID0gV1RGTW92ZShzeW5jTG9hZFJlc3VsdC0+ZGF0YSk7CkBAIC01NzAsNyAr
NTcwLDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNs
eShGcmFtZUxvYWRlciYgZnJhbWVMb2FkZXIsIHVuc2kKICAgICAgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJv
Y2Vzc1Bvb2w6OlNldFdlYlByb2Nlc3NIYXNVcGxvYWRzIHsgUHJvY2Vzczo6aWRlbnRpZmllcigp
IH0sIDApOwogCiAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQZXJmb3JtU3luY2hyb25vdXNMb2FkKGxvYWRQYXJh
bWV0ZXJzKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQZXJmb3Jt
U3luY2hyb25vdXNMb2FkOjpSZXBseShlcnJvciwgcmVzcG9uc2UsIGRhdGEpLCAwKSkgewotICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHNlc3Npb25JRCwgImxvYWRSZXNvdXJj
ZVN5bmNocm9ub3VzbHk6IGZhaWxlZCBzZW5kaW5nIHN5bmNocm9ub3VzIG5ldHdvcmsgcHJvY2Vz
cyBtZXNzYWdlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBy
ZXNvdXJjZUlEID0gJWx1KSIsIHBhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELCByZXNvdXJjZUxv
YWRJZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChzZXNz
aW9uSUQsICJsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiBmYWlsZWQgc2VuZGluZyBzeW5jaHJv
bm91cyBuZXR3b3JrIHByb2Nlc3MgbWVzc2FnZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICVsdSkiLCBwYWdlSUQudG9VSW50NjQoKSwg
ZnJhbWVJRC50b1VJbnQ2NCgpLCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKTsKICAgICAgICAgaWYg
KGF1dG8qIHBhZ2UgPSB3ZWJQYWdlID8gd2ViUGFnZS0+Y29yZVBhZ2UoKSA6IG51bGxwdHIpCiAg
ICAgICAgICAgICBwYWdlLT5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNN
ZXNzYWdlKFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6aW50ZXJuYWxFcnJvcktleSgp
LCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnN5bmNocm9ub3VzTWVzc2FnZUZhaWxl
ZEtleSgpLCBXZWJDb3JlOjpTaG91bGRTYW1wbGU6Ok5vKTsKICAgICAgICAgcmVzcG9uc2UgPSBS
ZXNvdXJjZVJlc3BvbnNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggODhiZDUzYmYxZjhmYjczNmViMTcz
ZWY2NGYxZTMwM2QxYmIxMDBjMS4uZmE1MzkyNWViNjhmMDQyZmVjNzliZjM4ODYwYjI3NjAzMjVm
YjUxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVz
b3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YlJlc291cmNlTG9hZGVyLmNwcApAQCAtODgsMTYgKzg4LDE2IEBAIHZvaWQgV2ViUmVzb3VyY2VM
b2FkZXI6OndpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiBwcm9wb3NlZFJlcXVlc3Qs
IFJlc291CiAgICAgUmVmPFdlYlJlc291cmNlTG9hZGVyPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsK
IAogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9hZGVyOjp3aWxs
U2VuZFJlcXVlc3QgdG8gJyVzJyIsIHByb3Bvc2VkUmVxdWVzdC51cmwoKS5zdHJpbmcoKS5sYXRp
bjEoKS5kYXRhKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIndpbGxTZW5kUmVxdWVz
dDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNl
SUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQo
KSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVz
b3VyY2VJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgid2lsbFNlbmRSZXF1ZXN0OiAo
cGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9
ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBt
X3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0
ZXJzLnJlc291cmNlSUQpOwogCiAgICAgaWYgKG1fY29yZUxvYWRlci0+ZG9jdW1lbnRMb2FkZXIo
KS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS5tYXliZUxvYWRGYWxsYmFja0ZvclJlZGlyZWN0KG1f
Y29yZUxvYWRlci5nZXQoKSwgcHJvcG9zZWRSZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKSkgewot
ICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3aWxsU2VuZFJlcXVlc3Q6IGV4aXRpbmcg
ZWFybHkgYmVjYXVzZSBtYXliZUxvYWRGYWxsYmFja0ZvclJlZGlyZWN0IHJldHVybmVkIGZhbHNl
IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlE
ID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCks
IG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291
cmNlSUQpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3aWxsU2VuZFJlcXVlc3Q6
IGV4aXRpbmcgZWFybHkgYmVjYXVzZSBtYXliZUxvYWRGYWxsYmFja0ZvclJlZGlyZWN0IHJldHVy
bmVkIGZhbHNlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBy
ZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRv
VUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFj
a2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAg
ICBtX2NvcmVMb2FkZXItPndpbGxTZW5kUmVxdWVzdChXVEZNb3ZlKHByb3Bvc2VkUmVxdWVzdCks
IHJlZGlyZWN0UmVzcG9uc2UsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0
ZWRUaGlzKV0oUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkgewogICAgICAgICBpZiAoIW1fY29y
ZUxvYWRlciB8fCAhbV9jb3JlTG9hZGVyLT5pZGVudGlmaWVyKCkpIHsKLSAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoIndpbGxTZW5kUmVxdWVzdDogZXhpdGluZyBlYXJseSBiZWNh
dXNlIG5vIGNvcmVsb2FkZXIgb3IgaWRlbnRpZmllciAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZy
YW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tp
bmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFt
ZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKKyAgICAgICAgICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoIndpbGxTZW5kUmVxdWVzdDogZXhpdGluZyBlYXJseSBiZWNhdXNl
IG5vIGNvcmVsb2FkZXIgb3IgaWRlbnRpZmllciAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQ
YXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlE
LnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTExMywxMiArMTEzLDEyIEBAIHZvaWQgV2ViUmVz
b3VyY2VMb2FkZXI6OmRpZFNlbmREYXRhKHVpbnQ2NF90IGJ5dGVzU2VudCwgdWludDY0X3QgdG90
YWxCeXRlc1RvQmVTCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2Uo
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGJvb2wgbmVlZHNDb250aW51ZURpZFJl
Y2VpdmVSZXNwb25zZU1lc3NhZ2UpCiB7CiAgICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2Vzcykg
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZSBmb3IgJyVzJy4gU3RhdHVzICVk
LiIsIG1fY29yZUxvYWRlci0+dXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpLCByZXNwb25z
ZS5odHRwU3RhdHVzQ29kZSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNl
aXZlUmVzcG9uc2U6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAi
LCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIHN0YXR1cyA9ICVkKSIsIG1fdHJhY2tpbmdQYXJh
bWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBt
X3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlELCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgp
KTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6IChwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIg
UFJJdTY0ICIsIHN0YXR1cyA9ICVkKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJ
bnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tp
bmdQYXJhbWV0ZXJzLnJlc291cmNlSUQsIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkpOwogCiAg
ICAgUmVmPFdlYlJlc291cmNlTG9hZGVyPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKIAogICAgIGlm
IChtX2NvcmVMb2FkZXItPmRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCku
bWF5YmVMb2FkRmFsbGJhY2tGb3JSZXNwb25zZShtX2NvcmVMb2FkZXIuZ2V0KCksIHJlc3BvbnNl
KSkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6
IG5vdCBjb250aW51aW5nIGxvYWQgYmVjYXVzZSB0aGUgY29udGVudCBpcyBhbHJlYWR5IGNhY2hl
ZCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJ
RCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgp
LCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNv
dXJjZUlEKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3Bv
bnNlOiBub3QgY29udGludWluZyBsb2FkIGJlY2F1c2UgdGhlIGNvbnRlbnQgaXMgYWxyZWFkeSBj
YWNoZWQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50
NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5n
UGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTM1
LDcgKzEzNSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgYm9vCiAgICAgICAgICAgICBpZiAobV9j
b3JlTG9hZGVyICYmIG1fY29yZUxvYWRlci0+aWRlbnRpZmllcigpKQogICAgICAgICAgICAgICAg
IHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Q29udGludWVEaWRSZWNlaXZl
UmVzcG9uc2UoKSk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiBub3QgY29udGludWluZyBsb2FkIGJl
Y2F1c2Ugbm8gY29yZUxvYWRlciBvciBubyBJRCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQ
YXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlE
LCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKKyAgICAgICAgICAgICAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6IG5vdCBjb250aW51aW5nIGxv
YWQgYmVjYXVzZSBubyBjb3JlTG9hZGVyIG9yIG5vIElEIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFj
a2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZy
YW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CiAgICAg
ICAgIH07CiAgICAgfQogCkBAIC0xNDgsNyArMTQ4LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRl
cjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBpbnQ2NF90
IGUKICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFtX2lzUHJvY2Vzc2luZ05ldHdvcmtSZXNwb25z
ZSwgIk5ldHdvcmsgcHJvY2VzcyBzaG91bGQgbm90IHNlbmQgZGF0YSB1bnRpbCB3ZSd2ZSB2YWxp
ZGF0ZWQgdGhlIHJlc3BvbnNlIik7CiAKICAgICBpZiAoIW1fbnVtQnl0ZXNSZWNlaXZlZCkgewot
ICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlRGF0YTogU3RhcnRlZCBy
ZWNlaXZpbmcgZGF0YSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQg
IiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJ
RC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFy
YW1ldGVycy5yZXNvdXJjZUlEKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlk
UmVjZWl2ZURhdGE6IFN0YXJ0ZWQgcmVjZWl2aW5nIGRhdGEgKHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3Ry
YWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMu
ZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKICAg
ICB9CiAgICAgbV9udW1CeXRlc1JlY2VpdmVkICs9IGRhdGEuc2l6ZSgpOwogCkBAIC0xNTgsNyAr
MTU4LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgSVBD
OjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBpbnQ2NF90IGUKIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6
OmRpZEZpbmlzaFJlc291cmNlTG9hZChjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtM
b2FkTWV0cmljcykKIHsKICAgICBMT0coTmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJj
ZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkIGZvciAnJXMnIiwgbV9jb3JlTG9hZGVyLT51
cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoImRpZEZpbmlzaFJlc291cmNlTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgbGVuZ3RoID0gJXpkKSIs
IG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1l
dGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlELCBtX251bUJ5dGVz
UmVjZWl2ZWQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZpbmlzaFJlc291cmNl
TG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIiwgbGVuZ3RoID0gJXpkKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJz
LnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0
KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQsIG1fbnVtQnl0ZXNSZWNlaXZlZCk7
CiAKICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFtX2lzUHJvY2Vzc2luZ05ldHdvcmtSZXNwb25z
ZSwgIkxvYWQgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIGZpbmlzaCBiZWZvcmUgd2UndmUgdmFsaWRh
dGVkIHRoZSByZXNwb25zZSIpOwogICAgIG1fY29yZUxvYWRlci0+ZGlkRmluaXNoTG9hZGluZyhu
ZXR3b3JrTG9hZE1ldHJpY3MpOwpAQCAtMTY3LDcgKzE2Nyw3IEBAIHZvaWQgV2ViUmVzb3VyY2VM
b2FkZXI6OmRpZEZpbmlzaFJlc291cmNlTG9hZChjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3MmIG5l
dHdvcmtMCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRGYWlsUmVzb3VyY2VMb2FkKGNvbnN0
IFJlc291cmNlRXJyb3ImIGVycm9yKQogewogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3Mp
IFdlYlJlc291cmNlTG9hZGVyOjpkaWRGYWlsUmVzb3VyY2VMb2FkIGZvciAnJXMnIiwgbV9jb3Jl
TG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwotICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoImRpZEZhaWxSZXNvdXJjZUxvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFj
a2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZy
YW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOworICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoImRpZEZhaWxSZXNvdXJjZUxvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFj
a2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZy
YW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CiAKICAg
ICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFtX2lzUHJvY2Vzc2luZ05ldHdvcmtSZXNwb25zZSwgIkxv
YWQgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIGZpbmlzaCBiZWZvcmUgd2UndmUgdmFsaWRhdGVkIHRo
ZSByZXNwb25zZSIpOwogCkBAIC0xNzksNyArMTc5LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRl
cjo6ZGlkRmFpbFJlc291cmNlTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHZvaWQg
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZEJsb2NrQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKQogewog
ICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9hZGVyOjpkaWRCbG9j
a0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGZvciAnJXMnIiwgbV9jb3JlTG9hZGVyLT51cmwoKS5z
dHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRp
ZEJsb2NrQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2lu
Z1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1l
SUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOworICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoImRpZEJsb2NrQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6IChwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIp
IiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJh
bWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJ
RCk7CiAKICAgICBtX2NvcmVMb2FkZXItPmRpZEJsb2NrQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uo
KTsKIH0KQEAgLTE4Nyw3ICsxODcsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRCbG9j
a0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCkKIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OnN0b3BM
b2FkaW5nQWZ0ZXJYRnJhbWVPcHRpb25zT3JDb250ZW50U2VjdXJpdHlQb2xpY3lEZW5pZWQoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgTE9HKE5ldHdvcmssICIoV2Vi
UHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OnN0b3BMb2FkaW5nQWZ0ZXJYRnJhbWVPcHRpb25z
T3JDb250ZW50U2VjdXJpdHlQb2xpY3lEZW5pZWQgZm9yICclcyciLCBtX2NvcmVMb2FkZXItPnVy
bCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RCgic3RvcExvYWRpbmdBZnRlclhGcmFtZU9wdGlvbnNPckNvbnRlbnRTZWN1cml0eVBvbGljeURl
bmllZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50
NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMu
cmVzb3VyY2VJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RvcExvYWRpbmdBZnRl
clhGcmFtZU9wdGlvbnNPckNvbnRlbnRTZWN1cml0eVBvbGljeURlbmllZDogKHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQg
IikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1Bh
cmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJj
ZUlEKTsKIAogICAgIG1fY29yZUxvYWRlci0+ZG9jdW1lbnRMb2FkZXIoKS0+c3RvcExvYWRpbmdB
ZnRlclhGcmFtZU9wdGlvbnNPckNvbnRlbnRTZWN1cml0eVBvbGljeURlbmllZChtX2NvcmVMb2Fk
ZXItPmlkZW50aWZpZXIoKSwgcmVzcG9uc2UpOwogfQpAQCAtMTk2LDEzICsxOTYsMTMgQEAgdm9p
ZCBXZWJSZXNvdXJjZUxvYWRlcjo6c3RvcExvYWRpbmdBZnRlclhGcmFtZU9wdGlvbnNPckNvbnRl
bnRTZWN1cml0eVBvbGljeURlbmkKIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVS
ZXNvdXJjZShjb25zdCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlJiBoYW5kbGUpCiB7CiAgICAg
TE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVS
ZXNvdXJjZSBmb3IgJyVzJyIsIG1fY29yZUxvYWRlci0+dXJsKCkuc3RyaW5nKCkubGF0aW4xKCku
ZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzb3VyY2U6
IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlE
ID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCks
IG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291
cmNlSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNvdXJjZTog
KHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQg
PSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwg
bV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1l
dGVycy5yZXNvdXJjZUlEKTsKIAogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IGhh
bmRsZS50cnlXcmFwSW5TaGFyZWRCdWZmZXIoKTsKIAogICAgIGlmICghYnVmZmVyKSB7CiAgICAg
ICAgIExPR19FUlJPUigiVW5hYmxlIHRvIGNyZWF0ZSBidWZmZXIgZnJvbSBTaGFyZWFibGVSZXNv
dXJjZSBzZW50IGZyb20gdGhlIG5ldHdvcmsgcHJvY2Vzcy4iKTsKLSAgICAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc291cmNlOiBVbmFibGUgdG8gY3JlYXRlIFNoYXJl
ZEJ1ZmZlciAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJ
bnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVy
cy5yZXNvdXJjZUlEKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2
ZVJlc291cmNlOiBVbmFibGUgdG8gY3JlYXRlIFNoYXJlZEJ1ZmZlciAocGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIs
IG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1l
dGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQp
OwogICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBtX2NvcmVMb2FkZXItPmZyYW1lKCkpIHsKICAg
ICAgICAgICAgIGlmIChhdXRvKiBwYWdlID0gZnJhbWUtPnBhZ2UoKSkKICAgICAgICAgICAgICAg
ICBwYWdlLT5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlKFdl
YkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6aW50ZXJuYWxFcnJvcktleSgpLCBXZWJDb3Jl
OjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmNyZWF0ZVNoYXJlZEJ1ZmZlckZhaWxlZEtleSgpLCBX
ZWJDb3JlOjpTaG91bGRTYW1wbGU6Ok5vKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oCmluZGV4IDU4NjU0MzcxOGU1ZTgzODhi
OGI0MWFiMDIwMzdhYzc2ZTc4NjkzN2MuLjljMTE0N2RhMDUxNTNkZDdhYzQ0YWYzMTU4MWUyMjFi
NjliZTkyNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YlJlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViUmVzb3VyY2VMb2FkZXIuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkNvbm5lY3Rp
b24uaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlUmVz
b3VyY2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTUyLDcgKzUzLDcgQEAgY2xhc3MgV2ViUmVzb3Vy
Y2VMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJSZXNvdXJjZUxvYWRlcj4sIHB1YmxpYyBJ
UEM6Ok1lc3MKIHB1YmxpYzoKICAgICBzdHJ1Y3QgVHJhY2tpbmdQYXJhbWV0ZXJzIHsKICAgICAg
ICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEOwotICAgICAgICB1aW50NjRfdCBmcmFt
ZUlEIHsgMCB9OworICAgICAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRDsKICAg
ICAgICAgUmVzb3VyY2VMb2FkSWRlbnRpZmllciByZXNvdXJjZUlEIHsgMCB9OwogICAgIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAppbmRleCBhZGM0NzY2NTJlODA3YjIz
NmFjYzExNjU0YTVmYzE3MTU3MzVjOTE1Li4wNzFjODIxNTM1MTU2NDZmMDk5OTg2ODljMjFjMDdi
MzQ1MTI4YjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBAIC03Myw3
ICs3Myw3IEBAIHN0YXRpYyBjb25zdCBTZWNvbmRzIHN5bmNXb3JrZXJUZXJtaW5hdGlvblRpbWVv
dXQgeyAxMDBfbXMgfTsgLy8gT25seSB1c2VkIGJ5IGxhCiAKIGNsYXNzIFNlcnZpY2VXb3JrZXJG
cmFtZUxvYWRlckNsaWVudCBmaW5hbCA6IHB1YmxpYyBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50IHsK
IHB1YmxpYzoKLSAgICBTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQoV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBT
dHJpbmcmIHVzZXJBZ2VudCkKKyAgICBTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQoV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpCiAgICAgICAgIDogbV9jb25uZWN0aW9u
KGNvbm5lY3Rpb24pCiAgICAgICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogICAgICAgICAs
IG1fcGFnZUlEKHBhZ2VJRCkKQEAgLTk2LDEzICs5NiwxMyBAQCBwcml2YXRlOgogCiAgICAgUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zZXNzaW9uSUQ7
IH0KICAgICBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlEKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9wYWdlSUQ7IH0KLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZnJhbWVJRDsgfQorICAgIE9wdGlvbmFsPFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZnJh
bWVJRDsgfQogICAgIFN0cmluZyB1c2VyQWdlbnQoY29uc3QgVVJMJikgZmluYWwgeyByZXR1cm4g
bV91c2VyQWdlbnQ7IH0KIAogICAgIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uJiBtX2Nv
bm5lY3Rpb247CiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7Ci0gICAgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgbV9wYWdlSUQ7Ci0gICAgdWludDY0X3QgbV9mcmFtZUlEIHsgMCB9Owor
ICAgIFBhZ2VJZGVudGlmaWVyIG1fcGFnZUlEOworICAgIEZyYW1lSWRlbnRpZmllciBtX2ZyYW1l
SUQ7CiAgICAgU3RyaW5nIG1fdXNlckFnZW50OwogfTsKIApAQCAtMTUyLDcgKzE1Miw4IEBAIHZv
aWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omluc3RhbGxTZXJ2aWNlV29ya2VyKGNv
bnN0IFNlcnZpY2VXb3JrZXJDb250CiAKICAgICAvLyBGSVhNRTogVGhpcyBtZXRob2Qgc2hvdWxk
IGJlIG1vdmVkIGRpcmVjdGx5IHRvIFdlYkNvcmU6OlNXQ29udGV4dE1hbmFnZXI6OkNvbm5lY3Rp
b24KICAgICAvLyBJZiBpdCB3ZXJlbid0IGZvciBTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGll
bnQncyBkZXBlbmRlbmNlIG9uIFdlYkRvY3VtZW50TG9hZGVyLCB0aGlzIGNvdWxkIGFscmVhZHkg
aGFwcGVuLgotICAgIGF1dG8gZnJhbWVMb2FkZXJDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFNl
cnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudD4oKnRoaXMsIHNlc3Npb25JRCwgbV9wYWdlSUQs
ICsrbV9wcmV2aW91c1NlcnZpY2VXb3JrZXJJRCwgZWZmZWN0aXZlVXNlckFnZW50KTsKKyAgICAv
LyBGSVhNRTogV2VpcmQgdG8gcGFzcyBtX3ByZXZpb3VzU2VydmljZVdvcmtlcklEIGFzIGEgRnJh
bWVJZGVudGlmaWVyLgorICAgIGF1dG8gZnJhbWVMb2FkZXJDbGllbnQgPSBzdGQ6Om1ha2VfdW5p
cXVlPFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudD4oKnRoaXMsIHNlc3Npb25JRCwgbV9w
YWdlSUQsIGZyYW1lSWRlbnRpZmllckZyb21JRCgrK21fcHJldmlvdXNTZXJ2aWNlV29ya2VySUQp
LCBlZmZlY3RpdmVVc2VyQWdlbnQpOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLmxvYWRlckNsaWVu
dEZvck1haW5GcmFtZSA9IGZyYW1lTG9hZGVyQ2xpZW50LmdldCgpOwogICAgIG1fbG9hZGVycy5h
ZGQoV1RGTW92ZShmcmFtZUxvYWRlckNsaWVudCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmlu
ZGV4IGE2NTY2ZDIwNmI4YmI3MmZlMzk4YzQzYzkxZmMyYzZkZjE4OThmNWIuLmYyZTVjMWFhOWQ5
YzU2OWYyNzQwZjQzYjRjNGI5MDA3M2VhZTE4N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBA
IC0yNjMsNyArMjYzLDggQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmZvY3VzZWRGcmFtZUNoYW5n
ZWQoRnJhbWUqIGZyYW1lKQogewogICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IGZyYW1lID8gV2Vi
RnJhbWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lKSA6IG51bGxwdHI7CiAKLSAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkZvY3VzZWRGcmFtZUNoYW5nZWQod2ViRnJhbWUgPyB3ZWJGcmFtZS0+ZnJh
bWVJRCgpIDogMCksIG1fcGFnZS5wYWdlSUQoKSk7CisgICAgLy8gRklYTUU6IEZvY3VzZWRGcmFt
ZUNoYW5nZWQgc2hvdWxkIHRha2UgYW4gT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPi4KKyAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkZvY3VzZWRGcmFtZUNoYW5nZWQod2ViRnJhbWUgPyB3ZWJG
cmFtZS0+ZnJhbWVJRCgpIDogRnJhbWVJZGVudGlmaWVyIHsgfSksIG1fcGFnZS5wYWdlSUQoKSk7
CiB9CiAKIFBhZ2UqIFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlV2luZG93KEZyYW1lJiBmcmFtZSwg
Y29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2luZG93RmVhdHVyZXMmIHdp
bmRvd0ZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBuYXZpZ2F0aW9uQWN0aW9uKQpA
QCAtNjExLDcgKzYxMiw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFu
Z2VkKEZyYW1lJiBmcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uCiAgICAgICAgIFdlYkZy
YW1lKiBsYXJnZXN0RnJhbWUgPSBmaW5kTGFyZ2VzdEZyYW1lSW5GcmFtZVNldChtX3BhZ2UpOwog
ICAgICAgICBpZiAobGFyZ2VzdEZyYW1lICE9IG1fY2FjaGVkRnJhbWVTZXRMYXJnZXN0RnJhbWUu
Z2V0KCkpIHsKICAgICAgICAgICAgIG1fY2FjaGVkRnJhbWVTZXRMYXJnZXN0RnJhbWUgPSBsYXJn
ZXN0RnJhbWU7Ci0gICAgICAgICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpGcmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQobGFyZ2VzdEZyYW1lID8gbGFyZ2VzdEZyYW1l
LT5mcmFtZUlEKCkgOiAwKSk7CisgICAgICAgICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpGcmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQobGFyZ2VzdEZyYW1lID8gbGFy
Z2VzdEZyYW1lLT5mcmFtZUlEKCkgOiBGcmFtZUlkZW50aWZpZXIgeyB9KSk7CiAgICAgICAgIH0K
ICAgICB9CiAKQEAgLTEzMTMsMTIgKzEzMTQsMTIgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRp
ZEludmFsaWRhdGVEb2N1bWVudE1hcmtlclJlY3RzKCkKIH0KIAogI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCi12b2lkIFdlYkNocm9tZUNsaWVudDo6aGFzU3RvcmFnZUFjY2Vz
cyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdpc3RyYWJsZURvbWFpbiYm
IHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpoYXNTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVE
b21haW4sIFJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3BhZ2UuaGFzU3RvcmFnZUFjY2VzcyhXVEZN
b3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0b3BGcmFtZURvbWFpbiksIGZyYW1lSUQsIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJl
cXVlc3RTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFJl
Z2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJ
ZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVk
LCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWlu
JiYgc3ViRnJhbWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3du
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3BhZ2UucmVxdWVzdFN0b3JhZ2VBY2Nl
c3MoV1RGTW92ZShzdWJGcmFtZURvbWFpbiksIFdURk1vdmUodG9wRnJhbWVEb21haW4pLCBmcmFt
ZUlELCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5k
ZXggZmEyNDY1NzFkNjhjNDlhZjkzMDY3Nzk1ZWYzZmUwZWY2NDFhNmE4Yi4uNjNkYzhmMDhhODYw
ZGQ1NWY4ZTdiNTdlMmVlODk4MzY4NmZkNDQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMzY4
LDggKzM2OCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRJbnZhbGlkYXRlRG9jdW1lbnRNYXJr
ZXJSZWN0cygpIGZpbmFsOwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
LSAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBz
dWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFp
biwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdURjo6Q29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7Ci0gICAgdm9pZCByZXF1ZXN0U3RvcmFn
ZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlE
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJv
bXB0V2FzU2hvd24pPiYmKSBmaW5hbDsKKyAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KSBmaW5hbDsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYg
dG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNj
ZXNzV2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJikg
ZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA4YTQ0NDRlZjNkNTU5OTMyNWM0MTFiOTZlZDdl
NDNhZTBkZGVmNDc1Li4yZTllZjRiMjlkZjhmNzMxYTM1YWJmNmIzOWE3YzM0NDYzMmQyMTE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTEyMCw3ICsxMjAsNyBAQCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnBhZ2VJRCgpIGNvbnN0
CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KIAotT3B0aW9uYWw8dWludDY0X3Q+IFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlEKCkgY29uc3QKK09wdGlvbmFsPEZyYW1lSWRlbnRpZmll
cj4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZyYW1lSUQoKSBjb25zdAogewogICAgIGlmIChtX2Zy
YW1lKQogICAgICAgICByZXR1cm4gbV9mcmFtZS0+ZnJhbWVJRCgpOwpAQCAtNTQ2LDcgKzU0Niw3
IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFs
TG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlCiAgICAgaWYgKCF3ZWJQYWdlKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBXZWJGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIikiLCB0aGlzLCB3ZWJQYWdlLT5wYWdlSUQoKS50b1VJ
bnQ2NCgpLCBtX2ZyYW1lLT5mcmFtZUlEKCkpOworICAgIFJFTEVBU0VfTE9HKE5ldHdvcmssICIl
cCAtIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQ6
IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiKSIsIHRoaXMsIHdl
YlBhZ2UtPnBhZ2VJRCgpLnRvVUludDY0KCksIG1fZnJhbWUtPmZyYW1lSUQoKS50b1VJbnQ2NCgp
KTsKIAogICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4gdXNlckRhdGE7CiAKQEAgLTU4Miw3ICs1ODIs
NyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkKGNvbnN0
IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAgIGlmICghd2ViUGFnZSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgUkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0gV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoRGlkRmFpbExvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCAiKSIsIHRoaXMsIHdlYlBhZ2UtPnBhZ2VJRCgpLnRvVUludDY0KCksIG1fZnJhbWUt
PmZyYW1lSUQoKSk7CisgICAgUkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0gV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiKSIsIHRoaXMsIHdlYlBhZ2UtPnBhZ2VJRCgpLnRvVUludDY0KCks
IG1fZnJhbWUtPmZyYW1lSUQoKS50b1VJbnQ2NCgpKTsKIAogICAgIFJlZlB0cjxBUEk6Ok9iamVj
dD4gdXNlckRhdGE7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggYzhmYjJhZjIx
MjU2NmM2NDY4NjA3N2EwYzg5YWY4MTA1MzkwYTY4MC4uNjQxYjhjMDY2MzQxMzgwYzA3MDI4MjBi
ODc4OWRkMTg1ZThiYjA0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTUyLDcg
KzUyLDcgQEAgcHVibGljOgogICAgIHZvaWQgYXBwbHlUb0RvY3VtZW50TG9hZGVyKFdlYnNpdGVQ
b2xpY2llc0RhdGEmJik7CiAKICAgICBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4g
cGFnZUlEKCkgY29uc3QgZmluYWw7Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQoKSBj
b25zdCBmaW5hbDsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1l
SUQoKSBjb25zdCBmaW5hbDsKICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCBm
aW5hbDsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmNwcAppbmRleCA3Mzhi
ZTkyYjkyZGM3M2QyZGY2NzdlZTM0ZWMxMzA4MWE2MGYxYTFjLi5mNmM1NTdkNWYwZmQyMDFkYmI1
MDUxMTQ3ZWJjMjcwYTViNDVjZjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJDb29raWVKYXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkNvb2tpZUphci5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgV2ViQ29va2llSmFy
OjpXZWJDb29raWVKYXIoKQogCiBTdHJpbmcgV2ViQ29va2llSmFyOjpjb29raWVzKFdlYkNvcmU6
OkRvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwpIGNvbnN0CiB7Ci0gICAgT3B0aW9u
YWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFt
ZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7CiAgICAgaWYgKGF1dG8q
IGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkgewogICAgICAgICBmcmFtZUlEID0gZnJhbWUtPmxv
YWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKTsKQEAgLTY3LDcgKzY3LDcgQEAgU3RyaW5nIFdlYkNv
b2tpZUphcjo6Y29va2llcyhXZWJDb3JlOjpEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYg
dXJsKSBjb25zdAogCiB2b2lkIFdlYkNvb2tpZUphcjo6c2V0Q29va2llcyhXZWJDb3JlOjpEb2N1
bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0cmlu
ZykKIHsKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxGcmFt
ZUlkZW50aWZpZXI+IGZyYW1lSUQ7CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJ
RDsKICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGZy
YW1lSUQgPSBmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuZnJhbWVJRCgpOwpAQCAtODUsNyArODUs
NyBAQCBib29sIFdlYkNvb2tpZUphcjo6Y29va2llc0VuYWJsZWQoY29uc3QgV2ViQ29yZTo6RG9j
dW1lbnQmIGRvY3VtZW50KSBjb25zdAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0ZDo6cGFp
cjxTdHJpbmcsIFdlYkNvcmU6OlNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gV2ViQ29va2llSmFyOjpj
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lv
bklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYg
c2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQs
IE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVD
b29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAorc3RkOjpwYWlyPFN0cmluZywgV2Vi
Q29yZTo6U2VjdXJlQ29va2llc0FjY2Vzc2VkPiBXZWJDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQsIGNvbnN0IFVS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8s
IGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlv
bmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVz
IGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAogewogICAgIFN0cmluZyBjb29raWVTdHJpbmc7
CiAgICAgYm9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQgPSBmYWxzZTsKQEAgLTk2LDcgKzk2LDcg
QEAgc3RkOjpwYWlyPFN0cmluZywgV2ViQ29yZTo6U2VjdXJlQ29va2llc0FjY2Vzc2VkPiBXZWJD
b29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWEKIAogYm9vbCBXZWJDb29raWVKYXI6OmdldFJhd0Nv
b2tpZXMoY29uc3QgV2ViQ29yZTo6RG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCwg
VmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0CiB7Ci0gICAgT3B0aW9u
YWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFt
ZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7CiAgICAgaWYgKGF1dG8q
IGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkgewogICAgICAgICBmcmFtZUlEID0gZnJhbWUtPmxv
YWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViQ29va2llSmFyLmgKaW5kZXggNTU5YmQwZTUwYmJlYzM1ZmZiMjU2YjkxMmI3
YjQ2ZGE5OTRiMmQ0OC4uNWRjYWNkZDk2OGU2YTRiMDYyN2M3ODdjNmRhMWE1MTU0NzFiZjg4ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFy
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmgK
QEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAgIFN0cmluZyBjb29raWVzKFdlYkNvcmU6OkRv
Y3VtZW50JiwgY29uc3QgVVJMJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBzZXRDb29raWVzKFdl
YkNvcmU6OkRvY3VtZW50JiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcp
IGZpbmFsOwogICAgIGJvb2wgY29va2llc0VuYWJsZWQoY29uc3QgV2ViQ29yZTo6RG9jdW1lbnQm
KSBjb25zdCBmaW5hbDsKLSAgICBzdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb3JlOjpTZWN1cmVDb29r
aWVzQWNjZXNzZWQ+IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vz
c2lvbklEJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUlu
Zm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcykgY29u
c3QgZmluYWw7CisgICAgc3RkOjpwYWlyPFN0cmluZywgV2ViQ29yZTo6U2VjdXJlQ29va2llc0Fj
Y2Vzc2VkPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBQQUw6OlNlc3Npb25J
RCYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwg
Y29uc3QgVVJMJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcykg
Y29uc3QgZmluYWw7CiAgICAgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IFdlYkNvcmU6OkRvY3Vt
ZW50JiwgY29uc3QgVVJMJiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mKSBjb25zdCBmaW5hbDsK
ICAgICB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBXZWJDb3JlOjpEb2N1bWVudCYsIGNvbnN0IFVS
TCYsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSkgZmluYWw7CiBwcml2YXRlOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCmluZGV4IDEzM2JiM2YwMmI0
ODk1MDY0OTIxYzQ5Nzk2OTZmZTkwMzBiYzJmOTEuLjBlNGYwNzNkNjYxNTQwY2E1ZTdlY2UyOTU2
YjMwNWFlYTczZGRjMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJGcmFtZS5jcHAKQEAgLTk1LDEyICs5NSw2IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CiBERUZJTkVfREVCVUdfT05MWV9HTE9CQUwoV1RGOjpSZWZDb3VudGVkTGVha0NvdW50ZXIsIHdl
YkZyYW1lQ291bnRlciwgKCJXZWJGcmFtZSIpKTsKIAotc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRl
RnJhbWVJRCgpCi17Ci0gICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZUZyYW1lSUQgPSAxOwotICAg
IHJldHVybiB1bmlxdWVGcmFtZUlEKys7Ci19Ci0KIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUxp
c3RlbmVySUQoKQogewogICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVMaXN0ZW5lcklEID0gMTsK
QEAgLTE0OCw3ICsxNDIsNyBAQCBSZWY8V2ViRnJhbWU+IFdlYkZyYW1lOjpjcmVhdGUoc3RkOjp1
bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50PiBmcmFtZUxvYWRlcgogCiBXZWJGcmFtZTo6
V2ViRnJhbWUoc3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50PiBmcmFtZUxvYWRl
ckNsaWVudCkKICAgICA6IG1fZnJhbWVMb2FkZXJDbGllbnQoV1RGTW92ZShmcmFtZUxvYWRlckNs
aWVudCkpCi0gICAgLCBtX2ZyYW1lSUQoZ2VuZXJhdGVGcmFtZUlEKCkpCisgICAgLCBtX2ZyYW1l
SUQoRnJhbWVJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQogewogICAgIG1fZnJhbWVMb2FkZXJDbGll
bnQtPnNldFdlYkZyYW1lKHRoaXMpOwogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmFkZFdl
YkZyYW1lKG1fZnJhbWVJRCwgdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViRnJhbWUuaAppbmRleCA3MWIzOGY2MWFiMTk1MDU1YjQ0N2U4N2JmZmY3ZTk2NDA2ZGVl
YTljLi4xZWM1MDc1NDI1N2Y4NjZlYjJhZThlYzRjYjBjNmQxZmZlODY1NmVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKQEAgLTgwLDcgKzgwLDcgQEAg
cHVibGljOgogICAgIFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWUoKSBjb25zdCB7IHJldHVybiBt
X2NvcmVGcmFtZTsgfQogCiAgICAgRnJhbWVJbmZvRGF0YSBpbmZvKCkgY29uc3Q7Ci0gICAgdWlu
dDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQorICAgIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9CiAK
ICAgICBlbnVtIGNsYXNzIEZvck5hdmlnYXRpb25BY3Rpb24geyBObywgWWVzIH07CiAgICAgdWlu
dDY0X3Qgc2V0VXBQb2xpY3lMaXN0ZW5lcihXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIs
IFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJiwgRm9yTmF2aWdhdGlvbkFjdGlvbik7CkBA
IC0xODcsNyArMTg3LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVM
b2FkZXJDbGllbnQ+IG1fZnJhbWVMb2FkZXJDbGllbnQ7CiAgICAgTG9hZExpc3RlbmVyKiBtX2xv
YWRMaXN0ZW5lciB7IG51bGxwdHIgfTsKICAgICAKLSAgICB1aW50NjRfdCBtX2ZyYW1lSUQgeyAw
IH07CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fZnJhbWVJRDsKIAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCiAgICAgdWludDY0X3QgbV9maXJzdExheWVyVHJlZVRyYW5zYWN0aW9u
SURBZnRlckRpZENvbW1pdExvYWQgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcAppbmRleCBiNmQzOGFjYmRhNGM0YWY4ZDk2M2Zl
YzdmNDM0ZWYxM2RjOWZmNjZjLi40YTBhMDMwNWYyOTIxOWJkYzZiNDRjNGE4YzRiNjY2Mzc0MGRi
ZGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNw
ZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3Bl
Y3Rvci5jcHAKQEAgLTIyMSw3ICsyMjEsNyBAQCB2b2lkIFdlYkluc3BlY3Rvcjo6c2hvd1RpbWVs
aW5lcygpCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViSW5zcGVjdG9yOjpzaG93TWFpblJlc291cmNl
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJZGVudGlmaWVyKQordm9pZCBXZWJJbnNwZWN0b3I6OnNo
b3dNYWluUmVzb3VyY2VGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJZGVu
dGlmaWVyKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LndlYkZyYW1lKGZyYW1lSWRlbnRpZmllcik7CiAgICAgaWYgKCFmcmFtZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmgKaW5kZXggODljYjgzYjI1
YzE2NDRmNjdkNjEwYjcxZjkwZTM1NjA3MjU0ZmIwMC4uMjYwOWJkNGQ2NGU0NDA0ZDRjMjE4MzBk
NjM0NjcxZGVkZTU1M2IxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViSW5zcGVjdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViSW5zcGVjdG9yLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJBUElPYmplY3Qu
aCIKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvTm9u
Y29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNjEsNyAr
NjIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzaG93UmVzb3VyY2VzKCk7CiAgICAgdm9pZCBzaG93
VGltZWxpbmVzKCk7CiAKLSAgICB2b2lkIHNob3dNYWluUmVzb3VyY2VGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgc2hvd01haW5SZXNvdXJjZUZvckZyYW1lKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAKICAgICB2b2lkIHNldEF0dGFjaGVkKGJvb2wgYXR0
YWNoZWQpIHsgbV9hdHRhY2hlZCA9IGF0dGFjaGVkOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbgppbmRl
eCBiZDc1NGMxMThiYWNjM2Y5MGNhMGEyMzQ2NmYzMGYyNDk2ZjViOWYxLi5iZDgxNjg1ZjAxMmFi
NDk2ZWVkNGFiMjQ1NjM5OTFkNjQzMTk0ZjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLm1lc3NhZ2VzLmluCkBAIC0zMCw3
ICszMCw3IEBAIG1lc3NhZ2VzIC0+IFdlYkluc3BlY3RvciB7CiAgICAgU2hvd1Jlc291cmNlcygp
CiAgICAgU2hvd1RpbWVsaW5lcygpCiAKLSAgICBTaG93TWFpblJlc291cmNlRm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJZGVudGlmaWVyKQorICAgIFNob3dNYWluUmVzb3VyY2VGb3JGcmFtZShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJZGVudGlmaWVyKQogCiAgICAgT3BlbkluTmV3VGFi
KFN0cmluZyB1cmwpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKaW5kZXggMTA5NDRmNzM4ZGE0ZWNjYzMyYzYwNjdkZjQ3YWY0YzZhYWUyNGVmMC4uM2Qy
NTJlM2JmYjIyMmMwYmMzYWM1YmE2MWJkMzc4Zjg2NmJmMjAwNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE0OTAsNyArMTQ5MCw3IEBAIHZv
aWQgV2ViUGFnZTo6c3VzcGVuZEZvclByb2Nlc3NTd2FwKCkKICAgICBzZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkRpZFN1c3BlbmRBZnRlclByb2Nlc3NTd2FwKCkpOwogfQogCi12b2lkIFdl
YlBhZ2U6OmxvYWRVUkxJbkZyYW1lKFVSTCYmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwg
dWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZTo6bG9hZFVSTEluRnJhbWUoVVJMJiYgdXJs
LCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAg
ICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFt
ZUlEKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtMTQ5OSw3ICsxNDk5LDcgQEAgdm9pZCBXZWJQYWdl
Ojpsb2FkVVJMSW5GcmFtZShVUkwmJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIHVpbnQ2
NF90IGZyYW1lSUQKICAgICBmcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLmxvYWQoRnJhbWVM
b2FkUmVxdWVzdCgqZnJhbWUtPmNvcmVGcmFtZSgpLCBSZXNvdXJjZVJlcXVlc3QodXJsLCByZWZl
cnJlciksIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KSk7CiB9
CiAKLXZvaWQgV2ViUGFnZTo6bG9hZERhdGFJbkZyYW1lKElQQzo6RGF0YVJlZmVyZW5jZSYmIGRh
dGEsIFN0cmluZyYmIE1JTUVUeXBlLCBTdHJpbmcmJiBlbmNvZGluZ05hbWUsIFVSTCYmIGJhc2VV
UkwsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2U6OmxvYWREYXRhSW5GcmFtZShJUEM6
OkRhdGFSZWZlcmVuY2UmJiBkYXRhLCBTdHJpbmcmJiBNSU1FVHlwZSwgU3RyaW5nJiYgZW5jb2Rp
bmdOYW1lLCBVUkwmJiBiYXNlVVJMLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBX
ZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlE
KTsKICAgICBpZiAoIWZyYW1lKQpAQCAtMTYwNyw3ICsxNjA3LDcgQEAgdm9pZCBXZWJQYWdlOjpu
YXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0ZWRDbGljayhjb25zdCBTdHJpbmcmIHVybCwgSW50
UG9pbnQgZG8KICAgICBtYWluRnJhbWUtPmxvYWRlcigpLnVybFNlbGVjdGVkKG1haW5GcmFtZURv
Y3VtZW50LT5jb21wbGV0ZVVSTCh1cmwpLCBlbXB0eVN0cmluZygpLCBtb3VzZUV2ZW50LnB0cigp
LCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBTaG91bGRTZW5kUmVm
ZXJyZXI6Ok5ldmVyU2VuZFJlZmVycmVyLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpT
aG91bGROb3RBbGxvdyk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6c3RvcExvYWRpbmdGcmFtZSh1aW50
NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlOjpzdG9wTG9hZGluZ0ZyYW1lKEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlEKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlmICghZnJhbWUpCkBAIC0zMjI4LDcgKzMy
MjgsNyBAQCB2b2lkIFdlYlBhZ2U6OnNldFNlc3Npb25JRChQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQpCiAgICAgbV9wYWdlLT5zZXRTZXNzaW9uSUQoc2Vzc2lvbklEKTsKIH0KIAotdm9pZCBXZWJQ
YWdlOjpkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qg
bGlzdGVuZXJJRCwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIFBvbGljeUFjdGlv
biBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgRG93bmxvYWRJRCYg
ZG93bmxvYWRJRCwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNp
ZXMpCit2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgY29uc3QgRG93bmxvYWRJRCYgZG93bmxvYWRJRCwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVz
RGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMpCiB7CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCFmcmFtZSkKQEAg
LTMyMzYsNyArMzIzNiw3IEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVBvbGljeURlY2lzaW9u
KHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFBvCiAgICAgZnJhbWUtPmRp
ZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihsaXN0ZW5lcklELCBpZGVudGlmaWVyLCBwb2xpY3lBY3Rp
b24sIG5hdmlnYXRpb25JRCwgZG93bmxvYWRJRCwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpKTsK
IH0KIAotdm9pZCBXZWJQYWdlOjpjb250aW51ZVdpbGxTdWJtaXRGb3JtKHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IGxpc3RlbmVySUQpCit2b2lkIFdlYlBhZ2U6OmNvbnRpbnVlV2lsbFN1Ym1p
dEZvcm0oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQpCiB7CiAg
ICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJh
bWVJRCk7CiAgICAgaWYgKCFmcmFtZSkKQEAgLTMzNzgsNyArMzM3OCw3IEBAIHZvaWQgV2ViUGFn
ZTo6cnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lU2NyaXB0V29ybGQoY29uc3QgU3RyaW5nJiBzY3Jp
cHQsIGJvb2wgZm9yCiAgICAgcnVuSmF2YVNjcmlwdChtYWluV2ViRnJhbWUoKSwgc2NyaXB0LCBm
b3JjZVVzZXJHZXN0dXJlLCB3b3JsZE5hbWUsIGNhbGxiYWNrSUQpOwogfQogCi12b2lkIFdlYlBh
Z2U6OnJ1bkphdmFTY3JpcHRJbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYg
c2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3Zv
aWQgV2ViUGFnZTo6cnVuSmF2YVNjcmlwdEluRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIENhbGxiYWNrSUQg
Y2FsbGJhY2tJRCkKIHsKICAgICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBBU1NFUlQobWFpbldlYkZyYW1lKCkgIT0gZnJh
bWUpOwpAQCAtMzQzOSw3ICszNDM5LDcgQEAgdm9pZCBXZWJQYWdlOjpnZXRTZWxlY3Rpb25PckNv
bnRlbnRzQXNTdHJpbmcoQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIHNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6U3RyaW5nQ2FsbGJhY2socmVzdWx0U3RyaW5nLCBjYWxsYmFja0lEKSk7
CiB9CiAKLXZvaWQgV2ViUGFnZTo6Z2V0U291cmNlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdlOjpnZXRTb3VyY2VGb3JGcmFtZShG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIFN0
cmluZyByZXN1bHRTdHJpbmc7CiAgICAgaWYgKFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpKQpAQCAtMzQ0OCw3ICszNDQ4LDcgQEAgdm9p
ZCBXZWJQYWdlOjpnZXRTb3VyY2VGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDYWxsYmFja0lE
IGNhbGxiYWNrSUQpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdHJpbmdDYWxs
YmFjayhyZXN1bHRTdHJpbmcsIGNhbGxiYWNrSUQpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpnZXRN
YWluUmVzb3VyY2VEYXRhT2ZGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDYWxsYmFja0lEIGNhbGxi
YWNrSUQpCit2b2lkIFdlYlBhZ2U6OmdldE1haW5SZXNvdXJjZURhdGFPZkZyYW1lKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4gYnVmZmVyOwogICAgIGlmIChXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSkgewpAQCAtMzQ3OSw3ICszNDc5LDcgQEAg
c3RhdGljIFJlZlB0cjxTaGFyZWRCdWZmZXI+IHJlc291cmNlRGF0YUZvckZyYW1lKEZyYW1lKiBm
cmFtZSwgY29uc3QgVVJMJiByZXNvdXIKICAgICByZXR1cm4gJnN1YnJlc291cmNlLT5kYXRhKCk7
CiB9CiAKLXZvaWQgV2ViUGFnZTo6Z2V0UmVzb3VyY2VEYXRhRnJvbUZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VVUkxTdHJpbmcsIENhbGxiYWNrSUQgY2FsbGJh
Y2tJRCkKK3ZvaWQgV2ViUGFnZTo6Z2V0UmVzb3VyY2VEYXRhRnJvbUZyYW1lKEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHJlc291cmNlVVJMU3RyaW5nLCBDYWxsYmFja0lE
IGNhbGxiYWNrSUQpCiB7CiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyOwogICAgIGlm
IChhdXRvKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQp
KSB7CkBAIC0zNDkzLDcgKzM0OTMsNyBAQCB2b2lkIFdlYlBhZ2U6OmdldFJlc291cmNlRGF0YUZy
b21GcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHJlc291cmNlVQogICAgIHNl
bmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGF0YUNhbGxiYWNrKGRhdGFSZWZlcmVuY2UsIGNh
bGxiYWNrSUQpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpnZXRXZWJBcmNoaXZlT2ZGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYlBhZ2U6OmdldFdl
YkFyY2hpdmVPZkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDYWxsYmFja0lEIGNhbGxi
YWNrSUQpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgUmV0YWluUHRyPENGRGF0YVJlZj4g
ZGF0YTsKQEAgLTM3OTYsMTMgKzM3OTYsMTMgQEAgV2ViRnVsbFNjcmVlbk1hbmFnZXIqIFdlYlBh
Z2U6OmZ1bGxTY3JlZW5NYW5hZ2VyKCkKIH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2U6OmFkZENv
bnNvbGVNZXNzYWdlKHVpbnQ2NF90IGZyYW1lSUQsIE1lc3NhZ2VTb3VyY2UgbWVzc2FnZVNvdXJj
ZSwgTWVzc2FnZUxldmVsIG1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1aW50
NjRfdCByZXF1ZXN0SUQpCit2b2lkIFdlYlBhZ2U6OmFkZENvbnNvbGVNZXNzYWdlKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBNZXNzYWdlU291cmNlIG1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZl
bCBtZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdWludDY0X3QgcmVxdWVzdElE
KQogewogICAgIGlmIChhdXRvKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZy
YW1lKGZyYW1lSUQpKQogICAgICAgICBmcmFtZS0+YWRkQ29uc29sZU1lc3NhZ2UobWVzc2FnZVNv
dXJjZSwgbWVzc2FnZUxldmVsLCBtZXNzYWdlLCByZXF1ZXN0SUQpOwogfQogCi12b2lkIFdlYlBh
Z2U6OnNlbmRDU1BWaW9sYXRpb25SZXBvcnQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVVJMJiBy
ZXBvcnRVUkwsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXBvcnREYXRhKQordm9pZCBXZWJQ
YWdlOjpzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25z
dCBVUkwmIHJlcG9ydFVSTCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcG9ydERhdGEpCiB7
CiAgICAgYXV0byByZXBvcnQgPSByZXBvcnREYXRhLnRha2VEYXRhKCk7CiAgICAgaWYgKCFyZXBv
cnQpCkBAIC0zODExLDcgKzM4MTEsNyBAQCB2b2lkIFdlYlBhZ2U6OnNlbmRDU1BWaW9sYXRpb25S
ZXBvcnQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVVJMJiByZXBvcnRVUkwsIElQQwogICAgICAg
ICBQaW5nTG9hZGVyOjpzZW5kVmlvbGF0aW9uUmVwb3J0KCpmcmFtZS0+Y29yZUZyYW1lKCksIHJl
cG9ydFVSTCwgcmVwb3J0LnJlbGVhc2VOb25OdWxsKCksIFZpb2xhdGlvblJlcG9ydFR5cGU6OkNv
bnRlbnRTZWN1cml0eVBvbGljeSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZW5xdWV1ZVNlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnQodWludDY0X3QgZnJhbWVJRCwgU2VjdXJpdHlQb2xpY3lWaW9s
YXRpb25FdmVudDo6SW5pdCYmIGV2ZW50SW5pdCkKK3ZvaWQgV2ViUGFnZTo6ZW5xdWV1ZVNlY3Vy
aXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFNlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJiBldmVudEluaXQpCiB7CiAgICAgYXV0byogZnJh
bWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBpZiAo
IWZyYW1lKQpAQCAtNDY3NCw3ICs0Njc0LDcgQEAgdm9pZCBXZWJQYWdlOjplZmZlY3RpdmVBcHBl
YXJhbmNlRGlkQ2hhbmdlKGJvb2wgdXNlRGFya0FwcGVhcmFuY2UsIGJvb2wgdXNlRWxldmEKIH0K
ICNlbmRpZgogCi12b2lkIFdlYlBhZ2U6OmJlZ2luUHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8pCit2b2lkIFdlYlBhZ2U6OmJlZ2luUHJpbnRpbmco
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvKQogewog
ICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZy
YW1lSUQpOwogICAgIGlmICghZnJhbWUpCkBAIC00NzE4LDcgKzQ3MTgsNyBAQCB2b2lkIFdlYlBh
Z2U6OmVuZFByaW50aW5nKCkKICAgICB9CiB9CiAKLXZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2Vz
Rm9yUHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8s
IENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJp
bnRpbmcoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZv
LCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgVmVjdG9yPEludFJlY3Q+IHJlc3VsdFBh
Z2VSZWN0czsKICAgICBkb3VibGUgcmVzdWx0VG90YWxTY2FsZUZhY3RvckZvclByaW50aW5nID0g
MTsKQEAgLTQ3MjcsNyArNDcyNyw3IEBAIHZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJp
bnRpbmcodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluCiAgICAgc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDb21wdXRlZFBhZ2VzQ2FsbGJhY2socmVzdWx0UGFn
ZVJlY3RzLCByZXN1bHRUb3RhbFNjYWxlRmFjdG9yRm9yUHJpbnRpbmcsIGNvbXB1dGVkUGFnZU1h
cmdpbiwgY2FsbGJhY2tJRCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclBy
aW50aW5nSW1wbCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywg
VmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+JiByZXN1bHRQYWdlUmVjdHMsIGRvdWJsZSYgcmVzdWx0
VG90YWxTY2FsZUZhY3RvckZvclByaW50aW5nLCBGbG9hdEJveEV4dGVudCYgY29tcHV0ZWRQYWdl
TWFyZ2luKQordm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZ0ltcGwoRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBWZWN0b3I8V2Vi
Q29yZTo6SW50UmVjdD4mIHJlc3VsdFBhZ2VSZWN0cywgZG91YmxlJiByZXN1bHRUb3RhbFNjYWxl
RmFjdG9yRm9yUHJpbnRpbmcsIEZsb2F0Qm94RXh0ZW50JiBjb21wdXRlZFBhZ2VNYXJnaW4pCiB7
CiAgICAgQVNTRVJUKHJlc3VsdFBhZ2VSZWN0cy5pc0VtcHR5KCkpOwogCkBAIC00NzUwLDcgKzQ3
NTAsNyBAQCB2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nSW1wbCh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaQogfQogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
Ci12b2lkIFdlYlBhZ2U6OmRyYXdSZWN0VG9JbWFnZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQ
cmludEluZm8mIHByaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgaW1hZ2VTaXplLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYlBhZ2U6
OmRyYXdSZWN0VG9JbWFnZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZv
JiBwcmludEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFNpemUm
IGltYWdlU2l6ZSwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIFdlYkZyYW1lKiBmcmFt
ZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIEZyYW1l
KiBjb3JlRnJhbWUgPSBmcmFtZSA/IGZyYW1lLT5jb3JlRnJhbWUoKSA6IDA7CkBAIC00Nzk5LDE0
ICs0Nzk5LDE0IEBAIHZvaWQgV2ViUGFnZTo6ZHJhd1JlY3RUb0ltYWdlKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBjb25zCiAgICAgc2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpJbWFnZUNhbGxiYWNrKGhhbmRsZSwgY2FsbGJhY2tJRCkpOwogfQogCi12
b2lkIFdlYlBhZ2U6OmRyYXdQYWdlc1RvUERGKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50
SW5mbyYgcHJpbnRJbmZvLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIENhbGxiYWNr
SUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6ZHJhd1BhZ2VzVG9QREYoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCB1aW50MzJfdCBmaXJzdCwg
dWludDMyX3QgY291bnQsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBSZXRhaW5QdHI8
Q0ZNdXRhYmxlRGF0YVJlZj4gcGRmUGFnZURhdGE7CiAgICAgZHJhd1BhZ2VzVG9QREZJbXBsKGZy
YW1lSUQsIHByaW50SW5mbywgZmlyc3QsIGNvdW50LCBwZGZQYWdlRGF0YSk7CiAgICAgc2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEYXRhQ2FsbGJhY2soeyBDRkRhdGFHZXRCeXRlUHRyKHBk
ZlBhZ2VEYXRhLmdldCgpKSwgc3RhdGljX2Nhc3Q8c2l6ZV90PihDRkRhdGFHZXRMZW5ndGgocGRm
UGFnZURhdGEuZ2V0KCkpKSB9LCBjYWxsYmFja0lEKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZHJh
d1BhZ2VzVG9QREZJbXBsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJ
bmZvLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIFJldGFpblB0cjxDRk11dGFibGVE
YXRhUmVmPiYgcGRmUGFnZURhdGEpCit2b2lkIFdlYlBhZ2U6OmRyYXdQYWdlc1RvUERGSW1wbChG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIHVpbnQz
Ml90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgUmV0YWluUHRyPENGTXV0YWJsZURhdGFSZWY+JiBw
ZGZQYWdlRGF0YSkKIHsKICAgICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBGcmFtZSogY29yZUZyYW1lID0gZnJhbWUgPyBm
cmFtZS0+Y29yZUZyYW1lKCkgOiAwOwpAQCAtNDg1Nyw3ICs0ODU3LDcgQEAgdm9pZCBXZWJQYWdl
OjpkcmF3UGFnZXNUb1BERkltcGwodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBw
cmludEluZm8sIHUKIH0KIAogI2VsaWYgUExBVEZPUk0oR1RLKQotdm9pZCBXZWJQYWdlOjpkcmF3
UGFnZXNGb3JQcmludGluZyh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50
SW5mbywgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdlOjpkcmF3UGFnZXNGb3JQ
cmludGluZyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludElu
Zm8sIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBiZWdpblByaW50aW5nKGZyYW1lSUQs
IHByaW50SW5mbyk7CiAgICAgaWYgKG1fcHJpbnRDb250ZXh0ICYmIG1fcHJpbnRPcGVyYXRpb24p
IHsKQEAgLTY0ODcsNyArNjQ4Nyw3IEBAIHZvaWQgV2ViUGFnZTo6c2V0SXNTdXNwZW5kZWQoYm9v
bCBzdXNwZW5kZWQpCiAgICAgc3VzcGVuZEZvclByb2Nlc3NTd2FwKCk7CiB9CiAKLXZvaWQgV2Vi
UGFnZTo6ZnJhbWVCZWNhbWVSZW1vdGUodWludDY0X3QgZnJhbWVJRCwgR2xvYmFsRnJhbWVJZGVu
dGlmaWVyJiYgcmVtb3RlRnJhbWVJZGVudGlmaWVyLCBHbG9iYWxXaW5kb3dJZGVudGlmaWVyJiYg
cmVtb3RlV2luZG93SWRlbnRpZmllcikKK3ZvaWQgV2ViUGFnZTo6ZnJhbWVCZWNhbWVSZW1vdGUo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEdsb2JhbEZyYW1lSWRlbnRpZmllciYmIHJlbW90ZUZy
YW1lSWRlbnRpZmllciwgR2xvYmFsV2luZG93SWRlbnRpZmllciYmIHJlbW90ZVdpbmRvd0lkZW50
aWZpZXIpCiB7CiAgICAgUmVmUHRyPFdlYkZyYW1lPiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlmICghZnJhbWUpCkBAIC02NTE5LDEyICs2
NTE5LDEyIEBAIHZvaWQgV2ViUGFnZTo6ZnJhbWVCZWNhbWVSZW1vdGUodWludDY0X3QgZnJhbWVJ
RCwgR2xvYmFsRnJhbWVJZGVudGlmaWVyJiYgcmVtb3RlCiB9CiAKICNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQotdm9pZCBXZWJQYWdlOjpoYXNTdG9yYWdlQWNjZXNzKFJlZ2lz
dHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJh
bWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2U6Omhhc1N0b3JhZ2VBY2Nlc3MoUmVn
aXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgUmVnaXN0cmFibGVEb21haW4mJiB0b3BG
cmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Okhh
c1N0b3JhZ2VBY2Nlc3Moc2Vzc2lvbklEKCksIFdURk1vdmUoc3ViRnJhbWVEb21haW4pLCBXVEZN
b3ZlKHRvcEZyYW1lRG9tYWluKSwgZnJhbWVJRCwgbV9wYWdlSUQpLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUmVn
aXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgUmVnaXN0cmFibGVEb21haW4mJiB0b3BG
cmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21w
dFdhc1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZTo6cmVxdWVzdFN0
b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgUmVnaXN0cmFi
bGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFdlYkNv
cmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlJlcXVlc3RTdG9yYWdlQWNjZXNzKHNlc3Npb25JRCgpLCBX
VEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0b3BGcmFtZURvbWFpbiksIGZyYW1lSUQs
IG1fcGFnZUlEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQpAQCAtNjU0MCw3ICs2
NTQwLDcgQEAgdm9pZCBXZWJQYWdlOjp3YXNMb2FkZWRXaXRoRGF0YVRyYW5zZmVyRnJvbVByZXZh
bGVudFJlc291cmNlKCkKICNlbmRpZgogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikK
LXZvaWQgV2ViUGFnZTo6c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vz
cyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBvcmlnaW4s
IGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKERldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQ
YWdlOjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBvcmlnaW4sIGJv
b2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKERldmljZU9yaWVudGF0aW9uT3JN
b3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIHNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG91bGRBbGxvd0RldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKGZyYW1lSUQsIFdURk1vdmUob3JpZ2luKSwgbWF5UHJv
bXB0KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGIxNWQ2Yjg2ODc2MjU3YzZhNGVlMWZlODcw
ZTE5MzYwNjZiOWU2NDUuLjkxMjJkY2U2MGNjNzFkMGQ5YTMwMTRhOTk3MzlhYmVmMWU5NTY5ZWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTM0NCw5
ICszNDQsOSBAQCBwdWJsaWM6CiAgICAgV2ViRnVsbFNjcmVlbk1hbmFnZXIqIGZ1bGxTY3JlZW5N
YW5hZ2VyKCk7CiAjZW5kaWYKIAotICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UodWludDY0X3Qg
ZnJhbWVJRCwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmLCB1aW50
NjRfdCByZXF1ZXN0SUQgPSAwKTsKLSAgICB2b2lkIHNlbmRDU1BWaW9sYXRpb25SZXBvcnQodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgVVJMJiByZXBvcnRVUkwsIElQQzo6Rm9ybURhdGFSZWZlcmVu
Y2UmJik7Ci0gICAgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCh1aW50
NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0
JiYpOworICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYsIHVpbnQ2NF90IHJl
cXVlc3RJRCA9IDApOworICAgIHZvaWQgc2VuZENTUFZpb2xhdGlvblJlcG9ydChXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBJUEM6OkZvcm1EYXRhUmVmZXJl
bmNlJiYpOworICAgIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2
ZW50OjpJbml0JiYpOwogCiAgICAgLy8gLS0gQ2FsbGVkIGJ5IHRoZSBEcmF3aW5nQXJlYS4KICAg
ICAvLyBGSVhNRTogV2UgY291bGQgZ2VuZXJpY2l6ZSB0aGVzZSBpbnRvIGEgRHJhd2luZ0FyZWEg
Y2xpZW50IGludGVyZmFjZS4gV291bGQgdGhhdCBiZSBiZW5lZmljaWFsPwpAQCAtNTIwLDcgKzUy
MCw3IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpDb2xvciB1bmRlcmxheUNvbG9yKCkgY29uc3Qg
eyByZXR1cm4gbV91bmRlcmxheUNvbG9yOyB9CiAKICAgICB2b2lkIHN0b3BMb2FkaW5nKCk7Ci0g
ICAgdm9pZCBzdG9wTG9hZGluZ0ZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpOworICAgIHZvaWQgc3Rv
cExvYWRpbmdGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogICAgIGJvb2wgZGVmZXJz
TG9hZGluZygpIGNvbnN0OwogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVyTG9h
ZGluZyk7CiAKQEAgLTc2Nyw3ICs3NjcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb25maXJtQ29t
cG9zaXRpb24oY29uc3QgU3RyaW5nJiB0ZXh0LCBpbnQ2NF90IHNlbGVjdGlvblN0YXJ0LCBpbnQ2
NF90IHNlbGVjdGlvbkxlbmd0aCk7CiAgICAgdm9pZCBjYW5jZWxDb21wb3NpdGlvbigpOwogCi0g
ICAgdm9pZCBjb2xsYXBzZVNlbGVjdGlvbkluRnJhbWUodWludDY0X3QgZnJhbWVJRCk7CisgICAg
dm9pZCBjb2xsYXBzZVNlbGVjdGlvbkluRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsK
ICAgICB2b2lkIHNob3dFbW9qaVBpY2tlcihXZWJDb3JlOjpGcmFtZSYpOwogCiAgICAgdm9pZCBn
ZXRDZW50ZXJGb3Jab29tR2VzdHVyZShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2VudGVySW5W
aWV3Q29vcmRpbmF0ZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6SW50UG9pbnQm
Jik+JiYpOwpAQCAtODYwLDIzICs4NjAsMjMgQEAgcHVibGljOgogICAgIFdlYkNvcmU6OkRyYWdT
b3VyY2VBY3Rpb24gYWxsb3dlZERyYWdTb3VyY2VBY3Rpb25zKCkgY29uc3QgeyByZXR1cm4gbV9h
bGxvd2VkRHJhZ1NvdXJjZUFjdGlvbnM7IH0KICNlbmRpZgogCi0gICAgdm9pZCBiZWdpblByaW50
aW5nKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYpOworICAgIHZvaWQgYmVnaW5Q
cmludGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYpOwogICAg
IHZvaWQgZW5kUHJpbnRpbmcoKTsKLSAgICB2b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nKHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIENhbGxiYWNrSUQpOwotICAgIHZvaWQg
Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdJbXBsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50
SW5mbyYsIFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiYgcGFnZVJlY3RzLCBkb3VibGUmIHRvdGFs
U2NhbGVGYWN0b3IsIFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiBjb21wdXRlZE1hcmdpbik7Cisg
ICAgdm9pZCBjb21wdXRlUGFnZXNGb3JQcmludGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IGNvbnN0IFByaW50SW5mbyYsIENhbGxiYWNrSUQpOworICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9y
UHJpbnRpbmdJbXBsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwg
VmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+JiBwYWdlUmVjdHMsIGRvdWJsZSYgdG90YWxTY2FsZUZh
Y3RvciwgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIGNvbXB1dGVkTWFyZ2luKTsKIAogI2lmIFBM
QVRGT1JNKENPQ09BKQotICAgIHZvaWQgZHJhd1JlY3RUb0ltYWdlKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFByaW50SW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJiwgQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBkcmF3UGFnZXNUb1BERih1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291
bnQsIENhbGxiYWNrSUQpOwotICAgIHZvaWQgZHJhd1BhZ2VzVG9QREZJbXBsKHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwg
UmV0YWluUHRyPENGTXV0YWJsZURhdGFSZWY+JiBwZGZQYWdlRGF0YSk7CisgICAgdm9pZCBkcmF3
UmVjdFRvSW1hZ2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mLCBj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIENhbGxiYWNr
SUQpOworICAgIHZvaWQgZHJhd1BhZ2VzVG9QREYoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBj
b25zdCBQcmludEluZm8mLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIENhbGxiYWNr
SUQpOworICAgIHZvaWQgZHJhd1BhZ2VzVG9QREZJbXBsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgY29uc3QgUHJpbnRJbmZvJiwgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBSZXRh
aW5QdHI8Q0ZNdXRhYmxlRGF0YVJlZj4mIHBkZlBhZ2VEYXRhKTsKICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB2b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJh
d1RvUERGKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIENhbGxiYWNrSUQsIE1l
c3NhZ2VzOjpXZWJQYWdlOjpDb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERjo6RGVs
YXllZFJlcGx5JiYpOworICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9Q
REYoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mLCBDYWxsYmFja0lE
LCBNZXNzYWdlczo6V2ViUGFnZTo6Q29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREY6
OkRlbGF5ZWRSZXBseSYmKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oR1RLKQotICAgIHZvaWQg
ZHJhd1BhZ2VzRm9yUHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiwg
Q2FsbGJhY2tJRCk7CisgICAgdm9pZCBkcmF3UGFnZXNGb3JQcmludGluZyhXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYsIENhbGxiYWNrSUQpOwogICAgIHZvaWQgZGlk
RmluaXNoUHJpbnRPcGVyYXRpb24oY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIENhbGxi
YWNrSUQpOwogI2VuZGlmCiAKQEAgLTExMjksMTMgKzExMjksMTMgQEAgcHVibGljOgogICAgIHZv
aWQgZmx1c2hQZW5kaW5nRWRpdG9yU3RhdGVVcGRhdGUoKTsKIAogI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluJiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpOwotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4mJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFn
ZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJik7CisgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFn
ZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dh
c0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYpOwogICAg
IHZvaWQgd2FzTG9hZGVkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxlbnRSZXNvdXJjZSgpOwog
I2VuZGlmCiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQotICAgIHZvaWQgc2hvdWxk
QWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh1aW50NjRfdCBmcmFtZUlELCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgYm9vbCBtYXlQcm9tcHQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25T
dGF0ZSk+JiYpOworICAgIHZvaWQgc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlv
bkFjY2VzcyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYmLCBib29sIG1heVByb21wdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpE
ZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlKT4mJik7CiAjZW5kaWYKIAog
ICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQoV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spOwpAQCAtMTM0OSw4ICsx
MzQ5LDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgYm9vbCBzY3JvbGwoV2ViQ29yZTo6UGFnZSos
IFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbiwgV2ViQ29yZTo6U2Nyb2xsR3JhbnVsYXJpdHkpOwog
ICAgIHN0YXRpYyBib29sIGxvZ2ljYWxTY3JvbGwoV2ViQ29yZTo6UGFnZSosIFdlYkNvcmU6OlNj
cm9sbExvZ2ljYWxEaXJlY3Rpb24sIFdlYkNvcmU6OlNjcm9sbEdyYW51bGFyaXR5KTsKIAotICAg
IHZvaWQgbG9hZFVSTEluRnJhbWUoVVJMJiYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIHVpbnQ2
NF90IGZyYW1lSUQpOwotICAgIHZvaWQgbG9hZERhdGFJbkZyYW1lKElQQzo6RGF0YVJlZmVyZW5j
ZSYmLCBTdHJpbmcmJiBNSU1FVHlwZSwgU3RyaW5nJiYgZW5jb2RpbmdOYW1lLCBVUkwmJiBiYXNl
VVJMLCB1aW50NjRfdCBmcmFtZUlEKTsKKyAgICB2b2lkIGxvYWRVUkxJbkZyYW1lKFVSTCYmLCBj
b25zdCBTdHJpbmcmIHJlZmVycmVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAgIHZv
aWQgbG9hZERhdGFJbkZyYW1lKElQQzo6RGF0YVJlZmVyZW5jZSYmLCBTdHJpbmcmJiBNSU1FVHlw
ZSwgU3RyaW5nJiYgZW5jb2RpbmdOYW1lLCBVUkwmJiBiYXNlVVJMLCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIpOwogCiAgICAgZW51bSBjbGFzcyBXYXNSZXN0b3JlZEJ5QVBJUmVxdWVzdCB7IE5v
LCBZZXMgfTsKICAgICB2b2lkIHJlc3RvcmVTZXNzaW9uSW50ZXJuYWwoY29uc3QgVmVjdG9yPEJh
Y2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZT4mLCBXYXNSZXN0b3JlZEJ5QVBJUmVxdWVzdCwgV2ViQmFj
a0ZvcndhcmRMaXN0UHJveHk6Ok92ZXJ3cml0ZUV4aXN0aW5nSXRlbSk7CkBAIC0xMzgyLDE2ICsx
MzgyLDE2IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1IVE1MKQogICAgIHZvaWQgZ2V0Q29udGVu
dHNBc01IVE1MRGF0YShDYWxsYmFja0lEKTsKICNlbmRpZgotICAgIHZvaWQgZ2V0TWFpblJlc291
cmNlRGF0YU9mRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBn
ZXRSZXNvdXJjZURhdGFGcm9tRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBy
ZXNvdXJjZVVSTCwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBnZXRNYWluUmVzb3VyY2VEYXRhT2ZG
cmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENhbGxiYWNrSUQpOworICAgIHZvaWQgZ2V0
UmVzb3VyY2VEYXRhRnJvbUZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiByZXNvdXJjZVVSTCwgQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBnZXRSZW5kZXJUcmVlRXh0
ZXJuYWxSZXByZXNlbnRhdGlvbihDYWxsYmFja0lEKTsKICAgICB2b2lkIGdldFNlbGVjdGlvbk9y
Q29udGVudHNBc1N0cmluZyhDYWxsYmFja0lEKTsKICAgICB2b2lkIGdldFNlbGVjdGlvbkFzV2Vi
QXJjaGl2ZURhdGEoQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBnZXRTb3VyY2VGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBDYWxsYmFja0lEKTsKLSAgICB2b2lkIGdldFdlYkFyY2hpdmVPZkZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIENhbGxiYWNrSUQpOworICAgIHZvaWQgZ2V0U291cmNlRm9yRnJh
bWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIGdldFdl
YkFyY2hpdmVPZkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ2FsbGJhY2tJRCk7CiAg
ICAgdm9pZCBydW5KYXZhU2NyaXB0KFdlYkZyYW1lKiwgY29uc3QgU3RyaW5nJiwgYm9vbCBmb3Jj
ZVVzZXJHZXN0dXJlLCBjb25zdCBPcHRpb25hbDxTdHJpbmc+JiB3b3JsZE5hbWUsIENhbGxiYWNr
SUQpOwogICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lU2NyaXB0V29ybGQoY29uc3Qg
U3RyaW5nJiwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBjb25zdCBPcHRpb25hbDxTdHJpbmc+JiB3
b3JsZE5hbWUsIENhbGxiYWNrSUQpOwotICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBDYWxs
YmFja0lEKTsKKyAgICB2b2lkIHJ1bkphdmFTY3JpcHRJbkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBDYWxsYmFja0lE
KTsKICAgICB2b2lkIGZvcmNlUmVwYWludChDYWxsYmFja0lEKTsKICAgICB2b2lkIHRha2VTbmFw
c2hvdChXZWJDb3JlOjpJbnRSZWN0IHNuYXBzaG90UmVjdCwgV2ViQ29yZTo6SW50U2l6ZSBiaXRt
YXBTaXplLCB1aW50MzJfdCBvcHRpb25zLCBDYWxsYmFja0lEKTsKIApAQCAtMTQwNSw4ICsxNDA1
LDggQEAgcHJpdmF0ZToKICAgICBib29sIHBhcmVudFByb2Nlc3NIYXNTZXJ2aWNlV29ya2VyRW50
aXRsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAjZW5kaWYKIAotICAgIHZvaWQgZGlk
UmVjZWl2ZVBvbGljeURlY2lzaW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVy
SUQsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6UG9saWN5QWN0aW9u
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IERvd25sb2FkSUQmLCBPcHRpb25hbDxXZWJz
aXRlUG9saWNpZXNEYXRhPiYmKTsKLSAgICB2b2lkIGNvbnRpbnVlV2lsbFN1Ym1pdEZvcm0odWlu
dDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCk7CisgICAgdm9pZCBkaWRSZWNlaXZl
UG9saWN5RGVjaXNpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBsaXN0ZW5l
cklELCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIFdlYkNvcmU6OlBvbGljeUFjdGlv
biwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBEb3dubG9hZElEJiwgT3B0aW9uYWw8V2Vi
c2l0ZVBvbGljaWVzRGF0YT4mJik7CisgICAgdm9pZCBjb250aW51ZVdpbGxTdWJtaXRGb3JtKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbGlzdGVuZXJJRCk7CiAgICAgdm9pZCBz
ZXRVc2VyQWdlbnQoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBzZXRDdXN0b21UZXh0RW5jb2Rp
bmdOYW1lKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgc3VzcGVuZEFjdGl2ZURPTU9iamVjdHNB
bmRBbmltYXRpb25zKCk7CkBAIC0xNDI0LDcgKzE0MjQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB3aW5k
b3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgd2lu
ZG93RnJhbWVJblVuZmxpcHBlZFNjcmVlbkNvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UG9pbnQmIGFjY2Vzc2liaWxpdHlWaWV3Q29vcmRpbmF0ZXMpOwogCiAgICAgUmV0YWluUHRyPFBE
RkRvY3VtZW50PiBwZGZEb2N1bWVudEZvclByaW50aW5nRnJhbWUoV2ViQ29yZTo6RnJhbWUqKTsK
LSAgICB2b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERGRG9jdW1lbnQodWludDY0X3QgZnJh
bWVJRCwgY29uc3QgUHJpbnRJbmZvJiwgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+JiByZXN1bHRQ
YWdlUmVjdHMpOworICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdQREZEb2N1bWVudChX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYsIFZlY3RvcjxXZWJDb3Jl
OjpJbnRSZWN0PiYgcmVzdWx0UGFnZVJlY3RzKTsKICAgICB2b2lkIGRyYXdQREZEb2N1bWVudChD
R0NvbnRleHRSZWYsIFBERkRvY3VtZW50ICosIGNvbnN0IFByaW50SW5mbyYsIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmKTsKICAgICB2b2lkIGRyYXdQYWdlc1RvUERGRnJvbVBERkRvY3VtZW50KENH
Q29udGV4dFJlZiwgUERGRG9jdW1lbnQgKiwgY29uc3QgUHJpbnRJbmZvJiwgdWludDMyX3QgZmly
c3QsIHVpbnQzMl90IGNvdW50KTsKICNlbmRpZgpAQCAtMTU3Nyw3ICsxNTc3LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHZvaWNlc0RpZENoYW5nZSgpOwogI2VuZGlmCiAKLSAgICB2b2lkIGZyYW1l
QmVjYW1lUmVtb3RlKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6Okdsb2JhbEZyYW1lSWRlbnRp
ZmllciYmIHJlbW90ZUZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6R2xvYmFsV2luZG93SWRlbnRp
ZmllciYmIHJlbW90ZVdpbmRvd0lkZW50aWZpZXIpOworICAgIHZvaWQgZnJhbWVCZWNhbWVSZW1v
dGUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpHbG9iYWxGcmFtZUlkZW50aWZp
ZXImJiByZW1vdGVGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZp
ZXImJiByZW1vdGVXaW5kb3dJZGVudGlmaWVyKTsKIAogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hl
bWVIYW5kbGVyKHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc2NoZW1lKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4KaW5kZXggYzExYjQ5ZGEwMTJjYThiODI0NzAxNjlhMTAyNzVjN2I1YzU4OGQzMy4uMWYx
N2E2OGMyNzliZGQyZjI2MTRlMWMyOTIxMGFkZjRlN2Q5M2RiMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0yNyw5
ICsyNyw5IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgU2V0
QmFja2dyb3VuZENvbG9yKE9wdGlvbmFsPFdlYkNvcmU6OkNvbG9yPiBjb2xvcikKIAotICAgIEFk
ZENvbnNvbGVNZXNzYWdlKHVpbnQ2NF90IGZyYW1lSUQsIGVudW06dWludDhfdCBKU0M6Ok1lc3Nh
Z2VTb3VyY2UgbWVzc2FnZVNvdXJjZSwgZW51bTp1aW50OF90IEpTQzo6TWVzc2FnZUxldmVsIG1l
c3NhZ2VMZXZlbCwgU3RyaW5nIG1lc3NhZ2UsIHVpbnQ2NF90IHJlcXVlc3RJRCkKLSAgICBTZW5k
Q1NQVmlvbGF0aW9uUmVwb3J0KHVpbnQ2NF90IGZyYW1lSUQsIFVSTCByZXBvcnRVUkwsIElQQzo6
Rm9ybURhdGFSZWZlcmVuY2UgcmVwb3J0RGF0YSkKLSAgICBFbnF1ZXVlU2VjdXJpdHlQb2xpY3lW
aW9sYXRpb25FdmVudCh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZp
b2xhdGlvbkV2ZW50OjpJbml0IGV2ZW50SW5pdCkKKyAgICBBZGRDb25zb2xlTWVzc2FnZShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgZW51bTp1aW50OF90IEpTQzo6TWVzc2FnZVNv
dXJjZSBtZXNzYWdlU291cmNlLCBlbnVtOnVpbnQ4X3QgSlNDOjpNZXNzYWdlTGV2ZWwgbWVzc2Fn
ZUxldmVsLCBTdHJpbmcgbWVzc2FnZSwgdWludDY0X3QgcmVxdWVzdElEKQorICAgIFNlbmRDU1BW
aW9sYXRpb25SZXBvcnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFVSTCByZXBv
cnRVUkwsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVwb3J0RGF0YSkKKyAgICBFbnF1ZXVlU2Vj
dXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCBldmVudEluaXQp
CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBTZXRUb3BDb250ZW50SW5zZXRGZW5jZWQoZmxv
YXQgY29udGVudEluc2V0LCBJUEM6OkF0dGFjaG1lbnQgZmVuY2VQb3J0KQpAQCAtMTU5LDggKzE1
OSw4IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktp
dDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAgICAgR29Ub0JhY2tGb3J3YXJkSXRlbSh1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVu
dGlmaWVyIGJhY2tGb3J3YXJkSXRlbUlELCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6RnJhbWVMb2Fk
VHlwZSBiYWNrRm9yd2FyZFR5cGUsIGVudW06Ym9vbCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBPcHRpb25hbDxXZWJLaXQ6
OldlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQb2xpY2llcykKICAgICBUcnlSZXN0b3JlU2Ny
b2xsUG9zaXRpb24oKQogCi0gICAgTG9hZFVSTEluRnJhbWUoVVJMIHVybCwgU3RyaW5nIHJlZmVy
cmVyLCB1aW50NjRfdCBmcmFtZUlEKQotICAgIExvYWREYXRhSW5GcmFtZShJUEM6OkRhdGFSZWZl
cmVuY2UgZGF0YSwgU3RyaW5nIE1JTUVUeXBlLCBTdHJpbmcgZW5jb2RpbmdOYW1lLCBVUkwgYmFz
ZVVSTCwgdWludDY0X3QgZnJhbWVJRCkKKyAgICBMb2FkVVJMSW5GcmFtZShVUkwgdXJsLCBTdHJp
bmcgcmVmZXJyZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQorICAgIExvYWRE
YXRhSW5GcmFtZShJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSwgU3RyaW5nIE1JTUVUeXBlLCBTdHJp
bmcgZW5jb2RpbmdOYW1lLCBVUkwgYmFzZVVSTCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQpCiAgICAgTG9hZFJlcXVlc3Qoc3RydWN0IFdlYktpdDo6TG9hZFBhcmFtZXRlcnMgbG9h
ZFBhcmFtZXRlcnMpCiAgICAgTG9hZERhdGEoc3RydWN0IFdlYktpdDo6TG9hZFBhcmFtZXRlcnMg
bG9hZFBhcmFtZXRlcnMpCiAgICAgTG9hZEFsdGVybmF0ZUhUTUwoc3RydWN0IFdlYktpdDo6TG9h
ZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnMpCkBAIC0xNzAsNyArMTcwLDcgQEAgR2VuZXJhdGVT
eW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0
aW5nQ29tbWFuZFR5cGUKICAgICBSZWxvYWQodWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50MzJf
dCByZWxvYWRPcHRpb25zLCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94
RXh0ZW5zaW9uSGFuZGxlKQogICAgIFN0b3BMb2FkaW5nKCkKIAotICAgIFN0b3BMb2FkaW5nRnJh
bWUodWludDY0X3QgZnJhbWVJRCkKKyAgICBTdG9wTG9hZGluZ0ZyYW1lKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlEKQogICAgIAogICAgIFJlc3RvcmVTZXNzaW9uKFZlY3RvcjxXZWJL
aXQ6OkJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZT4gaXRlbVN0YXRlcykKICAgICBVcGRhdGVCYWNr
Rm9yd2FyZExpc3RGb3JSZWF0dGFjaChWZWN0b3I8V2ViS2l0OjpCYWNrRm9yd2FyZExpc3RJdGVt
U3RhdGU+IGl0ZW1TdGF0ZXMpCkBAIC0xNzksOCArMTc5LDggQEAgR2VuZXJhdGVTeW50aGV0aWNF
ZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFu
ZFR5cGUKICAgICBEaWRSZW1vdmVCYWNrRm9yd2FyZEl0ZW0oc3RydWN0IFdlYkNvcmU6OkJhY2tG
b3J3YXJkSXRlbUlkZW50aWZpZXIgYmFja0ZvcndhcmRJdGVtSUQpCiAKICAgICBVcGRhdGVXZWJz
aXRlUG9saWNpZXMoc3RydWN0IFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0YSB3ZWJzaXRlUG9s
aWNpZXMpCi0gICAgRGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVp
bnQ2NF90IGxpc3RlbmVySUQsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lD
aGVja0lkZW50aWZpZXIsIGVudW06dWludDhfdCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9saWN5
QWN0aW9uLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9h
ZElELCBPcHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQb2xpY2ll
cykKLSAgICBDb250aW51ZVdpbGxTdWJtaXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90
IGxpc3RlbmVySUQpCisgICAgRGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3QgV2ViQ29y
ZTo6UG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJL
aXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgT3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNp
ZXNEYXRhPiB3ZWJzaXRlUG9saWNpZXMpCisgICAgQ29udGludWVXaWxsU3VibWl0Rm9ybShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCkKIAogICAg
IENsZWFyU2VsZWN0aW9uKCkKICAgICBSZXN0b3JlU2VsZWN0aW9uSW5Gb2N1c2VkRWRpdGFibGVF
bGVtZW50KCkKQEAgLTE5MywxNSArMTkzLDE1IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0Nv
bW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAj
aWYgRU5BQkxFKE1IVE1MKQogICAgIEdldENvbnRlbnRzQXNNSFRNTERhdGEoV2ViS2l0OjpDYWxs
YmFja0lEIGNhbGxiYWNrSUQpCiAjZW5kaWYKLSAgICBHZXRNYWluUmVzb3VyY2VEYXRhT2ZGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKLSAgICBH
ZXRSZXNvdXJjZURhdGFGcm9tRnJhbWUodWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHJlc291cmNl
VVJMLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBHZXRNYWluUmVzb3VyY2VE
YXRhT2ZGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViS2l0OjpDYWxs
YmFja0lEIGNhbGxiYWNrSUQpCisgICAgR2V0UmVzb3VyY2VEYXRhRnJvbUZyYW1lKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgcmVzb3VyY2VVUkwsIFdlYktpdDo6Q2Fs
bGJhY2tJRCBjYWxsYmFja0lEKQogICAgIEdldFJlbmRlclRyZWVFeHRlcm5hbFJlcHJlc2VudGF0
aW9uKFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIEdldFNlbGVjdGlvbk9yQ29u
dGVudHNBc1N0cmluZyhXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBHZXRTZWxl
Y3Rpb25Bc1dlYkFyY2hpdmVEYXRhKFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAg
IEdldFNvdXJjZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6Q2FsbGJhY2tJRCBj
YWxsYmFja0lEKQotICAgIEdldFdlYkFyY2hpdmVPZkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdl
YktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIEdldFNvdXJjZUZvckZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJ
RCkKKyAgICBHZXRXZWJBcmNoaXZlT2ZGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgUnVuSmF2YVNjcmlwdElu
TWFpbkZyYW1lU2NyaXB0V29ybGQoU3RyaW5nIHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJl
LCBPcHRpb25hbDxTdHJpbmc+IHdvcmxkTmFtZSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNr
SUQpCi0gICAgUnVuSmF2YVNjcmlwdEluRnJhbWUodWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHNj
cmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJ
RCkKKyAgICBSdW5KYXZhU2NyaXB0SW5GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgU3RyaW5nIHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBXZWJLaXQ6OkNhbGxi
YWNrSUQgY2FsbGJhY2tJRCkKICAgICBGb3JjZVJlcGFpbnQoV2ViS2l0OjpDYWxsYmFja0lEIGNh
bGxiYWNrSUQpCiAKICAgICBTZWxlY3RBbGwoKQpAQCAtMzc3LDE4ICszNzcsMTggQEAgR2VuZXJh
dGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNF
ZGl0aW5nQ29tbWFuZFR5cGUKICAgICBEaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRl
Y2lzaW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93ZWQpCiAKICAgICAjIFBy
aW50aW5nLgotICAgIEJlZ2luUHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYktp
dDo6UHJpbnRJbmZvIHByaW50SW5mbykKKyAgICBCZWdpblByaW50aW5nKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvKQog
ICAgIEVuZFByaW50aW5nKCkKLSAgICBDb21wdXRlUGFnZXNGb3JQcmludGluZyh1aW50NjRfdCBm
cmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCBXZWJLaXQ6OkNhbGxi
YWNrSUQgY2FsbGJhY2tJRCkKKyAgICBDb21wdXRlUGFnZXNGb3JQcmludGluZyhXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5m
bywgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0g
ICAgRHJhd1JlY3RUb0ltYWdlKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50
SW5mbyBwcmludEluZm8sIFdlYkNvcmU6OkludFJlY3QgcmVjdCwgV2ViQ29yZTo6SW50U2l6ZSBp
bWFnZVNpemUsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIERyYXdQYWdlc1Rv
UERGKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8s
IHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxi
YWNrSUQpCisgICAgRHJhd1JlY3RUb0ltYWdlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCBXZWJDb3JlOjpJbnRSZWN0
IHJlY3QsIFdlYkNvcmU6OkludFNpemUgaW1hZ2VTaXplLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2Fs
bGJhY2tJRCkKKyAgICBEcmF3UGFnZXNUb1BERihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgdWludDMyX3QgZmlyc3Qs
IHVpbnQzMl90IGNvdW50LCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQotICAgIENvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERG
KHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIFdl
YktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKSAtPiAodWludDMyX3QgcGFnZUNvdW50KSBTeW5j
aHJvbm91cworICAgIENvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJ
bmZvLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkgLT4gKHVpbnQzMl90IHBhZ2VDb3Vu
dCkgU3luY2hyb25vdXMKICNlbmRpZgogI2VuZGlmCiAjaWYgUExBVEZPUk0oR1RLKQotICAgIERy
YXdQYWdlc0ZvclByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50
SW5mbyBwcmludEluZm8sIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIERyYXdQ
YWdlc0ZvclByaW50aW5nKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3Qg
V2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJ
RCkKICNlbmRpZgogCiAgICAgIyBNZWRpYQpAQCAtNDEwLDcgKzQxMCw3IEBAIEdlbmVyYXRlU3lu
dGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGlu
Z0NvbW1hbmRUeXBlCiAgICAgQ29uZmlybUNvbXBvc2l0aW9uKFN0cmluZyB0ZXh0LCBpbnQ2NF90
IHNlbGVjdGlvblN0YXJ0LCBpbnQ2NF90IHNlbGVjdGlvbkxlbmd0aCkKICAgICBDYW5jZWxDb21w
b3NpdGlvbigpCiAKLSAgICBDb2xsYXBzZVNlbGVjdGlvbkluRnJhbWUodWludDY0X3QgZnJhbWVJ
RCkKKyAgICBDb2xsYXBzZVNlbGVjdGlvbkluRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQpCiAKICAgICBHZXRDZW50ZXJGb3Jab29tR2VzdHVyZShXZWJDb3JlOjpJbnRQb2lu
dCBjZW50ZXJJblZpZXdDb29yZGluYXRlcykgLT4gKFdlYkNvcmU6OkludFBvaW50IGNlbnRlcikg
U3luY2hyb25vdXMKICNlbmRpZgpAQCAtNTMzLDcgKzUzMyw3IEBAIEdlbmVyYXRlU3ludGhldGlj
RWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1h
bmRUeXBlCiAgICAgRGlkUmVjZWl2ZVBhc3N3b3JkRm9yUXVpY2tMb29rRG9jdW1lbnQoU3RyaW5n
IHBhc3N3b3JkKQogI2VuZGlmCiAKLSAgICBGcmFtZUJlY2FtZVJlbW90ZSh1aW50NjRfdCBmcmFt
ZUlELCBzdHJ1Y3QgV2ViQ29yZTo6R2xvYmFsRnJhbWVJZGVudGlmaWVyIHJlbW90ZUZyYW1lSWRl
bnRpZmllciwgc3RydWN0IFdlYkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXIgcmVtb3RlV2lu
ZG93SWRlbnRpZmllcikKKyAgICBGcmFtZUJlY2FtZVJlbW90ZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6Okdsb2JhbEZyYW1lSWRlbnRpZmllciByZW1v
dGVGcmFtZUlkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlmaWVy
IHJlbW90ZVdpbmRvd0lkZW50aWZpZXIpCiAKICAgICBSZWdpc3RlclVSTFNjaGVtZUhhbmRsZXIo
dWludDY0X3QgaWRlbnRpZmllciwgU3RyaW5nIHNjaGVtZSkKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCBjNTY2NjQ5MDI1
NWZhMWJjNzNlMjM2OTI1OWUwODE2NWRiOGYxZjdkLi44YjdlMjA2NzExYWViYWM5NmRhNDE0Y2Jj
MDE5NTNlNTZhZmIyNGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtNTQ1LDcgKzU0NSw3IEBAIHZvaWQgV2ViUGFnZTo6
YWNjZXB0c0ZpcnN0TW91c2UoaW50LCBjb25zdCBXZWJLaXQ6OldlYk1vdXNlRXZlbnQmLCBDb21w
bGV0aW9uSGFuCiAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwogfQogCi12b2lkIFdlYlBh
Z2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERGRG9jdW1lbnQodWludDY0X3QsIGNvbnN0IFBy
aW50SW5mbyYsIFZlY3RvcjxJbnRSZWN0PiYpCit2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0Zv
clByaW50aW5nUERGRG9jdW1lbnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmlu
dEluZm8mLCBWZWN0b3I8SW50UmVjdD4mKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkBA
IC0zNzE1LDcgKzM3MTUsNyBAQCB2b2lkIFdlYlBhZ2U6OmRpc3BhdGNoQXN5bmNocm9ub3VzVG91
Y2hFdmVudHMoY29uc3QgVmVjdG9yPFdlYlRvdWNoRXZlbnQsIDE+JiBxdQogfQogI2VuZGlmCiAK
LXZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYodWludDY0
X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIENhbGxiYWNrSUQgY2FsbGJh
Y2tJRCwgTWVzc2FnZXM6OldlYlBhZ2U6OkNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1Rv
UERGOjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3ZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9y
UHJpbnRpbmdBbmREcmF3VG9QREYoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNv
bnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQsIE1lc3NhZ2Vz
OjpXZWJQYWdlOjpDb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERjo6RGVsYXllZFJl
cGx5JiYgcmVwbHkpCiB7CiAgICAgaWYgKHByaW50SW5mby5zbmFwc2hvdEZpcnN0UGFnZSkgewog
ICAgICAgICByZXBseSgxKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1dlYlBhZ2VNYWMubW0KaW5kZXggNDMxZGZhMTdhY2EwNWI2MGVmZTlhZTA0MDNhNDA4
ODBlMjgxOGQ4MC4uZmUyNDE3YjBhN2Q1ODM2M2M1NGJiODZkYTU3ODk4ZDExZmJlMzUzOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMu
bW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMu
bW0KQEAgLTY3MCw3ICs2NzAsNyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZUhlYWRlckFuZEZvb3Rl
ckxheWVyc0ZvckRldmljZVNjYWxlQ2hhbmdlKGZsb2F0IHNjYWxlRmFjdG9yKQogICAgICAgICBt
X2Zvb3RlckJhbm5lci0+ZGlkQ2hhbmdlRGV2aWNlU2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IpOwog
fQogCi12b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERGRG9jdW1lbnQodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIFZlY3RvcjxJbnRSZWN0
PiYgcmVzdWx0UGFnZVJlY3RzKQordm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGlu
Z1BERkRvY3VtZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBQcmlu
dEluZm8mIHByaW50SW5mbywgVmVjdG9yPEludFJlY3Q+JiByZXN1bHRQYWdlUmVjdHMpCiB7CiAg
ICAgQVNTRVJUKHJlc3VsdFBhZ2VSZWN0cy5pc0VtcHR5KCkpOwogICAgIFdlYkZyYW1lKiBmcmFt
ZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IGEyZGExMmM2MDIyOTM3M2NmODc4OTJi
ODNkYWE1NzczNTAwYTc3ZjIuLjU2NWZjYWFlZDEzMDllNzg2NTY0YzBiZmVhYjhiOWUxYmY1NDA3
NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTc2OCwxNyAr
NzY4LDE3IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlCiAgICAgTE9HX0VSUk9SKCJVbmhhbmRs
ZWQgd2ViIHByb2Nlc3MgbWVzc2FnZSAnJXM6JXMnIiwgZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJO
YW1lKCkudG9TdHJpbmcoKS5kYXRhKCksIGRlY29kZXIubWVzc2FnZU5hbWUoKS50b1N0cmluZygp
LmRhdGEoKSk7CiB9CiAKLVdlYkZyYW1lKiBXZWJQcm9jZXNzOjp3ZWJGcmFtZSh1aW50NjRfdCBm
cmFtZUlEKSBjb25zdAorV2ViRnJhbWUqIFdlYlByb2Nlc3M6OndlYkZyYW1lKEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlEKSBjb25zdAogewogICAgIHJldHVybiBtX2ZyYW1lTWFwLmdldChmcmFtZUlE
KTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjphZGRXZWJGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBX
ZWJGcmFtZSogZnJhbWUpCit2b2lkIFdlYlByb2Nlc3M6OmFkZFdlYkZyYW1lKEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBXZWJGcmFtZSogZnJhbWUpCiB7CiAgICAgbV9mcmFtZU1hcC5zZXQoZnJh
bWVJRCwgZnJhbWUpOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OnJlbW92ZVdlYkZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQpCit2b2lkIFdlYlByb2Nlc3M6OnJlbW92ZVdlYkZyYW1lKEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlEKQogewogICAgIG1fZnJhbWVNYXAucmVtb3ZlKGZyYW1lSUQpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBkNGMwMWJhYjFmOTNkYTkwODViMGYy
MTk0Y2QzMjdkNDcxODY1MGIyLi4zY2IyYzQ5Njk0OTk4ODdiMzJiNTNiM2E2NmQwYmJmNjg1YTMy
MThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTQwLDYgKzQwLDcg
QEAKICNpbmNsdWRlICJXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCIKICNpbmNsdWRlICJXZWJT
b2NrZXRDaGFubmVsTWFuYWdlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaXN0cmFibGVEb21haW4u
aD4KICNpZiBQTEFURk9STShNQUMpCkBAIC0xNzIsOSArMTczLDkgQEAgcHVibGljOgogCiAgICAg
Ym9vbCBmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9mdWxsS2V5
Ym9hcmRBY2Nlc3NFbmFibGVkOyB9CiAKLSAgICBXZWJGcmFtZSogd2ViRnJhbWUodWludDY0X3Qp
IGNvbnN0OwotICAgIHZvaWQgYWRkV2ViRnJhbWUodWludDY0X3QsIFdlYkZyYW1lKik7Ci0gICAg
dm9pZCByZW1vdmVXZWJGcmFtZSh1aW50NjRfdCk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllcikgY29uc3Q7CisgICAgdm9pZCBhZGRXZWJGcmFtZShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkZyYW1lKik7CisgICAgdm9pZCByZW1vdmVXZWJGcmFt
ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogCiAgICAgV2ViUGFnZUdyb3VwUHJveHkqIHdl
YlBhZ2VHcm91cChXZWJDb3JlOjpQYWdlR3JvdXAqKTsKICAgICBXZWJQYWdlR3JvdXBQcm94eSog
d2ViUGFnZUdyb3VwKHVpbnQ2NF90IHBhZ2VHcm91cElEKTsKQEAgLTQ4OSw3ICs0OTAsNyBAQCBw
cml2YXRlOgogCiAgICAgYm9vbCBtX2Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQgeyBmYWxzZSB9
OwogCi0gICAgSGFzaE1hcDx1aW50NjRfdCwgV2ViRnJhbWUqPiBtX2ZyYW1lTWFwOworICAgIEhh
c2hNYXA8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJGcmFtZSo+IG1fZnJhbWVNYXA7CiAK
ICAgICB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgY2hhciosIHN0ZDo6dW5pcXVlX3B0cjxXZWJQcm9j
ZXNzU3VwcGxlbWVudD4sIFB0ckhhc2g8Y29uc3QgY2hhcio+PiBXZWJQcm9jZXNzU3VwcGxlbWVu
dE1hcDsKICAgICBXZWJQcm9jZXNzU3VwcGxlbWVudE1hcCBtX3N1cHBsZW1lbnRzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggYjE0MDNkMDU2MzkzYjM5N2QwMTdkMDkzZGU1ZmUwNGNk
Y2NhOGNjZC4uZDYwNjMwZmUwY2FhZGY0M2E4Yjc0NDlkMmQ1NDkwZWRiMDhlNmFjNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC02NCw3ICs2NCw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBoYXNXZWJWaWV3KCkgY29uc3QgZmluYWw7IC8vIG1haW5seSBmb3IgYXNzZXJ0aW9ucwogCiAg
ICAgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCgpIGNvbnN0IGZpbmFs
OwotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEKCkgY29uc3QgZmluYWw7CisgICAgT3B0
aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKCkgY29uc3QgZmluYWw7CiAg
ICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIG1h
a2VSZXByZXNlbnRhdGlvbihXZWJDb3JlOjpEb2N1bWVudExvYWRlciopIGZpbmFsOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5tbQppbmRleCAzZGQ1MGU3YjNiOWNmOTkzMzQ5YzlhYmI0Y2I0OTc4
MzdlZWMzNTNlLi5iN2E2NWU5OTM0ZmZmMDg4MGI3NTY4Y2EwMGU5NjJlMDE1YWU0MjEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAtMjE0LDcgKzIxNCw3IEBAIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiBXZWJGcmFtZUxvYWRlckNsaWVudDo6cGFnZUlEKCkgY29uc3QKICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwogfQogCi1PcHRpb25hbDx1aW50NjRfdD4gV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmZyYW1lSUQoKSBjb25zdAorT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBXZWJG
cmFtZUxvYWRlckNsaWVudDo6ZnJhbWVJRCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376295</attachid>
            <date>2019-08-14 12:43:34 -0700</date>
            <delta_ts>2019-08-14 12:51:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199986-20190814124333.patch</filename>
            <type>text/plain</type>
            <size>428871</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmE3MDY4NjA3ZWFlOTVj
NTA0YWRlOThlNGIyZDQ4NzlmMjY2NDRmOS4uOTM1OGNjMTBmYjk5ZjFkMTE2ZmEyNDUwMzVhM2Ri
MDgzMjEwYTc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE5LTA4LTE0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBPYmplY3RJ
ZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+IGZvciBmcmFtZUlEcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5OTg2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBzdHJvbmdseS10eXBl
ZCBGcmFtZUlkZW50aWZpZXIgaW5zdGVhZCBvZiB1aW50NjRfdCBhcyBmcmFtZSBpZGVudGlmaWVy
cyBldmVyeXdoZXJlLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGxvYWRlci9Db29raWVKYXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q29va2llSmFyOjpjb29raWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tpZUphcjo6
c2V0Q29va2llcyk6CisgICAgICAgIChXZWJDb3JlOjpDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tpZUphcjo6Z2V0
UmF3Q29va2llcyBjb25zdCk6CisgICAgICAgICogbG9hZGVyL0Nvb2tpZUphci5oOgorICAgICAg
ICAqIGxvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3Bw
OgorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
OjpOYXZpZ2F0aW9uQWN0aW9uOjpSZXF1ZXN0ZXI6OmZyYW1lSUQgY29uc3QpOgorICAgICAgICAq
IHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9HbG9iYWxGcmFtZUlkZW50aWZp
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Okdsb2JhbEZyYW1lSWRlbnRpZmllcjo6ZGVjb2RlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Nvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzaG91bGRCbG9ja0Nv
b2tpZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpo
YXNTdG9yYWdlQWNjZXNzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6Z3JhbnRTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW06CisgICAgICAg
IChXZWJDb3JlOjpjb29raWVzRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZXNGb3JT
ZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2ll
c0ZvckRPTSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzIGNvbnN0KToK
KwogMjAxOS0wOC0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAg
ICAgVXBkYXRlIFdvcmtlcjo6bm90aWZ5RmluaXNoZWQgdG8gbm90IHVzZSBlbXB0eVNlc3Npb25J
RApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA1NGI3OTc3NmIwNTc1YjFhODgzY2Y2OTc4ZmFjZDBhMTU1Y2NhOWM1Li40
NTg3MjQyZjU2N2Q0YzBiMmVlZjgwYmIxOTJmYWJiZjE1ODIwMjk3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDM0OSBAQAorMjAxOS0wOC0xNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KKworICAgICAgICBVc2UgT2JqZWN0SWRlbnRpZmllcjxGcmFtZUlkZW50aWZpZXJUeXBl
PiBmb3IgZnJhbWVJRHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5OTk4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVzZSB0aGUgc3Ryb25nbHktdHlwZWQgRnJhbWVJZGVudGlmaWVyIGluc3RlYWQgb2Yg
dWludDY0X3QgYXMgZnJhbWUgaWRlbnRpZmllcnMgZXZlcnl3aGVyZS4KKworICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFudFN0b3JhZ2VB
Y2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAg
ICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmdyYW50U3RvcmFn
ZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsSGFzU3Rv
cmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEdy
YW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTSk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJv
bURPTSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpj
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXRSYXdDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpoYXNT
dG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtMb2FkQ2hlY2tlcjo6TmV0d29ya0xvYWRDaGVja2VyKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRy
eSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnROZXR3b3Jr
TG9hZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y29udmVydFRv
RG93bmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmFib3J0
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVz
cG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2Vp
dmVCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZp
bmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRp
ZEZhaWxMb2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpj
b250aW51ZVdpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OmVzY2FwZUlERm9ySlNP
Tik6CisgICAgICAgIChXZWJLaXQ6OmxvZ0Jsb2NrZWRDb29raWVJbmZvcm1hdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uSW50ZXJuYWwpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24pOgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNoYXJlZC9BUEkv
QVBJRnJhbWVIYW5kbGUuY3BwOgorICAgICAgICAoQVBJOjpGcmFtZUhhbmRsZTo6Y3JlYXRlKToK
KyAgICAgICAgKEFQSTo6RnJhbWVIYW5kbGU6OmNyZWF0ZUF1dG9jb252ZXJ0aW5nKToKKyAgICAg
ICAgKEFQSTo6RnJhbWVIYW5kbGU6OkZyYW1lSGFuZGxlKToKKyAgICAgICAgKEFQSTo6RnJhbWVI
YW5kbGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5oOgor
ICAgICAgICAoQVBJOjpGcmFtZUhhbmRsZTo6ZnJhbWVJRCBjb25zdCk6CisgICAgICAgICogU2hh
cmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5tbToKKyAgICAgICAgKC1bX1dLRnJhbWVIYW5k
bGUgaGFzaF0pOgorICAgICAgICAoLVtfV0tGcmFtZUhhbmRsZSBfZnJhbWVJRF0pOgorICAgICAg
ICAoLVtfV0tGcmFtZUhhbmRsZSBpbml0V2l0aENvZGVyOl0pOgorICAgICAgICAoLVtfV0tGcmFt
ZUhhbmRsZSBlbmNvZGVXaXRoQ29kZXI6XSk6CisgICAgICAgICogU2hhcmVkL0F1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRp
Y2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAg
ICAgKiBTaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmg6CisgICAg
ICAgICogU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tGcmFtZUhhbmRsZVJlZi5jcHA6CisgICAgICAgIChXS0ZyYW1lSGFuZGxlR2V0RnJhbWVJRCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgt
W1dLV2ViVmlldyBfcHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvOmZvckZyYW1lOl0pOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX2NhbkNoYW5nZUZyYW1lTGF5b3V0Ol0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tOgorICAgICAgICAoLVtfV0tJbnNwZWN0
b3Igc2hvd01haW5SZXNvdXJjZUZvckZyYW1lOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRv
bWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNp
bXVsYXRlZElucHV0RGlzcGF0Y2hlcjo6cnVuKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21h
dGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0
b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dG9tYXRpb25TZXNzaW9uOjp3ZWJGcmFtZUlERm9ySGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQXV0b21hdGlvblNlc3Npb246OmhhbmRsZUZvcldlYkZyYW1lSUQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c3dpdGNoVG9Ccm93c2luZ0NvbnRleHQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2FpdEZvck5hdmlnYXRpb25Ub0Nv
bXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6ZmluZFBhZ2VGb3JGcmFtZUlEKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnJlc3BvbmRUb1BlbmRpbmdGcmFtZU5hdmln
YXRpb25DYWxsYmFja3NXaXRoVGltZW91dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRp
b25TZXNzaW9uOjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZlQ2hpbGRGcmFtZUhhbmRsZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZlUGFyZW50RnJhbWVIYW5kbGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Y29tcHV0ZUVsZW1lbnRM
YXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2VsZWN0T3B0
aW9uRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpnZXRB
bGxDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OmRlbGV0
ZVNpbmdsZUNvb2tpZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjp2
aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
QXV0b21hdGlvblNlc3Npb246OnRha2VTY3JlZW5zaG90KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVu
dDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW06CisgICAgICAg
ICgtW1dLUmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyIGF0dGVtcHRSZWNvdmVyeV0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9j
a0xvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6
OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSk6CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAg
ICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UHJvdmlzaW9uYWxQYWdlUHJveHk6OnZhbGlkYXRlSW5wdXQpOgorICAgICAgICAoV2ViS2l0OjpQ
cm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZEZh
aWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFs
UGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQcm92
aXNpb25hbFBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEpOgorICAgICAg
ICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxG
b3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNp
b25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0
OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9u
YWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xv
YWRGb3JGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJv
Y2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlN1c3BlbmRlZFBhZ2VQcm94eTo6U3VzcGVuZGVkUGFnZVByb3h5
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25D
aGVja1Byb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNr
UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5
OjpmcmFtZUlEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVzZXRBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6c2VhcmNoRm9yR3JhbnRl
ZFJlcXVlc3QgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6d2FzUmVxdWVzdERlbmllZCk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVy
bWlzc2lvbkZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OmdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKToKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc0dyYW50
ZWRWaWRlb09yQXVkaW9BY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6bWFpbkZyYW1lSUQgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpmcmFtZUlEIGNvbnN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkZyYW1lUHJveHk6OldlYkZyYW1lUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJGcmFtZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6OmZyYW1lSUQgY29uc3QpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGlkQ3JlYXRlU3ViZnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmRpZENyZWF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkU3Rh
cnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6ZGlkRXhwbGljaXRPcGVuRm9yRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZl
U2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1l
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDYW5jZWxDbGllbnRSZWRpcmVj
dEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92
aXNpb25hbFVSTEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRD
aGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZEZvckZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZyYW1l
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENoYW5nZU1h
aW5Eb2N1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRp
dGxlRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZpcnN0TGF5
b3V0Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZpcnN0Vmlz
dWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFtZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZnJhbWVEaWRCZWNvbWVGcmFtZVNldCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5j
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uQXN5bmNTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNw
b25zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2VTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnVuYWJsZVRvSW1w
bGVtZW50UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0
Rm9ybSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2
aWdhdGlvbkRhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZE5hdmlnYXRl
V2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFVwZGF0ZUhpc3RvcnlUaXRsZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEFsZXJ0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0Q29uZmlybSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdFByb21wdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpydW5PcGVuUGFuZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnByaW50RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZvY3Vz
ZWRGcmFtZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZyYW1lU2V0
TGFyZ2VzdEZyYW1lQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cmVxdWVzdFN0b3JhZ2VTcGFjZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6bWFrZVN0b3JhZ2VTcGFjZVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2Vz
Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNob3VsZEFsbG93RGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6d2ViRnJhbWUgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUHJveHk6OmNhbkNyZWF0ZUZyYW1lIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpmcmFtZUNyZWF0ZWQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUHJveHk6OmRpZERlc3Ryb3lGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IF93a19wYWdlQ291bnRGb3JQcmludEZvcm1hdHRlcjpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojpjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpldmFsdWF0ZUphdmFTY3JpcHRDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZENsZWFyV2luZG93
T2JqZWN0Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5OjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJh
bWVXaXRoT3JkaW5hbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZVBhcmVudEZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Zm9jdXNG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmNvbXB1
dGVFbGVtZW50TGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eTo6c2VsZWN0T3B0aW9uRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHk6OnRha2VTY3JlZW5zaG90KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eTo6Z2V0Q29va2llc0ZvckZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZGVsZXRlQ29va2llKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dL
V2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tOgorICAgICAgICAoK1tXS1dlYlByb2Nlc3NQbHVnSW5G
cmFtZSBsb29rVXBGcmFtZUZyb21IYW5kbGU6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3Ry
YXRlZ3k6OnNjaGVkdWxlTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5
OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJM
b2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJS
ZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxSZXNvdXJjZUxvYWQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVyOjpzdG9wTG9hZGluZ0FmdGVyWEZyYW1l
T3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNvdXJjZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omluc3RhbGxTZXJ2aWNlV29ya2VyKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZCBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6aGFzU3RvcmFnZUFjY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cmVxdWVzdFN0b3JhZ2VBY2Nl
c3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlE
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGlkRmFpbFByb3Zpc2lvbmFsTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkNvb2tpZUphci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6
Y29va2llcyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6c2V0Q29va2ll
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZp
ZWxkVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVKYXI6OmdldFJhd0Nv
b2tpZXMgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJGcmFtZTo6V2ViRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpnZW5lcmF0ZUZy
YW1lSUQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6ZnJhbWVJRCBjb25zdCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
Ykluc3BlY3Rvcjo6c2hvd01haW5SZXNvdXJjZUZvckZyYW1lKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxvYWRVUkxJbkZyYW1lKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9hZERhdGFJbkZyYW1lKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6c3RvcExvYWRpbmdGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmNvbnRpbnVlV2lsbFN1Ym1pdEZvcm0pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpydW5K
YXZhU2NyaXB0SW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldFNvdXJjZUZv
ckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0TWFpblJlc291cmNlRGF0YU9m
RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRSZXNvdXJjZURhdGFGcm9tRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRXZWJBcmNoaXZlT2ZGcmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmFkZENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6c2VuZENTUFZpb2xhdGlvblJlcG9ydCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6YmVnaW5QcmludGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
ZHJhd1JlY3RUb0ltYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZHJhd1BhZ2VzVG9Q
REYpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmF3UGFnZXNUb1BERkltcGwpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmF3UGFnZXNGb3JQcmludGluZyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmZyYW1lQmVjYW1lUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVl
c3RTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2hvdWxkQWxsb3dE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERG
RG9jdW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmlu
dGluZ0FuZERyYXdUb1BERik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQ
YWdlTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmlu
dGluZ1BERkRvY3VtZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp3ZWJGcmFtZSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmFkZFdlYkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6cmVtb3ZlV2ViRnJhbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
OgorCiAyMDE5LTA4LTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgdXNlIG9mIGVtcHR5U2Vzc2lvbklEIGZyb20gTmV0d29ya0xvYWRQYXJhbWV0
ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggODllZTNjYmU0NzY3YWVlNjU1MjE2
Njk1NjBlY2RlOGVkMTA2YTI3ZS4uODMwYTc4MjViOTFkZmQxNmU3Y2Y3MTkyN2Q3MTM4ODkxYjA3
NDYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5
LTA4LTE0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAg
IFVzZSBPYmplY3RJZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+IGZvciBmcmFtZUlEcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5OTg2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBz
dHJvbmdseS10eXBlZCBGcmFtZUlkZW50aWZpZXIgaW5zdGVhZCBvZiB1aW50NjRfdCBhcyBmcmFt
ZSBpZGVudGlmaWVycyBldmVyeXdoZXJlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlEIGNv
bnN0KToKKwogMjAxOS0wOC0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6YmxvYlNpemUgc2hvdWxkIHRha2UgYSBT
ZXNzaW9uSUQgYXMgcGFyYW1ldGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjdiZTc0OTNmYjM0N2U3YWVjNWQxMTdjYzVjYzY5
YThhMWVmYzFlMy4uNDk1N2JhYmM5N2IxNzEwNGE0NDUzNWU0MzgzZmRmYThiMTI3NDIwMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMjgwLDYgKzI4MCw3IEBACiAJCTBGMDNDMDc0MTg4NDY5NUUwMEE1RjhDQSAvKiBTeXN0ZW1N
ZW1vcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MDNDMDczMTg4NDY5NUUwMEE1RjhDQSAvKiBTeXN0ZW1NZW1vcnkuaCAqLzsgfTsKIAkJMEYwM0Mw
NzUxODg0ODA1NTAwQTVGOENBIC8qIEluc3BlY3Rvck92ZXJsYXkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNTIyRDRBMTVCNDc4QjIwMDlCN0M5NSAv
KiBJbnNwZWN0b3JPdmVybGF5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMEYwOTlEMDkxN0I5NjhBMTAwRkY4NEI5IC8qIFdlYkNvcmVUeXBlZEFy
cmF5Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEYwOTlEMDcxN0I5NjhBMTAwRkY4NEI5IC8qIFdlYkNvcmVUeXBlZEFycmF5Q29udHJv
bGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTBGMTE3ODE4MjJFM0M0N0YwMDhCRDU3MCAvKiBGcmFtZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTE3ODE2MjJFM0M0N0UwMDhC
RDU3MCAvKiBGcmFtZUlkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkwRjExQTU0RjBGMzkyMzMxMDBDMzc4ODQgLyogUmVuZGVyU2Vs
ZWN0aW9uSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEYxMUE1NEUwRjM5MjMzMTAwQzM3ODg0IC8qIFJlbmRlclNlbGVjdGlvbkluZm8uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjEzMTYzRTE2
RUQwQ0M4MDAzNUNDMDQgLyogUGxhdGZvcm1DQUZpbHRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTMxNjNEMTZFRDBDQzgwMDM1Q0MwNCAvKiBQ
bGF0Zm9ybUNBRmlsdGVycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTBGMTVEQThBMEYzQUFFRTcwMDAwQ0U0NyAvKiBDU1NBbmltYXRpb25Db250
cm9sbGVyUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEYxNURBODkwRjNBQUVFNzAwMDBDRTQ3IC8qIENTU0FuaW1hdGlvbkNvbnRyb2xsZXJQ
cml2YXRlLmggKi87IH07CkBAIC01NTc4LDYgKzU1NzksNyBAQAogCQkwRjAzQzA3MzE4ODQ2OTVF
MDBBNUY4Q0EgLyogU3lzdGVtTWVtb3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFN5c3RlbU1lbW9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjA5OUQw
NjE3Qjk2OEExMDBGRjg0QjkgLyogV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvcmVUeXBlZEFycmF5Q29udHJv
bGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMDk5RDA3MTdCOTY4QTEw
MEZGODRCOSAvKiBXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMTE3ODE2MjJFM0M0N0UwMDhCRDU3MCAvKiBGcmFtZUlk
ZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRnJhbWVJZGVudGlm
aWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMTFBNTRFMEYzOTIzMzEwMEMz
Nzg4NCAvKiBSZW5kZXJTZWxlY3Rpb25JbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbmRlclNlbGVjdGlvbkluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEYxMzE2M0QxNkVEMENDODAwMzVDQzA0IC8qIFBsYXRmb3JtQ0FGaWx0ZXJzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtQ0FGaWx0ZXJzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMTMxNjNGMTZFRDBDREUwMDM1Q0MwNCAvKiBQbGF0Zm9y
bUNBRmlsdGVyc0NvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gUGxhdGZvcm1DQUZpbHRlcnNDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTIwMjA0LDYgKzIwMjA2LDcgQEAKIAkJCQk2NUJGMDIyQTA5NzQ4MTYzMDBDNDMxOTYgLyog
RnJhbWUuaCAqLywKIAkJCQk5NzRBODYyMDE0QjdBREJCMDAzRkRDNzYgLyogRnJhbWVEZXN0cnVj
dGlvbk9ic2VydmVyLmNwcCAqLywKIAkJCQk5NzRBODYyMTE0QjdBREJCMDAzRkRDNzYgLyogRnJh
bWVEZXN0cnVjdGlvbk9ic2VydmVyLmggKi8sCisJCQkJMEYxMTc4MTYyMkUzQzQ3RTAwOEJENTcw
IC8qIEZyYW1lSWRlbnRpZmllci5oICovLAogCQkJCUM0Q0Q2Mjk4MTgzODM3NjYwMDdFQkFGMSAv
KiBGcmFtZVNuYXBzaG90dGluZy5jcHAgKi8sCiAJCQkJQzRDRDYyOTkxODM4Mzc2NjAwN0VCQUYx
IC8qIEZyYW1lU25hcHNob3R0aW5nLmggKi8sCiAJCQkJNjVBMjE0ODIwOTdBM0Y1MzAwQjkwNTBB
IC8qIEZyYW1lVHJlZS5jcHAgKi8sCkBAIC0yOTI1NSw2ICsyOTI1OCw3IEBACiAJCQkJQTg1MzEy
M0QxMUQwNDcxQjAwRDREMDc3IC8qIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNjVCRjAyMkYwOTc0ODE2MzAwQzQzMTk2IC8qIEZyYW1lLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5NzRBODYyMzE0QjdBREJCMDAzRkRDNzYgLyogRnJhbWVEZXN0cnVjdGlv
bk9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjExNzgxODIyRTNDNDdGMDA4QkQ1NzAg
LyogRnJhbWVJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTZEMzczQzBBREJBNURF
MDBBNDU1NEQgLyogRnJhbWVMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NkQzNzNFMEFE
QkE1REUwMEE0NTU0RCAvKiBGcmFtZUxvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RDAwMEVCQTMxMUJEQUZENDAwQzQ3NzI2IC8qIEZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmggaW4g
SGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5jcHAKaW5kZXggNjk2MzAzMzBi
NWQ3OTMwZDdkN2FhZjFkZGI0YTg5ZGZiNjBkZGRjYy4uNmQwMzYyZTk3NjQxODhiNjA4NGNiYWE4
Y2MxNDJkNGQzOTFmNWE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tp
ZUphci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5jcHAKQEAgLTcx
LDcgKzcxLDcgQEAgU3RyaW5nIENvb2tpZUphcjo6Y29va2llcyhEb2N1bWVudCYgZG9jdW1lbnQs
IGNvbnN0IFVSTCYgdXJsKSBjb25zdAogCiAgICAgYXV0byBpbmNsdWRlU2VjdXJlQ29va2llcyA9
IHNob3VsZEluY2x1ZGVTZWN1cmVDb29raWVzKGRvY3VtZW50LCB1cmwpOwogCi0gICAgT3B0aW9u
YWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFt
ZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7CiAgICAgaWYgKGF1dG8q
IGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkgewogICAgICAgICBmcmFtZUlEID0gZnJhbWUtPmxv
YWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKTsKQEAgLTk0LDcgKzk0LDcgQEAgQ29va2llUmVxdWVz
dEhlYWRlckZpZWxkUHJveHkgQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94
eShjb25zdCBEb2MKIHsKICAgICBUcmFjZVNjb3BlIHNjb3BlKEZldGNoQ29va2llc1N0YXJ0LCBG
ZXRjaENvb2tpZXNFbmQpOwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAg
T3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiBwYWdlSUQ7CiAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkg
ewogICAgICAgICBmcmFtZUlEID0gZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKTsK
QEAgLTEwNiw3ICsxMDYsNyBAQCBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eSBDb29raWVK
YXI6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5KGNvbnN0IERvYwogCiB2b2lkIENvb2tp
ZUphcjo6c2V0Q29va2llcyhEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25z
dCBTdHJpbmcmIGNvb2tpZVN0cmluZykKIHsKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQ7CiAgICAgT3B0aW9uYWw8
UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5m
cmFtZSgpKSB7CiAgICAgICAgIGZyYW1lSUQgPSBmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuZnJh
bWVJRCgpOwpAQCAtMTI4LDcgKzEyOCw3IEBAIGJvb2wgQ29va2llSmFyOjpjb29raWVzRW5hYmxl
ZChjb25zdCBEb2N1bWVudCYpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGQ6OnBh
aXI8U3RyaW5nLCBTZWN1cmVDb29raWVzQWNjZXNzZWQ+IENvb2tpZUphcjo6Y29va2llUmVxdWVz
dEhlYWRlckZpZWxkVmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBjb25zdCBVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwg
T3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdl
SUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAorc3Rk
OjpwYWlyPFN0cmluZywgU2VjdXJlQ29va2llc0FjY2Vzc2VkPiBDb29raWVKYXI6OmNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgY29uc3QgVVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1
cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMp
IGNvbnN0CiB7CiAgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBtX3N0b3JhZ2VTZXNzaW9uUHJvdmlk
ZXItPnN0b3JhZ2VTZXNzaW9uKCkpIHsKICAgICAgICAgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4g
cmVzdWx0ID0gc2Vzc2lvbi0+Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoZmlyc3RQYXJ0
eSwgc2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgaW5jbHVkZVNlY3VyZUNvb2tp
ZXMpOwpAQCAtMTQxLDcgKzE0MSw3IEBAIHN0ZDo6cGFpcjxTdHJpbmcsIFNlY3VyZUNvb2tpZXNB
Y2Nlc3NlZD4gQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1CiAKIFN0cmlu
ZyBDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgVVJMJiB1cmwpIGNvbnN0CiB7Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEOwogICAgIE9wdGlv
bmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7CiAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1l
bnQuZnJhbWUoKSkgewogICAgICAgICBmcmFtZUlEID0gZnJhbWUtPmxvYWRlcigpLmNsaWVudCgp
LmZyYW1lSUQoKTsKQEAgLTE1Niw3ICsxNTYsNyBAQCBTdHJpbmcgQ29va2llSmFyOjpjb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdQog
CiBib29sIENvb2tpZUphcjo6Z2V0UmF3Q29va2llcyhjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQs
IGNvbnN0IFVSTCYgdXJsLCBWZWN0b3I8Q29va2llPiYgY29va2llcykgY29uc3QKIHsKLSAgICBP
cHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+
IGZyYW1lSUQ7CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKICAgICBpZiAo
YXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGZyYW1lSUQgPSBmcmFt
ZS0+bG9hZGVyKCkuY2xpZW50KCkuZnJhbWVJRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0Nvb2tpZUphci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5o
CmluZGV4IDI4MWY4NGM0OTAwNTI2N2VhMDU0ZDUxZDc2OGE5ZWI3MzJjYmMyMzkuLjgwODdiOGNk
NWI3Y2Y0ZjU2OTNlMmY3ZTk1ZDhlZjZhMTc5ODQ2YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Db29raWVKYXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2ll
SmFyLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJGcmFt
ZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJQYWdlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC01OSw3ICs2
MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29va2llcyhEb2N1bWVudCYsIGNv
bnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKTsKIAogICAgIHZpcnR1YWwgYm9v
bCBjb29raWVzRW5hYmxlZChjb25zdCBEb2N1bWVudCYpIGNvbnN0OwotICAgIHZpcnR1YWwgc3Rk
OjpwYWlyPFN0cmluZywgU2VjdXJlQ29va2llc0FjY2Vzc2VkPiBjb29raWVSZXF1ZXN0SGVhZGVy
RmllbGRWYWx1ZShjb25zdCBQQUw6OlNlc3Npb25JRCYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwg
Y29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1l
SUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0
OworICAgIHZpcnR1YWwgc3RkOjpwYWlyPFN0cmluZywgU2VjdXJlQ29va2llc0FjY2Vzc2VkPiBj
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBQQUw6OlNlc3Npb25JRCYsIGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2Vj
dXJlQ29va2llcykgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGdldFJhd0Nvb2tpZXMoY29uc3Qg
RG9jdW1lbnQmLCBjb25zdCBVUkwmLCBWZWN0b3I8Q29va2llPiYpIGNvbnN0OwogICAgIHZpcnR1
YWwgdm9pZCBkZWxldGVDb29raWUoY29uc3QgRG9jdW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBT
dHJpbmcmIGNvb2tpZU5hbWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJh
bWVMb2FkZXJDbGllbnQuaAppbmRleCAxZjdhMjljNGIzMDFhMzY1ODIyZTQyMzNiNDE1ZGQxYzAw
MTkxMzJkLi5lNTlkMTcwZGYwYmEwOGEyYzRmNjAzZmRjZmE4MzU3ZGZmODliZGI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTMyLDcg
KzMyLDcgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgRW1wdHlGcmFtZUxvYWRlckNsaWVudCA6IHB1
YmxpYyBGcmFtZUxvYWRlckNsaWVudCB7CiAKICAgICB2b2lkIGZyYW1lTG9hZGVyRGVzdHJveWVk
KCkgb3ZlcnJpZGUgeyB9CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIFdURjo6bnVsbG9wdDsgfQorICAgIE9wdGlvbmFsPEZyYW1lSWRl
bnRpZmllcj4gZnJhbWVJRCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFdURjo6bnVsbG9wdDsg
fQogICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBj
b25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQu
aAppbmRleCAwNzQ4NzYxMThkYzY5MWFhN2M4YWRhOTdiNzk3MTM3MzNhMjhhNjk1Li5lZDg0N2Ni
MDQ3ODUyNWU1MjEwZjFjYzg1YjdmZWM1M2NlNzIyMmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjksNiArMjksNyBAQAogCiAjcHJhZ21hIG9uY2UK
IAorI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlw
ZXMuaCIKICNpbmNsdWRlICJMYXlvdXRNaWxlc3RvbmUuaCIKICNpbmNsdWRlICJMaW5rSWNvbi5o
IgpAQCAtMTI4LDcgKzEyOSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbWFrZVJlcHJl
c2VudGF0aW9uKERvY3VtZW50TG9hZGVyKikgPSAwOwogCiAgICAgdmlydHVhbCBPcHRpb25hbDxQ
YWdlSWRlbnRpZmllcj4gcGFnZUlEKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBPcHRpb25hbDxGcmFt
ZUlkZW50aWZpZXI+IGZyYW1lSUQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQoKSBjb25zdCA9IDA7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwCmluZGV4IDYyYmEyZGQy
Zjc3MGE0MDZlMTVjOTAzOTVlNDE3YzQyYzI4ZjUyMGUuLmJkNzM4ZTA4OTU3ZTJmZDg0ZGEwNTVh
YjQ1M2UxYTQzZTBiMjg4ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZp
Z2F0aW9uQWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFj
dGlvbi5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogTmF2aWdhdGlv
bkFjdGlvbjo6UmVxdWVzdGVyOjpSZXF1ZXN0ZXIoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KQog
ICAgIDogbV91cmwgeyBVUkwgeyBkb2N1bWVudC51cmwoKSB9IH0KICAgICAsIG1fb3JpZ2luIHsg
bWFrZVJlZlB0cihkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpKSB9Ci0gICAgLCBtX3BhZ2VJREFu
ZEZyYW1lSURQYWlyIHsgZG9jdW1lbnQuZnJhbWUoKSA/IHN0ZDo6bWFrZV9wYWlyKGRvY3VtZW50
LmZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgpLnBhZ2VJRCgpLnZhbHVlT3IoUGFnZUlkZW50aWZp
ZXIgeyB9KSwgZG9jdW1lbnQuZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkuZnJhbWVJRCgpLnZh
bHVlT3IoMCkpIDogc3RkOjptYWtlX3BhaXI8UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90Pih7IH0s
IDApIH0KKyAgICAsIG1fcGFnZUlEQW5kRnJhbWVJRFBhaXIgeyBkb2N1bWVudC5mcmFtZSgpID8g
c3RkOjptYWtlX3BhaXIoZG9jdW1lbnQuZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkucGFnZUlE
KCkudmFsdWVPcihQYWdlSWRlbnRpZmllciB7IH0pLCBkb2N1bWVudC5mcmFtZSgpLT5sb2FkZXIo
KS5jbGllbnQoKS5mcmFtZUlEKCkudmFsdWVPcihGcmFtZUlkZW50aWZpZXIgeyB9KSkgOiBzdGQ6
Om1ha2VfcGFpcjxQYWdlSWRlbnRpZmllciwgRnJhbWVJZGVudGlmaWVyPih7IH0sIHsgfSkgfQog
ewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaAppbmRleCAzNWM5
NjFhYTE1NDdiOGVhMGM0YjkwNDA3MDNjODVkM2VhOGU3ZTU3Li4wYTAyMWQ0ZmM3OWQ5NmIzZjJh
ODhiYWU0MDQ1NjE5MTA0Y2U5MGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
TmF2aWdhdGlvbkFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9u
QWN0aW9uLmgKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkFkQ2xpY2tBdHRyaWJ1dGlv
bi5oIgogI2luY2x1ZGUgIkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJG
cmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVk
ZSAiTGF5b3V0UG9pbnQuaCIKICNpbmNsdWRlICJQYWdlSWRlbnRpZmllci5oIgpAQCAtNjQsNyAr
NjUsNyBAQCBwdWJsaWM6CiAgICAgTmF2aWdhdGlvbkFjdGlvbihOYXZpZ2F0aW9uQWN0aW9uJiYp
OwogICAgIE5hdmlnYXRpb25BY3Rpb24mIG9wZXJhdG9yPShOYXZpZ2F0aW9uQWN0aW9uJiYpOwog
Ci0gICAgdXNpbmcgUGFnZUlEQW5kRnJhbWVJRFBhaXIgPSBzdGQ6OnBhaXI8UGFnZUlkZW50aWZp
ZXIsIHVpbnQ2NF90IC8qIGZyYW1lSUQgKi8+OworICAgIHVzaW5nIFBhZ2VJREFuZEZyYW1lSURQ
YWlyID0gc3RkOjpwYWlyPFBhZ2VJZGVudGlmaWVyLCBGcmFtZUlkZW50aWZpZXI+OyAvLyBGSVhN
RTogVXNlIEdsb2JhbEZyYW1lSWRlbnRpZmllci4KICAgICBjbGFzcyBSZXF1ZXN0ZXIgewogICAg
IHB1YmxpYzoKICAgICAgICAgUmVxdWVzdGVyKGNvbnN0IERvY3VtZW50Jik7CkBAIC03Miw3ICs3
Myw3IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3QgVVJMJiB1cmwoKSBjb25zdCB7IHJldHVybiBt
X3VybDsgfQogICAgICAgICBjb25zdCBTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4oKSBj
b25zdCB7IHJldHVybiAqbV9vcmlnaW47IH0KICAgICAgICAgUGFnZUlkZW50aWZpZXIgcGFnZUlE
KCkgY29uc3QgeyByZXR1cm4gbV9wYWdlSURBbmRGcmFtZUlEUGFpci5maXJzdDsgfQotICAgICAg
ICB1aW50NjRfdCBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlSURBbmRGcmFtZUlEUGFp
ci5zZWNvbmQ7IH0KKyAgICAgICAgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQoKSBjb25zdCB7IHJl
dHVybiBtX3BhZ2VJREFuZEZyYW1lSURQYWlyLnNlY29uZDsgfQogICAgIHByaXZhdGU6CiAgICAg
ICAgIFVSTCBtX3VybDsKICAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBtX29yaWdpbjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGMyNWEwMjRiYzA2M2M1OGYzYjI4YmQ3
OWNiYjAzMzg0NDI2YzhjNWUuLmU4YTVkZTMzZWQxNzkyNmM5YWE4NTZiMDgxNmI0ZWVjZjgyYzk0
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMzAsNiArMzAsNyBAQAogI2lu
Y2x1ZGUgIkRpc3BsYXlSZWZyZXNoTW9uaXRvci5oIgogI2luY2x1ZGUgIkRvY3VtZW50U3RvcmFn
ZUFjY2Vzcy5oIgogI2luY2x1ZGUgIkZvY3VzRGlyZWN0aW9uLmgiCisjaW5jbHVkZSAiRnJhbWVJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJHcmFwaGlj
c0NvbnRleHQuaCIKICNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCkBAIC00ODYsOCArNDg3LDgg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgUmVmUHRyPEljb24+IGNyZWF0ZUljb25Gb3JGaWxlcyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYgLyogZmlsZW5hbWVzICovKSA9IDA7CiAKICNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIHZpcnR1YWwgdm9pZCBoYXNTdG9yYWdlQWNj
ZXNzKFJlZ2lzdHJhYmxlRG9tYWluJiYgLypzdWJGcmFtZURvbWFpbiovLCBSZWdpc3RyYWJsZURv
bWFpbiYmIC8qdG9wRnJhbWVEb21haW4qLywgdWludDY0X3QgLypmcmFtZUlEKi8sIFBhZ2VJZGVu
dGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOyB9Ci0gICAgdmlydHVhbCB2b2lkIHJl
cXVlc3RTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWluJiYgLypzdWJGcmFtZURvbWFpbiov
LCBSZWdpc3RyYWJsZURvbWFpbiYmIC8qdG9wRnJhbWVEb21haW4qLywgdWludDY0X3QgLypmcmFt
ZUlEKi8sIFBhZ2VJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFn
ZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQ6
Ok5vLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd246Ok5vKTsgfQorICAgIHZpcnR1YWwgdm9p
ZCBoYXNTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWluJiYgLypzdWJGcmFtZURvbWFpbiov
LCBSZWdpc3RyYWJsZURvbWFpbiYmIC8qdG9wRnJhbWVEb21haW4qLywgRnJhbWVJZGVudGlmaWVy
LCBQYWdlSWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsgfQorICAgIHZpcnR1
YWwgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIC8qc3ViRnJh
bWVEb21haW4qLywgUmVnaXN0cmFibGVEb21haW4mJiAvKnRvcEZyYW1lRG9tYWluKi8sIEZyYW1l
SWRlbnRpZmllciwgUGFnZUlkZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChT
dG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihTdG9yYWdlQWNjZXNzV2FzR3Jh
bnRlZDo6Tm8sIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bjo6Tm8pOyB9CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lSWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUlkZW50
aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42NWQ0OTY3YWIxYjQ1NDIzNThlODY3MjQwNWNiNjZiN2Q3OGQ3
MjI2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUlkZW50aWZp
ZXIuaApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Vu
dW0gRnJhbWVJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBGcmFtZUlkZW50aWZpZXIgPSBPYmpl
Y3RJZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+OworCitpbmxpbmUgRnJhbWVJZGVudGlm
aWVyIGZyYW1lSWRlbnRpZmllckZyb21JRCh1aW50NjRfdCBmcmFtZUlEKQoreworICAgIHJldHVy
biBtYWtlT2JqZWN0SWRlbnRpZmllcjxGcmFtZUlkZW50aWZpZXJUeXBlPihmcmFtZUlEKTsKK30K
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9HbG9iYWxGcmFtZUlkZW50aWZp
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2xvYmFsRnJhbWVJZGVudGlmaWVyLmgKaW5kZXgg
MGQ3YjNkYmY3MmY4MWU0ZmQ2MmE3M2ZlZDI1ODFjZWFlZTE2N2I0YS4uNzA5MzQ2N2IxMmY4NTY2
MWE4ZjdmYWRmMDJiMzU3Nzk5NGViNmEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9HbG9iYWxGcmFtZUlkZW50aWZpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0dsb2Jh
bEZyYW1lSWRlbnRpZmllci5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisj
aW5jbHVkZSAiRnJhbWVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIK
ICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KIApAQCAtMzMsNyArMzQsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAvLyBGcmFtZSBpZGVudGlmaWVyIHRoYXQgaXMgdW5pcXVlIGFjcm9zcyBhbGwg
V2ViQ29udGVudCBwcm9jZXNzZXMuCiBzdHJ1Y3QgR2xvYmFsRnJhbWVJZGVudGlmaWVyIHsKICAg
ICBQYWdlSWRlbnRpZmllciBwYWdlSUQ7Ci0gICAgdWludDY0X3QgZnJhbWVJRDsKKyAgICBGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRDsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgT3B0aW9uYWw8R2xvYmFsRnJhbWVJZGVudGlmaWVyPiBkZWNvZGUoRGVjb2RlciYpOwpAQCAt
NTMsNyArNTQsNyBAQCBPcHRpb25hbDxHbG9iYWxGcmFtZUlkZW50aWZpZXI+IEdsb2JhbEZyYW1l
SWRlbnRpZmllcjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgaWYgKCFwYWdlSUQpCiAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJh
bWVJRDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQ7CiAgICAgZGVjb2Rl
ciA+PiBmcmFtZUlEOwogICAgIGlmICghZnJhbWVJRCkKICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ29va2ll
UmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaAppbmRleCBhMzMwMTlmOWQ1YjJhZWQy
NjA3NDY2OTQwMWZkNzMyMmYwMmQ1MTU3Li43ZmE5MDE0M2U0ZmUxNzdhNzRiMjg0MDcxYjhjMmQ2
ZWI1NjgyYTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Nv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9Db29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eS5oCkBAIC0yNiw2ICsyNiw3
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkNvb2tpZUphci5oIgorI2luY2x1ZGUgIkZy
YW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAi
U2FtZVNpdGVJbmZvLmgiCiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgpAQCAtMzgsNyArMzks
NyBAQCBzdHJ1Y3QgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkgewogICAgIFVSTCBmaXJz
dFBhcnR5OwogICAgIFNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm87CiAgICAgVVJMIHVybDsKLSAg
ICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZp
ZXI+IGZyYW1lSUQ7CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKICAgICBJ
bmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcyB7IEluY2x1ZGVTZWN1cmVD
b29raWVzOjpObyB9OwogCkBAIC03OCw3ICs3OSw3IEBAIE9wdGlvbmFsPENvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFByb3h5PiBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eTo6ZGVjb2RlKERl
CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh1cmwpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAgT3B0aW9uYWw8T3B0
aW9uYWw8RnJhbWVJZGVudGlmaWVyPj4gZnJhbWVJRDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGZyYW1lSUQpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCkBAIC05MSw3ICs5Miw3
IEBAIE9wdGlvbmFsPENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5PiBDb29raWVSZXF1ZXN0
SGVhZGVyRmllbGRQcm94eTo6ZGVjb2RlKERlCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmNs
dWRlU2VjdXJlQ29va2llcykpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBy
ZXR1cm4gQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkgeyAqc2Vzc2lvbklELCBXVEZNb3Zl
KGZpcnN0UGFydHkpLCBXVEZNb3ZlKHNhbWVTaXRlSW5mbyksIFdURk1vdmUodXJsKSwgZnJhbWVJ
RCwgKnBhZ2VJRCwgaW5jbHVkZVNlY3VyZUNvb2tpZXMgfTsKKyAgICByZXR1cm4gQ29va2llUmVx
dWVzdEhlYWRlckZpZWxkUHJveHkgeyAqc2Vzc2lvbklELCBXVEZNb3ZlKGZpcnN0UGFydHkpLCBX
VEZNb3ZlKHNhbWVTaXRlSW5mbyksIFdURk1vdmUodXJsKSwgKmZyYW1lSUQsICpwYWdlSUQsIGlu
Y2x1ZGVTZWN1cmVDb29raWVzIH07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uLmNwcAppbmRleCBlNzE5MDdkOTc3ZGY1OTI3M2Y0OTE5YzU2NTFhZjE3MzZmYjFhNjdm
Li5mNGIwOWE4ZDVlMWFkOTQ4NGVkN2IzMmViNTZlMzk2Zjc1ZGFjOTBlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Np
b24uY3BwCkBAIC03OSwxMiArNzksMTIgQEAgYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNo
b3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXNCdXRLZWVwRmlyc3RQYXJ0eUNvb2tpZXMKICAgICBy
ZXR1cm4gbV9yZWdpc3RyYWJsZURvbWFpbnNUb0Jsb2NrQnV0S2VlcENvb2tpZXNGb3IuY29udGFp
bnMocmVnaXN0cmFibGVEb21haW4pOwogfQogCi1ib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
c2hvdWxkQmxvY2tDb29raWVzKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgT3B0aW9u
YWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQpIGNv
bnN0Citib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2hvdWxkQmxvY2tDb29raWVzKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFt
ZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEKSBjb25zdAogewogICAgIHJldHVy
biBzaG91bGRCbG9ja0Nvb2tpZXMocmVxdWVzdC5maXJzdFBhcnR5Rm9yQ29va2llcygpLCByZXF1
ZXN0LnVybCgpLCBmcmFtZUlELCBwYWdlSUQpOwogfQogICAgIAotYm9vbCBOZXR3b3JrU3RvcmFn
ZVNlc3Npb246OnNob3VsZEJsb2NrQ29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHlGb3JDb29r
aWVzLCBjb25zdCBVUkwmIHJlc291cmNlLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0
aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkgY29uc3QKK2Jvb2wgTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uOjpzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5Rm9yQ29va2ll
cywgY29uc3QgVVJMJiByZXNvdXJjZSwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlE
LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEKSBjb25zdAogewogICAgIFJlZ2lzdHJh
YmxlRG9tYWluIGZpcnN0UGFydHlEb21haW4geyBmaXJzdFBhcnR5Rm9yQ29va2llcyB9OwogICAg
IGlmIChmaXJzdFBhcnR5RG9tYWluLmlzRW1wdHkoKSkKQEAgLTEzNiw3ICsxMzYsNyBAQCB2b2lk
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6cmVtb3ZlUHJldmFsZW50RG9tYWlucyhjb25zdCBWZWN0
b3I8UmVnaXN0cmFibGVEb21haQogICAgIH0KIH0KIAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Np
b246Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9t
YWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkgY29uc3QKK2Jvb2wgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlE
b21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIg
cGFnZUlEKSBjb25zdAogewogICAgIGlmIChmcmFtZUlEKSB7CiAgICAgICAgIGF1dG8gZnJhbWVz
R3JhbnRlZEl0ZXJhdG9yID0gbV9mcmFtZXNHcmFudGVkU3RvcmFnZUFjY2Vzcy5maW5kKHBhZ2VJ
RCk7CkBAIC0xNjksNyArMTY5LDcgQEAgVmVjdG9yPFN0cmluZz4gTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpnZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcygpIGNvbnN0CiAgICAgcmV0dXJuIGVudHJp
ZXM7CiB9CiAgICAgCi12b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z3JhbnRTdG9yYWdlQWNj
ZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlE
LCBQYWdlSWRlbnRpZmllciBwYWdlSUQpCit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z3Jh
bnRTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPEZyYW1l
SWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKQogewogICAgIGlmICgh
ZnJhbWVJRCkgewogICAgICAgICBpZiAoZmlyc3RQYXJ0eURvbWFpbi5pc0VtcHR5KCkpCkBAIC0x
OTEsNyArMTkxLDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdyYW50U3RvcmFnZUFj
Y2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2UKIAogICAgIGF1dG8gcGFnZXNH
cmFudGVkSXRlcmF0b3IgPSBtX2ZyYW1lc0dyYW50ZWRTdG9yYWdlQWNjZXNzLmZpbmQocGFnZUlE
KTsKICAgICBpZiAocGFnZXNHcmFudGVkSXRlcmF0b3IgPT0gbV9mcmFtZXNHcmFudGVkU3RvcmFn
ZUFjY2Vzcy5lbmQoKSkgewotICAgICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWdpc3RyYWJsZURv
bWFpbiwgRGVmYXVsdEhhc2g8dWludDY0X3Q+OjpIYXNoLCBXVEY6OlVuc2lnbmVkV2l0aFplcm9L
ZXlIYXNoVHJhaXRzPHVpbnQ2NF90Pj4gZW50cnk7CisgICAgICAgIEhhc2hNYXA8RnJhbWVJZGVu
dGlmaWVyLCBSZWdpc3RyYWJsZURvbWFpbj4gZW50cnk7CiAgICAgICAgIGVudHJ5LmFkZChmcmFt
ZUlELnZhbHVlKCksIHJlc291cmNlRG9tYWluKTsKICAgICAgICAgbV9mcmFtZXNHcmFudGVkU3Rv
cmFnZUFjY2Vzcy5hZGQocGFnZUlELCBlbnRyeSk7CiAgICAgfSBlbHNlIHsKQEAgLTIwMyw3ICsy
MDMsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZQogICAgIH0KIH0KIAotdm9pZCBOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQpCit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdl
SWRlbnRpZmllciBwYWdlSUQpCiB7CiAgICAgYXV0byBpdGVyYXRpb24gPSBtX2ZyYW1lc0dyYW50
ZWRTdG9yYWdlQWNjZXNzLmZpbmQocGFnZUlEKTsKICAgICBpZiAoaXRlcmF0aW9uID09IG1fZnJh
bWVzR3JhbnRlZFN0b3JhZ2VBY2Nlc3MuZW5kKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAppbmRleCBjOGVmOGY3
YmFiNzVmZDk5NzliMjgyZjVmNWE4NzAyZWY4MGM4OGIzLi44ZGRmNTViNGExZmNhNWM1NGE0OTkw
YTNhMzdjMDU5MjY2OGZlMDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNw
cmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQ3JlZGVudGlhbFN0b3JhZ2UuaCIKKyNpbmNsdWRlICJG
cmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJQYWdlSWRlbnRpZmllci5oIgogI2luY2x1ZGUg
IlJlZ2lzdHJhYmxlRG9tYWluLmgiCiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgpAQCAtMTIz
LDcgKzEyNCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNvb2tpZXNFbmFi
bGVkKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb29raWUoY29uc3QgQ29v
a2llJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb29raWVzKGNvbnN0IFZlY3RvcjxD
b29raWU+JiwgY29uc3QgVVJMJiwgY29uc3QgVVJMJiBtYWluRG9jdW1lbnRVUkwpOwotICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJh
bWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBjb25zdCBTdHJpbmcmKSBjb25zdDsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVu
dGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBjb25zdCBTdHJpbmcmKSBjb25zdDsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBDb29raWUmKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBVUkwmLCBjb25zdCBTdHJp
bmcmKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZUFsbENvb2tpZXMoKTsK
QEAgLTEzMiwyNiArMTMzLDI2IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRl
bGV0ZUNvb2tpZXNGb3JIb3N0bmFtZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGNvb2tpZUhvc3RO
YW1lcywgSW5jbHVkZUh0dHBPbmx5Q29va2llcyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9y
PENvb2tpZT4gZ2V0QWxsQ29va2llcygpOwogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxDb29r
aWU+IGdldENvb2tpZXMoY29uc3QgVVJMJik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBnZXRS
YXdDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29u
c3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlm
aWVyPiwgVmVjdG9yPENvb2tpZT4mKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGdl
dFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBj
b25zdCBVUkwmLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxQYWdlSWRlbnRp
Zmllcj4sIFZlY3RvcjxDb29raWU+JikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBm
bHVzaENvb2tpZVN0b3JlKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRIb3N0bmFtZXNX
aXRoQ29va2llcyhIYXNoU2V0PFN0cmluZz4mIGhvc3RuYW1lcyk7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90
PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVz
KSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKKyAgICBX
RUJDT1JFX0VYUE9SVCBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yRE9NKGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2Vj
dXJlQ29va2llcykgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpwYWlyPFN0cmluZywg
Ym9vbD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxGcmFtZUlkZW50aWZp
ZXI+LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25z
dDsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVSZXF1
ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eSYp
IGNvbnN0OwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLSAgICBXRUJD
T1JFX0VYUE9SVCBib29sIHNob3VsZEJsb2NrQ29va2llcyhjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
LCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+KSBj
b25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNob3VsZEJsb2NrQ29va2llcyhjb25zdCBV
UkwmIGZpcnN0UGFydHlGb3JDb29raWVzLCBjb25zdCBVUkwmIHJlc291cmNlLCBPcHRpb25hbDx1
aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+KSBjb25zdDsKKyAgICBX
RUJDT1JFX0VYUE9SVCBib29sIHNob3VsZEJsb2NrQ29va2llcyhjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4p
IGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2hvdWxkQmxvY2tDb29raWVzKGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eUZvckNvb2tpZXMsIGNvbnN0IFVSTCYgcmVzb3VyY2UsIE9wdGlvbmFs
PEZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPikgY29uc3Q7CiAgICAg
V0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzKGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91bGRC
bG9ja1RoaXJkUGFydHlDb29raWVzQnV0S2VlcEZpcnN0UGFydHlDb29raWVzRm9yKGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRQcmV2
YWxlbnREb21haW5zVG9CbG9ja0FuZERlbGV0ZUNvb2tpZXNGb3IoY29uc3QgVmVjdG9yPFJlZ2lz
dHJhYmxlRG9tYWluPiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UHJldmFsZW50RG9t
YWluc1RvQmxvY2tCdXRLZWVwQ29va2llc0Zvcihjb25zdCBWZWN0b3I8UmVnaXN0cmFibGVEb21h
aW4+Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29v
a2llcyhPcHRpb25hbDxTZWNvbmRzPik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVQ
cmV2YWxlbnREb21haW5zKGNvbnN0IFZlY3RvcjxSZWdpc3RyYWJsZURvbWFpbj4mIGRvbWFpbnMp
OwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJz
dFBhcnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIp
IGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBQYWdlSWRlbnRp
ZmllcikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFN0cmluZz4gZ2V0QWxsU3Rv
cmFnZUFjY2Vzc0VudHJpZXMoKSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdyYW50
U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVt
b3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVy
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBm
aXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBQYWdlSWRlbnRpZmll
cik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUo
RnJhbWVJZGVudGlmaWVyLCBQYWdlSWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBjbGVhclBhZ2VTcGVjaWZpY0RhdGFGb3JSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKFBhZ2VJZGVu
dGlmaWVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3Mo
KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50
UmVzb3VyY2VzKFNlY29uZHMpOwpAQCAtMTg1LDcgKzE4Niw3IEBAIHByaXZhdGU6CiAgICAgT3B0
aW9uYWw8U2Vjb25kcz4gY2xpZW50U2lkZUNvb2tpZUNhcChjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgZmlyc3RQYXJ0eSwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+KSBjb25zdDsKICAgICBIYXNo
U2V0PFJlZ2lzdHJhYmxlRG9tYWluPiBtX3JlZ2lzdHJhYmxlRG9tYWluc1RvQmxvY2tBbmREZWxl
dGVDb29raWVzRm9yOwogICAgIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+IG1fcmVnaXN0cmFi
bGVEb21haW5zVG9CbG9ja0J1dEtlZXBDb29raWVzRm9yOwotICAgIEhhc2hNYXA8UGFnZUlkZW50
aWZpZXIsIEhhc2hNYXA8dWludDY0X3QsIFJlZ2lzdHJhYmxlRG9tYWluLCBEZWZhdWx0SGFzaDx1
aW50NjRfdD46Okhhc2gsIFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8dWludDY0
X3Q+Pj4gbV9mcmFtZXNHcmFudGVkU3RvcmFnZUFjY2VzczsKKyAgICBIYXNoTWFwPFBhZ2VJZGVu
dGlmaWVyLCBIYXNoTWFwPEZyYW1lSWRlbnRpZmllciwgUmVnaXN0cmFibGVEb21haW4+PiBtX2Zy
YW1lc0dyYW50ZWRTdG9yYWdlQWNjZXNzOwogICAgIEhhc2hNYXA8UGFnZUlkZW50aWZpZXIsIEhh
c2hNYXA8UmVnaXN0cmFibGVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluPj4gbV9wYWdlc0dyYW50
ZWRTdG9yYWdlQWNjZXNzOwogICAgIE9wdGlvbmFsPFNlY29uZHM+IG1fY2FjaGVNYXhBZ2VDYXBG
b3JQcmV2YWxlbnRSZXNvdXJjZXMgeyB9OwogICAgIE9wdGlvbmFsPFNlY29uZHM+IG1fYWdlQ2Fw
Rm9yQ2xpZW50U2lkZUNvb2tpZXMgeyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29j
b2EubW0KaW5kZXggODRiNzNiODM0NGIwY2FiNWE5MDQ4YjQ4NWVmYjE3NmQ1ZDM0MDU4MS4uODVm
NGM2MmUzYmY3NGMwZGU1NDM1ZjJmMDBiZTk4NGQ4MmVhZWY2YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbkNvY29hLm1tCkBAIC0yOTQsNyArMjk0LDcgQEAgc3RhdGljIFJldGFpblB0
cjxOU0FycmF5PiBmaWx0ZXJDb29raWVzKE5TQXJyYXkgKnVuZmlsdGVyZWRDb29raWVzLCBPcHRp
b25hbDxTZWMKICAgICByZXR1cm4gZmlsdGVyZWRDb29raWVzOwogfQogCi1zdGF0aWMgTlNBcnJh
eSAqY29va2llc0ZvclVSTChjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNv
bnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+IHBhZ2VJRCkKK3N0YXRpYyBOU0FycmF5ICpjb29raWVzRm9yVVJMKGNvbnN0IE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZy
YW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkK
IHsKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlmIChzZXNzaW9u
LnNob3VsZEJsb2NrQ29va2llcyhmaXJzdFBhcnR5LCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCkpCkBA
IC0zMDcsNyArMzA3LDcgQEAgc3RhdGljIE5TQXJyYXkgKmNvb2tpZXNGb3JVUkwoY29uc3QgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGYKIH0KIAogZW51bSBJbmNs
dWRlSFRUUE9ubHlPck5vdCB7IERvTm90SW5jbHVkZUhUVFBPbmx5LCBJbmNsdWRlSFRUUE9ubHkg
fTsKLXN0YXRpYyBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yU2Vzc2lvbihjb25z
dCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwg
Y29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5j
bHVkZUhUVFBPbmx5T3JOb3QgaW5jbHVkZUhUVFBPbmx5LCBJbmNsdWRlU2VjdXJlQ29va2llcyBp
bmNsdWRlU2VjdXJlQ29va2llcykKK3N0YXRpYyBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29r
aWVzRm9yU2Vzc2lvbihjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0
IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVIVFRQT25seU9yTm90IGluY2x1ZGVIVFRQT25s
eSwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpCiB7CiAgICAgQVNT
RVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNjZXNzUmF3Q29v
a2llcykpOwogCkBAIC0zNjMsMTIgKzM2MywxMiBAQCBzdGF0aWMgdm9pZCBkZWxldGVBbGxIVFRQ
Q29va2llcyhDRkhUVFBDb29raWVTdG9yYWdlUmVmIGNvb2tpZVN0b3JhZ2UpCiAgICAgQ0ZIVFRQ
Q29va2llU3RvcmFnZURlbGV0ZUFsbENvb2tpZXMoY29va2llU3RvcmFnZSk7CiB9CiAKLXN0ZDo6
cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTShj
b25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBj
b25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29r
aWVzKSBjb25zdAorc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Ojpjb29raWVzRm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZv
JiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+
IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVD
b29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAogewogICAgIHJldHVybiBjb29raWVz
Rm9yU2Vzc2lvbigqdGhpcywgZmlyc3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQs
IHBhZ2VJRCwgRG9Ob3RJbmNsdWRlSFRUUE9ubHksIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKIH0K
IAotc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVT
aXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+
IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVD
b29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAorc3RkOjpwYWlyPFN0cmluZywgYm9v
bD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShj
b25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBj
b25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25h
bDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2Vj
dXJlQ29va2llcykgY29uc3QKIHsKICAgICByZXR1cm4gY29va2llc0ZvclNlc3Npb24oKnRoaXMs
IGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIEluY2x1ZGVI
VFRQT25seSwgaW5jbHVkZVNlY3VyZUNvb2tpZXMpOwogfQpAQCAtMzc4LDcgKzM3OCw3IEBAIHN0
ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llUmVxdWVz
dEhlYWRlckZpZWxkVmFsdWUoY29uCiAgICAgcmV0dXJuIGNvb2tpZXNGb3JTZXNzaW9uKCp0aGlz
LCBoZWFkZXJGaWVsZFByb3h5LmZpcnN0UGFydHksIGhlYWRlckZpZWxkUHJveHkuc2FtZVNpdGVJ
bmZvLCBoZWFkZXJGaWVsZFByb3h5LnVybCwgaGVhZGVyRmllbGRQcm94eS5mcmFtZUlELCBoZWFk
ZXJGaWVsZFByb3h5LnBhZ2VJRCwgSW5jbHVkZUhUVFBPbmx5LCBoZWFkZXJGaWVsZFByb3h5Lmlu
Y2x1ZGVTZWN1cmVDb29raWVzKTsKIH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNl
dENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZv
JiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBjb29raWVT
dHIpIGNvbnN0Cit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00o
Y29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywg
Y29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHIpIGNvbnN0
CiB7CiAgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2Fu
QWNjZXNzUmF3Q29va2llcykpOwogCkBAIC00NDMsNyArNDQzLDcgQEAgYm9vbCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmNvb2tpZXNFbmFibGVkKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLWJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzKGNvbnN0IFVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYg
dXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+
IHBhZ2VJRCwgVmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0Citib29sIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJh
bWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBW
ZWN0b3I8Q29va2llPiYgcmF3Q29va2llcykgY29uc3QKIHsKICAgICByYXdDb29raWVzLmNsZWFy
KCk7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKaW5kZXggNjg3ZDBiMDQ2
MWFmZGU3YzA3Mjk4YzZjOWVmZmQyNjE5NGJmNDdhYy4uNzYzYjQ3NTllNDMzZjg3MTMwYjM5NDAw
NjIzNDBiMjY4NDhlYThhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCkBAIC03MTYsNyArNzE2LDcgQEAgdm9pZCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c3luY1N0b3JhZ2VJbW1lZGlhdGVseSgpCiAg
ICAgbV9kYXRhYmFzZS5ydW5WYWN1dW1Db21tYW5kKCk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVE
b21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21h
aW4sIE9wdGlvbmFsPEZyYW1lSUQ+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3Qg
U3ViRnJhbWVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9w
RnJhbWVEb21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlkZW50
aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC03NDMsNyAr
NzQzLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzU3Rv
cmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYKICAgICB9KTsKIH0KIAotdm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3Vi
RnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21haW4mJiB0b3BGcmFtZURv
bWFpbiwgRnJhbWVJRCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2
b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFj
Y2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRv
cEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFn
ZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC04
MDQsNyArODA0LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
cmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihEb21haW4KICAgICBncmFudFN0b3JhZ2VB
Y2Nlc3NJbnRlcm5hbChXVEZNb3ZlKGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcyksIFdURk1v
dmUob3BlbmVyRG9tYWluKSwgV1RGOjpudWxsb3B0LCBvcGVuZXJQYWdlSUQsIFN0b3JhZ2VBY2Nl
c3NQcm9tcHRXYXNTaG93bjo6Tm8sIFtdKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKSB7IH0pOwog
fQogCi12b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFudFN0b3Jh
Z2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21haW4m
JiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z3JhbnRTdG9yYWdl
QWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYg
dG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBw
YWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93biwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTgxOCw3ICs4
MTgsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFudFN0
b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiBzdQogICAgIGdyYW50U3RvcmFnZUFjY2Vzc0lu
dGVybmFsKFdURk1vdmUoc3ViRnJhbWVEb21haW4pLCBXVEZNb3ZlKHRvcEZyYW1lRG9tYWluKSwg
ZnJhbWVJRCwgcGFnZUlELCBwcm9tcHRXYXNTaG93biwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwogfQogCi12b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFu
dFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBU
b3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDxGcmFtZUlEPiBmcmFtZUlE
LCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9t
cHRXYXNTaG93bk5vd09yRWFybGllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNj
ZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChTdWJGcmFt
ZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWlu
LCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duTm93T3JFYXJsaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaAppbmRl
eCAzYzhkMmIxZjE2NTQ5M2M5M2NhNWQ4MmJjMDI3MmY5MTNiN2EwN2ZhLi5kMjU2YmUyMWNmZjdi
MWY3MDU1NjQwMzFhNTc1ZjVlNWQyMzMwZWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaApAQCAtOTEsOSArOTEsOSBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIGNhbGN1bGF0ZUFuZFN1Ym1pdFRlbGVtZXRyeSgpIGNvbnN0IG92ZXJyaWRl
OwogCi0gICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29u
c3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxGcmFtZUlEPiwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIG92ZXJyaWRlOwotICAgIHZv
aWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4m
JiwgRnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgZ3JhbnRTdG9y
YWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIEZyYW1lSUQsIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hv
d24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50
ZWQpPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJh
bWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1
YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFn
ZUFjY2Vzc1N0YXR1cyk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNz
KFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9t
cHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNz
V2FzR3JhbnRlZCk+JiYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBsb2dGcmFtZU5hdmlnYXRpb24o
Y29uc3QgTmF2aWdhdGVkVG9Eb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0IE5h
dmlnYXRlZEZyb21Eb21haW4mLCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNNYWluRnJhbWUpIG92
ZXJyaWRlOwogICAgIHZvaWQgbG9nVXNlckludGVyYWN0aW9uKGNvbnN0IFRvcEZyYW1lRG9tYWlu
Jikgb3ZlcnJpZGU7CkBAIC0xNTMsNyArMTUzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFBy
ZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgUmVzb3VyY2VMb2FkUHJl
dmFsZW5jZSk7CiAgICAgdW5zaWduZWQgcmVjdXJzaXZlbHlGaW5kTm9uUHJldmFsZW50RG9tYWlu
c1RoYXRSZWRpcmVjdGVkVG9UaGlzRG9tYWluKHVuc2lnbmVkIHByaW1hcnlEb21haW5JRCwgU3Rk
U2V0PHVuc2lnbmVkPiYgbm9uUHJldmFsZW50UmVkaXJlY3Rpb25Tb3VyY2VzLCB1bnNpZ25lZCBu
dW1iZXJPZlJlY3Vyc2l2ZUNhbGxzKTsKICAgICB2b2lkIHNldERvbWFpbnNBc1ByZXZhbGVudChT
dGRTZXQ8dW5zaWduZWQ+JiYpOwotICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwo
U3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgT3B0aW9uYWw8RnJhbWVJRD4sIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hv
d24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50
ZWQpPiYmKTsKKyAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFN1YkZyYW1lRG9t
YWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
cj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0
V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dh
c0dyYW50ZWQpPiYmKTsKICAgICB2b2lkIG1hcmtBc1ByZXZhbGVudElmSGFzUmVkaXJlY3RlZFRv
UHJldmFsZW50KCk7CiAgICAgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiBlbnN1cmVQcmV2YWxl
bnRSZXNvdXJjZXNGb3JEZWJ1Z01vZGUoKSBvdmVycmlkZTsKICAgICB2b2lkIHJlbW92ZURhdGFS
ZWNvcmRzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01l
bW9yeVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCmluZGV4IGUyMzlmY2M4MDNlOGQ3
NDQ1NjEyMThkNjcyMTdmNzFlZDQxYjE4N2YuLmY2ZWU5MmY5YjY4ZDMyZjA3ZTUyMTVkMzAzNTQ5
OTUxNDRmN2E4M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TWVtb3J5U3RvcmUuY3BwCkBAIC0yMTEsNyArMjExLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWVtb3J5U3RvcmU6OnN5bmNTdG9yYWdlSW1tZWRpYXRlbHkoKQogICAgICAgICBtX3Bl
cnNpc3RlbnRTdG9yYWdlLT5zY2hlZHVsZU9yV3JpdGVNZW1vcnlTdG9yZShSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2U6OkZvcmNlSW1tZWRpYXRlV3JpdGU6Olllcyk7CiB9
CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpoYXNTdG9yYWdlQWNj
ZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgVG9wRnJhbWVE
b21haW4mIHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDxGcmFtZUlEPiBmcmFtZUlELCBQYWdlSWRl
bnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6aGFzU3Rv
cmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFRv
cEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBm
cmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4o
KSk7CiAKQEAgLTIzNSw3ICsyMzUsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1v
cnlTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYgcwogICAgIH0p
OwogfQogCi12b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVxdWVzdFN0
b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21h
aW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJRCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdl
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVx
dWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJh
bWVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3Rh
dHVzKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFp
bigpKTsKIApAQCAtMjg4LDcgKzI4OCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01l
bW9yeVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyKERvbWFpbkluCiAgICAg
Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoV1RGTW92ZShkb21haW5Jbk5lZWRPZlN0b3JhZ2VB
Y2Nlc3MpLCBXVEZNb3ZlKG9wZW5lckRvbWFpbiksIFdURjo6bnVsbG9wdCwgb3BlbmVyUGFnZUlE
LCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd246Ok5vLCBbXShTdG9yYWdlQWNjZXNzV2FzR3Jh
bnRlZCkgeyB9KTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6
OmdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BG
cmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRp
ZmllciBwYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93biwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6Z3Jh
bnRTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1l
RG9tYWluJiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRl
bnRpZmllciBwYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93
biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKQEAg
LTMwMCw3ICszMDAsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6
Z3JhbnRTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3ViRgogICAgIGdyYW50U3RvcmFn
ZUFjY2Vzc0ludGVybmFsKFdURk1vdmUoc3ViRnJhbWVEb21haW4pLCBXVEZNb3ZlKHRvcEZyYW1l
RG9tYWluKSwgZnJhbWVJRCwgcGFnZUlELCBwcm9tcHRXYXNTaG93biwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOwogfQogCi12b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9y
ZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURv
bWFpbiwgVG9wRnJhbWVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJRD4g
ZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hv
d24gcHJvbXB0V2FzU2hvd25Ob3dPckVhcmxpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3Rv
cmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFN1
YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVE
b21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIg
cGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd25Ob3dPckVh
cmxpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVz
b3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgKaW5k
ZXggNWFmNjdhMTZmMDYxNmRhOWZhMGMwOTMzMTVhY2JjMzVkYWE1YjExOS4uYTRhN2I4OGUyZGZi
MDAzNDZiZGMyNzFmZWI3ZTViMjRiYTgyMDk2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9y
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaApAQCAtOTcsOSArOTcsOSBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIGNhbGN1bGF0ZUFuZFN1Ym1pdFRlbGVtZXRyeSgpIGNvbnN0IG92ZXJyaWRlOwog
Ci0gICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3Qg
VG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxGcmFtZUlEPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQg
cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwg
RnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgZ3JhbnRTdG9yYWdl
QWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIEZyYW1lSUQsIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQp
PiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVE
b21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1YkZy
YW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFj
Y2Vzc1N0YXR1cyk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzKFN1
YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2Fz
R3JhbnRlZCk+JiYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBsb2dGcmFtZU5hdmlnYXRpb24oY29u
c3QgTmF2aWdhdGVkVG9Eb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0IE5hdmln
YXRlZEZyb21Eb21haW4mLCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNNYWluRnJhbWUpIG92ZXJy
aWRlOwogICAgIHZvaWQgbG9nVXNlckludGVyYWN0aW9uKGNvbnN0IFRvcEZyYW1lRG9tYWluJikg
b3ZlcnJpZGU7CkBAIC0xMjMsNyArMTIzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGluY3JlbWVu
dFJlY29yZHNEZWxldGVkQ291bnRGb3JEb21haW5zKEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+
JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3VyY2UoUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcyYsIFJlc291cmNlTG9hZFByZXZhbGVuY2UpOwogICAgIHVuc2lnbmVkIHJlY3Vy
c2l2ZWx5R2V0QWxsRG9tYWluc1RoYXRIYXZlUmVkaXJlY3RlZFRvVGhpc0RvbWFpbihjb25zdCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiwgSGFzaFNldDxSZWRpcmVjdGVkVG9Eb21haW4+JiwgdW5z
aWduZWQgbnVtYmVyT2ZSZWN1cnNpdmVDYWxscykgY29uc3Q7Ci0gICAgdm9pZCBncmFudFN0b3Jh
Z2VBY2Nlc3NJbnRlcm5hbChTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBPcHRp
b25hbDxGcmFtZUlEPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VB
Y2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9y
YWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpOworICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzSW50
ZXJuYWwoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgT3B0aW9uYWw8V2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0
b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3Jl
OjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpOwogICAgIHZvaWQgbWFya0FzUHJldmFsZW50
SWZIYXNSZWRpcmVjdGVkVG9QcmV2YWxlbnQoUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpOwogICAg
IGJvb2wgaXNQcmV2YWxlbnREdWVUb0RlYnVnTW9kZShSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJik7
CiAgICAgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiBlbnN1cmVQcmV2YWxlbnRSZXNvdXJjZXNG
b3JEZWJ1Z01vZGUoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUuaAppbmRleCA3MGFjYmRjZTk2ZjY1Y2Y4M2E5NDYzN2QzZmI4ZDFlOWIyNjU1M2RkLi4y
MDk0NWRhMDk4YTY4MGEwYTRlOTk3N2ZkNzUyNDcwZjY3OGQ5OTVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRl
ICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzQ2xhc3NpZmllci5oIgogI2luY2x1ZGUgIldlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlm
aWVyLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CkBAIC05MCw3ICs5MSw2IEBAIHB1
YmxpYzoKICAgICB1c2luZyBOYXZpZ2F0ZWRUb0RvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluOwogICAgIHVzaW5nIERvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcyA9IFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluOwogICAgIHVzaW5nIE9wZW5lckRvbWFpbiA9IFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluOwotICAgIHVzaW5nIEZyYW1lSUQgPSB1aW50NjRfdDsKICAgICAKICAg
ICB2aXJ0dWFsIH5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoKTsKIApAQCAtMTU5LDkgKzE1
OSw5IEBAIHB1YmxpYzoKICAgICBib29sIGlzRGVidWdNb2RlRW5hYmxlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fZGVidWdNb2RlRW5hYmxlZDsgfTsKICAgICB2b2lkIHNldFByZXZhbGVudFJlc291cmNl
Rm9yRGVidWdNb2RlKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJik7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1l
RG9tYWluJiwgT3B0aW9uYWw8RnJhbWVJRD4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIEZyYW1l
SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3Jh
Z2VBY2Nlc3NTdGF0dXMpPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGdyYW50U3RvcmFnZUFj
Y2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBGcmFtZUlELCBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4m
JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1l
RG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXI+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhT
dWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3Jh
Z2VBY2Nlc3NTdGF0dXMpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdyYW50U3RvcmFnZUFj
Y2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNz
UHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFj
Y2Vzc1dhc0dyYW50ZWQpPiYmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgbG9nRnJhbWVOYXZp
Z2F0aW9uKGNvbnN0IE5hdmlnYXRlZFRvRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBj
b25zdCBOYXZpZ2F0ZWRGcm9tRG9tYWluJiwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlzTWFpbkZy
YW1lKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGxvZ1VzZXJJbnRlcmFjdGlvbihjb25zdCBUb3BG
cmFtZURvbWFpbiYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5jcHAKaW5kZXggOGMyMTE1N2NjN2Y2OTE3YmE5NzA4OWUzNmYxNjlkODZjZjhiOGFi
MC4uNjc1ZjBkYWY1OWNlOWI0Zjg4N2I3OTRiYzg5MmVjNDRhODM3NTZmMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTI4MCw3ICsyODAs
NyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1VwZGF0ZWQoVmVjdG9yPFdlYkNvcgogICAgIH0pOwogfQogCi12b2lkIFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFt
ZURvbWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoc3ViRnJhbWVEb21haW4gIT0gdG9wRnJhbWVE
b21haW4pOwogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CkBAIC0zMDEsNyArMzAxLDcg
QEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3Mo
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHMKICAgICB9KTsKIH0KIAotYm9vbCBXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBm
aXJzdFBhcnR5RG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQp
Citib29sIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzc0Zv
ckZyYW1lKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBQYWdlSWRlbnRpZmllciBwYWdlSUQpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKIApAQCAtMzE0LDcgKzMxNCw3IEBAIGJvb2wgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoY29uc3QgUmVnaXN0cmFibGVECiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCi12b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2Fs
bEhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFp
biwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wgaGFzQWNjZXNzKT4mJiBjYWxsYmFjaykKK3ZvaWQgV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsSGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcihj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlk
ZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgaGFzQWNjZXNzKT4m
JiBjYWxsYmFjaykKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC0zMjgs
NyArMzI4LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxIYXNT
dG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKGNvbnN0IFIKICAgICBjYWxsYmFjayhmYWxzZSk7
CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXF1ZXN0U3RvcmFn
ZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlk
ZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNH
cmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNj
ZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFn
ZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NX
YXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTM5MSw3ICszOTEs
NyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VB
Y2Nlc3NVbmRlck9wZW5lcihSZWdpc3RyYWJsZQogICAgIH0pOwogfQogCi12b2lkIFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZy
YW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIFN0b3Jh
Z2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3du
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1l
RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9t
cHRXYXNTaG93biBwcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdl
QWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIHBvc3RU
YXNrKFt0aGlzLCBzdWJGcmFtZURvbWFpbiA9IHN1YkZyYW1lRG9tYWluLmlzb2xhdGVkQ29weSgp
LCB0b3BGcmFtZURvbWFpbiA9IHRvcEZyYW1lRG9tYWluLmlzb2xhdGVkQ29weSgpLCBmcmFtZUlE
LCBwYWdlSUQsIHByb21wdFdhc1Nob3duLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewpAQCAtNDEwLDcgKzQxMCw3IEBAIHZvaWQgV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVn
aXN0cmFibGVEb21haW4mCiAgICAgfSk7CiB9CiAKLVN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIFdl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBQYWdlSWRlbnRp
ZmllciBwYWdlSUQpCitTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCBXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
cmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWlu
LCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC00MjcsNyArNDI3LDcg
QEAgU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QKICAgICByZXR1cm4gaXNTdG9yYWdlR3JhbnRlZCA/
IFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOjpZZXMgOiBTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZDo6
Tm87CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsR3JhbnRT
dG9yYWdlQWNjZXNzSGFuZGxlcihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21h
aW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8dWlu
dDY0X3Q+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lk
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEdyYW50U3RvcmFnZUFjY2Vzc0hh
bmRsZXIoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4g
ZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0
b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlLmgKaW5kZXggMDIzZGMyNzdjZjUwNTQ3YmY5Njg5ZWNjYTQ4NDRkMGU2NGFi
MTMyZi4uOWRhMWI2YmI1MjE1MjFhMDEyNDIzNGNkNDMyNzExNTZmOGNlMGI1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaApAQCAtMzAsNiArMzAsNyBA
QAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJTdG9yYWdlQWNjZXNzU3RhdHVz
LmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFUeXBlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFt
ZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0
aW9uSGFuZGxlci5oPgpAQCAtODksNyArOTAsNiBAQCBwdWJsaWM6CiAgICAgdXNpbmcgTmF2aWdh
dGVkVG9Eb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKICAgICB1c2luZyBEb21h
aW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MgPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKICAg
ICB1c2luZyBPcGVuZXJEb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKLSAgICB1
c2luZyBGcmFtZUlEID0gdWludDY0X3Q7CiAgICAgdXNpbmcgU3RvcmFnZUFjY2Vzc1dhc0dyYW50
ZWQgPSBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZDsKICAgICB1c2luZyBTdG9yYWdl
QWNjZXNzUHJvbXB0V2FzU2hvd24gPSBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hv
d247CiAKQEAgLTExMSw3ICsxMTEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTaG91bGRDbGFz
c2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChib29sLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0U2hvdWxkU3VibWl0VGVsZW1ldHJ5KGJvb2wp
OwogCi0gICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBj
b25zdCBUb3BGcmFtZURvbWFpbiYsIEZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBT
dG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFn
ZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYpOworICAg
IHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9w
RnJhbWVEb21haW4mLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+
JiYpOwogCiAgICAgdm9pZCBhcHBsaWNhdGlvbldpbGxUZXJtaW5hdGUoKTsKIApAQCAtMTI1LDEx
ICsxMjUsMTEgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJVc2VySW50ZXJhY3Rpb24oY29uc3Qg
VG9wRnJhbWVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQg
ZGVsZXRlV2Vic2l0ZURhdGFGb3JSZWdpc3RyYWJsZURvbWFpbnMoT3B0aW9uU2V0PFdlYnNpdGVE
YXRhVHlwZT4sIEhhc2hNYXA8UmVnaXN0cmFibGVEb21haW4sIFdlYnNpdGVEYXRhVG9SZW1vdmU+
JiYsIGJvb2wgc2hvdWxkTm90aWZ5UGFnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBI
YXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiYpPiYmKTsKICAgICB2b2lkIHJlZ2lzdHJhYmxlRG9t
YWluc1dpdGhXZWJzaXRlRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgYm9vbCBzaG91
bGROb3RpZnlQYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc2hTZXQ8UmVnaXN0cmFibGVE
b21haW4+JiYpPiYmKTsKLSAgICBTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCBncmFudFN0b3JhZ2VB
Y2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlv
bmFsPEZyYW1lSUQ+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CisgICAgU3RvcmFnZUFjY2Vz
c1dhc0dyYW50ZWQgZ3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29u
c3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAgICAgdm9pZCBoYXNIYWRVc2VySW50ZXJhY3Rpb24o
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KTsKLSAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25z
dCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPEZyYW1lSUQ+LCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgYm9vbCBoYXNTdG9y
YWdlQWNjZXNzRm9yRnJhbWUoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURv
bWFpbiYsIEZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKLSAgICB2b2lkIHJlcXVl
c3RTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21h
aW4mLCBGcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3du
KT4mJik7CisgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwg
Y29uc3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
Jik7CisgICAgYm9vbCBoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoY29uc3QgU3ViRnJhbWVEb21h
aW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIpOworICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoY29u
c3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+
JiYpOwogICAgIHZvaWQgc2V0TGFzdFNlZW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBTZWNv
bmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0UHJldmFsZW50
UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogICAgIHZvaWQgc2V0VmVyeVByZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTE3MiwxMSArMTcy
LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2Rl
KGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
IAogICAgIHZvaWQgbG9nVGVzdGluZ0V2ZW50KGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgY2Fs
bEdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBU
b3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPEZyYW1lSUQ+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpOwor
ICAgIHZvaWQgY2FsbEdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIoY29uc3QgU3ViRnJhbWVEb21h
aW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRp
Zmllcj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0
b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJik7CiAgICAgdm9pZCByZW1vdmVBbGxTdG9yYWdlQWNj
ZXNzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBjYWxsVXBkYXRlUHJl
dmFsZW50RG9tYWluc1RvQmxvY2tDb29raWVzRm9ySGFuZGxlcihjb25zdCBSZWdpc3RyYWJsZURv
bWFpbnNUb0Jsb2NrQ29va2llc0ZvciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAg
ICAgdm9pZCBjYWxsUmVtb3ZlRG9tYWluc0hhbmRsZXIoY29uc3QgVmVjdG9yPFJlZ2lzdHJhYmxl
RG9tYWluPiYpOwotICAgIHZvaWQgY2FsbEhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIo
Y29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIEZyYW1lSUQsIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsK
KyAgICB2b2lkIGNhbGxIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKGNvbnN0IFN1YkZy
YW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmKTsKIAogICAgIHZvaWQgZGlkQ3JlYXRlTmV0d29ya1Byb2Nlc3MoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNr
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRD
aGVja2VyLmgKaW5kZXggNzkzMDFiMjBjY2NhZmViNTIxMGQ3NWFkNTc0MWZkMmQ5MmU4YWNhZC4u
MmNiZjRjNmVlMmIzY2M1MGI1MTE3Y2YyNmYzMTNiMTUyYzczOTBmZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hl
Y2tlci5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICAgICAgU3RyaW5nIHVzZXJBZ2Vu
dDsKICAgICAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEOwogICAgICAgICBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSUQ7Ci0gICAgICAgIHVpbnQ2NF90IGZyYW1lSUQ7CisgICAgICAg
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEOwogICAgICAgICBXZWJDb3JlOjpTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeTsKICAgICB9OwogICAg
IHVzaW5nIENvbXBsZXRpb25DYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciYmKT47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDFm
MTAwNGUxYjViY2QzOWQ4YjEyMmRmOGM2ZGE0OGQxMzdjNGJlNjEuLjBjMmM5NzZmZWUyMGQzMjli
NDA3ZTA0ZGI5NjJmYjY3OTlhZjQzMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBA
IC01MjUsNyArNTI1LDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29u
dmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFBBTDo6U2Vzc2kKICAgICBsb2FkZXItPmNv
bnZlcnRUb0Rvd25sb2FkKGRvd25sb2FkSUQsIHJlcXVlc3QsIHJlc3BvbnNlKTsKIH0KIAotdm9p
ZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZv
JiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMg
aW5jbHVkZVNlY3VyZUNvb2tpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tp
ZVN0cmluZywgYm9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTShQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNp
dGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50
aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVT
ZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgc2VjdXJlQ29va2llc0FjY2Vzc2VkKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBzdG9y
YWdlU2Vzc2lvbihuZXR3b3JrUHJvY2VzcygpLCBzZXNzaW9uSUQpOwogICAgIGF1dG8gcmVzdWx0
ID0gbmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNvb2tpZXNGb3JET00oZmlyc3RQYXJ0eSwgc2FtZVNp
dGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgaW5jbHVkZVNlY3VyZUNvb2tpZXMpOwpAQCAt
NTM4LDcgKzUzOCw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tp
ZXNGb3JET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zCiAgICAgY29tcGxldGlvbkhh
bmRsZXIoV1RGTW92ZShyZXN1bHQuZmlyc3QpLCByZXN1bHQuc2Vjb25kKTsKIH0KIAotdm9pZCBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0Q29va2llc0Zyb21ET00oUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5m
byYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1l
SUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGNvbnN0IFN0cmluZyYgY29va2ll
U3RyaW5nKQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0Q29va2llc0Zy
b21ET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmll
cj4gcGFnZUlELCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0cmluZykKIHsKICAgICBhdXRvJiBuZXR3
b3JrU3RvcmFnZVNlc3Npb24gPSBzdG9yYWdlU2Vzc2lvbihuZXR3b3JrUHJvY2VzcygpLCBzZXNz
aW9uSUQpOwogICAgIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5zZXRDb29raWVzRnJvbURPTShmaXJz
dFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlELCBjb29raWVTdHJpbmcp
OwpAQCAtNTU1LDEzICs1NTUsMTMgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6Y29va2llc0VuYWJsZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb20KICAgICBjb21w
bGV0aW9uSGFuZGxlcihzdG9yYWdlU2Vzc2lvbihuZXR3b3JrUHJvY2VzcygpLCBzZXNzaW9uSUQp
LmNvb2tpZXNFbmFibGVkKCkpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUlu
Zm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8
UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3Vy
ZUNvb2tpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nLCBib29sKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJM
JiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJM
JiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tp
ZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nLCBib29sKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBhdXRvIHJlc3VsdCA9IHN0b3JhZ2VTZXNzaW9uKG5ldHdvcmtQcm9jZXNz
KCksIHNlc3Npb25JRCkuY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoZmlyc3RQYXJ0eSwg
c2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgaW5jbHVkZVNlY3VyZUNvb2tpZXMp
OwogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0LmZpcnN0KSwgcmVzdWx0LnNl
Y29uZCk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmdldFJhd0Nv
b2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXRSYXdDb29r
aWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZy
YW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYmKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiByZXN1bHQ7CiAg
ICAgc3RvcmFnZVNlc3Npb24obmV0d29ya1Byb2Nlc3MoKSwgc2Vzc2lvbklEKS5nZXRSYXdDb29r
aWVzKGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIHJlc3Vs
dCk7CkBAIC02NzAsNyArNjcwLDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6ZW5zdXJlTGVnYWN5UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCiB9CiAKICNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKQordm9pZCBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCkKIHsKICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBuZXR3b3JrUHJv
Y2VzcygpLnN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAgIHN0b3JhZ2VTZXNzaW9u
LT5yZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUoZnJhbWVJRCwgcGFnZUlEKTsKQEAgLTcyOCw3
ICs3MjgsNyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZXNvdXJjZUxv
YWRTdGF0aXN0aWNzVXBkYXRlZChWZWN0b3I8V2ViQ29yZQogICAgICAgICByZXNvdXJjZUxvYWRT
dGF0aXN0aWNzLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzVXBkYXRlZChXVEZNb3ZlKHN0YXRpc3Rp
Y3MpKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6aGFzU3RvcmFn
ZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWlu
LCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpoYXNTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdl
SWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gbmV0d29ya1By
b2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CiAgICAgICAgIGlmIChhdXRvKiBy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0YXRp
c3RpY3MoKSkgewpAQCAtNzQwLDcgKzc0MCw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6Omhhc1N0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjCiAg
ICAgY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNz
V2FzR3JhbnRlZCB3YXNHcmFudGVkLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hv
d24gcHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3Jl
OjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCB3YXNHcmFudGVkLCBXZWJDb3JlOjpTdG9yYWdlQWNj
ZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IG5ldHdvcmtQcm9jZXNzKCkubmV0d29y
a1Nlc3Npb24oc2Vzc2lvbklEKSkgewogICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcyA9IG5ldHdvcmtTZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCA5Mjg2NzMzYzRiN2M3NTEyYzI5YzUzMjQzODIxZDBl
ZTFlYzcxMzA5Li4yNTUwODRmOTIzMWZlYTgzMDgwMDk4ZDM1OTMwNTdhMWJkOTA3YzUzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiTmV0d29y
a1JUQ1Byb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZE1hcC5oIgogI2lu
Y2x1ZGUgIldlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9G
cmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtMb2FkSW5mb3JtYXRp
b24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9Qcm9jZXNzSWRlbnRpZmllci5oPgpAQCAtMTc0LDExICsxNzUsMTEgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHN0YXJ0RG93bmxvYWQoUEFMOjpTZXNzaW9uSUQsIERvd25sb2FkSUQsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFtZSA9
IHsgfSk7CiAgICAgdm9pZCBjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoUEFMOjpT
ZXNzaW9uSUQsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBEb3dubG9hZElE
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJik7CiAKLSAgICB2b2lkIGNvb2tpZXNGb3JET00oUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3Qg
VVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyPiwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQp
PiYmKTsKLSAgICB2b2lkIHNldENvb2tpZXNGcm9tRE9NKFBBTDo6U2Vzc2lvbklELCBjb25zdCBV
UkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYs
IE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRp
Zmllcj4sIGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgY29va2llc0ZvckRPTShQQUw6OlNlc3Np
b25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8m
LCBjb25zdCBVUkwmLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25h
bDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVz
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgc2VjdXJl
Q29va2llc0FjY2Vzc2VkKT4mJik7CisgICAgdm9pZCBzZXRDb29raWVzRnJvbURPTShQQUw6OlNl
c3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUlu
Zm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBPcHRp
b25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQg
Y29va2llc0VuYWJsZWQoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpOwotICAgIHZvaWQgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNz
aW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZv
JiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyPiwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBzZWN1cmVDb29raWVz
QWNjZXNzZWQpPiYmKTsKLSAgICB2b2lkIGdldFJhd0Nvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3Qg
VVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6Q29va2ll
PiYmKT4mJik7CisgICAgdm9pZCBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNl
c3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUlu
Zm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBPcHRp
b25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29r
aWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgc2Vj
dXJlQ29va2llc0FjY2Vzc2VkKT4mJik7CisgICAgdm9pZCBnZXRSYXdDb29raWVzKFBBTDo6U2Vz
c2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5m
byYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIE9wdGlv
bmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0
b3I8V2ViQ29yZTo6Q29va2llPiYmKT4mJik7CiAgICAgdm9pZCBkZWxldGVDb29raWUoUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSk7CiAKICAgICB2
b2lkIHJlZ2lzdGVyRmlsZUJsb2JVUkwoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYsIGNvbnN0
IFN0cmluZyYgcGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYsIGNvbnN0IFN0cmluZyYg
Y29udGVudFR5cGUpOwpAQCAtMjE4LDcgKzIxOSw3IEBAIHByaXZhdGU6CiAgICAgQ2FjaGVTdG9y
YWdlRW5naW5lQ29ubmVjdGlvbiYgY2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpOwogCiAjaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLSAgICB2b2lkIHJlbW92ZVN0b3JhZ2VBY2Nl
c3NGb3JGcmFtZShQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIpOworICAgIHZvaWQgcmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6
U2Vzc2lvbklELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyKTsKICAgICB2b2lkIGNsZWFyUGFnZVNwZWNpZmljRGF0YUZvclJlc291cmNlTG9hZFN0YXRp
c3RpY3MoUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKIAogICAgIHZv
aWQgbG9nVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYpOwpAQCAtMjI2LDggKzIyNyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsb2dTdWJyZXNv
dXJjZUxvYWRpbmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0YXJn
ZXREb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgV2FsbFRp
bWUgbGFzdFNlZW4pOwogICAgIHZvaWQgbG9nU3VicmVzb3VyY2VSZWRpcmVjdChQQUw6OlNlc3Np
b25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIHRhcmdldERvbWFpbik7CiAgICAgdm9pZCByZXNvdXJjZUxvYWRTdGF0aXN0
aWNzVXBkYXRlZChWZWN0b3I8V2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4mJik7Ci0g
ICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFt
ZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nl
c3MoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFp
biwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFt
ZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21w
dFdhc1Nob3duKT4mJik7CisgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklE
LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Cisg
ICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9w
RnJhbWVEb21haW4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dy
YW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYpOwogICAgIHZv
aWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihQQUw6OlNlc3Npb25JRCwgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4mJiBkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MsIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIG9wZW5lclBhZ2VJRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4mJiBvcGVuZXJEb21haW4pOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluCmluZGV4IDRiMTE4OWIzOWNjZWJjOGZiMjI2ZjhmZWUwMzQyOGM2Yzg1
YWQ3YTMuLjk5YWJkMDc4ZmIxNGM5ZjMwYmU5Yzg3NjAzYTEzZDkxYmQ3OWE5Y2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMzQsMTEgKzM0LDExIEBA
IG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVy
IHsKICAgICBTdGFydERvd25sb2FkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpE
b3dubG9hZElEIGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBT
dHJpbmcgc3VnZ2VzdGVkTmFtZSkKICAgICBDb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxv
YWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRl
bnRpZmllciwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCByZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKQogCi0g
ICAgQ29va2llc0ZvckRPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5
LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
PiBwYWdlSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRl
U2VjdXJlQ29va2llcykgLT4gKFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgZGlkQWNjZXNzU2Vj
dXJlQ29va2llcykgU3luY2hyb25vdXMKLSAgICBTZXRDb29raWVzRnJvbURPTShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJ
bmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9w
dGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFN0cmluZyBjb29raWVTdHJp
bmcpCisgICAgQ29va2llc0ZvckRPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCBmaXJz
dFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVy
bCwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBlbnVtOmJvb2wgV2ViQ29yZTo6SW5jbHVk
ZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIC0+IChTdHJpbmcgY29va2llU3Ry
aW5nLCBib29sIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMpIFN5bmNocm9ub3VzCisgICAgU2V0Q29v
a2llc0Zyb21ET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgZmlyc3RQYXJ0eSwgc3Ry
dWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFs
PFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXI+IHBhZ2VJRCwgU3RyaW5nIGNvb2tpZVN0cmluZykKICAgICBDb29raWVzRW5h
YmxlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChib29sIGVuYWJsZWQpIFN5bmNocm9u
b3VzCi0gICAgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1l
U2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBlbnVtOmJvb2wgV2ViQ29yZTo6SW5jbHVk
ZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIC0+IChTdHJpbmcgY29va2llU3Ry
aW5nLCBib29sIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMpIFN5bmNocm9ub3VzCi0gICAgR2V0UmF3
Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3Qg
V2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8dWlu
dDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQp
IC0+IChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBjb29raWVzKSBTeW5jaHJvbm91cworICAgIENv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJM
IGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBV
UkwgdXJsLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlv
bmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpJ
bmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgLT4gKFN0cmluZyBjb29r
aWVTdHJpbmcsIGJvb2wgZGlkQWNjZXNzU2VjdXJlQ29va2llcykgU3luY2hyb25vdXMKKyAgICBH
ZXRSYXdDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZpcnN0UGFydHksIHN0
cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25h
bDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyPiBwYWdlSUQpIC0+IChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBjb29raWVz
KSBTeW5jaHJvbm91cwogICAgIERlbGV0ZUNvb2tpZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFVSTCB1cmwsIFN0cmluZyBjb29raWVOYW1lKQogCiAgICAgUmVnaXN0ZXJGaWxlQmxvYlVSTChQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCB1cmwsIFN0cmluZyBwYXRoLCBXZWJLaXQ6OlNh
bmRib3hFeHRlbnNpb246OkhhbmRsZSBleHRlbnNpb25IYW5kbGUsIFN0cmluZyBjb250ZW50VHlw
ZSkKQEAgLTU4LDE1ICs1OCwxNSBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgRW5zdXJlTGVnYWN5UHJpdmF0ZUJyb3dzaW5n
U2Vzc2lvbigpCiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIFJl
bW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2
NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCk7CisgICAgUmVtb3Zl
U3RvcmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCk7
CiAgICAgQ2xlYXJQYWdlU3BlY2lmaWNEYXRhRm9yUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCk7CiAg
ICAgTG9nVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4gZG9tYWluKQogICAgIExvZ1dlYlNvY2tldExvYWRpbmcoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0YXJnZXREb21h
aW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCBXYWxsVGltZSBs
YXN0U2VlbikKICAgICBMb2dTdWJyZXNvdXJjZUxvYWRpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0YXJnZXREb21haW4sIFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCBXYWxsVGltZSBsYXN0U2VlbikKICAgICBM
b2dTdWJyZXNvdXJjZVJlZGlyZWN0KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4gc291cmNlRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biB0YXJnZXREb21haW4pCiAgICAgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0ZWQoVmVjdG9y
PFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M+IHN0YXRpc3RpY3MpCi0gICAgSGFzU3Rv
cmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFt
ZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
KSAtPiAoYm9vbCBoYXNTdG9yYWdlQWNjZXNzKSBBc3luYwotICAgIFJlcXVlc3RTdG9yYWdlQWNj
ZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4g
c3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWlu
LCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpIC0+IChl
bnVtOmJvb2wgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgd2FzR3JhbnRlZCwgZW51
bTpib29sIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93
bikgQXN5bmMKKyAgICBIYXNTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKSAtPiAoYm9vbCBoYXNTdG9yYWdl
QWNjZXNzKSBBc3luYworICAgIFJlcXVlc3RTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3ViRnJhbWVEb21haW4sIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKSAtPiAoZW51bTpi
b29sIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIHdhc0dyYW50ZWQsIGVudW06Ym9v
bCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24pIEFz
eW5jCiAgICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbkluTmVlZE9mU3RvcmFn
ZUFjY2VzcywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgb3BlbmVyUGFnZUlELCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiBvcGVuZXJEb21haW4pCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwCmluZGV4IDQwOTcx
NGQ2NjcyNmE4NDc0YWZmMjlhMTYwODE3ZjI0Nzk2N2IwMTYuLjExNzZmNTM3YTg1ODA5YjRiYWUx
Y2U3NjhiNTY1MzViMTVkNWViYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RhdGljIGlu
bGluZSBib29sIGlzU2FtZU9yaWdpbihjb25zdCBVUkwmIHVybCwgY29uc3QgU2VjdXJpdHlPcmln
aW4qIG9yaWdpbikKICAgICByZXR1cm4gdXJsLnByb3RvY29sSXNEYXRhKCkgfHwgdXJsLnByb3Rv
Y29sSXNCbG9iKCkgfHwgIW9yaWdpbiB8fCBvcmlnaW4tPmNhblJlcXVlc3QodXJsKTsKIH0KIAot
TmV0d29ya0xvYWRDaGVja2VyOjpOZXR3b3JrTG9hZENoZWNrZXIoTmV0d29ya1Byb2Nlc3MmIG5l
dHdvcmtQcm9jZXNzLCBGZXRjaE9wdGlvbnMmJiBvcHRpb25zLCBQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgSFRUUEhlYWRl
ck1hcCYmIG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMsIFVSTCYmIHVybCwgUmVmUHRyPFNlY3VyaXR5
T3JpZ2luPiYmIHNvdXJjZU9yaWdpbiwgUHJlZmxpZ2h0UG9saWN5IHByZWZsaWdodFBvbGljeSwg
U3RyaW5nJiYgcmVmZXJyZXIsIGJvb2wgaXNIVFRQU1VwZ3JhZGVFbmFibGVkLCBib29sIHNob3Vs
ZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcywgTG9hZFR5cGUgcmVxdWVzdExvYWRUeXBl
KQorTmV0d29ya0xvYWRDaGVja2VyOjpOZXR3b3JrTG9hZENoZWNrZXIoTmV0d29ya1Byb2Nlc3Mm
IG5ldHdvcmtQcm9jZXNzLCBGZXRjaE9wdGlvbnMmJiBvcHRpb25zLCBQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IEhUVFBIZWFkZXJNYXAmJiBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzLCBVUkwmJiB1cmwsIFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4mJiBzb3VyY2VPcmlnaW4sIFByZWZsaWdodFBvbGljeSBwcmVmbGln
aHRQb2xpY3ksIFN0cmluZyYmIHJlZmVycmVyLCBib29sIGlzSFRUUFNVcGdyYWRlRW5hYmxlZCwg
Ym9vbCBzaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MsIExvYWRUeXBlIHJlcXVl
c3RMb2FkVHlwZSkKICAgICA6IG1fb3B0aW9ucyhXVEZNb3ZlKG9wdGlvbnMpKQogICAgICwgbV9z
ZXNzaW9uSUQoc2Vzc2lvbklEKQogICAgICwgbV9uZXR3b3JrUHJvY2VzcyhuZXR3b3JrUHJvY2Vz
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRD
aGVja2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tl
ci5oCmluZGV4IDA3NzA2NDY3MGZjYmI5YWM5NDJmOGQ4NjE4MTA0OTU5ZjAwZTA1NzguLmVjOTRl
MTQ2OTUzM2Q3ZDk4NzgxNmJiMjZiMTdkZmIyM2I5NDNmYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaApAQCAtMjksNiArMjksNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0NvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvRmV0Y2hPcHRpb25zLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50
aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtMb2FkSW5mb3JtYXRpb24uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZUVycm9yLmg+CkBAIC01NSw3ICs1Niw3IEBAIGNsYXNzIE5ldHdvcmtMb2FkQ2hlY2tlciA6
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxOZXR3b3JrTG9hZENoZWNrZXI+IHsKIHB1YmxpYzoKICAg
ICBlbnVtIGNsYXNzIExvYWRUeXBlIDogYm9vbCB7IE1haW5GcmFtZSwgT3RoZXIgfTsKIAotICAg
IE5ldHdvcmtMb2FkQ2hlY2tlcihOZXR3b3JrUHJvY2VzcyYsIFdlYkNvcmU6OkZldGNoT3B0aW9u
cyYmLCBQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZy
YW1lSUQsIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmJiwgVVJMJiYsIFJlZlB0cjxXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbj4mJiwgV2ViQ29yZTo6UHJlZmxpZ2h0UG9saWN5LCBTdHJpbmcmJiByZWZl
cnJlciwgYm9vbCBpc0hUVFBTVXBncmFkZUVuYWJsZWQgPSBmYWxzZSwgYm9vbCBzaG91bGRDYXB0
dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MgPSBmYWxzZSwgTG9hZFR5cGUgcmVxdWVzdExvYWRU
eXBlID0gTG9hZFR5cGU6Ok90aGVyKTsKKyAgICBOZXR3b3JrTG9hZENoZWNrZXIoTmV0d29ya1By
b2Nlc3MmLCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmJiwgUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OkhUVFBI
ZWFkZXJNYXAmJiwgVVJMJiYsIFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiwgV2Vi
Q29yZTo6UHJlZmxpZ2h0UG9saWN5LCBTdHJpbmcmJiByZWZlcnJlciwgYm9vbCBpc0hUVFBTVXBn
cmFkZUVuYWJsZWQgPSBmYWxzZSwgYm9vbCBzaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1l
dHJpY3MgPSBmYWxzZSwgTG9hZFR5cGUgcmVxdWVzdExvYWRUeXBlID0gTG9hZFR5cGU6Ok90aGVy
KTsKICAgICB+TmV0d29ya0xvYWRDaGVja2VyKCk7CiAKICAgICBzdHJ1Y3QgUmVkaXJlY3Rpb25U
cmlwbGV0IHsKQEAgLTEyNyw3ICsxMjgsNyBAQCBwcml2YXRlOgogICAgIFBBTDo6U2Vzc2lvbklE
IG1fc2Vzc2lvbklEOwogICAgIFJlZjxOZXR3b3JrUHJvY2Vzcz4gbV9uZXR3b3JrUHJvY2VzczsK
ICAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBtX3BhZ2VJRDsKLSAgICB1aW50NjRfdCBtX2Zy
YW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fZnJhbWVJRDsKICAgICBXZWJD
b3JlOjpIVFRQSGVhZGVyTWFwIG1fb3JpZ2luYWxSZXF1ZXN0SGVhZGVyczsgLy8gTmVlZGVkIGZv
ciBDT1JTIGNoZWNrcy4KICAgICBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwIG1fZmlyc3RSZXF1ZXN0
SGVhZGVyczsgLy8gTmVlZGVkIGZvciBDT1JTIGNoZWNrcy4KICAgICBVUkwgbV91cmw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVy
cy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMu
aAppbmRleCBjNDNlNWRjZDc1MDExYTU1OTFlNmU2ODI3MjRjMWE2OTU2NWVjZjE3Li5iOGY3ZDEz
OWUzMWVjNWM4MjcxMzVlMzczMGI3YjBkOWVmMGE0NjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKQEAgLTI3LDYgKzI3
LDcgQEAKIAogI2luY2x1ZGUgIk5ldHdvcmtBY3Rpdml0eVRyYWNrZXIuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJ
ZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZVJlcXVlc3QuaD4KQEAgLTQ2LDcgKzQ3LDcgQEAgcHVibGljOgogCiAgICAgUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEOwogICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJ
RDsKLSAgICB1aW50NjRfdCB3ZWJGcmFtZUlEIHsgMCB9OworICAgIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciB3ZWJGcmFtZUlEOwogICAgIFdURjo6UHJvY2Vzc0lEIHBhcmVudFBJRCB7IDAgfTsK
ICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdDsKICAgICBXZWJDb3JlOjpDb250
ZW50U25pZmZpbmdQb2xpY3kgY29udGVudFNuaWZmaW5nUG9saWN5IHsgV2ViQ29yZTo6Q29udGVu
dFNuaWZmaW5nUG9saWN5OjpTbmlmZkNvbnRlbnQgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCBhOTJiNzI0MWViMjk4ZWE2NmM1YThhMjg0
NzRmNDAzZTU3ZTQ1YzM5Li5jMjM2M2RkMTEzNWY3ZTJiZmEwMzI5ZWRmMjYyYTI1YmVlMjJiM2M2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBA
IC0xMzcsNyArMTM3LDYgQEAgcHVibGljOgogICAgIHVzaW5nIE5hdmlnYXRlZFRvRG9tYWluID0g
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNpbmcgRG9tYWluSW5OZWVkT2ZTdG9y
YWdlQWNjZXNzID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNpbmcgT3BlbmVy
RG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47Ci0gICAgdXNpbmcgRnJhbWVJRCA9
IHVpbnQ2NF90OwogCiAgICAgTmV0d29ya1Byb2Nlc3MoQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxp
emF0aW9uUGFyYW1ldGVycyYmKTsKICAgICB+TmV0d29ya1Byb2Nlc3MoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApp
bmRleCA0NzgyZWYxNWYzZGVlZTVhZjRlYWVmMDVjZGY2MDM2YWU3ZTZkMmZiLi5lYzZhODBjODQ4
OWRlZjMyZDc4OWI3NGJlYzEyNzM1N2JlYzU1ODM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0xODAsMTgg
KzE4MCwxOCBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQoKQogCiAgICAgICAg
ICAgICBXVEY6OnN3aXRjaE9uKHJlc3VsdCwKICAgICAgICAgICAgICAgICBbdGhpc10gKFJlc291
cmNlRXJyb3ImIGVycm9yKSB7Ci0gICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoInN0YXJ0OiBlcnJvciBjaGVja2luZyAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJj
ZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQsIHBhcmVudFBJRCA9ICVkLCBlcnJvci5kb21haW4g
PSAle3B1YmxpY31zLCBlcnJvci5jb2RlID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50
b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZp
ZXIsIHRoaXMtPmlzTWFpblJlc291cmNlKCksIHRoaXMtPmlzU3luY2hyb25vdXMoKSwgbV9wYXJh
bWV0ZXJzLnBhcmVudFBJRCwgZXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSwgZXJyb3IuZXJy
b3JDb2RlKCkpOworICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJz
dGFydDogZXJyb3IgY2hlY2tpbmcgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwg
aXNTeW5jaHJvbm91cyA9ICVkLCBwYXJlbnRQSUQgPSAlZCwgZXJyb3IuZG9tYWluID0gJXtwdWJs
aWN9cywgZXJyb3IuY29kZSA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQo
KSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50
aWZpZXIsIHRoaXMtPmlzTWFpblJlc291cmNlKCksIHRoaXMtPmlzU3luY2hyb25vdXMoKSwgbV9w
YXJhbWV0ZXJzLnBhcmVudFBJRCwgZXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSwgZXJyb3Iu
ZXJyb3JDb2RlKCkpOwogICAgICAgICAgICAgICAgICAgICBpZiAoIWVycm9yLmlzQ2FuY2VsbGF0
aW9uKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLT5kaWRGYWlsTG9hZGluZyhlcnJv
cik7CiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICBbdGhpc10gKE5ldHdvcmtM
b2FkQ2hlY2tlcjo6UmVkaXJlY3Rpb25UcmlwbGV0JiB0cmlwbGV0KSB7CiAgICAgICAgICAgICAg
ICAgICAgIHRoaXMtPm1faXNXYWl0aW5nQ29udGludWVXaWxsU2VuZFJlcXVlc3RGb3JDYWNoZWRS
ZWRpcmVjdCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMtPndpbGxTZW5kUmVkaXJl
Y3RlZFJlcXVlc3QoV1RGTW92ZSh0cmlwbGV0LnJlcXVlc3QpLCBXVEZNb3ZlKHRyaXBsZXQucmVk
aXJlY3RSZXF1ZXN0KSwgV1RGTW92ZSh0cmlwbGV0LnJlZGlyZWN0UmVzcG9uc2UpKTsKLSAgICAg
ICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6IHN5bnRoZXRpYyBy
ZWRpcmVjdCBzZW50IGJlY2F1c2UgcmVxdWVzdCBVUkwgd2FzIG1vZGlmaWVkIChwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0
ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCwgcGFyZW50UElEID0g
JWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2Vi
RnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIHRoaXMtPmlzTWFpblJlc291cmNlKCks
IHRoaXMtPmlzU3luY2hyb25vdXMoKSwgbV9wYXJhbWV0ZXJzLnBhcmVudFBJRCk7CisgICAgICAg
ICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0OiBzeW50aGV0aWMgcmVk
aXJlY3Qgc2VudCBiZWNhdXNlIHJlcXVlc3QgVVJMIHdhcyBtb2RpZmllZCAocGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAi
LCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQsIHBhcmVudFBJRCA9ICVk
KSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZy
YW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIHRoaXMtPmlzTWFpblJl
c291cmNlKCksIHRoaXMtPmlzU3luY2hyb25vdXMoKSwgbV9wYXJhbWV0ZXJzLnBhcmVudFBJRCk7
CiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICBbdGhpc10gKFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCkgewogICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy0+Y2FuVXNlQ2Fj
aGUocmVxdWVzdCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoInN0YXJ0OiBDaGVja2luZyBjYWNoZSBmb3IgcmVzb3VyY2UgKHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwg
aXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkLCBwYXJlbnRQSUQgPSAlZCki
LCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFt
ZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgdGhpcy0+aXNNYWluUmVzb3VyY2UoKSwgdGhp
cy0+aXNTeW5jaHJvbm91cygpLCBtX3BhcmFtZXRlcnMucGFyZW50UElEKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0OiBDaGVja2luZyBjYWNo
ZSBmb3IgcmVzb3VyY2UgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5j
aHJvbm91cyA9ICVkLCBwYXJlbnRQSUQgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRv
VUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVy
cy5pZGVudGlmaWVyLCB0aGlzLT5pc01haW5SZXNvdXJjZSgpLCB0aGlzLT5pc1N5bmNocm9ub3Vz
KCksIG1fcGFyYW1ldGVycy5wYXJlbnRQSUQpOwogICAgICAgICAgICAgICAgICAgICAgICAgdGhp
cy0+cmV0cmlldmVDYWNoZUVudHJ5KHJlcXVlc3QpOwogICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAgICAgICAgICAgICB9CkBAIC0yMDQsNyArMjA0LDcgQEAgdm9pZCBO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KCkKICAgICB9CiAgICAgLy8gRklYTUU6IFJlbW92
ZSB0aGF0IGNvZGUgcGF0aCBvbmNlIG1fbmV0d29ya0xvYWRDaGVja2VyIGlzIHVzZWQgZm9yIGFs
bCBuZXR3b3JrIGxvYWRzLgogICAgIGlmIChjYW5Vc2VDYWNoZShvcmlnaW5hbFJlcXVlc3QoKSkp
IHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6IENoZWNraW5nIGNhY2hl
IGZvciByZXNvdXJjZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQg
IiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNo
cm9ub3VzID0gJWQsIHBhcmVudFBJRCA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9V
SW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVy
LCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCksIG1fcGFyYW1ldGVycy5wYXJlbnRQ
SUQpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydDogQ2hlY2tpbmcgY2Fj
aGUgZm9yIHJlc291cmNlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2
NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3lu
Y2hyb25vdXMgPSAlZCwgcGFyZW50UElEID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50
b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRl
cnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpLCBtX3BhcmFt
ZXRlcnMucGFyZW50UElEKTsKICAgICAgICAgcmV0cmlldmVDYWNoZUVudHJ5KG9yaWdpbmFsUmVx
dWVzdCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI0NCw3ICsyNDQsNyBAQCB2b2lk
IE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6cmV0cmlldmVDYWNoZUVudHJ5KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCkKICAgICAgICAgbG9nU2xvd0NhY2hlUmV0cmlldmVJZk5lZWRlZChp
bmZvKTsKIAogICAgICAgICBpZiAoIWVudHJ5KSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJlc291cmNlIG5vdCBpbiBjYWNoZSAocGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUi
IFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9w
YXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwg
bV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMo
KSk7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50
cnk6IFJlc291cmNlIG5vdCBpbiBjYWNoZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9
ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2
NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRl
bnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKICAgICAgICAgICAg
IHN0YXJ0TmV0d29ya0xvYWQoV1RGTW92ZShyZXF1ZXN0KSwgRmlyc3RMb2FkOjpZZXMpOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0yNTYsNyArMjU2LDcgQEAgdm9pZCBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRyeUludGVybmFsKHN0ZDo6dW5pcXVl
X3B0cjxOZXR3b3JrQ2EKIHsKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQog
ICAgIGlmIChlbnRyeS0+aGFzUmVhY2hlZFByZXZhbGVudFJlc291cmNlQWdlQ2FwKCkpIHsKLSAg
ICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNoZUVudHJ5OiBSZXNvdXJj
ZSBoYXMgcmVhY2hlZCBwcmV2YWxlbnQgcmVzb3VyY2UgYWdlIGNhcCAocGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBp
c01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndl
YlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJz
LmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CisgICAgICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogUmVzb3VyY2UgaGFz
IHJlYWNoZWQgcHJldmFsZW50IHJlc291cmNlIGFnZSBjYXAgKHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWlu
UmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdl
SUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJh
bWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CiAg
ICAgICAgIG1fY2FjaGVFbnRyeUZvck1heEFnZUNhcFZhbGlkYXRpb24gPSBXVEZNb3ZlKGVudHJ5
KTsKICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJldmFsaWRhdGlvblJlcXVlc3QgPSBvcmlnaW5h
bFJlcXVlc3QoKTsKICAgICAgICAgc3RhcnROZXR3b3JrTG9hZChXVEZNb3ZlKHJldmFsaWRhdGlv
blJlcXVlc3QpLCBGaXJzdExvYWQ6Olllcyk7CkBAIC0yNjQsMjggKzI2NCwyOCBAQCB2b2lkIE5l
dHdvcmtSZXNvdXJjZUxvYWRlcjo6cmV0cmlldmVDYWNoZUVudHJ5SW50ZXJuYWwoc3RkOjp1bmlx
dWVfcHRyPE5ldHdvcmtDYQogICAgIH0KICNlbmRpZgogICAgIGlmIChlbnRyeS0+cmVkaXJlY3RS
ZXF1ZXN0KCkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNo
ZUVudHJ5OiBIYW5kbGluZyByZWRpcmVjdCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9
ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2
NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlz
TWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogSGFuZGxpbmcgcmVkaXJlY3QgKHBhZ2VJRCA9
ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1
NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1l
dGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50
NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hy
b25vdXMoKSk7CiAgICAgICAgIGRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0Rm9yQ2FjaGVFbnRyeShX
VEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGVudHJ5KSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgaWYgKG1fcGFyYW1ldGVycy5uZWVkc0NlcnRpZmljYXRlSW5mbyAmJiAhZW50cnktPnJl
c3BvbnNlKCkuY2VydGlmaWNhdGVJbmZvKCkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRCgicmV0cmlldmVDYWNoZUVudHJ5OiBSZXNvdXJjZSBkb2VzIG5vdCBoYXZlIHJlcXVpcmVk
IGNlcnRpZmljYXRlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAi
LCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hy
b25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1l
dGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2Uo
KSwgaXNTeW5jaHJvbm91cygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0
cmlldmVDYWNoZUVudHJ5OiBSZXNvdXJjZSBkb2VzIG5vdCBoYXZlIHJlcXVpcmVkIGNlcnRpZmlj
YXRlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJj
ZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAl
ZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJG
cmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJj
ZSgpLCBpc1N5bmNocm9ub3VzKCkpOwogICAgICAgICBzdGFydE5ldHdvcmtMb2FkKFdURk1vdmUo
cmVxdWVzdCksIEZpcnN0TG9hZDo6WWVzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBp
ZiAoZW50cnktPm5lZWRzVmFsaWRhdGlvbigpIHx8IHJlcXVlc3QuY2FjaGVQb2xpY3koKSA9PSBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeTo6UmVmcmVzaEFueUNhY2hlRGF0YSkg
ewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFZh
bGlkYXRpbmcgY2FjaGUgZW50cnkgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwg
aXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwg
bV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5S
ZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFZhbGlkYXRpbmcgY2FjaGUgZW50cnkgKHBhZ2VJRCA9
ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1
NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1l
dGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50
NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hy
b25vdXMoKSk7CiAgICAgICAgIHZhbGlkYXRlQ2FjaGVFbnRyeShXVEZNb3ZlKGVudHJ5KSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmll
dmVDYWNoZUVudHJ5OiBSZXRyaWV2ZWQgcmVzb3VyY2UgZnJvbSBjYWNoZSAocGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAi
LCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJz
LndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0
ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CisgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNoZUVudHJ5OiBSZXRyaWV2ZWQgcmVz
b3VyY2UgZnJvbSBjYWNoZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5
bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Bh
cmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwg
aXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKICAgICBkaWRSZXRyaWV2ZUNhY2hl
RW50cnkoV1RGTW92ZShlbnRyeSkpOwogfQogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
c3RhcnROZXR3b3JrTG9hZChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBGaXJzdExvYWQgbG9h
ZCkKIHsKICAgICBpZiAobG9hZCA9PSBGaXJzdExvYWQ6OlllcykgewotICAgICAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKCJzdGFydE5ldHdvcmtMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIs
IGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5S
ZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJ
RC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50
aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CisgICAgICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0TmV0d29ya0xvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFp
blJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFn
ZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFy
YW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOwog
CiAgICAgICAgIGNvbnN1bWVTYW5kYm94RXh0ZW5zaW9ucygpOwogCkBAIC0zMDgsNyArMzA4LDcg
QEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0TmV0d29ya0xvYWQoUmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCwgRmlyc3RMb2EKICAgICB9CiAgICAgaWYgKCFuZXR3b3JrU2Vzc2lv
bikgewogICAgICAgICBXVEZMb2dBbHdheXMoIkF0dGVtcHRlZCB0byBjcmVhdGUgYSBOZXR3b3Jr
TG9hZCB3aXRoIGEgc2Vzc2lvbiAoaWQ9JSIgUFJJdTY0ICIpIHRoYXQgZG9lcyBub3QgZXhpc3Qu
IiwgcGFyYW1ldGVycy5zZXNzaW9uSUQuc2Vzc2lvbklEKCkpOwotICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUl9JRl9BTExPV0VEKCJzdGFydE5ldHdvcmtMb2FkOiBBdHRlbXB0ZWQgdG8gY3JlYXRl
IGEgTmV0d29ya0xvYWQgd2l0aCBhIHNlc3Npb24gdGhhdCBkb2VzIG5vdCBleGlzdCAocGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBS
SXU2NCAiLCBzZXNzaW9uSUQ9JSIgUFJJdTY0ICIpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50
b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZp
ZXIsIHBhcmFtZXRlcnMuc2Vzc2lvbklELnNlc3Npb25JRCgpKTsKKyAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1JfSUZfQUxMT1dFRCgic3RhcnROZXR3b3JrTG9hZDogQXR0ZW1wdGVkIHRvIGNyZWF0
ZSBhIE5ldHdvcmtMb2FkIHdpdGggYSBzZXNzaW9uIHRoYXQgZG9lcyBub3QgZXhpc3QgKHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQ
Ukl1NjQgIiwgc2Vzc2lvbklEPSUiIFBSSXU2NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQu
dG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0
ZXJzLmlkZW50aWZpZXIsIHBhcmFtZXRlcnMuc2Vzc2lvbklELnNlc3Npb25JRCgpKTsKICAgICAg
ICAgbV9jb25uZWN0aW9uLT5uZXR3b3JrUHJvY2VzcygpLmxvZ0RpYWdub3N0aWNNZXNzYWdlKG1f
cGFyYW1ldGVycy53ZWJQYWdlSUQsIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6aW50
ZXJuYWxFcnJvcktleSgpLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmludmFsaWRT
ZXNzaW9uSURLZXkoKSwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlOjpObyk7CiAgICAgICAgIGRpZEZh
aWxMb2FkaW5nKGludGVybmFsRXJyb3IocmVxdWVzdC51cmwoKSkpOwogICAgICAgICByZXR1cm47
CkBAIC0zMjAsNyArMzIwLDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0TmV0
d29ya0xvYWQoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgRmlyc3RMb2EKICAgICBwYXJhbWV0
ZXJzLnJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpOwogICAgIG1fbmV0d29ya0xvYWQgPSBzdGQ6
Om1ha2VfdW5pcXVlPE5ldHdvcmtMb2FkPigqdGhpcywgJm5ldHdvcmtTZXNzaW9uLT5ibG9iUmVn
aXN0cnkoKSwgV1RGTW92ZShwYXJhbWV0ZXJzKSwgKm5ldHdvcmtTZXNzaW9uKTsKIAotICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0TmV0d29ya0xvYWQ6IChwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGRl
c2NyaXB0aW9uID0gJXtwdWJsaWN9cykiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0
KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgbV9u
ZXR3b3JrTG9hZC0+ZGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgpKTsKKyAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKCJzdGFydE5ldHdvcmtMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZy
YW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBkZXNjcmlwdGlv
biA9ICV7cHVibGljfXMpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Bh
cmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwg
bV9uZXR3b3JrTG9hZC0+ZGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgpKTsKIH0KIAogdm9pZCBO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNsZWFudXAoTG9hZFJlc3VsdCByZXN1bHQpCkBAIC0zNDQs
NyArMzQ0LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNsZWFudXAoTG9hZFJlc3Vs
dCByZXN1bHQpCiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjb252ZXJ0VG9Eb3dubG9h
ZChEb3dubG9hZElEIGRvd25sb2FkSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7Ci0gICAgUkVMRUFTRV9MT0coTG9h
ZGluZywgIkNvbnZlcnRpbmcgTmV0d29ya1Jlc291cmNlTG9hZGVyICVwIHRvIGRvd25sb2FkICUi
IFBSSXU2NCAiIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBy
ZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgdGhpcywgZG93bmxvYWRJRC5kb3dubG9hZElEKCks
IG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1l
SUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyKTsKKyAgICBSRUxFQVNFX0xPRyhMb2FkaW5nLCAi
Q29udmVydGluZyBOZXR3b3JrUmVzb3VyY2VMb2FkZXIgJXAgdG8gZG93bmxvYWQgJSIgUFJJdTY0
ICIgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNl
SUQgPSAlIiBQUkl1NjQgIikiLCB0aGlzLCBkb3dubG9hZElELmRvd25sb2FkSUQoKSwgbV9wYXJh
bWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJ
bnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CiAgICAgCiAgICAgLy8gVGhpcyBjYW4g
aGFwcGVuIGlmIHRoZSByZXNvdXJjZSBjYW1lIGZyb20gdGhlIGRpc2sgY2FjaGUuCiAgICAgaWYg
KCFtX25ldHdvcmtMb2FkKSB7CkBAIC0zNjIsNyArMzYyLDcgQEAgdm9pZCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OmFib3J0KCkKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiYWJvcnQ6IENhbmNlbGluZyByZXNvdXJjZSBsb2FkIChw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JSIgUFJJdTY0ICIpIiwKLSAgICAgICAgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgp
LCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIpOworICAg
ICAgICBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJG
cmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyKTsKIAogICAgIGlmICht
X3BhcmFtZXRlcnMub3B0aW9ucy5rZWVwQWxpdmUgJiYgbV9yZXNwb25zZS5pc051bGwoKSAmJiAh
bV9pc0tlcHRBbGl2ZSkgewogICAgICAgICBtX2lzS2VwdEFsaXZlID0gdHJ1ZTsKQEAgLTQ0Nyw3
ICs0NDcsNyBAQCBib29sIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2hvdWxkSW50ZXJydXB0TG9h
ZEZvckNTUEZyYW1lQW5jZXN0b3JzT3JYRnJhbWVPcHRpbwogCiB2b2lkIE5ldHdvcmtSZXNvdXJj
ZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJiByZWNlaXZlZFJl
c3BvbnNlLCBSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiAocGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBS
SXU2NCAiLCBodHRwU3RhdHVzQ29kZSA9ICVkLCBsZW5ndGggPSAlIiBQUklkNjQgIikiLCBtX3Bh
cmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBt
X3BhcmFtZXRlcnMuaWRlbnRpZmllciwgcmVjZWl2ZWRSZXNwb25zZS5odHRwU3RhdHVzQ29kZSgp
LCByZWNlaXZlZFJlc3BvbnNlLmV4cGVjdGVkQ29udGVudExlbmd0aCgpKTsKKyAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6IChwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGh0dHBT
dGF0dXNDb2RlID0gJWQsIGxlbmd0aCA9ICUiIFBSSWQ2NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQ
YWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9w
YXJhbWV0ZXJzLmlkZW50aWZpZXIsIHJlY2VpdmVkUmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSwg
cmVjZWl2ZWRSZXNwb25zZS5leHBlY3RlZENvbnRlbnRMZW5ndGgoKSk7CiAKICAgICBtX3Jlc3Bv
bnNlID0gV1RGTW92ZShyZWNlaXZlZFJlc3BvbnNlKTsKIApAQCAtNTI3LDcgKzUyNyw3IEBAIHZv
aWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNw
b25zZSYmIHJlY2VpdmVkUmVzcG9uCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVj
ZWl2ZUJ1ZmZlcihSZWY8U2hhcmVkQnVmZmVyPiYmIGJ1ZmZlciwgaW50IHJlcG9ydGVkRW5jb2Rl
ZERhdGFMZW5ndGgpCiB7CiAgICAgaWYgKCFtX251bUJ5dGVzUmVjZWl2ZWQpCi0gICAgICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVCdWZmZXI6IFN0YXJ0ZWQgcmVjZWl2aW5n
IGRhdGEgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCks
IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CisgICAg
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVCdWZmZXI6IFN0YXJ0ZWQgcmVj
ZWl2aW5nIGRhdGEgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUlu
dDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5p
ZGVudGlmaWVyKTsKICAgICBtX251bUJ5dGVzUmVjZWl2ZWQgKz0gYnVmZmVyLT5zaXplKCk7CiAK
ICAgICBBU1NFUlQoIW1fY2FjaGVFbnRyeUZvclZhbGlkYXRpb24pOwpAQCAtNTU2LDcgKzU1Niw3
IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlQnVmZmVyKFJlZjxTaGFy
ZWRCdWZmZXI+JiYgYnVmZmVyLCBpbnQgcmVwCiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVy
OjpkaWRGaW5pc2hMb2FkaW5nKGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRN
ZXRyaWNzKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZpbmlzaExvYWRpbmc6
IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlE
ID0gJSIgUFJJdTY0ICIsIGxlbmd0aCA9ICV6ZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRv
VUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmll
ciwgbV9udW1CeXRlc1JlY2VpdmVkKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRG
aW5pc2hMb2FkaW5nOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQg
IiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBsZW5ndGggPSAlemQpIiwgbV9wYXJhbWV0ZXJz
LndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgp
LCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgbV9udW1CeXRlc1JlY2VpdmVkKTsKIAogICAgIGlm
IChzaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MoKSkKICAgICAgICAgbV9jb25u
ZWN0aW9uLT5hZGROZXR3b3JrTG9hZEluZm9ybWF0aW9uTWV0cmljcyhpZGVudGlmaWVyKCksIG5l
dHdvcmtMb2FkTWV0cmljcyk7CkBAIC01OTEsNyArNTkxLDcgQEAgdm9pZCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3
b3JrTG8KIAogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxMb2FkaW5nKGNvbnN0
IFJlc291cmNlRXJyb3ImIGVycm9yKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRp
ZEZhaWxMb2FkaW5nOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQg
IiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc1RpbWVvdXQgPSAlZCwgaXNDYW5jZWxsYXRp
b24gPSAlZCwgaXNBY2Nlc3NDb250cm9sID0gJWQsIGVyckNvZGUgPSAlZCkiLCBtX3BhcmFtZXRl
cnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFt
ZXRlcnMuaWRlbnRpZmllciwgZXJyb3IuaXNUaW1lb3V0KCksIGVycm9yLmlzQ2FuY2VsbGF0aW9u
KCksIGVycm9yLmlzQWNjZXNzQ29udHJvbCgpLCBlcnJvci5lcnJvckNvZGUoKSk7CisgICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkRmFpbExvYWRpbmc6IChwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzVGlt
ZW91dCA9ICVkLCBpc0NhbmNlbGxhdGlvbiA9ICVkLCBpc0FjY2Vzc0NvbnRyb2wgPSAlZCwgZXJy
Q29kZSA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0
ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGVycm9y
LmlzVGltZW91dCgpLCBlcnJvci5pc0NhbmNlbGxhdGlvbigpLCBlcnJvci5pc0FjY2Vzc0NvbnRy
b2woKSwgZXJyb3IuZXJyb3JDb2RlKCkpOwogCiAgICAgaWYgKHNob3VsZENhcHR1cmVFeHRyYU5l
dHdvcmtMb2FkTWV0cmljcygpKQogICAgICAgICBtX2Nvbm5lY3Rpb24tPnJlbW92ZU5ldHdvcmtM
b2FkSW5mb3JtYXRpb24oaWRlbnRpZmllcigpKTsKQEAgLTc1Niw3ICs3NTYsNyBAQCB2b2lkIE5l
dHdvcmtSZXNvdXJjZUxvYWRlcjo6Y29udGludWVXaWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VSZXF1
ZXN0JiYgbmV3UmVxdWVzdAogICAgICAgICB9CiAgICAgfQogCi0gICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgiY29udGludWVXaWxsU2VuZFJlcXVlc3Q6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV9wYXJh
bWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9w
YXJhbWV0ZXJzLmlkZW50aWZpZXIpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImNvbnRp
bnVlV2lsbFNlbmRSZXF1ZXN0OiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQ
Ukl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdl
SUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJh
bWV0ZXJzLmlkZW50aWZpZXIpOwogCiAgICAgbV9pc0FsbG93ZWRUb0Fza1VzZXJGb3JDcmVkZW50
aWFscyA9IGlzQWxsb3dlZFRvQXNrVXNlckZvckNyZWRlbnRpYWxzOwogCkBAIC0xMDExLDEyICsx
MDExLDE3IEBAIHN0YXRpYyBTdHJpbmcgZXNjYXBlRm9ySlNPTihTdHJpbmcgcykKIHN0YXRpYyBT
dHJpbmcgZXNjYXBlSURGb3JKU09OKGNvbnN0IE9wdGlvbmFsPHVpbnQ2NF90PiYgdmFsdWUpCiB7
CiAgICAgcmV0dXJuIHZhbHVlID8gU3RyaW5nOjpudW1iZXIodmFsdWUudmFsdWUoKSkgOiBTdHJp
bmcoIk5vbmUiX3MpOwotfTsKK30KKworc3RhdGljIFN0cmluZyBlc2NhcGVJREZvckpTT04oY29u
c3QgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiYgdmFsdWUpCit7CisgICAgcmV0dXJuIHZhbHVl
ID8gU3RyaW5nOjpudW1iZXIodmFsdWUtPnRvVUludDY0KCkpIDogU3RyaW5nKCJOb25lIl9zKTsK
K30KIAogc3RhdGljIFN0cmluZyBlc2NhcGVJREZvckpTT04oY29uc3QgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+JiB2YWx1ZSkKIHsKICAgICByZXR1cm4gdmFsdWUgPyBTdHJpbmc6Om51bWJlcih2
YWx1ZS0+dG9VSW50NjQoKSkgOiBTdHJpbmcoIk5vbmUiX3MpOwotfTsKK30KIAogdm9pZCBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uKCkgY29uc3QKIHsKQEAgLTEw
MjgsNyArMTAzMyw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpsb2dDb29raWVJbmZv
cm1hdGlvbigpIGNvbnN0CiAgICAgbG9nQ29va2llSW5mb3JtYXRpb24obV9jb25uZWN0aW9uLCAi
TmV0d29ya1Jlc291cmNlTG9hZGVyIiwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4odGhp
cyksICpuZXR3b3JrU3RvcmFnZVNlc3Npb24sIG9yaWdpbmFsUmVxdWVzdCgpLmZpcnN0UGFydHlG
b3JDb29raWVzKCksIFNhbWVTaXRlSW5mbzo6Y3JlYXRlKG9yaWdpbmFsUmVxdWVzdCgpKSwgb3Jp
Z2luYWxSZXF1ZXN0KCkudXJsKCksIG9yaWdpbmFsUmVxdWVzdCgpLmh0dHBSZWZlcnJlcigpLCBm
cmFtZUlEKCksIHBhZ2VJRCgpLCBpZGVudGlmaWVyKCkpOwogfQogCi1zdGF0aWMgdm9pZCBsb2dC
bG9ja2VkQ29va2llSW5mb3JtYXRpb24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNv
bm5lY3Rpb24sIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IHZvaWQqIGxvZ2dlZE9iamVjdCwg
Y29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBuZXR3b3JrU3RvcmFnZVNlc3Np
b24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUlu
Zm8sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBPcHRpb25hbDx1aW50
NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgT3B0aW9uYWw8
dWludDY0X3Q+IGlkZW50aWZpZXIpCitzdGF0aWMgdm9pZCBsb2dCbG9ja2VkQ29va2llSW5mb3Jt
YXRpb24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIGNvbnN0IFN0
cmluZyYgbGFiZWwsIGNvbnN0IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29uc3QgV2ViQ29yZTo6TmV0
d29ya1N0b3JhZ2VTZXNzaW9uJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24sIGNvbnN0IFVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJs
LCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1l
SUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIE9wdGlvbmFsPHVpbnQ2NF90PiBp
ZGVudGlmaWVyKQogewogICAgIEFTU0VSVChOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNob3VsZExv
Z0Nvb2tpZUluZm9ybWF0aW9uKGNvbm5lY3Rpb24sIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5zZXNz
aW9uSUQoKSkpOwogCkBAIC0xMDU1LDcgKzEwNjAsNyBAQCBzdGF0aWMgdm9pZCBsb2dCbG9ja2Vk
Q29va2llSW5mb3JtYXRpb24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rp
bwogI3VuZGVmIExPQ0FMX0xPR19JRl9BTExPV0VECiB9CiAKLXN0YXRpYyB2b2lkIGxvZ0Nvb2tp
ZUluZm9ybWF0aW9uSW50ZXJuYWwoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5l
Y3Rpb24sIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29u
c3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24s
IGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiBzYW1l
U2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBPcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgT3B0
aW9uYWw8dWludDY0X3Q+IGlkZW50aWZpZXIpCitzdGF0aWMgdm9pZCBsb2dDb29raWVJbmZvcm1h
dGlvbkludGVybmFsKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBj
b25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2b2lkKiBsb2dnZWRPYmplY3QsIGNvbnN0IFdlYkNv
cmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLCBjb25zdCBV
UkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZv
LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgT3B0aW9uYWw8RnJhbWVJ
ZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBPcHRp
b25hbDx1aW50NjRfdD4gaWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQoTmV0d29ya1Jlc291cmNl
TG9hZGVyOjpzaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbihjb25uZWN0aW9uLCBuZXR3b3JrU3Rv
cmFnZVNlc3Npb24uc2Vzc2lvbklEKCkpKTsKIApAQCAtMTExNiw3ICsxMTIxLDcgQEAgc3RhdGlj
IHZvaWQgbG9nQ29va2llSW5mb3JtYXRpb25JbnRlcm5hbChOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcyYgY29ubmVjdGkKICN1bmRlZiBMT0NBTF9MT0dfSUZfQUxMT1dFRAogfQogCi12b2lk
IE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6bG9nQ29va2llSW5mb3JtYXRpb24oTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0
IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBuZXR3b3Jr
U3RvcmFnZVNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZv
JiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBP
cHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJ
RCwgT3B0aW9uYWw8dWludDY0X3Q+IGlkZW50aWZpZXIpCit2b2lkIE5ldHdvcmtSZXNvdXJjZUxv
YWRlcjo6bG9nQ29va2llSW5mb3JtYXRpb24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mm
IGNvbm5lY3Rpb24sIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IHZvaWQqIGxvZ2dlZE9iamVj
dCwgY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24sIGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBPcHRpb25hbDxGcmFtZUlkZW50
aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIE9wdGlvbmFs
PHVpbnQ2NF90PiBpZGVudGlmaWVyKQogewogICAgIEFTU0VSVChzaG91bGRMb2dDb29raWVJbmZv
cm1hdGlvbihjb25uZWN0aW9uLCBuZXR3b3JrU3RvcmFnZVNlc3Npb24uc2Vzc2lvbklEKCkpKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZGVyLmgKaW5kZXggNjJjNjVjZGRmZjdjYTBiMjBhMWMxOTA5OWI5ZjcxNWZhZTQ1NGE4ZS4u
NzQ5MmRmMzJmNzk5NmUwOTAzYmU5MGRhMDA1ZTliMTQ2ZGExNWZiYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCkBAIC04
NSw3ICs4NSw3IEBAIHB1YmxpYzoKICAgICBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYg
Y29ubmVjdGlvblRvV2ViUHJvY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1fY29ubmVjdGlvbjsgfQog
ICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVy
cy5zZXNzaW9uSUQ7IH0KICAgICBSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBj
b25zdCB7IHJldHVybiBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcjsgfQotICAgIHVpbnQ2NF90IGZy
YW1lSUQoKSBjb25zdCB7IHJldHVybiBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRDsgfQorICAgIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0
ZXJzLndlYkZyYW1lSUQ7IH0KICAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQoKSBj
b25zdCB7IHJldHVybiBtX3BhcmFtZXRlcnMud2ViUGFnZUlEOyB9CiAKICAgICBzdHJ1Y3QgU3lu
Y2hyb25vdXNMb2FkRGF0YTsKQEAgLTExMiw3ICsxMTIsNyBAQCBwdWJsaWM6CiAKICNpZiBFTkFC
TEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAg
ICBzdGF0aWMgYm9vbCBzaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYsIGNvbnN0IFBBTDo6U2Vzc2lvbklEJik7Ci0gICAgc3RhdGljIHZvaWQg
bG9nQ29va2llSW5mb3JtYXRpb24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBjb25z
dCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2b2lkKiBsb2dnZWRPYmplY3QsIGNvbnN0IFdlYkNvcmU6
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2Vi
Q29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwg
T3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyPiwgT3B0aW9uYWw8dWludDY0X3Q+IGlkZW50aWZpZXIpOworICAgIHN0YXRpYyB2b2lkIGxv
Z0Nvb2tpZUluZm9ybWF0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgY29uc3Qg
U3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBjb25zdCBXZWJDb3JlOjpO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNv
cmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIE9w
dGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyPiwgT3B0aW9uYWw8dWludDY0X3Q+IGlkZW50aWZpZXIpOwogI2VuZGlmCiAKICAg
ICB2b2lkIGRpc2FibGVFeHRyYU5ldHdvcmtMb2FkTWV0cmljc0NhcHR1cmUoKSB7IG1fc2hvdWxk
Q2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzID0gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCmluZGV4IGQ5NGZjNzM4
MGYxOWE1ZjVmNWI3OGVhMzllZjFkNjVhOTIxMWVlNGYuLjg1ZDEwMGNhNmM3YzA1ZmI4YzNkMTJk
MDNhNDQwMjgxMTAzOTVlZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY2FjaGUvTmV0d29ya0NhY2hlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9OZXR3b3JrQ2FjaGUuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIk5ldHdv
cmtDYWNoZUVudHJ5LmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlU3RvcmFnZS5oIgogI2luY2x1
ZGUgIlNoYXJlYWJsZVJlc291cmNlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZp
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVy
Lmg+CkBAIC04NSw3ICs4Niw3IEBAIGVudW0gY2xhc3MgVXNlRGVjaXNpb24gewogICAgIE5vRHVl
VG9FeHBpcmVkUmVkaXJlY3QKIH07CiAKLXVzaW5nIEdsb2JhbEZyYW1lSUQgPSBzdGQ6OnBhaXI8
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IC8qd2ViRnJhbWVJRCovPjsKK3VzaW5n
IEdsb2JhbEZyYW1lSUQgPSBzdGQ6OnBhaXI8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcj47IC8vIEZJWE1FOiBVc2UgR2xvYmFsRnJhbWVJZGVudGlmaWVy
LgogCiBlbnVtIGNsYXNzIENhY2hlT3B0aW9uIDogdWludDhfdCB7CiAgICAgLy8gSW4gdGVzdGlu
ZyBtb2RlIHdlIHRyeSB0byBlbGltaW5hdGUgc291cmNlcyBvZiByYW5kb21uZXNzLiBDYWNoZSBk
b2VzIG5vdCBzaHJpbmsgYW5kIHRoZXJlIGFyZSBubyByZWFkIHRpbWVvdXRzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2Nv
YS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tD
b2NvYS5oCmluZGV4IDI3OTM1NzUzNWJlMWU4NGExM2QzMWZmN2ZjMzJlYzgyZTY5ZWRiOGYuLjQz
YWQ2ZjFkZTQxYzUxNjFkZDlkYjNiNjlhZjkxY2EzZjdhYjI0MzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29h
LmgKQEAgLTQyLDcgKzQyLDcgQEAgY2xhc3MgTmV0d29ya1Nlc3Npb25Db2NvYTsKIGNsYXNzIE5l
dHdvcmtEYXRhVGFza0NvY29hIGZpbmFsIDogcHVibGljIE5ldHdvcmtEYXRhVGFzayB7CiAgICAg
ZnJpZW5kIGNsYXNzIE5ldHdvcmtTZXNzaW9uQ29jb2E7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxOZXR3b3JrRGF0YVRhc2s+IGNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29y
a0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgV2Vi
Q29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudEVuY29kaW5n
U25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJl
Y29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5G
cmFtZU5hdmlnYXRpb24sIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5SZXNvdXJjZU5hdmlnYXRpb25G
b3JBbnlGcmFtZSwgT3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4gbmV0d29ya0FjdGl2
aXR5VHJhY2tlcikKKyAgICBzdGF0aWMgUmVmPE5ldHdvcmtEYXRhVGFzaz4gY3JlYXRlKE5ldHdv
cmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29u
dGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgV2ViQ29yZTo6Q29udGVudEVu
Y29kaW5nU25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIGJvb2wgc2hv
dWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hv
dWxkUHJlY29ubmVjdE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24s
IGJvb2wgZGF0YVRhc2tJc0Zvck1haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSwgT3B0
aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4gbmV0d29ya0FjdGl2aXR5VHJhY2tlcikKICAg
ICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtEYXRhVGFza0NvY29hKHNl
c3Npb24sIGNsaWVudCwgcmVxdWVzdCwgZnJhbWVJRCwgcGFnZUlELCBzdG9yZWRDcmVkZW50aWFs
c1BvbGljeSwgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwg
c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgc2hvdWxkUHJlY29ubmVj
dE9ubHksIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBkYXRhVGFza0lzRm9yTWFp
blJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lLCBuZXR3b3JrQWN0aXZpdHlUcmFja2VyKSk7
CiAgICAgfQpAQCAtNjksMTMgKzY5LDEzIEBAIHB1YmxpYzoKIAogICAgIFdlYkNvcmU6Ok5ldHdv
cmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRNZXRyaWNzKCkgeyByZXR1cm4gbV9uZXR3b3JrTG9h
ZE1ldHJpY3M7IH0KIAotICAgIHVpbnQ2NF90IGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2Zy
YW1lSUQ7IH07CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQoKSBjb25zdCB7
IHJldHVybiBtX2ZyYW1lSUQ7IH07CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
KCkgY29uc3QgeyByZXR1cm4gbV9wYWdlSUQ7IH07CiAKICAgICBTdHJpbmcgZGVzY3JpcHRpb24o
KSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBOZXR3b3JrRGF0YVRhc2tDb2NvYShO
ZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtEYXRhVGFza0NsaWVudCYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZm
aW5nUG9saWN5LCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgYm9vbCBz
aG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSwg
Ym9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgYm9vbCBkYXRhVGFza0lzRm9y
TWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZp
dHlUcmFja2VyPik7CisgICAgTmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mLCBO
ZXR3b3JrRGF0YVRhc2tDbGllbnQmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3Jl
OjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5
LCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgYm9vbCBzaG91bGRDbGVh
clJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSwgYm9vbCBkYXRh
VGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgYm9vbCBkYXRhVGFza0lzRm9yTWFpblJlc291
cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2Vy
Pik7CiAKICAgICBib29sIHRyeVBhc3N3b3JkQmFzZWRBdXRoZW50aWNhdGlvbihjb25zdCBXZWJD
b3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVy
Jik7CiAgICAgdm9pZCBhcHBseVNuaWZmaW5nUG9saWNpZXNBbmRCaW5kUmVxdWVzdFRvSW5mZXJm
YWNlSWZOZWVkZWQoX19zdHJvbmcgTlNVUkxSZXF1ZXN0KiYsIGJvb2wgc2hvdWxkQ29udGVudFNu
aWZmLCBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKTsKQEAgLTkyLDcgKzkyLDcgQEAg
cHJpdmF0ZToKICAgICBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gbV9zYW5kYm94RXh0ZW5zaW9u
OwogICAgIFJldGFpblB0cjxOU1VSTFNlc3Npb25EYXRhVGFzaz4gbV90YXNrOwogICAgIFdlYkNv
cmU6Ok5ldHdvcmtMb2FkTWV0cmljcyBtX25ldHdvcmtMb2FkTWV0cmljczsKLSAgICB1aW50NjRf
dCBtX2ZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fZnJhbWVJRDsKICAg
ICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBtX3BhZ2VJRDsKIAogI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQppbmRleCA0MmU3YWNlNDI0YjJh
YjhiYjAwYTM3Yzk2M2VhOTdkNDQxMzE1YWUwLi5jMmU3YjM2ODU0ZTczOTVjYjY5MzBkNmUyNTc0
OGM0YmFkNjAxMjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KQEAgLTE3MCw3ICsxNzAsNyBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgY29tcHV0ZUlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZChOZXR3b3Jr
U2Vzc2lvbiYgc2Vzc2lvbikKICAgICByZXR1cm4gc2Vzc2lvbi5zZXNzaW9uSUQoKS5pc0Fsd2F5
c09uTG9nZ2luZ0FsbG93ZWQoKTsKIH0KIAotTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtE
YXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGll
bnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0aENy
ZWRlbnRpYWxzLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdl
SUQsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBX
ZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50RW5jb2Rp
bmdTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQ
cmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lzRm9yTWFp
bkZyYW1lTmF2aWdhdGlvbiwgYm9vbCBkYXRhVGFza0lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlv
bkZvckFueUZyYW1lLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBuZXR3b3JrQWN0
aXZpdHlUcmFja2VyKQorTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29h
KE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
cGFnZUlELCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFs
c1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlm
ZiwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudEVu
Y29kaW5nU25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVj
dCwgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zv
ck1haW5GcmFtZU5hdmlnYXRpb24sIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5SZXNvdXJjZU5hdmln
YXRpb25Gb3JBbnlGcmFtZSwgT3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4gbmV0d29y
a0FjdGl2aXR5VHJhY2tlcikKICAgICA6IE5ldHdvcmtEYXRhVGFzayhzZXNzaW9uLCBjbGllbnQs
IHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRD
bGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBkYXRhVGFza0lzRm9yTWFpbkZyYW1l
TmF2aWdhdGlvbikKICAgICAsIG1fZnJhbWVJRChmcmFtZUlEKQogICAgICwgbV9wYWdlSUQocGFn
ZUlEKQpAQCAtMjU2LDcgKzI1Niw3IEBAIE5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0
YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUCiAgICAgaWYg
KHNob3VsZEJsb2NrQ29va2llcykgewogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICAg
ICBpZiAobV9zZXNzaW9uLT5zaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbigpKQotICAgICAgICAg
ICAgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdvcmssICIl
cCAtIE5ldHdvcmtEYXRhVGFza0NvY29hOjpsb2dDb29raWVJbmZvcm1hdGlvbjogcGFnZUlEID0g
JWxsdSwgZnJhbWVJRCA9ICVsbHUsIHRhc2tJRCA9ICVsdTogQmxvY2tpbmcgY29va2llcyBmb3Ig
VVJMICVzIiwgdGhpcywgcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQsICh1bnNpZ25lZCBsb25n
KVttX3Rhc2sgdGFza0lkZW50aWZpZXJdLCBuc1JlcXVlc3QuVVJMLmFic29sdXRlU3RyaW5nLlVU
RjhTdHJpbmcpOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdB
bGxvd2VkKCksIE5ldHdvcmssICIlcCAtIE5ldHdvcmtEYXRhVGFza0NvY29hOjpsb2dDb29raWVJ
bmZvcm1hdGlvbjogcGFnZUlEID0gJWxsdSwgZnJhbWVJRCA9ICVsbHUsIHRhc2tJRCA9ICVsdTog
QmxvY2tpbmcgY29va2llcyBmb3IgVVJMICVzIiwgdGhpcywgcGFnZUlELnRvVUludDY0KCksIGZy
YW1lSUQudG9VSW50NjQoKSwgKHVuc2lnbmVkIGxvbmcpW21fdGFzayB0YXNrSWRlbnRpZmllcl0s
IG5zUmVxdWVzdC5VUkwuYWJzb2x1dGVTdHJpbmcuVVRGOFN0cmluZyk7CiAjZWxzZQogICAgICAg
ICBMT0coTmV0d29ya1Nlc3Npb24sICIlbGx1IEJsb2NraW5nIGNvb2tpZXMgZm9yIFVSTCAlcyIs
IFttX3Rhc2sgdGFza0lkZW50aWZpZXJdLCBuc1JlcXVlc3QuVVJMLmFic29sdXRlU3RyaW5nLlVU
RjhTdHJpbmcpOwogI2VuZGlmCkBAIC0zOTAsNyArMzkwLDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRh
c2tDb2NvYTo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYKICAgICB9CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgaWYgKG1fc2Vzc2lv
bi0+c2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oKSkKLSAgICAgICAgUkVMRUFTRV9MT0dfSUYo
aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdvcmssICIlcCAtIE5ldHdvcmtEYXRhVGFz
a0NvY29hOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbjo6bG9nQ29va2llSW5mb3JtYXRpb246
IHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCB0YXNrSUQgPSAlbHU6ICVzIGNvb2tpZXMg
Zm9yIHJlZGlyZWN0IFVSTCAlcyIsIHRoaXMsIG1fcGFnZUlELnRvVUludDY0KCksIG1fZnJhbWVJ
RCwgKHVuc2lnbmVkIGxvbmcpW21fdGFzayB0YXNrSWRlbnRpZmllcl0sIChtX2hhc0JlZW5TZXRU
b1VzZVN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2UgPyAiQmxvY2tpbmciIDogIk5vdCBibG9ja2luZyIp
LCByZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBSRUxFQVNF
X0xPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29yaywgIiVwIC0gTmV0d29y
a0RhdGFUYXNrQ29jb2E6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uOjpsb2dDb29raWVJbmZv
cm1hdGlvbjogcGFnZUlEID0gJWxsdSwgZnJhbWVJRCA9ICVsbHUsIHRhc2tJRCA9ICVsdTogJXMg
Y29va2llcyBmb3IgcmVkaXJlY3QgVVJMICVzIiwgdGhpcywgbV9wYWdlSUQudG9VSW50NjQoKSwg
bV9mcmFtZUlELnRvVUludDY0KCksICh1bnNpZ25lZCBsb25nKVttX3Rhc2sgdGFza0lkZW50aWZp
ZXJdLCAobV9oYXNCZWVuU2V0VG9Vc2VTdGF0ZWxlc3NDb29raWVTdG9yYWdlID8gIkJsb2NraW5n
IiA6ICJOb3QgYmxvY2tpbmciKSwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgp
KTsKICNlbHNlCiAgICAgTE9HKE5ldHdvcmtTZXNzaW9uLCAiJWxsdSAlcyBjb29raWVzIGZvciBy
ZWRpcmVjdCBVUkwgJXMiLCBbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgKG1faGFzQmVlblNldFRv
VXNlU3RhdGVsZXNzQ29va2llU3RvcmFnZSA/ICJCbG9ja2luZyIgOiAiTm90IGJsb2NraW5nIiks
IHJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IGYwZWM4ZGMxYjcxNjliY2NhNTVh
NjU0OTEyZWQyZmVmNTM3MGRmMTAuLmMwMWU4OTU5ZTgwN2ZmNjI0ZWY4NTc3ZWIzNTU2NWU0MmQ5
M2EzYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMu
cHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMjA1
LDYgKzIwNSw3IEBAIGRlZiBmb3J3YXJkX2RlY2xhcmF0aW9uc19hbmRfaGVhZGVycyhyZWNlaXZl
cik6CiAgICAgICAgICdTdHJpbmcnLAogICAgICAgICAnV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlm
aWVyJywKICAgICAgICAgJ1dlYkNvcmU6OkZldGNoSWRlbnRpZmllcicsCisgICAgICAgICdXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIn
LAogICAgICAgICAnV2ViQ29yZTo6UG9pbnRlcklEJywKICAgICAgICAgJ1dlYkNvcmU6OlByb2Nl
c3NJZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElG
cmFtZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUu
Y3BwCmluZGV4IDc5NjQ2YWM2ZTU5YzQxZDRkZjcwOTAxZGJhN2UyNjc1MzM2ZDUyNGEuLjQwODAx
Mzg4NTQ4YTE4MTFhYjU5ZTVjYjI0NWExMTUyMTE0MmJlZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmNwcApAQCAtMzEsMTcgKzMxLDE3IEBACiAKIG5hbWVz
cGFjZSBBUEkgewogCi1SZWY8RnJhbWVIYW5kbGU+IEZyYW1lSGFuZGxlOjpjcmVhdGUodWludDY0
X3QgZnJhbWVJRCkKK1JlZjxGcmFtZUhhbmRsZT4gRnJhbWVIYW5kbGU6OmNyZWF0ZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBG
cmFtZUhhbmRsZShmcmFtZUlELCBmYWxzZSkpOwogfQogCi1SZWY8RnJhbWVIYW5kbGU+IEZyYW1l
SGFuZGxlOjpjcmVhdGVBdXRvY29udmVydGluZyh1aW50NjRfdCBmcmFtZUlEKQorUmVmPEZyYW1l
SGFuZGxlPiBGcmFtZUhhbmRsZTo6Y3JlYXRlQXV0b2NvbnZlcnRpbmcoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRnJhbWVIYW5k
bGUoZnJhbWVJRCwgdHJ1ZSkpOwogfQogCi1GcmFtZUhhbmRsZTo6RnJhbWVIYW5kbGUodWludDY0
X3QgZnJhbWVJRCwgYm9vbCBpc0F1dG9jb252ZXJ0aW5nKQorRnJhbWVIYW5kbGU6OkZyYW1lSGFu
ZGxlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzQXV0b2NvbnZlcnRp
bmcpCiAgICAgOiBtX2ZyYW1lSUQoZnJhbWVJRCkKICAgICAsIG1faXNBdXRvY29udmVydGluZyhp
c0F1dG9jb252ZXJ0aW5nKQogewpAQCAtNTksNyArNTksNyBAQCB2b2lkIEZyYW1lSGFuZGxlOjpl
bmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogCiBib29sIEZyYW1lSGFuZGxlOjpk
ZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8T2JqZWN0PiYgcmVzdWx0KQogewot
ICAgIHVpbnQ2NF90IGZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQ7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShmcmFtZUlEKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5k
bGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5oCmluZGV4IGIx
MGU4MDhhNGIxOWFkMzEzZDhiNDU1YzIzYjlkODM5OWNjMzg1NTAuLjFjNjRhNGFkMWU4MDJhMDQ2
NzI5ODFiY2JmOGE3NjAxNjQyNWZmZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0FQSS9BUElGcmFtZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElG
cmFtZUhhbmRsZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIEFQSUZyYW1lSGFuZGxlX2gK
IAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlm
aWVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTM4LDIw
ICszOSwyMCBAQCBuYW1lc3BhY2UgQVBJIHsKIAogY2xhc3MgRnJhbWVIYW5kbGUgOiBwdWJsaWMg
T2JqZWN0SW1wbDxPYmplY3Q6OlR5cGU6OkZyYW1lSGFuZGxlPiB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZjxGcmFtZUhhbmRsZT4gY3JlYXRlKHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHN0YXRp
YyBSZWY8RnJhbWVIYW5kbGU+IGNyZWF0ZUF1dG9jb252ZXJ0aW5nKHVpbnQ2NF90IGZyYW1lSUQp
OworICAgIHN0YXRpYyBSZWY8RnJhbWVIYW5kbGU+IGNyZWF0ZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIpOworICAgIHN0YXRpYyBSZWY8RnJhbWVIYW5kbGU+IGNyZWF0ZUF1dG9jb252ZXJ0aW5n
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAKLSAgICBleHBsaWNpdCBGcmFtZUhhbmRsZSh1
aW50NjRfdCBmcmFtZUlELCBib29sIGlzQXV0b2NvbnZlcnRpbmcpOworICAgIGV4cGxpY2l0IEZy
YW1lSGFuZGxlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBpc0F1dG9jb252ZXJ0aW5n
KTsKICAgICB2aXJ0dWFsIH5GcmFtZUhhbmRsZSgpOwogCi0gICAgdWludDY0X3QgZnJhbWVJRCgp
IGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQorICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9CiAgICAgYm9vbCBpc0F1dG9j
b252ZXJ0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9pc0F1dG9jb252ZXJ0aW5nOyB9CiAKICAgICB2
b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
SVBDOjpEZWNvZGVyJiwgUmVmUHRyPE9iamVjdD4mKTsKIAogcHJpdmF0ZToKLSAgICBjb25zdCB1
aW50NjRfdCBtX2ZyYW1lSUQ7CisgICAgY29uc3QgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1f
ZnJhbWVJRDsKICAgICBjb25zdCBib29sIG1faXNBdXRvY29udmVydGluZzsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5tbSBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5tbQppbmRleCBh
NDFhNjEzYTdkMzcxZDdhZTJhNzNlNDA1ODI3YjBhYmQ3MzU3MDcwLi5lZGNiMzhlNjM1YTdiZjA5
MjdiMTEwY2M3ZDRjZjk3NjZhYjVkMDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5kbGUubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
QVBJL0NvY29hL19XS0ZyYW1lSGFuZGxlLm1tCkBAIC0yNiw2ICsyNiw4IEBACiAjaW1wb3J0ICJj
b25maWcuaCIKICNpbXBvcnQgIl9XS0ZyYW1lSGFuZGxlSW50ZXJuYWwuaCIKIAorI2ltcG9ydCA8
V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KKwogQGltcGxlbWVudGF0aW9uIF9XS0ZyYW1lSGFu
ZGxlIHsKICAgICBBUEk6Ok9iamVjdFN0b3JhZ2U8QVBJOjpGcmFtZUhhbmRsZT4gX2ZyYW1lSGFu
ZGxlOwogfQpAQCAtNTAsMTIgKzUyLDEyIEBAIC0gKEJPT0wpaXNFcXVhbDooaWQpb2JqZWN0CiAK
IC0gKE5TVUludGVnZXIpaGFzaAogewotICAgIHJldHVybiBfZnJhbWVIYW5kbGUtPmZyYW1lSUQo
KTsKKyAgICByZXR1cm4gX2ZyYW1lSGFuZGxlLT5mcmFtZUlEKCkudG9VSW50NjQoKTsKIH0KIAog
LSAodWludDY0X3QpX2ZyYW1lSUQKIHsKLSAgICByZXR1cm4gX2ZyYW1lSGFuZGxlLT5mcmFtZUlE
KCk7CisgICAgcmV0dXJuIF9mcmFtZUhhbmRsZS0+ZnJhbWVJRCgpLnRvVUludDY0KCk7CiB9CiAK
ICNwcmFnbWEgbWFyayBOU0NvcHlpbmcgcHJvdG9jb2wgaW1wbGVtZW50YXRpb24KQEAgLTgzLDE0
ICs4NSwxNCBAQCAtIChpZClpbml0V2l0aENvZGVyOihOU0NvZGVyICopZGVjb2RlcgogICAgICAg
ICByZXR1cm4gbmlsOwogICAgIH0KIAotICAgIEFQSTo6T2JqZWN0Ojpjb25zdHJ1Y3RJbldyYXBw
ZXI8QVBJOjpGcmFtZUhhbmRsZT4oc2VsZiwgZnJhbWVJRC51bnNpZ25lZExvbmdMb25nVmFsdWUs
IGZhbHNlKTsKKyAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6RnJhbWVI
YW5kbGU+KHNlbGYsIFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRChmcmFtZUlELnVuc2ln
bmVkTG9uZ0xvbmdWYWx1ZSksIGZhbHNlKTsKIAogICAgIHJldHVybiBzZWxmOwogfQogCiAtICh2
b2lkKWVuY29kZVdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCiB7Ci0gICAgW2NvZGVyIGVuY29k
ZU9iamVjdDpAKF9mcmFtZUhhbmRsZS0+ZnJhbWVJRCgpKSBmb3JLZXk6QCJmcmFtZUlEIl07Cisg
ICAgW2NvZGVyIGVuY29kZU9iamVjdDpAKFtzZWxmIF9mcmFtZUlEXSkgZm9yS2V5OkAiZnJhbWVJ
RCJdOwogfQogCiAjcHJhZ21hIG1hcmsgV0tPYmplY3QgcHJvdG9jb2wgaW1wbGVtZW50YXRpb24K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRp
Y2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9B
dXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCmluZGV4IDlkZWI3NmZmMTMyYzZjYjVmZGY1ZWJmNTIy
MjM0ZjZkNDQzZWY5NGQuLjM4YTViZmY2YWZkMjU3MWQ1MmRjZTRjMDk4MDRhYTc1NDRhYmU0ZjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRp
Y2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRp
b24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcApAQCAtMTA4LDcgKzEwOCw3IEBAIFZlY3Rvcjx1
aW50NjRfdD4gQXV0aGVudGljYXRpb25NYW5hZ2VyOjpjb2FsZXNjZUNoYWxsZW5nZXNNYXRjaGlu
Zyh1aW50NjRfdCBjaGFsCiAgICAgcmV0dXJuIGNoYWxsZW5nZXNUb0NvYWxlc2NlOwogfQogCi12
b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBDaGFsbGVuZ2VDb21w
bGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBBdXRoZW50aWNhdGlvbk1h
bmFnZXI6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShQYWdlSWRlbnRpZmllciBw
YWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVy
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKHBhZ2VJRCk7CiAgICAgQVNTRVJU
KGZyYW1lSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRp
b24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaAppbmRleCA4NmU3NDRjMTA4ZGY0Y2JjZjVk
MDQ3NjA5YWNmOTZjNjgyM2Q2YjE2Li40MDM2ZWFiNzdmZDljZTE1NTUzMGZiNmE0Y2M1NjE2ODNk
N2VkOTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9B
dXRoZW50aWNhdGlvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1
ZGUgIk5ldHdvcmtQcm9jZXNzU3VwcGxlbWVudC5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NTdXBw
bGVtZW50LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
YWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC02MSw3ICs2Miw3IEBAIHB1YmxpYzoKIAogICAgIHN0
YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgQ2hhbGxl
bmdlQ29tcGxldGlvbkhhbmRsZXImJik7CisgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBDaGFsbGVuZ2VD
b21wbGV0aW9uSGFuZGxlciYmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZShJUEM6Ok1lc3NhZ2VTZW5kZXImIGRvd25sb2FkLCBjb25zdCBXZWJDb3JlOjpBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYpOwogCiAg
ICAgdm9pZCBjb21wbGV0ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHVpbnQ2NF90IGNoYWxsZW5n
ZUlELCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uLCBXZWJDb3JlOjpDcmVkZW50
aWFsJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRnJhbWVJbmZvRGF0YS5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvRnJhbWVJbmZvRGF0YS5oCmluZGV4IGE4MjgzNjg2ZjE2
YWIzY2QzNTI0OWNlNzA1ZDNmMmI4ZTdiYjNjNjYuLjEzYTAyOTk0NGIyODk5MGFjYWI0ODI2Zjc2
ZjUzZDQ0NzlkMzdhMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5m
b0RhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9GcmFtZUluZm9EYXRhLmgKQEAgLTI1
LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRl
bnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KIApAQCAtNDIsNyArNDMsNyBAQCBzdHJ1
Y3QgRnJhbWVJbmZvRGF0YSB7CiAgICAgYm9vbCBpc01haW5GcmFtZSB7IGZhbHNlIH07CiAgICAg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Q7CiAgICAgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhIHNlY3VyaXR5T3JpZ2luOwotICAgIHVpbnQ2NF90IGZyYW1lSUQgeyAwIH07Cisg
ICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQ7CiB9OwogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lSGFuZGxlUmVmLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVIYW5kbGVSZWYuY3BwCmluZGV4IGIz
OWZjYTFiZTU3ZjBkMjc0ZDg0NTdmMDQzZjUwZWFiNjJmMjNjNTguLmU4NzNmYzQ2NTFkNTI2OTM4
OTM2OWZjNjBhNzgwMjY1NDIwNWRkN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLRnJhbWVIYW5kbGVSZWYuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLRnJhbWVIYW5kbGVSZWYuY3BwCkBAIC0zOCw1ICszOCw1IEBAIFdLVHlwZUlE
IFdLRnJhbWVIYW5kbGVHZXRUeXBlSUQoKQogCiB1aW50NjRfdCBXS0ZyYW1lSGFuZGxlR2V0RnJh
bWVJRChXS0ZyYW1lSGFuZGxlUmVmIGZyYW1lSGFuZGxlUmVmKQogewotICAgIHJldHVybiB0b0lt
cGwoZnJhbWVIYW5kbGVSZWYpLT5mcmFtZUlEKCk7CisgICAgcmV0dXJuIHRvSW1wbChmcmFtZUhh
bmRsZVJlZiktPmZyYW1lSUQoKS50b1VJbnQ2NCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMDM5MWExOTkyZTM1MzJkYmU1ZjIx
ZGI2OTFkZDgxMDhhYWUyYTY2Yy4uMDk1MWU5NDQzN2JjZTQ2NjVkNjE1YmQwNDBkMjZkZjIwYjY0
ZGYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tCkBAIC02NjIxLDcgKzY2MjEsNyBAQCAtIChOU1ByaW50T3BlcmF0aW9uICopX3ByaW50T3Bl
cmF0aW9uV2l0aFByaW50SW5mbzooTlNQcmludEluZm8gKilwcmludEluZm8KIAogLSAoTlNQcmlu
dE9wZXJhdGlvbiAqKV9wcmludE9wZXJhdGlvbldpdGhQcmludEluZm86KE5TUHJpbnRJbmZvICop
cHJpbnRJbmZvIGZvckZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lSGFuZGxlCiB7Ci0gICAg
aWYgKGF1dG8qIHdlYkZyYW1lUHJveHkgPSBfcGFnZS0+cHJvY2VzcygpLndlYkZyYW1lKGZyYW1l
SGFuZGxlLl9mcmFtZUlEKSkKKyAgICBpZiAoYXV0byogd2ViRnJhbWVQcm94eSA9IF9wYWdlLT5w
cm9jZXNzKCkud2ViRnJhbWUoV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKGZyYW1lSGFu
ZGxlLl9mcmFtZUlEKSkpCiAgICAgICAgIHJldHVybiBfaW1wbC0+cHJpbnRPcGVyYXRpb25XaXRo
UHJpbnRJbmZvKHByaW50SW5mbywgKndlYkZyYW1lUHJveHkpOwogICAgIHJldHVybiBuaWw7CiB9
CkBAIC03MTE0LDcgKzcxMTQsNyBAQCAtICh2b2lkKV9jb21wbGV0ZUltbWVkaWF0ZUFjdGlvbkFu
aW1hdGlvbgogCiAtIChCT09MKV9jYW5DaGFuZ2VGcmFtZUxheW91dDooX1dLRnJhbWVIYW5kbGUg
KilmcmFtZUhhbmRsZQogewotICAgIGlmIChhdXRvKiB3ZWJGcmFtZVByb3h5ID0gX3BhZ2UtPnBy
b2Nlc3MoKS53ZWJGcmFtZShmcmFtZUhhbmRsZS5fZnJhbWVJRCkpCisgICAgaWYgKGF1dG8qIHdl
YkZyYW1lUHJveHkgPSBfcGFnZS0+cHJvY2VzcygpLndlYkZyYW1lKFdlYkNvcmU6OmZyYW1lSWRl
bnRpZmllckZyb21JRChmcmFtZUhhbmRsZS5fZnJhbWVJRCkpKQogICAgICAgICByZXR1cm4gX2lt
cGwtPmNhbkNoYW5nZUZyYW1lTGF5b3V0KCp3ZWJGcmFtZVByb3h5KTsKICAgICByZXR1cm4gZmFs
c2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
SW5zcGVjdG9yLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3Bl
Y3Rvci5tbQppbmRleCBjNDk5YjE4ZmE5Mzg4YTQ1ODQzMTQ3NzA4ZDNkMjk2ZGQ1MzI5MGE0Li4z
ZDE1ZWMyZWVhNzkxMWIyYTM5ZDY0MDg3OTM2YmY0ZWE2MzQxM2FhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW0KQEAgLTMwLDYgKzMw
LDcgQEAKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgogI2ltcG9ydCAiX1dLRnJhbWVIYW5k
bGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLSW5zcGVjdG9ySW50ZXJuYWwuaCIKKyNpbXBvcnQg
PFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAK
IEBpbXBsZW1lbnRhdGlvbiBfV0tJbnNwZWN0b3IKQEAgLTk5LDcgKzEwMCw3IEBAIC0gKHZvaWQp
c2hvd1Jlc291cmNlcwogLSAodm9pZClzaG93TWFpblJlc291cmNlRm9yRnJhbWU6KF9XS0ZyYW1l
SGFuZGxlICopZnJhbWUKIHsKICAgICBpZiAoYXV0byogcGFnZSA9IF9pbnNwZWN0b3ItPmluc3Bl
Y3RlZFBhZ2UoKSkKLSAgICAgICAgX2luc3BlY3Rvci0+c2hvd01haW5SZXNvdXJjZUZvckZyYW1l
KHBhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZS5fZnJhbWVJRCkpOworICAgICAgICBfaW5z
cGVjdG9yLT5zaG93TWFpblJlc291cmNlRm9yRnJhbWUocGFnZS0+cHJvY2VzcygpLndlYkZyYW1l
KFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRChmcmFtZS5fZnJhbWVJRCkpKTsKIH0KIAog
LSAodm9pZClhdHRhY2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9t
YXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmNwcAppbmRleCA3YWNjNjhi
YWVmZWFiMDczYmY2NjBmNmMwYmNlNWVmYjk3YjVhZTYyLi5kODc0OGVlYTdmYzZkYWUxNTQyNmFk
YWVhOTY5Yjc0YmRlZTYzZGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
dXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3BwCkBAIC0z
ODIsNyArMzgyLDcgQEAgdm9pZCBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXI6OnRyYW5zaXRpb25J
bnB1dFNvdXJjZVRvU3RhdGUoU2ltdWxhdGVkSW5wdXRTb3VyY2UKICAgICB9CiB9CiAKLXZvaWQg
U2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyOjpydW4odWludDY0X3QgZnJhbWVJRCwgVmVjdG9yPFNp
bXVsYXRlZElucHV0S2V5RnJhbWU+JiYga2V5RnJhbWVzLCBIYXNoU2V0PFJlZjxTaW11bGF0ZWRJ
bnB1dFNvdXJjZT4+JiBpbnB1dFNvdXJjZXMsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciYm
IGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXI6OnJ1bihX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgVmVjdG9yPFNpbXVsYXRlZElucHV0S2V5
RnJhbWU+JiYga2V5RnJhbWVzLCBIYXNoU2V0PFJlZjxTaW11bGF0ZWRJbnB1dFNvdXJjZT4+JiBp
bnB1dFNvdXJjZXMsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIEFTU0VSVCghaXNBY3RpdmUoKSk7CiAgICAgaWYgKGlzQWN0aXZlKCkpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVk
SW5wdXREaXNwYXRjaGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1Np
bXVsYXRlZElucHV0RGlzcGF0Y2hlci5oCmluZGV4IDdmNDE0MWNlMGEzOWU1NjA3M2M3ZWM4YTk2
NTYwY2JjMzQ4YWRmYTYuLmIwODkxYThmMGI2NzUyOWNiOWIzOTg2Yjg3OTUzMDcxMmE0YWFkNDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVk
SW5wdXREaXNwYXRjaGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlv
bi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJM
RShXRUJEUklWRVJfQUNUSU9OU19BUEkpCiAKICNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25I
YW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9u
YWwuaD4KQEAgLTEzMiw3ICsxMzMsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdFQkRSSVZFUl9L
RVlCT0FSRF9JTlRFUkFDVElPTlMpCiAgICAgICAgIHZpcnR1YWwgdm9pZCBzaW11bGF0ZUtleWJv
YXJkSW50ZXJhY3Rpb24oV2ViUGFnZVByb3h5JiwgS2V5Ym9hcmRJbnRlcmFjdGlvbiwgV1RGOjpW
YXJpYW50PFZpcnR1YWxLZXksIENoYXJLZXk+JiYsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxl
ciYmKSA9IDA7CiAjZW5kaWYKLSAgICAgICAgdmlydHVhbCB2b2lkIHZpZXdwb3J0SW5WaWV3Q2Vu
dGVyUG9pbnRPZkVsZW1lbnQoV2ViUGFnZVByb3h5JiwgdWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
U3RyaW5nJiBub2RlSGFuZGxlLCBGdW5jdGlvbjx2b2lkIChPcHRpb25hbDxXZWJDb3JlOjpJbnRQ
b2ludD4sIE9wdGlvbmFsPEF1dG9tYXRpb25Db21tYW5kRXJyb3I+KT4mJikgPSAwOworICAgICAg
ICB2aXJ0dWFsIHZvaWQgdmlld3BvcnRJblZpZXdDZW50ZXJQb2ludE9mRWxlbWVudChXZWJQYWdl
UHJveHkmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbm9kZUhhbmRs
ZSwgRnVuY3Rpb248dm9pZCAoT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBPcHRpb25hbDxB
dXRvbWF0aW9uQ29tbWFuZEVycm9yPik+JiYpID0gMDsKICAgICB9OwogCiAgICAgc3RhdGljIFJl
ZjxTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXI+IGNyZWF0ZShXZWJQYWdlUHJveHkmIHBhZ2UsIFNp
bXVsYXRlZElucHV0RGlzcGF0Y2hlcjo6Q2xpZW50JiBjbGllbnQpCkBAIC0xNDIsNyArMTQzLDcg
QEAgcHVibGljOgogCiAgICAgflNpbXVsYXRlZElucHV0RGlzcGF0Y2hlcigpOwogCi0gICAgdm9p
ZCBydW4odWludDY0X3QgZnJhbWVJRCwgVmVjdG9yPFNpbXVsYXRlZElucHV0S2V5RnJhbWU+JiYg
a2V5RnJhbWVzLCBIYXNoU2V0PFJlZjxTaW11bGF0ZWRJbnB1dFNvdXJjZT4+JiBpbnB1dFNvdXJj
ZXMsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciYmKTsKKyAgICB2b2lkIHJ1bihXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIFZlY3RvcjxTaW11bGF0ZWRJbnB1dEtleUZyYW1lPiYmIGtleUZy
YW1lcywgSGFzaFNldDxSZWY8U2ltdWxhdGVkSW5wdXRTb3VyY2U+PiYgaW5wdXRTb3VyY2VzLCBB
dXRvbWF0aW9uQ29tcGxldGlvbkhhbmRsZXImJik7CiAgICAgdm9pZCBjYW5jZWwoKTsKIAogICAg
IGJvb2wgaXNBY3RpdmUoKSBjb25zdDsKQEAgLTE2NSw3ICsxNjYsNyBAQCBwcml2YXRlOgogICAg
IFdlYlBhZ2VQcm94eSYgbV9wYWdlOwogICAgIFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlcjo6Q2xp
ZW50JiBtX2NsaWVudDsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBtX2ZyYW1lSUQ7CisgICAg
T3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBtX2ZyYW1lSUQ7CiAgICAgQXV0b21h
dGlvbkNvbXBsZXRpb25IYW5kbGVyIG1fcnVuQ29tcGxldGlvbkhhbmRsZXI7CiAgICAgQXV0b21h
dGlvbkNvbXBsZXRpb25IYW5kbGVyIG1fa2V5RnJhbWVUcmFuc2l0aW9uQ29tcGxldGlvbkhhbmRs
ZXI7CiAgICAgUnVuTG9vcDo6VGltZXI8U2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyPiBtX2tleUZy
YW1lVHJhbnNpdGlvbkR1cmF0aW9uVGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCmluZGV4IGNj
ZTVjNDgxN2E4MDQ5MTdjZGMxOTljMWIwMTYwZTI1NmU5YmUyOTcuLjY4YmRhZGM4MjcxNzQzNzIz
NzQ0ZWQ1YzkyOGYxMGEwZGY5ZjJjZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCkBAIC0yMDIs
MTAgKzIwMiwxMCBAQCBTdHJpbmcgV2ViQXV0b21hdGlvblNlc3Npb246OmhhbmRsZUZvcldlYlBh
Z2VQcm94eShjb25zdCBXZWJQYWdlUHJveHkmIHdlYlBhZ2VQcgogICAgIHJldHVybiBoYW5kbGU7
CiB9CiAKLU9wdGlvbmFsPHVpbnQ2NF90PiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2ViRnJhbWVJ
REZvckhhbmRsZShjb25zdCBTdHJpbmcmIGhhbmRsZSkKK09wdGlvbmFsPEZyYW1lSWRlbnRpZmll
cj4gV2ViQXV0b21hdGlvblNlc3Npb246OndlYkZyYW1lSURGb3JIYW5kbGUoY29uc3QgU3RyaW5n
JiBoYW5kbGUpCiB7CiAgICAgaWYgKGhhbmRsZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiAw
OworICAgICAgICByZXR1cm4gRnJhbWVJZGVudGlmaWVyIHsgfTsgLy8gVGhpcyBpcyBleHBsaWNp
dGx5IHplcm87IHNlZSB3ZWJraXQub3JnL2IvMTU5Nzc3LgogCiAgICAgYXV0byBpdGVyID0gbV9o
YW5kbGVXZWJGcmFtZU1hcC5maW5kKGhhbmRsZSk7CiAgICAgaWYgKGl0ZXIgPT0gbV9oYW5kbGVX
ZWJGcmFtZU1hcC5lbmQoKSkKQEAgLTIxNCw3ICsyMTQsNyBAQCBPcHRpb25hbDx1aW50NjRfdD4g
V2ViQXV0b21hdGlvblNlc3Npb246OndlYkZyYW1lSURGb3JIYW5kbGUoY29uc3QgU3RyaW5nJiBo
YW5kbAogICAgIHJldHVybiBpdGVyLT52YWx1ZTsKIH0KIAotU3RyaW5nIFdlYkF1dG9tYXRpb25T
ZXNzaW9uOjpoYW5kbGVGb3JXZWJGcmFtZUlEKHVpbnQ2NF90IGZyYW1lSUQpCitTdHJpbmcgV2Vi
QXV0b21hdGlvblNlc3Npb246OmhhbmRsZUZvcldlYkZyYW1lSUQoRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQpCiB7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmco
KTsKQEAgLTM2Miw3ICszNjIsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpzd2l0Y2hU
b0Jyb3dzaW5nQ29udGV4dChjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dAogICAgIGlmICgh
cGFnZSkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90
Rm91bmQpOwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9y
SGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5kbGUgPyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5
U3RyaW5nKCkpOworICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUob3B0aW9u
YWxGcmFtZUhhbmRsZSA/ICpvcHRpb25hbEZyYW1lSGFuZGxlIDogZW1wdHlTdHJpbmcoKSk7CiAg
ICAgaWYgKCFmcmFtZUlEKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJP
UihGcmFtZU5vdEZvdW5kKTsKIApAQCAtNDU5LDcgKzQ1OSw3IEBAIHZvaWQgV2ViQXV0b21hdGlv
blNlc3Npb246OndhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZShjb25zdCBTdHJpbmcmIGJyb3dz
aW5nQ29uCiAgICAgICAgICYmIHBhZ2UtPnBhZ2VMb2FkU3RhdGUoKS5pc0xvYWRpbmcoKSAmJiBt
X2NsaWVudC0+aXNTaG93aW5nSmF2YVNjcmlwdERpYWxvZ09uUGFnZSgqdGhpcywgKnBhZ2UpOwog
CiAgICAgaWYgKG9wdGlvbmFsRnJhbWVIYW5kbGUgJiYgIW9wdGlvbmFsRnJhbWVIYW5kbGUtPmlz
RW1wdHkoKSkgewotICAgICAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCA9IHdlYkZyYW1l
SURGb3JIYW5kbGUoKm9wdGlvbmFsRnJhbWVIYW5kbGUpOworICAgICAgICBhdXRvIGZyYW1lSUQg
PSB3ZWJGcmFtZUlERm9ySGFuZGxlKCpvcHRpb25hbEZyYW1lSGFuZGxlKTsKICAgICAgICAgaWYg
KCFmcmFtZUlEKQogICAgICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1Io
RnJhbWVOb3RGb3VuZCk7CiAgICAgICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gcGFnZS0+cHJv
Y2VzcygpLndlYkZyYW1lKGZyYW1lSUQudmFsdWUoKSk7CkBAIC01MzcsNyArNTM3LDcgQEAgdm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVzcG9uZFRvUGVuZGluZ1BhZ2VOYXZpZ2F0aW9uQ2Fs
bGJhY2tzV2l0aFRpbWVvdXQoSGEKICAgICB9CiB9CiAKLXN0YXRpYyBXZWJQYWdlUHJveHkqIGZp
bmRQYWdlRm9yRnJhbWVJRChjb25zdCBXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIHVpbnQ2
NF90IGZyYW1lSUQpCitzdGF0aWMgV2ViUGFnZVByb3h5KiBmaW5kUGFnZUZvckZyYW1lSUQoY29u
c3QgV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkK
IHsKICAgICBmb3IgKGF1dG8mIHByb2Nlc3MgOiBwcm9jZXNzUG9vbC5wcm9jZXNzZXMoKSkgewog
ICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBwcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKSkKQEAg
LTU0Niw3ICs1NDYsNyBAQCBzdGF0aWMgV2ViUGFnZVByb3h5KiBmaW5kUGFnZUZvckZyYW1lSUQo
Y29uc3QgV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCB1aW50NgogICAgIHJldHVybiBudWxs
cHRyOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNwb25kVG9QZW5kaW5nRnJh
bWVOYXZpZ2F0aW9uQ2FsbGJhY2tzV2l0aFRpbWVvdXQoSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRy
PEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+JiBtYXApCit2b2lk
IFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNwb25kVG9QZW5kaW5nRnJhbWVOYXZpZ2F0aW9uQ2Fs
bGJhY2tzV2l0aFRpbWVvdXQoSGFzaE1hcDxGcmFtZUlkZW50aWZpZXIsIFJlZlB0cjxJbnNwZWN0
b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiYgbWFwKQogewogICAgIEluc3Bl
Y3Rvcjo6RXJyb3JTdHJpbmcgdGltZW91dEVycm9yID0gU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VS
Uk9SX05BTUUoVGltZW91dCk7CiAgICAgZm9yIChhdXRvIGlkIDogY29weVRvVmVjdG9yKG1hcC5r
ZXlzKCkpKSB7CkBAIC05MjQsNyArOTI0LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6
ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnQKICAg
ICBpZiAoIXBhZ2UpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdp
bmRvd05vdEZvdW5kKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEID0gd2ViRnJh
bWVJREZvckhhbmRsZShvcHRpb25hbEZyYW1lSGFuZGxlID8gKm9wdGlvbmFsRnJhbWVIYW5kbGUg
OiBlbXB0eVN0cmluZygpKTsKKyAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxl
KG9wdGlvbmFsRnJhbWVIYW5kbGUgPyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5n
KCkpOwogICAgIGlmICghZnJhbWVJRCkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklO
RURfRVJST1IoRnJhbWVOb3RGb3VuZCk7CiAKQEAgLTk2NywxMSArOTY3LDExIEBAIHZvaWQgV2Vi
QXV0b21hdGlvblNlc3Npb246OnJlc29sdmVDaGlsZEZyYW1lSGFuZGxlKGNvbnN0IFN0cmluZyYg
YnJvd3NpbmdDb250ZXh0CiAgICAgaWYgKCFwYWdlKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhf
UFJFREVGSU5FRF9FUlJPUihXaW5kb3dOb3RGb3VuZCk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUob3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpv
cHRpb25hbEZyYW1lSGFuZGxlIDogZW1wdHlTdHJpbmcoKSk7CisgICAgYXV0byBmcmFtZUlEID0g
d2ViRnJhbWVJREZvckhhbmRsZShvcHRpb25hbEZyYW1lSGFuZGxlID8gKm9wdGlvbmFsRnJhbWVI
YW5kbGUgOiBlbXB0eVN0cmluZygpKTsKICAgICBpZiAoIWZyYW1lSUQpCiAgICAgICAgIEFTWU5D
X0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKEZyYW1lTm90Rm91bmQpOwogCi0gICAgV1RGOjpD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4gY29tcGxl
dGlvbkhhbmRsZXIgPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxs
YmFjayA9IGNhbGxiYWNrLmNvcHlSZWYoKV0oT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIHVp
bnQ2NF90IGZyYW1lSUQpIG11dGFibGUgeworICAgIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9p
ZChPcHRpb25hbDxTdHJpbmc+LCBGcmFtZUlkZW50aWZpZXIpPiBjb21wbGV0aW9uSGFuZGxlciA9
IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhbGxiYWNrID0gY2FsbGJh
Y2suY29weVJlZigpXShPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQpIG11dGFibGUgewogICAgICAgICBpZiAoZXJyb3JUeXBlKSB7CiAgICAgICAgICAg
ICBjYWxsYmFjay0+c2VuZEZhaWx1cmUoU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VSUk9SX01FU1NB
R0UoKmVycm9yVHlwZSkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTAwNCwxMSArMTAwNCwx
MSBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZlUGFyZW50RnJhbWVIYW5kbGUo
Y29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleAogICAgIGlmICghcGFnZSkKICAgICAgICAgQVNZ
TkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwogCi0gICAgT3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKGZyYW1lSGFuZGxl
KTsKKyAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKGZyYW1lSGFuZGxlKTsK
ICAgICBpZiAoIWZyYW1lSUQpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VS
Uk9SKEZyYW1lTm90Rm91bmQpOwogCi0gICAgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9w
dGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxsYmFjayA9IGNhbGxiYWNrLmNvcHlSZWYo
KV0oT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIHVpbnQ2NF90IGZyYW1lSUQpIG11dGFibGUg
eworICAgIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBGcmFt
ZUlkZW50aWZpZXIpPiBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIGNhbGxiYWNrID0gY2FsbGJhY2suY29weVJlZigpXShPcHRpb25hbDxT
dHJpbmc+IGVycm9yVHlwZSwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIG11dGFibGUgewogICAg
ICAgICBpZiAoZXJyb3JUeXBlKSB7CiAgICAgICAgICAgICBjYWxsYmFjay0+c2VuZEZhaWx1cmUo
U1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VSUk9SX01FU1NBR0UoKmVycm9yVHlwZSkpOwogICAgICAg
ICAgICAgcmV0dXJuOwpAQCAtMTAzNSw3ICsxMDM1LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvbjo6Y29tcHV0ZUVsZW1lbnRMYXlvdXQoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRI
YW4KICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VS
Uk9SKFdpbmRvd05vdEZvdW5kKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEID0g
d2ViRnJhbWVJREZvckhhbmRsZShmcmFtZUhhbmRsZSk7CisgICAgYXV0byBmcmFtZUlEID0gd2Vi
RnJhbWVJREZvckhhbmRsZShmcmFtZUhhbmRsZSk7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAg
ICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIApAQCAt
MTA4Nyw3ICsxMDg3LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2VsZWN0T3B0aW9u
RWxlbWVudChjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmQKICAgICBpZiAoIXBhZ2Up
CiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5k
KTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRs
ZShmcmFtZUhhbmRsZSk7CisgICAgYXV0byBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShm
cmFtZUhhbmRsZSk7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhf
UFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIApAQCAtMTI3MSw3ICsxMjcxLDcgQEAg
dm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Z2V0QWxsQ29va2llcyhjb25zdCBTdHJpbmcmIGJy
b3dzaW5nQ29udGV4dEhhbmRsZSwgUmUKICAgICB9OwogCiAgICAgLy8gQWx3YXlzIHNlbmQgdGhl
IG1haW4gZnJhbWUgSUQgYXMgMCBzbyBpdCBpcyByZXNvbHZlZCBvbiB0aGUgV2ViUHJvY2VzcyBz
aWRlLiBUaGlzIGF2b2lkcyBhIHJhY2Ugd2hlbiBwYWdlLT5tYWluRnJhbWUoKSBpcyBudWxsIHN0
aWxsLgotICAgIGNvbnN0IHVpbnQ2NF90IG1haW5GcmFtZUlEID0gMDsKKyAgICBjb25zdCBGcmFt
ZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQ7CiAgICAgcGFnZS0+cHJvY2VzcygpLnNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6R2V0Q29va2llc0Zv
ckZyYW1lKHBhZ2UtPnBhZ2VJRCgpLCBtYWluRnJhbWVJRCksIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKIH0KIApAQCAtMTI5MSw3ICsxMjkxLDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvbjo6ZGVsZXRlU2luZ2xlQ29va2llKGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFu
ZGwKICAgICB9OwogCiAgICAgLy8gQWx3YXlzIHNlbmQgdGhlIG1haW4gZnJhbWUgSUQgYXMgMCBz
byBpdCBpcyByZXNvbHZlZCBvbiB0aGUgV2ViUHJvY2VzcyBzaWRlLiBUaGlzIGF2b2lkcyBhIHJh
Y2Ugd2hlbiBwYWdlLT5tYWluRnJhbWUoKSBpcyBudWxsIHN0aWxsLgotICAgIGNvbnN0IHVpbnQ2
NF90IG1haW5GcmFtZUlEID0gMDsKKyAgICBjb25zdCBGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1l
SUQ7CiAgICAgcGFnZS0+cHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2Vi
QXV0b21hdGlvblNlc3Npb25Qcm94eTo6RGVsZXRlQ29va2llKHBhZ2UtPnBhZ2VJRCgpLCBtYWlu
RnJhbWVJRCwgY29va2llTmFtZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIApA
QCAtMTQ1Nyw3ICsxNDU3LDcgQEAgU2ltdWxhdGVkSW5wdXRTb3VyY2UqIFdlYkF1dG9tYXRpb25T
ZXNzaW9uOjppbnB1dFNvdXJjZUZvclR5cGUoU2ltdWxhdGVkSW5wdXRTb3UKIH0KIAogLy8gTUFS
SzogU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyOjpDbGllbnQgQVBJCi12b2lkIFdlYkF1dG9tYXRp
b25TZXNzaW9uOjp2aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVtZW50KFdlYlBhZ2VQcm94
eSYgcGFnZSwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBGdW5j
dGlvbjx2b2lkIChPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIE9wdGlvbmFsPEF1dG9tYXRp
b25Db21tYW5kRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0b21hdGlv
blNlc3Npb246OnZpZXdwb3J0SW5WaWV3Q2VudGVyUG9pbnRPZkVsZW1lbnQoV2ViUGFnZVByb3h5
JiBwYWdlLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxl
LCBGdW5jdGlvbjx2b2lkIChPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIE9wdGlvbmFsPEF1
dG9tYXRpb25Db21tYW5kRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXVEY6
OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6SW50UmVj
dCwgT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBib29sKT4gZGlkQ29tcHV0ZUVsZW1lbnRM
YXlvdXRIYW5kbGVyID0gW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBXZWJDb3JlOjpJbnRSZWN0LCBPcHRp
b25hbDxXZWJDb3JlOjpJbnRQb2ludD4gaW5WaWV3Q2VudGVyUG9pbnQsIGJvb2wpIG11dGFibGUg
ewogICAgICAgICBpZiAoZXJyb3JUeXBlKSB7CkBAIC0xOTc2LDcgKzE5NzYsNyBAQCB2b2lkIFdl
YkF1dG9tYXRpb25TZXNzaW9uOjp0YWtlU2NyZWVuc2hvdChjb25zdCBTdHJpbmcmIGhhbmRsZSwg
Y29uc3QgU3RyaW5nKiBvcAogICAgIGlmICghcGFnZSkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRI
X1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwogCi0gICAgT3B0aW9uYWw8dWludDY0
X3Q+IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5kbGUgPyAq
b3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCkpOworICAgIGF1dG8gZnJhbWVJRCA9
IHdlYkZyYW1lSURGb3JIYW5kbGUob3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpvcHRpb25hbEZyYW1l
SGFuZGxlIDogZW1wdHlTdHJpbmcoKSk7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICBBU1lO
Q19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lv
bi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vz
c2lvbi5oCmluZGV4IGYzOWMwNjFiNTc4OTJhOTI0OGZkMDlkZmZjZmE3YjhjNTBhMDc1MzcuLjEy
MjJjMjg0MjJiZjk2YzZjYzRiMWE1ZGZjYTQyMjcwZmQwMjNhYTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9u
LmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKICNpbmNs
dWRlICJTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaCIKICNpbmNsdWRlICJXZWJFdmVudC5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
YWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC0xNTIsNyArMTUzLDcgQEAgcHVibGljOgogI2lmIEVO
QUJMRShXRUJEUklWRVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKQogICAgIHZvaWQgc2ltdWxhdGVL
ZXlib2FyZEludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYsIEtleWJvYXJkSW50ZXJhY3Rpb24sIFdU
Rjo6VmFyaWFudDxWaXJ0dWFsS2V5LCBDaGFyS2V5PiYmLCBBdXRvbWF0aW9uQ29tcGxldGlvbkhh
bmRsZXImJikgZmluYWw7CiAjZW5kaWYKLSAgICB2b2lkIHZpZXdwb3J0SW5WaWV3Q2VudGVyUG9p
bnRPZkVsZW1lbnQoV2ViUGFnZVByb3h5JiwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5n
JiBub2RlSGFuZGxlLCBGdW5jdGlvbjx2b2lkIChPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4s
IE9wdGlvbmFsPEF1dG9tYXRpb25Db21tYW5kRXJyb3I+KT4mJikgZmluYWw7CisgICAgdm9pZCB2
aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVtZW50KFdlYlBhZ2VQcm94eSYsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBGdW5jdGlvbjx2b2lk
IChPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIE9wdGlvbmFsPEF1dG9tYXRpb25Db21tYW5k
RXJyb3I+KT4mJikgZmluYWw7CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCRFJJVkVSX0FDVElPTlNf
QVBJKQogCkBAIC0yMjAsMTQgKzIyMSwxNCBAQCBwcml2YXRlOgogICAgIFJlZjxJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpCcm93c2luZ0NvbnRleHQ+IGJ1aWxkQnJvd3NpbmdDb250
ZXh0Rm9yUGFnZShXZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpGbG9hdFJlY3Qgd2luZG93RnJhbWUp
OwogICAgIHZvaWQgZ2V0TmV4dENvbnRleHQoUmVmPFdlYkF1dG9tYXRpb25TZXNzaW9uPiYmLCBW
ZWN0b3I8UmVmPFdlYlBhZ2VQcm94eT4+JiYsIFJlZjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb246OkJyb3dzaW5nQ29udGV4dD4+LCBSZWY8V2ViQXV0b21hdGlv
blNlc3Npb246OkdldEJyb3dzaW5nQ29udGV4dHNDYWxsYmFjaz4mJik7CiAKLSAgICBPcHRpb25h
bDx1aW50NjRfdD4gd2ViRnJhbWVJREZvckhhbmRsZShjb25zdCBTdHJpbmcmKTsKLSAgICBTdHJp
bmcgaGFuZGxlRm9yV2ViRnJhbWVJRCh1aW50NjRfdCBmcmFtZUlEKTsKKyAgICBPcHRpb25hbDxX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IHdlYkZyYW1lSURGb3JIYW5kbGUoY29uc3QgU3RyaW5n
Jik7CisgICAgU3RyaW5nIGhhbmRsZUZvcldlYkZyYW1lSUQoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyKTsKICAgICBTdHJpbmcgaGFuZGxlRm9yV2ViRnJhbWVQcm94eShjb25zdCBXZWJGcmFtZVBy
b3h5Jik7CiAKICAgICB2b2lkIHdhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9uUGFnZShXZWJQ
YWdlUHJveHkmLCBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpQYWdlTG9hZFN0cmF0
ZWd5LCBTZWNvbmRzLCBSZWY8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tC
YXNlPiYmKTsKICAgICB2b2lkIHdhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9uRnJhbWUoV2Vi
RnJhbWVQcm94eSYsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlBhZ2VMb2FkU3Ry
YXRlZ3ksIFNlY29uZHMsIFJlZjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFj
a0Jhc2U+JiYpOwogICAgIHZvaWQgcmVzcG9uZFRvUGVuZGluZ1BhZ2VOYXZpZ2F0aW9uQ2FsbGJh
Y2tzV2l0aFRpbWVvdXQoSGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgUmVmUHRyPElu
c3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+Jik7Ci0gICAgdm9pZCBy
ZXNwb25kVG9QZW5kaW5nRnJhbWVOYXZpZ2F0aW9uQ2FsbGJhY2tzV2l0aFRpbWVvdXQoSGFzaE1h
cDx1aW50NjRfdCwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNr
QmFzZT4+Jik7CisgICAgdm9pZCByZXNwb25kVG9QZW5kaW5nRnJhbWVOYXZpZ2F0aW9uQ2FsbGJh
Y2tzV2l0aFRpbWVvdXQoSGFzaE1hcDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZlB0cjxJ
bnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiYpOwogICAgIHZvaWQg
bG9hZFRpbWVyRmlyZWQoKTsKIAogICAgIHZvaWQgZXhpdEZ1bGxzY3JlZW5XaW5kb3dGb3JQYWdl
KFdlYlBhZ2VQcm94eSYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTI4
NCwxMyArMjg1LDEzIEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgU3RyaW5nPiBtX3dlYlBhZ2VIYW5kbGVNYXA7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBtX2hhbmRsZVdlYlBhZ2VNYXA7CiAKLSAgICBIYXNoTWFw
PHVpbnQ2NF90LCBTdHJpbmc+IG1fd2ViRnJhbWVIYW5kbGVNYXA7Ci0gICAgSGFzaE1hcDxTdHJp
bmcsIHVpbnQ2NF90PiBtX2hhbmRsZVdlYkZyYW1lTWFwOworICAgIEhhc2hNYXA8V2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBTdHJpbmc+IG1fd2ViRnJhbWVIYW5kbGVNYXA7CisgICAgSGFzaE1h
cDxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gbV9oYW5kbGVXZWJGcmFtZU1hcDsK
IAogICAgIEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFJlZlB0cjxJbnNwZWN0b3I6
OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiBtX3BlbmRpbmdOb3JtYWxOYXZpZ2F0
aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJQYWdlOwogICAgIEhhc2hNYXA8V2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpD
YWxsYmFja0Jhc2U+PiBtX3BlbmRpbmdFYWdlck5hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENh
bGxiYWNrc1BlclBhZ2U7Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEluc3BlY3Rvcjo6
QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGluZ05vcm1hbE5hdmlnYXRp
b25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlckZyYW1lOwotICAgIEhhc2hNYXA8dWludDY0
X3QsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiBt
X3BlbmRpbmdFYWdlck5hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlckZyYW1l
OworICAgIEhhc2hNYXA8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWZQdHI8SW5zcGVjdG9y
OjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4gbV9wZW5kaW5nTm9ybWFsTmF2aWdh
dGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyRnJhbWU7CisgICAgSGFzaE1hcDxXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVy
OjpDYWxsYmFja0Jhc2U+PiBtX3BlbmRpbmdFYWdlck5hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4
dENhbGxiYWNrc1BlckZyYW1lOwogICAgIEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiBtX3Bl
bmRpbmdJbnNwZWN0b3JDYWxsYmFja3NQZXJQYWdlOwogI2lmIEVOQUJMRShXRUJEUklWRVJfS0VZ
Qk9BUkRfSU5URVJBQ1RJT05TKQogICAgIEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IEZ1bmN0aW9uPHZvaWQoT3B0aW9uYWw8QXV0b21hdGlvbkNvbW1hbmRFcnJvcj4pPj4gbV9wZW5k
aW5nS2V5Ym9hcmRFdmVudHNGbHVzaGVkQ2FsbGJhY2tzUGVyUGFnZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCmluZGV4IGE1MWEyMjM2MjM4NDE1MWFiMTFk
NDg5NDM2OWY4YTE4NTgwMDY3ZGEuLjMwMmY2ODIyODJiY2M3ZWUzOGQzZjY3MjdkNmQyM2Y4NGIy
ODlkYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQpA
QCAtMTAzMiw3ICsxMDMyLDcgQEAgdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6Y2hlY2tVc2Vy
TWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYlBhZ2VQcm94eSYgcGFnZSwKICAgICBVUkwgcmVx
dWVzdEZyYW1lVVJMIHsgVVJMKCksIGZyYW1lLnVybCgpIH07CiAgICAgVVJMIG1haW5GcmFtZVVS
TCB7IFVSTCgpLCBtYWluRnJhbWUtPnVybCgpIH07CiAKLSAgICBbKGlkIDxXS1VJRGVsZWdhdGVQ
cml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IGNoZWNrVXNl
ck1lZGlhUGVybWlzc2lvbkZvclVSTDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1lVVJMOm1haW5G
cmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6ZnJhbWUuZnJhbWVJRCgpIGRlY2lzaW9uSGFuZGxlcjpk
ZWNpc2lvbkhhbmRsZXIuZ2V0KCldOworICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRl
bGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJt
aXNzaW9uRm9yVVJMOnJlcXVlc3RGcmFtZVVSTCBtYWluRnJhbWVVUkw6bWFpbkZyYW1lVVJMIGZy
YW1lSWRlbnRpZmllcjpmcmFtZS5mcmFtZUlEKCkudG9VSW50NjQoKSBkZWNpc2lvbkhhbmRsZXI6
ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKIH0KIAogdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6
bWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZUZsYWdzIHN0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XS1JlbG9hZEZyYW1lRXJyb3JSZWNvdmVyeUF0dGVtcHRlci5tbQpp
bmRleCA4NGQyMGM0Y2U4YjFmMDAxN2UxYmE3N2I5ZDBkZjRmMTAxMzhhOTAwLi45YzQwOTJlZmQ0
MzZkMDIyNDBiODA2YTJjMjQwZjY0MzZkMmVkYjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XS1JlbG9hZEZyYW1lRXJyb3JSZWNvdmVyeUF0dGVtcHRlci5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1JlbG9hZEZyYW1lRXJyb3JSZWNv
dmVyeUF0dGVtcHRlci5tbQpAQCAtMzIsNiArMzIsNyBAQAogI2ltcG9ydCAiV2ViRnJhbWVQcm94
eS5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHku
aCIKKyNpbXBvcnQgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW1wb3J0IDx3dGYvUmV0
YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KIApAQCAtNjIsOCArNjMsNyBA
QCAtIChCT09MKWF0dGVtcHRSZWNvdmVyeQogICAgIGlmICghd2ViVmlldykKICAgICAgICAgcmV0
dXJuIE5POwogCi0gICAgdWludDY0X3QgZnJhbWVJRCA9IFtfZnJhbWVIYW5kbGUgX2ZyYW1lSURd
OwotICAgIFdlYktpdDo6V2ViRnJhbWVQcm94eSogd2ViRnJhbWVQcm94eSA9IHdlYlZpZXctPl9w
YWdlLT5wcm9jZXNzKCkud2ViRnJhbWUoZnJhbWVJRCk7CisgICAgV2ViS2l0OjpXZWJGcmFtZVBy
b3h5KiB3ZWJGcmFtZVByb3h5ID0gd2ViVmlldy0+X3BhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShX
ZWJDb3JlOjpmcmFtZUlkZW50aWZpZXJGcm9tSUQoW19mcmFtZUhhbmRsZSBfZnJhbWVJRF0pKTsK
ICAgICBpZiAoIXdlYkZyYW1lUHJveHkpCiAgICAgICAgIHJldHVybiBOTzsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQppbmRleCBh
MWFmOThkMjEwOTNlNWFlZWU4YjNkNDgwYjgxNjFmZTI2ZTllYTUxLi5kOTYxMzkxOGY3NWZhNWU4
ZGY1ODM0ZjI1MjQ0MzhlMDZlOTg2Yjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQpAQCAtMTAxLDEyICsxMDEsMTIgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OmJlZ2luU2FmZUJyb3dzaW5nQ2hlY2soY29uc3QgVVJMJiB1cmwsIGJv
b2wgZm9yTWFpbkZyYW1lTmF2aWcKIH0KIAogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykK
LXZvaWQgV2ViUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWUoY29u
c3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiB1bmJsb2NrSGFuZGxlciwg
dWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxv
Y2tMb2FkRm9yRnJhbWUoY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVy
JiB1bmJsb2NrSGFuZGxlciwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgY29udGVu
dEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIHVu
YmxvY2tIYW5kbGVyLCBmcmFtZUlEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRlbnRG
aWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHBy
b2Nlc3MsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYgdW5ibG9j
a0hhbmRsZXIsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGVudEZp
bHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJv
Y2VzcywgY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiB1bmJsb2Nr
SGFuZGxlciwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgaWYgKFdlYkZyYW1lUHJv
eHkqIGZyYW1lID0gcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCkpCiAgICAgICAgIGZyYW1lLT5j
b250ZW50RmlsdGVyRGlkQmxvY2tMb2FkKHVuYmxvY2tIYW5kbGVyKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmlu
ZGV4IDk0ZmFmNmI5ZGUyNjIwMWQ4NGQyNmZmODM5MzNmODIyOWMwNWQ2YjkuLjkxZWNlMWYwZGFm
ZmUzZWE2M2FkYmMwZDkxZWFjNGQxODExMTMwOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzEyLDcg
KzMxMiw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MoY29uc3QgSVBDOjpBdHRhCiAjZW5kaWYKIH0KIAotdm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUGFnZUlk
ZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSYmIGNvcmVDaGFsbGVuZ2UsIHVpbnQ2NF90IGNoYWxsZW5nZUlEKQordm9pZCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUGFn
ZUlkZW50aWZpZXIgcGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6QXV0
aGVudGljYXRpb25DaGFsbGVuZ2UmJiBjb3JlQ2hhbGxlbmdlLCB1aW50NjRfdCBjaGFsbGVuZ2VJ
RCkKIHsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgaWYgKGF1dG8qIHNlcnZpY2VX
b3JrZXJQcm9jZXNzUHJveHkgPSBtX3Byb2Nlc3NQb29sLnNlcnZpY2VXb3JrZXJQcm9jZXNzUHJv
eHlGcm9tUGFnZUlEKHBhZ2VJRCkpIHsKQEAgLTczNyw3ICs3MzcsNyBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OnNldEdyYW5kZmF0aGVyZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBj
b25zdCBSZWdpcwogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3M6OlNldEdyYW5kZmF0aGVyZWQoc2Vzc2lvbklELCByZXNvdXJjZURvbWFpbiwgaXNHcmFuZGZh
dGhlcmVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShQYWdlSWRlbnRpZmllciBw
YWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFt
ZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oUGFnZUlkZW50aWZpZXIg
cGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHBhZ2VJRCk7
CiAgICAgaWYgKCFwYWdlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IDQzMzU0NWMwZTMzZmFhZWVkOWRlYmIz
NGY2YjIwY2ZjYWU1ZTk1YzguLjQwZjgxZGU5YjQ3ZjE5MjIxOTAyNmE2ZThhMDdiMmE1ZTJkNmE5
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5oCkBAIC04Miw3ICs4Miw2IEBAIHB1YmxpYzoKICAgICB1c2luZyBOYXZp
Z2F0ZWRUb0RvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwogICAgIHVzaW5nIERv
bWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcyA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwog
ICAgIHVzaW5nIE9wZW5lckRvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwotICAg
IHVzaW5nIEZyYW1lSUQgPSB1aW50NjRfdDsKIAogICAgIGV4cGxpY2l0IE5ldHdvcmtQcm9jZXNz
UHJveHkoV2ViUHJvY2Vzc1Bvb2wmKTsKICAgICB+TmV0d29ya1Byb2Nlc3NQcm94eSgpOwpAQCAt
MTMwLDcgKzEyOSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFByZXZhbGVudFJlc291cmNlRm9y
RGVidWdNb2RlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRWZXJ5UHJldmFsZW50UmVzb3Vy
Y2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKFBB
TDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+IGRvbWFp
bnMpPiYmKTsKLSAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgRnJhbWVJRCwgY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BG
cmFtZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQg
cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJh
bWVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIHJl
c2V0UGFyYW1ldGVyc1RvRGVmYXVsdFZhbHVlcyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNjaGVkdWxlQ2xlYXJJbk1lbW9yeUFuZFBlcnNp
c3RlbnQoUEFMOjpTZXNzaW9uSUQsIFNob3VsZEdyYW5kZmF0aGVyU3RhdGlzdGljcywgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNjaGVkdWxlQ2xlYXJJbk1lbW9yeUFu
ZFBlcnNpc3RlbnQoUEFMOjpTZXNzaW9uSUQsIE9wdGlvbmFsPFdhbGxUaW1lPiBtb2RpZmllZFNp
bmNlLCBTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3MsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CkBAIC0yMTMsNyArMjEyLDcgQEAgcHJpdmF0ZToKICAgICAvLyBNZXNzYWdlIGhhbmRs
ZXJzCiAgICAgdm9pZCBkaWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAgICAgdm9pZCBkaWRDcmVhdGVOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcyhjb25zdCBJUEM6OkF0dGFjaG1lbnQmKTsKLSAgICB2b2lkIGRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
dWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmJiwgdWlu
dDY0X3QgY2hhbGxlbmdlSUQpOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYsIHVpbnQ2NF90IGNoYWxsZW5nZUlE
KTsKICAgICB2b2lkIGRpZEZldGNoV2Vic2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCwgY29u
c3QgV2Vic2l0ZURhdGEmKTsKICAgICB2b2lkIGRpZERlbGV0ZVdlYnNpdGVEYXRhKHVpbnQ2NF90
IGNhbGxiYWNrSUQpOwogICAgIHZvaWQgZGlkRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKHVp
bnQ2NF90IGNhbGxiYWNrSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDEx
ZDhjNWRlZTFkYmE4MWY4ZjYzZjdkOTQ4ZWY2NjE2MTk4MWQxMzQuLmJmYWY5ZjA0OTZlNTZhOWI5
MzFlZjZmZjc3NTFjM2FjZjVkMTM5YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4K
QEAgLTIzLDcgKzIzLDcgQEAKIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkgTGVnYWN5
UmVjZWl2ZXIgewogICAgIERpZENyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKElQ
Qzo6QXR0YWNobWVudCBjb25uZWN0aW9uSWRlbnRpZmllcikKIAotICAgIERpZFJlY2VpdmVBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2
NF90IGZyYW1lSUQsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGNoYWxsZW5nZSwg
dWludDY0X3QgY2hhbGxlbmdlSUQpCisgICAgRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGNoYWxsZW5nZSwg
dWludDY0X3QgY2hhbGxlbmdlSUQpCiAKICAgICBEaWRGZXRjaFdlYnNpdGVEYXRhKHVpbnQ2NF90
IGNhbGxiYWNrSUQsIHN0cnVjdCBXZWJLaXQ6OldlYnNpdGVEYXRhIHdlYnNpdGVEYXRhKQogICAg
IERpZERlbGV0ZVdlYnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpCkBAIC00OCw3ICs0OCw3
IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogICAg
IE5vdGlmeVdlYnNpdGVEYXRhRGVsZXRpb25Gb3JSZWdpc3RyYWJsZURvbWFpbnNGaW5pc2hlZCgp
CiAgICAgTm90aWZ5V2Vic2l0ZURhdGFTY2FuRm9yUmVnaXN0cmFibGVEb21haW5zRmluaXNoZWQo
KQogICAgIE5vdGlmeVJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlGaW5pc2hlZCh1bnNp
Z25lZCB0b3RhbFByZXZhbGVudFJlc291cmNlcywgdW5zaWduZWQgdG90YWxQcmV2YWxlbnRSZXNv
dXJjZXNXaXRoVXNlckludGVyYWN0aW9uLCB1bnNpZ25lZCB0b3AzU3ViZnJhbWVVbmRlclRvcEZy
YW1lT3JpZ2lucykKLSAgICBSZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJh
bWVEb21haW4pIC0+IChib29sIHVzZXJEaWRHcmFudEFjY2VzcykgQXN5bmMKKyAgICBSZXF1ZXN0
U3RvcmFnZUFjY2Vzc0NvbmZpcm0oV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4g
c3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWlu
KSAtPiAoYm9vbCB1c2VyRGlkR3JhbnRBY2Nlc3MpIEFzeW5jCiAgICAgRGVsZXRlV2Vic2l0ZURh
dGFJblVJUHJvY2Vzc0ZvclJlZ2lzdHJhYmxlRG9tYWlucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBPcHRpb25T
ZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMsIFZlY3RvcjxX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gZG9tYWlucykgLT4gKEhhc2hTZXQ8V2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4+IGRvbWFpbnNXaXRoTWF0Y2hpbmdEYXRhUmVjb3JkcykgQXN5bmMK
ICAgICBEaWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxlbnRS
ZXNvdXJjZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAppbmRleCA2NjZm
YmQzZGExMGZiNWQ1OWFmMjEwNTI3YTNjMTU0NWMxNDgxM2UyLi5kN2YwYzNjOTUwMjc0ZGU4ZTBh
OTVjYjg1YWRjMjc2NTU4ZjcyZDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAgdm9pZCBQcm92aXNp
b25hbFBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbShBUEk6Ok5hdmlnYXRpb24mIG5hdmln
YXRpb24sIFdlYkIKICAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdGFydCgp
OwogfQogCi1pbmxpbmUgYm9vbCBQcm92aXNpb25hbFBhZ2VQcm94eTo6dmFsaWRhdGVJbnB1dCh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBPcHRpb25hbDx1aW50NjRfdD4mIG5hdmlnYXRpb25JRCkK
K2lubGluZSBib29sIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojp2YWxpZGF0ZUlucHV0KEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBjb25zdCBPcHRpb25hbDx1aW50NjRfdD4mIG5hdmlnYXRpb25JRCkK
IHsKICAgICAvLyBJZiB0aGUgcHJldmlvdXMgcHJvdmlzaW9uYWwgbG9hZCB1c2VkIGFuIGV4aXN0
aW5nIHByb2Nlc3MsIHdlIG1heSByZWNlaXZlIGxlZnRvdmVyIElQQyBmb3IgYSBwcmV2aW91cyBu
YXZpZ2F0aW9uLCB3aGljaCB3ZSBuZWVkIHRvIGlnbm9yZS4KICAgICBpZiAoIW1fbWFpbkZyYW1l
IHx8IG1fbWFpbkZyYW1lLT5mcmFtZUlEKCkgIT0gZnJhbWVJRCkKQEAgLTE4NSw5ICsxODUsOSBA
QCBpbmxpbmUgYm9vbCBQcm92aXNpb25hbFBhZ2VQcm94eTo6dmFsaWRhdGVJbnB1dCh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBPcHRpb25hbAogICAgIHJldHVybiAhbmF2aWdhdGlvbklEIHx8ICEq
bmF2aWdhdGlvbklEIHx8ICpuYXZpZ2F0aW9uSUQgPT0gbV9uYXZpZ2F0aW9uSUQ7CiB9CiAKLXZv
aWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRfdCBmcmFt
ZUlEKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKEZyYW1l
SWRlbnRpZmllciBmcmFtZUlEKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2Vz
c1N3YXBwaW5nLCAiZGlkQ3JlYXRlTWFpbkZyYW1lOiBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCwgbV9wYWdlLnBhZ2VJRCgpLnRvVUludDY0KCksIGZyYW1lSUQpOwor
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2Vzc1N3YXBwaW5nLCAiZGlkQ3JlYXRlTWFp
bkZyYW1lOiBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wYWdl
LnBhZ2VJRCgpLnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAgICAgQVNTRVJUKCFt
X21haW5GcmFtZSk7CiAKICAgICBtX21haW5GcmFtZSA9IFdlYkZyYW1lUHJveHk6OmNyZWF0ZSht
X3BhZ2UsIGZyYW1lSUQpOwpAQCAtMjEyLDcgKzIxMiw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdl
UHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRfdCBmcmFtZUlEKQogICAgIH0KIH0KIAot
dm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0
IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3Ry
aW5nLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVy
Zm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBT
dHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsK
ICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCkpCiAgICAgICAgIHJldHVybjsKQEAgLTIy
MCwxMiArMjIwLDEyIEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGll
bnRSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluCiAgICAgbV9wYWdlLmRpZFBl
cmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBzb3VyY2VVUkxT
dHJpbmcsIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBmcmFtZUlEKTsKIH0KIAotdm9pZCBQcm92aXNp
b25hbFBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCwgVVJMJiYgdW5yZWFjaGFi
bGVVUkwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJv
eHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYgdXJsLCBVUkwmJiB1bnJlYWNoYWJsZVVS
TCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIGlmICghdmFsaWRhdGVJbnB1dChm
cmFtZUlELCBuYXZpZ2F0aW9uSUQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgImRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWU6IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIG5hdmln
YXRpb25JRCA9ICUiIFBSSXU2NCwgbV9wYWdlLnBhZ2VJRCgpLnRvVUludDY0KCksIGZyYW1lSUQs
IG5hdmlnYXRpb25JRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBp
bmcsICJkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiBwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9uSUQgPSAlIiBQUkl1NjQsIG1fcGFn
ZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCksIG5hdmlnYXRpb25JRCk7
CiAgICAgQVNTRVJUKG1fcHJvdmlzaW9uYWxMb2FkVVJMLmlzTnVsbCgpKTsKICAgICBtX3Byb3Zp
c2lvbmFsTG9hZFVSTCA9IHVybDsKIApAQCAtMjQwLDEyICsyNDAsMTIgQEAgdm9pZCBQcm92aXNp
b25hbFBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCB1aW4KICAgICBtX3BhZ2UuZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNo
YXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUo
dXJsKSwgV1RGTW92ZSh1bnJlYWNoYWJsZVVSTCksIHVzZXJEYXRhKTsKIH0KIAotdm9pZCBQcm92
aXNpb25hbFBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0
eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFs
VVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgV2ViQ29yZTo6V2lsbENv
bnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYgdXNlckRh
dGEpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25z
dCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBl
cnJvciwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBj
b25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1l
SUQsIG5hdmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJFTEVBU0VfTE9HX0VS
Uk9SX0lGX0FMTE9XRUQoUHJvY2Vzc1N3YXBwaW5nLCAiZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lOiBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBuYXZp
Z2F0aW9uSUQgPSAlIiBQUkl1NjQsIG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFtZUlE
LCBuYXZpZ2F0aW9uSUQpOworICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoUHJvY2Vz
c1N3YXBwaW5nLCAiZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiBwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9uSUQgPSAlIiBQUkl1NjQs
IG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCksIG5hdmlnYXRp
b25JRCk7CiAgICAgQVNTRVJUKCFtX3Byb3Zpc2lvbmFsTG9hZFVSTC5pc051bGwoKSk7CiAgICAg
bV9wcm92aXNpb25hbExvYWRVUkwgPSB7IH07CiAKQEAgLTI1NiwxMiArMjU2LDEyIEBAIHZvaWQg
UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBjb25zCiAgICAgbV9wYWdlLmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JG
cmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBmcmFtZVNlY3VyaXR5T3Jp
Z2luLCBuYXZpZ2F0aW9uSUQsIHByb3Zpc2lvbmFsVVJMLCBlcnJvciwgd2lsbENvbnRpbnVlTG9h
ZGluZywgdXNlckRhdGEpOyAvLyBNYXkgZGVsZXRlIHx0aGlzfC4KIH0KIAotdm9pZCBQcm92aXNp
b25hbFBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhh
c0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2Vi
Q29yZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVn
aW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRI
YXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgUHJvdmlz
aW9uYWxQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29s
IGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBj
b25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250
YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+
IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewog
ICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgImRp
ZENvbW1pdExvYWRGb3JGcmFtZTogcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQ
Ukl1NjQgIiwgbmF2aWdhdGlvbklEID0gJSIgUFJJdTY0LCBtX3BhZ2UucGFnZUlEKCkudG9VSW50
NjQoKSwgZnJhbWVJRCwgbmF2aWdhdGlvbklEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KFByb2Nlc3NTd2FwcGluZywgImRpZENvbW1pdExvYWRGb3JGcmFtZTogcGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEID0gJSIgUFJJdTY0LCBt
X3BhZ2UucGFnZUlEKCkudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpLCBuYXZpZ2F0aW9u
SUQpOwogICAgIG1fcHJvdmlzaW9uYWxMb2FkVVJMID0geyB9OwogICAgIG1fcHJvY2Vzcy0+cmVt
b3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSwgbV9wYWdlLnBhZ2VJRCgpKTsKIApAQCAtMjY5LDcgKzI2OSw3IEBAIHZvaWQgUHJv
dmlzaW9uYWxQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBuYXZpCiAgICAgbV9wYWdlLmNvbW1pdFByb3Zpc2lvbmFsUGFnZShmcmFtZUlE
LCBuYXZpZ2F0aW9uSUQsIG1pbWVUeXBlLCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwg
ZnJhbWVMb2FkVHlwZSwgY2VydGlmaWNhdGVJbmZvLCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBm
b3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIHVzZXJEYXRhKTsgLy8gV2lsbCBkZWxldGUgfHRoaXN8
LgogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0
aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiBzdG9yZSwgdWludDY0X3QgZnJh
bWVJRCkKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRp
b25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmIHN0b3JlLCBGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCkKIHsKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCkpCiAgICAgICAg
IHJldHVybjsKQEAgLTI3Nyw3ICsyNzcsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpk
aWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YQogICAg
IG1fcGFnZS5kaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YVNoYXJlZChtX3Byb2Nlc3MuY29w
eVJlZigpLCBzdG9yZSwgZnJhbWVJRCk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6
OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpk
aWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCkKIHsKICAgICBpZiAoIXZhbGlkYXRlSW5w
dXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjg1LDcgKzI4
NSw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJM
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWluCiAgICAgbV9wYWdlLmRpZENoYW5nZVByb3Zp
c2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgbmF2
aWdhdGlvbklELCBXVEZNb3ZlKHVybCkpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5
OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmModWludDY0X3QgZnJhbWVJRCwg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCit2b2lkIFByb3Zpc2lvbmFsUGFn
ZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlP
cmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAogICAgIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0
aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiBvcmlnaW5hbFJlcXVlc3QsCiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVz
dCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCB1
aW50NjRfdCBsaXN0ZW5lcklEKQogewpAQCAtMjk2LDcgKzI5Niw3IEBAIHZvaWQgUHJvdmlzaW9u
YWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyh1aW50NjRf
dCBmcmFtZUlECiAgICAgICAgIFdURk1vdmUoZnJhbWVJbmZvRGF0YSksIG9yaWdpbmF0aW5nUGFn
ZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVxdWVzdEJv
ZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB1c2VyRGF0YSwgbGlzdGVuZXJJRCk7CiB9
CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIs
Cit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBm
cmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRp
ZmllciwKICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRl
LCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAg
aWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCkBAIC0zMDUsNyArMzA1
LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2Uo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ28KICAgICBtX3BhZ2UuZGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2VTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0
eU9yaWdpbiwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2Fu
U2hvd01JTUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0ZSwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOwog
fQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3Qo
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25V
UkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpk
aWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNv
bnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
KQogewogICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlEKSkKICAgICAgICAgcmV0dXJuOwpA
QCAtMzEzLDcgKzMxMyw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1T
ZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluCiAgICAgbV9wYWdlLmRp
ZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdFNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBzb3VyY2VV
UkxTdHJpbmcsIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBmcmFtZUlEKTsKIH0KIAotdm9pZCBQcm92
aXNpb25hbFBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEp
Cit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQ
cm92aXNpb25hbExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBV
c2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5h
dmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKQEAgLTMzMSw3ICszMzEsNyBAQCB2b2lkIFBy
b3Zpc2lvbmFsUGFnZVByb3h5OjpiYWNrRm9yd2FyZEdvVG9JdGVtKGNvbnN0IFdlYkNvcmU6OkJh
Y2tGb3J3YXJkSXRlbUlkZQogICAgIG1fcGFnZS5iYWNrRm9yd2FyZEdvVG9JdGVtU2hhcmVkKG1f
cHJvY2Vzcy5jb3B5UmVmKCksIGlkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvblN5bmModWludDY0X3QgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9s
aWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5
OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJh
bWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZp
ZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5h
dmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELAogICAgIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLAogICAgIGNvbnN0IFVzZXJE
YXRhJiB1c2VyRGF0YSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQpAQCAtMzY2LDcgKzM2Niw3
IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OnJlZ2lzdGVyV2ViUHJvY2Vzc0FjY2Vzc2li
aWxpdHlUb2tlbihjb25zdCBJUEM6OkRhdGFSCiAjZW5kaWYKIAogI2lmIEVOQUJMRShDT05URU5U
X0ZJTFRFUklORykKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRC
bG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRs
ZXImIHVuYmxvY2tIYW5kbGVyLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBQcm92aXNpb25hbFBh
Z2VQcm94eTo6Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKGNvbnN0IFdlYkNvcmU6
OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYgdW5ibG9ja0hhbmRsZXIsIEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlEKQogewogICAgIG1fcGFnZS5jb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9y
RnJhbWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgdW5ibG9ja0hhbmRsZXIsIGZyYW1lSUQp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdl
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgK
aW5kZXggMzMzMjE2YTJjYzc4NTY2NzE2MzI0YWIwNmZmMWIzYjk2MDgwYzBiZS4uZGUzZWU2ODdm
YTdkODE3NTBiNThmZWRhNTg0NTgzZmQxZjFlMmQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCkBAIC05MiwyMyArOTIsMjMgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYpIGZpbmFsOwogICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JikgZmlu
YWw7CiAKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyh1aW50
NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9s
aWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rp
b25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiwKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25Bc3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0YSYmLAog
ICAgICAgICBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdl
SUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RC
b2R5LAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25z
ZSwgY29uc3QgVXNlckRhdGEmLCB1aW50NjRfdCBsaXN0ZW5lcklEKTsKLSAgICB2b2lkIGRlY2lk
ZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwKKyAgICB2b2lk
IGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlm
aWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmLAogICAgICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNo
b3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlz
dGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFs
VVJMRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwm
Jik7Ci0gICAgdm9pZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90
IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRp
ZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUm
LCB1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdChj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVS
TFN0cmluZywgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRDcmVhdGVNYWluRnJhbWUo
dWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYsIFVSTCYm
IHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkQ29tbWl0TG9h
ZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWlu
dDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiwgYm9v
bCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNv
bnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2
b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0
IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJik7Cisg
ICAgdm9pZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxT
dHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNp
b25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFVzZXJEYXRhJik7Cisg
ICAgdm9pZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9u
RGF0YVN0b3JlJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZFBlcmZv
cm1DbGllbnRSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3Ry
aW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAg
ICB2b2lkIGRpZENyZWF0ZU1haW5GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAg
IHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYsIFVSTCYmIHVucmVhY2hhYmxlVVJM
LCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvckZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcm
IG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBm
cmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mLCBib29sIGNvbnRh
aW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4g
Zm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlk
RmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nLCBjb25z
dCBVc2VyRGF0YSYpOwogICAgIHZvaWQgc3RhcnRVUkxTY2hlbWVUYXNrKFVSTFNjaGVtZVRhc2tQ
YXJhbWV0ZXJzJiYpOwogICAgIHZvaWQgYmFja0ZvcndhcmRHb1RvSXRlbShjb25zdCBXZWJDb3Jl
OjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGUmJik+JiYpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvblN5bmModWludDY0X3QgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAorICAgIHZv
aWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwg
V2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5h
dmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKICAgICAgICAgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRh
JiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
blN5bmM6OkRlbGF5ZWRSZXBseSYmKTsKICNpZiBVU0UoUVVJQ0tfTE9PSykKQEAgLTExOCwxMSAr
MTE4LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWdpc3RlcldlYlByb2Nlc3NBY2Nlc3NpYmls
aXR5VG9rZW4oY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7CiAjZW5kaWYKICNpZiBFTkFCTEUo
Q09OVEVOVF9GSUxURVJJTkcpCi0gICAgdm9pZCBjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9y
RnJhbWUoY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiwgdWludDY0
X3QgZnJhbWVJRCk7CisgICAgdm9pZCBjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWUo
Y29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyKTsKICNlbmRpZgogCiAgICAgdm9pZCBpbml0aWFsaXplV2ViUGFnZSgpOwot
ICAgIGJvb2wgdmFsaWRhdGVJbnB1dCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBPcHRpb25hbDx1
aW50NjRfdD4mIG5hdmlnYXRpb25JRCA9IFdURjo6bnVsbG9wdCk7CisgICAgYm9vbCB2YWxpZGF0
ZUlucHV0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgT3B0aW9uYWw8dWludDY0X3Q+
JiBuYXZpZ2F0aW9uSUQgPSBXVEY6Om51bGxvcHQpOwogCiAgICAgV2ViUGFnZVByb3h5JiBtX3Bh
Z2U7CiAgICAgUmVmPFdlYlByb2Nlc3NQcm94eT4gbV9wcm9jZXNzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBi
MmY3NzI5ZmQzOTM1ZjcyZTFiYzkxMTVhMzBhMThmNjRlMzlmZDI1Li5mNzhhN2MzODZjODk1OTAx
MTU2YjU2OGFhZjk4YmFiMjNiMDgwNmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcApAQCAtOTAsNyArOTAsNyBAQCB2
b2lkIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OnVwZGF0ZVByZWZlcmVuY2VzU3RvcmUoY29u
c3QgV2ViUHJlZmVyZW5jZXNTdG9yZQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uOjpVcGRhdGVQcmVmZXJlbmNlc1N0b3JlIHsgc3RvcmUgfSwgMCk7CiB9
CiAKLXZvaWQgU2VydmljZVdvcmtlclByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVm
PEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYgY2hhbGxlbmdlKQordm9pZCBTZXJ2aWNl
V29ya2VyUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUGFn
ZUlkZW50aWZpZXIgcGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUmVmPEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYgY2hhbGxlbmdlKQogewogICAgIFVOVVNFRF9QQVJBTShw
YWdlSUQpOwogICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaAppbmRleCBlOTM2NWFmYWM0
ZjQ3ZDdmZDc0N2Y5ODk4M2FkOTk5MGU4YWI5NzU1Li43ZDg4NzYwNWVlYTBiNjQ3OWQ2OTc2OTFh
YmI1NTI4MDdkZTIxODQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2Vy
dmljZVdvcmtlclByb2Nlc3NQcm94eS5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKIAogICAg
IHN0YXRpYyBib29sIGhhc1JlZ2lzdGVyZWRTZXJ2aWNlV29ya2Vycyhjb25zdCBTdHJpbmcmIHNl
cnZpY2VXb3JrZXJEaXJlY3RvcnkpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQsIFJl
ZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJik7CiAK
ICAgICB2b2lkIHN0YXJ0KGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmLCBPcHRpb25hbDxQQUw6
OlNlc3Npb25JRD4gaW5pdGlhbFNlc3Npb25JRCk7CiAgICAgdm9pZCBzZXRVc2VyQWdlbnQoY29u
c3QgU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5k
ZWRQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVBy
b3h5LmNwcAppbmRleCBmNmQzYjUzNmRmOGFhYjE5N2Q5MTFlZDE0ZDJlYTQwZmVmZjJlMWRkLi5j
NjRkN2VmMTliZDBkZTcxMTY5Njk5OTJjMDc2NzFlNjFkODI4M2VkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHAKQEAgLTc4LDcgKzc4LDcgQEAg
c3RhdGljIGNvbnN0IEhhc2hTZXQ8SVBDOjpTdHJpbmdSZWZlcmVuY2U+JiBtZXNzYWdlTmFtZXNU
b0lnbm9yZVdoaWxlU3VzcGVuZGVkKCkKIH0KICNlbmRpZgogCi1TdXNwZW5kZWRQYWdlUHJveHk6
OlN1c3BlbmRlZFBhZ2VQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYgcHJvY2VzcywgdWludDY0X3QgbWFpbkZyYW1lSUQsIFNob3VsZERlbGF5Q2xvc2luZ1Vu
dGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSBzaG91bGREZWxheUNsb3NpbmdV
bnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpCitTdXNwZW5kZWRQYWdlUHJv
eHk6OlN1c3BlbmRlZFBhZ2VQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlELCBTaG91bGREZWxh
eUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUgc2hvdWxkRGVs
YXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKQogICAgIDog
bV9wYWdlKHBhZ2UpCiAgICAgLCBtX3Byb2Nlc3MoV1RGTW92ZShwcm9jZXNzKSkKICAgICAsIG1f
bWFpbkZyYW1lSUQobWFpbkZyYW1lSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3Bl
bmRlZFBhZ2VQcm94eS5oCmluZGV4IDBkYWQwNTRiMjcyYTgxOWQ2ZTBiMDZjNzdjZWQ4MTJhMjYz
ZDEzNDAuLjkxNjUzY2M3OGVhMDA4NjYwYjE0ZTMzNTA1NTNhYTg5ZTczZDE5MTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oCkBAIC0yOSw2ICsyOSw3
IEBACiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxlci5oIgogI2luY2x1ZGUgIldlYkJhY2tGb3J3
YXJkTGlzdEl0ZW0uaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCkBAIC00MiwxMiArNDMsMTIgQEAgZW51bSBj
bGFzcyBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z01vZGUgOiBib29sIHsgTm8KIGNsYXNzIFN1c3BlbmRlZFBhZ2VQcm94eSBmaW5hbDogcHVibGlj
IElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3VzcGVuZGVkUGFn
ZVByb3h5PiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgU3Vz
cGVuZGVkUGFnZVByb3h5KFdlYlBhZ2VQcm94eSYsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVp
bnQ2NF90IG1haW5GcmFtZUlELCBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ01vZGUpOworICAgIFN1c3BlbmRlZFBhZ2VQcm94eShXZWJQYWdlUHJv
eHkmLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFp
bkZyYW1lSUQsIFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBv
c2l0aW5nTW9kZSk7CiAgICAgflN1c3BlbmRlZFBhZ2VQcm94eSgpOwogCiAgICAgV2ViUGFnZVBy
b3h5JiBwYWdlKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlOyB9CiAgICAgV2ViUHJvY2Vzc1Byb3h5
JiBwcm9jZXNzKCkgeyByZXR1cm4gbV9wcm9jZXNzLmdldCgpOyB9Ci0gICAgdWludDY0X3QgbWFp
bkZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX21haW5GcmFtZUlEOyB9CisgICAgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJhbWVJ
RDsgfQogCiAgICAgYm9vbCBwYWdlSXNDbG9zZWRPckNsb3NpbmcoKSBjb25zdDsKIApAQCAtNzQs
NyArNzUsNyBAQCBwcml2YXRlOgogCiAgICAgV2ViUGFnZVByb3h5JiBtX3BhZ2U7CiAgICAgUmVm
PFdlYlByb2Nlc3NQcm94eT4gbV9wcm9jZXNzOwotICAgIHVpbnQ2NF90IG1fbWFpbkZyYW1lSUQ7
CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fbWFpbkZyYW1lSUQ7CiAgICAgYm9vbCBt
X2lzQ2xvc2VkIHsgZmFsc2UgfTsKICAgICBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5n
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUgbV9zaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVy
aW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUgeyBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVu
dGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGU6Ok5vIH07CiAgICAgYm9vbCBtX3Nob3Vs
ZENsb3NlV2hlbkVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUgeyBmYWxzZSB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNo
ZWNrUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
bkNoZWNrUHJveHkuY3BwCmluZGV4IGFiNzkyNDAyOWUwZWYzYTNiYmFiNzRjYmFjMDBjMjk3ZmE5
NmEzY2EuLjRmYTZmZGY2MDhkNmMzN2VmZWNiMGE1ZTA2YzJjZmRlNTBlYjU4NGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hl
Y2tQcm94eS5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKLVVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5OjpVc2Vy
TWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSh1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFu
ZGxlciYmIGhhbmRsZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFE
b2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9j
dW1lbnRPcmlnaW4pCitVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eTo6VXNlck1lZGlhUGVy
bWlzc2lvbkNoZWNrUHJveHkoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5k
bGVyJiYgaGFuZGxlciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbikKICAgICA6IG1fZnJhbWVJRChmcmFtZUlEKQogICAgICwgbV9jb21wbGV0aW9u
SGFuZGxlcihXVEZNb3ZlKGhhbmRsZXIpKQogICAgICwgbV91c2VyTWVkaWFEb2N1bWVudFNlY3Vy
aXR5T3JpZ2luKFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmgK
aW5kZXggZGMzNDA5ODE3MTRjNzI3OTNjMDEwNWQ3ODMzOTFiN2ZhOTQ1OTE4Zi4uZTgwYjUxOTE4
NDFmZGIyNDY3NTUxMDk3MjUwOTY2ZTkwYjdlMmEzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oCkBAIC0yNiw2
ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNv
bnN0cmFpbnRzLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC00MSw3ICs0Miw3IEBAIHB1YmxpYzoKICAgICBl
bnVtIGNsYXNzIFBlcm1pc3Npb25JbmZvIHsgRXJyb3IsIFVua25vd24sIEdyYW50ZWQgfTsKICAg
ICB1c2luZyBDb21wbGV0aW9uSGFuZGxlciA9IFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChQ
ZXJtaXNzaW9uSW5mbyk+OwogCi0gICAgc3RhdGljIFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uQ2hl
Y2tQcm94eT4gY3JlYXRlKHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyJiYgaGFu
ZGxlciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3Jp
Z2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdp
bikKKyAgICBzdGF0aWMgUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5PiBjcmVhdGUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyJiYgaGFu
ZGxlciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3Jp
Z2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdp
bikKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFVzZXJNZWRpYVBlcm1pc3Np
b25DaGVja1Byb3h5KGZyYW1lSUQsIFdURk1vdmUoaGFuZGxlciksIFdURk1vdmUodXNlck1lZGlh
RG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsRG9jdW1lbnRPcmlnaW4pKSk7CiAgICAg
fQpAQCAtNTAsMTcgKzUxLDE3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFVzZXJNZWRpYUFjY2Vz
c0luZm8oYm9vbCk7CiAgICAgdm9pZCBpbnZhbGlkYXRlKCkgeyBjb21wbGV0ZShQZXJtaXNzaW9u
SW5mbzo6RXJyb3IpOyB9CiAKLSAgICB1aW50NjRfdCBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4g
bV9mcmFtZUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQoKSBjb25z
dCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KICAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNl
ck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIHsgcmV0dXJuIG1fdXNlck1lZGlhRG9jdW1l
bnRTZWN1cml0eU9yaWdpbi5nZXQoKTsgfQogICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0
b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSB7IHJldHVybiBtX3RvcExldmVsRG9jdW1l
bnRTZWN1cml0eU9yaWdpbi5nZXQoKTsgfQogICAgIAogcHJpdmF0ZToKLSAgICBVc2VyTWVkaWFQ
ZXJtaXNzaW9uQ2hlY2tQcm94eSh1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlciYm
LCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4s
IFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKTsK
KyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyJiYsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRv
cExldmVsRG9jdW1lbnRPcmlnaW4pOwogICAgIH5Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94
eSgpOwogCiAgICAgdm9pZCBjb21wbGV0ZShQZXJtaXNzaW9uSW5mbyk7CiAgICAgCi0gICAgdWlu
dDY0X3QgbV9mcmFtZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX2ZyYW1lSUQ7
CiAgICAgQ29tcGxldGlvbkhhbmRsZXIgbV9jb21wbGV0aW9uSGFuZGxlcjsKICAgICBSZWY8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4+IG1fdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbjsK
ICAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG1fdG9wTGV2ZWxEb2N1bWVudFNlY3Vy
aXR5T3JpZ2luOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGQzNDAz
NzZmZjI5MDdiODcyOTM1NjQ2NDI4OWQ0MzQ5NmQ0MDA5OTEuLmRiNGNkYTExMTYxZDIyMjgyOTg0
ZmVlOWFlYWQ0MGE0ZWVjMWE0OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5j
cHAKQEAgLTI0MCw5ICsyNDAsOSBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5OjpmaW5pc2hHcmFudGluZ1JlcXVlc3QoVXNlck1lZGlhUGVybQogICAgIHByb2Nl
c3NOZXh0VXNlck1lZGlhUmVxdWVzdElmTmVlZGVkKCk7CiB9CiAKLXZvaWQgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlc2V0QWNjZXNzKHVpbnQ2NF90IGZyYW1lSUQp
Cit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXNldEFjY2Vz
cyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKLSAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJ
RVIsIGZyYW1lSUQpOworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgZnJhbWVJRC5sb2dn
aW5nU3RyaW5nKCkpOwogICAgIG1fZ3JhbnRlZFJlcXVlc3RzLnJlbW92ZUFsbE1hdGNoaW5nKFtm
cmFtZUlEXShjb25zdCBhdXRvJiBncmFudGVkUmVxdWVzdCkgewogICAgICAgICByZXR1cm4gZ3Jh
bnRlZFJlcXVlc3QtPm1haW5GcmFtZUlEKCkgPT0gZnJhbWVJRDsKICAgICB9KTsKQEAgLTI1MSw3
ICsyNTEsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpy
ZXNldEFjY2Vzcyh1aW50NjRfdCBmcmFtZUlEKQogICAgIG1faGFzRmlsdGVyZWREZXZpY2VMaXN0
ID0gZmFsc2U7CiB9CiAKLWNvbnN0IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkqIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzZWFyY2hGb3JHcmFudGVkUmVx
dWVzdCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9j
dW1lbnRPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
LCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbykgY29uc3QKK2NvbnN0IFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkqIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5OjpzZWFyY2hGb3JHcmFudGVkUmVxdWVzdChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
Y29uc3QgU2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBTZWN1
cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBib29s
IG5lZWRzVmlkZW8pIGNvbnN0CiB7CiAgICAgaWYgKG1fcGFnZS5pc01lZGlhU3RyZWFtQ2FwdHVy
ZU11dGVkKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMjgyLDcgKzI4Miw3IEBAIGNv
bnN0IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkqIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5OjpzCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLWJvb2wgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc1JlcXVlc3REZW5pZWQodWlu
dDY0X3QgbWFpbkZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGJv
b2wgbmVlZHNBdWRpbywgYm9vbCBuZWVkc1ZpZGVvLCBib29sIG5lZWRzU2NyZWVuQ2FwdHVyZSkK
K2Jvb2wgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc1JlcXVlc3RE
ZW5pZWQoRnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbiYg
dXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERv
Y3VtZW50T3JpZ2luLCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbywgYm9vbCBuZWVk
c1NjcmVlbkNhcHR1cmUpCiB7CiAgICAgZm9yIChjb25zdCBhdXRvJiBkZW5pZWRSZXF1ZXN0IDog
bV9kZW5pZWRSZXF1ZXN0cykgewogICAgICAgICBpZiAoIWRlbmllZFJlcXVlc3QudXNlck1lZGlh
RG9jdW1lbnRPcmlnaW4tPmlzU2FtZVNjaGVtZUhvc3RQb3J0KHVzZXJNZWRpYURvY3VtZW50T3Jp
Z2luKSkKQEAgLTM0Niw3ICszNDYsNyBAQCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTo6UmVxdWVzdEFjdGlvbiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdAogfQogI2Vu
ZGlmCiAKLXZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVl
c3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2
NF90IGZyYW1lSUQsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
biwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIE1lZGlhU3Ry
ZWFtUmVxdWVzdCYmIHVzZXJSZXF1ZXN0KQordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRf
dCB1c2VyTWVkaWFJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxTZWN1cml0eU9yaWdp
bj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcExl
dmVsRG9jdW1lbnRPcmlnaW4sIE1lZGlhU3RyZWFtUmVxdWVzdCYmIHVzZXJSZXF1ZXN0KQogewog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgaWYgKCFtX3BhZ2UuaGFzUnVubmluZ1Byb2Nl
c3MoKSkKQEAgLTUyMSw3ICs1MjEsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5Ojpwcm9jZXNzVXNlck1lZGlhUGVybWlzc2lvblZhbGlkUmVxdQogICAgIG1f
cGFnZS51aUNsaWVudCgpLmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
KG1fcGFnZSwgKndlYkZyYW1lLCBXVEZNb3ZlKHVzZXJNZWRpYU9yaWdpbiksIFdURk1vdmUodG9w
TGV2ZWxPcmlnaW4pLCAqbV9jdXJyZW50VXNlck1lZGlhUmVxdWVzdCk7CiB9CiAKLXZvaWQgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmdldFVzZXJNZWRpYVBlcm1pc3Np
b25JbmZvKHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFE
b2N1bWVudE9yaWdpbiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmln
aW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUGVybWlzc2lvbkluZm8pPiYmIGhhbmRsZXIpCit2
b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpnZXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uSW5mbyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUmVmPFNlY3VyaXR5T3JpZ2lu
PiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQZXJtaXNzaW9uSW5mbyk+
JiYgaGFuZGxlcikKIHsKICAgICBhdXRvKiB3ZWJGcmFtZSA9IG1fcGFnZS5wcm9jZXNzKCkud2Vi
RnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCF3ZWJGcmFtZSB8fCAhU2VjdXJpdHlPcmlnaW46OmNy
ZWF0ZUZyb21TdHJpbmcobV9wYWdlLnBhZ2VMb2FkU3RhdGUoKS5hY3RpdmVVUkwoKSktPmlzU2Ft
ZVNjaGVtZUhvc3RQb3J0KHRvcExldmVsRG9jdW1lbnRPcmlnaW4uZ2V0KCkpKSB7CkBAIC01NDUs
NyArNTQ1LDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
Z2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8odWludDY0X3QKICAgICBtX3BhZ2UudWlDbGllbnQo
KS5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4obV9wYWdlLCAqd2ViRnJhbWUsIHVz
ZXJNZWRpYU9yaWdpbi5nZXQoKSwgdG9wTGV2ZWxPcmlnaW4uZ2V0KCksIHJlcXVlc3QuZ2V0KCkp
OwogfQogCi1ib29sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp3YXNH
cmFudGVkVmlkZW9PckF1ZGlvQWNjZXNzKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5
T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRv
cExldmVsRG9jdW1lbnRPcmlnaW4pCitib29sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5Ojp3YXNHcmFudGVkVmlkZW9PckF1ZGlvQWNjZXNzKEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIGNv
bnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKQogewogICAgIGZvciAo
Y29uc3QgYXV0byYgZ3JhbnRlZFJlcXVlc3QgOiBtX2dyYW50ZWRSZXF1ZXN0cykgewogICAgICAg
ICBpZiAoZ3JhbnRlZFJlcXVlc3QtPnJlcXVpcmVzRGlzcGxheUNhcHR1cmUoKSkKQEAgLTYwNCw3
ICs2MDQsNyBAQCBWZWN0b3I8Q2FwdHVyZURldmljZT4gVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHk6OmNvbXB1dGVGaWx0ZXJlZERldgogfQogI2VuZGlmCiAKLXZvaWQgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNl
c0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8U2Vj
dXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxTZWN1cml0eU9yaWdp
bj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKQordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3Qg
dXNlck1lZGlhSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8U2VjdXJpdHlPcmlnaW4+
JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luKQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgQUxXQVlT
X0xPRyhMT0dJREVOVElGSUVSLCB1c2VyTWVkaWFJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuaAppbmRleCBmNTA1ZTI4MGM0NDI5MGE4MDNkYmRiNjhjOThlZWE2MzBiMWM5YmI2Li5i
YmJhNDRhYzgyYmQyODA3NWJkZGZiYjQ1NDQ0Y2E1NjlhY2NmYjk3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmgKQEAgLTYwLDE1ICs2MCwxNSBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IGludmFsaWRhdGVQZW5kaW5nUmVxdWVzdHMoKTsKIAotICAgIHZvaWQgcmVxdWVzdFVzZXJNZWRp
YVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJ
RCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmICB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
biwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4s
IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKKyAgICB2b2lkIHJlcXVlc3RVc2VyTWVk
aWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmICB1c2VyTWVkaWFEb2N1
bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1l
bnRPcmlnaW4sIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKIAotICAgIHZvaWQgcmVz
ZXRBY2Nlc3ModWludDY0X3QgbWFpbkZyYW1lSUQpOworICAgIHZvaWQgcmVzZXRBY2Nlc3MoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlEKTsKICAgICB2b2lkIHZpZXdJc0JlY29t
aW5nVmlzaWJsZSgpOwogCiAgICAgdm9pZCBncmFudFJlcXVlc3QoVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eSYpOwogICAgIHZvaWQgZGVueVJlcXVlc3QoVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eSYsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRp
YUFjY2Vzc0RlbmlhbFJlYXNvbiwgY29uc3QgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludCA9IHsg
fSk7CiAKLSAgICB2b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVz
ZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+
JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4m
JiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKTsKKyAgICB2b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNl
c0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwg
UmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pOwog
CiAgICAgdm9pZCBzdG9wQ2FwdHVyZSgpOwogICAgIHZvaWQgc2NoZWR1bGVOZXh0UmVqZWN0aW9u
KCk7CkBAIC05NSwxOSArOTUsMTkgQEAgcHJpdmF0ZToKICAgICBXVEZMb2dDaGFubmVsJiBsb2dD
aGFubmVsKCkgY29uc3QgZmluYWw7CiAjZW5kaWYKIAotICAgIFJlZjxVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5PiBjcmVhdGVQZXJtaXNzaW9uUmVxdWVzdCh1aW50NjRfdCB1c2VyTWVk
aWFJRCwgdWludDY0X3QgbWFpbkZyYW1lSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJik7Cisg
ICAgUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZVBlcm1pc3Npb25S
ZXF1ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFp
bkZyYW1lSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiB2
aWRlb0RldmljZXMsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKICNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQogICAgIHZvaWQgZmluaXNoR3JhbnRpbmdSZXF1ZXN0KFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkmKTsKIAotICAgIGNvbnN0IFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkqIHNlYXJjaEZvckdyYW50ZWRSZXF1ZXN0KHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGJvb2wg
bmVlZHNBdWRpbywgYm9vbCBuZWVkc1ZpZGVvKSBjb25zdDsKLSAgICBib29sIHdhc1JlcXVlc3RE
ZW5pZWQodWludDY0X3QgbWFpbkZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
JiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4m
IHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGJvb2wgbmVlZHNBdWRpbywgYm9vbCBuZWVkc1ZpZGVv
LCBib29sIG5lZWRzU2NyZWVuQ2FwdHVyZSk7CisgICAgY29uc3QgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eSogc2VhcmNoRm9yR3JhbnRlZFJlcXVlc3QoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luLCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbykgY29uc3Q7CisgICAgYm9vbCB3
YXNSZXF1ZXN0RGVuaWVkKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBu
ZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8sIGJvb2wgbmVlZHNTY3JlZW5DYXB0dXJlKTsKIAog
ICAgIHVzaW5nIFBlcm1pc3Npb25JbmZvID0gVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6
OlBlcm1pc3Npb25JbmZvOwotICAgIHZvaWQgZ2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8odWlu
dDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQZXJtaXNzaW9uSW5mbyk+JiYpOwor
ICAgIHZvaWQgZ2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8oV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmln
aW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBlcm1pc3Npb25JbmZvKT4mJik7CiAKICAgICBSZXF1
ZXN0QWN0aW9uIGdldFJlcXVlc3RBY3Rpb24oY29uc3QgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eSYpOwogCi0gICAgYm9vbCB3YXNHcmFudGVkVmlkZW9PckF1ZGlvQWNjZXNzKHVpbnQ2
NF90LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmln
aW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
KTsKKyAgICBib29sIHdhc0dyYW50ZWRWaWRlb09yQXVkaW9BY2Nlc3MoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1l
bnRPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50
T3JpZ2luKTsKIAogICAgIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiBjb21wdXRlRmls
dGVyZWREZXZpY2VMaXN0KGJvb2wgcmV2ZWFsSWRzQW5kTGFiZWxzLCBjb25zdCBTdHJpbmcmIGRl
dmljZUlESGFzaFNhbHQpOwogCkBAIC0xMzQsNyArMTM0LDcgQEAgcHJpdmF0ZToKICAgICBWZWN0
b3I8UmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+PiBtX2dyYW50ZWRSZXF1ZXN0
czsKIAogICAgIHN0cnVjdCBEZW5pZWRSZXF1ZXN0IHsKLSAgICAgICAgdWludDY0X3QgbWFpbkZy
YW1lSUQ7CisgICAgICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRDsKICAg
ICAgICAgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
bjsKICAgICAgICAgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiB0b3BMZXZlbERvY3VtZW50
T3JpZ2luOwogICAgICAgICBib29sIGlzQXVkaW9EZW5pZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3Bw
CmluZGV4IDRmMDI4NDA2YmE0YTc3NTE2NDcwNjQ3NjcxZjNhOTUwODhhZmY0YWIuLjk2NmZkYWQ1
Y2YwZGQwOWI5OGZmNTU2MTAzZTIwNmFhMTE3NWM5NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3Bw
CkBAIC0zMCw3ICszMCw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCi1Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
JiBtYW5hZ2VyLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgbWFpbkZyYW1lSUQsIHVp
bnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFE
b2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9j
dW1lbnRPcmlnaW4sIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNl
cywgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3Jl
OjpNZWRpYVN0cmVhbVJlcXVlc3QmJiByZXF1ZXN0KQorVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgdWludDY0X3QgdXNlck1lZGlhSUQsIEZy
YW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3Qm
JiByZXF1ZXN0KQogICAgIDogbV9tYW5hZ2VyKCZtYW5hZ2VyKQogICAgICwgbV91c2VyTWVkaWFJ
RCh1c2VyTWVkaWFJRCkKICAgICAsIG1fbWFpbkZyYW1lSUQobWFpbkZyYW1lSUQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5LmgKaW5kZXggNTQ0ZjYxMTZlZGI2NjJhOGZhOTYzMWJjM2FmOGI3MGRlZGM1ODI3Zi4u
YmE0ZTBhMzQ3MTYwMzFiMThmMDg1Y2ZkMDFhNzM1MTc3OGEwMzA1OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuaApAQCAtMjEsNiArMjEsNyBAQAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9DYXB0dXJlRGV2aWNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50
aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU3RyZWFtUmVxdWVzdC5oPgogI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTM1
LDcgKzM2LDcgQEAgY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk7
CiAKIGNsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkgOiBwdWJsaWMgQVBJOjpP
YmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdD4g
ewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eT4gY3JlYXRlKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiBtYW5hZ2Vy
LCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgbWFpbkZyYW1lSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9y
aWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmln
aW4sIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9y
PFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3JlOjpNZWRpYVN0
cmVhbVJlcXVlc3QmJiByZXF1ZXN0KQorICAgIHN0YXRpYyBSZWY8VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eT4gY3JlYXRlKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5JiBtYW5hZ2VyLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIG1haW5GcmFtZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUmVmPFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVjdG9yPFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6Q2Fw
dHVyZURldmljZT4mJiB2aWRlb0RldmljZXMsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYm
IHJlcXVlc3QpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5KG1hbmFnZXIsIHVzZXJNZWRpYUlELCBtYWluRnJhbWVJRCwg
ZnJhbWVJRCwgV1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiksIFdURk1vdmUodG9wTGV2
ZWxEb2N1bWVudE9yaWdpbiksIFdURk1vdmUoYXVkaW9EZXZpY2VzKSwgV1RGTW92ZSh2aWRlb0Rl
dmljZXMpLCBXVEZNb3ZlKHJlcXVlc3QpKSk7CiAgICAgfQpAQCAtNjUsOCArNjYsOCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRIYXNQZXJzaXN0ZW50QWNjZXNzKCkgeyBtX2hhc1BlcnNpc3RlbnRB
Y2Nlc3MgPSB0cnVlOyB9CiAKICAgICB1aW50NjRfdCB1c2VyTWVkaWFJRCgpIGNvbnN0IHsgcmV0
dXJuIG1fdXNlck1lZGlhSUQ7IH0KLSAgICB1aW50NjRfdCBtYWluRnJhbWVJRCgpIGNvbnN0IHsg
cmV0dXJuIG1fbWFpbkZyYW1lSUQ7IH0KLSAgICB1aW50NjRfdCBmcmFtZUlEKCkgY29uc3QgeyBy
ZXR1cm4gbV9mcmFtZUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1haW5GcmFt
ZUlEKCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJhbWVJRDsgfQorICAgIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9CiAKICAgICBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkg
eyByZXR1cm4gbV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4uZ2V0KCk7IH0KICAgICBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbigp
IHsgcmV0dXJuIG1fdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbi5nZXQoKTsgfQpAQCAt
ODQsMTIgKzg1LDEyIEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIHZpZGVv
RGV2aWNlKCkgY29uc3QgeyByZXR1cm4gbV9lbGlnaWJsZVZpZGVvRGV2aWNlcy5pc0VtcHR5KCkg
PyBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIHsgfSA6IG1fZWxpZ2libGVWaWRlb0RldmljZXNbMF07
IH0KIAogcHJpdmF0ZToKLSAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiwgdWludDY0X3QgdXNlck1lZGlhSUQs
IHVpbnQ2NF90IG1haW5GcmFtZUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0b3I8V2ViQ29yZTo6Q2Fw
dHVyZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
PiYmIHZpZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYpOworICAgIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkmLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIG1haW5GcmFtZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2U+JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJik7CiAKICAg
ICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSogbV9tYW5hZ2VyOwogICAg
IHVpbnQ2NF90IG1fdXNlck1lZGlhSUQ7Ci0gICAgdWludDY0X3QgbV9tYWluRnJhbWVJRDsKLSAg
ICB1aW50NjRfdCBtX2ZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fbWFp
bkZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fZnJhbWVJRDsKICAgICBS
ZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG1fdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9y
aWdpbjsKICAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG1fdG9wTGV2ZWxEb2N1bWVu
dFNlY3VyaXR5T3JpZ2luOwogICAgIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiBtX2Vs
aWdpYmxlVmlkZW9EZXZpY2VzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViRnJhbWVQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5
LmNwcAppbmRleCAwNzE0YjQxZWI2Nzc2OGQ5ZTBjOWQ0MTJlMjBlODk4ZjgxZTczZGQ4Li5lZTMz
NzEwODE3MDdlYTM2ZDM1MGVmZTJjYzVhMDNjMWQxOTFkYTRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcApAQCAtNDUsOSArNDUsOCBAQCB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAogY2xhc3MgV2ViUGFnZVByb3h5OwogCi1XZWJGcmFtZVByb3h5OjpXZWJG
cmFtZVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgdWludDY0X3QgZnJhbWVJRCkKK1dlYkZyYW1l
UHJveHk6OldlYkZyYW1lUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCkKICAgICA6IG1fcGFnZShtYWtlV2Vha1B0cihwYWdlKSkKLSAgICAsIG1faXNGcmFt
ZVNldChmYWxzZSkKICAgICAsIG1fZnJhbWVJRChmcmFtZUlEKQogewogICAgIFdlYlByb2Nlc3NQ
b29sOjpzdGF0aXN0aWNzKCkud2tGcmFtZUNvdW50Kys7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJGcmFtZVByb3h5LmgKaW5kZXggNDQ2MDBmMWMyNzI5MGU1ZTRjMTY4ZWE4Y2QzY2MzOTYzNmZk
YmJlMS4uY2NkYTYzNzgwMDJkNTVhYjE1N2E2ZjE1MzdjNWVmNzlkYjQ1YzI1MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaApAQCAtNTksMTQgKzU5LDE0IEBAIHN0cnVj
dCBXZWJzaXRlUG9saWNpZXNEYXRhOwogCiBjbGFzcyBXZWJGcmFtZVByb3h5IDogcHVibGljIEFQ
STo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6RnJhbWU+IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmPFdlYkZyYW1lUHJveHk+IGNyZWF0ZShXZWJQYWdlUHJveHkmIHBhZ2UsIHVpbnQ2
NF90IGZyYW1lSUQpCisgICAgc3RhdGljIFJlZjxXZWJGcmFtZVByb3h5PiBjcmVhdGUoV2ViUGFn
ZVByb3h5JiBwYWdlLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKICAgICB7CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkZyYW1lUHJveHkocGFnZSwgZnJhbWVJRCkp
OwogICAgIH0KIAogICAgIHZpcnR1YWwgfldlYkZyYW1lUHJveHkoKTsKIAotICAgIHVpbnQ2NF90
IGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQogICAgIFdl
YlBhZ2VQcm94eSogcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZS5nZXQoKTsgfQogCiAgICAg
dm9pZCB3ZWJQcm9jZXNzV2lsbFNodXREb3duKCk7CkBAIC0xMzAsNyArMTMwLDcgQEAgcHVibGlj
OgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgV2ViRnJhbWVQcm94eShXZWJQYWdlUHJveHkmLCB1
aW50NjRfdCBmcmFtZUlEKTsKKyAgICBXZWJGcmFtZVByb3h5KFdlYlBhZ2VQcm94eSYsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcik7CiAKICAgICBXZWFrUHRyPFdlYlBhZ2VQcm94eT4gbV9wYWdl
OwogCkBAIC0xMzgsMTEgKzEzOCwxMSBAQCBwcml2YXRlOgogCiAgICAgU3RyaW5nIG1fTUlNRVR5
cGU7CiAgICAgU3RyaW5nIG1fdGl0bGU7Ci0gICAgYm9vbCBtX2lzRnJhbWVTZXQ7CisgICAgYm9v
bCBtX2lzRnJhbWVTZXQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9jb250YWluc1BsdWdpbkRvY3Vt
ZW50IHsgZmFsc2UgfTsKICAgICBSZWZQdHI8V2ViQ2VydGlmaWNhdGVJbmZvPiBtX2NlcnRpZmlj
YXRlSW5mbzsKICAgICBSZWZQdHI8V2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5PiBtX2FjdGl2
ZUxpc3RlbmVyOwotICAgIHVpbnQ2NF90IG1fZnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgbV9mcmFtZUlEOwogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKICAgICBX
ZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIgbV9jb250ZW50RmlsdGVyVW5ibG9j
a0hhbmRsZXI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CmluZGV4IDMyNjMxYzQ1MGViMjZkNzU0NTQ2OGI3MjZjMTVhNDQ5ODVjOTk4YTkuLjIxYjkyOGY4
Zjg1ZGM2YWY2OTk1OTYwODJlMWYxMmQ1YzEwOTk0MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNzQzLDcgKzc0Myw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpsYXVuY2hQcm9jZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZWdpc3RyYWJsZURvbWFp
bikKICAgICBmaW5pc2hBdHRhY2hpbmdUb1dlYlByb2Nlc3MoSXNQcm9jZXNzU3dhcDo6Tm8pOwog
fQogCi1ib29sIFdlYlBhZ2VQcm94eTo6c3VzcGVuZEN1cnJlbnRQYWdlSWZQb3NzaWJsZShBUEk6
Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIE9wdGlvbmFsPHVpbnQ2NF90PiBtYWluRnJhbWVJRCwg
UHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50
LCBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01v
ZGUgc2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdN
b2RlKQorYm9vbCBXZWJQYWdlUHJveHk6OnN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUoQVBJ
OjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IG1haW5G
cmFtZUlELCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVk
QnlDbGllbnQsIFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBv
c2l0aW5nTW9kZSBzaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ01vZGUpCiB7CiAgICAgbV9sYXN0U3VzcGVuZGVkUGFnZSA9IG51bGxwdHI7CiAKQEAg
LTI5MzEsMTIgKzI5MzEsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkUG9saWN5RGVj
aXNpb24oUG9saWN5QWN0aW9uIGFjdGlvbiwgQVBJOjpOYXZpZ2F0aW9uKgogICAgIHNlbmRlci0+
c2VuZChhY3Rpb24sIG5hdmlnYXRpb24gPyBuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSA6IDAs
IGRvd25sb2FkSUQsIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7CiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5Ojpjb21taXRQcm92aXNpb25hbFBhZ2UodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9t
Q29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpD
ZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdpbkRvY3Vt
ZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2Vj
dXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6
OmNvbW1pdFByb3Zpc2lvbmFsUGFnZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9t
Q29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpD
ZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdpbkRvY3Vt
ZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2Vj
dXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIEFTU0VSVChtX3By
b3Zpc2lvbmFsUGFnZSk7CiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiY29t
bWl0UHJvdmlzaW9uYWxQYWdlOiBwcmV2aW91c1BJRCA9ICVpLCBuZXdQSUQgPSAlaSwgcGFnZUlE
ID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcHJvdmlzaW9u
YWxQYWdlLT5wcm9jZXNzKCkucHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQo
KSk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gbWFpbkZyYW1lSURJblByZXZpb3VzUHJvY2Vz
cyA9IG1fbWFpbkZyYW1lID8gbWFrZU9wdGlvbmFsKG1fbWFpbkZyYW1lLT5mcmFtZUlEKCkpIDog
V1RGOjpudWxsb3B0OworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gbWFpbkZyYW1lSURJ
blByZXZpb3VzUHJvY2VzcyA9IG1fbWFpbkZyYW1lID8gbWFrZU9wdGlvbmFsKG1fbWFpbkZyYW1l
LT5mcmFtZUlEKCkpIDogV1RGOjpudWxsb3B0OwogCiAgICAgQVNTRVJUKG1fcHJvY2Vzcy5wdHIo
KSAhPSAmbV9wcm92aXNpb25hbFBhZ2UtPnByb2Nlc3MoKSk7CiAKQEAgLTM2NzIsNyArMzY3Miw3
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3Js
ZChjb25zdCBTdHJpbmcmIHNjcmlwdCwgYm9vCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpSdW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3JsZChzY3JpcHQsIGZv
cmNlVXNlckdlc3R1cmUsIHdvcmxkTmFtZSwgY2FsbGJhY2tJRCksIG1fcGFnZUlEKTsKIH0KIAot
dm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRJbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIFdURjo6RnVuY3Rp
b248dm9pZChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSosIGJvb2wgaGFkRXhjZXB0aW9uLCBj
b25zdCBFeGNlcHRpb25EZXRhaWxzJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tG
dW5jdGlvbikKK3ZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0SW5GcmFtZShGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2Vz
dHVyZSwgV1RGOjpGdW5jdGlvbjx2b2lkKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiwgYm9v
bCBoYWRFeGNlcHRpb24sIGNvbnN0IEV4Y2VwdGlvbkRldGFpbHMmLCBDYWxsYmFja0Jhc2U6OkVy
cm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQogewogICAgIEFTU0VSVChtYWluRnJhbWUoKS0+ZnJh
bWVJRCgpICE9IGZyYW1lSUQpOwogICAgIGF1dG8gY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1
dChXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBtX3Byb2Nlc3MtPnRocm90dGxlcigpLmJhY2tn
cm91bmRBY3Rpdml0eVRva2VuKCkpOwpAQCAtMzg3OCw3ICszODc4LDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKCkKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OlByZWZlcmVuY2VzRGlkQ2hhbmdlKHByZWZlcmVuY2VzU3RvcmUoKSksIG1f
cGFnZUlELCBwcmludGluZ1NlbmRPcHRpb25zKG1faXNQZXJmb3JtaW5nRE9NUHJpbnRPcGVyYXRp
b24pKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRf
dCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZShGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICAvLyBUaGUgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvblN5bmMgSVBDIGlzIHN5bmNocm9ub3VzIGFuZCBtYXkgdGhlcmVmb3JlIGdldCBwcm9j
ZXNzZWQgYmVmb3JlIHRoZSBEaWRDcmVhdGVNYWluRnJhbWUgb25lLgogICAgIC8vIFdoZW4gdGhp
cyBoYXBwZW5zLCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYygpIGNhbGxzIGRp
ZENyZWF0ZU1haW5GcmFtZSgpIGFuZCB3ZSBuZWVkIHRvIGlnbm9yZSB0aGUgRGlkQ3JlYXRlTWFp
bkZyYW1lCkBAIC0zODk3LDcgKzM4OTcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRl
TWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCiAgICAgbV9wcm9jZXNzLT5mcmFtZUNyZWF0ZWQo
ZnJhbWVJRCwgKm1fbWFpbkZyYW1lKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0
ZVN1YmZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRl
U3ViZnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgUGFnZUNsaWVudFByb3Rl
Y3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtMzkxNyw3ICszOTE3LDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0ZVN1YmZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCiAgICAg
bV9wcm9jZXNzLT5mcmFtZUNyZWF0ZWQoZnJhbWVJRCwgc3ViRnJhbWUuZ2V0KCkpOwogfQogCi12
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRlV2luZG93KHVpbnQ2NF90IGZyYW1lSUQsIEdsb2Jh
bFdpbmRvd0lkZW50aWZpZXImJiB3aW5kb3dJZGVudGlmaWVyKQordm9pZCBXZWJQYWdlUHJveHk6
OmRpZENyZWF0ZVdpbmRvdyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgR2xvYmFsV2luZG93SWRl
bnRpZmllciYmIHdpbmRvd0lkZW50aWZpZXIpCiB7CiB9CiAKQEAgLTM5ODEsMTIgKzM5ODEsMTIg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZERlc3Ryb3lOYXZpZ2F0aW9uKHVpbnQ2NF90IG5hdmln
YXRpb25JRCkKICAgICBtX25hdmlnYXRpb25TdGF0ZS0+ZGlkRGVzdHJveU5hdmlnYXRpb24obmF2
aWdhdGlvbklEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwm
JiB1cmwsIFVSTCYmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwsIFVSTCYm
IHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgZGlkU3Rh
cnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFt
ZUlELCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUodXJsKSwgV1RGTW92ZSh1bnJlYWNoYWJsZVVSTCks
IHVzZXJEYXRhKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCB1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCwgVVJMJiYgdW5yZWFj
aGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgVVJMJiYgdXJsLCBVUkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7
CiAKQEAgLTQwMDUsOCArNDAwNSw4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYKICAgICBpZiAo
ZnJhbWUtPmlzTWFpbkZyYW1lKCkgJiYgbmF2aWdhdGlvbklEKQogICAgICAgICBuYXZpZ2F0aW9u
ID0gbmF2aWdhdGlvblN0YXRlKCkubmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQpOwogCi0gICAgTE9H
KExvYWRpbmcsICJXZWJQYWdlUHJveHkgJSIgUFJJdTY0ICIgaW4gcHJvY2VzcyBwaWQgJWkgZGlk
U3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSB0byBmcmFtZUlEICUiIFBSSXU2NCAiLCBuYXZp
Z2F0aW9uSUQgJSIgUFJJdTY0ICIsIHVybCAlcyIsIG1fcGFnZUlELnRvVUludDY0KCksIHByb2Nl
c3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgdXJsLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywg
ImRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZp
ZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgTE9HKExvYWRpbmcsICJX
ZWJQYWdlUHJveHkgJSIgUFJJdTY0ICIgaW4gcHJvY2VzcyBwaWQgJWkgZGlkU3RhcnRQcm92aXNp
b25hbExvYWRGb3JGcmFtZSB0byBmcmFtZUlEICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9uSUQgJSIg
UFJJdTY0ICIsIHVybCAlcyIsIG1fcGFnZUlELnRvVUludDY0KCksIHByb2Nlc3MtPnByb2Nlc3NJ
ZGVudGlmaWVyKCksIGZyYW1lSUQudG9VSW50NjQoKSwgbmF2aWdhdGlvbklELCB1cmwuc3RyaW5n
KCkudXRmOCgpLmRhdGEoKSk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAi
ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmll
cigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCkpOwogCiAgICAgYXV0
byB0cmFuc2FjdGlvbiA9IG1fcGFnZUxvYWRTdGF0ZS50cmFuc2FjdGlvbigpOwogCkBAIC00MDMx
LDcgKzQwMzEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRG
b3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmCiAgICAgICAgIG1fbmF2aWdhdGlv
bkNsaWVudC0+ZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb24oKnRoaXMsIG5hdmlnYXRpb24u
Z2V0KCksIHByb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0
KCkpLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEV4cGxpY2l0T3BlbkZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIFVSTCYmIHVybCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRF
eHBsaWNpdE9wZW5Gb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgVVJMJiYgdXJsKQog
ewogICAgIGF1dG8qIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBN
RVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwpAQCAtNDA1MCwxNSArNDA1MCwxNSBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRXhwbGljaXRPcGVuRm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgVVJMJiYgdXJsKQogICAgIG1fcGFnZUxvYWRTdGF0ZS5jb21taXRDaGFuZ2VzKCk7CiB9CiAK
LXZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25h
bExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFJl
c291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQg
V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRG
b3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAg
ICAgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFy
ZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKHJl
cXVlc3QpLCB1c2VyRGF0YSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2Vy
dmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQor
dm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgUmVzb3VyY2VSZXF1ZXN0
JiYgcmVxdWVzdCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewotICAgIExPRyhMb2FkaW5n
LCAiV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExv
YWRGb3JGcmFtZSB0byBmcmFtZUlEICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9uSUQgJSIgUFJJdTY0
ICIsIHVybCAlcyIsIGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgcmVxdWVzdC51cmwoKS5zdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJk
aWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZTogd2ViUElE
ID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBwcm9jZXNz
LT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAg
ICBMT0coTG9hZGluZywgIldlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9y
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUgdG8gZnJhbWVJRCAlIiBQUkl1NjQgIiwgbmF2aWdhdGlv
bklEICUiIFBSSXU2NCAiLCB1cmwgJXMiLCBmcmFtZUlELnRvVUludDY0KCksIG5hdmlnYXRpb25J
RCwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNp
b25hbExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0LCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50
b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCkpOwogCiAgICAgUGFnZUNsaWVudFByb3RlY3Rv
ciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDA4NSw5ICs0MDg1LDkgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lU2hhcmVkKFJlZjwKICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRSZWNlaXZl
U2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbE5hdmlnYXRpb24oKnRoaXMsIG5hdmlnYXRpb24u
Z2V0KCksIHByb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0
KCkpLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OndpbGxQZXJmb3JtQ2xpZW50UmVk
aXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHVybCwgZG91Ymxl
IGRlbGF5LCBXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0KQordm9pZCBXZWJQYWdlUHJveHk6
OndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgY29uc3QgU3RyaW5nJiB1cmwsIGRvdWJsZSBkZWxheSwgV2ViQ29yZTo6TG9ja0JhY2tGb3J3
YXJkTGlzdCkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJ3aWxsUGVy
Zm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigp
LCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKExvYWRpbmcsICJ3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWU6IHdlYlBJRCA9
ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNz
LT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUlu
dDY0KCkpOwogCiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgp
KTsKIApAQCAtNDA5OCw5ICs0MDk4LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OndpbGxQZXJmb3Jt
Q2xpZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHIKICAgICAg
ICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT53aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KCp0aGlzLCB1
cmwsIGRlbGF5KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZENhbmNlbENsaWVudFJlZGly
ZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDYW5j
ZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewotICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZENhbmNlbENsaWVudFJlZGlyZWN0
Rm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2
NCgpLCBmcmFtZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRD
YW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIo
KSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAgIFBhZ2VD
bGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQxMTEsMTIgKzQx
MTEsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJh
bWUodWludDY0X3QgZnJhbWVJRCkKICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRDYW5j
ZWxDbGllbnRSZWRpcmVjdCgqdGhpcyk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFu
Z2VQcm92aXNpb25hbFVSTEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgVVJMJiYgdXJsKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lv
bmFsVVJMRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgVVJMJiYgdXJsKQogewogICAgIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVT
aGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgbmF2aWdhdGlvbklELCBXVEZNb3Zl
KHVybCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxG
b3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90IGZy
YW1lSUQsIHVpbnQ2NF90LCBVUkwmJiB1cmwpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdl
UHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nl
c3MsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCwgVVJMJiYgdXJsKQogewogICAg
IFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQxMzUs
NyArNDEzNSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZv
ckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYKICAgICBmcmFtZS0+ZGlkUmVjZWl2
ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKHVybCk7CiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFJlc291cmNl
RXJyb3ImIGVycm9yLCBXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250aW51ZUxvYWRpbmcsIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5
T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBj
b25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwg
V2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYg
dXNlckRhdGEpCiB7CiAgICAgaWYgKG1fcHJvdmlzaW9uYWxQYWdlICYmIG1fcHJvdmlzaW9uYWxQ
YWdlLT5uYXZpZ2F0aW9uSUQoKSA9PSBuYXZpZ2F0aW9uSUQpIHsKICAgICAgICAgLy8gVGhlIGxv
YWQgZGlkIG5vdCBmYWlsLCBpdCBpcyBtZXJlbHkgaGFwcGVuaW5nIGluIGEgbmV3IHByb3Zpc2lv
bmFsIHByb2Nlc3MuCkBAIC00MTQ1LDEwICs0MTQ1LDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2Vj
dXJpCiAgICAgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5j
b3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIG5hdmlnYXRpb25JRCwgcHJv
dmlzaW9uYWxVUkwsIGVycm9yLCB3aWxsQ29udGludWVMb2FkaW5nLCB1c2VyRGF0YSk7CiB9CiAK
LXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQo
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBT
ZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgUmVzb3VyY2VFcnJvciYg
ZXJyb3IsIFdpbGxDb250aW51ZUxvYWRpbmcgd2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNl
ckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExv
YWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlP
cmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVS
TCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFdpbGxDb250aW51ZUxvYWRpbmcgd2lsbENv
bnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIExPRyhMb2Fk
aW5nLCAiKExvYWRpbmcpIFdlYlBhZ2VQcm94eSAlIiBQUkl1NjQgIiBpbiB3ZWIgcHJvY2VzcyBw
aWQgJWkgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lIHRvIHByb3Zpc2lvbmFsVVJMICVz
IiwgbV9wYWdlSUQudG9VSW50NjQoKSwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgcHJv
dmlzaW9uYWxVUkwudXRmOCgpLmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQ
cm9jZXNzLCAiZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgZG9tYWluID0gJXMsIGNv
ZGUgPSAlZCIsIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0
KCksIGZyYW1lSUQsIGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCksIGVycm9yLmVycm9yQ29k
ZSgpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3MsICJkaWRGYWlsUHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCBkb21haW4gPSAlcywgY29kZSA9ICVkIiwgcHJvY2Vzcy0+cHJv
Y2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgp
LCBlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJvci5lcnJvckNvZGUoKSk7CiAKICAg
ICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00MjI0
LDExICs0MjI0LDExIEBAIHN0YXRpYyBPcHRpb25TZXQ8Q3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFU
cmFuc2Zlcjo6RmxhZz4gY2hlY2tJZk5hdmlnYXRpb25Db250YWluCiB9CiAjZW5kaWYKIAotdm9p
ZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVI
YXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IG9wYXF1ZUZyYW1lTG9hZFR5cGUsIGNv
bnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBib29sIGNvbnRh
aW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPEhhc0luc2VjdXJlQ29udGVudD4gaGFzSW5zZWN1
cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkQ29tbWl0TG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21D
b250ZW50UHJvdmlkZXIsIHVpbnQzMl90IG9wYXF1ZUZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNv
cmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBib29sIGNvbnRhaW5zUGx1Z2lu
RG9jdW1lbnQsIE9wdGlvbmFsPEhhc0luc2VjdXJlQ29udGVudD4gaGFzSW5zZWN1cmVDb250ZW50
LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgTE9HKExvYWRpbmcsICIoTG9hZGlu
ZykgV2ViUGFnZVByb3h5ICUiIFBSSXU2NCAiIGRpZENvbW1pdExvYWRGb3JGcmFtZSBpbiBuYXZp
Z2F0aW9uICUiIFBSSXU2NCwgbV9wYWdlSUQudG9VSW50NjQoKSwgbmF2aWdhdGlvbklEKTsKICAg
ICBMT0coQmFja0ZvcndhcmQsICIoQmFjay9Gb3J3YXJkKSBBZnRlciBsb2FkIGNvbW1pdCwgYmFj
ay9mb3J3YXJkIGxpc3QgaXMgbm93OiVzIiwgbV9iYWNrRm9yd2FyZExpc3QtPmxvZ2dpbmdTdHJp
bmcoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkQ29tbWl0TG9h
ZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAl
IiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50
NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlk
Q29tbWl0TG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZy
YW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdl
SUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAgIFBhZ2VDbGllbnRQcm90
ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQzMzgsOSArNDMzOCw5IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgbmF2aWdhdGlvbklECiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6
OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKLSAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JG
cmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCks
IGZyYW1lSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZEZpbmlz
aERvY3VtZW50TG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIs
IGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9w
YWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAgIFBhZ2VDbGllbnRQ
cm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQzNjEsMTAgKzQzNjEsMTAg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmkKICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5k
aWRGaW5pc2hEb2N1bWVudExvYWQoKnRoaXMsIG5hdmlnYXRpb24uZ2V0KCksIG1fcHJvY2Vzcy0+
dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOwogfQog
Ci12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9p
ZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7
CiAgICAgTE9HKExvYWRpbmcsICJXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRGb3JGcmFtZSAt
IFdlYlBhZ2VQcm94eSAlcCB3aXRoIG5hdmlnYXRpb25JRCAlIiBQUkl1NjQgIiBkaWRGaW5pc2hM
b2FkIiwgdGhpcywgbmF2aWdhdGlvbklEKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExv
YWRpbmcsICJkaWRGaW5pc2hMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmll
cigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKExvYWRpbmcsICJkaWRGaW5pc2hMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNz
SWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCkpOwog
CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAt
NDQwNyw5ICs0NDA3LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQKICAgICBtX2lzTG9hZGlu
Z0FsdGVybmF0ZUhUTUxTdHJpbmdGb3JGYWlsaW5nUHJvdmlzaW9uYWxMb2FkID0gZmFsc2U7CiB9
CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZv
ckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNv
bnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7Ci0g
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkRmFpbExvYWRGb3JGcmFtZTog
d2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IGRvbWFpbiA9ICVzLCBjb2RlID0gJWQiLCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCks
IG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQsIGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRh
KCksIGVycm9yLmVycm9yQ29kZSgpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRp
bmcsICJkaWRGYWlsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgZG9tYWluID0gJXMsIGNvZGUgPSAlZCIsIG1fcHJv
Y2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50
b1VJbnQ2NCgpLCBlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJvci5lcnJvckNvZGUo
KSk7CiAKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwog
CkBAIC00NDQ5LDkgKzQ0NDksOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbExvYWRGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsCiAgICAgfQogfQog
Ci12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMyX3Qgb3BhcXVlU2Ft
ZURvY3VtZW50TmF2aWdhdGlvblR5cGUsIFVSTCYmIHVybCwgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFt
ZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50MzJf
dCBvcGFxdWVTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgVVJMJiYgdXJsLCBjb25zdCBVc2Vy
RGF0YSYgdXNlckRhdGEpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAi
ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50
aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lOiB3
ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1f
cHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJ
RC50b1VJbnQ2NCgpKTsKIAogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VD
bGllbnQoKSk7CiAKQEAgLTQ0ODgsNyArNDQ4OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRT
YW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QK
ICAgICAgICAgcGFnZUNsaWVudCgpLmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJh
bWUobmF2aWdhdGlvblR5cGUpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlTWFp
bkRvY3VtZW50KHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdl
TWFpbkRvY3VtZW50KEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCiAgICAgaWYgKG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKQpA
QCAtNDUwNyw3ICs0NTA3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnZpZXdJc0JlY29taW5nVmlz
aWJsZSgpCiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVUaXRsZUZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFVzZXJE
YXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFt
ZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgVXNl
ckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBh
Z2VDbGllbnQoKSk7CiAKQEAgLTQ1MjksMTEgKzQ1MjksMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYg
dGl0bGUKICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmlyc3RMYXlvdXRGb3JG
cmFtZSh1aW50NjRfdCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJv
eHk6OmRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyLCBjb25zdCBVc2VyRGF0
YSYgdXNlckRhdGEpCiB7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdFZpc3VhbGx5
Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVc2VyRGF0YSYg
dXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5
b3V0Rm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2Vy
RGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkp
OwogCkBAIC00NTY0LDcgKzQ1NjQsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVhY2hMYXlv
dXRNaWxlc3RvbmUoT3B0aW9uU2V0PFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZT4gbAogICAgIG1f
bmF2aWdhdGlvbkNsaWVudC0+cmVuZGVyaW5nUHJvZ3Jlc3NEaWRDaGFuZ2UoKnRoaXMsIGxheW91
dE1pbGVzdG9uZXMpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGlzcGxheUluc2VjdXJl
Q29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0
YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAg
ICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00NTc4
LDcgKzQ1NzgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGlzcGxheUluc2VjdXJlQ29udGVu
dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZQogICAgIG1fbmF2aWdhdGlvbkNs
aWVudC0+ZGlkRGlzcGxheUluc2VjdXJlQ29udGVudCgqdGhpcywgbV9wcm9jZXNzLT50cmFuc2Zv
cm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9iamVjdCgpKS5nZXQoKSk7CiB9CiAKLXZvaWQg
V2ViUGFnZVByb3h5OjpkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUnVu
SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFVz
ZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3Rvcihw
YWdlQ2xpZW50KCkpOwogCkBAIC00NTkyLDcgKzQ1OTIsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVXNl
ckRhdAogICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkUnVuSW5zZWN1cmVDb250ZW50KCp0aGlz
LCBtX3Byb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0KCkp
LmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZERldGVjdFhTU0ZvckZyYW1lKHVp
bnQ2NF90LCBjb25zdCBVc2VyRGF0YSYpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGV0ZWN0WFNT
Rm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyLCBjb25zdCBVc2VyRGF0YSYpCiB7CiB9CiAKQEAgLTQ2
MDEsNyArNDYwMSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjptYWluRnJhbWVQbHVnaW5IYW5kbGVz
UGFnZVNjYWxlR2VzdHVyZURpZENoYW5nZShib29sIG1haW5GcmFtCiAgICAgbV9tYWluRnJhbWVQ
bHVnaW5IYW5kbGVzUGFnZVNjYWxlR2VzdHVyZSA9IG1haW5GcmFtZVBsdWdpbkhhbmRsZXNQYWdl
U2NhbGVHZXN0dXJlOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZnJhbWVEaWRCZWNvbWVGcmFt
ZVNldCh1aW50NjRfdCBmcmFtZUlELCBib29sIHZhbHVlKQordm9pZCBXZWJQYWdlUHJveHk6OmZy
YW1lRGlkQmVjb21lRnJhbWVTZXQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wgdmFsdWUp
CiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApA
QCAtNDYyMCw3ICs0NjIwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmJlZ2luU2FmZUJyb3dzaW5n
Q2hlY2soY29uc3QgVVJMJiwgYm9vbCwgV2ViRnJhbWVQb2xpY3lMaXN0ZW4KIH0KICNlbmRpZgog
Ci12b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5j
KHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbkFzeW5jKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRl
bnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELAogICAgIE5hdmlnYXRpb25BY3Rpb25EYXRh
JiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBP
cHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0LAogICAgIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1
ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKIHsKQEAgLTQ2Mjgs
NyArNDYyOCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uQXN5bmModWludDY0X3QgZnJhbWVJRCwgV2ViQ29yCiAgICAgICAgIFdURk1vdmUoZnJh
bWVJbmZvRGF0YSksIG9yaWdpbmF0aW5nUGFnZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdURk1vdmUo
cmVxdWVzdCksIFdURk1vdmUocmVxdWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2Up
LCB1c2VyRGF0YSwgbGlzdGVuZXJJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiBwcm9jZXNzLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
JiBmcmFtZVNlY3VyaXR5T3JpZ2luLAordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nl
c3MsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
JiBmcmFtZVNlY3VyaXR5T3JpZ2luLAogICAgIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciBpZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRh
JiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBP
cHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsCiAgICAg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1
ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsCiAg
ICAgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQpAQCAtNDg1
OCw3ICs0ODU4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvZ0ZyYW1lTmF2aWdhdGlvbihjb25z
dCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgY29uc3QgVVJMJiBwYWcKIH0KICNlbmRpZgogCi12b2lk
IFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmModWludDY0
X3QgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIs
Cit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmll
ciBpZGVudGlmaWVyLAogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlv
bkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0Rh
dGEsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwKICAgICBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RC
b2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwKICAgICBj
b25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVkUmVwbHkmJiByZXBseSkKQEAgLTQ4
NzYsNyArNDg3Niw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uU3luYyh1aW50NjRfdCBmcmFtZUlELCBib29sIGlzCiAgICAgICAgIFdURk1vdmUo
ZnJhbWVJbmZvRGF0YSksIG9yaWdpbmF0aW5nUGFnZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdURk1v
dmUocmVxdWVzdCksIFdURk1vdmUocmVxdWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9u
c2UpLCB1c2VyRGF0YSwgV1RGTW92ZShyZXBseSkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiBwcm9jZXNzLCB1aW50NjRfdCBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVj
a0lkZW50aWZpZXIgaWRlbnRpZmllciwKK3ZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nl
c3MsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50
aWZpZXIgaWRlbnRpZmllciwKICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25B
Y3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUlu
Zm9EYXRhLCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsCiAgICAg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1
ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsCiAg
ICAgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCkBA
IC00ODkzLDcgKzQ4OTMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvblN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eQogICAgIHNlbmRlci0+
c2VuZChQb2xpY3lBY3Rpb246OlVzZSwgbmF2aWdhdGlvbklELCBEb3dubG9hZElEKCksIFdURjo6
bnVsbG9wdCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5k
b3dBY3Rpb24odWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFt
ZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKK3ZvaWQg
V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdp
biwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCiAgICAgTmF2aWdhdGlvbkFjdGlv
bkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwg
Y29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJE
YXRhJiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdl
Q2xpZW50KCkpOwpAQCAtNDkzMSwxMyArNDkzMSwxMyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVj
aWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3Vy
aQogICAgICAgICAKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1
cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCit2b2lkIFdlYlBh
Z2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hl
Y2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0
ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAg
IGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1l
SUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9u
c2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVy
SUQsIHVzZXJEYXRhKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJl
c3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgdWludDY0X3QgZnJh
bWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xp
Y3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKK3ZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAogICAgIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0
cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJE
YXRhJiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdl
Q2xpZW50KCkpOwpAQCAtNDk3MSw3ICs0OTcxLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lk
ZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywK
ICAgICB9CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojp1bmFibGVUb0ltcGxlbWVudFBvbGljeSh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgVXNlckRh
dGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OnVuYWJsZVRvSW1wbGVtZW50UG9saWN5
KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgY29u
c3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVj
dG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQ5ODUsNyArNDk4NSw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5Ojp1bmFibGVUb0ltcGxlbWVudFBvbGljeSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBSZXNv
dXJjZUVycm9yCiAKIC8vIEZvcm1DbGllbnQKIAotdm9pZCBXZWJQYWdlUHJveHk6OndpbGxTdWJt
aXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZyYW1lSUQsIGNvbnN0IFZl
Y3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiYgdGV4dEZpZWxkVmFsdWVzLCB1aW50NjRf
dCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94
eTo6d2lsbFN1Ym1pdEZvcm0oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lSWRlbnRpZmll
ciBzb3VyY2VGcmFtZUlELCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4m
IHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVz
ZXJEYXRhKQogewogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFt
ZShmcmFtZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwpAQCAtNTAw
MywxMiArNTAwMywxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGVudFJ1bGVMaXN0Tm90aWZp
Y2F0aW9uKFVSTCYmIHVybCwgQ29udGVudFJ1bGVMaXN0UmVzdWx0cwogICAgIG1fbmF2aWdhdGlv
bkNsaWVudC0+Y29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uKCp0aGlzLCBXVEZNb3ZlKHVybCks
IFdURk1vdmUocmVzdWx0cykpOwogfQogICAgIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZE5hdmln
YXRlV2l0aE5hdmlnYXRpb25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmIHN0b3Jl
LCB1aW50NjRfdCBmcmFtZUlEKSAKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWROYXZpZ2F0ZVdpdGhO
YXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiBzdG9yZSwgRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFT
aGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgc3RvcmUsIGZyYW1lSUQpOwogfQogCi12b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQoUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiBzdG9y
ZSwgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWROYXZpZ2F0ZVdpdGhO
YXZpZ2F0aW9uRGF0YVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIGNvbnN0
IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmIHN0b3JlLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkK
IHsKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWROYXZpZ2F0ZVdpdGhO
YXZpZ2F0aW9uRGF0YVNoYXJlZDogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCwgcHJv
Y2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSk7CiAKQEAgLTUw
MjMsMTQgKzUwMjMsMTQgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZE5hdmlnYXRlV2l0aE5hdmln
YXRpb25EYXRhU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHIKICAgICBwcm9jZXNzLT5w
cm9jZXNzUG9vbCgpLmhpc3RvcnlDbGllbnQoKS5kaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0
YShwcm9jZXNzLT5wcm9jZXNzUG9vbCgpLCAqdGhpcywgc3RvcmUsICpmcmFtZSk7CiB9CiAKLXZv
aWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgU3RyaW5nJiBz
b3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2
NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0
KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9u
VVJMU3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBkaWRQZXJmb3JtQ2xp
ZW50UmVkaXJlY3RTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgc291cmNlVVJMU3RyaW5nLCBk
ZXN0aW5hdGlvblVSTFN0cmluZywgZnJhbWVJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9j
ZXNzLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5h
dGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNz
LCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlv
blVSTFN0cmluZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7Ci0gICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkOiB3ZWJQ
SUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIHByb2Nl
c3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQpOwor
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZFBlcmZvcm1DbGllbnRSZWRp
cmVjdFNoYXJlZDogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0LCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2
NCgpLCBmcmFtZUlELnRvVUludDY0KCkpOwogCiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90
ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNTA1MCwxMiArNTA1MCwxMiBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYgcHJvY2VzcwogICAgIHByb2Nlc3MtPnByb2Nlc3NQb29sKCkuaGlzdG9yeUNsaWVudCgp
LmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdChwcm9jZXNzLT5wcm9jZXNzUG9vbCgpLCAqdGhpcywg
c291cmNlVVJMU3RyaW5nLCBkZXN0aW5hdGlvblVSTFN0cmluZywgKmZyYW1lKTsKIH0KIAotdm9p
ZCBXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNv
dXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0
X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3Qo
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25V
UkxTdHJpbmcsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIGRpZFBlcmZvcm1TZXJ2
ZXJSZWRpcmVjdFNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBzb3VyY2VVUkxTdHJpbmcsIGRl
c3RpbmF0aW9uVVJMU3RyaW5nLCBmcmFtZUlEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nl
c3MsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0
aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFBl
cmZvcm1TZXJ2ZXJSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3Ms
IGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9u
VVJMU3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKExvYWRpbmcsICJkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3Q6IHdlYlBJRCA9ICVp
LCBwYWdlSUQgPSAlIiBQUkl1NjQsIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFn
ZUlELnRvVUludDY0KCkpOwogCkBAIC01MDc2LDcgKzUwNzYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYg
cHJvY2VzcwogICAgIHByb2Nlc3MtPnByb2Nlc3NQb29sKCkuaGlzdG9yeUNsaWVudCgpLmRpZFBl
cmZvcm1TZXJ2ZXJSZWRpcmVjdChwcm9jZXNzLT5wcm9jZXNzUG9vbCgpLCAqdGhpcywgc291cmNl
VVJMU3RyaW5nLCBkZXN0aW5hdGlvblVSTFN0cmluZywgKmZyYW1lKTsKIH0KIAotdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZFVwZGF0ZUhpc3RvcnlUaXRsZShjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25z
dCBTdHJpbmcmIHVybCwgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRV
cGRhdGVIaXN0b3J5VGl0bGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiB1cmws
IEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJv
dGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTUxNzgsNyArNTE3OCw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpjbG9zZVBhZ2UoYm9vbCBzdG9wUmVzcG9uc2l2ZW5lc3NUaW1lcikKICAgICBtX3Vp
Q2xpZW50LT5jbG9zZSh0aGlzKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3Jp
cHRBbGVydCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3Vy
aXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlJ1bkphdmFTY3JpcHRBbGVydDo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit2b2lkIFdlYlBhZ2VQ
cm94eTo6cnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBT
ZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydDo6RGVsYXllZFJlcGx5
JiYgcmVwbHkpCiB7CiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZy
YW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBmcmFtZSk7CkBAIC01
MTk3LDcgKzUxOTcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEFsZXJ0KHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YQogICAgIG1fdWlDbGllbnQt
PnJ1bkphdmFTY3JpcHRBbGVydCh0aGlzLCBtZXNzYWdlLCBmcmFtZSwgc2VjdXJpdHlPcmlnaW4s
IFdURk1vdmUocmVwbHkpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRD
b25maXJtKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJp
dHlPcmlnaW4sIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
UnVuSmF2YVNjcmlwdENvbmZpcm06OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQordm9pZCBXZWJQYWdl
UHJveHk6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25z
dCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRDb25maXJtOjpEZWxheWVk
UmVwbHkmJiByZXBseSkKIHsKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+
d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsK
QEAgLTUyMTcsNyArNTIxNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0Q29u
ZmlybSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhCiAgICAgbV91aUNs
aWVudC0+cnVuSmF2YVNjcmlwdENvbmZpcm0odGhpcywgbWVzc2FnZSwgZnJhbWUsIHNlY3VyaXR5
T3JpZ2luLCBXVEZNb3ZlKHJlcGx5KSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZh
U2NyaXB0UHJvbXB0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYg
c2VjdXJpdHlPcmlnaW4sIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZh
dWx0VmFsdWUsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OkRl
bGF5ZWRSZXBseSYmIHJlcGx5KQordm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRQcm9t
cHQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2Vj
dXJpdHlPcmlnaW4sIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0
VmFsdWUsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OkRlbGF5
ZWRSZXBseSYmIHJlcGx5KQogewogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNz
LT53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUp
OwpAQCAtNTM3Niw3ICs1Mzc2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJvb3RWaWV3VG9BY2Nl
c3NpYmlsaXR5U2NyZWVuKGNvbnN0IEludFJlY3QmIHZpZXdSZWN0LCBDb21wbGUKICAgICBjb21w
bGV0aW9uSGFuZGxlcihwYWdlQ2xpZW50KCkucm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3JlZW4o
dmlld1JlY3QpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3Vy
aXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit2b2lk
IFdlYlBhZ2VQcm94eTo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbDo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7CiAgICAgV2ViRnJhbWVQcm94
eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hF
Q0sobV9wcm9jZXNzLCBmcmFtZSk7CkBAIC01NDE2LDcgKzU0MTYsNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6cGFnZURpZFNjcm9sbCgpCiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJ1
bk9wZW5QYW5lbCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZy
YW1lU2VjdXJpdHlPcmlnaW4sIGNvbnN0IEZpbGVDaG9vc2VyU2V0dGluZ3MmIHNldHRpbmdzKQor
dm9pZCBXZWJQYWdlUHJveHk6OnJ1bk9wZW5QYW5lbChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
Y29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBjb25zdCBGaWxl
Q2hvb3NlclNldHRpbmdzJiBzZXR0aW5ncykKIHsKICAgICBpZiAobV9vcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lcikgewogICAgICAgICBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyLT5pbnZhbGlkYXRl
KCk7CkBAIC01NDU1LDcgKzU0NTUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd1NoYXJlU2hl
ZXQoY29uc3QgU2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYgc2hhcmVEYXRhLCBTaGFyZQogICAgIHBh
Z2VDbGllbnQoKS5zaG93U2hhcmVTaGVldChzaGFyZURhdGEsIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKIH0KICAgICAKLXZvaWQgV2ViUGFnZVByb3h5OjpwcmludEZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3ZvaWQgV2ViUGFnZVByb3h5OjpwcmludEZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNT
RVJUKCFtX2lzUGVyZm9ybWluZ0RPTVByaW50T3BlcmF0aW9uKTsKICAgICBtX2lzUGVyZm9ybWlu
Z0RPTVByaW50T3BlcmF0aW9uID0gdHJ1ZTsKQEAgLTY3NjksNyArNjc2OSw3IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpwcmludEZpbmlzaGVkQ2FsbGJhY2soY29uc3QgUmVzb3VyY2VFcnJvciYgcHJp
bnRFcnJvciwgQ2FsbGJhCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdlUHJveHk6OmZvY3VzZWRG
cmFtZUNoYW5nZWQodWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpmb2N1c2Vk
RnJhbWVDaGFuZ2VkKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIGlmICghZnJhbWVJ
RCkgewogICAgICAgICBtX2ZvY3VzZWRGcmFtZSA9IG51bGxwdHI7CkBAIC02NzgyLDcgKzY3ODIs
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCh1aW50NjRfdCBmcmFt
ZUlEKQogICAgIG1fZm9jdXNlZEZyYW1lID0gZnJhbWU7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5
OjpmcmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQodWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpmcmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQoRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQpCiB7CiAgICAgaWYgKCFmcmFtZUlEKSB7CiAgICAgICAgIG1fZnJhbWVTZXRMYXJnZXN0
RnJhbWUgPSBudWxscHRyOwpAQCAtNzM0NSwyNiArNzM0NSwyNiBAQCBXZWFrUHRyPFNlY0tleVBy
b3h5U3RvcmU+IFdlYlBhZ2VQcm94eTo6c2VjS2V5UHJveHlTdG9yZShjb25zdCBXZWJDb3JlOjpB
dXRoZW50aQogICAgIHJldHVybiBudWxscHRyOwogfQogICAgIAotdm9pZCBXZWJQYWdlUHJveHk6
OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5KHVpbnQ2NF90LCBSZWY8QXV0
aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkKK3Zv
aWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eShG
cmFtZUlkZW50aWZpZXIsIFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmIGF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKQogewogICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkUmVjZWl2
ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCp0aGlzLCBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5n
ZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpleGNlZWRlZERhdGFiYXNlUXVvdGEodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3Vy
cmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnRE
YXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpFeGNlZWRlZERhdGFiYXNlUXVvdGE6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQordm9pZCBX
ZWJQYWdlUHJveHk6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNl
TmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1
aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdl
LCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFeGNlZWRl
ZERhdGFiYXNlUXVvdGE6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQogewogICAgIHJlcXVlc3RTdG9y
YWdlU3BhY2UoZnJhbWVJRCwgb3JpZ2luSWRlbnRpZmllciwgZGF0YWJhc2VOYW1lLCBkaXNwbGF5
TmFtZSwgY3VycmVudFF1b3RhLCBjdXJyZW50T3JpZ2luVXNhZ2UsIGN1cnJlbnREYXRhYmFzZVVz
YWdlLCBleHBlY3RlZFVzYWdlLCBbcmVwbHkgPSBXVEZNb3ZlKHJlcGx5KV0oYXV0byBxdW90YSkg
bXV0YWJsZSB7CiAgICAgICAgIHJlcGx5KHF1b3RhKTsKICAgICB9KTsKIH0KIAotdm9pZCBXZWJQ
YWdlUHJveHk6OnJlcXVlc3RTdG9yYWdlU3BhY2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3Ry
aW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3Qg
U3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJy
ZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBl
eHBlY3RlZFVzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0U3RvcmFnZVNwYWNlKEZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRf
dCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3Vy
cmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQodWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoU3RvcmFnZSwgInJlcXVlc3RTdG9yYWdlU3BhY2UgZm9yIGZyYW1lICUi
IFBSSXU2NCAiLCBjdXJyZW50IHF1b3RhICUiIFBSSXU2NCAiIGN1cnJlbnQgdXNhZ2UgJSIgUFJJ
dTY0ICIgZXhwZWN0ZWQgdXNhZ2UgJSIgUFJJdTY0LCBmcmFtZUlELCBjdXJyZW50UXVvdGEsIGN1
cnJlbnREYXRhYmFzZVVzYWdlLCBleHBlY3RlZFVzYWdlKTsKKyAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKFN0b3JhZ2UsICJyZXF1ZXN0U3RvcmFnZVNwYWNlIGZvciBmcmFtZSAlIiBQUkl1NjQg
IiwgY3VycmVudCBxdW90YSAlIiBQUkl1NjQgIiBjdXJyZW50IHVzYWdlICUiIFBSSXU2NCAiIGV4
cGVjdGVkIHVzYWdlICUiIFBSSXU2NCwgZnJhbWVJRC50b1VJbnQ2NCgpLCBjdXJyZW50UXVvdGEs
IGN1cnJlbnREYXRhYmFzZVVzYWdlLCBleHBlY3RlZFVzYWdlKTsKIAogICAgIFN0b3JhZ2VSZXF1
ZXN0czo6c2luZ2xldG9uKCkucHJvY2Vzc09yQXBwZW5kKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIHBhZ2VVUkwgPSBjdXJyZW50VVJMKCksIGZyYW1lSUQsIG9yaWdpbklk
ZW50aWZpZXIsIGRhdGFiYXNlTmFtZSwgZGlzcGxheU5hbWUsIGN1cnJlbnRRdW90YSwgY3VycmVu
dE9yaWdpblVzYWdlLCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgZXhwZWN0ZWRVc2FnZSwgY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKICAg
ICAgICAgdGhpcy0+bWFrZVN0b3JhZ2VTcGFjZVJlcXVlc3QoZnJhbWVJRCwgb3JpZ2luSWRlbnRp
ZmllciwgZGF0YWJhc2VOYW1lLCBkaXNwbGF5TmFtZSwgY3VycmVudFF1b3RhLCBjdXJyZW50T3Jp
Z2luVXNhZ2UsIGN1cnJlbnREYXRhYmFzZVVzYWdlLCBleHBlY3RlZFVzYWdlLCBbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGZyYW1lSUQsIHBhZ2VVUkwgPSBX
VEZNb3ZlKHBhZ2VVUkwpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpLCBjdXJyZW50UXVvdGFdKGF1dG8gcXVvdGEpIG11dGFibGUgewogCi0gICAgICAgICAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFN0b3JhZ2UsICJyZXF1ZXN0U3RvcmFnZVNwYWNlIHJl
c3BvbnNlIGZvciBmcmFtZSAlIiBQUkl1NjQgIiwgcXVvdGEgJSIgUFJJdTY0LCBmcmFtZUlELCBx
dW90YSk7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFN0b3JhZ2UsICJyZXF1
ZXN0U3RvcmFnZVNwYWNlIHJlc3BvbnNlIGZvciBmcmFtZSAlIiBQUkl1NjQgIiwgcXVvdGEgJSIg
UFJJdTY0LCBmcmFtZUlELnRvVUludDY0KCksIHF1b3RhKTsKIAogICAgICAgICAgICAgaWYgKHF1
b3RhIDw9IGN1cnJlbnRRdW90YSAmJiB0aGlzLT5jdXJyZW50VVJMKCkgPT0gcGFnZVVSTCkgewog
ICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoU3RvcmFnZSwgInN0b3JhZ2Ug
c3BhY2UgaW5jcmVhc2UgZGVuaWVkIik7CkBAIC03Mzc2LDcgKzczNzYsNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6cmVxdWVzdFN0b3JhZ2VTcGFjZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJp
bmcmIG9yaWdpbklkZQogICAgIH0pOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6bWFrZVN0b3Jh
Z2VTcGFjZVJlcXVlc3QodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5
TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2Us
IHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgV2ViUGFnZVByb3h5OjptYWtlU3RvcmFnZVNwYWNlUmVxdWVzdChGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRh
dGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1
b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFz
ZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVp
bnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAobV9pc1F1b3RhSW5jcmVh
c2VEZW5pZWQpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY3VycmVudFF1b3RhKTsKQEAg
LTc0MDIsNyArNzQwMiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWFjaGVkQXBwbGljYXRpb25D
YWNoZU9yaWdpblF1b3RhKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpCiAgICAgbV91aUNsaWVu
dC0+cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh0aGlzLCBzZWN1cml0eU9yaWdp
bi5nZXQoKSwgY3VycmVudFF1b3RhLCB0b3RhbEJ5dGVzTmVlZGVkLCBXVEZNb3ZlKHJlcGx5KSk7
CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9y
RnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9y
aWdpbklkZW50aWZpZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEdlb2xvY2F0aW9uUGVy
bWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKIHsKICAgICBXZWJGcmFtZVByb3h5KiBm
cmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyht
X3Byb2Nlc3MsIGZyYW1lKTsKQEAgLTc0NDYsNyArNzQ0Niw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpzZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkT3ZlcnJpZGUoT3B0aW9uYWw8Ym9vbD4gZW5h
YmxlZCkKIH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBl
cm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiAgdXNlck1lZGlhRG9jdW1lbnRPcmln
aW5EYXRhLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1l
bnRPcmlnaW5EYXRhLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJiByZXF1ZXN0KQordm9p
ZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0
X3QgdXNlck1lZGlhSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmICB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRhdGEsIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEsIFdl
YkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmIHJlcXVlc3QpCiB7CiAjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgbV9wcm9jZXNzLT53ZWJGcmFt
ZShmcmFtZUlEKSk7CkBAIC03NDYxLDcgKzc0NjEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVx
dWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWlu
dAogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjplbnVtZXJhdGVNZWRpYURldmljZXNG
b3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRhdGEsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRh
dGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWlu
dDY0X3QgdXNlck1lZGlhSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luRGF0YSwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YSkK
IHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0g
bV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTc0OTMsNyArNzQ5Myw3IEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpjbGVhclVzZXJNZWRpYVN0YXRlKCkKIH0KIAogI2lmIEVOQUJMRShERVZJ
Q0VfT1JJRU5UQVRJT04pCi12b2lkIFdlYlBhZ2VQcm94eTo6c2hvdWxkQWxsb3dEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmJiBvcmlnaW5EYXRhLCBib29sIG1heVByb21wdCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpzaG91bGRBbGxvd0RldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmJiBvcmlnaW5EYXRhLCBib29sIG1heVByb21wdCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJv
Y2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZy
YW1lKTsKQEAgLTg3MzYsNyArODczNiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkU3luY2hy
b25vdXNVUkxTY2hlbWVUYXNrKFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYgcGFyYW1lCiB9CiAK
ICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotdm9pZCBXZWJQYWdlUHJveHk6
OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3Vi
RnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgdWlu
dDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0o
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIG1fdWlD
bGllbnQtPnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSgqdGhpcywgbV9wcm9jZXNzLT53ZWJG
cmFtZShmcmFtZUlEKSwgc3ViRnJhbWVEb21haW4sIHRvcEZyYW1lRG9tYWluLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CmluZGV4IGI0MzgzY2FmODhmMzcyNzJjZjk0NzdiNjQwMzljZTllZjVjOTQ5YTEuLmZhMDkzM2Ez
NDBhZTY0NWU5NWJmOWI3NjQ0ZmZmOTY1Y2UzMjE4MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCkBAIC0xMDE4LDcgKzEwMTgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBy
dW5KYXZhU2NyaXB0SW5NYWluRnJhbWUoY29uc3QgU3RyaW5nJiwgYm9vbCwgV1RGOjpGdW5jdGlv
bjx2b2lkIChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSosIGJvb2wgaGFkRXhjZXB0aW9uLCBj
b25zdCBXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYg
Y2FsbGJhY2tGdW5jdGlvbik7CiAgICAgdm9pZCBydW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3Jp
cHRXb3JsZChjb25zdCBTdHJpbmcmLCBib29sLCBjb25zdCBPcHRpb25hbDxTdHJpbmc+JiB3b3Js
ZE5hbWUsIFdURjo6RnVuY3Rpb248dm9pZChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSosIGJv
b2wgaGFkRXhjZXB0aW9uLCBjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzJiwgQ2FsbGJh
Y2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbik7CiAgICAgLy8gRm9yIHN1YiBmcmFt
ZXMuCi0gICAgdm9pZCBydW5KYXZhU2NyaXB0SW5GcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBTdHJpbmcmIHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBXVEY6OkZ1bmN0aW9uPHZv
aWQoQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqLCBib29sIGhhZEV4Y2VwdGlvbiwgY29uc3Qg
V2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxi
YWNrRnVuY3Rpb24pOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluRnJhbWUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJl
LCBXVEY6OkZ1bmN0aW9uPHZvaWQoQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqLCBib29sIGhh
ZEV4Y2VwdGlvbiwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyYsIENhbGxiYWNrQmFz
ZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pOwogICAgIHZvaWQgZm9yY2VSZXBhaW50KFJl
ZlB0cjxWb2lkQ2FsbGJhY2s+JiYpOwogCiAgICAgZmxvYXQgaGVhZGVySGVpZ2h0KFdlYkZyYW1l
UHJveHkmKTsKQEAgLTExNjEsNyArMTE2MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRyYXdSZWN0
VG9JbWFnZShXZWJGcmFtZVByb3h5KiwgY29uc3QgUHJpbnRJbmZvJiwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBSZWY8SW1hZ2VDYWxsYmFjaz4mJik7
CiAgICAgdm9pZCBkcmF3UGFnZXNUb1BERihXZWJGcmFtZVByb3h5KiwgY29uc3QgUHJpbnRJbmZv
JiwgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBSZWY8RGF0YUNhbGxiYWNrPiYmKTsK
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHVpbnQzMl90IGNvbXB1dGVQYWdlc0ZvclBy
aW50aW5nQW5kRHJhd1RvUERGKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIERy
YXdUb1BERkNhbGxiYWNrOjpDYWxsYmFja0Z1bmN0aW9uJiYpOworICAgIHVpbnQzMl90IGNvbXB1
dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
Y29uc3QgUHJpbnRJbmZvJiwgRHJhd1RvUERGQ2FsbGJhY2s6OkNhbGxiYWNrRnVuY3Rpb24mJik7
CiAgICAgdm9pZCBkcmF3VG9QREZDYWxsYmFjayhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHBk
ZkRhdGEsIFdlYktpdDo6Q2FsbGJhY2tJRCk7CiAjZW5kaWYKICNlbGlmIFBMQVRGT1JNKEdUSykK
QEAgLTEyNTIsNyArMTI1Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFZpZXdwb3J0U2l6ZUZv
ckNTU1ZpZXdwb3J0VW5pdHMoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogICAgIFdlYkNvcmU6
OkludFNpemUgdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpIGNvbnN0IHsgcmV0dXJu
IG1fdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cy52YWx1ZU9yKFdlYkNvcmU6OkludFNp
emUoKSk7IH0KIAotICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJv
eHkodWludDY0X3QgZnJhbWVJRCwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYp
OworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJik7
CiAKICAgICBTcGVsbERvY3VtZW50VGFnIHNwZWxsRG9jdW1lbnRUYWcoKTsKIApAQCAtMTQ1Miwx
MiArMTQ1MiwxMiBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MpCi0gICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oY29uc3Qg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VB
Y2Nlc3NDb25maXJtKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURv
bWFpbiwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
OwogICAgIHZvaWQgZGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXJGcm9tUHJl
dmFsZW50UmVzb3VyY2UoKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElP
TikKLSAgICB2b2lkIHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3Mo
dWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIGJvb2wgbWF5
UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmKTsKKyAgICB2b2lkIHNob3VsZEFsbG93RGV2aWNl
T3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgYm9vbCBtYXlQcm9tcHQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0
ZSk+JiYpOwogI2VuZGlmCiAKICAgICBzdGF0aWMgV2ViUGFnZVByb3h5KiBub25FcGhlbWVyYWxX
ZWJQYWdlUHJveHkoKTsKQEAgLTE0OTgsMzMgKzE0OTgsMzMgQEAgcHVibGljOgogI2VuZGlmCiAK
ICAgICBQcm92aXNpb25hbFBhZ2VQcm94eSogcHJvdmlzaW9uYWxQYWdlUHJveHkoKSBjb25zdCB7
IHJldHVybiBtX3Byb3Zpc2lvbmFsUGFnZS5nZXQoKTsgfQotICAgIHZvaWQgY29tbWl0UHJvdmlz
aW9uYWxQYWdlKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWlu
dDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiwgYm9v
bCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNv
bnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2
b2lkIGNvbW1pdFByb3Zpc2lvbmFsUGFnZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1
c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29y
ZTo6Q2VydGlmaWNhdGVJbmZvJiwgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25h
bDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwg
Y29uc3QgVXNlckRhdGEmKTsKIAogICAgIC8vIExvZ2ljIHNoYXJlZCBiZXR3ZWVuIHRoZSBXZWJQ
YWdlUHJveHkgYW5kIHRoZSBQcm92aXNpb25hbFBhZ2VQcm94eS4KLSAgICB2b2lkIGRpZFN0YXJ0
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWlu
dDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiwgVVJMJiYgdW5yZWFj
aGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2lu
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5n
LCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9y
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWlu
dDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJiwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJSZWRp
cmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVS
TFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0X3QgZnJh
bWVJRCk7Ci0gICAgdm9pZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQoUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlk
TmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
Y29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZv
aWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsK
LSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChSZWY8
V2ViUHJvY2Vzc1Byb3h5PiYmLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIsCisgICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBVUkwmJiwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRh
Jik7CisgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciYsIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRh
Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRG
b3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYs
IGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFy
ZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcs
IGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
Zmllcik7CisgICAgdm9pZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQoUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAg
dm9pZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YVNoYXJlZChSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmLCBjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyKTsKKyAgICB2b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQo
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb25Bc3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlP
cmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwKICAgICAgICAgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYsIE9w
dGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYmLAogICAgICAgICBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJv
ZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBV
c2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBX
ZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsCisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9y
aWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLAogICAgICAgICB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5n
JiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEm
KTsKICAgICB2b2lkIHN0YXJ0VVJMU2NoZW1lVGFza1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmLCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmKTsKICAgICB2b2lkIGxvYWREYXRhV2l0aE5h
dmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgQVBJOjpOYXZpZ2F0aW9uJiwg
Y29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3Qg
U3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNl
ckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0aW9uYWw8V2Vi
c2l0ZVBvbGljaWVzRGF0YT4mJiA9IFdURjo6bnVsbG9wdCwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSA9IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6
OlNob3VsZE5vdEFsbG93KTsKICAgICB2b2lkIGxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25TaGFy
ZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgQVBJOjpOYXZpZ2F0aW9uJiwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIEFQ
STo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
LCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmID0gV1RGOjpudWxsb3B0KTsKICAgICB2
b2lkIGJhY2tGb3J3YXJkR29Ub0l0ZW1TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29u
c3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYpPiYmKTsKLSAgICB2b2lkIGRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYs
IHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAogICAgICAgICBGcmFtZUluZm9EYXRh
JiYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHks
CiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBj
b25zdCBVc2VyRGF0YSYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVkUmVwbHkmJik7CiAjaWYgVVNFKFFVSUNLX0xPT0sp
CiAgICAgdm9pZCBkaWRSZXF1ZXN0UGFzc3dvcmRGb3JRdWlja0xvb2tEb2N1bWVudEluTWFpbkZy
YW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUp
OwogI2VuZGlmCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQotICAgIHZvaWQgY29udGVu
dEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYs
IGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYsIHVpbnQ2NF90IGZy
YW1lSUQpOworICAgIHZvaWQgY29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJs
b2NrSGFuZGxlciYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAjZW5kaWYKIAogICAgIHZv
aWQgZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFN0
cmluZyYpPiYmKTsKQEAgLTE1NjEsNyArMTU2MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwog
ICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CiAKLSAgICB2
b2lkIHJlcXVlc3RTdG9yYWdlU3BhY2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBv
cmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5n
JiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3Jp
Z2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3Rl
ZFVzYWdlLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmKTsKKyAgICB2
b2lkIHJlcXVlc3RTdG9yYWdlU3BhY2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25z
dCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1
cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90
IGV4cGVjdGVkVXNhZ2UsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYp
OwogCiAgICAgVVJMIGN1cnJlbnRSZXNvdXJjZURpcmVjdG9yeVVSTCgpIGNvbnN0OwogCkBAIC0x
NTgxLDcgKzE1ODEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlVGhyb3R0bGVTdGF0ZSgp
OwogICAgIHZvaWQgdXBkYXRlSGlkZGVuUGFnZVRocm90dGxpbmdBdXRvSW5jcmVhc2VzKCk7CiAK
LSAgICBib29sIHN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUoQVBJOjpOYXZpZ2F0aW9uJiwg
T3B0aW9uYWw8dWludDY0X3Q+IG1haW5GcmFtZUlELCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xp
ZW50LCBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z01vZGUpOworICAgIGJvb2wgc3VzcGVuZEN1cnJlbnRQYWdlSWZQb3NzaWJsZShBUEk6Ok5hdmln
YXRpb24mLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IG1haW5GcmFtZUlELCBQ
cm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVy
aW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOwogCiAgICAgZW51bSBjbGFzcyBSZXNldFN0
YXRlUmVhc29uIHsKICAgICAgICAgUGFnZUludmFsaWRhdGVkLApAQCAtMTYxMCwzMiArMTYxMCwz
MiBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFBvaW50ZXJVbmxvY2soKTsKICNlbmRpZgog
Ci0gICAgdm9pZCBkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9p
ZCBkaWRDcmVhdGVTdWJmcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZENyZWF0
ZVdpbmRvdyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlmaWVy
JiYpOwotCi0gICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYsIFVSTCYmIHVucmVhY2hhYmxl
VVJMLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0
Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVXNlckRhdGEmKTsK
LSAgICB2b2lkIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBTdHJpbmcmIHVybCwgZG91YmxlIGRlbGF5LCBXZWJDb3JlOjpMb2NrQmFja0Zv
cndhcmRMaXN0KTsKLSAgICB2b2lkIGRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOwotICAgIHZv
aWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZywgY29uc3Qg
VXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wg
ZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNv
bnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYsIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVu
dCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3Vy
ZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRGaW5pc2hEb2N1bWVudExv
YWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0
IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRGaW5pc2hMb2FkRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQg
ZGlkRmFpbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0YSYpOwotICAg
IHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMyX3Qgc2FtZURvY3VtZW50TmF2aWdhdGlvblR5
cGUsIFVSTCYmLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkQ2hhbmdlTWFpbkRvY3Vt
ZW50KHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkRXhwbGljaXRPcGVuRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgVVJMJiYpOwotCi0gICAgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmLCBjb25zdCBVc2VyRGF0YSYpOwot
ICAgIHZvaWQgZGlkRmlyc3RMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBV
c2VyRGF0YSYpOwotICAgIHZvaWQgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJh
bWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZERpc3Bs
YXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVc2VyRGF0
YSYpOwotICAgIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZERldGVjdFhTU0ZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRDcmVhdGVNYWlu
RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZENyZWF0ZVN1YmZy
YW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRDcmVhdGVXaW5kb3co
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlmaWVy
JiYpOworCisgICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiwgVVJMJiYgdW5y
ZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVy
UmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNv
bnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJh
bWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVybCwgZG91YmxlIGRl
bGF5LCBXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0KTsKKyAgICB2b2lkIGRpZENhbmNlbENs
aWVudFJlZGlyZWN0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lk
IGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKKyAgICB2b2lkIGRpZEZhaWxQcm92aXNp
b25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yJiwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEm
KTsKKyAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBm
cmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29u
c3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiwgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50
LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJl
Q29udGVudCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZEZpbmlzaERvY3VtZW50TG9h
ZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBVc2VyRGF0
YSYpOworICAgIHZvaWQgZGlkRmFpbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYs
IGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9y
RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVp
bnQzMl90IHNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLCBVUkwmJiwgY29uc3QgVXNlckRhdGEm
KTsKKyAgICB2b2lkIGRpZENoYW5nZU1haW5Eb2N1bWVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIpOworICAgIHZvaWQgZGlkRXhwbGljaXRPcGVuRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBVUkwmJik7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgY29uc3QgVXNlckRhdGEmKTsKKyAg
ICB2b2lkIGRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBj
b25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0
Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBVc2VyRGF0YSYpOworICAg
IHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZFJ1bkluc2VjdXJlQ29udGVu
dEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgVXNlckRhdGEmKTsKKyAg
ICB2b2lkIGRpZERldGVjdFhTU0ZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29u
c3QgVXNlckRhdGEmKTsKICAgICB2b2lkIG1haW5GcmFtZVBsdWdpbkhhbmRsZXNQYWdlU2NhbGVH
ZXN0dXJlRGlkQ2hhbmdlKGJvb2wpOwotICAgIHZvaWQgZnJhbWVEaWRCZWNvbWVGcmFtZVNldCh1
aW50NjRfdCBmcmFtZUlELCBib29sKTsKKyAgICB2b2lkIGZyYW1lRGlkQmVjb21lRnJhbWVTZXQo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBib29sKTsKICAgICB2b2lkIGRpZFN0YXJ0UHJvZ3Jl
c3MoKTsKICAgICB2b2lkIGRpZENoYW5nZVByb2dyZXNzKGRvdWJsZSk7CiAgICAgdm9pZCBkaWRG
aW5pc2hQcm9ncmVzcygpOwpAQCAtMTY0OCwzNyArMTY0OCwzNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
LCBXZWJGcmFtZVByb3h5JiwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAgRnJhbWVJbmZv
RGF0YSYmLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdl
SUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RC
b2R5LAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25z
ZSwgY29uc3QgVXNlckRhdGEmLCBSZWY8UG9saWN5RGVjaXNpb25TZW5kZXI+JiYpOwotICAgIHZv
aWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKHVpbnQ2NF90IGZyYW1lSUQs
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKKyAg
ICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xp
Y3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlv
bkRhdGEmJiwKICAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdl
SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpG
b3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCB1aW50NjRfdCBs
aXN0ZW5lcklEKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5j
KHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25TeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBpc01h
aW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNo
ZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0
YSYmLAogICAgICAgICBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1E
YXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVkUmVw
bHkmJik7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24odWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgV2ViQ29yZTo6UG9s
aWN5Q2hlY2tJZGVudGlmaWVyLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAorICAgIHZvaWQgZGVj
aWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmJiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQs
IGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBXZWJDb3Jl
OjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwKKyAgICB2b2lk
IGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlm
aWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsCiAgICAgICAgIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNo
b3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlz
dGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIHVuYWJsZVRvSW1wbGVtZW50UG9s
aWN5KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25z
dCBVc2VyRGF0YSYpOworICAgIHZvaWQgdW5hYmxlVG9JbXBsZW1lbnRQb2xpY3koV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgVXNl
ckRhdGEmKTsKICAgICB2b2lkIGJlZ2luU2FmZUJyb3dzaW5nQ2hlY2soY29uc3QgVVJMJiwgYm9v
bCwgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5Jik7CiAKICAgICBXZWJDb250ZW50TW9kZSBl
ZmZlY3RpdmVDb250ZW50TW9kZUFmdGVyQWRqdXN0aW5nUG9saWNpZXMoQVBJOjpXZWJzaXRlUG9s
aWNpZXMmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKIAotICAgIHZvaWQgd2ls
bFN1Ym1pdEZvcm0odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qgc291cmNlRnJhbWVJRCwgY29u
c3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+JiB0ZXh0RmllbGRWYWx1ZXMsIHVp
bnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCB3aWxsU3VibWl0
Rm9ybShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBz
b3VyY2VGcmFtZUlELCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4mIHRl
eHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKIAog
ICAgIHZvaWQgY29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uKFVSTCYmLCBXZWJDb3JlOjpDb250
ZW50UnVsZUxpc3RSZXN1bHRzJiYpOwogCiAgICAgLy8gSGlzdG9yeSBjbGllbnQKLSAgICB2b2lk
IGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3Rv
cmUmLCB1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZFBlcmZvcm1DbGllbnRSZWRpcmVj
dChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlv
blVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRQZXJmb3JtU2VydmVy
UmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVz
dGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkVXBkYXRl
SGlzdG9yeVRpdGxlKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgdXJsLCB1aW50
NjRfdCBmcmFtZUlEKTsKKyAgICB2b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKGNv
bnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwor
ICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJM
U3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0
cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5n
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkVXBkYXRlSGlzdG9yeVRp
dGxlKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgdXJsLCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIpOwogCiAgICAgLy8gVUkgY2xpZW50CiAgICAgdm9pZCBjcmVhdGVOZXdQYWdl
KGNvbnN0IEZyYW1lSW5mb0RhdGEmLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4g
b3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpX
aW5kb3dGZWF0dXJlcyYmLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpDcmVhdGVOZXdQYWdlOjpEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBzaG93UGFn
ZSgpOwotICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYsIE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydDo6RGVsYXllZFJlcGx5JiYpOwotICAgIHZv
aWQgcnVuSmF2YVNjcmlwdENvbmZpcm0odWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6UnVuSmF2YVNjcmlwdENvbmZpcm06OkRlbGF5ZWRSZXBseSYmKTsKLSAgICB2b2lkIHJ1bkph
dmFTY3JpcHRQcm9tcHQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdDo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQg
cnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6UnVuSmF2YVNjcmlwdEFsZXJ0OjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBydW5K
YXZhU2NyaXB0Q29uZmlybShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlJ1bkphdmFTY3JpcHRDb25maXJtOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBydW5K
YXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdDo6RGVsYXllZFJlcGx5JiYpOwog
ICAgIHZvaWQgc2V0U3RhdHVzVGV4dChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIG1vdXNlRGlk
TW92ZU92ZXJFbGVtZW50KFdlYkhpdFRlc3RSZXN1bHREYXRhJiYsIHVpbnQzMl90IG1vZGlmaWVy
cywgVXNlckRhdGEmJik7CiAKQEAgLTE3MDEsMjEgKzE3MDEsMjEgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHJvb3RWaWV3VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld1JlY3QsIE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJvb3RWaWV3VG9TY3JlZW46OkRlbGF5ZWRSZXBseSYmKTsK
ICAgICB2b2lkIGFjY2Vzc2liaWxpdHlTY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JiBzY3JlZW5Qb2ludCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpJbnRQ
b2ludCk+JiYpOwogICAgIHZvaWQgcm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3JlZW4oY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgdmlld1JlY3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29y
ZTo6SW50UmVjdCk+JiYpOwotICAgIHZvaWQgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuQmVmb3JlVW5sb2Fk
Q29uZmlybVBhbmVsOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBydW5CZWZvcmVVbmxvYWRD
b25maXJtUGFuZWwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OlJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDo6RGVsYXllZFJlcGx5JiYpOwogICAg
IHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0
QXR0cmlidXRlcyYpOwogICAgIHZvaWQgcGFnZURpZFNjcm9sbCgpOwotICAgIHZvaWQgcnVuT3Bl
blBhbmVsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYsIGNvbnN0IFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MmKTsKKyAgICB2b2lkIHJ1bk9w
ZW5QYW5lbChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYsIGNvbnN0IFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MmKTsKICAgICB2
b2lkIHNob3dTaGFyZVNoZWV0KGNvbnN0IFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwm
LCBTaGFyZVNoZWV0Q2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBwcmludEZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBleGNlZWRlZERh
dGFiYXNlUXVvdGEodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFt
ZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVp
bnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpFeGNlZWRlZERhdGFiYXNlUXVvdGE6OkRlbGF5ZWRSZXBseSYm
KTsKKyAgICB2b2lkIHByaW50RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWlu
dDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90
IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpFeGNlZWRlZERhdGFiYXNlUXVvdGE6OkRlbGF5ZWRSZXBseSYmKTsKICAg
ICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoY29uc3QgU3RyaW5nJiBv
cmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0
ZXNOZWVkZWQsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlYWNoZWRBcHBsaWNhdGlvbkNhY2hl
T3JpZ2luUXVvdGE6OkRlbGF5ZWRSZXBseSYmKTsKLSAgICB2b2lkIHJlcXVlc3RHZW9sb2NhdGlv
blBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCB1aW50NjRfdCBmcmFt
ZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcik7CisgICAgdm9pZCByZXF1ZXN0R2VvbG9jYXRp
b25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcik7CiAKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQogICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiB1
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKTsKICNlbmRpZgotICAgIHZvaWQgcmVx
dWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2VyTWVk
aWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhU3Ry
ZWFtUmVxdWVzdCYmKTsKLSAgICB2b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVp
bnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luRGF0YSwgY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YSk7CisgICAg
dm9pZCByZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRp
YUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBX
ZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJik7CisgICAgdm9pZCBlbnVtZXJhdGVNZWRpYURl
dmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURvY3VtZW50
T3JpZ2luRGF0YSwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERv
Y3VtZW50T3JpZ2luRGF0YSk7CiAgICAgdm9pZCBiZWdpbk1vbml0b3JpbmdDYXB0dXJlRGV2aWNl
cygpOwogCiAgICAgdm9pZCBydW5Nb2RhbCgpOwpAQCAtMTg5NSw4ICsxODk1LDggQEAgcHJpdmF0
ZToKICAgICB2b2lkIHByaW50RmluaXNoZWRDYWxsYmFjayhjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJiwgQ2FsbGJhY2tJRCk7CiAjZW5kaWYKIAotICAgIHZvaWQgZm9jdXNlZEZyYW1lQ2hh
bmdlZCh1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGZyYW1lU2V0TGFyZ2VzdEZyYW1lQ2hh
bmdlZCh1aW50NjRfdCBmcmFtZUlEKTsKKyAgICB2b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGZyYW1lU2V0TGFyZ2VzdEZyYW1lQ2hh
bmdlZChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogCiAgICAgdm9pZCBkaWRGaW5pc2hMb2Fk
aW5nRGF0YUZvckN1c3RvbUNvbnRlbnRQcm92aWRlcihjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZp
bGVuYW1lLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKTsKIApAQCAtMTk5Nyw3ICsxOTk3LDcg
QEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQotICAg
IHZvaWQgY29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKGNvbnN0IFdlYkNvcmU6OkNv
bnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYsIHVpbnQ2NF90IGZyYW1lSUQpOworICAgIHZvaWQg
Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRG
aWx0ZXJVbmJsb2NrSGFuZGxlciYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAjZW5kaWYK
IAogICAgIHZvaWQgdHJ5UmVsb2FkQWZ0ZXJQcm9jZXNzVGVybWluYXRpb24oKTsKQEAgLTIxMTAs
NyArMjExMCw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wgaXNJbkhhcmR3YXJlS2V5Ym9h
cmRNb2RlKCk7CiAjZW5kaWYKIAotICAgIHZvaWQgbWFrZVN0b3JhZ2VTcGFjZVJlcXVlc3QodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3Vy
cmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnRE
YXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKHVpbnQ2NF90KT4mJik7CisgICAgdm9pZCBtYWtlU3RvcmFnZVNwYWNlUmVxdWVzdChXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2
NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBj
dXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCh1aW50NjRfdCk+JiYpOwogCiAgICAgV2Vha1B0cjxQYWdlQ2xpZW50PiBtX3Bh
Z2VDbGllbnQ7CiAgICAgUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+IG1fY29uZmlndXJhdGlv
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgppbmRleCBlY2FkOTVlNDZiNTQzYWM5MTUwNDBlNjBlZjQwNGJlZDY0MjY3MTYxLi42NDhhMmY0
MjQ1MWZjNjVmOWE2MTU1NjNhYTAwY2RjNmRmOTgwZmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNSw5ICsyNSw5IEBAIG1l
c3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgQ3JlYXRlTmV3UGFnZShzdHJ1Y3QgV2ViS2l0
OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QgcmVxdWVzdCwgc3RydWN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzIHdpbmRvd0ZlYXR1
cmVzLCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9u
RGF0YSkgLT4gKE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBuZXdQYWdlSUQsIE9w
dGlvbmFsPFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycz4gbmV3UGFnZVBhcmFtZXRl
cnMpIFN5bmNocm9ub3VzCiAgICAgU2hvd1BhZ2UoKQogICAgIENsb3NlUGFnZShib29sIHN0b3BS
ZXNwb25zaXZlbmVzc1RpbWVyKQotICAgIFJ1bkphdmFTY3JpcHRBbGVydCh1aW50NjRfdCBmcmFt
ZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmln
aW4sIFN0cmluZyBtZXNzYWdlKSAtPiAoKSBTeW5jaHJvbm91cwotICAgIFJ1bkphdmFTY3JpcHRD
b25maXJtKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3NhZ2UpIC0+IChib29sIHJlc3VsdCkg
U3luY2hyb25vdXMKLSAgICBSdW5KYXZhU2NyaXB0UHJvbXB0KHVpbnQ2NF90IGZyYW1lSUQsIHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgU3Ry
aW5nIG1lc3NhZ2UsIFN0cmluZyBkZWZhdWx0VmFsdWUpIC0+IChTdHJpbmcgcmVzdWx0KSBTeW5j
aHJvbm91cworICAgIFJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5
T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSkgLT4gKCkgU3luY2hyb25vdXMKKyAgICBSdW5KYXZhU2Ny
aXB0Q29uZmlybShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBTdHJpbmcgbWVzc2Fn
ZSkgLT4gKGJvb2wgcmVzdWx0KSBTeW5jaHJvbm91cworICAgIFJ1bkphdmFTY3JpcHRQcm9tcHQo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBk
ZWZhdWx0VmFsdWUpIC0+IChTdHJpbmcgcmVzdWx0KSBTeW5jaHJvbm91cwogICAgIE1vdXNlRGlk
TW92ZU92ZXJFbGVtZW50KHN0cnVjdCBXZWJLaXQ6OldlYkhpdFRlc3RSZXN1bHREYXRhIGhpdFRl
c3RSZXN1bHREYXRhLCB1aW50MzJfdCBtb2RpZmllcnMsIFdlYktpdDo6VXNlckRhdGEgdXNlckRh
dGEpCiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKQEAgLTQ3LDggKzQ3LDggQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBTZXRUb29sVGlwKFN0cmluZyB0b29sVGlw
KQogICAgIFNldEZvY3VzKGJvb2wgZm9jdXNlZCkKICAgICBUYWtlRm9jdXModWludDMyX3QgZGly
ZWN0aW9uKQotICAgIEZvY3VzZWRGcmFtZUNoYW5nZWQodWludDY0X3QgZnJhbWVJRCkKLSAgICBG
cmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQodWludDY0X3QgZnJhbWVJRCkKKyAgICBGb2N1c2Vk
RnJhbWVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQorICAgIEZyYW1l
U2V0TGFyZ2VzdEZyYW1lQ2hhbmdlZChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkK
ICAgICBTZXRSZW5kZXJUcmVlU2l6ZSh1aW50NjRfdCB0cmVlU2l6ZSkKICAgICBTZXRUb29sYmFy
c0FyZVZpc2libGUoYm9vbCB0b29sYmFyc0FyZVZpc2libGUpCiAgICAgR2V0VG9vbGJhcnNBcmVW
aXNpYmxlKCkgLT4gKGJvb2wgdG9vbGJhcnNBcmVWaXNpYmxlKSBTeW5jaHJvbm91cwpAQCAtNjks
MTEgKzY5LDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgSGlkZVZhbGlkYXRp
b25NZXNzYWdlKCkKICNlbmRpZgogCi0gICAgUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKHVp
bnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3NhZ2UpIC0+IChib29sIHNob3VsZENsb3NlKSBTeW5j
aHJvbm91cworICAgIFJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFt
ZVNlY3VyaXR5T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSkgLT4gKGJvb2wgc2hvdWxkQ2xvc2UpIFN5
bmNocm9ub3VzCiAgICAgUGFnZURpZFNjcm9sbCgpCi0gICAgUnVuT3BlblBhbmVsKHVpbnQ2NF90
IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0
eU9yaWdpbiwgc3RydWN0IFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MgcGFyYW1ldGVycykK
KyAgICBSdW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVj
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgc3RydWN0
IFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MgcGFyYW1ldGVycykKICAgICBTaG93U2hhcmVT
aGVldChzdHJ1Y3QgV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCBzaGFyZURhdGEsIHVp
bnQ2NF90IGNhbGxiYWNrSUQpCi0gICAgUHJpbnRGcmFtZSh1aW50NjRfdCBmcmFtZUlEKSAtPiAo
KSBTeW5jaHJvbm91cworICAgIFByaW50RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQpIC0+ICgpIFN5bmNocm9ub3VzCiAgICAgUnVuTW9kYWwoKQogICAgIE5vdGlmeVNjcm9s
bGVyVGh1bWJJc1Zpc2libGVJblJlY3QoV2ViQ29yZTo6SW50UmVjdCBzY3JvbGxlclRodW1iKQog
ICAgIFJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2UoaW50MzJfdCBuZXdTdHlsZSkK
QEAgLTEwMywxMSArMTAzLDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjZW5kaWYK
IAogICAgICMgUG9saWN5IG1lc3NhZ2VzCi0gICAgRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UodWlu
dDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNl
Y3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBib29sIGNhblNo
b3dNSU1FVHlwZSwgU3RyaW5nIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklE
LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb25Bc3luYyh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0
IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVj
dCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25h
bDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEs
IHVpbnQ2NF90IGxpc3RlbmVySUQpCi0gICAgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
blN5bmModWludDY0X3QgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgc3RydWN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25E
YXRhLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0
YSwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRh
IHVzZXJEYXRhKSAtPiAoV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNr
SWRlbnRpZmllciwgZW51bTp1aW50OF90IFdlYkNvcmU6OlBvbGljeUFjdGlvbiBwb2xpY3lBY3Rp
b24sIHVpbnQ2NF90IG5ld05hdmlnYXRpb25JRCwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2Fk
SUQsIE9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0YT4gd2Vic2l0ZVBvbGljaWVz
KSBTeW5jaHJvbm91cwotICAgIERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRf
dCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJp
dHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50
aWZpZXIsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rp
b25EYXRhLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIGZyYW1lTmFt
ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBV
bmFibGVUb0ltcGxlbWVudFBvbGljeSh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yIGVycm9yLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERlY2lkZVBvbGlj
eUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBv
bGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBTdHJpbmcgZG93bmxv
YWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRh
dGEpCisgICAgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
IGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xp
Y3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6
TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6
OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBJ
UEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlIHJlZGlyZWN0UmVzcG9uc2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEsIHVpbnQ2NF90
IGxpc3RlbmVySUQpCisgICAgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIHN0cnVjdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9u
QWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1l
SW5mb0RhdGEsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1Bh
Z2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJv
ZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpV
c2VyRGF0YSB1c2VyRGF0YSkgLT4gKFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xp
Y3lDaGVja0lkZW50aWZpZXIsIGVudW06dWludDhfdCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9s
aWN5QWN0aW9uLCB1aW50NjRfdCBuZXdOYXZpZ2F0aW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBk
b3dubG9hZElELCBPcHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQ
b2xpY2llcykgU3luY2hyb25vdXMKKyAgICBEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24o
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFj
dGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0LCBTdHJpbmcgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVz
ZXJEYXRhIHVzZXJEYXRhKQorICAgIFVuYWJsZVRvSW1wbGVtZW50UG9saWN5KFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBXZWJL
aXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQogCiAgICAgIyBQcm9ncmVzcyBtZXNzYWdlcwogICAgIERp
ZENoYW5nZVByb2dyZXNzKGRvdWJsZSB2YWx1ZSkKQEAgLTExNyw1MSArMTE3LDUxIEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgU2V0TmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcyhi
b29sIG5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3MpCiAKICAgICAjIEZyYW1lIGxpZmV0aW1lIG1l
c3NhZ2VzCi0gICAgRGlkQ3JlYXRlTWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCi0gICAgRGlk
Q3JlYXRlU3ViZnJhbWUodWludDY0X3QgZnJhbWVJRCkKKyAgICBEaWRDcmVhdGVNYWluRnJhbWUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCisgICAgRGlkQ3JlYXRlU3ViZnJhbWUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAKLSAgICBEaWRDcmVhdGVXaW5kb3co
dWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXIg
d2luZG93SWRlbnRpZmllcikKKyAgICBEaWRDcmVhdGVXaW5kb3coV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlmaWVyIHdp
bmRvd0lkZW50aWZpZXIpCiAKICAgICAjIEZyYW1lIGxvYWQgbWVzc2FnZXMKLSAgICBEaWRTdGFy
dFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgVVJMIHVybCwgVVJMIHVucmVhY2hhYmxlVVJMLCBXZWJLaXQ6OlVzZXJEYXRhIHVz
ZXJEYXRhKQotICAgIERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAg
V2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFN0cmlu
ZyB1cmwsIGRvdWJsZSBkZWxheSwgZW51bTpib29sIFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExp
c3QgbG9ja0JhY2tGb3J3YXJkTGlzdCkKLSAgICBEaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQpCi0gICAgRGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCB1cmwpCi0gICAg
RGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBTdHJpbmcgcHJvdmlzaW9uYWxVUkwsIFdlYkNvcmU6OlJlc291cmNlRXJy
b3IgZXJyb3IsIGVudW06Ym9vbCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250
aW51ZUxvYWRpbmcsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlkQ29tbWl0TG9h
ZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgU3RyaW5n
IG1pbWVUeXBlLCBib29sIGhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgbG9hZFR5
cGUsIFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFp
bnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBm
b3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAg
RGlkRmFpbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6VXNlckRhdGEgdXNlckRh
dGEpCi0gICAgRGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERp
ZEZpbmlzaExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlkRmlyc3RMYXlvdXRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZEZp
cnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktp
dDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFt
ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBVUkwgdXJsLCBVUkwgdW5yZWFjaGFibGVVUkwsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEp
CisgICAgRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYktpdDo6VXNlckRhdGEgdXNlckRh
dGEpCisgICAgV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgdXJsLCBkb3VibGUgZGVsYXksIGVudW06Ym9vbCBX
ZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QpCisgICAgRGlk
Q2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCkKKyAgICBEaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCB1cmwpCisgICAg
RGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlP
cmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgU3RyaW5nIHByb3Zpc2lvbmFsVVJMLCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBlbnVtOmJvb2wgV2ViQ29yZTo6V2lsbENvbnRpbnVl
TG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQor
ICAgIERpZENvbW1pdExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBTdHJpbmcgbWltZVR5cGUsIGJvb2wgaGFzQ3VzdG9t
Q29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBsb2FkVHlwZSwgV2ViQ29yZTo6Q2VydGlmaWNhdGVJ
bmZvIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25h
bDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwg
V2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWRGYWlsTG9hZEZvckZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNv
cmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAg
RGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkK
KyAgICBEaWRGaW5pc2hMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAg
ICBEaWRGaXJzdExheW91dEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZEZpcnN0VmlzdWFsbHlOb25FbXB0
eUxheW91dEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJLaXQ6
OlVzZXJEYXRhIHVzZXJEYXRhKQogICAgIERpZFJlYWNoTGF5b3V0TWlsZXN0b25lKE9wdGlvblNl
dDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+IGxheW91dE1pbGVzdG9uZXMpCi0gICAgRGlkUmVj
ZWl2ZVRpdGxlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHRpdGxlLCBXZWJLaXQ6
OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZFJ1
bkluc2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6VXNlckRh
dGEgdXNlckRhdGEpCi0gICAgRGlkRGV0ZWN0WFNTRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
V2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9u
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50MzJf
dCB0eXBlLCBVUkwgdXJsLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZENoYW5n
ZU1haW5Eb2N1bWVudCh1aW50NjRfdCBmcmFtZUlEKQotICAgIERpZEV4cGxpY2l0T3BlbkZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIFVSTCB1cmwpCisgICAgRGlkUmVjZWl2ZVRpdGxlRm9yRnJh
bWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyB0aXRsZSwgV2ViS2l0
OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJh
bWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYktpdDo6VXNlckRhdGEgdXNl
ckRhdGEpCisgICAgRGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkRGV0
ZWN0WFNTRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYktpdDo6
VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1l
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IHVpbnQzMl90IHR5cGUsIFVSTCB1cmwsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAg
RGlkQ2hhbmdlTWFpbkRvY3VtZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQor
ICAgIERpZEV4cGxpY2l0T3BlbkZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBVUkwgdXJsKQogICAgIERpZERlc3Ryb3lOYXZpZ2F0aW9uKHVpbnQ2NF90IG5hdmlnYXRp
b25JRCkKIAogICAgIEhhc0luc2VjdXJlQ29udGVudCgpIC0+IChlbnVtOmJvb2wgV2ViQ29yZTo6
SGFzSW5zZWN1cmVDb250ZW50IGhhc0luc2VjdXJlQ29udGVudCkgU3luY2hyb25vdXMKIAogICAg
IE1haW5GcmFtZVBsdWdpbkhhbmRsZXNQYWdlU2NhbGVHZXN0dXJlRGlkQ2hhbmdlKGJvb2wgbWFp
bkZyYW1lUGx1Z2luSGFuZGxlc1BhZ2VTY2FsZUdlc3R1cmUpCiAKLSAgICBGcmFtZURpZEJlY29t
ZUZyYW1lU2V0KHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgdmFsdWUpCisgICAgRnJhbWVEaWRCZWNv
bWVGcmFtZVNldChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCB2YWx1ZSkK
IAogICAgICMgSGlzdG9yeSBjbGllbnQgbWVzc2FnZXMuCi0gICAgRGlkTmF2aWdhdGVXaXRoTmF2
aWdhdGlvbkRhdGEoc3RydWN0IFdlYktpdDo6V2ViTmF2aWdhdGlvbkRhdGFTdG9yZSBzdG9yZSwg
dWludDY0X3QgZnJhbWVJRCkKLSAgICBEaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoU3RyaW5nIHNv
dXJjZVVSTFN0cmluZywgU3RyaW5nIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFt
ZUlEKQotICAgIERpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChTdHJpbmcgc291cmNlVVJMU3RyaW5n
LCBTdHJpbmcgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpCi0gICAgRGlk
VXBkYXRlSGlzdG9yeVRpdGxlKFN0cmluZyB0aXRsZSwgU3RyaW5nIHVybCwgdWludDY0X3QgZnJh
bWVJRCkKKyAgICBEaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShzdHJ1Y3QgV2ViS2l0OjpX
ZWJOYXZpZ2F0aW9uRGF0YVN0b3JlIHN0b3JlLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCkKKyAgICBEaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoU3RyaW5nIHNvdXJjZVVSTFN0cmlu
ZywgU3RyaW5nIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCkKKyAgICBEaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoU3RyaW5nIHNvdXJjZVVSTFN0
cmluZywgU3RyaW5nIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCkKKyAgICBEaWRVcGRhdGVIaXN0b3J5VGl0bGUoU3RyaW5nIHRpdGxlLCBTdHJp
bmcgdXJsLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIAogICAgICMgQ3VzdG9t
IHJlcHJlc2VudGF0aW9ucwogICAgIERpZEZpbmlzaExvYWRpbmdEYXRhRm9yQ3VzdG9tQ29udGVu
dFByb3ZpZGVyKFN0cmluZyBzdWdnZXN0ZWRGaWxlbmFtZSwgSVBDOjpEYXRhUmVmZXJlbmNlIGRh
dGEpCiAKICAgICAjIEZvcm1zIG1lc3NhZ2VzCi0gICAgV2lsbFN1Ym1pdEZvcm0odWludDY0X3Qg
ZnJhbWVJRCwgdWludDY0X3Qgc291cmNlRnJhbWVJRCwgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcs
IFN0cmluZz4+IHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpV
c2VyRGF0YSB1c2VyRGF0YSkKKyAgICBXaWxsU3VibWl0Rm9ybShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIHNvdXJjZUZyYW1lSUQsIFZl
Y3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXh0RmllbGRWYWx1ZXMsIHVpbnQ2NF90
IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAKICAgICAjIENhbGxiYWNr
IG1lc3NhZ2VzCiAgICAgVm9pZENhbGxiYWNrKFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lE
KQpAQCAtMjc1LDE4ICsyNzUsMTggQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRp
ZgogCiAgICAgIyBEYXRhYmFzZSBtZXNzYWdlcwotICAgIEV4Y2VlZGVkRGF0YWJhc2VRdW90YSh1
aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllciwgU3RyaW5nIGRhdGFiYXNl
TmFtZSwgU3RyaW5nIGRhdGFiYXNlRGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwg
dWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2Fn
ZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSkgLT4gKHVpbnQ2NF90IG5ld1F1b3RhKSBTeW5jaHJv
bm91cworICAgIEV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIsIFN0cmluZyBkYXRhYmFzZU5hbWUsIFN0
cmluZyBkYXRhYmFzZURpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90
IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2
NF90IGV4cGVjdGVkVXNhZ2UpIC0+ICh1aW50NjRfdCBuZXdRdW90YSkgU3luY2hyb25vdXMKIAog
ICAgICMgQXBwbGljYXRpb24gY2FjaGUgbWVzc2FnZXMKICAgICBSZWFjaGVkQXBwbGljYXRpb25D
YWNoZU9yaWdpblF1b3RhKFN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCBjdXJyZW50
UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQpIC0+ICh1aW50NjRfdCBuZXdRdW90YSkg
U3luY2hyb25vdXMKIAogICAgICMgR2VvbG9jYXRpb24gbWVzc2FnZXMKLSAgICBSZXF1ZXN0R2Vv
bG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgdWludDY0
X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCisgICAgUmVxdWVzdEdlb2xvY2F0
aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKICAgICAKICNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgICMgTWVkaWFTdGVhbSBtZXNzYWdlcwotICAgIFJl
cXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVp
bnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6
TWVkaWFTdHJlYW1SZXF1ZXN0IHJlcXVlc3QpCi0gICAgRW51bWVyYXRlTWVkaWFEZXZpY2VzRm9y
RnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVy
LCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcExldmVsRG9jdW1lbnRPcmln
aW5JZGVudGlmaWVyKQorICAgIFJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWlu
dDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1
Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRl
bnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCBy
ZXF1ZXN0KQorICAgIEVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJN
ZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklk
ZW50aWZpZXIpCiAgICAgQmVnaW5Nb25pdG9yaW5nQ2FwdHVyZURldmljZXMoKQogI2VuZGlmCiAK
QEAgLTQ3Myw3ICs0NzMsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCi0gICAgQ29udGVudEZpbHRlckRpZEJsb2Nr
TG9hZEZvckZyYW1lKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciB1bmJsb2Nr
SGFuZGxlciwgdWludDY0X3QgZnJhbWVJRCkKKyAgICBDb250ZW50RmlsdGVyRGlkQmxvY2tMb2Fk
Rm9yRnJhbWUoV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyIHVuYmxvY2tIYW5k
bGVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKICNlbmRpZgogCiAgICAgSXNQ
bGF5aW5nTWVkaWFEaWRDaGFuZ2UodW5zaWduZWQgc3RhdGUsIHVpbnQ2NF90IHNvdXJjZUVsZW1l
bnRJRCkKQEAgLTUzOSw3ICs1MzksNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAg
IExvYWRTeW5jaHJvbm91c1VSTFNjaGVtZVRhc2soc3RydWN0IFdlYktpdDo6VVJMU2NoZW1lVGFz
a1BhcmFtZXRlcnMgcGFyYW1ldGVycykgLT4gKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVz
cG9uc2UsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFZlY3RvcjxjaGFyPiBkYXRhKSBT
eW5jaHJvbm91cwogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSAgICBTaG91bGRB
bGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKHVpbnQ2NF90IGZyYW1lSUQsIHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luLCBib29sIG1heVByb21wdCkg
LT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlz
c2lvblN0YXRlIHBlcm1pc3Npb25TdGF0ZSkgQXN5bmMKKyAgICBTaG91bGRBbGxvd0RldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbiwgYm9vbCBtYXlQcm9t
cHQpIC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBl
cm1pc3Npb25TdGF0ZSBwZXJtaXNzaW9uU3RhdGUpIEFzeW5jCiAjZW5kaWYKIAogI2lmIEVOQUJM
RShBVFRBQ0hNRU5UX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcAppbmRleCBlMTY5MTM3ZjUzODlkMzBiYjhiMTFiM2E4ZTFmNTBjYTQzYWEwNmVk
Li45NWI1ODYzOWYzYzQwY2M2MzAwYTQ0ZjJjMDQ0OWVmZmVmOGFkMTM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTgyNywyNSArODI3LDI1IEBA
IHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVy
KiBsYXVuY2hlciwgSVBDOjpDb25uZWN0CiAjZW5kaWYKIH0KIAotV2ViRnJhbWVQcm94eSogV2Vi
UHJvY2Vzc1Byb3h5Ojp3ZWJGcmFtZSh1aW50NjRfdCBmcmFtZUlEKSBjb25zdAorV2ViRnJhbWVQ
cm94eSogV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkg
Y29uc3QKIHsKICAgICBpZiAoIVdlYkZyYW1lUHJveHlNYXA6OmlzVmFsaWRLZXkoZnJhbWVJRCkp
Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHJldHVy
biBtX2ZyYW1lTWFwLmdldChmcmFtZUlEKTsKIH0KIAotYm9vbCBXZWJQcm9jZXNzUHJveHk6OmNh
bkNyZWF0ZUZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpIGNvbnN0Citib29sIFdlYlByb2Nlc3NQcm94
eTo6Y2FuQ3JlYXRlRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIFdlYkZyYW1lUHJveHlNYXA6OmlzVmFsaWRLZXkoZnJhbWVJRCkgJiYgIW1fZnJhbWVN
YXAuY29udGFpbnMoZnJhbWVJRCk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpmcmFtZUNy
ZWF0ZWQodWludDY0X3QgZnJhbWVJRCwgV2ViRnJhbWVQcm94eSYgZnJhbWVQcm94eSkKK3ZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpmcmFtZUNyZWF0ZWQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdl
YkZyYW1lUHJveHkmIGZyYW1lUHJveHkpCiB7CiAgICAgbV9mcmFtZU1hcC5zZXQoZnJhbWVJRCwg
JmZyYW1lUHJveHkpOwogfQogCi12b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRGVzdHJveUZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRGVzdHJveUZyYW1l
KEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIC8vIElmIHRoZSBwYWdlIGlzIGNsb3Nl
ZCBiZWZvcmUgaXQgaGFzIGhhZCB0aGUgY2hhbmNlIHRvIHNlbmQgdGhlIERpZENyZWF0ZU1haW5G
cmFtZSBtZXNzYWdlCiAgICAgLy8gYmFjayB0byB0aGUgVUlQcm9jZXNzLCB0aGVuIHRoZSBmcmFt
ZURlc3Ryb3llZCBtZXNzYWdlIHdpbGwgc3RpbGwgYmUgcmVjZWl2ZWQgYmVjYXVzZSBpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCAzMDA5NmRkMzA4NTQ4
Yjg5MDQ5YzgzNTEwZWVhNzFiYjA1OTc2ZmZjLi4xOGY0ODgwYTBiYjJkNGQ4M2QyZmI2YzU5N2M4
N2M3Y2RkNmVjODk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIlZpc2libGVXZWJQYWdlQ291bnRlci5oIgog
I2luY2x1ZGUgIldlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9NZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvTWVzc2FnZVBvcnRJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
YWdlSWRlbnRpZmllci5oPgpAQCAtOTcsNyArOTgsNyBAQCBlbnVtIGNsYXNzIEFsbG93UHJvY2Vz
c0NhY2hpbmcgeyBObywgWWVzIH07CiAKIGNsYXNzIFdlYlByb2Nlc3NQcm94eSA6IHB1YmxpYyBB
dXhpbGlhcnlQcm9jZXNzUHJveHksIHB1YmxpYyBSZXNwb25zaXZlbmVzc1RpbWVyOjpDbGllbnQs
IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxXZWJQcm9jZXNzUHJveHk+LCBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8V2ViUHJvY2Vzc1Byb3h5PiwgcHJpdmF0ZSBQcm9jZXNzVGhyb3R0bGVyQ2xp
ZW50IHsKIHB1YmxpYzoKLSAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJG
cmFtZVByb3h5Pj4gV2ViRnJhbWVQcm94eU1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8V2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBSZWZQdHI8V2ViRnJhbWVQcm94eT4+IFdlYkZyYW1lUHJveHlN
YXA7CiAgICAgdHlwZWRlZiBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJQYWdl
UHJveHkqPiBXZWJQYWdlUHJveHlNYXA7CiAgICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBS
ZWZQdHI8QVBJOjpVc2VySW5pdGlhdGVkQWN0aW9uPj4gVXNlckluaXRpYXRlZEFjdGlvbk1hcDsK
IApAQCAtMTY0LDkgKzE2NSw5IEBAIHB1YmxpYzoKICAgICBSZXNwb25zaXZlbmVzc1RpbWVyJiBy
ZXNwb25zaXZlbmVzc1RpbWVyKCkgeyByZXR1cm4gbV9yZXNwb25zaXZlbmVzc1RpbWVyOyB9CiAg
ICAgYm9vbCBpc1Jlc3BvbnNpdmUoKSBjb25zdDsKIAotICAgIFdlYkZyYW1lUHJveHkqIHdlYkZy
YW1lKHVpbnQ2NF90KSBjb25zdDsKLSAgICBib29sIGNhbkNyZWF0ZUZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQpIGNvbnN0OwotICAgIHZvaWQgZnJhbWVDcmVhdGVkKHVpbnQ2NF90LCBXZWJGcmFtZVBy
b3h5Jik7CisgICAgV2ViRnJhbWVQcm94eSogd2ViRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyKSBjb25zdDsKKyAgICBib29sIGNhbkNyZWF0ZUZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllcikgY29uc3Q7CisgICAgdm9pZCBmcmFtZUNyZWF0ZWQoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBXZWJGcmFtZVByb3h5Jik7CiAgICAgdm9pZCBkaXNjb25uZWN0RnJhbWVzRnJvbVBhZ2Uo
V2ViUGFnZVByb3h5Kik7IC8vIEluY2x1ZGluZyBtYWluIGZyYW1lLgogICAgIHNpemVfdCBmcmFt
ZUNvdW50SW5QYWdlKFdlYlBhZ2VQcm94eSopIGNvbnN0OyAvLyBJbmNsdWRpbmcgbWFpbiBmcmFt
ZS4KIApAQCAtMzM1LDcgKzMzNiw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgLy8gSVBD
IG1lc3NhZ2UgaGFuZGxlcnMuCiAgICAgdm9pZCB1cGRhdGVCYWNrRm9yd2FyZEl0ZW0oY29uc3Qg
QmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlJik7Ci0gICAgdm9pZCBkaWREZXN0cm95RnJhbWUodWlu
dDY0X3QpOworICAgIHZvaWQgZGlkRGVzdHJveUZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
cik7CiAgICAgdm9pZCBkaWREZXN0cm95VXNlckdlc3R1cmVUb2tlbih1aW50NjRfdCk7CiAKICAg
ICBib29sIGNhbkJlQWRkZWRUb1dlYlByb2Nlc3NDYWNoZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGYz
ZDVlOTMxZTZkZWU5MDJhNGFjNWU1ZmM1YjEwZGQ0NjE1YjE1ZDAuLjMyYmFmZWE5ZTEwOTU4YzI1
Y2QxOTRkYTE4NDUzNmFkMDkzZjc1MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTIyLDcgKzIyLDcgQEAKIAogbWVz
c2FnZXMgLT4gV2ViUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBVcGRhdGVCYWNr
Rm9yd2FyZEl0ZW0oc3RydWN0IFdlYktpdDo6QmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlIGJhY2tG
b3J3YXJkTGlzdEl0ZW1TdGF0ZSkKLSAgICBEaWREZXN0cm95RnJhbWUodWludDY0X3QgZnJhbWVJ
RCkgCisgICAgRGlkRGVzdHJveUZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
KSAKIAogICAgIERpZERlc3Ryb3lVc2VyR2VzdHVyZVRva2VuKHVpbnQ2NF90IHVzZXJHZXN0dXJl
VG9rZW5JRCkgCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcu
bW0KaW5kZXggNjgxMWU4N2E0YTQyMTAwNWJkOTRhN2FjMjE2NTQzZWNjMDBhNzdmYy4uYzI5OTIx
NDU4YWYwMWZkOTdhNDAwOTJjNzEzZjY3YzQxZmY3N2U3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KQEAgLTcwMSw5ICs3MDEsOSBAQCAtIChOU1VJ
bnRlZ2VyKV93a19wYWdlQ291bnRGb3JQcmludEZvcm1hdHRlcjooX1dLV2ViVmlld1ByaW50Rm9y
bWF0dGVyICopcHJpbnRGbwogICAgIGlmIChfaXNQcmludGluZ1RvUERGKQogICAgICAgICByZXR1
cm4gMDsKIAotICAgIHVpbnQ2NF90IGZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQ7CiAgICAgaWYgKF9XS0ZyYW1lSGFuZGxlICpoYW5kbGUgPSBwcmludEZvcm1h
dHRlci5mcmFtZVRvUHJpbnQpCi0gICAgICAgIGZyYW1lSUQgPSBoYW5kbGUuX2ZyYW1lSUQ7Cisg
ICAgICAgIGZyYW1lSUQgPSBXZWJDb3JlOjpmcmFtZUlkZW50aWZpZXJGcm9tSUQoaGFuZGxlLl9m
cmFtZUlEKTsKICAgICBlbHNlIGlmIChhdXRvIG1haW5GcmFtZSA9IF9wYWdlLT5tYWluRnJhbWUo
KSkKICAgICAgICAgZnJhbWVJRCA9IG1haW5GcmFtZS0+ZnJhbWVJRCgpOwogICAgIGVsc2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IGIw
MjgyNDg5MjAwM2EwNDk4OTI5ZTcwNmE1OTA0NTlhNGY4NzFhY2QuLjgyZDM1NDIxN2I3MDY0MjAx
ZTNkN2IwNzZlNWIwNTliOTYwMTFjZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtMTA2Niw3ICsxMDY2LDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmhhbmRsZVNtYXJ0TWFnbmlmaWNhdGlvbkluZm9ybWF0aW9uRm9yUG90ZW50aWFsVGFw
KHVpbnQ2NF90IHIKICAgICBwYWdlQ2xpZW50KCkuaGFuZGxlU21hcnRNYWduaWZpY2F0aW9uSW5m
b3JtYXRpb25Gb3JQb3RlbnRpYWxUYXAocmVxdWVzdElELCByZW5kZXJSZWN0LCBmaXRFbnRpcmVS
ZWN0LCB2aWV3cG9ydE1pbmltdW1TY2FsZSwgdmlld3BvcnRNYXhpbXVtU2NhbGUpOwogfQogCi11
aW50MzJfdCBXZWJQYWdlUHJveHk6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERG
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBEcmF3VG9QREZD
YWxsYmFjazo6Q2FsbGJhY2tGdW5jdGlvbiYmIGNhbGxiYWNrKQordWludDMyX3QgV2ViUGFnZVBy
b3h5Ojpjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERihGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIERyYXdUb1BERkNhbGxiYWNrOjpD
YWxsYmFja0Z1bmN0aW9uJiYgY2FsbGJhY2spCiB7CiAgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2Vz
cygpKSB7CiAgICAgICAgIGNhbGxiYWNrKElQQzo6RGF0YVJlZmVyZW5jZSgpLCBDYWxsYmFja0Jh
c2U6OkVycm9yOjpPd25lcldhc0ludmFsaWRhdGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eS5jcHAKaW5kZXggZTYzNTNjY2RkNTRhZGZhNWFhNTkwNWI4OTczMDM0YmMxY2U5NTZmMi4u
N2Y1N2ZmODBhY2QyYjk1MTE1OTEwZjU5NTk0ZDFkZmNmNDM2ZDNjMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21h
dGlvblNlc3Npb25Qcm94eS5jcHAKQEAgLTE0Myw3ICsxNDMsNyBAQCBzdGF0aWMgSlNWYWx1ZVJl
ZiBldmFsdWF0ZUphdmFTY3JpcHRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmpl
Y3RSZWYgZgogICAgIGlmICghYXV0b21hdGlvblNlc3Npb25Qcm94eSkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogCi0gICAgdWludDY0X3QgZnJhbWVJRCA9
IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbik7CisgICAg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQgPSBXZWJDb3JlOjpmcmFtZUlkZW50aWZp
ZXJGcm9tSUQoSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9u
KSk7CiAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBh
cmd1bWVudHNbMV0sIGV4Y2VwdGlvbik7CiAgICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZihKU1Zh
bHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIGFyZ3VtZW50c1syXSwgZXhjZXB0aW9uKSk7CiAKQEAg
LTIyMCw3ICsyMjAsNyBAQCBXZWJDb3JlOjpFbGVtZW50KiBXZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5OjplbGVtZW50Rm9yTm9kZUhhbmRsZShXZWJGcmFtZSYgZnJhbQogCiB2b2lkIFdlYkF1dG9t
YXRpb25TZXNzaW9uUHJveHk6OmRpZENsZWFyV2luZG93T2JqZWN0Rm9yRnJhbWUoV2ViRnJhbWUm
IGZyYW1lKQogewotICAgIHVpbnQ2NF90IGZyYW1lSUQgPSBmcmFtZS5mcmFtZUlEKCk7CisgICAg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQgPSBmcmFtZS5mcmFtZUlEKCk7CiAgICAg
aWYgKEpTT2JqZWN0UmVmIHNjcmlwdE9iamVjdCA9IG1fd2ViRnJhbWVTY3JpcHRPYmplY3RNYXAu
dGFrZShmcmFtZUlEKSkKICAgICAgICAgSlNWYWx1ZVVucHJvdGVjdChmcmFtZS5qc0NvbnRleHQo
KSwgc2NyaXB0T2JqZWN0KTsKIApAQCAtMjMyLDcgKzIzMiw3IEBAIHZvaWQgV2ViQXV0b21hdGlv
blNlc3Npb25Qcm94eTo6ZGlkQ2xlYXJXaW5kb3dPYmplY3RGb3JGcmFtZShXZWJGcmFtZSYgZnJh
bWUpCiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpEaWRFdmFsdWF0ZUph
dmFTY3JpcHRGdW5jdGlvbihjYWxsYmFja0lELCBlcnJvck1lc3NhZ2UsIGVycm9yVHlwZSksIDAp
OwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmV2YWx1YXRlSmF2YVNjcmlw
dEZ1bmN0aW9uKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgU3RyaW5nJiBmdW5jdGlvbiwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRzLCBib29s
IGV4cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJndW1lbnQsIGludCBjYWxsYmFja1RpbWVvdXQsIHVp
bnQ2NF90IGNhbGxiYWNrSUQpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmV2YWx1
YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgZnVuY3Rpb24sIFZl
Y3RvcjxTdHJpbmc+IGFyZ3VtZW50cywgYm9vbCBleHBlY3RzSW1wbGljaXRDYWxsYmFja0FyZ3Vt
ZW50LCBpbnQgY2FsbGJhY2tUaW1lb3V0LCB1aW50NjRfdCBjYWxsYmFja0lEKQogewogICAgIFdl
YlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAg
ICAgaWYgKCFwYWdlKSB7CkBAIC0yNjMsNyArMjYzLDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvblByb3h5OjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRp
ZmkKICAgICAgICAgdG9KU1ZhbHVlKGNvbnRleHQsIGZ1bmN0aW9uKSwKICAgICAgICAgdG9KU0Fy
cmF5KGNvbnRleHQsIGFyZ3VtZW50cywgdG9KU1ZhbHVlLCAmZXhjZXB0aW9uKSwKICAgICAgICAg
SlNWYWx1ZU1ha2VCb29sZWFuKGNvbnRleHQsIGV4cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJndW1l
bnQpLAotICAgICAgICBKU1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCBmcmFtZUlEKSwKKyAgICAg
ICAgSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgZnJhbWVJRC50b1VJbnQ2NCgpKSwKICAgICAg
ICAgSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgY2FsbGJhY2tJRCksCiAgICAgICAgIEpTT2Jq
ZWN0TWFrZUZ1bmN0aW9uV2l0aENhbGxiYWNrKGNvbnRleHQsIG51bGxwdHIsIGV2YWx1YXRlSmF2
YVNjcmlwdENhbGxiYWNrKSwKICAgICAgICAgSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgY2Fs
bGJhY2tUaW1lb3V0KQpAQCAtMzAwLDcgKzMwMCw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b25Qcm94eTo6ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6UGFnZUlkZW50aWZp
CiAgICAgZGlkRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oZnJhbWVJRCwgY2FsbGJhY2tJRCwg
ZXhjZXB0aW9uTWVzc2FnZSwgZXJyb3JUeXBlKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvblByb3h5OjpkaWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbih1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBTdHJpbmcmIHJlc3VsdCwgY29uc3QgU3RyaW5n
JiBlcnJvclR5cGUpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZEV2YWx1YXRl
SmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50
NjRfdCBjYWxsYmFja0lELCBjb25zdCBTdHJpbmcmIHJlc3VsdCwgY29uc3QgU3RyaW5nJiBlcnJv
clR5cGUpCiB7CiAgICAgYXV0byBmaW5kUmVzdWx0ID0gbV93ZWJGcmFtZVBlbmRpbmdFdmFsdWF0
ZUphdmFTY3JpcHRDYWxsYmFja3NNYXAuZmluZChmcmFtZUlEKTsKICAgICBpZiAoZmluZFJlc3Vs
dCAhPSBtX3dlYkZyYW1lUGVuZGluZ0V2YWx1YXRlSmF2YVNjcmlwdENhbGxiYWNrc01hcC5lbmQo
KSkgewpAQCAtMzEzLDEyICszMTMsMTMgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5
OjpkaWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbih1aW50NjRfdCBmcmFtZUlELAogICAgIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpEaWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlv
bihjYWxsYmFja0lELCByZXN1bHQsIGVycm9yVHlwZSksIDApOwogfQogCi12b2lkIFdlYkF1dG9t
YXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGluYWwoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBvcmRpbmFs
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKKy8vIEZJWE1FOiBUaGVzZSBjYWxsYmFja3Mgc2hvdWxkIHRha2Ug
T3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPi4KK3ZvaWQgV2ViQXV0b21hdGlvblNl
c3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoT3JkaW5hbChXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50MzJf
dCBvcmRpbmFsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUGFn
ZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBp
ZiAoIXBhZ2UpIHsKICAgICAgICAgU3RyaW5nIHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlID0gSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVl
KEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkVycm9yTWVzc2FnZTo6V2luZG93Tm90
Rm91bmQpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9yVHlw
ZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBl
LCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0zMjYsMzcgKzMyNywzNyBAQCB2
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGlu
YWwoV2ViQ29yZTo6UGFnZUlkZW50aQogCiAgICAgV2ViRnJhbWUqIGZyYW1lID0gZnJhbWVJRCA/
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpIDogcGFnZS0+bWFpbldl
YkZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihm
cmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJh
bWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAg
IFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWUgPSBmcmFtZS0+Y29yZUZyYW1lKCk7CiAgICAgaWYg
KCFjb3JlRnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVy
cm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJv
clR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBXZWJDb3JlOjpGcmFt
ZSogY29yZUNoaWxkRnJhbWUgPSBjb3JlRnJhbWUtPnRyZWUoKS5zY29wZWRDaGlsZChvcmRpbmFs
KTsKICAgICBpZiAoIWNvcmVDaGlsZEZyYW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihm
cmFtZU5vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAg
ICAgV2ViRnJhbWUqIGNoaWxkRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqY29yZUNo
aWxkRnJhbWUpOwogICAgIGlmICghY2hpbGRGcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVsbG9wdCwgY2hpbGRGcmFtZS0+ZnJhbWVJ
RCgpKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRG
cmFtZVdpdGhOb2RlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0
X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhh
bmRsZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG5vZGVIYW5kbGUsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAgIGlmICghcGFnZSkgewogICAgICAgICBTdHJpbmcg
d2luZG93Tm90Rm91bmRFcnJvclR5cGUgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
SGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6RXJyb3JNZXNzYWdlOjpXaW5kb3dOb3RGb3VuZCk7Ci0gICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIod2luZG93Tm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKQEAgLTM2NCwzNyArMzY1LDM3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhhbmRsZShXZWJDb3JlOjpQYWdlSWRlCiAKICAg
ICBXZWJGcmFtZSogZnJhbWUgPSBmcmFtZUlEID8gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2Vi
RnJhbWUoZnJhbWVJRCkgOiBwYWdlLT5tYWluV2ViRnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKSB7
Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgV2ViQ29yZTo6RWxlbWVudCogY29yZUVsZW1l
bnQgPSBlbGVtZW50Rm9yTm9kZUhhbmRsZSgqZnJhbWUsIG5vZGVIYW5kbGUpOwogICAgIGlmICgh
aXM8V2ViQ29yZTo6SFRNTEZyYW1lRWxlbWVudEJhc2U+KGNvcmVFbGVtZW50KSkgewotICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAogICAgIFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWVGcm9tRWxlbWVu
dCA9IGRvd25jYXN0PFdlYkNvcmU6OkhUTUxGcmFtZUVsZW1lbnRCYXNlPigqY29yZUVsZW1lbnQp
LmNvbnRlbnRGcmFtZSgpOwogICAgIGlmICghY29yZUZyYW1lRnJvbUVsZW1lbnQpIHsKLSAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKICAgICBXZWJGcmFtZSogZnJhbWVGcm9tRWxlbWVudCA9IFdlYkZy
YW1lOjpmcm9tQ29yZUZyYW1lKCpjb3JlRnJhbWVGcm9tRWxlbWVudCk7CiAgICAgaWYgKCFmcmFt
ZUZyb21FbGVtZW50KSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRF
cnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJy
b3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgY29tcGxldGlvbkhh
bmRsZXIoV1RGOjpudWxsb3B0LCBmcmFtZUZyb21FbGVtZW50LT5mcmFtZUlEKCkpOwogfQogCi12
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUo
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBT
dHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWlu
dDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlBhZ2UqIHBhZ2Ug
PSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAgICAgaWYgKCFwYWdl
KSB7CiAgICAgICAgIFN0cmluZyB3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSA9IEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1ZShJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OldpbmRvd05vdEZvdW5kKTsK
LSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIod2luZG93Tm90Rm91bmRFcnJvclR5cGUsIDApOwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNDAyLDM3ICs0MDMsMzcgQEAgdm9pZCBXZWJB
dXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWUKIAogICAgIFdlYkZyYW1lKiBmcmFtZSA9IGZyYW1lSUQgPyBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSA6IHBhZ2UtPm1haW5XZWJGcmFtZSgp
OwogICAgIGlmICghZnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RG
b3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91
bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBXZWJDb3Jl
OjpGcmFtZSogY29yZUZyYW1lID0gZnJhbWUtPmNvcmVGcmFtZSgpOwogICAgIGlmICghY29yZUZy
YW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUs
IDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCB7
IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVD
aGlsZEZyYW1lID0gY29yZUZyYW1lLT50cmVlKCkuc2NvcGVkQ2hpbGQobmFtZSk7CiAgICAgaWYg
KCFjb3JlQ2hpbGRGcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZv
dW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3Vu
ZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFdlYkZyYW1l
KiBjaGlsZEZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmNvcmVDaGlsZEZyYW1lKTsK
ICAgICBpZiAoIWNoaWxkRnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVO
b3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90
Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBjb21w
bGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQsIGNoaWxkRnJhbWUtPmZyYW1lSUQoKSk7CiB9CiAK
LXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZVBhcmVudEZyYW1lKFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCB1aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVQYXJlbnRGcmFtZShX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUGFnZSog
cGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAo
IXBhZ2UpIHsKICAgICAgICAgU3RyaW5nIHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlID0gSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVlKElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkVycm9yTWVzc2FnZTo6V2luZG93Tm90Rm91
bmQpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSwg
MCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlLCB7
IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC00NDAsMjAgKzQ0MSwyMCBAQCB2b2lk
IFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVQYXJlbnRGcmFtZShXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSQogCiAgICAgV2ViRnJhbWUqIGZyYW1lID0gZnJhbWVJRCA/IFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpIDogcGFnZS0+bWFpbldlYkZy
YW1lKCk7CiAgICAgaWYgKCFmcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFt
ZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVO
b3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFdl
YkZyYW1lKiBwYXJlbnRGcmFtZSA9IGZyYW1lLT5wYXJlbnRGcmFtZSgpOwogICAgIGlmICghcGFy
ZW50RnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9y
VHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5
cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBjb21wbGV0aW9uSGFuZGxl
cihXVEY6Om51bGxvcHQsIHBhcmVudEZyYW1lLT5mcmFtZUlEKCkpOwogfQogCi12b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OmZvY3VzRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
cGFnZUlELCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5
Ojpmb2N1c0ZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpCkBAIC01MjgsNyAr
NTI5LDcgQEAgc3RhdGljIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udmVydFBvaW50RnJvbUZyYW1l
Q2xpZW50VG9Sb290VmlldyhXZWJDb3JlOjpGcmFtZVYKICAgICByZXR1cm4gY2xpZW50UG9pbnQ7
CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Y29tcHV0ZUVsZW1lbnRMYXlv
dXQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJp
bmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBDb29yZGluYXRlU3lz
dGVtIGNvb3JkaW5hdGVTeXN0ZW0sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3Ry
aW5nPiwgV2ViQ29yZTo6SW50UmVjdCwgT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBib29s
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6
Y29tcHV0ZUVsZW1lbnRMYXlvdXQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Ny
b2xsSW50b1ZpZXdJZk5lZWRlZCwgQ29vcmRpbmF0ZVN5c3RlbSBjb29yZGluYXRlU3lzdGVtLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkludFJlY3Qs
IE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiwgYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2Uo
cGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsKQEAgLTYzNiw3ICs2MzcsNyBAQCB2b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OmNvbXB1dGVFbGVtZW50TGF5b3V0KFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIHBhZwogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVsbG9wdCwgcmVzdWx0
RWxlbWVudEJvdW5kcywgcmVzdWx0SW5WaWV3Q2VudGVyUG9pbnQsIGlzT2JzY3VyZWQpOwogfQog
Ci12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnNlbGVjdE9wdGlvbkVsZW1lbnQoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9k
ZUhhbmRsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6c2VsZWN0T3B0
aW9uRWxlbWVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQ
YWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAg
IGlmICghcGFnZSkgewpAQCAtNzA0LDcgKzcwNSw3IEBAIHN0YXRpYyBXZWJDb3JlOjpJbnRSZWN0
IHNuYXBzaG90UmVjdEZvclNjcmVlbnNob3QoV2ViUGFnZSYgcGFnZSwgV2ViQ29yZTo6RWxlbWVu
CiAgICAgcmV0dXJuIHsgfTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojp0
YWtlU2NyZWVuc2hvdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGJv
b2wgY2xpcFRvVmlld3BvcnQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit2b2lkIFdlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHk6OnRha2VTY3JlZW5zaG90KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxl
LCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGJvb2wgY2xpcFRvVmlld3BvcnQsIHVpbnQ2
NF90IGNhbGxiYWNrSUQpCiB7CiAgICAgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaGFuZGxlOwog
CkBAIC03NTIsNyArNzUzLDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojp0YWtl
U2NyZWVuc2hvdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHUKICAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6RGlkVGFrZVNjcmVlbnNob3QoY2FsbGJhY2tJRCwgaGFu
ZGxlLCB7IH0pLCAwKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpnZXRD
b29raWVzRm9yRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBm
cmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFZlY3RvcjxX
ZWJDb3JlOjpDb29raWU+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0b21hdGlv
blNlc3Npb25Qcm94eTo6Z2V0Q29va2llc0ZvckZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4pPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAgICAgaWYgKCFwYWdlKSB7CkBAIC03NzcsNyArNzc4
LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpnZXRDb29raWVzRm9yRnJhbWUo
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUkKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEY6
Om51bGxvcHQsIGZvdW5kQ29va2llcyk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eTo6ZGVsZXRlQ29va2llKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0
X3QgZnJhbWVJRCwgU3RyaW5nIGNvb2tpZU5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0
aW9uYWw8U3RyaW5nPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkF1dG9tYXRpb25T
ZXNzaW9uUHJveHk6OmRlbGV0ZUNvb2tpZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQs
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgY29va2llTmFtZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFn
ZShwYWdlSUQpOwogICAgIGlmICghcGFnZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5o
CmluZGV4IDExNjc2NDUyNzdkYmMxOTMwYTVhN2E1OTdkY2JjMmRmM2VjZjU1YzkuLjVlMWIwZmNm
ZjBmYzg1OThiOGM3OTc3MGE2OGIxODFlNzhmNjM5MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lv
blByb3h5LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5j
bHVkZSAiQ29vcmRpbmF0ZVN5c3RlbS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQmFz
ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CkBAIC01MSw3ICs1Miw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlkQ2xlYXJXaW5kb3dPYmpl
Y3RGb3JGcmFtZShXZWJGcmFtZSYpOwogCi0gICAgdm9pZCBkaWRFdmFsdWF0ZUphdmFTY3JpcHRG
dW5jdGlvbih1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBTdHJp
bmcmIHJlc3VsdCwgY29uc3QgU3RyaW5nJiBlcnJvclR5cGUpOworICAgIHZvaWQgZGlkRXZhbHVh
dGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBj
YWxsYmFja0lELCBjb25zdCBTdHJpbmcmIHJlc3VsdCwgY29uc3QgU3RyaW5nJiBlcnJvclR5cGUp
OwogCiBwcml2YXRlOgogICAgIEpTT2JqZWN0UmVmIHNjcmlwdE9iamVjdEZvckZyYW1lKFdlYkZy
YW1lJik7CkBAIC02MSwyMiArNjIsMjIgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwogCiAgICAg
Ly8gQ2FsbGVkIGJ5IFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkgbWVzc2FnZXMKLSAgICB2b2lk
IGV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIGZ1bmN0aW9uLCBWZWN0b3I8U3RyaW5nPiBhcmd1
bWVudHMsIGJvb2wgZXhwZWN0c0ltcGxpY2l0Q2FsbGJhY2tBcmd1bWVudCwgaW50IGNhbGxiYWNr
VGltZW91dCwgdWludDY0X3QgY2FsbGJhY2tJRCk7Ci0gICAgdm9pZCByZXNvbHZlQ2hpbGRGcmFt
ZVdpdGhPcmRpbmFsKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCB1
aW50MzJfdCBvcmRpbmFsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4s
IHVpbnQ2NF90KT4mJik7Ci0gICAgdm9pZCByZXNvbHZlQ2hpbGRGcmFtZVdpdGhOb2RlSGFuZGxl
KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcm
IG5vZGVIYW5kbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWlu
dDY0X3QpPiYmKTsKLSAgICB2b2lkIHJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCB1aW50NjRfdCk+JiYpOwotICAg
IHZvaWQgcmVzb2x2ZVBhcmVudEZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRf
dCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2
NF90KT4mJik7Ci0gICAgdm9pZCBmb2N1c0ZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1
aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGNvbXB1dGVFbGVtZW50TGF5b3V0KFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9v
bCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBDb29yZGluYXRlU3lzdGVtLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkludFJlY3QsIE9wdGlvbmFsPFdl
YkNvcmU6OkludFBvaW50PiwgYm9vbCk+JiYpOwotICAgIHZvaWQgc2VsZWN0T3B0aW9uRWxlbWVu
dChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVI
YW5kbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+JiYpOwotICAg
IHZvaWQgdGFrZVNjcmVlbnNob3QoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZy
YW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGJv
b2wgY2xpcFRvVmlld3BvcnQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwotICAgIHZvaWQgZ2V0Q29v
a2llc0ZvckZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFZlY3RvcjxXZWJDb3JlOjpD
b29raWU+KT4mJik7Ci0gICAgdm9pZCBkZWxldGVDb29raWUoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBjb29raWVOYW1lLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKE9wdGlvbmFsPFN0cmluZz4pPiYmKTsKKyAgICB2b2lkIGV2YWx1YXRlSmF2YVNjcmlw
dEZ1bmN0aW9uKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgZnVuY3Rpb24sIFZlY3RvcjxTdHJpbmc+IGFyZ3VtZW50cywgYm9v
bCBleHBlY3RzSW1wbGljaXRDYWxsYmFja0FyZ3VtZW50LCBpbnQgY2FsbGJhY2tUaW1lb3V0LCB1
aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIHJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGlu
YWwoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWlu
dDMyX3Qgb3JkaW5hbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpPiYmKTsKKyAgICB2b2lkIHJlc29sdmVDaGlsZEZyYW1l
V2l0aE5vZGVIYW5kbGUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik+JiYpOworICAgIHZv
aWQgcmVzb2x2ZUNoaWxkRnJhbWVXaXRoTmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKT4mJik7
CisgICAgdm9pZCByZXNvbHZlUGFyZW50RnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxT
dHJpbmc+LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpPiYmKTsKKyAgICB2b2lkIGZvY3VzRnJh
bWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7Cisg
ICAgdm9pZCBjb21wdXRlRWxlbWVudExheW91dChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRv
Vmlld0lmTmVlZGVkLCBDb29yZGluYXRlU3lzdGVtLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9w
dGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkludFJlY3QsIE9wdGlvbmFsPFdlYkNvcmU6OkludFBv
aW50PiwgYm9vbCk+JiYpOworICAgIHZvaWQgc2VsZWN0T3B0aW9uRWxlbWVudChXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBTdHJpbmcgbm9kZUhhbmRs
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJik7CisgICAgdm9p
ZCB0YWtlU2NyZWVuc2hvdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVk
LCBib29sIGNsaXBUb1ZpZXdwb3J0LCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIGdl
dENvb2tpZXNGb3JGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFZlY3Rv
cjxXZWJDb3JlOjpDb29raWU+KT4mJik7CisgICAgdm9pZCBkZWxldGVDb29raWUoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgU3RyaW5nIGNvb2tpZU5h
bWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+JiYpOwogCiAgICAg
U3RyaW5nIG1fc2Vzc2lvbklkZW50aWZpZXI7CiAKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBKU09i
amVjdFJlZj4gbV93ZWJGcmFtZVNjcmlwdE9iamVjdE1hcDsKLSAgICBIYXNoTWFwPHVpbnQ2NF90
LCBWZWN0b3I8dWludDY0X3Q+PiBtX3dlYkZyYW1lUGVuZGluZ0V2YWx1YXRlSmF2YVNjcmlwdENh
bGxiYWNrc01hcDsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgSlNPYmpl
Y3RSZWY+IG1fd2ViRnJhbWVTY3JpcHRPYmplY3RNYXA7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIFZlY3Rvcjx1aW50NjRfdD4+IG1fd2ViRnJhbWVQZW5kaW5nRXZhbHVh
dGVKYXZhU2NyaXB0Q2FsbGJhY2tzTWFwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1
dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgppbmRleCBkNzJm
ODlkMjYzNTljZjAxY2NmZDUzMWU5NmUwMWY0NDQwOWFhZjU4Li5mMjc2NDliOWI3MzEwYmE1OTEz
YjBkNmZmZmUxN2YyMjRlYzVmNjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9u
UHJveHkubWVzc2FnZXMuaW4KQEAgLTIxLDIxICsyMSwyMSBAQAogIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBt
ZXNzYWdlcyAtPiBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5IHsKLSAgICBFdmFsdWF0ZUphdmFT
Y3JpcHRGdW5jdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFN0cmluZyBmdW5jdGlvbiwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRzLCBib29sIGV4
cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJndW1lbnQsIGludCBjYWxsYmFja1RpbWVvdXQsIHVpbnQ2
NF90IGNhbGxiYWNrSUQpCisgICAgRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
U3RyaW5nIGZ1bmN0aW9uLCBWZWN0b3I8U3RyaW5nPiBhcmd1bWVudHMsIGJvb2wgZXhwZWN0c0lt
cGxpY2l0Q2FsbGJhY2tBcmd1bWVudCwgaW50IGNhbGxiYWNrVGltZW91dCwgdWludDY0X3QgY2Fs
bGJhY2tJRCkKIAotICAgIFJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGluYWwoV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBvcmRpbmFsKSAt
PiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIHVpbnQ2NF90IGZyYW1lSUQpIEFzeW5jCi0g
ICAgUmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhhbmRsZShXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlKSAtPiAoT3B0aW9u
YWw8U3RyaW5nPiBlcnJvclR5cGUsIHVpbnQ2NF90IGZyYW1lSUQpIEFzeW5jCi0gICAgUmVzb2x2
ZUNoaWxkRnJhbWVXaXRoTmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2
NF90IGZyYW1lSUQsIFN0cmluZyBuYW1lKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUs
IHVpbnQ2NF90IGZyYW1lSUQpIEFzeW5jCi0gICAgUmVzb2x2ZVBhcmVudEZyYW1lKFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCkgLT4gKE9wdGlvbmFsPFN0
cmluZz4gZXJyb3JUeXBlLCB1aW50NjRfdCBmcmFtZUlEKSBBc3luYworICAgIFJlc29sdmVDaGls
ZEZyYW1lV2l0aE9yZGluYWwoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDMyX3Qgb3JkaW5hbCkgLT4gKE9wdGlvbmFs
PFN0cmluZz4gZXJyb3JUeXBlLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkgQXN5
bmMKKyAgICBSZXNvbHZlQ2hpbGRGcmFtZVdpdGhOb2RlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBu
b2RlSGFuZGxlKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlEKSBBc3luYworICAgIFJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUo
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgU3RyaW5nIG5hbWUpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIEFzeW5jCisgICAgUmVzb2x2ZVBhcmVudEZy
YW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQpIEFzeW5jCiAKLSAgICBGb2N1c0ZyYW1lKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCkKKyAgICBGb2N1c0ZyYW1lKFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQpCiAKLSAgICBDb21wdXRlRWxlbWVudExheW91dChXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9s
bEludG9WaWV3SWZOZWVkZWQsIGVudW06dWludDhfdCBXZWJLaXQ6OkNvb3JkaW5hdGVTeXN0ZW0g
Y29vcmRpbmF0ZVN5c3RlbSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBXZWJDb3Jl
OjpJbnRSZWN0IHJlY3QsIE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiBpblZpZXdDZW50ZXJQ
b2ludCwgYm9vbCBpc09ic2N1cmVkKSBBc3luYworICAgIENvbXB1dGVFbGVtZW50TGF5b3V0KFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGVu
dW06dWludDhfdCBXZWJLaXQ6OkNvb3JkaW5hdGVTeXN0ZW0gY29vcmRpbmF0ZVN5c3RlbSkgLT4g
KE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBXZWJDb3JlOjpJbnRSZWN0IHJlY3QsIE9wdGlv
bmFsPFdlYkNvcmU6OkludFBvaW50PiBpblZpZXdDZW50ZXJQb2ludCwgYm9vbCBpc09ic2N1cmVk
KSBBc3luYwogCi0gICAgU2VsZWN0T3B0aW9uRWxlbWVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlKSAtPiAoT3B0aW9u
YWw8U3RyaW5nPiBlcnJvclR5cGUpIEFzeW5jCisgICAgU2VsZWN0T3B0aW9uRWxlbWVudChXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBTdHJpbmcgbm9kZUhhbmRsZSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlKSBB
c3luYwogCi0gICAgVGFrZVNjcmVlbnNob3QoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
LCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmll
d0lmTmVlZGVkLCBib29sIGNsaXBUb1ZpZXdwb3J0LCB1aW50NjRfdCBjYWxsYmFja0lEKQorICAg
IFRha2VTY3JlZW5zaG90KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbElu
dG9WaWV3SWZOZWVkZWQsIGJvb2wgY2xpcFRvVmlld3BvcnQsIHVpbnQ2NF90IGNhbGxiYWNrSUQp
CiAKLSAgICBHZXRDb29raWVzRm9yRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
LCB1aW50NjRfdCBmcmFtZUlEKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIFZlY3Rv
cjxXZWJDb3JlOjpDb29raWU+IGNvb2tpZXMpIEFzeW5jCi0gICAgRGVsZXRlQ29va2llKFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIGNvb2tp
ZU5hbWUpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSkgQXN5bmMKKyAgICBHZXRDb29r
aWVzRm9yRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBWZWN0
b3I8V2ViQ29yZTo6Q29va2llPiBjb29raWVzKSBBc3luYworICAgIERlbGV0ZUNvb2tpZShXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBTdHJpbmcgY29va2llTmFtZSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlKSBB
c3luYwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJh
bWUubW0KaW5kZXggMDk5NzYzNzJmMDczNzU3ZWVkYjE3NDkzZDczMWZhMGEzZDQ2NjhjNi4uMjU3
M2U2ZDQ4NTllNWUwY2ZlNGE2N2Y1ZjRmM2JiYTZiMzBmZTg2NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQ
bHVnSW5GcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tCkBAIC00OCw3ICs0OCw3IEBA
IEBpbXBsZW1lbnRhdGlvbiBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZSB7CiAKICsgKGluc3RhbmNl
dHlwZSlsb29rVXBGcmFtZUZyb21IYW5kbGU6KF9XS0ZyYW1lSGFuZGxlICopaGFuZGxlCiB7Ci0g
ICAgcmV0dXJuIHdyYXBwZXIoV2ViS2l0OjpXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFt
ZShoYW5kbGUuX2ZyYW1lSUQpKTsKKyAgICByZXR1cm4gd3JhcHBlcihXZWJLaXQ6OldlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRCho
YW5kbGUuX2ZyYW1lSUQpKSk7CiB9CiAKIC0gKHZvaWQpZGVhbGxvYwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4
IGM0OGNkZDg1Nzk0ZDkyMTY5OTUyMGMyZDgzOGE1YjY3MGYzYjJmZjEuLjVkZmM0MjU3ODg0YmMy
OTJhNGRhZThjNDQ1ZTkyYjczMjdhOTZjYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAgLTE1OSw3ICsxNTks
NyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXIm
IHJlc291cmNlTG9hZGVyLCBDYWNoZWRSZXNvdQogCiAgICAgV2ViUmVzb3VyY2VMb2FkZXI6OlRy
YWNraW5nUGFyYW1ldGVycyB0cmFja2luZ1BhcmFtZXRlcnM7CiAgICAgdHJhY2tpbmdQYXJhbWV0
ZXJzLnBhZ2VJRCA9IGZyYW1lTG9hZGVyQ2xpZW50LnBhZ2VJRCgpLnZhbHVlT3IoUGFnZUlkZW50
aWZpZXIgeyB9KTsKLSAgICB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCA9IGZyYW1lTG9hZGVy
Q2xpZW50LmZyYW1lSUQoKS52YWx1ZU9yKDApOworICAgIHRyYWNraW5nUGFyYW1ldGVycy5mcmFt
ZUlEID0gZnJhbWVMb2FkZXJDbGllbnQuZnJhbWVJRCgpLnZhbHVlT3IoRnJhbWVJZGVudGlmaWVy
IHsgfSk7CiAgICAgdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQgPSBpZGVudGlmaWVyOwog
ICAgIGF1dG8gc2Vzc2lvbklEID0gZnJhbWVMb2FkZXJDbGllbnQuc2Vzc2lvbklEKCk7CiAKQEAg
LTE2OCw3ICsxNjgsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQoUmVz
b3VyY2VMb2FkZXImIHJlc291cmNlTG9hZGVyLCBDYWNoZWRSZXNvdQogICAgIC8vIHRoZW4gd2Ug
c2hvdWxkIHJlbWVtYmVyIHRoZSBSZXNvdXJjZUxvYWRlciBpbiBvdXIgcmVjb3JkcyBidXQgbm90
IHNjaGVkdWxlIGl0IGluIHRoZSBOZXR3b3JrUHJvY2Vzcy4KICAgICBpZiAocmVzb3VyY2VMb2Fk
ZXIuZG9jdW1lbnRMb2FkZXIoKS0+c2NoZWR1bGVBcmNoaXZlTG9hZChyZXNvdXJjZUxvYWRlciwg
cmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpKSkgewogICAgICAgICBMT0coTmV0d29ya1NjaGVkdWxp
bmcsICIoV2ViUHJvY2VzcykgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZCwgdXJsICcl
cycgd2lsbCBiZSBoYW5kbGVkIGFzIGFuIGFyY2hpdmUgcmVzb3VyY2UuIiwgcmVzb3VyY2VMb2Fk
ZXIudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGhhbmRs
ZWQgYXMgYW4gYXJjaGl2ZSByZXNvdXJjZSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJl
c291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQo
KSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIGlkZW50aWZpZXIpOworICAgICAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2ls
bCBiZSBoYW5kbGVkIGFzIGFuIGFyY2hpdmUgcmVzb3VyY2UgKGZyYW1lID0gJXAsIHBhZ2VJRCA9
ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1
NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlE
LnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIGlkZW50
aWZpZXIpOwogICAgICAgICBtX3dlYlJlc291cmNlTG9hZGVycy5zZXQoaWRlbnRpZmllciwgV2Vi
UmVzb3VyY2VMb2FkZXI6OmNyZWF0ZShyZXNvdXJjZUxvYWRlciwgdHJhY2tpbmdQYXJhbWV0ZXJz
KSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xNzYsMTQgKzE3NiwxNCBAQCB2b2lkIFdl
YkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTG9h
ZGVyLCBDYWNoZWRSZXNvdQogCiAgICAgaWYgKHJlc291cmNlTG9hZGVyLmRvY3VtZW50TG9hZGVy
KCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCkubWF5YmVMb2FkUmVzb3VyY2UocmVzb3VyY2VMb2Fk
ZXIsIHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKSwgcmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnVy
bCgpKSkgewogICAgICAgICBMT0coTmV0d29ya1NjaGVkdWxpbmcsICIoV2ViUHJvY2VzcykgV2Vi
TG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZCwgdXJsICclcycgd2lsbCBiZSBsb2FkZWQgZnJv
bSBhcHBsaWNhdGlvbiBjYWNoZS4iLCByZXNvdXJjZUxvYWRlci51cmwoKS5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpKTsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRl
ciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgbG9hZGVkIGZyb20gYXBwbGljYXRpb24gY2Fj
aGUgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0
cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5m
cmFtZUlELCBpZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNv
dXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgbG9hZGVkIGZyb20gYXBwbGlj
YXRpb24gY2FjaGUgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5m
cmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFy
YW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIGlkZW50aWZpZXIpOwogICAgICAgICBtX3dlYlJl
c291cmNlTG9hZGVycy5zZXQoaWRlbnRpZmllciwgV2ViUmVzb3VyY2VMb2FkZXI6OmNyZWF0ZShy
ZXNvdXJjZUxvYWRlciwgdHJhY2tpbmdQYXJhbWV0ZXJzKSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKICAgICBpZiAocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnVybCgpLnByb3RvY29sSXNE
YXRhKCkpIHsKICAgICAgICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5nLCAiKFdlYlByb2Nlc3MpIFdl
YkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQsIHVybCAnJXMnIHdpbGwgYmUgbG9hZGVkIGFz
IGRhdGEuIiwgcmVzb3VyY2VMb2FkZXIudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0g
ICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxv
YWQ6IFVSTCB3aWxsIGJlIGxvYWRlZCBhcyBkYXRhIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIp
IiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJ
bnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7CisgICAgICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVS
TCB3aWxsIGJlIGxvYWRlZCBhcyBkYXRhIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVz
b3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgp
LCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsKICAg
ICAgICAgc3RhcnRMb2NhbExvYWQocmVzb3VyY2VMb2FkZXIpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtMTkxLDcgKzE5MSw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxl
TG9hZChSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMb2FkZXIsIENhY2hlZFJlc291CiAjaWYgVVNF
KFFVSUNLX0xPT0spCiAgICAgaWYgKGlzUXVpY2tMb29rUHJldmlld1VSTChyZXNvdXJjZUxvYWRl
ci5yZXF1ZXN0KCkudXJsKCkpKSB7CiAgICAgICAgIExPRyhOZXR3b3JrU2NoZWR1bGluZywgIihX
ZWJQcm9jZXNzKSBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkLCB1cmwgJyVzJyB3aWxs
IGJlIGhhbmRsZWQgYXMgYSBRdWlja0xvb2sgcmVzb3VyY2UuIiwgcmVzb3VyY2VMb2FkZXIudXJs
KCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGhhbmRsZWQgYXMg
YSBRdWlja0xvb2sgcmVzb3VyY2UgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJj
ZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRy
YWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBpZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUg
aGFuZGxlZCBhcyBhIFF1aWNrTG9vayByZXNvdXJjZSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAi
KSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9V
SW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmll
cik7CiAgICAgICAgIHN0YXJ0TG9jYWxMb2FkKHJlc291cmNlTG9hZGVyKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KQEAgLTIwMiw3ICsyMDIsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpz
Y2hlZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTG9hZGVyLCBDYWNoZWRSZXNvdQog
ICAgIC8vIGh0dHBzOi8vYmxvZ3MuZ25vbWUub3JnL2FsZXhsLzIwMTIvMDEvMjYvcmVzb3VyY2Vz
LWluLWdsaWIvCiAgICAgaWYgKHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS51cmwoKS5wcm90b2Nv
bElzKCJyZXNvdXJjZSIpKSB7CiAgICAgICAgIExPRyhOZXR3b3JrU2NoZWR1bGluZywgIihXZWJQ
cm9jZXNzKSBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkLCB1cmwgJyVzJyB3aWxsIGJl
IGhhbmRsZWQgYXMgYSBHUmVzb3VyY2UuIiwgcmVzb3VyY2VMb2FkZXIudXJsKCkuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VM
b2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGhhbmRsZWQgYXMgYSBHUmVzb3VyY2Ug
KGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFj
a2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFt
ZUlELCBpZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJj
ZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgaGFuZGxlZCBhcyBhIEdSZXNvdXJj
ZSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQg
IiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRy
YWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZy
YW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmllcik7CiAgICAgICAgIHN0YXJ0TG9jYWxMb2FkKHJl
c291cmNlTG9hZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTIxMiwxMSArMjEyLDEx
IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciYg
cmVzb3VyY2VMb2FkZXIsIENhY2hlZFJlc291CiAgICAgV2ViU2VydmljZVdvcmtlclByb3ZpZGVy
OjpzaW5nbGV0b24oKS5oYW5kbGVGZXRjaChyZXNvdXJjZUxvYWRlciwgc2Vzc2lvbklELCBzaG91
bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBbdGhpcywgdHJhY2tpbmdQYXJh
bWV0ZXJzLCBpZGVudGlmaWVyLCBzZXNzaW9uSUQsIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBT
VG9IVFRQUmVkaXJlY3QsIG1heGltdW1CdWZmZXJpbmdUaW1lID0gbWF4aW11bUJ1ZmZlcmluZ1Rp
bWUocmVzb3VyY2UpLCByZXNvdXJjZUxvYWRlciA9IG1ha2VSZWYocmVzb3VyY2VMb2FkZXIpXSAo
U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpSZXN1bHQgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAg
ICAgaWYgKHJlc3VsdCAhPSBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OlJlc3VsdDo6VW5oYW5k
bGVkKSB7CiAgICAgICAgICAgICBMT0coTmV0d29ya1NjaGVkdWxpbmcsICIoV2ViUHJvY2Vzcykg
V2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZCwgdXJsICclcycgd2lsbCBiZSBzY2hlZHVs
ZWQgdGhyb3VnaCBTZXJ2aWNlV29ya2VyIGhhbmRsZSBmZXRjaCBhbGdvcml0aG0iLCByZXNvdXJj
ZUxvYWRlci0+dXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKLSAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIuZ2V0KCksICJzY2hlZHVsZUxvYWQ6
IFVSTCB3aWxsIGJlIHNjaGVkdWxlZCB0aHJvdWdoIFNlcnZpY2VXb3JrZXIgaGFuZGxlIGZldGNo
IGFsZ29yaXRobSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAl
IiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLT5m
cmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFy
YW1ldGVycy5mcmFtZUlELCBpZGVudGlmaWVyKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQocmVzb3VyY2VMb2FkZXIuZ2V0KCksICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJl
IHNjaGVkdWxlZCB0aHJvdWdoIFNlcnZpY2VXb3JrZXIgaGFuZGxlIGZldGNoIGFsZ29yaXRobSAo
ZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwg
cmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLT5mcmFtZSgpLCB0cmFj
a2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFt
ZUlELnRvVUludDY0KCksIGlkZW50aWZpZXIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAgICAgICAgIGlmIChyZXNvdXJjZUxvYWRlci0+b3B0aW9ucygpLnNlcnZpY2VXb3JrZXJz
TW9kZSA9PSBTZXJ2aWNlV29ya2Vyc01vZGU6Ok9ubHkpIHsKLSAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIuZ2V0KCksICJzY2hlZHVsZUxvYWQ6
IHVuYWJsZSB0byBzY2hlZHVsZSBVUkwgdGhyb3VnaCBTZXJ2aWNlV29ya2VyIGhhbmRsZSBmZXRj
aCBhbGdvcml0aG0gKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci0+
ZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1Bh
cmFtZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUl9JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLmdldCgpLCAic2NoZWR1bGVMb2FkOiB1bmFi
bGUgdG8gc2NoZWR1bGUgVVJMIHRocm91Z2ggU2VydmljZVdvcmtlciBoYW5kbGUgZmV0Y2ggYWxn
b3JpdGhtIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXItPmZyYW1l
KCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0
ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmllcik7CiAgICAgICAgICAgICBjYWxsT25N
YWluVGhyZWFkKFtyZXNvdXJjZUxvYWRlciA9IFdURk1vdmUocmVzb3VyY2VMb2FkZXIpXSB7CiAg
ICAgICAgICAgICAgICAgYXV0byBlcnJvciA9IGludGVybmFsRXJyb3IocmVzb3VyY2VMb2FkZXIt
PnJlcXVlc3QoKS51cmwoKSk7CiAgICAgICAgICAgICAgICAgZXJyb3Iuc2V0VHlwZShSZXNvdXJj
ZUVycm9yOjpUeXBlOjpDYW5jZWxsYXRpb24pOwpAQCAtMjI4LDEzICsyMjgsMTMgQEAgdm9pZCBX
ZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxv
YWRlciwgQ2FjaGVkUmVzb3UKICAgICAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53
ZWJMb2FkZXJTdHJhdGVneSgpLnRyeUxvYWRpbmdVc2luZ1VSTFNjaGVtZUhhbmRsZXIocmVzb3Vy
Y2VMb2FkZXIpKQogICAgICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViTG9hZGVy
U3RyYXRlZ3koKS5zY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MocmVzb3VyY2VMb2FkZXIu
Z2V0KCksIHJlc291cmNlTG9hZGVyLT5yZXF1ZXN0KCksIHRyYWNraW5nUGFyYW1ldGVycywgc2Vz
c2lvbklELCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBtYXhpbXVt
QnVmZmVyaW5nVGltZSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQocmVzb3VyY2VMb2FkZXIuZ2V0KCksICJzY2hlZHVsZUxvYWQ6IFVSTCBub3QgaGFu
ZGxlZCBieSBhbnkgaGFuZGxlcnMgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJj
ZUxvYWRlci0+ZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0
cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7CisgICAgICAgICAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLmdldCgpLCAic2NoZWR1bGVMb2FkOiBV
Ukwgbm90IGhhbmRsZWQgYnkgYW55IGhhbmRsZXJzIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIp
IiwgcmVzb3VyY2VMb2FkZXItPmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9V
SW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmll
cik7CiAgICAgfSk7CiAjZWxzZQogICAgIGlmICghdHJ5TG9hZGluZ1VzaW5nVVJMU2NoZW1lSGFu
ZGxlcihyZXNvdXJjZUxvYWRlcikpCiAgICAgICAgIHNjaGVkdWxlTG9hZEZyb21OZXR3b3JrUHJv
Y2VzcyhyZXNvdXJjZUxvYWRlciwgcmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLCB0cmFja2luZ1Bh
cmFtZXRlcnMsIHNlc3Npb25JRCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRp
cmVjdCwgbWF4aW11bUJ1ZmZlcmluZ1RpbWUocmVzb3VyY2UpKTsKICAgICBlbHNlCi0gICAgICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVS
TCBub3QgaGFuZGxlZCBieSBhbnkgaGFuZGxlcnMgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiki
LCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUlu
dDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBpZGVudGlmaWVyKTsKKyAgICAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJM
IG5vdCBoYW5kbGVkIGJ5IGFueSBoYW5kbGVycyAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIs
IHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50
NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmllcik7
CiAjZW5kaWYKIH0KIApAQCAtMzI1LDcgKzMyNSw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6
OnNjaGVkdWxlTG9hZEZyb21OZXR3b3JrUHJvY2VzcyhSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VM
CiAgICAgaWYgKGxvYWRQYXJhbWV0ZXJzLm9wdGlvbnMubW9kZSAhPSBGZXRjaE9wdGlvbnM6Ok1v
ZGU6Ok5hdmlnYXRlKSB7CiAgICAgICAgIEFTU0VSVChsb2FkUGFyYW1ldGVycy5zb3VyY2VPcmln
aW4pOwogICAgICAgICBpZiAoIWxvYWRQYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbikgewotICAgICAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVk
dWxlTG9hZDogbm8gc291cmNlT3JpZ2luIChmcmFtZSA9ICVwLCBwcmlvcml0eSA9ICVkLCBwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIg
UFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgc3RhdGljX2Nhc3Q8aW50PihyZXNv
dXJjZUxvYWRlci5yZXF1ZXN0KCkucHJpb3JpdHkoKSksIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJ
RC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlELCBsb2FkUGFyYW1ldGVycy5p
ZGVudGlmaWVyKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQocmVz
b3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IG5vIHNvdXJjZU9yaWdpbiAoZnJhbWUgPSAlcCwg
cHJpb3JpdHkgPSAlZCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQg
IiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHN0
YXRpY19jYXN0PGludD4ocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnByaW9yaXR5KCkpLCBsb2Fk
UGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJ
RC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyKTsKICAgICAgICAgICAgIHNj
aGVkdWxlSW50ZXJuYWxseUZhaWxlZExvYWQocmVzb3VyY2VMb2FkZXIpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CkBAIC0zNDgsOSArMzQ4LDkgQEAgdm9pZCBXZWJMb2FkZXJTdHJh
dGVneTo6c2NoZWR1bGVMb2FkRnJvbU5ldHdvcmtQcm9jZXNzKFJlc291cmNlTG9hZGVyJiByZXNv
dXJjZUwKIAogICAgIEFTU0VSVCgobG9hZFBhcmFtZXRlcnMud2ViUGFnZUlEICYmIGxvYWRQYXJh
bWV0ZXJzLndlYkZyYW1lSUQpIHx8IGxvYWRQYXJhbWV0ZXJzLmNsaWVudENyZWRlbnRpYWxQb2xp
Y3kgPT0gQ2xpZW50Q3JlZGVudGlhbFBvbGljeTo6Q2Fubm90QXNrQ2xpZW50Rm9yQ3JlZGVudGlh
bHMpOwogCi0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVk
dWxlTG9hZDogUmVzb3VyY2UgaXMgYmVpbmcgc2NoZWR1bGVkIHdpdGggdGhlIE5ldHdvcmtQcm9j
ZXNzIChmcmFtZSA9ICVwLCBwcmlvcml0eSA9ICVkLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VM
b2FkZXIuZnJhbWUoKSwgc3RhdGljX2Nhc3Q8aW50PihyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCku
cHJpb3JpdHkoKSksIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBsb2FkUGFy
YW1ldGVycy53ZWJGcmFtZUlELCBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyKTsKKyAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBSZXNvdXJj
ZSBpcyBiZWluZyBzY2hlZHVsZWQgd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3MgKGZyYW1lID0gJXAs
IHByaW9yaXR5ID0gJWQsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCBz
dGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS5wcmlvcml0eSgpKSwgbG9h
ZFBhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1l
SUQudG9VSW50NjQoKSwgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllcik7CiAgICAgaWYgKCFXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25u
ZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlNj
aGVkdWxlUmVzb3VyY2VMb2FkKGxvYWRQYXJhbWV0ZXJzKSwgMCkpIHsKLSAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1JfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVW5h
YmxlIHRvIHNjaGVkdWxlIHJlc291cmNlIHdpdGggdGhlIE5ldHdvcmtQcm9jZXNzIChmcmFtZSA9
ICVwLCBwcmlvcml0eSA9ICVkLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUo
KSwgc3RhdGljX2Nhc3Q8aW50PihyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkucHJpb3JpdHkoKSks
IGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVycy53ZWJG
cmFtZUlELCBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0df
RVJST1JfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVW5hYmxlIHRv
IHNjaGVkdWxlIHJlc291cmNlIHdpdGggdGhlIE5ldHdvcmtQcm9jZXNzIChmcmFtZSA9ICVwLCBw
cmlvcml0eSA9ICVkLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAi
LCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgc3Rh
dGljX2Nhc3Q8aW50PihyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkucHJpb3JpdHkoKSksIGxvYWRQ
YXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlE
LnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIpOwogICAgICAgICAvLyBXZSBw
cm9iYWJseSBmYWlsZWQgdG8gc2NoZWR1bGUgdGhpcyBsb2FkIHdpdGggdGhlIE5ldHdvcmtQcm9j
ZXNzIGJlY2F1c2UgaXQgaGFkIGNyYXNoZWQuCiAgICAgICAgIC8vIFRoaXMgbG9hZCB3aWxsIG5l
dmVyIHN1Y2NlZWQgc28gd2Ugd2lsbCBzY2hlZHVsZSBpdCB0byBmYWlsIGFzeW5jaHJvbm91c2x5
LgogICAgICAgICBzY2hlZHVsZUludGVybmFsbHlGYWlsZWRMb2FkKHJlc291cmNlTG9hZGVyKTsK
QEAgLTUyMCwxOCArNTIwLDE4IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNvdXJj
ZVN5bmNocm9ub3VzbHkoRnJhbWVMb2FkZXImIGZyYW1lTG9hZGVyLCB1bnNpCiAgICAgV2ViUGFn
ZSogd2ViUGFnZSA9IHdlYkZyYW1lID8gd2ViRnJhbWUtPnBhZ2UoKSA6IG51bGxwdHI7CiAKICAg
ICBhdXRvIHBhZ2VJRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5wYWdlSUQoKSA6IFBhZ2VJZGVudGlm
aWVyIHsgfTsKLSAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZSA/IHdlYkZyYW1lLT5mcmFtZUlE
KCkgOiAwOworICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZyYW1lID8gd2ViRnJhbWUtPmZyYW1lSUQo
KSA6IEZyYW1lSWRlbnRpZmllciB7IH07CiAgICAgYXV0byBzZXNzaW9uSUQgPSB3ZWJQYWdlID8g
d2ViUGFnZS0+c2Vzc2lvbklEKCkgOiBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgp
OwogCiAgICAgYXV0byogZG9jdW1lbnQgPSBmcmFtZUxvYWRlci5mcmFtZSgpLmRvY3VtZW50KCk7
CiAgICAgaWYgKCFkb2N1bWVudCkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExP
V0VEKHNlc3Npb25JRCwgImxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6IG5vIGRvY3VtZW50IChw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JWx1KSIsIHBhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELCByZXNvdXJjZUxvYWRJZGVudGlmaWVy
KTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChzZXNzaW9uSUQsICJsb2Fk
UmVzb3VyY2VTeW5jaHJvbm91c2x5OiBubyBkb2N1bWVudCAocGFnZUlEID0gJSIgUFJJdTY0ICIs
IGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICVsdSkiLCBwYWdlSUQudG9VSW50
NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpLCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKTsKICAgICAg
ICAgZXJyb3IgPSBpbnRlcm5hbEVycm9yKHJlcXVlc3QudXJsKCkpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCiAgICAgaWYgKGF1dG8gc3luY0xvYWRSZXN1bHQgPSB0cnlMb2FkaW5nU3luY2hy
b25vdXNseVVzaW5nVVJMU2NoZW1lSGFuZGxlcihmcmFtZUxvYWRlciwgcmVzb3VyY2VMb2FkSWRl
bnRpZmllciwgcmVxdWVzdCkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dF
RChzZXNzaW9uSUQsICJsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiBmYWlsZWQgY2FsbGluZyB0
cnlMb2FkaW5nU3luY2hyb25vdXNseVVzaW5nVVJMU2NoZW1lSGFuZGxlciAocGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICVsdSwgZXJyb3Ig
PSAlZCkiLCBwYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCwgcmVzb3VyY2VMb2FkSWRlbnRpZmll
ciwgc3luY0xvYWRSZXN1bHQtPmVycm9yLmVycm9yQ29kZSgpKTsKKyAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1JfSUZfQUxMT1dFRChzZXNzaW9uSUQsICJsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5
OiBmYWlsZWQgY2FsbGluZyB0cnlMb2FkaW5nU3luY2hyb25vdXNseVVzaW5nVVJMU2NoZW1lSGFu
ZGxlciAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3Vy
Y2VJRCA9ICVsdSwgZXJyb3IgPSAlZCkiLCBwYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJ
bnQ2NCgpLCByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBzeW5jTG9hZFJlc3VsdC0+ZXJyb3IuZXJy
b3JDb2RlKCkpOwogICAgICAgICBlcnJvciA9IFdURk1vdmUoc3luY0xvYWRSZXN1bHQtPmVycm9y
KTsKICAgICAgICAgcmVzcG9uc2UgPSBXVEZNb3ZlKHN5bmNMb2FkUmVzdWx0LT5yZXNwb25zZSk7
CiAgICAgICAgIGRhdGEgPSBXVEZNb3ZlKHN5bmNMb2FkUmVzdWx0LT5kYXRhKTsKQEAgLTU2OSw3
ICs1NjksNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91
c2x5KEZyYW1lTG9hZGVyJiBmcmFtZUxvYWRlciwgdW5zaQogICAgICAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzUG9vbDo6U2V0V2ViUHJvY2Vzc0hhc1VwbG9hZHMgeyBQcm9jZXNzOjppZGVudGlmaWVy
KCkgfSwgMCk7CiAKICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6TmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlBlcmZvcm1TeW5jaHJvbm91c0xvYWQobG9hZFBh
cmFtZXRlcnMpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlBlcmZv
cm1TeW5jaHJvbm91c0xvYWQ6OlJlcGx5KGVycm9yLCByZXNwb25zZSwgZGF0YSksIDApKSB7Ci0g
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoc2Vzc2lvbklELCAibG9hZFJlc291
cmNlU3luY2hyb25vdXNseTogZmFpbGVkIHNlbmRpbmcgc3luY2hyb25vdXMgbmV0d29yayBwcm9j
ZXNzIG1lc3NhZ2UgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IHJlc291cmNlSUQgPSAlbHUpIiwgcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQsIHJlc291cmNl
TG9hZElkZW50aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHNl
c3Npb25JRCwgImxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6IGZhaWxlZCBzZW5kaW5nIHN5bmNo
cm9ub3VzIG5ldHdvcmsgcHJvY2VzcyBtZXNzYWdlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJWx1KSIsIHBhZ2VJRC50b1VJbnQ2NCgp
LCBmcmFtZUlELnRvVUludDY0KCksIHJlc291cmNlTG9hZElkZW50aWZpZXIpOwogICAgICAgICBp
ZiAoYXV0byogcGFnZSA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5jb3JlUGFnZSgpIDogbnVsbHB0cikK
ICAgICAgICAgICAgIHBhZ2UtPmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3Rp
Y01lc3NhZ2UoV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjppbnRlcm5hbEVycm9yS2V5
KCksIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6c3luY2hyb25vdXNNZXNzYWdlRmFp
bGVkS2V5KCksIFdlYkNvcmU6OlNob3VsZFNhbXBsZTo6Tm8pOwogICAgICAgICByZXNwb25zZSA9
IFJlc291cmNlUmVzcG9uc2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcAppbmRleCA4OGJkNTNiZjFmOGZiNzM2ZWIx
NzNlZjY0ZjFlMzAzZDFiYjEwMGMxLi5mYTUzOTI1ZWI2OGYwNDJmZWM3OWJmMzg4NjBiMjc2MDMy
NWZiNTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJS
ZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC04OCwxNiArODgsMTYgQEAgdm9pZCBXZWJSZXNvdXJj
ZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHByb3Bvc2VkUmVxdWVz
dCwgUmVzb3UKICAgICBSZWY8V2ViUmVzb3VyY2VMb2FkZXI+IHByb3RlY3RlZFRoaXMoKnRoaXMp
OwogCiAgICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6Ondp
bGxTZW5kUmVxdWVzdCB0byAnJXMnIiwgcHJvcG9zZWRSZXF1ZXN0LnVybCgpLnN0cmluZygpLmxh
dGluMSgpLmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgid2lsbFNlbmRSZXF1
ZXN0OiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3Vy
Y2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2
NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5y
ZXNvdXJjZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3aWxsU2VuZFJlcXVlc3Q6
IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlE
ID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCks
IG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFt
ZXRlcnMucmVzb3VyY2VJRCk7CiAKICAgICBpZiAobV9jb3JlTG9hZGVyLT5kb2N1bWVudExvYWRl
cigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLm1heWJlTG9hZEZhbGxiYWNrRm9yUmVkaXJlY3Qo
bV9jb3JlTG9hZGVyLmdldCgpLCBwcm9wb3NlZFJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpKSB7
Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIndpbGxTZW5kUmVxdWVzdDogZXhpdGlu
ZyBlYXJseSBiZWNhdXNlIG1heWJlTG9hZEZhbGxiYWNrRm9yUmVkaXJlY3QgcmV0dXJuZWQgZmFs
c2UgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNl
SUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQo
KSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVz
b3VyY2VJRCk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIndpbGxTZW5kUmVxdWVz
dDogZXhpdGluZyBlYXJseSBiZWNhdXNlIG1heWJlTG9hZEZhbGxiYWNrRm9yUmVkaXJlY3QgcmV0
dXJuZWQgZmFsc2UgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQu
dG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3Ry
YWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIG1fY29yZUxvYWRlci0+d2lsbFNlbmRSZXF1ZXN0KFdURk1vdmUocHJvcG9zZWRSZXF1ZXN0
KSwgcmVkaXJlY3RSZXNwb25zZSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3Rl
Y3RlZFRoaXMpXShSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KSB7CiAgICAgICAgIGlmICghbV9j
b3JlTG9hZGVyIHx8ICFtX2NvcmVMb2FkZXItPmlkZW50aWZpZXIoKSkgewotICAgICAgICAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgid2lsbFNlbmRSZXF1ZXN0OiBleGl0aW5nIGVhcmx5IGJl
Y2F1c2Ugbm8gY29yZWxvYWRlciBvciBpZGVudGlmaWVyIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFj
a2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZy
YW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOworICAgICAgICAgICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRCgid2lsbFNlbmRSZXF1ZXN0OiBleGl0aW5nIGVhcmx5IGJlY2F1
c2Ugbm8gY29yZWxvYWRlciBvciBpZGVudGlmaWVyIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2lu
Z1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1l
SUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtMTEzLDEyICsxMTMsMTIgQEAgdm9pZCBXZWJS
ZXNvdXJjZUxvYWRlcjo6ZGlkU2VuZERhdGEodWludDY0X3QgYnl0ZXNTZW50LCB1aW50NjRfdCB0
b3RhbEJ5dGVzVG9CZVMKIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25z
ZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgYm9vbCBuZWVkc0NvbnRpbnVlRGlk
UmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSkKIHsKICAgICBMT0coTmV0d29yaywgIihXZWJQcm9jZXNz
KSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlIGZvciAnJXMnLiBTdGF0dXMg
JWQuIiwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCksIHJlc3Bv
bnNlLmh0dHBTdGF0dXNDb2RlKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJl
Y2VpdmVSZXNwb25zZTogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgc3RhdHVzID0gJWQpIiwgbV90cmFja2luZ1Bh
cmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQs
IG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQsIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2Rl
KCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZTogKHBh
Z2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAl
IiBQUkl1NjQgIiwgc3RhdHVzID0gJWQpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRv
VUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFj
a2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSk7CiAK
ICAgICBSZWY8V2ViUmVzb3VyY2VMb2FkZXI+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwogCiAgICAg
aWYgKG1fY29yZUxvYWRlci0+ZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3Qo
KS5tYXliZUxvYWRGYWxsYmFja0ZvclJlc3BvbnNlKG1fY29yZUxvYWRlci5nZXQoKSwgcmVzcG9u
c2UpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25z
ZTogbm90IGNvbnRpbnVpbmcgbG9hZCBiZWNhdXNlIHRoZSBjb250ZW50IGlzIGFscmVhZHkgY2Fj
aGVkIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJj
ZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0
KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJl
c291cmNlSUQpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVz
cG9uc2U6IG5vdCBjb250aW51aW5nIGxvYWQgYmVjYXVzZSB0aGUgY29udGVudCBpcyBhbHJlYWR5
IGNhY2hlZCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJ
bnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tp
bmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0x
MzUsNyArMTM1LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNl
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib28KICAgICAgICAgICAgIGlmICht
X2NvcmVMb2FkZXIgJiYgbV9jb3JlTG9hZGVyLT5pZGVudGlmaWVyKCkpCiAgICAgICAgICAgICAg
ICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpDb250aW51ZURpZFJlY2Vp
dmVSZXNwb25zZSgpKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6IG5vdCBjb250aW51aW5nIGxvYWQg
YmVjYXVzZSBubyBjb3JlTG9hZGVyIG9yIG5vIElEIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2lu
Z1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1l
SUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOworICAgICAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZTogbm90IGNvbnRpbnVpbmcg
bG9hZCBiZWNhdXNlIG5vIGNvcmVMb2FkZXIgb3Igbm8gSUQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3Ry
YWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMu
ZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKICAg
ICAgICAgfTsKICAgICB9CiAKQEAgLTE0OCw3ICsxNDgsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9h
ZGVyOjpkaWRSZWNlaXZlRGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGludDY0
X3QgZQogICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIW1faXNQcm9jZXNzaW5nTmV0d29ya1Jlc3Bv
bnNlLCAiTmV0d29yayBwcm9jZXNzIHNob3VsZCBub3Qgc2VuZCBkYXRhIHVudGlsIHdlJ3ZlIHZh
bGlkYXRlZCB0aGUgcmVzcG9uc2UiKTsKIAogICAgIGlmICghbV9udW1CeXRlc1JlY2VpdmVkKSB7
Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVEYXRhOiBTdGFydGVk
IHJlY2VpdmluZyBkYXRhIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2
NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFn
ZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQ
YXJhbWV0ZXJzLnJlc291cmNlSUQpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJk
aWRSZWNlaXZlRGF0YTogU3RhcnRlZCByZWNlaXZpbmcgZGF0YSAocGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1f
dHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVy
cy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwog
ICAgIH0KICAgICBtX251bUJ5dGVzUmVjZWl2ZWQgKz0gZGF0YS5zaXplKCk7CiAKQEAgLTE1OCw3
ICsxNTgsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShjb25zdCBJ
UEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGludDY0X3QgZQogdm9pZCBXZWJSZXNvdXJjZUxvYWRl
cjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkKGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29y
a0xvYWRNZXRyaWNzKQogewogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291
cmNlTG9hZGVyOjpkaWRGaW5pc2hSZXNvdXJjZUxvYWQgZm9yICclcyciLCBtX2NvcmVMb2FkZXIt
PnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRCgiZGlkRmluaXNoUmVzb3VyY2VMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBsZW5ndGggPSAlemQp
IiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJh
bWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQsIG1fbnVtQnl0
ZXNSZWNlaXZlZCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkRmluaXNoUmVzb3Vy
Y2VMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBsZW5ndGggPSAlemQpIiwgbV90cmFja2luZ1BhcmFtZXRl
cnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50
NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCwgbV9udW1CeXRlc1JlY2VpdmVk
KTsKIAogICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIW1faXNQcm9jZXNzaW5nTmV0d29ya1Jlc3Bv
bnNlLCAiTG9hZCBzaG91bGQgbm90IGJlIGFibGUgdG8gZmluaXNoIGJlZm9yZSB3ZSd2ZSB2YWxp
ZGF0ZWQgdGhlIHJlc3BvbnNlIik7CiAgICAgbV9jb3JlTG9hZGVyLT5kaWRGaW5pc2hMb2FkaW5n
KG5ldHdvcmtMb2FkTWV0cmljcyk7CkBAIC0xNjcsNyArMTY3LDcgQEAgdm9pZCBXZWJSZXNvdXJj
ZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkKGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYg
bmV0d29ya0wKIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxSZXNvdXJjZUxvYWQoY29u
c3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7CiAgICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2Vz
cykgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxSZXNvdXJjZUxvYWQgZm9yICclcyciLCBtX2Nv
cmVMb2FkZXItPnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgiZGlkRmFpbFJlc291cmNlTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3Ry
YWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMu
ZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgiZGlkRmFpbFJlc291cmNlTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3Ry
YWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMu
ZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKIAog
ICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIW1faXNQcm9jZXNzaW5nTmV0d29ya1Jlc3BvbnNlLCAi
TG9hZCBzaG91bGQgbm90IGJlIGFibGUgdG8gZmluaXNoIGJlZm9yZSB3ZSd2ZSB2YWxpZGF0ZWQg
dGhlIHJlc3BvbnNlIik7CiAKQEAgLTE3OSw3ICsxNzksNyBAQCB2b2lkIFdlYlJlc291cmNlTG9h
ZGVyOjpkaWRGYWlsUmVzb3VyY2VMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogdm9p
ZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgpCiB7
CiAgICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEJs
b2NrQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgZm9yICclcyciLCBtX2NvcmVMb2FkZXItPnVybCgp
LnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgi
ZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNr
aW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJh
bWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgiZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTogKHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQg
IikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1Bh
cmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJj
ZUlEKTsKIAogICAgIG1fY29yZUxvYWRlci0+ZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSgpOwogfQpAQCAtMTg3LDcgKzE4Nyw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEJs
b2NrQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKQogdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6c3Rv
cExvYWRpbmdBZnRlclhGcmFtZU9wdGlvbnNPckNvbnRlbnRTZWN1cml0eVBvbGljeURlbmllZChj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBMT0coTmV0d29yaywgIihX
ZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6c3RvcExvYWRpbmdBZnRlclhGcmFtZU9wdGlv
bnNPckNvbnRlbnRTZWN1cml0eVBvbGljeURlbmllZCBmb3IgJyVzJyIsIG1fY29yZUxvYWRlci0+
dXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKCJzdG9wTG9hZGluZ0FmdGVyWEZyYW1lT3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5
RGVuaWVkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJ
bnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVy
cy5yZXNvdXJjZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdG9wTG9hZGluZ0Fm
dGVyWEZyYW1lT3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVkOiAocGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2
NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5n
UGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291
cmNlSUQpOwogCiAgICAgbV9jb3JlTG9hZGVyLT5kb2N1bWVudExvYWRlcigpLT5zdG9wTG9hZGlu
Z0FmdGVyWEZyYW1lT3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVkKG1fY29yZUxv
YWRlci0+aWRlbnRpZmllcigpLCByZXNwb25zZSk7CiB9CkBAIC0xOTYsMTMgKzE5NiwxMyBAQCB2
b2lkIFdlYlJlc291cmNlTG9hZGVyOjpzdG9wTG9hZGluZ0FmdGVyWEZyYW1lT3B0aW9uc09yQ29u
dGVudFNlY3VyaXR5UG9saWN5RGVuaQogdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2
ZVJlc291cmNlKGNvbnN0IFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUmIGhhbmRsZSkKIHsKICAg
ICBMT0coTmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2
ZVJlc291cmNlIGZvciAnJXMnIiwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEo
KS5kYXRhKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNvdXJj
ZTogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNl
SUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQo
KSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVz
b3VyY2VJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc291cmNl
OiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJ
RCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgp
LCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJh
bWV0ZXJzLnJlc291cmNlSUQpOwogCiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyID0g
aGFuZGxlLnRyeVdyYXBJblNoYXJlZEJ1ZmZlcigpOwogCiAgICAgaWYgKCFidWZmZXIpIHsKICAg
ICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gY3JlYXRlIGJ1ZmZlciBmcm9tIFNoYXJlYWJsZVJl
c291cmNlIHNlbnQgZnJvbSB0aGUgbmV0d29yayBwcm9jZXNzLiIpOwotICAgICAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzb3VyY2U6IFVuYWJsZSB0byBjcmVhdGUgU2hh
cmVkQnVmZmVyIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBy
ZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRv
VUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0
ZXJzLnJlc291cmNlSUQpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNl
aXZlUmVzb3VyY2U6IFVuYWJsZSB0byBjcmVhdGUgU2hhcmVkQnVmZmVyIChwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIp
IiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJh
bWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJ
RCk7CiAgICAgICAgIGlmIChhdXRvKiBmcmFtZSA9IG1fY29yZUxvYWRlci0+ZnJhbWUoKSkgewog
ICAgICAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSBmcmFtZS0+cGFnZSgpKQogICAgICAgICAgICAg
ICAgIHBhZ2UtPmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2Uo
V2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjppbnRlcm5hbEVycm9yS2V5KCksIFdlYkNv
cmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6Y3JlYXRlU2hhcmVkQnVmZmVyRmFpbGVkS2V5KCks
IFdlYkNvcmU6OlNob3VsZFNhbXBsZTo6Tm8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKaW5kZXggNTg2NTQzNzE4ZTVlODM4
OGI4YjQxYWIwMjAzN2FjNzZlNzg2OTM3Yy4uOWMxMTQ3ZGEwNTE1M2RkN2FjNDRhZjMxNTgxZTIy
MWI2OWJlOTI0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJSZXNvdXJjZUxvYWRlci5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQ29ubmVj
dGlvbi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKICNpbmNsdWRlICJTaGFyZWFibGVS
ZXNvdXJjZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtNTIsNyArNTMsNyBAQCBjbGFzcyBXZWJSZXNv
dXJjZUxvYWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlJlc291cmNlTG9hZGVyPiwgcHVibGlj
IElQQzo6TWVzcwogcHVibGljOgogICAgIHN0cnVjdCBUcmFja2luZ1BhcmFtZXRlcnMgewogICAg
ICAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQ7Ci0gICAgICAgIHVpbnQ2NF90IGZy
YW1lSUQgeyAwIH07CisgICAgICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEOwog
ICAgICAgICBSZXNvdXJjZUxvYWRJZGVudGlmaWVyIHJlc291cmNlSUQgeyAwIH07CiAgICAgfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCmluZGV4IDZmYzA5YzRmNjViMjQ1
YjYwYmY0ZDRmNTk3YTlmOTBhZDRkMGFhZjkuLjQ5ZDIwYzdjNDljMDJhYTk1OWFhNGFlNGQ5ZWVj
OGZlODNjNWZlN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKQEAgLTcz
LDcgKzczLDcgQEAgc3RhdGljIGNvbnN0IFNlY29uZHMgc3luY1dvcmtlclRlcm1pbmF0aW9uVGlt
ZW91dCB7IDEwMF9tcyB9OyAvLyBPbmx5IHVzZWQgYnkgbGEKIAogY2xhc3MgU2VydmljZVdvcmtl
ckZyYW1lTG9hZGVyQ2xpZW50IGZpbmFsIDogcHVibGljIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQg
ewogcHVibGljOgotICAgIFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudChXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFN0cmluZyYgdXNlckFnZW50KQorICAgIFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudChX
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCkKICAgICAgICAgOiBtX2Nvbm5lY3Rp
b24oY29ubmVjdGlvbikKICAgICAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgICAg
ICwgbV9wYWdlSUQocGFnZUlEKQpAQCAtOTYsMTMgKzk2LDEzIEBAIHByaXZhdGU6CiAKICAgICBQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Nlc3Npb25J
RDsgfQogICAgIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX3BhZ2VJRDsgfQotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFt
ZUlEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9mcmFtZUlEOyB9CisgICAgT3B0aW9uYWw8V2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9m
cmFtZUlEOyB9CiAgICAgU3RyaW5nIHVzZXJBZ2VudChjb25zdCBVUkwmKSBmaW5hbCB7IHJldHVy
biBtX3VzZXJBZ2VudDsgfQogCiAgICAgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24mIG1f
Y29ubmVjdGlvbjsKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKLSAgICBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciBtX3BhZ2VJRDsKLSAgICB1aW50NjRfdCBtX2ZyYW1lSUQgeyAwIH07
CisgICAgUGFnZUlkZW50aWZpZXIgbV9wYWdlSUQ7CisgICAgRnJhbWVJZGVudGlmaWVyIG1fZnJh
bWVJRDsKICAgICBTdHJpbmcgbV91c2VyQWdlbnQ7CiB9OwogCkBAIC0xNTMsNyArMTUzLDggQEAg
dm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6aW5zdGFsbFNlcnZpY2VXb3JrZXIo
Y29uc3QgU2VydmljZVdvcmtlckNvbnQKIAogICAgIC8vIEZJWE1FOiBUaGlzIG1ldGhvZCBzaG91
bGQgYmUgbW92ZWQgZGlyZWN0bHkgdG8gV2ViQ29yZTo6U1dDb250ZXh0TWFuYWdlcjo6Q29ubmVj
dGlvbgogICAgIC8vIElmIGl0IHdlcmVuJ3QgZm9yIFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNs
aWVudCdzIGRlcGVuZGVuY2Ugb24gV2ViRG9jdW1lbnRMb2FkZXIsIHRoaXMgY291bGQgYWxyZWFk
eSBoYXBwZW4uCi0gICAgYXV0byBmcmFtZUxvYWRlckNsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8
U2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50PigqdGhpcywgc2Vzc2lvbklELCBtX3BhZ2VJ
RCwgKyttX3ByZXZpb3VzU2VydmljZVdvcmtlcklELCBlZmZlY3RpdmVVc2VyQWdlbnQpOworICAg
IC8vIEZJWE1FOiBXZWlyZCB0byBwYXNzIG1fcHJldmlvdXNTZXJ2aWNlV29ya2VySUQgYXMgYSBG
cmFtZUlkZW50aWZpZXIuCisgICAgYXV0byBmcmFtZUxvYWRlckNsaWVudCA9IHN0ZDo6bWFrZV91
bmlxdWU8U2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50PigqdGhpcywgc2Vzc2lvbklELCBt
X3BhZ2VJRCwgZnJhbWVJZGVudGlmaWVyRnJvbUlEKCsrbV9wcmV2aW91c1NlcnZpY2VXb3JrZXJJ
RCksIGVmZmVjdGl2ZVVzZXJBZ2VudCk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24ubG9hZGVyQ2xp
ZW50Rm9yTWFpbkZyYW1lID0gZnJhbWVMb2FkZXJDbGllbnQuZ2V0KCk7CiAgICAgbV9sb2FkZXJz
LmFkZChXVEZNb3ZlKGZyYW1lTG9hZGVyQ2xpZW50KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
aW5kZXggM2M4NzJmNWFkZjM5YmVhY2QzYTcwNjY3YjI2ODlkMzhjOWIxMTEyZS4uOWI5MTgyOTQx
NDAwZmI3ZjQwMjQxZDE0ZjBjZjRhMDQ1NTJhZWVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
QEAgLTI2NSw3ICsyNjUsOCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Zm9jdXNlZEZyYW1lQ2hh
bmdlZChGcmFtZSogZnJhbWUpCiB7CiAgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gZnJhbWUgPyBX
ZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpIDogbnVsbHB0cjsKIAotICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6Rm9jdXNlZEZyYW1lQ2hhbmdlZCh3ZWJGcmFtZSA/IHdlYkZyYW1lLT5m
cmFtZUlEKCkgOiAwKSwgbV9wYWdlLnBhZ2VJRCgpKTsKKyAgICAvLyBGSVhNRTogRm9jdXNlZEZy
YW1lQ2hhbmdlZCBzaG91bGQgdGFrZSBhbiBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LgorICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Rm9jdXNlZEZyYW1lQ2hhbmdlZCh3ZWJGcmFtZSA/IHdl
YkZyYW1lLT5mcmFtZUlEKCkgOiBGcmFtZUlkZW50aWZpZXIgeyB9KSwgbV9wYWdlLnBhZ2VJRCgp
KTsKIH0KIAogUGFnZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3coRnJhbWUmIGZyYW1l
LCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXaW5kb3dGZWF0dXJlcyYg
d2luZG93RmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIG5hdmlnYXRpb25BY3Rpb24p
CkBAIC02MjUsNyArNjI2LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNo
YW5nZWQoRnJhbWUmIGZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb24KICAgICAgICAgV2Vi
RnJhbWUqIGxhcmdlc3RGcmFtZSA9IGZpbmRMYXJnZXN0RnJhbWVJbkZyYW1lU2V0KG1fcGFnZSk7
CiAgICAgICAgIGlmIChsYXJnZXN0RnJhbWUgIT0gbV9jYWNoZWRGcmFtZVNldExhcmdlc3RGcmFt
ZS5nZXQoKSkgewogICAgICAgICAgICAgbV9jYWNoZWRGcmFtZVNldExhcmdlc3RGcmFtZSA9IGxh
cmdlc3RGcmFtZTsKLSAgICAgICAgICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkZyYW1lU2V0TGFyZ2VzdEZyYW1lQ2hhbmdlZChsYXJnZXN0RnJhbWUgPyBsYXJnZXN0RnJh
bWUtPmZyYW1lSUQoKSA6IDApKTsKKyAgICAgICAgICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkZyYW1lU2V0TGFyZ2VzdEZyYW1lQ2hhbmdlZChsYXJnZXN0RnJhbWUgPyBs
YXJnZXN0RnJhbWUtPmZyYW1lSUQoKSA6IEZyYW1lSWRlbnRpZmllciB7IH0pKTsKICAgICAgICAg
fQogICAgIH0KIApAQCAtMTMxNiwxMiArMTMxNywxMiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6
ZGlkSW52YWxpZGF0ZURvY3VtZW50TWFya2VyUmVjdHMoKQogfQogCiAjaWYgRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpoYXNTdG9yYWdlQWNj
ZXNzKFJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWlu
JiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJD
aHJvbWVDbGllbnQ6Omhhc1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFt
ZURvbWFpbiwgUmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIG1fcGFnZS5oYXNTdG9yYWdlQWNjZXNzKFdU
Rk1vdmUoc3ViRnJhbWVEb21haW4pLCBXVEZNb3ZlKHRvcEZyYW1lRG9tYWluKSwgZnJhbWVJRCwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6
cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwg
UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFn
ZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50
ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2
b2lkIFdlYkNocm9tZUNsaWVudDo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21h
aW4mJiBzdWJGcmFtZURvbWFpbiwgUmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwg
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hv
d24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIG1fcGFnZS5yZXF1ZXN0U3RvcmFnZUFj
Y2VzcyhXVEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0b3BGcmFtZURvbWFpbiksIGZy
YW1lSUQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApp
bmRleCBjZWQzNmE2YzI1YjdlNGY4MzQ0YTU4OTk0MDA2NzkxZjdjYzkyNzZmLi4yZGM2NjIyYzFi
N2YxYzVhOTVhMmNjZDc5YjMyMDliYjU4NzJhNjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0z
NjcsOCArMzY3LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZEludmFsaWRhdGVEb2N1bWVudE1h
cmtlclJlY3RzKCkgZmluYWw7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNT
KQotICAgIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYm
IHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9t
YWluLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV1RGOjpDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKLSAgICB2b2lkIHJlcXVlc3RTdG9y
YWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1l
SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQo
V2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQ
cm9tcHRXYXNTaG93bik+JiYpIGZpbmFsOworICAgIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYpIGZpbmFsOworICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4m
JiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VB
Y2Nlc3NXYXNHcmFudGVkLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYm
KSBmaW5hbDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDY1NzM5YmI4YWE5NmRmZThjMmIwZTI2YzE3
MWE5ZjliNzZiNzM0MDkuLjcwOTgwZWU1YjViOGQ3MDM3ZTQ1YjNmMmFmM2UyYmIxZmEwMzk0YTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTIwLDcgKzEyMCw3IEBAIE9w
dGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBXZWJGcmFtZUxvYWRlckNsaWVudDo6cGFnZUlEKCkgY29u
c3QKICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQogCi1PcHRpb25hbDx1aW50NjRfdD4gV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmZyYW1lSUQoKSBjb25zdAorT3B0aW9uYWw8RnJhbWVJZGVudGlm
aWVyPiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZnJhbWVJRCgpIGNvbnN0CiB7CiAgICAgaWYgKG1f
ZnJhbWUpCiAgICAgICAgIHJldHVybiBtX2ZyYW1lLT5mcmFtZUlEKCk7CkBAIC01NDYsNyArNTQ2
LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9u
YWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImIGUKICAgICBpZiAoIXdlYlBhZ2UpCiAgICAgICAg
IHJldHVybjsKIAotICAgIFJFTEVBU0VfTE9HKE5ldHdvcmssICIlcCAtIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQ6IChwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiKSIsIHRoaXMsIHdlYlBhZ2UtPnBhZ2VJRCgpLnRv
VUludDY0KCksIG1fZnJhbWUtPmZyYW1lSUQoKSk7CisgICAgUkVMRUFTRV9MT0coTmV0d29yaywg
IiVwIC0gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIpIiwgdGhpcywg
d2ViUGFnZS0+cGFnZUlEKCkudG9VSW50NjQoKSwgbV9mcmFtZS0+ZnJhbWVJRCgpLnRvVUludDY0
KCkpOwogCiAgICAgUmVmUHRyPEFQSTo6T2JqZWN0PiB1c2VyRGF0YTsKIApAQCAtNTgyLDcgKzU4
Miw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWQoY29u
c3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAgICAgaWYgKCF3ZWJQYWdlKQogICAgICAgICByZXR1
cm47CiAKLSAgICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0ICIpIiwgdGhpcywgd2ViUGFnZS0+cGFnZUlEKCkudG9VSW50NjQoKSwgbV9mcmFt
ZS0+ZnJhbWVJRCgpKTsKKyAgICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIpIiwgdGhpcywgd2ViUGFnZS0+cGFnZUlEKCkudG9VSW50NjQo
KSwgbV9mcmFtZS0+ZnJhbWVJRCgpLnRvVUludDY0KCkpOwogCiAgICAgUmVmUHRyPEFQSTo6T2Jq
ZWN0PiB1c2VyRGF0YTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBjOGZiMmFm
MjEyNTY2YzY0Njg2MDc3YTBjODlhZjgxMDUzOTBhNjgwLi42NDFiOGMwNjYzNDEzODBjMDcwMjgy
MGI4Nzg5ZGQxODVlOGJiMDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtNTIs
NyArNTIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBseVRvRG9jdW1lbnRMb2FkZXIoV2Vic2l0
ZVBvbGljaWVzRGF0YSYmKTsKIAogICAgIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
PiBwYWdlSUQoKSBjb25zdCBmaW5hbDsKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCgp
IGNvbnN0IGZpbmFsOworICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJh
bWVJRCgpIGNvbnN0IGZpbmFsOwogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0
IGZpbmFsOwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuY3BwCmluZGV4IDcz
OGJlOTJiOTJkYzczZDJkZjY3N2VlMzRlYzEzMDgxYTYwZjFhMWMuLmY2YzU1N2Q1ZjBmZDIwMWRi
YjUwNTExNDdlYmMyNzBhNWI0NWNmM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmNwcApAQCAtNTAsNyArNTAsNyBAQCBXZWJDb29raWVK
YXI6OldlYkNvb2tpZUphcigpCiAKIFN0cmluZyBXZWJDb29raWVKYXI6OmNvb2tpZXMoV2ViQ29y
ZTo6RG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCkgY29uc3QKIHsKLSAgICBPcHRp
b25hbDx1aW50NjRfdD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZy
YW1lSUQ7CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKICAgICBpZiAoYXV0
byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGZyYW1lSUQgPSBmcmFtZS0+
bG9hZGVyKCkuY2xpZW50KCkuZnJhbWVJRCgpOwpAQCAtNjcsNyArNjcsNyBAQCBTdHJpbmcgV2Vi
Q29va2llSmFyOjpjb29raWVzKFdlYkNvcmU6OkRvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJM
JiB1cmwpIGNvbnN0CiAKIHZvaWQgV2ViQ29va2llSmFyOjpzZXRDb29raWVzKFdlYkNvcmU6OkRv
Y3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY29va2llU3Ry
aW5nKQogewotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFsPEZy
YW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFn
ZUlEOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKICAgICAgICAg
ZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CkBAIC04NSw3ICs4
NSw3IEBAIGJvb2wgV2ViQ29va2llSmFyOjpjb29raWVzRW5hYmxlZChjb25zdCBXZWJDb3JlOjpE
b2N1bWVudCYgZG9jdW1lbnQpIGNvbnN0CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3RkOjpw
YWlyPFN0cmluZywgV2ViQ29yZTo6U2VjdXJlQ29va2llc0FjY2Vzc2VkPiBXZWJDb29raWVKYXI6
OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNz
aW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZv
JiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgV2ViQ29yZTo6SW5jbHVkZVNlY3Vy
ZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CitzdGQ6OnBhaXI8U3RyaW5nLCBX
ZWJDb3JlOjpTZWN1cmVDb29raWVzQWNjZXNzZWQ+IFdlYkNvb2tpZUphcjo6Y29va2llUmVxdWVz
dEhlYWRlckZpZWxkVmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5m
bywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0
aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tp
ZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CiB7CiAgICAgU3RyaW5nIGNvb2tpZVN0cmlu
ZzsKICAgICBib29sIHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCA9IGZhbHNlOwpAQCAtOTYsNyArOTYs
NyBAQCBzdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb3JlOjpTZWN1cmVDb29raWVzQWNjZXNzZWQ+IFdl
YkNvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYQogCiBib29sIFdlYkNvb2tpZUphcjo6Z2V0UmF3
Q29va2llcyhjb25zdCBXZWJDb3JlOjpEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJs
LCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYgcmF3Q29va2llcykgY29uc3QKIHsKLSAgICBPcHRp
b25hbDx1aW50NjRfdD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZy
YW1lSUQ7CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKICAgICBpZiAoYXV0
byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGZyYW1lSUQgPSBmcmFtZS0+
bG9hZGVyKCkuY2xpZW50KCkuZnJhbWVJRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJDb29raWVKYXIuaAppbmRleCA1NTliZDBlNTBiYmVjMzVmZmIyNTZiOTEy
YjdiNDZkYTk5NGIyZDQ4Li41ZGNhY2RkOTY4ZTZhNGIwNjI3Yzc4N2M2ZGExYTUxNTQ3MWJmODhk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVK
YXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIu
aApAQCAtMzYsNyArMzYsNyBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGNvb2tpZXMoV2ViQ29yZTo6
RG9jdW1lbnQmLCBjb25zdCBVUkwmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHNldENvb2tpZXMo
V2ViQ29yZTo6RG9jdW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0cmlu
ZykgZmluYWw7CiAgICAgYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBXZWJDb3JlOjpEb2N1bWVu
dCYpIGNvbnN0IGZpbmFsOwotICAgIHN0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvcmU6OlNlY3VyZUNv
b2tpZXNBY2Nlc3NlZD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgUEFMOjpT
ZXNzaW9uSUQmLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRl
SW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzKSBj
b25zdCBmaW5hbDsKKyAgICBzdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb3JlOjpTZWN1cmVDb29raWVz
QWNjZXNzZWQ+IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lv
bklEJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8m
LCBjb25zdCBVUkwmLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25h
bDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVz
KSBjb25zdCBmaW5hbDsKICAgICBib29sIGdldFJhd0Nvb2tpZXMoY29uc3QgV2ViQ29yZTo6RG9j
dW1lbnQmLCBjb25zdCBVUkwmLCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYpIGNvbnN0IGZpbmFs
OwogICAgIHZvaWQgZGVsZXRlQ29va2llKGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50JiwgY29uc3Qg
VVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1lKSBmaW5hbDsKIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKaW5kZXggNjBjZmQ4ZDJh
MTc1NGE3YWNlZDU4ZDYxZGYxN2JlNGMxNDMxMzY5NC4uZjBlYmZlZGJiMmU5NTNhZDBmYzA3Zjlm
ODE2NjA5ZGI5NzM1YjY2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkZyYW1lLmNwcApAQCAtOTUsMTIgKzk1LDYgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKIERFRklORV9ERUJVR19PTkxZX0dMT0JBTChXVEY6OlJlZkNvdW50ZWRMZWFrQ291bnRlciwg
d2ViRnJhbWVDb3VudGVyLCAoIldlYkZyYW1lIikpOwogCi1zdGF0aWMgdWludDY0X3QgZ2VuZXJh
dGVGcmFtZUlEKCkKLXsKLSAgICBzdGF0aWMgdWludDY0X3QgdW5pcXVlRnJhbWVJRCA9IDE7Ci0g
ICAgcmV0dXJuIHVuaXF1ZUZyYW1lSUQrKzsKLX0KLQogc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRl
TGlzdGVuZXJJRCgpCiB7CiAgICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZUxpc3RlbmVySUQgPSAx
OwpAQCAtMTQ4LDcgKzE0Miw3IEBAIFJlZjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZShzdGQ6
OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+IGZyYW1lTG9hZGVyCiAKIFdlYkZyYW1l
OjpXZWJGcmFtZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+IGZyYW1lTG9h
ZGVyQ2xpZW50KQogICAgIDogbV9mcmFtZUxvYWRlckNsaWVudChXVEZNb3ZlKGZyYW1lTG9hZGVy
Q2xpZW50KSkKLSAgICAsIG1fZnJhbWVJRChnZW5lcmF0ZUZyYW1lSUQoKSkKKyAgICAsIG1fZnJh
bWVJRChGcmFtZUlkZW50aWZpZXI6OmdlbmVyYXRlKCkpCiB7CiAgICAgbV9mcmFtZUxvYWRlckNs
aWVudC0+c2V0V2ViRnJhbWUodGhpcyk7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRk
V2ViRnJhbWUobV9mcmFtZUlELCB0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJGcmFtZS5oCmluZGV4IDcxYjM4ZjYxYWIxOTUwNTViNDQ3ZTg3YmZmZjdlOTY0MDZk
ZWVhOWMuLjFlYzUwNzU0MjU3Zjg2NmViMmFlOGVjNGNiMGM2ZDFmZmU4NjU2ZWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaApAQCAtODAsNyArODAsNyBA
QCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZSgpIGNvbnN0IHsgcmV0dXJu
IG1fY29yZUZyYW1lOyB9CiAKICAgICBGcmFtZUluZm9EYXRhIGluZm8oKSBjb25zdDsKLSAgICB1
aW50NjRfdCBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9CisgICAgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0K
IAogICAgIGVudW0gY2xhc3MgRm9yTmF2aWdhdGlvbkFjdGlvbiB7IE5vLCBZZXMgfTsKICAgICB1
aW50NjRfdCBzZXRVcFBvbGljeUxpc3RlbmVyKFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmLCBGb3JOYXZpZ2F0aW9uQWN0aW9uKTsK
QEAgLTE4Nyw3ICsxODcsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJGcmFt
ZUxvYWRlckNsaWVudD4gbV9mcmFtZUxvYWRlckNsaWVudDsKICAgICBMb2FkTGlzdGVuZXIqIG1f
bG9hZExpc3RlbmVyIHsgbnVsbHB0ciB9OwogICAgIAotICAgIHVpbnQ2NF90IG1fZnJhbWVJRCB7
IDAgfTsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbV9mcmFtZUlEOwogCiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKICAgICB1aW50NjRfdCBtX2ZpcnN0TGF5ZXJUcmVlVHJhbnNhY3Rp
b25JREFmdGVyRGlkQ29tbWl0TG9hZCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCmluZGV4IGYyOGRlNTY4ZWM1MTVhNTFjMzhl
MDljYWFjNDRlYTc3ZjIxZDNkYmUuLjFmMDE2YWVhZGE5OTZmOTYzZGQ1ZTRlZmI5NmQwY2FmZTYw
YWQ2MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYklu
c3BlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5z
cGVjdG9yLmNwcApAQCAtMjA5LDcgKzIwOSw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yOjpzaG93UmVz
b3VyY2VzKCkKICAgICB9KTsKIH0KIAotdm9pZCBXZWJJbnNwZWN0b3I6OnNob3dNYWluUmVzb3Vy
Y2VGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlkZW50aWZpZXIpCit2b2lkIFdlYkluc3BlY3Rvcjo6
c2hvd01haW5SZXNvdXJjZUZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlk
ZW50aWZpZXIpCiB7CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkud2ViRnJhbWUoZnJhbWVJZGVudGlmaWVyKTsKICAgICBpZiAoIWZyYW1lKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuaAppbmRleCA0ODllNDFj
MDc0ZmMzNjNiMzgwMTE2MTdiNGM3NTgyNGRmNTlkNDdiLi4yNmI4OWU1MjI3Nzk3OGQ1M2EzM2Zl
M2M3MTE1ZWFlYmJiMzgyOTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJJbnNwZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJJbnNwZWN0b3IuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkFQSU9iamVj
dC5oIgogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9O
b25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC02MCw3
ICs2MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNob3dDb25zb2xlKCk7CiAgICAgdm9pZCBzaG93
UmVzb3VyY2VzKCk7CiAKLSAgICB2b2lkIHNob3dNYWluUmVzb3VyY2VGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgc2hvd01haW5SZXNvdXJjZUZvckZyYW1lKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAKICAgICB2b2lkIHNldEF0dGFjaGVkKGJvb2wgYXR0
YWNoZWQpIHsgbV9hdHRhY2hlZCA9IGF0dGFjaGVkOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbgppbmRl
eCBiNmYzYzAxYjI0MjIyNmEyMGZiNDljNTQyMjAzYTZkY2RlMjIxZTY5Li5kYWY3NGI1ZTZiMDQz
MGI2YjBjYTNiZTI2MGY1ZmZhYmVjZDY1NDg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLm1lc3NhZ2VzLmluCkBAIC0yOSw3
ICsyOSw3IEBAIG1lc3NhZ2VzIC0+IFdlYkluc3BlY3RvciB7CiAgICAgU2hvd0NvbnNvbGUoKQog
ICAgIFNob3dSZXNvdXJjZXMoKQogCi0gICAgU2hvd01haW5SZXNvdXJjZUZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSWRlbnRpZmllcikKKyAgICBTaG93TWFpblJlc291cmNlRm9yRnJhbWUoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSWRlbnRpZmllcikKIAogICAgIE9wZW5Jbk5ld1RhYihT
dHJpbmcgdXJsKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCmluZGV4IDEzMzY1NzBkOTNhYTUxMTA2OTc4NTYxMTcwMjYwODkzYjhhM2NkYjQuLjAxZmYx
YTRmNDU3ZTUzOTM1NjE0MzI0YTA5NDg4NDAzYTc1MDU1YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xNDk3LDcgKzE0OTcsNyBAQCB2b2lk
IFdlYlBhZ2U6OnN1c3BlbmRGb3JQcm9jZXNzU3dhcCgpCiAgICAgc2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpEaWRTdXNwZW5kQWZ0ZXJQcm9jZXNzU3dhcCgpKTsKIH0KIAotdm9pZCBXZWJQ
YWdlOjpsb2FkVVJMSW5GcmFtZShVUkwmJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIHVp
bnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2U6OmxvYWRVUkxJbkZyYW1lKFVSTCYmIHVybCwg
Y29uc3QgU3RyaW5nJiByZWZlcnJlciwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAg
V2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJ
RCk7CiAgICAgaWYgKCFmcmFtZSkKQEAgLTE1MDYsNyArMTUwNiw3IEBAIHZvaWQgV2ViUGFnZTo6
bG9hZFVSTEluRnJhbWUoVVJMJiYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCB1aW50NjRf
dCBmcmFtZUlECiAgICAgZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5sb2FkKEZyYW1lTG9h
ZFJlcXVlc3QoKmZyYW1lLT5jb3JlRnJhbWUoKSwgUmVzb3VyY2VSZXF1ZXN0KHVybCwgcmVmZXJy
ZXIpLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdykpOwogfQog
Ci12b2lkIFdlYlBhZ2U6OmxvYWREYXRhSW5GcmFtZShJUEM6OkRhdGFSZWZlcmVuY2UmJiBkYXRh
LCBTdHJpbmcmJiBNSU1FVHlwZSwgU3RyaW5nJiYgZW5jb2RpbmdOYW1lLCBVUkwmJiBiYXNlVVJM
LCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlOjpsb2FkRGF0YUluRnJhbWUoSVBDOjpE
YXRhUmVmZXJlbmNlJiYgZGF0YSwgU3RyaW5nJiYgTUlNRVR5cGUsIFN0cmluZyYmIGVuY29kaW5n
TmFtZSwgVVJMJiYgYmFzZVVSTCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgV2Vi
RnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7
CiAgICAgaWYgKCFmcmFtZSkKQEAgLTE2MTQsNyArMTYxNCw3IEBAIHZvaWQgV2ViUGFnZTo6bmF2
aWdhdGVUb1BERkxpbmtXaXRoU2ltdWxhdGVkQ2xpY2soY29uc3QgU3RyaW5nJiB1cmwsIEludFBv
aW50IGRvCiAgICAgbWFpbkZyYW1lLT5sb2FkZXIoKS51cmxTZWxlY3RlZChtYWluRnJhbWVEb2N1
bWVudC0+Y29tcGxldGVVUkwodXJsKSwgZW1wdHlTdHJpbmcoKSwgbW91c2VFdmVudC5wdHIoKSwg
TG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgU2hvdWxkU2VuZFJlZmVy
cmVyOjpOZXZlclNlbmRSZWZlcnJlciwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hv
dWxkTm90QWxsb3cpOwogfQogCi12b2lkIFdlYlBhZ2U6OnN0b3BMb2FkaW5nRnJhbWUodWludDY0
X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZTo6c3RvcExvYWRpbmdGcmFtZShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCkKIHsKICAgICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtMzIzNCw3ICszMjM0
LDcgQEAgdm9pZCBXZWJQYWdlOjpzZXRTZXNzaW9uSUQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KQogICAgIG1fcGFnZS0+c2V0U2Vzc2lvbklEKHNlc3Npb25JRCk7CiB9CiAKLXZvaWQgV2ViUGFn
ZTo6ZGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGxp
c3RlbmVySUQsIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBQb2xpY3lBY3Rpb24g
cG9saWN5QWN0aW9uLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IERvd25sb2FkSUQmIGRv
d25sb2FkSUQsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVz
KQordm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24oRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IGNvbnN0IERvd25sb2FkSUQmIGRvd25sb2FkSUQsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0Rh
dGE+JiYgd2Vic2l0ZVBvbGljaWVzKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlmICghZnJhbWUpCkBAIC0z
MjQyLDcgKzMyNDIsNyBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbih1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBsaXN0ZW5lcklELCBQbwogICAgIGZyYW1lLT5kaWRS
ZWNlaXZlUG9saWN5RGVjaXNpb24obGlzdGVuZXJJRCwgaWRlbnRpZmllciwgcG9saWN5QWN0aW9u
LCBuYXZpZ2F0aW9uSUQsIGRvd25sb2FkSUQsIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7CiB9
CiAKLXZvaWQgV2ViUGFnZTo6Y29udGludWVXaWxsU3VibWl0Rm9ybSh1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBsaXN0ZW5lcklEKQordm9pZCBXZWJQYWdlOjpjb250aW51ZVdpbGxTdWJtaXRG
b3JtKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBsaXN0ZW5lcklEKQogewogICAg
IFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1l
SUQpOwogICAgIGlmICghZnJhbWUpCkBAIC0zMzg0LDcgKzMzODQsNyBAQCB2b2lkIFdlYlBhZ2U6
OnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZVNjcmlwdFdvcmxkKGNvbnN0IFN0cmluZyYgc2NyaXB0
LCBib29sIGZvcgogICAgIHJ1bkphdmFTY3JpcHQobWFpbldlYkZyYW1lKCksIHNjcmlwdCwgZm9y
Y2VVc2VyR2VzdHVyZSwgd29ybGROYW1lLCBjYWxsYmFja0lEKTsKIH0KIAotdm9pZCBXZWJQYWdl
OjpydW5KYXZhU2NyaXB0SW5GcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHNj
cmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lk
IFdlYlBhZ2U6OnJ1bkphdmFTY3JpcHRJbkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBj
b25zdCBTdHJpbmcmIHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBDYWxsYmFja0lEIGNh
bGxiYWNrSUQpCiB7CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgQVNTRVJUKG1haW5XZWJGcmFtZSgpICE9IGZyYW1l
KTsKQEAgLTM0NDUsNyArMzQ0NSw3IEBAIHZvaWQgV2ViUGFnZTo6Z2V0U2VsZWN0aW9uT3JDb250
ZW50c0FzU3RyaW5nKENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBzZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OlN0cmluZ0NhbGxiYWNrKHJlc3VsdFN0cmluZywgY2FsbGJhY2tJRCkpOwog
fQogCi12b2lkIFdlYlBhZ2U6OmdldFNvdXJjZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENh
bGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6Z2V0U291cmNlRm9yRnJhbWUoRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBTdHJp
bmcgcmVzdWx0U3RyaW5nOwogICAgIGlmIChXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSkKQEAgLTM0NTQsNyArMzQ1NCw3IEBAIHZvaWQg
V2ViUGFnZTo6Z2V0U291cmNlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ2FsbGJhY2tJRCBj
YWxsYmFja0lEKQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3RyaW5nQ2FsbGJh
Y2socmVzdWx0U3RyaW5nLCBjYWxsYmFja0lEKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6Z2V0TWFp
blJlc291cmNlRGF0YU9mRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ2FsbGJhY2tJRCBjYWxsYmFj
a0lEKQordm9pZCBXZWJQYWdlOjpnZXRNYWluUmVzb3VyY2VEYXRhT2ZGcmFtZShGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIFJlZlB0cjxTaGFy
ZWRCdWZmZXI+IGJ1ZmZlcjsKICAgICBpZiAoV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCkpIHsKQEAgLTM0ODUsNyArMzQ4NSw3IEBAIHN0
YXRpYyBSZWZQdHI8U2hhcmVkQnVmZmVyPiByZXNvdXJjZURhdGFGb3JGcmFtZShGcmFtZSogZnJh
bWUsIGNvbnN0IFVSTCYgcmVzb3VyCiAgICAgcmV0dXJuICZzdWJyZXNvdXJjZS0+ZGF0YSgpOwog
fQogCi12b2lkIFdlYlBhZ2U6OmdldFJlc291cmNlRGF0YUZyb21GcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBTdHJpbmcmIHJlc291cmNlVVJMU3RyaW5nLCBDYWxsYmFja0lEIGNhbGxiYWNr
SUQpCit2b2lkIFdlYlBhZ2U6OmdldFJlc291cmNlRGF0YUZyb21GcmFtZShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiByZXNvdXJjZVVSTFN0cmluZywgQ2FsbGJhY2tJRCBj
YWxsYmFja0lEKQogewogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlcjsKICAgICBpZiAo
YXV0byogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSkg
ewpAQCAtMzQ5OSw3ICszNDk5LDcgQEAgdm9pZCBXZWJQYWdlOjpnZXRSZXNvdXJjZURhdGFGcm9t
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiByZXNvdXJjZVUKICAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRhdGFDYWxsYmFjayhkYXRhUmVmZXJlbmNlLCBjYWxs
YmFja0lEKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6Z2V0V2ViQXJjaGl2ZU9mRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdlOjpnZXRXZWJB
cmNoaXZlT2ZGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ2FsbGJhY2tJRCBjYWxsYmFj
a0lEKQogewogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IGRh
dGE7CkBAIC0zODAyLDEzICszODAyLDEzIEBAIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyKiBXZWJQYWdl
OjpmdWxsU2NyZWVuTWFuYWdlcigpCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdlOjphZGRDb25z
b2xlTWVzc2FnZSh1aW50NjRfdCBmcmFtZUlELCBNZXNzYWdlU291cmNlIG1lc3NhZ2VTb3VyY2Us
IE1lc3NhZ2VMZXZlbCBtZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdWludDY0
X3QgcmVxdWVzdElEKQordm9pZCBXZWJQYWdlOjphZGRDb25zb2xlTWVzc2FnZShGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgTWVzc2FnZVNvdXJjZSBtZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwg
bWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVpbnQ2NF90IHJlcXVlc3RJRCkK
IHsKICAgICBpZiAoYXV0byogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFt
ZShmcmFtZUlEKSkKICAgICAgICAgZnJhbWUtPmFkZENvbnNvbGVNZXNzYWdlKG1lc3NhZ2VTb3Vy
Y2UsIG1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgcmVxdWVzdElEKTsKIH0KIAotdm9pZCBXZWJQYWdl
OjpzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVSTCYgcmVw
b3J0VVJMLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVwb3J0RGF0YSkKK3ZvaWQgV2ViUGFn
ZTo6c2VuZENTUFZpb2xhdGlvblJlcG9ydChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3Qg
VVJMJiByZXBvcnRVUkwsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXBvcnREYXRhKQogewog
ICAgIGF1dG8gcmVwb3J0ID0gcmVwb3J0RGF0YS50YWtlRGF0YSgpOwogICAgIGlmICghcmVwb3J0
KQpAQCAtMzgxNyw3ICszODE3LDcgQEAgdm9pZCBXZWJQYWdlOjpzZW5kQ1NQVmlvbGF0aW9uUmVw
b3J0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBJUEMKICAgICAgICAg
UGluZ0xvYWRlcjo6c2VuZFZpb2xhdGlvblJlcG9ydCgqZnJhbWUtPmNvcmVGcmFtZSgpLCByZXBv
cnRVUkwsIHJlcG9ydC5yZWxlYXNlTm9uTnVsbCgpLCBWaW9sYXRpb25SZXBvcnRUeXBlOjpDb250
ZW50U2VjdXJpdHlQb2xpY3kpOwogfQogCi12b2lkIFdlYlBhZ2U6OmVucXVldWVTZWN1cml0eVBv
bGljeVZpb2xhdGlvbkV2ZW50KHVpbnQ2NF90IGZyYW1lSUQsIFNlY3VyaXR5UG9saWN5VmlvbGF0
aW9uRXZlbnQ6OkluaXQmJiBldmVudEluaXQpCit2b2lkIFdlYlBhZ2U6OmVucXVldWVTZWN1cml0
eVBvbGljeVZpb2xhdGlvbkV2ZW50KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTZWN1cml0eVBv
bGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYgZXZlbnRJbml0KQogewogICAgIGF1dG8qIGZyYW1l
ID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCFm
cmFtZSkKQEAgLTQ2ODAsNyArNDY4MCw3IEBAIHZvaWQgV2ViUGFnZTo6ZWZmZWN0aXZlQXBwZWFy
YW5jZURpZENoYW5nZShib29sIHVzZURhcmtBcHBlYXJhbmNlLCBib29sIHVzZUVsZXZhCiB9CiAj
ZW5kaWYKIAotdm9pZCBXZWJQYWdlOjpiZWdpblByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFByaW50SW5mbyYgcHJpbnRJbmZvKQordm9pZCBXZWJQYWdlOjpiZWdpblByaW50aW5nKEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbykKIHsKICAg
ICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFt
ZUlEKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtNDcyNCw3ICs0NzI0LDcgQEAgdm9pZCBXZWJQYWdl
OjplbmRQcmludGluZygpCiAgICAgfQogfQogCi12b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0Zv
clByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBD
YWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50
aW5nKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywg
Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIFZlY3RvcjxJbnRSZWN0PiByZXN1bHRQYWdl
UmVjdHM7CiAgICAgZG91YmxlIHJlc3VsdFRvdGFsU2NhbGVGYWN0b3JGb3JQcmludGluZyA9IDE7
CkBAIC00NzMzLDcgKzQ3MzMsNyBAQCB2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50
aW5nKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbgogICAgIHNlbmQo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q29tcHV0ZWRQYWdlc0NhbGxiYWNrKHJlc3VsdFBhZ2VS
ZWN0cywgcmVzdWx0VG90YWxTY2FsZUZhY3RvckZvclByaW50aW5nLCBjb21wdXRlZFBhZ2VNYXJn
aW4sIGNhbGxiYWNrSUQpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmlu
dGluZ0ltcGwodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIFZl
Y3RvcjxXZWJDb3JlOjpJbnRSZWN0PiYgcmVzdWx0UGFnZVJlY3RzLCBkb3VibGUmIHJlc3VsdFRv
dGFsU2NhbGVGYWN0b3JGb3JQcmludGluZywgRmxvYXRCb3hFeHRlbnQmIGNvbXB1dGVkUGFnZU1h
cmdpbikKK3ZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdJbXBsKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgVmVjdG9yPFdlYkNv
cmU6OkludFJlY3Q+JiByZXN1bHRQYWdlUmVjdHMsIGRvdWJsZSYgcmVzdWx0VG90YWxTY2FsZUZh
Y3RvckZvclByaW50aW5nLCBGbG9hdEJveEV4dGVudCYgY29tcHV0ZWRQYWdlTWFyZ2luKQogewog
ICAgIEFTU0VSVChyZXN1bHRQYWdlUmVjdHMuaXNFbXB0eSgpKTsKIApAQCAtNDc1Niw3ICs0NzU2
LDcgQEAgdm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZ0ltcGwodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmkKIH0KIAogI2lmIFBMQVRGT1JNKENPQ09BKQot
dm9pZCBXZWJQYWdlOjpkcmF3UmVjdFRvSW1hZ2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJp
bnRJbmZvJiBwcmludEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmIGltYWdlU2l6ZSwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdlOjpk
cmF3UmVjdFRvSW1hZ2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYg
cHJpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBp
bWFnZVNpemUsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBXZWJGcmFtZSogZnJhbWUg
PSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBGcmFtZSog
Y29yZUZyYW1lID0gZnJhbWUgPyBmcmFtZS0+Y29yZUZyYW1lKCkgOiAwOwpAQCAtNDgwNiwxNCAr
NDgwNiwxNCBAQCB2b2lkIFdlYlBhZ2U6OmRyYXdSZWN0VG9JbWFnZSh1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgY29ucwogICAgIHNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6SW1hZ2VDYWxsYmFjayhoYW5kbGUsIGNhbGxiYWNrSUQpKTsKIH0KIAotdm9p
ZCBXZWJQYWdlOjpkcmF3UGFnZXNUb1BERih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludElu
Zm8mIHByaW50SW5mbywgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBDYWxsYmFja0lE
IGNhbGxiYWNrSUQpCit2b2lkIFdlYlBhZ2U6OmRyYXdQYWdlc1RvUERGKEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgdWludDMyX3QgZmlyc3QsIHVp
bnQzMl90IGNvdW50LCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgUmV0YWluUHRyPENG
TXV0YWJsZURhdGFSZWY+IHBkZlBhZ2VEYXRhOwogICAgIGRyYXdQYWdlc1RvUERGSW1wbChmcmFt
ZUlELCBwcmludEluZm8sIGZpcnN0LCBjb3VudCwgcGRmUGFnZURhdGEpOwogICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6RGF0YUNhbGxiYWNrKHsgQ0ZEYXRhR2V0Qnl0ZVB0cihwZGZQ
YWdlRGF0YS5nZXQoKSksIHN0YXRpY19jYXN0PHNpemVfdD4oQ0ZEYXRhR2V0TGVuZ3RoKHBkZlBh
Z2VEYXRhLmdldCgpKSkgfSwgY2FsbGJhY2tJRCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OmRyYXdQ
YWdlc1RvUERGSW1wbCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5m
bywgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBSZXRhaW5QdHI8Q0ZNdXRhYmxlRGF0
YVJlZj4mIHBkZlBhZ2VEYXRhKQordm9pZCBXZWJQYWdlOjpkcmF3UGFnZXNUb1BERkltcGwoRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCB1aW50MzJf
dCBmaXJzdCwgdWludDMyX3QgY291bnQsIFJldGFpblB0cjxDRk11dGFibGVEYXRhUmVmPiYgcGRm
UGFnZURhdGEpCiB7CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGZyYW1lID8gZnJh
bWUtPmNvcmVGcmFtZSgpIDogMDsKQEAgLTQ4NjQsNyArNDg2NCw3IEBAIHZvaWQgV2ViUGFnZTo6
ZHJhd1BhZ2VzVG9QREZJbXBsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJp
bnRJbmZvLCB1CiB9CiAKICNlbGlmIFBMQVRGT1JNKEdUSykKLXZvaWQgV2ViUGFnZTo6ZHJhd1Bh
Z2VzRm9yUHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludElu
Zm8sIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6ZHJhd1BhZ2VzRm9yUHJp
bnRpbmcoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZv
LCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgYmVnaW5QcmludGluZyhmcmFtZUlELCBw
cmludEluZm8pOwogICAgIGlmIChtX3ByaW50Q29udGV4dCAmJiBtX3ByaW50T3BlcmF0aW9uKSB7
CkBAIC02NTAyLDcgKzY1MDIsNyBAQCB2b2lkIFdlYlBhZ2U6OnNldElzU3VzcGVuZGVkKGJvb2wg
c3VzcGVuZGVkKQogICAgIHN1c3BlbmRGb3JQcm9jZXNzU3dhcCgpOwogfQogCi12b2lkIFdlYlBh
Z2U6OmZyYW1lQmVjYW1lUmVtb3RlKHVpbnQ2NF90IGZyYW1lSUQsIEdsb2JhbEZyYW1lSWRlbnRp
ZmllciYmIHJlbW90ZUZyYW1lSWRlbnRpZmllciwgR2xvYmFsV2luZG93SWRlbnRpZmllciYmIHJl
bW90ZVdpbmRvd0lkZW50aWZpZXIpCit2b2lkIFdlYlBhZ2U6OmZyYW1lQmVjYW1lUmVtb3RlKEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBHbG9iYWxGcmFtZUlkZW50aWZpZXImJiByZW1vdGVGcmFt
ZUlkZW50aWZpZXIsIEdsb2JhbFdpbmRvd0lkZW50aWZpZXImJiByZW1vdGVXaW5kb3dJZGVudGlm
aWVyKQogewogICAgIFJlZlB0cjxXZWJGcmFtZT4gZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtNjUzNCwxMiArNjUz
NCwxMiBAQCB2b2lkIFdlYlBhZ2U6OmZyYW1lQmVjYW1lUmVtb3RlKHVpbnQ2NF90IGZyYW1lSUQs
IEdsb2JhbEZyYW1lSWRlbnRpZmllciYmIHJlbW90ZQogfQogCiAjaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKLXZvaWQgV2ViUGFnZTo6aGFzU3RvcmFnZUFjY2VzcyhSZWdpc3Ry
YWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1l
RG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlOjpoYXNTdG9yYWdlQWNjZXNzKFJlZ2lz
dHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJh
bWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpIYXNT
dG9yYWdlQWNjZXNzKHNlc3Npb25JRCgpLCBXVEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RGTW92
ZSh0b3BGcmFtZURvbWFpbiksIGZyYW1lSUQsIG1fcGFnZUlEKSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOwogfQogCi12b2lkIFdlYlBhZ2U6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFJlZ2lz
dHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJh
bWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29y
ZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2U6OnJlcXVlc3RTdG9y
YWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFJlZ2lzdHJhYmxl
RG9tYWluJiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBXZWJDb3Jl
OjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewog
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bigpLmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpSZXF1ZXN0U3RvcmFnZUFjY2VzcyhzZXNzaW9uSUQoKSwgV1RG
TW92ZShzdWJGcmFtZURvbWFpbiksIFdURk1vdmUodG9wRnJhbWVEb21haW4pLCBmcmFtZUlELCBt
X3BhZ2VJRCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KQEAgLTY1NTUsNyArNjU1
NSw3IEBAIHZvaWQgV2ViUGFnZTo6d2FzTG9hZGVkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxl
bnRSZXNvdXJjZSgpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi12
b2lkIFdlYlBhZ2U6OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3Mo
dWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgb3JpZ2luLCBi
b29sIG1heVByb21wdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChEZXZpY2VPcmllbnRhdGlvbk9y
TW90aW9uUGVybWlzc2lvblN0YXRlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFn
ZTo6c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgb3JpZ2luLCBib29s
IG1heVByb21wdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChEZXZpY2VPcmllbnRhdGlvbk9yTW90
aW9uUGVybWlzc2lvblN0YXRlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBzZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2hvdWxkQWxsb3dEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhmcmFtZUlELCBXVEZNb3ZlKG9yaWdpbiksIG1heVByb21w
dCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA3MDk5MjcwMTQyNDNjMTEyOGZmNmZhYzllNGVh
OTJkZDY1MTIyYzZmLi4xZDk3MWY0YTMzODYxMWU5NDA5YjM0ZjFlODFkZWU1MGM3NjJmY2JkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0zNDYsOSAr
MzQ2LDkgQEAgcHVibGljOgogICAgIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyKiBmdWxsU2NyZWVuTWFu
YWdlcigpOwogI2VuZGlmCiAKLSAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKHVpbnQ2NF90IGZy
YW1lSUQsIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiwgdWludDY0
X3QgcmVxdWVzdElEID0gMCk7Ci0gICAgdm9pZCBzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNl
JiYpOwotICAgIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQodWludDY0
X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYm
KTsKKyAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
TWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmLCB1aW50NjRfdCByZXF1
ZXN0SUQgPSAwKTsKKyAgICB2b2lkIHNlbmRDU1BWaW9sYXRpb25SZXBvcnQoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5j
ZSYmKTsKKyAgICB2b2lkIGVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVu
dDo6SW5pdCYmKTsKIAogICAgIC8vIC0tIENhbGxlZCBieSB0aGUgRHJhd2luZ0FyZWEuCiAgICAg
Ly8gRklYTUU6IFdlIGNvdWxkIGdlbmVyaWNpemUgdGhlc2UgaW50byBhIERyYXdpbmdBcmVhIGNs
aWVudCBpbnRlcmZhY2UuIFdvdWxkIHRoYXQgYmUgYmVuZWZpY2lhbD8KQEAgLTUyMiw3ICs1MjIs
NyBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6Q29sb3IgdW5kZXJsYXlDb2xvcigpIGNvbnN0IHsg
cmV0dXJuIG1fdW5kZXJsYXlDb2xvcjsgfQogCiAgICAgdm9pZCBzdG9wTG9hZGluZygpOwotICAg
IHZvaWQgc3RvcExvYWRpbmdGcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsKKyAgICB2b2lkIHN0b3BM
b2FkaW5nRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICAgICBib29sIGRlZmVyc0xv
YWRpbmcoKSBjb25zdDsKICAgICB2b2lkIHNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlckxvYWRp
bmcpOwogCkBAIC03NjksNyArNzY5LDcgQEAgcHVibGljOgogICAgIHZvaWQgY29uZmlybUNvbXBv
c2l0aW9uKGNvbnN0IFN0cmluZyYgdGV4dCwgaW50NjRfdCBzZWxlY3Rpb25TdGFydCwgaW50NjRf
dCBzZWxlY3Rpb25MZW5ndGgpOwogICAgIHZvaWQgY2FuY2VsQ29tcG9zaXRpb24oKTsKIAotICAg
IHZvaWQgY29sbGFwc2VTZWxlY3Rpb25JbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpOworICAgIHZv
aWQgY29sbGFwc2VTZWxlY3Rpb25JbkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAg
ICAgdm9pZCBzaG93RW1vamlQaWNrZXIoV2ViQ29yZTo6RnJhbWUmKTsKIAogICAgIHZvaWQgZ2V0
Q2VudGVyRm9yWm9vbUdlc3R1cmUoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNlbnRlckluVmll
d0Nvb3JkaW5hdGVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkludFBvaW50JiYp
PiYmKTsKQEAgLTg2MiwyMyArODYyLDIzIEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpEcmFnU291
cmNlQWN0aW9uIGFsbG93ZWREcmFnU291cmNlQWN0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fYWxs
b3dlZERyYWdTb3VyY2VBY3Rpb25zOyB9CiAjZW5kaWYKIAotICAgIHZvaWQgYmVnaW5QcmludGlu
Zyh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mKTsKKyAgICB2b2lkIGJlZ2luUHJp
bnRpbmcoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mKTsKICAgICB2
b2lkIGVuZFByaW50aW5nKCk7Ci0gICAgdm9pZCBjb21wdXRlUGFnZXNGb3JQcmludGluZyh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mLCBDYWxsYmFja0lEKTsKLSAgICB2b2lkIGNv
bXB1dGVQYWdlc0ZvclByaW50aW5nSW1wbCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludElu
Zm8mLCBWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4mIHBhZ2VSZWN0cywgZG91YmxlJiB0b3RhbFNj
YWxlRmFjdG9yLCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgY29tcHV0ZWRNYXJnaW4pOworICAg
IHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBj
b25zdCBQcmludEluZm8mLCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIGNvbXB1dGVQYWdlc0ZvclBy
aW50aW5nSW1wbChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYsIFZl
Y3RvcjxXZWJDb3JlOjpJbnRSZWN0PiYgcGFnZVJlY3RzLCBkb3VibGUmIHRvdGFsU2NhbGVGYWN0
b3IsIFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiBjb21wdXRlZE1hcmdpbik7CiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKLSAgICB2b2lkIGRyYXdSZWN0VG9JbWFnZSh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBQcmludEluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYsIENhbGxiYWNrSUQpOwotICAgIHZvaWQgZHJhd1BhZ2VzVG9QREYodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiwgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50
LCBDYWxsYmFja0lEKTsKLSAgICB2b2lkIGRyYXdQYWdlc1RvUERGSW1wbCh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBQcmludEluZm8mLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIFJl
dGFpblB0cjxDRk11dGFibGVEYXRhUmVmPiYgcGRmUGFnZURhdGEpOworICAgIHZvaWQgZHJhd1Jl
Y3RUb0ltYWdlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBDYWxsYmFja0lE
KTsKKyAgICB2b2lkIGRyYXdQYWdlc1RvUERGKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29u
c3QgUHJpbnRJbmZvJiwgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBDYWxsYmFja0lE
KTsKKyAgICB2b2lkIGRyYXdQYWdlc1RvUERGSW1wbChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IGNvbnN0IFByaW50SW5mbyYsIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgUmV0YWlu
UHRyPENGTXV0YWJsZURhdGFSZWY+JiBwZGZQYWdlRGF0YSk7CiAjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCi0gICAgdm9pZCBjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdU
b1BERih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mLCBDYWxsYmFja0lELCBNZXNz
YWdlczo6V2ViUGFnZTo6Q29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREY6OkRlbGF5
ZWRSZXBseSYmKTsKKyAgICB2b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERG
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgQ2FsbGJhY2tJRCwg
TWVzc2FnZXM6OldlYlBhZ2U6OkNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGOjpE
ZWxheWVkUmVwbHkmJik7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykKLSAgICB2b2lkIGRy
YXdQYWdlc0ZvclByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIENh
bGxiYWNrSUQpOworICAgIHZvaWQgZHJhd1BhZ2VzRm9yUHJpbnRpbmcoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mLCBDYWxsYmFja0lEKTsKICAgICB2b2lkIGRpZEZp
bmlzaFByaW50T3BlcmF0aW9uKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBDYWxsYmFj
a0lEKTsKICNlbmRpZgogCkBAIC0xMTMxLDEzICsxMTMxLDEzIEBAIHB1YmxpYzoKICAgICB2b2lk
IGZsdXNoUGVuZGluZ0VkaXRvclN0YXRlVXBkYXRlKCk7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTKQotICAgIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biYmIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmKTsKLSAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluJiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VB
Y2Nlc3NQcm9tcHRXYXNTaG93bik+JiYpOworICAgIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VB
Y2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNH
cmFudGVkLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKTsKICAgICB2
b2lkIHdhc0xvYWRlZFdpdGhEYXRhVHJhbnNmZXJGcm9tUHJldmFsZW50UmVzb3VyY2UoKTsKICNl
bmRpZgogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSAgICB2b2lkIHNob3VsZEFs
bG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ModWludDY0X3QgZnJhbWVJRCwgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3Rh
dGUpPiYmKTsKKyAgICB2b2lkIHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3MoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmJiwgYm9vbCBtYXlQcm9tcHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RGV2
aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+JiYpOwogI2VuZGlmCiAKICAg
ICB2b2lkIHNob3dTaGFyZVNoZWV0KFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKTsKQEAgLTEzNTYsOCArMTM1
Niw4IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wgc2Nyb2xsKFdlYkNvcmU6OlBhZ2UqLCBX
ZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24sIFdlYkNvcmU6OlNjcm9sbEdyYW51bGFyaXR5KTsKICAg
ICBzdGF0aWMgYm9vbCBsb2dpY2FsU2Nyb2xsKFdlYkNvcmU6OlBhZ2UqLCBXZWJDb3JlOjpTY3Jv
bGxMb2dpY2FsRGlyZWN0aW9uLCBXZWJDb3JlOjpTY3JvbGxHcmFudWxhcml0eSk7CiAKLSAgICB2
b2lkIGxvYWRVUkxJbkZyYW1lKFVSTCYmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCB1aW50NjRf
dCBmcmFtZUlEKTsKLSAgICB2b2lkIGxvYWREYXRhSW5GcmFtZShJUEM6OkRhdGFSZWZlcmVuY2Um
JiwgU3RyaW5nJiYgTUlNRVR5cGUsIFN0cmluZyYmIGVuY29kaW5nTmFtZSwgVVJMJiYgYmFzZVVS
TCwgdWludDY0X3QgZnJhbWVJRCk7CisgICAgdm9pZCBsb2FkVVJMSW5GcmFtZShVUkwmJiwgY29u
c3QgU3RyaW5nJiByZWZlcnJlciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lk
IGxvYWREYXRhSW5GcmFtZShJUEM6OkRhdGFSZWZlcmVuY2UmJiwgU3RyaW5nJiYgTUlNRVR5cGUs
IFN0cmluZyYmIGVuY29kaW5nTmFtZSwgVVJMJiYgYmFzZVVSTCwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyKTsKIAogICAgIGVudW0gY2xhc3MgV2FzUmVzdG9yZWRCeUFQSVJlcXVlc3QgeyBObywg
WWVzIH07CiAgICAgdm9pZCByZXN0b3JlU2Vzc2lvbkludGVybmFsKGNvbnN0IFZlY3RvcjxCYWNr
Rm9yd2FyZExpc3RJdGVtU3RhdGU+JiwgV2FzUmVzdG9yZWRCeUFQSVJlcXVlc3QsIFdlYkJhY2tG
b3J3YXJkTGlzdFByb3h5OjpPdmVyd3JpdGVFeGlzdGluZ0l0ZW0pOwpAQCAtMTM4OSwxNiArMTM4
OSwxNiBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShNSFRNTCkKICAgICB2b2lkIGdldENvbnRlbnRz
QXNNSFRNTERhdGEoQ2FsbGJhY2tJRCk7CiAjZW5kaWYKLSAgICB2b2lkIGdldE1haW5SZXNvdXJj
ZURhdGFPZkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENhbGxiYWNrSUQpOwotICAgIHZvaWQgZ2V0
UmVzb3VyY2VEYXRhRnJvbUZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgcmVz
b3VyY2VVUkwsIENhbGxiYWNrSUQpOworICAgIHZvaWQgZ2V0TWFpblJlc291cmNlRGF0YU9mRnJh
bWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIGdldFJl
c291cmNlRGF0YUZyb21GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgcmVzb3VyY2VVUkwsIENhbGxiYWNrSUQpOwogICAgIHZvaWQgZ2V0UmVuZGVyVHJlZUV4dGVy
bmFsUmVwcmVzZW50YXRpb24oQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBnZXRTZWxlY3Rpb25PckNv
bnRlbnRzQXNTdHJpbmcoQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBnZXRTZWxlY3Rpb25Bc1dlYkFy
Y2hpdmVEYXRhKENhbGxiYWNrSUQpOwotICAgIHZvaWQgZ2V0U291cmNlRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBnZXRXZWJBcmNoaXZlT2ZGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIGdldFNvdXJjZUZvckZyYW1l
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBnZXRXZWJB
cmNoaXZlT2ZGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENhbGxiYWNrSUQpOwogICAg
IHZvaWQgcnVuSmF2YVNjcmlwdChXZWJGcmFtZSosIGNvbnN0IFN0cmluZyYsIGJvb2wgZm9yY2VV
c2VyR2VzdHVyZSwgY29uc3QgT3B0aW9uYWw8U3RyaW5nPiYgd29ybGROYW1lLCBDYWxsYmFja0lE
KTsKICAgICB2b2lkIHJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZVNjcmlwdFdvcmxkKGNvbnN0IFN0
cmluZyYsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgY29uc3QgT3B0aW9uYWw8U3RyaW5nPiYgd29y
bGROYW1lLCBDYWxsYmFja0lEKTsKLSAgICB2b2lkIHJ1bkphdmFTY3JpcHRJbkZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgQ2FsbGJh
Y2tJRCk7CisgICAgdm9pZCBydW5KYXZhU2NyaXB0SW5GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgQ2FsbGJhY2tJRCk7
CiAgICAgdm9pZCBmb3JjZVJlcGFpbnQoQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCB0YWtlU25hcHNo
b3QoV2ViQ29yZTo6SW50UmVjdCBzbmFwc2hvdFJlY3QsIFdlYkNvcmU6OkludFNpemUgYml0bWFw
U2l6ZSwgdWludDMyX3Qgb3B0aW9ucywgQ2FsbGJhY2tJRCk7CiAKQEAgLTE0MTIsOCArMTQxMiw4
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBwYXJlbnRQcm9jZXNzSGFzU2VydmljZVdvcmtlckVudGl0
bGVtZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogI2VuZGlmCiAKLSAgICB2b2lkIGRpZFJl
Y2VpdmVQb2xpY3lEZWNpc2lvbih1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBsaXN0ZW5lcklE
LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIFdlYkNvcmU6OlBvbGljeUFjdGlvbiwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBEb3dubG9hZElEJiwgT3B0aW9uYWw8V2Vic2l0
ZVBvbGljaWVzRGF0YT4mJik7Ci0gICAgdm9pZCBjb250aW51ZVdpbGxTdWJtaXRGb3JtKHVpbnQ2
NF90IGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQpOworICAgIHZvaWQgZGlkUmVjZWl2ZVBv
bGljeURlY2lzaW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbGlzdGVuZXJJ
RCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24s
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgRG93bmxvYWRJRCYsIE9wdGlvbmFsPFdlYnNp
dGVQb2xpY2llc0RhdGE+JiYpOworICAgIHZvaWQgY29udGludWVXaWxsU3VibWl0Rm9ybShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwogICAgIHZvaWQgc2V0
VXNlckFnZW50KGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgc2V0Q3VzdG9tVGV4dEVuY29kaW5n
TmFtZShjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHN1c3BlbmRBY3RpdmVET01PYmplY3RzQW5k
QW5pbWF0aW9ucygpOwpAQCAtMTQzMSw3ICsxNDMxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHdp
bmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgd2luZG93
RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHdpbmRv
d0ZyYW1lSW5VbmZsaXBwZWRTY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBv
aW50JiBhY2Nlc3NpYmlsaXR5Vmlld0Nvb3JkaW5hdGVzKTsKIAogICAgIFJldGFpblB0cjxQREZE
b2N1bWVudD4gcGRmRG9jdW1lbnRGb3JQcmludGluZ0ZyYW1lKFdlYkNvcmU6OkZyYW1lKik7Ci0g
ICAgdm9pZCBjb21wdXRlUGFnZXNGb3JQcmludGluZ1BERkRvY3VtZW50KHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFByaW50SW5mbyYsIFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiYgcmVzdWx0UGFn
ZVJlY3RzKTsKKyAgICB2b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERGRG9jdW1lbnQoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mLCBWZWN0b3I8V2ViQ29yZTo6
SW50UmVjdD4mIHJlc3VsdFBhZ2VSZWN0cyk7CiAgICAgdm9pZCBkcmF3UERGRG9jdW1lbnQoQ0dD
b250ZXh0UmVmLCBQREZEb2N1bWVudCAqLCBjb25zdCBQcmludEluZm8mLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0Jik7CiAgICAgdm9pZCBkcmF3UGFnZXNUb1BERkZyb21QREZEb2N1bWVudChDR0Nv
bnRleHRSZWYsIFBERkRvY3VtZW50ICosIGNvbnN0IFByaW50SW5mbyYsIHVpbnQzMl90IGZpcnN0
LCB1aW50MzJfdCBjb3VudCk7CiAjZW5kaWYKQEAgLTE1ODQsNyArMTU4NCw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCB2b2ljZXNEaWRDaGFuZ2UoKTsKICNlbmRpZgogCi0gICAgdm9pZCBmcmFtZUJl
Y2FtZVJlbW90ZSh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpHbG9iYWxGcmFtZUlkZW50aWZp
ZXImJiByZW1vdGVGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZp
ZXImJiByZW1vdGVXaW5kb3dJZGVudGlmaWVyKTsKKyAgICB2b2lkIGZyYW1lQmVjYW1lUmVtb3Rl
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6R2xvYmFsRnJhbWVJZGVudGlmaWVy
JiYgcmVtb3RlRnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlmaWVy
JiYgcmVtb3RlV2luZG93SWRlbnRpZmllcik7CiAKICAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1l
SGFuZGxlcih1aW50NjRfdCBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNjaGVtZSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluCmluZGV4IGE1MmUyNTFkMjVkYTZkODg3MWIyNzJkNzE0MjI5MTMyOWM1ZjI0MzguLmJhN2Y2
NGJmZGNiY2NmOGFiMmMzM2Y2YzI3OGI0NmQxNTE4ODhmMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMjcsOSAr
MjcsOSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIFNldEJh
Y2tncm91bmRDb2xvcihPcHRpb25hbDxXZWJDb3JlOjpDb2xvcj4gY29sb3IpCiAKLSAgICBBZGRD
b25zb2xlTWVzc2FnZSh1aW50NjRfdCBmcmFtZUlELCBlbnVtOnVpbnQ4X3QgSlNDOjpNZXNzYWdl
U291cmNlIG1lc3NhZ2VTb3VyY2UsIGVudW06dWludDhfdCBKU0M6Ok1lc3NhZ2VMZXZlbCBtZXNz
YWdlTGV2ZWwsIFN0cmluZyBtZXNzYWdlLCB1aW50NjRfdCByZXF1ZXN0SUQpCi0gICAgU2VuZENT
UFZpb2xhdGlvblJlcG9ydCh1aW50NjRfdCBmcmFtZUlELCBVUkwgcmVwb3J0VVJMLCBJUEM6OkZv
cm1EYXRhUmVmZXJlbmNlIHJlcG9ydERhdGEpCi0gICAgRW5xdWV1ZVNlY3VyaXR5UG9saWN5Vmlv
bGF0aW9uRXZlbnQodWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9s
YXRpb25FdmVudDo6SW5pdCBldmVudEluaXQpCisgICAgQWRkQ29uc29sZU1lc3NhZ2UoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGVudW06dWludDhfdCBKU0M6Ok1lc3NhZ2VTb3Vy
Y2UgbWVzc2FnZVNvdXJjZSwgZW51bTp1aW50OF90IEpTQzo6TWVzc2FnZUxldmVsIG1lc3NhZ2VM
ZXZlbCwgU3RyaW5nIG1lc3NhZ2UsIHVpbnQ2NF90IHJlcXVlc3RJRCkKKyAgICBTZW5kQ1NQVmlv
bGF0aW9uUmVwb3J0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBVUkwgcmVwb3J0
VVJMLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcG9ydERhdGEpCisgICAgRW5xdWV1ZVNlY3Vy
aXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQgZXZlbnRJbml0KQog
CiAgICAgVGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1Jl
cGx5KCkgLT4gKGJvb2wgaGFuZGxlZCkgU3luY2hyb25vdXMKIApAQCAtMTYyLDggKzE2Miw4IEBA
IEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3lu
dGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAgICAgR29Ub0JhY2tGb3J3YXJkSXRlbSh1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVy
IGJhY2tGb3J3YXJkSXRlbUlELCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6RnJhbWVMb2FkVHlwZSBi
YWNrRm9yd2FyZFR5cGUsIGVudW06Ym9vbCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWlu
Z0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBPcHRpb25hbDxXZWJLaXQ6OldlYnNp
dGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQb2xpY2llcykKICAgICBUcnlSZXN0b3JlU2Nyb2xsUG9z
aXRpb24oKQogCi0gICAgTG9hZFVSTEluRnJhbWUoVVJMIHVybCwgU3RyaW5nIHJlZmVycmVyLCB1
aW50NjRfdCBmcmFtZUlEKQotICAgIExvYWREYXRhSW5GcmFtZShJUEM6OkRhdGFSZWZlcmVuY2Ug
ZGF0YSwgU3RyaW5nIE1JTUVUeXBlLCBTdHJpbmcgZW5jb2RpbmdOYW1lLCBVUkwgYmFzZVVSTCwg
dWludDY0X3QgZnJhbWVJRCkKKyAgICBMb2FkVVJMSW5GcmFtZShVUkwgdXJsLCBTdHJpbmcgcmVm
ZXJyZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQorICAgIExvYWREYXRhSW5G
cmFtZShJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSwgU3RyaW5nIE1JTUVUeXBlLCBTdHJpbmcgZW5j
b2RpbmdOYW1lLCBVUkwgYmFzZVVSTCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQp
CiAgICAgTG9hZFJlcXVlc3Qoc3RydWN0IFdlYktpdDo6TG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFt
ZXRlcnMpCiAgICAgTG9hZERhdGEoc3RydWN0IFdlYktpdDo6TG9hZFBhcmFtZXRlcnMgbG9hZFBh
cmFtZXRlcnMpCiAgICAgTG9hZEFsdGVybmF0ZUhUTUwoc3RydWN0IFdlYktpdDo6TG9hZFBhcmFt
ZXRlcnMgbG9hZFBhcmFtZXRlcnMpCkBAIC0xNzMsNyArMTczLDcgQEAgR2VuZXJhdGVTeW50aGV0
aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29t
bWFuZFR5cGUKICAgICBSZWxvYWQodWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50MzJfdCByZWxv
YWRPcHRpb25zLCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5z
aW9uSGFuZGxlKQogICAgIFN0b3BMb2FkaW5nKCkKIAotICAgIFN0b3BMb2FkaW5nRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCkKKyAgICBTdG9wTG9hZGluZ0ZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlEKQogICAgIAogICAgIFJlc3RvcmVTZXNzaW9uKFZlY3RvcjxXZWJLaXQ6OkJh
Y2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZT4gaXRlbVN0YXRlcykKICAgICBVcGRhdGVCYWNrRm9yd2Fy
ZExpc3RGb3JSZWF0dGFjaChWZWN0b3I8V2ViS2l0OjpCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGU+
IGl0ZW1TdGF0ZXMpCkBAIC0xODIsOCArMTgyLDggQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5n
Q29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUK
ICAgICBEaWRSZW1vdmVCYWNrRm9yd2FyZEl0ZW0oc3RydWN0IFdlYkNvcmU6OkJhY2tGb3J3YXJk
SXRlbUlkZW50aWZpZXIgYmFja0ZvcndhcmRJdGVtSUQpCiAKICAgICBVcGRhdGVXZWJzaXRlUG9s
aWNpZXMoc3RydWN0IFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0YSB3ZWJzaXRlUG9saWNpZXMp
Ci0gICAgRGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90
IGxpc3RlbmVySUQsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lk
ZW50aWZpZXIsIGVudW06dWludDhfdCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9u
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBP
cHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQb2xpY2llcykKLSAg
ICBDb250aW51ZVdpbGxTdWJtaXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGxpc3Rl
bmVySUQpCisgICAgRGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJDb3JlOjpQb2xpY3lDaGVja0lk
ZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UG9s
aWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJLaXQ6OkRv
d25sb2FkSUQgZG93bmxvYWRJRCwgT3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRh
PiB3ZWJzaXRlUG9saWNpZXMpCisgICAgQ29udGludWVXaWxsU3VibWl0Rm9ybShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCkKIAogICAgIENsZWFy
U2VsZWN0aW9uKCkKICAgICBSZXN0b3JlU2VsZWN0aW9uSW5Gb2N1c2VkRWRpdGFibGVFbGVtZW50
KCkKQEAgLTE5NiwxNSArMTk2LDE1IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQo
ZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAjaWYgRU5B
QkxFKE1IVE1MKQogICAgIEdldENvbnRlbnRzQXNNSFRNTERhdGEoV2ViS2l0OjpDYWxsYmFja0lE
IGNhbGxiYWNrSUQpCiAjZW5kaWYKLSAgICBHZXRNYWluUmVzb3VyY2VEYXRhT2ZGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKLSAgICBHZXRSZXNv
dXJjZURhdGFGcm9tRnJhbWUodWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHJlc291cmNlVVJMLCBX
ZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBHZXRNYWluUmVzb3VyY2VEYXRhT2ZG
cmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViS2l0OjpDYWxsYmFja0lE
IGNhbGxiYWNrSUQpCisgICAgR2V0UmVzb3VyY2VEYXRhRnJvbUZyYW1lKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgcmVzb3VyY2VVUkwsIFdlYktpdDo6Q2FsbGJhY2tJ
RCBjYWxsYmFja0lEKQogICAgIEdldFJlbmRlclRyZWVFeHRlcm5hbFJlcHJlc2VudGF0aW9uKFdl
YktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIEdldFNlbGVjdGlvbk9yQ29udGVudHNB
c1N0cmluZyhXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBHZXRTZWxlY3Rpb25B
c1dlYkFyY2hpdmVEYXRhKFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIEdldFNv
dXJjZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFj
a0lEKQotICAgIEdldFdlYkFyY2hpdmVPZkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6
Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIEdldFNvdXJjZUZvckZyYW1lKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAg
ICBHZXRXZWJBcmNoaXZlT2ZGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
V2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgUnVuSmF2YVNjcmlwdEluTWFpbkZy
YW1lU2NyaXB0V29ybGQoU3RyaW5nIHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBPcHRp
b25hbDxTdHJpbmc+IHdvcmxkTmFtZSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCi0g
ICAgUnVuSmF2YVNjcmlwdEluRnJhbWUodWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHNjcmlwdCwg
Ym9vbCBmb3JjZVVzZXJHZXN0dXJlLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAg
ICBSdW5KYXZhU2NyaXB0SW5GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
U3RyaW5nIHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBXZWJLaXQ6OkNhbGxiYWNrSUQg
Y2FsbGJhY2tJRCkKICAgICBGb3JjZVJlcGFpbnQoV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNr
SUQpCiAKICAgICBTZWxlY3RBbGwoKQpAQCAtMzgwLDE4ICszODAsMTggQEAgR2VuZXJhdGVTeW50
aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5n
Q29tbWFuZFR5cGUKICAgICBEaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9u
KHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93ZWQpCiAKICAgICAjIFByaW50aW5n
LgotICAgIEJlZ2luUHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJp
bnRJbmZvIHByaW50SW5mbykKKyAgICBCZWdpblByaW50aW5nKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvKQogICAgIEVu
ZFByaW50aW5nKCkKLSAgICBDb21wdXRlUGFnZXNGb3JQcmludGluZyh1aW50NjRfdCBmcmFtZUlE
LCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCBXZWJLaXQ6OkNhbGxiYWNrSUQg
Y2FsbGJhY2tJRCkKKyAgICBDb21wdXRlUGFnZXNGb3JQcmludGluZyhXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2Vi
S2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgRHJh
d1JlY3RUb0ltYWdlKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBw
cmludEluZm8sIFdlYkNvcmU6OkludFJlY3QgcmVjdCwgV2ViQ29yZTo6SW50U2l6ZSBpbWFnZVNp
emUsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIERyYXdQYWdlc1RvUERGKHVp
bnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIHVpbnQz
Ml90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQp
CisgICAgRHJhd1JlY3RUb0ltYWdlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBz
dHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCBXZWJDb3JlOjpJbnRSZWN0IHJlY3Qs
IFdlYkNvcmU6OkludFNpemUgaW1hZ2VTaXplLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJ
RCkKKyAgICBEcmF3UGFnZXNUb1BERihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
c3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgdWludDMyX3QgZmlyc3QsIHVpbnQz
Ml90IGNvdW50LCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQotICAgIENvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKHVpbnQ2
NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIFdlYktpdDo6
Q2FsbGJhY2tJRCBjYWxsYmFja0lEKSAtPiAodWludDMyX3QgcGFnZUNvdW50KSBTeW5jaHJvbm91
cworICAgIENvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCBX
ZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkgLT4gKHVpbnQzMl90IHBhZ2VDb3VudCkgU3lu
Y2hyb25vdXMKICNlbmRpZgogI2VuZGlmCiAjaWYgUExBVEZPUk0oR1RLKQotICAgIERyYXdQYWdl
c0ZvclByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBw
cmludEluZm8sIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIERyYXdQYWdlc0Zv
clByaW50aW5nKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0
OjpQcmludEluZm8gcHJpbnRJbmZvLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICNl
bmRpZgogCiAgICAgIyBNZWRpYQpAQCAtNDEzLDcgKzQxMyw3IEBAIEdlbmVyYXRlU3ludGhldGlj
RWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1h
bmRUeXBlCiAgICAgQ29uZmlybUNvbXBvc2l0aW9uKFN0cmluZyB0ZXh0LCBpbnQ2NF90IHNlbGVj
dGlvblN0YXJ0LCBpbnQ2NF90IHNlbGVjdGlvbkxlbmd0aCkKICAgICBDYW5jZWxDb21wb3NpdGlv
bigpCiAKLSAgICBDb2xsYXBzZVNlbGVjdGlvbkluRnJhbWUodWludDY0X3QgZnJhbWVJRCkKKyAg
ICBDb2xsYXBzZVNlbGVjdGlvbkluRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQpCiAKICAgICBHZXRDZW50ZXJGb3Jab29tR2VzdHVyZShXZWJDb3JlOjpJbnRQb2ludCBjZW50
ZXJJblZpZXdDb29yZGluYXRlcykgLT4gKFdlYkNvcmU6OkludFBvaW50IGNlbnRlcikgU3luY2hy
b25vdXMKICNlbmRpZgpAQCAtNTM2LDcgKzUzNiw3IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGlu
Z0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBl
CiAgICAgRGlkUmVjZWl2ZVBhc3N3b3JkRm9yUXVpY2tMb29rRG9jdW1lbnQoU3RyaW5nIHBhc3N3
b3JkKQogI2VuZGlmCiAKLSAgICBGcmFtZUJlY2FtZVJlbW90ZSh1aW50NjRfdCBmcmFtZUlELCBz
dHJ1Y3QgV2ViQ29yZTo6R2xvYmFsRnJhbWVJZGVudGlmaWVyIHJlbW90ZUZyYW1lSWRlbnRpZmll
ciwgc3RydWN0IFdlYkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXIgcmVtb3RlV2luZG93SWRl
bnRpZmllcikKKyAgICBGcmFtZUJlY2FtZVJlbW90ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6Okdsb2JhbEZyYW1lSWRlbnRpZmllciByZW1vdGVGcmFt
ZUlkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlmaWVyIHJlbW90
ZVdpbmRvd0lkZW50aWZpZXIpCiAKICAgICBSZWdpc3RlclVSTFNjaGVtZUhhbmRsZXIodWludDY0
X3QgaWRlbnRpZmllciwgU3RyaW5nIHNjaGVtZSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCBlNGM2NDI3MWNjZjg5M2Iz
NTliOTQ1NzljOGIyZDE3OTFkZGE5Y2I5Li4yZGIwZWI2YmJhYTQ1NzhiZjZhNjk1Y2U0MDAyZDc3
MzY1MTZiZDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbQpAQCAtNTUxLDcgKzU1MSw3IEBAIHZvaWQgV2ViUGFnZTo6YWNjZXB0
c0ZpcnN0TW91c2UoaW50LCBjb25zdCBXZWJLaXQ6OldlYk1vdXNlRXZlbnQmLCBDb21wbGV0aW9u
SGFuCiAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwogfQogCi12b2lkIFdlYlBhZ2U6OmNv
bXB1dGVQYWdlc0ZvclByaW50aW5nUERGRG9jdW1lbnQodWludDY0X3QsIGNvbnN0IFByaW50SW5m
byYsIFZlY3RvcjxJbnRSZWN0PiYpCit2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50
aW5nUERGRG9jdW1lbnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8m
LCBWZWN0b3I8SW50UmVjdD4mKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkBAIC0zNzM5
LDcgKzM3MzksNyBAQCB2b2lkIFdlYlBhZ2U6OmRpc3BhdGNoQXN5bmNocm9ub3VzVG91Y2hFdmVu
dHMoY29uc3QgVmVjdG9yPFdlYlRvdWNoRXZlbnQsIDE+JiBxdQogfQogI2VuZGlmCiAKLXZvaWQg
V2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYodWludDY0X3QgZnJh
bWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIENhbGxiYWNrSUQgY2FsbGJhY2tJRCwg
TWVzc2FnZXM6OldlYlBhZ2U6OkNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGOjpE
ZWxheWVkUmVwbHkmJiByZXBseSkKK3ZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRp
bmdBbmREcmF3VG9QREYoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFBy
aW50SW5mbyYgcHJpbnRJbmZvLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQsIE1lc3NhZ2VzOjpXZWJQ
YWdlOjpDb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERjo6RGVsYXllZFJlcGx5JiYg
cmVwbHkpCiB7CiAgICAgaWYgKHByaW50SW5mby5zbmFwc2hvdEZpcnN0UGFnZSkgewogICAgICAg
ICByZXBseSgxKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9XZWJQYWdlTWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1dlYlBhZ2VNYWMubW0KaW5kZXggNDMxZGZhMTdhY2EwNWI2MGVmZTlhZTA0MDNhNDA4ODBlMjgx
OGQ4MC4uZmUyNDE3YjBhN2Q1ODM2M2M1NGJiODZkYTU3ODk4ZDExZmJlMzUzOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KQEAg
LTY3MCw3ICs2NzAsNyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZUhlYWRlckFuZEZvb3RlckxheWVy
c0ZvckRldmljZVNjYWxlQ2hhbmdlKGZsb2F0IHNjYWxlRmFjdG9yKQogICAgICAgICBtX2Zvb3Rl
ckJhbm5lci0+ZGlkQ2hhbmdlRGV2aWNlU2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IpOwogfQogCi12
b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERGRG9jdW1lbnQodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIFZlY3RvcjxJbnRSZWN0PiYgcmVz
dWx0UGFnZVJlY3RzKQordm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZ1BERkRv
Y3VtZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBQcmludEluZm8m
IHByaW50SW5mbywgVmVjdG9yPEludFJlY3Q+JiByZXN1bHRQYWdlUmVjdHMpCiB7CiAgICAgQVNT
RVJUKHJlc3VsdFBhZ2VSZWN0cy5pc0VtcHR5KCkpOwogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IGEyZGExMmM2MDIyOTM3M2NmODc4OTJiODNkYWE1
NzczNTAwYTc3ZjIuLjU2NWZjYWFlZDEzMDllNzg2NTY0YzBiZmVhYjhiOWUxYmY1NDA3NTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTc2OCwxNyArNzY4LDE3
IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlCiAgICAgTE9HX0VSUk9SKCJVbmhhbmRsZWQgd2Vi
IHByb2Nlc3MgbWVzc2FnZSAnJXM6JXMnIiwgZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCku
dG9TdHJpbmcoKS5kYXRhKCksIGRlY29kZXIubWVzc2FnZU5hbWUoKS50b1N0cmluZygpLmRhdGEo
KSk7CiB9CiAKLVdlYkZyYW1lKiBXZWJQcm9jZXNzOjp3ZWJGcmFtZSh1aW50NjRfdCBmcmFtZUlE
KSBjb25zdAorV2ViRnJhbWUqIFdlYlByb2Nlc3M6OndlYkZyYW1lKEZyYW1lSWRlbnRpZmllciBm
cmFtZUlEKSBjb25zdAogewogICAgIHJldHVybiBtX2ZyYW1lTWFwLmdldChmcmFtZUlEKTsKIH0K
IAotdm9pZCBXZWJQcm9jZXNzOjphZGRXZWJGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJGcmFt
ZSogZnJhbWUpCit2b2lkIFdlYlByb2Nlc3M6OmFkZFdlYkZyYW1lKEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBXZWJGcmFtZSogZnJhbWUpCiB7CiAgICAgbV9mcmFtZU1hcC5zZXQoZnJhbWVJRCwg
ZnJhbWUpOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OnJlbW92ZVdlYkZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQpCit2b2lkIFdlYlByb2Nlc3M6OnJlbW92ZVdlYkZyYW1lKEZyYW1lSWRlbnRpZmllciBm
cmFtZUlEKQogewogICAgIG1fZnJhbWVNYXAucmVtb3ZlKGZyYW1lSUQpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBkNGMwMWJhYjFmOTNkYTkwODViMGYyMTk0Y2Qz
MjdkNDcxODY1MGIyLi4zY2IyYzQ5Njk0OTk4ODdiMzJiNTNiM2E2NmQwYmJmNjg1YTMyMThkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTQwLDYgKzQwLDcgQEAKICNp
bmNsdWRlICJXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRD
aGFubmVsTWFuYWdlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdl
SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaXN0cmFibGVEb21haW4uaD4KICNp
ZiBQTEFURk9STShNQUMpCkBAIC0xNzIsOSArMTczLDkgQEAgcHVibGljOgogCiAgICAgYm9vbCBm
dWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9mdWxsS2V5Ym9hcmRB
Y2Nlc3NFbmFibGVkOyB9CiAKLSAgICBXZWJGcmFtZSogd2ViRnJhbWUodWludDY0X3QpIGNvbnN0
OwotICAgIHZvaWQgYWRkV2ViRnJhbWUodWludDY0X3QsIFdlYkZyYW1lKik7Ci0gICAgdm9pZCBy
ZW1vdmVXZWJGcmFtZSh1aW50NjRfdCk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcikgY29uc3Q7CisgICAgdm9pZCBhZGRXZWJGcmFtZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIFdlYkZyYW1lKik7CisgICAgdm9pZCByZW1vdmVXZWJGcmFtZShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIpOwogCiAgICAgV2ViUGFnZUdyb3VwUHJveHkqIHdlYlBhZ2VH
cm91cChXZWJDb3JlOjpQYWdlR3JvdXAqKTsKICAgICBXZWJQYWdlR3JvdXBQcm94eSogd2ViUGFn
ZUdyb3VwKHVpbnQ2NF90IHBhZ2VHcm91cElEKTsKQEAgLTQ4OSw3ICs0OTAsNyBAQCBwcml2YXRl
OgogCiAgICAgYm9vbCBtX2Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQgeyBmYWxzZSB9OwogCi0g
ICAgSGFzaE1hcDx1aW50NjRfdCwgV2ViRnJhbWUqPiBtX2ZyYW1lTWFwOworICAgIEhhc2hNYXA8
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJGcmFtZSo+IG1fZnJhbWVNYXA7CiAKICAgICB0
eXBlZGVmIEhhc2hNYXA8Y29uc3QgY2hhciosIHN0ZDo6dW5pcXVlX3B0cjxXZWJQcm9jZXNzU3Vw
cGxlbWVudD4sIFB0ckhhc2g8Y29uc3QgY2hhcio+PiBXZWJQcm9jZXNzU3VwcGxlbWVudE1hcDsK
ICAgICBXZWJQcm9jZXNzU3VwcGxlbWVudE1hcCBtX3N1cHBsZW1lbnRzOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmgKaW5kZXggYjE0MDNkMDU2MzkzYjM5N2QwMTdkMDkzZGU1ZmUwNGNkY2NhOGNj
ZC4uZDYwNjMwZmUwY2FhZGY0M2E4Yjc0NDlkMmQ1NDkwZWRiMDhlNmFjNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oCkBAIC02NCw3ICs2NCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBoYXNX
ZWJWaWV3KCkgY29uc3QgZmluYWw7IC8vIG1haW5seSBmb3IgYXNzZXJ0aW9ucwogCiAgICAgT3B0
aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCgpIGNvbnN0IGZpbmFsOwotICAg
IE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEKCkgY29uc3QgZmluYWw7CisgICAgT3B0aW9uYWw8
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKCkgY29uc3QgZmluYWw7CiAgICAgUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIG1ha2VSZXBy
ZXNlbnRhdGlvbihXZWJDb3JlOjpEb2N1bWVudExvYWRlciopIGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbQppbmRleCAzZGQ1MGU3YjNiOWNmOTkzMzQ5YzlhYmI0Y2I0OTc4MzdlZWMz
NTNlLi5iN2E2NWU5OTM0ZmZmMDg4MGI3NTY4Y2EwMGU5NjJlMDE1YWU0MjEwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5tbQpAQCAtMjE0LDcgKzIxNCw3IEBAIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiBXZWJGcmFtZUxvYWRlckNsaWVudDo6cGFnZUlEKCkgY29uc3QKICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OwogfQogCi1PcHRpb25hbDx1aW50NjRfdD4gV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmZyYW1lSUQoKSBjb25zdAorT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZnJhbWVJRCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376298</attachid>
            <date>2019-08-14 12:51:02 -0700</date>
            <delta_ts>2019-08-14 12:59:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199986-20190814125101.patch</filename>
            <type>text/plain</type>
            <size>428951</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmE3MDY4NjA3ZWFlOTVj
NTA0YWRlOThlNGIyZDQ4NzlmMjY2NDRmOS4uOTM1OGNjMTBmYjk5ZjFkMTE2ZmEyNDUwMzVhM2Ri
MDgzMjEwYTc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE5LTA4LTE0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBPYmplY3RJ
ZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+IGZvciBmcmFtZUlEcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5OTg2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBzdHJvbmdseS10eXBl
ZCBGcmFtZUlkZW50aWZpZXIgaW5zdGVhZCBvZiB1aW50NjRfdCBhcyBmcmFtZSBpZGVudGlmaWVy
cyBldmVyeXdoZXJlLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGxvYWRlci9Db29raWVKYXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q29va2llSmFyOjpjb29raWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tpZUphcjo6
c2V0Q29va2llcyk6CisgICAgICAgIChXZWJDb3JlOjpDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tpZUphcjo6Z2V0
UmF3Q29va2llcyBjb25zdCk6CisgICAgICAgICogbG9hZGVyL0Nvb2tpZUphci5oOgorICAgICAg
ICAqIGxvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3Bw
OgorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
OjpOYXZpZ2F0aW9uQWN0aW9uOjpSZXF1ZXN0ZXI6OmZyYW1lSUQgY29uc3QpOgorICAgICAgICAq
IHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9HbG9iYWxGcmFtZUlkZW50aWZp
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Okdsb2JhbEZyYW1lSWRlbnRpZmllcjo6ZGVjb2RlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Nvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzaG91bGRCbG9ja0Nv
b2tpZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpo
YXNTdG9yYWdlQWNjZXNzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6Z3JhbnRTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW06CisgICAgICAg
IChXZWJDb3JlOjpjb29raWVzRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZXNGb3JT
ZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2ll
c0ZvckRPTSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzIGNvbnN0KToK
KwogMjAxOS0wOC0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAg
ICAgVXBkYXRlIFdvcmtlcjo6bm90aWZ5RmluaXNoZWQgdG8gbm90IHVzZSBlbXB0eVNlc3Npb25J
RApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA1NGI3OTc3NmIwNTc1YjFhODgzY2Y2OTc4ZmFjZDBhMTU1Y2NhOWM1Li40
NTg3MjQyZjU2N2Q0YzBiMmVlZjgwYmIxOTJmYWJiZjE1ODIwMjk3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDM0OSBAQAorMjAxOS0wOC0xNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KKworICAgICAgICBVc2UgT2JqZWN0SWRlbnRpZmllcjxGcmFtZUlkZW50aWZpZXJUeXBl
PiBmb3IgZnJhbWVJRHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5OTk4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVzZSB0aGUgc3Ryb25nbHktdHlwZWQgRnJhbWVJZGVudGlmaWVyIGluc3RlYWQgb2Yg
dWludDY0X3QgYXMgZnJhbWUgaWRlbnRpZmllcnMgZXZlcnl3aGVyZS4KKworICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFudFN0b3JhZ2VB
Y2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAg
ICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmdyYW50U3RvcmFn
ZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsSGFzU3Rv
cmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEdy
YW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTSk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJv
bURPTSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpj
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXRSYXdDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpoYXNT
dG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtMb2FkQ2hlY2tlcjo6TmV0d29ya0xvYWRDaGVja2VyKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRy
eSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnROZXR3b3Jr
TG9hZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y29udmVydFRv
RG93bmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmFib3J0
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVz
cG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2Vp
dmVCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZp
bmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRp
ZEZhaWxMb2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpj
b250aW51ZVdpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OmVzY2FwZUlERm9ySlNP
Tik6CisgICAgICAgIChXZWJLaXQ6OmxvZ0Jsb2NrZWRDb29raWVJbmZvcm1hdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uSW50ZXJuYWwpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24pOgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNoYXJlZC9BUEkv
QVBJRnJhbWVIYW5kbGUuY3BwOgorICAgICAgICAoQVBJOjpGcmFtZUhhbmRsZTo6Y3JlYXRlKToK
KyAgICAgICAgKEFQSTo6RnJhbWVIYW5kbGU6OmNyZWF0ZUF1dG9jb252ZXJ0aW5nKToKKyAgICAg
ICAgKEFQSTo6RnJhbWVIYW5kbGU6OkZyYW1lSGFuZGxlKToKKyAgICAgICAgKEFQSTo6RnJhbWVI
YW5kbGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5oOgor
ICAgICAgICAoQVBJOjpGcmFtZUhhbmRsZTo6ZnJhbWVJRCBjb25zdCk6CisgICAgICAgICogU2hh
cmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5tbToKKyAgICAgICAgKC1bX1dLRnJhbWVIYW5k
bGUgaGFzaF0pOgorICAgICAgICAoLVtfV0tGcmFtZUhhbmRsZSBfZnJhbWVJRF0pOgorICAgICAg
ICAoLVtfV0tGcmFtZUhhbmRsZSBpbml0V2l0aENvZGVyOl0pOgorICAgICAgICAoLVtfV0tGcmFt
ZUhhbmRsZSBlbmNvZGVXaXRoQ29kZXI6XSk6CisgICAgICAgICogU2hhcmVkL0F1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRp
Y2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAg
ICAgKiBTaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmg6CisgICAg
ICAgICogU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tGcmFtZUhhbmRsZVJlZi5jcHA6CisgICAgICAgIChXS0ZyYW1lSGFuZGxlR2V0RnJhbWVJRCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgt
W1dLV2ViVmlldyBfcHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvOmZvckZyYW1lOl0pOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX2NhbkNoYW5nZUZyYW1lTGF5b3V0Ol0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tOgorICAgICAgICAoLVtfV0tJbnNwZWN0
b3Igc2hvd01haW5SZXNvdXJjZUZvckZyYW1lOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRv
bWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNp
bXVsYXRlZElucHV0RGlzcGF0Y2hlcjo6cnVuKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21h
dGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0
b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dG9tYXRpb25TZXNzaW9uOjp3ZWJGcmFtZUlERm9ySGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQXV0b21hdGlvblNlc3Npb246OmhhbmRsZUZvcldlYkZyYW1lSUQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c3dpdGNoVG9Ccm93c2luZ0NvbnRleHQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2FpdEZvck5hdmlnYXRpb25Ub0Nv
bXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6ZmluZFBhZ2VGb3JGcmFtZUlEKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnJlc3BvbmRUb1BlbmRpbmdGcmFtZU5hdmln
YXRpb25DYWxsYmFja3NXaXRoVGltZW91dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRp
b25TZXNzaW9uOjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZlQ2hpbGRGcmFtZUhhbmRsZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZlUGFyZW50RnJhbWVIYW5kbGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Y29tcHV0ZUVsZW1lbnRM
YXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2VsZWN0T3B0
aW9uRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpnZXRB
bGxDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OmRlbGV0
ZVNpbmdsZUNvb2tpZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjp2
aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
QXV0b21hdGlvblNlc3Npb246OnRha2VTY3JlZW5zaG90KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVu
dDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW06CisgICAgICAg
ICgtW1dLUmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyIGF0dGVtcHRSZWNvdmVyeV0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9j
a0xvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6
OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSk6CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAg
ICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UHJvdmlzaW9uYWxQYWdlUHJveHk6OnZhbGlkYXRlSW5wdXQpOgorICAgICAgICAoV2ViS2l0OjpQ
cm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZEZh
aWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFs
UGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQcm92
aXNpb25hbFBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEpOgorICAgICAg
ICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxG
b3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNp
b25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0
OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9u
YWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xv
YWRGb3JGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJv
Y2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlN1c3BlbmRlZFBhZ2VQcm94eTo6U3VzcGVuZGVkUGFnZVByb3h5
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25D
aGVja1Byb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNr
UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5
OjpmcmFtZUlEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVzZXRBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6c2VhcmNoRm9yR3JhbnRl
ZFJlcXVlc3QgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6d2FzUmVxdWVzdERlbmllZCk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVy
bWlzc2lvbkZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OmdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKToKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc0dyYW50
ZWRWaWRlb09yQXVkaW9BY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6bWFpbkZyYW1lSUQgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpmcmFtZUlEIGNvbnN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkZyYW1lUHJveHk6OldlYkZyYW1lUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJGcmFtZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6OmZyYW1lSUQgY29uc3QpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGlkQ3JlYXRlU3ViZnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmRpZENyZWF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkU3Rh
cnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6ZGlkRXhwbGljaXRPcGVuRm9yRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZl
U2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1l
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDYW5jZWxDbGllbnRSZWRpcmVj
dEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92
aXNpb25hbFVSTEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRD
aGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZEZvckZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZyYW1l
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENoYW5nZU1h
aW5Eb2N1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRp
dGxlRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZpcnN0TGF5
b3V0Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZpcnN0Vmlz
dWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFtZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZnJhbWVEaWRCZWNvbWVGcmFtZVNldCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5j
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uQXN5bmNTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNw
b25zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2VTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnVuYWJsZVRvSW1w
bGVtZW50UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0
Rm9ybSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2
aWdhdGlvbkRhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZE5hdmlnYXRl
V2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFVwZGF0ZUhpc3RvcnlUaXRsZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEFsZXJ0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0Q29uZmlybSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdFByb21wdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpydW5PcGVuUGFuZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnByaW50RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZvY3Vz
ZWRGcmFtZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZyYW1lU2V0
TGFyZ2VzdEZyYW1lQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cmVxdWVzdFN0b3JhZ2VTcGFjZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6bWFrZVN0b3JhZ2VTcGFjZVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2Vz
Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNob3VsZEFsbG93RGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6d2ViRnJhbWUgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUHJveHk6OmNhbkNyZWF0ZUZyYW1lIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpmcmFtZUNyZWF0ZWQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUHJveHk6OmRpZERlc3Ryb3lGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IF93a19wYWdlQ291bnRGb3JQcmludEZvcm1hdHRlcjpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojpjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpldmFsdWF0ZUphdmFTY3JpcHRDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZENsZWFyV2luZG93
T2JqZWN0Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5OjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJh
bWVXaXRoT3JkaW5hbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZVBhcmVudEZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Zm9jdXNG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmNvbXB1
dGVFbGVtZW50TGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eTo6c2VsZWN0T3B0aW9uRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHk6OnRha2VTY3JlZW5zaG90KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eTo6Z2V0Q29va2llc0ZvckZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZGVsZXRlQ29va2llKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dL
V2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tOgorICAgICAgICAoK1tXS1dlYlByb2Nlc3NQbHVnSW5G
cmFtZSBsb29rVXBGcmFtZUZyb21IYW5kbGU6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3Ry
YXRlZ3k6OnNjaGVkdWxlTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5
OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJM
b2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJS
ZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxSZXNvdXJjZUxvYWQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVyOjpzdG9wTG9hZGluZ0FmdGVyWEZyYW1l
T3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNvdXJjZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omluc3RhbGxTZXJ2aWNlV29ya2VyKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZCBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6aGFzU3RvcmFnZUFjY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cmVxdWVzdFN0b3JhZ2VBY2Nl
c3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlE
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGlkRmFpbFByb3Zpc2lvbmFsTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkNvb2tpZUphci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6
Y29va2llcyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6c2V0Q29va2ll
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZp
ZWxkVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVKYXI6OmdldFJhd0Nv
b2tpZXMgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJGcmFtZTo6V2ViRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpnZW5lcmF0ZUZy
YW1lSUQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6ZnJhbWVJRCBjb25zdCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
Ykluc3BlY3Rvcjo6c2hvd01haW5SZXNvdXJjZUZvckZyYW1lKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxvYWRVUkxJbkZyYW1lKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9hZERhdGFJbkZyYW1lKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6c3RvcExvYWRpbmdGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmNvbnRpbnVlV2lsbFN1Ym1pdEZvcm0pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpydW5K
YXZhU2NyaXB0SW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldFNvdXJjZUZv
ckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0TWFpblJlc291cmNlRGF0YU9m
RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRSZXNvdXJjZURhdGFGcm9tRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRXZWJBcmNoaXZlT2ZGcmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmFkZENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6c2VuZENTUFZpb2xhdGlvblJlcG9ydCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6YmVnaW5QcmludGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
ZHJhd1JlY3RUb0ltYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZHJhd1BhZ2VzVG9Q
REYpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmF3UGFnZXNUb1BERkltcGwpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmF3UGFnZXNGb3JQcmludGluZyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmZyYW1lQmVjYW1lUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVl
c3RTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2hvdWxkQWxsb3dE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERG
RG9jdW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmlu
dGluZ0FuZERyYXdUb1BERik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQ
YWdlTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmlu
dGluZ1BERkRvY3VtZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp3ZWJGcmFtZSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmFkZFdlYkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6cmVtb3ZlV2ViRnJhbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
OgorCiAyMDE5LTA4LTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgdXNlIG9mIGVtcHR5U2Vzc2lvbklEIGZyb20gTmV0d29ya0xvYWRQYXJhbWV0
ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggODllZTNjYmU0NzY3YWVlNjU1MjE2
Njk1NjBlY2RlOGVkMTA2YTI3ZS4uODMwYTc4MjViOTFkZmQxNmU3Y2Y3MTkyN2Q3MTM4ODkxYjA3
NDYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5
LTA4LTE0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAg
IFVzZSBPYmplY3RJZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+IGZvciBmcmFtZUlEcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5OTg2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBz
dHJvbmdseS10eXBlZCBGcmFtZUlkZW50aWZpZXIgaW5zdGVhZCBvZiB1aW50NjRfdCBhcyBmcmFt
ZSBpZGVudGlmaWVycyBldmVyeXdoZXJlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlEIGNv
bnN0KToKKwogMjAxOS0wOC0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6YmxvYlNpemUgc2hvdWxkIHRha2UgYSBT
ZXNzaW9uSUQgYXMgcGFyYW1ldGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjdiZTc0OTNmYjM0N2U3YWVjNWQxMTdjYzVjYzY5
YThhMWVmYzFlMy4uNDk1N2JhYmM5N2IxNzEwNGE0NDUzNWU0MzgzZmRmYThiMTI3NDIwMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMjgwLDYgKzI4MCw3IEBACiAJCTBGMDNDMDc0MTg4NDY5NUUwMEE1RjhDQSAvKiBTeXN0ZW1N
ZW1vcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MDNDMDczMTg4NDY5NUUwMEE1RjhDQSAvKiBTeXN0ZW1NZW1vcnkuaCAqLzsgfTsKIAkJMEYwM0Mw
NzUxODg0ODA1NTAwQTVGOENBIC8qIEluc3BlY3Rvck92ZXJsYXkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNTIyRDRBMTVCNDc4QjIwMDlCN0M5NSAv
KiBJbnNwZWN0b3JPdmVybGF5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMEYwOTlEMDkxN0I5NjhBMTAwRkY4NEI5IC8qIFdlYkNvcmVUeXBlZEFy
cmF5Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEYwOTlEMDcxN0I5NjhBMTAwRkY4NEI5IC8qIFdlYkNvcmVUeXBlZEFycmF5Q29udHJv
bGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTBGMTE3ODE4MjJFM0M0N0YwMDhCRDU3MCAvKiBGcmFtZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTE3ODE2MjJFM0M0N0UwMDhC
RDU3MCAvKiBGcmFtZUlkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkwRjExQTU0RjBGMzkyMzMxMDBDMzc4ODQgLyogUmVuZGVyU2Vs
ZWN0aW9uSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEYxMUE1NEUwRjM5MjMzMTAwQzM3ODg0IC8qIFJlbmRlclNlbGVjdGlvbkluZm8uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjEzMTYzRTE2
RUQwQ0M4MDAzNUNDMDQgLyogUGxhdGZvcm1DQUZpbHRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTMxNjNEMTZFRDBDQzgwMDM1Q0MwNCAvKiBQ
bGF0Zm9ybUNBRmlsdGVycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTBGMTVEQThBMEYzQUFFRTcwMDAwQ0U0NyAvKiBDU1NBbmltYXRpb25Db250
cm9sbGVyUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEYxNURBODkwRjNBQUVFNzAwMDBDRTQ3IC8qIENTU0FuaW1hdGlvbkNvbnRyb2xsZXJQ
cml2YXRlLmggKi87IH07CkBAIC01NTc4LDYgKzU1NzksNyBAQAogCQkwRjAzQzA3MzE4ODQ2OTVF
MDBBNUY4Q0EgLyogU3lzdGVtTWVtb3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFN5c3RlbU1lbW9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjA5OUQw
NjE3Qjk2OEExMDBGRjg0QjkgLyogV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvcmVUeXBlZEFycmF5Q29udHJv
bGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMDk5RDA3MTdCOTY4QTEw
MEZGODRCOSAvKiBXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMTE3ODE2MjJFM0M0N0UwMDhCRDU3MCAvKiBGcmFtZUlk
ZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRnJhbWVJZGVudGlm
aWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMTFBNTRFMEYzOTIzMzEwMEMz
Nzg4NCAvKiBSZW5kZXJTZWxlY3Rpb25JbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbmRlclNlbGVjdGlvbkluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEYxMzE2M0QxNkVEMENDODAwMzVDQzA0IC8qIFBsYXRmb3JtQ0FGaWx0ZXJzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtQ0FGaWx0ZXJzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMTMxNjNGMTZFRDBDREUwMDM1Q0MwNCAvKiBQbGF0Zm9y
bUNBRmlsdGVyc0NvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gUGxhdGZvcm1DQUZpbHRlcnNDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTIwMjA0LDYgKzIwMjA2LDcgQEAKIAkJCQk2NUJGMDIyQTA5NzQ4MTYzMDBDNDMxOTYgLyog
RnJhbWUuaCAqLywKIAkJCQk5NzRBODYyMDE0QjdBREJCMDAzRkRDNzYgLyogRnJhbWVEZXN0cnVj
dGlvbk9ic2VydmVyLmNwcCAqLywKIAkJCQk5NzRBODYyMTE0QjdBREJCMDAzRkRDNzYgLyogRnJh
bWVEZXN0cnVjdGlvbk9ic2VydmVyLmggKi8sCisJCQkJMEYxMTc4MTYyMkUzQzQ3RTAwOEJENTcw
IC8qIEZyYW1lSWRlbnRpZmllci5oICovLAogCQkJCUM0Q0Q2Mjk4MTgzODM3NjYwMDdFQkFGMSAv
KiBGcmFtZVNuYXBzaG90dGluZy5jcHAgKi8sCiAJCQkJQzRDRDYyOTkxODM4Mzc2NjAwN0VCQUYx
IC8qIEZyYW1lU25hcHNob3R0aW5nLmggKi8sCiAJCQkJNjVBMjE0ODIwOTdBM0Y1MzAwQjkwNTBB
IC8qIEZyYW1lVHJlZS5jcHAgKi8sCkBAIC0yOTI1NSw2ICsyOTI1OCw3IEBACiAJCQkJQTg1MzEy
M0QxMUQwNDcxQjAwRDREMDc3IC8qIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNjVCRjAyMkYwOTc0ODE2MzAwQzQzMTk2IC8qIEZyYW1lLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5NzRBODYyMzE0QjdBREJCMDAzRkRDNzYgLyogRnJhbWVEZXN0cnVjdGlv
bk9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjExNzgxODIyRTNDNDdGMDA4QkQ1NzAg
LyogRnJhbWVJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTZEMzczQzBBREJBNURF
MDBBNDU1NEQgLyogRnJhbWVMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NkQzNzNFMEFE
QkE1REUwMEE0NTU0RCAvKiBGcmFtZUxvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RDAwMEVCQTMxMUJEQUZENDAwQzQ3NzI2IC8qIEZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmggaW4g
SGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5jcHAKaW5kZXggNjk2MzAzMzBi
NWQ3OTMwZDdkN2FhZjFkZGI0YTg5ZGZiNjBkZGRjYy4uNmQwMzYyZTk3NjQxODhiNjA4NGNiYWE4
Y2MxNDJkNGQzOTFmNWE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tp
ZUphci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5jcHAKQEAgLTcx
LDcgKzcxLDcgQEAgU3RyaW5nIENvb2tpZUphcjo6Y29va2llcyhEb2N1bWVudCYgZG9jdW1lbnQs
IGNvbnN0IFVSTCYgdXJsKSBjb25zdAogCiAgICAgYXV0byBpbmNsdWRlU2VjdXJlQ29va2llcyA9
IHNob3VsZEluY2x1ZGVTZWN1cmVDb29raWVzKGRvY3VtZW50LCB1cmwpOwogCi0gICAgT3B0aW9u
YWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFt
ZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7CiAgICAgaWYgKGF1dG8q
IGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkgewogICAgICAgICBmcmFtZUlEID0gZnJhbWUtPmxv
YWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKTsKQEAgLTk0LDcgKzk0LDcgQEAgQ29va2llUmVxdWVz
dEhlYWRlckZpZWxkUHJveHkgQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94
eShjb25zdCBEb2MKIHsKICAgICBUcmFjZVNjb3BlIHNjb3BlKEZldGNoQ29va2llc1N0YXJ0LCBG
ZXRjaENvb2tpZXNFbmQpOwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAg
T3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiBwYWdlSUQ7CiAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkg
ewogICAgICAgICBmcmFtZUlEID0gZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKTsK
QEAgLTEwNiw3ICsxMDYsNyBAQCBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eSBDb29raWVK
YXI6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5KGNvbnN0IERvYwogCiB2b2lkIENvb2tp
ZUphcjo6c2V0Q29va2llcyhEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25z
dCBTdHJpbmcmIGNvb2tpZVN0cmluZykKIHsKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQ7CiAgICAgT3B0aW9uYWw8
UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5m
cmFtZSgpKSB7CiAgICAgICAgIGZyYW1lSUQgPSBmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuZnJh
bWVJRCgpOwpAQCAtMTI4LDcgKzEyOCw3IEBAIGJvb2wgQ29va2llSmFyOjpjb29raWVzRW5hYmxl
ZChjb25zdCBEb2N1bWVudCYpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGQ6OnBh
aXI8U3RyaW5nLCBTZWN1cmVDb29raWVzQWNjZXNzZWQ+IENvb2tpZUphcjo6Y29va2llUmVxdWVz
dEhlYWRlckZpZWxkVmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBjb25zdCBVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwg
T3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdl
SUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAorc3Rk
OjpwYWlyPFN0cmluZywgU2VjdXJlQ29va2llc0FjY2Vzc2VkPiBDb29raWVKYXI6OmNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgY29uc3QgVVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1
cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMp
IGNvbnN0CiB7CiAgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBtX3N0b3JhZ2VTZXNzaW9uUHJvdmlk
ZXItPnN0b3JhZ2VTZXNzaW9uKCkpIHsKICAgICAgICAgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4g
cmVzdWx0ID0gc2Vzc2lvbi0+Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoZmlyc3RQYXJ0
eSwgc2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgaW5jbHVkZVNlY3VyZUNvb2tp
ZXMpOwpAQCAtMTQxLDcgKzE0MSw3IEBAIHN0ZDo6cGFpcjxTdHJpbmcsIFNlY3VyZUNvb2tpZXNB
Y2Nlc3NlZD4gQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1CiAKIFN0cmlu
ZyBDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgVVJMJiB1cmwpIGNvbnN0CiB7Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEOwogICAgIE9wdGlv
bmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7CiAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1l
bnQuZnJhbWUoKSkgewogICAgICAgICBmcmFtZUlEID0gZnJhbWUtPmxvYWRlcigpLmNsaWVudCgp
LmZyYW1lSUQoKTsKQEAgLTE1Niw3ICsxNTYsNyBAQCBTdHJpbmcgQ29va2llSmFyOjpjb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdQog
CiBib29sIENvb2tpZUphcjo6Z2V0UmF3Q29va2llcyhjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQs
IGNvbnN0IFVSTCYgdXJsLCBWZWN0b3I8Q29va2llPiYgY29va2llcykgY29uc3QKIHsKLSAgICBP
cHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+
IGZyYW1lSUQ7CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKICAgICBpZiAo
YXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGZyYW1lSUQgPSBmcmFt
ZS0+bG9hZGVyKCkuY2xpZW50KCkuZnJhbWVJRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0Nvb2tpZUphci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5o
CmluZGV4IDI4MWY4NGM0OTAwNTI2N2VhMDU0ZDUxZDc2OGE5ZWI3MzJjYmMyMzkuLjgwODdiOGNk
NWI3Y2Y0ZjU2OTNlMmY3ZTk1ZDhlZjZhMTc5ODQ2YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Db29raWVKYXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2ll
SmFyLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJGcmFt
ZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJQYWdlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC01OSw3ICs2
MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29va2llcyhEb2N1bWVudCYsIGNv
bnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKTsKIAogICAgIHZpcnR1YWwgYm9v
bCBjb29raWVzRW5hYmxlZChjb25zdCBEb2N1bWVudCYpIGNvbnN0OwotICAgIHZpcnR1YWwgc3Rk
OjpwYWlyPFN0cmluZywgU2VjdXJlQ29va2llc0FjY2Vzc2VkPiBjb29raWVSZXF1ZXN0SGVhZGVy
RmllbGRWYWx1ZShjb25zdCBQQUw6OlNlc3Npb25JRCYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwg
Y29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1l
SUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0
OworICAgIHZpcnR1YWwgc3RkOjpwYWlyPFN0cmluZywgU2VjdXJlQ29va2llc0FjY2Vzc2VkPiBj
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBQQUw6OlNlc3Npb25JRCYsIGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2Vj
dXJlQ29va2llcykgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGdldFJhd0Nvb2tpZXMoY29uc3Qg
RG9jdW1lbnQmLCBjb25zdCBVUkwmLCBWZWN0b3I8Q29va2llPiYpIGNvbnN0OwogICAgIHZpcnR1
YWwgdm9pZCBkZWxldGVDb29raWUoY29uc3QgRG9jdW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBT
dHJpbmcmIGNvb2tpZU5hbWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJh
bWVMb2FkZXJDbGllbnQuaAppbmRleCAxZjdhMjljNGIzMDFhMzY1ODIyZTQyMzNiNDE1ZGQxYzAw
MTkxMzJkLi5lNTlkMTcwZGYwYmEwOGEyYzRmNjAzZmRjZmE4MzU3ZGZmODliZGI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTMyLDcg
KzMyLDcgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgRW1wdHlGcmFtZUxvYWRlckNsaWVudCA6IHB1
YmxpYyBGcmFtZUxvYWRlckNsaWVudCB7CiAKICAgICB2b2lkIGZyYW1lTG9hZGVyRGVzdHJveWVk
KCkgb3ZlcnJpZGUgeyB9CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIFdURjo6bnVsbG9wdDsgfQorICAgIE9wdGlvbmFsPEZyYW1lSWRl
bnRpZmllcj4gZnJhbWVJRCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFdURjo6bnVsbG9wdDsg
fQogICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBj
b25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQu
aAppbmRleCAwNzQ4NzYxMThkYzY5MWFhN2M4YWRhOTdiNzk3MTM3MzNhMjhhNjk1Li5lZDg0N2Ni
MDQ3ODUyNWU1MjEwZjFjYzg1YjdmZWM1M2NlNzIyMmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjksNiArMjksNyBAQAogCiAjcHJhZ21hIG9uY2UK
IAorI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlw
ZXMuaCIKICNpbmNsdWRlICJMYXlvdXRNaWxlc3RvbmUuaCIKICNpbmNsdWRlICJMaW5rSWNvbi5o
IgpAQCAtMTI4LDcgKzEyOSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbWFrZVJlcHJl
c2VudGF0aW9uKERvY3VtZW50TG9hZGVyKikgPSAwOwogCiAgICAgdmlydHVhbCBPcHRpb25hbDxQ
YWdlSWRlbnRpZmllcj4gcGFnZUlEKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBPcHRpb25hbDxGcmFt
ZUlkZW50aWZpZXI+IGZyYW1lSUQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQoKSBjb25zdCA9IDA7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwCmluZGV4IDYyYmEyZGQy
Zjc3MGE0MDZlMTVjOTAzOTVlNDE3YzQyYzI4ZjUyMGUuLmJkNzM4ZTA4OTU3ZTJmZDg0ZGEwNTVh
YjQ1M2UxYTQzZTBiMjg4ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZp
Z2F0aW9uQWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFj
dGlvbi5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogTmF2aWdhdGlv
bkFjdGlvbjo6UmVxdWVzdGVyOjpSZXF1ZXN0ZXIoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KQog
ICAgIDogbV91cmwgeyBVUkwgeyBkb2N1bWVudC51cmwoKSB9IH0KICAgICAsIG1fb3JpZ2luIHsg
bWFrZVJlZlB0cihkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpKSB9Ci0gICAgLCBtX3BhZ2VJREFu
ZEZyYW1lSURQYWlyIHsgZG9jdW1lbnQuZnJhbWUoKSA/IHN0ZDo6bWFrZV9wYWlyKGRvY3VtZW50
LmZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgpLnBhZ2VJRCgpLnZhbHVlT3IoUGFnZUlkZW50aWZp
ZXIgeyB9KSwgZG9jdW1lbnQuZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkuZnJhbWVJRCgpLnZh
bHVlT3IoMCkpIDogc3RkOjptYWtlX3BhaXI8UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90Pih7IH0s
IDApIH0KKyAgICAsIG1fcGFnZUlEQW5kRnJhbWVJRFBhaXIgeyBkb2N1bWVudC5mcmFtZSgpID8g
c3RkOjptYWtlX3BhaXIoZG9jdW1lbnQuZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkucGFnZUlE
KCkudmFsdWVPcihQYWdlSWRlbnRpZmllciB7IH0pLCBkb2N1bWVudC5mcmFtZSgpLT5sb2FkZXIo
KS5jbGllbnQoKS5mcmFtZUlEKCkudmFsdWVPcihGcmFtZUlkZW50aWZpZXIgeyB9KSkgOiBzdGQ6
Om1ha2VfcGFpcjxQYWdlSWRlbnRpZmllciwgRnJhbWVJZGVudGlmaWVyPih7IH0sIHsgfSkgfQog
ewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaAppbmRleCAzNWM5
NjFhYTE1NDdiOGVhMGM0YjkwNDA3MDNjODVkM2VhOGU3ZTU3Li4wYTAyMWQ0ZmM3OWQ5NmIzZjJh
ODhiYWU0MDQ1NjE5MTA0Y2U5MGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
TmF2aWdhdGlvbkFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9u
QWN0aW9uLmgKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkFkQ2xpY2tBdHRyaWJ1dGlv
bi5oIgogI2luY2x1ZGUgIkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJG
cmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVk
ZSAiTGF5b3V0UG9pbnQuaCIKICNpbmNsdWRlICJQYWdlSWRlbnRpZmllci5oIgpAQCAtNjQsNyAr
NjUsNyBAQCBwdWJsaWM6CiAgICAgTmF2aWdhdGlvbkFjdGlvbihOYXZpZ2F0aW9uQWN0aW9uJiYp
OwogICAgIE5hdmlnYXRpb25BY3Rpb24mIG9wZXJhdG9yPShOYXZpZ2F0aW9uQWN0aW9uJiYpOwog
Ci0gICAgdXNpbmcgUGFnZUlEQW5kRnJhbWVJRFBhaXIgPSBzdGQ6OnBhaXI8UGFnZUlkZW50aWZp
ZXIsIHVpbnQ2NF90IC8qIGZyYW1lSUQgKi8+OworICAgIHVzaW5nIFBhZ2VJREFuZEZyYW1lSURQ
YWlyID0gc3RkOjpwYWlyPFBhZ2VJZGVudGlmaWVyLCBGcmFtZUlkZW50aWZpZXI+OyAvLyBGSVhN
RTogVXNlIEdsb2JhbEZyYW1lSWRlbnRpZmllci4KICAgICBjbGFzcyBSZXF1ZXN0ZXIgewogICAg
IHB1YmxpYzoKICAgICAgICAgUmVxdWVzdGVyKGNvbnN0IERvY3VtZW50Jik7CkBAIC03Miw3ICs3
Myw3IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3QgVVJMJiB1cmwoKSBjb25zdCB7IHJldHVybiBt
X3VybDsgfQogICAgICAgICBjb25zdCBTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4oKSBj
b25zdCB7IHJldHVybiAqbV9vcmlnaW47IH0KICAgICAgICAgUGFnZUlkZW50aWZpZXIgcGFnZUlE
KCkgY29uc3QgeyByZXR1cm4gbV9wYWdlSURBbmRGcmFtZUlEUGFpci5maXJzdDsgfQotICAgICAg
ICB1aW50NjRfdCBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlSURBbmRGcmFtZUlEUGFp
ci5zZWNvbmQ7IH0KKyAgICAgICAgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQoKSBjb25zdCB7IHJl
dHVybiBtX3BhZ2VJREFuZEZyYW1lSURQYWlyLnNlY29uZDsgfQogICAgIHByaXZhdGU6CiAgICAg
ICAgIFVSTCBtX3VybDsKICAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBtX29yaWdpbjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGMyNWEwMjRiYzA2M2M1OGYzYjI4YmQ3
OWNiYjAzMzg0NDI2YzhjNWUuLmU4YTVkZTMzZWQxNzkyNmM5YWE4NTZiMDgxNmI0ZWVjZjgyYzk0
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMzAsNiArMzAsNyBAQAogI2lu
Y2x1ZGUgIkRpc3BsYXlSZWZyZXNoTW9uaXRvci5oIgogI2luY2x1ZGUgIkRvY3VtZW50U3RvcmFn
ZUFjY2Vzcy5oIgogI2luY2x1ZGUgIkZvY3VzRGlyZWN0aW9uLmgiCisjaW5jbHVkZSAiRnJhbWVJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJHcmFwaGlj
c0NvbnRleHQuaCIKICNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCkBAIC00ODYsOCArNDg3LDgg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgUmVmUHRyPEljb24+IGNyZWF0ZUljb25Gb3JGaWxlcyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYgLyogZmlsZW5hbWVzICovKSA9IDA7CiAKICNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIHZpcnR1YWwgdm9pZCBoYXNTdG9yYWdlQWNj
ZXNzKFJlZ2lzdHJhYmxlRG9tYWluJiYgLypzdWJGcmFtZURvbWFpbiovLCBSZWdpc3RyYWJsZURv
bWFpbiYmIC8qdG9wRnJhbWVEb21haW4qLywgdWludDY0X3QgLypmcmFtZUlEKi8sIFBhZ2VJZGVu
dGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOyB9Ci0gICAgdmlydHVhbCB2b2lkIHJl
cXVlc3RTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWluJiYgLypzdWJGcmFtZURvbWFpbiov
LCBSZWdpc3RyYWJsZURvbWFpbiYmIC8qdG9wRnJhbWVEb21haW4qLywgdWludDY0X3QgLypmcmFt
ZUlEKi8sIFBhZ2VJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFn
ZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQ6
Ok5vLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd246Ok5vKTsgfQorICAgIHZpcnR1YWwgdm9p
ZCBoYXNTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWluJiYgLypzdWJGcmFtZURvbWFpbiov
LCBSZWdpc3RyYWJsZURvbWFpbiYmIC8qdG9wRnJhbWVEb21haW4qLywgRnJhbWVJZGVudGlmaWVy
LCBQYWdlSWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsgfQorICAgIHZpcnR1
YWwgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIC8qc3ViRnJh
bWVEb21haW4qLywgUmVnaXN0cmFibGVEb21haW4mJiAvKnRvcEZyYW1lRG9tYWluKi8sIEZyYW1l
SWRlbnRpZmllciwgUGFnZUlkZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChT
dG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihTdG9yYWdlQWNjZXNzV2FzR3Jh
bnRlZDo6Tm8sIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bjo6Tm8pOyB9CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lSWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUlkZW50
aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42NWQ0OTY3YWIxYjQ1NDIzNThlODY3MjQwNWNiNjZiN2Q3OGQ3
MjI2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUlkZW50aWZp
ZXIuaApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Vu
dW0gRnJhbWVJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBGcmFtZUlkZW50aWZpZXIgPSBPYmpl
Y3RJZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+OworCitpbmxpbmUgRnJhbWVJZGVudGlm
aWVyIGZyYW1lSWRlbnRpZmllckZyb21JRCh1aW50NjRfdCBmcmFtZUlEKQoreworICAgIHJldHVy
biBtYWtlT2JqZWN0SWRlbnRpZmllcjxGcmFtZUlkZW50aWZpZXJUeXBlPihmcmFtZUlEKTsKK30K
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9HbG9iYWxGcmFtZUlkZW50aWZp
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2xvYmFsRnJhbWVJZGVudGlmaWVyLmgKaW5kZXgg
MGQ3YjNkYmY3MmY4MWU0ZmQ2MmE3M2ZlZDI1ODFjZWFlZTE2N2I0YS4uNzA5MzQ2N2IxMmY4NTY2
MWE4ZjdmYWRmMDJiMzU3Nzk5NGViNmEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9HbG9iYWxGcmFtZUlkZW50aWZpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0dsb2Jh
bEZyYW1lSWRlbnRpZmllci5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisj
aW5jbHVkZSAiRnJhbWVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIK
ICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KIApAQCAtMzMsNyArMzQsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAvLyBGcmFtZSBpZGVudGlmaWVyIHRoYXQgaXMgdW5pcXVlIGFjcm9zcyBhbGwg
V2ViQ29udGVudCBwcm9jZXNzZXMuCiBzdHJ1Y3QgR2xvYmFsRnJhbWVJZGVudGlmaWVyIHsKICAg
ICBQYWdlSWRlbnRpZmllciBwYWdlSUQ7Ci0gICAgdWludDY0X3QgZnJhbWVJRDsKKyAgICBGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRDsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgT3B0aW9uYWw8R2xvYmFsRnJhbWVJZGVudGlmaWVyPiBkZWNvZGUoRGVjb2RlciYpOwpAQCAt
NTMsNyArNTQsNyBAQCBPcHRpb25hbDxHbG9iYWxGcmFtZUlkZW50aWZpZXI+IEdsb2JhbEZyYW1l
SWRlbnRpZmllcjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgaWYgKCFwYWdlSUQpCiAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJh
bWVJRDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQ7CiAgICAgZGVjb2Rl
ciA+PiBmcmFtZUlEOwogICAgIGlmICghZnJhbWVJRCkKICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ29va2ll
UmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaAppbmRleCBhMzMwMTlmOWQ1YjJhZWQy
NjA3NDY2OTQwMWZkNzMyMmYwMmQ1MTU3Li43ZmE5MDE0M2U0ZmUxNzdhNzRiMjg0MDcxYjhjMmQ2
ZWI1NjgyYTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Nv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9Db29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eS5oCkBAIC0yNiw2ICsyNiw3
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkNvb2tpZUphci5oIgorI2luY2x1ZGUgIkZy
YW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAi
U2FtZVNpdGVJbmZvLmgiCiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgpAQCAtMzgsNyArMzks
NyBAQCBzdHJ1Y3QgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkgewogICAgIFVSTCBmaXJz
dFBhcnR5OwogICAgIFNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm87CiAgICAgVVJMIHVybDsKLSAg
ICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZp
ZXI+IGZyYW1lSUQ7CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKICAgICBJ
bmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcyB7IEluY2x1ZGVTZWN1cmVD
b29raWVzOjpObyB9OwogCkBAIC03OCw3ICs3OSw3IEBAIE9wdGlvbmFsPENvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFByb3h5PiBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eTo6ZGVjb2RlKERl
CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh1cmwpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAgT3B0aW9uYWw8T3B0
aW9uYWw8RnJhbWVJZGVudGlmaWVyPj4gZnJhbWVJRDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGZyYW1lSUQpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCkBAIC05MSw3ICs5Miw3
IEBAIE9wdGlvbmFsPENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5PiBDb29raWVSZXF1ZXN0
SGVhZGVyRmllbGRQcm94eTo6ZGVjb2RlKERlCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmNs
dWRlU2VjdXJlQ29va2llcykpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBy
ZXR1cm4gQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkgeyAqc2Vzc2lvbklELCBXVEZNb3Zl
KGZpcnN0UGFydHkpLCBXVEZNb3ZlKHNhbWVTaXRlSW5mbyksIFdURk1vdmUodXJsKSwgZnJhbWVJ
RCwgKnBhZ2VJRCwgaW5jbHVkZVNlY3VyZUNvb2tpZXMgfTsKKyAgICByZXR1cm4gQ29va2llUmVx
dWVzdEhlYWRlckZpZWxkUHJveHkgeyAqc2Vzc2lvbklELCBXVEZNb3ZlKGZpcnN0UGFydHkpLCBX
VEZNb3ZlKHNhbWVTaXRlSW5mbyksIFdURk1vdmUodXJsKSwgKmZyYW1lSUQsICpwYWdlSUQsIGlu
Y2x1ZGVTZWN1cmVDb29raWVzIH07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uLmNwcAppbmRleCBlNzE5MDdkOTc3ZGY1OTI3M2Y0OTE5YzU2NTFhZjE3MzZmYjFhNjdm
Li5mNGIwOWE4ZDVlMWFkOTQ4NGVkN2IzMmViNTZlMzk2Zjc1ZGFjOTBlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Np
b24uY3BwCkBAIC03OSwxMiArNzksMTIgQEAgYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNo
b3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXNCdXRLZWVwRmlyc3RQYXJ0eUNvb2tpZXMKICAgICBy
ZXR1cm4gbV9yZWdpc3RyYWJsZURvbWFpbnNUb0Jsb2NrQnV0S2VlcENvb2tpZXNGb3IuY29udGFp
bnMocmVnaXN0cmFibGVEb21haW4pOwogfQogCi1ib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
c2hvdWxkQmxvY2tDb29raWVzKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgT3B0aW9u
YWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQpIGNv
bnN0Citib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2hvdWxkQmxvY2tDb29raWVzKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFt
ZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEKSBjb25zdAogewogICAgIHJldHVy
biBzaG91bGRCbG9ja0Nvb2tpZXMocmVxdWVzdC5maXJzdFBhcnR5Rm9yQ29va2llcygpLCByZXF1
ZXN0LnVybCgpLCBmcmFtZUlELCBwYWdlSUQpOwogfQogICAgIAotYm9vbCBOZXR3b3JrU3RvcmFn
ZVNlc3Npb246OnNob3VsZEJsb2NrQ29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHlGb3JDb29r
aWVzLCBjb25zdCBVUkwmIHJlc291cmNlLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0
aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkgY29uc3QKK2Jvb2wgTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uOjpzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5Rm9yQ29va2ll
cywgY29uc3QgVVJMJiByZXNvdXJjZSwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlE
LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEKSBjb25zdAogewogICAgIFJlZ2lzdHJh
YmxlRG9tYWluIGZpcnN0UGFydHlEb21haW4geyBmaXJzdFBhcnR5Rm9yQ29va2llcyB9OwogICAg
IGlmIChmaXJzdFBhcnR5RG9tYWluLmlzRW1wdHkoKSkKQEAgLTEzNiw3ICsxMzYsNyBAQCB2b2lk
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6cmVtb3ZlUHJldmFsZW50RG9tYWlucyhjb25zdCBWZWN0
b3I8UmVnaXN0cmFibGVEb21haQogICAgIH0KIH0KIAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Np
b246Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9t
YWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkgY29uc3QKK2Jvb2wgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlE
b21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIg
cGFnZUlEKSBjb25zdAogewogICAgIGlmIChmcmFtZUlEKSB7CiAgICAgICAgIGF1dG8gZnJhbWVz
R3JhbnRlZEl0ZXJhdG9yID0gbV9mcmFtZXNHcmFudGVkU3RvcmFnZUFjY2Vzcy5maW5kKHBhZ2VJ
RCk7CkBAIC0xNjksNyArMTY5LDcgQEAgVmVjdG9yPFN0cmluZz4gTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpnZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcygpIGNvbnN0CiAgICAgcmV0dXJuIGVudHJp
ZXM7CiB9CiAgICAgCi12b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z3JhbnRTdG9yYWdlQWNj
ZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlE
LCBQYWdlSWRlbnRpZmllciBwYWdlSUQpCit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z3Jh
bnRTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPEZyYW1l
SWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKQogewogICAgIGlmICgh
ZnJhbWVJRCkgewogICAgICAgICBpZiAoZmlyc3RQYXJ0eURvbWFpbi5pc0VtcHR5KCkpCkBAIC0x
OTEsNyArMTkxLDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdyYW50U3RvcmFnZUFj
Y2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2UKIAogICAgIGF1dG8gcGFnZXNH
cmFudGVkSXRlcmF0b3IgPSBtX2ZyYW1lc0dyYW50ZWRTdG9yYWdlQWNjZXNzLmZpbmQocGFnZUlE
KTsKICAgICBpZiAocGFnZXNHcmFudGVkSXRlcmF0b3IgPT0gbV9mcmFtZXNHcmFudGVkU3RvcmFn
ZUFjY2Vzcy5lbmQoKSkgewotICAgICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWdpc3RyYWJsZURv
bWFpbiwgRGVmYXVsdEhhc2g8dWludDY0X3Q+OjpIYXNoLCBXVEY6OlVuc2lnbmVkV2l0aFplcm9L
ZXlIYXNoVHJhaXRzPHVpbnQ2NF90Pj4gZW50cnk7CisgICAgICAgIEhhc2hNYXA8RnJhbWVJZGVu
dGlmaWVyLCBSZWdpc3RyYWJsZURvbWFpbj4gZW50cnk7CiAgICAgICAgIGVudHJ5LmFkZChmcmFt
ZUlELnZhbHVlKCksIHJlc291cmNlRG9tYWluKTsKICAgICAgICAgbV9mcmFtZXNHcmFudGVkU3Rv
cmFnZUFjY2Vzcy5hZGQocGFnZUlELCBlbnRyeSk7CiAgICAgfSBlbHNlIHsKQEAgLTIwMyw3ICsy
MDMsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZQogICAgIH0KIH0KIAotdm9pZCBOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQpCit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdl
SWRlbnRpZmllciBwYWdlSUQpCiB7CiAgICAgYXV0byBpdGVyYXRpb24gPSBtX2ZyYW1lc0dyYW50
ZWRTdG9yYWdlQWNjZXNzLmZpbmQocGFnZUlEKTsKICAgICBpZiAoaXRlcmF0aW9uID09IG1fZnJh
bWVzR3JhbnRlZFN0b3JhZ2VBY2Nlc3MuZW5kKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAppbmRleCBjOGVmOGY3
YmFiNzVmZDk5NzliMjgyZjVmNWE4NzAyZWY4MGM4OGIzLi44ZGRmNTViNGExZmNhNWM1NGE0OTkw
YTNhMzdjMDU5MjY2OGZlMDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNw
cmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQ3JlZGVudGlhbFN0b3JhZ2UuaCIKKyNpbmNsdWRlICJG
cmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJQYWdlSWRlbnRpZmllci5oIgogI2luY2x1ZGUg
IlJlZ2lzdHJhYmxlRG9tYWluLmgiCiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgpAQCAtMTIz
LDcgKzEyNCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNvb2tpZXNFbmFi
bGVkKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb29raWUoY29uc3QgQ29v
a2llJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb29raWVzKGNvbnN0IFZlY3RvcjxD
b29raWU+JiwgY29uc3QgVVJMJiwgY29uc3QgVVJMJiBtYWluRG9jdW1lbnRVUkwpOwotICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJh
bWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBjb25zdCBTdHJpbmcmKSBjb25zdDsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVu
dGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBjb25zdCBTdHJpbmcmKSBjb25zdDsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBDb29raWUmKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBVUkwmLCBjb25zdCBTdHJp
bmcmKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZUFsbENvb2tpZXMoKTsK
QEAgLTEzMiwyNiArMTMzLDI2IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRl
bGV0ZUNvb2tpZXNGb3JIb3N0bmFtZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGNvb2tpZUhvc3RO
YW1lcywgSW5jbHVkZUh0dHBPbmx5Q29va2llcyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9y
PENvb2tpZT4gZ2V0QWxsQ29va2llcygpOwogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxDb29r
aWU+IGdldENvb2tpZXMoY29uc3QgVVJMJik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBnZXRS
YXdDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29u
c3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlm
aWVyPiwgVmVjdG9yPENvb2tpZT4mKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGdl
dFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBj
b25zdCBVUkwmLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxQYWdlSWRlbnRp
Zmllcj4sIFZlY3RvcjxDb29raWU+JikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBm
bHVzaENvb2tpZVN0b3JlKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRIb3N0bmFtZXNX
aXRoQ29va2llcyhIYXNoU2V0PFN0cmluZz4mIGhvc3RuYW1lcyk7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90
PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVz
KSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKKyAgICBX
RUJDT1JFX0VYUE9SVCBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yRE9NKGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2Vj
dXJlQ29va2llcykgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpwYWlyPFN0cmluZywg
Ym9vbD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxGcmFtZUlkZW50aWZp
ZXI+LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25z
dDsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVSZXF1
ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eSYp
IGNvbnN0OwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLSAgICBXRUJD
T1JFX0VYUE9SVCBib29sIHNob3VsZEJsb2NrQ29va2llcyhjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
LCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+KSBj
b25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNob3VsZEJsb2NrQ29va2llcyhjb25zdCBV
UkwmIGZpcnN0UGFydHlGb3JDb29raWVzLCBjb25zdCBVUkwmIHJlc291cmNlLCBPcHRpb25hbDx1
aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+KSBjb25zdDsKKyAgICBX
RUJDT1JFX0VYUE9SVCBib29sIHNob3VsZEJsb2NrQ29va2llcyhjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4p
IGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2hvdWxkQmxvY2tDb29raWVzKGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eUZvckNvb2tpZXMsIGNvbnN0IFVSTCYgcmVzb3VyY2UsIE9wdGlvbmFs
PEZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPikgY29uc3Q7CiAgICAg
V0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzKGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91bGRC
bG9ja1RoaXJkUGFydHlDb29raWVzQnV0S2VlcEZpcnN0UGFydHlDb29raWVzRm9yKGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRQcmV2
YWxlbnREb21haW5zVG9CbG9ja0FuZERlbGV0ZUNvb2tpZXNGb3IoY29uc3QgVmVjdG9yPFJlZ2lz
dHJhYmxlRG9tYWluPiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UHJldmFsZW50RG9t
YWluc1RvQmxvY2tCdXRLZWVwQ29va2llc0Zvcihjb25zdCBWZWN0b3I8UmVnaXN0cmFibGVEb21h
aW4+Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29v
a2llcyhPcHRpb25hbDxTZWNvbmRzPik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVQ
cmV2YWxlbnREb21haW5zKGNvbnN0IFZlY3RvcjxSZWdpc3RyYWJsZURvbWFpbj4mIGRvbWFpbnMp
OwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJz
dFBhcnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIp
IGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBQYWdlSWRlbnRp
ZmllcikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFN0cmluZz4gZ2V0QWxsU3Rv
cmFnZUFjY2Vzc0VudHJpZXMoKSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdyYW50
U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVt
b3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVy
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBm
aXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBQYWdlSWRlbnRpZmll
cik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUo
RnJhbWVJZGVudGlmaWVyLCBQYWdlSWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBjbGVhclBhZ2VTcGVjaWZpY0RhdGFGb3JSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKFBhZ2VJZGVu
dGlmaWVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3Mo
KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50
UmVzb3VyY2VzKFNlY29uZHMpOwpAQCAtMTg1LDcgKzE4Niw3IEBAIHByaXZhdGU6CiAgICAgT3B0
aW9uYWw8U2Vjb25kcz4gY2xpZW50U2lkZUNvb2tpZUNhcChjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgZmlyc3RQYXJ0eSwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+KSBjb25zdDsKICAgICBIYXNo
U2V0PFJlZ2lzdHJhYmxlRG9tYWluPiBtX3JlZ2lzdHJhYmxlRG9tYWluc1RvQmxvY2tBbmREZWxl
dGVDb29raWVzRm9yOwogICAgIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+IG1fcmVnaXN0cmFi
bGVEb21haW5zVG9CbG9ja0J1dEtlZXBDb29raWVzRm9yOwotICAgIEhhc2hNYXA8UGFnZUlkZW50
aWZpZXIsIEhhc2hNYXA8dWludDY0X3QsIFJlZ2lzdHJhYmxlRG9tYWluLCBEZWZhdWx0SGFzaDx1
aW50NjRfdD46Okhhc2gsIFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8dWludDY0
X3Q+Pj4gbV9mcmFtZXNHcmFudGVkU3RvcmFnZUFjY2VzczsKKyAgICBIYXNoTWFwPFBhZ2VJZGVu
dGlmaWVyLCBIYXNoTWFwPEZyYW1lSWRlbnRpZmllciwgUmVnaXN0cmFibGVEb21haW4+PiBtX2Zy
YW1lc0dyYW50ZWRTdG9yYWdlQWNjZXNzOwogICAgIEhhc2hNYXA8UGFnZUlkZW50aWZpZXIsIEhh
c2hNYXA8UmVnaXN0cmFibGVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluPj4gbV9wYWdlc0dyYW50
ZWRTdG9yYWdlQWNjZXNzOwogICAgIE9wdGlvbmFsPFNlY29uZHM+IG1fY2FjaGVNYXhBZ2VDYXBG
b3JQcmV2YWxlbnRSZXNvdXJjZXMgeyB9OwogICAgIE9wdGlvbmFsPFNlY29uZHM+IG1fYWdlQ2Fw
Rm9yQ2xpZW50U2lkZUNvb2tpZXMgeyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29j
b2EubW0KaW5kZXggODRiNzNiODM0NGIwY2FiNWE5MDQ4YjQ4NWVmYjE3NmQ1ZDM0MDU4MS4uODVm
NGM2MmUzYmY3NGMwZGU1NDM1ZjJmMDBiZTk4NGQ4MmVhZWY2YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbkNvY29hLm1tCkBAIC0yOTQsNyArMjk0LDcgQEAgc3RhdGljIFJldGFpblB0
cjxOU0FycmF5PiBmaWx0ZXJDb29raWVzKE5TQXJyYXkgKnVuZmlsdGVyZWRDb29raWVzLCBPcHRp
b25hbDxTZWMKICAgICByZXR1cm4gZmlsdGVyZWRDb29raWVzOwogfQogCi1zdGF0aWMgTlNBcnJh
eSAqY29va2llc0ZvclVSTChjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNv
bnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+IHBhZ2VJRCkKK3N0YXRpYyBOU0FycmF5ICpjb29raWVzRm9yVVJMKGNvbnN0IE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZy
YW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkK
IHsKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlmIChzZXNzaW9u
LnNob3VsZEJsb2NrQ29va2llcyhmaXJzdFBhcnR5LCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCkpCkBA
IC0zMDcsNyArMzA3LDcgQEAgc3RhdGljIE5TQXJyYXkgKmNvb2tpZXNGb3JVUkwoY29uc3QgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGYKIH0KIAogZW51bSBJbmNs
dWRlSFRUUE9ubHlPck5vdCB7IERvTm90SW5jbHVkZUhUVFBPbmx5LCBJbmNsdWRlSFRUUE9ubHkg
fTsKLXN0YXRpYyBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yU2Vzc2lvbihjb25z
dCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwg
Y29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5j
bHVkZUhUVFBPbmx5T3JOb3QgaW5jbHVkZUhUVFBPbmx5LCBJbmNsdWRlU2VjdXJlQ29va2llcyBp
bmNsdWRlU2VjdXJlQ29va2llcykKK3N0YXRpYyBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29r
aWVzRm9yU2Vzc2lvbihjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0
IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVIVFRQT25seU9yTm90IGluY2x1ZGVIVFRQT25s
eSwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpCiB7CiAgICAgQVNT
RVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNjZXNzUmF3Q29v
a2llcykpOwogCkBAIC0zNjMsMTIgKzM2MywxMiBAQCBzdGF0aWMgdm9pZCBkZWxldGVBbGxIVFRQ
Q29va2llcyhDRkhUVFBDb29raWVTdG9yYWdlUmVmIGNvb2tpZVN0b3JhZ2UpCiAgICAgQ0ZIVFRQ
Q29va2llU3RvcmFnZURlbGV0ZUFsbENvb2tpZXMoY29va2llU3RvcmFnZSk7CiB9CiAKLXN0ZDo6
cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTShj
b25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBj
b25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29r
aWVzKSBjb25zdAorc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Ojpjb29raWVzRm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZv
JiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+
IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVD
b29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAogewogICAgIHJldHVybiBjb29raWVz
Rm9yU2Vzc2lvbigqdGhpcywgZmlyc3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQs
IHBhZ2VJRCwgRG9Ob3RJbmNsdWRlSFRUUE9ubHksIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKIH0K
IAotc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVT
aXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+
IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVD
b29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAorc3RkOjpwYWlyPFN0cmluZywgYm9v
bD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShj
b25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBj
b25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25h
bDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2Vj
dXJlQ29va2llcykgY29uc3QKIHsKICAgICByZXR1cm4gY29va2llc0ZvclNlc3Npb24oKnRoaXMs
IGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIEluY2x1ZGVI
VFRQT25seSwgaW5jbHVkZVNlY3VyZUNvb2tpZXMpOwogfQpAQCAtMzc4LDcgKzM3OCw3IEBAIHN0
ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llUmVxdWVz
dEhlYWRlckZpZWxkVmFsdWUoY29uCiAgICAgcmV0dXJuIGNvb2tpZXNGb3JTZXNzaW9uKCp0aGlz
LCBoZWFkZXJGaWVsZFByb3h5LmZpcnN0UGFydHksIGhlYWRlckZpZWxkUHJveHkuc2FtZVNpdGVJ
bmZvLCBoZWFkZXJGaWVsZFByb3h5LnVybCwgaGVhZGVyRmllbGRQcm94eS5mcmFtZUlELCBoZWFk
ZXJGaWVsZFByb3h5LnBhZ2VJRCwgSW5jbHVkZUhUVFBPbmx5LCBoZWFkZXJGaWVsZFByb3h5Lmlu
Y2x1ZGVTZWN1cmVDb29raWVzKTsKIH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNl
dENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZv
JiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBjb29raWVT
dHIpIGNvbnN0Cit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00o
Y29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywg
Y29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHIpIGNvbnN0
CiB7CiAgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2Fu
QWNjZXNzUmF3Q29va2llcykpOwogCkBAIC00NDMsNyArNDQzLDcgQEAgYm9vbCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmNvb2tpZXNFbmFibGVkKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLWJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzKGNvbnN0IFVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYg
dXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+
IHBhZ2VJRCwgVmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0Citib29sIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJh
bWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBW
ZWN0b3I8Q29va2llPiYgcmF3Q29va2llcykgY29uc3QKIHsKICAgICByYXdDb29raWVzLmNsZWFy
KCk7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKaW5kZXggNjg3ZDBiMDQ2
MWFmZGU3YzA3Mjk4YzZjOWVmZmQyNjE5NGJmNDdhYy4uNzYzYjQ3NTllNDMzZjg3MTMwYjM5NDAw
NjIzNDBiMjY4NDhlYThhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCkBAIC03MTYsNyArNzE2LDcgQEAgdm9pZCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6c3luY1N0b3JhZ2VJbW1lZGlhdGVseSgpCiAg
ICAgbV9kYXRhYmFzZS5ydW5WYWN1dW1Db21tYW5kKCk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVE
b21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21h
aW4sIE9wdGlvbmFsPEZyYW1lSUQ+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3Qg
U3ViRnJhbWVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9w
RnJhbWVEb21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlkZW50
aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC03NDMsNyAr
NzQzLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzU3Rv
cmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYKICAgICB9KTsKIH0KIAotdm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3Vi
RnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21haW4mJiB0b3BGcmFtZURv
bWFpbiwgRnJhbWVJRCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2
b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFj
Y2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRv
cEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFn
ZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC04
MDQsNyArODA0LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
cmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihEb21haW4KICAgICBncmFudFN0b3JhZ2VB
Y2Nlc3NJbnRlcm5hbChXVEZNb3ZlKGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcyksIFdURk1v
dmUob3BlbmVyRG9tYWluKSwgV1RGOjpudWxsb3B0LCBvcGVuZXJQYWdlSUQsIFN0b3JhZ2VBY2Nl
c3NQcm9tcHRXYXNTaG93bjo6Tm8sIFtdKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKSB7IH0pOwog
fQogCi12b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFudFN0b3Jh
Z2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21haW4m
JiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z3JhbnRTdG9yYWdl
QWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYg
dG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBw
YWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93biwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTgxOCw3ICs4
MTgsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFudFN0
b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiBzdQogICAgIGdyYW50U3RvcmFnZUFjY2Vzc0lu
dGVybmFsKFdURk1vdmUoc3ViRnJhbWVEb21haW4pLCBXVEZNb3ZlKHRvcEZyYW1lRG9tYWluKSwg
ZnJhbWVJRCwgcGFnZUlELCBwcm9tcHRXYXNTaG93biwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwogfQogCi12b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFu
dFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBU
b3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDxGcmFtZUlEPiBmcmFtZUlE
LCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9t
cHRXYXNTaG93bk5vd09yRWFybGllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNj
ZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChTdWJGcmFt
ZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWlu
LCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duTm93T3JFYXJsaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaAppbmRl
eCAzYzhkMmIxZjE2NTQ5M2M5M2NhNWQ4MmJjMDI3MmY5MTNiN2EwN2ZhLi5kMjU2YmUyMWNmZjdi
MWY3MDU1NjQwMzFhNTc1ZjVlNWQyMzMwZWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaApAQCAtOTEsOSArOTEsOSBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIGNhbGN1bGF0ZUFuZFN1Ym1pdFRlbGVtZXRyeSgpIGNvbnN0IG92ZXJyaWRl
OwogCi0gICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29u
c3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxGcmFtZUlEPiwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIG92ZXJyaWRlOwotICAgIHZv
aWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4m
JiwgRnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgZ3JhbnRTdG9y
YWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIEZyYW1lSUQsIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hv
d24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50
ZWQpPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJh
bWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1
YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFn
ZUFjY2Vzc1N0YXR1cyk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNz
KFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9t
cHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNz
V2FzR3JhbnRlZCk+JiYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBsb2dGcmFtZU5hdmlnYXRpb24o
Y29uc3QgTmF2aWdhdGVkVG9Eb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0IE5h
dmlnYXRlZEZyb21Eb21haW4mLCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNNYWluRnJhbWUpIG92
ZXJyaWRlOwogICAgIHZvaWQgbG9nVXNlckludGVyYWN0aW9uKGNvbnN0IFRvcEZyYW1lRG9tYWlu
Jikgb3ZlcnJpZGU7CkBAIC0xNTMsNyArMTUzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFBy
ZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgUmVzb3VyY2VMb2FkUHJl
dmFsZW5jZSk7CiAgICAgdW5zaWduZWQgcmVjdXJzaXZlbHlGaW5kTm9uUHJldmFsZW50RG9tYWlu
c1RoYXRSZWRpcmVjdGVkVG9UaGlzRG9tYWluKHVuc2lnbmVkIHByaW1hcnlEb21haW5JRCwgU3Rk
U2V0PHVuc2lnbmVkPiYgbm9uUHJldmFsZW50UmVkaXJlY3Rpb25Tb3VyY2VzLCB1bnNpZ25lZCBu
dW1iZXJPZlJlY3Vyc2l2ZUNhbGxzKTsKICAgICB2b2lkIHNldERvbWFpbnNBc1ByZXZhbGVudChT
dGRTZXQ8dW5zaWduZWQ+JiYpOwotICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwo
U3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgT3B0aW9uYWw8RnJhbWVJRD4sIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hv
d24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50
ZWQpPiYmKTsKKyAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFN1YkZyYW1lRG9t
YWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
cj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0
V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dh
c0dyYW50ZWQpPiYmKTsKICAgICB2b2lkIG1hcmtBc1ByZXZhbGVudElmSGFzUmVkaXJlY3RlZFRv
UHJldmFsZW50KCk7CiAgICAgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiBlbnN1cmVQcmV2YWxl
bnRSZXNvdXJjZXNGb3JEZWJ1Z01vZGUoKSBvdmVycmlkZTsKICAgICB2b2lkIHJlbW92ZURhdGFS
ZWNvcmRzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01l
bW9yeVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCmluZGV4IGUyMzlmY2M4MDNlOGQ3
NDQ1NjEyMThkNjcyMTdmNzFlZDQxYjE4N2YuLmY2ZWU5MmY5YjY4ZDMyZjA3ZTUyMTVkMzAzNTQ5
OTUxNDRmN2E4M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TWVtb3J5U3RvcmUuY3BwCkBAIC0yMTEsNyArMjExLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWVtb3J5U3RvcmU6OnN5bmNTdG9yYWdlSW1tZWRpYXRlbHkoKQogICAgICAgICBtX3Bl
cnNpc3RlbnRTdG9yYWdlLT5zY2hlZHVsZU9yV3JpdGVNZW1vcnlTdG9yZShSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzUGVyc2lzdGVudFN0b3JhZ2U6OkZvcmNlSW1tZWRpYXRlV3JpdGU6Olllcyk7CiB9
CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpoYXNTdG9yYWdlQWNj
ZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgVG9wRnJhbWVE
b21haW4mIHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDxGcmFtZUlEPiBmcmFtZUlELCBQYWdlSWRl
bnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6aGFzU3Rv
cmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFRv
cEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBm
cmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4o
KSk7CiAKQEAgLTIzNSw3ICsyMzUsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1v
cnlTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYgcwogICAgIH0p
OwogfQogCi12b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVxdWVzdFN0
b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21h
aW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJRCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdl
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVx
dWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJh
bWVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3Rh
dHVzKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFp
bigpKTsKIApAQCAtMjg4LDcgKzI4OCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01l
bW9yeVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyKERvbWFpbkluCiAgICAg
Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoV1RGTW92ZShkb21haW5Jbk5lZWRPZlN0b3JhZ2VB
Y2Nlc3MpLCBXVEZNb3ZlKG9wZW5lckRvbWFpbiksIFdURjo6bnVsbG9wdCwgb3BlbmVyUGFnZUlE
LCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd246Ok5vLCBbXShTdG9yYWdlQWNjZXNzV2FzR3Jh
bnRlZCkgeyB9KTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6
OmdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BG
cmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRp
ZmllciBwYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93biwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6Z3Jh
bnRTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1l
RG9tYWluJiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRl
bnRpZmllciBwYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93
biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKQEAg
LTMwMCw3ICszMDAsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6
Z3JhbnRTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3ViRgogICAgIGdyYW50U3RvcmFn
ZUFjY2Vzc0ludGVybmFsKFdURk1vdmUoc3ViRnJhbWVEb21haW4pLCBXVEZNb3ZlKHRvcEZyYW1l
RG9tYWluKSwgZnJhbWVJRCwgcGFnZUlELCBwcm9tcHRXYXNTaG93biwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOwogfQogCi12b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9y
ZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURv
bWFpbiwgVG9wRnJhbWVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJRD4g
ZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hv
d24gcHJvbXB0V2FzU2hvd25Ob3dPckVhcmxpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3Rv
cmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFN1
YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVE
b21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIg
cGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd25Ob3dPckVh
cmxpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVz
b3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgKaW5k
ZXggNWFmNjdhMTZmMDYxNmRhOWZhMGMwOTMzMTVhY2JjMzVkYWE1YjExOS4uYTRhN2I4OGUyZGZi
MDAzNDZiZGMyNzFmZWI3ZTViMjRiYTgyMDk2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9y
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaApAQCAtOTcsOSArOTcsOSBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIGNhbGN1bGF0ZUFuZFN1Ym1pdFRlbGVtZXRyeSgpIGNvbnN0IG92ZXJyaWRlOwog
Ci0gICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3Qg
VG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxGcmFtZUlEPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQg
cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwg
RnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgZ3JhbnRTdG9yYWdl
QWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIEZyYW1lSUQsIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQp
PiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVE
b21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1YkZy
YW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFj
Y2Vzc1N0YXR1cyk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzKFN1
YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2Fz
R3JhbnRlZCk+JiYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBsb2dGcmFtZU5hdmlnYXRpb24oY29u
c3QgTmF2aWdhdGVkVG9Eb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0IE5hdmln
YXRlZEZyb21Eb21haW4mLCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNNYWluRnJhbWUpIG92ZXJy
aWRlOwogICAgIHZvaWQgbG9nVXNlckludGVyYWN0aW9uKGNvbnN0IFRvcEZyYW1lRG9tYWluJikg
b3ZlcnJpZGU7CkBAIC0xMjMsNyArMTIzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGluY3JlbWVu
dFJlY29yZHNEZWxldGVkQ291bnRGb3JEb21haW5zKEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+
JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3VyY2UoUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcyYsIFJlc291cmNlTG9hZFByZXZhbGVuY2UpOwogICAgIHVuc2lnbmVkIHJlY3Vy
c2l2ZWx5R2V0QWxsRG9tYWluc1RoYXRIYXZlUmVkaXJlY3RlZFRvVGhpc0RvbWFpbihjb25zdCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiwgSGFzaFNldDxSZWRpcmVjdGVkVG9Eb21haW4+JiwgdW5z
aWduZWQgbnVtYmVyT2ZSZWN1cnNpdmVDYWxscykgY29uc3Q7Ci0gICAgdm9pZCBncmFudFN0b3Jh
Z2VBY2Nlc3NJbnRlcm5hbChTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBPcHRp
b25hbDxGcmFtZUlEPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VB
Y2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9y
YWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpOworICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzSW50
ZXJuYWwoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgT3B0aW9uYWw8V2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0
b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3Jl
OjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpOwogICAgIHZvaWQgbWFya0FzUHJldmFsZW50
SWZIYXNSZWRpcmVjdGVkVG9QcmV2YWxlbnQoUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpOwogICAg
IGJvb2wgaXNQcmV2YWxlbnREdWVUb0RlYnVnTW9kZShSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJik7
CiAgICAgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiBlbnN1cmVQcmV2YWxlbnRSZXNvdXJjZXNG
b3JEZWJ1Z01vZGUoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUuaAppbmRleCA3MGFjYmRjZTk2ZjY1Y2Y4M2E5NDYzN2QzZmI4ZDFlOWIyNjU1M2RkLi4y
MDk0NWRhMDk4YTY4MGEwYTRlOTk3N2ZkNzUyNDcwZjY3OGQ5OTVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRl
ICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzQ2xhc3NpZmllci5oIgogI2luY2x1ZGUgIldlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlm
aWVyLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CkBAIC05MCw3ICs5MSw2IEBAIHB1
YmxpYzoKICAgICB1c2luZyBOYXZpZ2F0ZWRUb0RvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluOwogICAgIHVzaW5nIERvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcyA9IFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluOwogICAgIHVzaW5nIE9wZW5lckRvbWFpbiA9IFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluOwotICAgIHVzaW5nIEZyYW1lSUQgPSB1aW50NjRfdDsKICAgICAKICAg
ICB2aXJ0dWFsIH5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoKTsKIApAQCAtMTU5LDkgKzE1
OSw5IEBAIHB1YmxpYzoKICAgICBib29sIGlzRGVidWdNb2RlRW5hYmxlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fZGVidWdNb2RlRW5hYmxlZDsgfTsKICAgICB2b2lkIHNldFByZXZhbGVudFJlc291cmNl
Rm9yRGVidWdNb2RlKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJik7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1l
RG9tYWluJiwgT3B0aW9uYWw8RnJhbWVJRD4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIEZyYW1l
SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3Jh
Z2VBY2Nlc3NTdGF0dXMpPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGdyYW50U3RvcmFnZUFj
Y2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBGcmFtZUlELCBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4m
JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1l
RG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXI+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhT
dWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3Jh
Z2VBY2Nlc3NTdGF0dXMpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdyYW50U3RvcmFnZUFj
Y2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNz
UHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFj
Y2Vzc1dhc0dyYW50ZWQpPiYmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgbG9nRnJhbWVOYXZp
Z2F0aW9uKGNvbnN0IE5hdmlnYXRlZFRvRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBj
b25zdCBOYXZpZ2F0ZWRGcm9tRG9tYWluJiwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlzTWFpbkZy
YW1lKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGxvZ1VzZXJJbnRlcmFjdGlvbihjb25zdCBUb3BG
cmFtZURvbWFpbiYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5jcHAKaW5kZXggOGMyMTE1N2NjN2Y2OTE3YmE5NzA4OWUzNmYxNjlkODZjZjhiOGFi
MC4uNjc1ZjBkYWY1OWNlOWI0Zjg4N2I3OTRiYzg5MmVjNDRhODM3NTZmMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTI4MCw3ICsyODAs
NyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1VwZGF0ZWQoVmVjdG9yPFdlYkNvcgogICAgIH0pOwogfQogCi12b2lkIFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFt
ZURvbWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoc3ViRnJhbWVEb21haW4gIT0gdG9wRnJhbWVE
b21haW4pOwogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CkBAIC0zMDEsNyArMzAxLDcg
QEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3Mo
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHMKICAgICB9KTsKIH0KIAotYm9vbCBXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBm
aXJzdFBhcnR5RG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQp
Citib29sIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzc0Zv
ckZyYW1lKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBQYWdlSWRlbnRpZmllciBwYWdlSUQpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKIApAQCAtMzE0LDcgKzMxNCw3IEBAIGJvb2wgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoY29uc3QgUmVnaXN0cmFibGVECiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCi12b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2Fs
bEhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFp
biwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wgaGFzQWNjZXNzKT4mJiBjYWxsYmFjaykKK3ZvaWQgV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsSGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcihj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlk
ZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgaGFzQWNjZXNzKT4m
JiBjYWxsYmFjaykKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC0zMjgs
NyArMzI4LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxIYXNT
dG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKGNvbnN0IFIKICAgICBjYWxsYmFjayhmYWxzZSk7
CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXF1ZXN0U3RvcmFn
ZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlk
ZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNH
cmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNj
ZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFn
ZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NX
YXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTM5MSw3ICszOTEs
NyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VB
Y2Nlc3NVbmRlck9wZW5lcihSZWdpc3RyYWJsZQogICAgIH0pOwogfQogCi12b2lkIFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZy
YW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIFN0b3Jh
Z2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3du
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1l
RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9t
cHRXYXNTaG93biBwcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdl
QWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIHBvc3RU
YXNrKFt0aGlzLCBzdWJGcmFtZURvbWFpbiA9IHN1YkZyYW1lRG9tYWluLmlzb2xhdGVkQ29weSgp
LCB0b3BGcmFtZURvbWFpbiA9IHRvcEZyYW1lRG9tYWluLmlzb2xhdGVkQ29weSgpLCBmcmFtZUlE
LCBwYWdlSUQsIHByb21wdFdhc1Nob3duLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewpAQCAtNDEwLDcgKzQxMCw3IEBAIHZvaWQgV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVn
aXN0cmFibGVEb21haW4mCiAgICAgfSk7CiB9CiAKLVN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIFdl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBQYWdlSWRlbnRp
ZmllciBwYWdlSUQpCitTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCBXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
cmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWlu
LCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC00MjcsNyArNDI3LDcg
QEAgU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QKICAgICByZXR1cm4gaXNTdG9yYWdlR3JhbnRlZCA/
IFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOjpZZXMgOiBTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZDo6
Tm87CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsR3JhbnRT
dG9yYWdlQWNjZXNzSGFuZGxlcihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21h
aW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8dWlu
dDY0X3Q+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lk
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEdyYW50U3RvcmFnZUFjY2Vzc0hh
bmRsZXIoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4g
ZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0
b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlLmgKaW5kZXggMDIzZGMyNzdjZjUwNTQ3YmY5Njg5ZWNjYTQ4NDRkMGU2NGFi
MTMyZi4uOWRhMWI2YmI1MjE1MjFhMDEyNDIzNGNkNDMyNzExNTZmOGNlMGI1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaApAQCAtMzAsNiArMzAsNyBA
QAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJTdG9yYWdlQWNjZXNzU3RhdHVz
LmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFUeXBlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFt
ZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0
aW9uSGFuZGxlci5oPgpAQCAtODksNyArOTAsNiBAQCBwdWJsaWM6CiAgICAgdXNpbmcgTmF2aWdh
dGVkVG9Eb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKICAgICB1c2luZyBEb21h
aW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MgPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKICAg
ICB1c2luZyBPcGVuZXJEb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKLSAgICB1
c2luZyBGcmFtZUlEID0gdWludDY0X3Q7CiAgICAgdXNpbmcgU3RvcmFnZUFjY2Vzc1dhc0dyYW50
ZWQgPSBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZDsKICAgICB1c2luZyBTdG9yYWdl
QWNjZXNzUHJvbXB0V2FzU2hvd24gPSBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hv
d247CiAKQEAgLTExMSw3ICsxMTEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTaG91bGRDbGFz
c2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChib29sLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0U2hvdWxkU3VibWl0VGVsZW1ldHJ5KGJvb2wp
OwogCi0gICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBj
b25zdCBUb3BGcmFtZURvbWFpbiYsIEZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBT
dG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFn
ZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYpOworICAg
IHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9w
RnJhbWVEb21haW4mLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+
JiYpOwogCiAgICAgdm9pZCBhcHBsaWNhdGlvbldpbGxUZXJtaW5hdGUoKTsKIApAQCAtMTI1LDEx
ICsxMjUsMTEgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJVc2VySW50ZXJhY3Rpb24oY29uc3Qg
VG9wRnJhbWVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQg
ZGVsZXRlV2Vic2l0ZURhdGFGb3JSZWdpc3RyYWJsZURvbWFpbnMoT3B0aW9uU2V0PFdlYnNpdGVE
YXRhVHlwZT4sIEhhc2hNYXA8UmVnaXN0cmFibGVEb21haW4sIFdlYnNpdGVEYXRhVG9SZW1vdmU+
JiYsIGJvb2wgc2hvdWxkTm90aWZ5UGFnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBI
YXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiYpPiYmKTsKICAgICB2b2lkIHJlZ2lzdHJhYmxlRG9t
YWluc1dpdGhXZWJzaXRlRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgYm9vbCBzaG91
bGROb3RpZnlQYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc2hTZXQ8UmVnaXN0cmFibGVE
b21haW4+JiYpPiYmKTsKLSAgICBTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCBncmFudFN0b3JhZ2VB
Y2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlv
bmFsPEZyYW1lSUQ+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CisgICAgU3RvcmFnZUFjY2Vz
c1dhc0dyYW50ZWQgZ3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29u
c3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAgICAgdm9pZCBoYXNIYWRVc2VySW50ZXJhY3Rpb24o
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KTsKLSAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25z
dCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPEZyYW1lSUQ+LCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgYm9vbCBoYXNTdG9y
YWdlQWNjZXNzRm9yRnJhbWUoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURv
bWFpbiYsIEZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKLSAgICB2b2lkIHJlcXVl
c3RTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21h
aW4mLCBGcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3du
KT4mJik7CisgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwg
Y29uc3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
Jik7CisgICAgYm9vbCBoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoY29uc3QgU3ViRnJhbWVEb21h
aW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIpOworICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoY29u
c3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+
JiYpOwogICAgIHZvaWQgc2V0TGFzdFNlZW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBTZWNv
bmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0UHJldmFsZW50
UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogICAgIHZvaWQgc2V0VmVyeVByZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTE3MiwxMSArMTcy
LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2Rl
KGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
IAogICAgIHZvaWQgbG9nVGVzdGluZ0V2ZW50KGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgY2Fs
bEdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBU
b3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPEZyYW1lSUQ+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpOwor
ICAgIHZvaWQgY2FsbEdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIoY29uc3QgU3ViRnJhbWVEb21h
aW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRp
Zmllcj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0
b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJik7CiAgICAgdm9pZCByZW1vdmVBbGxTdG9yYWdlQWNj
ZXNzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBjYWxsVXBkYXRlUHJl
dmFsZW50RG9tYWluc1RvQmxvY2tDb29raWVzRm9ySGFuZGxlcihjb25zdCBSZWdpc3RyYWJsZURv
bWFpbnNUb0Jsb2NrQ29va2llc0ZvciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAg
ICAgdm9pZCBjYWxsUmVtb3ZlRG9tYWluc0hhbmRsZXIoY29uc3QgVmVjdG9yPFJlZ2lzdHJhYmxl
RG9tYWluPiYpOwotICAgIHZvaWQgY2FsbEhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIo
Y29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIEZyYW1lSUQsIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsK
KyAgICB2b2lkIGNhbGxIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKGNvbnN0IFN1YkZy
YW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmKTsKIAogICAgIHZvaWQgZGlkQ3JlYXRlTmV0d29ya1Byb2Nlc3MoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNr
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRD
aGVja2VyLmgKaW5kZXggNzkzMDFiMjBjY2NhZmViNTIxMGQ3NWFkNTc0MWZkMmQ5MmU4YWNhZC4u
MmNiZjRjNmVlMmIzY2M1MGI1MTE3Y2YyNmYzMTNiMTUyYzczOTBmZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hl
Y2tlci5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICAgICAgU3RyaW5nIHVzZXJBZ2Vu
dDsKICAgICAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEOwogICAgICAgICBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSUQ7Ci0gICAgICAgIHVpbnQ2NF90IGZyYW1lSUQ7CisgICAgICAg
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEOwogICAgICAgICBXZWJDb3JlOjpTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeTsKICAgICB9OwogICAg
IHVzaW5nIENvbXBsZXRpb25DYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciYmKT47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDFm
MTAwNGUxYjViY2QzOWQ4YjEyMmRmOGM2ZGE0OGQxMzdjNGJlNjEuLjBjMmM5NzZmZWUyMGQzMjli
NDA3ZTA0ZGI5NjJmYjY3OTlhZjQzMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBA
IC01MjUsNyArNTI1LDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29u
dmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFBBTDo6U2Vzc2kKICAgICBsb2FkZXItPmNv
bnZlcnRUb0Rvd25sb2FkKGRvd25sb2FkSUQsIHJlcXVlc3QsIHJlc3BvbnNlKTsKIH0KIAotdm9p
ZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZv
JiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMg
aW5jbHVkZVNlY3VyZUNvb2tpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tp
ZVN0cmluZywgYm9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTShQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNp
dGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50
aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVT
ZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgc2VjdXJlQ29va2llc0FjY2Vzc2VkKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBzdG9y
YWdlU2Vzc2lvbihuZXR3b3JrUHJvY2VzcygpLCBzZXNzaW9uSUQpOwogICAgIGF1dG8gcmVzdWx0
ID0gbmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNvb2tpZXNGb3JET00oZmlyc3RQYXJ0eSwgc2FtZVNp
dGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgaW5jbHVkZVNlY3VyZUNvb2tpZXMpOwpAQCAt
NTM4LDcgKzUzOCw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tp
ZXNGb3JET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zCiAgICAgY29tcGxldGlvbkhh
bmRsZXIoV1RGTW92ZShyZXN1bHQuZmlyc3QpLCByZXN1bHQuc2Vjb25kKTsKIH0KIAotdm9pZCBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0Q29va2llc0Zyb21ET00oUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5m
byYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1l
SUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGNvbnN0IFN0cmluZyYgY29va2ll
U3RyaW5nKQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0Q29va2llc0Zy
b21ET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmll
cj4gcGFnZUlELCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0cmluZykKIHsKICAgICBhdXRvJiBuZXR3
b3JrU3RvcmFnZVNlc3Npb24gPSBzdG9yYWdlU2Vzc2lvbihuZXR3b3JrUHJvY2VzcygpLCBzZXNz
aW9uSUQpOwogICAgIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5zZXRDb29raWVzRnJvbURPTShmaXJz
dFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlELCBjb29raWVTdHJpbmcp
OwpAQCAtNTU1LDEzICs1NTUsMTMgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6Y29va2llc0VuYWJsZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb20KICAgICBjb21w
bGV0aW9uSGFuZGxlcihzdG9yYWdlU2Vzc2lvbihuZXR3b3JrUHJvY2VzcygpLCBzZXNzaW9uSUQp
LmNvb2tpZXNFbmFibGVkKCkpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUlu
Zm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8
UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3Vy
ZUNvb2tpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nLCBib29sKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJM
JiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJM
JiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tp
ZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nLCBib29sKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBhdXRvIHJlc3VsdCA9IHN0b3JhZ2VTZXNzaW9uKG5ldHdvcmtQcm9jZXNz
KCksIHNlc3Npb25JRCkuY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoZmlyc3RQYXJ0eSwg
c2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgaW5jbHVkZVNlY3VyZUNvb2tpZXMp
OwogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0LmZpcnN0KSwgcmVzdWx0LnNl
Y29uZCk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmdldFJhd0Nv
b2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXRSYXdDb29r
aWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZy
YW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYmKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiByZXN1bHQ7CiAg
ICAgc3RvcmFnZVNlc3Npb24obmV0d29ya1Byb2Nlc3MoKSwgc2Vzc2lvbklEKS5nZXRSYXdDb29r
aWVzKGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIHJlc3Vs
dCk7CkBAIC02NzAsNyArNjcwLDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6ZW5zdXJlTGVnYWN5UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCiB9CiAKICNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKQordm9pZCBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCkKIHsKICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBuZXR3b3JrUHJv
Y2VzcygpLnN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAgIHN0b3JhZ2VTZXNzaW9u
LT5yZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUoZnJhbWVJRCwgcGFnZUlEKTsKQEAgLTcyOCw3
ICs3MjgsNyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZXNvdXJjZUxv
YWRTdGF0aXN0aWNzVXBkYXRlZChWZWN0b3I8V2ViQ29yZQogICAgICAgICByZXNvdXJjZUxvYWRT
dGF0aXN0aWNzLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzVXBkYXRlZChXVEZNb3ZlKHN0YXRpc3Rp
Y3MpKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6aGFzU3RvcmFn
ZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWlu
LCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpoYXNTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdl
SWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gbmV0d29ya1By
b2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CiAgICAgICAgIGlmIChhdXRvKiBy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0YXRp
c3RpY3MoKSkgewpAQCAtNzQwLDcgKzc0MCw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6Omhhc1N0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjCiAg
ICAgY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNz
V2FzR3JhbnRlZCB3YXNHcmFudGVkLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hv
d24gcHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3Jl
OjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCB3YXNHcmFudGVkLCBXZWJDb3JlOjpTdG9yYWdlQWNj
ZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IG5ldHdvcmtQcm9jZXNzKCkubmV0d29y
a1Nlc3Npb24oc2Vzc2lvbklEKSkgewogICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcyA9IG5ldHdvcmtTZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCA5Mjg2NzMzYzRiN2M3NTEyYzI5YzUzMjQzODIxZDBl
ZTFlYzcxMzA5Li4yNTUwODRmOTIzMWZlYTgzMDgwMDk4ZDM1OTMwNTdhMWJkOTA3YzUzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiTmV0d29y
a1JUQ1Byb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZE1hcC5oIgogI2lu
Y2x1ZGUgIldlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9G
cmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtMb2FkSW5mb3JtYXRp
b24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9Qcm9jZXNzSWRlbnRpZmllci5oPgpAQCAtMTc0LDExICsxNzUsMTEgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHN0YXJ0RG93bmxvYWQoUEFMOjpTZXNzaW9uSUQsIERvd25sb2FkSUQsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFtZSA9
IHsgfSk7CiAgICAgdm9pZCBjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoUEFMOjpT
ZXNzaW9uSUQsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBEb3dubG9hZElE
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJik7CiAKLSAgICB2b2lkIGNvb2tpZXNGb3JET00oUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3Qg
VVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyPiwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQp
PiYmKTsKLSAgICB2b2lkIHNldENvb2tpZXNGcm9tRE9NKFBBTDo6U2Vzc2lvbklELCBjb25zdCBV
UkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYs
IE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRp
Zmllcj4sIGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgY29va2llc0ZvckRPTShQQUw6OlNlc3Np
b25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8m
LCBjb25zdCBVUkwmLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25h
bDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVz
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgc2VjdXJl
Q29va2llc0FjY2Vzc2VkKT4mJik7CisgICAgdm9pZCBzZXRDb29raWVzRnJvbURPTShQQUw6OlNl
c3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUlu
Zm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBPcHRp
b25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQg
Y29va2llc0VuYWJsZWQoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpOwotICAgIHZvaWQgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNz
aW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZv
JiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyPiwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBzZWN1cmVDb29raWVz
QWNjZXNzZWQpPiYmKTsKLSAgICB2b2lkIGdldFJhd0Nvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3Qg
VVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6Q29va2ll
PiYmKT4mJik7CisgICAgdm9pZCBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNl
c3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUlu
Zm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBPcHRp
b25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29r
aWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgc2Vj
dXJlQ29va2llc0FjY2Vzc2VkKT4mJik7CisgICAgdm9pZCBnZXRSYXdDb29raWVzKFBBTDo6U2Vz
c2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5m
byYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIE9wdGlv
bmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0
b3I8V2ViQ29yZTo6Q29va2llPiYmKT4mJik7CiAgICAgdm9pZCBkZWxldGVDb29raWUoUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSk7CiAKICAgICB2
b2lkIHJlZ2lzdGVyRmlsZUJsb2JVUkwoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYsIGNvbnN0
IFN0cmluZyYgcGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYsIGNvbnN0IFN0cmluZyYg
Y29udGVudFR5cGUpOwpAQCAtMjE4LDcgKzIxOSw3IEBAIHByaXZhdGU6CiAgICAgQ2FjaGVTdG9y
YWdlRW5naW5lQ29ubmVjdGlvbiYgY2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpOwogCiAjaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLSAgICB2b2lkIHJlbW92ZVN0b3JhZ2VBY2Nl
c3NGb3JGcmFtZShQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIpOworICAgIHZvaWQgcmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6
U2Vzc2lvbklELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyKTsKICAgICB2b2lkIGNsZWFyUGFnZVNwZWNpZmljRGF0YUZvclJlc291cmNlTG9hZFN0YXRp
c3RpY3MoUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKIAogICAgIHZv
aWQgbG9nVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYpOwpAQCAtMjI2LDggKzIyNyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsb2dTdWJyZXNv
dXJjZUxvYWRpbmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0YXJn
ZXREb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgV2FsbFRp
bWUgbGFzdFNlZW4pOwogICAgIHZvaWQgbG9nU3VicmVzb3VyY2VSZWRpcmVjdChQQUw6OlNlc3Np
b25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIHRhcmdldERvbWFpbik7CiAgICAgdm9pZCByZXNvdXJjZUxvYWRTdGF0aXN0
aWNzVXBkYXRlZChWZWN0b3I8V2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4mJik7Ci0g
ICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFt
ZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nl
c3MoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFp
biwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFt
ZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21w
dFdhc1Nob3duKT4mJik7CisgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklE
LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Cisg
ICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9w
RnJhbWVEb21haW4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dy
YW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYpOwogICAgIHZv
aWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihQQUw6OlNlc3Npb25JRCwgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4mJiBkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MsIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIG9wZW5lclBhZ2VJRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4mJiBvcGVuZXJEb21haW4pOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluCmluZGV4IDRiMTE4OWIzOWNjZWJjOGZiMjI2ZjhmZWUwMzQyOGM2Yzg1
YWQ3YTMuLjk5YWJkMDc4ZmIxNGM5ZjMwYmU5Yzg3NjAzYTEzZDkxYmQ3OWE5Y2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMzQsMTEgKzM0LDExIEBA
IG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVy
IHsKICAgICBTdGFydERvd25sb2FkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpE
b3dubG9hZElEIGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBT
dHJpbmcgc3VnZ2VzdGVkTmFtZSkKICAgICBDb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxv
YWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRl
bnRpZmllciwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCByZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKQogCi0g
ICAgQ29va2llc0ZvckRPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5
LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
PiBwYWdlSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRl
U2VjdXJlQ29va2llcykgLT4gKFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgZGlkQWNjZXNzU2Vj
dXJlQ29va2llcykgU3luY2hyb25vdXMKLSAgICBTZXRDb29raWVzRnJvbURPTShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJ
bmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9w
dGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFN0cmluZyBjb29raWVTdHJp
bmcpCisgICAgQ29va2llc0ZvckRPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCBmaXJz
dFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVy
bCwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBlbnVtOmJvb2wgV2ViQ29yZTo6SW5jbHVk
ZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIC0+IChTdHJpbmcgY29va2llU3Ry
aW5nLCBib29sIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMpIFN5bmNocm9ub3VzCisgICAgU2V0Q29v
a2llc0Zyb21ET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgZmlyc3RQYXJ0eSwgc3Ry
dWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFs
PFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXI+IHBhZ2VJRCwgU3RyaW5nIGNvb2tpZVN0cmluZykKICAgICBDb29raWVzRW5h
YmxlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChib29sIGVuYWJsZWQpIFN5bmNocm9u
b3VzCi0gICAgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1l
U2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBlbnVtOmJvb2wgV2ViQ29yZTo6SW5jbHVk
ZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIC0+IChTdHJpbmcgY29va2llU3Ry
aW5nLCBib29sIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMpIFN5bmNocm9ub3VzCi0gICAgR2V0UmF3
Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3Qg
V2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8dWlu
dDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQp
IC0+IChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBjb29raWVzKSBTeW5jaHJvbm91cworICAgIENv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJM
IGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBV
UkwgdXJsLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlv
bmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpJ
bmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgLT4gKFN0cmluZyBjb29r
aWVTdHJpbmcsIGJvb2wgZGlkQWNjZXNzU2VjdXJlQ29va2llcykgU3luY2hyb25vdXMKKyAgICBH
ZXRSYXdDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZpcnN0UGFydHksIHN0
cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25h
bDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyPiBwYWdlSUQpIC0+IChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBjb29raWVz
KSBTeW5jaHJvbm91cwogICAgIERlbGV0ZUNvb2tpZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFVSTCB1cmwsIFN0cmluZyBjb29raWVOYW1lKQogCiAgICAgUmVnaXN0ZXJGaWxlQmxvYlVSTChQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCB1cmwsIFN0cmluZyBwYXRoLCBXZWJLaXQ6OlNh
bmRib3hFeHRlbnNpb246OkhhbmRsZSBleHRlbnNpb25IYW5kbGUsIFN0cmluZyBjb250ZW50VHlw
ZSkKQEAgLTU4LDE1ICs1OCwxNSBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgRW5zdXJlTGVnYWN5UHJpdmF0ZUJyb3dzaW5n
U2Vzc2lvbigpCiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIFJl
bW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2
NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCk7CisgICAgUmVtb3Zl
U3RvcmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCk7
CiAgICAgQ2xlYXJQYWdlU3BlY2lmaWNEYXRhRm9yUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCk7CiAg
ICAgTG9nVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4gZG9tYWluKQogICAgIExvZ1dlYlNvY2tldExvYWRpbmcoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0YXJnZXREb21h
aW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCBXYWxsVGltZSBs
YXN0U2VlbikKICAgICBMb2dTdWJyZXNvdXJjZUxvYWRpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0YXJnZXREb21haW4sIFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCBXYWxsVGltZSBsYXN0U2VlbikKICAgICBM
b2dTdWJyZXNvdXJjZVJlZGlyZWN0KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4gc291cmNlRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biB0YXJnZXREb21haW4pCiAgICAgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0ZWQoVmVjdG9y
PFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M+IHN0YXRpc3RpY3MpCi0gICAgSGFzU3Rv
cmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFt
ZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
KSAtPiAoYm9vbCBoYXNTdG9yYWdlQWNjZXNzKSBBc3luYwotICAgIFJlcXVlc3RTdG9yYWdlQWNj
ZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4g
c3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWlu
LCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpIC0+IChl
bnVtOmJvb2wgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgd2FzR3JhbnRlZCwgZW51
bTpib29sIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93
bikgQXN5bmMKKyAgICBIYXNTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKSAtPiAoYm9vbCBoYXNTdG9yYWdl
QWNjZXNzKSBBc3luYworICAgIFJlcXVlc3RTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3ViRnJhbWVEb21haW4sIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKSAtPiAoZW51bTpi
b29sIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIHdhc0dyYW50ZWQsIGVudW06Ym9v
bCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24pIEFz
eW5jCiAgICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbkluTmVlZE9mU3RvcmFn
ZUFjY2VzcywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgb3BlbmVyUGFnZUlELCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiBvcGVuZXJEb21haW4pCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwCmluZGV4IDQwOTcx
NGQ2NjcyNmE4NDc0YWZmMjlhMTYwODE3ZjI0Nzk2N2IwMTYuLjExNzZmNTM3YTg1ODA5YjRiYWUx
Y2U3NjhiNTY1MzViMTVkNWViYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RhdGljIGlu
bGluZSBib29sIGlzU2FtZU9yaWdpbihjb25zdCBVUkwmIHVybCwgY29uc3QgU2VjdXJpdHlPcmln
aW4qIG9yaWdpbikKICAgICByZXR1cm4gdXJsLnByb3RvY29sSXNEYXRhKCkgfHwgdXJsLnByb3Rv
Y29sSXNCbG9iKCkgfHwgIW9yaWdpbiB8fCBvcmlnaW4tPmNhblJlcXVlc3QodXJsKTsKIH0KIAot
TmV0d29ya0xvYWRDaGVja2VyOjpOZXR3b3JrTG9hZENoZWNrZXIoTmV0d29ya1Byb2Nlc3MmIG5l
dHdvcmtQcm9jZXNzLCBGZXRjaE9wdGlvbnMmJiBvcHRpb25zLCBQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgSFRUUEhlYWRl
ck1hcCYmIG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMsIFVSTCYmIHVybCwgUmVmUHRyPFNlY3VyaXR5
T3JpZ2luPiYmIHNvdXJjZU9yaWdpbiwgUHJlZmxpZ2h0UG9saWN5IHByZWZsaWdodFBvbGljeSwg
U3RyaW5nJiYgcmVmZXJyZXIsIGJvb2wgaXNIVFRQU1VwZ3JhZGVFbmFibGVkLCBib29sIHNob3Vs
ZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcywgTG9hZFR5cGUgcmVxdWVzdExvYWRUeXBl
KQorTmV0d29ya0xvYWRDaGVja2VyOjpOZXR3b3JrTG9hZENoZWNrZXIoTmV0d29ya1Byb2Nlc3Mm
IG5ldHdvcmtQcm9jZXNzLCBGZXRjaE9wdGlvbnMmJiBvcHRpb25zLCBQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IEhUVFBIZWFkZXJNYXAmJiBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzLCBVUkwmJiB1cmwsIFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4mJiBzb3VyY2VPcmlnaW4sIFByZWZsaWdodFBvbGljeSBwcmVmbGln
aHRQb2xpY3ksIFN0cmluZyYmIHJlZmVycmVyLCBib29sIGlzSFRUUFNVcGdyYWRlRW5hYmxlZCwg
Ym9vbCBzaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MsIExvYWRUeXBlIHJlcXVl
c3RMb2FkVHlwZSkKICAgICA6IG1fb3B0aW9ucyhXVEZNb3ZlKG9wdGlvbnMpKQogICAgICwgbV9z
ZXNzaW9uSUQoc2Vzc2lvbklEKQogICAgICwgbV9uZXR3b3JrUHJvY2VzcyhuZXR3b3JrUHJvY2Vz
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRD
aGVja2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tl
ci5oCmluZGV4IDA3NzA2NDY3MGZjYmI5YWM5NDJmOGQ4NjE4MTA0OTU5ZjAwZTA1NzguLmVjOTRl
MTQ2OTUzM2Q3ZDk4NzgxNmJiMjZiMTdkZmIyM2I5NDNmYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaApAQCAtMjksNiArMjksNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0NvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvRmV0Y2hPcHRpb25zLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50
aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtMb2FkSW5mb3JtYXRpb24uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZUVycm9yLmg+CkBAIC01NSw3ICs1Niw3IEBAIGNsYXNzIE5ldHdvcmtMb2FkQ2hlY2tlciA6
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxOZXR3b3JrTG9hZENoZWNrZXI+IHsKIHB1YmxpYzoKICAg
ICBlbnVtIGNsYXNzIExvYWRUeXBlIDogYm9vbCB7IE1haW5GcmFtZSwgT3RoZXIgfTsKIAotICAg
IE5ldHdvcmtMb2FkQ2hlY2tlcihOZXR3b3JrUHJvY2VzcyYsIFdlYkNvcmU6OkZldGNoT3B0aW9u
cyYmLCBQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZy
YW1lSUQsIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmJiwgVVJMJiYsIFJlZlB0cjxXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbj4mJiwgV2ViQ29yZTo6UHJlZmxpZ2h0UG9saWN5LCBTdHJpbmcmJiByZWZl
cnJlciwgYm9vbCBpc0hUVFBTVXBncmFkZUVuYWJsZWQgPSBmYWxzZSwgYm9vbCBzaG91bGRDYXB0
dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MgPSBmYWxzZSwgTG9hZFR5cGUgcmVxdWVzdExvYWRU
eXBlID0gTG9hZFR5cGU6Ok90aGVyKTsKKyAgICBOZXR3b3JrTG9hZENoZWNrZXIoTmV0d29ya1By
b2Nlc3MmLCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmJiwgUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OkhUVFBI
ZWFkZXJNYXAmJiwgVVJMJiYsIFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiwgV2Vi
Q29yZTo6UHJlZmxpZ2h0UG9saWN5LCBTdHJpbmcmJiByZWZlcnJlciwgYm9vbCBpc0hUVFBTVXBn
cmFkZUVuYWJsZWQgPSBmYWxzZSwgYm9vbCBzaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1l
dHJpY3MgPSBmYWxzZSwgTG9hZFR5cGUgcmVxdWVzdExvYWRUeXBlID0gTG9hZFR5cGU6Ok90aGVy
KTsKICAgICB+TmV0d29ya0xvYWRDaGVja2VyKCk7CiAKICAgICBzdHJ1Y3QgUmVkaXJlY3Rpb25U
cmlwbGV0IHsKQEAgLTEyNyw3ICsxMjgsNyBAQCBwcml2YXRlOgogICAgIFBBTDo6U2Vzc2lvbklE
IG1fc2Vzc2lvbklEOwogICAgIFJlZjxOZXR3b3JrUHJvY2Vzcz4gbV9uZXR3b3JrUHJvY2VzczsK
ICAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBtX3BhZ2VJRDsKLSAgICB1aW50NjRfdCBtX2Zy
YW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fZnJhbWVJRDsKICAgICBXZWJD
b3JlOjpIVFRQSGVhZGVyTWFwIG1fb3JpZ2luYWxSZXF1ZXN0SGVhZGVyczsgLy8gTmVlZGVkIGZv
ciBDT1JTIGNoZWNrcy4KICAgICBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwIG1fZmlyc3RSZXF1ZXN0
SGVhZGVyczsgLy8gTmVlZGVkIGZvciBDT1JTIGNoZWNrcy4KICAgICBVUkwgbV91cmw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVy
cy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMu
aAppbmRleCBjNDNlNWRjZDc1MDExYTU1OTFlNmU2ODI3MjRjMWE2OTU2NWVjZjE3Li5iOGY3ZDEz
OWUzMWVjNWM4MjcxMzVlMzczMGI3YjBkOWVmMGE0NjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKQEAgLTI3LDYgKzI3
LDcgQEAKIAogI2luY2x1ZGUgIk5ldHdvcmtBY3Rpdml0eVRyYWNrZXIuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0Jsb2JEYXRhRmlsZVJlZmVyZW5jZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJ
ZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZVJlcXVlc3QuaD4KQEAgLTQ2LDcgKzQ3LDcgQEAgcHVibGljOgogCiAgICAgUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEOwogICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJ
RDsKLSAgICB1aW50NjRfdCB3ZWJGcmFtZUlEIHsgMCB9OworICAgIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciB3ZWJGcmFtZUlEOwogICAgIFdURjo6UHJvY2Vzc0lEIHBhcmVudFBJRCB7IDAgfTsK
ICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdDsKICAgICBXZWJDb3JlOjpDb250
ZW50U25pZmZpbmdQb2xpY3kgY29udGVudFNuaWZmaW5nUG9saWN5IHsgV2ViQ29yZTo6Q29udGVu
dFNuaWZmaW5nUG9saWN5OjpTbmlmZkNvbnRlbnQgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCBhOTJiNzI0MWViMjk4ZWE2NmM1YThhMjg0
NzRmNDAzZTU3ZTQ1YzM5Li5jMjM2M2RkMTEzNWY3ZTJiZmEwMzI5ZWRmMjYyYTI1YmVlMjJiM2M2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBA
IC0xMzcsNyArMTM3LDYgQEAgcHVibGljOgogICAgIHVzaW5nIE5hdmlnYXRlZFRvRG9tYWluID0g
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNpbmcgRG9tYWluSW5OZWVkT2ZTdG9y
YWdlQWNjZXNzID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNpbmcgT3BlbmVy
RG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47Ci0gICAgdXNpbmcgRnJhbWVJRCA9
IHVpbnQ2NF90OwogCiAgICAgTmV0d29ya1Byb2Nlc3MoQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxp
emF0aW9uUGFyYW1ldGVycyYmKTsKICAgICB+TmV0d29ya1Byb2Nlc3MoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApp
bmRleCA0NzgyZWYxNWYzZGVlZTVhZjRlYWVmMDVjZGY2MDM2YWU3ZTZkMmZiLi5lYzZhODBjODQ4
OWRlZjMyZDc4OWI3NGJlYzEyNzM1N2JlYzU1ODM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0xODAsMTgg
KzE4MCwxOCBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQoKQogCiAgICAgICAg
ICAgICBXVEY6OnN3aXRjaE9uKHJlc3VsdCwKICAgICAgICAgICAgICAgICBbdGhpc10gKFJlc291
cmNlRXJyb3ImIGVycm9yKSB7Ci0gICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoInN0YXJ0OiBlcnJvciBjaGVja2luZyAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJj
ZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQsIHBhcmVudFBJRCA9ICVkLCBlcnJvci5kb21haW4g
PSAle3B1YmxpY31zLCBlcnJvci5jb2RlID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50
b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZp
ZXIsIHRoaXMtPmlzTWFpblJlc291cmNlKCksIHRoaXMtPmlzU3luY2hyb25vdXMoKSwgbV9wYXJh
bWV0ZXJzLnBhcmVudFBJRCwgZXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSwgZXJyb3IuZXJy
b3JDb2RlKCkpOworICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJz
dGFydDogZXJyb3IgY2hlY2tpbmcgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwg
aXNTeW5jaHJvbm91cyA9ICVkLCBwYXJlbnRQSUQgPSAlZCwgZXJyb3IuZG9tYWluID0gJXtwdWJs
aWN9cywgZXJyb3IuY29kZSA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQo
KSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50
aWZpZXIsIHRoaXMtPmlzTWFpblJlc291cmNlKCksIHRoaXMtPmlzU3luY2hyb25vdXMoKSwgbV9w
YXJhbWV0ZXJzLnBhcmVudFBJRCwgZXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSwgZXJyb3Iu
ZXJyb3JDb2RlKCkpOwogICAgICAgICAgICAgICAgICAgICBpZiAoIWVycm9yLmlzQ2FuY2VsbGF0
aW9uKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLT5kaWRGYWlsTG9hZGluZyhlcnJv
cik7CiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICBbdGhpc10gKE5ldHdvcmtM
b2FkQ2hlY2tlcjo6UmVkaXJlY3Rpb25UcmlwbGV0JiB0cmlwbGV0KSB7CiAgICAgICAgICAgICAg
ICAgICAgIHRoaXMtPm1faXNXYWl0aW5nQ29udGludWVXaWxsU2VuZFJlcXVlc3RGb3JDYWNoZWRS
ZWRpcmVjdCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMtPndpbGxTZW5kUmVkaXJl
Y3RlZFJlcXVlc3QoV1RGTW92ZSh0cmlwbGV0LnJlcXVlc3QpLCBXVEZNb3ZlKHRyaXBsZXQucmVk
aXJlY3RSZXF1ZXN0KSwgV1RGTW92ZSh0cmlwbGV0LnJlZGlyZWN0UmVzcG9uc2UpKTsKLSAgICAg
ICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6IHN5bnRoZXRpYyBy
ZWRpcmVjdCBzZW50IGJlY2F1c2UgcmVxdWVzdCBVUkwgd2FzIG1vZGlmaWVkIChwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0
ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCwgcGFyZW50UElEID0g
JWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2Vi
RnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIHRoaXMtPmlzTWFpblJlc291cmNlKCks
IHRoaXMtPmlzU3luY2hyb25vdXMoKSwgbV9wYXJhbWV0ZXJzLnBhcmVudFBJRCk7CisgICAgICAg
ICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0OiBzeW50aGV0aWMgcmVk
aXJlY3Qgc2VudCBiZWNhdXNlIHJlcXVlc3QgVVJMIHdhcyBtb2RpZmllZCAocGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAi
LCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQsIHBhcmVudFBJRCA9ICVk
KSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZy
YW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIHRoaXMtPmlzTWFpblJl
c291cmNlKCksIHRoaXMtPmlzU3luY2hyb25vdXMoKSwgbV9wYXJhbWV0ZXJzLnBhcmVudFBJRCk7
CiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICBbdGhpc10gKFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCkgewogICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy0+Y2FuVXNlQ2Fj
aGUocmVxdWVzdCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoInN0YXJ0OiBDaGVja2luZyBjYWNoZSBmb3IgcmVzb3VyY2UgKHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwg
aXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkLCBwYXJlbnRQSUQgPSAlZCki
LCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFt
ZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgdGhpcy0+aXNNYWluUmVzb3VyY2UoKSwgdGhp
cy0+aXNTeW5jaHJvbm91cygpLCBtX3BhcmFtZXRlcnMucGFyZW50UElEKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0OiBDaGVja2luZyBjYWNo
ZSBmb3IgcmVzb3VyY2UgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5j
aHJvbm91cyA9ICVkLCBwYXJlbnRQSUQgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRv
VUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVy
cy5pZGVudGlmaWVyLCB0aGlzLT5pc01haW5SZXNvdXJjZSgpLCB0aGlzLT5pc1N5bmNocm9ub3Vz
KCksIG1fcGFyYW1ldGVycy5wYXJlbnRQSUQpOwogICAgICAgICAgICAgICAgICAgICAgICAgdGhp
cy0+cmV0cmlldmVDYWNoZUVudHJ5KHJlcXVlc3QpOwogICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAgICAgICAgICAgICB9CkBAIC0yMDQsNyArMjA0LDcgQEAgdm9pZCBO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KCkKICAgICB9CiAgICAgLy8gRklYTUU6IFJlbW92
ZSB0aGF0IGNvZGUgcGF0aCBvbmNlIG1fbmV0d29ya0xvYWRDaGVja2VyIGlzIHVzZWQgZm9yIGFs
bCBuZXR3b3JrIGxvYWRzLgogICAgIGlmIChjYW5Vc2VDYWNoZShvcmlnaW5hbFJlcXVlc3QoKSkp
IHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6IENoZWNraW5nIGNhY2hl
IGZvciByZXNvdXJjZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQg
IiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNo
cm9ub3VzID0gJWQsIHBhcmVudFBJRCA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9V
SW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVy
LCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCksIG1fcGFyYW1ldGVycy5wYXJlbnRQ
SUQpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydDogQ2hlY2tpbmcgY2Fj
aGUgZm9yIHJlc291cmNlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2
NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3lu
Y2hyb25vdXMgPSAlZCwgcGFyZW50UElEID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50
b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRl
cnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpLCBtX3BhcmFt
ZXRlcnMucGFyZW50UElEKTsKICAgICAgICAgcmV0cmlldmVDYWNoZUVudHJ5KG9yaWdpbmFsUmVx
dWVzdCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI0NCw3ICsyNDQsNyBAQCB2b2lk
IE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6cmV0cmlldmVDYWNoZUVudHJ5KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCkKICAgICAgICAgbG9nU2xvd0NhY2hlUmV0cmlldmVJZk5lZWRlZChp
bmZvKTsKIAogICAgICAgICBpZiAoIWVudHJ5KSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJlc291cmNlIG5vdCBpbiBjYWNoZSAocGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUi
IFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9w
YXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwg
bV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMo
KSk7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50
cnk6IFJlc291cmNlIG5vdCBpbiBjYWNoZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9
ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2
NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRl
bnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKICAgICAgICAgICAg
IHN0YXJ0TmV0d29ya0xvYWQoV1RGTW92ZShyZXF1ZXN0KSwgRmlyc3RMb2FkOjpZZXMpOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0yNTYsNyArMjU2LDcgQEAgdm9pZCBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRyeUludGVybmFsKHN0ZDo6dW5pcXVl
X3B0cjxOZXR3b3JrQ2EKIHsKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQog
ICAgIGlmIChlbnRyeS0+aGFzUmVhY2hlZFByZXZhbGVudFJlc291cmNlQWdlQ2FwKCkpIHsKLSAg
ICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNoZUVudHJ5OiBSZXNvdXJj
ZSBoYXMgcmVhY2hlZCBwcmV2YWxlbnQgcmVzb3VyY2UgYWdlIGNhcCAocGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBp
c01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndl
YlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJz
LmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CisgICAgICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogUmVzb3VyY2UgaGFz
IHJlYWNoZWQgcHJldmFsZW50IHJlc291cmNlIGFnZSBjYXAgKHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWlu
UmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdl
SUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJh
bWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CiAg
ICAgICAgIG1fY2FjaGVFbnRyeUZvck1heEFnZUNhcFZhbGlkYXRpb24gPSBXVEZNb3ZlKGVudHJ5
KTsKICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJldmFsaWRhdGlvblJlcXVlc3QgPSBvcmlnaW5h
bFJlcXVlc3QoKTsKICAgICAgICAgc3RhcnROZXR3b3JrTG9hZChXVEZNb3ZlKHJldmFsaWRhdGlv
blJlcXVlc3QpLCBGaXJzdExvYWQ6Olllcyk7CkBAIC0yNjQsMjggKzI2NCwyOCBAQCB2b2lkIE5l
dHdvcmtSZXNvdXJjZUxvYWRlcjo6cmV0cmlldmVDYWNoZUVudHJ5SW50ZXJuYWwoc3RkOjp1bmlx
dWVfcHRyPE5ldHdvcmtDYQogICAgIH0KICNlbmRpZgogICAgIGlmIChlbnRyeS0+cmVkaXJlY3RS
ZXF1ZXN0KCkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNo
ZUVudHJ5OiBIYW5kbGluZyByZWRpcmVjdCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9
ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2
NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlz
TWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogSGFuZGxpbmcgcmVkaXJlY3QgKHBhZ2VJRCA9
ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1
NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1l
dGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50
NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hy
b25vdXMoKSk7CiAgICAgICAgIGRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0Rm9yQ2FjaGVFbnRyeShX
VEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGVudHJ5KSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgaWYgKG1fcGFyYW1ldGVycy5uZWVkc0NlcnRpZmljYXRlSW5mbyAmJiAhZW50cnktPnJl
c3BvbnNlKCkuY2VydGlmaWNhdGVJbmZvKCkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRCgicmV0cmlldmVDYWNoZUVudHJ5OiBSZXNvdXJjZSBkb2VzIG5vdCBoYXZlIHJlcXVpcmVk
IGNlcnRpZmljYXRlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAi
LCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hy
b25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1l
dGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2Uo
KSwgaXNTeW5jaHJvbm91cygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0
cmlldmVDYWNoZUVudHJ5OiBSZXNvdXJjZSBkb2VzIG5vdCBoYXZlIHJlcXVpcmVkIGNlcnRpZmlj
YXRlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJj
ZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAl
ZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJG
cmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJj
ZSgpLCBpc1N5bmNocm9ub3VzKCkpOwogICAgICAgICBzdGFydE5ldHdvcmtMb2FkKFdURk1vdmUo
cmVxdWVzdCksIEZpcnN0TG9hZDo6WWVzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBp
ZiAoZW50cnktPm5lZWRzVmFsaWRhdGlvbigpIHx8IHJlcXVlc3QuY2FjaGVQb2xpY3koKSA9PSBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeTo6UmVmcmVzaEFueUNhY2hlRGF0YSkg
ewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFZh
bGlkYXRpbmcgY2FjaGUgZW50cnkgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwg
aXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwg
bV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5S
ZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFZhbGlkYXRpbmcgY2FjaGUgZW50cnkgKHBhZ2VJRCA9
ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1
NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1l
dGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50
NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hy
b25vdXMoKSk7CiAgICAgICAgIHZhbGlkYXRlQ2FjaGVFbnRyeShXVEZNb3ZlKGVudHJ5KSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmll
dmVDYWNoZUVudHJ5OiBSZXRyaWV2ZWQgcmVzb3VyY2UgZnJvbSBjYWNoZSAocGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAi
LCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJz
LndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0
ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CisgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNoZUVudHJ5OiBSZXRyaWV2ZWQgcmVz
b3VyY2UgZnJvbSBjYWNoZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5
bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Bh
cmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwg
aXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKICAgICBkaWRSZXRyaWV2ZUNhY2hl
RW50cnkoV1RGTW92ZShlbnRyeSkpOwogfQogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
c3RhcnROZXR3b3JrTG9hZChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBGaXJzdExvYWQgbG9h
ZCkKIHsKICAgICBpZiAobG9hZCA9PSBGaXJzdExvYWQ6OlllcykgewotICAgICAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKCJzdGFydE5ldHdvcmtMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIs
IGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5S
ZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJ
RC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50
aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CisgICAgICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0TmV0d29ya0xvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFp
blJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFn
ZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFy
YW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOwog
CiAgICAgICAgIGNvbnN1bWVTYW5kYm94RXh0ZW5zaW9ucygpOwogCkBAIC0zMDgsNyArMzA4LDcg
QEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0TmV0d29ya0xvYWQoUmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCwgRmlyc3RMb2EKICAgICB9CiAgICAgaWYgKCFuZXR3b3JrU2Vzc2lv
bikgewogICAgICAgICBXVEZMb2dBbHdheXMoIkF0dGVtcHRlZCB0byBjcmVhdGUgYSBOZXR3b3Jr
TG9hZCB3aXRoIGEgc2Vzc2lvbiAoaWQ9JSIgUFJJdTY0ICIpIHRoYXQgZG9lcyBub3QgZXhpc3Qu
IiwgcGFyYW1ldGVycy5zZXNzaW9uSUQuc2Vzc2lvbklEKCkpOwotICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUl9JRl9BTExPV0VEKCJzdGFydE5ldHdvcmtMb2FkOiBBdHRlbXB0ZWQgdG8gY3JlYXRl
IGEgTmV0d29ya0xvYWQgd2l0aCBhIHNlc3Npb24gdGhhdCBkb2VzIG5vdCBleGlzdCAocGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBS
SXU2NCAiLCBzZXNzaW9uSUQ9JSIgUFJJdTY0ICIpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50
b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZp
ZXIsIHBhcmFtZXRlcnMuc2Vzc2lvbklELnNlc3Npb25JRCgpKTsKKyAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1JfSUZfQUxMT1dFRCgic3RhcnROZXR3b3JrTG9hZDogQXR0ZW1wdGVkIHRvIGNyZWF0
ZSBhIE5ldHdvcmtMb2FkIHdpdGggYSBzZXNzaW9uIHRoYXQgZG9lcyBub3QgZXhpc3QgKHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQ
Ukl1NjQgIiwgc2Vzc2lvbklEPSUiIFBSSXU2NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQu
dG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0
ZXJzLmlkZW50aWZpZXIsIHBhcmFtZXRlcnMuc2Vzc2lvbklELnNlc3Npb25JRCgpKTsKICAgICAg
ICAgbV9jb25uZWN0aW9uLT5uZXR3b3JrUHJvY2VzcygpLmxvZ0RpYWdub3N0aWNNZXNzYWdlKG1f
cGFyYW1ldGVycy53ZWJQYWdlSUQsIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6aW50
ZXJuYWxFcnJvcktleSgpLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmludmFsaWRT
ZXNzaW9uSURLZXkoKSwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlOjpObyk7CiAgICAgICAgIGRpZEZh
aWxMb2FkaW5nKGludGVybmFsRXJyb3IocmVxdWVzdC51cmwoKSkpOwogICAgICAgICByZXR1cm47
CkBAIC0zMjAsNyArMzIwLDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0TmV0
d29ya0xvYWQoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgRmlyc3RMb2EKICAgICBwYXJhbWV0
ZXJzLnJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpOwogICAgIG1fbmV0d29ya0xvYWQgPSBzdGQ6
Om1ha2VfdW5pcXVlPE5ldHdvcmtMb2FkPigqdGhpcywgJm5ldHdvcmtTZXNzaW9uLT5ibG9iUmVn
aXN0cnkoKSwgV1RGTW92ZShwYXJhbWV0ZXJzKSwgKm5ldHdvcmtTZXNzaW9uKTsKIAotICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0TmV0d29ya0xvYWQ6IChwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGRl
c2NyaXB0aW9uID0gJXtwdWJsaWN9cykiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0
KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgbV9u
ZXR3b3JrTG9hZC0+ZGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgpKTsKKyAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKCJzdGFydE5ldHdvcmtMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZy
YW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBkZXNjcmlwdGlv
biA9ICV7cHVibGljfXMpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Bh
cmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwg
bV9uZXR3b3JrTG9hZC0+ZGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgpKTsKIH0KIAogdm9pZCBO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNsZWFudXAoTG9hZFJlc3VsdCByZXN1bHQpCkBAIC0zNDQs
NyArMzQ0LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNsZWFudXAoTG9hZFJlc3Vs
dCByZXN1bHQpCiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjb252ZXJ0VG9Eb3dubG9h
ZChEb3dubG9hZElEIGRvd25sb2FkSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7Ci0gICAgUkVMRUFTRV9MT0coTG9h
ZGluZywgIkNvbnZlcnRpbmcgTmV0d29ya1Jlc291cmNlTG9hZGVyICVwIHRvIGRvd25sb2FkICUi
IFBSSXU2NCAiIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBy
ZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgdGhpcywgZG93bmxvYWRJRC5kb3dubG9hZElEKCks
IG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1l
SUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyKTsKKyAgICBSRUxFQVNFX0xPRyhMb2FkaW5nLCAi
Q29udmVydGluZyBOZXR3b3JrUmVzb3VyY2VMb2FkZXIgJXAgdG8gZG93bmxvYWQgJSIgUFJJdTY0
ICIgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNl
SUQgPSAlIiBQUkl1NjQgIikiLCB0aGlzLCBkb3dubG9hZElELmRvd25sb2FkSUQoKSwgbV9wYXJh
bWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJ
bnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CiAgICAgCiAgICAgLy8gVGhpcyBjYW4g
aGFwcGVuIGlmIHRoZSByZXNvdXJjZSBjYW1lIGZyb20gdGhlIGRpc2sgY2FjaGUuCiAgICAgaWYg
KCFtX25ldHdvcmtMb2FkKSB7CkBAIC0zNjIsNyArMzYyLDcgQEAgdm9pZCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OmFib3J0KCkKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiYWJvcnQ6IENhbmNlbGluZyByZXNvdXJjZSBsb2FkIChw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JSIgUFJJdTY0ICIpIiwKLSAgICAgICAgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgp
LCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIpOworICAg
ICAgICBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJG
cmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyKTsKIAogICAgIGlmICht
X3BhcmFtZXRlcnMub3B0aW9ucy5rZWVwQWxpdmUgJiYgbV9yZXNwb25zZS5pc051bGwoKSAmJiAh
bV9pc0tlcHRBbGl2ZSkgewogICAgICAgICBtX2lzS2VwdEFsaXZlID0gdHJ1ZTsKQEAgLTQ0Nyw3
ICs0NDcsNyBAQCBib29sIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2hvdWxkSW50ZXJydXB0TG9h
ZEZvckNTUEZyYW1lQW5jZXN0b3JzT3JYRnJhbWVPcHRpbwogCiB2b2lkIE5ldHdvcmtSZXNvdXJj
ZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJiByZWNlaXZlZFJl
c3BvbnNlLCBSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiAocGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBS
SXU2NCAiLCBodHRwU3RhdHVzQ29kZSA9ICVkLCBsZW5ndGggPSAlIiBQUklkNjQgIikiLCBtX3Bh
cmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBt
X3BhcmFtZXRlcnMuaWRlbnRpZmllciwgcmVjZWl2ZWRSZXNwb25zZS5odHRwU3RhdHVzQ29kZSgp
LCByZWNlaXZlZFJlc3BvbnNlLmV4cGVjdGVkQ29udGVudExlbmd0aCgpKTsKKyAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6IChwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGh0dHBT
dGF0dXNDb2RlID0gJWQsIGxlbmd0aCA9ICUiIFBSSWQ2NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQ
YWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9w
YXJhbWV0ZXJzLmlkZW50aWZpZXIsIHJlY2VpdmVkUmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSwg
cmVjZWl2ZWRSZXNwb25zZS5leHBlY3RlZENvbnRlbnRMZW5ndGgoKSk7CiAKICAgICBtX3Jlc3Bv
bnNlID0gV1RGTW92ZShyZWNlaXZlZFJlc3BvbnNlKTsKIApAQCAtNTI3LDcgKzUyNyw3IEBAIHZv
aWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNw
b25zZSYmIHJlY2VpdmVkUmVzcG9uCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVj
ZWl2ZUJ1ZmZlcihSZWY8U2hhcmVkQnVmZmVyPiYmIGJ1ZmZlciwgaW50IHJlcG9ydGVkRW5jb2Rl
ZERhdGFMZW5ndGgpCiB7CiAgICAgaWYgKCFtX251bUJ5dGVzUmVjZWl2ZWQpCi0gICAgICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVCdWZmZXI6IFN0YXJ0ZWQgcmVjZWl2aW5n
IGRhdGEgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCks
IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CisgICAg
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVCdWZmZXI6IFN0YXJ0ZWQgcmVj
ZWl2aW5nIGRhdGEgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUlu
dDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5p
ZGVudGlmaWVyKTsKICAgICBtX251bUJ5dGVzUmVjZWl2ZWQgKz0gYnVmZmVyLT5zaXplKCk7CiAK
ICAgICBBU1NFUlQoIW1fY2FjaGVFbnRyeUZvclZhbGlkYXRpb24pOwpAQCAtNTU2LDcgKzU1Niw3
IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlQnVmZmVyKFJlZjxTaGFy
ZWRCdWZmZXI+JiYgYnVmZmVyLCBpbnQgcmVwCiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVy
OjpkaWRGaW5pc2hMb2FkaW5nKGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRN
ZXRyaWNzKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZpbmlzaExvYWRpbmc6
IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlE
ID0gJSIgUFJJdTY0ICIsIGxlbmd0aCA9ICV6ZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRv
VUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmll
ciwgbV9udW1CeXRlc1JlY2VpdmVkKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRG
aW5pc2hMb2FkaW5nOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQg
IiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBsZW5ndGggPSAlemQpIiwgbV9wYXJhbWV0ZXJz
LndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgp
LCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgbV9udW1CeXRlc1JlY2VpdmVkKTsKIAogICAgIGlm
IChzaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MoKSkKICAgICAgICAgbV9jb25u
ZWN0aW9uLT5hZGROZXR3b3JrTG9hZEluZm9ybWF0aW9uTWV0cmljcyhpZGVudGlmaWVyKCksIG5l
dHdvcmtMb2FkTWV0cmljcyk7CkBAIC01OTEsNyArNTkxLDcgQEAgdm9pZCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3
b3JrTG8KIAogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxMb2FkaW5nKGNvbnN0
IFJlc291cmNlRXJyb3ImIGVycm9yKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRp
ZEZhaWxMb2FkaW5nOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQg
IiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc1RpbWVvdXQgPSAlZCwgaXNDYW5jZWxsYXRp
b24gPSAlZCwgaXNBY2Nlc3NDb250cm9sID0gJWQsIGVyckNvZGUgPSAlZCkiLCBtX3BhcmFtZXRl
cnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFt
ZXRlcnMuaWRlbnRpZmllciwgZXJyb3IuaXNUaW1lb3V0KCksIGVycm9yLmlzQ2FuY2VsbGF0aW9u
KCksIGVycm9yLmlzQWNjZXNzQ29udHJvbCgpLCBlcnJvci5lcnJvckNvZGUoKSk7CisgICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkRmFpbExvYWRpbmc6IChwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzVGlt
ZW91dCA9ICVkLCBpc0NhbmNlbGxhdGlvbiA9ICVkLCBpc0FjY2Vzc0NvbnRyb2wgPSAlZCwgZXJy
Q29kZSA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0
ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGVycm9y
LmlzVGltZW91dCgpLCBlcnJvci5pc0NhbmNlbGxhdGlvbigpLCBlcnJvci5pc0FjY2Vzc0NvbnRy
b2woKSwgZXJyb3IuZXJyb3JDb2RlKCkpOwogCiAgICAgaWYgKHNob3VsZENhcHR1cmVFeHRyYU5l
dHdvcmtMb2FkTWV0cmljcygpKQogICAgICAgICBtX2Nvbm5lY3Rpb24tPnJlbW92ZU5ldHdvcmtM
b2FkSW5mb3JtYXRpb24oaWRlbnRpZmllcigpKTsKQEAgLTc1Niw3ICs3NTYsNyBAQCB2b2lkIE5l
dHdvcmtSZXNvdXJjZUxvYWRlcjo6Y29udGludWVXaWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VSZXF1
ZXN0JiYgbmV3UmVxdWVzdAogICAgICAgICB9CiAgICAgfQogCi0gICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgiY29udGludWVXaWxsU2VuZFJlcXVlc3Q6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV9wYXJh
bWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9w
YXJhbWV0ZXJzLmlkZW50aWZpZXIpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImNvbnRp
bnVlV2lsbFNlbmRSZXF1ZXN0OiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQ
Ukl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdl
SUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJh
bWV0ZXJzLmlkZW50aWZpZXIpOwogCiAgICAgbV9pc0FsbG93ZWRUb0Fza1VzZXJGb3JDcmVkZW50
aWFscyA9IGlzQWxsb3dlZFRvQXNrVXNlckZvckNyZWRlbnRpYWxzOwogCkBAIC0xMDExLDEyICsx
MDExLDE3IEBAIHN0YXRpYyBTdHJpbmcgZXNjYXBlRm9ySlNPTihTdHJpbmcgcykKIHN0YXRpYyBT
dHJpbmcgZXNjYXBlSURGb3JKU09OKGNvbnN0IE9wdGlvbmFsPHVpbnQ2NF90PiYgdmFsdWUpCiB7
CiAgICAgcmV0dXJuIHZhbHVlID8gU3RyaW5nOjpudW1iZXIodmFsdWUudmFsdWUoKSkgOiBTdHJp
bmcoIk5vbmUiX3MpOwotfTsKK30KKworc3RhdGljIFN0cmluZyBlc2NhcGVJREZvckpTT04oY29u
c3QgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiYgdmFsdWUpCit7CisgICAgcmV0dXJuIHZhbHVl
ID8gU3RyaW5nOjpudW1iZXIodmFsdWUtPnRvVUludDY0KCkpIDogU3RyaW5nKCJOb25lIl9zKTsK
K30KIAogc3RhdGljIFN0cmluZyBlc2NhcGVJREZvckpTT04oY29uc3QgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+JiB2YWx1ZSkKIHsKICAgICByZXR1cm4gdmFsdWUgPyBTdHJpbmc6Om51bWJlcih2
YWx1ZS0+dG9VSW50NjQoKSkgOiBTdHJpbmcoIk5vbmUiX3MpOwotfTsKK30KIAogdm9pZCBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uKCkgY29uc3QKIHsKQEAgLTEw
MjgsNyArMTAzMyw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpsb2dDb29raWVJbmZv
cm1hdGlvbigpIGNvbnN0CiAgICAgbG9nQ29va2llSW5mb3JtYXRpb24obV9jb25uZWN0aW9uLCAi
TmV0d29ya1Jlc291cmNlTG9hZGVyIiwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4odGhp
cyksICpuZXR3b3JrU3RvcmFnZVNlc3Npb24sIG9yaWdpbmFsUmVxdWVzdCgpLmZpcnN0UGFydHlG
b3JDb29raWVzKCksIFNhbWVTaXRlSW5mbzo6Y3JlYXRlKG9yaWdpbmFsUmVxdWVzdCgpKSwgb3Jp
Z2luYWxSZXF1ZXN0KCkudXJsKCksIG9yaWdpbmFsUmVxdWVzdCgpLmh0dHBSZWZlcnJlcigpLCBm
cmFtZUlEKCksIHBhZ2VJRCgpLCBpZGVudGlmaWVyKCkpOwogfQogCi1zdGF0aWMgdm9pZCBsb2dC
bG9ja2VkQ29va2llSW5mb3JtYXRpb24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNv
bm5lY3Rpb24sIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IHZvaWQqIGxvZ2dlZE9iamVjdCwg
Y29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBuZXR3b3JrU3RvcmFnZVNlc3Np
b24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUlu
Zm8sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBPcHRpb25hbDx1aW50
NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgT3B0aW9uYWw8
dWludDY0X3Q+IGlkZW50aWZpZXIpCitzdGF0aWMgdm9pZCBsb2dCbG9ja2VkQ29va2llSW5mb3Jt
YXRpb24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIGNvbnN0IFN0
cmluZyYgbGFiZWwsIGNvbnN0IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29uc3QgV2ViQ29yZTo6TmV0
d29ya1N0b3JhZ2VTZXNzaW9uJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24sIGNvbnN0IFVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJs
LCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1l
SUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIE9wdGlvbmFsPHVpbnQ2NF90PiBp
ZGVudGlmaWVyKQogewogICAgIEFTU0VSVChOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNob3VsZExv
Z0Nvb2tpZUluZm9ybWF0aW9uKGNvbm5lY3Rpb24sIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5zZXNz
aW9uSUQoKSkpOwogCkBAIC0xMDU1LDcgKzEwNjAsNyBAQCBzdGF0aWMgdm9pZCBsb2dCbG9ja2Vk
Q29va2llSW5mb3JtYXRpb24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rp
bwogI3VuZGVmIExPQ0FMX0xPR19JRl9BTExPV0VECiB9CiAKLXN0YXRpYyB2b2lkIGxvZ0Nvb2tp
ZUluZm9ybWF0aW9uSW50ZXJuYWwoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5l
Y3Rpb24sIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29u
c3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24s
IGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiBzYW1l
U2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBPcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgT3B0
aW9uYWw8dWludDY0X3Q+IGlkZW50aWZpZXIpCitzdGF0aWMgdm9pZCBsb2dDb29raWVJbmZvcm1h
dGlvbkludGVybmFsKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBj
b25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2b2lkKiBsb2dnZWRPYmplY3QsIGNvbnN0IFdlYkNv
cmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLCBjb25zdCBV
UkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZv
LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgT3B0aW9uYWw8RnJhbWVJ
ZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBPcHRp
b25hbDx1aW50NjRfdD4gaWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQoTmV0d29ya1Jlc291cmNl
TG9hZGVyOjpzaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbihjb25uZWN0aW9uLCBuZXR3b3JrU3Rv
cmFnZVNlc3Npb24uc2Vzc2lvbklEKCkpKTsKIApAQCAtMTExNiw3ICsxMTIxLDcgQEAgc3RhdGlj
IHZvaWQgbG9nQ29va2llSW5mb3JtYXRpb25JbnRlcm5hbChOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcyYgY29ubmVjdGkKICN1bmRlZiBMT0NBTF9MT0dfSUZfQUxMT1dFRAogfQogCi12b2lk
IE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6bG9nQ29va2llSW5mb3JtYXRpb24oTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0
IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBuZXR3b3Jr
U3RvcmFnZVNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZv
JiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBP
cHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJ
RCwgT3B0aW9uYWw8dWludDY0X3Q+IGlkZW50aWZpZXIpCit2b2lkIE5ldHdvcmtSZXNvdXJjZUxv
YWRlcjo6bG9nQ29va2llSW5mb3JtYXRpb24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mm
IGNvbm5lY3Rpb24sIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IHZvaWQqIGxvZ2dlZE9iamVj
dCwgY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24sIGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBPcHRpb25hbDxGcmFtZUlkZW50
aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIE9wdGlvbmFs
PHVpbnQ2NF90PiBpZGVudGlmaWVyKQogewogICAgIEFTU0VSVChzaG91bGRMb2dDb29raWVJbmZv
cm1hdGlvbihjb25uZWN0aW9uLCBuZXR3b3JrU3RvcmFnZVNlc3Npb24uc2Vzc2lvbklEKCkpKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZGVyLmgKaW5kZXggNjJjNjVjZGRmZjdjYTBiMjBhMWMxOTA5OWI5ZjcxNWZhZTQ1NGE4ZS4u
NzQ5MmRmMzJmNzk5NmUwOTAzYmU5MGRhMDA1ZTliMTQ2ZGExNWZiYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCkBAIC04
NSw3ICs4NSw3IEBAIHB1YmxpYzoKICAgICBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYg
Y29ubmVjdGlvblRvV2ViUHJvY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1fY29ubmVjdGlvbjsgfQog
ICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVy
cy5zZXNzaW9uSUQ7IH0KICAgICBSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBj
b25zdCB7IHJldHVybiBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcjsgfQotICAgIHVpbnQ2NF90IGZy
YW1lSUQoKSBjb25zdCB7IHJldHVybiBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRDsgfQorICAgIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0
ZXJzLndlYkZyYW1lSUQ7IH0KICAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQoKSBj
b25zdCB7IHJldHVybiBtX3BhcmFtZXRlcnMud2ViUGFnZUlEOyB9CiAKICAgICBzdHJ1Y3QgU3lu
Y2hyb25vdXNMb2FkRGF0YTsKQEAgLTExMiw3ICsxMTIsNyBAQCBwdWJsaWM6CiAKICNpZiBFTkFC
TEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAg
ICBzdGF0aWMgYm9vbCBzaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYsIGNvbnN0IFBBTDo6U2Vzc2lvbklEJik7Ci0gICAgc3RhdGljIHZvaWQg
bG9nQ29va2llSW5mb3JtYXRpb24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBjb25z
dCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2b2lkKiBsb2dnZWRPYmplY3QsIGNvbnN0IFdlYkNvcmU6
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2Vi
Q29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwg
T3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyPiwgT3B0aW9uYWw8dWludDY0X3Q+IGlkZW50aWZpZXIpOworICAgIHN0YXRpYyB2b2lkIGxv
Z0Nvb2tpZUluZm9ybWF0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgY29uc3Qg
U3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBjb25zdCBXZWJDb3JlOjpO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNv
cmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIE9w
dGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyPiwgT3B0aW9uYWw8dWludDY0X3Q+IGlkZW50aWZpZXIpOwogI2VuZGlmCiAKICAg
ICB2b2lkIGRpc2FibGVFeHRyYU5ldHdvcmtMb2FkTWV0cmljc0NhcHR1cmUoKSB7IG1fc2hvdWxk
Q2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzID0gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCmluZGV4IGQ5NGZjNzM4
MGYxOWE1ZjVmNWI3OGVhMzllZjFkNjVhOTIxMWVlNGYuLjg1ZDEwMGNhNmM3YzA1ZmI4YzNkMTJk
MDNhNDQwMjgxMTAzOTVlZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY2FjaGUvTmV0d29ya0NhY2hlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9OZXR3b3JrQ2FjaGUuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIk5ldHdv
cmtDYWNoZUVudHJ5LmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlU3RvcmFnZS5oIgogI2luY2x1
ZGUgIlNoYXJlYWJsZVJlc291cmNlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZp
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVy
Lmg+CkBAIC04NSw3ICs4Niw3IEBAIGVudW0gY2xhc3MgVXNlRGVjaXNpb24gewogICAgIE5vRHVl
VG9FeHBpcmVkUmVkaXJlY3QKIH07CiAKLXVzaW5nIEdsb2JhbEZyYW1lSUQgPSBzdGQ6OnBhaXI8
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IC8qd2ViRnJhbWVJRCovPjsKK3VzaW5n
IEdsb2JhbEZyYW1lSUQgPSBzdGQ6OnBhaXI8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcj47IC8vIEZJWE1FOiBVc2UgR2xvYmFsRnJhbWVJZGVudGlmaWVy
LgogCiBlbnVtIGNsYXNzIENhY2hlT3B0aW9uIDogdWludDhfdCB7CiAgICAgLy8gSW4gdGVzdGlu
ZyBtb2RlIHdlIHRyeSB0byBlbGltaW5hdGUgc291cmNlcyBvZiByYW5kb21uZXNzLiBDYWNoZSBk
b2VzIG5vdCBzaHJpbmsgYW5kIHRoZXJlIGFyZSBubyByZWFkIHRpbWVvdXRzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2Nv
YS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tD
b2NvYS5oCmluZGV4IDI3OTM1NzUzNWJlMWU4NGExM2QzMWZmN2ZjMzJlYzgyZTY5ZWRiOGYuLjQz
YWQ2ZjFkZTQxYzUxNjFkZDlkYjNiNjlhZjkxY2EzZjdhYjI0MzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29h
LmgKQEAgLTQyLDcgKzQyLDcgQEAgY2xhc3MgTmV0d29ya1Nlc3Npb25Db2NvYTsKIGNsYXNzIE5l
dHdvcmtEYXRhVGFza0NvY29hIGZpbmFsIDogcHVibGljIE5ldHdvcmtEYXRhVGFzayB7CiAgICAg
ZnJpZW5kIGNsYXNzIE5ldHdvcmtTZXNzaW9uQ29jb2E7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxOZXR3b3JrRGF0YVRhc2s+IGNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29y
a0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgV2Vi
Q29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudEVuY29kaW5n
U25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJl
Y29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5G
cmFtZU5hdmlnYXRpb24sIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5SZXNvdXJjZU5hdmlnYXRpb25G
b3JBbnlGcmFtZSwgT3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4gbmV0d29ya0FjdGl2
aXR5VHJhY2tlcikKKyAgICBzdGF0aWMgUmVmPE5ldHdvcmtEYXRhVGFzaz4gY3JlYXRlKE5ldHdv
cmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29u
dGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgV2ViQ29yZTo6Q29udGVudEVu
Y29kaW5nU25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIGJvb2wgc2hv
dWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hv
dWxkUHJlY29ubmVjdE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24s
IGJvb2wgZGF0YVRhc2tJc0Zvck1haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSwgT3B0
aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4gbmV0d29ya0FjdGl2aXR5VHJhY2tlcikKICAg
ICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtEYXRhVGFza0NvY29hKHNl
c3Npb24sIGNsaWVudCwgcmVxdWVzdCwgZnJhbWVJRCwgcGFnZUlELCBzdG9yZWRDcmVkZW50aWFs
c1BvbGljeSwgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwg
c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgc2hvdWxkUHJlY29ubmVj
dE9ubHksIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBkYXRhVGFza0lzRm9yTWFp
blJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lLCBuZXR3b3JrQWN0aXZpdHlUcmFja2VyKSk7
CiAgICAgfQpAQCAtNjksMTMgKzY5LDEzIEBAIHB1YmxpYzoKIAogICAgIFdlYkNvcmU6Ok5ldHdv
cmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRNZXRyaWNzKCkgeyByZXR1cm4gbV9uZXR3b3JrTG9h
ZE1ldHJpY3M7IH0KIAotICAgIHVpbnQ2NF90IGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2Zy
YW1lSUQ7IH07CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQoKSBjb25zdCB7
IHJldHVybiBtX2ZyYW1lSUQ7IH07CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
KCkgY29uc3QgeyByZXR1cm4gbV9wYWdlSUQ7IH07CiAKICAgICBTdHJpbmcgZGVzY3JpcHRpb24o
KSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBOZXR3b3JrRGF0YVRhc2tDb2NvYShO
ZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtEYXRhVGFza0NsaWVudCYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZm
aW5nUG9saWN5LCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgYm9vbCBz
aG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSwg
Ym9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgYm9vbCBkYXRhVGFza0lzRm9y
TWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZp
dHlUcmFja2VyPik7CisgICAgTmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mLCBO
ZXR3b3JrRGF0YVRhc2tDbGllbnQmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3Jl
OjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5
LCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgYm9vbCBzaG91bGRDbGVh
clJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSwgYm9vbCBkYXRh
VGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgYm9vbCBkYXRhVGFza0lzRm9yTWFpblJlc291
cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2Vy
Pik7CiAKICAgICBib29sIHRyeVBhc3N3b3JkQmFzZWRBdXRoZW50aWNhdGlvbihjb25zdCBXZWJD
b3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVy
Jik7CiAgICAgdm9pZCBhcHBseVNuaWZmaW5nUG9saWNpZXNBbmRCaW5kUmVxdWVzdFRvSW5mZXJm
YWNlSWZOZWVkZWQoX19zdHJvbmcgTlNVUkxSZXF1ZXN0KiYsIGJvb2wgc2hvdWxkQ29udGVudFNu
aWZmLCBib29sIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKTsKQEAgLTkyLDcgKzkyLDcgQEAg
cHJpdmF0ZToKICAgICBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gbV9zYW5kYm94RXh0ZW5zaW9u
OwogICAgIFJldGFpblB0cjxOU1VSTFNlc3Npb25EYXRhVGFzaz4gbV90YXNrOwogICAgIFdlYkNv
cmU6Ok5ldHdvcmtMb2FkTWV0cmljcyBtX25ldHdvcmtMb2FkTWV0cmljczsKLSAgICB1aW50NjRf
dCBtX2ZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fZnJhbWVJRDsKICAg
ICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBtX3BhZ2VJRDsKIAogI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQppbmRleCA0MmU3YWNlNDI0YjJh
YjhiYjAwYTM3Yzk2M2VhOTdkNDQxMzE1YWUwLi5jMmU3YjM2ODU0ZTczOTVjYjY5MzBkNmUyNTc0
OGM0YmFkNjAxMjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KQEAgLTE3MCw3ICsxNzAsNyBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgY29tcHV0ZUlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZChOZXR3b3Jr
U2Vzc2lvbiYgc2Vzc2lvbikKICAgICByZXR1cm4gc2Vzc2lvbi5zZXNzaW9uSUQoKS5pc0Fsd2F5
c09uTG9nZ2luZ0FsbG93ZWQoKTsKIH0KIAotTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtE
YXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGll
bnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0aENy
ZWRlbnRpYWxzLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdl
SUQsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBX
ZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50RW5jb2Rp
bmdTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQ
cmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lzRm9yTWFp
bkZyYW1lTmF2aWdhdGlvbiwgYm9vbCBkYXRhVGFza0lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlv
bkZvckFueUZyYW1lLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBuZXR3b3JrQWN0
aXZpdHlUcmFja2VyKQorTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29h
KE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
cGFnZUlELCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFs
c1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlm
ZiwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudEVu
Y29kaW5nU25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVj
dCwgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zv
ck1haW5GcmFtZU5hdmlnYXRpb24sIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5SZXNvdXJjZU5hdmln
YXRpb25Gb3JBbnlGcmFtZSwgT3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4gbmV0d29y
a0FjdGl2aXR5VHJhY2tlcikKICAgICA6IE5ldHdvcmtEYXRhVGFzayhzZXNzaW9uLCBjbGllbnQs
IHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRD
bGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBkYXRhVGFza0lzRm9yTWFpbkZyYW1l
TmF2aWdhdGlvbikKICAgICAsIG1fZnJhbWVJRChmcmFtZUlEKQogICAgICwgbV9wYWdlSUQocGFn
ZUlEKQpAQCAtMjU2LDcgKzI1Niw3IEBAIE5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0
YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUCiAgICAgaWYg
KHNob3VsZEJsb2NrQ29va2llcykgewogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICAg
ICBpZiAobV9zZXNzaW9uLT5zaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbigpKQotICAgICAgICAg
ICAgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdvcmssICIl
cCAtIE5ldHdvcmtEYXRhVGFza0NvY29hOjpsb2dDb29raWVJbmZvcm1hdGlvbjogcGFnZUlEID0g
JWxsdSwgZnJhbWVJRCA9ICVsbHUsIHRhc2tJRCA9ICVsdTogQmxvY2tpbmcgY29va2llcyBmb3Ig
VVJMICVzIiwgdGhpcywgcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQsICh1bnNpZ25lZCBsb25n
KVttX3Rhc2sgdGFza0lkZW50aWZpZXJdLCBuc1JlcXVlc3QuVVJMLmFic29sdXRlU3RyaW5nLlVU
RjhTdHJpbmcpOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdB
bGxvd2VkKCksIE5ldHdvcmssICIlcCAtIE5ldHdvcmtEYXRhVGFza0NvY29hOjpsb2dDb29raWVJ
bmZvcm1hdGlvbjogcGFnZUlEID0gJWxsdSwgZnJhbWVJRCA9ICVsbHUsIHRhc2tJRCA9ICVsdTog
QmxvY2tpbmcgY29va2llcyBmb3IgVVJMICVzIiwgdGhpcywgcGFnZUlELnRvVUludDY0KCksIGZy
YW1lSUQudG9VSW50NjQoKSwgKHVuc2lnbmVkIGxvbmcpW21fdGFzayB0YXNrSWRlbnRpZmllcl0s
IG5zUmVxdWVzdC5VUkwuYWJzb2x1dGVTdHJpbmcuVVRGOFN0cmluZyk7CiAjZWxzZQogICAgICAg
ICBMT0coTmV0d29ya1Nlc3Npb24sICIlbGx1IEJsb2NraW5nIGNvb2tpZXMgZm9yIFVSTCAlcyIs
IFttX3Rhc2sgdGFza0lkZW50aWZpZXJdLCBuc1JlcXVlc3QuVVJMLmFic29sdXRlU3RyaW5nLlVU
RjhTdHJpbmcpOwogI2VuZGlmCkBAIC0zOTAsNyArMzkwLDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRh
c2tDb2NvYTo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYKICAgICB9CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgaWYgKG1fc2Vzc2lv
bi0+c2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oKSkKLSAgICAgICAgUkVMRUFTRV9MT0dfSUYo
aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdvcmssICIlcCAtIE5ldHdvcmtEYXRhVGFz
a0NvY29hOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbjo6bG9nQ29va2llSW5mb3JtYXRpb246
IHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCB0YXNrSUQgPSAlbHU6ICVzIGNvb2tpZXMg
Zm9yIHJlZGlyZWN0IFVSTCAlcyIsIHRoaXMsIG1fcGFnZUlELnRvVUludDY0KCksIG1fZnJhbWVJ
RCwgKHVuc2lnbmVkIGxvbmcpW21fdGFzayB0YXNrSWRlbnRpZmllcl0sIChtX2hhc0JlZW5TZXRU
b1VzZVN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2UgPyAiQmxvY2tpbmciIDogIk5vdCBibG9ja2luZyIp
LCByZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBSRUxFQVNF
X0xPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29yaywgIiVwIC0gTmV0d29y
a0RhdGFUYXNrQ29jb2E6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uOjpsb2dDb29raWVJbmZv
cm1hdGlvbjogcGFnZUlEID0gJWxsdSwgZnJhbWVJRCA9ICVsbHUsIHRhc2tJRCA9ICVsdTogJXMg
Y29va2llcyBmb3IgcmVkaXJlY3QgVVJMICVzIiwgdGhpcywgbV9wYWdlSUQudG9VSW50NjQoKSwg
bV9mcmFtZUlELnRvVUludDY0KCksICh1bnNpZ25lZCBsb25nKVttX3Rhc2sgdGFza0lkZW50aWZp
ZXJdLCAobV9oYXNCZWVuU2V0VG9Vc2VTdGF0ZWxlc3NDb29raWVTdG9yYWdlID8gIkJsb2NraW5n
IiA6ICJOb3QgYmxvY2tpbmciKSwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgp
KTsKICNlbHNlCiAgICAgTE9HKE5ldHdvcmtTZXNzaW9uLCAiJWxsdSAlcyBjb29raWVzIGZvciBy
ZWRpcmVjdCBVUkwgJXMiLCBbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgKG1faGFzQmVlblNldFRv
VXNlU3RhdGVsZXNzQ29va2llU3RvcmFnZSA/ICJCbG9ja2luZyIgOiAiTm90IGJsb2NraW5nIiks
IHJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IGYwZWM4ZGMxYjcxNjliY2NhNTVh
NjU0OTEyZWQyZmVmNTM3MGRmMTAuLmMwMWU4OTU5ZTgwN2ZmNjI0ZWY4NTc3ZWIzNTU2NWU0MmQ5
M2EzYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMu
cHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMjA1
LDYgKzIwNSw3IEBAIGRlZiBmb3J3YXJkX2RlY2xhcmF0aW9uc19hbmRfaGVhZGVycyhyZWNlaXZl
cik6CiAgICAgICAgICdTdHJpbmcnLAogICAgICAgICAnV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlm
aWVyJywKICAgICAgICAgJ1dlYkNvcmU6OkZldGNoSWRlbnRpZmllcicsCisgICAgICAgICdXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIn
LAogICAgICAgICAnV2ViQ29yZTo6UG9pbnRlcklEJywKICAgICAgICAgJ1dlYkNvcmU6OlByb2Nl
c3NJZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElG
cmFtZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUu
Y3BwCmluZGV4IDc5NjQ2YWM2ZTU5YzQxZDRkZjcwOTAxZGJhN2UyNjc1MzM2ZDUyNGEuLjQwODAx
Mzg4NTQ4YTE4MTFhYjU5ZTVjYjI0NWExMTUyMTE0MmJlZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmNwcApAQCAtMzEsMTcgKzMxLDE3IEBACiAKIG5hbWVz
cGFjZSBBUEkgewogCi1SZWY8RnJhbWVIYW5kbGU+IEZyYW1lSGFuZGxlOjpjcmVhdGUodWludDY0
X3QgZnJhbWVJRCkKK1JlZjxGcmFtZUhhbmRsZT4gRnJhbWVIYW5kbGU6OmNyZWF0ZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBG
cmFtZUhhbmRsZShmcmFtZUlELCBmYWxzZSkpOwogfQogCi1SZWY8RnJhbWVIYW5kbGU+IEZyYW1l
SGFuZGxlOjpjcmVhdGVBdXRvY29udmVydGluZyh1aW50NjRfdCBmcmFtZUlEKQorUmVmPEZyYW1l
SGFuZGxlPiBGcmFtZUhhbmRsZTo6Y3JlYXRlQXV0b2NvbnZlcnRpbmcoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRnJhbWVIYW5k
bGUoZnJhbWVJRCwgdHJ1ZSkpOwogfQogCi1GcmFtZUhhbmRsZTo6RnJhbWVIYW5kbGUodWludDY0
X3QgZnJhbWVJRCwgYm9vbCBpc0F1dG9jb252ZXJ0aW5nKQorRnJhbWVIYW5kbGU6OkZyYW1lSGFu
ZGxlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzQXV0b2NvbnZlcnRp
bmcpCiAgICAgOiBtX2ZyYW1lSUQoZnJhbWVJRCkKICAgICAsIG1faXNBdXRvY29udmVydGluZyhp
c0F1dG9jb252ZXJ0aW5nKQogewpAQCAtNTksNyArNTksNyBAQCB2b2lkIEZyYW1lSGFuZGxlOjpl
bmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogCiBib29sIEZyYW1lSGFuZGxlOjpk
ZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8T2JqZWN0PiYgcmVzdWx0KQogewot
ICAgIHVpbnQ2NF90IGZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQ7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShmcmFtZUlEKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5k
bGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5oCmluZGV4IGIx
MGU4MDhhNGIxOWFkMzEzZDhiNDU1YzIzYjlkODM5OWNjMzg1NTAuLjFjNjRhNGFkMWU4MDJhMDQ2
NzI5ODFiY2JmOGE3NjAxNjQyNWZmZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0FQSS9BUElGcmFtZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElG
cmFtZUhhbmRsZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIEFQSUZyYW1lSGFuZGxlX2gK
IAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlm
aWVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTM4LDIw
ICszOSwyMCBAQCBuYW1lc3BhY2UgQVBJIHsKIAogY2xhc3MgRnJhbWVIYW5kbGUgOiBwdWJsaWMg
T2JqZWN0SW1wbDxPYmplY3Q6OlR5cGU6OkZyYW1lSGFuZGxlPiB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZjxGcmFtZUhhbmRsZT4gY3JlYXRlKHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHN0YXRp
YyBSZWY8RnJhbWVIYW5kbGU+IGNyZWF0ZUF1dG9jb252ZXJ0aW5nKHVpbnQ2NF90IGZyYW1lSUQp
OworICAgIHN0YXRpYyBSZWY8RnJhbWVIYW5kbGU+IGNyZWF0ZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIpOworICAgIHN0YXRpYyBSZWY8RnJhbWVIYW5kbGU+IGNyZWF0ZUF1dG9jb252ZXJ0aW5n
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAKLSAgICBleHBsaWNpdCBGcmFtZUhhbmRsZSh1
aW50NjRfdCBmcmFtZUlELCBib29sIGlzQXV0b2NvbnZlcnRpbmcpOworICAgIGV4cGxpY2l0IEZy
YW1lSGFuZGxlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBpc0F1dG9jb252ZXJ0aW5n
KTsKICAgICB2aXJ0dWFsIH5GcmFtZUhhbmRsZSgpOwogCi0gICAgdWludDY0X3QgZnJhbWVJRCgp
IGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQorICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9CiAgICAgYm9vbCBpc0F1dG9j
b252ZXJ0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9pc0F1dG9jb252ZXJ0aW5nOyB9CiAKICAgICB2
b2lkIGVuY29kZShJUEM6OkVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
SVBDOjpEZWNvZGVyJiwgUmVmUHRyPE9iamVjdD4mKTsKIAogcHJpdmF0ZToKLSAgICBjb25zdCB1
aW50NjRfdCBtX2ZyYW1lSUQ7CisgICAgY29uc3QgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1f
ZnJhbWVJRDsKICAgICBjb25zdCBib29sIG1faXNBdXRvY29udmVydGluZzsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5tbSBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5tbQppbmRleCBh
NDFhNjEzYTdkMzcxZDdhZTJhNzNlNDA1ODI3YjBhYmQ3MzU3MDcwLi5lZGNiMzhlNjM1YTdiZjA5
MjdiMTEwY2M3ZDRjZjk3NjZhYjVkMDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5kbGUubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
QVBJL0NvY29hL19XS0ZyYW1lSGFuZGxlLm1tCkBAIC0yNiw2ICsyNiw4IEBACiAjaW1wb3J0ICJj
b25maWcuaCIKICNpbXBvcnQgIl9XS0ZyYW1lSGFuZGxlSW50ZXJuYWwuaCIKIAorI2ltcG9ydCA8
V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KKwogQGltcGxlbWVudGF0aW9uIF9XS0ZyYW1lSGFu
ZGxlIHsKICAgICBBUEk6Ok9iamVjdFN0b3JhZ2U8QVBJOjpGcmFtZUhhbmRsZT4gX2ZyYW1lSGFu
ZGxlOwogfQpAQCAtNTAsMTIgKzUyLDEyIEBAIC0gKEJPT0wpaXNFcXVhbDooaWQpb2JqZWN0CiAK
IC0gKE5TVUludGVnZXIpaGFzaAogewotICAgIHJldHVybiBfZnJhbWVIYW5kbGUtPmZyYW1lSUQo
KTsKKyAgICByZXR1cm4gX2ZyYW1lSGFuZGxlLT5mcmFtZUlEKCkudG9VSW50NjQoKTsKIH0KIAog
LSAodWludDY0X3QpX2ZyYW1lSUQKIHsKLSAgICByZXR1cm4gX2ZyYW1lSGFuZGxlLT5mcmFtZUlE
KCk7CisgICAgcmV0dXJuIF9mcmFtZUhhbmRsZS0+ZnJhbWVJRCgpLnRvVUludDY0KCk7CiB9CiAK
ICNwcmFnbWEgbWFyayBOU0NvcHlpbmcgcHJvdG9jb2wgaW1wbGVtZW50YXRpb24KQEAgLTgzLDE0
ICs4NSwxNCBAQCAtIChpZClpbml0V2l0aENvZGVyOihOU0NvZGVyICopZGVjb2RlcgogICAgICAg
ICByZXR1cm4gbmlsOwogICAgIH0KIAotICAgIEFQSTo6T2JqZWN0Ojpjb25zdHJ1Y3RJbldyYXBw
ZXI8QVBJOjpGcmFtZUhhbmRsZT4oc2VsZiwgZnJhbWVJRC51bnNpZ25lZExvbmdMb25nVmFsdWUs
IGZhbHNlKTsKKyAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6RnJhbWVI
YW5kbGU+KHNlbGYsIFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRChmcmFtZUlELnVuc2ln
bmVkTG9uZ0xvbmdWYWx1ZSksIGZhbHNlKTsKIAogICAgIHJldHVybiBzZWxmOwogfQogCiAtICh2
b2lkKWVuY29kZVdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCiB7Ci0gICAgW2NvZGVyIGVuY29k
ZU9iamVjdDpAKF9mcmFtZUhhbmRsZS0+ZnJhbWVJRCgpKSBmb3JLZXk6QCJmcmFtZUlEIl07Cisg
ICAgW2NvZGVyIGVuY29kZU9iamVjdDpAKFtzZWxmIF9mcmFtZUlEXSkgZm9yS2V5OkAiZnJhbWVJ
RCJdOwogfQogCiAjcHJhZ21hIG1hcmsgV0tPYmplY3QgcHJvdG9jb2wgaW1wbGVtZW50YXRpb24K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRp
Y2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9B
dXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCmluZGV4IDlkZWI3NmZmMTMyYzZjYjVmZGY1ZWJmNTIy
MjM0ZjZkNDQzZWY5NGQuLjM4YTViZmY2YWZkMjU3MWQ1MmRjZTRjMDk4MDRhYTc1NDRhYmU0ZjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRp
Y2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRp
b24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcApAQCAtMTA4LDcgKzEwOCw3IEBAIFZlY3Rvcjx1
aW50NjRfdD4gQXV0aGVudGljYXRpb25NYW5hZ2VyOjpjb2FsZXNjZUNoYWxsZW5nZXNNYXRjaGlu
Zyh1aW50NjRfdCBjaGFsCiAgICAgcmV0dXJuIGNoYWxsZW5nZXNUb0NvYWxlc2NlOwogfQogCi12
b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBDaGFsbGVuZ2VDb21w
bGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBBdXRoZW50aWNhdGlvbk1h
bmFnZXI6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShQYWdlSWRlbnRpZmllciBw
YWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVy
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKHBhZ2VJRCk7CiAgICAgQVNTRVJU
KGZyYW1lSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRp
b24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaAppbmRleCA4NmU3NDRjMTA4ZGY0Y2JjZjVk
MDQ3NjA5YWNmOTZjNjgyM2Q2YjE2Li40MDM2ZWFiNzdmZDljZTE1NTUzMGZiNmE0Y2M1NjE2ODNk
N2VkOTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9B
dXRoZW50aWNhdGlvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1
ZGUgIk5ldHdvcmtQcm9jZXNzU3VwcGxlbWVudC5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NTdXBw
bGVtZW50LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
YWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC02MSw3ICs2Miw3IEBAIHB1YmxpYzoKIAogICAgIHN0
YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgQ2hhbGxl
bmdlQ29tcGxldGlvbkhhbmRsZXImJik7CisgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBDaGFsbGVuZ2VD
b21wbGV0aW9uSGFuZGxlciYmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZShJUEM6Ok1lc3NhZ2VTZW5kZXImIGRvd25sb2FkLCBjb25zdCBXZWJDb3JlOjpBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYpOwogCiAg
ICAgdm9pZCBjb21wbGV0ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHVpbnQ2NF90IGNoYWxsZW5n
ZUlELCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uLCBXZWJDb3JlOjpDcmVkZW50
aWFsJiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRnJhbWVJbmZvRGF0YS5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvRnJhbWVJbmZvRGF0YS5oCmluZGV4IGE4MjgzNjg2ZjE2
YWIzY2QzNTI0OWNlNzA1ZDNmMmI4ZTdiYjNjNjYuLjEzYTAyOTk0NGIyODk5MGFjYWI0ODI2Zjc2
ZjUzZDQ0NzlkMzdhMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5m
b0RhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9GcmFtZUluZm9EYXRhLmgKQEAgLTI1
LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRl
bnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KIApAQCAtNDIsNyArNDMsNyBAQCBzdHJ1
Y3QgRnJhbWVJbmZvRGF0YSB7CiAgICAgYm9vbCBpc01haW5GcmFtZSB7IGZhbHNlIH07CiAgICAg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Q7CiAgICAgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhIHNlY3VyaXR5T3JpZ2luOwotICAgIHVpbnQ2NF90IGZyYW1lSUQgeyAwIH07Cisg
ICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQ7CiB9OwogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lSGFuZGxlUmVmLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVIYW5kbGVSZWYuY3BwCmluZGV4IGIz
OWZjYTFiZTU3ZjBkMjc0ZDg0NTdmMDQzZjUwZWFiNjJmMjNjNTguLmU4NzNmYzQ2NTFkNTI2OTM4
OTM2OWZjNjBhNzgwMjY1NDIwNWRkN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLRnJhbWVIYW5kbGVSZWYuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLRnJhbWVIYW5kbGVSZWYuY3BwCkBAIC0zOCw1ICszOCw1IEBAIFdLVHlwZUlE
IFdLRnJhbWVIYW5kbGVHZXRUeXBlSUQoKQogCiB1aW50NjRfdCBXS0ZyYW1lSGFuZGxlR2V0RnJh
bWVJRChXS0ZyYW1lSGFuZGxlUmVmIGZyYW1lSGFuZGxlUmVmKQogewotICAgIHJldHVybiB0b0lt
cGwoZnJhbWVIYW5kbGVSZWYpLT5mcmFtZUlEKCk7CisgICAgcmV0dXJuIHRvSW1wbChmcmFtZUhh
bmRsZVJlZiktPmZyYW1lSUQoKS50b1VJbnQ2NCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMDM5MWExOTkyZTM1MzJkYmU1ZjIx
ZGI2OTFkZDgxMDhhYWUyYTY2Yy4uMDk1MWU5NDQzN2JjZTQ2NjVkNjE1YmQwNDBkMjZkZjIwYjY0
ZGYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tCkBAIC02NjIxLDcgKzY2MjEsNyBAQCAtIChOU1ByaW50T3BlcmF0aW9uICopX3ByaW50T3Bl
cmF0aW9uV2l0aFByaW50SW5mbzooTlNQcmludEluZm8gKilwcmludEluZm8KIAogLSAoTlNQcmlu
dE9wZXJhdGlvbiAqKV9wcmludE9wZXJhdGlvbldpdGhQcmludEluZm86KE5TUHJpbnRJbmZvICop
cHJpbnRJbmZvIGZvckZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lSGFuZGxlCiB7Ci0gICAg
aWYgKGF1dG8qIHdlYkZyYW1lUHJveHkgPSBfcGFnZS0+cHJvY2VzcygpLndlYkZyYW1lKGZyYW1l
SGFuZGxlLl9mcmFtZUlEKSkKKyAgICBpZiAoYXV0byogd2ViRnJhbWVQcm94eSA9IF9wYWdlLT5w
cm9jZXNzKCkud2ViRnJhbWUoV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKGZyYW1lSGFu
ZGxlLl9mcmFtZUlEKSkpCiAgICAgICAgIHJldHVybiBfaW1wbC0+cHJpbnRPcGVyYXRpb25XaXRo
UHJpbnRJbmZvKHByaW50SW5mbywgKndlYkZyYW1lUHJveHkpOwogICAgIHJldHVybiBuaWw7CiB9
CkBAIC03MTE0LDcgKzcxMTQsNyBAQCAtICh2b2lkKV9jb21wbGV0ZUltbWVkaWF0ZUFjdGlvbkFu
aW1hdGlvbgogCiAtIChCT09MKV9jYW5DaGFuZ2VGcmFtZUxheW91dDooX1dLRnJhbWVIYW5kbGUg
KilmcmFtZUhhbmRsZQogewotICAgIGlmIChhdXRvKiB3ZWJGcmFtZVByb3h5ID0gX3BhZ2UtPnBy
b2Nlc3MoKS53ZWJGcmFtZShmcmFtZUhhbmRsZS5fZnJhbWVJRCkpCisgICAgaWYgKGF1dG8qIHdl
YkZyYW1lUHJveHkgPSBfcGFnZS0+cHJvY2VzcygpLndlYkZyYW1lKFdlYkNvcmU6OmZyYW1lSWRl
bnRpZmllckZyb21JRChmcmFtZUhhbmRsZS5fZnJhbWVJRCkpKQogICAgICAgICByZXR1cm4gX2lt
cGwtPmNhbkNoYW5nZUZyYW1lTGF5b3V0KCp3ZWJGcmFtZVByb3h5KTsKICAgICByZXR1cm4gZmFs
c2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
SW5zcGVjdG9yLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3Bl
Y3Rvci5tbQppbmRleCBjNDk5YjE4ZmE5Mzg4YTQ1ODQzMTQ3NzA4ZDNkMjk2ZGQ1MzI5MGE0Li4z
ZDE1ZWMyZWVhNzkxMWIyYTM5ZDY0MDg3OTM2YmY0ZWE2MzQxM2FhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW0KQEAgLTMwLDYgKzMw
LDcgQEAKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgogI2ltcG9ydCAiX1dLRnJhbWVIYW5k
bGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLSW5zcGVjdG9ySW50ZXJuYWwuaCIKKyNpbXBvcnQg
PFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAK
IEBpbXBsZW1lbnRhdGlvbiBfV0tJbnNwZWN0b3IKQEAgLTk5LDcgKzEwMCw3IEBAIC0gKHZvaWQp
c2hvd1Jlc291cmNlcwogLSAodm9pZClzaG93TWFpblJlc291cmNlRm9yRnJhbWU6KF9XS0ZyYW1l
SGFuZGxlICopZnJhbWUKIHsKICAgICBpZiAoYXV0byogcGFnZSA9IF9pbnNwZWN0b3ItPmluc3Bl
Y3RlZFBhZ2UoKSkKLSAgICAgICAgX2luc3BlY3Rvci0+c2hvd01haW5SZXNvdXJjZUZvckZyYW1l
KHBhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZS5fZnJhbWVJRCkpOworICAgICAgICBfaW5z
cGVjdG9yLT5zaG93TWFpblJlc291cmNlRm9yRnJhbWUocGFnZS0+cHJvY2VzcygpLndlYkZyYW1l
KFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRChmcmFtZS5fZnJhbWVJRCkpKTsKIH0KIAog
LSAodm9pZClhdHRhY2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9t
YXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmNwcAppbmRleCA3YWNjNjhi
YWVmZWFiMDczYmY2NjBmNmMwYmNlNWVmYjk3YjVhZTYyLi5kODc0OGVlYTdmYzZkYWUxNTQyNmFk
YWVhOTY5Yjc0YmRlZTYzZGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
dXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3BwCkBAIC0z
ODIsNyArMzgyLDcgQEAgdm9pZCBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXI6OnRyYW5zaXRpb25J
bnB1dFNvdXJjZVRvU3RhdGUoU2ltdWxhdGVkSW5wdXRTb3VyY2UKICAgICB9CiB9CiAKLXZvaWQg
U2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyOjpydW4odWludDY0X3QgZnJhbWVJRCwgVmVjdG9yPFNp
bXVsYXRlZElucHV0S2V5RnJhbWU+JiYga2V5RnJhbWVzLCBIYXNoU2V0PFJlZjxTaW11bGF0ZWRJ
bnB1dFNvdXJjZT4+JiBpbnB1dFNvdXJjZXMsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciYm
IGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXI6OnJ1bihX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgVmVjdG9yPFNpbXVsYXRlZElucHV0S2V5
RnJhbWU+JiYga2V5RnJhbWVzLCBIYXNoU2V0PFJlZjxTaW11bGF0ZWRJbnB1dFNvdXJjZT4+JiBp
bnB1dFNvdXJjZXMsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIEFTU0VSVCghaXNBY3RpdmUoKSk7CiAgICAgaWYgKGlzQWN0aXZlKCkpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVk
SW5wdXREaXNwYXRjaGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1Np
bXVsYXRlZElucHV0RGlzcGF0Y2hlci5oCmluZGV4IDdmNDE0MWNlMGEzOWU1NjA3M2M3ZWM4YTk2
NTYwY2JjMzQ4YWRmYTYuLmIwODkxYThmMGI2NzUyOWNiOWIzOTg2Yjg3OTUzMDcxMmE0YWFkNDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVk
SW5wdXREaXNwYXRjaGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlv
bi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJM
RShXRUJEUklWRVJfQUNUSU9OU19BUEkpCiAKICNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25I
YW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9u
YWwuaD4KQEAgLTEzMiw3ICsxMzMsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdFQkRSSVZFUl9L
RVlCT0FSRF9JTlRFUkFDVElPTlMpCiAgICAgICAgIHZpcnR1YWwgdm9pZCBzaW11bGF0ZUtleWJv
YXJkSW50ZXJhY3Rpb24oV2ViUGFnZVByb3h5JiwgS2V5Ym9hcmRJbnRlcmFjdGlvbiwgV1RGOjpW
YXJpYW50PFZpcnR1YWxLZXksIENoYXJLZXk+JiYsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxl
ciYmKSA9IDA7CiAjZW5kaWYKLSAgICAgICAgdmlydHVhbCB2b2lkIHZpZXdwb3J0SW5WaWV3Q2Vu
dGVyUG9pbnRPZkVsZW1lbnQoV2ViUGFnZVByb3h5JiwgdWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
U3RyaW5nJiBub2RlSGFuZGxlLCBGdW5jdGlvbjx2b2lkIChPcHRpb25hbDxXZWJDb3JlOjpJbnRQ
b2ludD4sIE9wdGlvbmFsPEF1dG9tYXRpb25Db21tYW5kRXJyb3I+KT4mJikgPSAwOworICAgICAg
ICB2aXJ0dWFsIHZvaWQgdmlld3BvcnRJblZpZXdDZW50ZXJQb2ludE9mRWxlbWVudChXZWJQYWdl
UHJveHkmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbm9kZUhhbmRs
ZSwgRnVuY3Rpb248dm9pZCAoT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBPcHRpb25hbDxB
dXRvbWF0aW9uQ29tbWFuZEVycm9yPik+JiYpID0gMDsKICAgICB9OwogCiAgICAgc3RhdGljIFJl
ZjxTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXI+IGNyZWF0ZShXZWJQYWdlUHJveHkmIHBhZ2UsIFNp
bXVsYXRlZElucHV0RGlzcGF0Y2hlcjo6Q2xpZW50JiBjbGllbnQpCkBAIC0xNDIsNyArMTQzLDcg
QEAgcHVibGljOgogCiAgICAgflNpbXVsYXRlZElucHV0RGlzcGF0Y2hlcigpOwogCi0gICAgdm9p
ZCBydW4odWludDY0X3QgZnJhbWVJRCwgVmVjdG9yPFNpbXVsYXRlZElucHV0S2V5RnJhbWU+JiYg
a2V5RnJhbWVzLCBIYXNoU2V0PFJlZjxTaW11bGF0ZWRJbnB1dFNvdXJjZT4+JiBpbnB1dFNvdXJj
ZXMsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciYmKTsKKyAgICB2b2lkIHJ1bihXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIFZlY3RvcjxTaW11bGF0ZWRJbnB1dEtleUZyYW1lPiYmIGtleUZy
YW1lcywgSGFzaFNldDxSZWY8U2ltdWxhdGVkSW5wdXRTb3VyY2U+PiYgaW5wdXRTb3VyY2VzLCBB
dXRvbWF0aW9uQ29tcGxldGlvbkhhbmRsZXImJik7CiAgICAgdm9pZCBjYW5jZWwoKTsKIAogICAg
IGJvb2wgaXNBY3RpdmUoKSBjb25zdDsKQEAgLTE2NSw3ICsxNjYsNyBAQCBwcml2YXRlOgogICAg
IFdlYlBhZ2VQcm94eSYgbV9wYWdlOwogICAgIFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlcjo6Q2xp
ZW50JiBtX2NsaWVudDsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBtX2ZyYW1lSUQ7CisgICAg
T3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBtX2ZyYW1lSUQ7CiAgICAgQXV0b21h
dGlvbkNvbXBsZXRpb25IYW5kbGVyIG1fcnVuQ29tcGxldGlvbkhhbmRsZXI7CiAgICAgQXV0b21h
dGlvbkNvbXBsZXRpb25IYW5kbGVyIG1fa2V5RnJhbWVUcmFuc2l0aW9uQ29tcGxldGlvbkhhbmRs
ZXI7CiAgICAgUnVuTG9vcDo6VGltZXI8U2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyPiBtX2tleUZy
YW1lVHJhbnNpdGlvbkR1cmF0aW9uVGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCmluZGV4IGNj
ZTVjNDgxN2E4MDQ5MTdjZGMxOTljMWIwMTYwZTI1NmU5YmUyOTcuLjY4YmRhZGM4MjcxNzQzNzIz
NzQ0ZWQ1YzkyOGYxMGEwZGY5ZjJjZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCkBAIC0yMDIs
MTAgKzIwMiwxMCBAQCBTdHJpbmcgV2ViQXV0b21hdGlvblNlc3Npb246OmhhbmRsZUZvcldlYlBh
Z2VQcm94eShjb25zdCBXZWJQYWdlUHJveHkmIHdlYlBhZ2VQcgogICAgIHJldHVybiBoYW5kbGU7
CiB9CiAKLU9wdGlvbmFsPHVpbnQ2NF90PiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2ViRnJhbWVJ
REZvckhhbmRsZShjb25zdCBTdHJpbmcmIGhhbmRsZSkKK09wdGlvbmFsPEZyYW1lSWRlbnRpZmll
cj4gV2ViQXV0b21hdGlvblNlc3Npb246OndlYkZyYW1lSURGb3JIYW5kbGUoY29uc3QgU3RyaW5n
JiBoYW5kbGUpCiB7CiAgICAgaWYgKGhhbmRsZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiAw
OworICAgICAgICByZXR1cm4gRnJhbWVJZGVudGlmaWVyIHsgfTsgLy8gVGhpcyBpcyBleHBsaWNp
dGx5IHplcm87IHNlZSB3ZWJraXQub3JnL2IvMTU5Nzc3LgogCiAgICAgYXV0byBpdGVyID0gbV9o
YW5kbGVXZWJGcmFtZU1hcC5maW5kKGhhbmRsZSk7CiAgICAgaWYgKGl0ZXIgPT0gbV9oYW5kbGVX
ZWJGcmFtZU1hcC5lbmQoKSkKQEAgLTIxNCw3ICsyMTQsNyBAQCBPcHRpb25hbDx1aW50NjRfdD4g
V2ViQXV0b21hdGlvblNlc3Npb246OndlYkZyYW1lSURGb3JIYW5kbGUoY29uc3QgU3RyaW5nJiBo
YW5kbAogICAgIHJldHVybiBpdGVyLT52YWx1ZTsKIH0KIAotU3RyaW5nIFdlYkF1dG9tYXRpb25T
ZXNzaW9uOjpoYW5kbGVGb3JXZWJGcmFtZUlEKHVpbnQ2NF90IGZyYW1lSUQpCitTdHJpbmcgV2Vi
QXV0b21hdGlvblNlc3Npb246OmhhbmRsZUZvcldlYkZyYW1lSUQoRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQpCiB7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmco
KTsKQEAgLTM2Miw3ICszNjIsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpzd2l0Y2hU
b0Jyb3dzaW5nQ29udGV4dChjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dAogICAgIGlmICgh
cGFnZSkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90
Rm91bmQpOwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9y
SGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5kbGUgPyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5
U3RyaW5nKCkpOworICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUob3B0aW9u
YWxGcmFtZUhhbmRsZSA/ICpvcHRpb25hbEZyYW1lSGFuZGxlIDogZW1wdHlTdHJpbmcoKSk7CiAg
ICAgaWYgKCFmcmFtZUlEKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJP
UihGcmFtZU5vdEZvdW5kKTsKIApAQCAtNDU5LDcgKzQ1OSw3IEBAIHZvaWQgV2ViQXV0b21hdGlv
blNlc3Npb246OndhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZShjb25zdCBTdHJpbmcmIGJyb3dz
aW5nQ29uCiAgICAgICAgICYmIHBhZ2UtPnBhZ2VMb2FkU3RhdGUoKS5pc0xvYWRpbmcoKSAmJiBt
X2NsaWVudC0+aXNTaG93aW5nSmF2YVNjcmlwdERpYWxvZ09uUGFnZSgqdGhpcywgKnBhZ2UpOwog
CiAgICAgaWYgKG9wdGlvbmFsRnJhbWVIYW5kbGUgJiYgIW9wdGlvbmFsRnJhbWVIYW5kbGUtPmlz
RW1wdHkoKSkgewotICAgICAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCA9IHdlYkZyYW1l
SURGb3JIYW5kbGUoKm9wdGlvbmFsRnJhbWVIYW5kbGUpOworICAgICAgICBhdXRvIGZyYW1lSUQg
PSB3ZWJGcmFtZUlERm9ySGFuZGxlKCpvcHRpb25hbEZyYW1lSGFuZGxlKTsKICAgICAgICAgaWYg
KCFmcmFtZUlEKQogICAgICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1Io
RnJhbWVOb3RGb3VuZCk7CiAgICAgICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gcGFnZS0+cHJv
Y2VzcygpLndlYkZyYW1lKGZyYW1lSUQudmFsdWUoKSk7CkBAIC01MzcsNyArNTM3LDcgQEAgdm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVzcG9uZFRvUGVuZGluZ1BhZ2VOYXZpZ2F0aW9uQ2Fs
bGJhY2tzV2l0aFRpbWVvdXQoSGEKICAgICB9CiB9CiAKLXN0YXRpYyBXZWJQYWdlUHJveHkqIGZp
bmRQYWdlRm9yRnJhbWVJRChjb25zdCBXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIHVpbnQ2
NF90IGZyYW1lSUQpCitzdGF0aWMgV2ViUGFnZVByb3h5KiBmaW5kUGFnZUZvckZyYW1lSUQoY29u
c3QgV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkK
IHsKICAgICBmb3IgKGF1dG8mIHByb2Nlc3MgOiBwcm9jZXNzUG9vbC5wcm9jZXNzZXMoKSkgewog
ICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBwcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKSkKQEAg
LTU0Niw3ICs1NDYsNyBAQCBzdGF0aWMgV2ViUGFnZVByb3h5KiBmaW5kUGFnZUZvckZyYW1lSUQo
Y29uc3QgV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCB1aW50NgogICAgIHJldHVybiBudWxs
cHRyOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNwb25kVG9QZW5kaW5nRnJh
bWVOYXZpZ2F0aW9uQ2FsbGJhY2tzV2l0aFRpbWVvdXQoSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRy
PEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+JiBtYXApCit2b2lk
IFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNwb25kVG9QZW5kaW5nRnJhbWVOYXZpZ2F0aW9uQ2Fs
bGJhY2tzV2l0aFRpbWVvdXQoSGFzaE1hcDxGcmFtZUlkZW50aWZpZXIsIFJlZlB0cjxJbnNwZWN0
b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiYgbWFwKQogewogICAgIEluc3Bl
Y3Rvcjo6RXJyb3JTdHJpbmcgdGltZW91dEVycm9yID0gU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VS
Uk9SX05BTUUoVGltZW91dCk7CiAgICAgZm9yIChhdXRvIGlkIDogY29weVRvVmVjdG9yKG1hcC5r
ZXlzKCkpKSB7CkBAIC05MjQsNyArOTI0LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6
ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnQKICAg
ICBpZiAoIXBhZ2UpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdp
bmRvd05vdEZvdW5kKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEID0gd2ViRnJh
bWVJREZvckhhbmRsZShvcHRpb25hbEZyYW1lSGFuZGxlID8gKm9wdGlvbmFsRnJhbWVIYW5kbGUg
OiBlbXB0eVN0cmluZygpKTsKKyAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxl
KG9wdGlvbmFsRnJhbWVIYW5kbGUgPyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5n
KCkpOwogICAgIGlmICghZnJhbWVJRCkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklO
RURfRVJST1IoRnJhbWVOb3RGb3VuZCk7CiAKQEAgLTk2NywxMSArOTY3LDExIEBAIHZvaWQgV2Vi
QXV0b21hdGlvblNlc3Npb246OnJlc29sdmVDaGlsZEZyYW1lSGFuZGxlKGNvbnN0IFN0cmluZyYg
YnJvd3NpbmdDb250ZXh0CiAgICAgaWYgKCFwYWdlKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhf
UFJFREVGSU5FRF9FUlJPUihXaW5kb3dOb3RGb3VuZCk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUob3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpv
cHRpb25hbEZyYW1lSGFuZGxlIDogZW1wdHlTdHJpbmcoKSk7CisgICAgYXV0byBmcmFtZUlEID0g
d2ViRnJhbWVJREZvckhhbmRsZShvcHRpb25hbEZyYW1lSGFuZGxlID8gKm9wdGlvbmFsRnJhbWVI
YW5kbGUgOiBlbXB0eVN0cmluZygpKTsKICAgICBpZiAoIWZyYW1lSUQpCiAgICAgICAgIEFTWU5D
X0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKEZyYW1lTm90Rm91bmQpOwogCi0gICAgV1RGOjpD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4gY29tcGxl
dGlvbkhhbmRsZXIgPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxs
YmFjayA9IGNhbGxiYWNrLmNvcHlSZWYoKV0oT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIHVp
bnQ2NF90IGZyYW1lSUQpIG11dGFibGUgeworICAgIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9p
ZChPcHRpb25hbDxTdHJpbmc+LCBGcmFtZUlkZW50aWZpZXIpPiBjb21wbGV0aW9uSGFuZGxlciA9
IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhbGxiYWNrID0gY2FsbGJh
Y2suY29weVJlZigpXShPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQpIG11dGFibGUgewogICAgICAgICBpZiAoZXJyb3JUeXBlKSB7CiAgICAgICAgICAg
ICBjYWxsYmFjay0+c2VuZEZhaWx1cmUoU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VSUk9SX01FU1NB
R0UoKmVycm9yVHlwZSkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTAwNCwxMSArMTAwNCwx
MSBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZlUGFyZW50RnJhbWVIYW5kbGUo
Y29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleAogICAgIGlmICghcGFnZSkKICAgICAgICAgQVNZ
TkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwogCi0gICAgT3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKGZyYW1lSGFuZGxl
KTsKKyAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKGZyYW1lSGFuZGxlKTsK
ICAgICBpZiAoIWZyYW1lSUQpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VS
Uk9SKEZyYW1lTm90Rm91bmQpOwogCi0gICAgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9w
dGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxsYmFjayA9IGNhbGxiYWNrLmNvcHlSZWYo
KV0oT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIHVpbnQ2NF90IGZyYW1lSUQpIG11dGFibGUg
eworICAgIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBGcmFt
ZUlkZW50aWZpZXIpPiBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIGNhbGxiYWNrID0gY2FsbGJhY2suY29weVJlZigpXShPcHRpb25hbDxT
dHJpbmc+IGVycm9yVHlwZSwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIG11dGFibGUgewogICAg
ICAgICBpZiAoZXJyb3JUeXBlKSB7CiAgICAgICAgICAgICBjYWxsYmFjay0+c2VuZEZhaWx1cmUo
U1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VSUk9SX01FU1NBR0UoKmVycm9yVHlwZSkpOwogICAgICAg
ICAgICAgcmV0dXJuOwpAQCAtMTAzNSw3ICsxMDM1LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvbjo6Y29tcHV0ZUVsZW1lbnRMYXlvdXQoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRI
YW4KICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VS
Uk9SKFdpbmRvd05vdEZvdW5kKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEID0g
d2ViRnJhbWVJREZvckhhbmRsZShmcmFtZUhhbmRsZSk7CisgICAgYXV0byBmcmFtZUlEID0gd2Vi
RnJhbWVJREZvckhhbmRsZShmcmFtZUhhbmRsZSk7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAg
ICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIApAQCAt
MTA4Nyw3ICsxMDg3LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2VsZWN0T3B0aW9u
RWxlbWVudChjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmQKICAgICBpZiAoIXBhZ2Up
CiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5k
KTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRs
ZShmcmFtZUhhbmRsZSk7CisgICAgYXV0byBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShm
cmFtZUhhbmRsZSk7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhf
UFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIApAQCAtMTI3MSw3ICsxMjcxLDcgQEAg
dm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Z2V0QWxsQ29va2llcyhjb25zdCBTdHJpbmcmIGJy
b3dzaW5nQ29udGV4dEhhbmRsZSwgUmUKICAgICB9OwogCiAgICAgLy8gQWx3YXlzIHNlbmQgdGhl
IG1haW4gZnJhbWUgSUQgYXMgMCBzbyBpdCBpcyByZXNvbHZlZCBvbiB0aGUgV2ViUHJvY2VzcyBz
aWRlLiBUaGlzIGF2b2lkcyBhIHJhY2Ugd2hlbiBwYWdlLT5tYWluRnJhbWUoKSBpcyBudWxsIHN0
aWxsLgotICAgIGNvbnN0IHVpbnQ2NF90IG1haW5GcmFtZUlEID0gMDsKKyAgICBjb25zdCBGcmFt
ZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQ7CiAgICAgcGFnZS0+cHJvY2VzcygpLnNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6R2V0Q29va2llc0Zv
ckZyYW1lKHBhZ2UtPnBhZ2VJRCgpLCBtYWluRnJhbWVJRCksIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKIH0KIApAQCAtMTI5MSw3ICsxMjkxLDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvbjo6ZGVsZXRlU2luZ2xlQ29va2llKGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFu
ZGwKICAgICB9OwogCiAgICAgLy8gQWx3YXlzIHNlbmQgdGhlIG1haW4gZnJhbWUgSUQgYXMgMCBz
byBpdCBpcyByZXNvbHZlZCBvbiB0aGUgV2ViUHJvY2VzcyBzaWRlLiBUaGlzIGF2b2lkcyBhIHJh
Y2Ugd2hlbiBwYWdlLT5tYWluRnJhbWUoKSBpcyBudWxsIHN0aWxsLgotICAgIGNvbnN0IHVpbnQ2
NF90IG1haW5GcmFtZUlEID0gMDsKKyAgICBjb25zdCBGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1l
SUQ7CiAgICAgcGFnZS0+cHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2Vi
QXV0b21hdGlvblNlc3Npb25Qcm94eTo6RGVsZXRlQ29va2llKHBhZ2UtPnBhZ2VJRCgpLCBtYWlu
RnJhbWVJRCwgY29va2llTmFtZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIApA
QCAtMTQ1Nyw3ICsxNDU3LDcgQEAgU2ltdWxhdGVkSW5wdXRTb3VyY2UqIFdlYkF1dG9tYXRpb25T
ZXNzaW9uOjppbnB1dFNvdXJjZUZvclR5cGUoU2ltdWxhdGVkSW5wdXRTb3UKIH0KIAogLy8gTUFS
SzogU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyOjpDbGllbnQgQVBJCi12b2lkIFdlYkF1dG9tYXRp
b25TZXNzaW9uOjp2aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVtZW50KFdlYlBhZ2VQcm94
eSYgcGFnZSwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBGdW5j
dGlvbjx2b2lkIChPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIE9wdGlvbmFsPEF1dG9tYXRp
b25Db21tYW5kRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0b21hdGlv
blNlc3Npb246OnZpZXdwb3J0SW5WaWV3Q2VudGVyUG9pbnRPZkVsZW1lbnQoV2ViUGFnZVByb3h5
JiBwYWdlLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxl
LCBGdW5jdGlvbjx2b2lkIChPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIE9wdGlvbmFsPEF1
dG9tYXRpb25Db21tYW5kRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXVEY6
OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6SW50UmVj
dCwgT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBib29sKT4gZGlkQ29tcHV0ZUVsZW1lbnRM
YXlvdXRIYW5kbGVyID0gW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBXZWJDb3JlOjpJbnRSZWN0LCBPcHRp
b25hbDxXZWJDb3JlOjpJbnRQb2ludD4gaW5WaWV3Q2VudGVyUG9pbnQsIGJvb2wpIG11dGFibGUg
ewogICAgICAgICBpZiAoZXJyb3JUeXBlKSB7CkBAIC0xOTc2LDcgKzE5NzYsNyBAQCB2b2lkIFdl
YkF1dG9tYXRpb25TZXNzaW9uOjp0YWtlU2NyZWVuc2hvdChjb25zdCBTdHJpbmcmIGhhbmRsZSwg
Y29uc3QgU3RyaW5nKiBvcAogICAgIGlmICghcGFnZSkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRI
X1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwogCi0gICAgT3B0aW9uYWw8dWludDY0
X3Q+IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5kbGUgPyAq
b3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCkpOworICAgIGF1dG8gZnJhbWVJRCA9
IHdlYkZyYW1lSURGb3JIYW5kbGUob3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpvcHRpb25hbEZyYW1l
SGFuZGxlIDogZW1wdHlTdHJpbmcoKSk7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICBBU1lO
Q19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lv
bi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vz
c2lvbi5oCmluZGV4IGYzOWMwNjFiNTc4OTJhOTI0OGZkMDlkZmZjZmE3YjhjNTBhMDc1MzcuLjEy
MjJjMjg0MjJiZjk2YzZjYzRiMWE1ZGZjYTQyMjcwZmQwMjNhYTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9u
LmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKICNpbmNs
dWRlICJTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaCIKICNpbmNsdWRlICJXZWJFdmVudC5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
YWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC0xNTIsNyArMTUzLDcgQEAgcHVibGljOgogI2lmIEVO
QUJMRShXRUJEUklWRVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKQogICAgIHZvaWQgc2ltdWxhdGVL
ZXlib2FyZEludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYsIEtleWJvYXJkSW50ZXJhY3Rpb24sIFdU
Rjo6VmFyaWFudDxWaXJ0dWFsS2V5LCBDaGFyS2V5PiYmLCBBdXRvbWF0aW9uQ29tcGxldGlvbkhh
bmRsZXImJikgZmluYWw7CiAjZW5kaWYKLSAgICB2b2lkIHZpZXdwb3J0SW5WaWV3Q2VudGVyUG9p
bnRPZkVsZW1lbnQoV2ViUGFnZVByb3h5JiwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5n
JiBub2RlSGFuZGxlLCBGdW5jdGlvbjx2b2lkIChPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4s
IE9wdGlvbmFsPEF1dG9tYXRpb25Db21tYW5kRXJyb3I+KT4mJikgZmluYWw7CisgICAgdm9pZCB2
aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVtZW50KFdlYlBhZ2VQcm94eSYsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBGdW5jdGlvbjx2b2lk
IChPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIE9wdGlvbmFsPEF1dG9tYXRpb25Db21tYW5k
RXJyb3I+KT4mJikgZmluYWw7CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCRFJJVkVSX0FDVElPTlNf
QVBJKQogCkBAIC0yMjAsMTQgKzIyMSwxNCBAQCBwcml2YXRlOgogICAgIFJlZjxJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpCcm93c2luZ0NvbnRleHQ+IGJ1aWxkQnJvd3NpbmdDb250
ZXh0Rm9yUGFnZShXZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpGbG9hdFJlY3Qgd2luZG93RnJhbWUp
OwogICAgIHZvaWQgZ2V0TmV4dENvbnRleHQoUmVmPFdlYkF1dG9tYXRpb25TZXNzaW9uPiYmLCBW
ZWN0b3I8UmVmPFdlYlBhZ2VQcm94eT4+JiYsIFJlZjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb246OkJyb3dzaW5nQ29udGV4dD4+LCBSZWY8V2ViQXV0b21hdGlv
blNlc3Npb246OkdldEJyb3dzaW5nQ29udGV4dHNDYWxsYmFjaz4mJik7CiAKLSAgICBPcHRpb25h
bDx1aW50NjRfdD4gd2ViRnJhbWVJREZvckhhbmRsZShjb25zdCBTdHJpbmcmKTsKLSAgICBTdHJp
bmcgaGFuZGxlRm9yV2ViRnJhbWVJRCh1aW50NjRfdCBmcmFtZUlEKTsKKyAgICBPcHRpb25hbDxX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IHdlYkZyYW1lSURGb3JIYW5kbGUoY29uc3QgU3RyaW5n
Jik7CisgICAgU3RyaW5nIGhhbmRsZUZvcldlYkZyYW1lSUQoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyKTsKICAgICBTdHJpbmcgaGFuZGxlRm9yV2ViRnJhbWVQcm94eShjb25zdCBXZWJGcmFtZVBy
b3h5Jik7CiAKICAgICB2b2lkIHdhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9uUGFnZShXZWJQ
YWdlUHJveHkmLCBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpQYWdlTG9hZFN0cmF0
ZWd5LCBTZWNvbmRzLCBSZWY8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tC
YXNlPiYmKTsKICAgICB2b2lkIHdhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9uRnJhbWUoV2Vi
RnJhbWVQcm94eSYsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlBhZ2VMb2FkU3Ry
YXRlZ3ksIFNlY29uZHMsIFJlZjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFj
a0Jhc2U+JiYpOwogICAgIHZvaWQgcmVzcG9uZFRvUGVuZGluZ1BhZ2VOYXZpZ2F0aW9uQ2FsbGJh
Y2tzV2l0aFRpbWVvdXQoSGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgUmVmUHRyPElu
c3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+Jik7Ci0gICAgdm9pZCBy
ZXNwb25kVG9QZW5kaW5nRnJhbWVOYXZpZ2F0aW9uQ2FsbGJhY2tzV2l0aFRpbWVvdXQoSGFzaE1h
cDx1aW50NjRfdCwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNr
QmFzZT4+Jik7CisgICAgdm9pZCByZXNwb25kVG9QZW5kaW5nRnJhbWVOYXZpZ2F0aW9uQ2FsbGJh
Y2tzV2l0aFRpbWVvdXQoSGFzaE1hcDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZlB0cjxJ
bnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiYpOwogICAgIHZvaWQg
bG9hZFRpbWVyRmlyZWQoKTsKIAogICAgIHZvaWQgZXhpdEZ1bGxzY3JlZW5XaW5kb3dGb3JQYWdl
KFdlYlBhZ2VQcm94eSYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTI4
NCwxMyArMjg1LDEzIEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgU3RyaW5nPiBtX3dlYlBhZ2VIYW5kbGVNYXA7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBtX2hhbmRsZVdlYlBhZ2VNYXA7CiAKLSAgICBIYXNoTWFw
PHVpbnQ2NF90LCBTdHJpbmc+IG1fd2ViRnJhbWVIYW5kbGVNYXA7Ci0gICAgSGFzaE1hcDxTdHJp
bmcsIHVpbnQ2NF90PiBtX2hhbmRsZVdlYkZyYW1lTWFwOworICAgIEhhc2hNYXA8V2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBTdHJpbmc+IG1fd2ViRnJhbWVIYW5kbGVNYXA7CisgICAgSGFzaE1h
cDxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gbV9oYW5kbGVXZWJGcmFtZU1hcDsK
IAogICAgIEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFJlZlB0cjxJbnNwZWN0b3I6
OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiBtX3BlbmRpbmdOb3JtYWxOYXZpZ2F0
aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJQYWdlOwogICAgIEhhc2hNYXA8V2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpD
YWxsYmFja0Jhc2U+PiBtX3BlbmRpbmdFYWdlck5hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENh
bGxiYWNrc1BlclBhZ2U7Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEluc3BlY3Rvcjo6
QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGluZ05vcm1hbE5hdmlnYXRp
b25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlckZyYW1lOwotICAgIEhhc2hNYXA8dWludDY0
X3QsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiBt
X3BlbmRpbmdFYWdlck5hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlckZyYW1l
OworICAgIEhhc2hNYXA8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWZQdHI8SW5zcGVjdG9y
OjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4gbV9wZW5kaW5nTm9ybWFsTmF2aWdh
dGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyRnJhbWU7CisgICAgSGFzaE1hcDxXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVy
OjpDYWxsYmFja0Jhc2U+PiBtX3BlbmRpbmdFYWdlck5hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4
dENhbGxiYWNrc1BlckZyYW1lOwogICAgIEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiBtX3Bl
bmRpbmdJbnNwZWN0b3JDYWxsYmFja3NQZXJQYWdlOwogI2lmIEVOQUJMRShXRUJEUklWRVJfS0VZ
Qk9BUkRfSU5URVJBQ1RJT05TKQogICAgIEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IEZ1bmN0aW9uPHZvaWQoT3B0aW9uYWw8QXV0b21hdGlvbkNvbW1hbmRFcnJvcj4pPj4gbV9wZW5k
aW5nS2V5Ym9hcmRFdmVudHNGbHVzaGVkQ2FsbGJhY2tzUGVyUGFnZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCmluZGV4IGE1MWEyMjM2MjM4NDE1MWFiMTFk
NDg5NDM2OWY4YTE4NTgwMDY3ZGEuLjMwMmY2ODIyODJiY2M3ZWUzOGQzZjY3MjdkNmQyM2Y4NGIy
ODlkYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQpA
QCAtMTAzMiw3ICsxMDMyLDcgQEAgdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6Y2hlY2tVc2Vy
TWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYlBhZ2VQcm94eSYgcGFnZSwKICAgICBVUkwgcmVx
dWVzdEZyYW1lVVJMIHsgVVJMKCksIGZyYW1lLnVybCgpIH07CiAgICAgVVJMIG1haW5GcmFtZVVS
TCB7IFVSTCgpLCBtYWluRnJhbWUtPnVybCgpIH07CiAKLSAgICBbKGlkIDxXS1VJRGVsZWdhdGVQ
cml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IGNoZWNrVXNl
ck1lZGlhUGVybWlzc2lvbkZvclVSTDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1lVVJMOm1haW5G
cmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6ZnJhbWUuZnJhbWVJRCgpIGRlY2lzaW9uSGFuZGxlcjpk
ZWNpc2lvbkhhbmRsZXIuZ2V0KCldOworICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRl
bGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJt
aXNzaW9uRm9yVVJMOnJlcXVlc3RGcmFtZVVSTCBtYWluRnJhbWVVUkw6bWFpbkZyYW1lVVJMIGZy
YW1lSWRlbnRpZmllcjpmcmFtZS5mcmFtZUlEKCkudG9VSW50NjQoKSBkZWNpc2lvbkhhbmRsZXI6
ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKIH0KIAogdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6
bWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZUZsYWdzIHN0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XS1JlbG9hZEZyYW1lRXJyb3JSZWNvdmVyeUF0dGVtcHRlci5tbQpp
bmRleCA4NGQyMGM0Y2U4YjFmMDAxN2UxYmE3N2I5ZDBkZjRmMTAxMzhhOTAwLi45YzQwOTJlZmQ0
MzZkMDIyNDBiODA2YTJjMjQwZjY0MzZkMmVkYjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XS1JlbG9hZEZyYW1lRXJyb3JSZWNvdmVyeUF0dGVtcHRlci5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1JlbG9hZEZyYW1lRXJyb3JSZWNv
dmVyeUF0dGVtcHRlci5tbQpAQCAtMzIsNiArMzIsNyBAQAogI2ltcG9ydCAiV2ViRnJhbWVQcm94
eS5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHku
aCIKKyNpbXBvcnQgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW1wb3J0IDx3dGYvUmV0
YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KIApAQCAtNjIsOCArNjMsNyBA
QCAtIChCT09MKWF0dGVtcHRSZWNvdmVyeQogICAgIGlmICghd2ViVmlldykKICAgICAgICAgcmV0
dXJuIE5POwogCi0gICAgdWludDY0X3QgZnJhbWVJRCA9IFtfZnJhbWVIYW5kbGUgX2ZyYW1lSURd
OwotICAgIFdlYktpdDo6V2ViRnJhbWVQcm94eSogd2ViRnJhbWVQcm94eSA9IHdlYlZpZXctPl9w
YWdlLT5wcm9jZXNzKCkud2ViRnJhbWUoZnJhbWVJRCk7CisgICAgV2ViS2l0OjpXZWJGcmFtZVBy
b3h5KiB3ZWJGcmFtZVByb3h5ID0gd2ViVmlldy0+X3BhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShX
ZWJDb3JlOjpmcmFtZUlkZW50aWZpZXJGcm9tSUQoW19mcmFtZUhhbmRsZSBfZnJhbWVJRF0pKTsK
ICAgICBpZiAoIXdlYkZyYW1lUHJveHkpCiAgICAgICAgIHJldHVybiBOTzsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQppbmRleCBh
MWFmOThkMjEwOTNlNWFlZWU4YjNkNDgwYjgxNjFmZTI2ZTllYTUxLi5kOTYxMzkxOGY3NWZhNWU4
ZGY1ODM0ZjI1MjQ0MzhlMDZlOTg2Yjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQpAQCAtMTAxLDEyICsxMDEsMTIgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OmJlZ2luU2FmZUJyb3dzaW5nQ2hlY2soY29uc3QgVVJMJiB1cmwsIGJv
b2wgZm9yTWFpbkZyYW1lTmF2aWcKIH0KIAogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykK
LXZvaWQgV2ViUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWUoY29u
c3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiB1bmJsb2NrSGFuZGxlciwg
dWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxv
Y2tMb2FkRm9yRnJhbWUoY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVy
JiB1bmJsb2NrSGFuZGxlciwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgY29udGVu
dEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIHVu
YmxvY2tIYW5kbGVyLCBmcmFtZUlEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRlbnRG
aWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHBy
b2Nlc3MsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYgdW5ibG9j
a0hhbmRsZXIsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGVudEZp
bHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJv
Y2VzcywgY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiB1bmJsb2Nr
SGFuZGxlciwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgaWYgKFdlYkZyYW1lUHJv
eHkqIGZyYW1lID0gcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCkpCiAgICAgICAgIGZyYW1lLT5j
b250ZW50RmlsdGVyRGlkQmxvY2tMb2FkKHVuYmxvY2tIYW5kbGVyKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmlu
ZGV4IDk0ZmFmNmI5ZGUyNjIwMWQ4NGQyNmZmODM5MzNmODIyOWMwNWQ2YjkuLjkxZWNlMWYwZGFm
ZmUzZWE2M2FkYmMwZDkxZWFjNGQxODExMTMwOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzEyLDcg
KzMxMiw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MoY29uc3QgSVBDOjpBdHRhCiAjZW5kaWYKIH0KIAotdm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUGFnZUlk
ZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSYmIGNvcmVDaGFsbGVuZ2UsIHVpbnQ2NF90IGNoYWxsZW5nZUlEKQordm9pZCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUGFn
ZUlkZW50aWZpZXIgcGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6QXV0
aGVudGljYXRpb25DaGFsbGVuZ2UmJiBjb3JlQ2hhbGxlbmdlLCB1aW50NjRfdCBjaGFsbGVuZ2VJ
RCkKIHsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgaWYgKGF1dG8qIHNlcnZpY2VX
b3JrZXJQcm9jZXNzUHJveHkgPSBtX3Byb2Nlc3NQb29sLnNlcnZpY2VXb3JrZXJQcm9jZXNzUHJv
eHlGcm9tUGFnZUlEKHBhZ2VJRCkpIHsKQEAgLTczNyw3ICs3MzcsNyBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OnNldEdyYW5kZmF0aGVyZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBj
b25zdCBSZWdpcwogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3M6OlNldEdyYW5kZmF0aGVyZWQoc2Vzc2lvbklELCByZXNvdXJjZURvbWFpbiwgaXNHcmFuZGZh
dGhlcmVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShQYWdlSWRlbnRpZmllciBw
YWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFt
ZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oUGFnZUlkZW50aWZpZXIg
cGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHBhZ2VJRCk7
CiAgICAgaWYgKCFwYWdlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IDQzMzU0NWMwZTMzZmFhZWVkOWRlYmIz
NGY2YjIwY2ZjYWU1ZTk1YzguLjQwZjgxZGU5YjQ3ZjE5MjIxOTAyNmE2ZThhMDdiMmE1ZTJkNmE5
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5oCkBAIC04Miw3ICs4Miw2IEBAIHB1YmxpYzoKICAgICB1c2luZyBOYXZp
Z2F0ZWRUb0RvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwogICAgIHVzaW5nIERv
bWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcyA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwog
ICAgIHVzaW5nIE9wZW5lckRvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwotICAg
IHVzaW5nIEZyYW1lSUQgPSB1aW50NjRfdDsKIAogICAgIGV4cGxpY2l0IE5ldHdvcmtQcm9jZXNz
UHJveHkoV2ViUHJvY2Vzc1Bvb2wmKTsKICAgICB+TmV0d29ya1Byb2Nlc3NQcm94eSgpOwpAQCAt
MTMwLDcgKzEyOSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFByZXZhbGVudFJlc291cmNlRm9y
RGVidWdNb2RlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRWZXJ5UHJldmFsZW50UmVzb3Vy
Y2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKFBB
TDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+IGRvbWFp
bnMpPiYmKTsKLSAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgRnJhbWVJRCwgY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BG
cmFtZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQg
cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJh
bWVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIHJl
c2V0UGFyYW1ldGVyc1RvRGVmYXVsdFZhbHVlcyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNjaGVkdWxlQ2xlYXJJbk1lbW9yeUFuZFBlcnNp
c3RlbnQoUEFMOjpTZXNzaW9uSUQsIFNob3VsZEdyYW5kZmF0aGVyU3RhdGlzdGljcywgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNjaGVkdWxlQ2xlYXJJbk1lbW9yeUFu
ZFBlcnNpc3RlbnQoUEFMOjpTZXNzaW9uSUQsIE9wdGlvbmFsPFdhbGxUaW1lPiBtb2RpZmllZFNp
bmNlLCBTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3MsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CkBAIC0yMTMsNyArMjEyLDcgQEAgcHJpdmF0ZToKICAgICAvLyBNZXNzYWdlIGhhbmRs
ZXJzCiAgICAgdm9pZCBkaWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAgICAgdm9pZCBkaWRDcmVhdGVOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcyhjb25zdCBJUEM6OkF0dGFjaG1lbnQmKTsKLSAgICB2b2lkIGRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
dWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmJiwgdWlu
dDY0X3QgY2hhbGxlbmdlSUQpOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYsIHVpbnQ2NF90IGNoYWxsZW5nZUlE
KTsKICAgICB2b2lkIGRpZEZldGNoV2Vic2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCwgY29u
c3QgV2Vic2l0ZURhdGEmKTsKICAgICB2b2lkIGRpZERlbGV0ZVdlYnNpdGVEYXRhKHVpbnQ2NF90
IGNhbGxiYWNrSUQpOwogICAgIHZvaWQgZGlkRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKHVp
bnQ2NF90IGNhbGxiYWNrSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDEx
ZDhjNWRlZTFkYmE4MWY4ZjYzZjdkOTQ4ZWY2NjE2MTk4MWQxMzQuLmJmYWY5ZjA0OTZlNTZhOWI5
MzFlZjZmZjc3NTFjM2FjZjVkMTM5YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4K
QEAgLTIzLDcgKzIzLDcgQEAKIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkgTGVnYWN5
UmVjZWl2ZXIgewogICAgIERpZENyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKElQ
Qzo6QXR0YWNobWVudCBjb25uZWN0aW9uSWRlbnRpZmllcikKIAotICAgIERpZFJlY2VpdmVBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2
NF90IGZyYW1lSUQsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGNoYWxsZW5nZSwg
dWludDY0X3QgY2hhbGxlbmdlSUQpCisgICAgRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGNoYWxsZW5nZSwg
dWludDY0X3QgY2hhbGxlbmdlSUQpCiAKICAgICBEaWRGZXRjaFdlYnNpdGVEYXRhKHVpbnQ2NF90
IGNhbGxiYWNrSUQsIHN0cnVjdCBXZWJLaXQ6OldlYnNpdGVEYXRhIHdlYnNpdGVEYXRhKQogICAg
IERpZERlbGV0ZVdlYnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpCkBAIC00OCw3ICs0OCw3
IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogICAg
IE5vdGlmeVdlYnNpdGVEYXRhRGVsZXRpb25Gb3JSZWdpc3RyYWJsZURvbWFpbnNGaW5pc2hlZCgp
CiAgICAgTm90aWZ5V2Vic2l0ZURhdGFTY2FuRm9yUmVnaXN0cmFibGVEb21haW5zRmluaXNoZWQo
KQogICAgIE5vdGlmeVJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlGaW5pc2hlZCh1bnNp
Z25lZCB0b3RhbFByZXZhbGVudFJlc291cmNlcywgdW5zaWduZWQgdG90YWxQcmV2YWxlbnRSZXNv
dXJjZXNXaXRoVXNlckludGVyYWN0aW9uLCB1bnNpZ25lZCB0b3AzU3ViZnJhbWVVbmRlclRvcEZy
YW1lT3JpZ2lucykKLSAgICBSZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJh
bWVEb21haW4pIC0+IChib29sIHVzZXJEaWRHcmFudEFjY2VzcykgQXN5bmMKKyAgICBSZXF1ZXN0
U3RvcmFnZUFjY2Vzc0NvbmZpcm0oV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4g
c3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWlu
KSAtPiAoYm9vbCB1c2VyRGlkR3JhbnRBY2Nlc3MpIEFzeW5jCiAgICAgRGVsZXRlV2Vic2l0ZURh
dGFJblVJUHJvY2Vzc0ZvclJlZ2lzdHJhYmxlRG9tYWlucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBPcHRpb25T
ZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMsIFZlY3RvcjxX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gZG9tYWlucykgLT4gKEhhc2hTZXQ8V2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4+IGRvbWFpbnNXaXRoTWF0Y2hpbmdEYXRhUmVjb3JkcykgQXN5bmMK
ICAgICBEaWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxlbnRS
ZXNvdXJjZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAppbmRleCA2NjZm
YmQzZGExMGZiNWQ1OWFmMjEwNTI3YTNjMTU0NWMxNDgxM2UyLi5kN2YwYzNjOTUwMjc0ZGU4ZTBh
OTVjYjg1YWRjMjc2NTU4ZjcyZDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAgdm9pZCBQcm92aXNp
b25hbFBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbShBUEk6Ok5hdmlnYXRpb24mIG5hdmln
YXRpb24sIFdlYkIKICAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdGFydCgp
OwogfQogCi1pbmxpbmUgYm9vbCBQcm92aXNpb25hbFBhZ2VQcm94eTo6dmFsaWRhdGVJbnB1dCh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBPcHRpb25hbDx1aW50NjRfdD4mIG5hdmlnYXRpb25JRCkK
K2lubGluZSBib29sIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojp2YWxpZGF0ZUlucHV0KEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBjb25zdCBPcHRpb25hbDx1aW50NjRfdD4mIG5hdmlnYXRpb25JRCkK
IHsKICAgICAvLyBJZiB0aGUgcHJldmlvdXMgcHJvdmlzaW9uYWwgbG9hZCB1c2VkIGFuIGV4aXN0
aW5nIHByb2Nlc3MsIHdlIG1heSByZWNlaXZlIGxlZnRvdmVyIElQQyBmb3IgYSBwcmV2aW91cyBu
YXZpZ2F0aW9uLCB3aGljaCB3ZSBuZWVkIHRvIGlnbm9yZS4KICAgICBpZiAoIW1fbWFpbkZyYW1l
IHx8IG1fbWFpbkZyYW1lLT5mcmFtZUlEKCkgIT0gZnJhbWVJRCkKQEAgLTE4NSw5ICsxODUsOSBA
QCBpbmxpbmUgYm9vbCBQcm92aXNpb25hbFBhZ2VQcm94eTo6dmFsaWRhdGVJbnB1dCh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBPcHRpb25hbAogICAgIHJldHVybiAhbmF2aWdhdGlvbklEIHx8ICEq
bmF2aWdhdGlvbklEIHx8ICpuYXZpZ2F0aW9uSUQgPT0gbV9uYXZpZ2F0aW9uSUQ7CiB9CiAKLXZv
aWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRfdCBmcmFt
ZUlEKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKEZyYW1l
SWRlbnRpZmllciBmcmFtZUlEKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2Vz
c1N3YXBwaW5nLCAiZGlkQ3JlYXRlTWFpbkZyYW1lOiBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCwgbV9wYWdlLnBhZ2VJRCgpLnRvVUludDY0KCksIGZyYW1lSUQpOwor
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2Vzc1N3YXBwaW5nLCAiZGlkQ3JlYXRlTWFp
bkZyYW1lOiBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wYWdl
LnBhZ2VJRCgpLnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAgICAgQVNTRVJUKCFt
X21haW5GcmFtZSk7CiAKICAgICBtX21haW5GcmFtZSA9IFdlYkZyYW1lUHJveHk6OmNyZWF0ZSht
X3BhZ2UsIGZyYW1lSUQpOwpAQCAtMjEyLDcgKzIxMiw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdl
UHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRfdCBmcmFtZUlEKQogICAgIH0KIH0KIAot
dm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0
IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3Ry
aW5nLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVy
Zm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBT
dHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsK
ICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCkpCiAgICAgICAgIHJldHVybjsKQEAgLTIy
MCwxMiArMjIwLDEyIEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGll
bnRSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluCiAgICAgbV9wYWdlLmRpZFBl
cmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBzb3VyY2VVUkxT
dHJpbmcsIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBmcmFtZUlEKTsKIH0KIAotdm9pZCBQcm92aXNp
b25hbFBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCwgVVJMJiYgdW5yZWFjaGFi
bGVVUkwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJv
eHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYgdXJsLCBVUkwmJiB1bnJlYWNoYWJsZVVS
TCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIGlmICghdmFsaWRhdGVJbnB1dChm
cmFtZUlELCBuYXZpZ2F0aW9uSUQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgImRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWU6IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIG5hdmln
YXRpb25JRCA9ICUiIFBSSXU2NCwgbV9wYWdlLnBhZ2VJRCgpLnRvVUludDY0KCksIGZyYW1lSUQs
IG5hdmlnYXRpb25JRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBp
bmcsICJkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiBwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9uSUQgPSAlIiBQUkl1NjQsIG1fcGFn
ZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCksIG5hdmlnYXRpb25JRCk7
CiAgICAgQVNTRVJUKG1fcHJvdmlzaW9uYWxMb2FkVVJMLmlzTnVsbCgpKTsKICAgICBtX3Byb3Zp
c2lvbmFsTG9hZFVSTCA9IHVybDsKIApAQCAtMjQwLDEyICsyNDAsMTIgQEAgdm9pZCBQcm92aXNp
b25hbFBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCB1aW4KICAgICBtX3BhZ2UuZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNo
YXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUo
dXJsKSwgV1RGTW92ZSh1bnJlYWNoYWJsZVVSTCksIHVzZXJEYXRhKTsKIH0KIAotdm9pZCBQcm92
aXNpb25hbFBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0
eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFs
VVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgV2ViQ29yZTo6V2lsbENv
bnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYgdXNlckRh
dGEpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25z
dCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBl
cnJvciwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBj
b25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1l
SUQsIG5hdmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJFTEVBU0VfTE9HX0VS
Uk9SX0lGX0FMTE9XRUQoUHJvY2Vzc1N3YXBwaW5nLCAiZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lOiBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBuYXZp
Z2F0aW9uSUQgPSAlIiBQUkl1NjQsIG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFtZUlE
LCBuYXZpZ2F0aW9uSUQpOworICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoUHJvY2Vz
c1N3YXBwaW5nLCAiZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiBwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9uSUQgPSAlIiBQUkl1NjQs
IG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCksIG5hdmlnYXRp
b25JRCk7CiAgICAgQVNTRVJUKCFtX3Byb3Zpc2lvbmFsTG9hZFVSTC5pc051bGwoKSk7CiAgICAg
bV9wcm92aXNpb25hbExvYWRVUkwgPSB7IH07CiAKQEAgLTI1NiwxMiArMjU2LDEyIEBAIHZvaWQg
UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBjb25zCiAgICAgbV9wYWdlLmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JG
cmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBmcmFtZVNlY3VyaXR5T3Jp
Z2luLCBuYXZpZ2F0aW9uSUQsIHByb3Zpc2lvbmFsVVJMLCBlcnJvciwgd2lsbENvbnRpbnVlTG9h
ZGluZywgdXNlckRhdGEpOyAvLyBNYXkgZGVsZXRlIHx0aGlzfC4KIH0KIAotdm9pZCBQcm92aXNp
b25hbFBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhh
c0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2Vi
Q29yZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVn
aW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRI
YXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgUHJvdmlz
aW9uYWxQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29s
IGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBj
b25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250
YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+
IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewog
ICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgImRp
ZENvbW1pdExvYWRGb3JGcmFtZTogcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQ
Ukl1NjQgIiwgbmF2aWdhdGlvbklEID0gJSIgUFJJdTY0LCBtX3BhZ2UucGFnZUlEKCkudG9VSW50
NjQoKSwgZnJhbWVJRCwgbmF2aWdhdGlvbklEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KFByb2Nlc3NTd2FwcGluZywgImRpZENvbW1pdExvYWRGb3JGcmFtZTogcGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEID0gJSIgUFJJdTY0LCBt
X3BhZ2UucGFnZUlEKCkudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpLCBuYXZpZ2F0aW9u
SUQpOwogICAgIG1fcHJvdmlzaW9uYWxMb2FkVVJMID0geyB9OwogICAgIG1fcHJvY2Vzcy0+cmVt
b3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSwgbV9wYWdlLnBhZ2VJRCgpKTsKIApAQCAtMjY5LDcgKzI2OSw3IEBAIHZvaWQgUHJv
dmlzaW9uYWxQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBuYXZpCiAgICAgbV9wYWdlLmNvbW1pdFByb3Zpc2lvbmFsUGFnZShmcmFtZUlE
LCBuYXZpZ2F0aW9uSUQsIG1pbWVUeXBlLCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwg
ZnJhbWVMb2FkVHlwZSwgY2VydGlmaWNhdGVJbmZvLCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBm
b3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIHVzZXJEYXRhKTsgLy8gV2lsbCBkZWxldGUgfHRoaXN8
LgogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0
aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiBzdG9yZSwgdWludDY0X3QgZnJh
bWVJRCkKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRp
b25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmIHN0b3JlLCBGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCkKIHsKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCkpCiAgICAgICAg
IHJldHVybjsKQEAgLTI3Nyw3ICsyNzcsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpk
aWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YQogICAg
IG1fcGFnZS5kaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YVNoYXJlZChtX3Byb2Nlc3MuY29w
eVJlZigpLCBzdG9yZSwgZnJhbWVJRCk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6
OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpk
aWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCkKIHsKICAgICBpZiAoIXZhbGlkYXRlSW5w
dXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjg1LDcgKzI4
NSw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJM
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWluCiAgICAgbV9wYWdlLmRpZENoYW5nZVByb3Zp
c2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgbmF2
aWdhdGlvbklELCBXVEZNb3ZlKHVybCkpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5
OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmModWludDY0X3QgZnJhbWVJRCwg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCit2b2lkIFByb3Zpc2lvbmFsUGFn
ZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlP
cmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAogICAgIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0
aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiBvcmlnaW5hbFJlcXVlc3QsCiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVz
dCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCB1
aW50NjRfdCBsaXN0ZW5lcklEKQogewpAQCAtMjk2LDcgKzI5Niw3IEBAIHZvaWQgUHJvdmlzaW9u
YWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyh1aW50NjRf
dCBmcmFtZUlECiAgICAgICAgIFdURk1vdmUoZnJhbWVJbmZvRGF0YSksIG9yaWdpbmF0aW5nUGFn
ZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVxdWVzdEJv
ZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB1c2VyRGF0YSwgbGlzdGVuZXJJRCk7CiB9
CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIs
Cit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBm
cmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRp
ZmllciwKICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRl
LCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAg
aWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCkBAIC0zMDUsNyArMzA1
LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2Uo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ28KICAgICBtX3BhZ2UuZGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2VTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0
eU9yaWdpbiwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2Fu
U2hvd01JTUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0ZSwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOwog
fQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3Qo
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25V
UkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpk
aWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNv
bnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
KQogewogICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlEKSkKICAgICAgICAgcmV0dXJuOwpA
QCAtMzEzLDcgKzMxMyw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1T
ZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluCiAgICAgbV9wYWdlLmRp
ZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdFNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBzb3VyY2VV
UkxTdHJpbmcsIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBmcmFtZUlEKTsKIH0KIAotdm9pZCBQcm92
aXNpb25hbFBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEp
Cit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQ
cm92aXNpb25hbExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBV
c2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5h
dmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKQEAgLTMzMSw3ICszMzEsNyBAQCB2b2lkIFBy
b3Zpc2lvbmFsUGFnZVByb3h5OjpiYWNrRm9yd2FyZEdvVG9JdGVtKGNvbnN0IFdlYkNvcmU6OkJh
Y2tGb3J3YXJkSXRlbUlkZQogICAgIG1fcGFnZS5iYWNrRm9yd2FyZEdvVG9JdGVtU2hhcmVkKG1f
cHJvY2Vzcy5jb3B5UmVmKCksIGlkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvblN5bmModWludDY0X3QgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9s
aWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5
OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJh
bWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZp
ZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5h
dmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELAogICAgIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLAogICAgIGNvbnN0IFVzZXJE
YXRhJiB1c2VyRGF0YSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQpAQCAtMzY2LDcgKzM2Niw3
IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OnJlZ2lzdGVyV2ViUHJvY2Vzc0FjY2Vzc2li
aWxpdHlUb2tlbihjb25zdCBJUEM6OkRhdGFSCiAjZW5kaWYKIAogI2lmIEVOQUJMRShDT05URU5U
X0ZJTFRFUklORykKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRC
bG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRs
ZXImIHVuYmxvY2tIYW5kbGVyLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBQcm92aXNpb25hbFBh
Z2VQcm94eTo6Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKGNvbnN0IFdlYkNvcmU6
OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYgdW5ibG9ja0hhbmRsZXIsIEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlEKQogewogICAgIG1fcGFnZS5jb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9y
RnJhbWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgdW5ibG9ja0hhbmRsZXIsIGZyYW1lSUQp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdl
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgK
aW5kZXggMzMzMjE2YTJjYzc4NTY2NzE2MzI0YWIwNmZmMWIzYjk2MDgwYzBiZS4uZGUzZWU2ODdm
YTdkODE3NTBiNThmZWRhNTg0NTgzZmQxZjFlMmQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCkBAIC05MiwyMyArOTIsMjMgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYpIGZpbmFsOwogICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JikgZmlu
YWw7CiAKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyh1aW50
NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9s
aWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rp
b25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiwKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25Bc3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0YSYmLAog
ICAgICAgICBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdl
SUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RC
b2R5LAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25z
ZSwgY29uc3QgVXNlckRhdGEmLCB1aW50NjRfdCBsaXN0ZW5lcklEKTsKLSAgICB2b2lkIGRlY2lk
ZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwKKyAgICB2b2lk
IGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlm
aWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmLAogICAgICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNo
b3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlz
dGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFs
VVJMRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwm
Jik7Ci0gICAgdm9pZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90
IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRp
ZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUm
LCB1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdChj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVS
TFN0cmluZywgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRDcmVhdGVNYWluRnJhbWUo
dWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYsIFVSTCYm
IHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkQ29tbWl0TG9h
ZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWlu
dDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiwgYm9v
bCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNv
bnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2
b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0
IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJik7Cisg
ICAgdm9pZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxT
dHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNp
b25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFVzZXJEYXRhJik7Cisg
ICAgdm9pZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9u
RGF0YVN0b3JlJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZFBlcmZv
cm1DbGllbnRSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3Ry
aW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAg
ICB2b2lkIGRpZENyZWF0ZU1haW5GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAg
IHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYsIFVSTCYmIHVucmVhY2hhYmxlVVJM
LCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvckZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcm
IG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBm
cmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mLCBib29sIGNvbnRh
aW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4g
Zm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlk
RmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nLCBjb25z
dCBVc2VyRGF0YSYpOwogICAgIHZvaWQgc3RhcnRVUkxTY2hlbWVUYXNrKFVSTFNjaGVtZVRhc2tQ
YXJhbWV0ZXJzJiYpOwogICAgIHZvaWQgYmFja0ZvcndhcmRHb1RvSXRlbShjb25zdCBXZWJDb3Jl
OjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGUmJik+JiYpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvblN5bmModWludDY0X3QgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAorICAgIHZv
aWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwg
V2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5h
dmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKICAgICAgICAgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRh
JiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
blN5bmM6OkRlbGF5ZWRSZXBseSYmKTsKICNpZiBVU0UoUVVJQ0tfTE9PSykKQEAgLTExOCwxMSAr
MTE4LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWdpc3RlcldlYlByb2Nlc3NBY2Nlc3NpYmls
aXR5VG9rZW4oY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7CiAjZW5kaWYKICNpZiBFTkFCTEUo
Q09OVEVOVF9GSUxURVJJTkcpCi0gICAgdm9pZCBjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9y
RnJhbWUoY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiwgdWludDY0
X3QgZnJhbWVJRCk7CisgICAgdm9pZCBjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWUo
Y29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyKTsKICNlbmRpZgogCiAgICAgdm9pZCBpbml0aWFsaXplV2ViUGFnZSgpOwot
ICAgIGJvb2wgdmFsaWRhdGVJbnB1dCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBPcHRpb25hbDx1
aW50NjRfdD4mIG5hdmlnYXRpb25JRCA9IFdURjo6bnVsbG9wdCk7CisgICAgYm9vbCB2YWxpZGF0
ZUlucHV0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgT3B0aW9uYWw8dWludDY0X3Q+
JiBuYXZpZ2F0aW9uSUQgPSBXVEY6Om51bGxvcHQpOwogCiAgICAgV2ViUGFnZVByb3h5JiBtX3Bh
Z2U7CiAgICAgUmVmPFdlYlByb2Nlc3NQcm94eT4gbV9wcm9jZXNzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBi
MmY3NzI5ZmQzOTM1ZjcyZTFiYzkxMTVhMzBhMThmNjRlMzlmZDI1Li5mNzhhN2MzODZjODk1OTAx
MTU2YjU2OGFhZjk4YmFiMjNiMDgwNmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcApAQCAtOTAsNyArOTAsNyBAQCB2
b2lkIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OnVwZGF0ZVByZWZlcmVuY2VzU3RvcmUoY29u
c3QgV2ViUHJlZmVyZW5jZXNTdG9yZQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uOjpVcGRhdGVQcmVmZXJlbmNlc1N0b3JlIHsgc3RvcmUgfSwgMCk7CiB9
CiAKLXZvaWQgU2VydmljZVdvcmtlclByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVm
PEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYgY2hhbGxlbmdlKQordm9pZCBTZXJ2aWNl
V29ya2VyUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUGFn
ZUlkZW50aWZpZXIgcGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUmVmPEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYgY2hhbGxlbmdlKQogewogICAgIFVOVVNFRF9QQVJBTShw
YWdlSUQpOwogICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaAppbmRleCBlOTM2NWFmYWM0
ZjQ3ZDdmZDc0N2Y5ODk4M2FkOTk5MGU4YWI5NzU1Li43ZDg4NzYwNWVlYTBiNjQ3OWQ2OTc2OTFh
YmI1NTI4MDdkZTIxODQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2Vy
dmljZVdvcmtlclByb2Nlc3NQcm94eS5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKIAogICAg
IHN0YXRpYyBib29sIGhhc1JlZ2lzdGVyZWRTZXJ2aWNlV29ya2Vycyhjb25zdCBTdHJpbmcmIHNl
cnZpY2VXb3JrZXJEaXJlY3RvcnkpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQsIFJl
ZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJik7CiAK
ICAgICB2b2lkIHN0YXJ0KGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmLCBPcHRpb25hbDxQQUw6
OlNlc3Npb25JRD4gaW5pdGlhbFNlc3Npb25JRCk7CiAgICAgdm9pZCBzZXRVc2VyQWdlbnQoY29u
c3QgU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5k
ZWRQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVBy
b3h5LmNwcAppbmRleCBmNmQzYjUzNmRmOGFhYjE5N2Q5MTFlZDE0ZDJlYTQwZmVmZjJlMWRkLi5j
NjRkN2VmMTliZDBkZTcxMTY5Njk5OTJjMDc2NzFlNjFkODI4M2VkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHAKQEAgLTc4LDcgKzc4LDcgQEAg
c3RhdGljIGNvbnN0IEhhc2hTZXQ8SVBDOjpTdHJpbmdSZWZlcmVuY2U+JiBtZXNzYWdlTmFtZXNU
b0lnbm9yZVdoaWxlU3VzcGVuZGVkKCkKIH0KICNlbmRpZgogCi1TdXNwZW5kZWRQYWdlUHJveHk6
OlN1c3BlbmRlZFBhZ2VQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYgcHJvY2VzcywgdWludDY0X3QgbWFpbkZyYW1lSUQsIFNob3VsZERlbGF5Q2xvc2luZ1Vu
dGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSBzaG91bGREZWxheUNsb3NpbmdV
bnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpCitTdXNwZW5kZWRQYWdlUHJv
eHk6OlN1c3BlbmRlZFBhZ2VQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlELCBTaG91bGREZWxh
eUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUgc2hvdWxkRGVs
YXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKQogICAgIDog
bV9wYWdlKHBhZ2UpCiAgICAgLCBtX3Byb2Nlc3MoV1RGTW92ZShwcm9jZXNzKSkKICAgICAsIG1f
bWFpbkZyYW1lSUQobWFpbkZyYW1lSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3Bl
bmRlZFBhZ2VQcm94eS5oCmluZGV4IDBkYWQwNTRiMjcyYTgxOWQ2ZTBiMDZjNzdjZWQ4MTJhMjYz
ZDEzNDAuLjkxNjUzY2M3OGVhMDA4NjYwYjE0ZTMzNTA1NTNhYTg5ZTczZDE5MTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oCkBAIC0yOSw2ICsyOSw3
IEBACiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxlci5oIgogI2luY2x1ZGUgIldlYkJhY2tGb3J3
YXJkTGlzdEl0ZW0uaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCkBAIC00MiwxMiArNDMsMTIgQEAgZW51bSBj
bGFzcyBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z01vZGUgOiBib29sIHsgTm8KIGNsYXNzIFN1c3BlbmRlZFBhZ2VQcm94eSBmaW5hbDogcHVibGlj
IElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3VzcGVuZGVkUGFn
ZVByb3h5PiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgU3Vz
cGVuZGVkUGFnZVByb3h5KFdlYlBhZ2VQcm94eSYsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVp
bnQ2NF90IG1haW5GcmFtZUlELCBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ01vZGUpOworICAgIFN1c3BlbmRlZFBhZ2VQcm94eShXZWJQYWdlUHJv
eHkmLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFp
bkZyYW1lSUQsIFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBv
c2l0aW5nTW9kZSk7CiAgICAgflN1c3BlbmRlZFBhZ2VQcm94eSgpOwogCiAgICAgV2ViUGFnZVBy
b3h5JiBwYWdlKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlOyB9CiAgICAgV2ViUHJvY2Vzc1Byb3h5
JiBwcm9jZXNzKCkgeyByZXR1cm4gbV9wcm9jZXNzLmdldCgpOyB9Ci0gICAgdWludDY0X3QgbWFp
bkZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX21haW5GcmFtZUlEOyB9CisgICAgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJhbWVJ
RDsgfQogCiAgICAgYm9vbCBwYWdlSXNDbG9zZWRPckNsb3NpbmcoKSBjb25zdDsKIApAQCAtNzQs
NyArNzUsNyBAQCBwcml2YXRlOgogCiAgICAgV2ViUGFnZVByb3h5JiBtX3BhZ2U7CiAgICAgUmVm
PFdlYlByb2Nlc3NQcm94eT4gbV9wcm9jZXNzOwotICAgIHVpbnQ2NF90IG1fbWFpbkZyYW1lSUQ7
CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fbWFpbkZyYW1lSUQ7CiAgICAgYm9vbCBt
X2lzQ2xvc2VkIHsgZmFsc2UgfTsKICAgICBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5n
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUgbV9zaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVy
aW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUgeyBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVu
dGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGU6Ok5vIH07CiAgICAgYm9vbCBtX3Nob3Vs
ZENsb3NlV2hlbkVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUgeyBmYWxzZSB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNo
ZWNrUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
bkNoZWNrUHJveHkuY3BwCmluZGV4IGFiNzkyNDAyOWUwZWYzYTNiYmFiNzRjYmFjMDBjMjk3ZmE5
NmEzY2EuLjRmYTZmZGY2MDhkNmMzN2VmZWNiMGE1ZTA2YzJjZmRlNTBlYjU4NGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hl
Y2tQcm94eS5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKLVVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5OjpVc2Vy
TWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSh1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFu
ZGxlciYmIGhhbmRsZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFE
b2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9j
dW1lbnRPcmlnaW4pCitVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eTo6VXNlck1lZGlhUGVy
bWlzc2lvbkNoZWNrUHJveHkoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5k
bGVyJiYgaGFuZGxlciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbikKICAgICA6IG1fZnJhbWVJRChmcmFtZUlEKQogICAgICwgbV9jb21wbGV0aW9u
SGFuZGxlcihXVEZNb3ZlKGhhbmRsZXIpKQogICAgICwgbV91c2VyTWVkaWFEb2N1bWVudFNlY3Vy
aXR5T3JpZ2luKFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmgK
aW5kZXggZGMzNDA5ODE3MTRjNzI3OTNjMDEwNWQ3ODMzOTFiN2ZhOTQ1OTE4Zi4uZTgwYjUxOTE4
NDFmZGIyNDY3NTUxMDk3MjUwOTY2ZTkwYjdlMmEzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oCkBAIC0yNiw2
ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNv
bnN0cmFpbnRzLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC00MSw3ICs0Miw3IEBAIHB1YmxpYzoKICAgICBl
bnVtIGNsYXNzIFBlcm1pc3Npb25JbmZvIHsgRXJyb3IsIFVua25vd24sIEdyYW50ZWQgfTsKICAg
ICB1c2luZyBDb21wbGV0aW9uSGFuZGxlciA9IFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChQ
ZXJtaXNzaW9uSW5mbyk+OwogCi0gICAgc3RhdGljIFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uQ2hl
Y2tQcm94eT4gY3JlYXRlKHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyJiYgaGFu
ZGxlciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3Jp
Z2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdp
bikKKyAgICBzdGF0aWMgUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5PiBjcmVhdGUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyJiYgaGFu
ZGxlciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3Jp
Z2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdp
bikKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFVzZXJNZWRpYVBlcm1pc3Np
b25DaGVja1Byb3h5KGZyYW1lSUQsIFdURk1vdmUoaGFuZGxlciksIFdURk1vdmUodXNlck1lZGlh
RG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsRG9jdW1lbnRPcmlnaW4pKSk7CiAgICAg
fQpAQCAtNTAsMTcgKzUxLDE3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFVzZXJNZWRpYUFjY2Vz
c0luZm8oYm9vbCk7CiAgICAgdm9pZCBpbnZhbGlkYXRlKCkgeyBjb21wbGV0ZShQZXJtaXNzaW9u
SW5mbzo6RXJyb3IpOyB9CiAKLSAgICB1aW50NjRfdCBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4g
bV9mcmFtZUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQoKSBjb25z
dCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KICAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNl
ck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIHsgcmV0dXJuIG1fdXNlck1lZGlhRG9jdW1l
bnRTZWN1cml0eU9yaWdpbi5nZXQoKTsgfQogICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0
b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSB7IHJldHVybiBtX3RvcExldmVsRG9jdW1l
bnRTZWN1cml0eU9yaWdpbi5nZXQoKTsgfQogICAgIAogcHJpdmF0ZToKLSAgICBVc2VyTWVkaWFQ
ZXJtaXNzaW9uQ2hlY2tQcm94eSh1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlciYm
LCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4s
IFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKTsK
KyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyJiYsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRv
cExldmVsRG9jdW1lbnRPcmlnaW4pOwogICAgIH5Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94
eSgpOwogCiAgICAgdm9pZCBjb21wbGV0ZShQZXJtaXNzaW9uSW5mbyk7CiAgICAgCi0gICAgdWlu
dDY0X3QgbV9mcmFtZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX2ZyYW1lSUQ7
CiAgICAgQ29tcGxldGlvbkhhbmRsZXIgbV9jb21wbGV0aW9uSGFuZGxlcjsKICAgICBSZWY8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4+IG1fdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbjsK
ICAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG1fdG9wTGV2ZWxEb2N1bWVudFNlY3Vy
aXR5T3JpZ2luOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGQzNDAz
NzZmZjI5MDdiODcyOTM1NjQ2NDI4OWQ0MzQ5NmQ0MDA5OTEuLmRiNGNkYTExMTYxZDIyMjgyOTg0
ZmVlOWFlYWQ0MGE0ZWVjMWE0OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5j
cHAKQEAgLTI0MCw5ICsyNDAsOSBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5OjpmaW5pc2hHcmFudGluZ1JlcXVlc3QoVXNlck1lZGlhUGVybQogICAgIHByb2Nl
c3NOZXh0VXNlck1lZGlhUmVxdWVzdElmTmVlZGVkKCk7CiB9CiAKLXZvaWQgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlc2V0QWNjZXNzKHVpbnQ2NF90IGZyYW1lSUQp
Cit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXNldEFjY2Vz
cyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKLSAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJ
RVIsIGZyYW1lSUQpOworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgZnJhbWVJRC5sb2dn
aW5nU3RyaW5nKCkpOwogICAgIG1fZ3JhbnRlZFJlcXVlc3RzLnJlbW92ZUFsbE1hdGNoaW5nKFtm
cmFtZUlEXShjb25zdCBhdXRvJiBncmFudGVkUmVxdWVzdCkgewogICAgICAgICByZXR1cm4gZ3Jh
bnRlZFJlcXVlc3QtPm1haW5GcmFtZUlEKCkgPT0gZnJhbWVJRDsKICAgICB9KTsKQEAgLTI1MSw3
ICsyNTEsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpy
ZXNldEFjY2Vzcyh1aW50NjRfdCBmcmFtZUlEKQogICAgIG1faGFzRmlsdGVyZWREZXZpY2VMaXN0
ID0gZmFsc2U7CiB9CiAKLWNvbnN0IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkqIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzZWFyY2hGb3JHcmFudGVkUmVx
dWVzdCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9j
dW1lbnRPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
LCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbykgY29uc3QKK2NvbnN0IFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHkqIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5OjpzZWFyY2hGb3JHcmFudGVkUmVxdWVzdChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
Y29uc3QgU2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBTZWN1
cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBib29s
IG5lZWRzVmlkZW8pIGNvbnN0CiB7CiAgICAgaWYgKG1fcGFnZS5pc01lZGlhU3RyZWFtQ2FwdHVy
ZU11dGVkKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMjgyLDcgKzI4Miw3IEBAIGNv
bnN0IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkqIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5OjpzCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLWJvb2wgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc1JlcXVlc3REZW5pZWQodWlu
dDY0X3QgbWFpbkZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGJv
b2wgbmVlZHNBdWRpbywgYm9vbCBuZWVkc1ZpZGVvLCBib29sIG5lZWRzU2NyZWVuQ2FwdHVyZSkK
K2Jvb2wgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc1JlcXVlc3RE
ZW5pZWQoRnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbiYg
dXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERv
Y3VtZW50T3JpZ2luLCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbywgYm9vbCBuZWVk
c1NjcmVlbkNhcHR1cmUpCiB7CiAgICAgZm9yIChjb25zdCBhdXRvJiBkZW5pZWRSZXF1ZXN0IDog
bV9kZW5pZWRSZXF1ZXN0cykgewogICAgICAgICBpZiAoIWRlbmllZFJlcXVlc3QudXNlck1lZGlh
RG9jdW1lbnRPcmlnaW4tPmlzU2FtZVNjaGVtZUhvc3RQb3J0KHVzZXJNZWRpYURvY3VtZW50T3Jp
Z2luKSkKQEAgLTM0Niw3ICszNDYsNyBAQCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTo6UmVxdWVzdEFjdGlvbiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdAogfQogI2Vu
ZGlmCiAKLXZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVl
c3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2
NF90IGZyYW1lSUQsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
biwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIE1lZGlhU3Ry
ZWFtUmVxdWVzdCYmIHVzZXJSZXF1ZXN0KQordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRf
dCB1c2VyTWVkaWFJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxTZWN1cml0eU9yaWdp
bj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcExl
dmVsRG9jdW1lbnRPcmlnaW4sIE1lZGlhU3RyZWFtUmVxdWVzdCYmIHVzZXJSZXF1ZXN0KQogewog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgaWYgKCFtX3BhZ2UuaGFzUnVubmluZ1Byb2Nl
c3MoKSkKQEAgLTUyMSw3ICs1MjEsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5Ojpwcm9jZXNzVXNlck1lZGlhUGVybWlzc2lvblZhbGlkUmVxdQogICAgIG1f
cGFnZS51aUNsaWVudCgpLmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
KG1fcGFnZSwgKndlYkZyYW1lLCBXVEZNb3ZlKHVzZXJNZWRpYU9yaWdpbiksIFdURk1vdmUodG9w
TGV2ZWxPcmlnaW4pLCAqbV9jdXJyZW50VXNlck1lZGlhUmVxdWVzdCk7CiB9CiAKLXZvaWQgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmdldFVzZXJNZWRpYVBlcm1pc3Np
b25JbmZvKHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFE
b2N1bWVudE9yaWdpbiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmln
aW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUGVybWlzc2lvbkluZm8pPiYmIGhhbmRsZXIpCit2
b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpnZXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uSW5mbyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUmVmPFNlY3VyaXR5T3JpZ2lu
PiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQZXJtaXNzaW9uSW5mbyk+
JiYgaGFuZGxlcikKIHsKICAgICBhdXRvKiB3ZWJGcmFtZSA9IG1fcGFnZS5wcm9jZXNzKCkud2Vi
RnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCF3ZWJGcmFtZSB8fCAhU2VjdXJpdHlPcmlnaW46OmNy
ZWF0ZUZyb21TdHJpbmcobV9wYWdlLnBhZ2VMb2FkU3RhdGUoKS5hY3RpdmVVUkwoKSktPmlzU2Ft
ZVNjaGVtZUhvc3RQb3J0KHRvcExldmVsRG9jdW1lbnRPcmlnaW4uZ2V0KCkpKSB7CkBAIC01NDUs
NyArNTQ1LDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
Z2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8odWludDY0X3QKICAgICBtX3BhZ2UudWlDbGllbnQo
KS5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4obV9wYWdlLCAqd2ViRnJhbWUsIHVz
ZXJNZWRpYU9yaWdpbi5nZXQoKSwgdG9wTGV2ZWxPcmlnaW4uZ2V0KCksIHJlcXVlc3QuZ2V0KCkp
OwogfQogCi1ib29sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp3YXNH
cmFudGVkVmlkZW9PckF1ZGlvQWNjZXNzKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5
T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRv
cExldmVsRG9jdW1lbnRPcmlnaW4pCitib29sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5Ojp3YXNHcmFudGVkVmlkZW9PckF1ZGlvQWNjZXNzKEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIGNv
bnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKQogewogICAgIGZvciAo
Y29uc3QgYXV0byYgZ3JhbnRlZFJlcXVlc3QgOiBtX2dyYW50ZWRSZXF1ZXN0cykgewogICAgICAg
ICBpZiAoZ3JhbnRlZFJlcXVlc3QtPnJlcXVpcmVzRGlzcGxheUNhcHR1cmUoKSkKQEAgLTYwNCw3
ICs2MDQsNyBAQCBWZWN0b3I8Q2FwdHVyZURldmljZT4gVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHk6OmNvbXB1dGVGaWx0ZXJlZERldgogfQogI2VuZGlmCiAKLXZvaWQgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNl
c0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8U2Vj
dXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxTZWN1cml0eU9yaWdp
bj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKQordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3Qg
dXNlck1lZGlhSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8U2VjdXJpdHlPcmlnaW4+
JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luKQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgQUxXQVlT
X0xPRyhMT0dJREVOVElGSUVSLCB1c2VyTWVkaWFJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuaAppbmRleCBmNTA1ZTI4MGM0NDI5MGE4MDNkYmRiNjhjOThlZWE2MzBiMWM5YmI2Li5i
YmJhNDRhYzgyYmQyODA3NWJkZGZiYjQ1NDQ0Y2E1NjlhY2NmYjk3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmgKQEAgLTYwLDE1ICs2MCwxNSBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IGludmFsaWRhdGVQZW5kaW5nUmVxdWVzdHMoKTsKIAotICAgIHZvaWQgcmVxdWVzdFVzZXJNZWRp
YVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJ
RCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmICB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
biwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4s
IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKKyAgICB2b2lkIHJlcXVlc3RVc2VyTWVk
aWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmICB1c2VyTWVkaWFEb2N1
bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1l
bnRPcmlnaW4sIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKIAotICAgIHZvaWQgcmVz
ZXRBY2Nlc3ModWludDY0X3QgbWFpbkZyYW1lSUQpOworICAgIHZvaWQgcmVzZXRBY2Nlc3MoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlEKTsKICAgICB2b2lkIHZpZXdJc0JlY29t
aW5nVmlzaWJsZSgpOwogCiAgICAgdm9pZCBncmFudFJlcXVlc3QoVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eSYpOwogICAgIHZvaWQgZGVueVJlcXVlc3QoVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eSYsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRp
YUFjY2Vzc0RlbmlhbFJlYXNvbiwgY29uc3QgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludCA9IHsg
fSk7CiAKLSAgICB2b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVz
ZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+
JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4m
JiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKTsKKyAgICB2b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNl
c0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwg
UmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pOwog
CiAgICAgdm9pZCBzdG9wQ2FwdHVyZSgpOwogICAgIHZvaWQgc2NoZWR1bGVOZXh0UmVqZWN0aW9u
KCk7CkBAIC05NSwxOSArOTUsMTkgQEAgcHJpdmF0ZToKICAgICBXVEZMb2dDaGFubmVsJiBsb2dD
aGFubmVsKCkgY29uc3QgZmluYWw7CiAjZW5kaWYKIAotICAgIFJlZjxVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5PiBjcmVhdGVQZXJtaXNzaW9uUmVxdWVzdCh1aW50NjRfdCB1c2VyTWVk
aWFJRCwgdWludDY0X3QgbWFpbkZyYW1lSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJik7Cisg
ICAgUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZVBlcm1pc3Npb25S
ZXF1ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFp
bkZyYW1lSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiB2
aWRlb0RldmljZXMsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKICNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQogICAgIHZvaWQgZmluaXNoR3JhbnRpbmdSZXF1ZXN0KFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkmKTsKIAotICAgIGNvbnN0IFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkqIHNlYXJjaEZvckdyYW50ZWRSZXF1ZXN0KHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGJvb2wg
bmVlZHNBdWRpbywgYm9vbCBuZWVkc1ZpZGVvKSBjb25zdDsKLSAgICBib29sIHdhc1JlcXVlc3RE
ZW5pZWQodWludDY0X3QgbWFpbkZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
JiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4m
IHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGJvb2wgbmVlZHNBdWRpbywgYm9vbCBuZWVkc1ZpZGVv
LCBib29sIG5lZWRzU2NyZWVuQ2FwdHVyZSk7CisgICAgY29uc3QgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eSogc2VhcmNoRm9yR3JhbnRlZFJlcXVlc3QoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luLCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbykgY29uc3Q7CisgICAgYm9vbCB3
YXNSZXF1ZXN0RGVuaWVkKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBu
ZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8sIGJvb2wgbmVlZHNTY3JlZW5DYXB0dXJlKTsKIAog
ICAgIHVzaW5nIFBlcm1pc3Npb25JbmZvID0gVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6
OlBlcm1pc3Npb25JbmZvOwotICAgIHZvaWQgZ2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8odWlu
dDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQZXJtaXNzaW9uSW5mbyk+JiYpOwor
ICAgIHZvaWQgZ2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8oV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmln
aW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBlcm1pc3Npb25JbmZvKT4mJik7CiAKICAgICBSZXF1
ZXN0QWN0aW9uIGdldFJlcXVlc3RBY3Rpb24oY29uc3QgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eSYpOwogCi0gICAgYm9vbCB3YXNHcmFudGVkVmlkZW9PckF1ZGlvQWNjZXNzKHVpbnQ2
NF90LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmln
aW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
KTsKKyAgICBib29sIHdhc0dyYW50ZWRWaWRlb09yQXVkaW9BY2Nlc3MoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1l
bnRPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50
T3JpZ2luKTsKIAogICAgIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiBjb21wdXRlRmls
dGVyZWREZXZpY2VMaXN0KGJvb2wgcmV2ZWFsSWRzQW5kTGFiZWxzLCBjb25zdCBTdHJpbmcmIGRl
dmljZUlESGFzaFNhbHQpOwogCkBAIC0xMzQsNyArMTM0LDcgQEAgcHJpdmF0ZToKICAgICBWZWN0
b3I8UmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+PiBtX2dyYW50ZWRSZXF1ZXN0
czsKIAogICAgIHN0cnVjdCBEZW5pZWRSZXF1ZXN0IHsKLSAgICAgICAgdWludDY0X3QgbWFpbkZy
YW1lSUQ7CisgICAgICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRDsKICAg
ICAgICAgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
bjsKICAgICAgICAgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiB0b3BMZXZlbERvY3VtZW50
T3JpZ2luOwogICAgICAgICBib29sIGlzQXVkaW9EZW5pZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3Bw
CmluZGV4IDRmMDI4NDA2YmE0YTc3NTE2NDcwNjQ3NjcxZjNhOTUwODhhZmY0YWIuLjk2NmZkYWQ1
Y2YwZGQwOWI5OGZmNTU2MTAzZTIwNmFhMTE3NWM5NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3Bw
CkBAIC0zMCw3ICszMCw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCi1Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
JiBtYW5hZ2VyLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgbWFpbkZyYW1lSUQsIHVp
bnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFE
b2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9j
dW1lbnRPcmlnaW4sIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNl
cywgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3Jl
OjpNZWRpYVN0cmVhbVJlcXVlc3QmJiByZXF1ZXN0KQorVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgdWludDY0X3QgdXNlck1lZGlhSUQsIEZy
YW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3Qm
JiByZXF1ZXN0KQogICAgIDogbV9tYW5hZ2VyKCZtYW5hZ2VyKQogICAgICwgbV91c2VyTWVkaWFJ
RCh1c2VyTWVkaWFJRCkKICAgICAsIG1fbWFpbkZyYW1lSUQobWFpbkZyYW1lSUQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5LmgKaW5kZXggNTQ0ZjYxMTZlZGI2NjJhOGZhOTYzMWJjM2FmOGI3MGRlZGM1ODI3Zi4u
YmE0ZTBhMzQ3MTYwMzFiMThmMDg1Y2ZkMDFhNzM1MTc3OGEwMzA1OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuaApAQCAtMjEsNiArMjEsNyBAQAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9DYXB0dXJlRGV2aWNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50
aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU3RyZWFtUmVxdWVzdC5oPgogI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTM1
LDcgKzM2LDcgQEAgY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk7
CiAKIGNsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkgOiBwdWJsaWMgQVBJOjpP
YmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdD4g
ewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eT4gY3JlYXRlKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiBtYW5hZ2Vy
LCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgbWFpbkZyYW1lSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9y
aWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmln
aW4sIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9y
PFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3JlOjpNZWRpYVN0
cmVhbVJlcXVlc3QmJiByZXF1ZXN0KQorICAgIHN0YXRpYyBSZWY8VXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eT4gY3JlYXRlKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5JiBtYW5hZ2VyLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIG1haW5GcmFtZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUmVmPFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVjdG9yPFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6Q2Fw
dHVyZURldmljZT4mJiB2aWRlb0RldmljZXMsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYm
IHJlcXVlc3QpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5KG1hbmFnZXIsIHVzZXJNZWRpYUlELCBtYWluRnJhbWVJRCwg
ZnJhbWVJRCwgV1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiksIFdURk1vdmUodG9wTGV2
ZWxEb2N1bWVudE9yaWdpbiksIFdURk1vdmUoYXVkaW9EZXZpY2VzKSwgV1RGTW92ZSh2aWRlb0Rl
dmljZXMpLCBXVEZNb3ZlKHJlcXVlc3QpKSk7CiAgICAgfQpAQCAtNjUsOCArNjYsOCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRIYXNQZXJzaXN0ZW50QWNjZXNzKCkgeyBtX2hhc1BlcnNpc3RlbnRB
Y2Nlc3MgPSB0cnVlOyB9CiAKICAgICB1aW50NjRfdCB1c2VyTWVkaWFJRCgpIGNvbnN0IHsgcmV0
dXJuIG1fdXNlck1lZGlhSUQ7IH0KLSAgICB1aW50NjRfdCBtYWluRnJhbWVJRCgpIGNvbnN0IHsg
cmV0dXJuIG1fbWFpbkZyYW1lSUQ7IH0KLSAgICB1aW50NjRfdCBmcmFtZUlEKCkgY29uc3QgeyBy
ZXR1cm4gbV9mcmFtZUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1haW5GcmFt
ZUlEKCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJhbWVJRDsgfQorICAgIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9CiAKICAgICBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkg
eyByZXR1cm4gbV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4uZ2V0KCk7IH0KICAgICBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbigp
IHsgcmV0dXJuIG1fdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbi5nZXQoKTsgfQpAQCAt
ODQsMTIgKzg1LDEyIEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIHZpZGVv
RGV2aWNlKCkgY29uc3QgeyByZXR1cm4gbV9lbGlnaWJsZVZpZGVvRGV2aWNlcy5pc0VtcHR5KCkg
PyBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIHsgfSA6IG1fZWxpZ2libGVWaWRlb0RldmljZXNbMF07
IH0KIAogcHJpdmF0ZToKLSAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiwgdWludDY0X3QgdXNlck1lZGlhSUQs
IHVpbnQ2NF90IG1haW5GcmFtZUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0b3I8V2ViQ29yZTo6Q2Fw
dHVyZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
PiYmIHZpZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYpOworICAgIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkmLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIG1haW5GcmFtZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2U+JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJik7CiAKICAg
ICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSogbV9tYW5hZ2VyOwogICAg
IHVpbnQ2NF90IG1fdXNlck1lZGlhSUQ7Ci0gICAgdWludDY0X3QgbV9tYWluRnJhbWVJRDsKLSAg
ICB1aW50NjRfdCBtX2ZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fbWFp
bkZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fZnJhbWVJRDsKICAgICBS
ZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG1fdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9y
aWdpbjsKICAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG1fdG9wTGV2ZWxEb2N1bWVu
dFNlY3VyaXR5T3JpZ2luOwogICAgIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiBtX2Vs
aWdpYmxlVmlkZW9EZXZpY2VzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViRnJhbWVQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5
LmNwcAppbmRleCAwNzE0YjQxZWI2Nzc2OGQ5ZTBjOWQ0MTJlMjBlODk4ZjgxZTczZGQ4Li5lZTMz
NzEwODE3MDdlYTM2ZDM1MGVmZTJjYzVhMDNjMWQxOTFkYTRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcApAQCAtNDUsOSArNDUsOCBAQCB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAogY2xhc3MgV2ViUGFnZVByb3h5OwogCi1XZWJGcmFtZVByb3h5OjpXZWJG
cmFtZVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgdWludDY0X3QgZnJhbWVJRCkKK1dlYkZyYW1l
UHJveHk6OldlYkZyYW1lUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCkKICAgICA6IG1fcGFnZShtYWtlV2Vha1B0cihwYWdlKSkKLSAgICAsIG1faXNGcmFt
ZVNldChmYWxzZSkKICAgICAsIG1fZnJhbWVJRChmcmFtZUlEKQogewogICAgIFdlYlByb2Nlc3NQ
b29sOjpzdGF0aXN0aWNzKCkud2tGcmFtZUNvdW50Kys7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJGcmFtZVByb3h5LmgKaW5kZXggNDQ2MDBmMWMyNzI5MGU1ZTRjMTY4ZWE4Y2QzY2MzOTYzNmZk
YmJlMS4uY2NkYTYzNzgwMDJkNTVhYjE1N2E2ZjE1MzdjNWVmNzlkYjQ1YzI1MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaApAQCAtNTksMTQgKzU5LDE0IEBAIHN0cnVj
dCBXZWJzaXRlUG9saWNpZXNEYXRhOwogCiBjbGFzcyBXZWJGcmFtZVByb3h5IDogcHVibGljIEFQ
STo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6RnJhbWU+IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmPFdlYkZyYW1lUHJveHk+IGNyZWF0ZShXZWJQYWdlUHJveHkmIHBhZ2UsIHVpbnQ2
NF90IGZyYW1lSUQpCisgICAgc3RhdGljIFJlZjxXZWJGcmFtZVByb3h5PiBjcmVhdGUoV2ViUGFn
ZVByb3h5JiBwYWdlLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKICAgICB7CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkZyYW1lUHJveHkocGFnZSwgZnJhbWVJRCkp
OwogICAgIH0KIAogICAgIHZpcnR1YWwgfldlYkZyYW1lUHJveHkoKTsKIAotICAgIHVpbnQ2NF90
IGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQogICAgIFdl
YlBhZ2VQcm94eSogcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZS5nZXQoKTsgfQogCiAgICAg
dm9pZCB3ZWJQcm9jZXNzV2lsbFNodXREb3duKCk7CkBAIC0xMzAsNyArMTMwLDcgQEAgcHVibGlj
OgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgV2ViRnJhbWVQcm94eShXZWJQYWdlUHJveHkmLCB1
aW50NjRfdCBmcmFtZUlEKTsKKyAgICBXZWJGcmFtZVByb3h5KFdlYlBhZ2VQcm94eSYsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcik7CiAKICAgICBXZWFrUHRyPFdlYlBhZ2VQcm94eT4gbV9wYWdl
OwogCkBAIC0xMzgsMTEgKzEzOCwxMSBAQCBwcml2YXRlOgogCiAgICAgU3RyaW5nIG1fTUlNRVR5
cGU7CiAgICAgU3RyaW5nIG1fdGl0bGU7Ci0gICAgYm9vbCBtX2lzRnJhbWVTZXQ7CisgICAgYm9v
bCBtX2lzRnJhbWVTZXQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9jb250YWluc1BsdWdpbkRvY3Vt
ZW50IHsgZmFsc2UgfTsKICAgICBSZWZQdHI8V2ViQ2VydGlmaWNhdGVJbmZvPiBtX2NlcnRpZmlj
YXRlSW5mbzsKICAgICBSZWZQdHI8V2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5PiBtX2FjdGl2
ZUxpc3RlbmVyOwotICAgIHVpbnQ2NF90IG1fZnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgbV9mcmFtZUlEOwogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKICAgICBX
ZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIgbV9jb250ZW50RmlsdGVyVW5ibG9j
a0hhbmRsZXI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CmluZGV4IDMyNjMxYzQ1MGViMjZkNzU0NTQ2OGI3MjZjMTVhNDQ5ODVjOTk4YTkuLmQ1NTU5MzFm
ZjcwN2EyOGY3NzYzOWU3YjNiMzU2NDM5OGViOWQ5ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNzQzLDcgKzc0Myw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpsYXVuY2hQcm9jZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZWdpc3RyYWJsZURvbWFp
bikKICAgICBmaW5pc2hBdHRhY2hpbmdUb1dlYlByb2Nlc3MoSXNQcm9jZXNzU3dhcDo6Tm8pOwog
fQogCi1ib29sIFdlYlBhZ2VQcm94eTo6c3VzcGVuZEN1cnJlbnRQYWdlSWZQb3NzaWJsZShBUEk6
Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIE9wdGlvbmFsPHVpbnQ2NF90PiBtYWluRnJhbWVJRCwg
UHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50
LCBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01v
ZGUgc2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdN
b2RlKQorYm9vbCBXZWJQYWdlUHJveHk6OnN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUoQVBJ
OjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IG1haW5G
cmFtZUlELCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVk
QnlDbGllbnQsIFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBv
c2l0aW5nTW9kZSBzaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ01vZGUpCiB7CiAgICAgbV9sYXN0U3VzcGVuZGVkUGFnZSA9IG51bGxwdHI7CiAKQEAg
LTI5MzEsMTIgKzI5MzEsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkUG9saWN5RGVj
aXNpb24oUG9saWN5QWN0aW9uIGFjdGlvbiwgQVBJOjpOYXZpZ2F0aW9uKgogICAgIHNlbmRlci0+
c2VuZChhY3Rpb24sIG5hdmlnYXRpb24gPyBuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSA6IDAs
IGRvd25sb2FkSUQsIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7CiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5Ojpjb21taXRQcm92aXNpb25hbFBhZ2UodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9t
Q29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpD
ZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdpbkRvY3Vt
ZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2Vj
dXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6
OmNvbW1pdFByb3Zpc2lvbmFsUGFnZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9t
Q29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpD
ZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdpbkRvY3Vt
ZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2Vj
dXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIEFTU0VSVChtX3By
b3Zpc2lvbmFsUGFnZSk7CiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiY29t
bWl0UHJvdmlzaW9uYWxQYWdlOiBwcmV2aW91c1BJRCA9ICVpLCBuZXdQSUQgPSAlaSwgcGFnZUlE
ID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcHJvdmlzaW9u
YWxQYWdlLT5wcm9jZXNzKCkucHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQo
KSk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gbWFpbkZyYW1lSURJblByZXZpb3VzUHJvY2Vz
cyA9IG1fbWFpbkZyYW1lID8gbWFrZU9wdGlvbmFsKG1fbWFpbkZyYW1lLT5mcmFtZUlEKCkpIDog
V1RGOjpudWxsb3B0OworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gbWFpbkZyYW1lSURJ
blByZXZpb3VzUHJvY2VzcyA9IG1fbWFpbkZyYW1lID8gbWFrZU9wdGlvbmFsKG1fbWFpbkZyYW1l
LT5mcmFtZUlEKCkpIDogV1RGOjpudWxsb3B0OwogCiAgICAgQVNTRVJUKG1fcHJvY2Vzcy5wdHIo
KSAhPSAmbV9wcm92aXNpb25hbFBhZ2UtPnByb2Nlc3MoKSk7CiAKQEAgLTM2NzIsNyArMzY3Miw3
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3Js
ZChjb25zdCBTdHJpbmcmIHNjcmlwdCwgYm9vCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpSdW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3JsZChzY3JpcHQsIGZv
cmNlVXNlckdlc3R1cmUsIHdvcmxkTmFtZSwgY2FsbGJhY2tJRCksIG1fcGFnZUlEKTsKIH0KIAot
dm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRJbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIFdURjo6RnVuY3Rp
b248dm9pZChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSosIGJvb2wgaGFkRXhjZXB0aW9uLCBj
b25zdCBFeGNlcHRpb25EZXRhaWxzJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tG
dW5jdGlvbikKK3ZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0SW5GcmFtZShGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2Vz
dHVyZSwgV1RGOjpGdW5jdGlvbjx2b2lkKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiwgYm9v
bCBoYWRFeGNlcHRpb24sIGNvbnN0IEV4Y2VwdGlvbkRldGFpbHMmLCBDYWxsYmFja0Jhc2U6OkVy
cm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQogewogICAgIEFTU0VSVChtYWluRnJhbWUoKS0+ZnJh
bWVJRCgpICE9IGZyYW1lSUQpOwogICAgIGF1dG8gY2FsbGJhY2tJRCA9IG1fY2FsbGJhY2tzLnB1
dChXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBtX3Byb2Nlc3MtPnRocm90dGxlcigpLmJhY2tn
cm91bmRBY3Rpdml0eVRva2VuKCkpOwpAQCAtMzg3OCw3ICszODc4LDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKCkKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OlByZWZlcmVuY2VzRGlkQ2hhbmdlKHByZWZlcmVuY2VzU3RvcmUoKSksIG1f
cGFnZUlELCBwcmludGluZ1NlbmRPcHRpb25zKG1faXNQZXJmb3JtaW5nRE9NUHJpbnRPcGVyYXRp
b24pKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRf
dCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZShGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICAvLyBUaGUgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvblN5bmMgSVBDIGlzIHN5bmNocm9ub3VzIGFuZCBtYXkgdGhlcmVmb3JlIGdldCBwcm9j
ZXNzZWQgYmVmb3JlIHRoZSBEaWRDcmVhdGVNYWluRnJhbWUgb25lLgogICAgIC8vIFdoZW4gdGhp
cyBoYXBwZW5zLCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYygpIGNhbGxzIGRp
ZENyZWF0ZU1haW5GcmFtZSgpIGFuZCB3ZSBuZWVkIHRvIGlnbm9yZSB0aGUgRGlkQ3JlYXRlTWFp
bkZyYW1lCkBAIC0zODk3LDcgKzM4OTcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRl
TWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCiAgICAgbV9wcm9jZXNzLT5mcmFtZUNyZWF0ZWQo
ZnJhbWVJRCwgKm1fbWFpbkZyYW1lKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0
ZVN1YmZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRl
U3ViZnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgUGFnZUNsaWVudFByb3Rl
Y3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtMzkxNyw3ICszOTE3LDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0ZVN1YmZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCiAgICAg
bV9wcm9jZXNzLT5mcmFtZUNyZWF0ZWQoZnJhbWVJRCwgc3ViRnJhbWUuZ2V0KCkpOwogfQogCi12
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRlV2luZG93KHVpbnQ2NF90IGZyYW1lSUQsIEdsb2Jh
bFdpbmRvd0lkZW50aWZpZXImJiB3aW5kb3dJZGVudGlmaWVyKQordm9pZCBXZWJQYWdlUHJveHk6
OmRpZENyZWF0ZVdpbmRvdyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgR2xvYmFsV2luZG93SWRl
bnRpZmllciYmIHdpbmRvd0lkZW50aWZpZXIpCiB7CiB9CiAKQEAgLTM5ODEsMTIgKzM5ODEsMTIg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZERlc3Ryb3lOYXZpZ2F0aW9uKHVpbnQ2NF90IG5hdmln
YXRpb25JRCkKICAgICBtX25hdmlnYXRpb25TdGF0ZS0+ZGlkRGVzdHJveU5hdmlnYXRpb24obmF2
aWdhdGlvbklEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwm
JiB1cmwsIFVSTCYmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwsIFVSTCYm
IHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgZGlkU3Rh
cnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFt
ZUlELCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUodXJsKSwgV1RGTW92ZSh1bnJlYWNoYWJsZVVSTCks
IHVzZXJEYXRhKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCB1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCwgVVJMJiYgdW5yZWFj
aGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgVVJMJiYgdXJsLCBVUkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7
CiAKQEAgLTQwMDUsOCArNDAwNSw4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYKICAgICBpZiAo
ZnJhbWUtPmlzTWFpbkZyYW1lKCkgJiYgbmF2aWdhdGlvbklEKQogICAgICAgICBuYXZpZ2F0aW9u
ID0gbmF2aWdhdGlvblN0YXRlKCkubmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQpOwogCi0gICAgTE9H
KExvYWRpbmcsICJXZWJQYWdlUHJveHkgJSIgUFJJdTY0ICIgaW4gcHJvY2VzcyBwaWQgJWkgZGlk
U3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSB0byBmcmFtZUlEICUiIFBSSXU2NCAiLCBuYXZp
Z2F0aW9uSUQgJSIgUFJJdTY0ICIsIHVybCAlcyIsIG1fcGFnZUlELnRvVUludDY0KCksIHByb2Nl
c3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgdXJsLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywg
ImRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZp
ZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgTE9HKExvYWRpbmcsICJX
ZWJQYWdlUHJveHkgJSIgUFJJdTY0ICIgaW4gcHJvY2VzcyBwaWQgJWkgZGlkU3RhcnRQcm92aXNp
b25hbExvYWRGb3JGcmFtZSB0byBmcmFtZUlEICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9uSUQgJSIg
UFJJdTY0ICIsIHVybCAlcyIsIG1fcGFnZUlELnRvVUludDY0KCksIHByb2Nlc3MtPnByb2Nlc3NJ
ZGVudGlmaWVyKCksIGZyYW1lSUQudG9VSW50NjQoKSwgbmF2aWdhdGlvbklELCB1cmwuc3RyaW5n
KCkudXRmOCgpLmRhdGEoKSk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAi
ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmll
cigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCkpOwogCiAgICAgYXV0
byB0cmFuc2FjdGlvbiA9IG1fcGFnZUxvYWRTdGF0ZS50cmFuc2FjdGlvbigpOwogCkBAIC00MDMx
LDcgKzQwMzEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRG
b3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmCiAgICAgICAgIG1fbmF2aWdhdGlv
bkNsaWVudC0+ZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb24oKnRoaXMsIG5hdmlnYXRpb24u
Z2V0KCksIHByb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0
KCkpLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEV4cGxpY2l0T3BlbkZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIFVSTCYmIHVybCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRF
eHBsaWNpdE9wZW5Gb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgVVJMJiYgdXJsKQog
ewogICAgIGF1dG8qIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBN
RVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwpAQCAtNDA1MCwxNSArNDA1MCwxNSBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRXhwbGljaXRPcGVuRm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgVVJMJiYgdXJsKQogICAgIG1fcGFnZUxvYWRTdGF0ZS5jb21taXRDaGFuZ2VzKCk7CiB9CiAK
LXZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25h
bExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFJl
c291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQg
V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRG
b3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAg
ICAgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFy
ZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKHJl
cXVlc3QpLCB1c2VyRGF0YSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2Vy
dmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQor
dm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgUmVzb3VyY2VSZXF1ZXN0
JiYgcmVxdWVzdCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewotICAgIExPRyhMb2FkaW5n
LCAiV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExv
YWRGb3JGcmFtZSB0byBmcmFtZUlEICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9uSUQgJSIgUFJJdTY0
ICIsIHVybCAlcyIsIGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgcmVxdWVzdC51cmwoKS5zdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJk
aWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZTogd2ViUElE
ID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBwcm9jZXNz
LT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAg
ICBMT0coTG9hZGluZywgIldlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9y
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUgdG8gZnJhbWVJRCAlIiBQUkl1NjQgIiwgbmF2aWdhdGlv
bklEICUiIFBSSXU2NCAiLCB1cmwgJXMiLCBmcmFtZUlELnRvVUludDY0KCksIG5hdmlnYXRpb25J
RCwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNp
b25hbExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0LCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50
b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCkpOwogCiAgICAgUGFnZUNsaWVudFByb3RlY3Rv
ciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDA4NSw5ICs0MDg1LDkgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lU2hhcmVkKFJlZjwKICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRSZWNlaXZl
U2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbE5hdmlnYXRpb24oKnRoaXMsIG5hdmlnYXRpb24u
Z2V0KCksIHByb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0
KCkpLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OndpbGxQZXJmb3JtQ2xpZW50UmVk
aXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHVybCwgZG91Ymxl
IGRlbGF5LCBXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0KQordm9pZCBXZWJQYWdlUHJveHk6
OndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgY29uc3QgU3RyaW5nJiB1cmwsIGRvdWJsZSBkZWxheSwgV2ViQ29yZTo6TG9ja0JhY2tGb3J3
YXJkTGlzdCkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJ3aWxsUGVy
Zm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigp
LCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKExvYWRpbmcsICJ3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWU6IHdlYlBJRCA9
ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNz
LT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUlu
dDY0KCkpOwogCiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgp
KTsKIApAQCAtNDA5OCw5ICs0MDk4LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OndpbGxQZXJmb3Jt
Q2xpZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHIKICAgICAg
ICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT53aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KCp0aGlzLCB1
cmwsIGRlbGF5KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZENhbmNlbENsaWVudFJlZGly
ZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDYW5j
ZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewotICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZENhbmNlbENsaWVudFJlZGlyZWN0
Rm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2
NCgpLCBmcmFtZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRD
YW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIo
KSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAgIFBhZ2VD
bGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQxMTEsMTIgKzQx
MTEsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJh
bWUodWludDY0X3QgZnJhbWVJRCkKICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRDYW5j
ZWxDbGllbnRSZWRpcmVjdCgqdGhpcyk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFu
Z2VQcm92aXNpb25hbFVSTEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgVVJMJiYgdXJsKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lv
bmFsVVJMRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgVVJMJiYgdXJsKQogewogICAgIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVT
aGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgbmF2aWdhdGlvbklELCBXVEZNb3Zl
KHVybCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxG
b3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90IGZy
YW1lSUQsIHVpbnQ2NF90LCBVUkwmJiB1cmwpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdl
UHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nl
c3MsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCwgVVJMJiYgdXJsKQogewogICAg
IFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQxMzUs
NyArNDEzNSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZv
ckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYKICAgICBmcmFtZS0+ZGlkUmVjZWl2
ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKHVybCk7CiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFJlc291cmNl
RXJyb3ImIGVycm9yLCBXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250aW51ZUxvYWRpbmcsIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5
T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBj
b25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwg
V2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYg
dXNlckRhdGEpCiB7CiAgICAgaWYgKG1fcHJvdmlzaW9uYWxQYWdlICYmIG1fcHJvdmlzaW9uYWxQ
YWdlLT5uYXZpZ2F0aW9uSUQoKSA9PSBuYXZpZ2F0aW9uSUQpIHsKICAgICAgICAgLy8gVGhlIGxv
YWQgZGlkIG5vdCBmYWlsLCBpdCBpcyBtZXJlbHkgaGFwcGVuaW5nIGluIGEgbmV3IHByb3Zpc2lv
bmFsIHByb2Nlc3MuCkBAIC00MTQ1LDEwICs0MTQ1LDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2Vj
dXJpCiAgICAgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5j
b3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIG5hdmlnYXRpb25JRCwgcHJv
dmlzaW9uYWxVUkwsIGVycm9yLCB3aWxsQ29udGludWVMb2FkaW5nLCB1c2VyRGF0YSk7CiB9CiAK
LXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQo
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBT
ZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgUmVzb3VyY2VFcnJvciYg
ZXJyb3IsIFdpbGxDb250aW51ZUxvYWRpbmcgd2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNl
ckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExv
YWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlP
cmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVS
TCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFdpbGxDb250aW51ZUxvYWRpbmcgd2lsbENv
bnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIExPRyhMb2Fk
aW5nLCAiKExvYWRpbmcpIFdlYlBhZ2VQcm94eSAlIiBQUkl1NjQgIiBpbiB3ZWIgcHJvY2VzcyBw
aWQgJWkgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lIHRvIHByb3Zpc2lvbmFsVVJMICVz
IiwgbV9wYWdlSUQudG9VSW50NjQoKSwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgcHJv
dmlzaW9uYWxVUkwudXRmOCgpLmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQ
cm9jZXNzLCAiZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgZG9tYWluID0gJXMsIGNv
ZGUgPSAlZCIsIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0
KCksIGZyYW1lSUQsIGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCksIGVycm9yLmVycm9yQ29k
ZSgpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3MsICJkaWRGYWlsUHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCBkb21haW4gPSAlcywgY29kZSA9ICVkIiwgcHJvY2Vzcy0+cHJv
Y2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgp
LCBlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJvci5lcnJvckNvZGUoKSk7CiAKICAg
ICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00MjI0
LDExICs0MjI0LDExIEBAIHN0YXRpYyBPcHRpb25TZXQ8Q3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFU
cmFuc2Zlcjo6RmxhZz4gY2hlY2tJZk5hdmlnYXRpb25Db250YWluCiB9CiAjZW5kaWYKIAotdm9p
ZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVI
YXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IG9wYXF1ZUZyYW1lTG9hZFR5cGUsIGNv
bnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBib29sIGNvbnRh
aW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPEhhc0luc2VjdXJlQ29udGVudD4gaGFzSW5zZWN1
cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkQ29tbWl0TG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21D
b250ZW50UHJvdmlkZXIsIHVpbnQzMl90IG9wYXF1ZUZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNv
cmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBib29sIGNvbnRhaW5zUGx1Z2lu
RG9jdW1lbnQsIE9wdGlvbmFsPEhhc0luc2VjdXJlQ29udGVudD4gaGFzSW5zZWN1cmVDb250ZW50
LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgTE9HKExvYWRpbmcsICIoTG9hZGlu
ZykgV2ViUGFnZVByb3h5ICUiIFBSSXU2NCAiIGRpZENvbW1pdExvYWRGb3JGcmFtZSBpbiBuYXZp
Z2F0aW9uICUiIFBSSXU2NCwgbV9wYWdlSUQudG9VSW50NjQoKSwgbmF2aWdhdGlvbklEKTsKICAg
ICBMT0coQmFja0ZvcndhcmQsICIoQmFjay9Gb3J3YXJkKSBBZnRlciBsb2FkIGNvbW1pdCwgYmFj
ay9mb3J3YXJkIGxpc3QgaXMgbm93OiVzIiwgbV9iYWNrRm9yd2FyZExpc3QtPmxvZ2dpbmdTdHJp
bmcoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkQ29tbWl0TG9h
ZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAl
IiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50
NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlk
Q29tbWl0TG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZy
YW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdl
SUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAgIFBhZ2VDbGllbnRQcm90
ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQzMzgsOSArNDMzOCw5IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgbmF2aWdhdGlvbklECiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6
OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKLSAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JG
cmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCks
IGZyYW1lSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZEZpbmlz
aERvY3VtZW50TG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIs
IGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9w
YWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAgIFBhZ2VDbGllbnRQ
cm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQzNjEsMTAgKzQzNjEsMTAg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmkKICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5k
aWRGaW5pc2hEb2N1bWVudExvYWQoKnRoaXMsIG5hdmlnYXRpb24uZ2V0KCksIG1fcHJvY2Vzcy0+
dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOwogfQog
Ci12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9p
ZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7
CiAgICAgTE9HKExvYWRpbmcsICJXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRGb3JGcmFtZSAt
IFdlYlBhZ2VQcm94eSAlcCB3aXRoIG5hdmlnYXRpb25JRCAlIiBQUkl1NjQgIiBkaWRGaW5pc2hM
b2FkIiwgdGhpcywgbmF2aWdhdGlvbklEKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExv
YWRpbmcsICJkaWRGaW5pc2hMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmll
cigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKExvYWRpbmcsICJkaWRGaW5pc2hMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNz
SWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCkpOwog
CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAt
NDQwNyw5ICs0NDA3LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQKICAgICBtX2lzTG9hZGlu
Z0FsdGVybmF0ZUhUTUxTdHJpbmdGb3JGYWlsaW5nUHJvdmlzaW9uYWxMb2FkID0gZmFsc2U7CiB9
CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZv
ckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNv
bnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7Ci0g
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkRmFpbExvYWRGb3JGcmFtZTog
d2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IGRvbWFpbiA9ICVzLCBjb2RlID0gJWQiLCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCks
IG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQsIGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRh
KCksIGVycm9yLmVycm9yQ29kZSgpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRp
bmcsICJkaWRGYWlsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgZG9tYWluID0gJXMsIGNvZGUgPSAlZCIsIG1fcHJv
Y2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50
b1VJbnQ2NCgpLCBlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJvci5lcnJvckNvZGUo
KSk7CiAKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwog
CkBAIC00NDQ5LDkgKzQ0NDksOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbExvYWRGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsCiAgICAgfQogfQog
Ci12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMyX3Qgb3BhcXVlU2Ft
ZURvY3VtZW50TmF2aWdhdGlvblR5cGUsIFVSTCYmIHVybCwgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFt
ZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50MzJf
dCBvcGFxdWVTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgVVJMJiYgdXJsLCBjb25zdCBVc2Vy
RGF0YSYgdXNlckRhdGEpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAi
ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50
aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lOiB3
ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1f
cHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJ
RC50b1VJbnQ2NCgpKTsKIAogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VD
bGllbnQoKSk7CiAKQEAgLTQ0ODgsNyArNDQ4OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRT
YW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QK
ICAgICAgICAgcGFnZUNsaWVudCgpLmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJh
bWUobmF2aWdhdGlvblR5cGUpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlTWFp
bkRvY3VtZW50KHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdl
TWFpbkRvY3VtZW50KEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCiAgICAgaWYgKG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKQpA
QCAtNDUwNyw3ICs0NTA3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnZpZXdJc0JlY29taW5nVmlz
aWJsZSgpCiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVUaXRsZUZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFVzZXJE
YXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFt
ZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgVXNl
ckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBh
Z2VDbGllbnQoKSk7CiAKQEAgLTQ1MjksMTEgKzQ1MjksMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYg
dGl0bGUKICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmlyc3RMYXlvdXRGb3JG
cmFtZSh1aW50NjRfdCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJv
eHk6OmRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyLCBjb25zdCBVc2VyRGF0
YSYgdXNlckRhdGEpCiB7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdFZpc3VhbGx5
Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVc2VyRGF0YSYg
dXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5
b3V0Rm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2Vy
RGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkp
OwogCkBAIC00NTY0LDcgKzQ1NjQsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVhY2hMYXlv
dXRNaWxlc3RvbmUoT3B0aW9uU2V0PFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZT4gbAogICAgIG1f
bmF2aWdhdGlvbkNsaWVudC0+cmVuZGVyaW5nUHJvZ3Jlc3NEaWRDaGFuZ2UoKnRoaXMsIGxheW91
dE1pbGVzdG9uZXMpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGlzcGxheUluc2VjdXJl
Q29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0
YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAg
ICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00NTc4
LDcgKzQ1NzgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGlzcGxheUluc2VjdXJlQ29udGVu
dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZQogICAgIG1fbmF2aWdhdGlvbkNs
aWVudC0+ZGlkRGlzcGxheUluc2VjdXJlQ29udGVudCgqdGhpcywgbV9wcm9jZXNzLT50cmFuc2Zv
cm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9iamVjdCgpKS5nZXQoKSk7CiB9CiAKLXZvaWQg
V2ViUGFnZVByb3h5OjpkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUnVu
SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFVz
ZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3Rvcihw
YWdlQ2xpZW50KCkpOwogCkBAIC00NTkyLDcgKzQ1OTIsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVXNl
ckRhdAogICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkUnVuSW5zZWN1cmVDb250ZW50KCp0aGlz
LCBtX3Byb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0KCkp
LmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZERldGVjdFhTU0ZvckZyYW1lKHVp
bnQ2NF90LCBjb25zdCBVc2VyRGF0YSYpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGV0ZWN0WFNT
Rm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyLCBjb25zdCBVc2VyRGF0YSYpCiB7CiB9CiAKQEAgLTQ2
MDEsNyArNDYwMSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjptYWluRnJhbWVQbHVnaW5IYW5kbGVz
UGFnZVNjYWxlR2VzdHVyZURpZENoYW5nZShib29sIG1haW5GcmFtCiAgICAgbV9tYWluRnJhbWVQ
bHVnaW5IYW5kbGVzUGFnZVNjYWxlR2VzdHVyZSA9IG1haW5GcmFtZVBsdWdpbkhhbmRsZXNQYWdl
U2NhbGVHZXN0dXJlOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZnJhbWVEaWRCZWNvbWVGcmFt
ZVNldCh1aW50NjRfdCBmcmFtZUlELCBib29sIHZhbHVlKQordm9pZCBXZWJQYWdlUHJveHk6OmZy
YW1lRGlkQmVjb21lRnJhbWVTZXQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wgdmFsdWUp
CiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApA
QCAtNDYyMCw3ICs0NjIwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmJlZ2luU2FmZUJyb3dzaW5n
Q2hlY2soY29uc3QgVVJMJiwgYm9vbCwgV2ViRnJhbWVQb2xpY3lMaXN0ZW4KIH0KICNlbmRpZgog
Ci12b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5j
KHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbkFzeW5jKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRl
bnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELAogICAgIE5hdmlnYXRpb25BY3Rpb25EYXRh
JiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBP
cHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0LAogICAgIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1
ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKIHsKQEAgLTQ2Mjgs
NyArNDYyOCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uQXN5bmModWludDY0X3QgZnJhbWVJRCwgV2ViQ29yCiAgICAgICAgIFdURk1vdmUoZnJh
bWVJbmZvRGF0YSksIG9yaWdpbmF0aW5nUGFnZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdURk1vdmUo
cmVxdWVzdCksIFdURk1vdmUocmVxdWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2Up
LCB1c2VyRGF0YSwgbGlzdGVuZXJJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiBwcm9jZXNzLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
JiBmcmFtZVNlY3VyaXR5T3JpZ2luLAordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nl
c3MsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
JiBmcmFtZVNlY3VyaXR5T3JpZ2luLAogICAgIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciBpZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRh
JiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBP
cHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsCiAgICAg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1
ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsCiAg
ICAgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQpAQCAtNDg1
OCw3ICs0ODU4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvZ0ZyYW1lTmF2aWdhdGlvbihjb25z
dCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgY29uc3QgVVJMJiBwYWcKIH0KICNlbmRpZgogCi12b2lk
IFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmModWludDY0
X3QgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIs
Cit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmll
ciBpZGVudGlmaWVyLAogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlv
bkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0Rh
dGEsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwKICAgICBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RC
b2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwKICAgICBj
b25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVkUmVwbHkmJiByZXBseSkKQEAgLTQ4
NzYsNyArNDg3Niw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uU3luYyh1aW50NjRfdCBmcmFtZUlELCBib29sIGlzCiAgICAgICAgIFdURk1vdmUo
ZnJhbWVJbmZvRGF0YSksIG9yaWdpbmF0aW5nUGFnZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdURk1v
dmUocmVxdWVzdCksIFdURk1vdmUocmVxdWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9u
c2UpLCB1c2VyRGF0YSwgV1RGTW92ZShyZXBseSkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiBwcm9jZXNzLCB1aW50NjRfdCBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVj
a0lkZW50aWZpZXIgaWRlbnRpZmllciwKK3ZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nl
c3MsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50
aWZpZXIgaWRlbnRpZmllciwKICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25B
Y3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUlu
Zm9EYXRhLCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsCiAgICAg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1
ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsCiAg
ICAgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCkBA
IC00ODkzLDcgKzQ4OTMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvblN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eQogICAgIHNlbmRlci0+
c2VuZChQb2xpY3lBY3Rpb246OlVzZSwgbmF2aWdhdGlvbklELCBEb3dubG9hZElEKCksIFdURjo6
bnVsbG9wdCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5k
b3dBY3Rpb24odWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFt
ZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKK3ZvaWQg
V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdp
biwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCiAgICAgTmF2aWdhdGlvbkFjdGlv
bkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwg
Y29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJE
YXRhJiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdl
Q2xpZW50KCkpOwpAQCAtNDkzMSwxMyArNDkzMSwxMyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVj
aWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3Vy
aQogICAgICAgICAKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1
cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCit2b2lkIFdlYlBh
Z2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hl
Y2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0
ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAg
IGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1l
SUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9u
c2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVy
SUQsIHVzZXJEYXRhKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJl
c3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgdWludDY0X3QgZnJh
bWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xp
Y3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKK3ZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAogICAgIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0
cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJE
YXRhJiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdl
Q2xpZW50KCkpOwpAQCAtNDk3MSw3ICs0OTcxLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lk
ZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywK
ICAgICB9CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojp1bmFibGVUb0ltcGxlbWVudFBvbGljeSh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgVXNlckRh
dGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OnVuYWJsZVRvSW1wbGVtZW50UG9saWN5
KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgY29u
c3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVj
dG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQ5ODUsNyArNDk4NSw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5Ojp1bmFibGVUb0ltcGxlbWVudFBvbGljeSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBSZXNv
dXJjZUVycm9yCiAKIC8vIEZvcm1DbGllbnQKIAotdm9pZCBXZWJQYWdlUHJveHk6OndpbGxTdWJt
aXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZyYW1lSUQsIGNvbnN0IFZl
Y3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiYgdGV4dEZpZWxkVmFsdWVzLCB1aW50NjRf
dCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94
eTo6d2lsbFN1Ym1pdEZvcm0oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lSWRlbnRpZmll
ciBzb3VyY2VGcmFtZUlELCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4m
IHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVz
ZXJEYXRhKQogewogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFt
ZShmcmFtZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwpAQCAtNTAw
MywxMiArNTAwMywxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGVudFJ1bGVMaXN0Tm90aWZp
Y2F0aW9uKFVSTCYmIHVybCwgQ29udGVudFJ1bGVMaXN0UmVzdWx0cwogICAgIG1fbmF2aWdhdGlv
bkNsaWVudC0+Y29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uKCp0aGlzLCBXVEZNb3ZlKHVybCks
IFdURk1vdmUocmVzdWx0cykpOwogfQogICAgIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZE5hdmln
YXRlV2l0aE5hdmlnYXRpb25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmIHN0b3Jl
LCB1aW50NjRfdCBmcmFtZUlEKSAKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWROYXZpZ2F0ZVdpdGhO
YXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiBzdG9yZSwgRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFT
aGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgc3RvcmUsIGZyYW1lSUQpOwogfQogCi12b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQoUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiBzdG9y
ZSwgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWROYXZpZ2F0ZVdpdGhO
YXZpZ2F0aW9uRGF0YVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIGNvbnN0
IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmIHN0b3JlLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkK
IHsKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWROYXZpZ2F0ZVdpdGhO
YXZpZ2F0aW9uRGF0YVNoYXJlZDogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCwgcHJv
Y2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSk7CiAKQEAgLTUw
MjMsMTQgKzUwMjMsMTQgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZE5hdmlnYXRlV2l0aE5hdmln
YXRpb25EYXRhU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHIKICAgICBwcm9jZXNzLT5w
cm9jZXNzUG9vbCgpLmhpc3RvcnlDbGllbnQoKS5kaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0
YShwcm9jZXNzLT5wcm9jZXNzUG9vbCgpLCAqdGhpcywgc3RvcmUsICpmcmFtZSk7CiB9CiAKLXZv
aWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgU3RyaW5nJiBz
b3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2
NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0
KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9u
VVJMU3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBkaWRQZXJmb3JtQ2xp
ZW50UmVkaXJlY3RTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgc291cmNlVVJMU3RyaW5nLCBk
ZXN0aW5hdGlvblVSTFN0cmluZywgZnJhbWVJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9j
ZXNzLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5h
dGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNz
LCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlv
blVSTFN0cmluZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7Ci0gICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkOiB3ZWJQ
SUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIHByb2Nl
c3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQpOwor
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZFBlcmZvcm1DbGllbnRSZWRp
cmVjdFNoYXJlZDogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0LCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2
NCgpLCBmcmFtZUlELnRvVUludDY0KCkpOwogCiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90
ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNTA1MCwxMiArNTA1MCwxMiBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYgcHJvY2VzcwogICAgIHByb2Nlc3MtPnByb2Nlc3NQb29sKCkuaGlzdG9yeUNsaWVudCgp
LmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdChwcm9jZXNzLT5wcm9jZXNzUG9vbCgpLCAqdGhpcywg
c291cmNlVVJMU3RyaW5nLCBkZXN0aW5hdGlvblVSTFN0cmluZywgKmZyYW1lKTsKIH0KIAotdm9p
ZCBXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNv
dXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0
X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3Qo
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25V
UkxTdHJpbmcsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIGRpZFBlcmZvcm1TZXJ2
ZXJSZWRpcmVjdFNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBzb3VyY2VVUkxTdHJpbmcsIGRl
c3RpbmF0aW9uVVJMU3RyaW5nLCBmcmFtZUlEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nl
c3MsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0
aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFBl
cmZvcm1TZXJ2ZXJSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3Ms
IGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9u
VVJMU3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKExvYWRpbmcsICJkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3Q6IHdlYlBJRCA9ICVp
LCBwYWdlSUQgPSAlIiBQUkl1NjQsIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFn
ZUlELnRvVUludDY0KCkpOwogCkBAIC01MDc2LDcgKzUwNzYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYg
cHJvY2VzcwogICAgIHByb2Nlc3MtPnByb2Nlc3NQb29sKCkuaGlzdG9yeUNsaWVudCgpLmRpZFBl
cmZvcm1TZXJ2ZXJSZWRpcmVjdChwcm9jZXNzLT5wcm9jZXNzUG9vbCgpLCAqdGhpcywgc291cmNl
VVJMU3RyaW5nLCBkZXN0aW5hdGlvblVSTFN0cmluZywgKmZyYW1lKTsKIH0KIAotdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZFVwZGF0ZUhpc3RvcnlUaXRsZShjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25z
dCBTdHJpbmcmIHVybCwgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRV
cGRhdGVIaXN0b3J5VGl0bGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiB1cmws
IEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJv
dGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTUxNzgsNyArNTE3OCw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpjbG9zZVBhZ2UoYm9vbCBzdG9wUmVzcG9uc2l2ZW5lc3NUaW1lcikKICAgICBtX3Vp
Q2xpZW50LT5jbG9zZSh0aGlzKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3Jp
cHRBbGVydCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3Vy
aXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlJ1bkphdmFTY3JpcHRBbGVydDo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit2b2lkIFdlYlBhZ2VQ
cm94eTo6cnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBT
ZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydDo6RGVsYXllZFJlcGx5
JiYgcmVwbHkpCiB7CiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZy
YW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBmcmFtZSk7CkBAIC01
MTk3LDcgKzUxOTcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEFsZXJ0KHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YQogICAgIG1fdWlDbGllbnQt
PnJ1bkphdmFTY3JpcHRBbGVydCh0aGlzLCBtZXNzYWdlLCBmcmFtZSwgc2VjdXJpdHlPcmlnaW4s
IFdURk1vdmUocmVwbHkpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRD
b25maXJtKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJp
dHlPcmlnaW4sIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
UnVuSmF2YVNjcmlwdENvbmZpcm06OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQordm9pZCBXZWJQYWdl
UHJveHk6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25z
dCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRDb25maXJtOjpEZWxheWVk
UmVwbHkmJiByZXBseSkKIHsKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+
d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsK
QEAgLTUyMTcsNyArNTIxNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0Q29u
ZmlybSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhCiAgICAgbV91aUNs
aWVudC0+cnVuSmF2YVNjcmlwdENvbmZpcm0odGhpcywgbWVzc2FnZSwgZnJhbWUsIHNlY3VyaXR5
T3JpZ2luLCBXVEZNb3ZlKHJlcGx5KSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZh
U2NyaXB0UHJvbXB0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYg
c2VjdXJpdHlPcmlnaW4sIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZh
dWx0VmFsdWUsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OkRl
bGF5ZWRSZXBseSYmIHJlcGx5KQordm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRQcm9t
cHQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2Vj
dXJpdHlPcmlnaW4sIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0
VmFsdWUsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OkRlbGF5
ZWRSZXBseSYmIHJlcGx5KQogewogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNz
LT53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUp
OwpAQCAtNTM3Niw3ICs1Mzc2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJvb3RWaWV3VG9BY2Nl
c3NpYmlsaXR5U2NyZWVuKGNvbnN0IEludFJlY3QmIHZpZXdSZWN0LCBDb21wbGUKICAgICBjb21w
bGV0aW9uSGFuZGxlcihwYWdlQ2xpZW50KCkucm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3JlZW4o
dmlld1JlY3QpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3Vy
aXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit2b2lk
IFdlYlBhZ2VQcm94eTo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbDo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7CiAgICAgV2ViRnJhbWVQcm94
eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hF
Q0sobV9wcm9jZXNzLCBmcmFtZSk7CkBAIC01NDE2LDcgKzU0MTYsNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6cGFnZURpZFNjcm9sbCgpCiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJ1
bk9wZW5QYW5lbCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZy
YW1lU2VjdXJpdHlPcmlnaW4sIGNvbnN0IEZpbGVDaG9vc2VyU2V0dGluZ3MmIHNldHRpbmdzKQor
dm9pZCBXZWJQYWdlUHJveHk6OnJ1bk9wZW5QYW5lbChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
Y29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBjb25zdCBGaWxl
Q2hvb3NlclNldHRpbmdzJiBzZXR0aW5ncykKIHsKICAgICBpZiAobV9vcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lcikgewogICAgICAgICBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyLT5pbnZhbGlkYXRl
KCk7CkBAIC01NDU1LDcgKzU0NTUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd1NoYXJlU2hl
ZXQoY29uc3QgU2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYgc2hhcmVEYXRhLCBTaGFyZQogICAgIHBh
Z2VDbGllbnQoKS5zaG93U2hhcmVTaGVldChzaGFyZURhdGEsIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKIH0KICAgICAKLXZvaWQgV2ViUGFnZVByb3h5OjpwcmludEZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3ZvaWQgV2ViUGFnZVByb3h5OjpwcmludEZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNT
RVJUKCFtX2lzUGVyZm9ybWluZ0RPTVByaW50T3BlcmF0aW9uKTsKICAgICBtX2lzUGVyZm9ybWlu
Z0RPTVByaW50T3BlcmF0aW9uID0gdHJ1ZTsKQEAgLTY3NjksMjAgKzY3NjksMjAgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnByaW50RmluaXNoZWRDYWxsYmFjayhjb25zdCBSZXNvdXJjZUVycm9yJiBw
cmludEVycm9yLCBDYWxsYmEKIH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2VQcm94eTo6Zm9jdXNl
ZEZyYW1lQ2hhbmdlZCh1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmZvY3Vz
ZWRGcmFtZUNoYW5nZWQoY29uc3QgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiYgZnJhbWVJRCkK
IHsKICAgICBpZiAoIWZyYW1lSUQpIHsKICAgICAgICAgbV9mb2N1c2VkRnJhbWUgPSBudWxscHRy
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBt
X3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOworICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0g
bV9wcm9jZXNzLT53ZWJGcmFtZSgqZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nl
c3MsIGZyYW1lKTsKIAogICAgIG1fZm9jdXNlZEZyYW1lID0gZnJhbWU7CiB9CiAKLXZvaWQgV2Vi
UGFnZVByb3h5OjpmcmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQodWludDY0X3QgZnJhbWVJRCkK
K3ZvaWQgV2ViUGFnZVByb3h5OjpmcmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQoRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgaWYgKCFmcmFtZUlEKSB7CiAgICAgICAgIG1fZnJhbWVT
ZXRMYXJnZXN0RnJhbWUgPSBudWxscHRyOwpAQCAtNzM0NSwyNiArNzM0NSwyNiBAQCBXZWFrUHRy
PFNlY0tleVByb3h5U3RvcmU+IFdlYlBhZ2VQcm94eTo6c2VjS2V5UHJveHlTdG9yZShjb25zdCBX
ZWJDb3JlOjpBdXRoZW50aQogICAgIHJldHVybiBudWxscHRyOwogfQogICAgIAotdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5KHVpbnQ2NF90
LCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJiBhdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VQcm94eShGcmFtZUlkZW50aWZpZXIsIFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5
PiYmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKQogewogICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+
ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCp0aGlzLCBhdXRoZW50aWNhdGlvbkNo
YWxsZW5nZS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpleGNlZWRlZERhdGFiYXNl
UXVvdGEodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWlu
dDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90
IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpFeGNlZWRlZERhdGFiYXNlUXVvdGE6OkRlbGF5ZWRSZXBseSYmIHJlcGx5
KQordm9pZCBXZWJQYWdlUHJveHk6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVu
dFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRh
YmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpFeGNlZWRlZERhdGFiYXNlUXVvdGE6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQogewogICAgIHJl
cXVlc3RTdG9yYWdlU3BhY2UoZnJhbWVJRCwgb3JpZ2luSWRlbnRpZmllciwgZGF0YWJhc2VOYW1l
LCBkaXNwbGF5TmFtZSwgY3VycmVudFF1b3RhLCBjdXJyZW50T3JpZ2luVXNhZ2UsIGN1cnJlbnRE
YXRhYmFzZVVzYWdlLCBleHBlY3RlZFVzYWdlLCBbcmVwbHkgPSBXVEZNb3ZlKHJlcGx5KV0oYXV0
byBxdW90YSkgbXV0YWJsZSB7CiAgICAgICAgIHJlcGx5KHF1b3RhKTsKICAgICB9KTsKIH0KIAot
dm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RTdG9yYWdlU3BhY2UodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFt
ZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50
NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1
aW50NjRfdCBleHBlY3RlZFVzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0U3RvcmFnZVNw
YWNlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1l
LCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWlu
dDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoU3RvcmFnZSwgInJlcXVlc3RTdG9yYWdlU3BhY2UgZm9y
IGZyYW1lICUiIFBSSXU2NCAiLCBjdXJyZW50IHF1b3RhICUiIFBSSXU2NCAiIGN1cnJlbnQgdXNh
Z2UgJSIgUFJJdTY0ICIgZXhwZWN0ZWQgdXNhZ2UgJSIgUFJJdTY0LCBmcmFtZUlELCBjdXJyZW50
UXVvdGEsIGN1cnJlbnREYXRhYmFzZVVzYWdlLCBleHBlY3RlZFVzYWdlKTsKKyAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKFN0b3JhZ2UsICJyZXF1ZXN0U3RvcmFnZVNwYWNlIGZvciBmcmFtZSAl
IiBQUkl1NjQgIiwgY3VycmVudCBxdW90YSAlIiBQUkl1NjQgIiBjdXJyZW50IHVzYWdlICUiIFBS
SXU2NCAiIGV4cGVjdGVkIHVzYWdlICUiIFBSSXU2NCwgZnJhbWVJRC50b1VJbnQ2NCgpLCBjdXJy
ZW50UXVvdGEsIGN1cnJlbnREYXRhYmFzZVVzYWdlLCBleHBlY3RlZFVzYWdlKTsKIAogICAgIFN0
b3JhZ2VSZXF1ZXN0czo6c2luZ2xldG9uKCkucHJvY2Vzc09yQXBwZW5kKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHBhZ2VVUkwgPSBjdXJyZW50VVJMKCksIGZyYW1lSUQs
IG9yaWdpbklkZW50aWZpZXIsIGRhdGFiYXNlTmFtZSwgZGlzcGxheU5hbWUsIGN1cnJlbnRRdW90
YSwgY3VycmVudE9yaWdpblVzYWdlLCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgZXhwZWN0ZWRVc2Fn
ZSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRh
YmxlIHsKICAgICAgICAgdGhpcy0+bWFrZVN0b3JhZ2VTcGFjZVJlcXVlc3QoZnJhbWVJRCwgb3Jp
Z2luSWRlbnRpZmllciwgZGF0YWJhc2VOYW1lLCBkaXNwbGF5TmFtZSwgY3VycmVudFF1b3RhLCBj
dXJyZW50T3JpZ2luVXNhZ2UsIGN1cnJlbnREYXRhYmFzZVVzYWdlLCBleHBlY3RlZFVzYWdlLCBb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGZyYW1lSUQsIHBh
Z2VVUkwgPSBXVEZNb3ZlKHBhZ2VVUkwpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpLCBjdXJyZW50UXVvdGFdKGF1dG8gcXVvdGEpIG11dGFibGUgewogCi0g
ICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFN0b3JhZ2UsICJyZXF1ZXN0U3RvcmFn
ZVNwYWNlIHJlc3BvbnNlIGZvciBmcmFtZSAlIiBQUkl1NjQgIiwgcXVvdGEgJSIgUFJJdTY0LCBm
cmFtZUlELCBxdW90YSk7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFN0b3Jh
Z2UsICJyZXF1ZXN0U3RvcmFnZVNwYWNlIHJlc3BvbnNlIGZvciBmcmFtZSAlIiBQUkl1NjQgIiwg
cXVvdGEgJSIgUFJJdTY0LCBmcmFtZUlELnRvVUludDY0KCksIHF1b3RhKTsKIAogICAgICAgICAg
ICAgaWYgKHF1b3RhIDw9IGN1cnJlbnRRdW90YSAmJiB0aGlzLT5jdXJyZW50VVJMKCkgPT0gcGFn
ZVVSTCkgewogICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoU3RvcmFnZSwg
InN0b3JhZ2Ugc3BhY2UgaW5jcmVhc2UgZGVuaWVkIik7CkBAIC03Mzc2LDcgKzczNzYsNyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFN0b3JhZ2VTcGFjZSh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBTdHJpbmcmIG9yaWdpbklkZQogICAgIH0pOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6
bWFrZVN0b3JhZ2VTcGFjZVJlcXVlc3QodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBv
cmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5n
JiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3Jp
Z2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3Rl
ZFVzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjptYWtlU3RvcmFnZVNwYWNlUmVxdWVzdChGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3Qg
Y3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJl
bnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAobV9pc1F1
b3RhSW5jcmVhc2VEZW5pZWQpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY3VycmVudFF1
b3RhKTsKQEAgLTc0MDIsNyArNzQwMiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWFjaGVkQXBw
bGljYXRpb25DYWNoZU9yaWdpblF1b3RhKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpCiAgICAg
bV91aUNsaWVudC0+cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh0aGlzLCBzZWN1
cml0eU9yaWdpbi5nZXQoKSwgY3VycmVudFF1b3RhLCB0b3RhbEJ5dGVzTmVlZGVkLCBXVEZNb3Zl
KHJlcGx5KSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJt
aXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgdWludDY0X3QgZnJhbWVJRCwg
U3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEdlb2xv
Y2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKIHsKICAgICBXZWJGcmFt
ZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FH
RV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKQEAgLTc0NDYsNyArNzQ0Niw3IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpzZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkT3ZlcnJpZGUoT3B0aW9uYWw8
Ym9vbD4gZW5hYmxlZCkKIH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFVz
ZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiAgdXNlck1lZGlhRG9j
dW1lbnRPcmlnaW5EYXRhLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExl
dmVsRG9jdW1lbnRPcmlnaW5EYXRhLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJiByZXF1
ZXN0KQordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJh
bWUodWludDY0X3QgdXNlck1lZGlhSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmICB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRhdGEs
IGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdp
bkRhdGEsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmIHJlcXVlc3QpCiB7CiAjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgbV9wcm9jZXNz
LT53ZWJGcmFtZShmcmFtZUlEKSk7CkBAIC03NDYxLDcgKzc0NjEsNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVk
aWFJRCwgdWludAogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjplbnVtZXJhdGVNZWRp
YURldmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
bkRhdGEsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbkRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9y
RnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luRGF0
YSwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luRGF0YSkKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFdlYkZyYW1lUHJveHkq
IGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTc0OTMsNyArNzQ5Myw3
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjbGVhclVzZXJNZWRpYVN0YXRlKCkKIH0KIAogI2lmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi12b2lkIFdlYlBhZ2VQcm94eTo6c2hvdWxkQWxsb3dE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmJiBvcmlnaW5EYXRhLCBib29sIG1heVByb21wdCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRl
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpzaG91bGRBbGxvd0Rl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBvcmlnaW5EYXRhLCBib29sIG1heVByb21wdCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lv
blN0YXRlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJGcmFtZVByb3h5KiBmcmFt
ZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3By
b2Nlc3MsIGZyYW1lKTsKQEAgLTg3MzYsNyArODczNiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojps
b2FkU3luY2hyb25vdXNVUkxTY2hlbWVUYXNrKFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYgcGFy
YW1lCiB9CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotdm9pZCBXZWJQ
YWdlUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURv
bWFpbiwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2Vz
c0NvbmZpcm0oY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewog
ICAgIG1fdWlDbGllbnQtPnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSgqdGhpcywgbV9wcm9j
ZXNzLT53ZWJGcmFtZShmcmFtZUlEKSwgc3ViRnJhbWVEb21haW4sIHRvcEZyYW1lRG9tYWluLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCmluZGV4IGI0MzgzY2FmODhmMzcyNzJjZjk0NzdiNjQwMzljZTllZjVjOTQ5YTEu
LjM0ZDllM2UyODEwY2FhY2YwMDk2NjdlY2EyZWMzNDBjOWU1NDg5NjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMDE4LDcgKzEwMTgsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBydW5KYXZhU2NyaXB0SW5NYWluRnJhbWUoY29uc3QgU3RyaW5nJiwgYm9vbCwgV1RG
OjpGdW5jdGlvbjx2b2lkIChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSosIGJvb2wgaGFkRXhj
ZXB0aW9uLCBjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzJiwgQ2FsbGJhY2tCYXNlOjpF
cnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbik7CiAgICAgdm9pZCBydW5KYXZhU2NyaXB0SW5NYWlu
RnJhbWVTY3JpcHRXb3JsZChjb25zdCBTdHJpbmcmLCBib29sLCBjb25zdCBPcHRpb25hbDxTdHJp
bmc+JiB3b3JsZE5hbWUsIFdURjo6RnVuY3Rpb248dm9pZChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZSosIGJvb2wgaGFkRXhjZXB0aW9uLCBjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxz
JiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbik7CiAgICAgLy8gRm9y
IHN1YiBmcmFtZXMuCi0gICAgdm9pZCBydW5KYXZhU2NyaXB0SW5GcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBTdHJpbmcmIHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBXVEY6OkZ1
bmN0aW9uPHZvaWQoQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqLCBib29sIGhhZEV4Y2VwdGlv
biwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyYsIENhbGxiYWNrQmFzZTo6RXJyb3Ip
PiYmIGNhbGxiYWNrRnVuY3Rpb24pOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluRnJhbWUoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNjcmlwdCwgYm9vbCBmb3JjZVVz
ZXJHZXN0dXJlLCBXVEY6OkZ1bmN0aW9uPHZvaWQoQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUq
LCBib29sIGhhZEV4Y2VwdGlvbiwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyYsIENh
bGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pOwogICAgIHZvaWQgZm9yY2VS
ZXBhaW50KFJlZlB0cjxWb2lkQ2FsbGJhY2s+JiYpOwogCiAgICAgZmxvYXQgaGVhZGVySGVpZ2h0
KFdlYkZyYW1lUHJveHkmKTsKQEAgLTExNjEsNyArMTE2MSw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGRyYXdSZWN0VG9JbWFnZShXZWJGcmFtZVByb3h5KiwgY29uc3QgUHJpbnRJbmZvJiwgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBSZWY8SW1hZ2VDYWxs
YmFjaz4mJik7CiAgICAgdm9pZCBkcmF3UGFnZXNUb1BERihXZWJGcmFtZVByb3h5KiwgY29uc3Qg
UHJpbnRJbmZvJiwgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBSZWY8RGF0YUNhbGxi
YWNrPiYmKTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHVpbnQzMl90IGNvbXB1dGVQ
YWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50
SW5mbyYsIERyYXdUb1BERkNhbGxiYWNrOjpDYWxsYmFja0Z1bmN0aW9uJiYpOworICAgIHVpbnQz
Ml90IGNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgRHJhd1RvUERGQ2FsbGJhY2s6OkNhbGxiYWNrRnVu
Y3Rpb24mJik7CiAgICAgdm9pZCBkcmF3VG9QREZDYWxsYmFjayhjb25zdCBJUEM6OkRhdGFSZWZl
cmVuY2UmIHBkZkRhdGEsIFdlYktpdDo6Q2FsbGJhY2tJRCk7CiAjZW5kaWYKICNlbGlmIFBMQVRG
T1JNKEdUSykKQEAgLTEyNTIsNyArMTI1Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFZpZXdw
b3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogICAg
IFdlYkNvcmU6OkludFNpemUgdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpIGNvbnN0
IHsgcmV0dXJuIG1fdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cy52YWx1ZU9yKFdlYkNv
cmU6OkludFNpemUoKSk7IH0KIAotICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlUHJveHkodWludDY0X3QgZnJhbWVJRCwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
UHJveHk+JiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJv
eHkoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQ
cm94eT4mJik7CiAKICAgICBTcGVsbERvY3VtZW50VGFnIHNwZWxsRG9jdW1lbnRUYWcoKTsKIApA
QCAtMTQ1MiwxMiArMTQ1MiwxMiBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShSRVNP
VVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZp
cm0oY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25z
dCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZy
YW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgcmVxdWVz
dFN0b3JhZ2VBY2Nlc3NDb25maXJtKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBz
dWJGcmFtZURvbWFpbiwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1l
RG9tYWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYpOwogICAgIHZvaWQgZGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNm
ZXJGcm9tUHJldmFsZW50UmVzb3VyY2UoKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKERFVklDRV9P
UklFTlRBVElPTikKLSAgICB2b2lkIHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rp
b25BY2Nlc3ModWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYs
IGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRldmljZU9y
aWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmKTsKKyAgICB2b2lkIHNob3VsZEFs
bG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgYm9vbCBtYXlQcm9tcHQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1p
c3Npb25TdGF0ZSk+JiYpOwogI2VuZGlmCiAKICAgICBzdGF0aWMgV2ViUGFnZVByb3h5KiBub25F
cGhlbWVyYWxXZWJQYWdlUHJveHkoKTsKQEAgLTE0OTgsMzMgKzE0OTgsMzMgQEAgcHVibGljOgog
I2VuZGlmCiAKICAgICBQcm92aXNpb25hbFBhZ2VQcm94eSogcHJvdmlzaW9uYWxQYWdlUHJveHko
KSBjb25zdCB7IHJldHVybiBtX3Byb3Zpc2lvbmFsUGFnZS5nZXQoKTsgfQotICAgIHZvaWQgY29t
bWl0UHJvdmlzaW9uYWxQYWdlKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92
aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJ
bmZvJiwgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJ
bnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEm
KTsKKyAgICB2b2lkIGNvbW1pdFByb3Zpc2lvbmFsUGFnZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBm
cmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29u
c3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiwgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50
LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJl
Q29udGVudCwgY29uc3QgVXNlckRhdGEmKTsKIAogICAgIC8vIExvZ2ljIHNoYXJlZCBiZXR3ZWVu
IHRoZSBXZWJQYWdlUHJveHkgYW5kIHRoZSBQcm92aXNpb25hbFBhZ2VQcm94eS4KLSAgICB2b2lk
IGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiwgVVJM
JiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRGYWlsUHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0
X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9u
YWxVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29udGlu
dWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJl
ZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZFBlcmZvcm1T
ZXJ2ZXJSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBTdHJpbmcm
IHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgdWlu
dDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQo
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNv
bnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAg
IHZvaWQgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQoUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiwgY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYsIHVpbnQ2NF90IGZyYW1lSUQp
OwotICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNoYXJlZChSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IFVSTCYmKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1No
YXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIsCisgICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0
IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFy
ZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0
IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNp
b25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiYsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRQZXJmb3JtU2VydmVyUmVk
aXJlY3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgU3RyaW5nJiBzb3VyY2VV
UkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQo
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNv
bnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
cik7CisgICAgdm9pZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YVNoYXJlZChSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJh
bWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1l
U2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwKICAgICAgICAg
dWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUluZm9E
YXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJ
RCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmLAogICAgICAgICBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYg
cmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNl
LCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwotICAgIHZvaWQgZGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5
T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsCisgICAgdm9pZCBkZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLAogICAgICAgICB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29u
c3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3Qg
VXNlckRhdGEmKTsKICAgICB2b2lkIHN0YXJ0VVJMU2NoZW1lVGFza1NoYXJlZChSZWY8V2ViUHJv
Y2Vzc1Byb3h5PiYmLCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmKTsKICAgICB2b2lkIGxvYWRE
YXRhV2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgQVBJOjpOYXZp
Z2F0aW9uJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBNSU1FVHlw
ZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9i
amVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0
aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiA9IFdURjo6bnVsbG9wdCwgV2ViQ29yZTo6U2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKICAgICB2b2lkIGxvYWRSZXF1ZXN0V2l0aE5hdmln
YXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgQVBJOjpOYXZpZ2F0aW9uJiwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3ksIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmID0gV1RGOjpudWxsb3B0
KTsKICAgICB2b2lkIGJhY2tGb3J3YXJkR29Ub0l0ZW1TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiwgY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYpPiYmKTsKLSAgICB2b2lk
IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYsIHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKKyAgICB2b2lkIGRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAogICAgICAgICBGcmFt
ZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGlu
Z1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3Qs
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVx
dWVzdEJvZHksCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJl
c3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVkUmVwbHkmJik7CiAjaWYgVVNFKFFV
SUNLX0xPT0spCiAgICAgdm9pZCBkaWRSZXF1ZXN0UGFzc3dvcmRGb3JRdWlja0xvb2tEb2N1bWVu
dEluTWFpbkZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYg
ZmlsZU5hbWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQotICAgIHZv
aWQgY29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYsIHVp
bnQ2NF90IGZyYW1lSUQpOworICAgIHZvaWQgY29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZy
YW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRG
aWx0ZXJVbmJsb2NrSGFuZGxlciYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAjZW5kaWYK
IAogICAgIHZvaWQgZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGNvbnN0IFN0cmluZyYpPiYmKTsKQEAgLTE1NjEsNyArMTU2MSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92
ZXJyaWRlOwogICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7
CiAKLSAgICB2b2lkIHJlcXVlc3RTdG9yYWdlU3BhY2UodWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
U3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29u
c3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBj
dXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRf
dCBleHBlY3RlZFVzYWdlLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYm
KTsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdlU3BhY2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VO
YW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVp
bnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2Us
IHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50
NjRfdCk+JiYpOwogCiAgICAgVVJMIGN1cnJlbnRSZXNvdXJjZURpcmVjdG9yeVVSTCgpIGNvbnN0
OwogCkBAIC0xNTgxLDcgKzE1ODEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlVGhyb3R0
bGVTdGF0ZSgpOwogICAgIHZvaWQgdXBkYXRlSGlkZGVuUGFnZVRocm90dGxpbmdBdXRvSW5jcmVh
c2VzKCk7CiAKLSAgICBib29sIHN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUoQVBJOjpOYXZp
Z2F0aW9uJiwgT3B0aW9uYWw8dWludDY0X3Q+IG1haW5GcmFtZUlELCBQcm9jZXNzU3dhcFJlcXVl
c3RlZEJ5Q2xpZW50LCBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ01vZGUpOworICAgIGJvb2wgc3VzcGVuZEN1cnJlbnRQYWdlSWZQb3NzaWJsZShB
UEk6Ok5hdmlnYXRpb24mLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IG1haW5G
cmFtZUlELCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBTaG91bGREZWxheUNsb3NpbmdV
bnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOwogCiAgICAgZW51bSBjbGFz
cyBSZXNldFN0YXRlUmVhc29uIHsKICAgICAgICAgUGFnZUludmFsaWRhdGVkLApAQCAtMTYxMCwz
MiArMTYxMCwzMiBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFBvaW50ZXJVbmxvY2soKTsK
ICNlbmRpZgogCi0gICAgdm9pZCBkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJRCk7
Ci0gICAgdm9pZCBkaWRDcmVhdGVTdWJmcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lk
IGRpZENyZWF0ZVdpbmRvdyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJ
ZGVudGlmaWVyJiYpOwotCi0gICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYsIFVSTCYmIHVu
cmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZl
clJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVXNl
ckRhdGEmKTsKLSAgICB2b2lkIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHVybCwgZG91YmxlIGRlbGF5LCBXZWJDb3JlOjpM
b2NrQmFja0ZvcndhcmRMaXN0KTsKLSAgICB2b2lkIGRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVS
TEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYp
OwotICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdp
biwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGlu
ZywgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5
cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9h
ZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYsIGJvb2wgY29udGFpbnNQbHVn
aW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRI
YXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRGaW5pc2hE
b2N1bWVudExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRGaW5pc2hMb2FkRm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBVc2VyRGF0YSYpOwot
ICAgIHZvaWQgZGlkRmFpbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0
YSYpOwotICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMyX3Qgc2FtZURvY3VtZW50TmF2
aWdhdGlvblR5cGUsIFVSTCYmLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkQ2hhbmdl
TWFpbkRvY3VtZW50KHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkRXhwbGljaXRPcGVu
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgVVJMJiYpOwotCi0gICAgdm9pZCBkaWRSZWNlaXZl
VGl0bGVGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmLCBjb25zdCBVc2Vy
RGF0YSYpOwotICAgIHZvaWQgZGlkRmlyc3RMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5
b3V0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lk
IGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZERldGVjdFhTU0Zv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRD
cmVhdGVNYWluRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZENy
ZWF0ZVN1YmZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRDcmVh
dGVXaW5kb3coV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJ
ZGVudGlmaWVyJiYpOworCisgICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiwg
VVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRSZWNl
aXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGly
ZWN0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVybCwg
ZG91YmxlIGRlbGF5LCBXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0KTsKKyAgICB2b2lkIGRp
ZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsK
KyAgICB2b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKKyAgICB2b2lkIGRpZEZh
aWxQcm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZywgY29uc3Qg
VXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2Fk
VHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiwgYm9vbCBjb250YWluc1BsdWdp
bkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhh
c0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZEZpbmlzaERv
Y3VtZW50TG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkRmluaXNoTG9hZEZvckZy
YW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25z
dCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkRmFpbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciYsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZp
Z2F0aW9uRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIHVpbnQzMl90IHNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLCBVUkwmJiwgY29uc3Qg
VXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZENoYW5nZU1haW5Eb2N1bWVudChXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkRXhwbGljaXRPcGVuRm9yRnJhbWUoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBVUkwmJik7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVUaXRsZUZvckZy
YW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgY29uc3QgVXNlckRh
dGEmKTsKKyAgICB2b2lkIGRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkRmlyc3RWaXN1YWxseU5vbkVt
cHR5TGF5b3V0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBVc2VyRGF0
YSYpOworICAgIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZFJ1bkluc2Vj
dXJlQ29udGVudEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgVXNlckRh
dGEmKTsKKyAgICB2b2lkIGRpZERldGVjdFhTU0ZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIG1haW5GcmFtZVBsdWdpbkhhbmRsZXNQ
YWdlU2NhbGVHZXN0dXJlRGlkQ2hhbmdlKGJvb2wpOwotICAgIHZvaWQgZnJhbWVEaWRCZWNvbWVG
cmFtZVNldCh1aW50NjRfdCBmcmFtZUlELCBib29sKTsKKyAgICB2b2lkIGZyYW1lRGlkQmVjb21l
RnJhbWVTZXQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBib29sKTsKICAgICB2b2lkIGRpZFN0
YXJ0UHJvZ3Jlc3MoKTsKICAgICB2b2lkIGRpZENoYW5nZVByb2dyZXNzKGRvdWJsZSk7CiAgICAg
dm9pZCBkaWRGaW5pc2hQcm9ncmVzcygpOwpAQCAtMTY0OCwzNyArMTY0OCwzNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmLCBXZWJGcmFtZVByb3h5JiwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAg
RnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2lu
YXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1
ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYm
IHJlcXVlc3RCb2R5LAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJl
Y3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBSZWY8UG9saWN5RGVjaXNpb25TZW5kZXI+JiYp
OwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKHVpbnQ2NF90
IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRh
dGEmJiwKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdh
dGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
JiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAogICAgICAgICBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCB1
aW50NjRfdCBsaXN0ZW5lcklEKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25TeW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKKyAgICB2b2lkIGRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
Ym9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6
OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9u
QWN0aW9uRGF0YSYmLAogICAgICAgICBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJ
UEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAgIFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpE
ZWxheWVkUmVwbHkmJik7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24o
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAorICAg
IHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgV2ViQ29yZTo6UG9saWN5
Q2hlY2tJZGVudGlmaWVyLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAogICAgICAgICBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIHVpbnQ2NF90IGxp
c3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNw
b25zZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwK
KyAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsCiAgICAgICAgIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBi
b29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWlu
dDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIHVuYWJsZVRvSW1w
bGVtZW50UG9saWN5KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgdW5hYmxlVG9JbXBsZW1lbnRQb2xpY3ko
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwg
Y29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGJlZ2luU2FmZUJyb3dzaW5nQ2hlY2soY29uc3Qg
VVJMJiwgYm9vbCwgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5Jik7CiAKICAgICBXZWJDb250
ZW50TW9kZSBlZmZlY3RpdmVDb250ZW50TW9kZUFmdGVyQWRqdXN0aW5nUG9saWNpZXMoQVBJOjpX
ZWJzaXRlUG9saWNpZXMmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKIAotICAg
IHZvaWQgd2lsbFN1Ym1pdEZvcm0odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qgc291cmNlRnJh
bWVJRCwgY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+JiB0ZXh0RmllbGRW
YWx1ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCB3
aWxsU3VibWl0Rm9ybShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBzb3VyY2VGcmFtZUlELCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3Ry
aW5nPj4mIHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRh
dGEmKTsKIAogICAgIHZvaWQgY29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uKFVSTCYmLCBXZWJD
b3JlOjpDb250ZW50UnVsZUxpc3RSZXN1bHRzJiYpOwogCiAgICAgLy8gSGlzdG9yeSBjbGllbnQK
LSAgICB2b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKGNvbnN0IFdlYk5hdmlnYXRp
b25EYXRhU3RvcmUmLCB1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZFBlcmZvcm1DbGll
bnRSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBk
ZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRQZXJm
b3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0
cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQg
ZGlkVXBkYXRlSGlzdG9yeVRpdGxlKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYg
dXJsLCB1aW50NjRfdCBmcmFtZUlEKTsKKyAgICB2b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRp
b25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmLCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIpOworICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFN0cmluZyYg
c291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0
KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9u
VVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkVXBkYXRl
SGlzdG9yeVRpdGxlKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgdXJsLCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIpOwogCiAgICAgLy8gVUkgY2xpZW50CiAgICAgdm9pZCBjcmVh
dGVOZXdQYWdlKGNvbnN0IEZyYW1lSW5mb0RhdGEmLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRl
bnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBX
ZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYmLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlOjpEZWxheWVkUmVwbHkmJik7CiAgICAgdm9p
ZCBzaG93UGFnZSgpOwotICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYsIE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydDo6RGVsYXllZFJlcGx5JiYp
OwotICAgIHZvaWQgcnVuSmF2YVNjcmlwdENvbmZpcm0odWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENvbmZpcm06OkRlbGF5ZWRSZXBseSYmKTsKLSAgICB2
b2lkIHJ1bkphdmFTY3JpcHRQcm9tcHQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdDo6RGVsYXllZFJlcGx5JiYpOwor
ICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdEFsZXJ0OjpEZWxheWVkUmVwbHkmJik7CisgICAg
dm9pZCBydW5KYXZhU2NyaXB0Q29uZmlybShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYsIE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRDb25maXJtOjpEZWxheWVkUmVwbHkmJik7CisgICAg
dm9pZCBydW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdDo6RGVsYXllZFJl
cGx5JiYpOwogICAgIHZvaWQgc2V0U3RhdHVzVGV4dChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lk
IG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KFdlYkhpdFRlc3RSZXN1bHREYXRhJiYsIHVpbnQzMl90
IG1vZGlmaWVycywgVXNlckRhdGEmJik7CiAKQEAgLTE3MDEsMjEgKzE3MDEsMjEgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHJvb3RWaWV3VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmll
d1JlY3QsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJvb3RWaWV3VG9TY3JlZW46OkRlbGF5ZWRS
ZXBseSYmKTsKICAgICB2b2lkIGFjY2Vzc2liaWxpdHlTY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBzY3JlZW5Qb2ludCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpJbnRQb2ludCk+JiYpOwogICAgIHZvaWQgcm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3Jl
ZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld1JlY3QsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoV2ViQ29yZTo6SW50UmVjdCk+JiYpOwotICAgIHZvaWQgcnVuQmVmb3JlVW5sb2FkQ29uZmly
bVBhbmVsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBydW5CZWZv
cmVVbmxvYWRDb25maXJtUGFuZWwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDo6RGVsYXllZFJlcGx5
JiYpOwogICAgIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6
OlZpZXdwb3J0QXR0cmlidXRlcyYpOwogICAgIHZvaWQgcGFnZURpZFNjcm9sbCgpOwotICAgIHZv
aWQgcnVuT3BlblBhbmVsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYsIGNvbnN0IFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MmKTsKKyAgICB2
b2lkIHJ1bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3Mm
KTsKICAgICB2b2lkIHNob3dTaGFyZVNoZWV0KGNvbnN0IFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQ
YXJzZWRVUkwmLCBTaGFyZVNoZWV0Q2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBwcmludEZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBl
eGNlZWRlZERhdGFiYXNlUXVvdGEodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmln
aW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBk
aXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2lu
VXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVz
YWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFeGNlZWRlZERhdGFiYXNlUXVvdGE6OkRlbGF5
ZWRSZXBseSYmKTsKKyAgICB2b2lkIHByaW50RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgZXhjZWVkZWREYXRhYmFz
ZVF1b3RhKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5
TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2Us
IHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFeGNlZWRlZERhdGFiYXNlUXVvdGE6OkRlbGF5ZWRSZXBs
eSYmKTsKICAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoY29uc3Qg
U3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90
IHRvdGFsQnl0ZXNOZWVkZWQsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlYWNoZWRBcHBsaWNh
dGlvbkNhY2hlT3JpZ2luUXVvdGE6OkRlbGF5ZWRSZXBseSYmKTsKLSAgICB2b2lkIHJlcXVlc3RH
ZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCB1aW50
NjRfdCBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcik7CisgICAgdm9pZCByZXF1ZXN0
R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcik7CiAKICNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5JiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKTsKICNlbmRpZgotICAg
IHZvaWQgcmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVk
aWFJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKLSAgICB2b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNlc0Zv
ckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luRGF0YSwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0
YSk7CisgICAgdm9pZCByZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90
IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVu
dGlmaWVyLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJik7CisgICAgdm9pZCBlbnVtZXJh
dGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luRGF0YSwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0
b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YSk7CiAgICAgdm9pZCBiZWdpbk1vbml0b3JpbmdDYXB0
dXJlRGV2aWNlcygpOwogCiAgICAgdm9pZCBydW5Nb2RhbCgpOwpAQCAtMTg5NSw4ICsxODk1LDgg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHByaW50RmluaXNoZWRDYWxsYmFjayhjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yJiwgQ2FsbGJhY2tJRCk7CiAjZW5kaWYKIAotICAgIHZvaWQgZm9jdXNl
ZEZyYW1lQ2hhbmdlZCh1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGZyYW1lU2V0TGFyZ2Vz
dEZyYW1lQ2hhbmdlZCh1aW50NjRfdCBmcmFtZUlEKTsKKyAgICB2b2lkIGZvY3VzZWRGcmFtZUNo
YW5nZWQoY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiYpOworICAgIHZv
aWQgZnJhbWVTZXRMYXJnZXN0RnJhbWVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7
CiAKICAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmdEYXRhRm9yQ3VzdG9tQ29udGVudFByb3ZpZGVy
KGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5j
ZSYpOwogCkBAIC0xOTk3LDcgKzE5OTcsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFC
TEUoQ09OVEVOVF9GSUxURVJJTkcpCi0gICAgdm9pZCBjb250ZW50RmlsdGVyRGlkQmxvY2tMb2Fk
Rm9yRnJhbWUoY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiwgdWlu
dDY0X3QgZnJhbWVJRCk7CisgICAgdm9pZCBjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJh
bWUoY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyKTsKICNlbmRpZgogCiAgICAgdm9pZCB0cnlSZWxvYWRBZnRlclByb2Nl
c3NUZXJtaW5hdGlvbigpOwpAQCAtMjExMCw3ICsyMTEwLDcgQEAgcHJpdmF0ZToKICAgICBzdGF0
aWMgYm9vbCBpc0luSGFyZHdhcmVLZXlib2FyZE1vZGUoKTsKICNlbmRpZgogCi0gICAgdm9pZCBt
YWtlU3RvcmFnZVNwYWNlUmVxdWVzdCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9y
aWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcm
IGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmln
aW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVk
VXNhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmKTsKKyAgICB2b2lkIG1h
a2VTdG9yYWdlU3BhY2VSZXF1ZXN0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3Qg
U3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJy
ZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBl
eHBlY3RlZFVzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJik7CiAKICAg
ICBXZWFrUHRyPFBhZ2VDbGllbnQ+IG1fcGFnZUNsaWVudDsKICAgICBSZWY8QVBJOjpQYWdlQ29u
ZmlndXJhdGlvbj4gbV9jb25maWd1cmF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGVjYWQ5NWU0NmI1NDNhYzkxNTA0MGU2
MGVmNDA0YmVkNjQyNjcxNjEuLjFjN2QwMTBiODhmMTU2MGI0OWVmMmZkZWJjMDEyMzg0NTQyNTJh
ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KQEAgLTI1LDkgKzI1LDkgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBD
cmVhdGVOZXdQYWdlKHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFt
ZUluZm9EYXRhLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQ
YWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBzdHJ1Y3QgV2ViQ29yZTo6
V2luZG93RmVhdHVyZXMgd2luZG93RmVhdHVyZXMsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25B
Y3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhKSAtPiAoT3B0aW9uYWw8V2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXI+IG5ld1BhZ2VJRCwgT3B0aW9uYWw8V2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzPiBuZXdQYWdlUGFyYW1ldGVycykgU3luY2hyb25vdXMKICAgICBTaG93UGFnZSgp
CiAgICAgQ2xvc2VQYWdlKGJvb2wgc3RvcFJlc3BvbnNpdmVuZXNzVGltZXIpCi0gICAgUnVuSmF2
YVNjcmlwdEFsZXJ0KHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3NhZ2UpIC0+ICgpIFN5bmNo
cm9ub3VzCi0gICAgUnVuSmF2YVNjcmlwdENvbmZpcm0odWludDY0X3QgZnJhbWVJRCwgc3RydWN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBTdHJpbmcg
bWVzc2FnZSkgLT4gKGJvb2wgcmVzdWx0KSBTeW5jaHJvbm91cwotICAgIFJ1bkphdmFTY3JpcHRQ
cm9tcHQodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSwgU3RyaW5nIGRlZmF1bHRWYWx1
ZSkgLT4gKFN0cmluZyByZXN1bHQpIFN5bmNocm9ub3VzCisgICAgUnVuSmF2YVNjcmlwdEFsZXJ0
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFN0cmluZyBtZXNzYWdlKSAtPiAoKSBT
eW5jaHJvbm91cworICAgIFJ1bkphdmFTY3JpcHRDb25maXJtKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIFN0cmluZyBtZXNzYWdlKSAtPiAoYm9vbCByZXN1bHQpIFN5bmNocm9ub3Vz
CisgICAgUnVuSmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2lu
LCBTdHJpbmcgbWVzc2FnZSwgU3RyaW5nIGRlZmF1bHRWYWx1ZSkgLT4gKFN0cmluZyByZXN1bHQp
IFN5bmNocm9ub3VzCiAgICAgTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoc3RydWN0IFdlYktpdDo6
V2ViSGl0VGVzdFJlc3VsdERhdGEgaGl0VGVzdFJlc3VsdERhdGEsIHVpbnQzMl90IG1vZGlmaWVy
cywgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKIAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVH
SU5fQVBJKQpAQCAtNDcsOCArNDcsOCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAg
IFNldFRvb2xUaXAoU3RyaW5nIHRvb2xUaXApCiAgICAgU2V0Rm9jdXMoYm9vbCBmb2N1c2VkKQog
ICAgIFRha2VGb2N1cyh1aW50MzJfdCBkaXJlY3Rpb24pCi0gICAgRm9jdXNlZEZyYW1lQ2hhbmdl
ZCh1aW50NjRfdCBmcmFtZUlEKQotICAgIEZyYW1lU2V0TGFyZ2VzdEZyYW1lQ2hhbmdlZCh1aW50
NjRfdCBmcmFtZUlEKQorICAgIEZvY3VzZWRGcmFtZUNoYW5nZWQoT3B0aW9uYWw8V2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKQorICAgIEZyYW1lU2V0TGFyZ2VzdEZyYW1lQ2hhbmdl
ZChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKICAgICBTZXRSZW5kZXJUcmVlU2l6
ZSh1aW50NjRfdCB0cmVlU2l6ZSkKICAgICBTZXRUb29sYmFyc0FyZVZpc2libGUoYm9vbCB0b29s
YmFyc0FyZVZpc2libGUpCiAgICAgR2V0VG9vbGJhcnNBcmVWaXNpYmxlKCkgLT4gKGJvb2wgdG9v
bGJhcnNBcmVWaXNpYmxlKSBTeW5jaHJvbm91cwpAQCAtNjksMTEgKzY5LDExIEBAIG1lc3NhZ2Vz
IC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgSGlkZVZhbGlkYXRpb25NZXNzYWdlKCkKICNlbmRpZgog
Ci0gICAgUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVj
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgU3RyaW5n
IG1lc3NhZ2UpIC0+IChib29sIHNob3VsZENsb3NlKSBTeW5jaHJvbm91cworICAgIFJ1bkJlZm9y
ZVVubG9hZENvbmZpcm1QYW5lbChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3Ry
dWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBTdHJp
bmcgbWVzc2FnZSkgLT4gKGJvb2wgc2hvdWxkQ2xvc2UpIFN5bmNocm9ub3VzCiAgICAgUGFnZURp
ZFNjcm9sbCgpCi0gICAgUnVuT3BlblBhbmVsKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgc3RydWN0IFdlYkNv
cmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MgcGFyYW1ldGVycykKKyAgICBSdW5PcGVuUGFuZWwoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgc3RydWN0IFdlYkNvcmU6OkZpbGVDaG9vc2Vy
U2V0dGluZ3MgcGFyYW1ldGVycykKICAgICBTaG93U2hhcmVTaGVldChzdHJ1Y3QgV2ViQ29yZTo6
U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCBzaGFyZURhdGEsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCi0g
ICAgUHJpbnRGcmFtZSh1aW50NjRfdCBmcmFtZUlEKSAtPiAoKSBTeW5jaHJvbm91cworICAgIFBy
aW50RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIC0+ICgpIFN5bmNocm9u
b3VzCiAgICAgUnVuTW9kYWwoKQogICAgIE5vdGlmeVNjcm9sbGVyVGh1bWJJc1Zpc2libGVJblJl
Y3QoV2ViQ29yZTo6SW50UmVjdCBzY3JvbGxlclRodW1iKQogICAgIFJlY29tbWVuZGVkU2Nyb2xs
YmFyU3R5bGVEaWRDaGFuZ2UoaW50MzJfdCBuZXdTdHlsZSkKQEAgLTEwMywxMSArMTAzLDExIEBA
IG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjZW5kaWYKIAogICAgICMgUG9saWN5IG1lc3Nh
Z2VzCi0gICAgRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UodWludDY0X3QgZnJhbWVJRCwgc3RydWN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3Jl
OjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgU3RyaW5nIGRv
d25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVz
ZXJEYXRhKQotICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyh1aW50NjRf
dCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJp
dHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50
aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFj
dGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0Rh
dGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRp
Zmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBvcmlnaW5h
bFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBJUEM6OkZvcm1EYXRh
UmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0
UmVzcG9uc2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEsIHVpbnQ2NF90IGxpc3RlbmVySUQp
Ci0gICAgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmModWludDY0X3QgZnJhbWVJ
RCwgYm9vbCBpc01haW5GcmFtZSwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBm
cmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5
Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJLaXQ6Ok5h
dmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBzdHJ1Y3QgV2ViS2l0OjpG
cmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViQ29yZTo6
UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgSVBD
OjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKSAtPiAoV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgZW51bTp1aW50
OF90IFdlYkNvcmU6OlBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90IG5ld05hdmln
YXRpb25JRCwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIE9wdGlvbmFsPFdlYktpdDo6
V2Vic2l0ZVBvbGljaWVzRGF0YT4gd2Vic2l0ZVBvbGljaWVzKSBTeW5jaHJvbm91cwotICAgIERl
Y2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBv
bGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHN0cnVjdCBXZWJLaXQ6
Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVuZXJJ
RCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBVbmFibGVUb0ltcGxlbWVudFBvbGlj
eSh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBXZWJLaXQ6
OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBw
b2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qs
IGJvb2wgY2FuU2hvd01JTUVUeXBlLCBTdHJpbmcgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90
IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4s
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEg
bmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2lu
YXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3Jp
Z2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVlc3Qs
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNl
IHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2Us
IFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEsIHVpbnQ2NF90IGxpc3RlbmVySUQpCisgICAgRGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVy
IHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2Vi
S2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdl
YktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkgLT4g
KFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIGVu
dW06dWludDhfdCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCB1aW50NjRfdCBu
ZXdOYXZpZ2F0aW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBPcHRpb25hbDxX
ZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQb2xpY2llcykgU3luY2hyb25vdXMK
KyAgICBEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1
cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRl
bnRpZmllciwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFj
dGlvbkRhdGEsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcgZnJhbWVO
YW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAg
IFVuYWJsZVRvSW1wbGVtZW50UG9saWN5KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRh
KQogCiAgICAgIyBQcm9ncmVzcyBtZXNzYWdlcwogICAgIERpZENoYW5nZVByb2dyZXNzKGRvdWJs
ZSB2YWx1ZSkKQEAgLTExNyw1MSArMTE3LDUxIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7
CiAgICAgU2V0TmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcyhib29sIG5ldHdvcmtSZXF1ZXN0c0lu
UHJvZ3Jlc3MpCiAKICAgICAjIEZyYW1lIGxpZmV0aW1lIG1lc3NhZ2VzCi0gICAgRGlkQ3JlYXRl
TWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCi0gICAgRGlkQ3JlYXRlU3ViZnJhbWUodWludDY0
X3QgZnJhbWVJRCkKKyAgICBEaWRDcmVhdGVNYWluRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQpCisgICAgRGlkQ3JlYXRlU3ViZnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQpCiAKLSAgICBEaWRDcmVhdGVXaW5kb3codWludDY0X3QgZnJhbWVJRCwgc3Ry
dWN0IFdlYkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXIgd2luZG93SWRlbnRpZmllcikKKyAg
ICBEaWRDcmVhdGVXaW5kb3coV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVj
dCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlmaWVyIHdpbmRvd0lkZW50aWZpZXIpCiAKICAg
ICAjIEZyYW1lIGxvYWQgbWVzc2FnZXMKLSAgICBEaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMIHVybCwgVVJM
IHVucmVhY2hhYmxlVVJMLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZFJlY2Vp
dmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgV2lsbFBlcmZvcm1DbGllbnRSZWRp
cmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyB1cmwsIGRvdWJsZSBkZWxheSwg
ZW51bTpib29sIFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlz
dCkKLSAgICBEaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQp
Ci0gICAgRGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCB1cmwpCi0gICAgRGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBTdHJpbmcg
cHJvdmlzaW9uYWxVUkwsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIGVudW06Ym9vbCBX
ZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250aW51ZUxvYWRpbmcsIFdlYktpdDo6
VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgU3RyaW5nIG1pbWVUeXBlLCBib29sIGhhc0N1
c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgbG9hZFR5cGUsIFdlYkNvcmU6OkNlcnRpZmlj
YXRlSW5mbyBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0
aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRl
bnQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlkRmFpbExvYWRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNl
RXJyb3IgZXJyb3IsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlkRmluaXNoRG9j
dW1lbnRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZEZpbmlzaExvYWRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYktpdDo6VXNlckRhdGEg
dXNlckRhdGEpCi0gICAgRGlkRmlyc3RMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBX
ZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxh
eW91dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEp
CisgICAgRGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwgdXJsLCBVUkwgdW5yZWFj
aGFibGVVUkwsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkUmVjZWl2ZVNlcnZl
clJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgV2lsbFBlcmZvcm1D
bGllbnRSZWRpcmVjdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBT
dHJpbmcgdXJsLCBkb3VibGUgZGVsYXksIGVudW06Ym9vbCBXZWJDb3JlOjpMb2NrQmFja0Zvcndh
cmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QpCisgICAgRGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RG
b3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKKyAgICBEaWRDaGFuZ2VQ
cm92aXNpb25hbFVSTEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCB1cmwpCisgICAgRGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgU3RyaW5nIHByb3Zpc2lvbmFsVVJMLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVy
cm9yLCBlbnVtOmJvb2wgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVM
b2FkaW5nLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZENvbW1pdExvYWRGb3JG
cmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBTdHJpbmcgbWltZVR5cGUsIGJvb2wgaGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50
MzJfdCBsb2FkVHlwZSwgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvIGNlcnRpZmljYXRlSW5mbywg
Ym9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3Vy
ZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgV2ViS2l0OjpVc2VyRGF0YSB1c2Vy
RGF0YSkKKyAgICBEaWRGYWlsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJy
b3IsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkRmluaXNoRG9jdW1lbnRMb2Fk
Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWRGaW5pc2hMb2FkRm9y
RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWRGaXJzdExheW91dEZvckZy
YW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJLaXQ6OlVzZXJEYXRhIHVz
ZXJEYXRhKQorICAgIERpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQog
ICAgIERpZFJlYWNoTGF5b3V0TWlsZXN0b25lKE9wdGlvblNldDxXZWJDb3JlOjpMYXlvdXRNaWxl
c3RvbmU+IGxheW91dE1pbGVzdG9uZXMpCi0gICAgRGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgU3RyaW5nIHRpdGxlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQot
ICAgIERpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBX
ZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZFJ1bkluc2VjdXJlQ29udGVudEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlk
RGV0ZWN0WFNTRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2Vy
RGF0YSkKLSAgICBEaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50MzJfdCB0eXBlLCBVUkwgdXJsLCBXZWJL
aXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZENoYW5nZU1haW5Eb2N1bWVudCh1aW50NjRf
dCBmcmFtZUlEKQotICAgIERpZEV4cGxpY2l0T3BlbkZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IFVSTCB1cmwpCisgICAgRGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIFN0cmluZyB0aXRsZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkK
KyAgICBEaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkUnVuSW5z
ZWN1cmVDb250ZW50Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdl
YktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkRGV0ZWN0WFNTRm9yRnJhbWUoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisg
ICAgRGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQzMl90IHR5cGUsIFVSTCB1
cmwsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkQ2hhbmdlTWFpbkRvY3VtZW50
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQorICAgIERpZEV4cGxpY2l0T3BlbkZv
ckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBVUkwgdXJsKQogICAgIERp
ZERlc3Ryb3lOYXZpZ2F0aW9uKHVpbnQ2NF90IG5hdmlnYXRpb25JRCkKIAogICAgIEhhc0luc2Vj
dXJlQ29udGVudCgpIC0+IChlbnVtOmJvb2wgV2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50IGhh
c0luc2VjdXJlQ29udGVudCkgU3luY2hyb25vdXMKIAogICAgIE1haW5GcmFtZVBsdWdpbkhhbmRs
ZXNQYWdlU2NhbGVHZXN0dXJlRGlkQ2hhbmdlKGJvb2wgbWFpbkZyYW1lUGx1Z2luSGFuZGxlc1Bh
Z2VTY2FsZUdlc3R1cmUpCiAKLSAgICBGcmFtZURpZEJlY29tZUZyYW1lU2V0KHVpbnQ2NF90IGZy
YW1lSUQsIGJvb2wgdmFsdWUpCisgICAgRnJhbWVEaWRCZWNvbWVGcmFtZVNldChXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCB2YWx1ZSkKIAogICAgICMgSGlzdG9yeSBjbGll
bnQgbWVzc2FnZXMuCi0gICAgRGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoc3RydWN0IFdl
YktpdDo6V2ViTmF2aWdhdGlvbkRhdGFTdG9yZSBzdG9yZSwgdWludDY0X3QgZnJhbWVJRCkKLSAg
ICBEaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoU3RyaW5nIHNvdXJjZVVSTFN0cmluZywgU3RyaW5n
IGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKQotICAgIERpZFBlcmZvcm1T
ZXJ2ZXJSZWRpcmVjdChTdHJpbmcgc291cmNlVVJMU3RyaW5nLCBTdHJpbmcgZGVzdGluYXRpb25V
UkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpCi0gICAgRGlkVXBkYXRlSGlzdG9yeVRpdGxlKFN0
cmluZyB0aXRsZSwgU3RyaW5nIHVybCwgdWludDY0X3QgZnJhbWVJRCkKKyAgICBEaWROYXZpZ2F0
ZVdpdGhOYXZpZ2F0aW9uRGF0YShzdHJ1Y3QgV2ViS2l0OjpXZWJOYXZpZ2F0aW9uRGF0YVN0b3Jl
IHN0b3JlLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKKyAgICBEaWRQZXJmb3Jt
Q2xpZW50UmVkaXJlY3QoU3RyaW5nIHNvdXJjZVVSTFN0cmluZywgU3RyaW5nIGRlc3RpbmF0aW9u
VVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKKyAgICBEaWRQZXJm
b3JtU2VydmVyUmVkaXJlY3QoU3RyaW5nIHNvdXJjZVVSTFN0cmluZywgU3RyaW5nIGRlc3RpbmF0
aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKKyAgICBEaWRV
cGRhdGVIaXN0b3J5VGl0bGUoU3RyaW5nIHRpdGxlLCBTdHJpbmcgdXJsLCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCkKIAogICAgICMgQ3VzdG9tIHJlcHJlc2VudGF0aW9ucwogICAg
IERpZEZpbmlzaExvYWRpbmdEYXRhRm9yQ3VzdG9tQ29udGVudFByb3ZpZGVyKFN0cmluZyBzdWdn
ZXN0ZWRGaWxlbmFtZSwgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpCiAKICAgICAjIEZvcm1zIG1l
c3NhZ2VzCi0gICAgV2lsbFN1Ym1pdEZvcm0odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qgc291
cmNlRnJhbWVJRCwgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+IHRleHRGaWVsZFZh
bHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAg
ICBXaWxsU3VibWl0Rm9ybShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIHNvdXJjZUZyYW1lSUQsIFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5n
LCBTdHJpbmc+PiB0ZXh0RmllbGRWYWx1ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6
VXNlckRhdGEgdXNlckRhdGEpCiAKICAgICAjIENhbGxiYWNrIG1lc3NhZ2VzCiAgICAgVm9pZENh
bGxiYWNrKFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQpAQCAtMjc1LDE4ICsyNzUsMTgg
QEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgogCiAgICAgIyBEYXRhYmFzZSBt
ZXNzYWdlcwotICAgIEV4Y2VlZGVkRGF0YWJhc2VRdW90YSh1aW50NjRfdCBmcmFtZUlELCBTdHJp
bmcgb3JpZ2luSWRlbnRpZmllciwgU3RyaW5nIGRhdGFiYXNlTmFtZSwgU3RyaW5nIGRhdGFiYXNl
RGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdp
blVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRV
c2FnZSkgLT4gKHVpbnQ2NF90IG5ld1F1b3RhKSBTeW5jaHJvbm91cworICAgIEV4Y2VlZGVkRGF0
YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIG9yaWdp
bklkZW50aWZpZXIsIFN0cmluZyBkYXRhYmFzZU5hbWUsIFN0cmluZyBkYXRhYmFzZURpc3BsYXlO
YW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwg
dWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UpIC0+
ICh1aW50NjRfdCBuZXdRdW90YSkgU3luY2hyb25vdXMKIAogICAgICMgQXBwbGljYXRpb24gY2Fj
aGUgbWVzc2FnZXMKICAgICBSZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFN0cmlu
ZyBvcmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFs
Qnl0ZXNOZWVkZWQpIC0+ICh1aW50NjRfdCBuZXdRdW90YSkgU3luY2hyb25vdXMKIAogICAgICMg
R2VvbG9jYXRpb24gbWVzc2FnZXMKLSAgICBSZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9y
RnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9y
aWdpbklkZW50aWZpZXIpCisgICAgUmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1l
KHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKICAgICAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQogICAgICMgTWVkaWFTdGVhbSBtZXNzYWdlcwotICAgIFJlcXVlc3RVc2VyTWVkaWFQZXJtaXNz
aW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVj
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVu
dGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcExldmVsRG9jdW1l
bnRPcmlnaW5JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0IHJl
cXVlc3QpCi0gICAgRW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1l
ZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyKQorICAgIFJl
cXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgc3RydWN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwg
c3RydWN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCByZXF1ZXN0KQorICAgIEVudW1lcmF0
ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIpCiAgICAgQmVnaW5N
b25pdG9yaW5nQ2FwdHVyZURldmljZXMoKQogI2VuZGlmCiAKQEAgLTQ3Myw3ICs0NzMsNyBAQCBt
ZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ09OVEVOVF9G
SUxURVJJTkcpCi0gICAgQ29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKFdlYkNvcmU6
OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciB1bmJsb2NrSGFuZGxlciwgdWludDY0X3QgZnJh
bWVJRCkKKyAgICBDb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWUoV2ViQ29yZTo6Q29u
dGVudEZpbHRlclVuYmxvY2tIYW5kbGVyIHVuYmxvY2tIYW5kbGVyLCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCkKICNlbmRpZgogCiAgICAgSXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2Uo
dW5zaWduZWQgc3RhdGUsIHVpbnQ2NF90IHNvdXJjZUVsZW1lbnRJRCkKQEAgLTUzOSw3ICs1Mzks
NyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIExvYWRTeW5jaHJvbm91c1VSTFNj
aGVtZVRhc2soc3RydWN0IFdlYktpdDo6VVJMU2NoZW1lVGFza1BhcmFtZXRlcnMgcGFyYW1ldGVy
cykgLT4gKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJlc291
cmNlRXJyb3IgZXJyb3IsIFZlY3RvcjxjaGFyPiBkYXRhKSBTeW5jaHJvbm91cwogCiAjaWYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKLSAgICBTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9u
QW5kTW90aW9uQWNjZXNzKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEgb3JpZ2luLCBib29sIG1heVByb21wdCkgLT4gKGVudW06dWludDhfdCBXZWJD
b3JlOjpEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlIHBlcm1pc3Npb25T
dGF0ZSkgQXN5bmMKKyAgICBTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNj
ZXNzKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhIG9yaWdpbiwgYm9vbCBtYXlQcm9tcHQpIC0+IChlbnVtOnVpbnQ4X3Qg
V2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSBwZXJtaXNz
aW9uU3RhdGUpIEFzeW5jCiAjZW5kaWYKIAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBlMTY5
MTM3ZjUzODlkMzBiYjhiMTFiM2E4ZTFmNTBjYTQzYWEwNmVkLi45NWI1ODYzOWYzYzQwY2M2MzAw
YTQ0ZjJjMDQ0OWVmZmVmOGFkMTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHAKQEAgLTgyNywyNSArODI3LDI1IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5
OjpkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiBsYXVuY2hlciwgSVBDOjpDb25u
ZWN0CiAjZW5kaWYKIH0KIAotV2ViRnJhbWVQcm94eSogV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJGcmFt
ZSh1aW50NjRfdCBmcmFtZUlEKSBjb25zdAorV2ViRnJhbWVQcm94eSogV2ViUHJvY2Vzc1Byb3h5
Ojp3ZWJGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkgY29uc3QKIHsKICAgICBpZiAoIVdl
YkZyYW1lUHJveHlNYXA6OmlzVmFsaWRLZXkoZnJhbWVJRCkpCi0gICAgICAgIHJldHVybiAwOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHJldHVybiBtX2ZyYW1lTWFwLmdldChmcmFt
ZUlEKTsKIH0KIAotYm9vbCBXZWJQcm9jZXNzUHJveHk6OmNhbkNyZWF0ZUZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQpIGNvbnN0Citib29sIFdlYlByb2Nlc3NQcm94eTo6Y2FuQ3JlYXRlRnJhbWUoRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFdlYkZyYW1lUHJveHlN
YXA6OmlzVmFsaWRLZXkoZnJhbWVJRCkgJiYgIW1fZnJhbWVNYXAuY29udGFpbnMoZnJhbWVJRCk7
CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpmcmFtZUNyZWF0ZWQodWludDY0X3QgZnJhbWVJ
RCwgV2ViRnJhbWVQcm94eSYgZnJhbWVQcm94eSkKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpmcmFt
ZUNyZWF0ZWQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkZyYW1lUHJveHkmIGZyYW1lUHJv
eHkpCiB7CiAgICAgbV9mcmFtZU1hcC5zZXQoZnJhbWVJRCwgJmZyYW1lUHJveHkpOwogfQogCi12
b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRGVzdHJveUZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCit2
b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRGVzdHJveUZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlEKQogewogICAgIC8vIElmIHRoZSBwYWdlIGlzIGNsb3NlZCBiZWZvcmUgaXQgaGFzIGhhZCB0
aGUgY2hhbmNlIHRvIHNlbmQgdGhlIERpZENyZWF0ZU1haW5GcmFtZSBtZXNzYWdlCiAgICAgLy8g
YmFjayB0byB0aGUgVUlQcm9jZXNzLCB0aGVuIHRoZSBmcmFtZURlc3Ryb3llZCBtZXNzYWdlIHdp
bGwgc3RpbGwgYmUgcmVjZWl2ZWQgYmVjYXVzZSBpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaAppbmRleCAzMDA5NmRkMzA4NTQ4Yjg5MDQ5YzgzNTEwZWVhNzFiYjA1
OTc2ZmZjLi4xOGY0ODgwYTBiYjJkNGQ4M2QyZmI2YzU5N2M4N2M3Y2RkNmVjODk2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMzgsNiArMzgsNyBAQAog
I2luY2x1ZGUgIlZpc2libGVXZWJQYWdlQ291bnRlci5oIgogI2luY2x1ZGUgIldlYkNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9N
ZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVzc2FnZVBv
cnRJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgpAQCAt
OTcsNyArOTgsNyBAQCBlbnVtIGNsYXNzIEFsbG93UHJvY2Vzc0NhY2hpbmcgeyBObywgWWVzIH07
CiAKIGNsYXNzIFdlYlByb2Nlc3NQcm94eSA6IHB1YmxpYyBBdXhpbGlhcnlQcm9jZXNzUHJveHks
IHB1YmxpYyBSZXNwb25zaXZlbmVzc1RpbWVyOjpDbGllbnQsIHB1YmxpYyBUaHJlYWRTYWZlUmVm
Q291bnRlZDxXZWJQcm9jZXNzUHJveHk+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8V2ViUHJvY2Vz
c1Byb3h5PiwgcHJpdmF0ZSBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50IHsKIHB1YmxpYzoKLSAgICB0
eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJGcmFtZVByb3h5Pj4gV2ViRnJhbWVQ
cm94eU1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBS
ZWZQdHI8V2ViRnJhbWVQcm94eT4+IFdlYkZyYW1lUHJveHlNYXA7CiAgICAgdHlwZWRlZiBIYXNo
TWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJQYWdlUHJveHkqPiBXZWJQYWdlUHJveHlN
YXA7CiAgICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8QVBJOjpVc2VySW5pdGlh
dGVkQWN0aW9uPj4gVXNlckluaXRpYXRlZEFjdGlvbk1hcDsKIApAQCAtMTY0LDkgKzE2NSw5IEBA
IHB1YmxpYzoKICAgICBSZXNwb25zaXZlbmVzc1RpbWVyJiByZXNwb25zaXZlbmVzc1RpbWVyKCkg
eyByZXR1cm4gbV9yZXNwb25zaXZlbmVzc1RpbWVyOyB9CiAgICAgYm9vbCBpc1Jlc3BvbnNpdmUo
KSBjb25zdDsKIAotICAgIFdlYkZyYW1lUHJveHkqIHdlYkZyYW1lKHVpbnQ2NF90KSBjb25zdDsK
LSAgICBib29sIGNhbkNyZWF0ZUZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpIGNvbnN0OwotICAgIHZv
aWQgZnJhbWVDcmVhdGVkKHVpbnQ2NF90LCBXZWJGcmFtZVByb3h5Jik7CisgICAgV2ViRnJhbWVQ
cm94eSogd2ViRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKSBjb25zdDsKKyAgICBib29s
IGNhbkNyZWF0ZUZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcikgY29uc3Q7CisgICAgdm9p
ZCBmcmFtZUNyZWF0ZWQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJGcmFtZVByb3h5Jik7
CiAgICAgdm9pZCBkaXNjb25uZWN0RnJhbWVzRnJvbVBhZ2UoV2ViUGFnZVByb3h5Kik7IC8vIElu
Y2x1ZGluZyBtYWluIGZyYW1lLgogICAgIHNpemVfdCBmcmFtZUNvdW50SW5QYWdlKFdlYlBhZ2VQ
cm94eSopIGNvbnN0OyAvLyBJbmNsdWRpbmcgbWFpbiBmcmFtZS4KIApAQCAtMzM1LDcgKzMzNiw3
IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgLy8gSVBDIG1lc3NhZ2UgaGFuZGxlcnMuCiAg
ICAgdm9pZCB1cGRhdGVCYWNrRm9yd2FyZEl0ZW0oY29uc3QgQmFja0ZvcndhcmRMaXN0SXRlbVN0
YXRlJik7Ci0gICAgdm9pZCBkaWREZXN0cm95RnJhbWUodWludDY0X3QpOworICAgIHZvaWQgZGlk
RGVzdHJveUZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAgICAgdm9pZCBkaWREZXN0
cm95VXNlckdlc3R1cmVUb2tlbih1aW50NjRfdCk7CiAKICAgICBib29sIGNhbkJlQWRkZWRUb1dl
YlByb2Nlc3NDYWNoZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGYzZDVlOTMxZTZkZWU5MDJhNGFjNWU1
ZmM1YjEwZGQ0NjE1YjE1ZDAuLjMyYmFmZWE5ZTEwOTU4YzI1Y2QxOTRkYTE4NDUzNmFkMDkzZjc1
MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
bWVzc2FnZXMuaW4KQEAgLTIyLDcgKzIyLDcgQEAKIAogbWVzc2FnZXMgLT4gV2ViUHJvY2Vzc1By
b3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBVcGRhdGVCYWNrRm9yd2FyZEl0ZW0oc3RydWN0IFdl
YktpdDo6QmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlIGJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSkK
LSAgICBEaWREZXN0cm95RnJhbWUodWludDY0X3QgZnJhbWVJRCkgCisgICAgRGlkRGVzdHJveUZy
YW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSAKIAogICAgIERpZERlc3Ryb3lV
c2VyR2VzdHVyZVRva2VuKHVpbnQ2NF90IHVzZXJHZXN0dXJlVG9rZW5JRCkgCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KaW5kZXggNjgxMWU4N2E0YTQy
MTAwNWJkOTRhN2FjMjE2NTQzZWNjMDBhNzdmYy4uYzI5OTIxNDU4YWYwMWZkOTdhNDAwOTJjNzEz
ZjY3YzQxZmY3N2U3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXcubW0KQEAgLTcwMSw5ICs3MDEsOSBAQCAtIChOU1VJbnRlZ2VyKV93a19wYWdlQ291bnRG
b3JQcmludEZvcm1hdHRlcjooX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyICopcHJpbnRGbwogICAg
IGlmIChfaXNQcmludGluZ1RvUERGKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHVpbnQ2NF90
IGZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQ7CiAgICAgaWYg
KF9XS0ZyYW1lSGFuZGxlICpoYW5kbGUgPSBwcmludEZvcm1hdHRlci5mcmFtZVRvUHJpbnQpCi0g
ICAgICAgIGZyYW1lSUQgPSBoYW5kbGUuX2ZyYW1lSUQ7CisgICAgICAgIGZyYW1lSUQgPSBXZWJD
b3JlOjpmcmFtZUlkZW50aWZpZXJGcm9tSUQoaGFuZGxlLl9mcmFtZUlEKTsKICAgICBlbHNlIGlm
IChhdXRvIG1haW5GcmFtZSA9IF9wYWdlLT5tYWluRnJhbWUoKSkKICAgICAgICAgZnJhbWVJRCA9
IG1haW5GcmFtZS0+ZnJhbWVJRCgpOwogICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IGIwMjgyNDg5MjAwM2EwNDk4OTI5ZTcw
NmE1OTA0NTlhNGY4NzFhY2QuLjgyZDM1NDIxN2I3MDY0MjAxZTNkN2IwNzZlNWIwNTliOTYwMTFj
ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJ
T1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5t
bQpAQCAtMTA2Niw3ICsxMDY2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZVNtYXJ0TWFn
bmlmaWNhdGlvbkluZm9ybWF0aW9uRm9yUG90ZW50aWFsVGFwKHVpbnQ2NF90IHIKICAgICBwYWdl
Q2xpZW50KCkuaGFuZGxlU21hcnRNYWduaWZpY2F0aW9uSW5mb3JtYXRpb25Gb3JQb3RlbnRpYWxU
YXAocmVxdWVzdElELCByZW5kZXJSZWN0LCBmaXRFbnRpcmVSZWN0LCB2aWV3cG9ydE1pbmltdW1T
Y2FsZSwgdmlld3BvcnRNYXhpbXVtU2NhbGUpOwogfQogCi11aW50MzJfdCBXZWJQYWdlUHJveHk6
OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBEcmF3VG9QREZDYWxsYmFjazo6Q2FsbGJhY2tGdW5j
dGlvbiYmIGNhbGxiYWNrKQordWludDMyX3QgV2ViUGFnZVByb3h5Ojpjb21wdXRlUGFnZXNGb3JQ
cmludGluZ0FuZERyYXdUb1BERihGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJ
bmZvJiBwcmludEluZm8sIERyYXdUb1BERkNhbGxiYWNrOjpDYWxsYmFja0Z1bmN0aW9uJiYgY2Fs
bGJhY2spCiB7CiAgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2VzcygpKSB7CiAgICAgICAgIGNhbGxi
YWNrKElQQzo6RGF0YVJlZmVyZW5jZSgpLCBDYWxsYmFja0Jhc2U6OkVycm9yOjpPd25lcldhc0lu
dmFsaWRhdGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0
aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5jcHAKaW5kZXggZTYzNTNj
Y2RkNTRhZGZhNWFhNTkwNWI4OTczMDM0YmMxY2U5NTZmMi4uN2Y1N2ZmODBhY2QyYjk1MTE1OTEw
ZjU5NTk0ZDFkZmNmNDM2ZDNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5jcHAK
QEAgLTE0Myw3ICsxNDMsNyBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBldmFsdWF0ZUphdmFTY3JpcHRD
YWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZgogICAgIGlmICghYXV0
b21hdGlvblNlc3Npb25Qcm94eSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVk
KGNvbnRleHQpOwogCi0gICAgdWludDY0X3QgZnJhbWVJRCA9IEpTVmFsdWVUb051bWJlcihjb250
ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbik7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQgPSBXZWJDb3JlOjpmcmFtZUlkZW50aWZpZXJGcm9tSUQoSlNWYWx1ZVRvTnVt
YmVyKGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKSk7CiAgICAgdWludDY0X3QgY2Fs
bGJhY2tJRCA9IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMV0sIGV4Y2VwdGlv
bik7CiAgICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZihKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRl
eHQsIGFyZ3VtZW50c1syXSwgZXhjZXB0aW9uKSk7CiAKQEAgLTIyMCw3ICsyMjAsNyBAQCBXZWJD
b3JlOjpFbGVtZW50KiBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjplbGVtZW50Rm9yTm9kZUhh
bmRsZShXZWJGcmFtZSYgZnJhbQogCiB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRp
ZENsZWFyV2luZG93T2JqZWN0Rm9yRnJhbWUoV2ViRnJhbWUmIGZyYW1lKQogewotICAgIHVpbnQ2
NF90IGZyYW1lSUQgPSBmcmFtZS5mcmFtZUlEKCk7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQgPSBmcmFtZS5mcmFtZUlEKCk7CiAgICAgaWYgKEpTT2JqZWN0UmVmIHNjcmlw
dE9iamVjdCA9IG1fd2ViRnJhbWVTY3JpcHRPYmplY3RNYXAudGFrZShmcmFtZUlEKSkKICAgICAg
ICAgSlNWYWx1ZVVucHJvdGVjdChmcmFtZS5qc0NvbnRleHQoKSwgc2NyaXB0T2JqZWN0KTsKIApA
QCAtMjMyLDcgKzIzMiw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZGlkQ2xl
YXJXaW5kb3dPYmplY3RGb3JGcmFtZShXZWJGcmFtZSYgZnJhbWUpCiAgICAgICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
OldlYkF1dG9tYXRpb25TZXNzaW9uOjpEaWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihjYWxs
YmFja0lELCBlcnJvck1lc3NhZ2UsIGVycm9yVHlwZSksIDApOwogfQogCi12b2lkIFdlYkF1dG9t
YXRpb25TZXNzaW9uUHJveHk6OmV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBmdW5j
dGlvbiwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRzLCBib29sIGV4cGVjdHNJbXBsaWNpdENhbGxi
YWNrQXJndW1lbnQsIGludCBjYWxsYmFja1RpbWVvdXQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit2
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9u
KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgZnVuY3Rpb24sIFZlY3RvcjxTdHJpbmc+IGFyZ3VtZW50
cywgYm9vbCBleHBlY3RzSW1wbGljaXRDYWxsYmFja0FyZ3VtZW50LCBpbnQgY2FsbGJhY2tUaW1l
b3V0LCB1aW50NjRfdCBjYWxsYmFja0lEKQogewogICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAgICAgaWYgKCFwYWdlKSB7CkBAIC0y
NjMsNyArMjYzLDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpldmFsdWF0ZUph
dmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRpZmkKICAgICAgICAgdG9KU1ZhbHVl
KGNvbnRleHQsIGZ1bmN0aW9uKSwKICAgICAgICAgdG9KU0FycmF5KGNvbnRleHQsIGFyZ3VtZW50
cywgdG9KU1ZhbHVlLCAmZXhjZXB0aW9uKSwKICAgICAgICAgSlNWYWx1ZU1ha2VCb29sZWFuKGNv
bnRleHQsIGV4cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJndW1lbnQpLAotICAgICAgICBKU1ZhbHVl
TWFrZU51bWJlcihjb250ZXh0LCBmcmFtZUlEKSwKKyAgICAgICAgSlNWYWx1ZU1ha2VOdW1iZXIo
Y29udGV4dCwgZnJhbWVJRC50b1VJbnQ2NCgpKSwKICAgICAgICAgSlNWYWx1ZU1ha2VOdW1iZXIo
Y29udGV4dCwgY2FsbGJhY2tJRCksCiAgICAgICAgIEpTT2JqZWN0TWFrZUZ1bmN0aW9uV2l0aENh
bGxiYWNrKGNvbnRleHQsIG51bGxwdHIsIGV2YWx1YXRlSmF2YVNjcmlwdENhbGxiYWNrKSwKICAg
ICAgICAgSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgY2FsbGJhY2tUaW1lb3V0KQpAQCAtMzAw
LDcgKzMwMCw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZXZhbHVhdGVKYXZh
U2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6UGFnZUlkZW50aWZpCiAgICAgZGlkRXZhbHVhdGVKYXZh
U2NyaXB0RnVuY3Rpb24oZnJhbWVJRCwgY2FsbGJhY2tJRCwgZXhjZXB0aW9uTWVzc2FnZSwgZXJy
b3JUeXBlKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpkaWRFdmFsdWF0
ZUphdmFTY3JpcHRGdW5jdGlvbih1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBjYWxsYmFja0lE
LCBjb25zdCBTdHJpbmcmIHJlc3VsdCwgY29uc3QgU3RyaW5nJiBlcnJvclR5cGUpCit2b2lkIFdl
YkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBjYWxsYmFja0lELCBjb25z
dCBTdHJpbmcmIHJlc3VsdCwgY29uc3QgU3RyaW5nJiBlcnJvclR5cGUpCiB7CiAgICAgYXV0byBm
aW5kUmVzdWx0ID0gbV93ZWJGcmFtZVBlbmRpbmdFdmFsdWF0ZUphdmFTY3JpcHRDYWxsYmFja3NN
YXAuZmluZChmcmFtZUlEKTsKICAgICBpZiAoZmluZFJlc3VsdCAhPSBtX3dlYkZyYW1lUGVuZGlu
Z0V2YWx1YXRlSmF2YVNjcmlwdENhbGxiYWNrc01hcC5lbmQoKSkgewpAQCAtMzEzLDEyICszMTMs
MTMgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpkaWRFdmFsdWF0ZUphdmFTY3Jp
cHRGdW5jdGlvbih1aW50NjRfdCBmcmFtZUlELAogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25T
ZXNzaW9uOjpEaWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihjYWxsYmFja0lELCByZXN1bHQs
IGVycm9yVHlwZSksIDApOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJl
c29sdmVDaGlsZEZyYW1lV2l0aE9yZGluYWwoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
LCB1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBvcmRpbmFsLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKy8v
IEZJWE1FOiBUaGVzZSBjYWxsYmFja3Mgc2hvdWxkIHRha2UgT3B0aW9uYWw8V2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyPi4KK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNo
aWxkRnJhbWVXaXRoT3JkaW5hbChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50MzJfdCBvcmRpbmFsLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsKICAgICAgICAg
U3RyaW5nIHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0
b21hdGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVlKEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb246OkVycm9yTWVzc2FnZTo6V2luZG93Tm90Rm91bmQpOwotICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCkBAIC0zMjYsMzcgKzMyNywzNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNz
aW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGluYWwoV2ViQ29yZTo6UGFnZUlkZW50
aQogCiAgICAgV2ViRnJhbWUqIGZyYW1lID0gZnJhbWVJRCA/IFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLndlYkZyYW1lKGZyYW1lSUQpIDogcGFnZS0+bWFpbldlYkZyYW1lKCk7CiAgICAgaWYgKCFm
cmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBl
LCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwg
eyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFdlYkNvcmU6OkZyYW1lKiBjb3Jl
RnJhbWUgPSBmcmFtZS0+Y29yZUZyYW1lKCk7CiAgICAgaWYgKCFjb3JlRnJhbWUpIHsKLSAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKICAgICBXZWJDb3JlOjpGcmFtZSogY29yZUNoaWxkRnJhbWUgPSBj
b3JlRnJhbWUtPnRyZWUoKS5zY29wZWRDaGlsZChvcmRpbmFsKTsKICAgICBpZiAoIWNvcmVDaGls
ZEZyYW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5
cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBl
LCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgV2ViRnJhbWUqIGNoaWxkRnJh
bWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqY29yZUNoaWxkRnJhbWUpOwogICAgIGlmICgh
Y2hpbGRGcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJy
b3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9y
VHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGNvbXBsZXRpb25IYW5k
bGVyKFdURjo6bnVsbG9wdCwgY2hpbGRGcmFtZS0+ZnJhbWVJRCgpKTsKIH0KIAotdm9pZCBXZWJB
dXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOb2RlSGFuZGxlKFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3Ry
aW5nJiBub2RlSGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4s
IHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhhbmRsZShXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBT
dHJpbmcmIG5vZGVIYW5kbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5n
PiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdlSUQp
OwogICAgIGlmICghcGFnZSkgewogICAgICAgICBTdHJpbmcgd2luZG93Tm90Rm91bmRFcnJvclR5
cGUgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0
YW50VmFsdWUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JNZXNzYWdlOjpX
aW5kb3dOb3RGb3VuZCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHdpbmRvd05vdEZvdW5k
RXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIod2luZG93Tm90Rm91bmRF
cnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTM2NCwzNyArMzY1
LDM3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVX
aXRoTm9kZUhhbmRsZShXZWJDb3JlOjpQYWdlSWRlCiAKICAgICBXZWJGcmFtZSogZnJhbWUgPSBm
cmFtZUlEID8gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCkgOiBwYWdl
LT5tYWluV2ViRnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCiAgICAgV2ViQ29yZTo6RWxlbWVudCogY29yZUVsZW1lbnQgPSBlbGVtZW50Rm9yTm9kZUhh
bmRsZSgqZnJhbWUsIG5vZGVIYW5kbGUpOwogICAgIGlmICghaXM8V2ViQ29yZTo6SFRNTEZyYW1l
RWxlbWVudEJhc2U+KGNvcmVFbGVtZW50KSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihm
cmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJh
bWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAg
IFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWVGcm9tRWxlbWVudCA9IGRvd25jYXN0PFdlYkNvcmU6
OkhUTUxGcmFtZUVsZW1lbnRCYXNlPigqY29yZUVsZW1lbnQpLmNvbnRlbnRGcmFtZSgpOwogICAg
IGlmICghY29yZUZyYW1lRnJvbUVsZW1lbnQpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
ZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZy
YW1lTm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAg
ICBXZWJGcmFtZSogZnJhbWVGcm9tRWxlbWVudCA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpj
b3JlRnJhbWVGcm9tRWxlbWVudCk7CiAgICAgaWYgKCFmcmFtZUZyb21FbGVtZW50KSB7Ci0gICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGOjpudWxsb3B0LCBm
cmFtZUZyb21FbGVtZW50LT5mcmFtZUlEKCkpOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNz
aW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWludDY0X3QpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFt
ZVdpdGhOYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChPcHRpb25hbDxTdHJpbmc+LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAgICAgaWYgKCFwYWdlKSB7CiAgICAgICAgIFN0cmluZyB3
aW5kb3dOb3RGb3VuZEVycm9yVHlwZSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25I
ZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1ZShJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpFcnJvck1lc3NhZ2U6OldpbmRvd05vdEZvdW5kKTsKLSAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIod2luZG93Tm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcih3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIApAQCAtNDAyLDM3ICs0MDMsMzcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5
OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWUKIAogICAg
IFdlYkZyYW1lKiBmcmFtZSA9IGZyYW1lSUQgPyBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJG
cmFtZShmcmFtZUlEKSA6IHBhZ2UtPm1haW5XZWJGcmFtZSgpOwogICAgIGlmICghZnJhbWUpIHsK
LSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7Cisg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lID0g
ZnJhbWUtPmNvcmVGcmFtZSgpOwogICAgIGlmICghY29yZUZyYW1lKSB7Ci0gICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCiAgICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVDaGlsZEZyYW1lID0gY29yZUZyYW1l
LT50cmVlKCkuc2NvcGVkQ2hpbGQobmFtZSk7CiAgICAgaWYgKCFjb3JlQ2hpbGRGcmFtZSkgewot
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFdlYkZyYW1lKiBjaGlsZEZyYW1lID0gV2ViRnJh
bWU6OmZyb21Db3JlRnJhbWUoKmNvcmVDaGlsZEZyYW1lKTsKICAgICBpZiAoIWNoaWxkRnJhbWUp
IHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIHsgfSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEY6Om51
bGxvcHQsIGNoaWxkRnJhbWUtPmZyYW1lSUQoKSk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNl
c3Npb25Qcm94eTo6cmVzb2x2ZVBhcmVudEZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxT
dHJpbmc+LCB1aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHk6OnJlc29sdmVQYXJlbnRGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsKICAgICAgICAgU3Ry
aW5nIHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVlKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OkVycm9yTWVzc2FnZTo6V2luZG93Tm90Rm91bmQpOwotICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCkBAIC00NDAsMjAgKzQ0MSwyMCBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9u
UHJveHk6OnJlc29sdmVQYXJlbnRGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSQog
CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gZnJhbWVJRCA/IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LndlYkZyYW1lKGZyYW1lSUQpIDogcGFnZS0+bWFpbldlYkZyYW1lKCk7CiAgICAgaWYgKCFmcmFt
ZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAw
KTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFdlYkZyYW1lKiBwYXJlbnRGcmFtZSA9
IGZyYW1lLT5wYXJlbnRGcmFtZSgpOwogICAgIGlmICghcGFyZW50RnJhbWUpIHsKLSAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQsIHBhcmVu
dEZyYW1lLT5mcmFtZUlEKCkpOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6
OmZvY3VzRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFt
ZUlEKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpmb2N1c0ZyYW1lKFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQp
CiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2Uo
cGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpCkBAIC01MjgsNyArNTI5LDcgQEAgc3RhdGljIFdlYkNv
cmU6OkZsb2F0UG9pbnQgY29udmVydFBvaW50RnJvbUZyYW1lQ2xpZW50VG9Sb290VmlldyhXZWJD
b3JlOjpGcmFtZVYKICAgICByZXR1cm4gY2xpZW50UG9pbnQ7CiB9CiAKLXZvaWQgV2ViQXV0b21h
dGlvblNlc3Npb25Qcm94eTo6Y29tcHV0ZUVsZW1lbnRMYXlvdXQoV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBz
Y3JvbGxJbnRvVmlld0lmTmVlZGVkLCBDb29yZGluYXRlU3lzdGVtIGNvb3JkaW5hdGVTeXN0ZW0s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6SW50UmVj
dCwgT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBib29sKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Y29tcHV0ZUVsZW1lbnRMYXlvdXQo
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwg
Q29vcmRpbmF0ZVN5c3RlbSBjb29yZGluYXRlU3lzdGVtLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkludFJlY3QsIE9wdGlvbmFsPFdlYkNvcmU6Oklu
dFBvaW50PiwgYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUGFnZSogcGFn
ZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBh
Z2UpIHsKQEAgLTYzNiw3ICs2MzcsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6
OmNvbXB1dGVFbGVtZW50TGF5b3V0KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZwogICAgIGNv
bXBsZXRpb25IYW5kbGVyKFdURjo6bnVsbG9wdCwgcmVzdWx0RWxlbWVudEJvdW5kcywgcmVzdWx0
SW5WaWV3Q2VudGVyUG9pbnQsIGlzT2JzY3VyZWQpOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25T
ZXNzaW9uUHJveHk6OnNlbGVjdE9wdGlvbkVsZW1lbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
cGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQg
V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6c2VsZWN0T3B0aW9uRWxlbWVudChXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBT
dHJpbmcgbm9kZUhhbmRsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAgIGlmICghcGFnZSkgewpAQCAtNzA0
LDcgKzcwNSw3IEBAIHN0YXRpYyBXZWJDb3JlOjpJbnRSZWN0IHNuYXBzaG90UmVjdEZvclNjcmVl
bnNob3QoV2ViUGFnZSYgcGFnZSwgV2ViQ29yZTo6RWxlbWVuCiAgICAgcmV0dXJuIHsgfTsKIH0K
IAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojp0YWtlU2NyZWVuc2hvdChXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFu
ZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGJvb2wgY2xpcFRvVmlld3BvcnQsIHVp
bnQ2NF90IGNhbGxiYWNrSUQpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnRha2VT
Y3JlZW5zaG90KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3
SWZOZWVkZWQsIGJvb2wgY2xpcFRvVmlld3BvcnQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7CiAg
ICAgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaGFuZGxlOwogCkBAIC03NTIsNyArNzUzLDcgQEAg
dm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojp0YWtlU2NyZWVuc2hvdChXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIHUKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJl
bnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lv
bjo6RGlkVGFrZVNjcmVlbnNob3QoY2FsbGJhY2tJRCwgaGFuZGxlLCB7IH0pLCAwKTsKIH0KIAot
dm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpnZXRDb29raWVzRm9yRnJhbWUoV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+KT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Z2V0Q29v
a2llc0ZvckZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3Ry
aW5nPiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewog
ICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJ
RCk7CiAgICAgaWYgKCFwYWdlKSB7CkBAIC03NzcsNyArNzc4LDcgQEAgdm9pZCBXZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5OjpnZXRDb29raWVzRm9yRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIgcGFnZUkKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQsIGZvdW5kQ29va2ll
cyk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZGVsZXRlQ29va2llKFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIGNv
b2tpZU5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRlbGV0ZUNv
b2tpZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBTdHJpbmcgY29va2llTmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChP
cHRpb25hbDxTdHJpbmc+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQYWdlKiBw
YWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAgIGlmICgh
cGFnZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24v
V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1
dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oCmluZGV4IDExNjc2NDUyNzdkYmMx
OTMwYTVhN2E1OTdkY2JjMmRmM2VjZjU1YzkuLjVlMWIwZmNmZjBmYzg1OThiOGM3OTc3MGE2OGIx
ODFlNzhmNjM5MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0
aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmgKQEAgLTI4LDYgKzI4
LDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiQ29vcmRpbmF0ZVN5c3Rl
bS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQmFzZS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC01MSw3ICs1Miw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgZGlkQ2xlYXJXaW5kb3dPYmplY3RGb3JGcmFtZShXZWJGcmFtZSYp
OwogCi0gICAgdm9pZCBkaWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbih1aW50NjRfdCBmcmFt
ZUlELCB1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBTdHJpbmcmIHJlc3VsdCwgY29uc3QgU3Ry
aW5nJiBlcnJvclR5cGUpOworICAgIHZvaWQgZGlkRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24o
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBTdHJp
bmcmIHJlc3VsdCwgY29uc3QgU3RyaW5nJiBlcnJvclR5cGUpOwogCiBwcml2YXRlOgogICAgIEpT
T2JqZWN0UmVmIHNjcmlwdE9iamVjdEZvckZyYW1lKFdlYkZyYW1lJik7CkBAIC02MSwyMiArNjIs
MjIgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwogCiAgICAgLy8gQ2FsbGVkIGJ5IFdlYkF1dG9t
YXRpb25TZXNzaW9uUHJveHkgbWVzc2FnZXMKLSAgICB2b2lkIGV2YWx1YXRlSmF2YVNjcmlwdEZ1
bmN0aW9uKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBT
dHJpbmcmIGZ1bmN0aW9uLCBWZWN0b3I8U3RyaW5nPiBhcmd1bWVudHMsIGJvb2wgZXhwZWN0c0lt
cGxpY2l0Q2FsbGJhY2tBcmd1bWVudCwgaW50IGNhbGxiYWNrVGltZW91dCwgdWludDY0X3QgY2Fs
bGJhY2tJRCk7Ci0gICAgdm9pZCByZXNvbHZlQ2hpbGRGcmFtZVdpdGhPcmRpbmFsKFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBvcmRpbmFsLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4mJik7Ci0gICAg
dm9pZCByZXNvbHZlQ2hpbGRGcmFtZVdpdGhOb2RlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG5vZGVIYW5kbGUsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWludDY0X3QpPiYmKTsKLSAgICB2b2lk
IHJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChP
cHRpb25hbDxTdHJpbmc+LCB1aW50NjRfdCk+JiYpOwotICAgIHZvaWQgcmVzb2x2ZVBhcmVudEZy
YW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4mJik7Ci0gICAgdm9pZCBm
b2N1c0ZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlEKTsKLSAg
ICB2b2lkIGNvbXB1dGVFbGVtZW50TGF5b3V0KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50
NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVl
ZGVkLCBDb29yZGluYXRlU3lzdGVtLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0
cmluZz4sIFdlYkNvcmU6OkludFJlY3QsIE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiwgYm9v
bCk+JiYpOwotICAgIHZvaWQgc2VsZWN0T3B0aW9uRWxlbWVudChXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+JiYpOwotICAgIHZvaWQgdGFrZVNjcmVlbnNob3Qo
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFu
ZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGJvb2wgY2xpcFRvVmlld3BvcnQsIHVp
bnQ2NF90IGNhbGxiYWNrSUQpOwotICAgIHZvaWQgZ2V0Q29va2llc0ZvckZyYW1lKFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KE9wdGlvbmFsPFN0cmluZz4sIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+KT4mJik7Ci0gICAgdm9p
ZCBkZWxldGVDb29raWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQs
IFN0cmluZyBjb29raWVOYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmlu
Zz4pPiYmKTsKKyAgICB2b2lkIGV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZnVu
Y3Rpb24sIFZlY3RvcjxTdHJpbmc+IGFyZ3VtZW50cywgYm9vbCBleHBlY3RzSW1wbGljaXRDYWxs
YmFja0FyZ3VtZW50LCBpbnQgY2FsbGJhY2tUaW1lb3V0LCB1aW50NjRfdCBjYWxsYmFja0lEKTsK
KyAgICB2b2lkIHJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGluYWwoV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDMyX3Qgb3JkaW5hbCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIpPiYmKTsKKyAgICB2b2lkIHJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUoV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBub2RlSGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllcik+JiYpOworICAgIHZvaWQgcmVzb2x2ZUNoaWxkRnJhbWVX
aXRoTmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3Ry
aW5nPiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKT4mJik7CisgICAgdm9pZCByZXNvbHZlUGFy
ZW50RnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIpPiYmKTsKKyAgICB2b2lkIGZvY3VzRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBjb21wdXRlRWxlbWVu
dExheW91dChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBDb29yZGlu
YXRlU3lzdGVtLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNv
cmU6OkludFJlY3QsIE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiwgYm9vbCk+JiYpOworICAg
IHZvaWQgc2VsZWN0T3B0aW9uRWxlbWVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBTdHJpbmcgbm9kZUhhbmRsZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJik7CisgICAgdm9pZCB0YWtlU2NyZWVuc2hvdChXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBTdHJpbmcgbm9k
ZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBib29sIGNsaXBUb1ZpZXdwb3J0
LCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIGdldENvb2tpZXNGb3JGcmFtZShXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+KT4m
Jik7CisgICAgdm9pZCBkZWxldGVDb29raWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgU3RyaW5nIGNvb2tpZU5hbWUsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+JiYpOwogCiAgICAgU3RyaW5nIG1fc2Vzc2lvbklkZW50
aWZpZXI7CiAKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBKU09iamVjdFJlZj4gbV93ZWJGcmFtZVNj
cmlwdE9iamVjdE1hcDsKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBWZWN0b3I8dWludDY0X3Q+PiBt
X3dlYkZyYW1lUGVuZGluZ0V2YWx1YXRlSmF2YVNjcmlwdENhbGxiYWNrc01hcDsKKyAgICBIYXNo
TWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgSlNPYmplY3RSZWY+IG1fd2ViRnJhbWVTY3Jp
cHRPYmplY3RNYXA7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFZlY3Rv
cjx1aW50NjRfdD4+IG1fd2ViRnJhbWVQZW5kaW5nRXZhbHVhdGVKYXZhU2NyaXB0Q2FsbGJhY2tz
TWFwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlv
blNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgppbmRleCBkNzJmODlkMjYzNTljZjAxY2NmZDUzMWU5
NmUwMWY0NDQwOWFhZjU4Li5mMjc2NDliOWI3MzEwYmE1OTEzYjBkNmZmZmUxN2YyMjRlYzVmNjNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRv
bWF0aW9uU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4KQEAg
LTIxLDIxICsyMSwyMSBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBtZXNzYWdlcyAtPiBXZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5IHsKLSAgICBFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBmdW5jdGlv
biwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRzLCBib29sIGV4cGVjdHNJbXBsaWNpdENhbGxiYWNr
QXJndW1lbnQsIGludCBjYWxsYmFja1RpbWVvdXQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAg
RXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIGZ1bmN0aW9uLCBWZWN0
b3I8U3RyaW5nPiBhcmd1bWVudHMsIGJvb2wgZXhwZWN0c0ltcGxpY2l0Q2FsbGJhY2tBcmd1bWVu
dCwgaW50IGNhbGxiYWNrVGltZW91dCwgdWludDY0X3QgY2FsbGJhY2tJRCkKIAotICAgIFJlc29s
dmVDaGlsZEZyYW1lV2l0aE9yZGluYWwoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1
aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBvcmRpbmFsKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBl
cnJvclR5cGUsIHVpbnQ2NF90IGZyYW1lSUQpIEFzeW5jCi0gICAgUmVzb2x2ZUNoaWxkRnJhbWVX
aXRoTm9kZUhhbmRsZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFN0cmluZyBub2RlSGFuZGxlKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUs
IHVpbnQ2NF90IGZyYW1lSUQpIEFzeW5jCi0gICAgUmVzb2x2ZUNoaWxkRnJhbWVXaXRoTmFtZShX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBu
YW1lKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIHVpbnQ2NF90IGZyYW1lSUQpIEFz
eW5jCi0gICAgUmVzb2x2ZVBhcmVudEZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCwgdWludDY0X3QgZnJhbWVJRCkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCB1aW50
NjRfdCBmcmFtZUlEKSBBc3luYworICAgIFJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGluYWwoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgdWludDMyX3Qgb3JkaW5hbCkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkgQXN5bmMKKyAgICBSZXNvbHZlQ2hpbGRG
cmFtZVdpdGhOb2RlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlKSAtPiAoT3B0aW9u
YWw8U3RyaW5nPiBlcnJvclR5cGUsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSBB
c3luYworICAgIFJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIG5hbWUp
IC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQpIEFzeW5jCisgICAgUmVzb2x2ZVBhcmVudEZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIC0+IChPcHRp
b25hbDxTdHJpbmc+IGVycm9yVHlwZSwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQp
IEFzeW5jCiAKLSAgICBGb2N1c0ZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwg
dWludDY0X3QgZnJhbWVJRCkKKyAgICBGb2N1c0ZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAKLSAgICBDb21wdXRl
RWxlbWVudExheW91dChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGVu
dW06dWludDhfdCBXZWJLaXQ6OkNvb3JkaW5hdGVTeXN0ZW0gY29vcmRpbmF0ZVN5c3RlbSkgLT4g
KE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBXZWJDb3JlOjpJbnRSZWN0IHJlY3QsIE9wdGlv
bmFsPFdlYkNvcmU6OkludFBvaW50PiBpblZpZXdDZW50ZXJQb2ludCwgYm9vbCBpc09ic2N1cmVk
KSBBc3luYworICAgIENvbXB1dGVFbGVtZW50TGF5b3V0KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBub2RlSGFu
ZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGVudW06dWludDhfdCBXZWJLaXQ6OkNv
b3JkaW5hdGVTeXN0ZW0gY29vcmRpbmF0ZVN5c3RlbSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJy
b3JUeXBlLCBXZWJDb3JlOjpJbnRSZWN0IHJlY3QsIE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50
PiBpblZpZXdDZW50ZXJQb2ludCwgYm9vbCBpc09ic2N1cmVkKSBBc3luYwogCi0gICAgU2VsZWN0
T3B0aW9uRWxlbWVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFN0cmluZyBub2RlSGFuZGxlKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUp
IEFzeW5jCisgICAgU2VsZWN0T3B0aW9uRWxlbWVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBw
YWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRs
ZSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlKSBBc3luYwogCi0gICAgVGFrZVNjcmVl
bnNob3QoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBT
dHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBib29sIGNsaXBU
b1ZpZXdwb3J0LCB1aW50NjRfdCBjYWxsYmFja0lEKQorICAgIFRha2VTY3JlZW5zaG90KFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGJvb2wg
Y2xpcFRvVmlld3BvcnQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAKLSAgICBHZXRDb29raWVzRm9y
RnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlEKSAt
PiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IGNv
b2tpZXMpIEFzeW5jCi0gICAgRGVsZXRlQ29va2llKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIGNvb2tpZU5hbWUpIC0+IChPcHRpb25hbDxT
dHJpbmc+IGVycm9yVHlwZSkgQXN5bmMKKyAgICBHZXRDb29raWVzRm9yRnJhbWUoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkg
LT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBj
b29raWVzKSBBc3luYworICAgIERlbGV0ZUNvb2tpZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBw
YWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgY29va2llTmFt
ZSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlKSBBc3luYwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlBy
b2Nlc3NQbHVnSW5GcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW0KaW5kZXggMDk5NzYzNzJm
MDczNzU3ZWVkYjE3NDkzZDczMWZhMGEzZDQ2NjhjNi4uMjU3M2U2ZDQ4NTllNWUwY2ZlNGE2N2Y1
ZjRmM2JiYTZiMzBmZTg2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJv
Y2Vzc1BsdWdJbkZyYW1lLm1tCkBAIC00OCw3ICs0OCw3IEBAIEBpbXBsZW1lbnRhdGlvbiBXS1dl
YlByb2Nlc3NQbHVnSW5GcmFtZSB7CiAKICsgKGluc3RhbmNldHlwZSlsb29rVXBGcmFtZUZyb21I
YW5kbGU6KF9XS0ZyYW1lSGFuZGxlICopaGFuZGxlCiB7Ci0gICAgcmV0dXJuIHdyYXBwZXIoV2Vi
S2l0OjpXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShoYW5kbGUuX2ZyYW1lSUQpKTsK
KyAgICByZXR1cm4gd3JhcHBlcihXZWJLaXQ6OldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZy
YW1lKFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRChoYW5kbGUuX2ZyYW1lSUQpKSk7CiB9
CiAKIC0gKHZvaWQpZGVhbGxvYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IGM0OGNkZDg1Nzk0ZDkyMTY5OTUy
MGMyZDgzOGE1YjY3MGYzYjJmZjEuLjVkZmM0MjU3ODg0YmMyOTJhNGRhZThjNDQ1ZTkyYjczMjdh
OTZjYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxv
YWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9X
ZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAgLTE1OSw3ICsxNTksNyBAQCB2b2lkIFdlYkxvYWRlclN0
cmF0ZWd5OjpzY2hlZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTG9hZGVyLCBDYWNo
ZWRSZXNvdQogCiAgICAgV2ViUmVzb3VyY2VMb2FkZXI6OlRyYWNraW5nUGFyYW1ldGVycyB0cmFj
a2luZ1BhcmFtZXRlcnM7CiAgICAgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRCA9IGZyYW1lTG9h
ZGVyQ2xpZW50LnBhZ2VJRCgpLnZhbHVlT3IoUGFnZUlkZW50aWZpZXIgeyB9KTsKLSAgICB0cmFj
a2luZ1BhcmFtZXRlcnMuZnJhbWVJRCA9IGZyYW1lTG9hZGVyQ2xpZW50LmZyYW1lSUQoKS52YWx1
ZU9yKDApOworICAgIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlEID0gZnJhbWVMb2FkZXJDbGll
bnQuZnJhbWVJRCgpLnZhbHVlT3IoRnJhbWVJZGVudGlmaWVyIHsgfSk7CiAgICAgdHJhY2tpbmdQ
YXJhbWV0ZXJzLnJlc291cmNlSUQgPSBpZGVudGlmaWVyOwogICAgIGF1dG8gc2Vzc2lvbklEID0g
ZnJhbWVMb2FkZXJDbGllbnQuc2Vzc2lvbklEKCk7CiAKQEAgLTE2OCw3ICsxNjgsNyBAQCB2b2lk
IFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXImIHJlc291cmNl
TG9hZGVyLCBDYWNoZWRSZXNvdQogICAgIC8vIHRoZW4gd2Ugc2hvdWxkIHJlbWVtYmVyIHRoZSBS
ZXNvdXJjZUxvYWRlciBpbiBvdXIgcmVjb3JkcyBidXQgbm90IHNjaGVkdWxlIGl0IGluIHRoZSBO
ZXR3b3JrUHJvY2Vzcy4KICAgICBpZiAocmVzb3VyY2VMb2FkZXIuZG9jdW1lbnRMb2FkZXIoKS0+
c2NoZWR1bGVBcmNoaXZlTG9hZChyZXNvdXJjZUxvYWRlciwgcmVzb3VyY2VMb2FkZXIucmVxdWVz
dCgpKSkgewogICAgICAgICBMT0coTmV0d29ya1NjaGVkdWxpbmcsICIoV2ViUHJvY2VzcykgV2Vi
TG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZCwgdXJsICclcycgd2lsbCBiZSBoYW5kbGVkIGFz
IGFuIGFyY2hpdmUgcmVzb3VyY2UuIiwgcmVzb3VyY2VMb2FkZXIudXJsKCkuc3RyaW5nKCkudXRm
OCgpLmRhdGEoKSk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2Fk
ZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGhhbmRsZWQgYXMgYW4gYXJjaGl2ZSByZXNv
dXJjZSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCks
IHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJz
LmZyYW1lSUQsIGlkZW50aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJl
c291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBoYW5kbGVkIGFzIGFuIGFy
Y2hpdmUgcmVzb3VyY2UgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRl
ci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5n
UGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIGlkZW50aWZpZXIpOwogICAgICAgICBtX3dl
YlJlc291cmNlTG9hZGVycy5zZXQoaWRlbnRpZmllciwgV2ViUmVzb3VyY2VMb2FkZXI6OmNyZWF0
ZShyZXNvdXJjZUxvYWRlciwgdHJhY2tpbmdQYXJhbWV0ZXJzKSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CkBAIC0xNzYsMTQgKzE3NiwxNCBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hl
ZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTG9hZGVyLCBDYWNoZWRSZXNvdQogCiAg
ICAgaWYgKHJlc291cmNlTG9hZGVyLmRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVI
b3N0KCkubWF5YmVMb2FkUmVzb3VyY2UocmVzb3VyY2VMb2FkZXIsIHJlc291cmNlTG9hZGVyLnJl
cXVlc3QoKSwgcmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnVybCgpKSkgewogICAgICAgICBMT0co
TmV0d29ya1NjaGVkdWxpbmcsICIoV2ViUHJvY2VzcykgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVk
dWxlTG9hZCwgdXJsICclcycgd2lsbCBiZSBsb2FkZWQgZnJvbSBhcHBsaWNhdGlvbiBjYWNoZS4i
LCByZXNvdXJjZUxvYWRlci51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJM
IHdpbGwgYmUgbG9hZGVkIGZyb20gYXBwbGljYXRpb24gY2FjaGUgKGZyYW1lID0gJXAsIHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQ
Ukl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFn
ZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBpZGVudGlmaWVyKTsK
KyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxl
TG9hZDogVVJMIHdpbGwgYmUgbG9hZGVkIGZyb20gYXBwbGljYXRpb24gY2FjaGUgKGZyYW1lID0g
JXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNl
SUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1BhcmFt
ZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUlu
dDY0KCksIGlkZW50aWZpZXIpOwogICAgICAgICBtX3dlYlJlc291cmNlTG9hZGVycy5zZXQoaWRl
bnRpZmllciwgV2ViUmVzb3VyY2VMb2FkZXI6OmNyZWF0ZShyZXNvdXJjZUxvYWRlciwgdHJhY2tp
bmdQYXJhbWV0ZXJzKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAocmVzb3Vy
Y2VMb2FkZXIucmVxdWVzdCgpLnVybCgpLnByb3RvY29sSXNEYXRhKCkpIHsKICAgICAgICAgTE9H
KE5ldHdvcmtTY2hlZHVsaW5nLCAiKFdlYlByb2Nlc3MpIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hl
ZHVsZUxvYWQsIHVybCAnJXMnIHdpbGwgYmUgbG9hZGVkIGFzIGRhdGEuIiwgcmVzb3VyY2VMb2Fk
ZXIudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGxvYWRl
ZCBhcyBkYXRhIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJh
bWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFt
ZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGxvYWRlZCBhcyBk
YXRhIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2
NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwg
dHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMu
ZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsKICAgICAgICAgc3RhcnRMb2NhbExvYWQo
cmVzb3VyY2VMb2FkZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTkxLDcgKzE5MSw3
IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciYg
cmVzb3VyY2VMb2FkZXIsIENhY2hlZFJlc291CiAjaWYgVVNFKFFVSUNLX0xPT0spCiAgICAgaWYg
KGlzUXVpY2tMb29rUHJldmlld1VSTChyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkudXJsKCkpKSB7
CiAgICAgICAgIExPRyhOZXR3b3JrU2NoZWR1bGluZywgIihXZWJQcm9jZXNzKSBXZWJMb2FkZXJT
dHJhdGVneTo6c2NoZWR1bGVMb2FkLCB1cmwgJyVzJyB3aWxsIGJlIGhhbmRsZWQgYXMgYSBRdWlj
a0xvb2sgcmVzb3VyY2UuIiwgcmVzb3VyY2VMb2FkZXIudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRh
dGEoKSk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJz
Y2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGhhbmRsZWQgYXMgYSBRdWlja0xvb2sgcmVzb3VyY2Ug
KGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFj
a2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFt
ZUlELCBpZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJj
ZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgaGFuZGxlZCBhcyBhIFF1aWNrTG9v
ayByZXNvdXJjZSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAl
IiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZy
YW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJh
bWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmllcik7CiAgICAgICAgIHN0YXJ0TG9j
YWxMb2FkKHJlc291cmNlTG9hZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTIwMiw3
ICsyMDIsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQoUmVzb3VyY2VM
b2FkZXImIHJlc291cmNlTG9hZGVyLCBDYWNoZWRSZXNvdQogICAgIC8vIGh0dHBzOi8vYmxvZ3Mu
Z25vbWUub3JnL2FsZXhsLzIwMTIvMDEvMjYvcmVzb3VyY2VzLWluLWdsaWIvCiAgICAgaWYgKHJl
c291cmNlTG9hZGVyLnJlcXVlc3QoKS51cmwoKS5wcm90b2NvbElzKCJyZXNvdXJjZSIpKSB7CiAg
ICAgICAgIExPRyhOZXR3b3JrU2NoZWR1bGluZywgIihXZWJQcm9jZXNzKSBXZWJMb2FkZXJTdHJh
dGVneTo6c2NoZWR1bGVMb2FkLCB1cmwgJyVzJyB3aWxsIGJlIGhhbmRsZWQgYXMgYSBHUmVzb3Vy
Y2UuIiwgcmVzb3VyY2VMb2FkZXIudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAg
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6
IFVSTCB3aWxsIGJlIGhhbmRsZWQgYXMgYSBHUmVzb3VyY2UgKGZyYW1lID0gJXAsIHBhZ2VJRCA9
ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1
NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlE
LnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBpZGVudGlmaWVyKTsKKyAg
ICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9h
ZDogVVJMIHdpbGwgYmUgaGFuZGxlZCBhcyBhIEdSZXNvdXJjZSAoZnJhbWUgPSAlcCwgcGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBS
SXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdl
SUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgaWRl
bnRpZmllcik7CiAgICAgICAgIHN0YXJ0TG9jYWxMb2FkKHJlc291cmNlTG9hZGVyKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KQEAgLTIxMiwxMSArMjEyLDExIEBAIHZvaWQgV2ViTG9hZGVyU3Ry
YXRlZ3k6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMb2FkZXIsIENhY2hl
ZFJlc291CiAgICAgV2ViU2VydmljZVdvcmtlclByb3ZpZGVyOjpzaW5nbGV0b24oKS5oYW5kbGVG
ZXRjaChyZXNvdXJjZUxvYWRlciwgc2Vzc2lvbklELCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQ
U1RvSFRUUFJlZGlyZWN0LCBbdGhpcywgdHJhY2tpbmdQYXJhbWV0ZXJzLCBpZGVudGlmaWVyLCBz
ZXNzaW9uSUQsIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIG1heGlt
dW1CdWZmZXJpbmdUaW1lID0gbWF4aW11bUJ1ZmZlcmluZ1RpbWUocmVzb3VyY2UpLCByZXNvdXJj
ZUxvYWRlciA9IG1ha2VSZWYocmVzb3VyY2VMb2FkZXIpXSAoU2VydmljZVdvcmtlckNsaWVudEZl
dGNoOjpSZXN1bHQgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHJlc3VsdCAhPSBTZXJ2
aWNlV29ya2VyQ2xpZW50RmV0Y2g6OlJlc3VsdDo6VW5oYW5kbGVkKSB7CiAgICAgICAgICAgICBM
T0coTmV0d29ya1NjaGVkdWxpbmcsICIoV2ViUHJvY2VzcykgV2ViTG9hZGVyU3RyYXRlZ3k6OnNj
aGVkdWxlTG9hZCwgdXJsICclcycgd2lsbCBiZSBzY2hlZHVsZWQgdGhyb3VnaCBTZXJ2aWNlV29y
a2VyIGhhbmRsZSBmZXRjaCBhbGdvcml0aG0iLCByZXNvdXJjZUxvYWRlci0+dXJsKCkuc3RyaW5n
KCkubGF0aW4xKCkuZGF0YSgpKTsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
cmVzb3VyY2VMb2FkZXIuZ2V0KCksICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIHNjaGVkdWxl
ZCB0aHJvdWdoIFNlcnZpY2VXb3JrZXIgaGFuZGxlIGZldGNoIGFsZ29yaXRobSAoZnJhbWUgPSAl
cCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJ
RCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLT5mcmFtZSgpLCB0cmFja2luZ1BhcmFt
ZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBpZGVu
dGlmaWVyKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2Fk
ZXIuZ2V0KCksICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIHNjaGVkdWxlZCB0aHJvdWdoIFNl
cnZpY2VXb3JrZXIgaGFuZGxlIGZldGNoIGFsZ29yaXRobSAoZnJhbWUgPSAlcCwgcGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2
NCAiKSIsIHJlc291cmNlTG9hZGVyLT5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlE
LnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIGlkZW50
aWZpZXIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGlmIChyZXNv
dXJjZUxvYWRlci0+b3B0aW9ucygpLnNlcnZpY2VXb3JrZXJzTW9kZSA9PSBTZXJ2aWNlV29ya2Vy
c01vZGU6Ok9ubHkpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQo
cmVzb3VyY2VMb2FkZXIuZ2V0KCksICJzY2hlZHVsZUxvYWQ6IHVuYWJsZSB0byBzY2hlZHVsZSBV
UkwgdGhyb3VnaCBTZXJ2aWNlV29ya2VyIGhhbmRsZSBmZXRjaCBhbGdvcml0aG0gKGZyYW1lID0g
JXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNl
SUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci0+ZnJhbWUoKSwgdHJhY2tpbmdQYXJh
bWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgaWRl
bnRpZmllcik7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHJlc291
cmNlTG9hZGVyLmdldCgpLCAic2NoZWR1bGVMb2FkOiB1bmFibGUgdG8gc2NoZWR1bGUgVVJMIHRo
cm91Z2ggU2VydmljZVdvcmtlciBoYW5kbGUgZmV0Y2ggYWxnb3JpdGhtIChmcmFtZSA9ICVwLCBw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXItPmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVy
cy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQo
KSwgaWRlbnRpZmllcik7CiAgICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtyZXNvdXJjZUxv
YWRlciA9IFdURk1vdmUocmVzb3VyY2VMb2FkZXIpXSB7CiAgICAgICAgICAgICAgICAgYXV0byBl
cnJvciA9IGludGVybmFsRXJyb3IocmVzb3VyY2VMb2FkZXItPnJlcXVlc3QoKS51cmwoKSk7CiAg
ICAgICAgICAgICAgICAgZXJyb3Iuc2V0VHlwZShSZXNvdXJjZUVycm9yOjpUeXBlOjpDYW5jZWxs
YXRpb24pOwpAQCAtMjI4LDEzICsyMjgsMTMgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2No
ZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlciwgQ2FjaGVkUmVzb3UKICAg
ICAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJMb2FkZXJTdHJhdGVneSgpLnRy
eUxvYWRpbmdVc2luZ1VSTFNjaGVtZUhhbmRsZXIocmVzb3VyY2VMb2FkZXIpKQogICAgICAgICAg
ICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViTG9hZGVyU3RyYXRlZ3koKS5zY2hlZHVsZUxv
YWRGcm9tTmV0d29ya1Byb2Nlc3MocmVzb3VyY2VMb2FkZXIuZ2V0KCksIHJlc291cmNlTG9hZGVy
LT5yZXF1ZXN0KCksIHRyYWNraW5nUGFyYW1ldGVycywgc2Vzc2lvbklELCBzaG91bGRDbGVhclJl
ZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBtYXhpbXVtQnVmZmVyaW5nVGltZSk7CiAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2Fk
ZXIuZ2V0KCksICJzY2hlZHVsZUxvYWQ6IFVSTCBub3QgaGFuZGxlZCBieSBhbnkgaGFuZGxlcnMg
KGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci0+ZnJhbWUoKSwgdHJh
Y2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJh
bWVJRCwgaWRlbnRpZmllcik7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJl
c291cmNlTG9hZGVyLmdldCgpLCAic2NoZWR1bGVMb2FkOiBVUkwgbm90IGhhbmRsZWQgYnkgYW55
IGhhbmRsZXJzIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXItPmZy
YW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJh
bWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmllcik7CiAgICAgfSk7CiAjZWxzZQog
ICAgIGlmICghdHJ5TG9hZGluZ1VzaW5nVVJMU2NoZW1lSGFuZGxlcihyZXNvdXJjZUxvYWRlcikp
CiAgICAgICAgIHNjaGVkdWxlTG9hZEZyb21OZXR3b3JrUHJvY2VzcyhyZXNvdXJjZUxvYWRlciwg
cmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLCB0cmFja2luZ1BhcmFtZXRlcnMsIHNlc3Npb25JRCwg
c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgbWF4aW11bUJ1ZmZlcmlu
Z1RpbWUocmVzb3VyY2UpKTsKICAgICBlbHNlCi0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCBub3QgaGFuZGxlZCBieSBhbnkg
aGFuZGxlcnMgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFt
ZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1l
dGVycy5mcmFtZUlELCBpZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIG5vdCBoYW5kbGVkIGJ5IGFueSBo
YW5kbGVycyAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQ
Ukl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1l
KCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0
ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmllcik7CiAjZW5kaWYKIH0KIApAQCAtMzI1
LDcgKzMyNSw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZEZyb21OZXR3
b3JrUHJvY2VzcyhSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMCiAgICAgaWYgKGxvYWRQYXJhbWV0
ZXJzLm9wdGlvbnMubW9kZSAhPSBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5hdmlnYXRlKSB7CiAgICAg
ICAgIEFTU0VSVChsb2FkUGFyYW1ldGVycy5zb3VyY2VPcmlnaW4pOwogICAgICAgICBpZiAoIWxv
YWRQYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbikgewotICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1JfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogbm8gc291cmNlT3Jp
Z2luIChmcmFtZSA9ICVwLCBwcmlvcml0eSA9ICVkLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VM
b2FkZXIuZnJhbWUoKSwgc3RhdGljX2Nhc3Q8aW50PihyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCku
cHJpb3JpdHkoKSksIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBsb2FkUGFy
YW1ldGVycy53ZWJGcmFtZUlELCBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyKTsKKyAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVs
ZUxvYWQ6IG5vIHNvdXJjZU9yaWdpbiAoZnJhbWUgPSAlcCwgcHJpb3JpdHkgPSAlZCwgcGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBS
SXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHN0YXRpY19jYXN0PGludD4ocmVzb3Vy
Y2VMb2FkZXIucmVxdWVzdCgpLnByaW9yaXR5KCkpLCBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQu
dG9VSW50NjQoKSwgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBsb2FkUGFy
YW1ldGVycy5pZGVudGlmaWVyKTsKICAgICAgICAgICAgIHNjaGVkdWxlSW50ZXJuYWxseUZhaWxl
ZExvYWQocmVzb3VyY2VMb2FkZXIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBA
IC0zNDgsOSArMzQ4LDkgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkRnJv
bU5ldHdvcmtQcm9jZXNzKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUwKIAogICAgIEFTU0VSVCgo
bG9hZFBhcmFtZXRlcnMud2ViUGFnZUlEICYmIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQpIHx8
IGxvYWRQYXJhbWV0ZXJzLmNsaWVudENyZWRlbnRpYWxQb2xpY3kgPT0gQ2xpZW50Q3JlZGVudGlh
bFBvbGljeTo6Q2Fubm90QXNrQ2xpZW50Rm9yQ3JlZGVudGlhbHMpOwogCi0gICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogUmVzb3VyY2UgaXMg
YmVpbmcgc2NoZWR1bGVkIHdpdGggdGhlIE5ldHdvcmtQcm9jZXNzIChmcmFtZSA9ICVwLCBwcmlv
cml0eSA9ICVkLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBy
ZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgc3RhdGlj
X2Nhc3Q8aW50PihyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkucHJpb3JpdHkoKSksIGxvYWRQYXJh
bWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlELCBs
b2FkUGFyYW1ldGVycy5pZGVudGlmaWVyKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJl
c291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBSZXNvdXJjZSBpcyBiZWluZyBzY2hlZHVsZWQg
d2l0aCB0aGUgTmV0d29ya1Byb2Nlc3MgKGZyYW1lID0gJXAsIHByaW9yaXR5ID0gJWQsIHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQ
Ukl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc291
cmNlTG9hZGVyLnJlcXVlc3QoKS5wcmlvcml0eSgpKSwgbG9hZFBhcmFtZXRlcnMud2ViUGFnZUlE
LnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbG9hZFBh
cmFtZXRlcnMuaWRlbnRpZmllcik7CiAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5l
bnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdl
czo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlNjaGVkdWxlUmVzb3VyY2VMb2FkKGxv
YWRQYXJhbWV0ZXJzKSwgMCkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dF
RChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVW5hYmxlIHRvIHNjaGVkdWxlIHJlc291
cmNlIHdpdGggdGhlIE5ldHdvcmtQcm9jZXNzIChmcmFtZSA9ICVwLCBwcmlvcml0eSA9ICVkLCBw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgc3RhdGljX2Nhc3Q8aW50Pihy
ZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkucHJpb3JpdHkoKSksIGxvYWRQYXJhbWV0ZXJzLndlYlBh
Z2VJRC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlELCBsb2FkUGFyYW1ldGVy
cy5pZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChyZXNv
dXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVW5hYmxlIHRvIHNjaGVkdWxlIHJlc291cmNlIHdp
dGggdGhlIE5ldHdvcmtQcm9jZXNzIChmcmFtZSA9ICVwLCBwcmlvcml0eSA9ICVkLCBwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJ
dTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgc3RhdGljX2Nhc3Q8aW50PihyZXNvdXJj
ZUxvYWRlci5yZXF1ZXN0KCkucHJpb3JpdHkoKSksIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRC50
b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIGxvYWRQYXJh
bWV0ZXJzLmlkZW50aWZpZXIpOwogICAgICAgICAvLyBXZSBwcm9iYWJseSBmYWlsZWQgdG8gc2No
ZWR1bGUgdGhpcyBsb2FkIHdpdGggdGhlIE5ldHdvcmtQcm9jZXNzIGJlY2F1c2UgaXQgaGFkIGNy
YXNoZWQuCiAgICAgICAgIC8vIFRoaXMgbG9hZCB3aWxsIG5ldmVyIHN1Y2NlZWQgc28gd2Ugd2ls
bCBzY2hlZHVsZSBpdCB0byBmYWlsIGFzeW5jaHJvbm91c2x5LgogICAgICAgICBzY2hlZHVsZUlu
dGVybmFsbHlGYWlsZWRMb2FkKHJlc291cmNlTG9hZGVyKTsKQEAgLTUyMCwxOCArNTIwLDE4IEBA
IHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoRnJhbWVM
b2FkZXImIGZyYW1lTG9hZGVyLCB1bnNpCiAgICAgV2ViUGFnZSogd2ViUGFnZSA9IHdlYkZyYW1l
ID8gd2ViRnJhbWUtPnBhZ2UoKSA6IG51bGxwdHI7CiAKICAgICBhdXRvIHBhZ2VJRCA9IHdlYlBh
Z2UgPyB3ZWJQYWdlLT5wYWdlSUQoKSA6IFBhZ2VJZGVudGlmaWVyIHsgfTsKLSAgICBhdXRvIGZy
YW1lSUQgPSB3ZWJGcmFtZSA/IHdlYkZyYW1lLT5mcmFtZUlEKCkgOiAwOworICAgIGF1dG8gZnJh
bWVJRCA9IHdlYkZyYW1lID8gd2ViRnJhbWUtPmZyYW1lSUQoKSA6IEZyYW1lSWRlbnRpZmllciB7
IH07CiAgICAgYXV0byBzZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vzc2lvbklEKCkg
OiBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOwogCiAgICAgYXV0byogZG9jdW1l
bnQgPSBmcmFtZUxvYWRlci5mcmFtZSgpLmRvY3VtZW50KCk7CiAgICAgaWYgKCFkb2N1bWVudCkg
ewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHNlc3Npb25JRCwgImxvYWRS
ZXNvdXJjZVN5bmNocm9ub3VzbHk6IG5vIGRvY3VtZW50IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJWx1KSIsIHBhZ2VJRC50b1VJbnQ2
NCgpLCBmcmFtZUlELCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1JfSUZfQUxMT1dFRChzZXNzaW9uSUQsICJsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5
OiBubyBkb2N1bWVudCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQg
IiwgcmVzb3VyY2VJRCA9ICVsdSkiLCBwYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2
NCgpLCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKTsKICAgICAgICAgZXJyb3IgPSBpbnRlcm5hbEVy
cm9yKHJlcXVlc3QudXJsKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKGF1
dG8gc3luY0xvYWRSZXN1bHQgPSB0cnlMb2FkaW5nU3luY2hyb25vdXNseVVzaW5nVVJMU2NoZW1l
SGFuZGxlcihmcmFtZUxvYWRlciwgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgcmVxdWVzdCkpIHsK
LSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChzZXNzaW9uSUQsICJsb2FkUmVz
b3VyY2VTeW5jaHJvbm91c2x5OiBmYWlsZWQgY2FsbGluZyB0cnlMb2FkaW5nU3luY2hyb25vdXNs
eVVzaW5nVVJMU2NoZW1lSGFuZGxlciAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAl
IiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICVsdSwgZXJyb3IgPSAlZCkiLCBwYWdlSUQudG9VSW50
NjQoKSwgZnJhbWVJRCwgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgc3luY0xvYWRSZXN1bHQtPmVy
cm9yLmVycm9yQ29kZSgpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChz
ZXNzaW9uSUQsICJsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiBmYWlsZWQgY2FsbGluZyB0cnlM
b2FkaW5nU3luY2hyb25vdXNseVVzaW5nVVJMU2NoZW1lSGFuZGxlciAocGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICVsdSwgZXJyb3IgPSAl
ZCkiLCBwYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpLCByZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyLCBzeW5jTG9hZFJlc3VsdC0+ZXJyb3IuZXJyb3JDb2RlKCkpOwogICAgICAgICBl
cnJvciA9IFdURk1vdmUoc3luY0xvYWRSZXN1bHQtPmVycm9yKTsKICAgICAgICAgcmVzcG9uc2Ug
PSBXVEZNb3ZlKHN5bmNMb2FkUmVzdWx0LT5yZXNwb25zZSk7CiAgICAgICAgIGRhdGEgPSBXVEZN
b3ZlKHN5bmNMb2FkUmVzdWx0LT5kYXRhKTsKQEAgLTU2OSw3ICs1NjksNyBAQCB2b2lkIFdlYkxv
YWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KEZyYW1lTG9hZGVyJiBmcmFt
ZUxvYWRlciwgdW5zaQogICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUG9vbDo6U2V0V2ViUHJv
Y2Vzc0hhc1VwbG9hZHMgeyBQcm9jZXNzOjppZGVudGlmaWVyKCkgfSwgMCk7CiAKICAgICBpZiAo
IVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigp
LmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OlBlcmZvcm1TeW5jaHJvbm91c0xvYWQobG9hZFBhcmFtZXRlcnMpLCBNZXNzYWdlczo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlBlcmZvcm1TeW5jaHJvbm91c0xvYWQ6OlJl
cGx5KGVycm9yLCByZXNwb25zZSwgZGF0YSksIDApKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SX0lGX0FMTE9XRUQoc2Vzc2lvbklELCAibG9hZFJlc291cmNlU3luY2hyb25vdXNseTogZmFp
bGVkIHNlbmRpbmcgc3luY2hyb25vdXMgbmV0d29yayBwcm9jZXNzIG1lc3NhZ2UgKHBhZ2VJRCA9
ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlbHUpIiwg
cGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQsIHJlc291cmNlTG9hZElkZW50aWZpZXIpOworICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHNlc3Npb25JRCwgImxvYWRSZXNvdXJj
ZVN5bmNocm9ub3VzbHk6IGZhaWxlZCBzZW5kaW5nIHN5bmNocm9ub3VzIG5ldHdvcmsgcHJvY2Vz
cyBtZXNzYWdlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBy
ZXNvdXJjZUlEID0gJWx1KSIsIHBhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCks
IHJlc291cmNlTG9hZElkZW50aWZpZXIpOwogICAgICAgICBpZiAoYXV0byogcGFnZSA9IHdlYlBh
Z2UgPyB3ZWJQYWdlLT5jb3JlUGFnZSgpIDogbnVsbHB0cikKICAgICAgICAgICAgIHBhZ2UtPmRp
YWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2UoV2ViQ29yZTo6RGlh
Z25vc3RpY0xvZ2dpbmdLZXlzOjppbnRlcm5hbEVycm9yS2V5KCksIFdlYkNvcmU6OkRpYWdub3N0
aWNMb2dnaW5nS2V5czo6c3luY2hyb25vdXNNZXNzYWdlRmFpbGVkS2V5KCksIFdlYkNvcmU6OlNo
b3VsZFNhbXBsZTo6Tm8pOwogICAgICAgICByZXNwb25zZSA9IFJlc291cmNlUmVzcG9uc2UoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNl
TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNl
TG9hZGVyLmNwcAppbmRleCA4OGJkNTNiZjFmOGZiNzM2ZWIxNzNlZjY0ZjFlMzAzZDFiYjEwMGMx
Li5mYTUzOTI1ZWI2OGYwNDJmZWM3OWJmMzg4NjBiMjc2MDMyNWZiNTFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3Bw
CkBAIC04OCwxNiArODgsMTYgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1
ZXN0KFJlc291cmNlUmVxdWVzdCYmIHByb3Bvc2VkUmVxdWVzdCwgUmVzb3UKICAgICBSZWY8V2Vi
UmVzb3VyY2VMb2FkZXI+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwogCiAgICAgTE9HKE5ldHdvcmss
ICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCB0byAnJXMn
IiwgcHJvcG9zZWRSZXF1ZXN0LnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSk7Ci0gICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgid2lsbFNlbmRSZXF1ZXN0OiAocGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIs
IG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1l
dGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKKyAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKCJ3aWxsU2VuZFJlcXVlc3Q6IChwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90
cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJz
LmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CiAK
ICAgICBpZiAobV9jb3JlTG9hZGVyLT5kb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hl
SG9zdCgpLm1heWJlTG9hZEZhbGxiYWNrRm9yUmVkaXJlY3QobV9jb3JlTG9hZGVyLmdldCgpLCBw
cm9wb3NlZFJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoIndpbGxTZW5kUmVxdWVzdDogZXhpdGluZyBlYXJseSBiZWNhdXNlIG1heWJl
TG9hZEZhbGxiYWNrRm9yUmVkaXJlY3QgcmV0dXJuZWQgZmFsc2UgKHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBt
X3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRl
cnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAgICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoIndpbGxTZW5kUmVxdWVzdDogZXhpdGluZyBlYXJseSBiZWNh
dXNlIG1heWJlTG9hZEZhbGxiYWNrRm9yUmVkaXJlY3QgcmV0dXJuZWQgZmFsc2UgKHBhZ2VJRCA9
ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1
NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2lu
Z1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNv
dXJjZUlEKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIG1fY29yZUxvYWRlci0+d2ls
bFNlbmRSZXF1ZXN0KFdURk1vdmUocHJvcG9zZWRSZXF1ZXN0KSwgcmVkaXJlY3RSZXNwb25zZSwg
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpXShSZXNvdXJjZVJl
cXVlc3QmJiByZXF1ZXN0KSB7CiAgICAgICAgIGlmICghbV9jb3JlTG9hZGVyIHx8ICFtX2NvcmVM
b2FkZXItPmlkZW50aWZpZXIoKSkgewotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RCgid2lsbFNlbmRSZXF1ZXN0OiBleGl0aW5nIGVhcmx5IGJlY2F1c2Ugbm8gY29yZWxvYWRlciBv
ciBpZGVudGlmaWVyIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAi
LCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlE
LnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJh
bWV0ZXJzLnJlc291cmNlSUQpOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgi
d2lsbFNlbmRSZXF1ZXN0OiBleGl0aW5nIGVhcmx5IGJlY2F1c2Ugbm8gY29yZWxvYWRlciBvciBp
ZGVudGlmaWVyIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBy
ZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRv
VUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFj
a2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KIApAQCAtMTEzLDEyICsxMTMsMTIgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkU2Vu
ZERhdGEodWludDY0X3QgYnl0ZXNTZW50LCB1aW50NjRfdCB0b3RhbEJ5dGVzVG9CZVMKIHZvaWQg
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2Fn
ZSkKIHsKICAgICBMT0coTmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6
ZGlkUmVjZWl2ZVJlc3BvbnNlIGZvciAnJXMnLiBTdGF0dXMgJWQuIiwgbV9jb3JlTG9hZGVyLT51
cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCksIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkp
OwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZTogKHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQ
Ukl1NjQgIiwgc3RhdHVzID0gJWQpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUlu
dDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJz
LnJlc291cmNlSUQsIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkpOworICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZTogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgc3RhdHVzID0g
JWQpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQ
YXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3Vy
Y2VJRCwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSk7CiAKICAgICBSZWY8V2ViUmVzb3VyY2VM
b2FkZXI+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwogCiAgICAgaWYgKG1fY29yZUxvYWRlci0+ZG9j
dW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS5tYXliZUxvYWRGYWxsYmFja0Zv
clJlc3BvbnNlKG1fY29yZUxvYWRlci5nZXQoKSwgcmVzcG9uc2UpKSB7Ci0gICAgICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZTogbm90IGNvbnRpbnVpbmcgbG9h
ZCBiZWNhdXNlIHRoZSBjb250ZW50IGlzIGFscmVhZHkgY2FjaGVkIChwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwg
bV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0
ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOworICAgICAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6IG5vdCBjb250aW51aW5n
IGxvYWQgYmVjYXVzZSB0aGUgY29udGVudCBpcyBhbHJlYWR5IGNhY2hlZCAocGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAi
KSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFy
YW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNl
SUQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMzUsNyArMTM1LDcgQEAgdm9pZCBX
ZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlLCBib28KICAgICAgICAgICAgIGlmIChtX2NvcmVMb2FkZXIgJiYgbV9jb3Jl
TG9hZGVyLT5pZGVudGlmaWVyKCkpCiAgICAgICAgICAgICAgICAgc2VuZChNZXNzYWdlczo6TmV0
d29ya1Jlc291cmNlTG9hZGVyOjpDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpKTsKICAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRS
ZWNlaXZlUmVzcG9uc2U6IG5vdCBjb250aW51aW5nIGxvYWQgYmVjYXVzZSBubyBjb3JlTG9hZGVy
IG9yIG5vIElEIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBy
ZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRv
VUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0
ZXJzLnJlc291cmNlSUQpOworICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
ImRpZFJlY2VpdmVSZXNwb25zZTogbm90IGNvbnRpbnVpbmcgbG9hZCBiZWNhdXNlIG5vIGNvcmVM
b2FkZXIgb3Igbm8gSUQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdl
SUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBt
X3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKICAgICAgICAgfTsKICAgICB9CiAKQEAg
LTE0OCw3ICsxNDgsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShj
b25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGludDY0X3QgZQogICAgIEFTU0VSVF9XSVRI
X01FU1NBR0UoIW1faXNQcm9jZXNzaW5nTmV0d29ya1Jlc3BvbnNlLCAiTmV0d29yayBwcm9jZXNz
IHNob3VsZCBub3Qgc2VuZCBkYXRhIHVudGlsIHdlJ3ZlIHZhbGlkYXRlZCB0aGUgcmVzcG9uc2Ui
KTsKIAogICAgIGlmICghbV9udW1CeXRlc1JlY2VpdmVkKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoImRpZFJlY2VpdmVEYXRhOiBTdGFydGVkIHJlY2VpdmluZyBkYXRhIChwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIg
UFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJh
Y2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQp
OworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlRGF0YTogU3RhcnRl
ZCByZWNlaXZpbmcgZGF0YSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBh
Z2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCks
IG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwogICAgIH0KICAgICBtX251bUJ5dGVz
UmVjZWl2ZWQgKz0gZGF0YS5zaXplKCk7CiAKQEAgLTE1OCw3ICsxNTgsNyBAQCB2b2lkIFdlYlJl
c291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRh
dGEsIGludDY0X3QgZQogdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VM
b2FkKGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRNZXRyaWNzKQogewogICAg
IExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hS
ZXNvdXJjZUxvYWQgZm9yICclcyciLCBtX2NvcmVMb2FkZXItPnVybCgpLnN0cmluZygpLmxhdGlu
MSgpLmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkRmluaXNoUmVzb3Vy
Y2VMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBsZW5ndGggPSAlemQpIiwgbV90cmFja2luZ1BhcmFtZXRl
cnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJh
Y2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQsIG1fbnVtQnl0ZXNSZWNlaXZlZCk7CisgICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkRmluaXNoUmVzb3VyY2VMb2FkOiAocGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAi
LCBsZW5ndGggPSAlemQpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCks
IG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFt
ZXRlcnMucmVzb3VyY2VJRCwgbV9udW1CeXRlc1JlY2VpdmVkKTsKIAogICAgIEFTU0VSVF9XSVRI
X01FU1NBR0UoIW1faXNQcm9jZXNzaW5nTmV0d29ya1Jlc3BvbnNlLCAiTG9hZCBzaG91bGQgbm90
IGJlIGFibGUgdG8gZmluaXNoIGJlZm9yZSB3ZSd2ZSB2YWxpZGF0ZWQgdGhlIHJlc3BvbnNlIik7
CiAgICAgbV9jb3JlTG9hZGVyLT5kaWRGaW5pc2hMb2FkaW5nKG5ldHdvcmtMb2FkTWV0cmljcyk7
CkBAIC0xNjcsNyArMTY3LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoUmVz
b3VyY2VMb2FkKGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0wKIHZvaWQgV2ViUmVz
b3VyY2VMb2FkZXI6OmRpZEZhaWxSZXNvdXJjZUxvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJy
b3IpCiB7CiAgICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6
OmRpZEZhaWxSZXNvdXJjZUxvYWQgZm9yICclcyciLCBtX2NvcmVMb2FkZXItPnVybCgpLnN0cmlu
ZygpLmxhdGluMSgpLmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkRmFp
bFJlc291cmNlTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdl
SUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1Bh
cmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkRmFp
bFJlc291cmNlTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdl
SUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBt
X3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKIAogICAgIEFTU0VSVF9XSVRIX01FU1NB
R0UoIW1faXNQcm9jZXNzaW5nTmV0d29ya1Jlc3BvbnNlLCAiTG9hZCBzaG91bGQgbm90IGJlIGFi
bGUgdG8gZmluaXNoIGJlZm9yZSB3ZSd2ZSB2YWxpZGF0ZWQgdGhlIHJlc3BvbnNlIik7CiAKQEAg
LTE3OSw3ICsxNzksNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRGYWlsUmVzb3VyY2VM
b2FkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6
ZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgpCiB7CiAgICAgTE9HKE5ldHdvcmssICIo
V2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEJsb2NrQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UgZm9yICclcyciLCBtX2NvcmVMb2FkZXItPnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRh
dGEoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkQmxvY2tBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZTogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQu
dG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFt
ZXRlcnMucmVzb3VyY2VJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkQmxvY2tB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZTogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1l
dGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJ
bnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKIAogICAgIG1fY29yZUxv
YWRlci0+ZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgpOwogfQpAQCAtMTg3LDcgKzE4
Nyw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEJsb2NrQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UoKQogdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6c3RvcExvYWRpbmdBZnRlclhGcmFtZU9w
dGlvbnNPckNvbnRlbnRTZWN1cml0eVBvbGljeURlbmllZChjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSkKIHsKICAgICBMT0coTmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJj
ZUxvYWRlcjo6c3RvcExvYWRpbmdBZnRlclhGcmFtZU9wdGlvbnNPckNvbnRlbnRTZWN1cml0eVBv
bGljeURlbmllZCBmb3IgJyVzJyIsIG1fY29yZUxvYWRlci0+dXJsKCkuc3RyaW5nKCkubGF0aW4x
KCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdG9wTG9hZGluZ0FmdGVy
WEZyYW1lT3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVkOiAocGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAi
KSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFy
YW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKKyAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdG9wTG9hZGluZ0FmdGVyWEZyYW1lT3B0aW9uc09yQ29u
dGVudFNlY3VyaXR5UG9saWN5RGVuaWVkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJh
bWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRv
VUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwogCiAgICAgbV9jb3Jl
TG9hZGVyLT5kb2N1bWVudExvYWRlcigpLT5zdG9wTG9hZGluZ0FmdGVyWEZyYW1lT3B0aW9uc09y
Q29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVkKG1fY29yZUxvYWRlci0+aWRlbnRpZmllcigpLCBy
ZXNwb25zZSk7CiB9CkBAIC0xOTYsMTMgKzE5NiwxMyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVy
OjpzdG9wTG9hZGluZ0FmdGVyWEZyYW1lT3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVu
aQogdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc291cmNlKGNvbnN0IFNoYXJl
YWJsZVJlc291cmNlOjpIYW5kbGUmIGhhbmRsZSkKIHsKICAgICBMT0coTmV0d29yaywgIihXZWJQ
cm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc291cmNlIGZvciAnJXMnIiwg
bV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwotICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNvdXJjZTogKHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBt
X3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRl
cnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc291cmNlOiAocGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1f
dHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVy
cy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwog
CiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyID0gaGFuZGxlLnRyeVdyYXBJblNoYXJl
ZEJ1ZmZlcigpOwogCiAgICAgaWYgKCFidWZmZXIpIHsKICAgICAgICAgTE9HX0VSUk9SKCJVbmFi
bGUgdG8gY3JlYXRlIGJ1ZmZlciBmcm9tIFNoYXJlYWJsZVJlc291cmNlIHNlbnQgZnJvbSB0aGUg
bmV0d29yayBwcm9jZXNzLiIpOwotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRS
ZWNlaXZlUmVzb3VyY2U6IFVuYWJsZSB0byBjcmVhdGUgU2hhcmVkQnVmZmVyIChwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0
ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQ
YXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOworICAg
ICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzb3VyY2U6IFVuYWJsZSB0
byBjcmVhdGUgU2hhcmVkQnVmZmVyIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRl
cnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50
NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CiAgICAgICAgIGlmIChhdXRv
KiBmcmFtZSA9IG1fY29yZUxvYWRlci0+ZnJhbWUoKSkgewogICAgICAgICAgICAgaWYgKGF1dG8q
IHBhZ2UgPSBmcmFtZS0+cGFnZSgpKQogICAgICAgICAgICAgICAgIHBhZ2UtPmRpYWdub3N0aWNM
b2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2UoV2ViQ29yZTo6RGlhZ25vc3RpY0xv
Z2dpbmdLZXlzOjppbnRlcm5hbEVycm9yS2V5KCksIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5n
S2V5czo6Y3JlYXRlU2hhcmVkQnVmZmVyRmFpbGVkS2V5KCksIFdlYkNvcmU6OlNob3VsZFNhbXBs
ZTo6Tm8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
UmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJl
c291cmNlTG9hZGVyLmgKaW5kZXggNTg2NTQzNzE4ZTVlODM4OGI4YjQxYWIwMjAzN2FjNzZlNzg2
OTM3Yy4uOWMxMTQ3ZGEwNTE1M2RkN2FjNDRhZjMxNTgxZTIyMWI2OWJlOTI0YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5o
CkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1l
c3NhZ2VTZW5kZXIuaCIKICNpbmNsdWRlICJTaGFyZWFibGVSZXNvdXJjZS5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRp
Zmllci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgpAQCAtNTIsNyArNTMsNyBAQCBjbGFzcyBXZWJSZXNvdXJjZUxvYWRlciA6IHB1YmxpYyBS
ZWZDb3VudGVkPFdlYlJlc291cmNlTG9hZGVyPiwgcHVibGljIElQQzo6TWVzcwogcHVibGljOgog
ICAgIHN0cnVjdCBUcmFja2luZ1BhcmFtZXRlcnMgewogICAgICAgICBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciBwYWdlSUQ7Ci0gICAgICAgIHVpbnQ2NF90IGZyYW1lSUQgeyAwIH07CisgICAgICAg
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEOwogICAgICAgICBSZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyIHJlc291cmNlSUQgeyAwIH07CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24u
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24uY3BwCmluZGV4IDZmYzA5YzRmNjViMjQ1YjYwYmY0ZDRmNTk3YTlmOTBhZDRk
MGFhZjkuLjQ5ZDIwYzdjNDljMDJhYTk1OWFhNGFlNGQ5ZWVjOGZlODNjNWZlN2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKQEAgLTczLDcgKzczLDcgQEAgc3RhdGljIGNv
bnN0IFNlY29uZHMgc3luY1dvcmtlclRlcm1pbmF0aW9uVGltZW91dCB7IDEwMF9tcyB9OyAvLyBP
bmx5IHVzZWQgYnkgbGEKIAogY2xhc3MgU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50IGZp
bmFsIDogcHVibGljIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgewogcHVibGljOgotICAgIFNlcnZp
Y2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudChXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50KQor
ICAgIFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudChXZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJp
bmcmIHVzZXJBZ2VudCkKICAgICAgICAgOiBtX2Nvbm5lY3Rpb24oY29ubmVjdGlvbikKICAgICAg
ICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgICAgICwgbV9wYWdlSUQocGFnZUlEKQpA
QCAtOTYsMTMgKzk2LDEzIEBAIHByaXZhdGU6CiAKICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQogICAgIE9wdGlvbmFsPFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Bh
Z2VJRDsgfQotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9mcmFtZUlEOyB9CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
PiBmcmFtZUlEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9mcmFtZUlEOyB9CiAgICAgU3RyaW5n
IHVzZXJBZ2VudChjb25zdCBVUkwmKSBmaW5hbCB7IHJldHVybiBtX3VzZXJBZ2VudDsgfQogCiAg
ICAgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24mIG1fY29ubmVjdGlvbjsKICAgICBQQUw6
OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKLSAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBtX3Bh
Z2VJRDsKLSAgICB1aW50NjRfdCBtX2ZyYW1lSUQgeyAwIH07CisgICAgUGFnZUlkZW50aWZpZXIg
bV9wYWdlSUQ7CisgICAgRnJhbWVJZGVudGlmaWVyIG1fZnJhbWVJRDsKICAgICBTdHJpbmcgbV91
c2VyQWdlbnQ7CiB9OwogCkBAIC0xNTMsNyArMTUzLDggQEAgdm9pZCBXZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbjo6aW5zdGFsbFNlcnZpY2VXb3JrZXIoY29uc3QgU2VydmljZVdvcmtlckNv
bnQKIAogICAgIC8vIEZJWE1FOiBUaGlzIG1ldGhvZCBzaG91bGQgYmUgbW92ZWQgZGlyZWN0bHkg
dG8gV2ViQ29yZTo6U1dDb250ZXh0TWFuYWdlcjo6Q29ubmVjdGlvbgogICAgIC8vIElmIGl0IHdl
cmVuJ3QgZm9yIFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudCdzIGRlcGVuZGVuY2Ugb24g
V2ViRG9jdW1lbnRMb2FkZXIsIHRoaXMgY291bGQgYWxyZWFkeSBoYXBwZW4uCi0gICAgYXV0byBm
cmFtZUxvYWRlckNsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8U2VydmljZVdvcmtlckZyYW1lTG9h
ZGVyQ2xpZW50PigqdGhpcywgc2Vzc2lvbklELCBtX3BhZ2VJRCwgKyttX3ByZXZpb3VzU2Vydmlj
ZVdvcmtlcklELCBlZmZlY3RpdmVVc2VyQWdlbnQpOworICAgIC8vIEZJWE1FOiBXZWlyZCB0byBw
YXNzIG1fcHJldmlvdXNTZXJ2aWNlV29ya2VySUQgYXMgYSBGcmFtZUlkZW50aWZpZXIuCisgICAg
YXV0byBmcmFtZUxvYWRlckNsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8U2VydmljZVdvcmtlckZy
YW1lTG9hZGVyQ2xpZW50PigqdGhpcywgc2Vzc2lvbklELCBtX3BhZ2VJRCwgZnJhbWVJZGVudGlm
aWVyRnJvbUlEKCsrbV9wcmV2aW91c1NlcnZpY2VXb3JrZXJJRCksIGVmZmVjdGl2ZVVzZXJBZ2Vu
dCk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24ubG9hZGVyQ2xpZW50Rm9yTWFpbkZyYW1lID0gZnJh
bWVMb2FkZXJDbGllbnQuZ2V0KCk7CiAgICAgbV9sb2FkZXJzLmFkZChXVEZNb3ZlKGZyYW1lTG9h
ZGVyQ2xpZW50KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggM2M4NzJmNWFkZjM5YmVh
Y2QzYTcwNjY3YjI2ODlkMzhjOWIxMTEyZS4uZWZkOWUyM2E5ODQ4MjU3OTExZTZiMDU2NjNhZmVk
YmFmYzQ4NDVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTI2NSw3ICsyNjUsNyBAQCB2
b2lkIFdlYkNocm9tZUNsaWVudDo6Zm9jdXNlZEZyYW1lQ2hhbmdlZChGcmFtZSogZnJhbWUpCiB7
CiAgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gZnJhbWUgPyBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFt
ZSgqZnJhbWUpIDogbnVsbHB0cjsKIAotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVu
dFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Rm9jdXNl
ZEZyYW1lQ2hhbmdlZCh3ZWJGcmFtZSA/IHdlYkZyYW1lLT5mcmFtZUlEKCkgOiAwKSwgbV9wYWdl
LnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkZvY3VzZWRGcmFtZUNoYW5n
ZWQod2ViRnJhbWUgPyBtYWtlT3B0aW9uYWwod2ViRnJhbWUtPmZyYW1lSUQoKSkgOiBXVEY6Om51
bGxvcHQpLCBtX3BhZ2UucGFnZUlEKCkpOwogfQogCiBQYWdlKiBXZWJDaHJvbWVDbGllbnQ6OmNy
ZWF0ZVdpbmRvdyhGcmFtZSYgZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIHJlcXVlc3Qs
IGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiB3aW5kb3dGZWF0dXJlcywgY29uc3QgTmF2aWdhdGlvbkFj
dGlvbiYgbmF2aWdhdGlvbkFjdGlvbikKQEAgLTYyNSw3ICs2MjUsNyBAQCB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSYgZnJhbWUsIGNvbnN0IEludFNpemUm
IHNpemUpIGNvbgogICAgICAgICBXZWJGcmFtZSogbGFyZ2VzdEZyYW1lID0gZmluZExhcmdlc3RG
cmFtZUluRnJhbWVTZXQobV9wYWdlKTsKICAgICAgICAgaWYgKGxhcmdlc3RGcmFtZSAhPSBtX2Nh
Y2hlZEZyYW1lU2V0TGFyZ2VzdEZyYW1lLmdldCgpKSB7CiAgICAgICAgICAgICBtX2NhY2hlZEZy
YW1lU2V0TGFyZ2VzdEZyYW1lID0gbGFyZ2VzdEZyYW1lOwotICAgICAgICAgICAgbV9wYWdlLnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RnJhbWVTZXRMYXJnZXN0RnJhbWVDaGFuZ2VkKGxh
cmdlc3RGcmFtZSA/IGxhcmdlc3RGcmFtZS0+ZnJhbWVJRCgpIDogMCkpOworICAgICAgICAgICAg
bV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RnJhbWVTZXRMYXJnZXN0RnJhbWVD
aGFuZ2VkKGxhcmdlc3RGcmFtZSA/IGxhcmdlc3RGcmFtZS0+ZnJhbWVJRCgpIDogRnJhbWVJZGVu
dGlmaWVyIHsgfSkpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xMzE2LDEyICsxMzE2LDEyIEBA
IHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRJbnZhbGlkYXRlRG9jdW1lbnRNYXJrZXJSZWN0cygp
CiB9CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotdm9pZCBXZWJDaHJv
bWVDbGllbnQ6Omhhc1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURv
bWFpbiwgUmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJ
RCwgUGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6aGFzU3RvcmFnZUFjY2VzcyhSZWdp
c3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZy
YW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbV9w
YWdlLmhhc1N0b3JhZ2VBY2Nlc3MoV1RGTW92ZShzdWJGcmFtZURvbWFpbiksIFdURk1vdmUodG9w
RnJhbWVEb21haW4pLCBmcmFtZUlELCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAK
LXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURv
bWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWlu
LCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0U3RvcmFn
ZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdpc3RyYWJsZURv
bWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0
b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
bV9wYWdlLnJlcXVlc3RTdG9yYWdlQWNjZXNzKFdURk1vdmUoc3ViRnJhbWVEb21haW4pLCBXVEZN
b3ZlKHRvcEZyYW1lRG9tYWluKSwgZnJhbWVJRCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGNlZDM2YTZjMjViN2U0ZjgzNDRhNTg5OTQwMDY3
OTFmN2NjOTI3NmYuLjJkYzY2MjJjMWI3ZjFjNWE5NWEyY2NkNzliMzIwOWJiNTg3MmE2MmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKQEAgLTM2Nyw4ICszNjcsOCBAQCBwcml2YXRlOgogICAgIHZvaWQg
ZGlkSW52YWxpZGF0ZURvY3VtZW50TWFya2VyUmVjdHMoKSBmaW5hbDsKIAogI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFs
OwotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4mJiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFt
ZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdURjo6
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwg
V2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJikgZmluYWw7CisgICAgdm9p
ZCBoYXNTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVE
b21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdURjo6Q29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFn
ZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VB
Y2Nlc3NQcm9tcHRXYXNTaG93bik+JiYpIGZpbmFsOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoREVW
SUNFX09SSUVOVEFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggNjU3
MzliYjhhYTk2ZGZlOGMyYjBlMjZjMTcxYTlmOWI3NmI3MzQwOS4uNzA5ODBlZTViNWI4ZDcwMzdl
NDViM2YyYWYzZTJiYjFmYTAzOTRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CkBAIC0xMjAsNyArMTIwLDcgQEAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpwYWdlSUQoKSBjb25zdAogICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiB9CiAK
LU9wdGlvbmFsPHVpbnQ2NF90PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZnJhbWVJRCgpIGNvbnN0
CitPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlE
KCkgY29uc3QKIHsKICAgICBpZiAobV9mcmFtZSkKICAgICAgICAgcmV0dXJuIG1fZnJhbWUtPmZy
YW1lSUQoKTsKQEAgLTU0Niw3ICs1NDYsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZQogICAg
IGlmICghd2ViUGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUkVMRUFTRV9MT0coTmV0d29y
aywgIiVwIC0gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFs
TG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIpIiwgdGhp
cywgd2ViUGFnZS0+cGFnZUlEKCkudG9VSW50NjQoKSwgbV9mcmFtZS0+ZnJhbWVJRCgpKTsKKyAg
ICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIikiLCB0aGlzLCB3ZWJQYWdlLT5wYWdlSUQoKS50b1VJbnQ2NCgpLCBtX2Zy
YW1lLT5mcmFtZUlEKCkudG9VSW50NjQoKSk7CiAKICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IHVz
ZXJEYXRhOwogCkBAIC01ODIsNyArNTgyLDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEaWRGYWlsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKICAgICBpZiAo
IXdlYlBhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJFTEVBU0VfTE9HKE5ldHdvcmssICIl
cCAtIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkOiAocGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIikiLCB0aGlzLCB3ZWJQYWdlLT5wYWdl
SUQoKS50b1VJbnQ2NCgpLCBtX2ZyYW1lLT5mcmFtZUlEKCkpOworICAgIFJFTEVBU0VfTE9HKE5l
dHdvcmssICIlcCAtIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkOiAo
cGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIikiLCB0aGlzLCB3ZWJQ
YWdlLT5wYWdlSUQoKS50b1VJbnQ2NCgpLCBtX2ZyYW1lLT5mcmFtZUlEKCkudG9VSW50NjQoKSk7
CiAKICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IHVzZXJEYXRhOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oCmluZGV4IGM4ZmIyYWYyMTI1NjZjNjQ2ODYwNzdhMGM4OWFmODEwNTM5MGE2ODAu
LjY0MWI4YzA2NjM0MTM4MGMwNzAyODIwYjg3ODlkZDE4NWU4YmIwNDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFwcGx5
VG9Eb2N1bWVudExvYWRlcihXZWJzaXRlUG9saWNpZXNEYXRhJiYpOwogCiAgICAgT3B0aW9uYWw8
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCgpIGNvbnN0IGZpbmFsOwotICAgIE9wdGlv
bmFsPHVpbnQ2NF90PiBmcmFtZUlEKCkgY29uc3QgZmluYWw7CisgICAgT3B0aW9uYWw8V2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKCkgY29uc3QgZmluYWw7CiAgICAgUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgZmluYWw7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViQ29va2llSmFyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YkNvb2tpZUphci5jcHAKaW5kZXggNzM4YmU5MmI5MmRjNzNkMmRmNjc3ZWUzNGVjMTMwODFhNjBm
MWExYy4uZjZjNTU3ZDVmMGZkMjAxZGJiNTA1MTE0N2ViYzI3MGE1YjQ1Y2YzYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuY3BwCkBAIC01
MCw3ICs1MCw3IEBAIFdlYkNvb2tpZUphcjo6V2ViQ29va2llSmFyKCkKIAogU3RyaW5nIFdlYkNv
b2tpZUphcjo6Y29va2llcyhXZWJDb3JlOjpEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYg
dXJsKSBjb25zdAogewotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlv
bmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmll
cj4gcGFnZUlEOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKICAg
ICAgICAgZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CkBAIC02
Nyw3ICs2Nyw3IEBAIFN0cmluZyBXZWJDb29raWVKYXI6OmNvb2tpZXMoV2ViQ29yZTo6RG9jdW1l
bnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCkgY29uc3QKIAogdm9pZCBXZWJDb29raWVKYXI6
OnNldENvb2tpZXMoV2ViQ29yZTo6RG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCwg
Y29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpCiB7Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEOwogICAgIE9wdGlv
bmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7CiAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1l
bnQuZnJhbWUoKSkgewogICAgICAgICBmcmFtZUlEID0gZnJhbWUtPmxvYWRlcigpLmNsaWVudCgp
LmZyYW1lSUQoKTsKQEAgLTg1LDcgKzg1LDcgQEAgYm9vbCBXZWJDb29raWVKYXI6OmNvb2tpZXNF
bmFibGVkKGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50JiBkb2N1bWVudCkgY29uc3QKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCi1zdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb3JlOjpTZWN1cmVDb29raWVz
QWNjZXNzZWQ+IFdlYkNvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29u
c3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9w
dGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlE
LCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29u
c3QKK3N0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvcmU6OlNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gV2Vi
Q29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBQQUw6OlNlc3Np
b25JRCYgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNh
bWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJ
ZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBXZWJD
b3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKIHsK
ICAgICBTdHJpbmcgY29va2llU3RyaW5nOwogICAgIGJvb2wgc2VjdXJlQ29va2llc0FjY2Vzc2Vk
ID0gZmFsc2U7CkBAIC05Niw3ICs5Niw3IEBAIHN0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvcmU6OlNl
Y3VyZUNvb2tpZXNBY2Nlc3NlZD4gV2ViQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhCiAKIGJv
b2wgV2ViQ29va2llSmFyOjpnZXRSYXdDb29raWVzKGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50JiBk
b2N1bWVudCwgY29uc3QgVVJMJiB1cmwsIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiByYXdDb29r
aWVzKSBjb25zdAogewotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlv
bmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmll
cj4gcGFnZUlEOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKICAg
ICAgICAgZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5oCmluZGV4IDU1
OWJkMGU1MGJiZWMzNWZmYjI1NmI5MTJiN2I0NmRhOTk0YjJkNDguLjVkY2FjZGQ5NjhlNmE0YjA2
MjdjNzg3YzZkYTFhNTE1NDcxYmY4OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkNvb2tpZUphci5oCkBAIC0zNiw3ICszNiw3IEBAIHB1YmxpYzoKICAgICBT
dHJpbmcgY29va2llcyhXZWJDb3JlOjpEb2N1bWVudCYsIGNvbnN0IFVSTCYpIGNvbnN0IGZpbmFs
OwogICAgIHZvaWQgc2V0Q29va2llcyhXZWJDb3JlOjpEb2N1bWVudCYsIGNvbnN0IFVSTCYsIGNv
bnN0IFN0cmluZyYgY29va2llU3RyaW5nKSBmaW5hbDsKICAgICBib29sIGNvb2tpZXNFbmFibGVk
KGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50JikgY29uc3QgZmluYWw7Ci0gICAgc3RkOjpwYWlyPFN0
cmluZywgV2ViQ29yZTo6U2VjdXJlQ29va2llc0FjY2Vzc2VkPiBjb29raWVSZXF1ZXN0SGVhZGVy
RmllbGRWYWx1ZShjb25zdCBQQUw6OlNlc3Npb25JRCYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwg
Y29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0
X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgV2ViQ29yZTo6
SW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0IGZpbmFsOworICAgIHN0ZDo6cGFpcjxTdHJpbmcs
IFdlYkNvcmU6OlNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxk
VmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgV2ViQ29y
ZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgZ2V0UmF3Q29v
a2llcyhjb25zdCBXZWJDb3JlOjpEb2N1bWVudCYsIGNvbnN0IFVSTCYsIFZlY3RvcjxXZWJDb3Jl
OjpDb29raWU+JikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBkZWxldGVDb29raWUoY29uc3QgV2Vi
Q29yZTo6RG9jdW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUpIGZp
bmFsOwogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZy
YW1lLmNwcAppbmRleCA2MGNmZDhkMmExNzU0YTdhY2VkNThkNjFkZjE3YmU0YzE0MzEzNjk0Li5m
MGViZmVkYmIyZTk1M2FkMGZjMDdmOWY4MTY2MDlkYjk3MzViNjY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC05NSwxMiArOTUsNiBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogREVGSU5FX0RFQlVHX09OTFlfR0xPQkFMKFdURjo6
UmVmQ291bnRlZExlYWtDb3VudGVyLCB3ZWJGcmFtZUNvdW50ZXIsICgiV2ViRnJhbWUiKSk7CiAK
LXN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUZyYW1lSUQoKQotewotICAgIHN0YXRpYyB1aW50NjRf
dCB1bmlxdWVGcmFtZUlEID0gMTsKLSAgICByZXR1cm4gdW5pcXVlRnJhbWVJRCsrOwotfQotCiBz
dGF0aWMgdWludDY0X3QgZ2VuZXJhdGVMaXN0ZW5lcklEKCkKIHsKICAgICBzdGF0aWMgdWludDY0
X3QgdW5pcXVlTGlzdGVuZXJJRCA9IDE7CkBAIC0xNDgsNyArMTQyLDcgQEAgUmVmPFdlYkZyYW1l
PiBXZWJGcmFtZTo6Y3JlYXRlKHN0ZDo6dW5pcXVlX3B0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4g
ZnJhbWVMb2FkZXIKIAogV2ViRnJhbWU6OldlYkZyYW1lKHN0ZDo6dW5pcXVlX3B0cjxXZWJGcmFt
ZUxvYWRlckNsaWVudD4gZnJhbWVMb2FkZXJDbGllbnQpCiAgICAgOiBtX2ZyYW1lTG9hZGVyQ2xp
ZW50KFdURk1vdmUoZnJhbWVMb2FkZXJDbGllbnQpKQotICAgICwgbV9mcmFtZUlEKGdlbmVyYXRl
RnJhbWVJRCgpKQorICAgICwgbV9mcmFtZUlEKEZyYW1lSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkK
IHsKICAgICBtX2ZyYW1lTG9hZGVyQ2xpZW50LT5zZXRXZWJGcmFtZSh0aGlzKTsKICAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5hZGRXZWJGcmFtZShtX2ZyYW1lSUQsIHRoaXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKaW5kZXggNzFiMzhmNjFhYjE5
NTA1NWI0NDdlODdiZmZmN2U5NjQwNmRlZWE5Yy4uMWVjNTA3NTQyNTdmODY2ZWIyYWU4ZWM0Y2Iw
YzZkMWZmZTg2NTZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJG
cmFtZS5oCkBAIC04MCw3ICs4MCw3IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpGcmFtZSogY29y
ZUZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9jb3JlRnJhbWU7IH0KIAogICAgIEZyYW1lSW5mb0Rh
dGEgaW5mbygpIGNvbnN0OwotICAgIHVpbnQ2NF90IGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBt
X2ZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNvbnN0
IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQogCiAgICAgZW51bSBjbGFzcyBGb3JOYXZpZ2F0aW9uQWN0
aW9uIHsgTm8sIFllcyB9OwogICAgIHVpbnQ2NF90IHNldFVwUG9saWN5TGlzdGVuZXIoV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYs
IEZvck5hdmlnYXRpb25BY3Rpb24pOwpAQCAtMTg3LDcgKzE4Nyw3IEBAIHByaXZhdGU6CiAgICAg
c3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50PiBtX2ZyYW1lTG9hZGVyQ2xpZW50
OwogICAgIExvYWRMaXN0ZW5lciogbV9sb2FkTGlzdGVuZXIgeyBudWxscHRyIH07CiAgICAgCi0g
ICAgdWludDY0X3QgbV9mcmFtZUlEIHsgMCB9OworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBtX2ZyYW1lSUQ7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHVpbnQ2NF90IG1f
Zmlyc3RMYXllclRyZWVUcmFuc2FjdGlvbklEQWZ0ZXJEaWRDb21taXRMb2FkIHsgMCB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKaW5k
ZXggZjI4ZGU1NjhlYzUxNWE1MWMzOGUwOWNhYWM0NGVhNzdmMjFkM2RiZS4uMWYwMTZhZWFkYTk5
NmY5NjNkZDVlNGVmYjk2ZDBjYWZlNjBhZDYxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCkBAIC0yMDksNyArMjA5LDcgQEAgdm9p
ZCBXZWJJbnNwZWN0b3I6OnNob3dSZXNvdXJjZXMoKQogICAgIH0pOwogfQogCi12b2lkIFdlYklu
c3BlY3Rvcjo6c2hvd01haW5SZXNvdXJjZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSWRlbnRpZmll
cikKK3ZvaWQgV2ViSW5zcGVjdG9yOjpzaG93TWFpblJlc291cmNlRm9yRnJhbWUoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSWRlbnRpZmllcikKIHsKICAgICBXZWJGcmFtZSogZnJhbWUg
PSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlkZW50aWZpZXIpOwogICAg
IGlmICghZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJJbnNwZWN0b3IuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYklu
c3BlY3Rvci5oCmluZGV4IDQ4OWU0MWMwNzRmYzM2M2IzODAxMTYxN2I0Yzc1ODI0ZGY1OWQ0N2Iu
LjI2Yjg5ZTUyMjc3OTc4ZDUzYTMzZmUzYzcxMTVlYWViYmIzODI5NTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oCkBAIC0yOCw2ICsyOCw3
IEBACiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2lu
Y2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlm
aWVyLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKQEAgLTYwLDcgKzYxLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2hvd0Nv
bnNvbGUoKTsKICAgICB2b2lkIHNob3dSZXNvdXJjZXMoKTsKIAotICAgIHZvaWQgc2hvd01haW5S
ZXNvdXJjZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBzaG93
TWFpblJlc291cmNlRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKIAogICAgIHZv
aWQgc2V0QXR0YWNoZWQoYm9vbCBhdHRhY2hlZCkgeyBtX2F0dGFjaGVkID0gYXR0YWNoZWQ7IH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVj
dG9yLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5z
cGVjdG9yLm1lc3NhZ2VzLmluCmluZGV4IGI2ZjNjMDFiMjQyMjI2YTIwZmI0OWM1NDIyMDNhNmRj
ZGUyMjFlNjkuLmRhZjc0YjVlNmIwNDMwYjZiMGNhM2JlMjYwZjVmZmFiZWNkNjU0ODkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0
b3IubWVzc2FnZXMuaW4KQEAgLTI5LDcgKzI5LDcgQEAgbWVzc2FnZXMgLT4gV2ViSW5zcGVjdG9y
IHsKICAgICBTaG93Q29uc29sZSgpCiAgICAgU2hvd1Jlc291cmNlcygpCiAKLSAgICBTaG93TWFp
blJlc291cmNlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJZGVudGlmaWVyKQorICAgIFNob3dNYWlu
UmVzb3VyY2VGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJZGVudGlmaWVy
KQogCiAgICAgT3BlbkluTmV3VGFiKFN0cmluZyB1cmwpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMTMzNjU3MGQ5M2FhNTExMDY5Nzg1NjEx
NzAyNjA4OTNiOGEzY2RiNC4uMDFmZjFhNGY0NTdlNTM5MzU2MTQzMjRhMDk0ODg0MDNhNzUwNTVh
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAg
LTE0OTcsNyArMTQ5Nyw3IEBAIHZvaWQgV2ViUGFnZTo6c3VzcGVuZEZvclByb2Nlc3NTd2FwKCkK
ICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFN1c3BlbmRBZnRlclByb2Nlc3NT
d2FwKCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OmxvYWRVUkxJbkZyYW1lKFVSTCYmIHVybCwgY29u
c3QgU3RyaW5nJiByZWZlcnJlciwgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZTo6bG9h
ZFVSTEluRnJhbWUoVVJMJiYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCkKIHsKICAgICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtMTUwNiw3ICsx
NTA2LDcgQEAgdm9pZCBXZWJQYWdlOjpsb2FkVVJMSW5GcmFtZShVUkwmJiB1cmwsIGNvbnN0IFN0
cmluZyYgcmVmZXJyZXIsIHVpbnQ2NF90IGZyYW1lSUQKICAgICBmcmFtZS0+Y29yZUZyYW1lKCkt
PmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVxdWVzdCgqZnJhbWUtPmNvcmVGcmFtZSgpLCBSZXNv
dXJjZVJlcXVlc3QodXJsLCByZWZlcnJlciksIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6
OlNob3VsZE5vdEFsbG93KSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6bG9hZERhdGFJbkZyYW1lKElQ
Qzo6RGF0YVJlZmVyZW5jZSYmIGRhdGEsIFN0cmluZyYmIE1JTUVUeXBlLCBTdHJpbmcmJiBlbmNv
ZGluZ05hbWUsIFVSTCYmIGJhc2VVUkwsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2U6
OmxvYWREYXRhSW5GcmFtZShJUEM6OkRhdGFSZWZlcmVuY2UmJiBkYXRhLCBTdHJpbmcmJiBNSU1F
VHlwZSwgU3RyaW5nJiYgZW5jb2RpbmdOYW1lLCBVUkwmJiBiYXNlVVJMLCBGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCkKIHsKICAgICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtMTYxNCw3ICsxNjE0
LDcgQEAgdm9pZCBXZWJQYWdlOjpuYXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0ZWRDbGljayhj
b25zdCBTdHJpbmcmIHVybCwgSW50UG9pbnQgZG8KICAgICBtYWluRnJhbWUtPmxvYWRlcigpLnVy
bFNlbGVjdGVkKG1haW5GcmFtZURvY3VtZW50LT5jb21wbGV0ZVVSTCh1cmwpLCBlbXB0eVN0cmlu
ZygpLCBtb3VzZUV2ZW50LnB0cigpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExp
c3Q6Ok5vLCBTaG91bGRTZW5kUmVmZXJyZXI6Ok5ldmVyU2VuZFJlZmVycmVyLCBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6
c3RvcExvYWRpbmdGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlOjpzdG9wTG9h
ZGluZ0ZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIFdlYkZyYW1lKiBmcmFt
ZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlmICgh
ZnJhbWUpCkBAIC0zMjM0LDcgKzMyMzQsNyBAQCB2b2lkIFdlYlBhZ2U6OnNldFNlc3Npb25JRChQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgbV9wYWdlLT5zZXRTZXNzaW9uSUQoc2Vzc2lv
bklEKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24odWludDY0
X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgY29uc3QgRG93bmxvYWRJRCYgZG93bmxvYWRJRCwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVz
RGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMpCit2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVQb2xpY3lE
ZWNpc2lvbihGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCwgUG9s
aWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24s
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgRG93bmxvYWRJRCYgZG93bmxvYWRJRCwgT3B0
aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMpCiB7CiAgICAgV2Vi
RnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7
CiAgICAgaWYgKCFmcmFtZSkKQEAgLTMyNDIsNyArMzI0Miw3IEBAIHZvaWQgV2ViUGFnZTo6ZGlk
UmVjZWl2ZVBvbGljeURlY2lzaW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVy
SUQsIFBvCiAgICAgZnJhbWUtPmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihsaXN0ZW5lcklELCBp
ZGVudGlmaWVyLCBwb2xpY3lBY3Rpb24sIG5hdmlnYXRpb25JRCwgZG93bmxvYWRJRCwgV1RGTW92
ZSh3ZWJzaXRlUG9saWNpZXMpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpjb250aW51ZVdpbGxTdWJt
aXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQpCit2b2lkIFdlYlBh
Z2U6OmNvbnRpbnVlV2lsbFN1Ym1pdEZvcm0oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2
NF90IGxpc3RlbmVySUQpCiB7CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCFmcmFtZSkKQEAgLTMzODQsNyAr
MzM4NCw3IEBAIHZvaWQgV2ViUGFnZTo6cnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lU2NyaXB0V29y
bGQoY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yCiAgICAgcnVuSmF2YVNjcmlwdChtYWlu
V2ViRnJhbWUoKSwgc2NyaXB0LCBmb3JjZVVzZXJHZXN0dXJlLCB3b3JsZE5hbWUsIGNhbGxiYWNr
SUQpOwogfQogCi12b2lkIFdlYlBhZ2U6OnJ1bkphdmFTY3JpcHRJbkZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIENhbGxi
YWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6cnVuSmF2YVNjcmlwdEluRnJhbWUoRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib29sIGZvcmNlVXNl
ckdlc3R1cmUsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBXZWJGcmFtZSogZnJhbWUg
PSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBBU1NFUlQo
bWFpbldlYkZyYW1lKCkgIT0gZnJhbWUpOwpAQCAtMzQ0NSw3ICszNDQ1LDcgQEAgdm9pZCBXZWJQ
YWdlOjpnZXRTZWxlY3Rpb25PckNvbnRlbnRzQXNTdHJpbmcoQ2FsbGJhY2tJRCBjYWxsYmFja0lE
KQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3RyaW5nQ2FsbGJhY2socmVzdWx0
U3RyaW5nLCBjYWxsYmFja0lEKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6Z2V0U291cmNlRm9yRnJh
bWUodWludDY0X3QgZnJhbWVJRCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdl
OjpnZXRTb3VyY2VGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ2FsbGJhY2tJRCBj
YWxsYmFja0lEKQogewogICAgIFN0cmluZyByZXN1bHRTdHJpbmc7CiAgICAgaWYgKFdlYkZyYW1l
KiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpKQpAQCAt
MzQ1NCw3ICszNDU0LDcgQEAgdm9pZCBXZWJQYWdlOjpnZXRTb3VyY2VGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgc2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpTdHJpbmdDYWxsYmFjayhyZXN1bHRTdHJpbmcsIGNhbGxiYWNrSUQpKTsKIH0K
IAotdm9pZCBXZWJQYWdlOjpnZXRNYWluUmVzb3VyY2VEYXRhT2ZGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYlBhZ2U6OmdldE1haW5SZXNvdXJj
ZURhdGFPZkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDYWxsYmFja0lEIGNhbGxiYWNr
SUQpCiB7CiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyOwogICAgIGlmIChXZWJGcmFt
ZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSkgewpA
QCAtMzQ4NSw3ICszNDg1LDcgQEAgc3RhdGljIFJlZlB0cjxTaGFyZWRCdWZmZXI+IHJlc291cmNl
RGF0YUZvckZyYW1lKEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiByZXNvdXIKICAgICByZXR1cm4g
JnN1YnJlc291cmNlLT5kYXRhKCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6Z2V0UmVzb3VyY2VEYXRh
RnJvbUZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VVUkxTdHJp
bmcsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6Z2V0UmVzb3VyY2VEYXRh
RnJvbUZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHJlc291cmNl
VVJMU3RyaW5nLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4gYnVmZmVyOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLndlYkZyYW1lKGZyYW1lSUQpKSB7CkBAIC0zNDk5LDcgKzM0OTksNyBAQCB2b2lkIFdlYlBh
Z2U6OmdldFJlc291cmNlRGF0YUZyb21GcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJp
bmcmIHJlc291cmNlVQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGF0YUNhbGxi
YWNrKGRhdGFSZWZlcmVuY2UsIGNhbGxiYWNrSUQpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpnZXRX
ZWJBcmNoaXZlT2ZGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQp
Cit2b2lkIFdlYlBhZ2U6OmdldFdlYkFyY2hpdmVPZkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAg
UmV0YWluUHRyPENGRGF0YVJlZj4gZGF0YTsKQEAgLTM4MDIsMTMgKzM4MDIsMTMgQEAgV2ViRnVs
bFNjcmVlbk1hbmFnZXIqIFdlYlBhZ2U6OmZ1bGxTY3JlZW5NYW5hZ2VyKCkKIH0KICNlbmRpZgog
Ci12b2lkIFdlYlBhZ2U6OmFkZENvbnNvbGVNZXNzYWdlKHVpbnQ2NF90IGZyYW1lSUQsIE1lc3Nh
Z2VTb3VyY2UgbWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsIG1lc3NhZ2VMZXZlbCwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCB1aW50NjRfdCByZXF1ZXN0SUQpCit2b2lkIFdlYlBhZ2U6OmFkZENv
bnNvbGVNZXNzYWdlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBNZXNzYWdlU291cmNlIG1lc3Nh
Z2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCBtZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgdWludDY0X3QgcmVxdWVzdElEKQogewogICAgIGlmIChhdXRvKiBmcmFtZSA9IFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpKQogICAgICAgICBmcmFtZS0+YWRkQ29u
c29sZU1lc3NhZ2UobWVzc2FnZVNvdXJjZSwgbWVzc2FnZUxldmVsLCBtZXNzYWdlLCByZXF1ZXN0
SUQpOwogfQogCi12b2lkIFdlYlBhZ2U6OnNlbmRDU1BWaW9sYXRpb25SZXBvcnQodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgVVJMJiByZXBvcnRVUkwsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiBy
ZXBvcnREYXRhKQordm9pZCBXZWJQYWdlOjpzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgSVBDOjpGb3JtRGF0YVJlZmVy
ZW5jZSYmIHJlcG9ydERhdGEpCiB7CiAgICAgYXV0byByZXBvcnQgPSByZXBvcnREYXRhLnRha2VE
YXRhKCk7CiAgICAgaWYgKCFyZXBvcnQpCkBAIC0zODE3LDcgKzM4MTcsNyBAQCB2b2lkIFdlYlBh
Z2U6OnNlbmRDU1BWaW9sYXRpb25SZXBvcnQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVVJMJiBy
ZXBvcnRVUkwsIElQQwogICAgICAgICBQaW5nTG9hZGVyOjpzZW5kVmlvbGF0aW9uUmVwb3J0KCpm
cmFtZS0+Y29yZUZyYW1lKCksIHJlcG9ydFVSTCwgcmVwb3J0LnJlbGVhc2VOb25OdWxsKCksIFZp
b2xhdGlvblJlcG9ydFR5cGU6OkNvbnRlbnRTZWN1cml0eVBvbGljeSk7CiB9CiAKLXZvaWQgV2Vi
UGFnZTo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQodWludDY0X3QgZnJhbWVJ
RCwgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmIGV2ZW50SW5pdCkKK3ZvaWQg
V2ViUGFnZTo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJiBldmVudElu
aXQpCiB7CiAgICAgYXV0byogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFt
ZShmcmFtZUlEKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtNDY4MCw3ICs0NjgwLDcgQEAgdm9pZCBX
ZWJQYWdlOjplZmZlY3RpdmVBcHBlYXJhbmNlRGlkQ2hhbmdlKGJvb2wgdXNlRGFya0FwcGVhcmFu
Y2UsIGJvb2wgdXNlRWxldmEKIH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2U6OmJlZ2luUHJpbnRp
bmcodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8pCit2b2lkIFdl
YlBhZ2U6OmJlZ2luUHJpbnRpbmcoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50
SW5mbyYgcHJpbnRJbmZvKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlmICghZnJhbWUpCkBAIC00NzI0LDcg
KzQ3MjQsNyBAQCB2b2lkIFdlYlBhZ2U6OmVuZFByaW50aW5nKCkKICAgICB9CiB9CiAKLXZvaWQg
V2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
UHJpbnRJbmZvJiBwcmludEluZm8sIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFn
ZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0
IFByaW50SW5mbyYgcHJpbnRJbmZvLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgVmVj
dG9yPEludFJlY3Q+IHJlc3VsdFBhZ2VSZWN0czsKICAgICBkb3VibGUgcmVzdWx0VG90YWxTY2Fs
ZUZhY3RvckZvclByaW50aW5nID0gMTsKQEAgLTQ3MzMsNyArNDczMyw3IEBAIHZvaWQgV2ViUGFn
ZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJ
bmZvJiBwcmludEluCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDb21wdXRlZFBh
Z2VzQ2FsbGJhY2socmVzdWx0UGFnZVJlY3RzLCByZXN1bHRUb3RhbFNjYWxlRmFjdG9yRm9yUHJp
bnRpbmcsIGNvbXB1dGVkUGFnZU1hcmdpbiwgY2FsbGJhY2tJRCkpOwogfQogCi12b2lkIFdlYlBh
Z2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nSW1wbCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQ
cmludEluZm8mIHByaW50SW5mbywgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+JiByZXN1bHRQYWdl
UmVjdHMsIGRvdWJsZSYgcmVzdWx0VG90YWxTY2FsZUZhY3RvckZvclByaW50aW5nLCBGbG9hdEJv
eEV4dGVudCYgY29tcHV0ZWRQYWdlTWFyZ2luKQordm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNG
b3JQcmludGluZ0ltcGwoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYg
cHJpbnRJbmZvLCBWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4mIHJlc3VsdFBhZ2VSZWN0cywgZG91
YmxlJiByZXN1bHRUb3RhbFNjYWxlRmFjdG9yRm9yUHJpbnRpbmcsIEZsb2F0Qm94RXh0ZW50JiBj
b21wdXRlZFBhZ2VNYXJnaW4pCiB7CiAgICAgQVNTRVJUKHJlc3VsdFBhZ2VSZWN0cy5pc0VtcHR5
KCkpOwogCkBAIC00NzU2LDcgKzQ3NTYsNyBAQCB2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0Zv
clByaW50aW5nSW1wbCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaQogfQog
CiAjaWYgUExBVEZPUk0oQ09DT0EpCi12b2lkIFdlYlBhZ2U6OmRyYXdSZWN0VG9JbWFnZSh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgY29uc3QgSW50UmVjdCYg
cmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaW1hZ2VTaXplLCBDYWxsYmFja0lEIGNhbGxi
YWNrSUQpCit2b2lkIFdlYlBhZ2U6OmRyYXdSZWN0VG9JbWFnZShGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QsIGNv
bnN0IFdlYkNvcmU6OkludFNpemUmIGltYWdlU2l6ZSwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQog
ewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1l
KGZyYW1lSUQpOwogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBmcmFtZSA/IGZyYW1lLT5jb3JlRnJh
bWUoKSA6IDA7CkBAIC00ODA2LDE0ICs0ODA2LDE0IEBAIHZvaWQgV2ViUGFnZTo6ZHJhd1JlY3RU
b0ltYWdlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBjb25z
CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpJbWFnZUNhbGxiYWNrKGhhbmRsZSwg
Y2FsbGJhY2tJRCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OmRyYXdQYWdlc1RvUERGKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCB1aW50MzJfdCBmaXJzdCwgdWlu
dDMyX3QgY291bnQsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6ZHJhd1Bh
Z2VzVG9QREYoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJ
bmZvLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIENhbGxiYWNrSUQgY2FsbGJhY2tJ
RCkKIHsKICAgICBSZXRhaW5QdHI8Q0ZNdXRhYmxlRGF0YVJlZj4gcGRmUGFnZURhdGE7CiAgICAg
ZHJhd1BhZ2VzVG9QREZJbXBsKGZyYW1lSUQsIHByaW50SW5mbywgZmlyc3QsIGNvdW50LCBwZGZQ
YWdlRGF0YSk7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEYXRhQ2FsbGJhY2so
eyBDRkRhdGFHZXRCeXRlUHRyKHBkZlBhZ2VEYXRhLmdldCgpKSwgc3RhdGljX2Nhc3Q8c2l6ZV90
PihDRkRhdGFHZXRMZW5ndGgocGRmUGFnZURhdGEuZ2V0KCkpKSB9LCBjYWxsYmFja0lEKSk7CiB9
CiAKLXZvaWQgV2ViUGFnZTo6ZHJhd1BhZ2VzVG9QREZJbXBsKHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQs
IFJldGFpblB0cjxDRk11dGFibGVEYXRhUmVmPiYgcGRmUGFnZURhdGEpCit2b2lkIFdlYlBhZ2U6
OmRyYXdQYWdlc1RvUERGSW1wbChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJ
bmZvJiBwcmludEluZm8sIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgUmV0YWluUHRy
PENGTXV0YWJsZURhdGFSZWY+JiBwZGZQYWdlRGF0YSkKIHsKICAgICBXZWJGcmFtZSogZnJhbWUg
PSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBGcmFtZSog
Y29yZUZyYW1lID0gZnJhbWUgPyBmcmFtZS0+Y29yZUZyYW1lKCkgOiAwOwpAQCAtNDg2NCw3ICs0
ODY0LDcgQEAgdm9pZCBXZWJQYWdlOjpkcmF3UGFnZXNUb1BERkltcGwodWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIHUKIH0KIAogI2VsaWYgUExBVEZPUk0oR1RL
KQotdm9pZCBXZWJQYWdlOjpkcmF3UGFnZXNGb3JQcmludGluZyh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBQcmludEluZm8mIHByaW50SW5mbywgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBX
ZWJQYWdlOjpkcmF3UGFnZXNGb3JQcmludGluZyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29u
c3QgUHJpbnRJbmZvJiBwcmludEluZm8sIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBi
ZWdpblByaW50aW5nKGZyYW1lSUQsIHByaW50SW5mbyk7CiAgICAgaWYgKG1fcHJpbnRDb250ZXh0
ICYmIG1fcHJpbnRPcGVyYXRpb24pIHsKQEAgLTY1MDIsNyArNjUwMiw3IEBAIHZvaWQgV2ViUGFn
ZTo6c2V0SXNTdXNwZW5kZWQoYm9vbCBzdXNwZW5kZWQpCiAgICAgc3VzcGVuZEZvclByb2Nlc3NT
d2FwKCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZnJhbWVCZWNhbWVSZW1vdGUodWludDY0X3QgZnJh
bWVJRCwgR2xvYmFsRnJhbWVJZGVudGlmaWVyJiYgcmVtb3RlRnJhbWVJZGVudGlmaWVyLCBHbG9i
YWxXaW5kb3dJZGVudGlmaWVyJiYgcmVtb3RlV2luZG93SWRlbnRpZmllcikKK3ZvaWQgV2ViUGFn
ZTo6ZnJhbWVCZWNhbWVSZW1vdGUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEdsb2JhbEZyYW1l
SWRlbnRpZmllciYmIHJlbW90ZUZyYW1lSWRlbnRpZmllciwgR2xvYmFsV2luZG93SWRlbnRpZmll
ciYmIHJlbW90ZVdpbmRvd0lkZW50aWZpZXIpCiB7CiAgICAgUmVmUHRyPFdlYkZyYW1lPiBmcmFt
ZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlmICgh
ZnJhbWUpCkBAIC02NTM0LDEyICs2NTM0LDEyIEBAIHZvaWQgV2ViUGFnZTo6ZnJhbWVCZWNhbWVS
ZW1vdGUodWludDY0X3QgZnJhbWVJRCwgR2xvYmFsRnJhbWVJZGVudGlmaWVyJiYgcmVtb3RlCiB9
CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotdm9pZCBXZWJQYWdlOjpo
YXNTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFJlZ2lz
dHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2U6
Omhhc1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgUmVn
aXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
KCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6Okhhc1N0b3JhZ2VBY2Nlc3Moc2Vzc2lvbklEKCksIFdURk1vdmUo
c3ViRnJhbWVEb21haW4pLCBXVEZNb3ZlKHRvcEZyYW1lRG9tYWluKSwgZnJhbWVJRCwgbV9wYWdl
SUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6cmVx
dWVzdFN0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgUmVn
aXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgV2ViQ29y
ZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgV2ViUGFnZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJG
cmFtZURvbWFpbiwgUmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFj
Y2Vzc1dhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJl
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlJlcXVlc3RTdG9yYWdl
QWNjZXNzKHNlc3Npb25JRCgpLCBXVEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0b3BG
cmFtZURvbWFpbiksIGZyYW1lSUQsIG1fcGFnZUlEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwogfQpAQCAtNjU1NSw3ICs2NTU1LDcgQEAgdm9pZCBXZWJQYWdlOjp3YXNMb2FkZWRXaXRo
RGF0YVRyYW5zZmVyRnJvbVByZXZhbGVudFJlc291cmNlKCkKICNlbmRpZgogCiAjaWYgRU5BQkxF
KERFVklDRV9PUklFTlRBVElPTikKLXZvaWQgV2ViUGFnZTo6c2hvdWxkQWxsb3dEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmJiBvcmlnaW4sIGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQordm9pZCBXZWJQYWdlOjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5k
TW90aW9uQWNjZXNzKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmJiBvcmlnaW4sIGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKGZyYW1lSUQsIFdU
Rk1vdmUob3JpZ2luKSwgbWF5UHJvbXB0KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDcwOTky
NzAxNDI0M2MxMTI4ZmY2ZmFjOWU0ZWE5MmRkNjUxMjJjNmYuLjFkOTcxZjRhMzM4NjExZTk0MDli
MzRmMWU4MWRlZTUwYzc2MmZjYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKQEAgLTM0Niw5ICszNDYsOSBAQCBwdWJsaWM6CiAgICAgV2ViRnVsbFNjcmVl
bk1hbmFnZXIqIGZ1bGxTY3JlZW5NYW5hZ2VyKCk7CiAjZW5kaWYKIAotICAgIHZvaWQgYWRkQ29u
c29sZU1lc3NhZ2UodWludDY0X3QgZnJhbWVJRCwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVs
LCBjb25zdCBTdHJpbmcmLCB1aW50NjRfdCByZXF1ZXN0SUQgPSAwKTsKLSAgICB2b2lkIHNlbmRD
U1BWaW9sYXRpb25SZXBvcnQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVVJMJiByZXBvcnRVUkws
IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJik7Ci0gICAgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb25FdmVudCh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eVBvbGlj
eVZpb2xhdGlvbkV2ZW50OjpJbml0JiYpOworICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0
IFN0cmluZyYsIHVpbnQ2NF90IHJlcXVlc3RJRCA9IDApOworICAgIHZvaWQgc2VuZENTUFZpb2xh
dGlvblJlcG9ydChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFVSTCYgcmVwb3J0VVJM
LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYpOworICAgIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1
cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYpOwogCiAgICAgLy8gLS0gQ2FsbGVkIGJ5
IHRoZSBEcmF3aW5nQXJlYS4KICAgICAvLyBGSVhNRTogV2UgY291bGQgZ2VuZXJpY2l6ZSB0aGVz
ZSBpbnRvIGEgRHJhd2luZ0FyZWEgY2xpZW50IGludGVyZmFjZS4gV291bGQgdGhhdCBiZSBiZW5l
ZmljaWFsPwpAQCAtNTIyLDcgKzUyMiw3IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpDb2xvciB1
bmRlcmxheUNvbG9yKCkgY29uc3QgeyByZXR1cm4gbV91bmRlcmxheUNvbG9yOyB9CiAKICAgICB2
b2lkIHN0b3BMb2FkaW5nKCk7Ci0gICAgdm9pZCBzdG9wTG9hZGluZ0ZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQpOworICAgIHZvaWQgc3RvcExvYWRpbmdGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIpOwogICAgIGJvb2wgZGVmZXJzTG9hZGluZygpIGNvbnN0OwogICAgIHZvaWQgc2V0RGVmZXJz
TG9hZGluZyhib29sIGRlZmVyTG9hZGluZyk7CiAKQEAgLTc2OSw3ICs3NjksNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBjb25maXJtQ29tcG9zaXRpb24oY29uc3QgU3RyaW5nJiB0ZXh0LCBpbnQ2NF90
IHNlbGVjdGlvblN0YXJ0LCBpbnQ2NF90IHNlbGVjdGlvbkxlbmd0aCk7CiAgICAgdm9pZCBjYW5j
ZWxDb21wb3NpdGlvbigpOwogCi0gICAgdm9pZCBjb2xsYXBzZVNlbGVjdGlvbkluRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCk7CisgICAgdm9pZCBjb2xsYXBzZVNlbGVjdGlvbkluRnJhbWUoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyKTsKICAgICB2b2lkIHNob3dFbW9qaVBpY2tlcihXZWJDb3JlOjpG
cmFtZSYpOwogCiAgICAgdm9pZCBnZXRDZW50ZXJGb3Jab29tR2VzdHVyZShjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgY2VudGVySW5WaWV3Q29vcmRpbmF0ZXMsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoV2ViQ29yZTo6SW50UG9pbnQmJik+JiYpOwpAQCAtODYyLDIzICs4NjIsMjMgQEAgcHVibGlj
OgogICAgIFdlYkNvcmU6OkRyYWdTb3VyY2VBY3Rpb24gYWxsb3dlZERyYWdTb3VyY2VBY3Rpb25z
KCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd2VkRHJhZ1NvdXJjZUFjdGlvbnM7IH0KICNlbmRpZgog
Ci0gICAgdm9pZCBiZWdpblByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5m
byYpOworICAgIHZvaWQgYmVnaW5QcmludGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNv
bnN0IFByaW50SW5mbyYpOwogICAgIHZvaWQgZW5kUHJpbnRpbmcoKTsKLSAgICB2b2lkIGNvbXB1
dGVQYWdlc0ZvclByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIENh
bGxiYWNrSUQpOwotICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdJbXBsKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiYgcGFn
ZVJlY3RzLCBkb3VibGUmIHRvdGFsU2NhbGVGYWN0b3IsIFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50
JiBjb21wdXRlZE1hcmdpbik7CisgICAgdm9pZCBjb21wdXRlUGFnZXNGb3JQcmludGluZyhXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYsIENhbGxiYWNrSUQpOworICAg
IHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdJbXBsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgY29uc3QgUHJpbnRJbmZvJiwgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+JiBwYWdlUmVjdHMs
IGRvdWJsZSYgdG90YWxTY2FsZUZhY3RvciwgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIGNvbXB1
dGVkTWFyZ2luKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHZvaWQgZHJhd1JlY3RUb0lt
YWdlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBk
cmF3UGFnZXNUb1BERih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mLCB1aW50MzJf
dCBmaXJzdCwgdWludDMyX3QgY291bnQsIENhbGxiYWNrSUQpOwotICAgIHZvaWQgZHJhd1BhZ2Vz
VG9QREZJbXBsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIHVpbnQzMl90IGZp
cnN0LCB1aW50MzJfdCBjb3VudCwgUmV0YWluUHRyPENGTXV0YWJsZURhdGFSZWY+JiBwZGZQYWdl
RGF0YSk7CisgICAgdm9pZCBkcmF3UmVjdFRvSW1hZ2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBjb25zdCBQcmludEluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYsIENhbGxiYWNrSUQpOworICAgIHZvaWQgZHJhd1BhZ2VzVG9QREYoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mLCB1aW50MzJfdCBmaXJzdCwgdWlu
dDMyX3QgY291bnQsIENhbGxiYWNrSUQpOworICAgIHZvaWQgZHJhd1BhZ2VzVG9QREZJbXBsKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgdWludDMyX3QgZmlyc3Qs
IHVpbnQzMl90IGNvdW50LCBSZXRhaW5QdHI8Q0ZNdXRhYmxlRGF0YVJlZj4mIHBkZlBhZ2VEYXRh
KTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB2b2lkIGNvbXB1dGVQ
YWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50
SW5mbyYsIENhbGxiYWNrSUQsIE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21wdXRlUGFnZXNGb3JQcmlu
dGluZ0FuZERyYXdUb1BERjo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgY29tcHV0ZVBhZ2Vz
Rm9yUHJpbnRpbmdBbmREcmF3VG9QREYoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQ
cmludEluZm8mLCBDYWxsYmFja0lELCBNZXNzYWdlczo6V2ViUGFnZTo6Q29tcHV0ZVBhZ2VzRm9y
UHJpbnRpbmdBbmREcmF3VG9QREY6OkRlbGF5ZWRSZXBseSYmKTsKICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oR1RLKQotICAgIHZvaWQgZHJhd1BhZ2VzRm9yUHJpbnRpbmcodWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgUHJpbnRJbmZvJiwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBkcmF3UGFnZXNGb3JQ
cmludGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYsIENhbGxi
YWNrSUQpOwogICAgIHZvaWQgZGlkRmluaXNoUHJpbnRPcGVyYXRpb24oY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciYsIENhbGxiYWNrSUQpOwogI2VuZGlmCiAKQEAgLTExMzEsMTMgKzExMzEs
MTMgQEAgcHVibGljOgogICAgIHZvaWQgZmx1c2hQZW5kaW5nRWRpdG9yU3RhdGVVcGRhdGUoKTsK
IAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgdm9pZCBoYXNTdG9y
YWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1l
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotICAgIHZvaWQgcmVxdWVzdFN0
b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJh
bWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3Jh
bnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJik7CisgICAgdm9p
ZCBoYXNTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVE
b21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Cisg
ICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYm
IHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9t
YWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vi
Q29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9t
cHRXYXNTaG93bik+JiYpOwogICAgIHZvaWQgd2FzTG9hZGVkV2l0aERhdGFUcmFuc2ZlckZyb21Q
cmV2YWxlbnRSZXNvdXJjZSgpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQotICAgIHZvaWQgc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vz
cyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgYm9vbCBt
YXlQcm9tcHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRp
b25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+JiYpOworICAgIHZvaWQgc2hvdWxkQWxsb3dEZXZp
Y2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBib29sIG1heVByb21wdCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0
YXRlKT4mJik7CiAjZW5kaWYKIAogICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQoV2ViQ29yZTo6U2hh
cmVEYXRhV2l0aFBhcnNlZFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2Fs
bGJhY2spOwpAQCAtMTM1Niw4ICsxMzU2LDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgYm9vbCBz
Y3JvbGwoV2ViQ29yZTo6UGFnZSosIFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbiwgV2ViQ29yZTo6
U2Nyb2xsR3JhbnVsYXJpdHkpOwogICAgIHN0YXRpYyBib29sIGxvZ2ljYWxTY3JvbGwoV2ViQ29y
ZTo6UGFnZSosIFdlYkNvcmU6OlNjcm9sbExvZ2ljYWxEaXJlY3Rpb24sIFdlYkNvcmU6OlNjcm9s
bEdyYW51bGFyaXR5KTsKIAotICAgIHZvaWQgbG9hZFVSTEluRnJhbWUoVVJMJiYsIGNvbnN0IFN0
cmluZyYgcmVmZXJyZXIsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgbG9hZERhdGFJbkZy
YW1lKElQQzo6RGF0YVJlZmVyZW5jZSYmLCBTdHJpbmcmJiBNSU1FVHlwZSwgU3RyaW5nJiYgZW5j
b2RpbmdOYW1lLCBVUkwmJiBiYXNlVVJMLCB1aW50NjRfdCBmcmFtZUlEKTsKKyAgICB2b2lkIGxv
YWRVUkxJbkZyYW1lKFVSTCYmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIpOworICAgIHZvaWQgbG9hZERhdGFJbkZyYW1lKElQQzo6RGF0YVJlZmVyZW5j
ZSYmLCBTdHJpbmcmJiBNSU1FVHlwZSwgU3RyaW5nJiYgZW5jb2RpbmdOYW1lLCBVUkwmJiBiYXNl
VVJMLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogCiAgICAgZW51bSBjbGFzcyBXYXNSZXN0
b3JlZEJ5QVBJUmVxdWVzdCB7IE5vLCBZZXMgfTsKICAgICB2b2lkIHJlc3RvcmVTZXNzaW9uSW50
ZXJuYWwoY29uc3QgVmVjdG9yPEJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZT4mLCBXYXNSZXN0b3Jl
ZEJ5QVBJUmVxdWVzdCwgV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6Ok92ZXJ3cml0ZUV4aXN0aW5n
SXRlbSk7CkBAIC0xMzg5LDE2ICsxMzg5LDE2IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1IVE1M
KQogICAgIHZvaWQgZ2V0Q29udGVudHNBc01IVE1MRGF0YShDYWxsYmFja0lEKTsKICNlbmRpZgot
ICAgIHZvaWQgZ2V0TWFpblJlc291cmNlRGF0YU9mRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ2Fs
bGJhY2tJRCk7Ci0gICAgdm9pZCBnZXRSZXNvdXJjZURhdGFGcm9tRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgY29uc3QgU3RyaW5nJiByZXNvdXJjZVVSTCwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBn
ZXRNYWluUmVzb3VyY2VEYXRhT2ZGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENhbGxi
YWNrSUQpOworICAgIHZvaWQgZ2V0UmVzb3VyY2VEYXRhRnJvbUZyYW1lKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiByZXNvdXJjZVVSTCwgQ2FsbGJhY2tJRCk7CiAgICAg
dm9pZCBnZXRSZW5kZXJUcmVlRXh0ZXJuYWxSZXByZXNlbnRhdGlvbihDYWxsYmFja0lEKTsKICAg
ICB2b2lkIGdldFNlbGVjdGlvbk9yQ29udGVudHNBc1N0cmluZyhDYWxsYmFja0lEKTsKICAgICB2
b2lkIGdldFNlbGVjdGlvbkFzV2ViQXJjaGl2ZURhdGEoQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBn
ZXRTb3VyY2VGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDYWxsYmFja0lEKTsKLSAgICB2b2lk
IGdldFdlYkFyY2hpdmVPZkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENhbGxiYWNrSUQpOworICAg
IHZvaWQgZ2V0U291cmNlRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBDYWxsYmFj
a0lEKTsKKyAgICB2b2lkIGdldFdlYkFyY2hpdmVPZkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciwgQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBydW5KYXZhU2NyaXB0KFdlYkZyYW1lKiwgY29u
c3QgU3RyaW5nJiwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBjb25zdCBPcHRpb25hbDxTdHJpbmc+
JiB3b3JsZE5hbWUsIENhbGxiYWNrSUQpOwogICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluTWFpbkZy
YW1lU2NyaXB0V29ybGQoY29uc3QgU3RyaW5nJiwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBjb25z
dCBPcHRpb25hbDxTdHJpbmc+JiB3b3JsZE5hbWUsIENhbGxiYWNrSUQpOwotICAgIHZvaWQgcnVu
SmF2YVNjcmlwdEluRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiwgYm9vbCBm
b3JjZVVzZXJHZXN0dXJlLCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIHJ1bkphdmFTY3JpcHRJbkZy
YW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCBmb3JjZVVz
ZXJHZXN0dXJlLCBDYWxsYmFja0lEKTsKICAgICB2b2lkIGZvcmNlUmVwYWludChDYWxsYmFja0lE
KTsKICAgICB2b2lkIHRha2VTbmFwc2hvdChXZWJDb3JlOjpJbnRSZWN0IHNuYXBzaG90UmVjdCwg
V2ViQ29yZTo6SW50U2l6ZSBiaXRtYXBTaXplLCB1aW50MzJfdCBvcHRpb25zLCBDYWxsYmFja0lE
KTsKIApAQCAtMTQxMiw4ICsxNDEyLDggQEAgcHJpdmF0ZToKICAgICBib29sIHBhcmVudFByb2Nl
c3NIYXNTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAj
ZW5kaWYKIAotICAgIHZvaWQgZGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwg
V2ViQ29yZTo6UG9saWN5QWN0aW9uLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IERvd25s
b2FkSUQmLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmKTsKLSAgICB2b2lkIGNvbnRp
bnVlV2lsbFN1Ym1pdEZvcm0odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCk7
CisgICAgdm9pZCBkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIs
IFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBEb3du
bG9hZElEJiwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJik7CisgICAgdm9pZCBjb250
aW51ZVdpbGxTdWJtaXRGb3JtKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbGlz
dGVuZXJJRCk7CiAgICAgdm9pZCBzZXRVc2VyQWdlbnQoY29uc3QgU3RyaW5nJik7CiAgICAgdm9p
ZCBzZXRDdXN0b21UZXh0RW5jb2RpbmdOYW1lKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgc3Vz
cGVuZEFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zKCk7CkBAIC0xNDMxLDcgKzE0MzEsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgd2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYgd2luZG93RnJhbWVJblVuZmxpcHBlZFNjcmVlbkNvb3JkaW5hdGVz
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGFjY2Vzc2liaWxpdHlWaWV3Q29vcmRpbmF0ZXMp
OwogCiAgICAgUmV0YWluUHRyPFBERkRvY3VtZW50PiBwZGZEb2N1bWVudEZvclByaW50aW5nRnJh
bWUoV2ViQ29yZTo6RnJhbWUqKTsKLSAgICB2b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERG
RG9jdW1lbnQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiwgVmVjdG9yPFdlYkNv
cmU6OkludFJlY3Q+JiByZXN1bHRQYWdlUmVjdHMpOworICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9y
UHJpbnRpbmdQREZEb2N1bWVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50
SW5mbyYsIFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiYgcmVzdWx0UGFnZVJlY3RzKTsKICAgICB2
b2lkIGRyYXdQREZEb2N1bWVudChDR0NvbnRleHRSZWYsIFBERkRvY3VtZW50ICosIGNvbnN0IFBy
aW50SW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKICAgICB2b2lkIGRyYXdQYWdlc1Rv
UERGRnJvbVBERkRvY3VtZW50KENHQ29udGV4dFJlZiwgUERGRG9jdW1lbnQgKiwgY29uc3QgUHJp
bnRJbmZvJiwgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50KTsKICNlbmRpZgpAQCAtMTU4
NCw3ICsxNTg0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHZvaWNlc0RpZENoYW5nZSgpOwogI2Vu
ZGlmCiAKLSAgICB2b2lkIGZyYW1lQmVjYW1lUmVtb3RlKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNv
cmU6Okdsb2JhbEZyYW1lSWRlbnRpZmllciYmIHJlbW90ZUZyYW1lSWRlbnRpZmllciwgV2ViQ29y
ZTo6R2xvYmFsV2luZG93SWRlbnRpZmllciYmIHJlbW90ZVdpbmRvd0lkZW50aWZpZXIpOworICAg
IHZvaWQgZnJhbWVCZWNhbWVSZW1vdGUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3Jl
OjpHbG9iYWxGcmFtZUlkZW50aWZpZXImJiByZW1vdGVGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6
Okdsb2JhbFdpbmRvd0lkZW50aWZpZXImJiByZW1vdGVXaW5kb3dJZGVudGlmaWVyKTsKIAogICAg
IHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVIYW5kbGVyKHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgc2NoZW1lKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggYTUyZTI1MWQyNWRhNmQ4ODcxYjI3MmQ3
MTQyMjkxMzI5YzVmMjQzOC4uYmE3ZjY0YmZkY2JjY2Y4YWIyYzMzZjZjMjc4YjQ2ZDE1MTg4OGYw
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCkBAIC0yNyw5ICsyNyw5IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5
UmVjZWl2ZXIgewogCiAgICAgU2V0QmFja2dyb3VuZENvbG9yKE9wdGlvbmFsPFdlYkNvcmU6OkNv
bG9yPiBjb2xvcikKIAotICAgIEFkZENvbnNvbGVNZXNzYWdlKHVpbnQ2NF90IGZyYW1lSUQsIGVu
dW06dWludDhfdCBKU0M6Ok1lc3NhZ2VTb3VyY2UgbWVzc2FnZVNvdXJjZSwgZW51bTp1aW50OF90
IEpTQzo6TWVzc2FnZUxldmVsIG1lc3NhZ2VMZXZlbCwgU3RyaW5nIG1lc3NhZ2UsIHVpbnQ2NF90
IHJlcXVlc3RJRCkKLSAgICBTZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KHVpbnQ2NF90IGZyYW1lSUQs
IFVSTCByZXBvcnRVUkwsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVwb3J0RGF0YSkKLSAgICBF
bnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCh1aW50NjRfdCBmcmFtZUlELCBXZWJD
b3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0IGV2ZW50SW5pdCkKKyAgICBB
ZGRDb25zb2xlTWVzc2FnZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgZW51bTp1
aW50OF90IEpTQzo6TWVzc2FnZVNvdXJjZSBtZXNzYWdlU291cmNlLCBlbnVtOnVpbnQ4X3QgSlND
OjpNZXNzYWdlTGV2ZWwgbWVzc2FnZUxldmVsLCBTdHJpbmcgbWVzc2FnZSwgdWludDY0X3QgcmVx
dWVzdElEKQorICAgIFNlbmRDU1BWaW9sYXRpb25SZXBvcnQoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIFVSTCByZXBvcnRVUkwsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVwb3J0
RGF0YSkKKyAgICBFbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25F
dmVudDo6SW5pdCBldmVudEluaXQpCiAKICAgICBUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3Nh
Z2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoKSAtPiAoYm9vbCBoYW5kbGVkKSBTeW5jaHJvbm91
cwogCkBAIC0xNjIsOCArMTYyLDggQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChl
bnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBHb1Rv
QmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYkNvcmU6OkJh
Y2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgYmFja0ZvcndhcmRJdGVtSUQsIGVudW06dWludDhfdCBX
ZWJDb3JlOjpGcmFtZUxvYWRUeXBlIGJhY2tGb3J3YXJkVHlwZSwgZW51bTpib29sIFdlYkNvcmU6
OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQs
IE9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0YT4gd2Vic2l0ZVBvbGljaWVzKQog
ICAgIFRyeVJlc3RvcmVTY3JvbGxQb3NpdGlvbigpCiAKLSAgICBMb2FkVVJMSW5GcmFtZShVUkwg
dXJsLCBTdHJpbmcgcmVmZXJyZXIsIHVpbnQ2NF90IGZyYW1lSUQpCi0gICAgTG9hZERhdGFJbkZy
YW1lKElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhLCBTdHJpbmcgTUlNRVR5cGUsIFN0cmluZyBlbmNv
ZGluZ05hbWUsIFVSTCBiYXNlVVJMLCB1aW50NjRfdCBmcmFtZUlEKQorICAgIExvYWRVUkxJbkZy
YW1lKFVSTCB1cmwsIFN0cmluZyByZWZlcnJlciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQpCisgICAgTG9hZERhdGFJbkZyYW1lKElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhLCBTdHJp
bmcgTUlNRVR5cGUsIFN0cmluZyBlbmNvZGluZ05hbWUsIFVSTCBiYXNlVVJMLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKICAgICBMb2FkUmVxdWVzdChzdHJ1Y3QgV2ViS2l0OjpM
b2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycykKICAgICBMb2FkRGF0YShzdHJ1Y3QgV2ViS2l0
OjpMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycykKICAgICBMb2FkQWx0ZXJuYXRlSFRNTChz
dHJ1Y3QgV2ViS2l0OjpMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycykKQEAgLTE3Myw3ICsx
NzMsNyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJL
aXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIFJlbG9hZCh1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIHVpbnQzMl90IHJlbG9hZE9wdGlvbnMsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpCiAgICAgU3RvcExvYWRpbmcoKQogCi0g
ICAgU3RvcExvYWRpbmdGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQorICAgIFN0b3BMb2FkaW5nRnJh
bWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAgICAgCiAgICAgUmVzdG9yZVNl
c3Npb24oVmVjdG9yPFdlYktpdDo6QmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlPiBpdGVtU3RhdGVz
KQogICAgIFVwZGF0ZUJhY2tGb3J3YXJkTGlzdEZvclJlYXR0YWNoKFZlY3RvcjxXZWJLaXQ6OkJh
Y2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZT4gaXRlbVN0YXRlcykKQEAgLTE4Miw4ICsxODIsOCBAQCBH
ZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRo
ZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIERpZFJlbW92ZUJhY2tGb3J3YXJkSXRlbShzdHJ1
Y3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciBiYWNrRm9yd2FyZEl0ZW1JRCkK
IAogICAgIFVwZGF0ZVdlYnNpdGVQb2xpY2llcyhzdHJ1Y3QgV2ViS2l0OjpXZWJzaXRlUG9saWNp
ZXNEYXRhIHdlYnNpdGVQb2xpY2llcykKLSAgICBEaWRSZWNlaXZlUG9saWN5RGVjaXNpb24odWlu
dDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgZW51bTp1aW50OF90IFdlYkNvcmU6OlBv
bGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViS2l0OjpE
b3dubG9hZElEIGRvd25sb2FkSUQsIE9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0
YT4gd2Vic2l0ZVBvbGljaWVzKQotICAgIENvbnRpbnVlV2lsbFN1Ym1pdEZvcm0odWludDY0X3Qg
ZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCkKKyAgICBEaWRSZWNlaXZlUG9saWN5RGVjaXNp
b24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQs
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIGVu
dW06dWludDhfdCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBPcHRpb25hbDxXZWJL
aXQ6OldlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQb2xpY2llcykKKyAgICBDb250aW51ZVdp
bGxTdWJtaXRGb3JtKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBs
aXN0ZW5lcklEKQogCiAgICAgQ2xlYXJTZWxlY3Rpb24oKQogICAgIFJlc3RvcmVTZWxlY3Rpb25J
bkZvY3VzZWRFZGl0YWJsZUVsZW1lbnQoKQpAQCAtMTk2LDE1ICsxOTYsMTUgQEAgR2VuZXJhdGVT
eW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0
aW5nQ29tbWFuZFR5cGUKICNpZiBFTkFCTEUoTUhUTUwpCiAgICAgR2V0Q29udGVudHNBc01IVE1M
RGF0YShXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICNlbmRpZgotICAgIEdldE1haW5S
ZXNvdXJjZURhdGFPZkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6Q2FsbGJhY2tJRCBj
YWxsYmFja0lEKQotICAgIEdldFJlc291cmNlRGF0YUZyb21GcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBTdHJpbmcgcmVzb3VyY2VVUkwsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAg
IEdldE1haW5SZXNvdXJjZURhdGFPZkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBHZXRSZXNvdXJjZURhdGFG
cm9tRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyByZXNvdXJj
ZVVSTCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgR2V0UmVuZGVyVHJlZUV4
dGVybmFsUmVwcmVzZW50YXRpb24oV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAg
R2V0U2VsZWN0aW9uT3JDb250ZW50c0FzU3RyaW5nKFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFj
a0lEKQogICAgIEdldFNlbGVjdGlvbkFzV2ViQXJjaGl2ZURhdGEoV2ViS2l0OjpDYWxsYmFja0lE
IGNhbGxiYWNrSUQpCi0gICAgR2V0U291cmNlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2Vi
S2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCi0gICAgR2V0V2ViQXJjaGl2ZU9mRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCisgICAgR2V0U291
cmNlRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYktpdDo6Q2Fs
bGJhY2tJRCBjYWxsYmFja0lEKQorICAgIEdldFdlYkFyY2hpdmVPZkZyYW1lKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAg
ICBSdW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3JsZChTdHJpbmcgc2NyaXB0LCBib29s
IGZvcmNlVXNlckdlc3R1cmUsIE9wdGlvbmFsPFN0cmluZz4gd29ybGROYW1lLCBXZWJLaXQ6OkNh
bGxiYWNrSUQgY2FsbGJhY2tJRCkKLSAgICBSdW5KYXZhU2NyaXB0SW5GcmFtZSh1aW50NjRfdCBm
cmFtZUlELCBTdHJpbmcgc2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIFdlYktpdDo6Q2Fs
bGJhY2tJRCBjYWxsYmFja0lEKQorICAgIFJ1bkphdmFTY3JpcHRJbkZyYW1lKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgc2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1
cmUsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIEZvcmNlUmVwYWludChXZWJL
aXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIAogICAgIFNlbGVjdEFsbCgpCkBAIC0zODAsMTgg
KzM4MCwxOCBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBX
ZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIERpZFJlY2VpdmVOb3RpZmlj
YXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxs
b3dlZCkKIAogICAgICMgUHJpbnRpbmcuCi0gICAgQmVnaW5QcmludGluZyh1aW50NjRfdCBmcmFt
ZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvKQorICAgIEJlZ2luUHJpbnRp
bmcoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50
SW5mbyBwcmludEluZm8pCiAgICAgRW5kUHJpbnRpbmcoKQotICAgIENvbXB1dGVQYWdlc0ZvclBy
aW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludElu
Zm8sIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIENvbXB1dGVQYWdlc0ZvclBy
aW50aW5nKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQ
cmludEluZm8gcHJpbnRJbmZvLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICNpZiBQ
TEFURk9STShDT0NPQSkKLSAgICBEcmF3UmVjdFRvSW1hZ2UodWludDY0X3QgZnJhbWVJRCwgc3Ry
dWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2ViQ29yZTo6SW50UmVjdCByZWN0LCBX
ZWJDb3JlOjpJbnRTaXplIGltYWdlU2l6ZSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQp
Ci0gICAgRHJhd1BhZ2VzVG9QREYodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJp
bnRJbmZvIHByaW50SW5mbywgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBXZWJLaXQ6
OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBEcmF3UmVjdFRvSW1hZ2UoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8s
IFdlYkNvcmU6OkludFJlY3QgcmVjdCwgV2ViQ29yZTo6SW50U2l6ZSBpbWFnZVNpemUsIFdlYktp
dDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIERyYXdQYWdlc1RvUERGKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZv
LCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxs
YmFja0lEKQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgQ29tcHV0ZVBhZ2VzRm9yUHJp
bnRpbmdBbmREcmF3VG9QREYodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJ
bmZvIHByaW50SW5mbywgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpIC0+ICh1aW50MzJf
dCBwYWdlQ291bnQpIFN5bmNocm9ub3VzCisgICAgQ29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmRE
cmF3VG9QREYoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6
OlByaW50SW5mbyBwcmludEluZm8sIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKSAtPiAo
dWludDMyX3QgcGFnZUNvdW50KSBTeW5jaHJvbm91cwogI2VuZGlmCiAjZW5kaWYKICNpZiBQTEFU
Rk9STShHVEspCi0gICAgRHJhd1BhZ2VzRm9yUHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgc3Ry
dWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxi
YWNrSUQpCisgICAgRHJhd1BhZ2VzRm9yUHJpbnRpbmcoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIFdlYktpdDo6Q2Fs
bGJhY2tJRCBjYWxsYmFja0lEKQogI2VuZGlmCiAKICAgICAjIE1lZGlhCkBAIC00MTMsNyArNDEz
LDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0
OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBDb25maXJtQ29tcG9zaXRpb24oU3Ry
aW5nIHRleHQsIGludDY0X3Qgc2VsZWN0aW9uU3RhcnQsIGludDY0X3Qgc2VsZWN0aW9uTGVuZ3Ro
KQogICAgIENhbmNlbENvbXBvc2l0aW9uKCkKIAotICAgIENvbGxhcHNlU2VsZWN0aW9uSW5GcmFt
ZSh1aW50NjRfdCBmcmFtZUlEKQorICAgIENvbGxhcHNlU2VsZWN0aW9uSW5GcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIAogICAgIEdldENlbnRlckZvclpvb21HZXN0dXJl
KFdlYkNvcmU6OkludFBvaW50IGNlbnRlckluVmlld0Nvb3JkaW5hdGVzKSAtPiAoV2ViQ29yZTo6
SW50UG9pbnQgY2VudGVyKSBTeW5jaHJvbm91cwogI2VuZGlmCkBAIC01MzYsNyArNTM2LDcgQEAg
R2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50
aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBEaWRSZWNlaXZlUGFzc3dvcmRGb3JRdWlja0xv
b2tEb2N1bWVudChTdHJpbmcgcGFzc3dvcmQpCiAjZW5kaWYKIAotICAgIEZyYW1lQmVjYW1lUmVt
b3RlKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpHbG9iYWxGcmFtZUlkZW50aWZp
ZXIgcmVtb3RlRnJhbWVJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6R2xvYmFsV2luZG93SWRl
bnRpZmllciByZW1vdGVXaW5kb3dJZGVudGlmaWVyKQorICAgIEZyYW1lQmVjYW1lUmVtb3RlKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6R2xvYmFsRnJh
bWVJZGVudGlmaWVyIHJlbW90ZUZyYW1lSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Okdsb2Jh
bFdpbmRvd0lkZW50aWZpZXIgcmVtb3RlV2luZG93SWRlbnRpZmllcikKIAogICAgIFJlZ2lzdGVy
VVJMU2NoZW1lSGFuZGxlcih1aW50NjRfdCBpZGVudGlmaWVyLCBTdHJpbmcgc2NoZW1lKQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
CmluZGV4IGU0YzY0MjcxY2NmODkzYjM1OWI5NDU3OWM4YjJkMTc5MWRkYTljYjkuLjJkYjBlYjZi
YmFhNDU3OGJmNmE2OTVjZTQwMDJkNzczNjUxNmJkNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC01NTEsNyArNTUxLDcg
QEAgdm9pZCBXZWJQYWdlOjphY2NlcHRzRmlyc3RNb3VzZShpbnQsIGNvbnN0IFdlYktpdDo6V2Vi
TW91c2VFdmVudCYsIENvbXBsZXRpb25IYW4KICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7
CiB9CiAKLXZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdQREZEb2N1bWVudCh1
aW50NjRfdCwgY29uc3QgUHJpbnRJbmZvJiwgVmVjdG9yPEludFJlY3Q+JikKK3ZvaWQgV2ViUGFn
ZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdQREZEb2N1bWVudChXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIGNvbnN0IFByaW50SW5mbyYsIFZlY3RvcjxJbnRSZWN0PiYpCiB7CiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKIH0KQEAgLTM3MzksNyArMzczOSw3IEBAIHZvaWQgV2ViUGFnZTo6ZGlzcGF0
Y2hBc3luY2hyb25vdXNUb3VjaEV2ZW50cyhjb25zdCBWZWN0b3I8V2ViVG91Y2hFdmVudCwgMT4m
IHF1CiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZ0Fu
ZERyYXdUb1BERih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywg
Q2FsbGJhY2tJRCBjYWxsYmFja0lELCBNZXNzYWdlczo6V2ViUGFnZTo6Q29tcHV0ZVBhZ2VzRm9y
UHJpbnRpbmdBbmREcmF3VG9QREY6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQordm9pZCBXZWJQYWdl
Ojpjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERihXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIENhbGxiYWNrSUQgY2Fs
bGJhY2tJRCwgTWVzc2FnZXM6OldlYlBhZ2U6OkNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJh
d1RvUERGOjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsKICAgICBpZiAocHJpbnRJbmZvLnNuYXBz
aG90Rmlyc3RQYWdlKSB7CiAgICAgICAgIHJlcGx5KDEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQppbmRleCA0MzFkZmExN2FjYTA1
YjYwZWZlOWFlMDQwM2E0MDg4MGUyODE4ZDgwLi5mZTI0MTdiMGE3ZDU4MzYzYzU0YmI4NmRhNTc4
OThkMTFmYmUzNTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvV2ViUGFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvV2ViUGFnZU1hYy5tbQpAQCAtNjcwLDcgKzY3MCw3IEBAIHZvaWQgV2ViUGFnZTo6dXBk
YXRlSGVhZGVyQW5kRm9vdGVyTGF5ZXJzRm9yRGV2aWNlU2NhbGVDaGFuZ2UoZmxvYXQgc2NhbGVG
YWN0b3IpCiAgICAgICAgIG1fZm9vdGVyQmFubmVyLT5kaWRDaGFuZ2VEZXZpY2VTY2FsZUZhY3Rv
cihzY2FsZUZhY3Rvcik7CiB9CiAKLXZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRp
bmdQREZEb2N1bWVudCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5m
bywgVmVjdG9yPEludFJlY3Q+JiByZXN1bHRQYWdlUmVjdHMpCit2b2lkIFdlYlBhZ2U6OmNvbXB1
dGVQYWdlc0ZvclByaW50aW5nUERGRG9jdW1lbnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBWZWN0b3I8SW50UmVjdD4mIHJlc3Vs
dFBhZ2VSZWN0cykKIHsKICAgICBBU1NFUlQocmVzdWx0UGFnZVJlY3RzLmlzRW1wdHkoKSk7CiAg
ICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJh
bWVJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYTJkYTEy
YzYwMjI5MzczY2Y4Nzg5MmI4M2RhYTU3NzM1MDBhNzdmMi4uNTY1ZmNhYWVkMTMwOWU3ODY1NjRj
MGJmZWFiOGI5ZTFiZjU0MDc1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcApAQCAtNzY4LDE3ICs3NjgsMTcgQEAgdm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGUKICAgICBM
T0dfRVJST1IoIlVuaGFuZGxlZCB3ZWIgcHJvY2VzcyBtZXNzYWdlICclczolcyciLCBkZWNvZGVy
Lm1lc3NhZ2VSZWNlaXZlck5hbWUoKS50b1N0cmluZygpLmRhdGEoKSwgZGVjb2Rlci5tZXNzYWdl
TmFtZSgpLnRvU3RyaW5nKCkuZGF0YSgpKTsKIH0KIAotV2ViRnJhbWUqIFdlYlByb2Nlc3M6Ondl
YkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpIGNvbnN0CitXZWJGcmFtZSogV2ViUHJvY2Vzczo6d2Vi
RnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fZnJh
bWVNYXAuZ2V0KGZyYW1lSUQpOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OmFkZFdlYkZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIFdlYkZyYW1lKiBmcmFtZSkKK3ZvaWQgV2ViUHJvY2Vzczo6YWRkV2Vi
RnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkZyYW1lKiBmcmFtZSkKIHsKICAgICBt
X2ZyYW1lTWFwLnNldChmcmFtZUlELCBmcmFtZSk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6cmVt
b3ZlV2ViRnJhbWUodWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUHJvY2Vzczo6cmVtb3ZlV2Vi
RnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgbV9mcmFtZU1hcC5yZW1vdmUo
ZnJhbWVJRCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGQ0YzAx
YmFiMWY5M2RhOTA4NWIwZjIxOTRjZDMyN2Q0NzE4NjUwYjIuLjNjYjJjNDk2OTQ5OTg4N2IzMmI1
M2IzYTY2ZDBiYmY2ODVhMzIxOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
aApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIldlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5o
IgogI2luY2x1ZGUgIldlYlNvY2tldENoYW5uZWxNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9BY3Rpdml0eVN0YXRlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZWdpc3RyYWJsZURvbWFpbi5oPgogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTE3Miw5ICsxNzMsOSBA
QCBwdWJsaWM6CiAKICAgICBib29sIGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQoKSBjb25zdCB7
IHJldHVybiBtX2Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQ7IH0KIAotICAgIFdlYkZyYW1lKiB3
ZWJGcmFtZSh1aW50NjRfdCkgY29uc3Q7Ci0gICAgdm9pZCBhZGRXZWJGcmFtZSh1aW50NjRfdCwg
V2ViRnJhbWUqKTsKLSAgICB2b2lkIHJlbW92ZVdlYkZyYW1lKHVpbnQ2NF90KTsKKyAgICBXZWJG
cmFtZSogd2ViRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKSBjb25zdDsKKyAgICB2b2lk
IGFkZFdlYkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViRnJhbWUqKTsKKyAgICB2
b2lkIHJlbW92ZVdlYkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAKICAgICBXZWJQ
YWdlR3JvdXBQcm94eSogd2ViUGFnZUdyb3VwKFdlYkNvcmU6OlBhZ2VHcm91cCopOwogICAgIFdl
YlBhZ2VHcm91cFByb3h5KiB3ZWJQYWdlR3JvdXAodWludDY0X3QgcGFnZUdyb3VwSUQpOwpAQCAt
NDg5LDcgKzQ5MCw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fZnVsbEtleWJvYXJkQWNjZXNz
RW5hYmxlZCB7IGZhbHNlIH07CiAKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBXZWJGcmFtZSo+IG1f
ZnJhbWVNYXA7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkZyYW1l
Kj4gbV9mcmFtZU1hcDsKIAogICAgIHR5cGVkZWYgSGFzaE1hcDxjb25zdCBjaGFyKiwgc3RkOjp1
bmlxdWVfcHRyPFdlYlByb2Nlc3NTdXBwbGVtZW50PiwgUHRySGFzaDxjb25zdCBjaGFyKj4+IFdl
YlByb2Nlc3NTdXBwbGVtZW50TWFwOwogICAgIFdlYlByb2Nlc3NTdXBwbGVtZW50TWFwIG1fc3Vw
cGxlbWVudHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBiMTQwM2QwNTYzOTNiMzk3
ZDAxN2QwOTNkZTVmZTA0Y2RjY2E4Y2NkLi5kNjA2MzBmZTBjYWFkZjQzYThiNzQ0OWQyZDU0OTBl
ZGIwOGU2YWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTY0LDcgKzY0LDcgQEAg
cHJpdmF0ZToKICAgICBib29sIGhhc1dlYlZpZXcoKSBjb25zdCBmaW5hbDsgLy8gbWFpbmx5IGZv
ciBhc3NlcnRpb25zCiAKICAgICBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFn
ZUlEKCkgY29uc3QgZmluYWw7Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQoKSBjb25z
dCBmaW5hbDsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQo
KSBjb25zdCBmaW5hbDsKICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCBmaW5h
bDsKIAogICAgIHZvaWQgbWFrZVJlcHJlc2VudGF0aW9uKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVy
KikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDNkZDUwZTdiM2I5Y2Y5
OTMzNDljOWFiYjRjYjQ5NzgzN2VlYzM1M2UuLmI3YTY1ZTk5MzRmZmYwODgwYjc1NjhjYTAwZTk2
MmUwMTVhZTQyMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC0yMTQsNyArMjE0
LDcgQEAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpwYWdl
SUQoKSBjb25zdAogICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiB9CiAKLU9wdGlvbmFsPHVpbnQ2
NF90PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZnJhbWVJRCgpIGNvbnN0CitPcHRpb25hbDxGcmFt
ZUlkZW50aWZpZXI+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlEKCkgY29uc3QKIHsKICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376301</attachid>
            <date>2019-08-14 12:59:56 -0700</date>
            <delta_ts>2019-08-14 13:05:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199986-20190814125955.patch</filename>
            <type>text/plain</type>
            <size>430183</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmE3MDY4NjA3ZWFlOTVj
NTA0YWRlOThlNGIyZDQ4NzlmMjY2NDRmOS4uOTM1OGNjMTBmYjk5ZjFkMTE2ZmEyNDUwMzVhM2Ri
MDgzMjEwYTc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE5LTA4LTE0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBPYmplY3RJ
ZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+IGZvciBmcmFtZUlEcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5OTg2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBzdHJvbmdseS10eXBl
ZCBGcmFtZUlkZW50aWZpZXIgaW5zdGVhZCBvZiB1aW50NjRfdCBhcyBmcmFtZSBpZGVudGlmaWVy
cyBldmVyeXdoZXJlLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGxvYWRlci9Db29raWVKYXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q29va2llSmFyOjpjb29raWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tpZUphcjo6
c2V0Q29va2llcyk6CisgICAgICAgIChXZWJDb3JlOjpDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tpZUphcjo6Z2V0
UmF3Q29va2llcyBjb25zdCk6CisgICAgICAgICogbG9hZGVyL0Nvb2tpZUphci5oOgorICAgICAg
ICAqIGxvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3Bw
OgorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
OjpOYXZpZ2F0aW9uQWN0aW9uOjpSZXF1ZXN0ZXI6OmZyYW1lSUQgY29uc3QpOgorICAgICAgICAq
IHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9HbG9iYWxGcmFtZUlkZW50aWZp
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Okdsb2JhbEZyYW1lSWRlbnRpZmllcjo6ZGVjb2RlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Nvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzaG91bGRCbG9ja0Nv
b2tpZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpo
YXNTdG9yYWdlQWNjZXNzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6Z3JhbnRTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW06CisgICAgICAg
IChXZWJDb3JlOjpjb29raWVzRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZXNGb3JT
ZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2ll
c0ZvckRPTSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzIGNvbnN0KToK
KwogMjAxOS0wOC0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAg
ICAgVXBkYXRlIFdvcmtlcjo6bm90aWZ5RmluaXNoZWQgdG8gbm90IHVzZSBlbXB0eVNlc3Npb25J
RApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA1NGI3OTc3NmIwNTc1YjFhODgzY2Y2OTc4ZmFjZDBhMTU1Y2NhOWM1Li40
NTg3MjQyZjU2N2Q0YzBiMmVlZjgwYmIxOTJmYWJiZjE1ODIwMjk3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDM0OSBAQAorMjAxOS0wOC0xNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KKworICAgICAgICBVc2UgT2JqZWN0SWRlbnRpZmllcjxGcmFtZUlkZW50aWZpZXJUeXBl
PiBmb3IgZnJhbWVJRHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5OTk4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVzZSB0aGUgc3Ryb25nbHktdHlwZWQgRnJhbWVJZGVudGlmaWVyIGluc3RlYWQgb2Yg
dWludDY0X3QgYXMgZnJhbWUgaWRlbnRpZmllcnMgZXZlcnl3aGVyZS4KKworICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFudFN0b3JhZ2VB
Y2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAg
ICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmdyYW50U3RvcmFn
ZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsSGFzU3Rv
cmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEdy
YW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTSk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJv
bURPTSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpj
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXRSYXdDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpoYXNT
dG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtMb2FkQ2hlY2tlcjo6TmV0d29ya0xvYWRDaGVja2VyKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRy
eSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnROZXR3b3Jr
TG9hZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y29udmVydFRv
RG93bmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmFib3J0
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVz
cG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2Vp
dmVCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZp
bmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRp
ZEZhaWxMb2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpj
b250aW51ZVdpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OmVzY2FwZUlERm9ySlNP
Tik6CisgICAgICAgIChXZWJLaXQ6OmxvZ0Jsb2NrZWRDb29raWVJbmZvcm1hdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uSW50ZXJuYWwpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24pOgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNoYXJlZC9BUEkv
QVBJRnJhbWVIYW5kbGUuY3BwOgorICAgICAgICAoQVBJOjpGcmFtZUhhbmRsZTo6Y3JlYXRlKToK
KyAgICAgICAgKEFQSTo6RnJhbWVIYW5kbGU6OmNyZWF0ZUF1dG9jb252ZXJ0aW5nKToKKyAgICAg
ICAgKEFQSTo6RnJhbWVIYW5kbGU6OkZyYW1lSGFuZGxlKToKKyAgICAgICAgKEFQSTo6RnJhbWVI
YW5kbGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5oOgor
ICAgICAgICAoQVBJOjpGcmFtZUhhbmRsZTo6ZnJhbWVJRCBjb25zdCk6CisgICAgICAgICogU2hh
cmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5tbToKKyAgICAgICAgKC1bX1dLRnJhbWVIYW5k
bGUgaGFzaF0pOgorICAgICAgICAoLVtfV0tGcmFtZUhhbmRsZSBfZnJhbWVJRF0pOgorICAgICAg
ICAoLVtfV0tGcmFtZUhhbmRsZSBpbml0V2l0aENvZGVyOl0pOgorICAgICAgICAoLVtfV0tGcmFt
ZUhhbmRsZSBlbmNvZGVXaXRoQ29kZXI6XSk6CisgICAgICAgICogU2hhcmVkL0F1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRp
Y2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAg
ICAgKiBTaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmg6CisgICAg
ICAgICogU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tGcmFtZUhhbmRsZVJlZi5jcHA6CisgICAgICAgIChXS0ZyYW1lSGFuZGxlR2V0RnJhbWVJRCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgt
W1dLV2ViVmlldyBfcHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvOmZvckZyYW1lOl0pOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX2NhbkNoYW5nZUZyYW1lTGF5b3V0Ol0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tOgorICAgICAgICAoLVtfV0tJbnNwZWN0
b3Igc2hvd01haW5SZXNvdXJjZUZvckZyYW1lOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRv
bWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNp
bXVsYXRlZElucHV0RGlzcGF0Y2hlcjo6cnVuKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21h
dGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0
b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dG9tYXRpb25TZXNzaW9uOjp3ZWJGcmFtZUlERm9ySGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQXV0b21hdGlvblNlc3Npb246OmhhbmRsZUZvcldlYkZyYW1lSUQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c3dpdGNoVG9Ccm93c2luZ0NvbnRleHQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2FpdEZvck5hdmlnYXRpb25Ub0Nv
bXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6ZmluZFBhZ2VGb3JGcmFtZUlEKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnJlc3BvbmRUb1BlbmRpbmdGcmFtZU5hdmln
YXRpb25DYWxsYmFja3NXaXRoVGltZW91dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRp
b25TZXNzaW9uOjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZlQ2hpbGRGcmFtZUhhbmRsZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZlUGFyZW50RnJhbWVIYW5kbGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Y29tcHV0ZUVsZW1lbnRM
YXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2VsZWN0T3B0
aW9uRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpnZXRB
bGxDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OmRlbGV0
ZVNpbmdsZUNvb2tpZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjp2
aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
QXV0b21hdGlvblNlc3Npb246OnRha2VTY3JlZW5zaG90KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVu
dDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW06CisgICAgICAg
ICgtW1dLUmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyIGF0dGVtcHRSZWNvdmVyeV0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9j
a0xvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6
OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSk6CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAg
ICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UHJvdmlzaW9uYWxQYWdlUHJveHk6OnZhbGlkYXRlSW5wdXQpOgorICAgICAgICAoV2ViS2l0OjpQ
cm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZEZh
aWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFs
UGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQcm92
aXNpb25hbFBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEpOgorICAgICAg
ICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxG
b3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNp
b25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0
OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9u
YWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xv
YWRGb3JGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJv
Y2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlN1c3BlbmRlZFBhZ2VQcm94eTo6U3VzcGVuZGVkUGFnZVByb3h5
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25D
aGVja1Byb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNr
UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5
OjpmcmFtZUlEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVzZXRBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6c2VhcmNoRm9yR3JhbnRl
ZFJlcXVlc3QgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6d2FzUmVxdWVzdERlbmllZCk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVy
bWlzc2lvbkZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OmdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKToKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc0dyYW50
ZWRWaWRlb09yQXVkaW9BY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6bWFpbkZyYW1lSUQgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpmcmFtZUlEIGNvbnN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkZyYW1lUHJveHk6OldlYkZyYW1lUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJGcmFtZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6OmZyYW1lSUQgY29uc3QpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGlkQ3JlYXRlU3ViZnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmRpZENyZWF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkU3Rh
cnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6ZGlkRXhwbGljaXRPcGVuRm9yRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZl
U2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1l
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDYW5jZWxDbGllbnRSZWRpcmVj
dEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92
aXNpb25hbFVSTEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRD
aGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZEZvckZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZyYW1l
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENoYW5nZU1h
aW5Eb2N1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRp
dGxlRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZpcnN0TGF5
b3V0Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZpcnN0Vmlz
dWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFtZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZnJhbWVEaWRCZWNvbWVGcmFtZVNldCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5j
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uQXN5bmNTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNw
b25zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2VTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnVuYWJsZVRvSW1w
bGVtZW50UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0
Rm9ybSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2
aWdhdGlvbkRhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZE5hdmlnYXRl
V2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFVwZGF0ZUhpc3RvcnlUaXRsZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEFsZXJ0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0Q29uZmlybSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdFByb21wdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpydW5PcGVuUGFuZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnByaW50RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZvY3Vz
ZWRGcmFtZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZyYW1lU2V0
TGFyZ2VzdEZyYW1lQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cmVxdWVzdFN0b3JhZ2VTcGFjZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6bWFrZVN0b3JhZ2VTcGFjZVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2Vz
Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNob3VsZEFsbG93RGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6d2ViRnJhbWUgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUHJveHk6OmNhbkNyZWF0ZUZyYW1lIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpmcmFtZUNyZWF0ZWQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUHJveHk6OmRpZERlc3Ryb3lGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IF93a19wYWdlQ291bnRGb3JQcmludEZvcm1hdHRlcjpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojpjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpldmFsdWF0ZUphdmFTY3JpcHRDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZENsZWFyV2luZG93
T2JqZWN0Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5OjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJh
bWVXaXRoT3JkaW5hbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZVBhcmVudEZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Zm9jdXNG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmNvbXB1
dGVFbGVtZW50TGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eTo6c2VsZWN0T3B0aW9uRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHk6OnRha2VTY3JlZW5zaG90KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eTo6Z2V0Q29va2llc0ZvckZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZGVsZXRlQ29va2llKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dL
V2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tOgorICAgICAgICAoK1tXS1dlYlByb2Nlc3NQbHVnSW5G
cmFtZSBsb29rVXBGcmFtZUZyb21IYW5kbGU6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3Ry
YXRlZ3k6OnNjaGVkdWxlTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5
OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJM
b2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJS
ZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxSZXNvdXJjZUxvYWQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVyOjpzdG9wTG9hZGluZ0FmdGVyWEZyYW1l
T3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNvdXJjZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omluc3RhbGxTZXJ2aWNlV29ya2VyKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZCBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6aGFzU3RvcmFnZUFjY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cmVxdWVzdFN0b3JhZ2VBY2Nl
c3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlE
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGlkRmFpbFByb3Zpc2lvbmFsTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkNvb2tpZUphci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6
Y29va2llcyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6c2V0Q29va2ll
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZp
ZWxkVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVKYXI6OmdldFJhd0Nv
b2tpZXMgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJGcmFtZTo6V2ViRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpnZW5lcmF0ZUZy
YW1lSUQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6ZnJhbWVJRCBjb25zdCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
Ykluc3BlY3Rvcjo6c2hvd01haW5SZXNvdXJjZUZvckZyYW1lKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxvYWRVUkxJbkZyYW1lKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9hZERhdGFJbkZyYW1lKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6c3RvcExvYWRpbmdGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmNvbnRpbnVlV2lsbFN1Ym1pdEZvcm0pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpydW5K
YXZhU2NyaXB0SW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldFNvdXJjZUZv
ckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0TWFpblJlc291cmNlRGF0YU9m
RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRSZXNvdXJjZURhdGFGcm9tRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRXZWJBcmNoaXZlT2ZGcmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmFkZENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6c2VuZENTUFZpb2xhdGlvblJlcG9ydCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6YmVnaW5QcmludGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
ZHJhd1JlY3RUb0ltYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZHJhd1BhZ2VzVG9Q
REYpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmF3UGFnZXNUb1BERkltcGwpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmF3UGFnZXNGb3JQcmludGluZyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmZyYW1lQmVjYW1lUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVl
c3RTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2hvdWxkQWxsb3dE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERG
RG9jdW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmlu
dGluZ0FuZERyYXdUb1BERik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQ
YWdlTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmlu
dGluZ1BERkRvY3VtZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp3ZWJGcmFtZSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmFkZFdlYkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6cmVtb3ZlV2ViRnJhbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
OgorCiAyMDE5LTA4LTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgdXNlIG9mIGVtcHR5U2Vzc2lvbklEIGZyb20gTmV0d29ya0xvYWRQYXJhbWV0
ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggODllZTNjYmU0NzY3YWVlNjU1MjE2
Njk1NjBlY2RlOGVkMTA2YTI3ZS4uODMwYTc4MjViOTFkZmQxNmU3Y2Y3MTkyN2Q3MTM4ODkxYjA3
NDYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5
LTA4LTE0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAg
IFVzZSBPYmplY3RJZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+IGZvciBmcmFtZUlEcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5OTg2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBz
dHJvbmdseS10eXBlZCBGcmFtZUlkZW50aWZpZXIgaW5zdGVhZCBvZiB1aW50NjRfdCBhcyBmcmFt
ZSBpZGVudGlmaWVycyBldmVyeXdoZXJlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlEIGNv
bnN0KToKKwogMjAxOS0wOC0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6YmxvYlNpemUgc2hvdWxkIHRha2UgYSBT
ZXNzaW9uSUQgYXMgcGFyYW1ldGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9PYmplY3RJ
ZGVudGlmaWVyLmggYi9Tb3VyY2UvV1RGL3d0Zi9PYmplY3RJZGVudGlmaWVyLmgKaW5kZXggYjNi
Y2FkZDlkZDE5NWFiMzBiMThjZjFkYWQzMzUyMzExOTI1MjZmOC4uNjdjYzk2NGZmZDA2Y2ZlNDFh
ZWZmMjRmYjc3OWVlYWY4NTA2MzQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvT2JqZWN0
SWRlbnRpZmllci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL09iamVjdElkZW50aWZpZXIuaApAQCAt
NTksNyArNTksNyBAQCBwdWJsaWM6CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKLSAgICAgICAgQVNTRVJU
KGlzVmFsaWRJZGVudGlmaWVyKG1faWRlbnRpZmllcikpOworICAgICAgICBSRUxFQVNFX0FTU0VS
VChpc1ZhbGlkSWRlbnRpZmllcihtX2lkZW50aWZpZXIpKTsgLy8gRklYTUU6IFNob3VsZCBiZSBh
IGRlYnVnIEFTU0VSVCgpLgogICAgICAgICBlbmNvZGVyIDw8IG1faWRlbnRpZmllcjsKICAgICB9
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPE9iamVjdElk
ZW50aWZpZXI+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQpAQCAtNjgsNyArNjgsNyBAQCBwdWJs
aWM6CiAgICAgICAgIGRlY29kZXIgPj4gaWRlbnRpZmllcjsKICAgICAgICAgaWYgKCFpZGVudGlm
aWVyKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAgICAgQVNTRVJUKGlz
VmFsaWRJZGVudGlmaWVyKCppZGVudGlmaWVyKSk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGlz
VmFsaWRJZGVudGlmaWVyKCppZGVudGlmaWVyKSk7IC8vIEZJWE1FOiBTaG91bGQgYmUgYSBkZWJ1
ZyBBU1NFUlQoKS4KICAgICAgICAgcmV0dXJuIE9iamVjdElkZW50aWZpZXIgeyAqaWRlbnRpZmll
ciB9OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGI3YmU3NDkzZmIzNDdlN2FlYzVkMTE3Y2M1Y2M2OWE4YTFlZmMx
ZTMuLjQ5NTdiYWJjOTdiMTcxMDRhNDQ1MzVlNDM4M2ZkZmE4YjEyNzQyMDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4MCw2
ICsyODAsNyBAQAogCQkwRjAzQzA3NDE4ODQ2OTVFMDBBNUY4Q0EgLyogU3lzdGVtTWVtb3J5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjAzQzA3MzE4
ODQ2OTVFMDBBNUY4Q0EgLyogU3lzdGVtTWVtb3J5LmggKi87IH07CiAJCTBGMDNDMDc1MTg4NDgw
NTUwMEE1RjhDQSAvKiBJbnNwZWN0b3JPdmVybGF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzUyMkQ0QTE1QjQ3OEIyMDA5QjdDOTUgLyogSW5zcGVj
dG9yT3ZlcmxheS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTBGMDk5RDA5MTdCOTY4QTEwMEZGODRCOSAvKiBXZWJDb3JlVHlwZWRBcnJheUNvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MDk5RDA3MTdCOTY4QTEwMEZGODRCOSAvKiBXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjExNzgx
ODIyRTNDNDdGMDA4QkQ1NzAgLyogRnJhbWVJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjExNzgxNjIyRTNDNDdFMDA4QkQ1NzAgLyog
RnJhbWVJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMEYxMUE1NEYwRjM5MjMzMTAwQzM3ODg0IC8qIFJlbmRlclNlbGVjdGlvbklu
Zm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTFB
NTRFMEYzOTIzMzEwMEMzNzg4NCAvKiBSZW5kZXJTZWxlY3Rpb25JbmZvLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYxMzE2M0UxNkVEMENDODAw
MzVDQzA0IC8qIFBsYXRmb3JtQ0FGaWx0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjEzMTYzRDE2RUQwQ0M4MDAzNUNDMDQgLyogUGxhdGZvcm1D
QUZpbHRlcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwRjE1REE4QTBGM0FBRUU3MDAwMENFNDcgLyogQ1NTQW5pbWF0aW9uQ29udHJvbGxlclBy
aXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MTVEQTg5MEYzQUFFRTcwMDAwQ0U0NyAvKiBDU1NBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5o
ICovOyB9OwpAQCAtNTU3OCw2ICs1NTc5LDcgQEAKIAkJMEYwM0MwNzMxODg0Njk1RTAwQTVGOENB
IC8qIFN5c3RlbU1lbW9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTeXN0
ZW1NZW1vcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYwOTlEMDYxN0I5NjhB
MTAwRkY4NEI5IC8qIFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjA5OUQwNzE3Qjk2OEExMDBGRjg0Qjkg
LyogV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkwRjExNzgxNjIyRTNDNDdFMDA4QkQ1NzAgLyogRnJhbWVJZGVudGlmaWVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZyYW1lSWRlbnRpZmllci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjExQTU0RTBGMzkyMzMxMDBDMzc4ODQgLyog
UmVuZGVyU2VsZWN0aW9uSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW5kZXJTZWxlY3Rpb25JbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMTMx
NjNEMTZFRDBDQzgwMDM1Q0MwNCAvKiBQbGF0Zm9ybUNBRmlsdGVycy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUNBRmlsdGVycy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjEzMTYzRjE2RUQwQ0RFMDAzNUNDMDQgLyogUGxhdGZvcm1DQUZpbHRl
cnNDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBsYXRm
b3JtQ0FGaWx0ZXJzQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDIw
NCw2ICsyMDIwNiw3IEBACiAJCQkJNjVCRjAyMkEwOTc0ODE2MzAwQzQzMTk2IC8qIEZyYW1lLmgg
Ki8sCiAJCQkJOTc0QTg2MjAxNEI3QURCQjAwM0ZEQzc2IC8qIEZyYW1lRGVzdHJ1Y3Rpb25PYnNl
cnZlci5jcHAgKi8sCiAJCQkJOTc0QTg2MjExNEI3QURCQjAwM0ZEQzc2IC8qIEZyYW1lRGVzdHJ1
Y3Rpb25PYnNlcnZlci5oICovLAorCQkJCTBGMTE3ODE2MjJFM0M0N0UwMDhCRDU3MCAvKiBGcmFt
ZUlkZW50aWZpZXIuaCAqLywKIAkJCQlDNENENjI5ODE4MzgzNzY2MDA3RUJBRjEgLyogRnJhbWVT
bmFwc2hvdHRpbmcuY3BwICovLAogCQkJCUM0Q0Q2Mjk5MTgzODM3NjYwMDdFQkFGMSAvKiBGcmFt
ZVNuYXBzaG90dGluZy5oICovLAogCQkJCTY1QTIxNDgyMDk3QTNGNTMwMEI5MDUwQSAvKiBGcmFt
ZVRyZWUuY3BwICovLApAQCAtMjkyNTUsNiArMjkyNTgsNyBAQAogCQkJCUE4NTMxMjNEMTFEMDQ3
MUIwMEQ0RDA3NyAvKiBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCTY1QkYwMjJGMDk3NDgxNjMwMEM0MzE5NiAvKiBGcmFtZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTc0QTg2MjMxNEI3QURCQjAwM0ZEQzc2IC8qIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZl
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYxMTc4MTgyMkUzQzQ3RjAwOEJENTcwIC8qIEZyYW1l
SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2RDM3M0MwQURCQTVERTAwQTQ1NTRE
IC8qIEZyYW1lTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTZEMzczRTBBREJBNURFMDBB
NDU1NEQgLyogRnJhbWVMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUQwMDBFQkEz
MTFCREFGRDQwMEM0NzcyNiAvKiBGcmFtZUxvYWRlclN0YXRlTWFjaGluZS5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3BwCmluZGV4IDY5NjMwMzMwYjVkNzkzMGQ3
ZDdhYWYxZGRiNGE4OWRmYjYwZGRkY2MuLjZkMDM2MmU5NzY0MTg4YjYwODRjYmFhOGNjMTQyZDRk
MzkxZjVhODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3BwCkBAIC03MSw3ICs3MSw3
IEBAIFN0cmluZyBDb29raWVKYXI6OmNvb2tpZXMoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBV
UkwmIHVybCkgY29uc3QKIAogICAgIGF1dG8gaW5jbHVkZVNlY3VyZUNvb2tpZXMgPSBzaG91bGRJ
bmNsdWRlU2VjdXJlQ29va2llcyhkb2N1bWVudCwgdXJsKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2
NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAg
ICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEOwogICAgIGlmIChhdXRvKiBmcmFtZSA9
IGRvY3VtZW50LmZyYW1lKCkpIHsKICAgICAgICAgZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5j
bGllbnQoKS5mcmFtZUlEKCk7CkBAIC05NCw3ICs5NCw3IEBAIENvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFByb3h5IENvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkoY29uc3Qg
RG9jCiB7CiAgICAgVHJhY2VTY29wZSBzY29wZShGZXRjaENvb2tpZXNTdGFydCwgRmV0Y2hDb29r
aWVzRW5kKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFs
PEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
cGFnZUlEOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKICAgICAg
ICAgZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CkBAIC0xMDYs
NyArMTA2LDcgQEAgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkgQ29va2llSmFyOjpjb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eShjb25zdCBEb2MKIAogdm9pZCBDb29raWVKYXI6OnNl
dENvb2tpZXMoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5n
JiBjb29raWVTdHJpbmcpCiB7Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAg
T3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiBwYWdlSUQ7CiAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkg
ewogICAgICAgICBmcmFtZUlEID0gZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKTsK
QEAgLTEyOCw3ICsxMjgsNyBAQCBib29sIENvb2tpZUphcjo6Y29va2llc0VuYWJsZWQoY29uc3Qg
RG9jdW1lbnQmKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RkOjpwYWlyPFN0cmlu
ZywgU2VjdXJlQ29va2llc0FjY2Vzc2VkPiBDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNs
dWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKK3N0ZDo6cGFpcjxT
dHJpbmcsIFNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZShjb25zdCBQQUw6OlNlc3Npb25JRCYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0
eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRp
b25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBw
YWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAog
ewogICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbV9zdG9yYWdlU2Vzc2lvblByb3ZpZGVyLT5zdG9y
YWdlU2Vzc2lvbigpKSB7CiAgICAgICAgIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IHJlc3VsdCA9
IHNlc3Npb24tPmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGZpcnN0UGFydHksIHNhbWVT
aXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKQEAg
LTE0MSw3ICsxNDEsNyBAQCBzdGQ6OnBhaXI8U3RyaW5nLCBTZWN1cmVDb29raWVzQWNjZXNzZWQ+
IENvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdQogCiBTdHJpbmcgQ29va2ll
SmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNv
bnN0IFVSTCYgdXJsKSBjb25zdAogewotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOwor
ICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdl
SWRlbnRpZmllcj4gcGFnZUlEOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1l
KCkpIHsKICAgICAgICAgZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlE
KCk7CkBAIC0xNTYsNyArMTU2LDcgQEAgU3RyaW5nIENvb2tpZUphcjo6Y29va2llUmVxdWVzdEhl
YWRlckZpZWxkVmFsdWUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHUKIAogYm9vbCBD
b29raWVKYXI6OmdldFJhd0Nvb2tpZXMoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBV
UkwmIHVybCwgVmVjdG9yPENvb2tpZT4mIGNvb2tpZXMpIGNvbnN0CiB7Ci0gICAgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlE
OwogICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7CiAgICAgaWYgKGF1dG8qIGZy
YW1lID0gZG9jdW1lbnQuZnJhbWUoKSkgewogICAgICAgICBmcmFtZUlEID0gZnJhbWUtPmxvYWRl
cigpLmNsaWVudCgpLmZyYW1lSUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Db29raWVKYXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuaAppbmRleCAy
ODFmODRjNDkwMDUyNjdlYTA1NGQ1MWQ3NjhhOWViNzMyY2JjMjM5Li44MDg3YjhjZDViN2NmNGY1
NjkzZTJmN2U5NWQ4ZWY2YTE3OTg0NmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvQ29va2llSmFyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5oCkBA
IC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiRnJhbWVJZGVudGlm
aWVyLmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNTksNyArNjAsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldENvb2tpZXMoRG9jdW1lbnQmLCBjb25zdCBVUkwm
LCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0cmluZyk7CiAKICAgICB2aXJ0dWFsIGJvb2wgY29va2ll
c0VuYWJsZWQoY29uc3QgRG9jdW1lbnQmKSBjb25zdDsKLSAgICB2aXJ0dWFsIHN0ZDo6cGFpcjxT
dHJpbmcsIFNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFs
dWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKKyAgICB2
aXJ0dWFsIHN0ZDo6cGFpcjxTdHJpbmcsIFNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gY29va2llUmVx
dWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZyYW1l
SWRlbnRpZmllcj4sIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNvb2tp
ZXMpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IERvY3VtZW50
JiwgY29uc3QgVVJMJiwgVmVjdG9yPENvb2tpZT4mKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQg
ZGVsZXRlQ29va2llKGNvbnN0IERvY3VtZW50JiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBj
b29raWVOYW1lKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJh
bWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVy
Q2xpZW50LmgKaW5kZXggMWY3YTI5YzRiMzAxYTM2NTgyMmU0MjMzYjQxNWRkMWMwMDE5MTMyZC4u
ZTU5ZDE3MGRmMGJhMDhhMmM0ZjYwM2ZkY2ZhODM1N2RmZjg5YmRiOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0zMiw3ICszMiw3IEBA
IGNsYXNzIFdFQkNPUkVfRVhQT1JUIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRnJh
bWVMb2FkZXJDbGllbnQgewogCiAgICAgdm9pZCBmcmFtZUxvYWRlckRlc3Ryb3llZCgpIG92ZXJy
aWRlIHsgfQogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+
IGZyYW1lSUQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KICAgICBP
cHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
V1RGOjpudWxsb3B0OyB9CiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Qgb3Zl
cnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNs
aWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXgg
MDc0ODc2MTE4ZGM2OTFhYTdjOGFkYTk3Yjc5NzEzNzMzYTI4YTY5NS4uZWQ4NDdjYjA0Nzg1MjVl
NTIxMGYxY2M4NWI3ZmVjNTNjZTcyMjJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyQ2xpZW50LmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNs
dWRlICJGcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAj
aW5jbHVkZSAiTGF5b3V0TWlsZXN0b25lLmgiCiAjaW5jbHVkZSAiTGlua0ljb24uaCIKQEAgLTEy
OCw3ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG1ha2VSZXByZXNlbnRhdGlv
bihEb2N1bWVudExvYWRlciopID0gMDsKIAogICAgIHZpcnR1YWwgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRCgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIE9wdGlvbmFsPHVpbnQ2NF90
PiBmcmFtZUlEKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgT3B0aW9uYWw8RnJhbWVJZGVudGlm
aWVyPiBmcmFtZUlEKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKCkgY29uc3QgPSAwOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcAppbmRleCA2MmJhMmRkMmY3NzBhNDA2
ZTE1YzkwMzk1ZTQxN2M0MmMyOGY1MjBlLi5iZDczOGUwODk1N2UyZmQ4NGRhMDU1YWI0NTNlMWE0
M2UwYjI4OGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3Bw
CkBAIC00MSw3ICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIE5hdmlnYXRpb25BY3Rpb246
OlJlcXVlc3Rlcjo6UmVxdWVzdGVyKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IG1f
dXJsIHsgVVJMIHsgZG9jdW1lbnQudXJsKCkgfSB9CiAgICAgLCBtX29yaWdpbiB7IG1ha2VSZWZQ
dHIoZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKSkgfQotICAgICwgbV9wYWdlSURBbmRGcmFtZUlE
UGFpciB7IGRvY3VtZW50LmZyYW1lKCkgPyBzdGQ6Om1ha2VfcGFpcihkb2N1bWVudC5mcmFtZSgp
LT5sb2FkZXIoKS5jbGllbnQoKS5wYWdlSUQoKS52YWx1ZU9yKFBhZ2VJZGVudGlmaWVyIHsgfSks
IGRvY3VtZW50LmZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKS52YWx1ZU9yKDAp
KSA6IHN0ZDo6bWFrZV9wYWlyPFBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdD4oeyB9LCAwKSB9Cisg
ICAgLCBtX3BhZ2VJREFuZEZyYW1lSURQYWlyIHsgZG9jdW1lbnQuZnJhbWUoKSA/IHN0ZDo6bWFr
ZV9wYWlyKGRvY3VtZW50LmZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgpLnBhZ2VJRCgpLnZhbHVl
T3IoUGFnZUlkZW50aWZpZXIgeyB9KSwgZG9jdW1lbnQuZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50
KCkuZnJhbWVJRCgpLnZhbHVlT3IoRnJhbWVJZGVudGlmaWVyIHsgfSkpIDogc3RkOjptYWtlX3Bh
aXI8UGFnZUlkZW50aWZpZXIsIEZyYW1lSWRlbnRpZmllcj4oeyB9LCB7IH0pIH0KIHsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmgKaW5kZXggMzVjOTYxYWExNTQ3
YjhlYTBjNGI5MDQwNzAzYzg1ZDNlYThlN2U1Ny4uMGEwMjFkNGZjNzlkOTZiM2YyYTg4YmFlNDA0
NTYxOTEwNGNlOTBiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRp
b25BY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5o
CkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJBZENsaWNrQXR0cmlidXRpb24uaCIKICNp
bmNsdWRlICJCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiRnJhbWVJZGVu
dGlmaWVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIkxheW91
dFBvaW50LmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKQEAgLTY0LDcgKzY1LDcgQEAg
cHVibGljOgogICAgIE5hdmlnYXRpb25BY3Rpb24oTmF2aWdhdGlvbkFjdGlvbiYmKTsKICAgICBO
YXZpZ2F0aW9uQWN0aW9uJiBvcGVyYXRvcj0oTmF2aWdhdGlvbkFjdGlvbiYmKTsKIAotICAgIHVz
aW5nIFBhZ2VJREFuZEZyYW1lSURQYWlyID0gc3RkOjpwYWlyPFBhZ2VJZGVudGlmaWVyLCB1aW50
NjRfdCAvKiBmcmFtZUlEICovPjsKKyAgICB1c2luZyBQYWdlSURBbmRGcmFtZUlEUGFpciA9IHN0
ZDo6cGFpcjxQYWdlSWRlbnRpZmllciwgRnJhbWVJZGVudGlmaWVyPjsgLy8gRklYTUU6IFVzZSBH
bG9iYWxGcmFtZUlkZW50aWZpZXIuCiAgICAgY2xhc3MgUmVxdWVzdGVyIHsKICAgICBwdWJsaWM6
CiAgICAgICAgIFJlcXVlc3Rlcihjb25zdCBEb2N1bWVudCYpOwpAQCAtNzIsNyArNzMsNyBAQCBw
dWJsaWM6CiAgICAgICAgIGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7IH0K
ICAgICAgICAgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyBy
ZXR1cm4gKm1fb3JpZ2luOyB9CiAgICAgICAgIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCgpIGNvbnN0
IHsgcmV0dXJuIG1fcGFnZUlEQW5kRnJhbWVJRFBhaXIuZmlyc3Q7IH0KLSAgICAgICAgdWludDY0
X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUlEQW5kRnJhbWVJRFBhaXIuc2Vjb25k
OyB9CisgICAgICAgIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9w
YWdlSURBbmRGcmFtZUlEUGFpci5zZWNvbmQ7IH0KICAgICBwcml2YXRlOgogICAgICAgICBVUkwg
bV91cmw7CiAgICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gbV9vcmlnaW47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCBjMjVhMDI0YmMwNjNjNThmM2IyOGJkNzljYmIwMzM4
NDQyNmM4YzVlLi5lOGE1ZGUzM2VkMTc5MjZjOWFhODU2YjA4MTZiNGVlY2Y4MmM5NGY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJE
aXNwbGF5UmVmcmVzaE1vbml0b3IuaCIKICNpbmNsdWRlICJEb2N1bWVudFN0b3JhZ2VBY2Nlc3Mu
aCIKICNpbmNsdWRlICJGb2N1c0RpcmVjdGlvbi5oIgorI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmll
ci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0
LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllci5oIgpAQCAtNDg2LDggKzQ4Nyw4IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIFJlZlB0cjxJY29uPiBjcmVhdGVJY29uRm9yRmlsZXMoY29uc3QgVmVj
dG9yPFN0cmluZz4mIC8qIGZpbGVuYW1lcyAqLykgPSAwOwogCiAjaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKLSAgICB2aXJ0dWFsIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhSZWdp
c3RyYWJsZURvbWFpbiYmIC8qc3ViRnJhbWVEb21haW4qLywgUmVnaXN0cmFibGVEb21haW4mJiAv
KnRvcEZyYW1lRG9tYWluKi8sIHVpbnQ2NF90IC8qZnJhbWVJRCovLCBQYWdlSWRlbnRpZmllciwg
V1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7
IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsgfQotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3Rv
cmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIC8qc3ViRnJhbWVEb21haW4qLywgUmVnaXN0
cmFibGVEb21haW4mJiAvKnRvcEZyYW1lRG9tYWluKi8sIHVpbnQ2NF90IC8qZnJhbWVJRCovLCBQ
YWdlSWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NX
YXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5k
bGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOjpObywgU3Rv
cmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpObyk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaGFzU3Rv
cmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIC8qc3ViRnJhbWVEb21haW4qLywgUmVnaXN0
cmFibGVEb21haW4mJiAvKnRvcEZyYW1lRG9tYWluKi8sIEZyYW1lSWRlbnRpZmllciwgUGFnZUlk
ZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiAvKnN1YkZyYW1lRG9tYWlu
Ki8sIFJlZ2lzdHJhYmxlRG9tYWluJiYgLyp0b3BGcmFtZURvbWFpbiovLCBGcmFtZUlkZW50aWZp
ZXIsIFBhZ2VJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFj
Y2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlv
bkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQ6Ok5v
LCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd246Ok5vKTsgfQogI2VuZGlmCiAKICNpZiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVJZGVudGlmaWVyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjVkNDk2N2FiMWI0NTQyMzU4ZTg2NzI0MDVjYjY2YjdkNzhkNzIyNgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVJZGVudGlmaWVyLmgKQEAg
LTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3Rm
L09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIEZyYW1l
SWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgRnJhbWVJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRp
ZmllcjxGcmFtZUlkZW50aWZpZXJUeXBlPjsKKworaW5saW5lIEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlkZW50aWZpZXJGcm9tSUQodWludDY0X3QgZnJhbWVJRCkKK3sKKyAgICByZXR1cm4gbWFrZU9i
amVjdElkZW50aWZpZXI8RnJhbWVJZGVudGlmaWVyVHlwZT4oZnJhbWVJRCk7Cit9CisKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2xvYmFsRnJhbWVJZGVudGlmaWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0dsb2JhbEZyYW1lSWRlbnRpZmllci5oCmluZGV4IDBkN2IzZGJm
NzJmODFlNGZkNjJhNzNmZWQyNTgxY2VhZWUxNjdiNGEuLjcwOTM0NjdiMTJmODU2NjFhOGY3ZmFk
ZjAyYjM1Nzc5OTRlYjZhMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2xvYmFs
RnJhbWVJZGVudGlmaWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9HbG9iYWxGcmFtZUlk
ZW50aWZpZXIuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUg
IkZyYW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCiAjaW5jbHVk
ZSA8d3RmL09wdGlvbmFsLmg+CiAKQEAgLTMzLDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogLy8gRnJhbWUgaWRlbnRpZmllciB0aGF0IGlzIHVuaXF1ZSBhY3Jvc3MgYWxsIFdlYkNvbnRl
bnQgcHJvY2Vzc2VzLgogc3RydWN0IEdsb2JhbEZyYW1lSWRlbnRpZmllciB7CiAgICAgUGFnZUlk
ZW50aWZpZXIgcGFnZUlEOwotICAgIHVpbnQ2NF90IGZyYW1lSUQ7CisgICAgRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQ7CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlv
bmFsPEdsb2JhbEZyYW1lSWRlbnRpZmllcj4gZGVjb2RlKERlY29kZXImKTsKQEAgLTUzLDcgKzU0
LDcgQEAgT3B0aW9uYWw8R2xvYmFsRnJhbWVJZGVudGlmaWVyPiBHbG9iYWxGcmFtZUlkZW50aWZp
ZXI6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIGlmICghcGFnZUlEKQogICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7Cisg
ICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEOwogICAgIGRlY29kZXIgPj4gZnJh
bWVJRDsKICAgICBpZiAoIWZyYW1lSUQpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Nvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Nvb2tp
ZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5LmgKaW5kZXggYTMzMDE5ZjlkNWIyYWVkMjYwNzQ2Njk0
MDFmZDczMjJmMDJkNTE1Ny4uN2ZhOTAxNDNlNGZlMTc3YTc0YjI4NDA3MWI4YzJkNmViNTY4MmEw
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Db29raWVSZXF1
ZXN0SGVhZGVyRmllbGRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaApAQCAtMjYsNiArMjYsNyBAQAogI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlICJDb29raWVKYXIuaCIKKyNpbmNsdWRlICJGcmFtZUlkZW50
aWZpZXIuaCIKICNpbmNsdWRlICJQYWdlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNhbWVTaXRl
SW5mby5oIgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KQEAgLTM4LDcgKzM5LDcgQEAgc3Ry
dWN0IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5IHsKICAgICBVUkwgZmlyc3RQYXJ0eTsK
ICAgICBTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvOwogICAgIFVSTCB1cmw7Ci0gICAgT3B0aW9u
YWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFt
ZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7CiAgICAgSW5jbHVkZVNl
Y3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMgeyBJbmNsdWRlU2VjdXJlQ29va2llczo6
Tm8gfTsKIApAQCAtNzgsNyArNzksNyBAQCBPcHRpb25hbDxDb29raWVSZXF1ZXN0SGVhZGVyRmll
bGRQcm94eT4gQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHk6OmRlY29kZShEZQogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUodXJsKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAot
ICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFsPE9wdGlvbmFsPEZy
YW1lSWRlbnRpZmllcj4+IGZyYW1lSUQ7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShmcmFtZUlE
KSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIApAQCAtOTEsNyArOTIsNyBAQCBPcHRp
b25hbDxDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eT4gQ29va2llUmVxdWVzdEhlYWRlckZp
ZWxkUHJveHk6OmRlY29kZShEZQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5jbHVkZVNlY3Vy
ZUNvb2tpZXMpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgcmV0dXJuIENv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5IHsgKnNlc3Npb25JRCwgV1RGTW92ZShmaXJzdFBh
cnR5KSwgV1RGTW92ZShzYW1lU2l0ZUluZm8pLCBXVEZNb3ZlKHVybCksIGZyYW1lSUQsICpwYWdl
SUQsIGluY2x1ZGVTZWN1cmVDb29raWVzIH07CisgICAgcmV0dXJuIENvb2tpZVJlcXVlc3RIZWFk
ZXJGaWVsZFByb3h5IHsgKnNlc3Npb25JRCwgV1RGTW92ZShmaXJzdFBhcnR5KSwgV1RGTW92ZShz
YW1lU2l0ZUluZm8pLCBXVEZNb3ZlKHVybCksICpmcmFtZUlELCAqcGFnZUlELCBpbmNsdWRlU2Vj
dXJlQ29va2llcyB9OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5j
cHAKaW5kZXggZTcxOTA3ZDk3N2RmNTkyNzNmNDkxOWM1NjUxYWYxNzM2ZmIxYTY3Zi4uZjRiMDlh
OGQ1ZTFhZDk0ODRlZDdiMzJlYjU2ZTM5NmY3NWRhYzkwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcApA
QCAtNzksMTIgKzc5LDEyIEBAIGJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzaG91bGRCbG9j
a1RoaXJkUGFydHlDb29raWVzQnV0S2VlcEZpcnN0UGFydHlDb29raWVzCiAgICAgcmV0dXJuIG1f
cmVnaXN0cmFibGVEb21haW5zVG9CbG9ja0J1dEtlZXBDb29raWVzRm9yLmNvbnRhaW5zKHJlZ2lz
dHJhYmxlRG9tYWluKTsKIH0KIAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNob3VsZEJs
b2NrQ29va2llcyhjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIE9wdGlvbmFsPHVpbnQ2
NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEKSBjb25zdAorYm9v
bCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNob3VsZEJsb2NrQ29va2llcyhjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0
aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkgY29uc3QKIHsKICAgICByZXR1cm4gc2hvdWxk
QmxvY2tDb29raWVzKHJlcXVlc3QuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgcmVxdWVzdC51cmwo
KSwgZnJhbWVJRCwgcGFnZUlEKTsKIH0KICAgICAKLWJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5Rm9yQ29va2llcywgY29u
c3QgVVJMJiByZXNvdXJjZSwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiBwYWdlSUQpIGNvbnN0Citib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
c2hvdWxkQmxvY2tDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eUZvckNvb2tpZXMsIGNvbnN0
IFVSTCYgcmVzb3VyY2UsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkgY29uc3QKIHsKICAgICBSZWdpc3RyYWJsZURvbWFp
biBmaXJzdFBhcnR5RG9tYWluIHsgZmlyc3RQYXJ0eUZvckNvb2tpZXMgfTsKICAgICBpZiAoZmly
c3RQYXJ0eURvbWFpbi5pc0VtcHR5KCkpCkBAIC0xMzYsNyArMTM2LDcgQEAgdm9pZCBOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OnJlbW92ZVByZXZhbGVudERvbWFpbnMoY29uc3QgVmVjdG9yPFJlZ2lz
dHJhYmxlRG9tYWkKICAgICB9CiB9CiAKLWJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpoYXNT
dG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPHVpbnQ2NF90
PiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQpIGNvbnN0Citib29sIE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVz
b3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBP
cHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkg
Y29uc3QKIHsKICAgICBpZiAoZnJhbWVJRCkgewogICAgICAgICBhdXRvIGZyYW1lc0dyYW50ZWRJ
dGVyYXRvciA9IG1fZnJhbWVzR3JhbnRlZFN0b3JhZ2VBY2Nlc3MuZmluZChwYWdlSUQpOwpAQCAt
MTY5LDcgKzE2OSw3IEBAIFZlY3RvcjxTdHJpbmc+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0
QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoKSBjb25zdAogICAgIHJldHVybiBlbnRyaWVzOwogfQog
ICAgIAotdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgUGFnZUlk
ZW50aWZpZXIgcGFnZUlEKQordm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdyYW50U3RvcmFn
ZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZp
ZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKIHsKICAgICBpZiAoIWZyYW1lSUQp
IHsKICAgICAgICAgaWYgKGZpcnN0UGFydHlEb21haW4uaXNFbXB0eSgpKQpAQCAtMTkxLDcgKzE5
MSw3IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpncmFudFN0b3JhZ2VBY2Nlc3MoY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlCiAKICAgICBhdXRvIHBhZ2VzR3JhbnRlZEl0
ZXJhdG9yID0gbV9mcmFtZXNHcmFudGVkU3RvcmFnZUFjY2Vzcy5maW5kKHBhZ2VJRCk7CiAgICAg
aWYgKHBhZ2VzR3JhbnRlZEl0ZXJhdG9yID09IG1fZnJhbWVzR3JhbnRlZFN0b3JhZ2VBY2Nlc3Mu
ZW5kKCkpIHsKLSAgICAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVnaXN0cmFibGVEb21haW4sIERl
ZmF1bHRIYXNoPHVpbnQ2NF90Pjo6SGFzaCwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRy
YWl0czx1aW50NjRfdD4+IGVudHJ5OworICAgICAgICBIYXNoTWFwPEZyYW1lSWRlbnRpZmllciwg
UmVnaXN0cmFibGVEb21haW4+IGVudHJ5OwogICAgICAgICBlbnRyeS5hZGQoZnJhbWVJRC52YWx1
ZSgpLCByZXNvdXJjZURvbWFpbik7CiAgICAgICAgIG1fZnJhbWVzR3JhbnRlZFN0b3JhZ2VBY2Nl
c3MuYWRkKHBhZ2VJRCwgZW50cnkpOwogICAgIH0gZWxzZSB7CkBAIC0yMDMsNyArMjAzLDcgQEAg
dm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgcmVzb3VyY2UKICAgICB9CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uOjpyZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgUGFn
ZUlkZW50aWZpZXIgcGFnZUlEKQordm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnJlbW92ZVN0
b3JhZ2VBY2Nlc3NGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZp
ZXIgcGFnZUlEKQogewogICAgIGF1dG8gaXRlcmF0aW9uID0gbV9mcmFtZXNHcmFudGVkU3RvcmFn
ZUFjY2Vzcy5maW5kKHBhZ2VJRCk7CiAgICAgaWYgKGl0ZXJhdGlvbiA9PSBtX2ZyYW1lc0dyYW50
ZWRTdG9yYWdlQWNjZXNzLmVuZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKaW5kZXggYzhlZjhmN2JhYjc1ZmQ5
OTc5YjI4MmY1ZjVhODcwMmVmODBjODhiMy4uOGRkZjU1YjRhMWZjYTVjNTRhNDk5MGEzYTM3YzA1
OTI2NjhmZTAwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9O
ZXR3b3JrU3RvcmFnZVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9u
Y2UKIAogI2luY2x1ZGUgIkNyZWRlbnRpYWxTdG9yYWdlLmgiCisjaW5jbHVkZSAiRnJhbWVJZGVu
dGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJSZWdpc3Ry
YWJsZURvbWFpbi5oIgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KQEAgLTEyMyw3ICsxMjQs
NyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjb29raWVzRW5hYmxlZCgpIGNv
bnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29va2llKGNvbnN0IENvb2tpZSYpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29va2llcyhjb25zdCBWZWN0b3I8Q29va2llPiYs
IGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgbWFpbkRvY3VtZW50VVJMKTsKLSAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9w
dGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJikgY29uc3Q7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4s
IE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBkZWxldGVDb29raWUoY29uc3QgQ29va2llJik7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBkZWxldGVDb29raWUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJikgY29u
c3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVBbGxDb29raWVzKCk7CkBAIC0xMzIs
MjYgKzEzMywyNiBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVDb29r
aWVzRm9ySG9zdG5hbWVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjb29raWVIb3N0TmFtZXMsIElu
Y2x1ZGVIdHRwT25seUNvb2tpZXMpOwogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxDb29raWU+
IGdldEFsbENvb2tpZXMoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8Q29va2llPiBnZXRD
b29raWVzKGNvbnN0IFVSTCYpOwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgZ2V0UmF3Q29va2ll
cyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYs
IE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIFZl
Y3RvcjxDb29raWU+JikgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBnZXRSYXdDb29r
aWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJM
JiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBW
ZWN0b3I8Q29va2llPiYpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZmx1c2hDb29r
aWVTdG9yZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2V0SG9zdG5hbWVzV2l0aENvb2tp
ZXMoSGFzaFNldDxTdHJpbmc+JiBob3N0bmFtZXMpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6
cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZXNGb3JET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7
Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llUmVxdWVz
dEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUlu
Zm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFn
ZUlkZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvckRPTShjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZyYW1l
SWRlbnRpZmllcj4sIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNvb2tp
ZXMpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0
aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7CiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llUmVxdWVzdEhlYWRl
ckZpZWxkVmFsdWUoY29uc3QgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkmKSBjb25zdDsK
IAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgT3B0aW9u
YWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPikgY29uc3Q7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJz
dFBhcnR5Rm9yQ29va2llcywgY29uc3QgVVJMJiByZXNvdXJjZSwgT3B0aW9uYWw8dWludDY0X3Q+
IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPikgY29uc3Q7CisgICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgT3B0
aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+KSBjb25zdDsK
KyAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNob3VsZEJsb2NrQ29va2llcyhjb25zdCBVUkwmIGZp
cnN0UGFydHlGb3JDb29raWVzLCBjb25zdCBVUkwmIHJlc291cmNlLCBPcHRpb25hbDxGcmFtZUlk
ZW50aWZpZXI+LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4pIGNvbnN0OwogICAgIFdFQkNPUkVf
RVhQT1JUIGJvb2wgc2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2hvdWxkQmxvY2tUaGly
ZFBhcnR5Q29va2llc0J1dEtlZXBGaXJzdFBhcnR5Q29va2llc0Zvcihjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UHJldmFsZW50RG9t
YWluc1RvQmxvY2tBbmREZWxldGVDb29raWVzRm9yKGNvbnN0IFZlY3RvcjxSZWdpc3RyYWJsZURv
bWFpbj4mKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFByZXZhbGVudERvbWFpbnNUb0Js
b2NrQnV0S2VlcENvb2tpZXNGb3IoY29uc3QgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiYpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoT3B0
aW9uYWw8U2Vjb25kcz4pOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlUHJldmFsZW50
RG9tYWlucyhjb25zdCBWZWN0b3I8UmVnaXN0cmFibGVEb21haW4+JiBkb21haW5zKTsKLSAgICBX
RUJDT1JFX0VYUE9SVCBib29sIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURv
bWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyKSBjb25zdDsK
KyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQ
YXJ0eURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgUGFnZUlkZW50aWZpZXIpIGNv
bnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxTdHJpbmc+IGdldEFsbFN0b3JhZ2VBY2Nl
c3NFbnRyaWVzKCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBncmFudFN0b3JhZ2VB
Y2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1l
SUQsIFBhZ2VJZGVudGlmaWVyKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVN0b3Jh
Z2VBY2Nlc3NGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllcik7CisgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0
eURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgUGFnZUlkZW50aWZpZXIpOworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKEZyYW1lSWRl
bnRpZmllciwgUGFnZUlkZW50aWZpZXIpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJQ
YWdlU3BlY2lmaWNEYXRhRm9yUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQYWdlSWRlbnRpZmllcik7
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVBbGxTdG9yYWdlQWNjZXNzKCk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNl
cyhTZWNvbmRzKTsKQEAgLTE4NSw3ICsxODYsNyBAQCBwcml2YXRlOgogICAgIE9wdGlvbmFsPFNl
Y29uZHM+IGNsaWVudFNpZGVDb29raWVDYXAoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0
UGFydHksIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPikgY29uc3Q7CiAgICAgSGFzaFNldDxSZWdp
c3RyYWJsZURvbWFpbj4gbV9yZWdpc3RyYWJsZURvbWFpbnNUb0Jsb2NrQW5kRGVsZXRlQ29va2ll
c0ZvcjsKICAgICBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiBtX3JlZ2lzdHJhYmxlRG9tYWlu
c1RvQmxvY2tCdXRLZWVwQ29va2llc0ZvcjsKLSAgICBIYXNoTWFwPFBhZ2VJZGVudGlmaWVyLCBI
YXNoTWFwPHVpbnQ2NF90LCBSZWdpc3RyYWJsZURvbWFpbiwgRGVmYXVsdEhhc2g8dWludDY0X3Q+
OjpIYXNoLCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPHVpbnQ2NF90Pj4+IG1f
ZnJhbWVzR3JhbnRlZFN0b3JhZ2VBY2Nlc3M7CisgICAgSGFzaE1hcDxQYWdlSWRlbnRpZmllciwg
SGFzaE1hcDxGcmFtZUlkZW50aWZpZXIsIFJlZ2lzdHJhYmxlRG9tYWluPj4gbV9mcmFtZXNHcmFu
dGVkU3RvcmFnZUFjY2VzczsKICAgICBIYXNoTWFwPFBhZ2VJZGVudGlmaWVyLCBIYXNoTWFwPFJl
Z2lzdHJhYmxlRG9tYWluLCBSZWdpc3RyYWJsZURvbWFpbj4+IG1fcGFnZXNHcmFudGVkU3RvcmFn
ZUFjY2VzczsKICAgICBPcHRpb25hbDxTZWNvbmRzPiBtX2NhY2hlTWF4QWdlQ2FwRm9yUHJldmFs
ZW50UmVzb3VyY2VzIHsgfTsKICAgICBPcHRpb25hbDxTZWNvbmRzPiBtX2FnZUNhcEZvckNsaWVu
dFNpZGVDb29raWVzIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tCmlu
ZGV4IDg0YjczYjgzNDRiMGNhYjVhOTA0OGI0ODVlZmIxNzZkNWQzNDA1ODEuLjg1ZjRjNjJlM2Jm
NzRjMGRlNTQzNWYyZjAwYmU5ODRkODJlYWVmNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNl
c3Npb25Db2NvYS5tbQpAQCAtMjk0LDcgKzI5NCw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNBcnJh
eT4gZmlsdGVyQ29va2llcyhOU0FycmF5ICp1bmZpbHRlcmVkQ29va2llcywgT3B0aW9uYWw8U2Vj
CiAgICAgcmV0dXJuIGZpbHRlcmVkQ29va2llczsKIH0KIAotc3RhdGljIE5TQXJyYXkgKmNvb2tp
ZXNGb3JVUkwoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwm
IHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVy
PiBwYWdlSUQpCitzdGF0aWMgTlNBcnJheSAqY29va2llc0ZvclVSTChjb25zdCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNp
dGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50
aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQpCiB7CiAjaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBpZiAoc2Vzc2lvbi5zaG91bGRC
bG9ja0Nvb2tpZXMoZmlyc3RQYXJ0eSwgdXJsLCBmcmFtZUlELCBwYWdlSUQpKQpAQCAtMzA3LDcg
KzMwNyw3IEBAIHN0YXRpYyBOU0FycmF5ICpjb29raWVzRm9yVVJMKGNvbnN0IE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmCiB9CiAKIGVudW0gSW5jbHVkZUhUVFBP
bmx5T3JOb3QgeyBEb05vdEluY2x1ZGVIVFRQT25seSwgSW5jbHVkZUhUVFBPbmx5IH07Ci1zdGF0
aWMgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvclNlc3Npb24oY29uc3QgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0
X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVIVFRQ
T25seU9yTm90IGluY2x1ZGVIVFRQT25seSwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNl
Y3VyZUNvb2tpZXMpCitzdGF0aWMgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvclNl
c3Npb24oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVy
bCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRp
Zmllcj4gcGFnZUlELCBJbmNsdWRlSFRUUE9ubHlPck5vdCBpbmNsdWRlSFRUUE9ubHksIEluY2x1
ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKQogewogICAgIEFTU0VSVChoYXNQ
cm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsK
IApAQCAtMzYzLDEyICszNjMsMTIgQEAgc3RhdGljIHZvaWQgZGVsZXRlQWxsSFRUUENvb2tpZXMo
Q0ZIVFRQQ29va2llU3RvcmFnZVJlZiBjb29raWVTdG9yYWdlKQogICAgIENGSFRUUENvb2tpZVN0
b3JhZ2VEZWxldGVBbGxDb29raWVzKGNvb2tpZVN0b3JhZ2UpOwogfQogCi1zdGQ6OnBhaXI8U3Ry
aW5nLCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNGb3JET00oY29uc3QgVVJM
JiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJM
JiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmll
cj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29u
c3QKK3N0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2ll
c0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNp
dGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlE
LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBp
bmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKIHsKICAgICByZXR1cm4gY29va2llc0ZvclNlc3Np
b24oKnRoaXMsIGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQs
IERvTm90SW5jbHVkZUhUVFBPbmx5LCBpbmNsdWRlU2VjdXJlQ29va2llcyk7CiB9CiAKLXN0ZDo6
cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llUmVxdWVzdEhl
YWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8m
IHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlE
LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBp
bmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKK3N0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJM
JiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJM
JiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tp
ZXMpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGNvb2tpZXNGb3JTZXNzaW9uKCp0aGlzLCBmaXJzdFBh
cnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlELCBJbmNsdWRlSFRUUE9ubHks
IGluY2x1ZGVTZWN1cmVDb29raWVzKTsKIH0KQEAgLTM3OCw3ICszNzgsNyBAQCBzdGQ6OnBhaXI8
U3RyaW5nLCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlKGNvbgogICAgIHJldHVybiBjb29raWVzRm9yU2Vzc2lvbigqdGhpcywgaGVhZGVy
RmllbGRQcm94eS5maXJzdFBhcnR5LCBoZWFkZXJGaWVsZFByb3h5LnNhbWVTaXRlSW5mbywgaGVh
ZGVyRmllbGRQcm94eS51cmwsIGhlYWRlckZpZWxkUHJveHkuZnJhbWVJRCwgaGVhZGVyRmllbGRQ
cm94eS5wYWdlSUQsIEluY2x1ZGVIVFRQT25seSwgaGVhZGVyRmllbGRQcm94eS5pbmNsdWRlU2Vj
dXJlQ29va2llcyk7CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVz
RnJvbURPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNp
dGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlv
bmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGNvbnN0IFN0cmluZyYgY29va2llU3RyKSBjb25z
dAordm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVS
TCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPiBwYWdlSUQsIGNvbnN0IFN0cmluZyYgY29va2llU3RyKSBjb25zdAogewogICAg
IEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jh
d0Nvb2tpZXMpKTsKIApAQCAtNDQzLDcgKzQ0Myw3IEBAIGJvb2wgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpjb29raWVzRW5hYmxlZCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29s
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQs
IFZlY3RvcjxDb29raWU+JiByYXdDb29raWVzKSBjb25zdAorYm9vbCBOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0
ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRp
Zmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgVmVjdG9yPENv
b2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0CiB7CiAgICAgcmF3Q29va2llcy5jbGVhcigpOwogICAg
IEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCmluZGV4IDY4N2QwYjA0NjFhZmRlN2Mw
NzI5OGM2YzllZmZkMjYxOTRiZjQ3YWMuLjc2M2I0NzU5ZTQzM2Y4NzEzMGIzOTQwMDYyMzQwYjI2
ODQ4ZWE4YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlLmNwcApAQCAtNzE2LDcgKzcxNiw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OnN5bmNTdG9yYWdlSW1tZWRpYXRlbHkoKQogICAgIG1fZGF0
YWJhc2UucnVuVmFjdXVtQ29tbWFuZCgpOwogfQogCi12b2lkIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiBz
dWJGcmFtZURvbWFpbiwgY29uc3QgVG9wRnJhbWVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBPcHRp
b25hbDxGcmFtZUlEPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1l
RG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgVG9wRnJhbWVEb21haW4mIHRvcEZyYW1lRG9t
YWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtNzQzLDcgKzc0Myw3IEBA
IHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omhhc1N0b3JhZ2VBY2Nl
c3MoY29uc3QgU3ViRnJhbWVEb21haW4mCiAgICAgfSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9t
YWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIEZy
YW1lSUQgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3Vi
RnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21haW4mJiB0b3BGcmFtZURv
bWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtODA0LDcgKzgw
NCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlcXVlc3RT
dG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoRG9tYWluCiAgICAgZ3JhbnRTdG9yYWdlQWNjZXNzSW50
ZXJuYWwoV1RGTW92ZShkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MpLCBXVEZNb3ZlKG9wZW5l
ckRvbWFpbiksIFdURjo6bnVsbG9wdCwgb3BlbmVyUGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0
V2FzU2hvd246Ok5vLCBbXShTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCkgeyB9KTsKIH0KIAotdm9p
ZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNz
KFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJh
bWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFn
ZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW50U3RvcmFnZUFjY2VzcyhT
dWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZyYW1l
RG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBT
dG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC04MTgsNyArODE4LDcgQEAg
dm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z3JhbnRTdG9yYWdlQWNj
ZXNzKFN1YkZyYW1lRG9tYWluJiYgc3UKICAgICBncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChX
VEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0b3BGcmFtZURvbWFpbiksIGZyYW1lSUQs
IHBhZ2VJRCwgcHJvbXB0V2FzU2hvd24sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0K
IAotdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z3JhbnRTdG9yYWdl
QWNjZXNzSW50ZXJuYWwoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVE
b21haW4mJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJRD4gZnJhbWVJRCwgUGFnZUlk
ZW50aWZpZXIgcGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hv
d25Ob3dPckVhcmxpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dy
YW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoU3ViRnJhbWVEb21haW4m
JiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIFN0b3Jh
Z2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93bk5vd09yRWFybGllciwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKaW5kZXggM2M4ZDJi
MWYxNjU0OTNjOTNjYTVkODJiYzAyNzJmOTEzYjdhMDdmYS4uZDI1NmJlMjFjZmY3YjFmNzA1NTY0
MDMxYTU3NWY1ZTVkMjMzMGVlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKQEAgLTkxLDkgKzkxLDkgQEAgcHVibGljOgogCiAgICAg
dm9pZCBjYWxjdWxhdGVBbmRTdWJtaXRUZWxlbWV0cnkoKSBjb25zdCBvdmVycmlkZTsKIAotICAg
IHZvaWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZy
YW1lRG9tYWluJiwgT3B0aW9uYWw8RnJhbWVJRD4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlcXVl
c3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIEZyYW1l
SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3Jh
Z2VBY2Nlc3NTdGF0dXMpPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vz
cyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBGcmFtZUlELCBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJikg
b3ZlcnJpZGU7CisgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWlu
JiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXI+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURv
bWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NT
dGF0dXMpPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFt
ZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hv
d24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50
ZWQpPiYmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgbG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IE5h
dmlnYXRlZFRvRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBjb25zdCBOYXZpZ2F0ZWRG
cm9tRG9tYWluJiwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlzTWFpbkZyYW1lKSBvdmVycmlkZTsK
ICAgICB2b2lkIGxvZ1VzZXJJbnRlcmFjdGlvbihjb25zdCBUb3BGcmFtZURvbWFpbiYpIG92ZXJy
aWRlOwpAQCAtMTUzLDcgKzE1Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRS
ZXNvdXJjZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIFJlc291cmNlTG9hZFByZXZhbGVuY2Up
OwogICAgIHVuc2lnbmVkIHJlY3Vyc2l2ZWx5RmluZE5vblByZXZhbGVudERvbWFpbnNUaGF0UmVk
aXJlY3RlZFRvVGhpc0RvbWFpbih1bnNpZ25lZCBwcmltYXJ5RG9tYWluSUQsIFN0ZFNldDx1bnNp
Z25lZD4mIG5vblByZXZhbGVudFJlZGlyZWN0aW9uU291cmNlcywgdW5zaWduZWQgbnVtYmVyT2ZS
ZWN1cnNpdmVDYWxscyk7CiAgICAgdm9pZCBzZXREb21haW5zQXNQcmV2YWxlbnQoU3RkU2V0PHVu
c2lnbmVkPiYmKTsKLSAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFN1YkZyYW1l
RG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIE9wdGlvbmFsPEZyYW1lSUQ+LCBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJik7
CisgICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChTdWJGcmFtZURvbWFpbiYmLCBU
b3BGcmFtZURvbWFpbiYmLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3du
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVk
KT4mJik7CiAgICAgdm9pZCBtYXJrQXNQcmV2YWxlbnRJZkhhc1JlZGlyZWN0ZWRUb1ByZXZhbGVu
dCgpOwogICAgIFZlY3RvcjxSZWdpc3RyYWJsZURvbWFpbj4gZW5zdXJlUHJldmFsZW50UmVzb3Vy
Y2VzRm9yRGVidWdNb2RlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZW1vdmVEYXRhUmVjb3JkcyhD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9y
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcAppbmRleCBlMjM5ZmNjODAzZThkNzQ0NTYxMjE4
ZDY3MjE3ZjcxZWQ0MWIxODdmLi5mNmVlOTJmOWI2OGQzMmYwN2U1MjE1ZDMwMzU0OTk1MTQ0Zjdh
ODNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIv
UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0
b3JlLmNwcApAQCAtMjExLDcgKzIxMSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01l
bW9yeVN0b3JlOjpzeW5jU3RvcmFnZUltbWVkaWF0ZWx5KCkKICAgICAgICAgbV9wZXJzaXN0ZW50
U3RvcmFnZS0+c2NoZWR1bGVPcldyaXRlTWVtb3J5U3RvcmUoUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1BlcnNpc3RlbnRTdG9yYWdlOjpGb3JjZUltbWVkaWF0ZVdyaXRlOjpZZXMpOwogfQogCi12b2lk
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyhjb25z
dCBTdWJGcmFtZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0
b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJRD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIg
cGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6Omhhc1N0b3JhZ2VBY2Nl
c3MoY29uc3QgU3ViRnJhbWVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBUb3BGcmFtZURv
bWFpbiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwg
UGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBA
IC0yMzUsNyArMjM1LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6
Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mIHMKICAgICB9KTsKIH0KIAot
dm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNj
ZXNzKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9w
RnJhbWVEb21haW4sIEZyYW1lSUQgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnJlcXVlc3RTdG9y
YWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWlu
JiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAK
QEAgLTI4OCw3ICsyODgsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9y
ZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihEb21haW5JbgogICAgIGdyYW50U3Rv
cmFnZUFjY2Vzc0ludGVybmFsKFdURk1vdmUoZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzKSwg
V1RGTW92ZShvcGVuZXJEb21haW4pLCBXVEY6Om51bGxvcHQsIG9wZW5lclBhZ2VJRCwgU3RvcmFn
ZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpObywgW10oU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpIHsg
fSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpncmFudFN0
b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21h
aW4mJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFn
ZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24sIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmdyYW50U3RvcmFn
ZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYm
IHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIg
cGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24sIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC0zMDAsNyAr
MzAwLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmdyYW50U3Rv
cmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1YkYKICAgICBncmFudFN0b3JhZ2VBY2Nlc3NJ
bnRlcm5hbChXVEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0b3BGcmFtZURvbWFpbiks
IGZyYW1lSUQsIHBhZ2VJRCwgcHJvbXB0V2FzU2hvd24sIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmdyYW50
U3RvcmFnZUFjY2Vzc0ludGVybmFsKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRv
cEZyYW1lRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPEZyYW1lSUQ+IGZyYW1lSUQs
IFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21w
dFdhc1Nob3duTm93T3JFYXJsaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nl
c3NXYXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc01lbW9yeVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChTdWJGcmFtZURv
bWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBP
cHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwg
U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duTm93T3JFYXJsaWVyLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCmluZGV4IDVhZjY3
YTE2ZjA2MTZkYTlmYTBjMDkzMzE1YWNiYzM1ZGFhNWIxMTkuLmE0YTdiODhlMmRmYjAwMzQ2YmRj
MjcxZmViN2U1YjI0YmE4MjA5NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc01lbW9yeVN0b3JlLmgKQEAgLTk3LDkgKzk3LDkgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBjYWxjdWxhdGVBbmRTdWJtaXRUZWxlbWV0cnkoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZv
aWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1l
RG9tYWluJiwgT3B0aW9uYWw8RnJhbWVJRD4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlcXVlc3RT
dG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIEZyYW1lSUQs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VB
Y2Nlc3NTdGF0dXMpPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2VzcyhT
dWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBGcmFtZUlELCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJikgb3Zl
cnJpZGU7CisgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwg
Y29uc3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFp
biYmLCBUb3BGcmFtZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0
dXMpPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURv
bWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQp
PiYmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgbG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IE5hdmln
YXRlZFRvRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBjb25zdCBOYXZpZ2F0ZWRGcm9t
RG9tYWluJiwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlzTWFpbkZyYW1lKSBvdmVycmlkZTsKICAg
ICB2b2lkIGxvZ1VzZXJJbnRlcmFjdGlvbihjb25zdCBUb3BGcmFtZURvbWFpbiYpIG92ZXJyaWRl
OwpAQCAtMTIzLDcgKzEyMyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbmNyZW1lbnRSZWNvcmRz
RGVsZXRlZENvdW50Rm9yRG9tYWlucyhIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiYmKSBvdmVy
cmlkZTsKICAgICB2b2lkIHNldFByZXZhbGVudFJlc291cmNlKFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MmLCBSZXNvdXJjZUxvYWRQcmV2YWxlbmNlKTsKICAgICB1bnNpZ25lZCByZWN1cnNpdmVseUdl
dEFsbERvbWFpbnNUaGF0SGF2ZVJlZGlyZWN0ZWRUb1RoaXNEb21haW4oY29uc3QgUmVzb3VyY2VM
b2FkU3RhdGlzdGljcyYsIEhhc2hTZXQ8UmVkaXJlY3RlZFRvRG9tYWluPiYsIHVuc2lnbmVkIG51
bWJlck9mUmVjdXJzaXZlQ2FsbHMpIGNvbnN0OwotICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNz
SW50ZXJuYWwoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgT3B0aW9uYWw8RnJh
bWVJRD4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJv
bXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vz
c1dhc0dyYW50ZWQpPiYmKTsKKyAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFN1
YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNj
ZXNzUHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFn
ZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKTsKICAgICB2b2lkIG1hcmtBc1ByZXZhbGVudElmSGFzUmVk
aXJlY3RlZFRvUHJldmFsZW50KFJlc291cmNlTG9hZFN0YXRpc3RpY3MmKTsKICAgICBib29sIGlz
UHJldmFsZW50RHVlVG9EZWJ1Z01vZGUoUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpOwogICAgIFZl
Y3RvcjxSZWdpc3RyYWJsZURvbWFpbj4gZW5zdXJlUHJldmFsZW50UmVzb3VyY2VzRm9yRGVidWdN
b2RlKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgK
aW5kZXggNzBhY2JkY2U5NmY2NWNmODNhOTQ2MzdkM2ZiOGQxZTliMjY1NTNkZC4uMjA5NDVkYTA5
OGE2ODBhMGE0ZTk5NzdmZDc1MjQ3MGY2NzhkOTk1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0NsYXNzaWZpZXIuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgog
I2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgpAQCAtOTAsNyArOTEsNiBAQCBwdWJsaWM6CiAg
ICAgdXNpbmcgTmF2aWdhdGVkVG9Eb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsK
ICAgICB1c2luZyBEb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MgPSBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbjsKICAgICB1c2luZyBPcGVuZXJEb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbjsKLSAgICB1c2luZyBGcmFtZUlEID0gdWludDY0X3Q7CiAgICAgCiAgICAgdmlydHVh
bCB+UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKCk7CiAKQEAgLTE1OSw5ICsxNTksOSBAQCBw
dWJsaWM6CiAgICAgYm9vbCBpc0RlYnVnTW9kZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2Rl
YnVnTW9kZUVuYWJsZWQ7IH07CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVn
TW9kZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpOwogCi0gICAgdmlydHVhbCB2b2lkIGhhc1N0
b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYs
IE9wdGlvbmFsPEZyYW1lSUQ+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3RvcmFn
ZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBGcmFtZUlELCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNz
U3RhdHVzKT4mJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoU3Vi
RnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgRnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYs
IGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
PiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVE
b21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNz
U3RhdHVzKT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoU3Vi
RnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdh
c1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNH
cmFudGVkKT4mJikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGxvZ0ZyYW1lTmF2aWdhdGlvbihj
b25zdCBOYXZpZ2F0ZWRUb0RvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgY29uc3QgTmF2
aWdhdGVkRnJvbURvbWFpbiYsIGJvb2wgaXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFtZSkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb24oY29uc3QgVG9wRnJhbWVEb21h
aW4mKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUu
Y3BwCmluZGV4IDhjMjExNTdjYzdmNjkxN2JhOTcwODllMzZmMTY5ZDg2Y2Y4YjhhYjAuLjY3NWYw
ZGFmNTljZTliNGY4ODdiNzk0YmM4OTJlYzQ0YTgzNzU2ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCkBAIC0yODAsNyArMjgwLDcgQEAgdm9p
ZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NV
cGRhdGVkKFZlY3RvcjxXZWJDb3IKICAgICB9KTsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4s
IE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BG
cmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBQYWdlSWRlbnRp
ZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgQVNTRVJUKHN1YkZyYW1lRG9tYWluICE9IHRvcEZyYW1lRG9tYWluKTsK
ICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAtMzAxLDcgKzMwMSw3IEBAIHZvaWQg
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiBzCiAgICAgfSk7CiB9CiAKLWJvb2wgV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0
eURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKQorYm9vbCBX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlk
ZW50aWZpZXIgcGFnZUlEKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKQEAg
LTMxNCw3ICszMTQsNyBAQCBib29sIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFz
U3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNvbnN0IFJlZ2lzdHJhYmxlRAogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxIYXNTdG9y
YWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJj
ZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIHVpbnQ2
NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sIGhhc0FjY2Vzcyk+JiYgY2FsbGJhY2spCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZTo6Y2FsbEhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
Zmlyc3RQYXJ0eURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGhhc0FjY2Vzcyk+JiYgY2FsbGJh
Y2spCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtMzI4LDcgKzMyOCw3
IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsSGFzU3RvcmFnZUFj
Y2Vzc0ZvckZyYW1lSGFuZGxlcihjb25zdCBSCiAgICAgY2FsbGJhY2soZmFsc2UpOwogfQogCi12
b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3Mo
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwg
U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQg
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzcyhjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRl
ZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC0zOTEsNyArMzkxLDcgQEAgdm9p
ZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzVW5k
ZXJPcGVuZXIoUmVnaXN0cmFibGUKICAgICB9KTsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFp
biwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBTdG9yYWdlQWNjZXNz
UHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3Rv
cmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Z3Jh
bnRTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hv
d24gcHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dh
c0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBwb3N0VGFzayhbdGhp
cywgc3ViRnJhbWVEb21haW4gPSBzdWJGcmFtZURvbWFpbi5pc29sYXRlZENvcHkoKSwgdG9wRnJh
bWVEb21haW4gPSB0b3BGcmFtZURvbWFpbi5pc29sYXRlZENvcHkoKSwgZnJhbWVJRCwgcGFnZUlE
LCBwcm9tcHRXYXNTaG93biwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0oKSBtdXRhYmxlIHsKQEAgLTQxMCw3ICs0MTAsNyBAQCB2b2lkIFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJgogICAgIH0pOwogfQogCi1TdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCBXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBh
cnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFn
ZUlEKQorU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNl
RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQpCiB7CiAg
ICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtNDI3LDcgKzQyNyw3IEBAIFN0b3Jh
Z2VBY2Nlc3NXYXNHcmFudGVkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRT
dG9yYWdlQWNjZXNzKGNvbnN0CiAgICAgcmV0dXJuIGlzU3RvcmFnZUdyYW50ZWQgPyBTdG9yYWdl
QWNjZXNzV2FzR3JhbnRlZDo6WWVzIDogU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQ6Ok5vOwogfQog
Ci12b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEdyYW50U3RvcmFnZUFj
Y2Vzc0hhbmRsZXIoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPHVpbnQ2NF90PiBm
cmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3Rv
cmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxHcmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQs
IFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNj
ZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxv
b3A6OmlzTWFpbigpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZS5oCmluZGV4IDAyM2RjMjc3Y2Y1MDU0N2JmOTY4OWVjY2E0ODQ0ZDBlNjRhYjEzMmYuLjlk
YTFiNmJiNTIxNTIxYTAxMjQyMzRjZDQzMjcxMTU2ZjhjZTBiNWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIv
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNs
dWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFjY2Vzc1N0YXR1cy5oIgogI2lu
Y2x1ZGUgIldlYnNpdGVEYXRhVHlwZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlm
aWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVnaXN0cmFibGVEb21haW4uaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRs
ZXIuaD4KQEAgLTg5LDcgKzkwLDYgQEAgcHVibGljOgogICAgIHVzaW5nIE5hdmlnYXRlZFRvRG9t
YWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNpbmcgRG9tYWluSW5OZWVk
T2ZTdG9yYWdlQWNjZXNzID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNpbmcg
T3BlbmVyRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47Ci0gICAgdXNpbmcgRnJh
bWVJRCA9IHVpbnQ2NF90OwogICAgIHVzaW5nIFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkID0gV2Vi
Q29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQ7CiAgICAgdXNpbmcgU3RvcmFnZUFjY2Vzc1By
b21wdFdhc1Nob3duID0gV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOwogCkBA
IC0xMTEsNyArMTExLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2hvdWxkQ2xhc3NpZnlSZXNv
dXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKICAgICB2b2lkIHNldFNob3VsZFN1Ym1pdFRlbGVtZXRyeShib29sKTsKIAotICAg
IHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9w
RnJhbWVEb21haW4mLCBGcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgU3RvcmFnZUFj
Y2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NX
YXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKTsKKyAgICB2b2lkIGdy
YW50U3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9t
YWluJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3Jh
Z2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKTsKIAog
ICAgIHZvaWQgYXBwbGljYXRpb25XaWxsVGVybWluYXRlKCk7CiAKQEAgLTEyNSwxMSArMTI1LDEx
IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyVXNlckludGVyYWN0aW9uKGNvbnN0IFRvcEZyYW1l
RG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGRlbGV0ZVdl
YnNpdGVEYXRhRm9yUmVnaXN0cmFibGVEb21haW5zKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+
LCBIYXNoTWFwPFJlZ2lzdHJhYmxlRG9tYWluLCBXZWJzaXRlRGF0YVRvUmVtb3ZlPiYmLCBib29s
IHNob3VsZE5vdGlmeVBhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgSGFzaFNldDxS
ZWdpc3RyYWJsZURvbWFpbj4mKT4mJik7CiAgICAgdm9pZCByZWdpc3RyYWJsZURvbWFpbnNXaXRo
V2Vic2l0ZURhdGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIGJvb2wgc2hvdWxkTm90aWZ5
UGFnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiYm
KT4mJik7Ci0gICAgU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgZ3JhbnRTdG9yYWdlQWNjZXNzKGNv
bnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxGcmFt
ZUlEPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOworICAgIFN0b3JhZ2VBY2Nlc3NXYXNHcmFu
dGVkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZy
YW1lRG9tYWluJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIpOwogICAgIHZvaWQgaGFzSGFkVXNlckludGVyYWN0aW9uKGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAg
dm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJh
bWVEb21haW4mLCBPcHRpb25hbDxGcmFtZUlEPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotICAgIGJvb2wgaGFzU3RvcmFnZUFjY2Vz
c0ZvckZyYW1lKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBG
cmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7Ci0gICAgdm9pZCByZXF1ZXN0U3RvcmFn
ZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgRnJh
bWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3Rv
cmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYpOwor
ICAgIHZvaWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRv
cEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAg
IGJvb2wgaGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29u
c3QgVG9wRnJhbWVEb21haW4mLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZy
YW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3Jh
Z2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKTsKICAg
ICB2b2lkIHNldExhc3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgU2Vjb25kcywgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFByZXZhbGVudFJlc291cmNl
KGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ICAgICB2b2lkIHNldFZlcnlQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CkBAIC0xNzIsMTEgKzE3MiwxMSBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICAgICB2
b2lkIGxvZ1Rlc3RpbmdFdmVudChjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIGNhbGxHcmFudFN0
b3JhZ2VBY2Nlc3NIYW5kbGVyKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVE
b21haW4mLCBPcHRpb25hbDxGcmFtZUlEPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKTsKKyAgICB2b2lk
IGNhbGxHcmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29u
c3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNj
ZXNzV2FzR3JhbnRlZCk+JiYpOwogICAgIHZvaWQgcmVtb3ZlQWxsU3RvcmFnZUFjY2VzcyhDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgY2FsbFVwZGF0ZVByZXZhbGVudERv
bWFpbnNUb0Jsb2NrQ29va2llc0ZvckhhbmRsZXIoY29uc3QgUmVnaXN0cmFibGVEb21haW5zVG9C
bG9ja0Nvb2tpZXNGb3ImLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQg
Y2FsbFJlbW92ZURvbWFpbnNIYW5kbGVyKGNvbnN0IFZlY3RvcjxSZWdpc3RyYWJsZURvbWFpbj4m
KTsKLSAgICB2b2lkIGNhbGxIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKGNvbnN0IFN1
YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBGcmFtZUlELCBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9p
ZCBjYWxsSGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcihjb25zdCBTdWJGcmFtZURvbWFp
biYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAK
ICAgICB2b2lkIGRpZENyZWF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5o
CmluZGV4IDc5MzAxYjIwY2NjYWZlYjUyMTBkNzVhZDU3NDFmZDJkOTJlOGFjYWQuLjJjYmY0YzZl
ZTJiM2NjNTBiNTExN2NmMjZmMzEzYjE1MmM3MzkwZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaApA
QCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgICAgIFN0cmluZyB1c2VyQWdlbnQ7CiAgICAg
ICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRDsKICAgICAgICAgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgcGFnZUlEOwotICAgICAgICB1aW50NjRfdCBmcmFtZUlEOworICAgICAgICBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRDsKICAgICAgICAgV2ViQ29yZTo6U3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k7CiAgICAgfTsKICAgICB1c2luZyBD
b21wbGV0aW9uQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlJlc291
cmNlRXJyb3ImJik+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCAxZjEwMDRlMWI1
YmNkMzlkOGIxMjJkZjhjNmRhNDhkMTM3YzRiZTYxLi4wYzJjOTc2ZmVlMjBkMzI5YjQwN2UwNGRi
OTYyZmI2Nzk5YWY0MzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNTI1LDcg
KzUyNSw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvbnZlcnRNYWlu
UmVzb3VyY2VMb2FkVG9Eb3dubG9hZChQQUw6OlNlc3NpCiAgICAgbG9hZGVyLT5jb252ZXJ0VG9E
b3dubG9hZChkb3dubG9hZElELCByZXF1ZXN0LCByZXNwb25zZSk7CiB9CiAKLXZvaWQgTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNGb3JET00oUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNp
dGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlv
bmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVT
ZWN1cmVDb29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyBjb29raWVTdHJpbmcs
IGJvb2wgc2VjdXJlQ29va2llc0FjY2Vzc2VkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNGb3JET00oUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYg
c2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBm
cmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29v
a2llcyBpbmNsdWRlU2VjdXJlQ29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcg
Y29va2llU3RyaW5nLCBib29sIHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgYXV0byYgbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gc3RvcmFnZVNlc3Np
b24obmV0d29ya1Byb2Nlc3MoKSwgc2Vzc2lvbklEKTsKICAgICBhdXRvIHJlc3VsdCA9IG5ldHdv
cmtTdG9yYWdlU2Vzc2lvbi5jb29raWVzRm9yRE9NKGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywg
dXJsLCBmcmFtZUlELCBwYWdlSUQsIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKQEAgLTUzOCw3ICs1
MzgsNyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRm9yRE9N
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29ucwogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdU
Rk1vdmUocmVzdWx0LmZpcnN0KSwgcmVzdWx0LnNlY29uZCk7CiB9CiAKLXZvaWQgTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldENvb2tpZXNGcm9tRE9NKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVT
aXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0cmluZykK
K3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldENvb2tpZXNGcm9tRE9NKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1l
U2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJ
RCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpCiB7CiAgICAgYXV0byYgbmV0d29ya1N0b3Jh
Z2VTZXNzaW9uID0gc3RvcmFnZVNlc3Npb24obmV0d29ya1Byb2Nlc3MoKSwgc2Vzc2lvbklEKTsK
ICAgICBuZXR3b3JrU3RvcmFnZVNlc3Npb24uc2V0Q29va2llc0Zyb21ET00oZmlyc3RQYXJ0eSwg
c2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgY29va2llU3RyaW5nKTsKQEAgLTU1
NSwxMyArNTU1LDEzIEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tp
ZXNFbmFibGVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tCiAgICAgY29tcGxldGlvbkhh
bmRsZXIoc3RvcmFnZVNlc3Npb24obmV0d29ya1Byb2Nlc3MoKSwgc2Vzc2lvbklEKS5jb29raWVz
RW5hYmxlZCgpKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29v
a2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25z
dCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25z
dCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVz
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZywgYm9vbCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBP
cHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVy
PiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZywgYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgYXV0byByZXN1bHQgPSBzdG9yYWdlU2Vzc2lvbihuZXR3b3JrUHJvY2VzcygpLCBzZXNz
aW9uSUQpLmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGZpcnN0UGFydHksIHNhbWVTaXRl
SW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKICAgICBj
b21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdC5maXJzdCksIHJlc3VsdC5zZWNvbmQpOwog
fQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXRSYXdDb29raWVzKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1l
U2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90
PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Z2V0UmF3Q29va2llcyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNp
dGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50
aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gcmVzdWx0OwogICAgIHN0b3Jh
Z2VTZXNzaW9uKG5ldHdvcmtQcm9jZXNzKCksIHNlc3Npb25JRCkuZ2V0UmF3Q29va2llcyhmaXJz
dFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlELCByZXN1bHQpOwpAQCAt
NjcwLDcgKzY3MCw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmVuc3Vy
ZUxlZ2FjeVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQogfQogCiAjaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJl
bW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2
NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdl
SUQpCiB7CiAgICAgaWYgKGF1dG8qIHN0b3JhZ2VTZXNzaW9uID0gbmV0d29ya1Byb2Nlc3MoKS5z
dG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQogICAgICAgICBzdG9yYWdlU2Vzc2lvbi0+cmVtb3Zl
U3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGZyYW1lSUQsIHBhZ2VJRCk7CkBAIC03MjgsNyArNzI4LDcg
QEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVzb3VyY2VMb2FkU3RhdGlz
dGljc1VwZGF0ZWQoVmVjdG9yPFdlYkNvcmUKICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy0+cmVzb3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0ZWQoV1RGTW92ZShzdGF0aXN0aWNzKSk7CiB9
CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Omhhc1N0b3JhZ2VBY2Nlc3Mo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJh
bWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgdWludDY0
X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6aGFzU3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZp
ZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IG5ldHdvcmtQcm9jZXNzKCku
bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewogICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VM
b2FkU3RhdGlzdGljcyA9IG5ldHdvcmtTZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkp
IHsKQEAgLTc0MCw3ICs3NDAsNyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpoYXNTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYwogICAgIGNvbXBs
ZXRpb25IYW5kbGVyKHRydWUpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdl
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50
ZWQgd2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21w
dFdhc1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdl
SWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFn
ZUFjY2Vzc1dhc0dyYW50ZWQgd2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21w
dFdhc1Nob3duIHByb21wdFdhc1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBp
ZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSBuZXR3b3JrUHJvY2VzcygpLm5ldHdvcmtTZXNzaW9u
KHNlc3Npb25JRCkpIHsKICAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3Mg
PSBuZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmgKaW5kZXggOTI4NjczM2M0YjdjNzUxMmMyOWM1MzI0MzgyMWQwZWUxZWM3MTMw
OS4uMjU1MDg0ZjkyMzFmZWE4MzA4MDA5OGQzNTkzMDU3YTFiZDkwN2M1MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIk5ldHdvcmtSVENQcm92
aWRlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRNYXAuaCIKICNpbmNsdWRlICJX
ZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVu
dGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrTG9hZEluZm9ybWF0aW9uLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHJv
Y2Vzc0lkZW50aWZpZXIuaD4KQEAgLTE3NCwxMSArMTc1LDExIEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBzdGFydERvd25sb2FkKFBBTDo6U2Vzc2lvbklELCBEb3dubG9hZElELCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUgPSB7IH0pOwog
ICAgIHZvaWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFBBTDo6U2Vzc2lvbklE
LCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgRG93bmxvYWRJRCwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYpOwogCi0gICAgdm9pZCBjb29raWVzRm9yRE9NKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9w
dGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmll
cj4sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgc2VjdXJlQ29va2llc0FjY2Vzc2VkKT4mJik7Ci0g
ICAgdm9pZCBzZXRDb29raWVzRnJvbURPTShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBj
b25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGNvb2tpZXNGb3JET00oUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3Qg
VVJMJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8V2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcywgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChTdHJpbmcgY29va2llU3RyaW5nLCBib29sIHNlY3VyZUNvb2tpZXNB
Y2Nlc3NlZCk+JiYpOworICAgIHZvaWQgc2V0Q29va2llc0Zyb21ET00oUEFMOjpTZXNzaW9uSUQs
IGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29u
c3QgVVJMJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8V2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXI+LCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGNvb2tpZXNF
bmFibGVkKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsK
LSAgICB2b2lkIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0
IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdl
SWRlbnRpZmllcj4sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgc2VjdXJlQ29va2llc0FjY2Vzc2Vk
KT4mJik7Ci0gICAgdm9pZCBnZXRSYXdDb29raWVzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9w
dGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmll
cj4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJik+JiYp
OworICAgIHZvaWQgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQs
IGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29u
c3QgVVJMJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8V2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcywgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcgY29va2llU3RyaW5nLCBib29sIHNlY3VyZUNvb2tp
ZXNBY2Nlc3NlZCk+JiYpOworICAgIHZvaWQgZ2V0UmF3Q29va2llcyhQQUw6OlNlc3Npb25JRCwg
Y29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25z
dCBVUkwmLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcj4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNv
cmU6OkNvb2tpZT4mJik+JiYpOwogICAgIHZvaWQgZGVsZXRlQ29va2llKFBBTDo6U2Vzc2lvbklE
LCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUpOwogCiAgICAgdm9pZCByZWdp
c3RlckZpbGVCbG9iVVJMKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcm
IHBhdGgsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRU
eXBlKTsKQEAgLTIxOCw3ICsyMTksNyBAQCBwcml2YXRlOgogICAgIENhY2hlU3RvcmFnZUVuZ2lu
ZUNvbm5lY3Rpb24mIGNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oKTsKIAogI2lmIEVOQUJMRShSRVNP
VVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgdm9pZCByZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJh
bWUoUEFMOjpTZXNzaW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyKTsKKyAgICB2b2lkIHJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShQQUw6OlNlc3Npb25J
RCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAg
ICAgdm9pZCBjbGVhclBhZ2VTcGVjaWZpY0RhdGFGb3JSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKFBB
TDo6U2Vzc2lvbklELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAKICAgICB2b2lkIGxvZ1Vz
ZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mKTsK
QEAgLTIyNiw4ICsyMjcsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgbG9nU3VicmVzb3VyY2VMb2Fk
aW5nKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdGFyZ2V0RG9tYWlu
LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIFdhbGxUaW1lIGxhc3RT
ZWVuKTsKICAgICB2b2lkIGxvZ1N1YnJlc291cmNlUmVkaXJlY3QoUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiB0YXJnZXREb21haW4pOwogICAgIHZvaWQgcmVzb3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0
ZWQoVmVjdG9yPFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M+JiYpOwotICAgIHZvaWQg
aGFzU3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4s
IHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKTsKLSAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3Rv
cmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93
bik+JiYpOworICAgIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQg
cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9t
YWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBX
ZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKTsKICAgICB2b2lkIHJlcXVl
c3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluJiYgZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzLCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciBvcGVuZXJQYWdlSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgb3Bl
bmVyRG9tYWluKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbgppbmRleCA0YjExODliMzljY2ViYzhmYjIyNmY4ZmVlMDM0MjhjNmM4NWFkN2EzLi45
OWFiZDA3OGZiMTRjOWYzMGJlOWM4NzYwM2ExM2Q5MWJkNzlhOWNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTM0LDExICszNCwxMSBAQCBtZXNzYWdl
cyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAg
U3RhcnREb3dubG9hZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktpdDo6RG93bmxvYWRJ
RCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIHN1
Z2dlc3RlZE5hbWUpCiAgICAgQ29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIs
IFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSkKIAotICAgIENvb2tp
ZXNGb3JET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgZmlyc3RQYXJ0eSwgc3RydWN0
IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPHVp
bnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlE
LCBlbnVtOmJvb2wgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNv
b2tpZXMpIC0+IChTdHJpbmcgY29va2llU3RyaW5nLCBib29sIGRpZEFjY2Vzc1NlY3VyZUNvb2tp
ZXMpIFN5bmNocm9ub3VzCi0gICAgU2V0Q29va2llc0Zyb21ET00oUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1l
U2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBTdHJpbmcgY29va2llU3RyaW5nKQorICAg
IENvb2tpZXNGb3JET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgZmlyc3RQYXJ0eSwg
c3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlv
bmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6
UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgZW51bTpib29sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVD
b29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSAtPiAoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9v
bCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzKSBTeW5jaHJvbm91cworICAgIFNldENvb2tpZXNGcm9t
RE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJD
b3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25hbDxXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyPiBwYWdlSUQsIFN0cmluZyBjb29raWVTdHJpbmcpCiAgICAgQ29va2llc0VuYWJsZWQoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoYm9vbCBlbmFibGVkKSBTeW5jaHJvbm91cwotICAg
IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
VVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZv
LCBVUkwgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6
UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgZW51bTpib29sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVD
b29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSAtPiAoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9v
bCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzKSBTeW5jaHJvbm91cwotICAgIEdldFJhd0Nvb2tpZXMo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6
OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBm
cmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlEKSAtPiAoVmVj
dG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykgU3luY2hyb25vdXMKKyAgICBDb29raWVSZXF1
ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBh
cnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwg
T3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBlbnVtOmJvb2wgV2ViQ29yZTo6SW5jbHVkZVNl
Y3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIC0+IChTdHJpbmcgY29va2llU3RyaW5n
LCBib29sIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMpIFN5bmNocm9ub3VzCisgICAgR2V0UmF3Q29v
a2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2Vi
Q29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8V2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRp
Zmllcj4gcGFnZUlEKSAtPiAoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykgU3luY2hy
b25vdXMKICAgICBEZWxldGVDb29raWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgdXJs
LCBTdHJpbmcgY29va2llTmFtZSkKIAogICAgIFJlZ2lzdGVyRmlsZUJsb2JVUkwoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBVUkwgdXJsLCBTdHJpbmcgcGF0aCwgV2ViS2l0OjpTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGUgZXh0ZW5zaW9uSGFuZGxlLCBTdHJpbmcgY29udGVudFR5cGUpCkBAIC01
OCwxNSArNTgsMTUgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mg
TGVnYWN5UmVjZWl2ZXIgewogICAgIEVuc3VyZUxlZ2FjeVByaXZhdGVCcm93c2luZ1Nlc3Npb24o
KQogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLSAgICBSZW1vdmVTdG9y
YWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBmcmFt
ZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpOworICAgIFJlbW92ZVN0b3JhZ2VB
Y2Nlc3NGb3JGcmFtZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpOwogICAgIENs
ZWFyUGFnZVNwZWNpZmljRGF0YUZvclJlc291cmNlTG9hZFN0YXRpc3RpY3MoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpOwogICAgIExvZ1Vz
ZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluIGRvbWFpbikKICAgICBMb2dXZWJTb2NrZXRMb2FkaW5nKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFyZ2V0RG9tYWluLCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgV2FsbFRpbWUgbGFzdFNlZW4p
CiAgICAgTG9nU3VicmVzb3VyY2VMb2FkaW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFyZ2V0RG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgV2FsbFRpbWUgbGFzdFNlZW4pCiAgICAgTG9nU3VicmVz
b3VyY2VSZWRpcmVjdChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluIHNvdXJjZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFyZ2V0
RG9tYWluKQogICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVkKFZlY3RvcjxXZWJDb3Jl
OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPiBzdGF0aXN0aWNzKQotICAgIEhhc1N0b3JhZ2VBY2Nl
c3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBz
dWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4s
IHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkgLT4gKGJv
b2wgaGFzU3RvcmFnZUFjY2VzcykgQXN5bmMKLSAgICBSZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkZyYW1l
RG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgdWludDY0
X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKSAtPiAoZW51bTpib29s
IFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIHdhc0dyYW50ZWQsIGVudW06Ym9vbCBX
ZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24pIEFzeW5j
CisgICAgSGFzU3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkgLT4gKGJvb2wgaGFzU3RvcmFnZUFjY2Vzcykg
QXN5bmMKKyAgICBSZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkgLT4gKGVudW06Ym9vbCBXZWJD
b3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCB3YXNHcmFudGVkLCBlbnVtOmJvb2wgV2ViQ29y
ZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duKSBBc3luYwogICAg
IFJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3Ms
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIG9wZW5lclBhZ2VJRCwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4gb3BlbmVyRG9tYWluKQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcAppbmRleCA0MDk3MTRkNjY3MjZh
ODQ3NGFmZjI5YTE2MDgxN2YyNDc5NjdiMDE2Li4xMTc2ZjUzN2E4NTgwOWI0YmFlMWNlNzY4YjU2
NTM1YjE1ZDVlYmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZENoZWNrZXIuY3BwCkBAIC00OCw3ICs0OCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9v
bCBpc1NhbWVPcmlnaW4oY29uc3QgVVJMJiB1cmwsIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBvcmln
aW4pCiAgICAgcmV0dXJuIHVybC5wcm90b2NvbElzRGF0YSgpIHx8IHVybC5wcm90b2NvbElzQmxv
YigpIHx8ICFvcmlnaW4gfHwgb3JpZ2luLT5jYW5SZXF1ZXN0KHVybCk7CiB9CiAKLU5ldHdvcmtM
b2FkQ2hlY2tlcjo6TmV0d29ya0xvYWRDaGVja2VyKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJv
Y2VzcywgRmV0Y2hPcHRpb25zJiYgb3B0aW9ucywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIEhUVFBIZWFkZXJNYXAmJiBv
cmlnaW5hbFJlcXVlc3RIZWFkZXJzLCBVUkwmJiB1cmwsIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4m
JiBzb3VyY2VPcmlnaW4sIFByZWZsaWdodFBvbGljeSBwcmVmbGlnaHRQb2xpY3ksIFN0cmluZyYm
IHJlZmVycmVyLCBib29sIGlzSFRUUFNVcGdyYWRlRW5hYmxlZCwgYm9vbCBzaG91bGRDYXB0dXJl
RXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MsIExvYWRUeXBlIHJlcXVlc3RMb2FkVHlwZSkKK05ldHdv
cmtMb2FkQ2hlY2tlcjo6TmV0d29ya0xvYWRDaGVja2VyKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3Jr
UHJvY2VzcywgRmV0Y2hPcHRpb25zJiYgb3B0aW9ucywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBIVFRQSGVh
ZGVyTWFwJiYgb3JpZ2luYWxSZXF1ZXN0SGVhZGVycywgVVJMJiYgdXJsLCBSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+JiYgc291cmNlT3JpZ2luLCBQcmVmbGlnaHRQb2xpY3kgcHJlZmxpZ2h0UG9saWN5
LCBTdHJpbmcmJiByZWZlcnJlciwgYm9vbCBpc0hUVFBTVXBncmFkZUVuYWJsZWQsIGJvb2wgc2hv
dWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzLCBMb2FkVHlwZSByZXF1ZXN0TG9hZFR5
cGUpCiAgICAgOiBtX29wdGlvbnMoV1RGTW92ZShvcHRpb25zKSkKICAgICAsIG1fc2Vzc2lvbklE
KHNlc3Npb25JRCkKICAgICAsIG1fbmV0d29ya1Byb2Nlc3MobmV0d29ya1Byb2Nlc3MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaAppbmRl
eCAwNzcwNjQ2NzBmY2JiOWFjOTQyZjhkODYxODEwNDk1OWYwMGUwNTc4Li5lYzk0ZTE0Njk1MzNk
N2Q5ODc4MTZiYjI2YjE3ZGZiMjNiOTQzZmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9Db250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0ZldGNoT3B0aW9ucy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrTG9hZEluZm9ybWF0aW9uLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJv
ci5oPgpAQCAtNTUsNyArNTYsNyBAQCBjbGFzcyBOZXR3b3JrTG9hZENoZWNrZXIgOiBwdWJsaWMg
Q2FuTWFrZVdlYWtQdHI8TmV0d29ya0xvYWRDaGVja2VyPiB7CiBwdWJsaWM6CiAgICAgZW51bSBj
bGFzcyBMb2FkVHlwZSA6IGJvb2wgeyBNYWluRnJhbWUsIE90aGVyIH07CiAKLSAgICBOZXR3b3Jr
TG9hZENoZWNrZXIoTmV0d29ya1Byb2Nlc3MmLCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmJiwgUEFM
OjpTZXNzaW9uSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBX
ZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiYsIFVSTCYmLCBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4+JiYsIFdlYkNvcmU6OlByZWZsaWdodFBvbGljeSwgU3RyaW5nJiYgcmVmZXJyZXIsIGJv
b2wgaXNIVFRQU1VwZ3JhZGVFbmFibGVkID0gZmFsc2UsIGJvb2wgc2hvdWxkQ2FwdHVyZUV4dHJh
TmV0d29ya0xvYWRNZXRyaWNzID0gZmFsc2UsIExvYWRUeXBlIHJlcXVlc3RMb2FkVHlwZSA9IExv
YWRUeXBlOjpPdGhlcik7CisgICAgTmV0d29ya0xvYWRDaGVja2VyKE5ldHdvcmtQcm9jZXNzJiwg
V2ViQ29yZTo6RmV0Y2hPcHRpb25zJiYsIFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFw
JiYsIFVSTCYmLCBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYsIFdlYkNvcmU6OlBy
ZWZsaWdodFBvbGljeSwgU3RyaW5nJiYgcmVmZXJyZXIsIGJvb2wgaXNIVFRQU1VwZ3JhZGVFbmFi
bGVkID0gZmFsc2UsIGJvb2wgc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzID0g
ZmFsc2UsIExvYWRUeXBlIHJlcXVlc3RMb2FkVHlwZSA9IExvYWRUeXBlOjpPdGhlcik7CiAgICAg
fk5ldHdvcmtMb2FkQ2hlY2tlcigpOwogCiAgICAgc3RydWN0IFJlZGlyZWN0aW9uVHJpcGxldCB7
CkBAIC0xMjcsNyArMTI4LDcgQEAgcHJpdmF0ZToKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Np
b25JRDsKICAgICBSZWY8TmV0d29ya1Byb2Nlc3M+IG1fbmV0d29ya1Byb2Nlc3M7CiAgICAgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgbV9wYWdlSUQ7Ci0gICAgdWludDY0X3QgbV9mcmFtZUlEOwor
ICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX2ZyYW1lSUQ7CiAgICAgV2ViQ29yZTo6SFRU
UEhlYWRlck1hcCBtX29yaWdpbmFsUmVxdWVzdEhlYWRlcnM7IC8vIE5lZWRlZCBmb3IgQ09SUyBj
aGVja3MuCiAgICAgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCBtX2ZpcnN0UmVxdWVzdEhlYWRlcnM7
IC8vIE5lZWRlZCBmb3IgQ09SUyBjaGVja3MuCiAgICAgVVJMIG1fdXJsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKaW5kZXgg
YzQzZTVkY2Q3NTAxMWE1NTkxZTZlNjgyNzI0YzFhNjk1NjVlY2YxNy4uYjhmN2QxMzllMzFlYzVj
ODI3MTM1ZTM3MzBiN2IwZDllZjBhNDYxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCkBAIC0yNyw2ICsyNyw3IEBACiAK
ICNpbmNsdWRlICJOZXR3b3JrQWN0aXZpdHlUcmFja2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9C
bG9iRGF0YUZpbGVSZWZlcmVuY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmll
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VS
ZXF1ZXN0Lmg+CkBAIC00Niw3ICs0Nyw3IEBAIHB1YmxpYzoKIAogICAgIFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRDsKICAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQ7Ci0gICAg
dWludDY0X3Qgd2ViRnJhbWVJRCB7IDAgfTsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
d2ViRnJhbWVJRDsKICAgICBXVEY6OlByb2Nlc3NJRCBwYXJlbnRQSUQgeyAwIH07CiAgICAgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Q7CiAgICAgV2ViQ29yZTo6Q29udGVudFNuaWZm
aW5nUG9saWN5IGNvbnRlbnRTbmlmZmluZ1BvbGljeSB7IFdlYkNvcmU6OkNvbnRlbnRTbmlmZmlu
Z1BvbGljeTo6U25pZmZDb250ZW50IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmgKaW5kZXggYTkyYjcyNDFlYjI5OGVhNjZjNWE4YTI4NDc0ZjQwM2U1
N2U0NWMzOS4uYzIzNjNkZDExMzVmN2UyYmZhMDMyOWVkZjI2MmEyNWJlZTIyYjNjNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMTM3LDcg
KzEzNyw2IEBAIHB1YmxpYzoKICAgICB1c2luZyBOYXZpZ2F0ZWRUb0RvbWFpbiA9IFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluOwogICAgIHVzaW5nIERvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2Vz
cyA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwogICAgIHVzaW5nIE9wZW5lckRvbWFpbiA9
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwotICAgIHVzaW5nIEZyYW1lSUQgPSB1aW50NjRf
dDsKIAogICAgIE5ldHdvcmtQcm9jZXNzKEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBh
cmFtZXRlcnMmJik7CiAgICAgfk5ldHdvcmtQcm9jZXNzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggNDc4
MmVmMTVmM2RlZWU1YWY0ZWFlZjA1Y2RmNjAzNmFlN2U2ZDJmYi4uZWM2YTgwYzg0ODlkZWYzMmQ3
ODliNzRiZWMxMjczNTdiZWM1NTgzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApAQCAtMTgwLDE4ICsxODAsMTgg
QEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KCkKIAogICAgICAgICAgICAgV1RG
Ojpzd2l0Y2hPbihyZXN1bHQsCiAgICAgICAgICAgICAgICAgW3RoaXNdIChSZXNvdXJjZUVycm9y
JiBlcnJvcikgewotICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJz
dGFydDogZXJyb3IgY2hlY2tpbmcgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwg
aXNTeW5jaHJvbm91cyA9ICVkLCBwYXJlbnRQSUQgPSAlZCwgZXJyb3IuZG9tYWluID0gJXtwdWJs
aWN9cywgZXJyb3IuY29kZSA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQo
KSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCB0aGlz
LT5pc01haW5SZXNvdXJjZSgpLCB0aGlzLT5pc1N5bmNocm9ub3VzKCksIG1fcGFyYW1ldGVycy5w
YXJlbnRQSUQsIGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCksIGVycm9yLmVycm9yQ29kZSgp
KTsKKyAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6IGVy
cm9yIGNoZWNraW5nIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAi
LCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hy
b25vdXMgPSAlZCwgcGFyZW50UElEID0gJWQsIGVycm9yLmRvbWFpbiA9ICV7cHVibGljfXMsIGVy
cm9yLmNvZGUgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFy
YW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCB0
aGlzLT5pc01haW5SZXNvdXJjZSgpLCB0aGlzLT5pc1N5bmNocm9ub3VzKCksIG1fcGFyYW1ldGVy
cy5wYXJlbnRQSUQsIGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCksIGVycm9yLmVycm9yQ29k
ZSgpKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFlcnJvci5pc0NhbmNlbGxhdGlvbigpKQog
ICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy0+ZGlkRmFpbExvYWRpbmcoZXJyb3IpOwogICAg
ICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgW3RoaXNdIChOZXR3b3JrTG9hZENoZWNr
ZXI6OlJlZGlyZWN0aW9uVHJpcGxldCYgdHJpcGxldCkgewogICAgICAgICAgICAgICAgICAgICB0
aGlzLT5tX2lzV2FpdGluZ0NvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0Rm9yQ2FjaGVkUmVkaXJlY3Qg
PSB0cnVlOwogICAgICAgICAgICAgICAgICAgICB0aGlzLT53aWxsU2VuZFJlZGlyZWN0ZWRSZXF1
ZXN0KFdURk1vdmUodHJpcGxldC5yZXF1ZXN0KSwgV1RGTW92ZSh0cmlwbGV0LnJlZGlyZWN0UmVx
dWVzdCksIFdURk1vdmUodHJpcGxldC5yZWRpcmVjdFJlc3BvbnNlKSk7Ci0gICAgICAgICAgICAg
ICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0OiBzeW50aGV0aWMgcmVkaXJlY3Qg
c2VudCBiZWNhdXNlIHJlcXVlc3QgVVJMIHdhcyBtb2RpZmllZCAocGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01h
aW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQsIHBhcmVudFBJRCA9ICVkKSIsIG1f
cGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQs
IG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCB0aGlzLT5pc01haW5SZXNvdXJjZSgpLCB0aGlzLT5p
c1N5bmNocm9ub3VzKCksIG1fcGFyYW1ldGVycy5wYXJlbnRQSUQpOworICAgICAgICAgICAgICAg
ICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydDogc3ludGhldGljIHJlZGlyZWN0IHNl
bnQgYmVjYXVzZSByZXF1ZXN0IFVSTCB3YXMgbW9kaWZpZWQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWlu
UmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkLCBwYXJlbnRQSUQgPSAlZCkiLCBtX3Bh
cmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRv
VUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCB0aGlzLT5pc01haW5SZXNvdXJjZSgp
LCB0aGlzLT5pc1N5bmNocm9ub3VzKCksIG1fcGFyYW1ldGVycy5wYXJlbnRQSUQpOwogICAgICAg
ICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgW3RoaXNdIChSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMtPmNhblVzZUNhY2hlKHJlcXVl
c3QpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJz
dGFydDogQ2hlY2tpbmcgY2FjaGUgZm9yIHJlc291cmNlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJl
c291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCwgcGFyZW50UElEID0gJWQpIiwgbV9wYXJh
bWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9w
YXJhbWV0ZXJzLmlkZW50aWZpZXIsIHRoaXMtPmlzTWFpblJlc291cmNlKCksIHRoaXMtPmlzU3lu
Y2hyb25vdXMoKSwgbV9wYXJhbWV0ZXJzLnBhcmVudFBJRCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydDogQ2hlY2tpbmcgY2FjaGUgZm9yIHJl
c291cmNlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNv
dXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMg
PSAlZCwgcGFyZW50UElEID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgp
LCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRp
ZmllciwgdGhpcy0+aXNNYWluUmVzb3VyY2UoKSwgdGhpcy0+aXNTeW5jaHJvbm91cygpLCBtX3Bh
cmFtZXRlcnMucGFyZW50UElEKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMtPnJldHJp
ZXZlQ2FjaGVFbnRyeShyZXF1ZXN0KTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgICAgICAgICAgICAgfQpAQCAtMjA0LDcgKzIwNCw3IEBAIHZvaWQgTmV0d29ya1Jl
c291cmNlTG9hZGVyOjpzdGFydCgpCiAgICAgfQogICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhhdCBj
b2RlIHBhdGggb25jZSBtX25ldHdvcmtMb2FkQ2hlY2tlciBpcyB1c2VkIGZvciBhbGwgbmV0d29y
ayBsb2Fkcy4KICAgICBpZiAoY2FuVXNlQ2FjaGUob3JpZ2luYWxSZXF1ZXN0KCkpKSB7Ci0gICAg
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0OiBDaGVja2luZyBjYWNoZSBmb3IgcmVz
b3VyY2UgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9
ICVkLCBwYXJlbnRQSUQgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCks
IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWlu
UmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpLCBtX3BhcmFtZXRlcnMucGFyZW50UElEKTsKKyAg
ICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6IENoZWNraW5nIGNhY2hlIGZvciBy
ZXNvdXJjZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3Vz
ID0gJWQsIHBhcmVudFBJRCA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQo
KSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50
aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSwgbV9wYXJhbWV0ZXJzLnBh
cmVudFBJRCk7CiAgICAgICAgIHJldHJpZXZlQ2FjaGVFbnRyeShvcmlnaW5hbFJlcXVlc3QoKSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yNDQsNyArMjQ0LDcgQEAgdm9pZCBOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRyeShjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QpCiAgICAgICAgIGxvZ1Nsb3dDYWNoZVJldHJpZXZlSWZOZWVkZWQoaW5mbyk7CiAK
ICAgICAgICAgaWYgKCFlbnRyeSkgewotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RCgicmV0cmlldmVDYWNoZUVudHJ5OiBSZXNvdXJjZSBub3QgaW4gY2FjaGUgKHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQg
IiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVy
cy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1l
dGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOworICAg
ICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNoZUVudHJ5OiBSZXNv
dXJjZSBub3QgaW4gY2FjaGUgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNT
eW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9w
YXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIs
IGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CiAgICAgICAgICAgICBzdGFydE5l
dHdvcmtMb2FkKFdURk1vdmUocmVxdWVzdCksIEZpcnN0TG9hZDo6WWVzKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQpAQCAtMjU2LDcgKzI1Niw3IEBAIHZvaWQgTmV0d29ya1Jlc291
cmNlTG9hZGVyOjpyZXRyaWV2ZUNhY2hlRW50cnlJbnRlcm5hbChzdGQ6OnVuaXF1ZV9wdHI8TmV0
d29ya0NhCiB7CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBpZiAo
ZW50cnktPmhhc1JlYWNoZWRQcmV2YWxlbnRSZXNvdXJjZUFnZUNhcCgpKSB7Ci0gICAgICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogUmVzb3VyY2UgaGFzIHJl
YWNoZWQgcHJldmFsZW50IHJlc291cmNlIGFnZSBjYXAgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVz
b3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQu
dG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlm
aWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOworICAgICAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJlc291cmNlIGhhcyByZWFjaGVk
IHByZXZhbGVudCByZXNvdXJjZSBhZ2UgY2FwIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNl
ID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUlu
dDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5p
ZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOwogICAgICAgICBt
X2NhY2hlRW50cnlGb3JNYXhBZ2VDYXBWYWxpZGF0aW9uID0gV1RGTW92ZShlbnRyeSk7CiAgICAg
ICAgIFJlc291cmNlUmVxdWVzdCByZXZhbGlkYXRpb25SZXF1ZXN0ID0gb3JpZ2luYWxSZXF1ZXN0
KCk7CiAgICAgICAgIHN0YXJ0TmV0d29ya0xvYWQoV1RGTW92ZShyZXZhbGlkYXRpb25SZXF1ZXN0
KSwgRmlyc3RMb2FkOjpZZXMpOwpAQCAtMjY0LDI4ICsyNjQsMjggQEAgdm9pZCBOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRyeUludGVybmFsKHN0ZDo6dW5pcXVlX3B0cjxO
ZXR3b3JrQ2EKICAgICB9CiAjZW5kaWYKICAgICBpZiAoZW50cnktPnJlZGlyZWN0UmVxdWVzdCgp
KSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTog
SGFuZGxpbmcgcmVkaXJlY3QgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNT
eW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9w
YXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNv
dXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KCJyZXRyaWV2ZUNhY2hlRW50cnk6IEhhbmRsaW5nIHJlZGlyZWN0IChwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlz
TWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2Vi
UGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1f
cGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkp
OwogICAgICAgICBkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdEZvckNhY2hlRW50cnkoV1RGTW92ZShy
ZXF1ZXN0KSwgV1RGTW92ZShlbnRyeSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlm
IChtX3BhcmFtZXRlcnMubmVlZHNDZXJ0aWZpY2F0ZUluZm8gJiYgIWVudHJ5LT5yZXNwb25zZSgp
LmNlcnRpZmljYXRlSW5mbygpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJl
dHJpZXZlQ2FjaGVFbnRyeTogUmVzb3VyY2UgZG9lcyBub3QgaGF2ZSByZXF1aXJlZCBjZXJ0aWZp
Y2F0ZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3Vy
Y2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0g
JWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2Vi
RnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3lu
Y2hyb25vdXMoKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2Fj
aGVFbnRyeTogUmVzb3VyY2UgZG9lcyBub3QgaGF2ZSByZXF1aXJlZCBjZXJ0aWZpY2F0ZSAocGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUi
IFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9w
YXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50
b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNT
eW5jaHJvbm91cygpKTsKICAgICAgICAgc3RhcnROZXR3b3JrTG9hZChXVEZNb3ZlKHJlcXVlc3Qp
LCBGaXJzdExvYWQ6Olllcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKGVudHJ5
LT5uZWVkc1ZhbGlkYXRpb24oKSB8fCByZXF1ZXN0LmNhY2hlUG9saWN5KCkgPT0gV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xpY3k6OlJlZnJlc2hBbnlDYWNoZURhdGEpIHsKLSAgICAg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNoZUVudHJ5OiBWYWxpZGF0aW5n
IGNhY2hlIGVudHJ5IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAi
LCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hy
b25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1l
dGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2Uo
KSwgaXNTeW5jaHJvbm91cygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0
cmlldmVDYWNoZUVudHJ5OiBWYWxpZGF0aW5nIGNhY2hlIGVudHJ5IChwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlz
TWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2Vi
UGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1f
cGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkp
OwogICAgICAgICB2YWxpZGF0ZUNhY2hlRW50cnkoV1RGTW92ZShlbnRyeSkpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVF
bnRyeTogUmV0cmlldmVkIHJlc291cmNlIGZyb20gY2FjaGUgKHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWlu
UmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdl
SUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVu
dGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOworICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogUmV0cmlldmVkIHJlc291cmNlIGZy
b20gY2FjaGUgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJl
c291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91
cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJz
LndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJl
c291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CiAgICAgZGlkUmV0cmlldmVDYWNoZUVudHJ5KFdU
Rk1vdmUoZW50cnkpKTsKIH0KIAogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0TmV0
d29ya0xvYWQoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgRmlyc3RMb2FkIGxvYWQpCiB7CiAg
ICAgaWYgKGxvYWQgPT0gRmlyc3RMb2FkOjpZZXMpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgic3RhcnROZXR3b3JrTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2Ug
PSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50
NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBp
c01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOworICAgICAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKCJzdGFydE5ldHdvcmtMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJj
ZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJ
bnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMu
aWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKIAogICAgICAg
ICBjb25zdW1lU2FuZGJveEV4dGVuc2lvbnMoKTsKIApAQCAtMzA4LDcgKzMwOCw3IEBAIHZvaWQg
TmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydE5ldHdvcmtMb2FkKFJlc291cmNlUmVxdWVzdCYm
IHJlcXVlc3QsIEZpcnN0TG9hCiAgICAgfQogICAgIGlmICghbmV0d29ya1Nlc3Npb24pIHsKICAg
ICAgICAgV1RGTG9nQWx3YXlzKCJBdHRlbXB0ZWQgdG8gY3JlYXRlIGEgTmV0d29ya0xvYWQgd2l0
aCBhIHNlc3Npb24gKGlkPSUiIFBSSXU2NCAiKSB0aGF0IGRvZXMgbm90IGV4aXN0LiIsIHBhcmFt
ZXRlcnMuc2Vzc2lvbklELnNlc3Npb25JRCgpKTsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Jf
SUZfQUxMT1dFRCgic3RhcnROZXR3b3JrTG9hZDogQXR0ZW1wdGVkIHRvIGNyZWF0ZSBhIE5ldHdv
cmtMb2FkIHdpdGggYSBzZXNzaW9uIHRoYXQgZG9lcyBub3QgZXhpc3QgKHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwg
c2Vzc2lvbklEPSUiIFBSSXU2NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQo
KSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBwYXJh
bWV0ZXJzLnNlc3Npb25JRC5zZXNzaW9uSUQoKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
X0lGX0FMTE9XRUQoInN0YXJ0TmV0d29ya0xvYWQ6IEF0dGVtcHRlZCB0byBjcmVhdGUgYSBOZXR3
b3JrTG9hZCB3aXRoIGEgc2Vzc2lvbiB0aGF0IGRvZXMgbm90IGV4aXN0IChwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIs
IHNlc3Npb25JRD0lIiBQUkl1NjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0
KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVu
dGlmaWVyLCBwYXJhbWV0ZXJzLnNlc3Npb25JRC5zZXNzaW9uSUQoKSk7CiAgICAgICAgIG1fY29u
bmVjdGlvbi0+bmV0d29ya1Byb2Nlc3MoKS5sb2dEaWFnbm9zdGljTWVzc2FnZShtX3BhcmFtZXRl
cnMud2ViUGFnZUlELCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmludGVybmFsRXJy
b3JLZXkoKSwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjppbnZhbGlkU2Vzc2lvbklE
S2V5KCksIFdlYkNvcmU6OlNob3VsZFNhbXBsZTo6Tm8pOwogICAgICAgICBkaWRGYWlsTG9hZGlu
ZyhpbnRlcm5hbEVycm9yKHJlcXVlc3QudXJsKCkpKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMzIw
LDcgKzMyMCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydE5ldHdvcmtMb2Fk
KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEZpcnN0TG9hCiAgICAgcGFyYW1ldGVycy5yZXF1
ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KTsKICAgICBtX25ldHdvcmtMb2FkID0gc3RkOjptYWtlX3Vu
aXF1ZTxOZXR3b3JrTG9hZD4oKnRoaXMsICZuZXR3b3JrU2Vzc2lvbi0+YmxvYlJlZ2lzdHJ5KCks
IFdURk1vdmUocGFyYW1ldGVycyksICpuZXR3b3JrU2Vzc2lvbik7CiAKLSAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKCJzdGFydE5ldHdvcmtMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZy
YW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBkZXNjcmlwdGlv
biA9ICV7cHVibGljfXMpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Bh
cmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIG1fbmV0d29ya0xv
YWQtPmRlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRCgic3RhcnROZXR3b3JrTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgZGVzY3JpcHRpb24gPSAle3B1
YmxpY31zKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJz
LndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIG1fbmV0d29y
a0xvYWQtPmRlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Jl
c291cmNlTG9hZGVyOjpjbGVhbnVwKExvYWRSZXN1bHQgcmVzdWx0KQpAQCAtMzQ0LDcgKzM0NCw3
IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjbGVhbnVwKExvYWRSZXN1bHQgcmVzdWx0
KQogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y29udmVydFRvRG93bmxvYWQoRG93bmxv
YWRJRCBkb3dubG9hZElELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewotICAgIFJFTEVBU0VfTE9HKExvYWRpbmcsICJD
b252ZXJ0aW5nIE5ldHdvcmtSZXNvdXJjZUxvYWRlciAlcCB0byBkb3dubG9hZCAlIiBQUkl1NjQg
IiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJ
RCA9ICUiIFBSSXU2NCAiKSIsIHRoaXMsIGRvd25sb2FkSUQuZG93bmxvYWRJRCgpLCBtX3BhcmFt
ZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3Bh
cmFtZXRlcnMuaWRlbnRpZmllcik7CisgICAgUkVMRUFTRV9MT0coTG9hZGluZywgIkNvbnZlcnRp
bmcgTmV0d29ya1Jlc291cmNlTG9hZGVyICVwIHRvIGRvd25sb2FkICUiIFBSSXU2NCAiIChwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIg
UFJJdTY0ICIpIiwgdGhpcywgZG93bmxvYWRJRC5kb3dubG9hZElEKCksIG1fcGFyYW1ldGVycy53
ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwg
bV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIpOwogICAgIAogICAgIC8vIFRoaXMgY2FuIGhhcHBlbiBp
ZiB0aGUgcmVzb3VyY2UgY2FtZSBmcm9tIHRoZSBkaXNrIGNhY2hlLgogICAgIGlmICghbV9uZXR3
b3JrTG9hZCkgewpAQCAtMzYyLDcgKzM2Miw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVy
OjphYm9ydCgpCiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoImFib3J0OiBDYW5jZWxpbmcgcmVzb3VyY2UgbG9hZCAocGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2
NCAiKSIsCi0gICAgICAgIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJh
bWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyKTsKKyAgICAgICAgbV9w
YXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50
b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CiAKICAgICBpZiAobV9wYXJhbWV0
ZXJzLm9wdGlvbnMua2VlcEFsaXZlICYmIG1fcmVzcG9uc2UuaXNOdWxsKCkgJiYgIW1faXNLZXB0
QWxpdmUpIHsKICAgICAgICAgbV9pc0tlcHRBbGl2ZSA9IHRydWU7CkBAIC00NDcsNyArNDQ3LDcg
QEAgYm9vbCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNob3VsZEludGVycnVwdExvYWRGb3JDU1BG
cmFtZUFuY2VzdG9yc09yWEZyYW1lT3B0aW8KIAogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVjZWl2ZWRSZXNwb25zZSwg
UmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZTogKHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwg
aHR0cFN0YXR1c0NvZGUgPSAlZCwgbGVuZ3RoID0gJSIgUFJJZDY0ICIpIiwgbV9wYXJhbWV0ZXJz
LndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0
ZXJzLmlkZW50aWZpZXIsIHJlY2VpdmVkUmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSwgcmVjZWl2
ZWRSZXNwb25zZS5leHBlY3RlZENvbnRlbnRMZW5ndGgoKSk7CisgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBodHRwU3RhdHVzQ29k
ZSA9ICVkLCBsZW5ndGggPSAlIiBQUklkNjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRv
VUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVy
cy5pZGVudGlmaWVyLCByZWNlaXZlZFJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCksIHJlY2VpdmVk
UmVzcG9uc2UuZXhwZWN0ZWRDb250ZW50TGVuZ3RoKCkpOwogCiAgICAgbV9yZXNwb25zZSA9IFdU
Rk1vdmUocmVjZWl2ZWRSZXNwb25zZSk7CiAKQEAgLTUyNyw3ICs1MjcsNyBAQCB2b2lkIE5ldHdv
cmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJiBy
ZWNlaXZlZFJlc3Bvbgogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVCdWZm
ZXIoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIsIGludCByZXBvcnRlZEVuY29kZWREYXRhTGVu
Z3RoKQogewogICAgIGlmICghbV9udW1CeXRlc1JlY2VpdmVkKQotICAgICAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKCJkaWRSZWNlaXZlQnVmZmVyOiBTdGFydGVkIHJlY2VpdmluZyBkYXRhIChw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JSIgUFJJdTY0ICIpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFt
ZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIpOworICAgICAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlQnVmZmVyOiBTdGFydGVkIHJlY2VpdmluZyBk
YXRhIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJj
ZUlEID0gJSIgUFJJdTY0ICIpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBt
X3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmll
cik7CiAgICAgbV9udW1CeXRlc1JlY2VpdmVkICs9IGJ1ZmZlci0+c2l6ZSgpOwogCiAgICAgQVNT
RVJUKCFtX2NhY2hlRW50cnlGb3JWYWxpZGF0aW9uKTsKQEAgLTU1Niw3ICs1NTYsNyBAQCB2b2lk
IE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZUJ1ZmZlcihSZWY8U2hhcmVkQnVmZmVy
PiYmIGJ1ZmZlciwgaW50IHJlcAogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkRmlu
aXNoTG9hZGluZyhjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMb2FkTWV0cmljcykK
IHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRGaW5pc2hMb2FkaW5nOiAocGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBS
SXU2NCAiLCBsZW5ndGggPSAlemQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgp
LCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIG1fbnVt
Qnl0ZXNSZWNlaXZlZCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkRmluaXNoTG9h
ZGluZzogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIiwgbGVuZ3RoID0gJXpkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdl
SUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJh
bWV0ZXJzLmlkZW50aWZpZXIsIG1fbnVtQnl0ZXNSZWNlaXZlZCk7CiAKICAgICBpZiAoc2hvdWxk
Q2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKCkpCiAgICAgICAgIG1fY29ubmVjdGlvbi0+
YWRkTmV0d29ya0xvYWRJbmZvcm1hdGlvbk1ldHJpY3MoaWRlbnRpZmllcigpLCBuZXR3b3JrTG9h
ZE1ldHJpY3MpOwpAQCAtNTkxLDcgKzU5MSw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVy
OjpkaWRGaW5pc2hMb2FkaW5nKGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvCiAK
IHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRGYWlsTG9hZGluZyhjb25zdCBSZXNvdXJj
ZUVycm9yJiBlcnJvcikKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRGYWlsTG9h
ZGluZzogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNUaW1lb3V0ID0gJWQsIGlzQ2FuY2VsbGF0aW9uID0gJWQs
IGlzQWNjZXNzQ29udHJvbCA9ICVkLCBlcnJDb2RlID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBh
Z2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlk
ZW50aWZpZXIsIGVycm9yLmlzVGltZW91dCgpLCBlcnJvci5pc0NhbmNlbGxhdGlvbigpLCBlcnJv
ci5pc0FjY2Vzc0NvbnRyb2woKSwgZXJyb3IuZXJyb3JDb2RlKCkpOworICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoImRpZEZhaWxMb2FkaW5nOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc1RpbWVvdXQgPSAl
ZCwgaXNDYW5jZWxsYXRpb24gPSAlZCwgaXNBY2Nlc3NDb250cm9sID0gJWQsIGVyckNvZGUgPSAl
ZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJG
cmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBlcnJvci5pc1RpbWVv
dXQoKSwgZXJyb3IuaXNDYW5jZWxsYXRpb24oKSwgZXJyb3IuaXNBY2Nlc3NDb250cm9sKCksIGVy
cm9yLmVycm9yQ29kZSgpKTsKIAogICAgIGlmIChzaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9h
ZE1ldHJpY3MoKSkKICAgICAgICAgbV9jb25uZWN0aW9uLT5yZW1vdmVOZXR3b3JrTG9hZEluZm9y
bWF0aW9uKGlkZW50aWZpZXIoKSk7CkBAIC03NTYsNyArNzU2LDcgQEAgdm9pZCBOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OmNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIG5l
d1JlcXVlc3QKICAgICAgICAgfQogICAgIH0KIAotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
ImNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0OiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fcGFyYW1ldGVycy53
ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVy
cy5pZGVudGlmaWVyKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJjb250aW51ZVdpbGxT
ZW5kUmVxdWVzdDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUlu
dDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5p
ZGVudGlmaWVyKTsKIAogICAgIG1faXNBbGxvd2VkVG9Bc2tVc2VyRm9yQ3JlZGVudGlhbHMgPSBp
c0FsbG93ZWRUb0Fza1VzZXJGb3JDcmVkZW50aWFsczsKIApAQCAtMTAxMSwxMiArMTAxMSwxNyBA
QCBzdGF0aWMgU3RyaW5nIGVzY2FwZUZvckpTT04oU3RyaW5nIHMpCiBzdGF0aWMgU3RyaW5nIGVz
Y2FwZUlERm9ySlNPTihjb25zdCBPcHRpb25hbDx1aW50NjRfdD4mIHZhbHVlKQogewogICAgIHJl
dHVybiB2YWx1ZSA/IFN0cmluZzo6bnVtYmVyKHZhbHVlLnZhbHVlKCkpIDogU3RyaW5nKCJOb25l
Il9zKTsKLX07Cit9CisKK3N0YXRpYyBTdHJpbmcgZXNjYXBlSURGb3JKU09OKGNvbnN0IE9wdGlv
bmFsPEZyYW1lSWRlbnRpZmllcj4mIHZhbHVlKQoreworICAgIHJldHVybiB2YWx1ZSA/IFN0cmlu
Zzo6bnVtYmVyKHZhbHVlLT50b1VJbnQ2NCgpKSA6IFN0cmluZygiTm9uZSJfcyk7Cit9CiAKIHN0
YXRpYyBTdHJpbmcgZXNjYXBlSURGb3JKU09OKGNvbnN0IE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVy
PiYgdmFsdWUpCiB7CiAgICAgcmV0dXJuIHZhbHVlID8gU3RyaW5nOjpudW1iZXIodmFsdWUtPnRv
VUludDY0KCkpIDogU3RyaW5nKCJOb25lIl9zKTsKLX07Cit9CiAKIHZvaWQgTmV0d29ya1Jlc291
cmNlTG9hZGVyOjpsb2dDb29raWVJbmZvcm1hdGlvbigpIGNvbnN0CiB7CkBAIC0xMDI4LDcgKzEw
MzMsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6bG9nQ29va2llSW5mb3JtYXRpb24o
KSBjb25zdAogICAgIGxvZ0Nvb2tpZUluZm9ybWF0aW9uKG1fY29ubmVjdGlvbiwgIk5ldHdvcmtS
ZXNvdXJjZUxvYWRlciIsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KHRoaXMpLCAqbmV0
d29ya1N0b3JhZ2VTZXNzaW9uLCBvcmlnaW5hbFJlcXVlc3QoKS5maXJzdFBhcnR5Rm9yQ29va2ll
cygpLCBTYW1lU2l0ZUluZm86OmNyZWF0ZShvcmlnaW5hbFJlcXVlc3QoKSksIG9yaWdpbmFsUmVx
dWVzdCgpLnVybCgpLCBvcmlnaW5hbFJlcXVlc3QoKS5odHRwUmVmZXJyZXIoKSwgZnJhbWVJRCgp
LCBwYWdlSUQoKSwgaWRlbnRpZmllcigpKTsKIH0KIAotc3RhdGljIHZvaWQgbG9nQmxvY2tlZENv
b2tpZUluZm9ybWF0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9u
LCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2b2lkKiBsb2dnZWRPYmplY3QsIGNvbnN0IFdl
YkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLCBjb25z
dCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25z
dCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIE9wdGlvbmFsPHVpbnQ2NF90
PiBpZGVudGlmaWVyKQorc3RhdGljIHZvaWQgbG9nQmxvY2tlZENvb2tpZUluZm9ybWF0aW9uKE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBjb25zdCBTdHJpbmcmIGxh
YmVsLCBjb25zdCB2b2lkKiBsb2dnZWRPYmplY3QsIGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9y
YWdlU2Vzc2lvbiYgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgY29uc3Qg
U3RyaW5nJiByZWZlcnJlciwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBPcHRpb25hbDx1aW50NjRfdD4gaWRlbnRpZmll
cikKIHsKICAgICBBU1NFUlQoTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzaG91bGRMb2dDb29raWVJ
bmZvcm1hdGlvbihjb25uZWN0aW9uLCBuZXR3b3JrU3RvcmFnZVNlc3Npb24uc2Vzc2lvbklEKCkp
KTsKIApAQCAtMTA1NSw3ICsxMDYwLDcgQEAgc3RhdGljIHZvaWQgbG9nQmxvY2tlZENvb2tpZUlu
Zm9ybWF0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW8KICN1bmRl
ZiBMT0NBTF9MT0dfSUZfQUxMT1dFRAogfQogCi1zdGF0aWMgdm9pZCBsb2dDb29raWVJbmZvcm1h
dGlvbkludGVybmFsKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBj
b25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2b2lkKiBsb2dnZWRPYmplY3QsIGNvbnN0IFdlYkNv
cmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLCBjb25zdCBV
UkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZv
LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgT3B0aW9uYWw8dWludDY0
X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIE9wdGlvbmFsPHVp
bnQ2NF90PiBpZGVudGlmaWVyKQorc3RhdGljIHZvaWQgbG9nQ29va2llSW5mb3JtYXRpb25JbnRl
cm5hbChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgY29uc3QgU3Ry
aW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBjb25zdCBXZWJDb3JlOjpOZXR3
b3JrU3RvcmFnZVNlc3Npb24mIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3Qg
VVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmll
cj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgT3B0aW9uYWw8dWlu
dDY0X3Q+IGlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
c2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oY29ubmVjdGlvbiwgbmV0d29ya1N0b3JhZ2VTZXNz
aW9uLnNlc3Npb25JRCgpKSk7CiAKQEAgLTExMTYsNyArMTEyMSw3IEBAIHN0YXRpYyB2b2lkIGxv
Z0Nvb2tpZUluZm9ybWF0aW9uSW50ZXJuYWwoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mm
IGNvbm5lY3RpCiAjdW5kZWYgTE9DQUxfTE9HX0lGX0FMTE9XRUQKIH0KIAotdm9pZCBOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2b2lkKiBs
b2dnZWRPYmplY3QsIGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgbmV0d29ya1N0b3JhZ2VT
ZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNp
dGVJbmZvLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIE9wdGlv
bmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyKQordm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6Omxv
Z0Nvb2tpZUluZm9ybWF0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0
aW9uLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2b2lkKiBsb2dnZWRPYmplY3QsIGNvbnN0
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLCBjb25zdCBVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBm
cmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBPcHRpb25hbDx1aW50NjRf
dD4gaWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQoc2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24o
Y29ubmVjdGlvbiwgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLnNlc3Npb25JRCgpKSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVy
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5o
CmluZGV4IDYyYzY1Y2RkZmY3Y2EwYjIwYTFjMTkwOTliOWY3MTVmYWU0NTRhOGUuLjc0OTJkZjMy
Zjc5OTZlMDkwM2JlOTBkYTAwNWU5YjE0NmRhMTVmYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaApAQCAtODUsNyArODUs
NyBAQCBwdWJsaWM6CiAgICAgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rpb247IH0KICAgICBQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3BhcmFtZXRlcnMuc2Vzc2lv
bklEOyB9CiAgICAgUmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXI7IH0KLSAgICB1aW50NjRfdCBmcmFtZUlEKCkg
Y29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy53ZWJG
cmFtZUlEOyB9CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKCkgY29uc3QgeyBy
ZXR1cm4gbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRDsgfQogCiAgICAgc3RydWN0IFN5bmNocm9ub3Vz
TG9hZERhdGE7CkBAIC0xMTIsNyArMTEyLDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgc3RhdGlj
IGJvb2wgc2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MmLCBjb25zdCBQQUw6OlNlc3Npb25JRCYpOwotICAgIHN0YXRpYyB2b2lkIGxvZ0Nvb2tp
ZUluZm9ybWF0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgY29uc3QgU3RyaW5n
JiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBjb25zdCBXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNh
bWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIE9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIE9w
dGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyKTsKKyAgICBzdGF0aWMgdm9pZCBsb2dDb29raWVJ
bmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIGNvbnN0IFN0cmluZyYg
bGFiZWwsIGNvbnN0IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0
b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1l
U2l0ZUluZm8mLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBPcHRpb25hbDxX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmll
cj4sIE9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyKTsKICNlbmRpZgogCiAgICAgdm9pZCBk
aXNhYmxlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3NDYXB0dXJlKCkgeyBtX3Nob3VsZENhcHR1cmVF
eHRyYU5ldHdvcmtMb2FkTWV0cmljcyA9IGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaAppbmRleCBkOTRmYzczODBmMTlhNWY1
ZjViNzhlYTM5ZWYxZDY1YTkyMTFlZTRmLi44NWQxMDBjYTZjN2MwNWZiOGMzZDEyZDAzYTQ0MDI4
MTEwMzk1ZWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hl
L05ldHdvcmtDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
TmV0d29ya0NhY2hlLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVF
bnRyeS5oIgogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZVN0b3JhZ2UuaCIKICNpbmNsdWRlICJTaGFy
ZWFibGVSZXNvdXJjZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVz
b3VyY2VSZXNwb25zZS5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgpAQCAt
ODUsNyArODYsNyBAQCBlbnVtIGNsYXNzIFVzZURlY2lzaW9uIHsKICAgICBOb0R1ZVRvRXhwaXJl
ZFJlZGlyZWN0CiB9OwogCi11c2luZyBHbG9iYWxGcmFtZUlEID0gc3RkOjpwYWlyPFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCAvKndlYkZyYW1lSUQqLz47Cit1c2luZyBHbG9iYWxG
cmFtZUlEID0gc3RkOjpwYWlyPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXI+OyAvLyBGSVhNRTogVXNlIEdsb2JhbEZyYW1lSWRlbnRpZmllci4KIAogZW51
bSBjbGFzcyBDYWNoZU9wdGlvbiA6IHVpbnQ4X3QgewogICAgIC8vIEluIHRlc3RpbmcgbW9kZSB3
ZSB0cnkgdG8gZWxpbWluYXRlIHNvdXJjZXMgb2YgcmFuZG9tbmVzcy4gQ2FjaGUgZG9lcyBub3Qg
c2hyaW5rIGFuZCB0aGVyZSBhcmUgbm8gcmVhZCB0aW1lb3V0cy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaApp
bmRleCAyNzkzNTc1MzViZTFlODRhMTNkMzFmZjdmYzMyZWM4MmU2OWVkYjhmLi40M2FkNmYxZGU0
MWM1MTYxZGQ5ZGIzYjY5YWY5MWNhM2Y3YWIyNDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCkBAIC00
Miw3ICs0Miw3IEBAIGNsYXNzIE5ldHdvcmtTZXNzaW9uQ29jb2E7CiBjbGFzcyBOZXR3b3JrRGF0
YVRhc2tDb2NvYSBmaW5hbCA6IHB1YmxpYyBOZXR3b3JrRGF0YVRhc2sgewogICAgIGZyaWVuZCBj
bGFzcyBOZXR3b3JrU2Vzc2lvbkNvY29hOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8TmV0d29y
a0RhdGFUYXNrPiBjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFz
a0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29y
ZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNv
cmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIFdlYkNvcmU6OkNv
bnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBi
b29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RP
bmx5IHNob3VsZFByZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZp
Z2F0aW9uLCBib29sIGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJh
bWUsIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+IG5ldHdvcmtBY3Rpdml0eVRyYWNr
ZXIpCisgICAgc3RhdGljIFJlZjxOZXR3b3JrRGF0YVRhc2s+IGNyZWF0ZShOZXR3b3JrU2Vzc2lv
biYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlm
ZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1Nu
aWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFy
UmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNv
bm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBib29sIGRh
dGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIE9wdGlvbmFsPE5l
dHdvcmtBY3Rpdml0eVRyYWNrZXI+IG5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpCiAgICAgewogICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrRGF0YVRhc2tDb2NvYShzZXNzaW9uLCBj
bGllbnQsIHJlcXVlc3QsIGZyYW1lSUQsIHBhZ2VJRCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ks
IHNob3VsZENvbnRlbnRTbmlmZiwgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIHNob3VsZENs
ZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHNob3VsZFByZWNvbm5lY3RPbmx5LCBk
YXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgZGF0YVRhc2tJc0Zvck1haW5SZXNvdXJj
ZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSwgbmV0d29ya0FjdGl2aXR5VHJhY2tlcikpOwogICAgIH0K
QEAgLTY5LDEzICs2OSwxMyBAQCBwdWJsaWM6CiAKICAgICBXZWJDb3JlOjpOZXR3b3JrTG9hZE1l
dHJpY3MmIG5ldHdvcmtMb2FkTWV0cmljcygpIHsgcmV0dXJuIG1fbmV0d29ya0xvYWRNZXRyaWNz
OyB9CiAKLSAgICB1aW50NjRfdCBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9
OworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4g
bV9mcmFtZUlEOyB9OwogICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCgpIGNvbnN0
IHsgcmV0dXJuIG1fcGFnZUlEOyB9OwogCiAgICAgU3RyaW5nIGRlc2NyaXB0aW9uKCkgY29uc3Qg
b3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgTmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nl
c3Npb24mLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29y
ZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGlj
eSwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIGJvb2wgc2hvdWxkQ2xl
YXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHksIGJvb2wgZGF0
YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24sIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5SZXNv
dXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSwgT3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tl
cj4pOworICAgIE5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0Rh
dGFUYXNrQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwgV2ViQ29y
ZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJl
ck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zv
ck1haW5GcmFtZU5hdmlnYXRpb24sIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5SZXNvdXJjZU5hdmln
YXRpb25Gb3JBbnlGcmFtZSwgT3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4pOwogCiAg
ICAgYm9vbCB0cnlQYXNzd29yZEJhc2VkQXV0aGVudGljYXRpb24oY29uc3QgV2ViQ29yZTo6QXV0
aGVudGljYXRpb25DaGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYpOwogICAg
IHZvaWQgYXBwbHlTbmlmZmluZ1BvbGljaWVzQW5kQmluZFJlcXVlc3RUb0luZmVyZmFjZUlmTmVl
ZGVkKF9fc3Ryb25nIE5TVVJMUmVxdWVzdComLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9v
bCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZik7CkBAIC05Miw3ICs5Miw3IEBAIHByaXZhdGU6
CiAgICAgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IG1fc2FuZGJveEV4dGVuc2lvbjsKICAgICBS
ZXRhaW5QdHI8TlNVUkxTZXNzaW9uRGF0YVRhc2s+IG1fdGFzazsKICAgICBXZWJDb3JlOjpOZXR3
b3JrTG9hZE1ldHJpY3MgbV9uZXR3b3JrTG9hZE1ldHJpY3M7Ci0gICAgdWludDY0X3QgbV9mcmFt
ZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX2ZyYW1lSUQ7CiAgICAgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIgbV9wYWdlSUQ7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KaW5kZXggNDJlN2FjZTQyNGIyYWI4YmIwMGEz
N2M5NjNlYTk3ZDQ0MTMxNWFlMC4uYzJlN2IzNjg1NGU3Mzk1Y2I2OTMwZDZlMjU3NDhjNGJhZDYw
MTIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrRGF0YVRhc2tDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCkBAIC0xNzAsNyArMTcwLDcgQEAgc3RhdGljIGlu
bGluZSBib29sIGNvbXB1dGVJc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoTmV0d29ya1Nlc3Npb24m
IHNlc3Npb24pCiAgICAgcmV0dXJuIHNlc3Npb24uc2Vzc2lvbklEKCkuaXNBbHdheXNPbkxvZ2dp
bmdBbGxvd2VkKCk7CiB9CiAKLU5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tD
b2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGll
bnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdFdpdGhDcmVkZW50aWFs
cywgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJD
b3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2Vi
Q29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgV2ViQ29yZTo6
Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYs
IGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVj
dE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5h
dmlnYXRpb24sIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlG
cmFtZSwgT3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4gbmV0d29ya0FjdGl2aXR5VHJh
Y2tlcikKK05ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3Jr
U2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwg
V2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ks
IFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIFdlYkNv
cmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRFbmNvZGluZ1Nu
aWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNv
bm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJh
bWVOYXZpZ2F0aW9uLCBib29sIGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9y
QW55RnJhbWUsIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+IG5ldHdvcmtBY3Rpdml0
eVRyYWNrZXIpCiAgICAgOiBOZXR3b3JrRGF0YVRhc2soc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0
V2l0aENyZWRlbnRpYWxzLCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgc2hvdWxkQ2xlYXJSZWZl
cnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRp
b24pCiAgICAgLCBtX2ZyYW1lSUQoZnJhbWVJRCkKICAgICAsIG1fcGFnZUlEKHBhZ2VJRCkKQEAg
LTI1Niw3ICsyNTYsNyBAQCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29j
b2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVAogICAgIGlmIChzaG91bGRC
bG9ja0Nvb2tpZXMpIHsKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAgICAgaWYgKG1f
c2Vzc2lvbi0+c2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oKSkKLSAgICAgICAgICAgIFJFTEVB
U0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3b3JrLCAiJXAgLSBOZXR3
b3JrRGF0YVRhc2tDb2NvYTo6bG9nQ29va2llSW5mb3JtYXRpb246IHBhZ2VJRCA9ICVsbHUsIGZy
YW1lSUQgPSAlbGx1LCB0YXNrSUQgPSAlbHU6IEJsb2NraW5nIGNvb2tpZXMgZm9yIFVSTCAlcyIs
IHRoaXMsIHBhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELCAodW5zaWduZWQgbG9uZylbbV90YXNr
IHRhc2tJZGVudGlmaWVyXSwgbnNSZXF1ZXN0LlVSTC5hYnNvbHV0ZVN0cmluZy5VVEY4U3RyaW5n
KTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgp
LCBOZXR3b3JrLCAiJXAgLSBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6bG9nQ29va2llSW5mb3JtYXRp
b246IHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCB0YXNrSUQgPSAlbHU6IEJsb2NraW5n
IGNvb2tpZXMgZm9yIFVSTCAlcyIsIHRoaXMsIHBhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRv
VUludDY0KCksICh1bnNpZ25lZCBsb25nKVttX3Rhc2sgdGFza0lkZW50aWZpZXJdLCBuc1JlcXVl
c3QuVVJMLmFic29sdXRlU3RyaW5nLlVURjhTdHJpbmcpOwogI2Vsc2UKICAgICAgICAgTE9HKE5l
dHdvcmtTZXNzaW9uLCAiJWxsdSBCbG9ja2luZyBjb29raWVzIGZvciBVUkwgJXMiLCBbbV90YXNr
IHRhc2tJZGVudGlmaWVyXSwgbnNSZXF1ZXN0LlVSTC5hYnNvbHV0ZVN0cmluZy5VVEY4U3RyaW5n
KTsKICNlbmRpZgpAQCAtMzkwLDcgKzM5MCw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrQ29jb2E6
OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmCiAg
ICAgfQogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGlmIChtX3Nlc3Npb24tPnNob3Vs
ZExvZ0Nvb2tpZUluZm9ybWF0aW9uKCkpCi0gICAgICAgIFJFTEVBU0VfTE9HX0lGKGlzQWx3YXlz
T25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3b3JrLCAiJXAgLSBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6
d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb246OmxvZ0Nvb2tpZUluZm9ybWF0aW9uOiBwYWdlSUQg
PSAlbGx1LCBmcmFtZUlEID0gJWxsdSwgdGFza0lEID0gJWx1OiAlcyBjb29raWVzIGZvciByZWRp
cmVjdCBVUkwgJXMiLCB0aGlzLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBtX2ZyYW1lSUQsICh1bnNp
Z25lZCBsb25nKVttX3Rhc2sgdGFza0lkZW50aWZpZXJdLCAobV9oYXNCZWVuU2V0VG9Vc2VTdGF0
ZWxlc3NDb29raWVTdG9yYWdlID8gIkJsb2NraW5nIiA6ICJOb3QgYmxvY2tpbmciKSwgcmVxdWVz
dC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUYo
aXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdvcmssICIlcCAtIE5ldHdvcmtEYXRhVGFz
a0NvY29hOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbjo6bG9nQ29va2llSW5mb3JtYXRpb246
IHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCB0YXNrSUQgPSAlbHU6ICVzIGNvb2tpZXMg
Zm9yIHJlZGlyZWN0IFVSTCAlcyIsIHRoaXMsIG1fcGFnZUlELnRvVUludDY0KCksIG1fZnJhbWVJ
RC50b1VJbnQ2NCgpLCAodW5zaWduZWQgbG9uZylbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgKG1f
aGFzQmVlblNldFRvVXNlU3RhdGVsZXNzQ29va2llU3RvcmFnZSA/ICJCbG9ja2luZyIgOiAiTm90
IGJsb2NraW5nIiksIHJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAjZWxz
ZQogICAgIExPRyhOZXR3b3JrU2Vzc2lvbiwgIiVsbHUgJXMgY29va2llcyBmb3IgcmVkaXJlY3Qg
VVJMICVzIiwgW21fdGFzayB0YXNrSWRlbnRpZmllcl0sIChtX2hhc0JlZW5TZXRUb1VzZVN0YXRl
bGVzc0Nvb2tpZVN0b3JhZ2UgPyAiQmxvY2tpbmciIDogIk5vdCBibG9ja2luZyIpLCByZXF1ZXN0
LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCBmMGVjOGRjMWI3MTY5YmNjYTU1YTY1NDkxMmVk
MmZlZjUzNzBkZjEwLi5jMDFlODk1OWU4MDdmZjYyNGVmODU3N2ViMzU1NjVlNDJkOTNhM2IxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBi
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTIwNSw2ICsyMDUs
NyBAQCBkZWYgZm9yd2FyZF9kZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnMocmVjZWl2ZXIpOgogICAg
ICAgICAnU3RyaW5nJywKICAgICAgICAgJ1dlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllcicsCiAg
ICAgICAgICdXZWJDb3JlOjpGZXRjaElkZW50aWZpZXInLAorICAgICAgICAnV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlBhZ2VJZGVudGlmaWVyJywKICAgICAg
ICAgJ1dlYkNvcmU6OlBvaW50ZXJJRCcsCiAgICAgICAgICdXZWJDb3JlOjpQcm9jZXNzSWRlbnRp
ZmllcicsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5k
bGUuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmNwcAppbmRl
eCA3OTY0NmFjNmU1OWM0MWQ0ZGY3MDkwMWRiYTdlMjY3NTMzNmQ1MjRhLi40MDgwMTM4ODU0OGEx
ODExYWI1OWU1Y2IyNDVhMTE1MjExNDJiZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQ
SS9BUElGcmFtZUhhbmRsZS5jcHAKQEAgLTMxLDE3ICszMSwxNyBAQAogCiBuYW1lc3BhY2UgQVBJ
IHsKIAotUmVmPEZyYW1lSGFuZGxlPiBGcmFtZUhhbmRsZTo6Y3JlYXRlKHVpbnQ2NF90IGZyYW1l
SUQpCitSZWY8RnJhbWVIYW5kbGU+IEZyYW1lSGFuZGxlOjpjcmVhdGUoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRnJhbWVIYW5k
bGUoZnJhbWVJRCwgZmFsc2UpKTsKIH0KIAotUmVmPEZyYW1lSGFuZGxlPiBGcmFtZUhhbmRsZTo6
Y3JlYXRlQXV0b2NvbnZlcnRpbmcodWludDY0X3QgZnJhbWVJRCkKK1JlZjxGcmFtZUhhbmRsZT4g
RnJhbWVIYW5kbGU6OmNyZWF0ZUF1dG9jb252ZXJ0aW5nKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlEKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZyYW1lSGFuZGxlKGZyYW1l
SUQsIHRydWUpKTsKIH0KIAotRnJhbWVIYW5kbGU6OkZyYW1lSGFuZGxlKHVpbnQ2NF90IGZyYW1l
SUQsIGJvb2wgaXNBdXRvY29udmVydGluZykKK0ZyYW1lSGFuZGxlOjpGcmFtZUhhbmRsZShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCBpc0F1dG9jb252ZXJ0aW5nKQogICAg
IDogbV9mcmFtZUlEKGZyYW1lSUQpCiAgICAgLCBtX2lzQXV0b2NvbnZlcnRpbmcoaXNBdXRvY29u
dmVydGluZykKIHsKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBGcmFtZUhhbmRsZTo6ZW5jb2RlKElQ
Qzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIAogYm9vbCBGcmFtZUhhbmRsZTo6ZGVjb2RlKElQ
Qzo6RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPE9iamVjdD4mIHJlc3VsdCkKIHsKLSAgICB1aW50
NjRfdCBmcmFtZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEOwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoZnJhbWVJRCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmggYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuaAppbmRleCBiMTBlODA4YTRi
MTlhZDMxM2Q4YjQ1NWMyM2I5ZDgzOTljYzM4NTUwLi4xYzY0YTRhZDFlODAyYTA0NjcyOTgxYmNi
ZjhhNzYwMTY0MjVmZmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJ
RnJhbWVIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5k
bGUuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBBUElGcmFtZUhhbmRsZV9oCiAKICNpbmNs
dWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgog
I2luY2x1ZGUgPHd0Zi9SZWYuaD4KIAogbmFtZXNwYWNlIElQQyB7CkBAIC0zOCwyMCArMzksMjAg
QEAgbmFtZXNwYWNlIEFQSSB7CiAKIGNsYXNzIEZyYW1lSGFuZGxlIDogcHVibGljIE9iamVjdElt
cGw8T2JqZWN0OjpUeXBlOjpGcmFtZUhhbmRsZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8
RnJhbWVIYW5kbGU+IGNyZWF0ZSh1aW50NjRfdCBmcmFtZUlEKTsKLSAgICBzdGF0aWMgUmVmPEZy
YW1lSGFuZGxlPiBjcmVhdGVBdXRvY29udmVydGluZyh1aW50NjRfdCBmcmFtZUlEKTsKKyAgICBz
dGF0aWMgUmVmPEZyYW1lSGFuZGxlPiBjcmVhdGUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsK
KyAgICBzdGF0aWMgUmVmPEZyYW1lSGFuZGxlPiBjcmVhdGVBdXRvY29udmVydGluZyhXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIpOwogCi0gICAgZXhwbGljaXQgRnJhbWVIYW5kbGUodWludDY0X3Qg
ZnJhbWVJRCwgYm9vbCBpc0F1dG9jb252ZXJ0aW5nKTsKKyAgICBleHBsaWNpdCBGcmFtZUhhbmRs
ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGJvb2wgaXNBdXRvY29udmVydGluZyk7CiAgICAg
dmlydHVhbCB+RnJhbWVIYW5kbGUoKTsKIAotICAgIHVpbnQ2NF90IGZyYW1lSUQoKSBjb25zdCB7
IHJldHVybiBtX2ZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQogICAgIGJvb2wgaXNBdXRvY29udmVydGlu
ZygpIGNvbnN0IHsgcmV0dXJuIG1faXNBdXRvY29udmVydGluZzsgfQogCiAgICAgdm9pZCBlbmNv
ZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVj
b2RlciYsIFJlZlB0cjxPYmplY3Q+Jik7CiAKIHByaXZhdGU6Ci0gICAgY29uc3QgdWludDY0X3Qg
bV9mcmFtZUlEOworICAgIGNvbnN0IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX2ZyYW1lSUQ7
CiAgICAgY29uc3QgYm9vbCBtX2lzQXV0b2NvbnZlcnRpbmc7CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5kbGUubW0gYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5kbGUubW0KaW5kZXggYTQxYTYxM2E3
ZDM3MWQ3YWUyYTczZTQwNTgyN2IwYWJkNzM1NzA3MC4uZWRjYjM4ZTYzNWE3YmYwOTI3YjExMGNj
N2Q0Y2Y5NzY2YWI1ZDA4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0Nv
Y29hL19XS0ZyYW1lSGFuZGxlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2Nv
YS9fV0tGcmFtZUhhbmRsZS5tbQpAQCAtMjYsNiArMjYsOCBAQAogI2ltcG9ydCAiY29uZmlnLmgi
CiAjaW1wb3J0ICJfV0tGcmFtZUhhbmRsZUludGVybmFsLmgiCiAKKyNpbXBvcnQgPFdlYkNvcmUv
RnJhbWVJZGVudGlmaWVyLmg+CisKIEBpbXBsZW1lbnRhdGlvbiBfV0tGcmFtZUhhbmRsZSB7CiAg
ICAgQVBJOjpPYmplY3RTdG9yYWdlPEFQSTo6RnJhbWVIYW5kbGU+IF9mcmFtZUhhbmRsZTsKIH0K
QEAgLTUwLDEyICs1MiwxMiBAQCAtIChCT09MKWlzRXF1YWw6KGlkKW9iamVjdAogCiAtIChOU1VJ
bnRlZ2VyKWhhc2gKIHsKLSAgICByZXR1cm4gX2ZyYW1lSGFuZGxlLT5mcmFtZUlEKCk7CisgICAg
cmV0dXJuIF9mcmFtZUhhbmRsZS0+ZnJhbWVJRCgpLnRvVUludDY0KCk7CiB9CiAKIC0gKHVpbnQ2
NF90KV9mcmFtZUlECiB7Ci0gICAgcmV0dXJuIF9mcmFtZUhhbmRsZS0+ZnJhbWVJRCgpOworICAg
IHJldHVybiBfZnJhbWVIYW5kbGUtPmZyYW1lSUQoKS50b1VJbnQ2NCgpOwogfQogCiAjcHJhZ21h
IG1hcmsgTlNDb3B5aW5nIHByb3RvY29sIGltcGxlbWVudGF0aW9uCkBAIC04MywxNCArODUsMTQg
QEAgLSAoaWQpaW5pdFdpdGhDb2RlcjooTlNDb2RlciAqKWRlY29kZXIKICAgICAgICAgcmV0dXJu
IG5pbDsKICAgICB9CiAKLSAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6
RnJhbWVIYW5kbGU+KHNlbGYsIGZyYW1lSUQudW5zaWduZWRMb25nTG9uZ1ZhbHVlLCBmYWxzZSk7
CisgICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OkZyYW1lSGFuZGxlPihz
ZWxmLCBXZWJDb3JlOjpmcmFtZUlkZW50aWZpZXJGcm9tSUQoZnJhbWVJRC51bnNpZ25lZExvbmdM
b25nVmFsdWUpLCBmYWxzZSk7CiAKICAgICByZXR1cm4gc2VsZjsKIH0KIAogLSAodm9pZCllbmNv
ZGVXaXRoQ29kZXI6KE5TQ29kZXIgKiljb2RlcgogewotICAgIFtjb2RlciBlbmNvZGVPYmplY3Q6
QChfZnJhbWVIYW5kbGUtPmZyYW1lSUQoKSkgZm9yS2V5OkAiZnJhbWVJRCJdOworICAgIFtjb2Rl
ciBlbmNvZGVPYmplY3Q6QChbc2VsZiBfZnJhbWVJRF0pIGZvcktleTpAImZyYW1lSUQiXTsKIH0K
IAogI3ByYWdtYSBtYXJrIFdLT2JqZWN0IHByb3RvY29sIGltcGxlbWVudGF0aW9uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGlj
YXRpb25NYW5hZ2VyLmNwcAppbmRleCA5ZGViNzZmZjEzMmM2Y2I1ZmRmNWViZjUyMjIzNGY2ZDQ0
M2VmOTRkLi4zOGE1YmZmNmFmZDI1NzFkNTJkY2U0YzA5ODA0YWE3NTQ0YWJlNGYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhl
bnRpY2F0aW9uTWFuYWdlci5jcHAKQEAgLTEwOCw3ICsxMDgsNyBAQCBWZWN0b3I8dWludDY0X3Q+
IEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6Y29hbGVzY2VDaGFsbGVuZ2VzTWF0Y2hpbmcodWludDY0
X3QgY2hhbAogICAgIHJldHVybiBjaGFsbGVuZ2VzVG9Db2FsZXNjZTsKIH0KIAotdm9pZCBBdXRo
ZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShQYWdl
SWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgQ2hhbGxlbmdlQ29tcGxldGlvbkhh
bmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpk
aWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChwYWdlSUQpOwogICAgIEFTU0VSVChmcmFtZUlE
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhl
bnRpY2F0aW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24v
QXV0aGVudGljYXRpb25NYW5hZ2VyLmgKaW5kZXggODZlNzQ0YzEwOGRmNGNiY2Y1ZDA0NzYwOWFj
Zjk2YzY4MjNkNmIxNi4uNDAzNmVhYjc3ZmQ5Y2UxNTU1MzBmYjZhNGNjNTYxNjgzZDdlZDkxYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGlj
YXRpb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24v
QXV0aGVudGljYXRpb25NYW5hZ2VyLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJOZXR3
b3JrUHJvY2Vzc1N1cHBsZW1lbnQuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzU3VwcGxlbWVudC5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50
aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgpAQCAtNjEsNyArNjIsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgY29u
c3QgY2hhciogc3VwcGxlbWVudE5hbWUoKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxsZW5nZUNvbXBs
ZXRpb25IYW5kbGVyJiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgQ2hhbGxlbmdlQ29tcGxldGlv
bkhhbmRsZXImJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uo
SVBDOjpNZXNzYWdlU2VuZGVyJiBkb3dubG9hZCwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRp
b25DaGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYmKTsKIAogICAgIHZvaWQg
Y29tcGxldGVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCwgQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbiwgV2ViQ29yZTo6Q3JlZGVudGlhbCYmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaAppbmRleCBhODI4MzY4NmYxNmFiM2NkMzUy
NDljZTcwNWQzZjJiOGU3YmIzYzY2Li4xM2EwMjk5NDRiMjg5OTBhY2FiNDgyNmY3NmY1M2Q0NDc5
ZDM3YTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9GcmFtZUluZm9EYXRhLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRnJhbWVJbmZvRGF0YS5oCkBAIC0yNSw2ICsyNSw3
IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAKQEAgLTQyLDcgKzQzLDcgQEAgc3RydWN0IEZyYW1l
SW5mb0RhdGEgewogICAgIGJvb2wgaXNNYWluRnJhbWUgeyBmYWxzZSB9OwogICAgIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0OwogICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSBzZWN1cml0eU9yaWdpbjsKLSAgICB1aW50NjRfdCBmcmFtZUlEIHsgMCB9OworICAgIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tGcmFtZUhhbmRsZVJlZi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lSGFuZGxlUmVmLmNwcAppbmRleCBiMzlmY2ExYmU1
N2YwZDI3NGQ4NDU3ZjA0M2Y1MGVhYjYyZjIzYzU4Li5lODczZmM0NjUxZDUyNjkzODkzNjlmYzYw
YTc4MDI2NTQyMDVkZDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS0ZyYW1lSGFuZGxlUmVmLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS0ZyYW1lSGFuZGxlUmVmLmNwcApAQCAtMzgsNSArMzgsNSBAQCBXS1R5cGVJRCBXS0ZyYW1l
SGFuZGxlR2V0VHlwZUlEKCkKIAogdWludDY0X3QgV0tGcmFtZUhhbmRsZUdldEZyYW1lSUQoV0tG
cmFtZUhhbmRsZVJlZiBmcmFtZUhhbmRsZVJlZikKIHsKLSAgICByZXR1cm4gdG9JbXBsKGZyYW1l
SGFuZGxlUmVmKS0+ZnJhbWVJRCgpOworICAgIHJldHVybiB0b0ltcGwoZnJhbWVIYW5kbGVSZWYp
LT5mcmFtZUlEKCkudG9VSW50NjQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDAzOTFhMTk5MmUzNTMyZGJlNWYyMWRiNjkxZGQ4
MTA4YWFlMmE2NmMuLjA5NTFlOTQ0MzdiY2U0NjY1ZDYxNWJkMDQwZDI2ZGYyMGI2NGRmMzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAt
NjYyMSw3ICs2NjIxLDcgQEAgLSAoTlNQcmludE9wZXJhdGlvbiAqKV9wcmludE9wZXJhdGlvbldp
dGhQcmludEluZm86KE5TUHJpbnRJbmZvICopcHJpbnRJbmZvCiAKIC0gKE5TUHJpbnRPcGVyYXRp
b24gKilfcHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvOihOU1ByaW50SW5mbyAqKXByaW50SW5m
byBmb3JGcmFtZTooX1dLRnJhbWVIYW5kbGUgKilmcmFtZUhhbmRsZQogewotICAgIGlmIChhdXRv
KiB3ZWJGcmFtZVByb3h5ID0gX3BhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUhhbmRsZS5f
ZnJhbWVJRCkpCisgICAgaWYgKGF1dG8qIHdlYkZyYW1lUHJveHkgPSBfcGFnZS0+cHJvY2Vzcygp
LndlYkZyYW1lKFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRChmcmFtZUhhbmRsZS5fZnJh
bWVJRCkpKQogICAgICAgICByZXR1cm4gX2ltcGwtPnByaW50T3BlcmF0aW9uV2l0aFByaW50SW5m
byhwcmludEluZm8sICp3ZWJGcmFtZVByb3h5KTsKICAgICByZXR1cm4gbmlsOwogfQpAQCAtNzEx
NCw3ICs3MTE0LDcgQEAgLSAodm9pZClfY29tcGxldGVJbW1lZGlhdGVBY3Rpb25BbmltYXRpb24K
IAogLSAoQk9PTClfY2FuQ2hhbmdlRnJhbWVMYXlvdXQ6KF9XS0ZyYW1lSGFuZGxlICopZnJhbWVI
YW5kbGUKIHsKLSAgICBpZiAoYXV0byogd2ViRnJhbWVQcm94eSA9IF9wYWdlLT5wcm9jZXNzKCku
d2ViRnJhbWUoZnJhbWVIYW5kbGUuX2ZyYW1lSUQpKQorICAgIGlmIChhdXRvKiB3ZWJGcmFtZVBy
b3h5ID0gX3BhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShXZWJDb3JlOjpmcmFtZUlkZW50aWZpZXJG
cm9tSUQoZnJhbWVIYW5kbGUuX2ZyYW1lSUQpKSkKICAgICAgICAgcmV0dXJuIF9pbXBsLT5jYW5D
aGFuZ2VGcmFtZUxheW91dCgqd2ViRnJhbWVQcm94eSk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rv
ci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW0K
aW5kZXggYzQ5OWIxOGZhOTM4OGE0NTg0MzE0NzcwOGQzZDI5NmRkNTMyOTBhNC4uM2QxNWVjMmVl
YTc5MTFiMmEzOWQ2NDA4NzkzNmJmNGVhNjM0MTNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCkBAIC0zMCw2ICszMCw3IEBACiAj
aW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbXBvcnQgIl9XS0ZyYW1lSGFuZGxlSW50ZXJu
YWwuaCIKICNpbXBvcnQgIl9XS0luc3BlY3RvckludGVybmFsLmgiCisjaW1wb3J0IDxXZWJDb3Jl
L0ZyYW1lSWRlbnRpZmllci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiBAaW1wbGVt
ZW50YXRpb24gX1dLSW5zcGVjdG9yCkBAIC05OSw3ICsxMDAsNyBAQCAtICh2b2lkKXNob3dSZXNv
dXJjZXMKIC0gKHZvaWQpc2hvd01haW5SZXNvdXJjZUZvckZyYW1lOihfV0tGcmFtZUhhbmRsZSAq
KWZyYW1lCiB7CiAgICAgaWYgKGF1dG8qIHBhZ2UgPSBfaW5zcGVjdG9yLT5pbnNwZWN0ZWRQYWdl
KCkpCi0gICAgICAgIF9pbnNwZWN0b3ItPnNob3dNYWluUmVzb3VyY2VGb3JGcmFtZShwYWdlLT5w
cm9jZXNzKCkud2ViRnJhbWUoZnJhbWUuX2ZyYW1lSUQpKTsKKyAgICAgICAgX2luc3BlY3Rvci0+
c2hvd01haW5SZXNvdXJjZUZvckZyYW1lKHBhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShXZWJDb3Jl
OjpmcmFtZUlkZW50aWZpZXJGcm9tSUQoZnJhbWUuX2ZyYW1lSUQpKSk7CiB9CiAKIC0gKHZvaWQp
YXR0YWNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1Np
bXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRv
bWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHAKaW5kZXggN2FjYzY4YmFlZmVhYjA3
M2JmNjYwZjZjMGJjZTVlZmI5N2I1YWU2Mi4uZDg3NDhlZWE3ZmM2ZGFlMTU0MjZhZGFlYTk2OWI3
NGJkZWU2M2RjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlv
bi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmNwcApAQCAtMzgyLDcgKzM4
Miw3IEBAIHZvaWQgU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyOjp0cmFuc2l0aW9uSW5wdXRTb3Vy
Y2VUb1N0YXRlKFNpbXVsYXRlZElucHV0U291cmNlCiAgICAgfQogfQogCi12b2lkIFNpbXVsYXRl
ZElucHV0RGlzcGF0Y2hlcjo6cnVuKHVpbnQ2NF90IGZyYW1lSUQsIFZlY3RvcjxTaW11bGF0ZWRJ
bnB1dEtleUZyYW1lPiYmIGtleUZyYW1lcywgSGFzaFNldDxSZWY8U2ltdWxhdGVkSW5wdXRTb3Vy
Y2U+PiYgaW5wdXRTb3VyY2VzLCBBdXRvbWF0aW9uQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0
aW9uSGFuZGxlcikKK3ZvaWQgU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyOjpydW4oV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFZlY3RvcjxTaW11bGF0ZWRJbnB1dEtleUZyYW1lPiYm
IGtleUZyYW1lcywgSGFzaFNldDxSZWY8U2ltdWxhdGVkSW5wdXRTb3VyY2U+PiYgaW5wdXRTb3Vy
Y2VzLCBBdXRvbWF0aW9uQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBBU1NFUlQoIWlzQWN0aXZlKCkpOwogICAgIGlmIChpc0FjdGl2ZSgpKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlz
cGF0Y2hlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJ
bnB1dERpc3BhdGNoZXIuaAppbmRleCA3ZjQxNDFjZTBhMzllNTYwNzNjN2VjOGE5NjU2MGNiYzM0
OGFkZmE2Li5iMDg5MWE4ZjBiNjc1MjljYjliMzk4NmI4Nzk1MzA3MTJhNGFhZDQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlz
cGF0Y2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxh
dGVkSW5wdXREaXNwYXRjaGVyLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoV0VCRFJJ
VkVSX0FDVElPTlNfQVBJKQogCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5o
PgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CkBA
IC0xMzIsNyArMTMzLDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShXRUJEUklWRVJfS0VZQk9BUkRf
SU5URVJBQ1RJT05TKQogICAgICAgICB2aXJ0dWFsIHZvaWQgc2ltdWxhdGVLZXlib2FyZEludGVy
YWN0aW9uKFdlYlBhZ2VQcm94eSYsIEtleWJvYXJkSW50ZXJhY3Rpb24sIFdURjo6VmFyaWFudDxW
aXJ0dWFsS2V5LCBDaGFyS2V5PiYmLCBBdXRvbWF0aW9uQ29tcGxldGlvbkhhbmRsZXImJikgPSAw
OwogI2VuZGlmCi0gICAgICAgIHZpcnR1YWwgdm9pZCB2aWV3cG9ydEluVmlld0NlbnRlclBvaW50
T2ZFbGVtZW50KFdlYlBhZ2VQcm94eSYsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYg
bm9kZUhhbmRsZSwgRnVuY3Rpb248dm9pZCAoT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBP
cHRpb25hbDxBdXRvbWF0aW9uQ29tbWFuZEVycm9yPik+JiYpID0gMDsKKyAgICAgICAgdmlydHVh
bCB2b2lkIHZpZXdwb3J0SW5WaWV3Q2VudGVyUG9pbnRPZkVsZW1lbnQoV2ViUGFnZVByb3h5Jiwg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5vZGVIYW5kbGUsIEZ1bmN0
aW9uPHZvaWQgKE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiwgT3B0aW9uYWw8QXV0b21hdGlv
bkNvbW1hbmRFcnJvcj4pPiYmKSA9IDA7CiAgICAgfTsKIAogICAgIHN0YXRpYyBSZWY8U2ltdWxh
dGVkSW5wdXREaXNwYXRjaGVyPiBjcmVhdGUoV2ViUGFnZVByb3h5JiBwYWdlLCBTaW11bGF0ZWRJ
bnB1dERpc3BhdGNoZXI6OkNsaWVudCYgY2xpZW50KQpAQCAtMTQyLDcgKzE0Myw3IEBAIHB1Ymxp
YzoKIAogICAgIH5TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIoKTsKIAotICAgIHZvaWQgcnVuKHVp
bnQ2NF90IGZyYW1lSUQsIFZlY3RvcjxTaW11bGF0ZWRJbnB1dEtleUZyYW1lPiYmIGtleUZyYW1l
cywgSGFzaFNldDxSZWY8U2ltdWxhdGVkSW5wdXRTb3VyY2U+PiYgaW5wdXRTb3VyY2VzLCBBdXRv
bWF0aW9uQ29tcGxldGlvbkhhbmRsZXImJik7CisgICAgdm9pZCBydW4oV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBWZWN0b3I8U2ltdWxhdGVkSW5wdXRLZXlGcmFtZT4mJiBrZXlGcmFtZXMsIEhh
c2hTZXQ8UmVmPFNpbXVsYXRlZElucHV0U291cmNlPj4mIGlucHV0U291cmNlcywgQXV0b21hdGlv
bkNvbXBsZXRpb25IYW5kbGVyJiYpOwogICAgIHZvaWQgY2FuY2VsKCk7CiAKICAgICBib29sIGlz
QWN0aXZlKCkgY29uc3Q7CkBAIC0xNjUsNyArMTY2LDcgQEAgcHJpdmF0ZToKICAgICBXZWJQYWdl
UHJveHkmIG1fcGFnZTsKICAgICBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXI6OkNsaWVudCYgbV9j
bGllbnQ7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gbV9mcmFtZUlEOworICAgIE9wdGlvbmFs
PFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gbV9mcmFtZUlEOwogICAgIEF1dG9tYXRpb25Db21w
bGV0aW9uSGFuZGxlciBtX3J1bkNvbXBsZXRpb25IYW5kbGVyOwogICAgIEF1dG9tYXRpb25Db21w
bGV0aW9uSGFuZGxlciBtX2tleUZyYW1lVHJhbnNpdGlvbkNvbXBsZXRpb25IYW5kbGVyOwogICAg
IFJ1bkxvb3A6OlRpbWVyPFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlcj4gbV9rZXlGcmFtZVRyYW5z
aXRpb25EdXJhdGlvblRpbWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcAppbmRleCBjY2U1YzQ4MTdh
ODA0OTE3Y2RjMTk5YzFiMDE2MGUyNTZlOWJlMjk3Li42OGJkYWRjODI3MTc0MzcyMzc0NGVkNWM5
MjhmMTBhMGRmOWYyY2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRv
bWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcApAQCAtMjAyLDEwICsyMDIs
MTAgQEAgU3RyaW5nIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpoYW5kbGVGb3JXZWJQYWdlUHJveHko
Y29uc3QgV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHIKICAgICByZXR1cm4gaGFuZGxlOwogfQogCi1P
cHRpb25hbDx1aW50NjRfdD4gV2ViQXV0b21hdGlvblNlc3Npb246OndlYkZyYW1lSURGb3JIYW5k
bGUoY29uc3QgU3RyaW5nJiBoYW5kbGUpCitPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IFdlYkF1
dG9tYXRpb25TZXNzaW9uOjp3ZWJGcmFtZUlERm9ySGFuZGxlKGNvbnN0IFN0cmluZyYgaGFuZGxl
KQogewogICAgIGlmIChoYW5kbGUuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgcmV0dXJuIEZyYW1lSWRlbnRpZmllciB7IH07IC8vIFRoaXMgaXMgZXhwbGljaXRseSB6ZXJv
OyBzZWUgd2Via2l0Lm9yZy9iLzE1OTc3Ny4KIAogICAgIGF1dG8gaXRlciA9IG1faGFuZGxlV2Vi
RnJhbWVNYXAuZmluZChoYW5kbGUpOwogICAgIGlmIChpdGVyID09IG1faGFuZGxlV2ViRnJhbWVN
YXAuZW5kKCkpCkBAIC0yMTQsNyArMjE0LDcgQEAgT3B0aW9uYWw8dWludDY0X3Q+IFdlYkF1dG9t
YXRpb25TZXNzaW9uOjp3ZWJGcmFtZUlERm9ySGFuZGxlKGNvbnN0IFN0cmluZyYgaGFuZGwKICAg
ICByZXR1cm4gaXRlci0+dmFsdWU7CiB9CiAKLVN0cmluZyBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6
aGFuZGxlRm9yV2ViRnJhbWVJRCh1aW50NjRfdCBmcmFtZUlEKQorU3RyaW5nIFdlYkF1dG9tYXRp
b25TZXNzaW9uOjpoYW5kbGVGb3JXZWJGcmFtZUlEKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQog
ewogICAgIGlmICghZnJhbWVJRCkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CkBAIC0z
NjIsNyArMzYyLDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c3dpdGNoVG9Ccm93c2lu
Z0NvbnRleHQoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHQKICAgICBpZiAoIXBhZ2UpCiAg
ICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsK
IAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShv
cHRpb25hbEZyYW1lSGFuZGxlID8gKm9wdGlvbmFsRnJhbWVIYW5kbGUgOiBlbXB0eVN0cmluZygp
KTsKKyAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJhbWVI
YW5kbGUgPyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCkpOwogICAgIGlmICgh
ZnJhbWVJRCkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoRnJhbWVO
b3RGb3VuZCk7CiAKQEAgLTQ1OSw3ICs0NTksNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9u
Ojp3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGUoY29uc3QgU3RyaW5nJiBicm93c2luZ0Nvbgog
ICAgICAgICAmJiBwYWdlLT5wYWdlTG9hZFN0YXRlKCkuaXNMb2FkaW5nKCkgJiYgbV9jbGllbnQt
PmlzU2hvd2luZ0phdmFTY3JpcHREaWFsb2dPblBhZ2UoKnRoaXMsICpwYWdlKTsKIAogICAgIGlm
IChvcHRpb25hbEZyYW1lSGFuZGxlICYmICFvcHRpb25hbEZyYW1lSGFuZGxlLT5pc0VtcHR5KCkp
IHsKLSAgICAgICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFu
ZGxlKCpvcHRpb25hbEZyYW1lSGFuZGxlKTsKKyAgICAgICAgYXV0byBmcmFtZUlEID0gd2ViRnJh
bWVJREZvckhhbmRsZSgqb3B0aW9uYWxGcmFtZUhhbmRsZSk7CiAgICAgICAgIGlmICghZnJhbWVJ
RCkKICAgICAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKEZyYW1lTm90
Rm91bmQpOwogICAgICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IHBhZ2UtPnByb2Nlc3MoKS53
ZWJGcmFtZShmcmFtZUlELnZhbHVlKCkpOwpAQCAtNTM3LDcgKzUzNyw3IEBAIHZvaWQgV2ViQXV0
b21hdGlvblNlc3Npb246OnJlc3BvbmRUb1BlbmRpbmdQYWdlTmF2aWdhdGlvbkNhbGxiYWNrc1dp
dGhUaW1lb3V0KEhhCiAgICAgfQogfQogCi1zdGF0aWMgV2ViUGFnZVByb3h5KiBmaW5kUGFnZUZv
ckZyYW1lSUQoY29uc3QgV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCB1aW50NjRfdCBmcmFt
ZUlEKQorc3RhdGljIFdlYlBhZ2VQcm94eSogZmluZFBhZ2VGb3JGcmFtZUlEKGNvbnN0IFdlYlBy
b2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAg
Zm9yIChhdXRvJiBwcm9jZXNzIDogcHJvY2Vzc1Bvb2wucHJvY2Vzc2VzKCkpIHsKICAgICAgICAg
aWYgKGF1dG8qIGZyYW1lID0gcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCkpCkBAIC01NDYsNyAr
NTQ2LDcgQEAgc3RhdGljIFdlYlBhZ2VQcm94eSogZmluZFBhZ2VGb3JGcmFtZUlEKGNvbnN0IFdl
YlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgdWludDYKICAgICByZXR1cm4gbnVsbHB0cjsKIH0K
IAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVzcG9uZFRvUGVuZGluZ0ZyYW1lTmF2aWdh
dGlvbkNhbGxiYWNrc1dpdGhUaW1lb3V0KEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxJbnNwZWN0
b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiYgbWFwKQordm9pZCBXZWJBdXRv
bWF0aW9uU2Vzc2lvbjo6cmVzcG9uZFRvUGVuZGluZ0ZyYW1lTmF2aWdhdGlvbkNhbGxiYWNrc1dp
dGhUaW1lb3V0KEhhc2hNYXA8RnJhbWVJZGVudGlmaWVyLCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNr
ZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4mIG1hcCkKIHsKICAgICBJbnNwZWN0b3I6OkVy
cm9yU3RyaW5nIHRpbWVvdXRFcnJvciA9IFNUUklOR19GT1JfUFJFREVGSU5FRF9FUlJPUl9OQU1F
KFRpbWVvdXQpOwogICAgIGZvciAoYXV0byBpZCA6IGNvcHlUb1ZlY3RvcihtYXAua2V5cygpKSkg
ewpAQCAtOTI0LDcgKzkyNCw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmV2YWx1YXRl
SmF2YVNjcmlwdEZ1bmN0aW9uKGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250CiAgICAgaWYgKCFw
YWdlKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5kb3dOb3RG
b3VuZCk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JI
YW5kbGUob3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpvcHRpb25hbEZyYW1lSGFuZGxlIDogZW1wdHlT
dHJpbmcoKSk7CisgICAgYXV0byBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShvcHRpb25h
bEZyYW1lSGFuZGxlID8gKm9wdGlvbmFsRnJhbWVIYW5kbGUgOiBlbXB0eVN0cmluZygpKTsKICAg
ICBpZiAoIWZyYW1lSUQpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9S
KEZyYW1lTm90Rm91bmQpOwogCkBAIC05NjcsMTEgKzk2NywxMSBAQCB2b2lkIFdlYkF1dG9tYXRp
b25TZXNzaW9uOjpyZXNvbHZlQ2hpbGRGcmFtZUhhbmRsZShjb25zdCBTdHJpbmcmIGJyb3dzaW5n
Q29udGV4dAogICAgIGlmICghcGFnZSkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklO
RURfRVJST1IoV2luZG93Tm90Rm91bmQpOwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1l
SUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5kbGUgPyAqb3B0aW9uYWxG
cmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCkpOworICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZyYW1l
SURGb3JIYW5kbGUob3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpvcHRpb25hbEZyYW1lSGFuZGxlIDog
ZW1wdHlTdHJpbmcoKSk7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICBBU1lOQ19GQUlMX1dJ
VEhfUFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIAotICAgIFdURjo6Q29tcGxldGlv
bkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCB1aW50NjRfdCk+IGNvbXBsZXRpb25IYW5k
bGVyID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FsbGJhY2sgPSBj
YWxsYmFjay5jb3B5UmVmKCldKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCB1aW50NjRfdCBm
cmFtZUlEKSBtdXRhYmxlIHsKKyAgICBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9u
YWw8U3RyaW5nPiwgRnJhbWVJZGVudGlmaWVyKT4gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxsYmFjayA9IGNhbGxiYWNrLmNvcHlS
ZWYoKV0oT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGVycm9yVHlwZSkgewogICAgICAgICAgICAgY2FsbGJh
Y2stPnNlbmRGYWlsdXJlKFNUUklOR19GT1JfUFJFREVGSU5FRF9FUlJPUl9NRVNTQUdFKCplcnJv
clR5cGUpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTEwMDQsMTEgKzEwMDQsMTEgQEAgdm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVzb2x2ZVBhcmVudEZyYW1lSGFuZGxlKGNvbnN0IFN0
cmluZyYgYnJvd3NpbmdDb250ZXgKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIEFTWU5DX0ZBSUxf
V0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKIAotICAgIE9wdGlvbmFsPHVp
bnQ2NF90PiBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShmcmFtZUhhbmRsZSk7CisgICAg
YXV0byBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShmcmFtZUhhbmRsZSk7CiAgICAgaWYg
KCFmcmFtZUlEKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihGcmFt
ZU5vdEZvdW5kKTsKIAotICAgIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxT
dHJpbmc+LCB1aW50NjRfdCk+IGNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FsbGJhY2sgPSBjYWxsYmFjay5jb3B5UmVmKCldKE9wdGlv
bmFsPFN0cmluZz4gZXJyb3JUeXBlLCB1aW50NjRfdCBmcmFtZUlEKSBtdXRhYmxlIHsKKyAgICBX
VEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgRnJhbWVJZGVudGlm
aWVyKT4gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpLCBjYWxsYmFjayA9IGNhbGxiYWNrLmNvcHlSZWYoKV0oT3B0aW9uYWw8U3RyaW5nPiBl
cnJvclR5cGUsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSBtdXRhYmxlIHsKICAgICAgICAgaWYg
KGVycm9yVHlwZSkgewogICAgICAgICAgICAgY2FsbGJhY2stPnNlbmRGYWlsdXJlKFNUUklOR19G
T1JfUFJFREVGSU5FRF9FUlJPUl9NRVNTQUdFKCplcnJvclR5cGUpKTsKICAgICAgICAgICAgIHJl
dHVybjsKQEAgLTEwMzUsNyArMTAzNSw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmNv
bXB1dGVFbGVtZW50TGF5b3V0KGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuCiAgICAg
aWYgKCFwYWdlKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5k
b3dOb3RGb3VuZCk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCA9IHdlYkZyYW1l
SURGb3JIYW5kbGUoZnJhbWVIYW5kbGUpOworICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZyYW1lSURG
b3JIYW5kbGUoZnJhbWVIYW5kbGUpOwogICAgIGlmICghZnJhbWVJRCkKICAgICAgICAgQVNZTkNf
RkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoRnJhbWVOb3RGb3VuZCk7CiAKQEAgLTEwODcsNyAr
MTA4Nyw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnNlbGVjdE9wdGlvbkVsZW1lbnQo
Y29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kCiAgICAgaWYgKCFwYWdlKQogICAgICAg
ICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5kb3dOb3RGb3VuZCk7CiAKLSAg
ICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUoZnJhbWVI
YW5kbGUpOworICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUoZnJhbWVIYW5k
bGUpOwogICAgIGlmICghZnJhbWVJRCkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklO
RURfRVJST1IoRnJhbWVOb3RGb3VuZCk7CiAKQEAgLTEyNzEsNyArMTI3MSw3IEBAIHZvaWQgV2Vi
QXV0b21hdGlvblNlc3Npb246OmdldEFsbENvb2tpZXMoY29uc3QgU3RyaW5nJiBicm93c2luZ0Nv
bnRleHRIYW5kbGUsIFJlCiAgICAgfTsKIAogICAgIC8vIEFsd2F5cyBzZW5kIHRoZSBtYWluIGZy
YW1lIElEIGFzIDAgc28gaXQgaXMgcmVzb2x2ZWQgb24gdGhlIFdlYlByb2Nlc3Mgc2lkZS4gVGhp
cyBhdm9pZHMgYSByYWNlIHdoZW4gcGFnZS0+bWFpbkZyYW1lKCkgaXMgbnVsbCBzdGlsbC4KLSAg
ICBjb25zdCB1aW50NjRfdCBtYWluRnJhbWVJRCA9IDA7CisgICAgY29uc3QgRnJhbWVJZGVudGlm
aWVyIG1haW5GcmFtZUlEOwogICAgIHBhZ2UtPnByb2Nlc3MoKS5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OkdldENvb2tpZXNGb3JGcmFtZShw
YWdlLT5wYWdlSUQoKSwgbWFpbkZyYW1lSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
CiB9CiAKQEAgLTEyOTEsNyArMTI5MSw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmRl
bGV0ZVNpbmdsZUNvb2tpZShjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsCiAgICAg
fTsKIAogICAgIC8vIEFsd2F5cyBzZW5kIHRoZSBtYWluIGZyYW1lIElEIGFzIDAgc28gaXQgaXMg
cmVzb2x2ZWQgb24gdGhlIFdlYlByb2Nlc3Mgc2lkZS4gVGhpcyBhdm9pZHMgYSByYWNlIHdoZW4g
cGFnZS0+bWFpbkZyYW1lKCkgaXMgbnVsbCBzdGlsbC4KLSAgICBjb25zdCB1aW50NjRfdCBtYWlu
RnJhbWVJRCA9IDA7CisgICAgY29uc3QgRnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlEOwogICAg
IHBhZ2UtPnByb2Nlc3MoKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHk6OkRlbGV0ZUNvb2tpZShwYWdlLT5wYWdlSUQoKSwgbWFpbkZyYW1lSUQs
IGNvb2tpZU5hbWUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKQEAgLTE0NTcs
NyArMTQ1Nyw3IEBAIFNpbXVsYXRlZElucHV0U291cmNlKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6
aW5wdXRTb3VyY2VGb3JUeXBlKFNpbXVsYXRlZElucHV0U291CiB9CiAKIC8vIE1BUks6IFNpbXVs
YXRlZElucHV0RGlzcGF0Y2hlcjo6Q2xpZW50IEFQSQotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lv
bjo6dmlld3BvcnRJblZpZXdDZW50ZXJQb2ludE9mRWxlbWVudChXZWJQYWdlUHJveHkmIHBhZ2Us
IHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbm9kZUhhbmRsZSwgRnVuY3Rpb248dm9p
ZCAoT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBPcHRpb25hbDxBdXRvbWF0aW9uQ29tbWFu
ZEVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9u
Ojp2aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVtZW50KFdlYlBhZ2VQcm94eSYgcGFnZSwg
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbm9kZUhhbmRsZSwgRnVuY3Rp
b248dm9pZCAoT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBPcHRpb25hbDxBdXRvbWF0aW9u
Q29tbWFuZEVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV1RGOjpDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkludFJlY3QsIE9wdGlv
bmFsPFdlYkNvcmU6OkludFBvaW50PiwgYm9vbCk+IGRpZENvbXB1dGVFbGVtZW50TGF5b3V0SGFu
ZGxlciA9IFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShP
cHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgV2ViQ29yZTo6SW50UmVjdCwgT3B0aW9uYWw8V2Vi
Q29yZTo6SW50UG9pbnQ+IGluVmlld0NlbnRlclBvaW50LCBib29sKSBtdXRhYmxlIHsKICAgICAg
ICAgaWYgKGVycm9yVHlwZSkgewpAQCAtMTk3Niw3ICsxOTc2LDcgQEAgdm9pZCBXZWJBdXRvbWF0
aW9uU2Vzc2lvbjo6dGFrZVNjcmVlbnNob3QoY29uc3QgU3RyaW5nJiBoYW5kbGUsIGNvbnN0IFN0
cmluZyogb3AKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJ
TkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFt
ZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShvcHRpb25hbEZyYW1lSGFuZGxlID8gKm9wdGlvbmFs
RnJhbWVIYW5kbGUgOiBlbXB0eVN0cmluZygpKTsKKyAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFt
ZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5kbGUgPyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6
IGVtcHR5U3RyaW5nKCkpOwogICAgIGlmICghZnJhbWVJRCkKICAgICAgICAgQVNZTkNfRkFJTF9X
SVRIX1BSRURFRklORURfRVJST1IoRnJhbWVOb3RGb3VuZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaApp
bmRleCBmMzljMDYxYjU3ODkyYTkyNDhmZDA5ZGZmY2ZhN2I4YzUwYTA3NTM3Li4xMjIyYzI4NDIy
YmY5NmM2Y2M0YjFhNWRmY2E0MjI3MGZkMDIzYWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oCkBAIC0z
NCw2ICszNCw3IEBACiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCiAjaW5jbHVkZSAiU2lt
dWxhdGVkSW5wdXREaXNwYXRjaGVyLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50
aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgpAQCAtMTUyLDcgKzE1Myw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoV0VC
RFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykKICAgICB2b2lkIHNpbXVsYXRlS2V5Ym9hcmRJ
bnRlcmFjdGlvbihXZWJQYWdlUHJveHkmLCBLZXlib2FyZEludGVyYWN0aW9uLCBXVEY6OlZhcmlh
bnQ8VmlydHVhbEtleSwgQ2hhcktleT4mJiwgQXV0b21hdGlvbkNvbXBsZXRpb25IYW5kbGVyJiYp
IGZpbmFsOwogI2VuZGlmCi0gICAgdm9pZCB2aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVt
ZW50KFdlYlBhZ2VQcm94eSYsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbm9kZUhh
bmRsZSwgRnVuY3Rpb248dm9pZCAoT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBPcHRpb25h
bDxBdXRvbWF0aW9uQ29tbWFuZEVycm9yPik+JiYpIGZpbmFsOworICAgIHZvaWQgdmlld3BvcnRJ
blZpZXdDZW50ZXJQb2ludE9mRWxlbWVudChXZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbm9kZUhhbmRsZSwgRnVuY3Rpb248dm9pZCAoT3B0aW9u
YWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBPcHRpb25hbDxBdXRvbWF0aW9uQ29tbWFuZEVycm9yPik+
JiYpIGZpbmFsOwogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkRSSVZFUl9BQ1RJT05TX0FQSSkKIApA
QCAtMjIwLDE0ICsyMjEsMTQgQEAgcHJpdmF0ZToKICAgICBSZWY8SW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6QnJvd3NpbmdDb250ZXh0PiBidWlsZEJyb3dzaW5nQ29udGV4dEZvclBh
Z2UoV2ViUGFnZVByb3h5JiwgV2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRvd0ZyYW1lKTsKICAgICB2
b2lkIGdldE5leHRDb250ZXh0KFJlZjxXZWJBdXRvbWF0aW9uU2Vzc2lvbj4mJiwgVmVjdG9yPFJl
ZjxXZWJQYWdlUHJveHk+PiYmLCBSZWY8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpCcm93c2luZ0NvbnRleHQ+PiwgUmVmPFdlYkF1dG9tYXRpb25TZXNzaW9u
OjpHZXRCcm93c2luZ0NvbnRleHRzQ2FsbGJhY2s+JiYpOwogCi0gICAgT3B0aW9uYWw8dWludDY0
X3Q+IHdlYkZyYW1lSURGb3JIYW5kbGUoY29uc3QgU3RyaW5nJik7Ci0gICAgU3RyaW5nIGhhbmRs
ZUZvcldlYkZyYW1lSUQodWludDY0X3QgZnJhbWVJRCk7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyPiB3ZWJGcmFtZUlERm9ySGFuZGxlKGNvbnN0IFN0cmluZyYpOworICAg
IFN0cmluZyBoYW5kbGVGb3JXZWJGcmFtZUlEKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAg
ICAgU3RyaW5nIGhhbmRsZUZvcldlYkZyYW1lUHJveHkoY29uc3QgV2ViRnJhbWVQcm94eSYpOwog
CiAgICAgdm9pZCB3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVPblBhZ2UoV2ViUGFnZVByb3h5
JiwgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6UGFnZUxvYWRTdHJhdGVneSwgU2Vj
b25kcywgUmVmPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4mJik7
CiAgICAgdm9pZCB3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVPbkZyYW1lKFdlYkZyYW1lUHJv
eHkmLCBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpQYWdlTG9hZFN0cmF0ZWd5LCBT
ZWNvbmRzLCBSZWY8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPiYm
KTsKICAgICB2b2lkIHJlc3BvbmRUb1BlbmRpbmdQYWdlTmF2aWdhdGlvbkNhbGxiYWNrc1dpdGhU
aW1lb3V0KEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFJlZlB0cjxJbnNwZWN0b3I6
OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiYpOwotICAgIHZvaWQgcmVzcG9uZFRv
UGVuZGluZ0ZyYW1lTmF2aWdhdGlvbkNhbGxiYWNrc1dpdGhUaW1lb3V0KEhhc2hNYXA8dWludDY0
X3QsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiYp
OworICAgIHZvaWQgcmVzcG9uZFRvUGVuZGluZ0ZyYW1lTmF2aWdhdGlvbkNhbGxiYWNrc1dpdGhU
aW1lb3V0KEhhc2hNYXA8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWZQdHI8SW5zcGVjdG9y
OjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4mKTsKICAgICB2b2lkIGxvYWRUaW1l
ckZpcmVkKCk7CiAKICAgICB2b2lkIGV4aXRGdWxsc2NyZWVuV2luZG93Rm9yUGFnZShXZWJQYWdl
UHJveHkmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CkBAIC0yODQsMTMgKzI4
NSwxMyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFN0
cmluZz4gbV93ZWJQYWdlSGFuZGxlTWFwOwogICAgIEhhc2hNYXA8U3RyaW5nLCBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllcj4gbV9oYW5kbGVXZWJQYWdlTWFwOwogCi0gICAgSGFzaE1hcDx1aW50NjRf
dCwgU3RyaW5nPiBtX3dlYkZyYW1lSGFuZGxlTWFwOwotICAgIEhhc2hNYXA8U3RyaW5nLCB1aW50
NjRfdD4gbV9oYW5kbGVXZWJGcmFtZU1hcDsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgU3RyaW5nPiBtX3dlYkZyYW1lSGFuZGxlTWFwOworICAgIEhhc2hNYXA8U3RyaW5n
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IG1faGFuZGxlV2ViRnJhbWVNYXA7CiAKICAgICBI
YXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5k
RGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4gbV9wZW5kaW5nTm9ybWFsTmF2aWdhdGlvbkluQnJv
d3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyUGFnZTsKICAgICBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tC
YXNlPj4gbV9wZW5kaW5nRWFnZXJOYXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQ
ZXJQYWdlOwotICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmRE
aXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiBtX3BlbmRpbmdOb3JtYWxOYXZpZ2F0aW9uSW5Ccm93
c2luZ0NvbnRleHRDYWxsYmFja3NQZXJGcmFtZTsKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQ
dHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4gbV9wZW5kaW5n
RWFnZXJOYXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJGcmFtZTsKKyAgICBI
YXNoTWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2Vu
ZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGluZ05vcm1hbE5hdmlnYXRpb25JbkJy
b3dzaW5nQ29udGV4dENhbGxiYWNrc1BlckZyYW1lOworICAgIEhhc2hNYXA8V2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJh
Y2tCYXNlPj4gbV9wZW5kaW5nRWFnZXJOYXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFj
a3NQZXJGcmFtZTsKICAgICBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBSZWZQdHI8
SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4gbV9wZW5kaW5nSW5z
cGVjdG9yQ2FsbGJhY2tzUGVyUGFnZTsKICNpZiBFTkFCTEUoV0VCRFJJVkVSX0tFWUJPQVJEX0lO
VEVSQUNUSU9OUykKICAgICBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBGdW5jdGlv
bjx2b2lkKE9wdGlvbmFsPEF1dG9tYXRpb25Db21tYW5kRXJyb3I+KT4+IG1fcGVuZGluZ0tleWJv
YXJkRXZlbnRzRmx1c2hlZENhbGxiYWNrc1BlclBhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCBhNTFhMjIzNjIzODQxNTFhYjExZDQ4OTQzNjlm
OGExODU4MDA2N2RhLi4zMDJmNjgyMjgyYmNjN2VlMzhkM2Y2NzI3ZDZkMjNmODRiMjg5ZGE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAgLTEwMzIs
NyArMTAzMiw3IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmNoZWNrVXNlck1lZGlhUGVy
bWlzc2lvbkZvck9yaWdpbihXZWJQYWdlUHJveHkmIHBhZ2UsCiAgICAgVVJMIHJlcXVlc3RGcmFt
ZVVSTCB7IFVSTCgpLCBmcmFtZS51cmwoKSB9OwogICAgIFVSTCBtYWluRnJhbWVVUkwgeyBVUkwo
KSwgbWFpbkZyYW1lLT51cmwoKSB9OwogCi0gICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4p
ZGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyBjaGVja1VzZXJNZWRpYVBl
cm1pc3Npb25Gb3JVUkw6cmVxdWVzdEZyYW1lVVJMIG1haW5GcmFtZVVSTDptYWluRnJhbWVVUkwg
ZnJhbWVJZGVudGlmaWVyOmZyYW1lLmZyYW1lSUQoKSBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25I
YW5kbGVyLmdldCgpXTsKKyAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBf
d2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZv
clVSTDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVSTCBmcmFtZUlkZW50
aWZpZXI6ZnJhbWUuZnJhbWVJRCgpLnRvVUludDY0KCkgZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9u
SGFuZGxlci5nZXQoKV07CiB9CiAKIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6Om1lZGlhQ2Fw
dHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFn
cyBzdGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dLUmVs
b2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW0KaW5kZXggODRk
MjBjNGNlOGIxZjAwMTdlMWJhNzdiOWQwZGY0ZjEwMTM4YTkwMC4uOWM0MDkyZWZkNDM2ZDAyMjQw
YjgwNmEyYzI0MGY2NDM2ZDJlZGI1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRl
bXB0ZXIubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIldlYkZyYW1lUHJveHkuaCIKICNp
bXBvcnQgIldlYlBhZ2VQcm94eS5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW1w
b3J0IDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5o
PgogI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+CiAKQEAgLTYyLDggKzYzLDcgQEAgLSAoQk9P
TClhdHRlbXB0UmVjb3ZlcnkKICAgICBpZiAoIXdlYlZpZXcpCiAgICAgICAgIHJldHVybiBOTzsK
IAotICAgIHVpbnQ2NF90IGZyYW1lSUQgPSBbX2ZyYW1lSGFuZGxlIF9mcmFtZUlEXTsKLSAgICBX
ZWJLaXQ6OldlYkZyYW1lUHJveHkqIHdlYkZyYW1lUHJveHkgPSB3ZWJWaWV3LT5fcGFnZS0+cHJv
Y2VzcygpLndlYkZyYW1lKGZyYW1lSUQpOworICAgIFdlYktpdDo6V2ViRnJhbWVQcm94eSogd2Vi
RnJhbWVQcm94eSA9IHdlYlZpZXctPl9wYWdlLT5wcm9jZXNzKCkud2ViRnJhbWUoV2ViQ29yZTo6
ZnJhbWVJZGVudGlmaWVyRnJvbUlEKFtfZnJhbWVIYW5kbGUgX2ZyYW1lSURdKSk7CiAgICAgaWYg
KCF3ZWJGcmFtZVByb3h5KQogICAgICAgICByZXR1cm4gTk87CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KaW5kZXggYTFhZjk4ZDIx
MDkzZTVhZWVlOGIzZDQ4MGI4MTYxZmUyNmU5ZWE1MS4uZDk2MTM5MThmNzVmYTVlOGRmNTgzNGYy
NTI0NDM4ZTA2ZTk4NmI5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViUGFnZVByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViUGFnZVByb3h5Q29jb2EubW0KQEAgLTEwMSwxMiArMTAxLDEyIEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpiZWdpblNhZmVCcm93c2luZ0NoZWNrKGNvbnN0IFVSTCYgdXJsLCBib29sIGZvck1h
aW5GcmFtZU5hdmlnCiB9CiAKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCi12b2lkIFdl
YlBhZ2VQcm94eTo6Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKGNvbnN0IFdlYkNv
cmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYgdW5ibG9ja0hhbmRsZXIsIHVpbnQ2NF90
IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZv
ckZyYW1lKGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYgdW5ibG9j
a0hhbmRsZXIsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIGNvbnRlbnRGaWx0ZXJE
aWRCbG9ja0xvYWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCB1bmJsb2NrSGFu
ZGxlciwgZnJhbWVJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlk
QmxvY2tMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBj
b25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIHVuYmxvY2tIYW5kbGVy
LCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRC
bG9ja0xvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIGNv
bnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYgdW5ibG9ja0hhbmRsZXIs
IEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIGlmIChXZWJGcmFtZVByb3h5KiBmcmFt
ZSA9IHByb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpKQogICAgICAgICBmcmFtZS0+Y29udGVudEZp
bHRlckRpZEJsb2NrTG9hZCh1bmJsb2NrSGFuZGxlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA5NGZh
ZjZiOWRlMjYyMDFkODRkMjZmZjgzOTMzZjgyMjljMDVkNmI5Li45MWVjZTFmMGRhZmZlM2VhNjNh
ZGJjMGQ5MWVhYzRkMTgxMTEzMDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTMxMiw3ICszMTIsNyBA
QCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZENyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzKGNvbnN0IElQQzo6QXR0YQogI2VuZGlmCiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nl
c3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVu
Z2UmJiBjb3JlQ2hhbGxlbmdlLCB1aW50NjRfdCBjaGFsbGVuZ2VJRCkKK3ZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OkF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlJiYgY29yZUNoYWxsZW5nZSwgdWludDY0X3QgY2hhbGxlbmdlSUQpCiB7CiAj
aWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIGlmIChhdXRvKiBzZXJ2aWNlV29ya2VyUHJv
Y2Vzc1Byb3h5ID0gbV9wcm9jZXNzUG9vbC5zZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5RnJvbVBh
Z2VJRChwYWdlSUQpKSB7CkBAIC03MzcsNyArNzM3LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpzZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVn
aXMKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRH
cmFuZGZhdGhlcmVkKHNlc3Npb25JRCwgcmVzb3VyY2VEb21haW4sIGlzR3JhbmRmYXRoZXJlZCks
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oUGFnZUlkZW50aWZpZXIgcGFnZUlELCB1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4s
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQ
cm94eTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwg
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFt
ZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlBh
Z2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZShwYWdlSUQpOwogICAgIGlm
ICghcGFnZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCA0MzM1NDVjMGUzM2ZhYWVlZDlkZWJiMzRmNmIyMGNm
Y2FlNWU5NWM4Li40MGY4MWRlOWI0N2YxOTIyMTkwMjZhNmU4YTA3YjJhNWUyZDZhOTkwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuaApAQCAtODIsNyArODIsNiBAQCBwdWJsaWM6CiAgICAgdXNpbmcgTmF2aWdhdGVkVG9E
b21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKICAgICB1c2luZyBEb21haW5Jbk5l
ZWRPZlN0b3JhZ2VBY2Nlc3MgPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKICAgICB1c2lu
ZyBPcGVuZXJEb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKLSAgICB1c2luZyBG
cmFtZUlEID0gdWludDY0X3Q7CiAKICAgICBleHBsaWNpdCBOZXR3b3JrUHJvY2Vzc1Byb3h5KFdl
YlByb2Nlc3NQb29sJik7CiAgICAgfk5ldHdvcmtQcm9jZXNzUHJveHkoKTsKQEAgLTEzMCw3ICsx
MjksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9k
ZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0VmVyeVByZXZhbGVudFJlc291cmNlKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CiAgICAgdm9pZCBnZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcyhQQUw6OlNlc3Np
b25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiBkb21haW5zKT4mJik7
Ci0gICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIEZyYW1lSUQsIGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21h
aW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHJlcXVlc3RT
dG9yYWdlQWNjZXNzQ29uZmlybShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWlu
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCByZXNldFBhcmFt
ZXRlcnNUb0RlZmF1bHRWYWx1ZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CiAgICAgdm9pZCBzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFBB
TDo6U2Vzc2lvbklELCBTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3MsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0
ZW50KFBBTDo6U2Vzc2lvbklELCBPcHRpb25hbDxXYWxsVGltZT4gbW9kaWZpZWRTaW5jZSwgU2hv
dWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpA
QCAtMjEzLDcgKzIxMiw3IEBAIHByaXZhdGU6CiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycwogICAg
IHZvaWQgZGlkUmVjZWl2ZU5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6RGVjb2RlciYpOwogICAgIHZvaWQgZGlkQ3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MoY29uc3QgSVBDOjpBdHRhY2htZW50Jik7Ci0gICAgdm9pZCBkaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90
IGZyYW1lSUQsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYsIHVpbnQ2NF90IGNo
YWxsZW5nZUlEKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3Jl
OjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYmLCB1aW50NjRfdCBjaGFsbGVuZ2VJRCk7CiAgICAg
dm9pZCBkaWRGZXRjaFdlYnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFdlYnNp
dGVEYXRhJik7CiAgICAgdm9pZCBkaWREZWxldGVXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFj
a0lEKTsKICAgICB2b2lkIGRpZERlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyh1aW50NjRfdCBj
YWxsYmFja0lEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCAxMWQ4YzVkZWUx
ZGJhODFmOGY2M2Y3ZDk0OGVmNjYxNjE5ODFkMTM0Li5iZmFmOWYwNDk2ZTU2YTliOTMxZWY2ZmY3
NzUxYzNhY2Y1ZDEzOWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0yMyw3
ICsyMyw3IEBACiBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVy
IHsKICAgICBEaWRDcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhJUEM6OkF0dGFj
aG1lbnQgY29ubmVjdGlvbklkZW50aWZpZXIpCiAKLSAgICBEaWRSZWNlaXZlQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFt
ZUlELCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjaGFsbGVuZ2UsIHVpbnQ2NF90
IGNoYWxsZW5nZUlEKQorICAgIERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjaGFsbGVuZ2UsIHVpbnQ2NF90
IGNoYWxsZW5nZUlEKQogCiAgICAgRGlkRmV0Y2hXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFj
a0lELCBzdHJ1Y3QgV2ViS2l0OjpXZWJzaXRlRGF0YSB3ZWJzaXRlRGF0YSkKICAgICBEaWREZWxl
dGVXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lEKQpAQCAtNDgsNyArNDgsNyBAQCBtZXNz
YWdlcyAtPiBOZXR3b3JrUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBOb3RpZnlX
ZWJzaXRlRGF0YURlbGV0aW9uRm9yUmVnaXN0cmFibGVEb21haW5zRmluaXNoZWQoKQogICAgIE5v
dGlmeVdlYnNpdGVEYXRhU2NhbkZvclJlZ2lzdHJhYmxlRG9tYWluc0ZpbmlzaGVkKCkKICAgICBO
b3RpZnlSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5RmluaXNoZWQodW5zaWduZWQgdG90
YWxQcmV2YWxlbnRSZXNvdXJjZXMsIHVuc2lnbmVkIHRvdGFsUHJldmFsZW50UmVzb3VyY2VzV2l0
aFVzZXJJbnRlcmFjdGlvbiwgdW5zaWduZWQgdG9wM1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdp
bnMpCi0gICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4g
c3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWlu
KSAtPiAoYm9vbCB1c2VyRGlkR3JhbnRBY2Nlc3MpIEFzeW5jCisgICAgUmVxdWVzdFN0b3JhZ2VB
Y2Nlc3NDb25maXJtKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkZyYW1l
RG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbikgLT4gKGJv
b2wgdXNlckRpZEdyYW50QWNjZXNzKSBBc3luYwogICAgIERlbGV0ZVdlYnNpdGVEYXRhSW5VSVBy
b2Nlc3NGb3JSZWdpc3RyYWJsZURvbWFpbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRp
b25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgT3B0aW9uU2V0PFdlYktp
dDo6V2Vic2l0ZURhdGFGZXRjaE9wdGlvbj4gZmV0Y2hPcHRpb25zLCBWZWN0b3I8V2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4+IGRvbWFpbnMpIC0+IChIYXNoU2V0PFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluPiBkb21haW5zV2l0aE1hdGNoaW5nRGF0YVJlY29yZHMpIEFzeW5jCiAgICAgRGlk
Q29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXJGcm9tUHJldmFsZW50UmVzb3VyY2Uo
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKaW5kZXggNjY2ZmJkM2RhMTBm
YjVkNTlhZjIxMDUyN2EzYzE1NDVjMTQ4MTNlMi4uZDdmMGMzYzk1MDI3NGRlOGUwYTk1Y2I4NWFk
YzI3NjU1OGY3MmQ5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlz
aW9uYWxQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lv
bmFsUGFnZVByb3h5LmNwcApAQCAtMTc2LDcgKzE3Niw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdl
UHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0oQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBX
ZWJCCiAgICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQoKTsKIH0KIAot
aW5saW5lIGJvb2wgUHJvdmlzaW9uYWxQYWdlUHJveHk6OnZhbGlkYXRlSW5wdXQodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgT3B0aW9uYWw8dWludDY0X3Q+JiBuYXZpZ2F0aW9uSUQpCitpbmxpbmUg
Ym9vbCBQcm92aXNpb25hbFBhZ2VQcm94eTo6dmFsaWRhdGVJbnB1dChGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgY29uc3QgT3B0aW9uYWw8dWludDY0X3Q+JiBuYXZpZ2F0aW9uSUQpCiB7CiAgICAg
Ly8gSWYgdGhlIHByZXZpb3VzIHByb3Zpc2lvbmFsIGxvYWQgdXNlZCBhbiBleGlzdGluZyBwcm9j
ZXNzLCB3ZSBtYXkgcmVjZWl2ZSBsZWZ0b3ZlciBJUEMgZm9yIGEgcHJldmlvdXMgbmF2aWdhdGlv
biwgd2hpY2ggd2UgbmVlZCB0byBpZ25vcmUuCiAgICAgaWYgKCFtX21haW5GcmFtZSB8fCBtX21h
aW5GcmFtZS0+ZnJhbWVJRCgpICE9IGZyYW1lSUQpCkBAIC0xODUsOSArMTg1LDkgQEAgaW5saW5l
IGJvb2wgUHJvdmlzaW9uYWxQYWdlUHJveHk6OnZhbGlkYXRlSW5wdXQodWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgT3B0aW9uYWwKICAgICByZXR1cm4gIW5hdmlnYXRpb25JRCB8fCAhKm5hdmlnYXRp
b25JRCB8fCAqbmF2aWdhdGlvbklEID09IG1fbmF2aWdhdGlvbklEOwogfQogCi12b2lkIFByb3Zp
c2lvbmFsUGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJRCkKK3Zv
aWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGlu
ZywgImRpZENyZWF0ZU1haW5GcmFtZTogcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAl
IiBQUkl1NjQsIG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgImRpZENyZWF0ZU1haW5GcmFtZTog
cGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcGFnZS5wYWdlSUQo
KS50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCkpOwogICAgIEFTU0VSVCghbV9tYWluRnJh
bWUpOwogCiAgICAgbV9tYWluRnJhbWUgPSBXZWJGcmFtZVByb3h5OjpjcmVhdGUobV9wYWdlLCBm
cmFtZUlEKTsKQEAgLTIxMiw3ICsyMTIsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpk
aWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJRCkKICAgICB9CiB9CiAKLXZvaWQgUHJv
dmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBTdHJpbmcm
IHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgdWlu
dDY0X3QgZnJhbWVJRCkKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGll
bnRSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBk
ZXN0aW5hdGlvblVSTFN0cmluZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgaWYg
KCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQpKQogICAgICAgICByZXR1cm47CkBAIC0yMjAsMTIgKzIy
MCwxMiBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJl
Y3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbgogICAgIG1fcGFnZS5kaWRQZXJmb3JtQ2xp
ZW50UmVkaXJlY3RTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgc291cmNlVVJMU3RyaW5nLCBk
ZXN0aW5hdGlvblVSTFN0cmluZywgZnJhbWVJRCk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdl
UHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwsIFVSTCYmIHVucmVhY2hhYmxlVVJMLCBj
b25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRT
dGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0
IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCwg
bmF2aWdhdGlvbklEKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRChQcm9jZXNzU3dhcHBpbmcsICJkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiBw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9uSUQg
PSAlIiBQUkl1NjQsIG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFtZUlELCBuYXZpZ2F0
aW9uSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2Vzc1N3YXBwaW5nLCAiZGlk
U3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZTogcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEID0gJSIgUFJJdTY0LCBtX3BhZ2UucGFnZUlE
KCkudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpLCBuYXZpZ2F0aW9uSUQpOwogICAgIEFT
U0VSVChtX3Byb3Zpc2lvbmFsTG9hZFVSTC5pc051bGwoKSk7CiAgICAgbV9wcm92aXNpb25hbExv
YWRVUkwgPSB1cmw7CiAKQEAgLTI0MCwxMiArMjQwLDEyIEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdl
UHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
dWluCiAgICAgbV9wYWdlLmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQobV9w
cm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKHVybCksIFdU
Rk1vdmUodW5yZWFjaGFibGVVUkwpLCB1c2VyRGF0YSk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQ
YWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4s
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IsIFdlYkNvcmU6OldpbGxDb250aW51ZUxv
YWRpbmcgd2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9p
ZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
IGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5n
JiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IsIFdl
YkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcgd2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNl
ckRhdGEmIHVzZXJEYXRhKQogewogICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlELCBuYXZp
Z2F0aW9uSUQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9B
TExPV0VEKFByb2Nlc3NTd2FwcGluZywgImRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZTog
cGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklE
ID0gJSIgUFJJdTY0LCBtX3BhZ2UucGFnZUlEKCkudG9VSW50NjQoKSwgZnJhbWVJRCwgbmF2aWdh
dGlvbklEKTsKKyAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGlu
ZywgImRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZTogcGFnZUlEID0gJSIgUFJJdTY0ICIs
IGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEID0gJSIgUFJJdTY0LCBtX3BhZ2Uu
cGFnZUlEKCkudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpLCBuYXZpZ2F0aW9uSUQpOwog
ICAgIEFTU0VSVCghbV9wcm92aXNpb25hbExvYWRVUkwuaXNOdWxsKCkpOwogICAgIG1fcHJvdmlz
aW9uYWxMb2FkVVJMID0geyB9OwogCkBAIC0yNTYsMTIgKzI1NiwxMiBAQCB2b2lkIFByb3Zpc2lv
bmFsUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgY29ucwogICAgIG1fcGFnZS5kaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFy
ZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0eU9yaWdpbiwgbmF2
aWdhdGlvbklELCBwcm92aXNpb25hbFVSTCwgZXJyb3IsIHdpbGxDb250aW51ZUxvYWRpbmcsIHVz
ZXJEYXRhKTsgLy8gTWF5IGRlbGV0ZSB8dGhpc3wuCiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdl
UHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21D
b250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNl
cnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1l
bnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1
cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFByb3Zpc2lvbmFsUGFn
ZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhh
c0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2Vi
Q29yZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVn
aW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRI
YXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBpZiAo
IXZhbGlkYXRlSW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICJkaWRDb21taXRM
b2FkRm9yRnJhbWU6IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IG5hdmlnYXRpb25JRCA9ICUiIFBSSXU2NCwgbV9wYWdlLnBhZ2VJRCgpLnRvVUludDY0KCksIGZy
YW1lSUQsIG5hdmlnYXRpb25JRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNz
U3dhcHBpbmcsICJkaWRDb21taXRMb2FkRm9yRnJhbWU6IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIsIG5hdmlnYXRpb25JRCA9ICUiIFBSSXU2NCwgbV9wYWdlLnBh
Z2VJRCgpLnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSwgbmF2aWdhdGlvbklEKTsKICAg
ICBtX3Byb3Zpc2lvbmFsTG9hZFVSTCA9IHsgfTsKICAgICBtX3Byb2Nlc3MtPnJlbW92ZU1lc3Nh
Z2VSZWNlaXZlcihNZXNzYWdlczo6V2ViUGFnZVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCks
IG1fcGFnZS5wYWdlSUQoKSk7CiAKQEAgLTI2OSw3ICsyNjksNyBAQCB2b2lkIFByb3Zpc2lvbmFs
UGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0
X3QgbmF2aQogICAgIG1fcGFnZS5jb21taXRQcm92aXNpb25hbFBhZ2UoZnJhbWVJRCwgbmF2aWdh
dGlvbklELCBtaW1lVHlwZSwgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIGZyYW1lTG9h
ZFR5cGUsIGNlcnRpZmljYXRlSW5mbywgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgZm9yY2VkSGFz
SW5zZWN1cmVDb250ZW50LCB1c2VyRGF0YSk7IC8vIFdpbGwgZGVsZXRlIHx0aGlzfC4KIH0KIAot
dm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEo
Y29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYgc3RvcmUsIHVpbnQ2NF90IGZyYW1lSUQpCit2
b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShj
b25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiBzdG9yZSwgRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQpKQogICAgICAgICByZXR1cm47
CkBAIC0yNzcsNyArMjc3LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkTmF2aWdh
dGVXaXRoTmF2aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdhdGlvbkRhdGEKICAgICBtX3BhZ2Uu
ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwg
c3RvcmUsIGZyYW1lSUQpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDaGFu
Z2VQcm92aXNpb25hbFVSTEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgVVJMJiYgdXJsKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ2hhbmdl
UHJvdmlzaW9uYWxVUkxGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBVUkwmJiB1cmwpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1l
SUQsIG5hdmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKQEAgLTI4NSw3ICsyODUsNyBAQCB2
b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIHVpbgogICAgIG1fcGFnZS5kaWRDaGFuZ2VQcm92aXNpb25hbFVS
TEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIG5hdmlnYXRpb25J
RCwgV1RGTW92ZSh1cmwpKTsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBX
ZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKICAgICB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEs
IEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
b3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2lu
YWxSZXF1ZXN0LAogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6
Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgdWludDY0X3Qg
bGlzdGVuZXJJRCkKIHsKQEAgLTI5Niw3ICsyOTYsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVBy
b3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmModWludDY0X3QgZnJhbWVJ
RAogICAgICAgICBXVEZNb3ZlKGZyYW1lSW5mb0RhdGEpLCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3Jp
Z2luYWxSZXF1ZXN0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RG
TW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNlckRhdGEsIGxpc3RlbmVySUQpOwogfQogCi12b2lk
IFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlP
cmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAordm9pZCBQ
cm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1
cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCiAg
ICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29s
IGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0
X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIGlmICghdmFs
aWRhdGVJbnB1dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQpKQpAQCAtMzA1LDcgKzMwNSw3IEBAIHZv
aWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFdlYkNvCiAgICAgbV9wYWdlLmRlY2lkZVBvbGljeUZvclJlc3BvbnNl
U2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4s
IGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1F
VHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsKIH0KIAotdm9p
ZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0
cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5n
LCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9y
bVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJp
bmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAg
ICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCkpCiAgICAgICAgIHJldHVybjsKQEAgLTMxMyw3
ICszMTMsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVk
aXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbgogICAgIG1fcGFnZS5kaWRQZXJmb3Jt
U2VydmVyUmVkaXJlY3RTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgc291cmNlVVJMU3RyaW5n
LCBkZXN0aW5hdGlvblVSTFN0cmluZywgZnJhbWVJRCk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQ
YWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBQ
cm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVXNlckRhdGEm
IHVzZXJEYXRhKQogewogICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlELCBuYXZpZ2F0aW9u
SUQpKQogICAgICAgICByZXR1cm47CkBAIC0zMzEsNyArMzMxLDcgQEAgdm9pZCBQcm92aXNpb25h
bFBhZ2VQcm94eTo6YmFja0ZvcndhcmRHb1RvSXRlbShjb25zdCBXZWJDb3JlOjpCYWNrRm9yd2Fy
ZEl0ZW1JZGUKICAgICBtX3BhZ2UuYmFja0ZvcndhcmRHb1RvSXRlbVNoYXJlZChtX3Byb2Nlc3Mu
Y29weVJlZigpLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAK
LXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b25TeW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNr
SWRlbnRpZmllciBpZGVudGlmaWVyLAordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJv
b2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJp
dHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAogICAg
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9u
QWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwKICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwKICAgICBjb25zdCBVc2VyRGF0YSYgdXNl
ckRhdGEsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25TeW5jOjpEZWxheWVkUmVwbHkmJiByZXBseSkKQEAgLTM2Niw3ICszNjYsNyBAQCB2b2lk
IFByb3Zpc2lvbmFsUGFnZVByb3h5OjpyZWdpc3RlcldlYlByb2Nlc3NBY2Nlc3NpYmlsaXR5VG9r
ZW4oY29uc3QgSVBDOjpEYXRhUgogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJ
TkcpCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tMb2Fk
Rm9yRnJhbWUoY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiB1bmJs
b2NrSGFuZGxlciwgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6
OmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250ZW50
RmlsdGVyVW5ibG9ja0hhbmRsZXImIHVuYmxvY2tIYW5kbGVyLCBGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCkKIHsKICAgICBtX3BhZ2UuY29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hh
cmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIHVuYmxvY2tIYW5kbGVyLCBmcmFtZUlEKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCmluZGV4IDMz
MzIxNmEyY2M3ODU2NjcxNjMyNGFiMDZmZjFiM2I5NjA4MGMwYmUuLmRlM2VlNjg3ZmE3ZDgxNzUw
YjU4ZmVkYTU4NDU4M2ZkMWYxZTJkNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UHJvdmlzaW9uYWxQYWdlUHJveHkuaApAQCAtOTIsMjMgKzkyLDIzIEBAIHByaXZhdGU6CiAgICAg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBm
aW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIGZpbmFsOwogCi0g
ICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmModWludDY0X3QgZnJh
bWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNr
SWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYm
LCBGcmFtZUluZm9EYXRhJiYsCisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uQXN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiwKICAgICAgICAg
T3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKICAg
ICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0
IFVzZXJEYXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lG
b3JSZXNwb25zZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsCisgICAgdm9pZCBkZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwKICAg
ICAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5
cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQs
IGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOwotICAg
IHZvaWQgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlE
KTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWROYXZpZ2F0
ZVdpdGhOYXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiwgdWludDY0
X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgU3Ry
aW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcs
IHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkQ3JlYXRlTWFpbkZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmLCBVUkwmJiB1bnJlYWNo
YWJsZVVSTCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYg
bWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZy
YW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYsIGJvb2wgY29udGFp
bnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBm
b3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRG
YWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlRXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0
YSYpOworICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOworICAgIHZvaWQg
ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBj
b25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIpOworICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQg
ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9y
ZSYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRQZXJmb3JtQ2xpZW50
UmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVz
dGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBk
aWRDcmVhdGVNYWluRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRp
ZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmLCBVUkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3Qg
VXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2Fk
VHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiwgYm9vbCBjb250YWluc1BsdWdp
bkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhh
c0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZEZhaWxQcm92
aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRh
dGEmKTsKICAgICB2b2lkIHN0YXJ0VVJMU2NoZW1lVGFzayhVUkxTY2hlbWVUYXNrUGFyYW1ldGVy
cyYmKTsKICAgICB2b2lkIGJhY2tGb3J3YXJkR29Ub0l0ZW0oY29uc3QgV2ViQ29yZTo6QmFja0Zv
cndhcmRJdGVtSWRlbnRpZmllciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlJiYpPiYmKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25TeW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKKyAgICB2b2lkIGRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
Ym9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6
OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9u
QWN0aW9uRGF0YSYmLAogICAgICAgICBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJ
UEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAgIFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpE
ZWxheWVkUmVwbHkmJik7CiAjaWYgVVNFKFFVSUNLX0xPT0spCkBAIC0xMTgsMTEgKzExOCwxMSBA
QCBwcml2YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJXZWJQcm9jZXNzQWNjZXNzaWJpbGl0eVRva2Vu
KGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENPTlRFTlRf
RklMVEVSSU5HKQotICAgIHZvaWQgY29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKGNv
bnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYsIHVpbnQ2NF90IGZyYW1l
SUQpOworICAgIHZvaWQgY29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKGNvbnN0IFdl
YkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
Zmllcik7CiAjZW5kaWYKIAogICAgIHZvaWQgaW5pdGlhbGl6ZVdlYlBhZ2UoKTsKLSAgICBib29s
IHZhbGlkYXRlSW5wdXQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgT3B0aW9uYWw8dWludDY0X3Q+
JiBuYXZpZ2F0aW9uSUQgPSBXVEY6Om51bGxvcHQpOworICAgIGJvb2wgdmFsaWRhdGVJbnB1dChX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IE9wdGlvbmFsPHVpbnQ2NF90PiYgbmF2aWdh
dGlvbklEID0gV1RGOjpudWxsb3B0KTsKIAogICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdlOwogICAg
IFJlZjxXZWJQcm9jZXNzUHJveHk+IG1fcHJvY2VzczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHAKaW5kZXggYjJmNzcyOWZk
MzkzNWY3MmUxYmM5MTE1YTMwYTE4ZjY0ZTM5ZmQyNS4uZjc4YTdjMzg2Yzg5NTkwMTE1NmI1Njhh
YWY5OGJhYjIzYjA4MDZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2Vy
dmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHAKQEAgLTkwLDcgKzkwLDcgQEAgdm9pZCBTZXJ2
aWNlV29ya2VyUHJvY2Vzc1Byb3h5Ojp1cGRhdGVQcmVmZXJlbmNlc1N0b3JlKGNvbnN0IFdlYlBy
ZWZlcmVuY2VzU3RvcmUKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbjo6VXBkYXRlUHJlZmVyZW5jZXNTdG9yZSB7IHN0b3JlIH0sIDApOwogfQogCi12b2lk
IFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmIGNoYWxsZW5nZSkKK3ZvaWQgU2VydmljZVdvcmtlclBy
b2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZVByb3h5PiYmIGNoYWxsZW5nZSkKIHsKICAgICBVTlVTRURfUEFSQU0ocGFnZUlEKTsK
ICAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgKaW5kZXggZTkzNjVhZmFjNGY0N2Q3ZmQ3
NDdmOTg5ODNhZDk5OTBlOGFiOTc1NS4uN2Q4ODc2MDVlZWEwYjY0NzlkNjk3NjkxYWJiNTUyODA3
ZGUyMTg0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtl
clByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXJQcm9jZXNzUHJveHkuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMg
Ym9vbCBoYXNSZWdpc3RlcmVkU2VydmljZVdvcmtlcnMoY29uc3QgU3RyaW5nJiBzZXJ2aWNlV29y
a2VyRGlyZWN0b3J5KTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBSZWY8QXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJik7CisgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYpOwogCiAgICAgdm9p
ZCBzdGFydChjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiwgT3B0aW9uYWw8UEFMOjpTZXNzaW9u
SUQ+IGluaXRpYWxTZXNzaW9uSUQpOwogICAgIHZvaWQgc2V0VXNlckFnZW50KGNvbnN0IFN0cmlu
ZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHAK
aW5kZXggZjZkM2I1MzZkZjhhYWIxOTdkOTExZWQxNGQyZWE0MGZlZmYyZTFkZC4uYzY0ZDdlZjE5
YmQwZGU3MTE2OTY5OTkyYzA3NjcxZTYxZDgyODNlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwCkBAIC03OCw3ICs3OCw3IEBAIHN0YXRpYyBj
b25zdCBIYXNoU2V0PElQQzo6U3RyaW5nUmVmZXJlbmNlPiYgbWVzc2FnZU5hbWVzVG9JZ25vcmVX
aGlsZVN1c3BlbmRlZCgpCiB9CiAjZW5kaWYKIAotU3VzcGVuZGVkUGFnZVByb3h5OjpTdXNwZW5k
ZWRQYWdlUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHBy
b2Nlc3MsIHVpbnQ2NF90IG1haW5GcmFtZUlELCBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVy
aW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUgc2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRl
cmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKQorU3VzcGVuZGVkUGFnZVByb3h5OjpTdXNw
ZW5kZWRQYWdlUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
IHByb2Nlc3MsIEZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCwgU2hvdWxkRGVsYXlDbG9zaW5n
VW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlIHNob3VsZERlbGF5Q2xvc2lu
Z1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSkKICAgICA6IG1fcGFnZShw
YWdlKQogICAgICwgbV9wcm9jZXNzKFdURk1vdmUocHJvY2VzcykpCiAgICAgLCBtX21haW5GcmFt
ZUlEKG1haW5GcmFtZUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3Vz
cGVuZGVkUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdl
UHJveHkuaAppbmRleCAwZGFkMDU0YjI3MmE4MTlkNmUwYjA2Yzc3Y2VkODEyYTI2M2QxMzQwLi45
MTY1M2NjNzhlYTAwODY2MGIxNGUzMzUwNTUzYWE4OWU3M2QxOTEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuaApAQCAtMjksNiArMjksNyBAQAogI2lu
Y2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXIuaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KIApAQCAtNDIsMTIgKzQzLDEyIEBAIGVudW0gY2xhc3MgU2hv
dWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlIDog
Ym9vbCB7IE5vCiBjbGFzcyBTdXNwZW5kZWRQYWdlUHJveHkgZmluYWw6IHB1YmxpYyBJUEM6Ok1l
c3NhZ2VSZWNlaXZlciwgcHVibGljIENhbk1ha2VXZWFrUHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4g
ewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFN1c3BlbmRlZFBh
Z2VQcm94eShXZWJQYWdlUHJveHkmLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCB1aW50NjRfdCBt
YWluRnJhbWVJRCwgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdNb2RlKTsKKyAgICBTdXNwZW5kZWRQYWdlUHJveHkoV2ViUGFnZVByb3h5JiwgUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlE
LCBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01v
ZGUpOwogICAgIH5TdXNwZW5kZWRQYWdlUHJveHkoKTsKIAogICAgIFdlYlBhZ2VQcm94eSYgcGFn
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZTsgfQogICAgIFdlYlByb2Nlc3NQcm94eSYgcHJvY2Vz
cygpIHsgcmV0dXJuIG1fcHJvY2Vzcy5nZXQoKTsgfQotICAgIHVpbnQ2NF90IG1haW5GcmFtZUlE
KCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJhbWVJRDsgfQorICAgIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBtYWluRnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbkZyYW1lSUQ7IH0KIAog
ICAgIGJvb2wgcGFnZUlzQ2xvc2VkT3JDbG9zaW5nKCkgY29uc3Q7CiAKQEAgLTc0LDcgKzc1LDcg
QEAgcHJpdmF0ZToKIAogICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdlOwogICAgIFJlZjxXZWJQcm9j
ZXNzUHJveHk+IG1fcHJvY2VzczsKLSAgICB1aW50NjRfdCBtX21haW5GcmFtZUlEOworICAgIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX21haW5GcmFtZUlEOwogICAgIGJvb2wgbV9pc0Nsb3Nl
ZCB7IGZhbHNlIH07CiAgICAgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJh
dGVkQ29tcG9zaXRpbmdNb2RlIG1fc2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdNb2RlIHsgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlOjpObyB9OwogICAgIGJvb2wgbV9zaG91bGRDbG9zZVdo
ZW5FbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlIHsgZmFsc2UgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1By
b3h5LmNwcAppbmRleCBhYjc5MjQwMjllMGVmM2EzYmJhYjc0Y2JhYzAwYzI5N2ZhOTZhM2NhLi40
ZmE2ZmRmNjA4ZDZjMzdlZmVjYjBhNWUwNmMyY2ZkZTUwZWI1ODRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHku
Y3BwCkBAIC0zMyw3ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCi1Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eTo6VXNlck1lZGlhUGVy
bWlzc2lvbkNoZWNrUHJveHkodWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXImJiBo
YW5kbGVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luKQorVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25D
aGVja1Byb3h5KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlciYmIGhh
bmRsZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9y
aWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmln
aW4pCiAgICAgOiBtX2ZyYW1lSUQoZnJhbWVJRCkKICAgICAsIG1fY29tcGxldGlvbkhhbmRsZXIo
V1RGTW92ZShoYW5kbGVyKSkKICAgICAsIG1fdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdp
bihXVEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oCmluZGV4IGRj
MzQwOTgxNzE0YzcyNzkzYzAxMDVkNzgzMzkxYjdmYTk0NTkxOGYuLmU4MGI1MTkxODQxZmRiMjQ2
NzU1MTA5NzI1MDk2NmU5MGI3ZTJhMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaApAQCAtMjYsNiArMjYsNyBA
QAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFDb25zdHJhaW50
cy5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgpAQCAtNDEsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgZW51bSBjbGFz
cyBQZXJtaXNzaW9uSW5mbyB7IEVycm9yLCBVbmtub3duLCBHcmFudGVkIH07CiAgICAgdXNpbmcg
Q29tcGxldGlvbkhhbmRsZXIgPSBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoUGVybWlzc2lv
bkluZm8pPjsKIAotICAgIHN0YXRpYyBSZWY8VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk+
IGNyZWF0ZSh1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIsIFJl
ZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVm
PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pCisgICAg
c3RhdGljIFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eT4gY3JlYXRlKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIsIFJl
ZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVm
PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pCiAgICAg
ewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQ
cm94eShmcmFtZUlELCBXVEZNb3ZlKGhhbmRsZXIpLCBXVEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50
T3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSkpOwogICAgIH0KQEAgLTUw
LDE3ICs1MSwxNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRVc2VyTWVkaWFBY2Nlc3NJbmZvKGJv
b2wpOwogICAgIHZvaWQgaW52YWxpZGF0ZSgpIHsgY29tcGxldGUoUGVybWlzc2lvbkluZm86OkVy
cm9yKTsgfQogCi0gICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJ
RDsgfQorICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKCkgY29uc3QgeyByZXR1
cm4gbV9mcmFtZUlEOyB9CiAgICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURv
Y3VtZW50U2VjdXJpdHlPcmlnaW4oKSB7IHJldHVybiBtX3VzZXJNZWRpYURvY3VtZW50U2VjdXJp
dHlPcmlnaW4uZ2V0KCk7IH0KICAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxE
b2N1bWVudFNlY3VyaXR5T3JpZ2luKCkgeyByZXR1cm4gbV90b3BMZXZlbERvY3VtZW50U2VjdXJp
dHlPcmlnaW4uZ2V0KCk7IH0KICAgICAKIHByaXZhdGU6Ci0gICAgVXNlck1lZGlhUGVybWlzc2lv
bkNoZWNrUHJveHkodWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXImJiwgUmVmPFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7CisgICAgVXNl
ck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlciYmLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlh
RG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERv
Y3VtZW50T3JpZ2luKTsKICAgICB+VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkoKTsKIAog
ICAgIHZvaWQgY29tcGxldGUoUGVybWlzc2lvbkluZm8pOwogICAgIAotICAgIHVpbnQ2NF90IG1f
ZnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbV9mcmFtZUlEOwogICAgIENv
bXBsZXRpb25IYW5kbGVyIG1fY29tcGxldGlvbkhhbmRsZXI7CiAgICAgUmVmPFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luPiBtX3VzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW47CiAgICAgUmVm
PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBtX3RvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdp
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAppbmRleCBkMzQwMzc2ZmYyOTA3
Yjg3MjkzNTY0NjQyODlkNDM0OTZkNDAwOTkxLi5kYjRjZGExMTE2MWQyMjI4Mjk4NGZlZTlhZWFk
NDBhNGVlYzFhNDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC0y
NDAsOSArMjQwLDkgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eTo6ZmluaXNoR3JhbnRpbmdSZXF1ZXN0KFVzZXJNZWRpYVBlcm0KICAgICBwcm9jZXNzTmV4dFVz
ZXJNZWRpYVJlcXVlc3RJZk5lZWRlZCgpOwogfQogCi12b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5OjpyZXNldEFjY2Vzcyh1aW50NjRfdCBmcmFtZUlEKQordm9pZCBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVzZXRBY2Nlc3MoRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQpCiB7Ci0gICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBmcmFt
ZUlEKTsKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIGZyYW1lSUQubG9nZ2luZ1N0cmlu
ZygpKTsKICAgICBtX2dyYW50ZWRSZXF1ZXN0cy5yZW1vdmVBbGxNYXRjaGluZyhbZnJhbWVJRF0o
Y29uc3QgYXV0byYgZ3JhbnRlZFJlcXVlc3QpIHsKICAgICAgICAgcmV0dXJuIGdyYW50ZWRSZXF1
ZXN0LT5tYWluRnJhbWVJRCgpID09IGZyYW1lSUQ7CiAgICAgfSk7CkBAIC0yNTEsNyArMjUxLDcg
QEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVzZXRBY2Nl
c3ModWludDY0X3QgZnJhbWVJRCkKICAgICBtX2hhc0ZpbHRlcmVkRGV2aWNlTGlzdCA9IGZhbHNl
OwogfQogCi1jb25zdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KiBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6c2VhcmNoRm9yR3JhbnRlZFJlcXVlc3QodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3Jp
Z2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBu
ZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8pIGNvbnN0Citjb25zdCBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5KiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
c2VhcmNoRm9yR3JhbnRlZFJlcXVlc3QoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNl
Y3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmln
aW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGJvb2wgbmVlZHNBdWRpbywgYm9vbCBuZWVkc1Zp
ZGVvKSBjb25zdAogewogICAgIGlmIChtX3BhZ2UuaXNNZWRpYVN0cmVhbUNhcHR1cmVNdXRlZCgp
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTI4Miw3ICsyODIsNyBAQCBjb25zdCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eTo6cwogICAgIHJldHVybiBudWxscHRyOwogfQogCi1ib29sIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp3YXNSZXF1ZXN0RGVuaWVkKHVpbnQ2NF90IG1h
aW5GcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4s
IGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBib29sIG5lZWRz
QXVkaW8sIGJvb2wgbmVlZHNWaWRlbywgYm9vbCBuZWVkc1NjcmVlbkNhcHR1cmUpCitib29sIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp3YXNSZXF1ZXN0RGVuaWVkKEZy
YW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9y
aWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8sIGJvb2wgbmVlZHNTY3JlZW5D
YXB0dXJlKQogewogICAgIGZvciAoY29uc3QgYXV0byYgZGVuaWVkUmVxdWVzdCA6IG1fZGVuaWVk
UmVxdWVzdHMpIHsKICAgICAgICAgaWYgKCFkZW5pZWRSZXF1ZXN0LnVzZXJNZWRpYURvY3VtZW50
T3JpZ2luLT5pc1NhbWVTY2hlbWVIb3N0UG9ydCh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbikpCkBA
IC0zNDYsNyArMzQ2LDcgQEAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6
OlJlcXVlc3RBY3Rpb24gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QKIH0KICNlbmRpZgogCi12
b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0VXNlck1l
ZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFt
ZUlELCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxT
ZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBNZWRpYVN0cmVhbVJlcXVl
c3QmJiB1c2VyUmVxdWVzdCkKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1l
ZGlhSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdXNl
ck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luLCBNZWRpYVN0cmVhbVJlcXVlc3QmJiB1c2VyUmVxdWVzdCkKIHsKICNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQogICAgIGlmICghbV9wYWdlLmhhc1J1bm5pbmdQcm9jZXNzKCkpCkBA
IC01MjEsNyArNTIxLDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6cHJvY2Vzc1VzZXJNZWRpYVBlcm1pc3Npb25WYWxpZFJlcXUKICAgICBtX3BhZ2UudWlD
bGllbnQoKS5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChtX3BhZ2Us
ICp3ZWJGcmFtZSwgV1RGTW92ZSh1c2VyTWVkaWFPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsT3Jp
Z2luKSwgKm1fY3VycmVudFVzZXJNZWRpYVJlcXVlc3QpOwogfQogCi12b2lkIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpnZXRVc2VyTWVkaWFQZXJtaXNzaW9uSW5mbyh1
aW50NjRfdCBmcmFtZUlELCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4sIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFBlcm1pc3Npb25JbmZvKT4mJiBoYW5kbGVyKQordm9pZCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Z2V0VXNlck1lZGlhUGVybWlzc2lv
bkluZm8oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1l
bnRPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUGVybWlzc2lvbkluZm8pPiYmIGhhbmRs
ZXIpCiB7CiAgICAgYXV0byogd2ViRnJhbWUgPSBtX3BhZ2UucHJvY2VzcygpLndlYkZyYW1lKGZy
YW1lSUQpOwogICAgIGlmICghd2ViRnJhbWUgfHwgIVNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9t
U3RyaW5nKG1fcGFnZS5wYWdlTG9hZFN0YXRlKCkuYWN0aXZlVVJMKCkpLT5pc1NhbWVTY2hlbWVI
b3N0UG9ydCh0b3BMZXZlbERvY3VtZW50T3JpZ2luLmdldCgpKSkgewpAQCAtNTQ1LDcgKzU0NSw3
IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmdldFVzZXJN
ZWRpYVBlcm1pc3Npb25JbmZvKHVpbnQ2NF90CiAgICAgbV9wYWdlLnVpQ2xpZW50KCkuY2hlY2tV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKG1fcGFnZSwgKndlYkZyYW1lLCB1c2VyTWVkaWFP
cmlnaW4uZ2V0KCksIHRvcExldmVsT3JpZ2luLmdldCgpLCByZXF1ZXN0LmdldCgpKTsKIH0KIAot
Ym9vbCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6d2FzR3JhbnRlZFZp
ZGVvT3JBdWRpb0FjY2Vzcyh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbiYg
dXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERv
Y3VtZW50T3JpZ2luKQorYm9vbCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eTo6d2FzR3JhbnRlZFZpZGVvT3JBdWRpb0FjY2VzcyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
Y29uc3QgU2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBTZWN1
cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbikKIHsKICAgICBmb3IgKGNvbnN0IGF1
dG8mIGdyYW50ZWRSZXF1ZXN0IDogbV9ncmFudGVkUmVxdWVzdHMpIHsKICAgICAgICAgaWYgKGdy
YW50ZWRSZXF1ZXN0LT5yZXF1aXJlc0Rpc3BsYXlDYXB0dXJlKCkpCkBAIC02MDQsNyArNjA0LDcg
QEAgVmVjdG9yPENhcHR1cmVEZXZpY2U+IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5Ojpjb21wdXRlRmlsdGVyZWREZXYKIH0KICNlbmRpZgogCi12b2lkIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjplbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFt
ZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFNlY3VyaXR5T3Jp
Z2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9w
TGV2ZWxEb2N1bWVudE9yaWdpbikKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRp
YUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHVzZXJN
ZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbikKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIEFMV0FZU19MT0coTE9H
SURFTlRJRklFUiwgdXNlck1lZGlhSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgK
aW5kZXggZjUwNWUyODBjNDQyOTBhODAzZGJkYjY4Yzk4ZWVhNjMwYjFjOWJiNi4uYmJiYTQ0YWM4
MmJkMjgwNzViZGRmYmI0NTQ0NGNhNTY5YWNjZmI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5oCkBAIC02MCwxNSArNjAsMTUgQEAgcHVibGljOgogCiAgICAgdm9pZCBpbnZhbGlk
YXRlUGVuZGluZ1JlcXVlc3RzKCk7CiAKLSAgICB2b2lkIHJlcXVlc3RVc2VyTWVkaWFQZXJtaXNz
aW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiAgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBXZWJDb3Jl
OjpNZWRpYVN0cmVhbVJlcXVlc3QmJik7CisgICAgdm9pZCByZXF1ZXN0VXNlck1lZGlhUGVybWlz
c2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiAgdXNlck1lZGlhRG9jdW1lbnRPcmln
aW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
LCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJik7CiAKLSAgICB2b2lkIHJlc2V0QWNjZXNz
KHVpbnQ2NF90IG1haW5GcmFtZUlEKTsKKyAgICB2b2lkIHJlc2V0QWNjZXNzKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCk7CiAgICAgdm9pZCB2aWV3SXNCZWNvbWluZ1Zpc2li
bGUoKTsKIAogICAgIHZvaWQgZ3JhbnRSZXF1ZXN0KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkmKTsKICAgICB2b2lkIGRlbnlSZXF1ZXN0KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkmLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NE
ZW5pYWxSZWFzb24sIGNvbnN0IFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnQgPSB7IH0pOwogCi0g
ICAgdm9pZCBlbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJ
RCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJN
ZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbik7CisgICAgdm9pZCBlbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFt
ZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWY8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKTsKIAogICAgIHZv
aWQgc3RvcENhcHR1cmUoKTsKICAgICB2b2lkIHNjaGVkdWxlTmV4dFJlamVjdGlvbigpOwpAQCAt
OTUsMTkgKzk1LDE5IEBAIHByaXZhdGU6CiAgICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgp
IGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKLSAgICBSZWY8VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eT4gY3JlYXRlUGVybWlzc2lvblJlcXVlc3QodWludDY0X3QgdXNlck1lZGlhSUQsIHVp
bnQ2NF90IG1haW5GcmFtZUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVy
ZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYm
IHZpZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYpOworICAgIFJlZjxV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGVQZXJtaXNzaW9uUmVxdWVzdCh1
aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlE
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4m
JiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYm
IHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYm
IGF1ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgdmlkZW9EZXZp
Y2VzLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJik7CiAjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKICAgICB2b2lkIGZpbmlzaEdyYW50aW5nUmVxdWVzdChVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5Jik7CiAKLSAgICBjb25zdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFBy
b3h5KiBzZWFyY2hGb3JHcmFudGVkUmVxdWVzdCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBib29sIG5lZWRzQXVk
aW8sIGJvb2wgbmVlZHNWaWRlbykgY29uc3Q7Ci0gICAgYm9vbCB3YXNSZXF1ZXN0RGVuaWVkKHVp
bnQ2NF90IG1haW5GcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luLCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbywgYm9vbCBu
ZWVkc1NjcmVlbkNhcHR1cmUpOworICAgIGNvbnN0IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkqIHNlYXJjaEZvckdyYW50ZWRSZXF1ZXN0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBj
b25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9v
bCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8pIGNvbnN0OworICAgIGJvb2wgd2FzUmVxdWVz
dERlbmllZChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQsIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGJvb2wgbmVlZHNBdWRp
bywgYm9vbCBuZWVkc1ZpZGVvLCBib29sIG5lZWRzU2NyZWVuQ2FwdHVyZSk7CiAKICAgICB1c2lu
ZyBQZXJtaXNzaW9uSW5mbyA9IFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5OjpQZXJtaXNz
aW9uSW5mbzsKLSAgICB2b2lkIGdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKHVpbnQ2NF90IGZy
YW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9y
aWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmln
aW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUGVybWlzc2lvbkluZm8pPiYmKTsKKyAgICB2b2lk
IGdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVm
PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChQZXJtaXNzaW9uSW5mbyk+JiYpOwogCiAgICAgUmVxdWVzdEFjdGlv
biBnZXRSZXF1ZXN0QWN0aW9uKGNvbnN0IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkm
KTsKIAotICAgIGJvb2wgd2FzR3JhbnRlZFZpZGVvT3JBdWRpb0FjY2Vzcyh1aW50NjRfdCwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7CisgICAg
Ym9vbCB3YXNHcmFudGVkVmlkZW9PckF1ZGlvQWNjZXNzKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7
CiAKICAgICBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gY29tcHV0ZUZpbHRlcmVkRGV2
aWNlTGlzdChib29sIHJldmVhbElkc0FuZExhYmVscywgY29uc3QgU3RyaW5nJiBkZXZpY2VJREhh
c2hTYWx0KTsKIApAQCAtMTM0LDcgKzEzNCw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFJlZjxV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Pj4gbV9ncmFudGVkUmVxdWVzdHM7CiAKICAg
ICBzdHJ1Y3QgRGVuaWVkUmVxdWVzdCB7Ci0gICAgICAgIHVpbnQ2NF90IG1haW5GcmFtZUlEOwor
ICAgICAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQ7CiAgICAgICAgIFJl
ZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gdXNlck1lZGlhRG9jdW1lbnRPcmlnaW47CiAgICAg
ICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gdG9wTGV2ZWxEb2N1bWVudE9yaWdpbjsK
ICAgICAgICAgYm9vbCBpc0F1ZGlvRGVuaWVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAppbmRleCA0
ZjAyODQwNmJhNGE3NzUxNjQ3MDY0NzY3MWYzYTk1MDg4YWZmNGFiLi45NjZmZGFkNWNmMGRkMDli
OThmZjU1NjEwM2UyMDZhYTExNzVjOTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcApAQCAtMzAs
NyArMzAsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAotVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbWFuYWdl
ciwgdWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IG1haW5GcmFtZUlELCB1aW50NjRfdCBm
cmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3Rv
cjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVkaWFT
dHJlYW1SZXF1ZXN0JiYgcmVxdWVzdCkKK1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6
OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJNZWRpYUlELCBGcmFtZUlkZW50
aWZpZXIgbWFpbkZyYW1lSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0b3I8V2ViQ29yZTo6
Q2FwdHVyZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlPiYmIHZpZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYgcmVxdWVz
dCkKICAgICA6IG1fbWFuYWdlcigmbWFuYWdlcikKICAgICAsIG1fdXNlck1lZGlhSUQodXNlck1l
ZGlhSUQpCiAgICAgLCBtX21haW5GcmFtZUlEKG1haW5GcmFtZUlEKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5o
CmluZGV4IDU0NGY2MTE2ZWRiNjYyYThmYTk2MzFiYzNhZjhiNzBkZWRjNTgyN2YuLmJhNGUwYTM0
NzE2MDMxYjE4ZjA4NWNmZDAxYTczNTE3NzhhMDMwNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKQEAg
LTIxLDYgKzIxLDcgQEAKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvQ2FwdHVyZURldmljZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVN0cmVhbVJlcXVlc3QuaD4KICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC0zNSw3ICszNiw3
IEBAIGNsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OwogCiBjbGFz
cyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5IDogcHVibGljIEFQSTo6T2JqZWN0SW1w
bDxBUEk6Ok9iamVjdDo6VHlwZTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q+IHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0
ZShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgdWludDY0
X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IG1haW5GcmFtZUlELCB1aW50NjRfdCBmcmFtZUlELCBS
ZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJl
ZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0
b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1
ZXN0JiYgcmVxdWVzdCkKKyAgICBzdGF0aWMgUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHk+IGNyZWF0ZShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbWFu
YWdlciwgdWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWlu
RnJhbWVJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2U+JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJiByZXF1ZXN0
KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eShtYW5hZ2VyLCB1c2VyTWVkaWFJRCwgbWFpbkZyYW1lSUQsIGZyYW1lSUQs
IFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsRG9jdW1l
bnRPcmlnaW4pLCBXVEZNb3ZlKGF1ZGlvRGV2aWNlcyksIFdURk1vdmUodmlkZW9EZXZpY2VzKSwg
V1RGTW92ZShyZXF1ZXN0KSkpOwogICAgIH0KQEAgLTY1LDggKzY2LDggQEAgcHVibGljOgogICAg
IHZvaWQgc2V0SGFzUGVyc2lzdGVudEFjY2VzcygpIHsgbV9oYXNQZXJzaXN0ZW50QWNjZXNzID0g
dHJ1ZTsgfQogCiAgICAgdWludDY0X3QgdXNlck1lZGlhSUQoKSBjb25zdCB7IHJldHVybiBtX3Vz
ZXJNZWRpYUlEOyB9Ci0gICAgdWludDY0X3QgbWFpbkZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBt
X21haW5GcmFtZUlEOyB9Ci0gICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZnJhbWVJRDsgfQorICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCgpIGNv
bnN0IHsgcmV0dXJuIG1fbWFpbkZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQogCiAgICAgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIHsgcmV0dXJu
IG1fdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luLmdldCgpOyB9CiAgICAgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSB7IHJldHVy
biBtX3VzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW4uZ2V0KCk7IH0KQEAgLTg0LDEyICs4
NSwxMiBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZSB2aWRlb0RldmljZSgp
IGNvbnN0IHsgcmV0dXJuIG1fZWxpZ2libGVWaWRlb0RldmljZXMuaXNFbXB0eSgpID8gV2ViQ29y
ZTo6Q2FwdHVyZURldmljZSB7IH0gOiBtX2VsaWdpYmxlVmlkZW9EZXZpY2VzWzBdOyB9CiAKIHBy
aXZhdGU6Ci0gICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYsIHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRf
dCBtYWluRnJhbWVJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiB2aWRl
b0RldmljZXMsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKKyAgICBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5JiwgdWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWlu
RnJhbWVJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURl
dmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIHZp
ZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYpOwogCiAgICAgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkqIG1fbWFuYWdlcjsKICAgICB1aW50NjRf
dCBtX3VzZXJNZWRpYUlEOwotICAgIHVpbnQ2NF90IG1fbWFpbkZyYW1lSUQ7Ci0gICAgdWludDY0
X3QgbV9mcmFtZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX21haW5GcmFtZUlE
OworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX2ZyYW1lSUQ7CiAgICAgUmVmPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luPiBtX3VzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW47CiAg
ICAgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBtX3RvcExldmVsRG9jdW1lbnRTZWN1cml0
eU9yaWdpbjsKICAgICBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gbV9lbGlnaWJsZVZp
ZGVvRGV2aWNlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1l
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAKaW5k
ZXggMDcxNGI0MWViNjc3NjhkOWUwYzlkNDEyZTIwZTg5OGY4MWU3M2RkOC4uZWUzMzcxMDgxNzA3
ZWEzNmQzNTBlZmUyY2M1YTAzYzFkMTkxZGE0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViRnJhbWVQcm94eS5jcHAKQEAgLTQ1LDkgKzQ1LDggQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIAotV2ViRnJhbWVQcm94eTo6V2ViRnJhbWVQcm94
eShXZWJQYWdlUHJveHkmIHBhZ2UsIHVpbnQ2NF90IGZyYW1lSUQpCitXZWJGcmFtZVByb3h5OjpX
ZWJGcmFtZVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQp
CiAgICAgOiBtX3BhZ2UobWFrZVdlYWtQdHIocGFnZSkpCi0gICAgLCBtX2lzRnJhbWVTZXQoZmFs
c2UpCiAgICAgLCBtX2ZyYW1lSUQoZnJhbWVJRCkKIHsKICAgICBXZWJQcm9jZXNzUG9vbDo6c3Rh
dGlzdGljcygpLndrRnJhbWVDb3VudCsrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViRnJhbWVQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQ
cm94eS5oCmluZGV4IDQ0NjAwZjFjMjcyOTBlNWU0YzE2OGVhOGNkM2NjMzk2MzZmZGJiZTEuLmNj
ZGE2Mzc4MDAyZDU1YWIxNTdhNmYxNTM3YzVlZjc5ZGI0NWMyNTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgKQEAgLTU5LDE0ICs1OSwxNCBAQCBzdHJ1Y3QgV2Vic2l0
ZVBvbGljaWVzRGF0YTsKIAogY2xhc3MgV2ViRnJhbWVQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVj
dEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OkZyYW1lPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxXZWJGcmFtZVByb3h5PiBjcmVhdGUoV2ViUGFnZVByb3h5JiBwYWdlLCB1aW50NjRfdCBmcmFt
ZUlEKQorICAgIHN0YXRpYyBSZWY8V2ViRnJhbWVQcm94eT4gY3JlYXRlKFdlYlBhZ2VQcm94eSYg
cGFnZSwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAgICAgewogICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJGcmFtZVByb3h5KHBhZ2UsIGZyYW1lSUQpKTsKICAgICB9
CiAKICAgICB2aXJ0dWFsIH5XZWJGcmFtZVByb3h5KCk7CiAKLSAgICB1aW50NjRfdCBmcmFtZUlE
KCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KICAgICBXZWJQYWdlUHJv
eHkqIHBhZ2UoKSBjb25zdCB7IHJldHVybiBtX3BhZ2UuZ2V0KCk7IH0KIAogICAgIHZvaWQgd2Vi
UHJvY2Vzc1dpbGxTaHV0RG93bigpOwpAQCAtMTMwLDcgKzEzMCw3IEBAIHB1YmxpYzoKICNlbmRp
ZgogCiBwcml2YXRlOgotICAgIFdlYkZyYW1lUHJveHkoV2ViUGFnZVByb3h5JiwgdWludDY0X3Qg
ZnJhbWVJRCk7CisgICAgV2ViRnJhbWVQcm94eShXZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIpOwogCiAgICAgV2Vha1B0cjxXZWJQYWdlUHJveHk+IG1fcGFnZTsKIApAQCAt
MTM4LDExICsxMzgsMTEgQEAgcHJpdmF0ZToKIAogICAgIFN0cmluZyBtX01JTUVUeXBlOwogICAg
IFN0cmluZyBtX3RpdGxlOwotICAgIGJvb2wgbV9pc0ZyYW1lU2V0OworICAgIGJvb2wgbV9pc0Zy
YW1lU2V0IHsgZmFsc2UgfTsKICAgICBib29sIG1fY29udGFpbnNQbHVnaW5Eb2N1bWVudCB7IGZh
bHNlIH07CiAgICAgUmVmUHRyPFdlYkNlcnRpZmljYXRlSW5mbz4gbV9jZXJ0aWZpY2F0ZUluZm87
CiAgICAgUmVmUHRyPFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eT4gbV9hY3RpdmVMaXN0ZW5l
cjsKLSAgICB1aW50NjRfdCBtX2ZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IG1fZnJhbWVJRDsKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCiAgICAgV2ViQ29yZTo6
Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyIG1fY29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVy
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAz
MjYzMWM0NTBlYjI2ZDc1NDU0NjhiNzI2YzE1YTQ0OTg1Yzk5OGE5Li40Mzg4MjJkNDVmM2Q2Njgx
Nzg3NzJhYjlhNWMyOWVkMGY5NTgxNGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKQEAgLTc0Myw3ICs3NDMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bGF1bmNo
UHJvY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVnaXN0cmFibGVEb21haW4pCiAgICAg
ZmluaXNoQXR0YWNoaW5nVG9XZWJQcm9jZXNzKElzUHJvY2Vzc1N3YXA6Ok5vKTsKIH0KIAotYm9v
bCBXZWJQYWdlUHJveHk6OnN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUoQVBJOjpOYXZpZ2F0
aW9uJiBuYXZpZ2F0aW9uLCBPcHRpb25hbDx1aW50NjRfdD4gbWFpbkZyYW1lSUQsIFByb2Nlc3NT
d2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgU2hvdWxk
RGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlIHNob3Vs
ZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSkKK2Jv
b2wgV2ViUGFnZVByb3h5OjpzdXNwZW5kQ3VycmVudFBhZ2VJZlBvc3NpYmxlKEFQSTo6TmF2aWdh
dGlvbiYgbmF2aWdhdGlvbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBtYWluRnJhbWVJRCwg
UHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50
LCBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01v
ZGUgc2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdN
b2RlKQogewogICAgIG1fbGFzdFN1c3BlbmRlZFBhZ2UgPSBudWxscHRyOwogCkBAIC0yOTMxLDEy
ICsyOTMxLDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWNlaXZlZFBvbGljeURlY2lzaW9uKFBv
bGljeUFjdGlvbiBhY3Rpb24sIEFQSTo6TmF2aWdhdGlvbioKICAgICBzZW5kZXItPnNlbmQoYWN0
aW9uLCBuYXZpZ2F0aW9uID8gbmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCkgOiAwLCBkb3dubG9h
ZElELCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcykpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6
Y29tbWl0UHJvdmlzaW9uYWxQYWdlKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQ
cm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNh
dGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0
aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRl
bnQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpjb21taXRQ
cm92aXNpb25hbFBhZ2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQ
cm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNh
dGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0
aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRl
bnQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBBU1NFUlQobV9wcm92aXNpb25h
bFBhZ2UpOwogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImNvbW1pdFByb3Zp
c2lvbmFsUGFnZTogcHJldmlvdXNQSUQgPSAlaSwgbmV3UElEID0gJWksIHBhZ2VJRCA9ICUiIFBS
SXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3Byb3Zpc2lvbmFsUGFnZS0+
cHJvY2VzcygpLnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCkpOwogCi0g
ICAgT3B0aW9uYWw8dWludDY0X3Q+IG1haW5GcmFtZUlESW5QcmV2aW91c1Byb2Nlc3MgPSBtX21h
aW5GcmFtZSA/IG1ha2VPcHRpb25hbChtX21haW5GcmFtZS0+ZnJhbWVJRCgpKSA6IFdURjo6bnVs
bG9wdDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IG1haW5GcmFtZUlESW5QcmV2aW91
c1Byb2Nlc3MgPSBtX21haW5GcmFtZSA/IG1ha2VPcHRpb25hbChtX21haW5GcmFtZS0+ZnJhbWVJ
RCgpKSA6IFdURjo6bnVsbG9wdDsKIAogICAgIEFTU0VSVChtX3Byb2Nlc3MucHRyKCkgIT0gJm1f
cHJvdmlzaW9uYWxQYWdlLT5wcm9jZXNzKCkpOwogCkBAIC0zNjcyLDcgKzM2NzIsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lU2NyaXB0V29ybGQoY29uc3Qg
U3RyaW5nJiBzY3JpcHQsIGJvbwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6UnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lU2NyaXB0V29ybGQoc2NyaXB0LCBmb3JjZVVzZXJH
ZXN0dXJlLCB3b3JsZE5hbWUsIGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7CiB9CiAKLXZvaWQgV2Vi
UGFnZVByb3h5OjpydW5KYXZhU2NyaXB0SW5GcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBT
dHJpbmcmIHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBXVEY6OkZ1bmN0aW9uPHZvaWQo
QVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqLCBib29sIGhhZEV4Y2VwdGlvbiwgY29uc3QgRXhj
ZXB0aW9uRGV0YWlscyYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24p
Cit2b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEluRnJhbWUoRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIFdU
Rjo6RnVuY3Rpb248dm9pZChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSosIGJvb2wgaGFkRXhj
ZXB0aW9uLCBjb25zdCBFeGNlcHRpb25EZXRhaWxzJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYg
Y2FsbGJhY2tGdW5jdGlvbikKIHsKICAgICBBU1NFUlQobWFpbkZyYW1lKCktPmZyYW1lSUQoKSAh
PSBmcmFtZUlEKTsKICAgICBhdXRvIGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoV1RGTW92
ZShjYWxsYmFja0Z1bmN0aW9uKSwgbV9wcm9jZXNzLT50aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0
aXZpdHlUb2tlbigpKTsKQEAgLTM4NzgsNyArMzg3OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpw
cmVmZXJlbmNlc0RpZENoYW5nZSgpCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpQcmVmZXJlbmNlc0RpZENoYW5nZShwcmVmZXJlbmNlc1N0b3JlKCkpLCBtX3BhZ2VJRCwg
cHJpbnRpbmdTZW5kT3B0aW9ucyhtX2lzUGVyZm9ybWluZ0RPTVByaW50T3BlcmF0aW9uKSk7CiB9
CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJ
RCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUoRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQpCiB7CiAgICAgLy8gVGhlIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25T
eW5jIElQQyBpcyBzeW5jaHJvbm91cyBhbmQgbWF5IHRoZXJlZm9yZSBnZXQgcHJvY2Vzc2VkIGJl
Zm9yZSB0aGUgRGlkQ3JlYXRlTWFpbkZyYW1lIG9uZS4KICAgICAvLyBXaGVuIHRoaXMgaGFwcGVu
cywgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoKSBjYWxscyBkaWRDcmVhdGVN
YWluRnJhbWUoKSBhbmQgd2UgbmVlZCB0byBpZ25vcmUgdGhlIERpZENyZWF0ZU1haW5GcmFtZQpA
QCAtMzg5Nyw3ICszODk3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFt
ZSh1aW50NjRfdCBmcmFtZUlEKQogICAgIG1fcHJvY2Vzcy0+ZnJhbWVDcmVhdGVkKGZyYW1lSUQs
ICptX21haW5GcmFtZSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVTdWJmcmFt
ZSh1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0ZVN1YmZyYW1l
KEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJv
dGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTM5MTcsNyArMzkxNyw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRDcmVhdGVTdWJmcmFtZSh1aW50NjRfdCBmcmFtZUlEKQogICAgIG1fcHJvY2Vz
cy0+ZnJhbWVDcmVhdGVkKGZyYW1lSUQsIHN1YkZyYW1lLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZENyZWF0ZVdpbmRvdyh1aW50NjRfdCBmcmFtZUlELCBHbG9iYWxXaW5kb3dJ
ZGVudGlmaWVyJiYgd2luZG93SWRlbnRpZmllcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDcmVh
dGVXaW5kb3coRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEdsb2JhbFdpbmRvd0lkZW50aWZpZXIm
JiB3aW5kb3dJZGVudGlmaWVyKQogewogfQogCkBAIC0zOTgxLDEyICszOTgxLDEyIEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpkaWREZXN0cm95TmF2aWdhdGlvbih1aW50NjRfdCBuYXZpZ2F0aW9uSUQp
CiAgICAgbV9uYXZpZ2F0aW9uU3RhdGUtPmRpZERlc3Ryb3lOYXZpZ2F0aW9uKG5hdmlnYXRpb25J
RCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYgdXJsLCBV
UkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQ
YWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYgdXJsLCBVUkwmJiB1bnJlYWNo
YWJsZVVSTCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIGRpZFN0YXJ0UHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgbmF2
aWdhdGlvbklELCBXVEZNb3ZlKHVybCksIFdURk1vdmUodW5yZWFjaGFibGVVUkwpLCB1c2VyRGF0
YSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgdWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwsIFVSTCYmIHVucmVhY2hhYmxlVVJM
LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU3RhcnRQ
cm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nl
c3MsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYm
IHVybCwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsK
ICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00
MDA1LDggKzQwMDUsOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExv
YWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmCiAgICAgaWYgKGZyYW1lLT5p
c01haW5GcmFtZSgpICYmIG5hdmlnYXRpb25JRCkKICAgICAgICAgbmF2aWdhdGlvbiA9IG5hdmln
YXRpb25TdGF0ZSgpLm5hdmlnYXRpb24obmF2aWdhdGlvbklEKTsKIAotICAgIExPRyhMb2FkaW5n
LCAiV2ViUGFnZVByb3h5ICUiIFBSSXU2NCAiIGluIHByb2Nlc3MgcGlkICVpIGRpZFN0YXJ0UHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWUgdG8gZnJhbWVJRCAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklE
ICUiIFBSSXU2NCAiLCB1cmwgJXMiLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBwcm9jZXNzLT5wcm9j
ZXNzSWRlbnRpZmllcigpLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQsIHVybC5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRTdGFy
dFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1f
cGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQpOworICAgIExPRyhMb2FkaW5nLCAiV2ViUGFnZVBy
b3h5ICUiIFBSSXU2NCAiIGluIHByb2Nlc3MgcGlkICVpIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWUgdG8gZnJhbWVJRCAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEICUiIFBSSXU2NCAi
LCB1cmwgJXMiLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmll
cigpLCBmcmFtZUlELnRvVUludDY0KCksIG5hdmlnYXRpb25JRCwgdXJsLnN0cmluZygpLnV0Zjgo
KS5kYXRhKCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZFN0YXJ0
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9w
YWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAgIGF1dG8gdHJhbnNh
Y3Rpb24gPSBtX3BhZ2VMb2FkU3RhdGUudHJhbnNhY3Rpb24oKTsKIApAQCAtNDAzMSw3ICs0MDMx
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVT
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJgogICAgICAgICBtX25hdmlnYXRpb25DbGllbnQt
PmRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uKCp0aGlzLCBuYXZpZ2F0aW9uLmdldCgpLCBw
cm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9iamVjdCgpKS5nZXQo
KSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRFeHBsaWNpdE9wZW5Gb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBVUkwmJiB1cmwpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRXhwbGljaXRP
cGVuRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFVSTCYmIHVybCkKIHsKICAgICBh
dXRvKiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9D
SEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKQEAgLTQwNTAsMTUgKzQwNTAsMTUgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZEV4cGxpY2l0T3BlbkZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFVSTCYm
IHVybCkKICAgICBtX3BhZ2VMb2FkU3RhdGUuY29tbWl0Q2hhbmdlcygpOwogfQogCi12b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBSZXNvdXJjZVJl
cXVlc3QmJiByZXF1ZXN0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgUmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIGRpZFJl
Y2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJv
Y2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgV1RGTW92ZShyZXF1ZXN0KSwg
dXNlckRhdGEpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGly
ZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiBwcm9jZXNzLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JG
cmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVl
c3QsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKLSAgICBMT0coTG9hZGluZywgIldlYlBh
Z2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWUgdG8gZnJhbWVJRCAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEICUiIFBSSXU2NCAiLCB1cmwg
JXMiLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQsIHJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgp
LmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkUmVjZWl2
ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgcHJvY2Vzcy0+cHJvY2Vz
c0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgTE9HKExv
YWRpbmcsICJXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lIHRvIGZyYW1lSUQgJSIgUFJJdTY0ICIsIG5hdmlnYXRpb25JRCAlIiBQ
Ukl1NjQgIiwgdXJsICVzIiwgZnJhbWVJRC50b1VJbnQ2NCgpLCBuYXZpZ2F0aW9uSUQsIHJlcXVl
c3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRChMb2FkaW5nLCAiZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQo
KSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVj
dG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQwODUsOSArNDA4NSw5IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVNo
YXJlZChSZWY8CiAgICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkUmVjZWl2ZVNlcnZlclJl
ZGlyZWN0Rm9yUHJvdmlzaW9uYWxOYXZpZ2F0aW9uKCp0aGlzLCBuYXZpZ2F0aW9uLmdldCgpLCBw
cm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9iamVjdCgpKS5nZXQo
KSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1cmwsIGRvdWJsZSBkZWxheSwg
V2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCkKK3ZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsUGVy
Zm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0
IFN0cmluZyYgdXJsLCBkb3VibGUgZGVsYXksIFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3Qp
CiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAid2lsbFBlcmZvcm1DbGll
bnRSZWRpcmVjdEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZy
YW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdl
SUQudG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2Fk
aW5nLCAid2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vz
c0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsK
IAogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAg
LTQwOTgsOSArNDA5OCw5IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsUGVyZm9ybUNsaWVudFJl
ZGlyZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyCiAgICAgICAgIG1fbmF2
aWdhdGlvbkNsaWVudC0+d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdCgqdGhpcywgdXJsLCBkZWxh
eSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2FuY2VsQ2xpZW50
UmVkaXJlY3RGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKLSAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1l
OiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQs
IG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJh
bWVJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkQ2FuY2VsQ2xp
ZW50UmVkaXJlY3RGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFn
ZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAKICAgICBQYWdlQ2xpZW50UHJv
dGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00MTExLDEyICs0MTExLDEyIEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQpCiAgICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkQ2FuY2VsQ2xpZW50
UmVkaXJlY3QoKnRoaXMpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlz
aW9uYWxVUkxGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IFVSTCYmIHVybCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZv
ckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVS
TCYmIHVybCkKIHsKICAgICBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKG1f
cHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgV1RGTW92ZSh1cmwpKTsK
IH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVT
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCB1aW50NjRfdCBmcmFtZUlELCB1
aW50NjRfdCwgVVJMJiYgdXJsKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lv
bmFsVVJMRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QsIFVSTCYmIHVybCkKIHsKICAgICBQYWdlQ2xp
ZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00MTM1LDcgKzQxMzUs
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNo
YXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmCiAgICAgZnJhbWUtPmRpZFJlY2VpdmVTZXJ2ZXJS
ZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZCh1cmwpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNl
Y3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBSZXNvdXJjZUVycm9yJiBl
cnJvciwgV2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2Vy
RGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRh
dGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3Ry
aW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFdpbGxDb250
aW51ZUxvYWRpbmcgd2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRh
KQogewogICAgIGlmIChtX3Byb3Zpc2lvbmFsUGFnZSAmJiBtX3Byb3Zpc2lvbmFsUGFnZS0+bmF2
aWdhdGlvbklEKCkgPT0gbmF2aWdhdGlvbklEKSB7CiAgICAgICAgIC8vIFRoZSBsb2FkIGRpZCBu
b3QgZmFpbCwgaXQgaXMgbWVyZWx5IGhhcHBlbmluZyBpbiBhIG5ldyBwcm92aXNpb25hbCBwcm9j
ZXNzLgpAQCAtNDE0NSwxMCArNDE0NSwxMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaQogICAg
IGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigp
LCBmcmFtZUlELCBmcmFtZVNlY3VyaXR5T3JpZ2luLCBuYXZpZ2F0aW9uSUQsIHByb3Zpc2lvbmFs
VVJMLCBlcnJvciwgd2lsbENvbnRpbnVlTG9hZGluZywgdXNlckRhdGEpOwogfQogCi12b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQ
cm9jZXNzUHJveHk+JiYgcHJvY2VzcywgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlP
cmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNv
bnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBX
aWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJiB1
c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0
IFJlc291cmNlRXJyb3ImIGVycm9yLCBXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250aW51ZUxv
YWRpbmcsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBMT0coTG9hZGluZywgIihM
b2FkaW5nKSBXZWJQYWdlUHJveHkgJSIgUFJJdTY0ICIgaW4gd2ViIHByb2Nlc3MgcGlkICVpIGRp
ZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSB0byBwcm92aXNpb25hbFVSTCAlcyIsIG1fcGFn
ZUlELnRvVUludDY0KCksIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIHByb3Zpc2lvbmFs
VVJMLnV0ZjgoKS5kYXRhKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2Vzcywg
ImRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIGRvbWFpbiA9ICVzLCBjb2RlID0gJWQi
LCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFt
ZUlELCBlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJvci5lcnJvckNvZGUoKSk7Cisg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzLCAiZGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAl
IiBQUkl1NjQgIiwgZG9tYWluID0gJXMsIGNvZGUgPSAlZCIsIHByb2Nlc3MtPnByb2Nlc3NJZGVu
dGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSwgZXJyb3Iu
ZG9tYWluKCkudXRmOCgpLmRhdGEoKSwgZXJyb3IuZXJyb3JDb2RlKCkpOwogCiAgICAgUGFnZUNs
aWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDIyNCwxMSArNDIy
NCwxMSBAQCBzdGF0aWMgT3B0aW9uU2V0PENyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXI6
OkZsYWc+IGNoZWNrSWZOYXZpZ2F0aW9uQ29udGFpbgogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9t
Q29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBvcGFxdWVGcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJD
b3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdp
bkRvY3VtZW50LCBPcHRpb25hbDxIYXNJbnNlY3VyZUNvbnRlbnQ+IGhhc0luc2VjdXJlQ29udGVu
dCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1p
dExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFBy
b3ZpZGVyLCB1aW50MzJfdCBvcGFxdWVGcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0
aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50
LCBPcHRpb25hbDxIYXNJbnNlY3VyZUNvbnRlbnQ+IGhhc0luc2VjdXJlQ29udGVudCwgY29uc3Qg
VXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIExPRyhMb2FkaW5nLCAiKExvYWRpbmcpIFdlYlBh
Z2VQcm94eSAlIiBQUkl1NjQgIiBkaWRDb21taXRMb2FkRm9yRnJhbWUgaW4gbmF2aWdhdGlvbiAl
IiBQUkl1NjQsIG1fcGFnZUlELnRvVUludDY0KCksIG5hdmlnYXRpb25JRCk7CiAgICAgTE9HKEJh
Y2tGb3J3YXJkLCAiKEJhY2svRm9yd2FyZCkgQWZ0ZXIgbG9hZCBjb21taXQsIGJhY2svZm9yd2Fy
ZCBsaXN0IGlzIG5vdzolcyIsIG1fYmFja0ZvcndhcmRMaXN0LT5sb2dnaW5nU3RyaW5nKCkpOwot
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZENvbW1pdExvYWRGb3JGcmFt
ZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZy
YW1lSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZENvbW1pdExv
YWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUlu
dDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHBy
b3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00MzM4LDkgKzQzMzgsOSBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRAogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hE
b2N1bWVudExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5p
c2hEb2N1bWVudExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7Ci0gICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWU6IHdl
YlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9w
cm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlE
KTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRGaW5pc2hEb2N1bWVu
dExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRv
VUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9y
IHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00MzYxLDEwICs0MzYxLDEwIEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCB1aW50NjRfdCBuYXZpCiAgICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkRmluaXNo
RG9jdW1lbnRMb2FkKCp0aGlzLCBuYXZpZ2F0aW9uLmdldCgpLCBtX3Byb2Nlc3MtPnRyYW5zZm9y
bUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0KCkpLmdldCgpKTsKIH0KIAotdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIExP
RyhMb2FkaW5nLCAiV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUgLSBXZWJQYWdl
UHJveHkgJXAgd2l0aCBuYXZpZ2F0aW9uSUQgJSIgUFJJdTY0ICIgZGlkRmluaXNoTG9hZCIsIHRo
aXMsIG5hdmlnYXRpb25JRCk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAi
ZGlkRmluaXNoTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIs
IGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9w
YWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChM
b2FkaW5nLCAiZGlkRmluaXNoTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZp
ZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAgIFBh
Z2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQ0MDcsOSAr
NDQwNyw5IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklECiAgICAgbV9pc0xvYWRpbmdBbHRlcm5h
dGVIVE1MU3RyaW5nRm9yRmFpbGluZ1Byb3Zpc2lvbmFsTG9hZCA9IGZhbHNlOwogfQogCi12b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkRmFpbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBjb25zdCBVc2Vy
RGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbExvYWRGb3JGcmFtZShG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNv
dXJjZUVycm9yJiBlcnJvciwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewotICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZEZhaWxMb2FkRm9yRnJhbWU6IHdlYlBJRCA9
ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBkb21haW4g
PSAlcywgY29kZSA9ICVkIiwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJ
RC50b1VJbnQ2NCgpLCBmcmFtZUlELCBlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJv
ci5lcnJvckNvZGUoKSk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlk
RmFpbExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0ICIsIGRvbWFpbiA9ICVzLCBjb2RlID0gJWQiLCBtX3Byb2Nlc3MtPnBy
b2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQo
KSwgZXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSwgZXJyb3IuZXJyb3JDb2RlKCkpOwogCiAg
ICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDQ0
OSw5ICs0NDQ5LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxMb2FkRm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELAogICAgIH0KIH0KIAotdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQzMl90IG9wYXF1ZVNhbWVEb2N1bWVu
dE5hdmlnYXRpb25UeXBlLCBVUkwmJiB1cmwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3Zv
aWQgV2ViUGFnZVByb3h5OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUoRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMyX3Qgb3BhcXVl
U2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUsIFVSTCYmIHVybCwgY29uc3QgVXNlckRhdGEmIHVz
ZXJEYXRhKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZFNhbWVE
b2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCks
IG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoTG9hZGluZywgImRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZTogd2ViUElEID0g
JWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3Mt
PnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50
NjQoKSk7CiAKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkp
OwogCkBAIC00NDg4LDcgKzQ0ODgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU2FtZURvY3Vt
ZW50TmF2aWdhdGlvbkZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90CiAgICAgICAg
IHBhZ2VDbGllbnQoKS5kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKG5hdmln
YXRpb25UeXBlKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZU1haW5Eb2N1bWVu
dCh1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZU1haW5Eb2N1
bWVudChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQogICAgIGlmIChtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcikKQEAgLTQ1MDcs
NyArNDUwNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp2aWV3SXNCZWNvbWluZ1Zpc2libGUoKQog
I2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBVc2VyRGF0YSYgdXNl
ckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFVzZXJEYXRhJiB1
c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50
KCkpOwogCkBAIC00NTI5LDExICs0NTI5LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNl
aXZlVGl0bGVGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHRpdGxlCiAj
ZW5kaWYKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUodWlu
dDY0X3QsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRG
aXJzdExheW91dEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciwgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhKQogewogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5
TGF5b3V0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRh
KQordm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZy
YW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7
CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAt
NDU2NCw3ICs0NTY0LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlYWNoTGF5b3V0TWlsZXN0
b25lKE9wdGlvblNldDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+IGwKICAgICBtX25hdmlnYXRp
b25DbGllbnQtPnJlbmRlcmluZ1Byb2dyZXNzRGlkQ2hhbmdlKCp0aGlzLCBsYXlvdXRNaWxlc3Rv
bmVzKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgUGFnZUNs
aWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDU3OCw3ICs0NTc4
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVc2UKICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRp
ZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQoKnRoaXMsIG1fcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxl
c1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJ1bkluc2VjdXJl
Q29udGVudEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBVc2VyRGF0YSYg
dXNlckRhdGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVu
dCgpKTsKIApAQCAtNDU5Miw3ICs0NTkyLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJ1bklu
c2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXQKICAg
ICBtX25hdmlnYXRpb25DbGllbnQtPmRpZFJ1bkluc2VjdXJlQ29udGVudCgqdGhpcywgbV9wcm9j
ZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9iamVjdCgpKS5nZXQoKSk7
CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFtZSh1aW50NjRfdCwg
Y29uc3QgVXNlckRhdGEmKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZERldGVjdFhTU0ZvckZyYW1l
KEZyYW1lSWRlbnRpZmllciwgY29uc3QgVXNlckRhdGEmKQogewogfQogCkBAIC00NjAxLDcgKzQ2
MDEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bWFpbkZyYW1lUGx1Z2luSGFuZGxlc1BhZ2VTY2Fs
ZUdlc3R1cmVEaWRDaGFuZ2UoYm9vbCBtYWluRnJhbQogICAgIG1fbWFpbkZyYW1lUGx1Z2luSGFu
ZGxlc1BhZ2VTY2FsZUdlc3R1cmUgPSBtYWluRnJhbWVQbHVnaW5IYW5kbGVzUGFnZVNjYWxlR2Vz
dHVyZTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmZyYW1lRGlkQmVjb21lRnJhbWVTZXQodWlu
dDY0X3QgZnJhbWVJRCwgYm9vbCB2YWx1ZSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpmcmFtZURpZEJl
Y29tZUZyYW1lU2V0KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIHZhbHVlKQogewogICAg
IFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQ2MjAs
NyArNDYyMCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpiZWdpblNhZmVCcm93c2luZ0NoZWNrKGNv
bnN0IFVSTCYsIGJvb2wsIFdlYkZyYW1lUG9saWN5TGlzdGVuCiB9CiAjZW5kaWYKIAotdm9pZCBX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyh1aW50NjRf
dCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3Jp
Z2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlv
bklELAordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25B
c3luYyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwKICAgICBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmln
YXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCwKICAgICBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHks
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2Vy
RGF0YSYgdXNlckRhdGEsIHVpbnQ2NF90IGxpc3RlbmVySUQpCiB7CkBAIC00NjI4LDcgKzQ2Mjgs
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFz
eW5jKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcgogICAgICAgICBXVEZNb3ZlKGZyYW1lSW5mb0Rh
dGEpLCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZNb3ZlKHJlcXVlc3Qp
LCBXVEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNlckRh
dGEsIGxpc3RlbmVySUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vz
cywgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVT
ZWN1cml0eU9yaWdpbiwKK3ZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVT
ZWN1cml0eU9yaWdpbiwKICAgICBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRp
ZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmln
YXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELAogICAgIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHks
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLAogICAgIGNvbnN0
IFVzZXJEYXRhJiB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKQEAgLTQ4NTgsNyArNDg1
OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgV2ViRnJh
bWVQcm94eSYgZnJhbWUsIGNvbnN0IFVSTCYgcGFnCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdl
UHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKHVpbnQ2NF90IGZyYW1l
SUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1l
U2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAordm9pZCBX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRp
ZmllciwKICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYg
bmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsCiAgICAgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsCiAgICAgY29uc3QgVXNl
ckRhdGEmIHVzZXJEYXRhLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCkBAIC00ODc2LDcgKzQ4
NzYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
blN5bmModWludDY0X3QgZnJhbWVJRCwgYm9vbCBpcwogICAgICAgICBXVEZNb3ZlKGZyYW1lSW5m
b0RhdGEpLCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZNb3ZlKHJlcXVl
c3QpLCBXVEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNl
ckRhdGEsIFdURk1vdmUocmVwbHkpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYg
cHJvY2VzcywgdWludDY0X3QgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlm
aWVyIGlkZW50aWZpZXIsCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvblN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlk
ZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0
YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELAogICAgIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHks
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLAogICAgIGNvbnN0
IFVzZXJEYXRhJiB1c2VyRGF0YSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQpAQCAtNDg5Myw3
ICs0ODkzLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHkKICAgICBzZW5kZXItPnNlbmQoUG9s
aWN5QWN0aW9uOjpVc2UsIG5hdmlnYXRpb25JRCwgRG93bmxvYWRJRCgpLCBXVEY6Om51bGxvcHQp
OwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9u
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0
eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCit2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGlj
eUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAogICAgIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYg
bmF2aWdhdGlvbkFjdGlvbkRhdGEsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFN0
cmluZyYgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNl
ckRhdGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgp
KTsKQEAgLTQ5MzEsMTMgKzQ5MzEsMTMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGlj
eUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cmkKICAgICAg
ICAgCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmln
aW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAordm9pZCBXZWJQYWdlUHJveHk6
OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBT
ZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRp
ZmllciBpZGVudGlmaWVyLAogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9v
bCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2
NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBkZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBmcmFt
ZVNlY3VyaXR5T3JpZ2luLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCByZXF1
ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRlLCBsaXN0ZW5lcklELCB1c2Vy
RGF0YSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNo
YXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3Jp
Z2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKICAgICB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRv
d25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNl
ckRhdGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgp
KTsKQEAgLTQ5NzEsNyArNDk3MSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lG
b3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsCiAgICAgfQog
fQogCi12b2lkIFdlYlBhZ2VQcm94eTo6dW5hYmxlVG9JbXBsZW1lbnRQb2xpY3kodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0IFVzZXJEYXRhJiB1c2Vy
RGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojp1bmFibGVUb0ltcGxlbWVudFBvbGljeShGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0IFVzZXJE
YXRhJiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdl
Q2xpZW50KCkpOwogCkBAIC00OTg1LDcgKzQ5ODUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dW5h
YmxlVG9JbXBsZW1lbnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VFcnJv
cgogCiAvLyBGb3JtQ2xpZW50CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0Rm9ybSh1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBzb3VyY2VGcmFtZUlELCBjb25zdCBWZWN0b3I8c3Rk
OjpwYWlyPFN0cmluZywgU3RyaW5nPj4mIHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVu
ZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OndpbGxT
dWJtaXRGb3JtKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUlkZW50aWZpZXIgc291cmNl
RnJhbWVJRCwgY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+JiB0ZXh0Rmll
bGRWYWx1ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkK
IHsKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJ
RCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKQEAgLTUwMDMsMTIgKzUw
MDMsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlvbihV
UkwmJiB1cmwsIENvbnRlbnRSdWxlTGlzdFJlc3VsdHMKICAgICBtX25hdmlnYXRpb25DbGllbnQt
PmNvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlvbigqdGhpcywgV1RGTW92ZSh1cmwpLCBXVEZNb3Zl
KHJlc3VsdHMpKTsKIH0KICAgICAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWROYXZpZ2F0ZVdpdGhO
YXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiBzdG9yZSwgdWludDY0
X3QgZnJhbWVJRCkgCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlv
bkRhdGEoY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYgc3RvcmUsIEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlEKQogewogICAgIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKG1f
cHJvY2Vzcy5jb3B5UmVmKCksIHN0b3JlLCBmcmFtZUlEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYgcHJvY2VzcywgY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYgc3RvcmUsIHVpbnQ2
NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlv
bkRhdGFTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBjb25zdCBXZWJOYXZp
Z2F0aW9uRGF0YVN0b3JlJiBzdG9yZSwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlv
bkRhdGFTaGFyZWQ6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQsIHByb2Nlc3MtPnBy
b2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCkpOwogCkBAIC01MDIzLDE0ICs1
MDIzLDE0IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0
YVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByCiAgICAgcHJvY2Vzcy0+cHJvY2Vzc1Bv
b2woKS5oaXN0b3J5Q2xpZW50KCkuZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEocHJvY2Vz
cy0+cHJvY2Vzc1Bvb2woKSwgKnRoaXMsIHN0b3JlLCAqZnJhbWUpOwogfQogCi12b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJM
U3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFt
ZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBT
dHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmlu
ZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgZGlkUGVyZm9ybUNsaWVudFJlZGly
ZWN0U2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIHNvdXJjZVVSTFN0cmluZywgZGVzdGluYXRp
b25VUkxTdHJpbmcsIGZyYW1lSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9y
bUNsaWVudFJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgY29u
c3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxT
dHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybUNs
aWVudFJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgY29uc3Qg
U3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJp
bmcsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoTG9hZGluZywgImRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZDogd2ViUElEID0gJWks
IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBwcm9jZXNzLT5wcm9j
ZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFy
ZWQ6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2
NCwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJh
bWVJRC50b1VJbnQ2NCgpKTsKIAogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBh
Z2VDbGllbnQoKSk7CiAKQEAgLTUwNTAsMTIgKzUwNTAsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHBy
b2Nlc3MKICAgICBwcm9jZXNzLT5wcm9jZXNzUG9vbCgpLmhpc3RvcnlDbGllbnQoKS5kaWRQZXJm
b3JtQ2xpZW50UmVkaXJlY3QocHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKSwgKnRoaXMsIHNvdXJjZVVS
TFN0cmluZywgZGVzdGluYXRpb25VUkxTdHJpbmcsICpmcmFtZSk7CiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxT
dHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1l
SUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0
cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5n
LCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBkaWRQZXJmb3JtU2VydmVyUmVkaXJl
Y3RTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgc291cmNlVVJMU3RyaW5nLCBkZXN0aW5hdGlv
blVSTFN0cmluZywgZnJhbWVJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3Jt
U2VydmVyUmVkaXJlY3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBjb25z
dCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0
cmluZywgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtU2Vy
dmVyUmVkaXJlY3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBjb25zdCBT
dHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmlu
ZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RChMb2FkaW5nLCAiZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0OiB3ZWJQSUQgPSAlaSwgcGFnZUlE
ID0gJSIgUFJJdTY0LCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJ
bnQ2NCgpKTsKIApAQCAtNTA3Niw3ICs1MDc2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFBl
cmZvcm1TZXJ2ZXJSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MK
ICAgICBwcm9jZXNzLT5wcm9jZXNzUG9vbCgpLmhpc3RvcnlDbGllbnQoKS5kaWRQZXJmb3JtU2Vy
dmVyUmVkaXJlY3QocHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKSwgKnRoaXMsIHNvdXJjZVVSTFN0cmlu
ZywgZGVzdGluYXRpb25VUkxTdHJpbmcsICpmcmFtZSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5
OjpkaWRVcGRhdGVIaXN0b3J5VGl0bGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5n
JiB1cmwsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkVXBkYXRlSGlz
dG9yeVRpdGxlKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgdXJsLCBGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3Rvcihw
YWdlQ2xpZW50KCkpOwogCkBAIC01MTc4LDcgKzUxNzgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
Y2xvc2VQYWdlKGJvb2wgc3RvcFJlc3BvbnNpdmVuZXNzVGltZXIpCiAgICAgbV91aUNsaWVudC0+
Y2xvc2UodGhpcyk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0QWxlcnQo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdp
biwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZh
U2NyaXB0QWxlcnQ6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQordm9pZCBXZWJQYWdlUHJveHk6OnJ1
bkphdmFTY3JpcHRBbGVydChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlP
cmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQ6OkRlbGF5ZWRSZXBseSYmIHJlcGx5
KQogewogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFt
ZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwpAQCAtNTE5Nyw3ICs1
MTk3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRBbGVydCh1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEKICAgICBtX3VpQ2xpZW50LT5ydW5KYXZh
U2NyaXB0QWxlcnQodGhpcywgbWVzc2FnZSwgZnJhbWUsIHNlY3VyaXR5T3JpZ2luLCBXVEZNb3Zl
KHJlcGx5KSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0Q29uZmlybSh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2lu
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFT
Y3JpcHRDb25maXJtOjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpy
dW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJp
dHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybTo6RGVsYXllZFJlcGx5JiYg
cmVwbHkpCiB7CiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1l
KGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBmcmFtZSk7CkBAIC01MjE3
LDcgKzUyMTcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdENvbmZpcm0odWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYQogICAgIG1fdWlDbGllbnQtPnJ1
bkphdmFTY3JpcHRDb25maXJtKHRoaXMsIG1lc3NhZ2UsIGZyYW1lLCBzZWN1cml0eU9yaWdpbiwg
V1RGTW92ZShyZXBseSkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdFBy
b21wdCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5
T3JpZ2luLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVl
LCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0OjpEZWxheWVkUmVw
bHkmJiByZXBseSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3Jp
Z2luLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0OjpEZWxheWVkUmVwbHkm
JiByZXBseSkKIHsKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJh
bWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKQEAgLTUz
NzYsNyArNTM3Niw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpyb290Vmlld1RvQWNjZXNzaWJpbGl0
eVNjcmVlbihjb25zdCBJbnRSZWN0JiB2aWV3UmVjdCwgQ29tcGxlCiAgICAgY29tcGxldGlvbkhh
bmRsZXIocGFnZUNsaWVudCgpLnJvb3RWaWV3VG9BY2Nlc3NpYmlsaXR5U2NyZWVuKHZpZXdSZWN0
KSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdp
biwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5CZWZv
cmVVbmxvYWRDb25maXJtUGFuZWw6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQordm9pZCBXZWJQYWdl
UHJveHk6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5CZWZvcmVVbmxvYWRDb25maXJt
UGFuZWw6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQogewogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1l
ID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJv
Y2VzcywgZnJhbWUpOwpAQCAtNTQxNiw3ICs1NDE2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnBh
Z2VEaWRTY3JvbGwoKQogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpydW5PcGVuUGFu
ZWwodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCBjb25zdCBGaWxlQ2hvb3NlclNldHRpbmdzJiBzZXR0aW5ncykKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpydW5PcGVuUGFuZWwoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNl
Y3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgY29uc3QgRmlsZUNob29zZXJT
ZXR0aW5ncyYgc2V0dGluZ3MpCiB7CiAgICAgaWYgKG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXIp
IHsKICAgICAgICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci0+aW52YWxpZGF0ZSgpOwpAQCAt
NTQ1NSw3ICs1NDU1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNob3dTaGFyZVNoZWV0KGNvbnN0
IFNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmIHNoYXJlRGF0YSwgU2hhcmUKICAgICBwYWdlQ2xpZW50
KCkuc2hvd1NoYXJlU2hlZXQoc2hhcmVEYXRhLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
CiB9CiAgICAgCi12b2lkIFdlYlBhZ2VQcm94eTo6cHJpbnRGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdl
YlBhZ2VQcm94eTo6cHJpbnRGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghbV9p
c1BlcmZvcm1pbmdET01QcmludE9wZXJhdGlvbik7CiAgICAgbV9pc1BlcmZvcm1pbmdET01Qcmlu
dE9wZXJhdGlvbiA9IHRydWU7CkBAIC02NzY5LDI3ICs2NzY5LDI3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpwcmludEZpbmlzaGVkQ2FsbGJhY2soY29uc3QgUmVzb3VyY2VFcnJvciYgcHJpbnRFcnJv
ciwgQ2FsbGJhCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdlUHJveHk6OmZvY3VzZWRGcmFtZUNo
YW5nZWQodWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpmb2N1c2VkRnJhbWVD
aGFuZ2VkKGNvbnN0IE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4mIGZyYW1lSUQpCiB7CiAgICAg
aWYgKCFmcmFtZUlEKSB7CiAgICAgICAgIG1fZm9jdXNlZEZyYW1lID0gbnVsbHB0cjsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNz
LT53ZWJGcmFtZShmcmFtZUlEKTsKKyAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vz
cy0+d2ViRnJhbWUoKmZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBmcmFt
ZSk7CiAKICAgICBtX2ZvY3VzZWRGcmFtZSA9IGZyYW1lOwogfQogCi12b2lkIFdlYlBhZ2VQcm94
eTo6ZnJhbWVTZXRMYXJnZXN0RnJhbWVDaGFuZ2VkKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdl
YlBhZ2VQcm94eTo6ZnJhbWVTZXRMYXJnZXN0RnJhbWVDaGFuZ2VkKGNvbnN0IE9wdGlvbmFsPEZy
YW1lSWRlbnRpZmllcj4mIGZyYW1lSUQpCiB7CiAgICAgaWYgKCFmcmFtZUlEKSB7CiAgICAgICAg
IG1fZnJhbWVTZXRMYXJnZXN0RnJhbWUgPSBudWxscHRyOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1l
SUQpOworICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZSgqZnJh
bWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKIAogICAgIG1fZnJh
bWVTZXRMYXJnZXN0RnJhbWUgPSBmcmFtZTsKQEAgLTczNDUsMjYgKzczNDUsMjYgQEAgV2Vha1B0
cjxTZWNLZXlQcm94eVN0b3JlPiBXZWJQYWdlUHJveHk6OnNlY0tleVByb3h5U3RvcmUoY29uc3Qg
V2ViQ29yZTo6QXV0aGVudGkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KICAgICAKLXZvaWQgV2Vi
UGFnZVByb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSh1aW50NjRf
dCwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYgYXV0aGVudGljYXRpb25DaGFs
bGVuZ2UpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlUHJveHkoRnJhbWVJZGVudGlmaWVyLCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94
eT4mJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkKIHsKICAgICBtX25hdmlnYXRpb25DbGllbnQt
PmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgqdGhpcywgYXV0aGVudGljYXRpb25D
aGFsbGVuZ2UuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZXhjZWVkZWREYXRhYmFz
ZVF1b3RhKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVp
bnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRf
dCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6RXhjZWVkZWREYXRhYmFzZVF1b3RhOjpEZWxheWVkUmVwbHkmJiByZXBs
eSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJl
bnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0
YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6RXhjZWVkZWREYXRhYmFzZVF1b3RhOjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsKICAgICBy
ZXF1ZXN0U3RvcmFnZVNwYWNlKGZyYW1lSUQsIG9yaWdpbklkZW50aWZpZXIsIGRhdGFiYXNlTmFt
ZSwgZGlzcGxheU5hbWUsIGN1cnJlbnRRdW90YSwgY3VycmVudE9yaWdpblVzYWdlLCBjdXJyZW50
RGF0YWJhc2VVc2FnZSwgZXhwZWN0ZWRVc2FnZSwgW3JlcGx5ID0gV1RGTW92ZShyZXBseSldKGF1
dG8gcXVvdGEpIG11dGFibGUgewogICAgICAgICByZXBseShxdW90YSk7CiAgICAgfSk7CiB9CiAK
LXZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0U3RvcmFnZVNwYWNlKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5h
bWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWlu
dDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwg
dWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFN0b3JhZ2VT
cGFjZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFt
ZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVp
bnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFN0b3JhZ2UsICJyZXF1ZXN0U3RvcmFnZVNwYWNlIGZv
ciBmcmFtZSAlIiBQUkl1NjQgIiwgY3VycmVudCBxdW90YSAlIiBQUkl1NjQgIiBjdXJyZW50IHVz
YWdlICUiIFBSSXU2NCAiIGV4cGVjdGVkIHVzYWdlICUiIFBSSXU2NCwgZnJhbWVJRCwgY3VycmVu
dFF1b3RhLCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgZXhwZWN0ZWRVc2FnZSk7CisgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRChTdG9yYWdlLCAicmVxdWVzdFN0b3JhZ2VTcGFjZSBmb3IgZnJhbWUg
JSIgUFJJdTY0ICIsIGN1cnJlbnQgcXVvdGEgJSIgUFJJdTY0ICIgY3VycmVudCB1c2FnZSAlIiBQ
Ukl1NjQgIiBleHBlY3RlZCB1c2FnZSAlIiBQUkl1NjQsIGZyYW1lSUQudG9VSW50NjQoKSwgY3Vy
cmVudFF1b3RhLCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgZXhwZWN0ZWRVc2FnZSk7CiAKICAgICBT
dG9yYWdlUmVxdWVzdHM6OnNpbmdsZXRvbigpLnByb2Nlc3NPckFwcGVuZChbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBwYWdlVVJMID0gY3VycmVudFVSTCgpLCBmcmFtZUlE
LCBvcmlnaW5JZGVudGlmaWVyLCBkYXRhYmFzZU5hbWUsIGRpc3BsYXlOYW1lLCBjdXJyZW50UXVv
dGEsIGN1cnJlbnRPcmlnaW5Vc2FnZSwgY3VycmVudERhdGFiYXNlVXNhZ2UsIGV4cGVjdGVkVXNh
Z2UsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0
YWJsZSB7CiAgICAgICAgIHRoaXMtPm1ha2VTdG9yYWdlU3BhY2VSZXF1ZXN0KGZyYW1lSUQsIG9y
aWdpbklkZW50aWZpZXIsIGRhdGFiYXNlTmFtZSwgZGlzcGxheU5hbWUsIGN1cnJlbnRRdW90YSwg
Y3VycmVudE9yaWdpblVzYWdlLCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgZXhwZWN0ZWRVc2FnZSwg
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBmcmFtZUlELCBw
YWdlVVJMID0gV1RGTW92ZShwYWdlVVJMKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSwgY3VycmVudFF1b3RhXShhdXRvIHF1b3RhKSBtdXRhYmxlIHsKIAot
ICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChTdG9yYWdlLCAicmVxdWVzdFN0b3Jh
Z2VTcGFjZSByZXNwb25zZSBmb3IgZnJhbWUgJSIgUFJJdTY0ICIsIHF1b3RhICUiIFBSSXU2NCwg
ZnJhbWVJRCwgcXVvdGEpOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChTdG9y
YWdlLCAicmVxdWVzdFN0b3JhZ2VTcGFjZSByZXNwb25zZSBmb3IgZnJhbWUgJSIgUFJJdTY0ICIs
IHF1b3RhICUiIFBSSXU2NCwgZnJhbWVJRC50b1VJbnQ2NCgpLCBxdW90YSk7CiAKICAgICAgICAg
ICAgIGlmIChxdW90YSA8PSBjdXJyZW50UXVvdGEgJiYgdGhpcy0+Y3VycmVudFVSTCgpID09IHBh
Z2VVUkwpIHsKICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFN0b3JhZ2Us
ICJzdG9yYWdlIHNwYWNlIGluY3JlYXNlIGRlbmllZCIpOwpAQCAtNzM3Niw3ICs3Mzc2LDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RTdG9yYWdlU3BhY2UodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgU3RyaW5nJiBvcmlnaW5JZGUKICAgICB9KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6
Om1ha2VTdG9yYWdlU3BhY2VSZXF1ZXN0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYg
b3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmlu
ZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9y
aWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0
ZWRVc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6bWFrZVN0b3JhZ2VTcGFjZVJlcXVlc3QoRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90
IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJy
ZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCh1aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKG1faXNR
dW90YUluY3JlYXNlRGVuaWVkKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGN1cnJlbnRR
dW90YSk7CkBAIC03NDAyLDcgKzc0MDIsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVhY2hlZEFw
cGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aQogICAg
IG1fdWlDbGllbnQtPnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodGhpcywgc2Vj
dXJpdHlPcmlnaW4uZ2V0KCksIGN1cnJlbnRRdW90YSwgdG90YWxCeXRlc05lZWRlZCwgV1RGTW92
ZShyZXBseSkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEdlb2xvY2F0aW9uUGVy
bWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQs
IFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RHZW9s
b2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCBGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCiB7CiAgICAgV2ViRnJh
bWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NB
R0VfQ0hFQ0sobV9wcm9jZXNzLCBmcmFtZSk7CkBAIC03NDQ2LDcgKzc0NDYsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6c2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZE92ZXJyaWRlKE9wdGlvbmFs
PGJvb2w+IGVuYWJsZWQpCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgIHVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luRGF0YSwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BM
ZXZlbERvY3VtZW50T3JpZ2luRGF0YSwgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYgcmVx
dWVzdCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZy
YW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiAgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5EYXRh
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmln
aW5EYXRhLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJiByZXF1ZXN0KQogewogI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIG1fcHJvY2Vz
cy0+d2ViRnJhbWUoZnJhbWVJRCkpOwpAQCAtNzQ2MSw3ICs3NDYxLDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1l
ZGlhSUQsIHVpbnQKICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZW51bWVyYXRlTWVk
aWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdXNlck1lZGlhRG9jdW1lbnRPcmln
aW5EYXRhLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1l
bnRPcmlnaW5EYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNlc0Zv
ckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRh
dGEsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9y
aWdpbkRhdGEpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBXZWJGcmFtZVByb3h5
KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC03NDkzLDcgKzc0OTMs
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xlYXJVc2VyTWVkaWFTdGF0ZSgpCiB9CiAKICNpZiBF
TkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQotdm9pZCBXZWJQYWdlUHJveHk6OnNob3VsZEFsbG93
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ModWludDY0X3QgZnJhbWVJRCwgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgb3JpZ2luRGF0YSwgYm9vbCBtYXlQcm9tcHQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0
ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6c2hvdWxkQWxsb3dE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgb3JpZ2luRGF0YSwgYm9vbCBtYXlQcm9tcHQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Np
b25TdGF0ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViRnJhbWVQcm94eSogZnJh
bWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9w
cm9jZXNzLCBmcmFtZSk7CkBAIC04NzM2LDcgKzg3MzYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
bG9hZFN5bmNocm9ub3VzVVJMU2NoZW1lVGFzayhVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmIHBh
cmFtZQogfQogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLXZvaWQgV2Vi
UGFnZVByb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVE
b21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFN0b3JhZ2VBY2Nl
c3NDb25maXJtKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBtX3VpQ2xpZW50LT5yZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oKnRoaXMsIG1fcHJv
Y2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCksIHN1YkZyYW1lRG9tYWluLCB0b3BGcmFtZURvbWFpbiwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAppbmRleCBiNDM4M2NhZjg4ZjM3MjcyY2Y5NDc3YjY0MDM5Y2U5ZWY1Yzk0OWEx
Li4yMDc2OTU5MWFjMWUzMjJmNTFjZGNmNTIwZTVhY2VlYjJlM2Y5Y2E5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTAxOCw3ICsxMDE4LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKGNvbnN0IFN0cmluZyYsIGJvb2wsIFdU
Rjo6RnVuY3Rpb248dm9pZCAoQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqLCBib29sIGhhZEV4
Y2VwdGlvbiwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyYsIENhbGxiYWNrQmFzZTo6
RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pOwogICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluTWFp
bkZyYW1lU2NyaXB0V29ybGQoY29uc3QgU3RyaW5nJiwgYm9vbCwgY29uc3QgT3B0aW9uYWw8U3Ry
aW5nPiYgd29ybGROYW1lLCBXVEY6OkZ1bmN0aW9uPHZvaWQoQVBJOjpTZXJpYWxpemVkU2NyaXB0
VmFsdWUqLCBib29sIGhhZEV4Y2VwdGlvbiwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWls
cyYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pOwogICAgIC8vIEZv
ciBzdWIgZnJhbWVzLgotICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgV1RGOjpG
dW5jdGlvbjx2b2lkKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiwgYm9vbCBoYWRFeGNlcHRp
b24sIGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHMmLCBDYWxsYmFja0Jhc2U6OkVycm9y
KT4mJiBjYWxsYmFja0Z1bmN0aW9uKTsKKyAgICB2b2lkIHJ1bkphdmFTY3JpcHRJbkZyYW1lKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VV
c2VyR2VzdHVyZSwgV1RGOjpGdW5jdGlvbjx2b2lkKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVl
KiwgYm9vbCBoYWRFeGNlcHRpb24sIGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHMmLCBD
YWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKTsKICAgICB2b2lkIGZvcmNl
UmVwYWludChSZWZQdHI8Vm9pZENhbGxiYWNrPiYmKTsKIAogICAgIGZsb2F0IGhlYWRlckhlaWdo
dChXZWJGcmFtZVByb3h5Jik7CkBAIC0xMTYxLDcgKzExNjEsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBkcmF3UmVjdFRvSW1hZ2UoV2ViRnJhbWVQcm94eSosIGNvbnN0IFByaW50SW5mbyYsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgUmVmPEltYWdlQ2Fs
bGJhY2s+JiYpOwogICAgIHZvaWQgZHJhd1BhZ2VzVG9QREYoV2ViRnJhbWVQcm94eSosIGNvbnN0
IFByaW50SW5mbyYsIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgUmVmPERhdGFDYWxs
YmFjaz4mJik7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB1aW50MzJfdCBjb21wdXRl
UGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmlu
dEluZm8mLCBEcmF3VG9QREZDYWxsYmFjazo6Q2FsbGJhY2tGdW5jdGlvbiYmKTsKKyAgICB1aW50
MzJfdCBjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERihXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYsIERyYXdUb1BERkNhbGxiYWNrOjpDYWxsYmFja0Z1
bmN0aW9uJiYpOwogICAgIHZvaWQgZHJhd1RvUERGQ2FsbGJhY2soY29uc3QgSVBDOjpEYXRhUmVm
ZXJlbmNlJiBwZGZEYXRhLCBXZWJLaXQ6OkNhbGxiYWNrSUQpOwogI2VuZGlmCiAjZWxpZiBQTEFU
Rk9STShHVEspCkBAIC0xMjUyLDcgKzEyNTIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRWaWV3
cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKICAg
ICBXZWJDb3JlOjpJbnRTaXplIHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKSBjb25z
dCB7IHJldHVybiBtX3ZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMudmFsdWVPcihXZWJD
b3JlOjpJbnRTaXplKCkpOyB9CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZVByb3h5KHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZVByb3h5PiYmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVBy
b3h5KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
UHJveHk+JiYpOwogCiAgICAgU3BlbGxEb2N1bWVudFRhZyBzcGVsbERvY3VtZW50VGFnKCk7CiAK
QEAgLTE0NTIsMTIgKzE0NTIsMTIgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25m
aXJtKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29u
c3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBm
cmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHJlcXVl
c3RTdG9yYWdlQWNjZXNzQ29uZmlybShjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYg
c3ViRnJhbWVEb21haW4sIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFt
ZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKTsKICAgICB2b2lkIGRpZENvbW1pdENyb3NzU2l0ZUxvYWRXaXRoRGF0YVRyYW5z
ZmVyRnJvbVByZXZhbGVudFJlc291cmNlKCk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pCi0gICAgdm9pZCBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYm
LCBib29sIG1heVByb21wdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpEZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlKT4mJik7CisgICAgdm9pZCBzaG91bGRB
bGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIGJvb2wgbWF5UHJvbXB0LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJt
aXNzaW9uU3RhdGUpPiYmKTsKICNlbmRpZgogCiAgICAgc3RhdGljIFdlYlBhZ2VQcm94eSogbm9u
RXBoZW1lcmFsV2ViUGFnZVByb3h5KCk7CkBAIC0xNDk4LDMzICsxNDk4LDMzIEBAIHB1YmxpYzoK
ICNlbmRpZgogCiAgICAgUHJvdmlzaW9uYWxQYWdlUHJveHkqIHByb3Zpc2lvbmFsUGFnZVByb3h5
KCkgY29uc3QgeyByZXR1cm4gbV9wcm92aXNpb25hbFBhZ2UuZ2V0KCk7IH0KLSAgICB2b2lkIGNv
bW1pdFByb3Zpc2lvbmFsUGFnZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJv
dmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRl
SW5mbyYsIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFz
SW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRh
Jik7CisgICAgdm9pZCBjb21taXRQcm92aXNpb25hbFBhZ2UoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wg
ZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNv
bnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYsIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVu
dCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3Vy
ZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJik7CiAKICAgICAvLyBMb2dpYyBzaGFyZWQgYmV0d2Vl
biB0aGUgV2ViUGFnZVByb3h5IGFuZCB0aGUgUHJvdmlzaW9uYWxQYWdlUHJveHkuCi0gICAgdm9p
ZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYsIFVS
TCYmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkRmFpbFBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1
cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lv
bmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6V2lsbENvbnRp
bnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJS
ZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRQZXJmb3Jt
U2VydmVyUmVkaXJlY3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVp
bnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBj
b25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKTsKLSAg
ICB2b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYsIGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmLCB1aW50NjRfdCBmcmFtZUlE
KTsKLSAgICB2b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBVUkwmJik7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNT
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5
Q2hlY2tJZGVudGlmaWVyLAorICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFt
ZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYsIFVSTCYmIHVucmVhY2hhYmxlVVJMLCBjb25z
dCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nLCBjb25z
dCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYmLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkUGVyZm9ybVNlcnZlclJl
ZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgc291cmNl
VVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBj
b25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIpOworICAgIHZvaWQgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiwgY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZy
YW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJik7CisgICAgdm9pZCBkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFt
ZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsCiAgICAgICAg
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZv
RGF0YSYmLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdl
SUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwKICAgICAgICAgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYm
IHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25z
ZSwgY29uc3QgVXNlckRhdGEmLCB1aW50NjRfdCBsaXN0ZW5lcklEKTsKLSAgICB2b2lkIGRlY2lk
ZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0
eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLAorICAgIHZvaWQgZGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1l
U2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwKICAgICAgICAg
dWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNv
bnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0
IFVzZXJEYXRhJik7CiAgICAgdm9pZCBzdGFydFVSTFNjaGVtZVRhc2tTaGFyZWQoUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiwgVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJik7CiAgICAgdm9pZCBsb2Fk
RGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIEFQSTo6TmF2
aWdhdGlvbiYsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGNvbnN0IFN0cmluZyYgTUlNRVR5
cGUsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpP
YmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9w
dGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBXVEY6Om51bGxvcHQsIFdlYkNvcmU6OlNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiAgICAgdm9pZCBsb2FkUmVxdWVzdFdpdGhOYXZp
Z2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIEFQSTo6TmF2aWdhdGlvbiYsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiA9IFdURjo6bnVsbG9w
dCk7CiAgICAgdm9pZCBiYWNrRm9yd2FyZEdvVG9JdGVtU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYsIGNvbnN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmKT4mJik7Ci0gICAgdm9p
ZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmLCB1aW50NjRfdCBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCisgICAgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAgRnJh
bWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRp
bmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJl
cXVlc3RCb2R5LAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RS
ZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYpOwogI2lmIFVTRShR
VUlDS19MT09LKQogICAgIHZvaWQgZGlkUmVxdWVzdFBhc3N3b3JkRm9yUXVpY2tMb29rRG9jdW1l
bnRJbk1haW5GcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBTdHJpbmcm
IGZpbGVOYW1lKTsKICNlbmRpZgogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKLSAgICB2
b2lkIGNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmLCBjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImLCB1
aW50NjRfdCBmcmFtZUlEKTsKKyAgICB2b2lkIGNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JG
cmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBXZWJDb3JlOjpDb250ZW50
RmlsdGVyVW5ibG9ja0hhbmRsZXImLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogI2VuZGlm
CiAKICAgICB2b2lkIGR1bXBBZENsaWNrQXR0cmlidXRpb24oQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChjb25zdCBTdHJpbmcmKT4mJik7CkBAIC0xNTYxLDcgKzE1NjEsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBv
dmVycmlkZTsKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRl
OwogCi0gICAgdm9pZCByZXF1ZXN0U3RvcmFnZVNwYWNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNv
bnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3Qg
Y3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0
X3QgZXhwZWN0ZWRVc2FnZSwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4m
Jik7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZVNwYWNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNl
TmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1
aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdl
LCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQodWlu
dDY0X3QpPiYmKTsKIAogICAgIFVSTCBjdXJyZW50UmVzb3VyY2VEaXJlY3RvcnlVUkwoKSBjb25z
dDsKIApAQCAtMTU4MSw3ICsxNTgxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZVRocm90
dGxlU3RhdGUoKTsKICAgICB2b2lkIHVwZGF0ZUhpZGRlblBhZ2VUaHJvdHRsaW5nQXV0b0luY3Jl
YXNlcygpOwogCi0gICAgYm9vbCBzdXNwZW5kQ3VycmVudFBhZ2VJZlBvc3NpYmxlKEFQSTo6TmF2
aWdhdGlvbiYsIE9wdGlvbmFsPHVpbnQ2NF90PiBtYWluRnJhbWVJRCwgUHJvY2Vzc1N3YXBSZXF1
ZXN0ZWRCeUNsaWVudCwgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKTsKKyAgICBib29sIHN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUo
QVBJOjpOYXZpZ2F0aW9uJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBtYWlu
RnJhbWVJRCwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgU2hvdWxkRGVsYXlDbG9zaW5n
VW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKTsKIAogICAgIGVudW0gY2xh
c3MgUmVzZXRTdGF0ZVJlYXNvbiB7CiAgICAgICAgIFBhZ2VJbnZhbGlkYXRlZCwKQEAgLTE2MTAs
MzIgKzE2MTAsMzIgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RQb2ludGVyVW5sb2NrKCk7
CiAjZW5kaWYKIAotICAgIHZvaWQgZGlkQ3JlYXRlTWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQp
OwotICAgIHZvaWQgZGlkQ3JlYXRlU3ViZnJhbWUodWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9p
ZCBkaWRDcmVhdGVXaW5kb3codWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6R2xvYmFsV2luZG93
SWRlbnRpZmllciYmKTsKLQotICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmLCBVUkwmJiB1
bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2
ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFVz
ZXJEYXRhJik7Ci0gICAgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1cmwsIGRvdWJsZSBkZWxheSwgV2ViQ29yZTo6
TG9ja0JhY2tGb3J3YXJkTGlzdCk7Ci0gICAgdm9pZCBkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxV
UkxGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYm
KTsKLSAgICB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmln
aW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRp
bmcsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRDb21taXRMb2FkRm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVU
eXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxv
YWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mLCBib29sIGNvbnRhaW5zUGx1
Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2Vk
SGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkRmluaXNo
RG9jdW1lbnRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEmKTsK
LSAgICB2b2lkIGRpZEZhaWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgVXNlckRh
dGEmKTsKLSAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQzMl90IHNhbWVEb2N1bWVudE5h
dmlnYXRpb25UeXBlLCBVUkwmJiwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZENoYW5n
ZU1haW5Eb2N1bWVudCh1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZEV4cGxpY2l0T3Bl
bkZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFVSTCYmKTsKLQotICAgIHZvaWQgZGlkUmVjZWl2
ZVRpdGxlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiwgY29uc3QgVXNl
ckRhdGEmKTsKLSAgICB2b2lkIGRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxh
eW91dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9p
ZCBkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWREZXRlY3RYU1NG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlk
Q3JlYXRlTWFpbkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRD
cmVhdGVTdWJmcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkQ3Jl
YXRlV2luZG93KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6R2xvYmFsV2luZG93
SWRlbnRpZmllciYmKTsKKworICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFt
ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYs
IFVSTCYmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkUmVj
ZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgd2lsbFBlcmZvcm1DbGllbnRSZWRp
cmVjdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1cmws
IGRvdWJsZSBkZWxheSwgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCk7CisgICAgdm9pZCBk
aWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7
CisgICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJik7CisgICAgdm9pZCBkaWRG
YWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0
IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRDb21taXRMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5
cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9h
ZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYsIGJvb2wgY29udGFpbnNQbHVn
aW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRI
YXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRGaW5pc2hE
b2N1bWVudExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZEZpbmlzaExvYWRGb3JG
cmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29u
c3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZEZhaWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2
aWdhdGlvbkZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdh
dGlvbklELCB1aW50MzJfdCBzYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgVVJMJiYsIGNvbnN0
IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRDaGFuZ2VNYWluRG9jdW1lbnQoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZEV4cGxpY2l0T3BlbkZvckZyYW1lKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgVVJMJiYpOworCisgICAgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JG
cmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFVzZXJE
YXRhJik7CisgICAgdm9pZCBkaWRGaXJzdExheW91dEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZEZpcnN0VmlzdWFsbHlOb25F
bXB0eUxheW91dEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgVXNlckRh
dGEmKTsKKyAgICB2b2lkIGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRSdW5JbnNl
Y3VyZUNvbnRlbnRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFVzZXJE
YXRhJik7CisgICAgdm9pZCBkaWREZXRlY3RYU1NGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBtYWluRnJhbWVQbHVnaW5IYW5kbGVz
UGFnZVNjYWxlR2VzdHVyZURpZENoYW5nZShib29sKTsKLSAgICB2b2lkIGZyYW1lRGlkQmVjb21l
RnJhbWVTZXQodWludDY0X3QgZnJhbWVJRCwgYm9vbCk7CisgICAgdm9pZCBmcmFtZURpZEJlY29t
ZUZyYW1lU2V0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCk7CiAgICAgdm9pZCBkaWRT
dGFydFByb2dyZXNzKCk7CiAgICAgdm9pZCBkaWRDaGFuZ2VQcm9ncmVzcyhkb3VibGUpOwogICAg
IHZvaWQgZGlkRmluaXNoUHJvZ3Jlc3MoKTsKQEAgLTE2NDgsMzcgKzE2NDgsMzcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nl
c3NQcm94eT4mJiwgV2ViRnJhbWVQcm94eSYsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYm
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAg
IEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdp
bmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVx
dWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2Um
JiByZXF1ZXN0Qm9keSwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGly
ZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgUmVmPFBvbGljeURlY2lzaW9uU2VuZGVyPiYm
KTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyh1aW50NjRf
dCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5
Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25E
YXRhJiYsCisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmln
YXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKICAgICAgICAgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwg
dWludDY0X3QgbGlzdGVuZXJJRCk7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uU3luYyh1aW50NjRfdCBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCisgICAgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3Jl
OjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlv
bkFjdGlvbkRhdGEmJiwKICAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwg
SVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAogICAgICAgICBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6
RGVsYXllZFJlcGx5JiYpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9u
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKKyAg
ICB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCB1aW50NjRfdCBs
aXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
CisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNo
ZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELAogICAgICAgICBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jiwg
Ym9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVp
bnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCB1bmFibGVUb0lt
cGxlbWVudFBvbGljeSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yJiwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIHVuYWJsZVRvSW1wbGVtZW50UG9saWN5
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYs
IGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBiZWdpblNhZmVCcm93c2luZ0NoZWNrKGNvbnN0
IFVSTCYsIGJvb2wsIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eSYpOwogCiAgICAgV2ViQ29u
dGVudE1vZGUgZWZmZWN0aXZlQ29udGVudE1vZGVBZnRlckFkanVzdGluZ1BvbGljaWVzKEFQSTo6
V2Vic2l0ZVBvbGljaWVzJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAKLSAg
ICB2b2lkIHdpbGxTdWJtaXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZy
YW1lSUQsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiYgdGV4dEZpZWxk
VmFsdWVzLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQg
d2lsbFN1Ym1pdEZvcm0oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgc291cmNlRnJhbWVJRCwgY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0
cmluZz4+JiB0ZXh0RmllbGRWYWx1ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJE
YXRhJik7CiAKICAgICB2b2lkIGNvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlvbihVUkwmJiwgV2Vi
Q29yZTo6Q29udGVudFJ1bGVMaXN0UmVzdWx0cyYmKTsKIAogICAgIC8vIEhpc3RvcnkgY2xpZW50
Ci0gICAgdm9pZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0
aW9uRGF0YVN0b3JlJiwgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRQZXJmb3JtQ2xp
ZW50UmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYg
ZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkUGVy
Zm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBT
dHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lk
IGRpZFVwZGF0ZUhpc3RvcnlUaXRsZShjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcm
IHVybCwgdWludDY0X3QgZnJhbWVJRCk7CisgICAgdm9pZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0
aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyKTsKKyAgICB2b2lkIGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBTdHJpbmcm
IHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVj
dChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlv
blVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZFVwZGF0
ZUhpc3RvcnlUaXRsZShjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIHVybCwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyKTsKIAogICAgIC8vIFVJIGNsaWVudAogICAgIHZvaWQgY3Jl
YXRlTmV3UGFnZShjb25zdCBGcmFtZUluZm9EYXRhJiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwg
V2ViQ29yZTo6V2luZG93RmVhdHVyZXMmJiwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6Q3JlYXRlTmV3UGFnZTo6RGVsYXllZFJlcGx5JiYpOwogICAgIHZv
aWQgc2hvd1BhZ2UoKTsKLSAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydCh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmLCBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQ6OkRlbGF5ZWRSZXBseSYm
KTsKLSAgICB2b2lkIHJ1bkphdmFTY3JpcHRDb25maXJtKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYsIE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRDb25maXJtOjpEZWxheWVkUmVwbHkmJik7Ci0gICAg
dm9pZCBydW5KYXZhU2NyaXB0UHJvbXB0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OkRlbGF5ZWRSZXBseSYmKTsK
KyAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYsIE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydDo6RGVsYXllZFJlcGx5JiYpOworICAg
IHZvaWQgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmLCBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybTo6RGVsYXllZFJlcGx5JiYpOworICAg
IHZvaWQgcnVuSmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OkRlbGF5ZWRS
ZXBseSYmKTsKICAgICB2b2lkIHNldFN0YXR1c1RleHQoY29uc3QgU3RyaW5nJik7CiAgICAgdm9p
ZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChXZWJIaXRUZXN0UmVzdWx0RGF0YSYmLCB1aW50MzJf
dCBtb2RpZmllcnMsIFVzZXJEYXRhJiYpOwogCkBAIC0xNzAxLDIxICsxNzAxLDIxIEBAIHByaXZh
dGU6CiAgICAgdm9pZCByb290Vmlld1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHZp
ZXdSZWN0LCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSb290Vmlld1RvU2NyZWVuOjpEZWxheWVk
UmVwbHkmJik7CiAgICAgdm9pZCBhY2Nlc3NpYmlsaXR5U2NyZWVuVG9Sb290Vmlldyhjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYgc2NyZWVuUG9pbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vi
Q29yZTo6SW50UG9pbnQpPiYmKTsKICAgICB2b2lkIHJvb3RWaWV3VG9BY2Nlc3NpYmlsaXR5U2Ny
ZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHZpZXdSZWN0LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdlYkNvcmU6OkludFJlY3QpPiYmKTsKLSAgICB2b2lkIHJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkJl
Zm9yZVVubG9hZENvbmZpcm1QYW5lbDo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgcnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw6OkRlbGF5ZWRSZXBs
eSYmKTsKICAgICB2b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3Jl
OjpWaWV3cG9ydEF0dHJpYnV0ZXMmKTsKICAgICB2b2lkIHBhZ2VEaWRTY3JvbGwoKTsKLSAgICB2
b2lkIHJ1bk9wZW5QYW5lbCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmLCBjb25zdCBXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzJik7CisgICAg
dm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdz
Jik7CiAgICAgdm9pZCBzaG93U2hhcmVTaGVldChjb25zdCBXZWJDb3JlOjpTaGFyZURhdGFXaXRo
UGFyc2VkVVJMJiwgU2hhcmVTaGVldENhbGxiYWNrSUQpOwotICAgIHZvaWQgcHJpbnRGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQg
ZXhjZWVkZWREYXRhYmFzZVF1b3RhKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3Jp
Z2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYg
ZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdp
blVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRV
c2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhjZWVkZWREYXRhYmFzZVF1b3RhOjpEZWxh
eWVkUmVwbHkmJik7CisgICAgdm9pZCBwcmludEZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIGV4Y2VlZGVkRGF0YWJh
c2VRdW90YShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxh
eU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdl
LCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwg
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhjZWVkZWREYXRhYmFzZVF1b3RhOjpEZWxheWVkUmVw
bHkmJik7CiAgICAgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKGNvbnN0
IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRf
dCB0b3RhbEJ5dGVzTmVlZGVkLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZWFjaGVkQXBwbGlj
YXRpb25DYWNoZU9yaWdpblF1b3RhOjpEZWxheWVkUmVwbHkmJik7Ci0gICAgdm9pZCByZXF1ZXN0
R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgdWlu
dDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpOworICAgIHZvaWQgcmVxdWVz
dEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpOwogCiAjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eSYgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCk7CiAjZW5kaWYKLSAg
ICB2b2lkIHJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1l
ZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBXZWJDb3Jl
OjpNZWRpYVN0cmVhbVJlcXVlc3QmJik7Ci0gICAgdm9pZCBlbnVtZXJhdGVNZWRpYURldmljZXNG
b3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRhdGEsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRh
dGEpOworICAgIHZvaWQgcmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRf
dCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRl
bnRpZmllciwgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYpOworICAgIHZvaWQgZW51bWVy
YXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2VyTWVk
aWFEb2N1bWVudE9yaWdpbkRhdGEsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYg
dG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEpOwogICAgIHZvaWQgYmVnaW5Nb25pdG9yaW5nQ2Fw
dHVyZURldmljZXMoKTsKIAogICAgIHZvaWQgcnVuTW9kYWwoKTsKQEAgLTE4OTUsOCArMTg5NSw4
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwcmludEZpbmlzaGVkQ2FsbGJhY2soY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciYsIENhbGxiYWNrSUQpOwogI2VuZGlmCiAKLSAgICB2b2lkIGZvY3Vz
ZWRGcmFtZUNoYW5nZWQodWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBmcmFtZVNldExhcmdl
c3RGcmFtZUNoYW5nZWQodWludDY0X3QgZnJhbWVJRCk7CisgICAgdm9pZCBmb2N1c2VkRnJhbWVD
aGFuZ2VkKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4mKTsKKyAgICB2
b2lkIGZyYW1lU2V0TGFyZ2VzdEZyYW1lQ2hhbmdlZChjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXI+Jik7CiAKICAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmdEYXRhRm9yQ3Vz
dG9tQ29udGVudFByb3ZpZGVyKGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUsIGNvbnN0
IElQQzo6RGF0YVJlZmVyZW5jZSYpOwogCkBAIC0xOTk3LDcgKzE5OTcsNyBAQCBwcml2YXRlOgog
I2VuZGlmCiAKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCi0gICAgdm9pZCBjb250ZW50
RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWUoY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVu
YmxvY2tIYW5kbGVyJiwgdWludDY0X3QgZnJhbWVJRCk7CisgICAgdm9pZCBjb250ZW50RmlsdGVy
RGlkQmxvY2tMb2FkRm9yRnJhbWUoY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tI
YW5kbGVyJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICNlbmRpZgogCiAgICAgdm9pZCB0
cnlSZWxvYWRBZnRlclByb2Nlc3NUZXJtaW5hdGlvbigpOwpAQCAtMjExMCw3ICsyMTEwLDcgQEAg
cHJpdmF0ZToKICAgICBzdGF0aWMgYm9vbCBpc0luSGFyZHdhcmVLZXlib2FyZE1vZGUoKTsKICNl
bmRpZgogCi0gICAgdm9pZCBtYWtlU3RvcmFnZVNwYWNlUmVxdWVzdCh1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VO
YW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVp
bnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2Us
IHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3Qp
PiYmKTsKKyAgICB2b2lkIG1ha2VTdG9yYWdlU3BhY2VSZXF1ZXN0KFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRh
dGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1
b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFz
ZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVp
bnQ2NF90KT4mJik7CiAKICAgICBXZWFrUHRyPFBhZ2VDbGllbnQ+IG1fcGFnZUNsaWVudDsKICAg
ICBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4gbV9jb25maWd1cmF0aW9uOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGVjYWQ5
NWU0NmI1NDNhYzkxNTA0MGU2MGVmNDA0YmVkNjQyNjcxNjEuLjE1ODkxOWUzMTYwMTFkNjk5NDBk
ZDliMWUyZjdjY2MzMWVhNGU0M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTI1LDkgKzI1LDkgQEAgbWVzc2FnZXMgLT4gV2Vi
UGFnZVByb3h5IHsKICAgICBDcmVhdGVOZXdQYWdlKHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0Rh
dGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRp
Zmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0
LCBzdHJ1Y3QgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMgd2luZG93RmVhdHVyZXMsIHN0cnVjdCBX
ZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhKSAtPiAoT3B0
aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG5ld1BhZ2VJRCwgT3B0aW9uYWw8V2ViS2l0
OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBuZXdQYWdlUGFyYW1ldGVycykgU3luY2hyb25v
dXMKICAgICBTaG93UGFnZSgpCiAgICAgQ2xvc2VQYWdlKGJvb2wgc3RvcFJlc3BvbnNpdmVuZXNz
VGltZXIpCi0gICAgUnVuSmF2YVNjcmlwdEFsZXJ0KHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1l
c3NhZ2UpIC0+ICgpIFN5bmNocm9ub3VzCi0gICAgUnVuSmF2YVNjcmlwdENvbmZpcm0odWludDY0
X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSkgLT4gKGJvb2wgcmVzdWx0KSBTeW5jaHJvbm91cwot
ICAgIFJ1bkphdmFTY3JpcHRQcm9tcHQodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSwg
U3RyaW5nIGRlZmF1bHRWYWx1ZSkgLT4gKFN0cmluZyByZXN1bHQpIFN5bmNocm9ub3VzCisgICAg
UnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1
Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFN0cmlu
ZyBtZXNzYWdlKSAtPiAoKSBTeW5jaHJvbm91cworICAgIFJ1bkphdmFTY3JpcHRDb25maXJtKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFN0cmluZyBtZXNzYWdlKSAtPiAoYm9vbCBy
ZXN1bHQpIFN5bmNocm9ub3VzCisgICAgUnVuSmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBm
cmFtZVNlY3VyaXR5T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSwgU3RyaW5nIGRlZmF1bHRWYWx1ZSkg
LT4gKFN0cmluZyByZXN1bHQpIFN5bmNocm9ub3VzCiAgICAgTW91c2VEaWRNb3ZlT3ZlckVsZW1l
bnQoc3RydWN0IFdlYktpdDo6V2ViSGl0VGVzdFJlc3VsdERhdGEgaGl0VGVzdFJlc3VsdERhdGEs
IHVpbnQzMl90IG1vZGlmaWVycywgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKIAogI2lmIEVO
QUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQpAQCAtNDcsOCArNDcsOCBAQCBtZXNzYWdlcyAtPiBX
ZWJQYWdlUHJveHkgewogICAgIFNldFRvb2xUaXAoU3RyaW5nIHRvb2xUaXApCiAgICAgU2V0Rm9j
dXMoYm9vbCBmb2N1c2VkKQogICAgIFRha2VGb2N1cyh1aW50MzJfdCBkaXJlY3Rpb24pCi0gICAg
Rm9jdXNlZEZyYW1lQ2hhbmdlZCh1aW50NjRfdCBmcmFtZUlEKQotICAgIEZyYW1lU2V0TGFyZ2Vz
dEZyYW1lQ2hhbmdlZCh1aW50NjRfdCBmcmFtZUlEKQorICAgIEZvY3VzZWRGcmFtZUNoYW5nZWQo
T3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKQorICAgIEZyYW1lU2V0
TGFyZ2VzdEZyYW1lQ2hhbmdlZChPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZy
YW1lSUQpCiAgICAgU2V0UmVuZGVyVHJlZVNpemUodWludDY0X3QgdHJlZVNpemUpCiAgICAgU2V0
VG9vbGJhcnNBcmVWaXNpYmxlKGJvb2wgdG9vbGJhcnNBcmVWaXNpYmxlKQogICAgIEdldFRvb2xi
YXJzQXJlVmlzaWJsZSgpIC0+IChib29sIHRvb2xiYXJzQXJlVmlzaWJsZSkgU3luY2hyb25vdXMK
QEAgLTY5LDExICs2OSwxMSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIEhpZGVW
YWxpZGF0aW9uTWVzc2FnZSgpCiAjZW5kaWYKIAotICAgIFJ1bkJlZm9yZVVubG9hZENvbmZpcm1Q
YW5lbCh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
IGZyYW1lU2VjdXJpdHlPcmlnaW4sIFN0cmluZyBtZXNzYWdlKSAtPiAoYm9vbCBzaG91bGRDbG9z
ZSkgU3luY2hyb25vdXMKKyAgICBSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3NhZ2UpIC0+IChib29sIHNob3VsZENs
b3NlKSBTeW5jaHJvbm91cwogICAgIFBhZ2VEaWRTY3JvbGwoKQotICAgIFJ1bk9wZW5QYW5lbCh1
aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1l
U2VjdXJpdHlPcmlnaW4sIHN0cnVjdCBXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzIHBhcmFt
ZXRlcnMpCisgICAgUnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4s
IHN0cnVjdCBXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzIHBhcmFtZXRlcnMpCiAgICAgU2hv
d1NoYXJlU2hlZXQoc3RydWN0IFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwgc2hhcmVE
YXRhLCB1aW50NjRfdCBjYWxsYmFja0lEKQotICAgIFByaW50RnJhbWUodWludDY0X3QgZnJhbWVJ
RCkgLT4gKCkgU3luY2hyb25vdXMKKyAgICBQcmludEZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlEKSAtPiAoKSBTeW5jaHJvbm91cwogICAgIFJ1bk1vZGFsKCkKICAgICBOb3Rp
ZnlTY3JvbGxlclRodW1iSXNWaXNpYmxlSW5SZWN0KFdlYkNvcmU6OkludFJlY3Qgc2Nyb2xsZXJU
aHVtYikKICAgICBSZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdlKGludDMyX3QgbmV3
U3R5bGUpCkBAIC0xMDMsMTEgKzEwMywxMSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewog
I2VuZGlmCiAKICAgICAjIFBvbGljeSBtZXNzYWdlcwotICAgIERlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEg
ZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGlj
eUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgYm9v
bCBjYW5TaG93TUlNRVR5cGUsIFN0cmluZyBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlz
dGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uQXN5bmModWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRh
LCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwg
T3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVz
ZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQotICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb25TeW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIHN0cnVjdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9u
QWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1l
SW5mb0RhdGEsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1Bh
Z2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJv
ZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpV
c2VyRGF0YSB1c2VyRGF0YSkgLT4gKFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xp
Y3lDaGVja0lkZW50aWZpZXIsIGVudW06dWludDhfdCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9s
aWN5QWN0aW9uLCB1aW50NjRfdCBuZXdOYXZpZ2F0aW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBk
b3dubG9hZElELCBPcHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQ
b2xpY2llcykgU3luY2hyb25vdXMKLSAgICBEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24o
dWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFt
ZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hl
Y2tJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0
aW9uQWN0aW9uRGF0YSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBm
cmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEp
Ci0gICAgVW5hYmxlVG9JbXBsZW1lbnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciBlcnJvciwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3Ry
dWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgU3RyaW5n
IGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRh
IHVzZXJEYXRhKQorICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZp
ZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBX
ZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBzdHJ1Y3Qg
V2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVx
dWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhLCB1
aW50NjRfdCBsaXN0ZW5lcklEKQorICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25T
eW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBz
dHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2
aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRp
bmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2lu
YXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVlc3QsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJl
cXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UsIFdl
YktpdDo6VXNlckRhdGEgdXNlckRhdGEpIC0+IChXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZp
ZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UG9saWN5QWN0
aW9uIHBvbGljeUFjdGlvbiwgdWludDY0X3QgbmV3TmF2aWdhdGlvbklELCBXZWJLaXQ6OkRvd25s
b2FkSUQgZG93bmxvYWRJRCwgT3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3
ZWJzaXRlUG9saWNpZXMpIFN5bmNocm9ub3VzCisgICAgRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93
QWN0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNo
ZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHN0cnVjdCBXZWJLaXQ6Ok5hdmln
YXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QgcmVxdWVzdCwgU3RyaW5nIGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2Vi
S2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBVbmFibGVUb0ltcGxlbWVudFBvbGljeShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJv
ciwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKIAogICAgICMgUHJvZ3Jlc3MgbWVzc2FnZXMK
ICAgICBEaWRDaGFuZ2VQcm9ncmVzcyhkb3VibGUgdmFsdWUpCkBAIC0xMTcsNTEgKzExNyw1MSBA
QCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIFNldE5ldHdvcmtSZXF1ZXN0c0luUHJv
Z3Jlc3MoYm9vbCBuZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzKQogCiAgICAgIyBGcmFtZSBsaWZl
dGltZSBtZXNzYWdlcwotICAgIERpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRfdCBmcmFtZUlEKQot
ICAgIERpZENyZWF0ZVN1YmZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCisgICAgRGlkQ3JlYXRlTWFp
bkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQorICAgIERpZENyZWF0ZVN1
YmZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogCi0gICAgRGlkQ3JlYXRl
V2luZG93KHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVu
dGlmaWVyIHdpbmRvd0lkZW50aWZpZXIpCisgICAgRGlkQ3JlYXRlV2luZG93KFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6R2xvYmFsV2luZG93SWRlbnRp
ZmllciB3aW5kb3dJZGVudGlmaWVyKQogCiAgICAgIyBGcmFtZSBsb2FkIG1lc3NhZ2VzCi0gICAg
RGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIFVSTCB1cmwsIFVSTCB1bnJlYWNoYWJsZVVSTCwgV2ViS2l0OjpVc2Vy
RGF0YSB1c2VyRGF0YSkKLSAgICBEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25h
bExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRh
KQotICAgIFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBTdHJpbmcgdXJsLCBkb3VibGUgZGVsYXksIGVudW06Ym9vbCBXZWJDb3JlOjpMb2NrQmFja0Zv
cndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QpCi0gICAgRGlkQ2FuY2VsQ2xpZW50UmVkaXJl
Y3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQotICAgIERpZENoYW5nZVByb3Zpc2lvbmFsVVJM
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwgdXJs
KQotICAgIERpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBz
dHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgU3RyaW5nIHByb3Zpc2lvbmFsVVJMLCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yIGVycm9yLCBlbnVtOmJvb2wgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZyB3
aWxsQ29udGludWVMb2FkaW5nLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZENv
bW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IFN0cmluZyBtaW1lVHlwZSwgYm9vbCBoYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90
IGxvYWRUeXBlLCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGVJbmZvLCBib29s
IGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29u
dGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRh
KQotICAgIERpZEZhaWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBXZWJLaXQ6OlVzZXJEYXRh
IHVzZXJEYXRhKQotICAgIERpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkK
LSAgICBEaWRGaW5pc2hMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZEZpcnN0TGF5b3V0
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAg
ICBEaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZFN0YXJ0UHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgVVJMIHVybCwgVVJMIHVucmVhY2hhYmxlVVJMLCBXZWJLaXQ6OlVzZXJEYXRhIHVz
ZXJEYXRhKQorICAgIERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJLaXQ6OlVzZXJEYXRh
IHVzZXJEYXRhKQorICAgIFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIHVybCwgZG91YmxlIGRlbGF5LCBlbnVt
OmJvb2wgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0KQor
ICAgIERpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQpCisgICAgRGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwgdXJs
KQorICAgIERpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNl
Y3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFN0cmluZyBwcm92aXNpb25hbFVS
TCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgZW51bTpib29sIFdlYkNvcmU6OldpbGxD
b250aW51ZUxvYWRpbmcgd2lsbENvbnRpbnVlTG9hZGluZywgV2ViS2l0OjpVc2VyRGF0YSB1c2Vy
RGF0YSkKKyAgICBEaWRDb21taXRMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgU3RyaW5nIG1pbWVUeXBlLCBib29sIGhh
c0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgbG9hZFR5cGUsIFdlYkNvcmU6OkNlcnRp
ZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwg
T3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNv
bnRlbnQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkRmFpbExvYWRGb3JGcmFt
ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRh
KQorICAgIERpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYktpdDo6VXNlckRhdGEgdXNl
ckRhdGEpCisgICAgRGlkRmluaXNoTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRh
dGEpCisgICAgRGlkRmlyc3RMYXlvdXRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWRGaXJzdFZpc3VhbGx5
Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
V2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKICAgICBEaWRSZWFjaExheW91dE1pbGVzdG9uZShP
cHRpb25TZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPiBsYXlvdXRNaWxlc3RvbmVzKQotICAg
IERpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyB0aXRsZSwg
V2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWREaXNwbGF5SW5zZWN1cmVDb250ZW50
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAg
ICBEaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6
OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZERldGVjdFhTU0ZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlkU2FtZURvY3VtZW50TmF2
aWdhdGlvbkZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
dWludDMyX3QgdHlwZSwgVVJMIHVybCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBE
aWRDaGFuZ2VNYWluRG9jdW1lbnQodWludDY0X3QgZnJhbWVJRCkKLSAgICBEaWRFeHBsaWNpdE9w
ZW5Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBVUkwgdXJsKQorICAgIERpZFJlY2VpdmVUaXRs
ZUZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgdGl0bGUs
IFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkRGlzcGxheUluc2VjdXJlQ29udGVu
dEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJLaXQ6OlVzZXJE
YXRhIHVzZXJEYXRhKQorICAgIERpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAg
IERpZERldGVjdFhTU0ZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBX
ZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25G
b3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdh
dGlvbklELCB1aW50MzJfdCB0eXBlLCBVUkwgdXJsLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRh
KQorICAgIERpZENoYW5nZU1haW5Eb2N1bWVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCkKKyAgICBEaWRFeHBsaWNpdE9wZW5Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgVVJMIHVybCkKICAgICBEaWREZXN0cm95TmF2aWdhdGlvbih1aW50NjRfdCBu
YXZpZ2F0aW9uSUQpCiAKICAgICBIYXNJbnNlY3VyZUNvbnRlbnQoKSAtPiAoZW51bTpib29sIFdl
YkNvcmU6Okhhc0luc2VjdXJlQ29udGVudCBoYXNJbnNlY3VyZUNvbnRlbnQpIFN5bmNocm9ub3Vz
CiAKICAgICBNYWluRnJhbWVQbHVnaW5IYW5kbGVzUGFnZVNjYWxlR2VzdHVyZURpZENoYW5nZShi
b29sIG1haW5GcmFtZVBsdWdpbkhhbmRsZXNQYWdlU2NhbGVHZXN0dXJlKQogCi0gICAgRnJhbWVE
aWRCZWNvbWVGcmFtZVNldCh1aW50NjRfdCBmcmFtZUlELCBib29sIHZhbHVlKQorICAgIEZyYW1l
RGlkQmVjb21lRnJhbWVTZXQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wg
dmFsdWUpCiAKICAgICAjIEhpc3RvcnkgY2xpZW50IG1lc3NhZ2VzLgotICAgIERpZE5hdmlnYXRl
V2l0aE5hdmlnYXRpb25EYXRhKHN0cnVjdCBXZWJLaXQ6OldlYk5hdmlnYXRpb25EYXRhU3RvcmUg
c3RvcmUsIHVpbnQ2NF90IGZyYW1lSUQpCi0gICAgRGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KFN0
cmluZyBzb3VyY2VVUkxTdHJpbmcsIFN0cmluZyBkZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0
X3QgZnJhbWVJRCkKLSAgICBEaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoU3RyaW5nIHNvdXJjZVVS
TFN0cmluZywgU3RyaW5nIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKQot
ICAgIERpZFVwZGF0ZUhpc3RvcnlUaXRsZShTdHJpbmcgdGl0bGUsIFN0cmluZyB1cmwsIHVpbnQ2
NF90IGZyYW1lSUQpCisgICAgRGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoc3RydWN0IFdl
YktpdDo6V2ViTmF2aWdhdGlvbkRhdGFTdG9yZSBzdG9yZSwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQpCisgICAgRGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KFN0cmluZyBzb3VyY2VV
UkxTdHJpbmcsIFN0cmluZyBkZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQpCisgICAgRGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KFN0cmluZyBzb3Vy
Y2VVUkxTdHJpbmcsIFN0cmluZyBkZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQpCisgICAgRGlkVXBkYXRlSGlzdG9yeVRpdGxlKFN0cmluZyB0aXRs
ZSwgU3RyaW5nIHVybCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAKICAgICAj
IEN1c3RvbSByZXByZXNlbnRhdGlvbnMKICAgICBEaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3Rv
bUNvbnRlbnRQcm92aWRlcihTdHJpbmcgc3VnZ2VzdGVkRmlsZW5hbWUsIElQQzo6RGF0YVJlZmVy
ZW5jZSBkYXRhKQogCiAgICAgIyBGb3JtcyBtZXNzYWdlcwotICAgIFdpbGxTdWJtaXRGb3JtKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZyYW1lSUQsIFZlY3RvcjxzdGQ6OnBhaXI8
U3RyaW5nLCBTdHJpbmc+PiB0ZXh0RmllbGRWYWx1ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdl
YktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgV2lsbFN1Ym1pdEZvcm0oV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBzb3VyY2VGcmFt
ZUlELCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4gdGV4dEZpZWxkVmFsdWVzLCB1
aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQogCiAgICAgIyBD
YWxsYmFjayBtZXNzYWdlcwogICAgIFZvaWRDYWxsYmFjayhXZWJLaXQ6OkNhbGxiYWNrSUQgY2Fs
bGJhY2tJRCkKQEAgLTI3NSwxOCArMjc1LDE4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7
CiAjZW5kaWYKIAogICAgICMgRGF0YWJhc2UgbWVzc2FnZXMKLSAgICBFeGNlZWRlZERhdGFiYXNl
UXVvdGEodWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIsIFN0cmluZyBk
YXRhYmFzZU5hbWUsIFN0cmluZyBkYXRhYmFzZURpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50
UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFi
YXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UpIC0+ICh1aW50NjRfdCBuZXdRdW90YSkg
U3luY2hyb25vdXMKKyAgICBFeGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCBTdHJpbmcgZGF0YWJhc2VO
YW1lLCBTdHJpbmcgZGF0YWJhc2VEaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1
aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdl
LCB1aW50NjRfdCBleHBlY3RlZFVzYWdlKSAtPiAodWludDY0X3QgbmV3UXVvdGEpIFN5bmNocm9u
b3VzCiAKICAgICAjIEFwcGxpY2F0aW9uIGNhY2hlIG1lc3NhZ2VzCiAgICAgUmVhY2hlZEFwcGxp
Y2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTdHJpbmcgb3JpZ2luSWRlbnRpZmllciwgdWludDY0X3Qg
Y3VycmVudFF1b3RhLCB1aW50NjRfdCB0b3RhbEJ5dGVzTmVlZGVkKSAtPiAodWludDY0X3QgbmV3
UXVvdGEpIFN5bmNocm9ub3VzCiAKICAgICAjIEdlb2xvY2F0aW9uIG1lc3NhZ2VzCi0gICAgUmVx
dWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQs
IHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQorICAgIFJlcXVlc3RH
ZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCiAg
ICAgCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICAjIE1lZGlhU3RlYW0gbWVzc2FnZXMK
LSAgICBSZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRp
YUlELCB1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgc3RydWN0IFdl
YkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCByZXF1ZXN0KQotICAgIEVudW1lcmF0ZU1lZGlhRGV2
aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBzdHJ1
Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRl
bnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luSWRlbnRpZmllcikKKyAgICBSZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZy
YW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB1c2VyTWVkaWFEb2N1bWVudE9y
aWdpbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJl
cXVlc3QgcmVxdWVzdCkKKyAgICBFbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50NjRf
dCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlm
aWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcExldmVsRG9jdW1lbnRP
cmlnaW5JZGVudGlmaWVyKQogICAgIEJlZ2luTW9uaXRvcmluZ0NhcHR1cmVEZXZpY2VzKCkKICNl
bmRpZgogCkBAIC00NzMsNyArNDczLDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNl
bmRpZgogCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQotICAgIENvbnRlbnRGaWx0ZXJE
aWRCbG9ja0xvYWRGb3JGcmFtZShXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIg
dW5ibG9ja0hhbmRsZXIsIHVpbnQ2NF90IGZyYW1lSUQpCisgICAgQ29udGVudEZpbHRlckRpZEJs
b2NrTG9hZEZvckZyYW1lKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciB1bmJs
b2NrSGFuZGxlciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAjZW5kaWYKIAog
ICAgIElzUGxheWluZ01lZGlhRGlkQ2hhbmdlKHVuc2lnbmVkIHN0YXRlLCB1aW50NjRfdCBzb3Vy
Y2VFbGVtZW50SUQpCkBAIC01MzksNyArNTM5LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5
IHsKICAgICBMb2FkU3luY2hyb25vdXNVUkxTY2hlbWVUYXNrKHN0cnVjdCBXZWJLaXQ6OlVSTFNj
aGVtZVRhc2tQYXJhbWV0ZXJzIHBhcmFtZXRlcnMpIC0+IChXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBWZWN0b3I8Y2hhcj4g
ZGF0YSkgU3luY2hyb25vdXMKIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0gICAg
U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh1aW50NjRfdCBmcmFt
ZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbiwgYm9vbCBtYXlQ
cm9tcHQpIC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Pck1vdGlv
blBlcm1pc3Npb25TdGF0ZSBwZXJtaXNzaW9uU3RhdGUpIEFzeW5jCisgICAgU2hvdWxkQWxsb3dE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4sIGJvb2wg
bWF5UHJvbXB0KSAtPiAoZW51bTp1aW50OF90IFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uT3JN
b3Rpb25QZXJtaXNzaW9uU3RhdGUgcGVybWlzc2lvblN0YXRlKSBBc3luYwogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHAKaW5kZXggZTE2OTEzN2Y1Mzg5ZDMwYmI4YjExYjNhOGUxZjUwY2E0
M2FhMDZlZC4uOTViNTg2MzlmM2M0MGNjNjMwMGE0NGYyYzA0NDllZmZlZjhhZDEzNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC04MjcsMjUgKzgy
NywyNSBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NM
YXVuY2hlciogbGF1bmNoZXIsIElQQzo6Q29ubmVjdAogI2VuZGlmCiB9CiAKLVdlYkZyYW1lUHJv
eHkqIFdlYlByb2Nlc3NQcm94eTo6d2ViRnJhbWUodWludDY0X3QgZnJhbWVJRCkgY29uc3QKK1dl
YkZyYW1lUHJveHkqIFdlYlByb2Nlc3NQcm94eTo6d2ViRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQpIGNvbnN0CiB7CiAgICAgaWYgKCFXZWJGcmFtZVByb3h5TWFwOjppc1ZhbGlkS2V5KGZy
YW1lSUQpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAg
ICByZXR1cm4gbV9mcmFtZU1hcC5nZXQoZnJhbWVJRCk7CiB9CiAKLWJvb2wgV2ViUHJvY2Vzc1By
b3h5OjpjYW5DcmVhdGVGcmFtZSh1aW50NjRfdCBmcmFtZUlEKSBjb25zdAorYm9vbCBXZWJQcm9j
ZXNzUHJveHk6OmNhbkNyZWF0ZUZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSBjb25zdAog
ewogICAgIHJldHVybiBXZWJGcmFtZVByb3h5TWFwOjppc1ZhbGlkS2V5KGZyYW1lSUQpICYmICFt
X2ZyYW1lTWFwLmNvbnRhaW5zKGZyYW1lSUQpOwogfQogCi12b2lkIFdlYlByb2Nlc3NQcm94eTo6
ZnJhbWVDcmVhdGVkKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkZyYW1lUHJveHkmIGZyYW1lUHJveHkp
Cit2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZnJhbWVDcmVhdGVkKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBXZWJGcmFtZVByb3h5JiBmcmFtZVByb3h5KQogewogICAgIG1fZnJhbWVNYXAuc2V0KGZy
YW1lSUQsICZmcmFtZVByb3h5KTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZERlc3Ry
b3lGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZERlc3Ry
b3lGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICAvLyBJZiB0aGUgcGFnZSBp
cyBjbG9zZWQgYmVmb3JlIGl0IGhhcyBoYWQgdGhlIGNoYW5jZSB0byBzZW5kIHRoZSBEaWRDcmVh
dGVNYWluRnJhbWUgbWVzc2FnZQogICAgIC8vIGJhY2sgdG8gdGhlIFVJUHJvY2VzcywgdGhlbiB0
aGUgZnJhbWVEZXN0cm95ZWQgbWVzc2FnZSB3aWxsIHN0aWxsIGJlIHJlY2VpdmVkIGJlY2F1c2Ug
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggMzAwOTZk
ZDMwODU0OGI4OTA0OWM4MzUxMGVlYTcxYmIwNTk3NmZmYy4uMThmNDg4MGEwYmIyZDRkODNkMmZi
NmM1OTdjODdjN2NkZDZlYzg5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmgKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJWaXNpYmxlV2ViUGFnZUNvdW50
ZXIuaCIKICNpbmNsdWRlICJXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRp
Zmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL01lc3NhZ2VQb3J0SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KQEAgLTk3LDcgKzk4LDcgQEAgZW51bSBjbGFzcyBBbGxv
d1Byb2Nlc3NDYWNoaW5nIHsgTm8sIFllcyB9OwogCiBjbGFzcyBXZWJQcm9jZXNzUHJveHkgOiBw
dWJsaWMgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LCBwdWJsaWMgUmVzcG9uc2l2ZW5lc3NUaW1lcjo6
Q2xpZW50LCBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V2ViUHJvY2Vzc1Byb3h5PiwgcHVi
bGljIENhbk1ha2VXZWFrUHRyPFdlYlByb2Nlc3NQcm94eT4sIHByaXZhdGUgUHJvY2Vzc1Rocm90
dGxlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQ
dHI8V2ViRnJhbWVQcm94eT4+IFdlYkZyYW1lUHJveHlNYXA7CisgICAgdHlwZWRlZiBIYXNoTWFw
PFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmUHRyPFdlYkZyYW1lUHJveHk+PiBXZWJGcmFt
ZVByb3h5TWFwOwogICAgIHR5cGVkZWYgSGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
V2ViUGFnZVByb3h5Kj4gV2ViUGFnZVByb3h5TWFwOwogICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50
NjRfdCwgUmVmUHRyPEFQSTo6VXNlckluaXRpYXRlZEFjdGlvbj4+IFVzZXJJbml0aWF0ZWRBY3Rp
b25NYXA7CiAKQEAgLTE2NCw5ICsxNjUsOSBAQCBwdWJsaWM6CiAgICAgUmVzcG9uc2l2ZW5lc3NU
aW1lciYgcmVzcG9uc2l2ZW5lc3NUaW1lcigpIHsgcmV0dXJuIG1fcmVzcG9uc2l2ZW5lc3NUaW1l
cjsgfQogICAgIGJvb2wgaXNSZXNwb25zaXZlKCkgY29uc3Q7CiAKLSAgICBXZWJGcmFtZVByb3h5
KiB3ZWJGcmFtZSh1aW50NjRfdCkgY29uc3Q7Ci0gICAgYm9vbCBjYW5DcmVhdGVGcmFtZSh1aW50
NjRfdCBmcmFtZUlEKSBjb25zdDsKLSAgICB2b2lkIGZyYW1lQ3JlYXRlZCh1aW50NjRfdCwgV2Vi
RnJhbWVQcm94eSYpOworICAgIFdlYkZyYW1lUHJveHkqIHdlYkZyYW1lKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcikgY29uc3Q7CisgICAgYm9vbCBjYW5DcmVhdGVGcmFtZShXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIpIGNvbnN0OworICAgIHZvaWQgZnJhbWVDcmVhdGVkKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgV2ViRnJhbWVQcm94eSYpOwogICAgIHZvaWQgZGlzY29ubmVjdEZyYW1lc0Zy
b21QYWdlKFdlYlBhZ2VQcm94eSopOyAvLyBJbmNsdWRpbmcgbWFpbiBmcmFtZS4KICAgICBzaXpl
X3QgZnJhbWVDb3VudEluUGFnZShXZWJQYWdlUHJveHkqKSBjb25zdDsgLy8gSW5jbHVkaW5nIG1h
aW4gZnJhbWUuCiAKQEAgLTMzNSw3ICszMzYsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAg
IC8vIElQQyBtZXNzYWdlIGhhbmRsZXJzLgogICAgIHZvaWQgdXBkYXRlQmFja0ZvcndhcmRJdGVt
KGNvbnN0IEJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSYpOwotICAgIHZvaWQgZGlkRGVzdHJveUZy
YW1lKHVpbnQ2NF90KTsKKyAgICB2b2lkIGRpZERlc3Ryb3lGcmFtZShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIpOwogICAgIHZvaWQgZGlkRGVzdHJveVVzZXJHZXN0dXJlVG9rZW4odWludDY0X3Qp
OwogCiAgICAgYm9vbCBjYW5CZUFkZGVkVG9XZWJQcm9jZXNzQ2FjaGUoKSBjb25zdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpp
bmRleCBmM2Q1ZTkzMWU2ZGVlOTAyYTRhYzVlNWZjNWIxMGRkNDYxNWIxNWQwLi4zMmJhZmVhOWUx
MDk1OGMyNWNkMTk0ZGExODQ1MzZhZDA5M2Y3NTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0yMiw3ICsyMiw3IEBA
CiAKIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgVXBk
YXRlQmFja0ZvcndhcmRJdGVtKHN0cnVjdCBXZWJLaXQ6OkJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0
ZSBiYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUpCi0gICAgRGlkRGVzdHJveUZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQpIAorICAgIERpZERlc3Ryb3lGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCkgCiAKICAgICBEaWREZXN0cm95VXNlckdlc3R1cmVUb2tlbih1aW50NjRfdCB1c2Vy
R2VzdHVyZVRva2VuSUQpIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3Lm1tCmluZGV4IDY4MTFlODdhNGE0MjEwMDViZDk0YTdhYzIxNjU0M2VjYzAwYTc3ZmMu
LmMyOTkyMTQ1OGFmMDFmZDk3YTQwMDkyYzcxM2Y2N2M0MWZmNzdlN2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCkBAIC03MDEsOSArNzAxLDkgQEAg
LSAoTlNVSW50ZWdlcilfd2tfcGFnZUNvdW50Rm9yUHJpbnRGb3JtYXR0ZXI6KF9XS1dlYlZpZXdQ
cmludEZvcm1hdHRlciAqKXByaW50Rm8KICAgICBpZiAoX2lzUHJpbnRpbmdUb1BERikKICAgICAg
ICAgcmV0dXJuIDA7CiAKLSAgICB1aW50NjRfdCBmcmFtZUlEOworICAgIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlEOwogICAgIGlmIChfV0tGcmFtZUhhbmRsZSAqaGFuZGxlID0gcHJp
bnRGb3JtYXR0ZXIuZnJhbWVUb1ByaW50KQotICAgICAgICBmcmFtZUlEID0gaGFuZGxlLl9mcmFt
ZUlEOworICAgICAgICBmcmFtZUlEID0gV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKGhh
bmRsZS5fZnJhbWVJRCk7CiAgICAgZWxzZSBpZiAoYXV0byBtYWluRnJhbWUgPSBfcGFnZS0+bWFp
bkZyYW1lKCkpCiAgICAgICAgIGZyYW1lSUQgPSBtYWluRnJhbWUtPmZyYW1lSUQoKTsKICAgICBl
bHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5
SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpp
bmRleCBiMDI4MjQ4OTIwMDNhMDQ5ODkyOWU3MDZhNTkwNDU5YTRmODcxYWNkLi44MmQzNTQyMTdi
NzA2NDIwMWUzZDdiMDc2ZTViMDU5Yjk2MDExY2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTEwNjYsNyArMTA2Niw3IEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpoYW5kbGVTbWFydE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbkZvclBvdGVu
dGlhbFRhcCh1aW50NjRfdCByCiAgICAgcGFnZUNsaWVudCgpLmhhbmRsZVNtYXJ0TWFnbmlmaWNh
dGlvbkluZm9ybWF0aW9uRm9yUG90ZW50aWFsVGFwKHJlcXVlc3RJRCwgcmVuZGVyUmVjdCwgZml0
RW50aXJlUmVjdCwgdmlld3BvcnRNaW5pbXVtU2NhbGUsIHZpZXdwb3J0TWF4aW11bVNjYWxlKTsK
IH0KIAotdWludDMyX3QgV2ViUGFnZVByb3h5Ojpjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERy
YXdUb1BERih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgRHJh
d1RvUERGQ2FsbGJhY2s6OkNhbGxiYWNrRnVuY3Rpb24mJiBjYWxsYmFjaykKK3VpbnQzMl90IFdl
YlBhZ2VQcm94eTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYoRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBEcmF3VG9QREZDYWxs
YmFjazo6Q2FsbGJhY2tGdW5jdGlvbiYmIGNhbGxiYWNrKQogewogICAgIGlmICghaGFzUnVubmlu
Z1Byb2Nlc3MoKSkgewogICAgICAgICBjYWxsYmFjayhJUEM6OkRhdGFSZWZlcmVuY2UoKSwgQ2Fs
bGJhY2tCYXNlOjpFcnJvcjo6T3duZXJXYXNJbnZhbGlkYXRlZCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25T
ZXNzaW9uUHJveHkuY3BwCmluZGV4IGU2MzUzY2NkZDU0YWRmYTVhYTU5MDViODk3MzAzNGJjMWNl
OTU2ZjIuLjdmNTdmZjgwYWNkMmI5NTExNTkxMGY1OTU5NGQxZGZjZjQzNmQzYzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNz
aW9uUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dl
YkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwCkBAIC0xNDMsNyArMTQzLDcgQEAgc3RhdGljIEpT
VmFsdWVSZWYgZXZhbHVhdGVKYXZhU2NyaXB0Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTT2JqZWN0UmVmIGYKICAgICBpZiAoIWF1dG9tYXRpb25TZXNzaW9uUHJveHkpCiAgICAgICAg
IHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIAotICAgIHVpbnQ2NF90IGZy
YW1lSUQgPSBKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24p
OworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEID0gV2ViQ29yZTo6ZnJhbWVJ
ZGVudGlmaWVyRnJvbUlEKEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4
Y2VwdGlvbikpOwogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBKU1ZhbHVlVG9OdW1iZXIoY29u
dGV4dCwgYXJndW1lbnRzWzFdLCBleGNlcHRpb24pOwogICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRS
ZWYoSlNWYWx1ZVRvU3RyaW5nQ29weShjb250ZXh0LCBhcmd1bWVudHNbMl0sIGV4Y2VwdGlvbikp
OwogCkBAIC0yMjAsNyArMjIwLDcgQEAgV2ViQ29yZTo6RWxlbWVudCogV2ViQXV0b21hdGlvblNl
c3Npb25Qcm94eTo6ZWxlbWVudEZvck5vZGVIYW5kbGUoV2ViRnJhbWUmIGZyYW0KIAogdm9pZCBX
ZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpkaWRDbGVhcldpbmRvd09iamVjdEZvckZyYW1lKFdl
YkZyYW1lJiBmcmFtZSkKIHsKLSAgICB1aW50NjRfdCBmcmFtZUlEID0gZnJhbWUuZnJhbWVJRCgp
OworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEID0gZnJhbWUuZnJhbWVJRCgp
OwogICAgIGlmIChKU09iamVjdFJlZiBzY3JpcHRPYmplY3QgPSBtX3dlYkZyYW1lU2NyaXB0T2Jq
ZWN0TWFwLnRha2UoZnJhbWVJRCkpCiAgICAgICAgIEpTVmFsdWVVbnByb3RlY3QoZnJhbWUuanND
b250ZXh0KCksIHNjcmlwdE9iamVjdCk7CiAKQEAgLTIzMiw3ICsyMzIsNyBAQCB2b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZENsZWFyV2luZG93T2JqZWN0Rm9yRnJhbWUoV2ViRnJh
bWUmIGZyYW1lKQogICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNz
Q29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6RGlkRXZh
bHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oY2FsbGJhY2tJRCwgZXJyb3JNZXNzYWdlLCBlcnJvclR5
cGUpLCAwKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpldmFsdWF0ZUph
dmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgZnVuY3Rpb24sIFZlY3RvcjxTdHJpbmc+IGFyZ3VtZW50
cywgYm9vbCBleHBlY3RzSW1wbGljaXRDYWxsYmFja0FyZ3VtZW50LCBpbnQgY2FsbGJhY2tUaW1l
b3V0LCB1aW50NjRfdCBjYWxsYmFja0lEKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5
OjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdl
SUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIGZ1bmN0
aW9uLCBWZWN0b3I8U3RyaW5nPiBhcmd1bWVudHMsIGJvb2wgZXhwZWN0c0ltcGxpY2l0Q2FsbGJh
Y2tBcmd1bWVudCwgaW50IGNhbGxiYWNrVGltZW91dCwgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsK
ICAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdl
SUQpOwogICAgIGlmICghcGFnZSkgewpAQCAtMjYzLDcgKzI2Myw3IEBAIHZvaWQgV2ViQXV0b21h
dGlvblNlc3Npb25Qcm94eTo6ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6UGFn
ZUlkZW50aWZpCiAgICAgICAgIHRvSlNWYWx1ZShjb250ZXh0LCBmdW5jdGlvbiksCiAgICAgICAg
IHRvSlNBcnJheShjb250ZXh0LCBhcmd1bWVudHMsIHRvSlNWYWx1ZSwgJmV4Y2VwdGlvbiksCiAg
ICAgICAgIEpTVmFsdWVNYWtlQm9vbGVhbihjb250ZXh0LCBleHBlY3RzSW1wbGljaXRDYWxsYmFj
a0FyZ3VtZW50KSwKLSAgICAgICAgSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgZnJhbWVJRCks
CisgICAgICAgIEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIGZyYW1lSUQudG9VSW50NjQoKSks
CiAgICAgICAgIEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIGNhbGxiYWNrSUQpLAogICAgICAg
ICBKU09iamVjdE1ha2VGdW5jdGlvbldpdGhDYWxsYmFjayhjb250ZXh0LCBudWxscHRyLCBldmFs
dWF0ZUphdmFTY3JpcHRDYWxsYmFjayksCiAgICAgICAgIEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRl
eHQsIGNhbGxiYWNrVGltZW91dCkKQEAgLTMwMCw3ICszMDAsNyBAQCB2b2lkIFdlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHk6OmV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaQogICAgIGRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKGZyYW1lSUQsIGNhbGxi
YWNrSUQsIGV4Y2VwdGlvbk1lc3NhZ2UsIGVycm9yVHlwZSk7CiB9CiAKLXZvaWQgV2ViQXV0b21h
dGlvblNlc3Npb25Qcm94eTo6ZGlkRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24odWludDY0X3Qg
ZnJhbWVJRCwgdWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgU3RyaW5nJiByZXN1bHQsIGNvbnN0
IFN0cmluZyYgZXJyb3JUeXBlKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpkaWRF
dmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgdWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgU3RyaW5nJiByZXN1bHQsIGNvbnN0IFN0cmlu
ZyYgZXJyb3JUeXBlKQogewogICAgIGF1dG8gZmluZFJlc3VsdCA9IG1fd2ViRnJhbWVQZW5kaW5n
RXZhbHVhdGVKYXZhU2NyaXB0Q2FsbGJhY2tzTWFwLmZpbmQoZnJhbWVJRCk7CiAgICAgaWYgKGZp
bmRSZXN1bHQgIT0gbV93ZWJGcmFtZVBlbmRpbmdFdmFsdWF0ZUphdmFTY3JpcHRDYWxsYmFja3NN
YXAuZW5kKCkpIHsKQEAgLTMxMywxMiArMzEzLDEzIEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b25Qcm94eTo6ZGlkRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24odWludDY0X3QgZnJhbWVJRCwK
ICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6RGlkRXZhbHVhdGVKYXZhU2NyaXB0
RnVuY3Rpb24oY2FsbGJhY2tJRCwgcmVzdWx0LCBlcnJvclR5cGUpLCAwKTsKIH0KIAotdm9pZCBX
ZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhPcmRpbmFsKFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgdWludDMyX3Qg
b3JkaW5hbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCB1aW50NjRf
dCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCisvLyBGSVhNRTogVGhlc2UgY2FsbGJhY2tzIHNob3Vs
ZCB0YWtlIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4uCit2b2lkIFdlYkF1dG9t
YXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGluYWwoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
dWludDMyX3Qgb3JkaW5hbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7
CiAgICAgaWYgKCFwYWdlKSB7CiAgICAgICAgIFN0cmluZyB3aW5kb3dOb3RGb3VuZEVycm9yVHlw
ZSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3Rh
bnRWYWx1ZShJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6Oldp
bmRvd05vdEZvdW5kKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIod2luZG93Tm90Rm91bmRF
cnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVy
cm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMzI2LDM3ICszMjcs
MzcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdp
dGhPcmRpbmFsKFdlYkNvcmU6OlBhZ2VJZGVudGkKIAogICAgIFdlYkZyYW1lKiBmcmFtZSA9IGZy
YW1lSUQgPyBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSA6IHBhZ2Ut
Pm1haW5XZWJGcmFtZSgpOwogICAgIGlmICghZnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKICAgICBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lID0gZnJhbWUtPmNvcmVGcmFtZSgpOwog
ICAgIGlmICghY29yZUZyYW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90
Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZv
dW5kRXJyb3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgV2ViQ29y
ZTo6RnJhbWUqIGNvcmVDaGlsZEZyYW1lID0gY29yZUZyYW1lLT50cmVlKCkuc2NvcGVkQ2hpbGQo
b3JkaW5hbCk7CiAgICAgaWYgKCFjb3JlQ2hpbGRGcmFtZSkgewotICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAogICAgIFdlYkZyYW1lKiBjaGlsZEZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUo
KmNvcmVDaGlsZEZyYW1lKTsKICAgICBpZiAoIWNoaWxkRnJhbWUpIHsKLSAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQsIGNoaWxkRnJhbWUt
PmZyYW1lSUQoKSk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2
ZUNoaWxkRnJhbWVXaXRoTm9kZUhhbmRsZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQs
IHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbm9kZUhhbmRsZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCB1aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0
aE5vZGVIYW5kbGUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsKICAgICAgICAg
U3RyaW5nIHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0
b21hdGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVlKEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb246OkVycm9yTWVzc2FnZTo6V2luZG93Tm90Rm91bmQpOwotICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCkBAIC0zNjQsMzcgKzM2NSwzNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNz
aW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUoV2ViQ29yZTo6UGFnZUlk
ZQogCiAgICAgV2ViRnJhbWUqIGZyYW1lID0gZnJhbWVJRCA/IFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLndlYkZyYW1lKGZyYW1lSUQpIDogcGFnZS0+bWFpbldlYkZyYW1lKCk7CiAgICAgaWYgKCFm
cmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBl
LCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwg
eyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFdlYkNvcmU6OkVsZW1lbnQqIGNv
cmVFbGVtZW50ID0gZWxlbWVudEZvck5vZGVIYW5kbGUoKmZyYW1lLCBub2RlSGFuZGxlKTsKICAg
ICBpZiAoIWlzPFdlYkNvcmU6OkhUTUxGcmFtZUVsZW1lbnRCYXNlPihjb3JlRWxlbWVudCkpIHsK
LSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7Cisg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lRnJv
bUVsZW1lbnQgPSBkb3duY2FzdDxXZWJDb3JlOjpIVE1MRnJhbWVFbGVtZW50QmFzZT4oKmNvcmVF
bGVtZW50KS5jb250ZW50RnJhbWUoKTsKICAgICBpZiAoIWNvcmVGcmFtZUZyb21FbGVtZW50KSB7
Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgV2ViRnJhbWUqIGZyYW1lRnJvbUVsZW1lbnQg
PSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqY29yZUZyYW1lRnJvbUVsZW1lbnQpOwogICAgIGlm
ICghZnJhbWVGcm9tRWxlbWVudCkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5v
dEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RG
b3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFdURjo6bnVsbG9wdCwgZnJhbWVGcm9tRWxlbWVudC0+ZnJhbWVJRCgpKTsK
IH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdp
dGhOYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmlu
Zz4sIHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0b21hdGlvblNl
c3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoTmFtZShXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJp
bmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQYWdl
KiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAgIGlm
ICghcGFnZSkgewogICAgICAgICBTdHJpbmcgd2luZG93Tm90Rm91bmRFcnJvclR5cGUgPSBJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUo
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JNZXNzYWdlOjpXaW5kb3dOb3RG
b3VuZCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBl
LCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIod2luZG93Tm90Rm91bmRFcnJvclR5cGUs
IHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTQwMiwzNyArNDAzLDM3IEBAIHZv
aWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoTmFtZShX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllCiAKICAgICBXZWJGcmFtZSogZnJhbWUgPSBmcmFtZUlEID8g
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCkgOiBwYWdlLT5tYWluV2Vi
RnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZy
YW1lTm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFt
ZU5vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAg
V2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZSA9IGZyYW1lLT5jb3JlRnJhbWUoKTsKICAgICBpZiAo
IWNvcmVGcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJy
b3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9y
VHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFdlYkNvcmU6OkZyYW1l
KiBjb3JlQ2hpbGRGcmFtZSA9IGNvcmVGcmFtZS0+dHJlZSgpLnNjb3BlZENoaWxkKG5hbWUpOwog
ICAgIGlmICghY29yZUNoaWxkRnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJh
bWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1l
Tm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBX
ZWJGcmFtZSogY2hpbGRGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpjb3JlQ2hpbGRG
cmFtZSk7CiAgICAgaWYgKCFjaGlsZEZyYW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihm
cmFtZU5vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAg
ICAgY29tcGxldGlvbkhhbmRsZXIoV1RGOjpudWxsb3B0LCBjaGlsZEZyYW1lLT5mcmFtZUlEKCkp
OwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVQYXJlbnRGcmFt
ZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWludDY0X3QpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlUGFyZW50
RnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdl
YlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAg
ICAgaWYgKCFwYWdlKSB7CiAgICAgICAgIFN0cmluZyB3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSA9
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRW
YWx1ZShJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OldpbmRv
d05vdEZvdW5kKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIod2luZG93Tm90Rm91bmRFcnJv
clR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9y
VHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNDQwLDIwICs0NDEsMjAg
QEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlUGFyZW50RnJhbWUoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUkKIAogICAgIFdlYkZyYW1lKiBmcmFtZSA9IGZyYW1l
SUQgPyBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSA6IHBhZ2UtPm1h
aW5XZWJGcmFtZSgpOwogICAgIGlmICghZnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
ICAgICBXZWJGcmFtZSogcGFyZW50RnJhbWUgPSBmcmFtZS0+cGFyZW50RnJhbWUoKTsKICAgICBp
ZiAoIXBhcmVudEZyYW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91
bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5k
RXJyb3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgY29tcGxldGlv
bkhhbmRsZXIoV1RGOjpudWxsb3B0LCBwYXJlbnRGcmFtZS0+ZnJhbWVJRCgpKTsKIH0KIAotdm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpmb2N1c0ZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b25Qcm94eTo6Zm9jdXNGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAgICAgaWYgKCFwYWdlKQpAQCAt
NTI4LDcgKzUyOSw3IEBAIHN0YXRpYyBXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnZlcnRQb2ludEZy
b21GcmFtZUNsaWVudFRvUm9vdFZpZXcoV2ViQ29yZTo6RnJhbWVWCiAgICAgcmV0dXJuIGNsaWVu
dFBvaW50OwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmNvbXB1dGVFbGVt
ZW50TGF5b3V0KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJ
RCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgQ29vcmRp
bmF0ZVN5c3RlbSBjb29yZGluYXRlU3lzdGVtLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlv
bmFsPFN0cmluZz4sIFdlYkNvcmU6OkludFJlY3QsIE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50
PiwgYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9u
UHJveHk6OmNvbXB1dGVFbGVtZW50TGF5b3V0KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBi
b29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIENvb3JkaW5hdGVTeXN0ZW0gY29vcmRpbmF0ZVN5
c3RlbSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBXZWJDb3JlOjpJ
bnRSZWN0LCBPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIGJvb2wpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewogICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53
ZWJQYWdlKHBhZ2VJRCk7CiAgICAgaWYgKCFwYWdlKSB7CkBAIC02MzYsNyArNjM3LDcgQEAgdm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpjb21wdXRlRWxlbWVudExheW91dChXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciBwYWcKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQs
IHJlc3VsdEVsZW1lbnRCb3VuZHMsIHJlc3VsdEluVmlld0NlbnRlclBvaW50LCBpc09ic2N1cmVk
KTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpzZWxlY3RPcHRpb25FbGVt
ZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgU3Ry
aW5nIG5vZGVIYW5kbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnNl
bGVjdE9wdGlvbkVsZW1lbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlE
KTsKICAgICBpZiAoIXBhZ2UpIHsKQEAgLTcwNCw3ICs3MDUsNyBAQCBzdGF0aWMgV2ViQ29yZTo6
SW50UmVjdCBzbmFwc2hvdFJlY3RGb3JTY3JlZW5zaG90KFdlYlBhZ2UmIHBhZ2UsIFdlYkNvcmU6
OkVsZW1lbgogICAgIHJldHVybiB7IH07CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eTo6dGFrZVNjcmVlbnNob3QoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50
NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVl
ZGVkLCBib29sIGNsaXBUb1ZpZXdwb3J0LCB1aW50NjRfdCBjYWxsYmFja0lEKQordm9pZCBXZWJB
dXRvbWF0aW9uU2Vzc2lvblByb3h5Ojp0YWtlU2NyZWVuc2hvdChXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgbm9k
ZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBib29sIGNsaXBUb1ZpZXdwb3J0
LCB1aW50NjRfdCBjYWxsYmFja0lEKQogewogICAgIFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGhh
bmRsZTsKIApAQCAtNzUyLDcgKzc1Myw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eTo6dGFrZVNjcmVlbnNob3QoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1CiAgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb246OkRpZFRha2VTY3JlZW5zaG90KGNhbGxiYWNr
SUQsIGhhbmRsZSwgeyB9KSwgMCk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eTo6Z2V0Q29va2llc0ZvckZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWlu
dDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBW
ZWN0b3I8V2ViQ29yZTo6Q29va2llPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OmdldENvb2tpZXNGb3JGcmFtZShXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAgIGlmICghcGFnZSkgewpAQCAtNzc3
LDcgKzc3OCw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Z2V0Q29va2llc0Zv
ckZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJCiAgICAgY29tcGxldGlvbkhhbmRs
ZXIoV1RGOjpudWxsb3B0LCBmb3VuZENvb2tpZXMpOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25T
ZXNzaW9uUHJveHk6OmRlbGV0ZUNvb2tpZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQs
IHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBjb29raWVOYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPFN0cmluZz4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJBdXRv
bWF0aW9uU2Vzc2lvblByb3h5OjpkZWxldGVDb29raWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
cGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIGNvb2tpZU5h
bWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9u
UHJveHkuaAppbmRleCAxMTY3NjQ1Mjc3ZGJjMTkzMGE1YTdhNTk3ZGNiYzJkZjNlY2Y1NWM5Li41
ZTFiMGZjZmYwZmM4NTk4YjhjNzk3NzBhNjhiMTgxZTc4ZjYzOTE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlv
blNlc3Npb25Qcm94eS5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5o
IgogI2luY2x1ZGUgIkNvb3JkaW5hdGVTeXN0ZW0uaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIApAQCAtNTEsNyArNTIsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpZENsZWFyV2lu
ZG93T2JqZWN0Rm9yRnJhbWUoV2ViRnJhbWUmKTsKIAotICAgIHZvaWQgZGlkRXZhbHVhdGVKYXZh
U2NyaXB0RnVuY3Rpb24odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgY2FsbGJhY2tJRCwgY29u
c3QgU3RyaW5nJiByZXN1bHQsIGNvbnN0IFN0cmluZyYgZXJyb3JUeXBlKTsKKyAgICB2b2lkIGRp
ZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWlu
dDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgU3RyaW5nJiByZXN1bHQsIGNvbnN0IFN0cmluZyYgZXJy
b3JUeXBlKTsKIAogcHJpdmF0ZToKICAgICBKU09iamVjdFJlZiBzY3JpcHRPYmplY3RGb3JGcmFt
ZShXZWJGcmFtZSYpOwpAQCAtNjEsMjIgKzYyLDIyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsK
IAogICAgIC8vIENhbGxlZCBieSBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5IG1lc3NhZ2VzCi0g
ICAgdm9pZCBldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBmdW5jdGlvbiwgVmVjdG9yPFN0cmlu
Zz4gYXJndW1lbnRzLCBib29sIGV4cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJndW1lbnQsIGludCBj
YWxsYmFja1RpbWVvdXQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwotICAgIHZvaWQgcmVzb2x2ZUNo
aWxkRnJhbWVXaXRoT3JkaW5hbChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJh
bWVJRCwgdWludDMyX3Qgb3JkaW5hbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxT
dHJpbmc+LCB1aW50NjRfdCk+JiYpOwotICAgIHZvaWQgcmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9k
ZUhhbmRsZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
U3RyaW5nJiBub2RlSGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmlu
Zz4sIHVpbnQ2NF90KT4mJik7Ci0gICAgdm9pZCByZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG5h
bWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWludDY0X3QpPiYm
KTsKLSAgICB2b2lkIHJlc29sdmVQYXJlbnRGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
dWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+
LCB1aW50NjRfdCk+JiYpOwotICAgIHZvaWQgZm9jdXNGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBjb21wdXRlRWxlbWVudExheW91dChX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5k
bGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgQ29vcmRpbmF0ZVN5c3RlbSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBXZWJDb3JlOjpJbnRSZWN0LCBPcHRp
b25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIGJvb2wpPiYmKTsKLSAgICB2b2lkIHNlbGVjdE9wdGlv
bkVsZW1lbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmlu
ZyBub2RlSGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4pPiYm
KTsKLSAgICB2b2lkIHRha2VTY3JlZW5zaG90KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50
NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVl
ZGVkLCBib29sIGNsaXBUb1ZpZXdwb3J0LCB1aW50NjRfdCBjYWxsYmFja0lEKTsKLSAgICB2b2lk
IGdldENvb2tpZXNGb3JGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJh
bWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBWZWN0b3I8V2Vi
Q29yZTo6Q29va2llPik+JiYpOwotICAgIHZvaWQgZGVsZXRlQ29va2llKFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgY29va2llTmFtZSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJik7CisgICAgdm9pZCBldmFsdWF0ZUph
dmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGZ1bmN0aW9uLCBWZWN0b3I8U3RyaW5nPiBhcmd1bWVu
dHMsIGJvb2wgZXhwZWN0c0ltcGxpY2l0Q2FsbGJhY2tBcmd1bWVudCwgaW50IGNhbGxiYWNrVGlt
ZW91dCwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCByZXNvbHZlQ2hpbGRGcmFtZVdp
dGhPcmRpbmFsKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIHVpbnQzMl90IG9yZGluYWwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3Ry
aW5nPiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKT4mJik7CisgICAgdm9pZCByZXNvbHZlQ2hp
bGRGcmFtZVdpdGhOb2RlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbm9kZUhhbmRsZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpPiYmKTsK
KyAgICB2b2lkIHJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
cik+JiYpOworICAgIHZvaWQgcmVzb2x2ZVBhcmVudEZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0
aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKT4mJik7CisgICAgdm9pZCBm
b2N1c0ZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIpOworICAgIHZvaWQgY29tcHV0ZUVsZW1lbnRMYXlvdXQoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Ny
b2xsSW50b1ZpZXdJZk5lZWRlZCwgQ29vcmRpbmF0ZVN5c3RlbSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChPcHRpb25hbDxTdHJpbmc+LCBXZWJDb3JlOjpJbnRSZWN0LCBPcHRpb25hbDxXZWJDb3Jl
OjpJbnRQb2ludD4sIGJvb2wpPiYmKTsKKyAgICB2b2lkIHNlbGVjdE9wdGlvbkVsZW1lbnQoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgU3RyaW5nIG5v
ZGVIYW5kbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+JiYpOwor
ICAgIHZvaWQgdGFrZVNjcmVlbnNob3QoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJ
Zk5lZWRlZCwgYm9vbCBjbGlwVG9WaWV3cG9ydCwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAg
dm9pZCBnZXRDb29raWVzRm9yRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+
LCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPik+JiYpOworICAgIHZvaWQgZGVsZXRlQ29va2llKFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFN0cmluZyBj
b29raWVOYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4pPiYmKTsK
IAogICAgIFN0cmluZyBtX3Nlc3Npb25JZGVudGlmaWVyOwogCi0gICAgSGFzaE1hcDx1aW50NjRf
dCwgSlNPYmplY3RSZWY+IG1fd2ViRnJhbWVTY3JpcHRPYmplY3RNYXA7Ci0gICAgSGFzaE1hcDx1
aW50NjRfdCwgVmVjdG9yPHVpbnQ2NF90Pj4gbV93ZWJGcmFtZVBlbmRpbmdFdmFsdWF0ZUphdmFT
Y3JpcHRDYWxsYmFja3NNYXA7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IEpTT2JqZWN0UmVmPiBtX3dlYkZyYW1lU2NyaXB0T2JqZWN0TWFwOworICAgIEhhc2hNYXA8V2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBWZWN0b3I8dWludDY0X3Q+PiBtX3dlYkZyYW1lUGVuZGlu
Z0V2YWx1YXRlSmF2YVNjcmlwdENhbGxiYWNrc01hcDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2Vi
QXV0b21hdGlvblNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4KaW5k
ZXggZDcyZjg5ZDI2MzU5Y2YwMWNjZmQ1MzFlOTZlMDFmNDQ0MDlhYWY1OC4uZjI3NjQ5YjliNzMx
MGJhNTkxM2IwZDZmZmZlMTdmMjI0ZWM1ZjYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9u
U2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yMSwyMSArMjEsMjEgQEAKICMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KIAogbWVzc2FnZXMgLT4gV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eSB7Ci0gICAgRXZhbHVh
dGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50
NjRfdCBmcmFtZUlELCBTdHJpbmcgZnVuY3Rpb24sIFZlY3RvcjxTdHJpbmc+IGFyZ3VtZW50cywg
Ym9vbCBleHBlY3RzSW1wbGljaXRDYWxsYmFja0FyZ3VtZW50LCBpbnQgY2FsbGJhY2tUaW1lb3V0
LCB1aW50NjRfdCBjYWxsYmFja0lEKQorICAgIEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFN0cmluZyBmdW5jdGlvbiwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRzLCBib29sIGV4
cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJndW1lbnQsIGludCBjYWxsYmFja1RpbWVvdXQsIHVpbnQ2
NF90IGNhbGxiYWNrSUQpCiAKLSAgICBSZXNvbHZlQ2hpbGRGcmFtZVdpdGhPcmRpbmFsKFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgdWludDMyX3Qgb3Jk
aW5hbCkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCB1aW50NjRfdCBmcmFtZUlEKSBB
c3luYwotICAgIFJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUoV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSkgLT4g
KE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCB1aW50NjRfdCBmcmFtZUlEKSBBc3luYwotICAg
IFJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
LCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbmFtZSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJy
b3JUeXBlLCB1aW50NjRfdCBmcmFtZUlEKSBBc3luYwotICAgIFJlc29sdmVQYXJlbnRGcmFtZShX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQpIC0+IChPcHRp
b25hbDxTdHJpbmc+IGVycm9yVHlwZSwgdWludDY0X3QgZnJhbWVJRCkgQXN5bmMKKyAgICBSZXNv
bHZlQ2hpbGRGcmFtZVdpdGhPcmRpbmFsKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQzMl90IG9yZGluYWwpIC0+IChP
cHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQpIEFzeW5jCisgICAgUmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhhbmRsZShXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBT
dHJpbmcgbm9kZUhhbmRsZSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkgQXN5bmMKKyAgICBSZXNvbHZlQ2hpbGRGcmFtZVdp
dGhOYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIFN0cmluZyBuYW1lKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5
cGUsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSBBc3luYworICAgIFJlc29sdmVQ
YXJlbnRGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlEKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSBBc3luYwogCi0gICAgRm9jdXNGcmFtZShXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQpCisgICAgRm9jdXNG
cmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlEKQogCi0gICAgQ29tcHV0ZUVsZW1lbnRMYXlvdXQoV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9v
bCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBlbnVtOnVpbnQ4X3QgV2ViS2l0OjpDb29yZGluYXRl
U3lzdGVtIGNvb3JkaW5hdGVTeXN0ZW0pIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwg
V2ViQ29yZTo6SW50UmVjdCByZWN0LCBPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4gaW5WaWV3
Q2VudGVyUG9pbnQsIGJvb2wgaXNPYnNjdXJlZCkgQXN5bmMKKyAgICBDb21wdXRlRWxlbWVudExh
eW91dChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVl
ZGVkLCBlbnVtOnVpbnQ4X3QgV2ViS2l0OjpDb29yZGluYXRlU3lzdGVtIGNvb3JkaW5hdGVTeXN0
ZW0pIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgV2ViQ29yZTo6SW50UmVjdCByZWN0
LCBPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4gaW5WaWV3Q2VudGVyUG9pbnQsIGJvb2wgaXNP
YnNjdXJlZCkgQXN5bmMKIAotICAgIFNlbGVjdE9wdGlvbkVsZW1lbnQoV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSkgLT4g
KE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlKSBBc3luYworICAgIFNlbGVjdE9wdGlvbkVsZW1l
bnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9y
VHlwZSkgQXN5bmMKIAotICAgIFRha2VTY3JlZW5zaG90KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xs
SW50b1ZpZXdJZk5lZWRlZCwgYm9vbCBjbGlwVG9WaWV3cG9ydCwgdWludDY0X3QgY2FsbGJhY2tJ
RCkKKyAgICBUYWtlU2NyZWVuc2hvdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBz
Y3JvbGxJbnRvVmlld0lmTmVlZGVkLCBib29sIGNsaXBUb1ZpZXdwb3J0LCB1aW50NjRfdCBjYWxs
YmFja0lEKQogCi0gICAgR2V0Q29va2llc0ZvckZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBl
LCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBjb29raWVzKSBBc3luYwotICAgIERlbGV0ZUNvb2tp
ZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmlu
ZyBjb29raWVOYW1lKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUpIEFzeW5jCisgICAg
R2V0Q29va2llc0ZvckZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlw
ZSwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykgQXN5bmMKKyAgICBEZWxldGVDb29r
aWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgU3RyaW5nIGNvb2tpZU5hbWUpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9y
VHlwZSkgQXN5bmMKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW0gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1Bs
dWdJbkZyYW1lLm1tCmluZGV4IDA5OTc2MzcyZjA3Mzc1N2VlZGIxNzQ5M2Q3MzFmYTBhM2Q0NjY4
YzYuLjI1NzNlNmQ0ODU5ZTVlMGNmZTRhNjdmNWY0ZjNiYmE2YjMwZmU4NjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQ
cm9jZXNzUGx1Z0luRnJhbWUubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbQpAQCAtNDgsNyAr
NDgsNyBAQCBAaW1wbGVtZW50YXRpb24gV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUgewogCiArIChp
bnN0YW5jZXR5cGUpbG9va1VwRnJhbWVGcm9tSGFuZGxlOihfV0tGcmFtZUhhbmRsZSAqKWhhbmRs
ZQogewotICAgIHJldHVybiB3cmFwcGVyKFdlYktpdDo6V2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
d2ViRnJhbWUoaGFuZGxlLl9mcmFtZUlEKSk7CisgICAgcmV0dXJuIHdyYXBwZXIoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShXZWJDb3JlOjpmcmFtZUlkZW50aWZpZXJG
cm9tSUQoaGFuZGxlLl9mcmFtZUlEKSkpOwogfQogCiAtICh2b2lkKWRlYWxsb2MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNw
cAppbmRleCBjNDhjZGQ4NTc5NGQ5MjE2OTk1MjBjMmQ4MzhhNWI2NzBmM2IyZmYxLi41ZGZjNDI1
Nzg4NGJjMjkyYTRkYWU4YzQ0NWU5MmI3MzI3YTk2Y2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCkBAIC0xNTks
NyArMTU5LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKFJlc291cmNl
TG9hZGVyJiByZXNvdXJjZUxvYWRlciwgQ2FjaGVkUmVzb3UKIAogICAgIFdlYlJlc291cmNlTG9h
ZGVyOjpUcmFja2luZ1BhcmFtZXRlcnMgdHJhY2tpbmdQYXJhbWV0ZXJzOwogICAgIHRyYWNraW5n
UGFyYW1ldGVycy5wYWdlSUQgPSBmcmFtZUxvYWRlckNsaWVudC5wYWdlSUQoKS52YWx1ZU9yKFBh
Z2VJZGVudGlmaWVyIHsgfSk7Ci0gICAgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQgPSBmcmFt
ZUxvYWRlckNsaWVudC5mcmFtZUlEKCkudmFsdWVPcigwKTsKKyAgICB0cmFja2luZ1BhcmFtZXRl
cnMuZnJhbWVJRCA9IGZyYW1lTG9hZGVyQ2xpZW50LmZyYW1lSUQoKS52YWx1ZU9yKEZyYW1lSWRl
bnRpZmllciB7IH0pOwogICAgIHRyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEID0gaWRlbnRp
ZmllcjsKICAgICBhdXRvIHNlc3Npb25JRCA9IGZyYW1lTG9hZGVyQ2xpZW50LnNlc3Npb25JRCgp
OwogCkBAIC0xNjgsNyArMTY4LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVM
b2FkKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlciwgQ2FjaGVkUmVzb3UKICAgICAvLyB0
aGVuIHdlIHNob3VsZCByZW1lbWJlciB0aGUgUmVzb3VyY2VMb2FkZXIgaW4gb3VyIHJlY29yZHMg
YnV0IG5vdCBzY2hlZHVsZSBpdCBpbiB0aGUgTmV0d29ya1Byb2Nlc3MuCiAgICAgaWYgKHJlc291
cmNlTG9hZGVyLmRvY3VtZW50TG9hZGVyKCktPnNjaGVkdWxlQXJjaGl2ZUxvYWQocmVzb3VyY2VM
b2FkZXIsIHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKSkpIHsKICAgICAgICAgTE9HKE5ldHdvcmtT
Y2hlZHVsaW5nLCAiKFdlYlByb2Nlc3MpIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQs
IHVybCAnJXMnIHdpbGwgYmUgaGFuZGxlZCBhcyBhbiBhcmNoaXZlIHJlc291cmNlLiIsIHJlc291
cmNlTG9hZGVyLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBi
ZSBoYW5kbGVkIGFzIGFuIGFyY2hpdmUgcmVzb3VyY2UgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQg
IikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRv
VUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBpZGVudGlmaWVyKTsKKyAgICAg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDog
VVJMIHdpbGwgYmUgaGFuZGxlZCBhcyBhbiBhcmNoaXZlIHJlc291cmNlIChmcmFtZSA9ICVwLCBw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJz
LnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgp
LCBpZGVudGlmaWVyKTsKICAgICAgICAgbV93ZWJSZXNvdXJjZUxvYWRlcnMuc2V0KGlkZW50aWZp
ZXIsIFdlYlJlc291cmNlTG9hZGVyOjpjcmVhdGUocmVzb3VyY2VMb2FkZXIsIHRyYWNraW5nUGFy
YW1ldGVycykpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTc2LDE0ICsxNzYsMTQgQEAg
dm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiByZXNv
dXJjZUxvYWRlciwgQ2FjaGVkUmVzb3UKIAogICAgIGlmIChyZXNvdXJjZUxvYWRlci5kb2N1bWVu
dExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLm1heWJlTG9hZFJlc291cmNlKHJlc291
cmNlTG9hZGVyLCByZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCksIHJlc291cmNlTG9hZGVyLnJlcXVl
c3QoKS51cmwoKSkpIHsKICAgICAgICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5nLCAiKFdlYlByb2Nl
c3MpIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQsIHVybCAnJXMnIHdpbGwgYmUgbG9h
ZGVkIGZyb20gYXBwbGljYXRpb24gY2FjaGUuIiwgcmVzb3VyY2VMb2FkZXIudXJsKCkuc3RyaW5n
KCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3Vy
Y2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGxvYWRlZCBmcm9tIGFwcGxpY2F0
aW9uIGNhY2hlIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJh
bWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFt
ZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGxvYWRlZCBmcm9t
IGFwcGxpY2F0aW9uIGNhY2hlIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VM
b2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFj
a2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsKICAgICAgICAg
bV93ZWJSZXNvdXJjZUxvYWRlcnMuc2V0KGlkZW50aWZpZXIsIFdlYlJlc291cmNlTG9hZGVyOjpj
cmVhdGUocmVzb3VyY2VMb2FkZXIsIHRyYWNraW5nUGFyYW1ldGVycykpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCiAgICAgaWYgKHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS51cmwoKS5wcm90
b2NvbElzRGF0YSgpKSB7CiAgICAgICAgIExPRyhOZXR3b3JrU2NoZWR1bGluZywgIihXZWJQcm9j
ZXNzKSBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkLCB1cmwgJyVzJyB3aWxsIGJlIGxv
YWRlZCBhcyBkYXRhLiIsIHJlc291cmNlTG9hZGVyLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOwotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2No
ZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBsb2FkZWQgYXMgZGF0YSAoZnJhbWUgPSAlcCwgcGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBS
SXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdl
SUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIGlkZW50aWZpZXIpOwor
ICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVM
b2FkOiBVUkwgd2lsbCBiZSBsb2FkZWQgYXMgZGF0YSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAi
KSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9V
SW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmll
cik7CiAgICAgICAgIHN0YXJ0TG9jYWxMb2FkKHJlc291cmNlTG9hZGVyKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KQEAgLTE5MSw3ICsxOTEsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpz
Y2hlZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTG9hZGVyLCBDYWNoZWRSZXNvdQog
I2lmIFVTRShRVUlDS19MT09LKQogICAgIGlmIChpc1F1aWNrTG9va1ByZXZpZXdVUkwocmVzb3Vy
Y2VMb2FkZXIucmVxdWVzdCgpLnVybCgpKSkgewogICAgICAgICBMT0coTmV0d29ya1NjaGVkdWxp
bmcsICIoV2ViUHJvY2VzcykgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZCwgdXJsICcl
cycgd2lsbCBiZSBoYW5kbGVkIGFzIGEgUXVpY2tMb29rIHJlc291cmNlLiIsIHJlc291cmNlTG9h
ZGVyLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBoYW5k
bGVkIGFzIGEgUXVpY2tMb29rIHJlc291cmNlIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwg
cmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2
NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7CisgICAgICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3
aWxsIGJlIGhhbmRsZWQgYXMgYSBRdWlja0xvb2sgcmVzb3VyY2UgKGZyYW1lID0gJXAsIHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQ
Ukl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFn
ZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIGlk
ZW50aWZpZXIpOwogICAgICAgICBzdGFydExvY2FsTG9hZChyZXNvdXJjZUxvYWRlcik7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CkBAIC0yMDIsNyArMjAyLDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJh
dGVneTo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlciwgQ2FjaGVk
UmVzb3UKICAgICAvLyBodHRwczovL2Jsb2dzLmdub21lLm9yZy9hbGV4bC8yMDEyLzAxLzI2L3Jl
c291cmNlcy1pbi1nbGliLwogICAgIGlmIChyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkudXJsKCku
cHJvdG9jb2xJcygicmVzb3VyY2UiKSkgewogICAgICAgICBMT0coTmV0d29ya1NjaGVkdWxpbmcs
ICIoV2ViUHJvY2VzcykgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZCwgdXJsICclcycg
d2lsbCBiZSBoYW5kbGVkIGFzIGEgR1Jlc291cmNlLiIsIHJlc291cmNlTG9hZGVyLnVybCgpLnN0
cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJl
c291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBoYW5kbGVkIGFzIGEgR1Jl
c291cmNlIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUo
KSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRl
cnMuZnJhbWVJRCwgaWRlbnRpZmllcik7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
cmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGhhbmRsZWQgYXMgYSBH
UmVzb3VyY2UgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFt
ZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1l
dGVycy5mcmFtZUlELnRvVUludDY0KCksIGlkZW50aWZpZXIpOwogICAgICAgICBzdGFydExvY2Fs
TG9hZChyZXNvdXJjZUxvYWRlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yMTIsMTEg
KzIxMiwxMSBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQoUmVzb3VyY2VM
b2FkZXImIHJlc291cmNlTG9hZGVyLCBDYWNoZWRSZXNvdQogICAgIFdlYlNlcnZpY2VXb3JrZXJQ
cm92aWRlcjo6c2luZ2xldG9uKCkuaGFuZGxlRmV0Y2gocmVzb3VyY2VMb2FkZXIsIHNlc3Npb25J
RCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgW3RoaXMsIHRyYWNr
aW5nUGFyYW1ldGVycywgaWRlbnRpZmllciwgc2Vzc2lvbklELCBzaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0LCBtYXhpbXVtQnVmZmVyaW5nVGltZSA9IG1heGltdW1CdWZm
ZXJpbmdUaW1lKHJlc291cmNlKSwgcmVzb3VyY2VMb2FkZXIgPSBtYWtlUmVmKHJlc291cmNlTG9h
ZGVyKV0gKFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6UmVzdWx0IHJlc3VsdCkgbXV0YWJsZSB7
CiAgICAgICAgIGlmIChyZXN1bHQgIT0gU2VydmljZVdvcmtlckNsaWVudEZldGNoOjpSZXN1bHQ6
OlVuaGFuZGxlZCkgewogICAgICAgICAgICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5nLCAiKFdlYlBy
b2Nlc3MpIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQsIHVybCAnJXMnIHdpbGwgYmUg
c2NoZWR1bGVkIHRocm91Z2ggU2VydmljZVdvcmtlciBoYW5kbGUgZmV0Y2ggYWxnb3JpdGhtIiwg
cmVzb3VyY2VMb2FkZXItPnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSk7Ci0gICAgICAg
ICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLmdldCgpLCAic2NoZWR1
bGVMb2FkOiBVUkwgd2lsbCBiZSBzY2hlZHVsZWQgdGhyb3VnaCBTZXJ2aWNlV29ya2VyIGhhbmRs
ZSBmZXRjaCBhbGdvcml0aG0gKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxv
YWRlci0+ZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFj
a2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7CisgICAgICAgICAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLmdldCgpLCAic2NoZWR1bGVMb2FkOiBVUkwg
d2lsbCBiZSBzY2hlZHVsZWQgdGhyb3VnaCBTZXJ2aWNlV29ya2VyIGhhbmRsZSBmZXRjaCBhbGdv
cml0aG0gKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci0+ZnJhbWUo
KSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRl
cnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogICAgICAgICBpZiAocmVzb3VyY2VMb2FkZXItPm9wdGlvbnMoKS5zZXJ2aWNl
V29ya2Vyc01vZGUgPT0gU2VydmljZVdvcmtlcnNNb2RlOjpPbmx5KSB7Ci0gICAgICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLmdldCgpLCAic2NoZWR1
bGVMb2FkOiB1bmFibGUgdG8gc2NoZWR1bGUgVVJMIHRocm91Z2ggU2VydmljZVdvcmtlciBoYW5k
bGUgZmV0Y2ggYWxnb3JpdGhtIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VM
b2FkZXItPmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJh
Y2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIGlkZW50aWZpZXIpOworICAgICAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1JfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlci5nZXQoKSwgInNjaGVkdWxlTG9h
ZDogdW5hYmxlIHRvIHNjaGVkdWxlIFVSTCB0aHJvdWdoIFNlcnZpY2VXb3JrZXIgaGFuZGxlIGZl
dGNoIGFsZ29yaXRobSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVy
LT5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5n
UGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIGlkZW50aWZpZXIpOwogICAgICAgICAgICAg
Y2FsbE9uTWFpblRocmVhZChbcmVzb3VyY2VMb2FkZXIgPSBXVEZNb3ZlKHJlc291cmNlTG9hZGVy
KV0gewogICAgICAgICAgICAgICAgIGF1dG8gZXJyb3IgPSBpbnRlcm5hbEVycm9yKHJlc291cmNl
TG9hZGVyLT5yZXF1ZXN0KCkudXJsKCkpOwogICAgICAgICAgICAgICAgIGVycm9yLnNldFR5cGUo
UmVzb3VyY2VFcnJvcjo6VHlwZTo6Q2FuY2VsbGF0aW9uKTsKQEAgLTIyOCwxMyArMjI4LDEzIEBA
IHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciYgcmVz
b3VyY2VMb2FkZXIsIENhY2hlZFJlc291CiAgICAgICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkud2ViTG9hZGVyU3RyYXRlZ3koKS50cnlMb2FkaW5nVXNpbmdVUkxTY2hlbWVIYW5kbGVy
KHJlc291cmNlTG9hZGVyKSkKICAgICAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndl
YkxvYWRlclN0cmF0ZWd5KCkuc2NoZWR1bGVMb2FkRnJvbU5ldHdvcmtQcm9jZXNzKHJlc291cmNl
TG9hZGVyLmdldCgpLCByZXNvdXJjZUxvYWRlci0+cmVxdWVzdCgpLCB0cmFja2luZ1BhcmFtZXRl
cnMsIHNlc3Npb25JRCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwg
bWF4aW11bUJ1ZmZlcmluZ1RpbWUpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLmdldCgpLCAic2NoZWR1bGVMb2FkOiBVUkwg
bm90IGhhbmRsZWQgYnkgYW55IGhhbmRsZXJzIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwg
cmVzb3VyY2VMb2FkZXItPmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50
NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIGlkZW50aWZpZXIpOworICAgICAgICAg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlci5nZXQoKSwgInNjaGVkdWxl
TG9hZDogVVJMIG5vdCBoYW5kbGVkIGJ5IGFueSBoYW5kbGVycyAoZnJhbWUgPSAlcCwgcGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBS
SXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLT5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFn
ZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIGlk
ZW50aWZpZXIpOwogICAgIH0pOwogI2Vsc2UKICAgICBpZiAoIXRyeUxvYWRpbmdVc2luZ1VSTFNj
aGVtZUhhbmRsZXIocmVzb3VyY2VMb2FkZXIpKQogICAgICAgICBzY2hlZHVsZUxvYWRGcm9tTmV0
d29ya1Byb2Nlc3MocmVzb3VyY2VMb2FkZXIsIHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKSwgdHJh
Y2tpbmdQYXJhbWV0ZXJzLCBzZXNzaW9uSUQsIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9I
VFRQUmVkaXJlY3QsIG1heGltdW1CdWZmZXJpbmdUaW1lKHJlc291cmNlKSk7CiAgICAgZWxzZQot
ICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVM
b2FkOiBVUkwgbm90IGhhbmRsZWQgYnkgYW55IGhhbmRsZXJzIChmcmFtZSA9ICVwLCBwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJ
dTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJ
RC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7Cisg
ICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxv
YWQ6IFVSTCBub3QgaGFuZGxlZCBieSBhbnkgaGFuZGxlcnMgKGZyYW1lID0gJXAsIHBhZ2VJRCA9
ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1
NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlE
LnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIGlkZW50
aWZpZXIpOwogI2VuZGlmCiB9CiAKQEAgLTMyNSw3ICszMjUsNyBAQCB2b2lkIFdlYkxvYWRlclN0
cmF0ZWd5OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MoUmVzb3VyY2VMb2FkZXImIHJl
c291cmNlTAogICAgIGlmIChsb2FkUGFyYW1ldGVycy5vcHRpb25zLm1vZGUgIT0gRmV0Y2hPcHRp
b25zOjpNb2RlOjpOYXZpZ2F0ZSkgewogICAgICAgICBBU1NFUlQobG9hZFBhcmFtZXRlcnMuc291
cmNlT3JpZ2luKTsKICAgICAgICAgaWYgKCFsb2FkUGFyYW1ldGVycy5zb3VyY2VPcmlnaW4pIHsK
LSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIs
ICJzY2hlZHVsZUxvYWQ6IG5vIHNvdXJjZU9yaWdpbiAoZnJhbWUgPSAlcCwgcHJpb3JpdHkgPSAl
ZCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJ
RCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHN0YXRpY19jYXN0PGlu
dD4ocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnByaW9yaXR5KCkpLCBsb2FkUGFyYW1ldGVycy53
ZWJQYWdlSUQudG9VSW50NjQoKSwgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRCwgbG9hZFBhcmFt
ZXRlcnMuaWRlbnRpZmllcik7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExP
V0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBubyBzb3VyY2VPcmlnaW4gKGZyYW1l
ID0gJXAsIHByaW9yaXR5ID0gJWQsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFt
ZSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS5wcmlvcml0eSgp
KSwgbG9hZFBhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLndl
YkZyYW1lSUQudG9VSW50NjQoKSwgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllcik7CiAgICAgICAg
ICAgICBzY2hlZHVsZUludGVybmFsbHlGYWlsZWRMb2FkKHJlc291cmNlTG9hZGVyKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMzQ4LDkgKzM0OCw5IEBAIHZvaWQgV2ViTG9h
ZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZEZyb21OZXR3b3JrUHJvY2VzcyhSZXNvdXJjZUxvYWRl
ciYgcmVzb3VyY2VMCiAKICAgICBBU1NFUlQoKGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRCAmJiBs
b2FkUGFyYW1ldGVycy53ZWJGcmFtZUlEKSB8fCBsb2FkUGFyYW1ldGVycy5jbGllbnRDcmVkZW50
aWFsUG9saWN5ID09IENsaWVudENyZWRlbnRpYWxQb2xpY3k6OkNhbm5vdEFza0NsaWVudEZvckNy
ZWRlbnRpYWxzKTsKIAotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIs
ICJzY2hlZHVsZUxvYWQ6IFJlc291cmNlIGlzIGJlaW5nIHNjaGVkdWxlZCB3aXRoIHRoZSBOZXR3
b3JrUHJvY2VzcyAoZnJhbWUgPSAlcCwgcHJpb3JpdHkgPSAlZCwgcGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJl
c291cmNlTG9hZGVyLmZyYW1lKCksIHN0YXRpY19jYXN0PGludD4ocmVzb3VyY2VMb2FkZXIucmVx
dWVzdCgpLnByaW9yaXR5KCkpLCBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwg
bG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRCwgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllcik7Cisg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDog
UmVzb3VyY2UgaXMgYmVpbmcgc2NoZWR1bGVkIHdpdGggdGhlIE5ldHdvcmtQcm9jZXNzIChmcmFt
ZSA9ICVwLCBwcmlvcml0eSA9ICVkLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJh
bWUoKSwgc3RhdGljX2Nhc3Q8aW50PihyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkucHJpb3JpdHko
KSksIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVycy53
ZWJGcmFtZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIpOwogICAgIGlm
ICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
KCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpTY2hlZHVsZVJlc291cmNlTG9hZChsb2FkUGFyYW1ldGVycyksIDApKSB7Ci0gICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxv
YWQ6IFVuYWJsZSB0byBzY2hlZHVsZSByZXNvdXJjZSB3aXRoIHRoZSBOZXR3b3JrUHJvY2VzcyAo
ZnJhbWUgPSAlcCwgcHJpb3JpdHkgPSAlZCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVy
LmZyYW1lKCksIHN0YXRpY19jYXN0PGludD4ocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnByaW9y
aXR5KCkpLCBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbG9hZFBhcmFtZXRl
cnMud2ViRnJhbWVJRCwgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllcik7CisgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVu
YWJsZSB0byBzY2hlZHVsZSByZXNvdXJjZSB3aXRoIHRoZSBOZXR3b3JrUHJvY2VzcyAoZnJhbWUg
PSAlcCwgcHJpb3JpdHkgPSAlZCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQ
Ukl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1l
KCksIHN0YXRpY19jYXN0PGludD4ocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnByaW9yaXR5KCkp
LCBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbG9hZFBhcmFtZXRlcnMud2Vi
RnJhbWVJRC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyKTsKICAgICAgICAg
Ly8gV2UgcHJvYmFibHkgZmFpbGVkIHRvIHNjaGVkdWxlIHRoaXMgbG9hZCB3aXRoIHRoZSBOZXR3
b3JrUHJvY2VzcyBiZWNhdXNlIGl0IGhhZCBjcmFzaGVkLgogICAgICAgICAvLyBUaGlzIGxvYWQg
d2lsbCBuZXZlciBzdWNjZWVkIHNvIHdlIHdpbGwgc2NoZWR1bGUgaXQgdG8gZmFpbCBhc3luY2hy
b25vdXNseS4KICAgICAgICAgc2NoZWR1bGVJbnRlcm5hbGx5RmFpbGVkTG9hZChyZXNvdXJjZUxv
YWRlcik7CkBAIC01MjAsMTggKzUyMCwxOCBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpsb2Fk
UmVzb3VyY2VTeW5jaHJvbm91c2x5KEZyYW1lTG9hZGVyJiBmcmFtZUxvYWRlciwgdW5zaQogICAg
IFdlYlBhZ2UqIHdlYlBhZ2UgPSB3ZWJGcmFtZSA/IHdlYkZyYW1lLT5wYWdlKCkgOiBudWxscHRy
OwogCiAgICAgYXV0byBwYWdlSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+cGFnZUlEKCkgOiBQYWdl
SWRlbnRpZmllciB7IH07Ci0gICAgYXV0byBmcmFtZUlEID0gd2ViRnJhbWUgPyB3ZWJGcmFtZS0+
ZnJhbWVJRCgpIDogMDsKKyAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZSA/IHdlYkZyYW1lLT5m
cmFtZUlEKCkgOiBGcmFtZUlkZW50aWZpZXIgeyB9OwogICAgIGF1dG8gc2Vzc2lvbklEID0gd2Vi
UGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNz
aW9uSUQoKTsKIAogICAgIGF1dG8qIGRvY3VtZW50ID0gZnJhbWVMb2FkZXIuZnJhbWUoKS5kb2N1
bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Jf
SUZfQUxMT1dFRChzZXNzaW9uSUQsICJsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiBubyBkb2N1
bWVudCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3Vy
Y2VJRCA9ICVsdSkiLCBwYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCwgcmVzb3VyY2VMb2FkSWRl
bnRpZmllcik7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoc2Vzc2lvbklE
LCAibG9hZFJlc291cmNlU3luY2hyb25vdXNseTogbm8gZG9jdW1lbnQgKHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlbHUpIiwgcGFnZUlE
LnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSwgcmVzb3VyY2VMb2FkSWRlbnRpZmllcik7
CiAgICAgICAgIGVycm9yID0gaW50ZXJuYWxFcnJvcihyZXF1ZXN0LnVybCgpKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAogICAgIGlmIChhdXRvIHN5bmNMb2FkUmVzdWx0ID0gdHJ5TG9hZGlu
Z1N5bmNocm9ub3VzbHlVc2luZ1VSTFNjaGVtZUhhbmRsZXIoZnJhbWVMb2FkZXIsIHJlc291cmNl
TG9hZElkZW50aWZpZXIsIHJlcXVlc3QpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lG
X0FMTE9XRUQoc2Vzc2lvbklELCAibG9hZFJlc291cmNlU3luY2hyb25vdXNseTogZmFpbGVkIGNh
bGxpbmcgdHJ5TG9hZGluZ1N5bmNocm9ub3VzbHlVc2luZ1VSTFNjaGVtZUhhbmRsZXIgKHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlbHUs
IGVycm9yID0gJWQpIiwgcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQsIHJlc291cmNlTG9hZElk
ZW50aWZpZXIsIHN5bmNMb2FkUmVzdWx0LT5lcnJvci5lcnJvckNvZGUoKSk7CisgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoc2Vzc2lvbklELCAibG9hZFJlc291cmNlU3luY2hy
b25vdXNseTogZmFpbGVkIGNhbGxpbmcgdHJ5TG9hZGluZ1N5bmNocm9ub3VzbHlVc2luZ1VSTFNj
aGVtZUhhbmRsZXIgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IHJlc291cmNlSUQgPSAlbHUsIGVycm9yID0gJWQpIiwgcGFnZUlELnRvVUludDY0KCksIGZyYW1l
SUQudG9VSW50NjQoKSwgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgc3luY0xvYWRSZXN1bHQtPmVy
cm9yLmVycm9yQ29kZSgpKTsKICAgICAgICAgZXJyb3IgPSBXVEZNb3ZlKHN5bmNMb2FkUmVzdWx0
LT5lcnJvcik7CiAgICAgICAgIHJlc3BvbnNlID0gV1RGTW92ZShzeW5jTG9hZFJlc3VsdC0+cmVz
cG9uc2UpOwogICAgICAgICBkYXRhID0gV1RGTW92ZShzeW5jTG9hZFJlc3VsdC0+ZGF0YSk7CkBA
IC01NjksNyArNTY5LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3lu
Y2hyb25vdXNseShGcmFtZUxvYWRlciYgZnJhbWVMb2FkZXIsIHVuc2kKICAgICAgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdl
czo6V2ViUHJvY2Vzc1Bvb2w6OlNldFdlYlByb2Nlc3NIYXNVcGxvYWRzIHsgUHJvY2Vzczo6aWRl
bnRpZmllcigpIH0sIDApOwogCiAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1
cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2Fn
ZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQZXJmb3JtU3luY2hyb25vdXNMb2Fk
KGxvYWRQYXJhbWV0ZXJzKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpQZXJmb3JtU3luY2hyb25vdXNMb2FkOjpSZXBseShlcnJvciwgcmVzcG9uc2UsIGRhdGEpLCAw
KSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHNlc3Npb25JRCwgImxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6IGZhaWxlZCBzZW5kaW5nIHN5bmNocm9ub3VzIG5ldHdv
cmsgcHJvY2VzcyBtZXNzYWdlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEID0gJWx1KSIsIHBhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELCBy
ZXNvdXJjZUxvYWRJZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxM
T1dFRChzZXNzaW9uSUQsICJsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiBmYWlsZWQgc2VuZGlu
ZyBzeW5jaHJvbm91cyBuZXR3b3JrIHByb2Nlc3MgbWVzc2FnZSAocGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICVsdSkiLCBwYWdlSUQudG9V
SW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpLCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKTsKICAg
ICAgICAgaWYgKGF1dG8qIHBhZ2UgPSB3ZWJQYWdlID8gd2ViUGFnZS0+Y29yZVBhZ2UoKSA6IG51
bGxwdHIpCiAgICAgICAgICAgICBwYWdlLT5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0Rp
YWdub3N0aWNNZXNzYWdlKFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6aW50ZXJuYWxF
cnJvcktleSgpLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnN5bmNocm9ub3VzTWVz
c2FnZUZhaWxlZEtleSgpLCBXZWJDb3JlOjpTaG91bGRTYW1wbGU6Ok5vKTsKICAgICAgICAgcmVz
cG9uc2UgPSBSZXNvdXJjZVJlc3BvbnNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggODhiZDUzYmYxZjhm
YjczNmViMTczZWY2NGYxZTMwM2QxYmIxMDBjMS4uZmE1MzkyNWViNjhmMDQyZmVjNzliZjM4ODYw
YjI3NjAzMjVmYjUxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcApAQCAtODgsMTYgKzg4LDE2IEBAIHZvaWQgV2Vi
UmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiBwcm9wb3Nl
ZFJlcXVlc3QsIFJlc291CiAgICAgUmVmPFdlYlJlc291cmNlTG9hZGVyPiBwcm90ZWN0ZWRUaGlz
KCp0aGlzKTsKIAogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9h
ZGVyOjp3aWxsU2VuZFJlcXVlc3QgdG8gJyVzJyIsIHByb3Bvc2VkUmVxdWVzdC51cmwoKS5zdHJp
bmcoKS5sYXRpbjEoKS5kYXRhKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIndpbGxT
ZW5kUmVxdWVzdDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQu
dG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFt
ZXRlcnMucmVzb3VyY2VJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgid2lsbFNlbmRS
ZXF1ZXN0OiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJ
bnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tp
bmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwogCiAgICAgaWYgKG1fY29yZUxvYWRlci0+ZG9jdW1l
bnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS5tYXliZUxvYWRGYWxsYmFja0ZvclJl
ZGlyZWN0KG1fY29yZUxvYWRlci5nZXQoKSwgcHJvcG9zZWRSZXF1ZXN0LCByZWRpcmVjdFJlc3Bv
bnNlKSkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3aWxsU2VuZFJlcXVlc3Q6
IGV4aXRpbmcgZWFybHkgYmVjYXVzZSBtYXliZUxvYWRGYWxsYmFja0ZvclJlZGlyZWN0IHJldHVy
bmVkIGZhbHNlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBy
ZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRv
VUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0
ZXJzLnJlc291cmNlSUQpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3aWxsU2Vu
ZFJlcXVlc3Q6IGV4aXRpbmcgZWFybHkgYmVjYXVzZSBtYXliZUxvYWRGYWxsYmFja0ZvclJlZGly
ZWN0IHJldHVybmVkIGZhbHNlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMu
cGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQo
KSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKICAgICBtX2NvcmVMb2FkZXItPndpbGxTZW5kUmVxdWVzdChXVEZNb3ZlKHByb3Bvc2Vk
UmVxdWVzdCksIHJlZGlyZWN0UmVzcG9uc2UsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92
ZShwcm90ZWN0ZWRUaGlzKV0oUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkgewogICAgICAgICBp
ZiAoIW1fY29yZUxvYWRlciB8fCAhbV9jb3JlTG9hZGVyLT5pZGVudGlmaWVyKCkpIHsKLSAgICAg
ICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIndpbGxTZW5kUmVxdWVzdDogZXhpdGluZyBl
YXJseSBiZWNhdXNlIG5vIGNvcmVsb2FkZXIgb3IgaWRlbnRpZmllciAocGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIs
IG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1l
dGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKKyAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIndpbGxTZW5kUmVxdWVzdDogZXhpdGluZyBlYXJs
eSBiZWNhdXNlIG5vIGNvcmVsb2FkZXIgb3IgaWRlbnRpZmllciAocGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1f
dHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVy
cy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTExMywxMiArMTEzLDEyIEBAIHZv
aWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFNlbmREYXRhKHVpbnQ2NF90IGJ5dGVzU2VudCwgdWlu
dDY0X3QgdG90YWxCeXRlc1RvQmVTCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZl
UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGJvb2wgbmVlZHNDb250
aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpCiB7CiAgICAgTE9HKE5ldHdvcmssICIoV2Vi
UHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZSBmb3IgJyVzJy4g
U3RhdHVzICVkLiIsIG1fY29yZUxvYWRlci0+dXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgp
LCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KCJkaWRSZWNlaXZlUmVzcG9uc2U6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIHN0YXR1cyA9ICVkKSIsIG1fdHJh
Y2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5m
cmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlELCByZXNwb25zZS5odHRwU3Rh
dHVzQ29kZSgpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzcG9u
c2U6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJj
ZUlEID0gJSIgUFJJdTY0ICIsIHN0YXR1cyA9ICVkKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBh
Z2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCks
IG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQsIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2Rl
KCkpOwogCiAgICAgUmVmPFdlYlJlc291cmNlTG9hZGVyPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsK
IAogICAgIGlmIChtX2NvcmVMb2FkZXItPmRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2Fj
aGVIb3N0KCkubWF5YmVMb2FkRmFsbGJhY2tGb3JSZXNwb25zZShtX2NvcmVMb2FkZXIuZ2V0KCks
IHJlc3BvbnNlKSkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZl
UmVzcG9uc2U6IG5vdCBjb250aW51aW5nIGxvYWQgYmVjYXVzZSB0aGUgY29udGVudCBpcyBhbHJl
YWR5IGNhY2hlZCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwg
cmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50
b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1l
dGVycy5yZXNvdXJjZUlEKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVj
ZWl2ZVJlc3BvbnNlOiBub3QgY29udGludWluZyBsb2FkIGJlY2F1c2UgdGhlIGNvbnRlbnQgaXMg
YWxyZWFkeSBjYWNoZWQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdl
SUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBt
X3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApAQCAtMTM1LDcgKzEzNSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVS
ZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgYm9vCiAgICAgICAgICAg
ICBpZiAobV9jb3JlTG9hZGVyICYmIG1fY29yZUxvYWRlci0+aWRlbnRpZmllcigpKQogICAgICAg
ICAgICAgICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Q29udGludWVE
aWRSZWNlaXZlUmVzcG9uc2UoKSk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiBub3QgY29udGludWlu
ZyBsb2FkIGJlY2F1c2Ugbm8gY29yZUxvYWRlciBvciBubyBJRCAocGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1f
dHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVy
cy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKKyAgICAgICAgICAg
ICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6IG5vdCBjb250
aW51aW5nIGxvYWQgYmVjYXVzZSBubyBjb3JlTG9hZGVyIG9yIG5vIElEIChwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIp
IiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJh
bWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJ
RCk7CiAgICAgICAgIH07CiAgICAgfQogCkBAIC0xNDgsNyArMTQ4LDcgQEAgdm9pZCBXZWJSZXNv
dXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRh
LCBpbnQ2NF90IGUKICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFtX2lzUHJvY2Vzc2luZ05ldHdv
cmtSZXNwb25zZSwgIk5ldHdvcmsgcHJvY2VzcyBzaG91bGQgbm90IHNlbmQgZGF0YSB1bnRpbCB3
ZSd2ZSB2YWxpZGF0ZWQgdGhlIHJlc3BvbnNlIik7CiAKICAgICBpZiAoIW1fbnVtQnl0ZXNSZWNl
aXZlZCkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlRGF0YTog
U3RhcnRlZCByZWNlaXZpbmcgZGF0YSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAl
IiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0
ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3Ry
YWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRCgiZGlkUmVjZWl2ZURhdGE6IFN0YXJ0ZWQgcmVjZWl2aW5nIGRhdGEgKHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQg
IikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1Bh
cmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJj
ZUlEKTsKICAgICB9CiAgICAgbV9udW1CeXRlc1JlY2VpdmVkICs9IGRhdGEuc2l6ZSgpOwogCkBA
IC0xNTgsNyArMTU4LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEo
Y29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBpbnQ2NF90IGUKIHZvaWQgV2ViUmVzb3Vy
Y2VMb2FkZXI6OmRpZEZpbmlzaFJlc291cmNlTG9hZChjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3Mm
IG5ldHdvcmtMb2FkTWV0cmljcykKIHsKICAgICBMT0coTmV0d29yaywgIihXZWJQcm9jZXNzKSBX
ZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkIGZvciAnJXMnIiwgbV9jb3Jl
TG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwotICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoImRpZEZpbmlzaFJlc291cmNlTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgbGVuZ3Ro
ID0gJXpkKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNr
aW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlELCBt
X251bUJ5dGVzUmVjZWl2ZWQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZpbmlz
aFJlc291cmNlTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgbGVuZ3RoID0gJXpkKSIsIG1fdHJhY2tpbmdQ
YXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlE
LnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQsIG1fbnVtQnl0ZXNS
ZWNlaXZlZCk7CiAKICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFtX2lzUHJvY2Vzc2luZ05ldHdv
cmtSZXNwb25zZSwgIkxvYWQgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIGZpbmlzaCBiZWZvcmUgd2Un
dmUgdmFsaWRhdGVkIHRoZSByZXNwb25zZSIpOwogICAgIG1fY29yZUxvYWRlci0+ZGlkRmluaXNo
TG9hZGluZyhuZXR3b3JrTG9hZE1ldHJpY3MpOwpAQCAtMTY3LDcgKzE2Nyw3IEBAIHZvaWQgV2Vi
UmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaFJlc291cmNlTG9hZChjb25zdCBOZXR3b3JrTG9hZE1l
dHJpY3MmIG5ldHdvcmtMCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRGYWlsUmVzb3VyY2VM
b2FkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewogICAgIExPRyhOZXR3b3JrLCAiKFdl
YlByb2Nlc3MpIFdlYlJlc291cmNlTG9hZGVyOjpkaWRGYWlsUmVzb3VyY2VMb2FkIGZvciAnJXMn
IiwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwotICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZhaWxSZXNvdXJjZUxvYWQ6IChwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIp
IiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJh
bWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOworICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZhaWxSZXNvdXJjZUxvYWQ6IChwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIp
IiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJh
bWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJ
RCk7CiAKICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFtX2lzUHJvY2Vzc2luZ05ldHdvcmtSZXNw
b25zZSwgIkxvYWQgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIGZpbmlzaCBiZWZvcmUgd2UndmUgdmFs
aWRhdGVkIHRoZSByZXNwb25zZSIpOwogCkBAIC0xNzksNyArMTc5LDcgQEAgdm9pZCBXZWJSZXNv
dXJjZUxvYWRlcjo6ZGlkRmFpbFJlc291cmNlTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJv
cikKIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEJsb2NrQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UoKQogewogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9hZGVy
OjpkaWRCbG9ja0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGZvciAnJXMnIiwgbV9jb3JlTG9hZGVy
LT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoImRpZEJsb2NrQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6IChwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwg
bV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0
ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOworICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoImRpZEJsb2NrQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6IChwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIg
UFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJh
Y2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMu
cmVzb3VyY2VJRCk7CiAKICAgICBtX2NvcmVMb2FkZXItPmRpZEJsb2NrQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoKTsKIH0KQEAgLTE4Nyw3ICsxODcsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVy
OjpkaWRCbG9ja0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCkKIHZvaWQgV2ViUmVzb3VyY2VMb2Fk
ZXI6OnN0b3BMb2FkaW5nQWZ0ZXJYRnJhbWVPcHRpb25zT3JDb250ZW50U2VjdXJpdHlQb2xpY3lE
ZW5pZWQoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgTE9HKE5ldHdv
cmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OnN0b3BMb2FkaW5nQWZ0ZXJYRnJh
bWVPcHRpb25zT3JDb250ZW50U2VjdXJpdHlQb2xpY3lEZW5pZWQgZm9yICclcyciLCBtX2NvcmVM
b2FkZXItPnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgic3RvcExvYWRpbmdBZnRlclhGcmFtZU9wdGlvbnNPckNvbnRlbnRTZWN1cml0
eVBvbGljeURlbmllZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdl
SUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1Bh
cmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RvcExv
YWRpbmdBZnRlclhGcmFtZU9wdGlvbnNPckNvbnRlbnRTZWN1cml0eVBvbGljeURlbmllZDogKHBh
Z2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAl
IiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90
cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVy
cy5yZXNvdXJjZUlEKTsKIAogICAgIG1fY29yZUxvYWRlci0+ZG9jdW1lbnRMb2FkZXIoKS0+c3Rv
cExvYWRpbmdBZnRlclhGcmFtZU9wdGlvbnNPckNvbnRlbnRTZWN1cml0eVBvbGljeURlbmllZCht
X2NvcmVMb2FkZXItPmlkZW50aWZpZXIoKSwgcmVzcG9uc2UpOwogfQpAQCAtMTk2LDEzICsxOTYs
MTMgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6c3RvcExvYWRpbmdBZnRlclhGcmFtZU9wdGlv
bnNPckNvbnRlbnRTZWN1cml0eVBvbGljeURlbmkKIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRp
ZFJlY2VpdmVSZXNvdXJjZShjb25zdCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlJiBoYW5kbGUp
CiB7CiAgICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OmRp
ZFJlY2VpdmVSZXNvdXJjZSBmb3IgJyVzJyIsIG1fY29yZUxvYWRlci0+dXJsKCkuc3RyaW5nKCku
bGF0aW4xKCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZl
UmVzb3VyY2U6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBy
ZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRv
VUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0
ZXJzLnJlc291cmNlSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVS
ZXNvdXJjZTogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJl
c291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9V
SW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNr
aW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKIAogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1
ZmZlciA9IGhhbmRsZS50cnlXcmFwSW5TaGFyZWRCdWZmZXIoKTsKIAogICAgIGlmICghYnVmZmVy
KSB7CiAgICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIGNyZWF0ZSBidWZmZXIgZnJvbSBTaGFy
ZWFibGVSZXNvdXJjZSBzZW50IGZyb20gdGhlIG5ldHdvcmsgcHJvY2Vzcy4iKTsKLSAgICAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc291cmNlOiBVbmFibGUgdG8gY3Jl
YXRlIFNoYXJlZEJ1ZmZlciAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBh
Z2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5n
UGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgi
ZGlkUmVjZWl2ZVJlc291cmNlOiBVbmFibGUgdG8gY3JlYXRlIFNoYXJlZEJ1ZmZlciAocGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBS
SXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNr
aW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJl
c291cmNlSUQpOwogICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBtX2NvcmVMb2FkZXItPmZyYW1l
KCkpIHsKICAgICAgICAgICAgIGlmIChhdXRvKiBwYWdlID0gZnJhbWUtPnBhZ2UoKSkKICAgICAg
ICAgICAgICAgICBwYWdlLT5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNN
ZXNzYWdlKFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6aW50ZXJuYWxFcnJvcktleSgp
LCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmNyZWF0ZVNoYXJlZEJ1ZmZlckZhaWxl
ZEtleSgpLCBXZWJDb3JlOjpTaG91bGRTYW1wbGU6Ok5vKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oCmluZGV4IDU4NjU0Mzcx
OGU1ZTgzODhiOGI0MWFiMDIwMzdhYzc2ZTc4NjkzN2MuLjljMTE0N2RhMDUxNTNkZDdhYzQ0YWYz
MTU4MWUyMjFiNjliZTkyNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUg
IkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAiU2hh
cmVhYmxlUmVzb3VyY2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTUyLDcgKzUzLDcgQEAgY2xhc3Mg
V2ViUmVzb3VyY2VMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJSZXNvdXJjZUxvYWRlcj4s
IHB1YmxpYyBJUEM6Ok1lc3MKIHB1YmxpYzoKICAgICBzdHJ1Y3QgVHJhY2tpbmdQYXJhbWV0ZXJz
IHsKICAgICAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEOwotICAgICAgICB1aW50
NjRfdCBmcmFtZUlEIHsgMCB9OworICAgICAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRDsKICAgICAgICAgUmVzb3VyY2VMb2FkSWRlbnRpZmllciByZXNvdXJjZUlEIHsgMCB9Owog
ICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAppbmRleCA2ZmMwOWM0
ZjY1YjI0NWI2MGJmNGQ0ZjU5N2E5ZjkwYWQ0ZDBhYWY5Li40OWQyMGM3YzQ5YzAyYWE5NTlhYTRh
ZTRkOWVlYzhmZTgzYzVmZTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3Bw
CkBAIC03Myw3ICs3Myw3IEBAIHN0YXRpYyBjb25zdCBTZWNvbmRzIHN5bmNXb3JrZXJUZXJtaW5h
dGlvblRpbWVvdXQgeyAxMDBfbXMgfTsgLy8gT25seSB1c2VkIGJ5IGxhCiAKIGNsYXNzIFNlcnZp
Y2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudCBmaW5hbCA6IHB1YmxpYyBFbXB0eUZyYW1lTG9hZGVy
Q2xpZW50IHsKIHB1YmxpYzoKLSAgICBTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQoV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCkKKyAgICBTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJD
bGllbnQoV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpCiAgICAgICAgIDogbV9j
b25uZWN0aW9uKGNvbm5lY3Rpb24pCiAgICAgICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQog
ICAgICAgICAsIG1fcGFnZUlEKHBhZ2VJRCkKQEAgLTk2LDEzICs5NiwxMyBAQCBwcml2YXRlOgog
CiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9z
ZXNzaW9uSUQ7IH0KICAgICBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlE
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9wYWdlSUQ7IH0KLSAgICBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZnJhbWVJRDsgfQorICAgIE9wdGlv
bmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fZnJhbWVJRDsgfQogICAgIFN0cmluZyB1c2VyQWdlbnQoY29uc3QgVVJMJikgZmluYWwg
eyByZXR1cm4gbV91c2VyQWdlbnQ7IH0KIAogICAgIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uJiBtX2Nvbm5lY3Rpb247CiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7Ci0gICAg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV9wYWdlSUQ7Ci0gICAgdWludDY0X3QgbV9mcmFtZUlE
IHsgMCB9OworICAgIFBhZ2VJZGVudGlmaWVyIG1fcGFnZUlEOworICAgIEZyYW1lSWRlbnRpZmll
ciBtX2ZyYW1lSUQ7CiAgICAgU3RyaW5nIG1fdXNlckFnZW50OwogfTsKIApAQCAtMTUzLDcgKzE1
Myw4IEBAIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omluc3RhbGxTZXJ2aWNl
V29ya2VyKGNvbnN0IFNlcnZpY2VXb3JrZXJDb250CiAKICAgICAvLyBGSVhNRTogVGhpcyBtZXRo
b2Qgc2hvdWxkIGJlIG1vdmVkIGRpcmVjdGx5IHRvIFdlYkNvcmU6OlNXQ29udGV4dE1hbmFnZXI6
OkNvbm5lY3Rpb24KICAgICAvLyBJZiBpdCB3ZXJlbid0IGZvciBTZXJ2aWNlV29ya2VyRnJhbWVM
b2FkZXJDbGllbnQncyBkZXBlbmRlbmNlIG9uIFdlYkRvY3VtZW50TG9hZGVyLCB0aGlzIGNvdWxk
IGFscmVhZHkgaGFwcGVuLgotICAgIGF1dG8gZnJhbWVMb2FkZXJDbGllbnQgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudD4oKnRoaXMsIHNlc3Npb25JRCwg
bV9wYWdlSUQsICsrbV9wcmV2aW91c1NlcnZpY2VXb3JrZXJJRCwgZWZmZWN0aXZlVXNlckFnZW50
KTsKKyAgICAvLyBGSVhNRTogV2VpcmQgdG8gcGFzcyBtX3ByZXZpb3VzU2VydmljZVdvcmtlcklE
IGFzIGEgRnJhbWVJZGVudGlmaWVyLgorICAgIGF1dG8gZnJhbWVMb2FkZXJDbGllbnQgPSBzdGQ6
Om1ha2VfdW5pcXVlPFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudD4oKnRoaXMsIHNlc3Np
b25JRCwgbV9wYWdlSUQsIGZyYW1lSWRlbnRpZmllckZyb21JRCgrK21fcHJldmlvdXNTZXJ2aWNl
V29ya2VySUQpLCBlZmZlY3RpdmVVc2VyQWdlbnQpOwogICAgIHBhZ2VDb25maWd1cmF0aW9uLmxv
YWRlckNsaWVudEZvck1haW5GcmFtZSA9IGZyYW1lTG9hZGVyQ2xpZW50LmdldCgpOwogICAgIG1f
bG9hZGVycy5hZGQoV1RGTW92ZShmcmFtZUxvYWRlckNsaWVudCkpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwCmluZGV4IDNjODcyZjVhZGYzOWJlYWNkM2E3MDY2N2IyNjg5ZDM4YzliMTExMmUuLmZj
ZDA5OGU0ODQwYTU4YTJiNWEyMTk3ZWI1MjkxZTBhNGY0ODI5ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwCkBAIC0yNjUsNyArMjY1LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmZvY3VzZWRG
cmFtZUNoYW5nZWQoRnJhbWUqIGZyYW1lKQogewogICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IGZy
YW1lID8gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lKSA6IG51bGxwdHI7CiAKLSAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkZvY3VzZWRGcmFtZUNoYW5nZWQod2ViRnJhbWUgPyB3ZWJG
cmFtZS0+ZnJhbWVJRCgpIDogMCksIG1fcGFnZS5wYWdlSUQoKSk7CisgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpGb2N1c2VkRnJhbWVDaGFuZ2VkKHdlYkZyYW1lID8gbWFrZU9wdGlvbmFsKHdl
YkZyYW1lLT5mcmFtZUlEKCkpIDogV1RGOjpudWxsb3B0KSwgbV9wYWdlLnBhZ2VJRCgpKTsKIH0K
IAogUGFnZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3coRnJhbWUmIGZyYW1lLCBjb25z
dCBGcmFtZUxvYWRSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXaW5kb3dGZWF0dXJlcyYgd2luZG93
RmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIG5hdmlnYXRpb25BY3Rpb24pCkBAIC02
MjUsNyArNjI1LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQo
RnJhbWUmIGZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb24KICAgICAgICAgV2ViRnJhbWUq
IGxhcmdlc3RGcmFtZSA9IGZpbmRMYXJnZXN0RnJhbWVJbkZyYW1lU2V0KG1fcGFnZSk7CiAgICAg
ICAgIGlmIChsYXJnZXN0RnJhbWUgIT0gbV9jYWNoZWRGcmFtZVNldExhcmdlc3RGcmFtZS5nZXQo
KSkgewogICAgICAgICAgICAgbV9jYWNoZWRGcmFtZVNldExhcmdlc3RGcmFtZSA9IGxhcmdlc3RG
cmFtZTsKLSAgICAgICAgICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkZy
YW1lU2V0TGFyZ2VzdEZyYW1lQ2hhbmdlZChsYXJnZXN0RnJhbWUgPyBsYXJnZXN0RnJhbWUtPmZy
YW1lSUQoKSA6IDApKTsKKyAgICAgICAgICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkZyYW1lU2V0TGFyZ2VzdEZyYW1lQ2hhbmdlZChsYXJnZXN0RnJhbWUgPyBtYWtlT3B0
aW9uYWwobGFyZ2VzdEZyYW1lLT5mcmFtZUlEKCkpIDogV1RGOjpudWxsb3B0KSk7CiAgICAgICAg
IH0KICAgICB9CiAKQEAgLTEzMTYsMTIgKzEzMTYsMTIgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmRpZEludmFsaWRhdGVEb2N1bWVudE1hcmtlclJlY3RzKCkKIH0KIAogI2lmIEVOQUJMRShSRVNP
VVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi12b2lkIFdlYkNocm9tZUNsaWVudDo6aGFzU3RvcmFnZUFj
Y2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdpc3RyYWJsZURvbWFp
biYmIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpoYXNTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJh
bWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3BhZ2UuaGFzU3RvcmFnZUFjY2VzcyhX
VEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0b3BGcmFtZURvbWFpbiksIGZyYW1lSUQs
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4s
IFJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBh
Z2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFu
dGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9t
YWluJiYgc3ViRnJhbWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4s
IEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1No
b3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3BhZ2UucmVxdWVzdFN0b3JhZ2VB
Y2Nlc3MoV1RGTW92ZShzdWJGcmFtZURvbWFpbiksIFdURk1vdmUodG9wRnJhbWVEb21haW4pLCBm
cmFtZUlELCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
aW5kZXggY2VkMzZhNmMyNWI3ZTRmODM0NGE1ODk5NDAwNjc5MWY3Y2M5Mjc2Zi4uMmRjNjYyMmMx
YjdmMWM1YTk1YTJjY2Q3OWIzMjA5YmI1ODcyYTYyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAt
MzY3LDggKzM2Nyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRJbnZhbGlkYXRlRG9jdW1lbnRN
YXJrZXJSZWN0cygpIGZpbmFsOwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKLSAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4m
JiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURv
bWFpbiwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdURjo6Q29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7Ci0gICAgdm9pZCByZXF1ZXN0U3Rv
cmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFt
ZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNz
UHJvbXB0V2FzU2hvd24pPiYmKSBmaW5hbDsKKyAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmKSBmaW5hbDsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
JiYgdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdl
QWNjZXNzV2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4m
JikgZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA2NTczOWJiOGFhOTZkZmU4YzJiMGUyNmMx
NzFhOWY5Yjc2YjczNDA5Li43MDk4MGVlNWI1YjhkNzAzN2U0NWIzZjJhZjNlMmJiMWZhMDM5NGE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTEyMCw3ICsxMjAsNyBAQCBP
cHRpb25hbDxQYWdlSWRlbnRpZmllcj4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnBhZ2VJRCgpIGNv
bnN0CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KIAotT3B0aW9uYWw8dWludDY0X3Q+IFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlEKCkgY29uc3QKK09wdGlvbmFsPEZyYW1lSWRlbnRp
Zmllcj4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZyYW1lSUQoKSBjb25zdAogewogICAgIGlmICht
X2ZyYW1lKQogICAgICAgICByZXR1cm4gbV9mcmFtZS0+ZnJhbWVJRCgpOwpAQCAtNTQ2LDcgKzU0
Niw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lv
bmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlCiAgICAgaWYgKCF3ZWJQYWdlKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkOiAocGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIikiLCB0aGlzLCB3ZWJQYWdlLT5wYWdlSUQoKS50
b1VJbnQ2NCgpLCBtX2ZyYW1lLT5mcmFtZUlEKCkpOworICAgIFJFTEVBU0VfTE9HKE5ldHdvcmss
ICIlcCAtIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExv
YWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiKSIsIHRoaXMs
IHdlYlBhZ2UtPnBhZ2VJRCgpLnRvVUludDY0KCksIG1fZnJhbWUtPmZyYW1lSUQoKS50b1VJbnQ2
NCgpKTsKIAogICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4gdXNlckRhdGE7CiAKQEAgLTU4Miw3ICs1
ODIsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkKGNv
bnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAgIGlmICghd2ViUGFnZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgUkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0gV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoRGlkRmFpbExvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9
ICUiIFBSSXU2NCAiKSIsIHRoaXMsIHdlYlBhZ2UtPnBhZ2VJRCgpLnRvVUludDY0KCksIG1fZnJh
bWUtPmZyYW1lSUQoKSk7CisgICAgUkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0gV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiKSIsIHRoaXMsIHdlYlBhZ2UtPnBhZ2VJRCgpLnRvVUludDY0
KCksIG1fZnJhbWUtPmZyYW1lSUQoKS50b1VJbnQ2NCgpKTsKIAogICAgIFJlZlB0cjxBUEk6Ok9i
amVjdD4gdXNlckRhdGE7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggYzhmYjJh
ZjIxMjU2NmM2NDY4NjA3N2EwYzg5YWY4MTA1MzkwYTY4MC4uNjQxYjhjMDY2MzQxMzgwYzA3MDI4
MjBiODc4OWRkMTg1ZThiYjA0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTUy
LDcgKzUyLDcgQEAgcHVibGljOgogICAgIHZvaWQgYXBwbHlUb0RvY3VtZW50TG9hZGVyKFdlYnNp
dGVQb2xpY2llc0RhdGEmJik7CiAKICAgICBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmll
cj4gcGFnZUlEKCkgY29uc3QgZmluYWw7Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQo
KSBjb25zdCBmaW5hbDsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZy
YW1lSUQoKSBjb25zdCBmaW5hbDsKICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25z
dCBmaW5hbDsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmNwcAppbmRleCA3
MzhiZTkyYjkyZGM3M2QyZGY2NzdlZTM0ZWMxMzA4MWE2MGYxYTFjLi5mNmM1NTdkNWYwZmQyMDFk
YmI1MDUxMTQ3ZWJjMjcwYTViNDVjZjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgV2ViQ29va2ll
SmFyOjpXZWJDb29raWVKYXIoKQogCiBTdHJpbmcgV2ViQ29va2llSmFyOjpjb29raWVzKFdlYkNv
cmU6OkRvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwpIGNvbnN0CiB7Ci0gICAgT3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBm
cmFtZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7CiAgICAgaWYgKGF1
dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkgewogICAgICAgICBmcmFtZUlEID0gZnJhbWUt
PmxvYWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKTsKQEAgLTY3LDcgKzY3LDcgQEAgU3RyaW5nIFdl
YkNvb2tpZUphcjo6Y29va2llcyhXZWJDb3JlOjpEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVS
TCYgdXJsKSBjb25zdAogCiB2b2lkIFdlYkNvb2tpZUphcjo6c2V0Q29va2llcyhXZWJDb3JlOjpE
b2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0
cmluZykKIHsKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxG
cmFtZUlkZW50aWZpZXI+IGZyYW1lSUQ7CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBh
Z2VJRDsKICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAg
IGZyYW1lSUQgPSBmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuZnJhbWVJRCgpOwpAQCAtODUsNyAr
ODUsNyBAQCBib29sIFdlYkNvb2tpZUphcjo6Y29va2llc0VuYWJsZWQoY29uc3QgV2ViQ29yZTo6
RG9jdW1lbnQmIGRvY3VtZW50KSBjb25zdAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0ZDo6
cGFpcjxTdHJpbmcsIFdlYkNvcmU6OlNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gV2ViQ29va2llSmFy
Ojpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vz
c2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5m
byYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1l
SUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFdlYkNvcmU6OkluY2x1ZGVTZWN1
cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAorc3RkOjpwYWlyPFN0cmluZywg
V2ViQ29yZTo6U2VjdXJlQ29va2llc0FjY2Vzc2VkPiBXZWJDb29raWVKYXI6OmNvb2tpZVJlcXVl
c3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQsIGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUlu
Zm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9w
dGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29r
aWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAogewogICAgIFN0cmluZyBjb29raWVTdHJp
bmc7CiAgICAgYm9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQgPSBmYWxzZTsKQEAgLTk2LDcgKzk2
LDcgQEAgc3RkOjpwYWlyPFN0cmluZywgV2ViQ29yZTo6U2VjdXJlQ29va2llc0FjY2Vzc2VkPiBX
ZWJDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWEKIAogYm9vbCBXZWJDb29raWVKYXI6OmdldFJh
d0Nvb2tpZXMoY29uc3QgV2ViQ29yZTo6RG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVy
bCwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0CiB7Ci0gICAgT3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBm
cmFtZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7CiAgICAgaWYgKGF1
dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkgewogICAgICAgICBmcmFtZUlEID0gZnJhbWUt
PmxvYWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmgKaW5kZXggNTU5YmQwZTUwYmJlYzM1ZmZiMjU2Yjkx
MmI3YjQ2ZGE5OTRiMmQ0OC4uNWRjYWNkZDk2OGU2YTRiMDYyN2M3ODdjNmRhMWE1MTU0NzFiZjg4
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2ll
SmFyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFy
LmgKQEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAgIFN0cmluZyBjb29raWVzKFdlYkNvcmU6
OkRvY3VtZW50JiwgY29uc3QgVVJMJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBzZXRDb29raWVz
KFdlYkNvcmU6OkRvY3VtZW50JiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJp
bmcpIGZpbmFsOwogICAgIGJvb2wgY29va2llc0VuYWJsZWQoY29uc3QgV2ViQ29yZTo6RG9jdW1l
bnQmKSBjb25zdCBmaW5hbDsKLSAgICBzdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb3JlOjpTZWN1cmVD
b29raWVzQWNjZXNzZWQ+IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFBBTDo6
U2Vzc2lvbklEJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0
ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcykg
Y29uc3QgZmluYWw7CisgICAgc3RkOjpwYWlyPFN0cmluZywgV2ViQ29yZTo6U2VjdXJlQ29va2ll
c0FjY2Vzc2VkPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBQQUw6OlNlc3Np
b25JRCYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZv
JiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9u
YWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2ll
cykgY29uc3QgZmluYWw7CiAgICAgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IFdlYkNvcmU6OkRv
Y3VtZW50JiwgY29uc3QgVVJMJiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mKSBjb25zdCBmaW5h
bDsKICAgICB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBXZWJDb3JlOjpEb2N1bWVudCYsIGNvbnN0
IFVSTCYsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSkgZmluYWw7CiBwcml2YXRlOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCmluZGV4IDYwY2ZkOGQy
YTE3NTRhN2FjZWQ1OGQ2MWRmMTdiZTRjMTQzMTM2OTQuLmYwZWJmZWRiYjJlOTUzYWQwZmMwN2Y5
ZjgxNjYwOWRiOTczNWI2NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJGcmFtZS5jcHAKQEAgLTk1LDEyICs5NSw2IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBERUZJTkVfREVCVUdfT05MWV9HTE9CQUwoV1RGOjpSZWZDb3VudGVkTGVha0NvdW50ZXIs
IHdlYkZyYW1lQ291bnRlciwgKCJXZWJGcmFtZSIpKTsKIAotc3RhdGljIHVpbnQ2NF90IGdlbmVy
YXRlRnJhbWVJRCgpCi17Ci0gICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZUZyYW1lSUQgPSAxOwot
ICAgIHJldHVybiB1bmlxdWVGcmFtZUlEKys7Ci19Ci0KIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0
ZUxpc3RlbmVySUQoKQogewogICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVMaXN0ZW5lcklEID0g
MTsKQEAgLTE0OCw3ICsxNDIsNyBAQCBSZWY8V2ViRnJhbWU+IFdlYkZyYW1lOjpjcmVhdGUoc3Rk
Ojp1bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50PiBmcmFtZUxvYWRlcgogCiBXZWJGcmFt
ZTo6V2ViRnJhbWUoc3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50PiBmcmFtZUxv
YWRlckNsaWVudCkKICAgICA6IG1fZnJhbWVMb2FkZXJDbGllbnQoV1RGTW92ZShmcmFtZUxvYWRl
ckNsaWVudCkpCi0gICAgLCBtX2ZyYW1lSUQoZ2VuZXJhdGVGcmFtZUlEKCkpCisgICAgLCBtX2Zy
YW1lSUQoRnJhbWVJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQogewogICAgIG1fZnJhbWVMb2FkZXJD
bGllbnQtPnNldFdlYkZyYW1lKHRoaXMpOwogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmFk
ZFdlYkZyYW1lKG1fZnJhbWVJRCwgdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViRnJhbWUuaAppbmRleCA3MWIzOGY2MWFiMTk1MDU1YjQ0N2U4N2JmZmY3ZTk2NDA2
ZGVlYTljLi4xZWM1MDc1NDI1N2Y4NjZlYjJhZThlYzRjYjBjNmQxZmZlODY1NmVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKQEAgLTgwLDcgKzgwLDcg
QEAgcHVibGljOgogICAgIFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWUoKSBjb25zdCB7IHJldHVy
biBtX2NvcmVGcmFtZTsgfQogCiAgICAgRnJhbWVJbmZvRGF0YSBpbmZvKCkgY29uc3Q7Ci0gICAg
dWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQorICAgIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9
CiAKICAgICBlbnVtIGNsYXNzIEZvck5hdmlnYXRpb25BY3Rpb24geyBObywgWWVzIH07CiAgICAg
dWludDY0X3Qgc2V0VXBQb2xpY3lMaXN0ZW5lcihXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZp
ZXIsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJiwgRm9yTmF2aWdhdGlvbkFjdGlvbik7
CkBAIC0xODcsNyArMTg3LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJh
bWVMb2FkZXJDbGllbnQ+IG1fZnJhbWVMb2FkZXJDbGllbnQ7CiAgICAgTG9hZExpc3RlbmVyKiBt
X2xvYWRMaXN0ZW5lciB7IG51bGxwdHIgfTsKICAgICAKLSAgICB1aW50NjRfdCBtX2ZyYW1lSUQg
eyAwIH07CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fZnJhbWVJRDsKIAogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiAgICAgdWludDY0X3QgbV9maXJzdExheWVyVHJlZVRyYW5zYWN0
aW9uSURBZnRlckRpZENvbW1pdExvYWQgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcAppbmRleCBmMjhkZTU2OGVjNTE1YTUxYzM4
ZTA5Y2FhYzQ0ZWE3N2YyMWQzZGJlLi4xZjAxNmFlYWRhOTk2Zjk2M2RkNWU0ZWZiOTZkMGNhZmU2
MGFkNjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJ
bnNwZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYklu
c3BlY3Rvci5jcHAKQEAgLTIwOSw3ICsyMDksNyBAQCB2b2lkIFdlYkluc3BlY3Rvcjo6c2hvd1Jl
c291cmNlcygpCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViSW5zcGVjdG9yOjpzaG93TWFpblJlc291
cmNlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJZGVudGlmaWVyKQordm9pZCBXZWJJbnNwZWN0b3I6
OnNob3dNYWluUmVzb3VyY2VGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
ZGVudGlmaWVyKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLndlYkZyYW1lKGZyYW1lSWRlbnRpZmllcik7CiAgICAgaWYgKCFmcmFtZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmgKaW5kZXggNDg5ZTQx
YzA3NGZjMzYzYjM4MDExNjE3YjRjNzU4MjRkZjU5ZDQ3Yi4uMjZiODllNTIyNzc5NzhkNTNhMzNm
ZTNjNzExNWVhZWJiYjM4Mjk1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViSW5zcGVjdG9yLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJBUElPYmpl
Y3QuaCIKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVy
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYv
Tm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNjAs
NyArNjEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzaG93Q29uc29sZSgpOwogICAgIHZvaWQgc2hv
d1Jlc291cmNlcygpOwogCi0gICAgdm9pZCBzaG93TWFpblJlc291cmNlRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIHNob3dNYWluUmVzb3VyY2VGb3JGcmFtZShX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogCiAgICAgdm9pZCBzZXRBdHRhY2hlZChib29sIGF0
dGFjaGVkKSB7IG1fYXR0YWNoZWQgPSBhdHRhY2hlZDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IubWVzc2FnZXMuaW4KaW5k
ZXggYjZmM2MwMWIyNDIyMjZhMjBmYjQ5YzU0MjIwM2E2ZGNkZTIyMWU2OS4uZGFmNzRiNWU2YjA0
MzBiNmIwY2EzYmUyNjBmNWZmYWJlY2Q2NTQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbgpAQCAtMjks
NyArMjksNyBAQCBtZXNzYWdlcyAtPiBXZWJJbnNwZWN0b3IgewogICAgIFNob3dDb25zb2xlKCkK
ICAgICBTaG93UmVzb3VyY2VzKCkKIAotICAgIFNob3dNYWluUmVzb3VyY2VGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlkZW50aWZpZXIpCisgICAgU2hvd01haW5SZXNvdXJjZUZvckZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlkZW50aWZpZXIpCiAKICAgICBPcGVuSW5OZXdUYWIo
U3RyaW5nIHVybCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAppbmRleCAxMzM2NTcwZDkzYWE1MTEwNjk3ODU2MTE3MDI2MDg5M2I4YTNjZGI0Li4wMWZm
MWE0ZjQ1N2U1MzkzNTYxNDMyNGEwOTQ4ODQwM2E3NTA1NWExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTQ5Nyw3ICsxNDk3LDcgQEAgdm9p
ZCBXZWJQYWdlOjpzdXNwZW5kRm9yUHJvY2Vzc1N3YXAoKQogICAgIHNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6RGlkU3VzcGVuZEFmdGVyUHJvY2Vzc1N3YXAoKSk7CiB9CiAKLXZvaWQgV2Vi
UGFnZTo6bG9hZFVSTEluRnJhbWUoVVJMJiYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCB1
aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlOjpsb2FkVVJMSW5GcmFtZShVUkwmJiB1cmws
IGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAg
IFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1l
SUQpOwogICAgIGlmICghZnJhbWUpCkBAIC0xNTA2LDcgKzE1MDYsNyBAQCB2b2lkIFdlYlBhZ2U6
OmxvYWRVUkxJbkZyYW1lKFVSTCYmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgdWludDY0
X3QgZnJhbWVJRAogICAgIGZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkubG9hZChGcmFtZUxv
YWRSZXF1ZXN0KCpmcmFtZS0+Y29yZUZyYW1lKCksIFJlc291cmNlUmVxdWVzdCh1cmwsIHJlZmVy
cmVyKSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpKTsKIH0K
IAotdm9pZCBXZWJQYWdlOjpsb2FkRGF0YUluRnJhbWUoSVBDOjpEYXRhUmVmZXJlbmNlJiYgZGF0
YSwgU3RyaW5nJiYgTUlNRVR5cGUsIFN0cmluZyYmIGVuY29kaW5nTmFtZSwgVVJMJiYgYmFzZVVS
TCwgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZTo6bG9hZERhdGFJbkZyYW1lKElQQzo6
RGF0YVJlZmVyZW5jZSYmIGRhdGEsIFN0cmluZyYmIE1JTUVUeXBlLCBTdHJpbmcmJiBlbmNvZGlu
Z05hbWUsIFVSTCYmIGJhc2VVUkwsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIFdl
YkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQp
OwogICAgIGlmICghZnJhbWUpCkBAIC0xNjE0LDcgKzE2MTQsNyBAQCB2b2lkIFdlYlBhZ2U6Om5h
dmlnYXRlVG9QREZMaW5rV2l0aFNpbXVsYXRlZENsaWNrKGNvbnN0IFN0cmluZyYgdXJsLCBJbnRQ
b2ludCBkbwogICAgIG1haW5GcmFtZS0+bG9hZGVyKCkudXJsU2VsZWN0ZWQobWFpbkZyYW1lRG9j
dW1lbnQtPmNvbXBsZXRlVVJMKHVybCksIGVtcHR5U3RyaW5nKCksIG1vdXNlRXZlbnQucHRyKCks
IExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIFNob3VsZFNlbmRSZWZl
cnJlcjo6TmV2ZXJTZW5kUmVmZXJyZXIsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNo
b3VsZE5vdEFsbG93KTsKIH0KIAotdm9pZCBXZWJQYWdlOjpzdG9wTG9hZGluZ0ZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2U6OnN0b3BMb2FkaW5nRnJhbWUoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQpCiB7CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCFmcmFtZSkKQEAgLTMyMzQsNyArMzIz
NCw3IEBAIHZvaWQgV2ViUGFnZTo6c2V0U2Vzc2lvbklEKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKICAgICBtX3BhZ2UtPnNldFNlc3Npb25JRChzZXNzaW9uSUQpOwogfQogCi12b2lkIFdlYlBh
Z2U6OmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbih1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBs
aXN0ZW5lcklELCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgUG9saWN5QWN0aW9u
IHBvbGljeUFjdGlvbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBEb3dubG9hZElEJiBk
b3dubG9hZElELCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2ll
cykKK3ZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCB1aW50NjRfdCBsaXN0ZW5lcklELCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRl
bnRpZmllciwgUG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBjb25zdCBEb3dubG9hZElEJiBkb3dubG9hZElELCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNE
YXRhPiYmIHdlYnNpdGVQb2xpY2llcykKIHsKICAgICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBpZiAoIWZyYW1lKQpAQCAt
MzI0Miw3ICszMjQyLDcgQEAgdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24o
dWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCwgUG8KICAgICBmcmFtZS0+ZGlk
UmVjZWl2ZVBvbGljeURlY2lzaW9uKGxpc3RlbmVySUQsIGlkZW50aWZpZXIsIHBvbGljeUFjdGlv
biwgbmF2aWdhdGlvbklELCBkb3dubG9hZElELCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcykpOwog
fQogCi12b2lkIFdlYlBhZ2U6OmNvbnRpbnVlV2lsbFN1Ym1pdEZvcm0odWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgbGlzdGVuZXJJRCkKK3ZvaWQgV2ViUGFnZTo6Y29udGludWVXaWxsU3VibWl0
Rm9ybShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCkKIHsKICAg
ICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFt
ZUlEKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtMzM4NCw3ICszMzg0LDcgQEAgdm9pZCBXZWJQYWdl
OjpydW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3JsZChjb25zdCBTdHJpbmcmIHNjcmlw
dCwgYm9vbCBmb3IKICAgICBydW5KYXZhU2NyaXB0KG1haW5XZWJGcmFtZSgpLCBzY3JpcHQsIGZv
cmNlVXNlckdlc3R1cmUsIHdvcmxkTmFtZSwgY2FsbGJhY2tJRCk7CiB9CiAKLXZvaWQgV2ViUGFn
ZTo6cnVuSmF2YVNjcmlwdEluRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBz
Y3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9p
ZCBXZWJQYWdlOjpydW5KYXZhU2NyaXB0SW5GcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
Y29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgQ2FsbGJhY2tJRCBj
YWxsYmFja0lEKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIEFTU0VSVChtYWluV2ViRnJhbWUoKSAhPSBmcmFt
ZSk7CkBAIC0zNDQ1LDcgKzM0NDUsNyBAQCB2b2lkIFdlYlBhZ2U6OmdldFNlbGVjdGlvbk9yQ29u
dGVudHNBc1N0cmluZyhDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgc2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpTdHJpbmdDYWxsYmFjayhyZXN1bHRTdHJpbmcsIGNhbGxiYWNrSUQpKTsK
IH0KIAotdm9pZCBXZWJQYWdlOjpnZXRTb3VyY2VGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBD
YWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYlBhZ2U6OmdldFNvdXJjZUZvckZyYW1lKEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgU3Ry
aW5nIHJlc3VsdFN0cmluZzsKICAgICBpZiAoV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCkpCkBAIC0zNDU0LDcgKzM0NTQsNyBAQCB2b2lk
IFdlYlBhZ2U6OmdldFNvdXJjZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENhbGxiYWNrSUQg
Y2FsbGJhY2tJRCkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0cmluZ0NhbGxi
YWNrKHJlc3VsdFN0cmluZywgY2FsbGJhY2tJRCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OmdldE1h
aW5SZXNvdXJjZURhdGFPZkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENhbGxiYWNrSUQgY2FsbGJh
Y2tJRCkKK3ZvaWQgV2ViUGFnZTo6Z2V0TWFpblJlc291cmNlRGF0YU9mRnJhbWUoRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBSZWZQdHI8U2hh
cmVkQnVmZmVyPiBidWZmZXI7CiAgICAgaWYgKFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpKSB7CkBAIC0zNDg1LDcgKzM0ODUsNyBAQCBz
dGF0aWMgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gcmVzb3VyY2VEYXRhRm9yRnJhbWUoRnJhbWUqIGZy
YW1lLCBjb25zdCBVUkwmIHJlc291cgogICAgIHJldHVybiAmc3VicmVzb3VyY2UtPmRhdGEoKTsK
IH0KIAotdm9pZCBXZWJQYWdlOjpnZXRSZXNvdXJjZURhdGFGcm9tRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgY29uc3QgU3RyaW5nJiByZXNvdXJjZVVSTFN0cmluZywgQ2FsbGJhY2tJRCBjYWxsYmFj
a0lEKQordm9pZCBXZWJQYWdlOjpnZXRSZXNvdXJjZURhdGFGcm9tRnJhbWUoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VVUkxTdHJpbmcsIENhbGxiYWNrSUQg
Y2FsbGJhY2tJRCkKIHsKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXI7CiAgICAgaWYg
KGF1dG8qIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCkp
IHsKQEAgLTM0OTksNyArMzQ5OSw3IEBAIHZvaWQgV2ViUGFnZTo6Z2V0UmVzb3VyY2VEYXRhRnJv
bUZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VVCiAgICAgc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEYXRhQ2FsbGJhY2soZGF0YVJlZmVyZW5jZSwgY2Fs
bGJhY2tJRCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OmdldFdlYkFyY2hpdmVPZkZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6Z2V0V2Vi
QXJjaGl2ZU9mRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENhbGxiYWNrSUQgY2FsbGJh
Y2tJRCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBk
YXRhOwpAQCAtMzgwMiwxMyArMzgwMiwxMyBAQCBXZWJGdWxsU2NyZWVuTWFuYWdlciogV2ViUGFn
ZTo6ZnVsbFNjcmVlbk1hbmFnZXIoKQogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZTo6YWRkQ29u
c29sZU1lc3NhZ2UodWludDY0X3QgZnJhbWVJRCwgTWVzc2FnZVNvdXJjZSBtZXNzYWdlU291cmNl
LCBNZXNzYWdlTGV2ZWwgbWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVpbnQ2
NF90IHJlcXVlc3RJRCkKK3ZvaWQgV2ViUGFnZTo6YWRkQ29uc29sZU1lc3NhZ2UoRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIE1lc3NhZ2VTb3VyY2UgbWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVs
IG1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1aW50NjRfdCByZXF1ZXN0SUQp
CiB7CiAgICAgaWYgKGF1dG8qIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJh
bWUoZnJhbWVJRCkpCiAgICAgICAgIGZyYW1lLT5hZGRDb25zb2xlTWVzc2FnZShtZXNzYWdlU291
cmNlLCBtZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIHJlcXVlc3RJRCk7CiB9CiAKLXZvaWQgV2ViUGFn
ZTo6c2VuZENTUFZpb2xhdGlvblJlcG9ydCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVUkwmIHJl
cG9ydFVSTCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcG9ydERhdGEpCit2b2lkIFdlYlBh
Z2U6OnNlbmRDU1BWaW9sYXRpb25SZXBvcnQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0
IFVSTCYgcmVwb3J0VVJMLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVwb3J0RGF0YSkKIHsK
ICAgICBhdXRvIHJlcG9ydCA9IHJlcG9ydERhdGEudGFrZURhdGEoKTsKICAgICBpZiAoIXJlcG9y
dCkKQEAgLTM4MTcsNyArMzgxNyw3IEBAIHZvaWQgV2ViUGFnZTo6c2VuZENTUFZpb2xhdGlvblJl
cG9ydCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgSVBDCiAgICAgICAg
IFBpbmdMb2FkZXI6OnNlbmRWaW9sYXRpb25SZXBvcnQoKmZyYW1lLT5jb3JlRnJhbWUoKSwgcmVw
b3J0VVJMLCByZXBvcnQucmVsZWFzZU5vbk51bGwoKSwgVmlvbGF0aW9uUmVwb3J0VHlwZTo6Q29u
dGVudFNlY3VyaXR5UG9saWN5KTsKIH0KIAotdm9pZCBXZWJQYWdlOjplbnF1ZXVlU2VjdXJpdHlQ
b2xpY3lWaW9sYXRpb25FdmVudCh1aW50NjRfdCBmcmFtZUlELCBTZWN1cml0eVBvbGljeVZpb2xh
dGlvbkV2ZW50OjpJbml0JiYgZXZlbnRJbml0KQordm9pZCBXZWJQYWdlOjplbnF1ZXVlU2VjdXJp
dHlQb2xpY3lWaW9sYXRpb25FdmVudChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU2VjdXJpdHlQ
b2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmIGV2ZW50SW5pdCkKIHsKICAgICBhdXRvKiBmcmFt
ZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlmICgh
ZnJhbWUpCkBAIC00NjgwLDcgKzQ2ODAsNyBAQCB2b2lkIFdlYlBhZ2U6OmVmZmVjdGl2ZUFwcGVh
cmFuY2VEaWRDaGFuZ2UoYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSwgYm9vbCB1c2VFbGV2YQogfQog
I2VuZGlmCiAKLXZvaWQgV2ViUGFnZTo6YmVnaW5QcmludGluZyh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBQcmludEluZm8mIHByaW50SW5mbykKK3ZvaWQgV2ViUGFnZTo6YmVnaW5QcmludGluZyhG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8pCiB7CiAg
ICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJh
bWVJRCk7CiAgICAgaWYgKCFmcmFtZSkKQEAgLTQ3MjQsNyArNDcyNCw3IEBAIHZvaWQgV2ViUGFn
ZTo6ZW5kUHJpbnRpbmcoKQogICAgIH0KIH0KIAotdm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNG
b3JQcmludGluZyh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywg
Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmlu
dGluZyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8s
IENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBWZWN0b3I8SW50UmVjdD4gcmVzdWx0UGFn
ZVJlY3RzOwogICAgIGRvdWJsZSByZXN1bHRUb3RhbFNjYWxlRmFjdG9yRm9yUHJpbnRpbmcgPSAx
OwpAQCAtNDczMyw3ICs0NzMzLDcgQEAgdm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmlu
dGluZyh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW4KICAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNvbXB1dGVkUGFnZXNDYWxsYmFjayhyZXN1bHRQYWdl
UmVjdHMsIHJlc3VsdFRvdGFsU2NhbGVGYWN0b3JGb3JQcmludGluZywgY29tcHV0ZWRQYWdlTWFy
Z2luLCBjYWxsYmFja0lEKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJp
bnRpbmdJbXBsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBW
ZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4mIHJlc3VsdFBhZ2VSZWN0cywgZG91YmxlJiByZXN1bHRU
b3RhbFNjYWxlRmFjdG9yRm9yUHJpbnRpbmcsIEZsb2F0Qm94RXh0ZW50JiBjb21wdXRlZFBhZ2VN
YXJnaW4pCit2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nSW1wbChGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIFZlY3RvcjxXZWJD
b3JlOjpJbnRSZWN0PiYgcmVzdWx0UGFnZVJlY3RzLCBkb3VibGUmIHJlc3VsdFRvdGFsU2NhbGVG
YWN0b3JGb3JQcmludGluZywgRmxvYXRCb3hFeHRlbnQmIGNvbXB1dGVkUGFnZU1hcmdpbikKIHsK
ICAgICBBU1NFUlQocmVzdWx0UGFnZVJlY3RzLmlzRW1wdHkoKSk7CiAKQEAgLTQ3NTYsNyArNDc1
Niw3IEBAIHZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdJbXBsKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpCiB9CiAKICNpZiBQTEFURk9STShDT0NPQSkK
LXZvaWQgV2ViUGFnZTo6ZHJhd1JlY3RUb0ltYWdlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFBy
aW50SW5mbyYgcHJpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0LCBjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJiBpbWFnZVNpemUsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6
ZHJhd1JlY3RUb0ltYWdlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBQcmludEluZm8m
IHByaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYg
aW1hZ2VTaXplLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgV2ViRnJhbWUqIGZyYW1l
ID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgRnJhbWUq
IGNvcmVGcmFtZSA9IGZyYW1lID8gZnJhbWUtPmNvcmVGcmFtZSgpIDogMDsKQEAgLTQ4MDYsMTQg
KzQ4MDYsMTQgQEAgdm9pZCBXZWJQYWdlOjpkcmF3UmVjdFRvSW1hZ2UodWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIGNvbnMKICAgICBzZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkltYWdlQ2FsbGJhY2soaGFuZGxlLCBjYWxsYmFja0lEKSk7CiB9CiAKLXZv
aWQgV2ViUGFnZTo6ZHJhd1BhZ2VzVG9QREYodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJ
bmZvJiBwcmludEluZm8sIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgQ2FsbGJhY2tJ
RCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdlOjpkcmF3UGFnZXNUb1BERihGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIHVpbnQzMl90IGZpcnN0LCB1
aW50MzJfdCBjb3VudCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIFJldGFpblB0cjxD
Rk11dGFibGVEYXRhUmVmPiBwZGZQYWdlRGF0YTsKICAgICBkcmF3UGFnZXNUb1BERkltcGwoZnJh
bWVJRCwgcHJpbnRJbmZvLCBmaXJzdCwgY291bnQsIHBkZlBhZ2VEYXRhKTsKICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRhdGFDYWxsYmFjayh7IENGRGF0YUdldEJ5dGVQdHIocGRm
UGFnZURhdGEuZ2V0KCkpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KENGRGF0YUdldExlbmd0aChwZGZQ
YWdlRGF0YS5nZXQoKSkpIH0sIGNhbGxiYWNrSUQpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpkcmF3
UGFnZXNUb1BERkltcGwodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludElu
Zm8sIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgUmV0YWluUHRyPENGTXV0YWJsZURh
dGFSZWY+JiBwZGZQYWdlRGF0YSkKK3ZvaWQgV2ViUGFnZTo6ZHJhd1BhZ2VzVG9QREZJbXBsKEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgdWludDMy
X3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBSZXRhaW5QdHI8Q0ZNdXRhYmxlRGF0YVJlZj4mIHBk
ZlBhZ2VEYXRhKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBmcmFtZSA/IGZy
YW1lLT5jb3JlRnJhbWUoKSA6IDA7CkBAIC00ODY0LDcgKzQ4NjQsNyBAQCB2b2lkIFdlYlBhZ2U6
OmRyYXdQYWdlc1RvUERGSW1wbCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHBy
aW50SW5mbywgdQogfQogCiAjZWxpZiBQTEFURk9STShHVEspCi12b2lkIFdlYlBhZ2U6OmRyYXdQ
YWdlc0ZvclByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJ
bmZvLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYlBhZ2U6OmRyYXdQYWdlc0ZvclBy
aW50aW5nKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5m
bywgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIGJlZ2luUHJpbnRpbmcoZnJhbWVJRCwg
cHJpbnRJbmZvKTsKICAgICBpZiAobV9wcmludENvbnRleHQgJiYgbV9wcmludE9wZXJhdGlvbikg
ewpAQCAtNjUwMiw3ICs2NTAyLDcgQEAgdm9pZCBXZWJQYWdlOjpzZXRJc1N1c3BlbmRlZChib29s
IHN1c3BlbmRlZCkKICAgICBzdXNwZW5kRm9yUHJvY2Vzc1N3YXAoKTsKIH0KIAotdm9pZCBXZWJQ
YWdlOjpmcmFtZUJlY2FtZVJlbW90ZSh1aW50NjRfdCBmcmFtZUlELCBHbG9iYWxGcmFtZUlkZW50
aWZpZXImJiByZW1vdGVGcmFtZUlkZW50aWZpZXIsIEdsb2JhbFdpbmRvd0lkZW50aWZpZXImJiBy
ZW1vdGVXaW5kb3dJZGVudGlmaWVyKQordm9pZCBXZWJQYWdlOjpmcmFtZUJlY2FtZVJlbW90ZShG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgR2xvYmFsRnJhbWVJZGVudGlmaWVyJiYgcmVtb3RlRnJh
bWVJZGVudGlmaWVyLCBHbG9iYWxXaW5kb3dJZGVudGlmaWVyJiYgcmVtb3RlV2luZG93SWRlbnRp
ZmllcikKIHsKICAgICBSZWZQdHI8V2ViRnJhbWU+IGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCFmcmFtZSkKQEAgLTY1MzQsMTIgKzY1
MzQsMTIgQEAgdm9pZCBXZWJQYWdlOjpmcmFtZUJlY2FtZVJlbW90ZSh1aW50NjRfdCBmcmFtZUlE
LCBHbG9iYWxGcmFtZUlkZW50aWZpZXImJiByZW1vdGUKIH0KIAogI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCi12b2lkIFdlYlBhZ2U6Omhhc1N0b3JhZ2VBY2Nlc3MoUmVnaXN0
cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgUmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFt
ZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZTo6aGFzU3RvcmFnZUFjY2VzcyhSZWdp
c3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZy
YW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6SGFz
U3RvcmFnZUFjY2VzcyhzZXNzaW9uSUQoKSwgV1RGTW92ZShzdWJGcmFtZURvbWFpbiksIFdURk1v
dmUodG9wRnJhbWVEb21haW4pLCBmcmFtZUlELCBtX3BhZ2VJRCksIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhSZWdp
c3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZy
YW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNv
cmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0
V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlOjpyZXF1ZXN0U3Rv
cmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdpc3RyYWJs
ZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgV2ViQ29y
ZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24oKS5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6UmVxdWVzdFN0b3JhZ2VBY2Nlc3Moc2Vzc2lvbklEKCksIFdU
Rk1vdmUoc3ViRnJhbWVEb21haW4pLCBXVEZNb3ZlKHRvcEZyYW1lRG9tYWluKSwgZnJhbWVJRCwg
bV9wYWdlSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CkBAIC02NTU1LDcgKzY1
NTUsNyBAQCB2b2lkIFdlYlBhZ2U6Ondhc0xvYWRlZFdpdGhEYXRhVHJhbnNmZXJGcm9tUHJldmFs
ZW50UmVzb3VyY2UoKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQot
dm9pZCBXZWJQYWdlOjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNz
KHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIG9yaWdpbiwg
Ym9vbCBtYXlQcm9tcHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRGV2aWNlT3JpZW50YXRpb25P
ck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBh
Z2U6OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIG9yaWdpbiwgYm9v
bCBtYXlQcm9tcHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRGV2aWNlT3JpZW50YXRpb25Pck1v
dGlvblBlcm1pc3Npb25TdGF0ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3VsZEFsbG93RGV2aWNlT3Jp
ZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoZnJhbWVJRCwgV1RGTW92ZShvcmlnaW4pLCBtYXlQcm9t
cHQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggNzA5OTI3MDE0MjQzYzExMjhmZjZmYWM5ZTRl
YTkyZGQ2NTEyMmM2Zi4uMWQ5NzFmNGEzMzg2MTFlOTQwOWIzNGYxZTgxZGVlNTBjNzYyZmNiZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMzQ2LDkg
KzM0Niw5IEBAIHB1YmxpYzoKICAgICBXZWJGdWxsU2NyZWVuTWFuYWdlciogZnVsbFNjcmVlbk1h
bmFnZXIoKTsKICNlbmRpZgogCi0gICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZSh1aW50NjRfdCBm
cmFtZUlELCBNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYsIHVpbnQ2
NF90IHJlcXVlc3RJRCA9IDApOwotICAgIHZvaWQgc2VuZENTUFZpb2xhdGlvblJlcG9ydCh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5j
ZSYmKTsKLSAgICB2b2lkIGVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KHVpbnQ2
NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQm
Jik7CisgICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiwgdWludDY0X3QgcmVx
dWVzdElEID0gMCk7CisgICAgdm9pZCBzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgY29uc3QgVVJMJiByZXBvcnRVUkwsIElQQzo6Rm9ybURhdGFSZWZlcmVu
Y2UmJik7CisgICAgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnQ6OkluaXQmJik7CiAKICAgICAvLyAtLSBDYWxsZWQgYnkgdGhlIERyYXdpbmdBcmVhLgogICAg
IC8vIEZJWE1FOiBXZSBjb3VsZCBnZW5lcmljaXplIHRoZXNlIGludG8gYSBEcmF3aW5nQXJlYSBj
bGllbnQgaW50ZXJmYWNlLiBXb3VsZCB0aGF0IGJlIGJlbmVmaWNpYWw/CkBAIC01MjIsNyArNTIy
LDcgQEAgcHVibGljOgogICAgIFdlYkNvcmU6OkNvbG9yIHVuZGVybGF5Q29sb3IoKSBjb25zdCB7
IHJldHVybiBtX3VuZGVybGF5Q29sb3I7IH0KIAogICAgIHZvaWQgc3RvcExvYWRpbmcoKTsKLSAg
ICB2b2lkIHN0b3BMb2FkaW5nRnJhbWUodWludDY0X3QgZnJhbWVJRCk7CisgICAgdm9pZCBzdG9w
TG9hZGluZ0ZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAgICAgYm9vbCBkZWZlcnNM
b2FkaW5nKCkgY29uc3Q7CiAgICAgdm9pZCBzZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJMb2Fk
aW5nKTsKIApAQCAtNzY5LDcgKzc2OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbmZpcm1Db21w
b3NpdGlvbihjb25zdCBTdHJpbmcmIHRleHQsIGludDY0X3Qgc2VsZWN0aW9uU3RhcnQsIGludDY0
X3Qgc2VsZWN0aW9uTGVuZ3RoKTsKICAgICB2b2lkIGNhbmNlbENvbXBvc2l0aW9uKCk7CiAKLSAg
ICB2b2lkIGNvbGxhcHNlU2VsZWN0aW9uSW5GcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsKKyAgICB2
b2lkIGNvbGxhcHNlU2VsZWN0aW9uSW5GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwog
ICAgIHZvaWQgc2hvd0Vtb2ppUGlja2VyKFdlYkNvcmU6OkZyYW1lJik7CiAKICAgICB2b2lkIGdl
dENlbnRlckZvclpvb21HZXN0dXJlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBjZW50ZXJJblZp
ZXdDb29yZGluYXRlcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpJbnRQb2ludCYm
KT4mJik7CkBAIC04NjIsMjMgKzg2MiwyMyBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6RHJhZ1Nv
dXJjZUFjdGlvbiBhbGxvd2VkRHJhZ1NvdXJjZUFjdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX2Fs
bG93ZWREcmFnU291cmNlQWN0aW9uczsgfQogI2VuZGlmCiAKLSAgICB2b2lkIGJlZ2luUHJpbnRp
bmcodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJik7CisgICAgdm9pZCBiZWdpblBy
aW50aW5nKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJik7CiAgICAg
dm9pZCBlbmRQcmludGluZygpOwotICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiwgQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBj
b21wdXRlUGFnZXNGb3JQcmludGluZ0ltcGwodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJ
bmZvJiwgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+JiBwYWdlUmVjdHMsIGRvdWJsZSYgdG90YWxT
Y2FsZUZhY3RvciwgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIGNvbXB1dGVkTWFyZ2luKTsKKyAg
ICB2b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
Y29uc3QgUHJpbnRJbmZvJiwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBjb21wdXRlUGFnZXNGb3JQ
cmludGluZ0ltcGwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mLCBW
ZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4mIHBhZ2VSZWN0cywgZG91YmxlJiB0b3RhbFNjYWxlRmFj
dG9yLCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgY29tcHV0ZWRNYXJnaW4pOwogCiAjaWYgUExB
VEZPUk0oQ09DT0EpCi0gICAgdm9pZCBkcmF3UmVjdFRvSW1hZ2UodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgUHJpbnRJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6
OkludFNpemUmLCBDYWxsYmFja0lEKTsKLSAgICB2b2lkIGRyYXdQYWdlc1RvUERGKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3Vu
dCwgQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBkcmF3UGFnZXNUb1BERkltcGwodWludDY0X3QgZnJh
bWVJRCwgY29uc3QgUHJpbnRJbmZvJiwgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBS
ZXRhaW5QdHI8Q0ZNdXRhYmxlRGF0YVJlZj4mIHBkZlBhZ2VEYXRhKTsKKyAgICB2b2lkIGRyYXdS
ZWN0VG9JbWFnZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYsIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgQ2FsbGJhY2tJ
RCk7CisgICAgdm9pZCBkcmF3UGFnZXNUb1BERihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNv
bnN0IFByaW50SW5mbyYsIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgQ2FsbGJhY2tJ
RCk7CisgICAgdm9pZCBkcmF3UGFnZXNUb1BERkltcGwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBjb25zdCBQcmludEluZm8mLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIFJldGFp
blB0cjxDRk11dGFibGVEYXRhUmVmPiYgcGRmUGFnZURhdGEpOwogI2VuZGlmCiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQotICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3
VG9QREYodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiwgQ2FsbGJhY2tJRCwgTWVz
c2FnZXM6OldlYlBhZ2U6OkNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGOjpEZWxh
eWVkUmVwbHkmJik7CisgICAgdm9pZCBjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BE
RihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYsIENhbGxiYWNrSUQs
IE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERjo6
RGVsYXllZFJlcGx5JiYpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShHVEspCi0gICAgdm9pZCBk
cmF3UGFnZXNGb3JQcmludGluZyh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mLCBD
YWxsYmFja0lEKTsKKyAgICB2b2lkIGRyYXdQYWdlc0ZvclByaW50aW5nKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBkaWRG
aW5pc2hQcmludE9wZXJhdGlvbihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgQ2FsbGJh
Y2tJRCk7CiAjZW5kaWYKIApAQCAtMTEzMSwxMyArMTEzMSwxMyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBmbHVzaFBlbmRpbmdFZGl0b3JTdGF0ZVVwZGF0ZSgpOwogCiAjaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKLSAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4mJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiYmIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBXZWJDb3JlOjpTdG9yYWdl
QWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKTsKKyAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdl
QWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2Fz
R3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJik7CiAgICAg
dm9pZCB3YXNMb2FkZWRXaXRoRGF0YVRyYW5zZmVyRnJvbVByZXZhbGVudFJlc291cmNlKCk7CiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgdm9pZCBzaG91bGRB
bGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKHVpbnQ2NF90IGZyYW1lSUQsIFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBib29sIG1heVByb21wdCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0
YXRlKT4mJik7CisgICAgdm9pZCBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9u
QWNjZXNzKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiYsIGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRl
dmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmKTsKICNlbmRpZgogCiAg
ICAgdm9pZCBzaG93U2hhcmVTaGVldChXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJMJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFjayk7CkBAIC0xMzU2LDggKzEz
NTYsOCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBib29sIHNjcm9sbChXZWJDb3JlOjpQYWdlKiwg
V2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uLCBXZWJDb3JlOjpTY3JvbGxHcmFudWxhcml0eSk7CiAg
ICAgc3RhdGljIGJvb2wgbG9naWNhbFNjcm9sbChXZWJDb3JlOjpQYWdlKiwgV2ViQ29yZTo6U2Ny
b2xsTG9naWNhbERpcmVjdGlvbiwgV2ViQ29yZTo6U2Nyb2xsR3JhbnVsYXJpdHkpOwogCi0gICAg
dm9pZCBsb2FkVVJMSW5GcmFtZShVUkwmJiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgdWludDY0
X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBsb2FkRGF0YUluRnJhbWUoSVBDOjpEYXRhUmVmZXJlbmNl
JiYsIFN0cmluZyYmIE1JTUVUeXBlLCBTdHJpbmcmJiBlbmNvZGluZ05hbWUsIFVSTCYmIGJhc2VV
UkwsIHVpbnQ2NF90IGZyYW1lSUQpOworICAgIHZvaWQgbG9hZFVSTEluRnJhbWUoVVJMJiYsIGNv
bnN0IFN0cmluZyYgcmVmZXJyZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9p
ZCBsb2FkRGF0YUluRnJhbWUoSVBDOjpEYXRhUmVmZXJlbmNlJiYsIFN0cmluZyYmIE1JTUVUeXBl
LCBTdHJpbmcmJiBlbmNvZGluZ05hbWUsIFVSTCYmIGJhc2VVUkwsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcik7CiAKICAgICBlbnVtIGNsYXNzIFdhc1Jlc3RvcmVkQnlBUElSZXF1ZXN0IHsgTm8s
IFllcyB9OwogICAgIHZvaWQgcmVzdG9yZVNlc3Npb25JbnRlcm5hbChjb25zdCBWZWN0b3I8QmFj
a0ZvcndhcmRMaXN0SXRlbVN0YXRlPiYsIFdhc1Jlc3RvcmVkQnlBUElSZXF1ZXN0LCBXZWJCYWNr
Rm9yd2FyZExpc3RQcm94eTo6T3ZlcndyaXRlRXhpc3RpbmdJdGVtKTsKQEAgLTEzODksMTYgKzEz
ODksMTYgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoTUhUTUwpCiAgICAgdm9pZCBnZXRDb250ZW50
c0FzTUhUTUxEYXRhKENhbGxiYWNrSUQpOwogI2VuZGlmCi0gICAgdm9pZCBnZXRNYWluUmVzb3Vy
Y2VEYXRhT2ZGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDYWxsYmFja0lEKTsKLSAgICB2b2lkIGdl
dFJlc291cmNlRGF0YUZyb21GcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHJl
c291cmNlVVJMLCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIGdldE1haW5SZXNvdXJjZURhdGFPZkZy
YW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBnZXRS
ZXNvdXJjZURhdGFGcm9tRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIHJlc291cmNlVVJMLCBDYWxsYmFja0lEKTsKICAgICB2b2lkIGdldFJlbmRlclRyZWVFeHRl
cm5hbFJlcHJlc2VudGF0aW9uKENhbGxiYWNrSUQpOwogICAgIHZvaWQgZ2V0U2VsZWN0aW9uT3JD
b250ZW50c0FzU3RyaW5nKENhbGxiYWNrSUQpOwogICAgIHZvaWQgZ2V0U2VsZWN0aW9uQXNXZWJB
cmNoaXZlRGF0YShDYWxsYmFja0lEKTsKLSAgICB2b2lkIGdldFNvdXJjZUZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIENhbGxiYWNrSUQpOwotICAgIHZvaWQgZ2V0V2ViQXJjaGl2ZU9mRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBnZXRTb3VyY2VGb3JGcmFt
ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENhbGxiYWNrSUQpOworICAgIHZvaWQgZ2V0V2Vi
QXJjaGl2ZU9mRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBDYWxsYmFja0lEKTsKICAg
ICB2b2lkIHJ1bkphdmFTY3JpcHQoV2ViRnJhbWUqLCBjb25zdCBTdHJpbmcmLCBib29sIGZvcmNl
VXNlckdlc3R1cmUsIGNvbnN0IE9wdGlvbmFsPFN0cmluZz4mIHdvcmxkTmFtZSwgQ2FsbGJhY2tJ
RCk7CiAgICAgdm9pZCBydW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3JsZChjb25zdCBT
dHJpbmcmLCBib29sIGZvcmNlVXNlckdlc3R1cmUsIGNvbnN0IE9wdGlvbmFsPFN0cmluZz4mIHdv
cmxkTmFtZSwgQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBydW5KYXZhU2NyaXB0SW5GcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmLCBib29sIGZvcmNlVXNlckdlc3R1cmUsIENhbGxi
YWNrSUQpOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sIGZvcmNlVXNlckdlc3R1cmUsIENhbGxiYWNrSUQp
OwogICAgIHZvaWQgZm9yY2VSZXBhaW50KENhbGxiYWNrSUQpOwogICAgIHZvaWQgdGFrZVNuYXBz
aG90KFdlYkNvcmU6OkludFJlY3Qgc25hcHNob3RSZWN0LCBXZWJDb3JlOjpJbnRTaXplIGJpdG1h
cFNpemUsIHVpbnQzMl90IG9wdGlvbnMsIENhbGxiYWNrSUQpOwogCkBAIC0xNDEyLDggKzE0MTIs
OCBAQCBwcml2YXRlOgogICAgIGJvb2wgcGFyZW50UHJvY2Vzc0hhc1NlcnZpY2VXb3JrZXJFbnRp
dGxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICNlbmRpZgogCi0gICAgdm9pZCBkaWRS
ZWNlaXZlUG9saWN5RGVjaXNpb24odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJ
RCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24s
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgRG93bmxvYWRJRCYsIE9wdGlvbmFsPFdlYnNp
dGVQb2xpY2llc0RhdGE+JiYpOwotICAgIHZvaWQgY29udGludWVXaWxsU3VibWl0Rm9ybSh1aW50
NjRfdCBmcmFtZUlELCB1aW50NjRfdCBsaXN0ZW5lcklEKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVQ
b2xpY3lEZWNpc2lvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IGxpc3RlbmVy
SUQsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6UG9saWN5QWN0aW9u
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IERvd25sb2FkSUQmLCBPcHRpb25hbDxXZWJz
aXRlUG9saWNpZXNEYXRhPiYmKTsKKyAgICB2b2lkIGNvbnRpbnVlV2lsbFN1Ym1pdEZvcm0oV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBsaXN0ZW5lcklEKTsKICAgICB2b2lkIHNl
dFVzZXJBZ2VudChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHNldEN1c3RvbVRleHRFbmNvZGlu
Z05hbWUoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBzdXNwZW5kQWN0aXZlRE9NT2JqZWN0c0Fu
ZEFuaW1hdGlvbnMoKTsKQEAgLTE0MzEsNyArMTQzMSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB3
aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHdpbmRv
d0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB3aW5k
b3dGcmFtZUluVW5mbGlwcGVkU2NyZWVuQ29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRQ
b2ludCYgYWNjZXNzaWJpbGl0eVZpZXdDb29yZGluYXRlcyk7CiAKICAgICBSZXRhaW5QdHI8UERG
RG9jdW1lbnQ+IHBkZkRvY3VtZW50Rm9yUHJpbnRpbmdGcmFtZShXZWJDb3JlOjpGcmFtZSopOwot
ICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdQREZEb2N1bWVudCh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBQcmludEluZm8mLCBWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4mIHJlc3VsdFBh
Z2VSZWN0cyk7CisgICAgdm9pZCBjb21wdXRlUGFnZXNGb3JQcmludGluZ1BERkRvY3VtZW50KFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgVmVjdG9yPFdlYkNvcmU6
OkludFJlY3Q+JiByZXN1bHRQYWdlUmVjdHMpOwogICAgIHZvaWQgZHJhd1BERkRvY3VtZW50KENH
Q29udGV4dFJlZiwgUERGRG9jdW1lbnQgKiwgY29uc3QgUHJpbnRJbmZvJiwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYpOwogICAgIHZvaWQgZHJhd1BhZ2VzVG9QREZGcm9tUERGRG9jdW1lbnQoQ0dD
b250ZXh0UmVmLCBQREZEb2N1bWVudCAqLCBjb25zdCBQcmludEluZm8mLCB1aW50MzJfdCBmaXJz
dCwgdWludDMyX3QgY291bnQpOwogI2VuZGlmCkBAIC0xNTg0LDcgKzE1ODQsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgdm9pY2VzRGlkQ2hhbmdlKCk7CiAjZW5kaWYKIAotICAgIHZvaWQgZnJhbWVC
ZWNhbWVSZW1vdGUodWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6R2xvYmFsRnJhbWVJZGVudGlm
aWVyJiYgcmVtb3RlRnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlm
aWVyJiYgcmVtb3RlV2luZG93SWRlbnRpZmllcik7CisgICAgdm9pZCBmcmFtZUJlY2FtZVJlbW90
ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6Okdsb2JhbEZyYW1lSWRlbnRpZmll
ciYmIHJlbW90ZUZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6R2xvYmFsV2luZG93SWRlbnRpZmll
ciYmIHJlbW90ZVdpbmRvd0lkZW50aWZpZXIpOwogCiAgICAgdm9pZCByZWdpc3RlclVSTFNjaGVt
ZUhhbmRsZXIodWludDY0X3QgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzY2hlbWUpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbgppbmRleCBhNTJlMjUxZDI1ZGE2ZDg4NzFiMjcyZDcxNDIyOTEzMjljNWYyNDM4Li5iYTdm
NjRiZmRjYmNjZjhhYjJjMzNmNmMyNzhiNDZkMTUxODg4ZjAxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTI3LDkg
KzI3LDkgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBTZXRC
YWNrZ3JvdW5kQ29sb3IoT3B0aW9uYWw8V2ViQ29yZTo6Q29sb3I+IGNvbG9yKQogCi0gICAgQWRk
Q29uc29sZU1lc3NhZ2UodWludDY0X3QgZnJhbWVJRCwgZW51bTp1aW50OF90IEpTQzo6TWVzc2Fn
ZVNvdXJjZSBtZXNzYWdlU291cmNlLCBlbnVtOnVpbnQ4X3QgSlNDOjpNZXNzYWdlTGV2ZWwgbWVz
c2FnZUxldmVsLCBTdHJpbmcgbWVzc2FnZSwgdWludDY0X3QgcmVxdWVzdElEKQotICAgIFNlbmRD
U1BWaW9sYXRpb25SZXBvcnQodWludDY0X3QgZnJhbWVJRCwgVVJMIHJlcG9ydFVSTCwgSVBDOjpG
b3JtRGF0YVJlZmVyZW5jZSByZXBvcnREYXRhKQotICAgIEVucXVldWVTZWN1cml0eVBvbGljeVZp
b2xhdGlvbkV2ZW50KHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5Vmlv
bGF0aW9uRXZlbnQ6OkluaXQgZXZlbnRJbml0KQorICAgIEFkZENvbnNvbGVNZXNzYWdlKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBlbnVtOnVpbnQ4X3QgSlNDOjpNZXNzYWdlU291
cmNlIG1lc3NhZ2VTb3VyY2UsIGVudW06dWludDhfdCBKU0M6Ok1lc3NhZ2VMZXZlbCBtZXNzYWdl
TGV2ZWwsIFN0cmluZyBtZXNzYWdlLCB1aW50NjRfdCByZXF1ZXN0SUQpCisgICAgU2VuZENTUFZp
b2xhdGlvblJlcG9ydChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgVVJMIHJlcG9y
dFVSTCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXBvcnREYXRhKQorICAgIEVucXVldWVTZWN1
cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0IGV2ZW50SW5pdCkK
IAogICAgIFRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvclN5bmNS
ZXBseSgpIC0+IChib29sIGhhbmRsZWQpIFN5bmNocm9ub3VzCiAKQEAgLTE2Miw4ICsxNjIsOCBA
QCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5
bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIEdvVG9CYWNrRm9yd2FyZEl0ZW0odWludDY0
X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmll
ciBiYWNrRm9yd2FyZEl0ZW1JRCwgZW51bTp1aW50OF90IFdlYkNvcmU6OkZyYW1lTG9hZFR5cGUg
YmFja0ZvcndhcmRUeXBlLCBlbnVtOmJvb2wgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0aW9uYWw8V2ViS2l0OjpXZWJz
aXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9saWNpZXMpCiAgICAgVHJ5UmVzdG9yZVNjcm9sbFBv
c2l0aW9uKCkKIAotICAgIExvYWRVUkxJbkZyYW1lKFVSTCB1cmwsIFN0cmluZyByZWZlcnJlciwg
dWludDY0X3QgZnJhbWVJRCkKLSAgICBMb2FkRGF0YUluRnJhbWUoSVBDOjpEYXRhUmVmZXJlbmNl
IGRhdGEsIFN0cmluZyBNSU1FVHlwZSwgU3RyaW5nIGVuY29kaW5nTmFtZSwgVVJMIGJhc2VVUkws
IHVpbnQ2NF90IGZyYW1lSUQpCisgICAgTG9hZFVSTEluRnJhbWUoVVJMIHVybCwgU3RyaW5nIHJl
ZmVycmVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKKyAgICBMb2FkRGF0YUlu
RnJhbWUoSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEsIFN0cmluZyBNSU1FVHlwZSwgU3RyaW5nIGVu
Y29kaW5nTmFtZSwgVVJMIGJhc2VVUkwsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
KQogICAgIExvYWRSZXF1ZXN0KHN0cnVjdCBXZWJLaXQ6OkxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJh
bWV0ZXJzKQogICAgIExvYWREYXRhKHN0cnVjdCBXZWJLaXQ6OkxvYWRQYXJhbWV0ZXJzIGxvYWRQ
YXJhbWV0ZXJzKQogICAgIExvYWRBbHRlcm5hdGVIVE1MKHN0cnVjdCBXZWJLaXQ6OkxvYWRQYXJh
bWV0ZXJzIGxvYWRQYXJhbWV0ZXJzKQpAQCAtMTczLDcgKzE3Myw3IEBAIEdlbmVyYXRlU3ludGhl
dGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0Nv
bW1hbmRUeXBlCiAgICAgUmVsb2FkKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMyX3QgcmVs
b2FkT3B0aW9ucywgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVu
c2lvbkhhbmRsZSkKICAgICBTdG9wTG9hZGluZygpCiAKLSAgICBTdG9wTG9hZGluZ0ZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQpCisgICAgU3RvcExvYWRpbmdGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCkKICAgICAKICAgICBSZXN0b3JlU2Vzc2lvbihWZWN0b3I8V2ViS2l0OjpC
YWNrRm9yd2FyZExpc3RJdGVtU3RhdGU+IGl0ZW1TdGF0ZXMpCiAgICAgVXBkYXRlQmFja0Zvcndh
cmRMaXN0Rm9yUmVhdHRhY2goVmVjdG9yPFdlYktpdDo6QmFja0ZvcndhcmRMaXN0SXRlbVN0YXRl
PiBpdGVtU3RhdGVzKQpAQCAtMTgyLDggKzE4Miw4IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGlu
Z0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBl
CiAgICAgRGlkUmVtb3ZlQmFja0ZvcndhcmRJdGVtKHN0cnVjdCBXZWJDb3JlOjpCYWNrRm9yd2Fy
ZEl0ZW1JZGVudGlmaWVyIGJhY2tGb3J3YXJkSXRlbUlEKQogCiAgICAgVXBkYXRlV2Vic2l0ZVBv
bGljaWVzKHN0cnVjdCBXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGEgd2Vic2l0ZVBvbGljaWVz
KQotICAgIERpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbih1aW50NjRfdCBmcmFtZUlELCB1aW50NjRf
dCBsaXN0ZW5lcklELCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UG9saWN5QWN0aW9uIHBvbGljeUFjdGlv
biwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwg
T3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9saWNpZXMpCi0g
ICAgQ29udGludWVXaWxsU3VibWl0Rm9ybSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBsaXN0
ZW5lcklEKQorICAgIERpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgZW51bTp1aW50OF90IFdlYkNvcmU6OlBv
bGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViS2l0OjpE
b3dubG9hZElEIGRvd25sb2FkSUQsIE9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0
YT4gd2Vic2l0ZVBvbGljaWVzKQorICAgIENvbnRpbnVlV2lsbFN1Ym1pdEZvcm0oV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQpCiAKICAgICBDbGVh
clNlbGVjdGlvbigpCiAgICAgUmVzdG9yZVNlbGVjdGlvbkluRm9jdXNlZEVkaXRhYmxlRWxlbWVu
dCgpCkBAIC0xOTYsMTUgKzE5NiwxNSBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5k
KGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogI2lmIEVO
QUJMRShNSFRNTCkKICAgICBHZXRDb250ZW50c0FzTUhUTUxEYXRhKFdlYktpdDo6Q2FsbGJhY2tJ
RCBjYWxsYmFja0lEKQogI2VuZGlmCi0gICAgR2V0TWFpblJlc291cmNlRGF0YU9mRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCi0gICAgR2V0UmVz
b3VyY2VEYXRhRnJvbUZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyByZXNvdXJjZVVSTCwg
V2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCisgICAgR2V0TWFpblJlc291cmNlRGF0YU9m
RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYktpdDo6Q2FsbGJhY2tJ
RCBjYWxsYmFja0lEKQorICAgIEdldFJlc291cmNlRGF0YUZyb21GcmFtZShXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIHJlc291cmNlVVJMLCBXZWJLaXQ6OkNhbGxiYWNr
SUQgY2FsbGJhY2tJRCkKICAgICBHZXRSZW5kZXJUcmVlRXh0ZXJuYWxSZXByZXNlbnRhdGlvbihX
ZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBHZXRTZWxlY3Rpb25PckNvbnRlbnRz
QXNTdHJpbmcoV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgR2V0U2VsZWN0aW9u
QXNXZWJBcmNoaXZlRGF0YShXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKLSAgICBHZXRT
b3VyY2VGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJh
Y2tJRCkKLSAgICBHZXRXZWJBcmNoaXZlT2ZGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6
OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBHZXRTb3VyY2VGb3JGcmFtZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCisg
ICAgR2V0V2ViQXJjaGl2ZU9mRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIFJ1bkphdmFTY3JpcHRJbk1haW5G
cmFtZVNjcmlwdFdvcmxkKFN0cmluZyBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgT3B0
aW9uYWw8U3RyaW5nPiB3b3JsZE5hbWUsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQot
ICAgIFJ1bkphdmFTY3JpcHRJbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBzY3JpcHQs
IGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCisg
ICAgUnVuSmF2YVNjcmlwdEluRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IFN0cmluZyBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgV2ViS2l0OjpDYWxsYmFja0lE
IGNhbGxiYWNrSUQpCiAgICAgRm9yY2VSZXBhaW50KFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFj
a0lEKQogCiAgICAgU2VsZWN0QWxsKCkKQEAgLTM4MCwxOCArMzgwLDE4IEBAIEdlbmVyYXRlU3lu
dGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGlu
Z0NvbW1hbmRUeXBlCiAgICAgRGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Npb25EZWNpc2lv
bih1aW50NjRfdCBub3RpZmljYXRpb25JRCwgYm9vbCBhbGxvd2VkKQogCiAgICAgIyBQcmludGlu
Zy4KLSAgICBCZWdpblByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlBy
aW50SW5mbyBwcmludEluZm8pCisgICAgQmVnaW5QcmludGluZyhXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbykKICAgICBF
bmRQcmludGluZygpCi0gICAgQ29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcodWludDY0X3QgZnJhbWVJ
RCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2ViS2l0OjpDYWxsYmFja0lE
IGNhbGxiYWNrSUQpCisgICAgQ29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIFdl
YktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIERy
YXdSZWN0VG9JbWFnZSh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8g
cHJpbnRJbmZvLCBXZWJDb3JlOjpJbnRSZWN0IHJlY3QsIFdlYkNvcmU6OkludFNpemUgaW1hZ2VT
aXplLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKLSAgICBEcmF3UGFnZXNUb1BERih1
aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCB1aW50
MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lE
KQorICAgIERyYXdSZWN0VG9JbWFnZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
c3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2ViQ29yZTo6SW50UmVjdCByZWN0
LCBXZWJDb3JlOjpJbnRTaXplIGltYWdlU2l6ZSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNr
SUQpCisgICAgRHJhd1BhZ2VzVG9QREYoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIHVpbnQzMl90IGZpcnN0LCB1aW50
MzJfdCBjb3VudCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKLSAgICBDb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERih1aW50
NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCBXZWJLaXQ6
OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkgLT4gKHVpbnQzMl90IHBhZ2VDb3VudCkgU3luY2hyb25v
dXMKKyAgICBDb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERihXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywg
V2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpIC0+ICh1aW50MzJfdCBwYWdlQ291bnQpIFN5
bmNocm9ub3VzCiAjZW5kaWYKICNlbmRpZgogI2lmIFBMQVRGT1JNKEdUSykKLSAgICBEcmF3UGFn
ZXNGb3JQcmludGluZyh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8g
cHJpbnRJbmZvLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBEcmF3UGFnZXNG
b3JQcmludGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktp
dDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAj
ZW5kaWYKIAogICAgICMgTWVkaWEKQEAgLTQxMyw3ICs0MTMsNyBAQCBHZW5lcmF0ZVN5bnRoZXRp
Y0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21t
YW5kVHlwZQogICAgIENvbmZpcm1Db21wb3NpdGlvbihTdHJpbmcgdGV4dCwgaW50NjRfdCBzZWxl
Y3Rpb25TdGFydCwgaW50NjRfdCBzZWxlY3Rpb25MZW5ndGgpCiAgICAgQ2FuY2VsQ29tcG9zaXRp
b24oKQogCi0gICAgQ29sbGFwc2VTZWxlY3Rpb25JbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCisg
ICAgQ29sbGFwc2VTZWxlY3Rpb25JbkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlEKQogCiAgICAgR2V0Q2VudGVyRm9yWm9vbUdlc3R1cmUoV2ViQ29yZTo6SW50UG9pbnQgY2Vu
dGVySW5WaWV3Q29vcmRpbmF0ZXMpIC0+IChXZWJDb3JlOjpJbnRQb2ludCBjZW50ZXIpIFN5bmNo
cm9ub3VzCiAjZW5kaWYKQEAgLTUzNiw3ICs1MzYsNyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRp
bmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlw
ZQogICAgIERpZFJlY2VpdmVQYXNzd29yZEZvclF1aWNrTG9va0RvY3VtZW50KFN0cmluZyBwYXNz
d29yZCkKICNlbmRpZgogCi0gICAgRnJhbWVCZWNhbWVSZW1vdGUodWludDY0X3QgZnJhbWVJRCwg
c3RydWN0IFdlYkNvcmU6Okdsb2JhbEZyYW1lSWRlbnRpZmllciByZW1vdGVGcmFtZUlkZW50aWZp
ZXIsIHN0cnVjdCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlmaWVyIHJlbW90ZVdpbmRvd0lk
ZW50aWZpZXIpCisgICAgRnJhbWVCZWNhbWVSZW1vdGUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpHbG9iYWxGcmFtZUlkZW50aWZpZXIgcmVtb3RlRnJh
bWVJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6R2xvYmFsV2luZG93SWRlbnRpZmllciByZW1v
dGVXaW5kb3dJZGVudGlmaWVyKQogCiAgICAgUmVnaXN0ZXJVUkxTY2hlbWVIYW5kbGVyKHVpbnQ2
NF90IGlkZW50aWZpZXIsIFN0cmluZyBzY2hlbWUpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggZTRjNjQyNzFjY2Y4OTNi
MzU5Yjk0NTc5YzhiMmQxNzkxZGRhOWNiOS4uMmRiMGViNmJiYWE0NTc4YmY2YTY5NWNlNDAwMmQ3
NzM2NTE2YmQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
aW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
aW9zL1dlYlBhZ2VJT1MubW0KQEAgLTU1MSw3ICs1NTEsNyBAQCB2b2lkIFdlYlBhZ2U6OmFjY2Vw
dHNGaXJzdE1vdXNlKGludCwgY29uc3QgV2ViS2l0OjpXZWJNb3VzZUV2ZW50JiwgQ29tcGxldGlv
bkhhbgogICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpj
b21wdXRlUGFnZXNGb3JQcmludGluZ1BERkRvY3VtZW50KHVpbnQ2NF90LCBjb25zdCBQcmludElu
Zm8mLCBWZWN0b3I8SW50UmVjdD4mKQordm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmlu
dGluZ1BERkRvY3VtZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZv
JiwgVmVjdG9yPEludFJlY3Q+JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpAQCAtMzcz
OSw3ICszNzM5LDcgQEAgdm9pZCBXZWJQYWdlOjpkaXNwYXRjaEFzeW5jaHJvbm91c1RvdWNoRXZl
bnRzKGNvbnN0IFZlY3RvcjxXZWJUb3VjaEV2ZW50LCAxPiYgcXUKIH0KICNlbmRpZgogCi12b2lk
IFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQs
IE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERjo6
RGVsYXllZFJlcGx5JiYgcmVwbHkpCit2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50
aW5nQW5kRHJhd1RvUERGKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBQ
cmludEluZm8mIHByaW50SW5mbywgQ2FsbGJhY2tJRCBjYWxsYmFja0lELCBNZXNzYWdlczo6V2Vi
UGFnZTo6Q29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREY6OkRlbGF5ZWRSZXBseSYm
IHJlcGx5KQogewogICAgIGlmIChwcmludEluZm8uc25hcHNob3RGaXJzdFBhZ2UpIHsKICAgICAg
ICAgcmVwbHkoMSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9XZWJQYWdlTWFjLm1tCmluZGV4IDQzMWRmYTE3YWNhMDViNjBlZmU5YWUwNDAzYTQwODgwZTI4
MThkODAuLmZlMjQxN2IwYTdkNTgzNjNjNTRiYjg2ZGE1Nzg5OGQxMWZiZTM1MzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCkBA
IC02NzAsNyArNjcwLDcgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVIZWFkZXJBbmRGb290ZXJMYXll
cnNGb3JEZXZpY2VTY2FsZUNoYW5nZShmbG9hdCBzY2FsZUZhY3RvcikKICAgICAgICAgbV9mb290
ZXJCYW5uZXItPmRpZENoYW5nZURldmljZVNjYWxlRmFjdG9yKHNjYWxlRmFjdG9yKTsKIH0KIAot
dm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZ1BERkRvY3VtZW50KHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBWZWN0b3I8SW50UmVjdD4mIHJl
c3VsdFBhZ2VSZWN0cykKK3ZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdQREZE
b2N1bWVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZv
JiBwcmludEluZm8sIFZlY3RvcjxJbnRSZWN0PiYgcmVzdWx0UGFnZVJlY3RzKQogewogICAgIEFT
U0VSVChyZXN1bHRQYWdlUmVjdHMuaXNFbXB0eSgpKTsKICAgICBXZWJGcmFtZSogZnJhbWUgPSBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCBhMmRhMTJjNjAyMjkzNzNjZjg3ODkyYjgzZGFh
NTc3MzUwMGE3N2YyLi41NjVmY2FhZWQxMzA5ZTc4NjU2NGMwYmZlYWI4YjllMWJmNTQwNzU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC03NjgsMTcgKzc2OCwx
NyBAQCB2b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZQogICAgIExPR19FUlJPUigiVW5oYW5kbGVkIHdl
YiBwcm9jZXNzIG1lc3NhZ2UgJyVzOiVzJyIsIGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgp
LnRvU3RyaW5nKCkuZGF0YSgpLCBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkudG9TdHJpbmcoKS5kYXRh
KCkpOwogfQogCi1XZWJGcmFtZSogV2ViUHJvY2Vzczo6d2ViRnJhbWUodWludDY0X3QgZnJhbWVJ
RCkgY29uc3QKK1dlYkZyYW1lKiBXZWJQcm9jZXNzOjp3ZWJGcmFtZShGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9mcmFtZU1hcC5nZXQoZnJhbWVJRCk7CiB9
CiAKLXZvaWQgV2ViUHJvY2Vzczo6YWRkV2ViRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2ViRnJh
bWUqIGZyYW1lKQordm9pZCBXZWJQcm9jZXNzOjphZGRXZWJGcmFtZShGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgV2ViRnJhbWUqIGZyYW1lKQogewogICAgIG1fZnJhbWVNYXAuc2V0KGZyYW1lSUQs
IGZyYW1lKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjpyZW1vdmVXZWJGcmFtZSh1aW50NjRfdCBm
cmFtZUlEKQordm9pZCBXZWJQcm9jZXNzOjpyZW1vdmVXZWJGcmFtZShGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCkKIHsKICAgICBtX2ZyYW1lTWFwLnJlbW92ZShmcmFtZUlEKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZDRjMDFiYWIxZjkzZGE5MDg1YjBmMjE5NGNk
MzI3ZDQ3MTg2NTBiMi4uM2NiMmM0OTY5NDk5ODg3YjMyYjUzYjNhNjZkMGJiZjY4NWEzMjE4ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC00MCw2ICs0MCw3IEBACiAj
aW5jbHVkZSAiV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0
Q2hhbm5lbE1hbmFnZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FjdGl2aXR5U3RhdGUuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFn
ZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWluLmg+CiAj
aWYgUExBVEZPUk0oTUFDKQpAQCAtMTcyLDkgKzE3Myw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wg
ZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZnVsbEtleWJvYXJk
QWNjZXNzRW5hYmxlZDsgfQogCi0gICAgV2ViRnJhbWUqIHdlYkZyYW1lKHVpbnQ2NF90KSBjb25z
dDsKLSAgICB2b2lkIGFkZFdlYkZyYW1lKHVpbnQ2NF90LCBXZWJGcmFtZSopOwotICAgIHZvaWQg
cmVtb3ZlV2ViRnJhbWUodWludDY0X3QpOworICAgIFdlYkZyYW1lKiB3ZWJGcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIpIGNvbnN0OworICAgIHZvaWQgYWRkV2ViRnJhbWUoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBXZWJGcmFtZSopOworICAgIHZvaWQgcmVtb3ZlV2ViRnJhbWUoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyKTsKIAogICAgIFdlYlBhZ2VHcm91cFByb3h5KiB3ZWJQYWdl
R3JvdXAoV2ViQ29yZTo6UGFnZUdyb3VwKik7CiAgICAgV2ViUGFnZUdyb3VwUHJveHkqIHdlYlBh
Z2VHcm91cCh1aW50NjRfdCBwYWdlR3JvdXBJRCk7CkBAIC00ODksNyArNDkwLDcgQEAgcHJpdmF0
ZToKIAogICAgIGJvb2wgbV9mdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkIHsgZmFsc2UgfTsKIAot
ICAgIEhhc2hNYXA8dWludDY0X3QsIFdlYkZyYW1lKj4gbV9mcmFtZU1hcDsKKyAgICBIYXNoTWFw
PFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViRnJhbWUqPiBtX2ZyYW1lTWFwOwogCiAgICAg
dHlwZWRlZiBIYXNoTWFwPGNvbnN0IGNoYXIqLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViUHJvY2Vzc1N1
cHBsZW1lbnQ+LCBQdHJIYXNoPGNvbnN0IGNoYXIqPj4gV2ViUHJvY2Vzc1N1cHBsZW1lbnRNYXA7
CiAgICAgV2ViUHJvY2Vzc1N1cHBsZW1lbnRNYXAgbV9zdXBwbGVtZW50czsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5oCmluZGV4IGIxNDAzZDA1NjM5M2IzOTdkMDE3ZDA5M2RlNWZlMDRjZGNjYThj
Y2QuLmQ2MDYzMGZlMGNhYWRmNDNhOGI3NDQ5ZDJkNTQ5MGVkYjA4ZTZhYzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaApAQCAtNjQsNyArNjQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaGFz
V2ViVmlldygpIGNvbnN0IGZpbmFsOyAvLyBtYWlubHkgZm9yIGFzc2VydGlvbnMKIAogICAgIE9w
dGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQoKSBjb25zdCBmaW5hbDsKLSAg
ICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCgpIGNvbnN0IGZpbmFsOworICAgIE9wdGlvbmFs
PFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCgpIGNvbnN0IGZpbmFsOwogICAgIFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBtYWtlUmVw
cmVzZW50YXRpb24oV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKSBmaW5hbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQubW0KaW5kZXggM2RkNTBlN2IzYjljZjk5MzM0OWM5YWJiNGNiNDk3ODM3ZWVj
MzUzZS4uYjdhNjVlOTkzNGZmZjA4ODBiNzU2OGNhMDBlOTYyZTAxNWFlNDIxMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTIxNCw3ICsyMTQsNyBAQCBPcHRpb25hbDxQYWdlSWRl
bnRpZmllcj4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnBhZ2VJRCgpIGNvbnN0CiAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKIH0KIAotT3B0aW9uYWw8dWludDY0X3Q+IFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpmcmFtZUlEKCkgY29uc3QKK09wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmZyYW1lSUQoKSBjb25zdAogewogICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376302</attachid>
            <date>2019-08-14 13:05:48 -0700</date>
            <delta_ts>2019-08-14 13:16:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199986-20190814130547.patch</filename>
            <type>text/plain</type>
            <size>438596</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmE3MDY4NjA3ZWFlOTVj
NTA0YWRlOThlNGIyZDQ4NzlmMjY2NDRmOS4uOTM1OGNjMTBmYjk5ZjFkMTE2ZmEyNDUwMzVhM2Ri
MDgzMjEwYTc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE5LTA4LTE0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBPYmplY3RJ
ZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+IGZvciBmcmFtZUlEcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5OTg2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBzdHJvbmdseS10eXBl
ZCBGcmFtZUlkZW50aWZpZXIgaW5zdGVhZCBvZiB1aW50NjRfdCBhcyBmcmFtZSBpZGVudGlmaWVy
cyBldmVyeXdoZXJlLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGxvYWRlci9Db29raWVKYXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q29va2llSmFyOjpjb29raWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tpZUphcjo6
c2V0Q29va2llcyk6CisgICAgICAgIChXZWJDb3JlOjpDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tpZUphcjo6Z2V0
UmF3Q29va2llcyBjb25zdCk6CisgICAgICAgICogbG9hZGVyL0Nvb2tpZUphci5oOgorICAgICAg
ICAqIGxvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3Bw
OgorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
OjpOYXZpZ2F0aW9uQWN0aW9uOjpSZXF1ZXN0ZXI6OmZyYW1lSUQgY29uc3QpOgorICAgICAgICAq
IHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9HbG9iYWxGcmFtZUlkZW50aWZp
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Okdsb2JhbEZyYW1lSWRlbnRpZmllcjo6ZGVjb2RlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Nvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzaG91bGRCbG9ja0Nv
b2tpZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpo
YXNTdG9yYWdlQWNjZXNzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6Z3JhbnRTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW06CisgICAgICAg
IChXZWJDb3JlOjpjb29raWVzRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZXNGb3JT
ZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2ll
c0ZvckRPTSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzIGNvbnN0KToK
KwogMjAxOS0wOC0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAg
ICAgVXBkYXRlIFdvcmtlcjo6bm90aWZ5RmluaXNoZWQgdG8gbm90IHVzZSBlbXB0eVNlc3Npb25J
RApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA1NGI3OTc3NmIwNTc1YjFhODgzY2Y2OTc4ZmFjZDBhMTU1Y2NhOWM1Li40
NTg3MjQyZjU2N2Q0YzBiMmVlZjgwYmIxOTJmYWJiZjE1ODIwMjk3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDM0OSBAQAorMjAxOS0wOC0xNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KKworICAgICAgICBVc2UgT2JqZWN0SWRlbnRpZmllcjxGcmFtZUlkZW50aWZpZXJUeXBl
PiBmb3IgZnJhbWVJRHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5OTk4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVzZSB0aGUgc3Ryb25nbHktdHlwZWQgRnJhbWVJZGVudGlmaWVyIGluc3RlYWQgb2Yg
dWludDY0X3QgYXMgZnJhbWUgaWRlbnRpZmllcnMgZXZlcnl3aGVyZS4KKworICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFudFN0b3JhZ2VB
Y2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAg
ICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmdyYW50U3RvcmFn
ZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsSGFzU3Rv
cmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEdy
YW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTSk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJv
bURPTSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpj
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXRSYXdDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpoYXNT
dG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtMb2FkQ2hlY2tlcjo6TmV0d29ya0xvYWRDaGVja2VyKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRy
eSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnROZXR3b3Jr
TG9hZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y29udmVydFRv
RG93bmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmFib3J0
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVz
cG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2Vp
dmVCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZp
bmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRp
ZEZhaWxMb2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpj
b250aW51ZVdpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OmVzY2FwZUlERm9ySlNP
Tik6CisgICAgICAgIChXZWJLaXQ6OmxvZ0Jsb2NrZWRDb29raWVJbmZvcm1hdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uSW50ZXJuYWwpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24pOgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNoYXJlZC9BUEkv
QVBJRnJhbWVIYW5kbGUuY3BwOgorICAgICAgICAoQVBJOjpGcmFtZUhhbmRsZTo6Y3JlYXRlKToK
KyAgICAgICAgKEFQSTo6RnJhbWVIYW5kbGU6OmNyZWF0ZUF1dG9jb252ZXJ0aW5nKToKKyAgICAg
ICAgKEFQSTo6RnJhbWVIYW5kbGU6OkZyYW1lSGFuZGxlKToKKyAgICAgICAgKEFQSTo6RnJhbWVI
YW5kbGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5oOgor
ICAgICAgICAoQVBJOjpGcmFtZUhhbmRsZTo6ZnJhbWVJRCBjb25zdCk6CisgICAgICAgICogU2hh
cmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5tbToKKyAgICAgICAgKC1bX1dLRnJhbWVIYW5k
bGUgaGFzaF0pOgorICAgICAgICAoLVtfV0tGcmFtZUhhbmRsZSBfZnJhbWVJRF0pOgorICAgICAg
ICAoLVtfV0tGcmFtZUhhbmRsZSBpbml0V2l0aENvZGVyOl0pOgorICAgICAgICAoLVtfV0tGcmFt
ZUhhbmRsZSBlbmNvZGVXaXRoQ29kZXI6XSk6CisgICAgICAgICogU2hhcmVkL0F1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRp
Y2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAg
ICAgKiBTaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmg6CisgICAg
ICAgICogU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tGcmFtZUhhbmRsZVJlZi5jcHA6CisgICAgICAgIChXS0ZyYW1lSGFuZGxlR2V0RnJhbWVJRCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgt
W1dLV2ViVmlldyBfcHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvOmZvckZyYW1lOl0pOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX2NhbkNoYW5nZUZyYW1lTGF5b3V0Ol0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tOgorICAgICAgICAoLVtfV0tJbnNwZWN0
b3Igc2hvd01haW5SZXNvdXJjZUZvckZyYW1lOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRv
bWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNp
bXVsYXRlZElucHV0RGlzcGF0Y2hlcjo6cnVuKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21h
dGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0
b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dG9tYXRpb25TZXNzaW9uOjp3ZWJGcmFtZUlERm9ySGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQXV0b21hdGlvblNlc3Npb246OmhhbmRsZUZvcldlYkZyYW1lSUQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c3dpdGNoVG9Ccm93c2luZ0NvbnRleHQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2FpdEZvck5hdmlnYXRpb25Ub0Nv
bXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6ZmluZFBhZ2VGb3JGcmFtZUlEKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnJlc3BvbmRUb1BlbmRpbmdGcmFtZU5hdmln
YXRpb25DYWxsYmFja3NXaXRoVGltZW91dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRp
b25TZXNzaW9uOjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZlQ2hpbGRGcmFtZUhhbmRsZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZlUGFyZW50RnJhbWVIYW5kbGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Y29tcHV0ZUVsZW1lbnRM
YXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2VsZWN0T3B0
aW9uRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpnZXRB
bGxDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OmRlbGV0
ZVNpbmdsZUNvb2tpZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjp2
aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
QXV0b21hdGlvblNlc3Npb246OnRha2VTY3JlZW5zaG90KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVu
dDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW06CisgICAgICAg
ICgtW1dLUmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyIGF0dGVtcHRSZWNvdmVyeV0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9j
a0xvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6
OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSk6CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAg
ICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UHJvdmlzaW9uYWxQYWdlUHJveHk6OnZhbGlkYXRlSW5wdXQpOgorICAgICAgICAoV2ViS2l0OjpQ
cm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZEZh
aWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFs
UGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQcm92
aXNpb25hbFBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEpOgorICAgICAg
ICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxG
b3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNp
b25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0
OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9u
YWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xv
YWRGb3JGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJv
Y2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlN1c3BlbmRlZFBhZ2VQcm94eTo6U3VzcGVuZGVkUGFnZVByb3h5
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25D
aGVja1Byb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNr
UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5
OjpmcmFtZUlEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVzZXRBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6c2VhcmNoRm9yR3JhbnRl
ZFJlcXVlc3QgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6d2FzUmVxdWVzdERlbmllZCk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVy
bWlzc2lvbkZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OmdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKToKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc0dyYW50
ZWRWaWRlb09yQXVkaW9BY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6bWFpbkZyYW1lSUQgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpmcmFtZUlEIGNvbnN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkZyYW1lUHJveHk6OldlYkZyYW1lUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJGcmFtZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6OmZyYW1lSUQgY29uc3QpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGlkQ3JlYXRlU3ViZnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmRpZENyZWF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkU3Rh
cnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6ZGlkRXhwbGljaXRPcGVuRm9yRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZl
U2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1l
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDYW5jZWxDbGllbnRSZWRpcmVj
dEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92
aXNpb25hbFVSTEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRD
aGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZEZvckZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZyYW1l
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENoYW5nZU1h
aW5Eb2N1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRp
dGxlRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZpcnN0TGF5
b3V0Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZpcnN0Vmlz
dWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFtZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZnJhbWVEaWRCZWNvbWVGcmFtZVNldCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5j
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uQXN5bmNTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNw
b25zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2VTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnVuYWJsZVRvSW1w
bGVtZW50UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0
Rm9ybSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2
aWdhdGlvbkRhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZE5hdmlnYXRl
V2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFVwZGF0ZUhpc3RvcnlUaXRsZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEFsZXJ0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0Q29uZmlybSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdFByb21wdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpydW5PcGVuUGFuZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnByaW50RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZvY3Vz
ZWRGcmFtZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZyYW1lU2V0
TGFyZ2VzdEZyYW1lQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cmVxdWVzdFN0b3JhZ2VTcGFjZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6bWFrZVN0b3JhZ2VTcGFjZVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2Vz
Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNob3VsZEFsbG93RGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6d2ViRnJhbWUgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUHJveHk6OmNhbkNyZWF0ZUZyYW1lIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpmcmFtZUNyZWF0ZWQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUHJveHk6OmRpZERlc3Ryb3lGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IF93a19wYWdlQ291bnRGb3JQcmludEZvcm1hdHRlcjpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojpjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpldmFsdWF0ZUphdmFTY3JpcHRDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZENsZWFyV2luZG93
T2JqZWN0Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5OjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJh
bWVXaXRoT3JkaW5hbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZVBhcmVudEZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Zm9jdXNG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmNvbXB1
dGVFbGVtZW50TGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eTo6c2VsZWN0T3B0aW9uRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHk6OnRha2VTY3JlZW5zaG90KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eTo6Z2V0Q29va2llc0ZvckZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZGVsZXRlQ29va2llKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dL
V2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tOgorICAgICAgICAoK1tXS1dlYlByb2Nlc3NQbHVnSW5G
cmFtZSBsb29rVXBGcmFtZUZyb21IYW5kbGU6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3Ry
YXRlZ3k6OnNjaGVkdWxlTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5
OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJM
b2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJS
ZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxSZXNvdXJjZUxvYWQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVyOjpzdG9wTG9hZGluZ0FmdGVyWEZyYW1l
T3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNvdXJjZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omluc3RhbGxTZXJ2aWNlV29ya2VyKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZCBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6aGFzU3RvcmFnZUFjY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cmVxdWVzdFN0b3JhZ2VBY2Nl
c3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlE
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGlkRmFpbFByb3Zpc2lvbmFsTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkNvb2tpZUphci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6
Y29va2llcyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6c2V0Q29va2ll
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZp
ZWxkVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVKYXI6OmdldFJhd0Nv
b2tpZXMgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJGcmFtZTo6V2ViRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpnZW5lcmF0ZUZy
YW1lSUQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6ZnJhbWVJRCBjb25zdCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
Ykluc3BlY3Rvcjo6c2hvd01haW5SZXNvdXJjZUZvckZyYW1lKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxvYWRVUkxJbkZyYW1lKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9hZERhdGFJbkZyYW1lKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6c3RvcExvYWRpbmdGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmNvbnRpbnVlV2lsbFN1Ym1pdEZvcm0pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpydW5K
YXZhU2NyaXB0SW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldFNvdXJjZUZv
ckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0TWFpblJlc291cmNlRGF0YU9m
RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRSZXNvdXJjZURhdGFGcm9tRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRXZWJBcmNoaXZlT2ZGcmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmFkZENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6c2VuZENTUFZpb2xhdGlvblJlcG9ydCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6YmVnaW5QcmludGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
ZHJhd1JlY3RUb0ltYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZHJhd1BhZ2VzVG9Q
REYpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmF3UGFnZXNUb1BERkltcGwpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmF3UGFnZXNGb3JQcmludGluZyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmZyYW1lQmVjYW1lUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVl
c3RTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2hvdWxkQWxsb3dE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERG
RG9jdW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmlu
dGluZ0FuZERyYXdUb1BERik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQ
YWdlTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmlu
dGluZ1BERkRvY3VtZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp3ZWJGcmFtZSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmFkZFdlYkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6cmVtb3ZlV2ViRnJhbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
OgorCiAyMDE5LTA4LTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgdXNlIG9mIGVtcHR5U2Vzc2lvbklEIGZyb20gTmV0d29ya0xvYWRQYXJhbWV0
ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggODllZTNjYmU0NzY3YWVlNjU1MjE2
Njk1NjBlY2RlOGVkMTA2YTI3ZS4uODMwYTc4MjViOTFkZmQxNmU3Y2Y3MTkyN2Q3MTM4ODkxYjA3
NDYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5
LTA4LTE0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAg
IFVzZSBPYmplY3RJZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+IGZvciBmcmFtZUlEcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5OTg2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBz
dHJvbmdseS10eXBlZCBGcmFtZUlkZW50aWZpZXIgaW5zdGVhZCBvZiB1aW50NjRfdCBhcyBmcmFt
ZSBpZGVudGlmaWVycyBldmVyeXdoZXJlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlEIGNv
bnN0KToKKwogMjAxOS0wOC0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6YmxvYlNpemUgc2hvdWxkIHRha2UgYSBT
ZXNzaW9uSUQgYXMgcGFyYW1ldGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9PYmplY3RJ
ZGVudGlmaWVyLmggYi9Tb3VyY2UvV1RGL3d0Zi9PYmplY3RJZGVudGlmaWVyLmgKaW5kZXggYjNi
Y2FkZDlkZDE5NWFiMzBiMThjZjFkYWQzMzUyMzExOTI1MjZmOC4uNjdjYzk2NGZmZDA2Y2ZlNDFh
ZWZmMjRmYjc3OWVlYWY4NTA2MzQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvT2JqZWN0
SWRlbnRpZmllci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL09iamVjdElkZW50aWZpZXIuaApAQCAt
NTksNyArNTksNyBAQCBwdWJsaWM6CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKLSAgICAgICAgQVNTRVJU
KGlzVmFsaWRJZGVudGlmaWVyKG1faWRlbnRpZmllcikpOworICAgICAgICBSRUxFQVNFX0FTU0VS
VChpc1ZhbGlkSWRlbnRpZmllcihtX2lkZW50aWZpZXIpKTsgLy8gRklYTUU6IFNob3VsZCBiZSBh
IGRlYnVnIEFTU0VSVCgpLgogICAgICAgICBlbmNvZGVyIDw8IG1faWRlbnRpZmllcjsKICAgICB9
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPE9iamVjdElk
ZW50aWZpZXI+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQpAQCAtNjgsNyArNjgsNyBAQCBwdWJs
aWM6CiAgICAgICAgIGRlY29kZXIgPj4gaWRlbnRpZmllcjsKICAgICAgICAgaWYgKCFpZGVudGlm
aWVyKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAgICAgQVNTRVJUKGlz
VmFsaWRJZGVudGlmaWVyKCppZGVudGlmaWVyKSk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGlz
VmFsaWRJZGVudGlmaWVyKCppZGVudGlmaWVyKSk7IC8vIEZJWE1FOiBTaG91bGQgYmUgYSBkZWJ1
ZyBBU1NFUlQoKS4KICAgICAgICAgcmV0dXJuIE9iamVjdElkZW50aWZpZXIgeyAqaWRlbnRpZmll
ciB9OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGI3YmU3NDkzZmIzNDdlN2FlYzVkMTE3Y2M1Y2M2OWE4YTFlZmMx
ZTMuLjQ5NTdiYWJjOTdiMTcxMDRhNDQ1MzVlNDM4M2ZkZmE4YjEyNzQyMDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4MCw2
ICsyODAsNyBAQAogCQkwRjAzQzA3NDE4ODQ2OTVFMDBBNUY4Q0EgLyogU3lzdGVtTWVtb3J5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjAzQzA3MzE4
ODQ2OTVFMDBBNUY4Q0EgLyogU3lzdGVtTWVtb3J5LmggKi87IH07CiAJCTBGMDNDMDc1MTg4NDgw
NTUwMEE1RjhDQSAvKiBJbnNwZWN0b3JPdmVybGF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzUyMkQ0QTE1QjQ3OEIyMDA5QjdDOTUgLyogSW5zcGVj
dG9yT3ZlcmxheS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTBGMDk5RDA5MTdCOTY4QTEwMEZGODRCOSAvKiBXZWJDb3JlVHlwZWRBcnJheUNvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MDk5RDA3MTdCOTY4QTEwMEZGODRCOSAvKiBXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjExNzgx
ODIyRTNDNDdGMDA4QkQ1NzAgLyogRnJhbWVJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjExNzgxNjIyRTNDNDdFMDA4QkQ1NzAgLyog
RnJhbWVJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMEYxMUE1NEYwRjM5MjMzMTAwQzM3ODg0IC8qIFJlbmRlclNlbGVjdGlvbklu
Zm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTFB
NTRFMEYzOTIzMzEwMEMzNzg4NCAvKiBSZW5kZXJTZWxlY3Rpb25JbmZvLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYxMzE2M0UxNkVEMENDODAw
MzVDQzA0IC8qIFBsYXRmb3JtQ0FGaWx0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjEzMTYzRDE2RUQwQ0M4MDAzNUNDMDQgLyogUGxhdGZvcm1D
QUZpbHRlcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwRjE1REE4QTBGM0FBRUU3MDAwMENFNDcgLyogQ1NTQW5pbWF0aW9uQ29udHJvbGxlclBy
aXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MTVEQTg5MEYzQUFFRTcwMDAwQ0U0NyAvKiBDU1NBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5o
ICovOyB9OwpAQCAtNTU3OCw2ICs1NTc5LDcgQEAKIAkJMEYwM0MwNzMxODg0Njk1RTAwQTVGOENB
IC8qIFN5c3RlbU1lbW9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTeXN0
ZW1NZW1vcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYwOTlEMDYxN0I5NjhB
MTAwRkY4NEI5IC8qIFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjA5OUQwNzE3Qjk2OEExMDBGRjg0Qjkg
LyogV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkwRjExNzgxNjIyRTNDNDdFMDA4QkQ1NzAgLyogRnJhbWVJZGVudGlmaWVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZyYW1lSWRlbnRpZmllci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjExQTU0RTBGMzkyMzMxMDBDMzc4ODQgLyog
UmVuZGVyU2VsZWN0aW9uSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW5kZXJTZWxlY3Rpb25JbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMTMx
NjNEMTZFRDBDQzgwMDM1Q0MwNCAvKiBQbGF0Zm9ybUNBRmlsdGVycy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUNBRmlsdGVycy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjEzMTYzRjE2RUQwQ0RFMDAzNUNDMDQgLyogUGxhdGZvcm1DQUZpbHRl
cnNDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBsYXRm
b3JtQ0FGaWx0ZXJzQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDIw
NCw2ICsyMDIwNiw3IEBACiAJCQkJNjVCRjAyMkEwOTc0ODE2MzAwQzQzMTk2IC8qIEZyYW1lLmgg
Ki8sCiAJCQkJOTc0QTg2MjAxNEI3QURCQjAwM0ZEQzc2IC8qIEZyYW1lRGVzdHJ1Y3Rpb25PYnNl
cnZlci5jcHAgKi8sCiAJCQkJOTc0QTg2MjExNEI3QURCQjAwM0ZEQzc2IC8qIEZyYW1lRGVzdHJ1
Y3Rpb25PYnNlcnZlci5oICovLAorCQkJCTBGMTE3ODE2MjJFM0M0N0UwMDhCRDU3MCAvKiBGcmFt
ZUlkZW50aWZpZXIuaCAqLywKIAkJCQlDNENENjI5ODE4MzgzNzY2MDA3RUJBRjEgLyogRnJhbWVT
bmFwc2hvdHRpbmcuY3BwICovLAogCQkJCUM0Q0Q2Mjk5MTgzODM3NjYwMDdFQkFGMSAvKiBGcmFt
ZVNuYXBzaG90dGluZy5oICovLAogCQkJCTY1QTIxNDgyMDk3QTNGNTMwMEI5MDUwQSAvKiBGcmFt
ZVRyZWUuY3BwICovLApAQCAtMjkyNTUsNiArMjkyNTgsNyBAQAogCQkJCUE4NTMxMjNEMTFEMDQ3
MUIwMEQ0RDA3NyAvKiBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCTY1QkYwMjJGMDk3NDgxNjMwMEM0MzE5NiAvKiBGcmFtZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTc0QTg2MjMxNEI3QURCQjAwM0ZEQzc2IC8qIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZl
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYxMTc4MTgyMkUzQzQ3RjAwOEJENTcwIC8qIEZyYW1l
SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2RDM3M0MwQURCQTVERTAwQTQ1NTRE
IC8qIEZyYW1lTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTZEMzczRTBBREJBNURFMDBB
NDU1NEQgLyogRnJhbWVMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUQwMDBFQkEz
MTFCREFGRDQwMEM0NzcyNiAvKiBGcmFtZUxvYWRlclN0YXRlTWFjaGluZS5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3BwCmluZGV4IDY5NjMwMzMwYjVkNzkzMGQ3
ZDdhYWYxZGRiNGE4OWRmYjYwZGRkY2MuLjZkMDM2MmU5NzY0MTg4YjYwODRjYmFhOGNjMTQyZDRk
MzkxZjVhODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3BwCkBAIC03MSw3ICs3MSw3
IEBAIFN0cmluZyBDb29raWVKYXI6OmNvb2tpZXMoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBV
UkwmIHVybCkgY29uc3QKIAogICAgIGF1dG8gaW5jbHVkZVNlY3VyZUNvb2tpZXMgPSBzaG91bGRJ
bmNsdWRlU2VjdXJlQ29va2llcyhkb2N1bWVudCwgdXJsKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2
NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAg
ICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEOwogICAgIGlmIChhdXRvKiBmcmFtZSA9
IGRvY3VtZW50LmZyYW1lKCkpIHsKICAgICAgICAgZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5j
bGllbnQoKS5mcmFtZUlEKCk7CkBAIC05NCw3ICs5NCw3IEBAIENvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFByb3h5IENvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkoY29uc3Qg
RG9jCiB7CiAgICAgVHJhY2VTY29wZSBzY29wZShGZXRjaENvb2tpZXNTdGFydCwgRmV0Y2hDb29r
aWVzRW5kKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFs
PEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
cGFnZUlEOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKICAgICAg
ICAgZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CkBAIC0xMDYs
NyArMTA2LDcgQEAgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkgQ29va2llSmFyOjpjb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eShjb25zdCBEb2MKIAogdm9pZCBDb29raWVKYXI6OnNl
dENvb2tpZXMoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5n
JiBjb29raWVTdHJpbmcpCiB7Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAg
T3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiBwYWdlSUQ7CiAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkg
ewogICAgICAgICBmcmFtZUlEID0gZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKTsK
QEAgLTEyOCw3ICsxMjgsNyBAQCBib29sIENvb2tpZUphcjo6Y29va2llc0VuYWJsZWQoY29uc3Qg
RG9jdW1lbnQmKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RkOjpwYWlyPFN0cmlu
ZywgU2VjdXJlQ29va2llc0FjY2Vzc2VkPiBDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNs
dWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKK3N0ZDo6cGFpcjxT
dHJpbmcsIFNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZShjb25zdCBQQUw6OlNlc3Npb25JRCYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0
eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRp
b25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBw
YWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAog
ewogICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbV9zdG9yYWdlU2Vzc2lvblByb3ZpZGVyLT5zdG9y
YWdlU2Vzc2lvbigpKSB7CiAgICAgICAgIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IHJlc3VsdCA9
IHNlc3Npb24tPmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGZpcnN0UGFydHksIHNhbWVT
aXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKQEAg
LTE0MSw3ICsxNDEsNyBAQCBzdGQ6OnBhaXI8U3RyaW5nLCBTZWN1cmVDb29raWVzQWNjZXNzZWQ+
IENvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdQogCiBTdHJpbmcgQ29va2ll
SmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNv
bnN0IFVSTCYgdXJsKSBjb25zdAogewotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOwor
ICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdl
SWRlbnRpZmllcj4gcGFnZUlEOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1l
KCkpIHsKICAgICAgICAgZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlE
KCk7CkBAIC0xNTYsNyArMTU2LDcgQEAgU3RyaW5nIENvb2tpZUphcjo6Y29va2llUmVxdWVzdEhl
YWRlckZpZWxkVmFsdWUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHUKIAogYm9vbCBD
b29raWVKYXI6OmdldFJhd0Nvb2tpZXMoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBV
UkwmIHVybCwgVmVjdG9yPENvb2tpZT4mIGNvb2tpZXMpIGNvbnN0CiB7Ci0gICAgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlE
OwogICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7CiAgICAgaWYgKGF1dG8qIGZy
YW1lID0gZG9jdW1lbnQuZnJhbWUoKSkgewogICAgICAgICBmcmFtZUlEID0gZnJhbWUtPmxvYWRl
cigpLmNsaWVudCgpLmZyYW1lSUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Db29raWVKYXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuaAppbmRleCAy
ODFmODRjNDkwMDUyNjdlYTA1NGQ1MWQ3NjhhOWViNzMyY2JjMjM5Li44MDg3YjhjZDViN2NmNGY1
NjkzZTJmN2U5NWQ4ZWY2YTE3OTg0NmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvQ29va2llSmFyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5oCkBA
IC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiRnJhbWVJZGVudGlm
aWVyLmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNTksNyArNjAsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldENvb2tpZXMoRG9jdW1lbnQmLCBjb25zdCBVUkwm
LCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0cmluZyk7CiAKICAgICB2aXJ0dWFsIGJvb2wgY29va2ll
c0VuYWJsZWQoY29uc3QgRG9jdW1lbnQmKSBjb25zdDsKLSAgICB2aXJ0dWFsIHN0ZDo6cGFpcjxT
dHJpbmcsIFNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFs
dWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKKyAgICB2
aXJ0dWFsIHN0ZDo6cGFpcjxTdHJpbmcsIFNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gY29va2llUmVx
dWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZyYW1l
SWRlbnRpZmllcj4sIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNvb2tp
ZXMpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IERvY3VtZW50
JiwgY29uc3QgVVJMJiwgVmVjdG9yPENvb2tpZT4mKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQg
ZGVsZXRlQ29va2llKGNvbnN0IERvY3VtZW50JiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBj
b29raWVOYW1lKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJh
bWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVy
Q2xpZW50LmgKaW5kZXggMWY3YTI5YzRiMzAxYTM2NTgyMmU0MjMzYjQxNWRkMWMwMDE5MTMyZC4u
ZTU5ZDE3MGRmMGJhMDhhMmM0ZjYwM2ZkY2ZhODM1N2RmZjg5YmRiOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0zMiw3ICszMiw3IEBA
IGNsYXNzIFdFQkNPUkVfRVhQT1JUIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRnJh
bWVMb2FkZXJDbGllbnQgewogCiAgICAgdm9pZCBmcmFtZUxvYWRlckRlc3Ryb3llZCgpIG92ZXJy
aWRlIHsgfQogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+
IGZyYW1lSUQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KICAgICBP
cHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
V1RGOjpudWxsb3B0OyB9CiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Qgb3Zl
cnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNs
aWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXgg
MDc0ODc2MTE4ZGM2OTFhYTdjOGFkYTk3Yjc5NzEzNzMzYTI4YTY5NS4uZWQ4NDdjYjA0Nzg1MjVl
NTIxMGYxY2M4NWI3ZmVjNTNjZTcyMjJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyQ2xpZW50LmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNs
dWRlICJGcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAj
aW5jbHVkZSAiTGF5b3V0TWlsZXN0b25lLmgiCiAjaW5jbHVkZSAiTGlua0ljb24uaCIKQEAgLTEy
OCw3ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG1ha2VSZXByZXNlbnRhdGlv
bihEb2N1bWVudExvYWRlciopID0gMDsKIAogICAgIHZpcnR1YWwgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRCgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIE9wdGlvbmFsPHVpbnQ2NF90
PiBmcmFtZUlEKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgT3B0aW9uYWw8RnJhbWVJZGVudGlm
aWVyPiBmcmFtZUlEKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKCkgY29uc3QgPSAwOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcAppbmRleCA2MmJhMmRkMmY3NzBhNDA2
ZTE1YzkwMzk1ZTQxN2M0MmMyOGY1MjBlLi5iZDczOGUwODk1N2UyZmQ4NGRhMDU1YWI0NTNlMWE0
M2UwYjI4OGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3Bw
CkBAIC00MSw3ICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIE5hdmlnYXRpb25BY3Rpb246
OlJlcXVlc3Rlcjo6UmVxdWVzdGVyKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IG1f
dXJsIHsgVVJMIHsgZG9jdW1lbnQudXJsKCkgfSB9CiAgICAgLCBtX29yaWdpbiB7IG1ha2VSZWZQ
dHIoZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKSkgfQotICAgICwgbV9wYWdlSURBbmRGcmFtZUlE
UGFpciB7IGRvY3VtZW50LmZyYW1lKCkgPyBzdGQ6Om1ha2VfcGFpcihkb2N1bWVudC5mcmFtZSgp
LT5sb2FkZXIoKS5jbGllbnQoKS5wYWdlSUQoKS52YWx1ZU9yKFBhZ2VJZGVudGlmaWVyIHsgfSks
IGRvY3VtZW50LmZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKS52YWx1ZU9yKDAp
KSA6IHN0ZDo6bWFrZV9wYWlyPFBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdD4oeyB9LCAwKSB9Cisg
ICAgLCBtX3BhZ2VJREFuZEZyYW1lSURQYWlyIHsgZG9jdW1lbnQuZnJhbWUoKSA/IHN0ZDo6bWFr
ZV9wYWlyKGRvY3VtZW50LmZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgpLnBhZ2VJRCgpLnZhbHVl
T3IoUGFnZUlkZW50aWZpZXIgeyB9KSwgZG9jdW1lbnQuZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50
KCkuZnJhbWVJRCgpLnZhbHVlT3IoRnJhbWVJZGVudGlmaWVyIHsgfSkpIDogc3RkOjptYWtlX3Bh
aXI8UGFnZUlkZW50aWZpZXIsIEZyYW1lSWRlbnRpZmllcj4oeyB9LCB7IH0pIH0KIHsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmgKaW5kZXggMzVjOTYxYWExNTQ3
YjhlYTBjNGI5MDQwNzAzYzg1ZDNlYThlN2U1Ny4uMGEwMjFkNGZjNzlkOTZiM2YyYTg4YmFlNDA0
NTYxOTEwNGNlOTBiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRp
b25BY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5o
CkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJBZENsaWNrQXR0cmlidXRpb24uaCIKICNp
bmNsdWRlICJCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiRnJhbWVJZGVu
dGlmaWVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIkxheW91
dFBvaW50LmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKQEAgLTY0LDcgKzY1LDcgQEAg
cHVibGljOgogICAgIE5hdmlnYXRpb25BY3Rpb24oTmF2aWdhdGlvbkFjdGlvbiYmKTsKICAgICBO
YXZpZ2F0aW9uQWN0aW9uJiBvcGVyYXRvcj0oTmF2aWdhdGlvbkFjdGlvbiYmKTsKIAotICAgIHVz
aW5nIFBhZ2VJREFuZEZyYW1lSURQYWlyID0gc3RkOjpwYWlyPFBhZ2VJZGVudGlmaWVyLCB1aW50
NjRfdCAvKiBmcmFtZUlEICovPjsKKyAgICB1c2luZyBQYWdlSURBbmRGcmFtZUlEUGFpciA9IHN0
ZDo6cGFpcjxQYWdlSWRlbnRpZmllciwgRnJhbWVJZGVudGlmaWVyPjsgLy8gRklYTUU6IFVzZSBH
bG9iYWxGcmFtZUlkZW50aWZpZXIuCiAgICAgY2xhc3MgUmVxdWVzdGVyIHsKICAgICBwdWJsaWM6
CiAgICAgICAgIFJlcXVlc3Rlcihjb25zdCBEb2N1bWVudCYpOwpAQCAtNzIsNyArNzMsNyBAQCBw
dWJsaWM6CiAgICAgICAgIGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7IH0K
ICAgICAgICAgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyBy
ZXR1cm4gKm1fb3JpZ2luOyB9CiAgICAgICAgIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCgpIGNvbnN0
IHsgcmV0dXJuIG1fcGFnZUlEQW5kRnJhbWVJRFBhaXIuZmlyc3Q7IH0KLSAgICAgICAgdWludDY0
X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUlEQW5kRnJhbWVJRFBhaXIuc2Vjb25k
OyB9CisgICAgICAgIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9w
YWdlSURBbmRGcmFtZUlEUGFpci5zZWNvbmQ7IH0KICAgICBwcml2YXRlOgogICAgICAgICBVUkwg
bV91cmw7CiAgICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gbV9vcmlnaW47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCBjMjVhMDI0YmMwNjNjNThmM2IyOGJkNzljYmIwMzM4
NDQyNmM4YzVlLi5lOGE1ZGUzM2VkMTc5MjZjOWFhODU2YjA4MTZiNGVlY2Y4MmM5NGY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJE
aXNwbGF5UmVmcmVzaE1vbml0b3IuaCIKICNpbmNsdWRlICJEb2N1bWVudFN0b3JhZ2VBY2Nlc3Mu
aCIKICNpbmNsdWRlICJGb2N1c0RpcmVjdGlvbi5oIgorI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmll
ci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0
LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllci5oIgpAQCAtNDg2LDggKzQ4Nyw4IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIFJlZlB0cjxJY29uPiBjcmVhdGVJY29uRm9yRmlsZXMoY29uc3QgVmVj
dG9yPFN0cmluZz4mIC8qIGZpbGVuYW1lcyAqLykgPSAwOwogCiAjaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKLSAgICB2aXJ0dWFsIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhSZWdp
c3RyYWJsZURvbWFpbiYmIC8qc3ViRnJhbWVEb21haW4qLywgUmVnaXN0cmFibGVEb21haW4mJiAv
KnRvcEZyYW1lRG9tYWluKi8sIHVpbnQ2NF90IC8qZnJhbWVJRCovLCBQYWdlSWRlbnRpZmllciwg
V1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7
IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsgfQotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3Rv
cmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIC8qc3ViRnJhbWVEb21haW4qLywgUmVnaXN0
cmFibGVEb21haW4mJiAvKnRvcEZyYW1lRG9tYWluKi8sIHVpbnQ2NF90IC8qZnJhbWVJRCovLCBQ
YWdlSWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NX
YXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5k
bGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOjpObywgU3Rv
cmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpObyk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaGFzU3Rv
cmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIC8qc3ViRnJhbWVEb21haW4qLywgUmVnaXN0
cmFibGVEb21haW4mJiAvKnRvcEZyYW1lRG9tYWluKi8sIEZyYW1lSWRlbnRpZmllciwgUGFnZUlk
ZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiAvKnN1YkZyYW1lRG9tYWlu
Ki8sIFJlZ2lzdHJhYmxlRG9tYWluJiYgLyp0b3BGcmFtZURvbWFpbiovLCBGcmFtZUlkZW50aWZp
ZXIsIFBhZ2VJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFj
Y2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlv
bkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQ6Ok5v
LCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd246Ok5vKTsgfQogI2VuZGlmCiAKICNpZiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVJZGVudGlmaWVyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjVkNDk2N2FiMWI0NTQyMzU4ZTg2NzI0MDVjYjY2YjdkNzhkNzIyNgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVJZGVudGlmaWVyLmgKQEAg
LTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3Rm
L09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIEZyYW1l
SWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgRnJhbWVJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRp
ZmllcjxGcmFtZUlkZW50aWZpZXJUeXBlPjsKKworaW5saW5lIEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlkZW50aWZpZXJGcm9tSUQodWludDY0X3QgZnJhbWVJRCkKK3sKKyAgICByZXR1cm4gbWFrZU9i
amVjdElkZW50aWZpZXI8RnJhbWVJZGVudGlmaWVyVHlwZT4oZnJhbWVJRCk7Cit9CisKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2xvYmFsRnJhbWVJZGVudGlmaWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0dsb2JhbEZyYW1lSWRlbnRpZmllci5oCmluZGV4IDBkN2IzZGJm
NzJmODFlNGZkNjJhNzNmZWQyNTgxY2VhZWUxNjdiNGEuLjcwOTM0NjdiMTJmODU2NjFhOGY3ZmFk
ZjAyYjM1Nzc5OTRlYjZhMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2xvYmFs
RnJhbWVJZGVudGlmaWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9HbG9iYWxGcmFtZUlk
ZW50aWZpZXIuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUg
IkZyYW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCiAjaW5jbHVk
ZSA8d3RmL09wdGlvbmFsLmg+CiAKQEAgLTMzLDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogLy8gRnJhbWUgaWRlbnRpZmllciB0aGF0IGlzIHVuaXF1ZSBhY3Jvc3MgYWxsIFdlYkNvbnRl
bnQgcHJvY2Vzc2VzLgogc3RydWN0IEdsb2JhbEZyYW1lSWRlbnRpZmllciB7CiAgICAgUGFnZUlk
ZW50aWZpZXIgcGFnZUlEOwotICAgIHVpbnQ2NF90IGZyYW1lSUQ7CisgICAgRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQ7CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlv
bmFsPEdsb2JhbEZyYW1lSWRlbnRpZmllcj4gZGVjb2RlKERlY29kZXImKTsKQEAgLTUzLDcgKzU0
LDcgQEAgT3B0aW9uYWw8R2xvYmFsRnJhbWVJZGVudGlmaWVyPiBHbG9iYWxGcmFtZUlkZW50aWZp
ZXI6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIGlmICghcGFnZUlEKQogICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7Cisg
ICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEOwogICAgIGRlY29kZXIgPj4gZnJh
bWVJRDsKICAgICBpZiAoIWZyYW1lSUQpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Nvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Nvb2tp
ZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5LmgKaW5kZXggYTMzMDE5ZjlkNWIyYWVkMjYwNzQ2Njk0
MDFmZDczMjJmMDJkNTE1Ny4uN2ZhOTAxNDNlNGZlMTc3YTc0YjI4NDA3MWI4YzJkNmViNTY4MmEw
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Db29raWVSZXF1
ZXN0SGVhZGVyRmllbGRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaApAQCAtMjYsNiArMjYsNyBAQAogI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlICJDb29raWVKYXIuaCIKKyNpbmNsdWRlICJGcmFtZUlkZW50
aWZpZXIuaCIKICNpbmNsdWRlICJQYWdlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNhbWVTaXRl
SW5mby5oIgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KQEAgLTM4LDcgKzM5LDcgQEAgc3Ry
dWN0IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5IHsKICAgICBVUkwgZmlyc3RQYXJ0eTsK
ICAgICBTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvOwogICAgIFVSTCB1cmw7Ci0gICAgT3B0aW9u
YWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFt
ZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7CiAgICAgSW5jbHVkZVNl
Y3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMgeyBJbmNsdWRlU2VjdXJlQ29va2llczo6
Tm8gfTsKIApAQCAtNzgsNyArNzksNyBAQCBPcHRpb25hbDxDb29raWVSZXF1ZXN0SGVhZGVyRmll
bGRQcm94eT4gQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHk6OmRlY29kZShEZQogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUodXJsKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAot
ICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFsPE9wdGlvbmFsPEZy
YW1lSWRlbnRpZmllcj4+IGZyYW1lSUQ7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShmcmFtZUlE
KSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIApAQCAtOTEsNyArOTIsNyBAQCBPcHRp
b25hbDxDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eT4gQ29va2llUmVxdWVzdEhlYWRlckZp
ZWxkUHJveHk6OmRlY29kZShEZQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5jbHVkZVNlY3Vy
ZUNvb2tpZXMpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgcmV0dXJuIENv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5IHsgKnNlc3Npb25JRCwgV1RGTW92ZShmaXJzdFBh
cnR5KSwgV1RGTW92ZShzYW1lU2l0ZUluZm8pLCBXVEZNb3ZlKHVybCksIGZyYW1lSUQsICpwYWdl
SUQsIGluY2x1ZGVTZWN1cmVDb29raWVzIH07CisgICAgcmV0dXJuIENvb2tpZVJlcXVlc3RIZWFk
ZXJGaWVsZFByb3h5IHsgKnNlc3Npb25JRCwgV1RGTW92ZShmaXJzdFBhcnR5KSwgV1RGTW92ZShz
YW1lU2l0ZUluZm8pLCBXVEZNb3ZlKHVybCksICpmcmFtZUlELCAqcGFnZUlELCBpbmNsdWRlU2Vj
dXJlQ29va2llcyB9OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5j
cHAKaW5kZXggZTcxOTA3ZDk3N2RmNTkyNzNmNDkxOWM1NjUxYWYxNzM2ZmIxYTY3Zi4uZjRiMDlh
OGQ1ZTFhZDk0ODRlZDdiMzJlYjU2ZTM5NmY3NWRhYzkwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcApA
QCAtNzksMTIgKzc5LDEyIEBAIGJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzaG91bGRCbG9j
a1RoaXJkUGFydHlDb29raWVzQnV0S2VlcEZpcnN0UGFydHlDb29raWVzCiAgICAgcmV0dXJuIG1f
cmVnaXN0cmFibGVEb21haW5zVG9CbG9ja0J1dEtlZXBDb29raWVzRm9yLmNvbnRhaW5zKHJlZ2lz
dHJhYmxlRG9tYWluKTsKIH0KIAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNob3VsZEJs
b2NrQ29va2llcyhjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIE9wdGlvbmFsPHVpbnQ2
NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEKSBjb25zdAorYm9v
bCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNob3VsZEJsb2NrQ29va2llcyhjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0
aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkgY29uc3QKIHsKICAgICByZXR1cm4gc2hvdWxk
QmxvY2tDb29raWVzKHJlcXVlc3QuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgcmVxdWVzdC51cmwo
KSwgZnJhbWVJRCwgcGFnZUlEKTsKIH0KICAgICAKLWJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5Rm9yQ29va2llcywgY29u
c3QgVVJMJiByZXNvdXJjZSwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiBwYWdlSUQpIGNvbnN0Citib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
c2hvdWxkQmxvY2tDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eUZvckNvb2tpZXMsIGNvbnN0
IFVSTCYgcmVzb3VyY2UsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkgY29uc3QKIHsKICAgICBSZWdpc3RyYWJsZURvbWFp
biBmaXJzdFBhcnR5RG9tYWluIHsgZmlyc3RQYXJ0eUZvckNvb2tpZXMgfTsKICAgICBpZiAoZmly
c3RQYXJ0eURvbWFpbi5pc0VtcHR5KCkpCkBAIC0xMzYsNyArMTM2LDcgQEAgdm9pZCBOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OnJlbW92ZVByZXZhbGVudERvbWFpbnMoY29uc3QgVmVjdG9yPFJlZ2lz
dHJhYmxlRG9tYWkKICAgICB9CiB9CiAKLWJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpoYXNT
dG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPHVpbnQ2NF90
PiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQpIGNvbnN0Citib29sIE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVz
b3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBP
cHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkg
Y29uc3QKIHsKICAgICBpZiAoZnJhbWVJRCkgewogICAgICAgICBhdXRvIGZyYW1lc0dyYW50ZWRJ
dGVyYXRvciA9IG1fZnJhbWVzR3JhbnRlZFN0b3JhZ2VBY2Nlc3MuZmluZChwYWdlSUQpOwpAQCAt
MTY5LDcgKzE2OSw3IEBAIFZlY3RvcjxTdHJpbmc+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0
QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoKSBjb25zdAogICAgIHJldHVybiBlbnRyaWVzOwogfQog
ICAgIAotdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgUGFnZUlk
ZW50aWZpZXIgcGFnZUlEKQordm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdyYW50U3RvcmFn
ZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZp
ZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKIHsKICAgICBpZiAoIWZyYW1lSUQp
IHsKICAgICAgICAgaWYgKGZpcnN0UGFydHlEb21haW4uaXNFbXB0eSgpKQpAQCAtMTkxLDcgKzE5
MSw3IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpncmFudFN0b3JhZ2VBY2Nlc3MoY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlCiAKICAgICBhdXRvIHBhZ2VzR3JhbnRlZEl0
ZXJhdG9yID0gbV9mcmFtZXNHcmFudGVkU3RvcmFnZUFjY2Vzcy5maW5kKHBhZ2VJRCk7CiAgICAg
aWYgKHBhZ2VzR3JhbnRlZEl0ZXJhdG9yID09IG1fZnJhbWVzR3JhbnRlZFN0b3JhZ2VBY2Nlc3Mu
ZW5kKCkpIHsKLSAgICAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVnaXN0cmFibGVEb21haW4sIERl
ZmF1bHRIYXNoPHVpbnQ2NF90Pjo6SGFzaCwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRy
YWl0czx1aW50NjRfdD4+IGVudHJ5OworICAgICAgICBIYXNoTWFwPEZyYW1lSWRlbnRpZmllciwg
UmVnaXN0cmFibGVEb21haW4+IGVudHJ5OwogICAgICAgICBlbnRyeS5hZGQoZnJhbWVJRC52YWx1
ZSgpLCByZXNvdXJjZURvbWFpbik7CiAgICAgICAgIG1fZnJhbWVzR3JhbnRlZFN0b3JhZ2VBY2Nl
c3MuYWRkKHBhZ2VJRCwgZW50cnkpOwogICAgIH0gZWxzZSB7CkBAIC0yMDMsNyArMjAzLDcgQEAg
dm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgcmVzb3VyY2UKICAgICB9CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uOjpyZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgUGFn
ZUlkZW50aWZpZXIgcGFnZUlEKQordm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnJlbW92ZVN0
b3JhZ2VBY2Nlc3NGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZp
ZXIgcGFnZUlEKQogewogICAgIGF1dG8gaXRlcmF0aW9uID0gbV9mcmFtZXNHcmFudGVkU3RvcmFn
ZUFjY2Vzcy5maW5kKHBhZ2VJRCk7CiAgICAgaWYgKGl0ZXJhdGlvbiA9PSBtX2ZyYW1lc0dyYW50
ZWRTdG9yYWdlQWNjZXNzLmVuZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKaW5kZXggYzhlZjhmN2JhYjc1ZmQ5
OTc5YjI4MmY1ZjVhODcwMmVmODBjODhiMy4uOGRkZjU1YjRhMWZjYTVjNTRhNDk5MGEzYTM3YzA1
OTI2NjhmZTAwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9O
ZXR3b3JrU3RvcmFnZVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9u
Y2UKIAogI2luY2x1ZGUgIkNyZWRlbnRpYWxTdG9yYWdlLmgiCisjaW5jbHVkZSAiRnJhbWVJZGVu
dGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJSZWdpc3Ry
YWJsZURvbWFpbi5oIgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KQEAgLTEyMyw3ICsxMjQs
NyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjb29raWVzRW5hYmxlZCgpIGNv
bnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29va2llKGNvbnN0IENvb2tpZSYpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29va2llcyhjb25zdCBWZWN0b3I8Q29va2llPiYs
IGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgbWFpbkRvY3VtZW50VVJMKTsKLSAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9w
dGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJikgY29uc3Q7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4s
IE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBkZWxldGVDb29raWUoY29uc3QgQ29va2llJik7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBkZWxldGVDb29raWUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJikgY29u
c3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVBbGxDb29raWVzKCk7CkBAIC0xMzIs
MjYgKzEzMywyNiBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVDb29r
aWVzRm9ySG9zdG5hbWVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjb29raWVIb3N0TmFtZXMsIElu
Y2x1ZGVIdHRwT25seUNvb2tpZXMpOwogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxDb29raWU+
IGdldEFsbENvb2tpZXMoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8Q29va2llPiBnZXRD
b29raWVzKGNvbnN0IFVSTCYpOwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgZ2V0UmF3Q29va2ll
cyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYs
IE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIFZl
Y3RvcjxDb29raWU+JikgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBnZXRSYXdDb29r
aWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJM
JiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBW
ZWN0b3I8Q29va2llPiYpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZmx1c2hDb29r
aWVTdG9yZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2V0SG9zdG5hbWVzV2l0aENvb2tp
ZXMoSGFzaFNldDxTdHJpbmc+JiBob3N0bmFtZXMpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6
cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZXNGb3JET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7
Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llUmVxdWVz
dEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUlu
Zm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFn
ZUlkZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvckRPTShjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZyYW1l
SWRlbnRpZmllcj4sIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNvb2tp
ZXMpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0
aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7CiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llUmVxdWVzdEhlYWRl
ckZpZWxkVmFsdWUoY29uc3QgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkmKSBjb25zdDsK
IAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgT3B0aW9u
YWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPikgY29uc3Q7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJz
dFBhcnR5Rm9yQ29va2llcywgY29uc3QgVVJMJiByZXNvdXJjZSwgT3B0aW9uYWw8dWludDY0X3Q+
IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPikgY29uc3Q7CisgICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgT3B0
aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+KSBjb25zdDsK
KyAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNob3VsZEJsb2NrQ29va2llcyhjb25zdCBVUkwmIGZp
cnN0UGFydHlGb3JDb29raWVzLCBjb25zdCBVUkwmIHJlc291cmNlLCBPcHRpb25hbDxGcmFtZUlk
ZW50aWZpZXI+LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4pIGNvbnN0OwogICAgIFdFQkNPUkVf
RVhQT1JUIGJvb2wgc2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2hvdWxkQmxvY2tUaGly
ZFBhcnR5Q29va2llc0J1dEtlZXBGaXJzdFBhcnR5Q29va2llc0Zvcihjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UHJldmFsZW50RG9t
YWluc1RvQmxvY2tBbmREZWxldGVDb29raWVzRm9yKGNvbnN0IFZlY3RvcjxSZWdpc3RyYWJsZURv
bWFpbj4mKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFByZXZhbGVudERvbWFpbnNUb0Js
b2NrQnV0S2VlcENvb2tpZXNGb3IoY29uc3QgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiYpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoT3B0
aW9uYWw8U2Vjb25kcz4pOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlUHJldmFsZW50
RG9tYWlucyhjb25zdCBWZWN0b3I8UmVnaXN0cmFibGVEb21haW4+JiBkb21haW5zKTsKLSAgICBX
RUJDT1JFX0VYUE9SVCBib29sIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURv
bWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyKSBjb25zdDsK
KyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQ
YXJ0eURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgUGFnZUlkZW50aWZpZXIpIGNv
bnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxTdHJpbmc+IGdldEFsbFN0b3JhZ2VBY2Nl
c3NFbnRyaWVzKCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBncmFudFN0b3JhZ2VB
Y2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1l
SUQsIFBhZ2VJZGVudGlmaWVyKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVN0b3Jh
Z2VBY2Nlc3NGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllcik7CisgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0
eURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgUGFnZUlkZW50aWZpZXIpOworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKEZyYW1lSWRl
bnRpZmllciwgUGFnZUlkZW50aWZpZXIpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJQ
YWdlU3BlY2lmaWNEYXRhRm9yUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQYWdlSWRlbnRpZmllcik7
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVBbGxTdG9yYWdlQWNjZXNzKCk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNl
cyhTZWNvbmRzKTsKQEAgLTE4NSw3ICsxODYsNyBAQCBwcml2YXRlOgogICAgIE9wdGlvbmFsPFNl
Y29uZHM+IGNsaWVudFNpZGVDb29raWVDYXAoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0
UGFydHksIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPikgY29uc3Q7CiAgICAgSGFzaFNldDxSZWdp
c3RyYWJsZURvbWFpbj4gbV9yZWdpc3RyYWJsZURvbWFpbnNUb0Jsb2NrQW5kRGVsZXRlQ29va2ll
c0ZvcjsKICAgICBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiBtX3JlZ2lzdHJhYmxlRG9tYWlu
c1RvQmxvY2tCdXRLZWVwQ29va2llc0ZvcjsKLSAgICBIYXNoTWFwPFBhZ2VJZGVudGlmaWVyLCBI
YXNoTWFwPHVpbnQ2NF90LCBSZWdpc3RyYWJsZURvbWFpbiwgRGVmYXVsdEhhc2g8dWludDY0X3Q+
OjpIYXNoLCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPHVpbnQ2NF90Pj4+IG1f
ZnJhbWVzR3JhbnRlZFN0b3JhZ2VBY2Nlc3M7CisgICAgSGFzaE1hcDxQYWdlSWRlbnRpZmllciwg
SGFzaE1hcDxGcmFtZUlkZW50aWZpZXIsIFJlZ2lzdHJhYmxlRG9tYWluPj4gbV9mcmFtZXNHcmFu
dGVkU3RvcmFnZUFjY2VzczsKICAgICBIYXNoTWFwPFBhZ2VJZGVudGlmaWVyLCBIYXNoTWFwPFJl
Z2lzdHJhYmxlRG9tYWluLCBSZWdpc3RyYWJsZURvbWFpbj4+IG1fcGFnZXNHcmFudGVkU3RvcmFn
ZUFjY2VzczsKICAgICBPcHRpb25hbDxTZWNvbmRzPiBtX2NhY2hlTWF4QWdlQ2FwRm9yUHJldmFs
ZW50UmVzb3VyY2VzIHsgfTsKICAgICBPcHRpb25hbDxTZWNvbmRzPiBtX2FnZUNhcEZvckNsaWVu
dFNpZGVDb29raWVzIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tCmlu
ZGV4IDg0YjczYjgzNDRiMGNhYjVhOTA0OGI0ODVlZmIxNzZkNWQzNDA1ODEuLjg1ZjRjNjJlM2Jm
NzRjMGRlNTQzNWYyZjAwYmU5ODRkODJlYWVmNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNl
c3Npb25Db2NvYS5tbQpAQCAtMjk0LDcgKzI5NCw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNBcnJh
eT4gZmlsdGVyQ29va2llcyhOU0FycmF5ICp1bmZpbHRlcmVkQ29va2llcywgT3B0aW9uYWw8U2Vj
CiAgICAgcmV0dXJuIGZpbHRlcmVkQ29va2llczsKIH0KIAotc3RhdGljIE5TQXJyYXkgKmNvb2tp
ZXNGb3JVUkwoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwm
IHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVy
PiBwYWdlSUQpCitzdGF0aWMgTlNBcnJheSAqY29va2llc0ZvclVSTChjb25zdCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNp
dGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50
aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQpCiB7CiAjaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBpZiAoc2Vzc2lvbi5zaG91bGRC
bG9ja0Nvb2tpZXMoZmlyc3RQYXJ0eSwgdXJsLCBmcmFtZUlELCBwYWdlSUQpKQpAQCAtMzA3LDcg
KzMwNyw3IEBAIHN0YXRpYyBOU0FycmF5ICpjb29raWVzRm9yVVJMKGNvbnN0IE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmCiB9CiAKIGVudW0gSW5jbHVkZUhUVFBP
bmx5T3JOb3QgeyBEb05vdEluY2x1ZGVIVFRQT25seSwgSW5jbHVkZUhUVFBPbmx5IH07Ci1zdGF0
aWMgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvclNlc3Npb24oY29uc3QgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0
X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVIVFRQ
T25seU9yTm90IGluY2x1ZGVIVFRQT25seSwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNl
Y3VyZUNvb2tpZXMpCitzdGF0aWMgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvclNl
c3Npb24oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVy
bCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRp
Zmllcj4gcGFnZUlELCBJbmNsdWRlSFRUUE9ubHlPck5vdCBpbmNsdWRlSFRUUE9ubHksIEluY2x1
ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKQogewogICAgIEFTU0VSVChoYXNQ
cm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsK
IApAQCAtMzYzLDEyICszNjMsMTIgQEAgc3RhdGljIHZvaWQgZGVsZXRlQWxsSFRUUENvb2tpZXMo
Q0ZIVFRQQ29va2llU3RvcmFnZVJlZiBjb29raWVTdG9yYWdlKQogICAgIENGSFRUUENvb2tpZVN0
b3JhZ2VEZWxldGVBbGxDb29raWVzKGNvb2tpZVN0b3JhZ2UpOwogfQogCi1zdGQ6OnBhaXI8U3Ry
aW5nLCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNGb3JET00oY29uc3QgVVJM
JiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJM
JiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmll
cj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29u
c3QKK3N0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2ll
c0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNp
dGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlE
LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBp
bmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKIHsKICAgICByZXR1cm4gY29va2llc0ZvclNlc3Np
b24oKnRoaXMsIGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQs
IERvTm90SW5jbHVkZUhUVFBPbmx5LCBpbmNsdWRlU2VjdXJlQ29va2llcyk7CiB9CiAKLXN0ZDo6
cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llUmVxdWVzdEhl
YWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8m
IHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlE
LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBp
bmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKK3N0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJM
JiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJM
JiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tp
ZXMpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGNvb2tpZXNGb3JTZXNzaW9uKCp0aGlzLCBmaXJzdFBh
cnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlELCBJbmNsdWRlSFRUUE9ubHks
IGluY2x1ZGVTZWN1cmVDb29raWVzKTsKIH0KQEAgLTM3OCw3ICszNzgsNyBAQCBzdGQ6OnBhaXI8
U3RyaW5nLCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlKGNvbgogICAgIHJldHVybiBjb29raWVzRm9yU2Vzc2lvbigqdGhpcywgaGVhZGVy
RmllbGRQcm94eS5maXJzdFBhcnR5LCBoZWFkZXJGaWVsZFByb3h5LnNhbWVTaXRlSW5mbywgaGVh
ZGVyRmllbGRQcm94eS51cmwsIGhlYWRlckZpZWxkUHJveHkuZnJhbWVJRCwgaGVhZGVyRmllbGRQ
cm94eS5wYWdlSUQsIEluY2x1ZGVIVFRQT25seSwgaGVhZGVyRmllbGRQcm94eS5pbmNsdWRlU2Vj
dXJlQ29va2llcyk7CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVz
RnJvbURPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNp
dGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlv
bmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGNvbnN0IFN0cmluZyYgY29va2llU3RyKSBjb25z
dAordm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVS
TCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPiBwYWdlSUQsIGNvbnN0IFN0cmluZyYgY29va2llU3RyKSBjb25zdAogewogICAg
IEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jh
d0Nvb2tpZXMpKTsKIApAQCAtNDQzLDcgKzQ0Myw3IEBAIGJvb2wgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpjb29raWVzRW5hYmxlZCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29s
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQs
IFZlY3RvcjxDb29raWU+JiByYXdDb29raWVzKSBjb25zdAorYm9vbCBOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0
ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRp
Zmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgVmVjdG9yPENv
b2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0CiB7CiAgICAgcmF3Q29va2llcy5jbGVhcigpOwogICAg
IEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJDdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJDdXJsLmNwcAppbmRleCAzOTRjMzQ2MjY2
NDlkNWRlYTg2OWUwOTViZTBkOWZhZTdiMWE1ZWNiLi43MTk4YWRmMGI0MmZlZDBjYjQxODM0MGJl
MTc5YzNmOTdjOTk1MWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvQ29va2llSmFyQ3VybC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuY3BwCkBAIC01OSw3ICs1OSw3IEBAIHN0YXRpYyBT
dHJpbmcgY29va2llc0ZvclNlc3Npb24oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNz
aW9uLCBjb25zdCBVUkwmCiAgICAgcmV0dXJuIGNvb2tpZXMudG9TdHJpbmcoKTsKIH0KIAotdm9p
ZCBDb29raWVKYXJDdXJsOjpzZXRDb29raWVzRnJvbURPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNl
c3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZv
JiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQ
YWdlSWRlbnRpZmllcj4sIGNvbnN0IFN0cmluZyYgdmFsdWUpIGNvbnN0Cit2b2lkIENvb2tpZUph
ckN1cmw6OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vz
c2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBV
UkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdl
SWRlbnRpZmllcj4sIGNvbnN0IFN0cmluZyYgdmFsdWUpIGNvbnN0CiB7CiAgICAgVU5VU0VEX1BB
UkFNKGZyYW1lSUQpOwogCkBAIC04Miw3ICs4Miw3IEBAIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+
IENvb2tpZUphckN1cmw6OmNvb2tpZXNGb3JET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
CiAgICAgcmV0dXJuIHsgY29va2llc0ZvclNlc3Npb24oc2Vzc2lvbiwgZmlyc3RQYXJ0eSwgdXJs
LCBmYWxzZSksIGZhbHNlIH07CiB9CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IENvb2tpZUph
ckN1cmw6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUlu
Zm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFs
PFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAorc3Rk
OjpwYWlyPFN0cmluZywgYm9vbD4gQ29va2llSmFyQ3VybDo6Y29va2llUmVxdWVzdEhlYWRlckZp
ZWxkVmFsdWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25h
bDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdl
SUQsIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAogewogICAgIFVOVVNFRF9QQVJBTShmcmFt
ZUlEKTsKICAgICBVTlVTRURfUEFSQU0ocGFnZUlEKTsKQEAgLTExMiw3ICsxMTIsNyBAQCBib29s
IENvb2tpZUphckN1cmw6OmNvb2tpZXNFbmFibGVkKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lv
biYgc2Vzc2lvbikgY29uc3QKICAgICByZXR1cm4gc2Vzc2lvbi5jb29raWVEYXRhYmFzZSgpLmlz
RW5hYmxlZCgpOwogfQogCi1ib29sIENvb2tpZUphckN1cmw6OmdldFJhd0Nvb2tpZXMoY29uc3Qg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJh
bWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgVmVjdG9yPENvb2tpZT4mIHJh
d0Nvb2tpZXMpIGNvbnN0Citib29sIENvb2tpZUphckN1cmw6OmdldFJhd0Nvb2tpZXMoY29uc3Qg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZp
ZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFZlY3RvcjxDb29r
aWU+JiByYXdDb29raWVzKSBjb25zdAogewogICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKICAg
ICBVTlVTRURfUEFSQU0ocGFnZUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJDdXJsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3VybC5oCmluZGV4IDI0YTA1YTIyN2FlMDZhYmExMTQz
MTUyYThmYWM4NDgyOWUwMWY0MTAuLmU2MmJjNGEwN2U4MmUzZWNmN2NmMmY2OGE0MWU0YTJhZGE3
MGZiOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9D
b29raWVKYXJDdXJsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L0Nvb2tpZUphckN1cmwuaApAQCAtMjQsNiArMjQsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lu
Y2x1ZGUgIkZyYW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCiAj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgpAQCAtNDIs
MTUgKzQzLDE1IEBAIGVudW0gY2xhc3MgQ29va2llQWNjZXB0UG9saWN5OwogCiBjbGFzcyBDb29r
aWVKYXJDdXJsIHsKIHB1YmxpYzoKLSAgICBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVz
Rm9yRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0
eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNv
bnN0OwotICAgIHZvaWQgc2V0Q29va2llc0Zyb21ET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBV
UkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+
LCBjb25zdCBTdHJpbmcmKSBjb25zdDsKKyAgICBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29r
aWVzRm9yRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVu
dGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1cmVD
b29raWVzKSBjb25zdDsKKyAgICB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZv
JiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25h
bDxQYWdlSWRlbnRpZmllcj4sIGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAgIHZvaWQgc2V0Q29v
a2llc0Zyb21IVFRQUmVzcG9uc2UoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICB2
b2lkIHNldENvb2tpZUFjY2VwdFBvbGljeShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBD
b29raWVBY2NlcHRQb2xpY3kpIGNvbnN0OwogICAgIENvb2tpZUFjY2VwdFBvbGljeSBjb29raWVB
Y2NlcHRQb2xpY3koY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJikgY29uc3Q7CiAgICAgYm9v
bCBjb29raWVzRW5hYmxlZChjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mKSBjb25zdDsKLSAg
ICBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShj
b25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBP
cHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKKyAg
ICBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShj
b25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJh
bWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29u
c3Q7CiAgICAgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxk
VmFsdWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgQ29va2llUmVxdWVzdEhl
YWRlckZpZWxkUHJveHkmKSBjb25zdDsKLSAgICBib29sIGdldFJhd0Nvb2tpZXMoY29uc3QgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0
ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8
UGFnZUlkZW50aWZpZXI+LCBWZWN0b3I8Q29va2llPiYpIGNvbnN0OworICAgIGJvb2wgZ2V0UmF3
Q29va2llcyhjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZyYW1lSWRlbnRp
Zmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBWZWN0b3I8Q29va2llPiYp
IGNvbnN0OwogICAgIHZvaWQgZGVsZXRlQ29va2llKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lv
biYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAgIHZvaWQgZ2V0SG9zdG5h
bWVzV2l0aENvb2tpZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgSGFzaFNldDxTdHJp
bmc+JiBob3N0bmFtZXMpIGNvbnN0OwogICAgIHZvaWQgZGVsZXRlQ29va2llc0Zvckhvc3RuYW1l
cyhjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgY29v
a2llSG9zdE5hbWVzKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcApp
bmRleCBlNGM4YjBmMTNlNmQwODlhNTg5MmFhN2FlMGE5YjgyMTU4NWJiOWE0Li5lOTYxYzI4ODNi
ODYzMDEwNWRhN2Q3ODA3ZjNmYmJlMjYxYTIwNjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vz
c2lvblNvdXAuY3BwCkBAIC0yNjAsNyArMjYwLDcgQEAgc3RhdGljIGlubGluZSBib29sIGh0dHBP
bmx5Q29va2llRXhpc3RzKGNvbnN0IEdTTGlzdCogY29va2llcywgY29uc3QgZ2NoYXIqIG5hbWUK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRD
b29raWVzRnJvbURPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYs
IGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFn
ZUlkZW50aWZpZXI+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QKK3ZvaWQgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlk
ZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGNvbnN0
IFN0cmluZyYgdmFsdWUpIGNvbnN0CiB7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwogICAg
IFVOVVNFRF9QQVJBTShwYWdlSUQpOwpAQCAtNDEzLDcgKzQxMyw3IEBAIFZlY3RvcjxDb29raWU+
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0Q29va2llcyhjb25zdCBVUkwmIHVybCkKICAgICBy
ZXR1cm4gY29va2llczsKIH0KIAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldFJhd0Nv
b2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBV
UkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlm
aWVyPiBwYWdlSUQsIFZlY3RvcjxDb29raWU+JiByYXdDb29raWVzKSBjb25zdAorYm9vbCBOZXR3
b3JrU3RvcmFnZVNlc3Npb246OmdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlm
aWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBWZWN0b3I8Q29v
a2llPiYgcmF3Q29va2llcykgY29uc3QKIHsKICAgICBVTlVTRURfUEFSQU0oZmlyc3RQYXJ0eSk7
CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwpAQCAtNDgzLDcgKzQ4Myw3IEBAIHN0YXRpYyBz
dGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yU2Vzc2lvbihjb25zdCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb24mIHNlCiAgICAgcmV0dXJuIHsgU3RyaW5nOjpmcm9tVVRGOChjb29raWVIZWFk
ZXIuZ2V0KCkpLCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzIH07CiB9CiAKLXN0ZDo6cGFpcjxTdHJp
bmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTShjb25zdCBVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5j
bHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CitzdGQ6OnBhaXI8
U3RyaW5nLCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNGb3JET00oY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0
aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
cGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QK
IHsKICAgICBVTlVTRURfUEFSQU0oZmlyc3RQYXJ0eSk7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1l
SUQpOwpAQCAtNDkxLDcgKzQ5MSw3IEBAIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFyCiAgICAgcmV0
dXJuIGNvb2tpZXNGb3JTZXNzaW9uKCp0aGlzLCB1cmwsIGZhbHNlLCBpbmNsdWRlU2VjdXJlQ29v
a2llcyk7CiB9CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29r
aWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAorc3RkOjpwYWlyPFN0cmluZywgYm9vbD4g
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25z
dCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBP
cHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVy
PiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25z
dAogewogICAgIFVOVVNFRF9QQVJBTShmaXJzdFBhcnR5KTsKICAgICBVTlVTRURfUEFSQU0oZnJh
bWVJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlLmNwcAppbmRleCA2ODdkMGIwNDYxYWZkZTdjMDcyOThjNmM5ZWZmZDI2MTk0YmY0N2Fj
Li43NjNiNDc1OWU0MzNmODcxMzBiMzk0MDA2MjM0MGIyNjg0OGVhOGEzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKQEAgLTcx
Niw3ICs3MTYsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpz
eW5jU3RvcmFnZUltbWVkaWF0ZWx5KCkKICAgICBtX2RhdGFiYXNlLnJ1blZhY3V1bUNvbW1hbmQo
KTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzU3Rv
cmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFRv
cEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJRD4gZnJhbWVJRCwg
UGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYgc3ViRnJhbWVEb21haW4s
IGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVu
dGlmaWVyPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29w
Ojppc01haW4oKSk7CiAKQEAgLTc0Myw3ICs3NDMsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWlu
JgogICAgIH0pOwogfQogCi12b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBU
b3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlEIGZyYW1lSUQsIFBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVz
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVE
b21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3Rv
cmFnZUFjY2Vzc1N0YXR1cyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFS
dW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTgwNCw3ICs4MDQsNyBAQCB2b2lkIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVy
KERvbWFpbgogICAgIGdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFdURk1vdmUoZG9tYWluSW5O
ZWVkT2ZTdG9yYWdlQWNjZXNzKSwgV1RGTW92ZShvcGVuZXJEb21haW4pLCBXVEY6Om51bGxvcHQs
IG9wZW5lclBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpObywgW10oU3RvcmFn
ZUFjY2Vzc1dhc0dyYW50ZWQpIHsgfSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6OmdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1YkZy
YW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFt
ZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBw
cm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3Jh
bnRlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFt
ZURvbWFpbiwgVG9wRnJhbWVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1No
b3duIHByb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NX
YXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6
OmlzTWFpbigpKTsKIApAQCAtODE4LDcgKzgxOCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OmdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1
CiAgICAgZ3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoV1RGTW92ZShzdWJGcmFtZURvbWFpbiks
IFdURk1vdmUodG9wRnJhbWVEb21haW4pLCBmcmFtZUlELCBwYWdlSUQsIHByb21wdFdhc1Nob3du
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFN1YkZyYW1l
RG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVEb21haW4s
IE9wdGlvbmFsPEZyYW1lSUQ+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFn
ZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duTm93T3JFYXJsaWVyLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW50U3Rv
cmFnZUFjY2Vzc0ludGVybmFsKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZy
YW1lRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJh
bWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24g
cHJvbXB0V2FzU2hvd25Ob3dPckVhcmxpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFn
ZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCgh
UnVuTG9vcDo6aXNNYWluKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZS5oCmluZGV4IDNjOGQyYjFmMTY1NDkzYzkzY2E1ZDgyYmMwMjcy
ZjkxM2I3YTA3ZmEuLmQyNTZiZTIxY2ZmN2IxZjcwNTU2NDAzMWE1NzVmNWU1ZDIzMzBlZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5o
CkBAIC05MSw5ICs5MSw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY2FsY3VsYXRlQW5kU3VibWl0
VGVsZW1ldHJ5KCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3Mo
Y29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPEZy
YW1lSUQ+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFt
ZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBGcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJikgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9w
RnJhbWVEb21haW4mJiwgRnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6
OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgaGFz
U3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWlu
JiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIG92ZXJyaWRlOworICAgIHZv
aWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4m
JiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21h
aW4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
V2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJikgb3ZlcnJpZGU7CiAKICAg
ICB2b2lkIGxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBOYXZpZ2F0ZWRUb0RvbWFpbiYsIGNvbnN0
IFRvcEZyYW1lRG9tYWluJiwgY29uc3QgTmF2aWdhdGVkRnJvbURvbWFpbiYsIGJvb2wgaXNSZWRp
cmVjdCwgYm9vbCBpc01haW5GcmFtZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBsb2dVc2VySW50ZXJh
Y3Rpb24oY29uc3QgVG9wRnJhbWVEb21haW4mKSBvdmVycmlkZTsKQEAgLTE1Myw3ICsxNTMsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mLCBSZXNvdXJjZUxvYWRQcmV2YWxlbmNlKTsKICAgICB1bnNpZ25lZCByZWN1cnNp
dmVseUZpbmROb25QcmV2YWxlbnREb21haW5zVGhhdFJlZGlyZWN0ZWRUb1RoaXNEb21haW4odW5z
aWduZWQgcHJpbWFyeURvbWFpbklELCBTdGRTZXQ8dW5zaWduZWQ+JiBub25QcmV2YWxlbnRSZWRp
cmVjdGlvblNvdXJjZXMsIHVuc2lnbmVkIG51bWJlck9mUmVjdXJzaXZlQ2FsbHMpOwogICAgIHZv
aWQgc2V0RG9tYWluc0FzUHJldmFsZW50KFN0ZFNldDx1bnNpZ25lZD4mJik7Ci0gICAgdm9pZCBn
cmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFp
biYmLCBPcHRpb25hbDxGcmFtZUlEPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6
OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpOworICAgIHZvaWQgZ3JhbnRTdG9yYWdl
QWNjZXNzSW50ZXJuYWwoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgT3B0aW9u
YWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdl
YkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpOwogICAgIHZvaWQgbWFya0Fz
UHJldmFsZW50SWZIYXNSZWRpcmVjdGVkVG9QcmV2YWxlbnQoKTsKICAgICBWZWN0b3I8UmVnaXN0
cmFibGVEb21haW4+IGVuc3VyZVByZXZhbGVudFJlc291cmNlc0ZvckRlYnVnTW9kZSgpIG92ZXJy
aWRlOwogICAgIHZvaWQgcmVtb3ZlRGF0YVJlY29yZHMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9y
ZS5jcHAKaW5kZXggZTIzOWZjYzgwM2U4ZDc0NDU2MTIxOGQ2NzIxN2Y3MWVkNDFiMTg3Zi4uZjZl
ZTkyZjliNjhkMzJmMDdlNTIxNWQzMDM1NDk5NTE0NGY3YTgzYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAKQEAgLTIxMSw3ICsyMTEs
NyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6c3luY1N0b3JhZ2VJ
bW1lZGlhdGVseSgpCiAgICAgICAgIG1fcGVyc2lzdGVudFN0b3JhZ2UtPnNjaGVkdWxlT3JXcml0
ZU1lbW9yeVN0b3JlKFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZTo6Rm9y
Y2VJbW1lZGlhdGVXcml0ZTo6WWVzKTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TWVtb3J5U3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mIHN1YkZy
YW1lRG9tYWluLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFs
PEZyYW1lSUQ+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc01lbW9yeVN0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWlu
JiBzdWJGcmFtZURvbWFpbiwgY29uc3QgVG9wRnJhbWVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBP
cHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtMjM1LDcgKzIzNSw3IEBAIHZvaWQg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0
IFN1YkZyYW1lRG9tYWluJiBzCiAgICAgfSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlz
dGljc01lbW9yeVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1
YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlEIGZy
YW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9y
YWdlQWNjZXNzU3RhdHVzKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc01lbW9yeVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFp
biYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewog
ICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC0yODgsNyArMjg4LDcgQEAgdm9p
ZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNz
VW5kZXJPcGVuZXIoRG9tYWluSW4KICAgICBncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChXVEZN
b3ZlKGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcyksIFdURk1vdmUob3BlbmVyRG9tYWluKSwg
V1RGOjpudWxsb3B0LCBvcGVuZXJQYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bjo6
Tm8sIFtdKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKSB7IH0pOwogfQogCi12b2lkIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9t
YWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIHVp
bnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21w
dFdhc1Nob3duIHByb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VB
Y2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc01lbW9yeVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4m
JiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1By
b21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3Jh
Z2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQo
IVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtMzAwLDcgKzMwMCw3IEBAIHZvaWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21h
aW4mJiBzdWJGCiAgICAgZ3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoV1RGTW92ZShzdWJGcmFt
ZURvbWFpbiksIFdURk1vdmUodG9wRnJhbWVEb21haW4pLCBmcmFtZUlELCBwYWdlSUQsIHByb21w
dFdhc1Nob3duLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChT
dWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZyYW1l
RG9tYWluLCBPcHRpb25hbDxGcmFtZUlEPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQs
IFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93bk5vd09yRWFybGllciwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6Z3Jh
bnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwg
VG9wRnJhbWVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVy
PiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNT
aG93biBwcm9tcHRXYXNTaG93bk5vd09yRWFybGllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChT
dG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNT
RVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUu
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRT
dGF0aXN0aWNzTWVtb3J5U3RvcmUuaAppbmRleCA1YWY2N2ExNmYwNjE2ZGE5ZmEwYzA5MzMxNWFj
YmMzNWRhYTViMTE5Li5hNGE3Yjg4ZTJkZmIwMDM0NmJkYzI3MWZlYjdlNWIyNGJhODIwOTYyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCkBA
IC05Nyw5ICs5Nyw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY2FsY3VsYXRlQW5kU3VibWl0VGVs
ZW1ldHJ5KCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29u
c3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPEZyYW1l
SUQ+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURv
bWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBGcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJikgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJh
bWVEb21haW4mJiwgRnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0
b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3Jl
OjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgaGFzU3Rv
cmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwg
T3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQg
cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4m
JiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2Vi
Q29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJikgb3ZlcnJpZGU7CiAKICAgICB2
b2lkIGxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBOYXZpZ2F0ZWRUb0RvbWFpbiYsIGNvbnN0IFRv
cEZyYW1lRG9tYWluJiwgY29uc3QgTmF2aWdhdGVkRnJvbURvbWFpbiYsIGJvb2wgaXNSZWRpcmVj
dCwgYm9vbCBpc01haW5GcmFtZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rp
b24oY29uc3QgVG9wRnJhbWVEb21haW4mKSBvdmVycmlkZTsKQEAgLTEyMyw3ICsxMjMsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgaW5jcmVtZW50UmVjb3Jkc0RlbGV0ZWRDb3VudEZvckRvbWFpbnMo
SGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRQcmV2
YWxlbnRSZXNvdXJjZShSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiwgUmVzb3VyY2VMb2FkUHJldmFs
ZW5jZSk7CiAgICAgdW5zaWduZWQgcmVjdXJzaXZlbHlHZXRBbGxEb21haW5zVGhhdEhhdmVSZWRp
cmVjdGVkVG9UaGlzRG9tYWluKGNvbnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3MmLCBIYXNoU2V0
PFJlZGlyZWN0ZWRUb0RvbWFpbj4mLCB1bnNpZ25lZCBudW1iZXJPZlJlY3Vyc2l2ZUNhbGxzKSBj
b25zdDsKLSAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFN1YkZyYW1lRG9tYWlu
JiYsIFRvcEZyYW1lRG9tYWluJiYsIE9wdGlvbmFsPEZyYW1lSUQ+LCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJik7CisgICAg
dm9pZCBncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFt
ZURvbWFpbiYmLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJik7
CiAgICAgdm9pZCBtYXJrQXNQcmV2YWxlbnRJZkhhc1JlZGlyZWN0ZWRUb1ByZXZhbGVudChSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzJik7CiAgICAgYm9vbCBpc1ByZXZhbGVudER1ZVRvRGVidWdNb2Rl
KFJlc291cmNlTG9hZFN0YXRpc3RpY3MmKTsKICAgICBWZWN0b3I8UmVnaXN0cmFibGVEb21haW4+
IGVuc3VyZVByZXZhbGVudFJlc291cmNlc0ZvckRlYnVnTW9kZSgpIG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4IDcwYWNiZGNlOTZmNjVjZjgz
YTk0NjM3ZDNmYjhkMWU5YjI2NTUzZGQuLjIwOTQ1ZGEwOThhNjgwYTBhNGU5OTc3ZmQ3NTI0NzBm
Njc4ZDk5NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAg
LTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NDbGFzc2lm
aWVyLmgiCiAjaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlv
bkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQ
dHIuaD4KQEAgLTkwLDcgKzkxLDYgQEAgcHVibGljOgogICAgIHVzaW5nIE5hdmlnYXRlZFRvRG9t
YWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNpbmcgRG9tYWluSW5OZWVk
T2ZTdG9yYWdlQWNjZXNzID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNpbmcg
T3BlbmVyRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47Ci0gICAgdXNpbmcgRnJh
bWVJRCA9IHVpbnQ2NF90OwogICAgIAogICAgIHZpcnR1YWwgflJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZSgpOwogCkBAIC0xNTksOSArMTU5LDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNEZWJ1
Z01vZGVFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9kZWJ1Z01vZGVFbmFibGVkOyB9OwogICAg
IHZvaWQgc2V0UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoY29uc3QgUmVnaXN0cmFibGVE
b21haW4mKTsKIAotICAgIHZpcnR1YWwgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZy
YW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxGcmFtZUlEPiwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4m
JiwgVG9wRnJhbWVEb21haW4mJiwgRnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1l
RG9tYWluJiYsIEZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9y
YWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6
U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGhhc1N0
b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYs
IE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWlu
JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1l
RG9tYWluJiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpID0gMDsKIAogICAg
IHZpcnR1YWwgdm9pZCBsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgTmF2aWdhdGVkVG9Eb21haW4m
LCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0IE5hdmlnYXRlZEZyb21Eb21haW4mLCBib29s
IGlzUmVkaXJlY3QsIGJvb2wgaXNNYWluRnJhbWUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbG9n
VXNlckludGVyYWN0aW9uKGNvbnN0IFRvcEZyYW1lRG9tYWluJikgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCA4YzIxMTU3Y2M3ZjY5
MTdiYTk3MDg5ZTM2ZjE2OWQ4NmNmOGI4YWIwLi42NzVmMGRhZjU5Y2U5YjRmODg3Yjc5NGJjODky
ZWM0NGE4Mzc1NmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlLmNwcApAQCAtMjgwLDcgKzI4MCw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzVXBkYXRlZChWZWN0b3I8V2ViQ29yCiAg
ICAgfSk7CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpoYXNTdG9y
YWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJh
bWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9t
YWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPEZy
YW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChz
dWJGcmFtZURvbWFpbiAhPSB0b3BGcmFtZURvbWFpbik7CiAgICAgQVNTRVJUKFJ1bkxvb3A6Omlz
TWFpbigpKTsKQEAgLTMwMSw3ICszMDEsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcwogICAg
IH0pOwogfQogCi1ib29sIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFn
ZUFjY2Vzc0ZvckZyYW1lKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIHVpbnQ2NF90IGZyYW1l
SUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKK2Jvb2wgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFp
biwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKIHsKICAg
ICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC0zMTQsNyArMzE0LDcgQEAgYm9vbCBX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShj
b25zdCBSZWdpc3RyYWJsZUQKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsSGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxl
cihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRp
ZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBoYXNBY2Nlc3MpPiYmIGNh
bGxiYWNrKQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxIYXNTdG9y
YWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJj
ZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIEZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCBoYXNBY2Nlc3MpPiYmIGNhbGxiYWNrKQogewogICAgIEFTU0VSVChSdW5M
b29wOjppc01haW4oKSk7CiAKQEAgLTMyOCw3ICszMjgsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29u
c3QgUgogICAgIGNhbGxiYWNrKGZhbHNlKTsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWlu
LCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNT
aG93bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1
YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6Omlz
TWFpbigpKTsKIApAQCAtMzkxLDcgKzM5MSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyKFJlZ2lzdHJhYmxlCiAg
ICAgfSk7CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpncmFudFN0
b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdh
c1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBT
dG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNz
UHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChSdW5M
b29wOjppc01haW4oKSk7CiAgICAgcG9zdFRhc2soW3RoaXMsIHN1YkZyYW1lRG9tYWluID0gc3Vi
RnJhbWVEb21haW4uaXNvbGF0ZWRDb3B5KCksIHRvcEZyYW1lRG9tYWluID0gdG9wRnJhbWVEb21h
aW4uaXNvbGF0ZWRDb3B5KCksIGZyYW1lSUQsIHBhZ2VJRCwgcHJvbXB0V2FzU2hvd24sIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CkBA
IC00MTAsNyArNDEwLDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omdy
YW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYKICAgICB9KTsKIH0KIAot
U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpn
cmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWlu
LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8dWlu
dDY0X3Q+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKK1N0b3JhZ2VBY2Nlc3NXYXNH
cmFudGVkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNz
KGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJh
bWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7CiAKQEAgLTQyNyw3ICs0MjcsNyBAQCBTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCBXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdAogICAg
IHJldHVybiBpc1N0b3JhZ2VHcmFudGVkID8gU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQ6OlllcyA6
IFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOjpObzsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmU6OmNhbGxHcmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRv
cEZyYW1lRG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIg
cGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpjYWxsR3JhbnRTdG9yYWdlQWNjZXNzSGFuZGxlcihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
c3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwg
T3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xh
c3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAppbmRleCAwMjNkYzI3N2Nm
NTA1NDdiZjk2ODllY2NhNDg0NGQwZTY0YWIxMzJmLi45ZGExYjZiYjUyMTUyMWEwMTI0MjM0Y2Q0
MzI3MTE1NmY4Y2UwYjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2lu
Y2x1ZGUgIlN0b3JhZ2VBY2Nlc3NTdGF0dXMuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVR5cGUu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWlu
Lmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CkBAIC04OSw3ICs5MCw2IEBA
IHB1YmxpYzoKICAgICB1c2luZyBOYXZpZ2F0ZWRUb0RvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluOwogICAgIHVzaW5nIERvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcyA9IFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluOwogICAgIHVzaW5nIE9wZW5lckRvbWFpbiA9IFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluOwotICAgIHVzaW5nIEZyYW1lSUQgPSB1aW50NjRfdDsKICAgICB1
c2luZyBTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCA9IFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNH
cmFudGVkOwogICAgIHVzaW5nIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biA9IFdlYkNvcmU6
OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bjsKIApAQCAtMTExLDcgKzExMSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldFNob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNS
ZW1vdmFsKGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRT
aG91bGRTdWJtaXRUZWxlbWV0cnkoYm9vbCk7CiAKLSAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vz
cyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgRnJhbWVJRCwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vz
c1Byb21wdFdhc1Nob3duKT4mJik7CisgICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3Qg
U3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNT
aG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3Rv
cmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJik7CiAKICAgICB2b2lkIGFwcGxpY2F0aW9uV2ls
bFRlcm1pbmF0ZSgpOwogCkBAIC0xMjUsMTEgKzEyNSwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBj
bGVhclVzZXJJbnRlcmFjdGlvbihjb25zdCBUb3BGcmFtZURvbWFpbiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvclJlZ2lzdHJhYmxl
RG9tYWlucyhPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgSGFzaE1hcDxSZWdpc3RyYWJsZURv
bWFpbiwgV2Vic2l0ZURhdGFUb1JlbW92ZT4mJiwgYm9vbCBzaG91bGROb3RpZnlQYWdlLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+Jik+JiYp
OwogICAgIHZvaWQgcmVnaXN0cmFibGVEb21haW5zV2l0aFdlYnNpdGVEYXRhKE9wdGlvblNldDxX
ZWJzaXRlRGF0YVR5cGU+LCBib29sIHNob3VsZE5vdGlmeVBhZ2UsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4mJik+JiYpOwotICAgIFN0b3JhZ2VBY2Nl
c3NXYXNHcmFudGVkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNv
bnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8RnJhbWVJRD4sIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyKTsKKyAgICBTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCBncmFudFN0b3JhZ2VBY2Nlc3Mo
Y29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKICAgICB2
b2lkIGhhc0hhZFVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotICAgIHZvaWQgaGFzU3RvcmFnZUFjY2Vzcyhj
b25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8RnJh
bWVJRD4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKTsKLSAgICBib29sIGhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25zdCBTdWJGcmFt
ZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgRnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIpOwotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVE
b21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIEZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBT
dG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKTsKKyAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nl
c3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFs
PFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICBib29sIGhhc1N0b3JhZ2VBY2Nlc3NG
b3JGcmFtZShjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CisgICAgdm9p
ZCByZXF1ZXN0U3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZy
YW1lRG9tYWluJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3Rv
cmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJik7CiAgICAgdm9pZCBzZXRMYXN0U2Vlbihjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYsIFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRWZXJ5UHJldmFs
ZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwpAQCAtMTcyLDExICsxNzIsMTEgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UHJl
dmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiAgICAgdm9pZCBsb2dUZXN0aW5nRXZlbnQoY29u
c3QgU3RyaW5nJik7Ci0gICAgdm9pZCBjYWxsR3JhbnRTdG9yYWdlQWNjZXNzSGFuZGxlcihjb25z
dCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8RnJhbWVJ
RD4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3Jh
Z2VBY2Nlc3NXYXNHcmFudGVkKT4mJik7CisgICAgdm9pZCBjYWxsR3JhbnRTdG9yYWdlQWNjZXNz
SGFuZGxlcihjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0
aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKTsKICAg
ICB2b2lkIHJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3MoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKICAgICB2b2lkIGNhbGxVcGRhdGVQcmV2YWxlbnREb21haW5zVG9CbG9ja0Nvb2tpZXNGb3JI
YW5kbGVyKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluc1RvQmxvY2tDb29raWVzRm9yJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGNhbGxSZW1vdmVEb21haW5zSGFuZGxl
cihjb25zdCBWZWN0b3I8UmVnaXN0cmFibGVEb21haW4+Jik7Ci0gICAgdm9pZCBjYWxsSGFzU3Rv
cmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcihjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRv
cEZyYW1lRG9tYWluJiwgRnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgY2FsbEhhc1N0b3JhZ2VBY2Nlc3NG
b3JGcmFtZUhhbmRsZXIoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFp
biYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogCiAgICAgdm9pZCBkaWRDcmVhdGVOZXR3
b3JrUHJvY2VzcygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaAppbmRleCA3OTMwMWIyMGNjY2FmZWI1
MjEwZDc1YWQ1NzQxZmQyZDkyZThhY2FkLi4yY2JmNGM2ZWUyYjNjYzUwYjUxMTdjZjI2ZjMxM2Ix
NTJjNzM5MGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGlj
OgogICAgICAgICBTdHJpbmcgdXNlckFnZW50OwogICAgICAgICBQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQ7CiAgICAgICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRDsKLSAgICAgICAg
dWludDY0X3QgZnJhbWVJRDsKKyAgICAgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQ7CiAgICAgICAgIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRl
bnRpYWxzUG9saWN5OwogICAgIH07CiAgICAgdXNpbmcgQ29tcGxldGlvbkNhbGxiYWNrID0gQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYpPjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMWYxMDA0ZTFiNWJjZDM5ZDhiMTIyZGY4YzZkYTQ4ZDEz
N2M0YmU2MS4uMGMyYzk3NmZlZTIwZDMyOWI0MDdlMDRkYjk2MmZiNjc5OWFmNDMxOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTUyNSw3ICs1MjUsNyBAQCB2b2lkIE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQo
UEFMOjpTZXNzaQogICAgIGxvYWRlci0+Y29udmVydFRvRG93bmxvYWQoZG93bmxvYWRJRCwgcmVx
dWVzdCwgcmVzcG9uc2UpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Ojpjb29raWVzRm9yRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmws
IE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFn
ZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcywgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChTdHJpbmcgY29va2llU3RyaW5nLCBib29sIHNlY3VyZUNvb2tpZXNBY2Nl
c3NlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpjb29raWVzRm9yRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJM
JiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJM
JiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tp
ZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBzZWN1
cmVDb29raWVzQWNjZXNzZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8mIG5l
dHdvcmtTdG9yYWdlU2Vzc2lvbiA9IHN0b3JhZ2VTZXNzaW9uKG5ldHdvcmtQcm9jZXNzKCksIHNl
c3Npb25JRCk7CiAgICAgYXV0byByZXN1bHQgPSBuZXR3b3JrU3RvcmFnZVNlc3Npb24uY29va2ll
c0ZvckRPTShmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlELCBp
bmNsdWRlU2VjdXJlQ29va2llcyk7CkBAIC01MzgsNyArNTM4LDcgQEAgdm9pZCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnMKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdC5maXJzdCksIHJl
c3VsdC5zZWNvbmQpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpz
ZXRDb29raWVzRnJvbURPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJs
LCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBh
Z2VJRCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJvbURPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8s
IGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1l
SUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGNvbnN0IFN0cmluZyYgY29va2ll
U3RyaW5nKQogewogICAgIGF1dG8mIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IHN0b3JhZ2VTZXNz
aW9uKG5ldHdvcmtQcm9jZXNzKCksIHNlc3Npb25JRCk7CiAgICAgbmV0d29ya1N0b3JhZ2VTZXNz
aW9uLnNldENvb2tpZXNGcm9tRE9NKGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFt
ZUlELCBwYWdlSUQsIGNvb2tpZVN0cmluZyk7CkBAIC01NTUsMTMgKzU1NSwxMyBAQCB2b2lkIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRW5hYmxlZChQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIENvbQogICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0b3JhZ2VTZXNzaW9uKG5l
dHdvcmtQcm9jZXNzKCksIHNlc3Npb25JRCkuY29va2llc0VuYWJsZWQoKSk7CiB9CiAKLXZvaWQg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZh
bHVlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVp
bnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRl
U2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChTdHJpbmcsIGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5m
byYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVy
PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJl
Q29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJp
bmcsIGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8gcmVzdWx0ID0gc3Rv
cmFnZVNlc3Npb24obmV0d29ya1Byb2Nlc3MoKSwgc2Vzc2lvbklEKS5jb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZShmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFn
ZUlELCBpbmNsdWRlU2VjdXJlQ29va2llcyk7CiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92
ZShyZXN1bHQuZmlyc3QpLCByZXN1bHQuc2Vjb25kKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6Z2V0UmF3Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8s
IGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFn
ZUlkZW50aWZpZXI+IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29y
ZTo6Q29va2llPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmdldFJhd0Nvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBj
b25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBj
b25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25h
bDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxX
ZWJDb3JlOjpDb29raWU+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFZlY3RvcjxX
ZWJDb3JlOjpDb29raWU+IHJlc3VsdDsKICAgICBzdG9yYWdlU2Vzc2lvbihuZXR3b3JrUHJvY2Vz
cygpLCBzZXNzaW9uSUQpLmdldFJhd0Nvb2tpZXMoZmlyc3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1
cmwsIGZyYW1lSUQsIHBhZ2VJRCwgcmVzdWx0KTsKQEAgLTY3MCw3ICs2NzAsNyBAQCB2b2lkIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjplbnN1cmVMZWdhY3lQcml2YXRlQnJvd3NpbmdT
ZXNzaW9uKCkKIH0KIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi12b2lk
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJh
bWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRp
ZmllciBwYWdlSUQpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1vdmVT
dG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKQogewogICAgIGlmIChhdXRvKiBz
dG9yYWdlU2Vzc2lvbiA9IG5ldHdvcmtQcm9jZXNzKCkuc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklE
KSkKICAgICAgICAgc3RvcmFnZVNlc3Npb24tPnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShm
cmFtZUlELCBwYWdlSUQpOwpAQCAtNzI4LDcgKzcyOCw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVkKFZlY3RvcjxXZWJD
b3JlCiAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NVcGRhdGVkKFdURk1vdmUoc3RhdGlzdGljcykpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpoYXNTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Omhhc1N0b3JhZ2VBY2Nl
c3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3Vi
RnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoYXV0byog
bmV0d29ya1Nlc3Npb24gPSBuZXR3b3JrUHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKHNlc3Npb25J
RCkpIHsKICAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBuZXR3b3Jr
U2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKSB7CkBAIC03NDAsNyArNzQwLDcgQEAg
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6aGFzU3RvcmFnZUFjY2VzcyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIGMKICAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKIH0K
IAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVxdWVzdFN0b3JhZ2VBY2Nl
c3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3Vi
RnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgdWlu
dDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIHdhc0dyYW50ZWQsIFdlYkNvcmU6
OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZXF1ZXN0U3Rv
cmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9t
YWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIHdhc0dy
YW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93
bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9u
ID0gbmV0d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CiAgICAgICAg
IGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291
cmNlTG9hZFN0YXRpc3RpY3MoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDkyODY3
MzNjNGI3Yzc1MTJjMjljNTMyNDM4MjFkMGVlMWVjNzEzMDkuLjI1NTA4NGY5MjMxZmVhODMwODAw
OThkMzU5MzA1N2ExYmQ5MDdjNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTM0LDYg
KzM0LDcgQEAKICNpbmNsdWRlICJOZXR3b3JrUlRDUHJvdmlkZXIuaCIKICNpbmNsdWRlICJOZXR3
b3JrUmVzb3VyY2VMb2FkTWFwLmgiCiAjaW5jbHVkZSAiV2ViUGF5bWVudENvb3JkaW5hdG9yUHJv
eHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvTmV0d29ya0xvYWRJbmZvcm1hdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlk
ZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CkBAIC0x
NzQsMTEgKzE3NSwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RhcnREb3dubG9hZChQQUw6OlNl
c3Npb25JRCwgRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29u
c3QgU3RyaW5nJiBzdWdnZXN0ZWROYW1lID0geyB9KTsKICAgICB2b2lkIGNvbnZlcnRNYWluUmVz
b3VyY2VMb2FkVG9Eb3dubG9hZChQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgbWFpblJlc291cmNl
TG9hZElkZW50aWZpZXIsIERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKIAotICAgIHZvaWQgY29va2ll
c0ZvckRPTShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJD
b3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpJbmNsdWRlU2Vj
dXJlQ29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcgY29va2llU3RyaW5nLCBi
b29sIHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCk+JiYpOwotICAgIHZvaWQgc2V0Q29va2llc0Zyb21E
T00oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6
U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9w
dGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJik7CisgICAgdm9p
ZCBjb29raWVzRm9yRE9NKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgV2Vi
Q29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5n
IGNvb2tpZVN0cmluZywgYm9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQpPiYmKTsKKyAgICB2b2lk
IHNldENvb2tpZXNGcm9tRE9NKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwg
Y29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBjb29raWVzRW5hYmxlZChQQUw6OlNlc3Npb25JRCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCBjb29raWVSZXF1ZXN0
SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpJ
bmNsdWRlU2VjdXJlQ29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcgY29va2ll
U3RyaW5nLCBib29sIHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCk+JiYpOwotICAgIHZvaWQgZ2V0UmF3
Q29va2llcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJD
b3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYpPiYmKTsKKyAgICB2b2lkIGNvb2tpZVJlcXVl
c3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwg
V2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3Ry
aW5nIGNvb2tpZVN0cmluZywgYm9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQpPiYmKTsKKyAgICB2
b2lkIGdldFJhd0Nvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwg
Y29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8V2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYpPiYmKTsKICAg
ICB2b2lkIGRlbGV0ZUNvb2tpZShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwgY29uc3QgU3Ry
aW5nJiBjb29raWVOYW1lKTsKIAogICAgIHZvaWQgcmVnaXN0ZXJGaWxlQmxvYlVSTChQQUw6OlNl
c3Npb25JRCwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBwYXRoLCBTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUmJiwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSk7CkBAIC0yMTgsNyArMjE5LDcg
QEAgcHJpdmF0ZToKICAgICBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uJiBjYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uKCk7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQot
ICAgIHZvaWQgcmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lvbklELCB1aW50
NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CisgICAgdm9pZCByZW1vdmVT
dG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogICAgIHZvaWQgY2xlYXJQYWdlU3BlY2lm
aWNEYXRhRm9yUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIpOwogCiAgICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNz
aW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJik7CkBAIC0yMjYsOCArMjI3LDggQEAgcHJp
dmF0ZToKICAgICB2b2lkIGxvZ1N1YnJlc291cmNlTG9hZGluZyhQQUw6OlNlc3Npb25JRCwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIHRhcmdldERvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIHRvcEZyYW1lRG9tYWluLCBXYWxsVGltZSBsYXN0U2Vlbik7CiAgICAgdm9pZCBsb2dTdWJy
ZXNvdXJjZVJlZGlyZWN0KFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
c291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdGFyZ2V0RG9tYWluKTsKICAg
ICB2b2lkIHJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVkKFZlY3RvcjxXZWJDb3JlOjpSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzPiYmKTsKLSAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0g
ICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9w
RnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBX
ZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKTsKKyAgICB2b2lkIGhhc1N0
b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJG
cmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
ZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1By
b21wdFdhc1Nob3duKT4mJik7CiAgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3Bl
bmVyKFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIGRvbWFpbklu
TmVlZE9mU3RvcmFnZUFjY2VzcywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgb3BlbmVyUGFnZUlE
LCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIG9wZW5lckRvbWFpbik7CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggNGIxMTg5YjM5
Y2NlYmM4ZmIyMjZmOGZlZTAzNDI4YzZjODVhZDdhMy4uOTlhYmQwNzhmYjE0YzlmMzBiZTljODc2
MDNhMTNkOTFiZDc5YTljZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluCkBAIC0zNCwxMSArMzQsMTEgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFN0YXJ0RG93bmxvYWQoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBzdWdnZXN0ZWROYW1lKQogICAgIENvbnZl
cnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVp
bnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93
bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UgcmVzcG9uc2UpCiAKLSAgICBDb29raWVzRm9yRE9NKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgVVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8g
c2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9u
YWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgZW51bTpib29sIFdlYkNvcmU6Oklu
Y2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSAtPiAoU3RyaW5nIGNvb2tp
ZVN0cmluZywgYm9vbCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzKSBTeW5jaHJvbm91cwotICAgIFNl
dENvb2tpZXNGcm9tRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZpcnN0UGFydHks
IHN0cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRp
b25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+
IHBhZ2VJRCwgU3RyaW5nIGNvb2tpZVN0cmluZykKKyAgICBDb29raWVzRm9yRE9NKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgVVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1lU2l0
ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQs
IGVudW06Ym9vbCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29v
a2llcykgLT4gKFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgZGlkQWNjZXNzU2VjdXJlQ29va2ll
cykgU3luY2hyb25vdXMKKyAgICBTZXRDb29raWVzRnJvbURPTShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVT
aXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFt
ZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBTdHJpbmcgY29v
a2llU3RyaW5nKQogICAgIENvb2tpZXNFbmFibGVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkg
LT4gKGJvb2wgZW5hYmxlZCkgU3luY2hyb25vdXMKLSAgICBDb29raWVSZXF1ZXN0SGVhZGVyRmll
bGRWYWx1ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3Qg
V2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8dWlu
dDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQs
IGVudW06Ym9vbCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29v
a2llcykgLT4gKFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgZGlkQWNjZXNzU2VjdXJlQ29va2ll
cykgU3luY2hyb25vdXMKLSAgICBHZXRSYXdDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgVVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJ
bmZvLCBVUkwgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IGNv
b2tpZXMpIFN5bmNocm9ub3VzCisgICAgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNh
bWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBh
Z2VJRCwgZW51bTpib29sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1
cmVDb29raWVzKSAtPiAoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBkaWRBY2Nlc3NTZWN1cmVD
b29raWVzKSBTeW5jaHJvbm91cworICAgIEdldFJhd0Nvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1l
U2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJh
bWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkgLT4gKFZlY3Rv
cjxXZWJDb3JlOjpDb29raWU+IGNvb2tpZXMpIFN5bmNocm9ub3VzCiAgICAgRGVsZXRlQ29va2ll
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIHVybCwgU3RyaW5nIGNvb2tpZU5hbWUpCiAK
ICAgICBSZWdpc3RlckZpbGVCbG9iVVJMKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIHVy
bCwgU3RyaW5nIHBhdGgsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGV4dGVuc2lv
bkhhbmRsZSwgU3RyaW5nIGNvbnRlbnRUeXBlKQpAQCAtNTgsMTUgKzU4LDE1IEBAIG1lc3NhZ2Vz
IC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBF
bnN1cmVMZWdhY3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkKIAogI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgUmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgcGFnZUlEKTsKKyAgICBSZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKTsKICAgICBDbGVhclBhZ2VTcGVjaWZpY0RhdGFGb3JS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgcGFnZUlEKTsKICAgICBMb2dVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW4pCiAgICAg
TG9nV2ViU29ja2V0TG9hZGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluIHRhcmdldERvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4g
dG9wRnJhbWVEb21haW4sIFdhbGxUaW1lIGxhc3RTZWVuKQogICAgIExvZ1N1YnJlc291cmNlTG9h
ZGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
IHRhcmdldERvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4s
IFdhbGxUaW1lIGxhc3RTZWVuKQogICAgIExvZ1N1YnJlc291cmNlUmVkaXJlY3QoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzb3VyY2VEb21haW4s
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRhcmdldERvbWFpbikKICAgICBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzVXBkYXRlZChWZWN0b3I8V2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGlj
cz4gc3RhdGlzdGljcykKLSAgICBIYXNTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpIC0+IChib29sIGhhc1N0b3JhZ2VBY2Nlc3MpIEFz
eW5jCi0gICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCkgLT4gKGVudW06Ym9vbCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNz
V2FzR3JhbnRlZCB3YXNHcmFudGVkLCBlbnVtOmJvb2wgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1By
b21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duKSBBc3luYworICAgIEhhc1N0b3JhZ2VBY2Nlc3Mo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJG
cmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4sIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBw
YWdlSUQpIC0+IChib29sIGhhc1N0b3JhZ2VBY2Nlc3MpIEFzeW5jCisgICAgUmVxdWVzdFN0b3Jh
Z2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVE
b21haW4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciBwYWdlSUQpIC0+IChlbnVtOmJvb2wgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dy
YW50ZWQgd2FzR3JhbnRlZCwgZW51bTpib29sIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93biBwcm9tcHRXYXNTaG93bikgQXN5bmMKICAgICBSZXF1ZXN0U3RvcmFnZUFjY2Vzc1Vu
ZGVyT3BlbmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciBvcGVuZXJQYWdlSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIG9wZW5lckRvbWFpbikK
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtM
b2FkQ2hlY2tlci5jcHAKaW5kZXggNDA5NzE0ZDY2NzI2YTg0NzRhZmYyOWExNjA4MTdmMjQ3OTY3
YjAxNi4uMTE3NmY1MzdhODU4MDliNGJhZTFjZTc2OGI1NjUzNWIxNWQ1ZWJiMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcApA
QCAtNDgsNyArNDgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTYW1lT3JpZ2luKGNvbnN0IFVS
TCYgdXJsLCBjb25zdCBTZWN1cml0eU9yaWdpbiogb3JpZ2luKQogICAgIHJldHVybiB1cmwucHJv
dG9jb2xJc0RhdGEoKSB8fCB1cmwucHJvdG9jb2xJc0Jsb2IoKSB8fCAhb3JpZ2luIHx8IG9yaWdp
bi0+Y2FuUmVxdWVzdCh1cmwpOwogfQogCi1OZXR3b3JrTG9hZENoZWNrZXI6Ok5ldHdvcmtMb2Fk
Q2hlY2tlcihOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIEZldGNoT3B0aW9ucyYmIG9w
dGlvbnMsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCB1
aW50NjRfdCBmcmFtZUlELCBIVFRQSGVhZGVyTWFwJiYgb3JpZ2luYWxSZXF1ZXN0SGVhZGVycywg
VVJMJiYgdXJsLCBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+JiYgc291cmNlT3JpZ2luLCBQcmVmbGln
aHRQb2xpY3kgcHJlZmxpZ2h0UG9saWN5LCBTdHJpbmcmJiByZWZlcnJlciwgYm9vbCBpc0hUVFBT
VXBncmFkZUVuYWJsZWQsIGJvb2wgc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNz
LCBMb2FkVHlwZSByZXF1ZXN0TG9hZFR5cGUpCitOZXR3b3JrTG9hZENoZWNrZXI6Ok5ldHdvcmtM
b2FkQ2hlY2tlcihOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIEZldGNoT3B0aW9ucyYm
IG9wdGlvbnMsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgSFRUUEhlYWRlck1hcCYmIG9yaWdpbmFsUmVxdWVz
dEhlYWRlcnMsIFVSTCYmIHVybCwgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiYmIHNvdXJjZU9yaWdp
biwgUHJlZmxpZ2h0UG9saWN5IHByZWZsaWdodFBvbGljeSwgU3RyaW5nJiYgcmVmZXJyZXIsIGJv
b2wgaXNIVFRQU1VwZ3JhZGVFbmFibGVkLCBib29sIHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtM
b2FkTWV0cmljcywgTG9hZFR5cGUgcmVxdWVzdExvYWRUeXBlKQogICAgIDogbV9vcHRpb25zKFdU
Rk1vdmUob3B0aW9ucykpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgLCBtX25l
dHdvcmtQcm9jZXNzKG5ldHdvcmtQcm9jZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmgKaW5kZXggMDc3MDY0NjcwZmNiYjlhYzk0MmY4
ZDg2MTgxMDQ5NTlmMDBlMDU3OC4uZWM5NGUxNDY5NTMzZDdkOTg3ODE2YmIyNmIxN2RmYjIzYjk0
M2ZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9h
ZENoZWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2Fk
Q2hlY2tlci5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Db250ZW50RXh0
ZW5zaW9uQWN0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGVudFNlY3VyaXR5UG9saWN5
UmVzcG9uc2VIZWFkZXJzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GZXRjaE9wdGlvbnMuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0
d29ya0xvYWRJbmZvcm1hdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KQEAgLTU1LDcgKzU2LDcgQEAg
Y2xhc3MgTmV0d29ya0xvYWRDaGVja2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPE5ldHdvcmtM
b2FkQ2hlY2tlcj4gewogcHVibGljOgogICAgIGVudW0gY2xhc3MgTG9hZFR5cGUgOiBib29sIHsg
TWFpbkZyYW1lLCBPdGhlciB9OwogCi0gICAgTmV0d29ya0xvYWRDaGVja2VyKE5ldHdvcmtQcm9j
ZXNzJiwgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiYsIFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYm
LCBVUkwmJiwgUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmLCBXZWJDb3JlOjpQcmVm
bGlnaHRQb2xpY3ksIFN0cmluZyYmIHJlZmVycmVyLCBib29sIGlzSFRUUFNVcGdyYWRlRW5hYmxl
ZCA9IGZhbHNlLCBib29sIHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyA9IGZh
bHNlLCBMb2FkVHlwZSByZXF1ZXN0TG9hZFR5cGUgPSBMb2FkVHlwZTo6T3RoZXIpOworICAgIE5l
dHdvcmtMb2FkQ2hlY2tlcihOZXR3b3JrUHJvY2VzcyYsIFdlYkNvcmU6OkZldGNoT3B0aW9ucyYm
LCBQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYmLCBVUkwmJiwgUmVmUHRyPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luPiYmLCBXZWJDb3JlOjpQcmVmbGlnaHRQb2xpY3ksIFN0cmluZyYm
IHJlZmVycmVyLCBib29sIGlzSFRUUFNVcGdyYWRlRW5hYmxlZCA9IGZhbHNlLCBib29sIHNob3Vs
ZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyA9IGZhbHNlLCBMb2FkVHlwZSByZXF1ZXN0
TG9hZFR5cGUgPSBMb2FkVHlwZTo6T3RoZXIpOwogICAgIH5OZXR3b3JrTG9hZENoZWNrZXIoKTsK
IAogICAgIHN0cnVjdCBSZWRpcmVjdGlvblRyaXBsZXQgewpAQCAtMTI3LDcgKzEyOCw3IEBAIHBy
aXZhdGU6CiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgUmVmPE5ldHdvcmtQ
cm9jZXNzPiBtX25ldHdvcmtQcm9jZXNzOwogICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIG1f
cGFnZUlEOwotICAgIHVpbnQ2NF90IG1fZnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgbV9mcmFtZUlEOwogICAgIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAgbV9vcmlnaW5hbFJl
cXVlc3RIZWFkZXJzOyAvLyBOZWVkZWQgZm9yIENPUlMgY2hlY2tzLgogICAgIFdlYkNvcmU6OkhU
VFBIZWFkZXJNYXAgbV9maXJzdFJlcXVlc3RIZWFkZXJzOyAvLyBOZWVkZWQgZm9yIENPUlMgY2hl
Y2tzLgogICAgIFVSTCBtX3VybDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCmluZGV4IGM0M2U1ZGNkNzUwMTFhNTU5MWU2ZTY4
MjcyNGMxYTY5NTY1ZWNmMTcuLmI4ZjdkMTM5ZTMxZWM1YzgyNzEzNWUzNzMwYjdiMGQ5ZWYwYTQ2
MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQ
YXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9h
ZFBhcmFtZXRlcnMuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiTmV0d29ya0FjdGl2
aXR5VHJhY2tlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQmxvYkRhdGFGaWxlUmVmZXJlbmNlLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlck9wdGlv
bnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgpAQCAtNDYsNyArNDcs
NyBAQCBwdWJsaWM6CiAKICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7CiAgICAgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEOwotICAgIHVpbnQ2NF90IHdlYkZyYW1lSUQgeyAw
IH07CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIHdlYkZyYW1lSUQ7CiAgICAgV1RGOjpQ
cm9jZXNzSUQgcGFyZW50UElEIHsgMCB9OwogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0OwogICAgIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBjb250ZW50U25pZmZp
bmdQb2xpY3kgeyBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3k6OlNuaWZmQ29udGVudCB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4
IGE5MmI3MjQxZWIyOThlYTY2YzVhOGEyODQ3NGY0MDNlNTdlNDVjMzkuLmMyMzYzZGQxMTM1Zjdl
MmJmYTAzMjllZGYyNjJhMjViZWUyMmIzYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTEzNyw3ICsxMzcsNiBAQCBwdWJsaWM6CiAgICAg
dXNpbmcgTmF2aWdhdGVkVG9Eb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKICAg
ICB1c2luZyBEb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MgPSBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbjsKICAgICB1c2luZyBPcGVuZXJEb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbjsKLSAgICB1c2luZyBGcmFtZUlEID0gdWludDY0X3Q7CiAKICAgICBOZXR3b3JrUHJvY2Vz
cyhBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiYpOwogICAgIH5OZXR3
b3JrUHJvY2VzcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDQ3ODJlZjE1ZjNkZWVlNWFmNGVhZWYwNWNk
ZjYwMzZhZTdlNmQyZmIuLmVjNmE4MGM4NDg5ZGVmMzJkNzg5Yjc0YmVjMTI3MzU3YmVjNTU4MzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRlci5jcHAKQEAgLTE4MCwxOCArMTgwLDE4IEBAIHZvaWQgTmV0d29ya1Jlc291cmNl
TG9hZGVyOjpzdGFydCgpCiAKICAgICAgICAgICAgIFdURjo6c3dpdGNoT24ocmVzdWx0LAogICAg
ICAgICAgICAgICAgIFt0aGlzXSAoUmVzb3VyY2VFcnJvciYgZXJyb3IpIHsKLSAgICAgICAgICAg
ICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6IGVycm9yIGNoZWNraW5nIChw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCwgcGFy
ZW50UElEID0gJWQsIGVycm9yLmRvbWFpbiA9ICV7cHVibGljfXMsIGVycm9yLmNvZGUgPSAlZCki
LCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFt
ZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgdGhpcy0+aXNNYWluUmVzb3VyY2UoKSwgdGhp
cy0+aXNTeW5jaHJvbm91cygpLCBtX3BhcmFtZXRlcnMucGFyZW50UElELCBlcnJvci5kb21haW4o
KS51dGY4KCkuZGF0YSgpLCBlcnJvci5lcnJvckNvZGUoKSk7CisgICAgICAgICAgICAgICAgICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0OiBlcnJvciBjaGVja2luZyAocGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2
NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQsIHBhcmVudFBJRCA9
ICVkLCBlcnJvci5kb21haW4gPSAle3B1YmxpY31zLCBlcnJvci5jb2RlID0gJWQpIiwgbV9wYXJh
bWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJ
bnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgdGhpcy0+aXNNYWluUmVzb3VyY2UoKSwg
dGhpcy0+aXNTeW5jaHJvbm91cygpLCBtX3BhcmFtZXRlcnMucGFyZW50UElELCBlcnJvci5kb21h
aW4oKS51dGY4KCkuZGF0YSgpLCBlcnJvci5lcnJvckNvZGUoKSk7CiAgICAgICAgICAgICAgICAg
ICAgIGlmICghZXJyb3IuaXNDYW5jZWxsYXRpb24oKSkKICAgICAgICAgICAgICAgICAgICAgICAg
IHRoaXMtPmRpZEZhaWxMb2FkaW5nKGVycm9yKTsKICAgICAgICAgICAgICAgICB9LAogICAgICAg
ICAgICAgICAgIFt0aGlzXSAoTmV0d29ya0xvYWRDaGVja2VyOjpSZWRpcmVjdGlvblRyaXBsZXQm
IHRyaXBsZXQpIHsKICAgICAgICAgICAgICAgICAgICAgdGhpcy0+bV9pc1dhaXRpbmdDb250aW51
ZVdpbGxTZW5kUmVxdWVzdEZvckNhY2hlZFJlZGlyZWN0ID0gdHJ1ZTsKICAgICAgICAgICAgICAg
ICAgICAgdGhpcy0+d2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdChXVEZNb3ZlKHRyaXBsZXQucmVx
dWVzdCksIFdURk1vdmUodHJpcGxldC5yZWRpcmVjdFJlcXVlc3QpLCBXVEZNb3ZlKHRyaXBsZXQu
cmVkaXJlY3RSZXNwb25zZSkpOwotICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJzdGFydDogc3ludGhldGljIHJlZGlyZWN0IHNlbnQgYmVjYXVzZSByZXF1ZXN0IFVS
TCB3YXMgbW9kaWZpZWQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5j
aHJvbm91cyA9ICVkLCBwYXJlbnRQSUQgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRv
VUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmll
ciwgdGhpcy0+aXNNYWluUmVzb3VyY2UoKSwgdGhpcy0+aXNTeW5jaHJvbm91cygpLCBtX3BhcmFt
ZXRlcnMucGFyZW50UElEKTsKKyAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRCgic3RhcnQ6IHN5bnRoZXRpYyByZWRpcmVjdCBzZW50IGJlY2F1c2UgcmVxdWVzdCBVUkwg
d2FzIG1vZGlmaWVkIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAi
LCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hy
b25vdXMgPSAlZCwgcGFyZW50UElEID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJ
bnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMu
aWRlbnRpZmllciwgdGhpcy0+aXNNYWluUmVzb3VyY2UoKSwgdGhpcy0+aXNTeW5jaHJvbm91cygp
LCBtX3BhcmFtZXRlcnMucGFyZW50UElEKTsKICAgICAgICAgICAgICAgICB9LAogICAgICAgICAg
ICAgICAgIFt0aGlzXSAoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KSB7CiAgICAgICAgICAgICAg
ICAgICAgIGlmICh0aGlzLT5jYW5Vc2VDYWNoZShyZXF1ZXN0KSkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6IENoZWNraW5nIGNhY2hlIGZv
ciByZXNvdXJjZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwg
cmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9u
b3VzID0gJWQsIHBhcmVudFBJRCA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50
NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCB0
aGlzLT5pc01haW5SZXNvdXJjZSgpLCB0aGlzLT5pc1N5bmNocm9ub3VzKCksIG1fcGFyYW1ldGVy
cy5wYXJlbnRQSUQpOworICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRCgic3RhcnQ6IENoZWNraW5nIGNhY2hlIGZvciByZXNvdXJjZSAocGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBp
c01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQsIHBhcmVudFBJRCA9ICVkKSIs
IG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1l
SUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIHRoaXMtPmlzTWFpblJlc291
cmNlKCksIHRoaXMtPmlzU3luY2hyb25vdXMoKSwgbV9wYXJhbWV0ZXJzLnBhcmVudFBJRCk7CiAg
ICAgICAgICAgICAgICAgICAgICAgICB0aGlzLT5yZXRyaWV2ZUNhY2hlRW50cnkocmVxdWVzdCk7
CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgIH0K
QEAgLTIwNCw3ICsyMDQsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQoKQog
ICAgIH0KICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoYXQgY29kZSBwYXRoIG9uY2UgbV9uZXR3b3Jr
TG9hZENoZWNrZXIgaXMgdXNlZCBmb3IgYWxsIG5ldHdvcmsgbG9hZHMuCiAgICAgaWYgKGNhblVz
ZUNhY2hlKG9yaWdpbmFsUmVxdWVzdCgpKSkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKCJzdGFydDogQ2hlY2tpbmcgY2FjaGUgZm9yIHJlc291cmNlIChwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlz
TWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCwgcGFyZW50UElEID0gJWQpIiwg
bV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJ
RCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25v
dXMoKSwgbV9wYXJhbWV0ZXJzLnBhcmVudFBJRCk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoInN0YXJ0OiBDaGVja2luZyBjYWNoZSBmb3IgcmVzb3VyY2UgKHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwg
aXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkLCBwYXJlbnRQSUQgPSAlZCki
LCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFt
ZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgp
LCBpc1N5bmNocm9ub3VzKCksIG1fcGFyYW1ldGVycy5wYXJlbnRQSUQpOwogICAgICAgICByZXRy
aWV2ZUNhY2hlRW50cnkob3JpZ2luYWxSZXF1ZXN0KCkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQpAQCAtMjQ0LDcgKzI0NCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpyZXRyaWV2
ZUNhY2hlRW50cnkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogICAgICAgICBsb2dT
bG93Q2FjaGVSZXRyaWV2ZUlmTmVlZGVkKGluZm8pOwogCiAgICAgICAgIGlmICghZW50cnkpIHsK
LSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTog
UmVzb3VyY2Ugbm90IGluIGNhY2hlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQs
IGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCks
IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWlu
UmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogUmVzb3VyY2Ugbm90IGluIGNhY2hlIChwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIg
UFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3Bh
cmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRv
VUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5
bmNocm9ub3VzKCkpOwogICAgICAgICAgICAgc3RhcnROZXR3b3JrTG9hZChXVEZNb3ZlKHJlcXVl
c3QpLCBGaXJzdExvYWQ6Olllcyk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAg
LTI1Niw3ICsyNTYsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6cmV0cmlldmVDYWNo
ZUVudHJ5SW50ZXJuYWwoc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtDYQogewogI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgaWYgKGVudHJ5LT5oYXNSZWFjaGVkUHJldmFs
ZW50UmVzb3VyY2VBZ2VDYXAoKSkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJy
ZXRyaWV2ZUNhY2hlRW50cnk6IFJlc291cmNlIGhhcyByZWFjaGVkIHByZXZhbGVudCByZXNvdXJj
ZSBhZ2UgY2FwIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBy
ZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25v
dXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVy
cy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwg
aXNTeW5jaHJvbm91cygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmll
dmVDYWNoZUVudHJ5OiBSZXNvdXJjZSBoYXMgcmVhY2hlZCBwcmV2YWxlbnQgcmVzb3VyY2UgYWdl
IGNhcCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3Vy
Y2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0g
JWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2Vi
RnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3Vy
Y2UoKSwgaXNTeW5jaHJvbm91cygpKTsKICAgICAgICAgbV9jYWNoZUVudHJ5Rm9yTWF4QWdlQ2Fw
VmFsaWRhdGlvbiA9IFdURk1vdmUoZW50cnkpOwogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmV2
YWxpZGF0aW9uUmVxdWVzdCA9IG9yaWdpbmFsUmVxdWVzdCgpOwogICAgICAgICBzdGFydE5ldHdv
cmtMb2FkKFdURk1vdmUocmV2YWxpZGF0aW9uUmVxdWVzdCksIEZpcnN0TG9hZDo6WWVzKTsKQEAg
LTI2NCwyOCArMjY0LDI4IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpyZXRyaWV2ZUNh
Y2hlRW50cnlJbnRlcm5hbChzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0NhCiAgICAgfQogI2VuZGlm
CiAgICAgaWYgKGVudHJ5LT5yZWRpcmVjdFJlcXVlc3QoKSkgewotICAgICAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IEhhbmRsaW5nIHJlZGlyZWN0IChwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIg
UFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3Bh
cmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBt
X3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygp
KTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNoZUVudHJ5OiBI
YW5kbGluZyByZWRpcmVjdCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5
bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Bh
cmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwg
aXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKICAgICAgICAgZGlzcGF0Y2hXaWxs
U2VuZFJlcXVlc3RGb3JDYWNoZUVudHJ5KFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoZW50cnkp
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAobV9wYXJhbWV0ZXJzLm5lZWRzQ2Vy
dGlmaWNhdGVJbmZvICYmICFlbnRyeS0+cmVzcG9uc2UoKS5jZXJ0aWZpY2F0ZUluZm8oKSkgewot
ICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJlc291
cmNlIGRvZXMgbm90IGhhdmUgcmVxdWlyZWQgY2VydGlmaWNhdGUgKHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNN
YWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQ
YWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5p
ZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOworICAgICAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJlc291cmNlIGRvZXMg
bm90IGhhdmUgcmVxdWlyZWQgY2VydGlmaWNhdGUgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3Vy
Y2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9V
SW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJz
LmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CiAgICAgICAg
IHN0YXJ0TmV0d29ya0xvYWQoV1RGTW92ZShyZXF1ZXN0KSwgRmlyc3RMb2FkOjpZZXMpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgIGlmIChlbnRyeS0+bmVlZHNWYWxpZGF0aW9uKCkgfHwg
cmVxdWVzdC5jYWNoZVBvbGljeSgpID09IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdENhY2hlUG9s
aWN5OjpSZWZyZXNoQW55Q2FjaGVEYXRhKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoInJldHJpZXZlQ2FjaGVFbnRyeTogVmFsaWRhdGluZyBjYWNoZSBlbnRyeSAocGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2
NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0
ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJh
bWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7Cisg
ICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogVmFsaWRh
dGluZyBjYWNoZSBlbnRyeSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5
bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Bh
cmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwg
aXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKICAgICAgICAgdmFsaWRhdGVDYWNo
ZUVudHJ5KFdURk1vdmUoZW50cnkpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJldHJpZXZlZCByZXNvdXJj
ZSBmcm9tIGNhY2hlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAi
LCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hy
b25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1l
dGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2Uo
KSwgaXNTeW5jaHJvbm91cygpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2
ZUNhY2hlRW50cnk6IFJldHJpZXZlZCByZXNvdXJjZSBmcm9tIGNhY2hlIChwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIs
IGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMu
d2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCks
IG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3Vz
KCkpOwogICAgIGRpZFJldHJpZXZlQ2FjaGVFbnRyeShXVEZNb3ZlKGVudHJ5KSk7CiB9CiAKIHZv
aWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydE5ldHdvcmtMb2FkKFJlc291cmNlUmVxdWVz
dCYmIHJlcXVlc3QsIEZpcnN0TG9hZCBsb2FkKQogewogICAgIGlmIChsb2FkID09IEZpcnN0TG9h
ZDo6WWVzKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0TmV0d29ya0xv
YWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJj
ZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAl
ZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJG
cmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5j
aHJvbm91cygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnROZXR3b3Jr
TG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9
ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndl
YkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291
cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CiAKICAgICAgICAgY29uc3VtZVNhbmRib3hFeHRlbnNp
b25zKCk7CiAKQEAgLTMwOCw3ICszMDgsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
c3RhcnROZXR3b3JrTG9hZChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBGaXJzdExvYQogICAg
IH0KICAgICBpZiAoIW5ldHdvcmtTZXNzaW9uKSB7CiAgICAgICAgIFdURkxvZ0Fsd2F5cygiQXR0
ZW1wdGVkIHRvIGNyZWF0ZSBhIE5ldHdvcmtMb2FkIHdpdGggYSBzZXNzaW9uIChpZD0lIiBQUkl1
NjQgIikgdGhhdCBkb2VzIG5vdCBleGlzdC4iLCBwYXJhbWV0ZXJzLnNlc3Npb25JRC5zZXNzaW9u
SUQoKSk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoInN0YXJ0TmV0d29y
a0xvYWQ6IEF0dGVtcHRlZCB0byBjcmVhdGUgYSBOZXR3b3JrTG9hZCB3aXRoIGEgc2Vzc2lvbiB0
aGF0IGRvZXMgbm90IGV4aXN0IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIHNlc3Npb25JRD0lIiBQUkl1NjQgIiki
LCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFt
ZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgcGFyYW1ldGVycy5zZXNzaW9uSUQuc2Vzc2lv
bklEKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKCJzdGFydE5ldHdv
cmtMb2FkOiBBdHRlbXB0ZWQgdG8gY3JlYXRlIGEgTmV0d29ya0xvYWQgd2l0aCBhIHNlc3Npb24g
dGhhdCBkb2VzIG5vdCBleGlzdCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQ
Ukl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBzZXNzaW9uSUQ9JSIgUFJJdTY0ICIp
IiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJh
bWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgcGFyYW1ldGVycy5zZXNz
aW9uSUQuc2Vzc2lvbklEKCkpOwogICAgICAgICBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtQcm9jZXNz
KCkubG9nRGlhZ25vc3RpY01lc3NhZ2UobV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCwgV2ViQ29yZTo6
RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjppbnRlcm5hbEVycm9yS2V5KCksIFdlYkNvcmU6OkRpYWdu
b3N0aWNMb2dnaW5nS2V5czo6aW52YWxpZFNlc3Npb25JREtleSgpLCBXZWJDb3JlOjpTaG91bGRT
YW1wbGU6Ok5vKTsKICAgICAgICAgZGlkRmFpbExvYWRpbmcoaW50ZXJuYWxFcnJvcihyZXF1ZXN0
LnVybCgpKSk7CiAgICAgICAgIHJldHVybjsKQEAgLTMyMCw3ICszMjAsNyBAQCB2b2lkIE5ldHdv
cmtSZXNvdXJjZUxvYWRlcjo6c3RhcnROZXR3b3JrTG9hZChSZXNvdXJjZVJlcXVlc3QmJiByZXF1
ZXN0LCBGaXJzdExvYQogICAgIHBhcmFtZXRlcnMucmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCk7
CiAgICAgbV9uZXR3b3JrTG9hZCA9IHN0ZDo6bWFrZV91bmlxdWU8TmV0d29ya0xvYWQ+KCp0aGlz
LCAmbmV0d29ya1Nlc3Npb24tPmJsb2JSZWdpc3RyeSgpLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCAq
bmV0d29ya1Nlc3Npb24pOwogCi0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnROZXR3
b3JrTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJl
c291cmNlSUQgPSAlIiBQUkl1NjQgIiwgZGVzY3JpcHRpb24gPSAle3B1YmxpY31zKSIsIG1fcGFy
YW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1f
cGFyYW1ldGVycy5pZGVudGlmaWVyLCBtX25ldHdvcmtMb2FkLT5kZXNjcmlwdGlvbigpLnV0Zjgo
KS5kYXRhKCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0TmV0d29ya0xvYWQ6
IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlE
ID0gJSIgUFJJdTY0ICIsIGRlc2NyaXB0aW9uID0gJXtwdWJsaWN9cykiLCBtX3BhcmFtZXRlcnMu
d2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCks
IG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBtX25ldHdvcmtMb2FkLT5kZXNjcmlwdGlvbigpLnV0
ZjgoKS5kYXRhKCkpOwogfQogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y2xlYW51cChM
b2FkUmVzdWx0IHJlc3VsdCkKQEAgLTM0NCw3ICszNDQsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJj
ZUxvYWRlcjo6Y2xlYW51cChMb2FkUmVzdWx0IHJlc3VsdCkKIAogdm9pZCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OmNvbnZlcnRUb0Rvd25sb2FkKERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSkKIHsKLSAgICBSRUxFQVNFX0xPRyhMb2FkaW5nLCAiQ29udmVydGluZyBOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIgJXAgdG8gZG93bmxvYWQgJSIgUFJJdTY0ICIgKHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCB0aGlz
LCBkb3dubG9hZElELmRvd25sb2FkSUQoKSwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2
NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIpOwor
ICAgIFJFTEVBU0VfTE9HKExvYWRpbmcsICJDb252ZXJ0aW5nIE5ldHdvcmtSZXNvdXJjZUxvYWRl
ciAlcCB0byBkb3dubG9hZCAlIiBQUkl1NjQgIiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHRoaXMsIGRvd25s
b2FkSUQuZG93bmxvYWRJRCgpLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1f
cGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVy
KTsKICAgICAKICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gaWYgdGhlIHJlc291cmNlIGNhbWUgZnJv
bSB0aGUgZGlzayBjYWNoZS4KICAgICBpZiAoIW1fbmV0d29ya0xvYWQpIHsKQEAgLTM2Miw3ICsz
NjIsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6YWJvcnQoKQogICAgIEFTU0VSVChS
dW5Mb29wOjppc01haW4oKSk7CiAKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJhYm9ydDog
Q2FuY2VsaW5nIHJlc291cmNlIGxvYWQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLAotICAgICAgICBtX3BhcmFt
ZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3Bh
cmFtZXRlcnMuaWRlbnRpZmllcik7CisgICAgICAgIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9V
SW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJz
LmlkZW50aWZpZXIpOwogCiAgICAgaWYgKG1fcGFyYW1ldGVycy5vcHRpb25zLmtlZXBBbGl2ZSAm
JiBtX3Jlc3BvbnNlLmlzTnVsbCgpICYmICFtX2lzS2VwdEFsaXZlKSB7CiAgICAgICAgIG1faXNL
ZXB0QWxpdmUgPSB0cnVlOwpAQCAtNDQ3LDcgKzQ0Nyw3IEBAIGJvb2wgTmV0d29ya1Jlc291cmNl
TG9hZGVyOjpzaG91bGRJbnRlcnJ1cHRMb2FkRm9yQ1NQRnJhbWVBbmNlc3RvcnNPclhGcmFtZU9w
dGlvCiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVz
b3VyY2VSZXNwb25zZSYmIHJlY2VpdmVkUmVzcG9uc2UsIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRs
ZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJk
aWRSZWNlaXZlUmVzcG9uc2U6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGh0dHBTdGF0dXNDb2RlID0gJWQsIGxl
bmd0aCA9ICUiIFBSSWQ2NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwg
bV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCByZWNlaXZl
ZFJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCksIHJlY2VpdmVkUmVzcG9uc2UuZXhwZWN0ZWRDb250
ZW50TGVuZ3RoKCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNw
b25zZTogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIiwgaHR0cFN0YXR1c0NvZGUgPSAlZCwgbGVuZ3RoID0gJSIgUFJJ
ZDY0ICIpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMu
d2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgcmVjZWl2ZWRS
ZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpLCByZWNlaXZlZFJlc3BvbnNlLmV4cGVjdGVkQ29udGVu
dExlbmd0aCgpKTsKIAogICAgIG1fcmVzcG9uc2UgPSBXVEZNb3ZlKHJlY2VpdmVkUmVzcG9uc2Up
OwogCkBAIC01MjcsNyArNTI3LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJl
Y2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVjZWl2ZWRSZXNwb24KIHZvaWQgTmV0
d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlQnVmZmVyKFJlZjxTaGFyZWRCdWZmZXI+JiYg
YnVmZmVyLCBpbnQgcmVwb3J0ZWRFbmNvZGVkRGF0YUxlbmd0aCkKIHsKICAgICBpZiAoIW1fbnVt
Qnl0ZXNSZWNlaXZlZCkKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2
ZUJ1ZmZlcjogU3RhcnRlZCByZWNlaXZpbmcgZGF0YSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZy
YW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fcGFyYW1l
dGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFy
YW1ldGVycy5pZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlk
UmVjZWl2ZUJ1ZmZlcjogU3RhcnRlZCByZWNlaXZpbmcgZGF0YSAocGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1f
cGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQu
dG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIpOwogICAgIG1fbnVtQnl0ZXNSZWNl
aXZlZCArPSBidWZmZXItPnNpemUoKTsKIAogICAgIEFTU0VSVCghbV9jYWNoZUVudHJ5Rm9yVmFs
aWRhdGlvbik7CkBAIC01NTYsNyArNTU2LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OmRpZFJlY2VpdmVCdWZmZXIoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIsIGludCByZXAKIAog
dm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoY29uc3QgTmV0d29y
a0xvYWRNZXRyaWNzJiBuZXR3b3JrTG9hZE1ldHJpY3MpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgiZGlkRmluaXNoTG9hZGluZzogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgbGVuZ3RoID0gJXpkKSIs
IG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1l
SUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBtX251bUJ5dGVzUmVjZWl2ZWQpOworICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZpbmlzaExvYWRpbmc6IChwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGxl
bmd0aCA9ICV6ZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1l
dGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBtX251
bUJ5dGVzUmVjZWl2ZWQpOwogCiAgICAgaWYgKHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2Fk
TWV0cmljcygpKQogICAgICAgICBtX2Nvbm5lY3Rpb24tPmFkZE5ldHdvcmtMb2FkSW5mb3JtYXRp
b25NZXRyaWNzKGlkZW50aWZpZXIoKSwgbmV0d29ya0xvYWRNZXRyaWNzKTsKQEAgLTU5MSw3ICs1
OTEsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhjb25z
dCBOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMbwogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxv
YWRlcjo6ZGlkRmFpbExvYWRpbmcoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7Ci0gICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkRmFpbExvYWRpbmc6IChwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlz
VGltZW91dCA9ICVkLCBpc0NhbmNlbGxhdGlvbiA9ICVkLCBpc0FjY2Vzc0NvbnRyb2wgPSAlZCwg
ZXJyQ29kZSA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJh
bWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBlcnJvci5pc1RpbWVv
dXQoKSwgZXJyb3IuaXNDYW5jZWxsYXRpb24oKSwgZXJyb3IuaXNBY2Nlc3NDb250cm9sKCksIGVy
cm9yLmVycm9yQ29kZSgpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRGYWlsTG9h
ZGluZzogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNUaW1lb3V0ID0gJWQsIGlzQ2FuY2VsbGF0aW9uID0gJWQs
IGlzQWNjZXNzQ29udHJvbCA9ICVkLCBlcnJDb2RlID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBh
Z2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3Bh
cmFtZXRlcnMuaWRlbnRpZmllciwgZXJyb3IuaXNUaW1lb3V0KCksIGVycm9yLmlzQ2FuY2VsbGF0
aW9uKCksIGVycm9yLmlzQWNjZXNzQ29udHJvbCgpLCBlcnJvci5lcnJvckNvZGUoKSk7CiAKICAg
ICBpZiAoc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKCkpCiAgICAgICAgIG1f
Y29ubmVjdGlvbi0+cmVtb3ZlTmV0d29ya0xvYWRJbmZvcm1hdGlvbihpZGVudGlmaWVyKCkpOwpA
QCAtNzU2LDcgKzc1Niw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjb250aW51ZVdp
bGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiBuZXdSZXF1ZXN0CiAgICAgICAgIH0KICAg
ICB9CiAKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJjb250aW51ZVdpbGxTZW5kUmVxdWVz
dDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNl
SUQgPSAlIiBQUkl1NjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1f
cGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CisgICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRCgiY29udGludWVXaWxsU2VuZFJlcXVlc3Q6IChwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0
ICIpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2Vi
RnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CiAKICAgICBtX2lz
QWxsb3dlZFRvQXNrVXNlckZvckNyZWRlbnRpYWxzID0gaXNBbGxvd2VkVG9Bc2tVc2VyRm9yQ3Jl
ZGVudGlhbHM7CiAKQEAgLTEwMTEsMTIgKzEwMTEsMTcgQEAgc3RhdGljIFN0cmluZyBlc2NhcGVG
b3JKU09OKFN0cmluZyBzKQogc3RhdGljIFN0cmluZyBlc2NhcGVJREZvckpTT04oY29uc3QgT3B0
aW9uYWw8dWludDY0X3Q+JiB2YWx1ZSkKIHsKICAgICByZXR1cm4gdmFsdWUgPyBTdHJpbmc6Om51
bWJlcih2YWx1ZS52YWx1ZSgpKSA6IFN0cmluZygiTm9uZSJfcyk7Ci19OworfQorCitzdGF0aWMg
U3RyaW5nIGVzY2FwZUlERm9ySlNPTihjb25zdCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+JiB2
YWx1ZSkKK3sKKyAgICByZXR1cm4gdmFsdWUgPyBTdHJpbmc6Om51bWJlcih2YWx1ZS0+dG9VSW50
NjQoKSkgOiBTdHJpbmcoIk5vbmUiX3MpOworfQogCiBzdGF0aWMgU3RyaW5nIGVzY2FwZUlERm9y
SlNPTihjb25zdCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4mIHZhbHVlKQogewogICAgIHJldHVy
biB2YWx1ZSA/IFN0cmluZzo6bnVtYmVyKHZhbHVlLT50b1VJbnQ2NCgpKSA6IFN0cmluZygiTm9u
ZSJfcyk7Ci19OworfQogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6bG9nQ29va2llSW5m
b3JtYXRpb24oKSBjb25zdAogewpAQCAtMTAyOCw3ICsxMDMzLDcgQEAgdm9pZCBOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uKCkgY29uc3QKICAgICBsb2dDb29raWVJ
bmZvcm1hdGlvbihtX2Nvbm5lY3Rpb24sICJOZXR3b3JrUmVzb3VyY2VMb2FkZXIiLCByZWludGVy
cHJldF9jYXN0PGNvbnN0IHZvaWQqPih0aGlzKSwgKm5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgb3Jp
Z2luYWxSZXF1ZXN0KCkuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgU2FtZVNpdGVJbmZvOjpjcmVh
dGUob3JpZ2luYWxSZXF1ZXN0KCkpLCBvcmlnaW5hbFJlcXVlc3QoKS51cmwoKSwgb3JpZ2luYWxS
ZXF1ZXN0KCkuaHR0cFJlZmVycmVyKCksIGZyYW1lSUQoKSwgcGFnZUlEKCksIGlkZW50aWZpZXIo
KSk7CiB9CiAKLXN0YXRpYyB2b2lkIGxvZ0Jsb2NrZWRDb29raWVJbmZvcm1hdGlvbihOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgY29uc3QgU3RyaW5nJiBsYWJlbCwg
Y29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNl
c3Npb24mIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmlu
ZyYgcmVmZXJyZXIsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRl
bnRpZmllcj4gcGFnZUlELCBPcHRpb25hbDx1aW50NjRfdD4gaWRlbnRpZmllcikKK3N0YXRpYyB2
b2lkIGxvZ0Jsb2NrZWRDb29raWVJbmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYgY29ubmVjdGlvbiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2Vk
T2JqZWN0LCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIG5ldHdvcmtTdG9y
YWdlU2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNh
bWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIE9wdGlv
bmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBh
Z2VJRCwgT3B0aW9uYWw8dWludDY0X3Q+IGlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKE5ldHdv
cmtSZXNvdXJjZUxvYWRlcjo6c2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oY29ubmVjdGlvbiwg
bmV0d29ya1N0b3JhZ2VTZXNzaW9uLnNlc3Npb25JRCgpKSk7CiAKQEAgLTEwNTUsNyArMTA2MCw3
IEBAIHN0YXRpYyB2b2lkIGxvZ0Jsb2NrZWRDb29raWVJbmZvcm1hdGlvbihOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvCiAjdW5kZWYgTE9DQUxfTE9HX0lGX0FMTE9XRUQK
IH0KIAotc3RhdGljIHZvaWQgbG9nQ29va2llSW5mb3JtYXRpb25JbnRlcm5hbChOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29u
c3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b24mIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBX
ZWJDb3JlOjpTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIGNvbnN0
IFN0cmluZyYgcmVmZXJyZXIsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQ
YWdlSWRlbnRpZmllcj4gcGFnZUlELCBPcHRpb25hbDx1aW50NjRfdD4gaWRlbnRpZmllcikKK3N0
YXRpYyB2b2lkIGxvZ0Nvb2tpZUluZm9ybWF0aW9uSW50ZXJuYWwoTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IHZvaWQq
IGxvZ2dlZE9iamVjdCwgY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBuZXR3
b3JrU3RvcmFnZVNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6
U2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcm
IHJlZmVycmVyLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiBwYWdlSUQsIE9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyKQogewog
ICAgIEFTU0VSVChOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNob3VsZExvZ0Nvb2tpZUluZm9ybWF0
aW9uKGNvbm5lY3Rpb24sIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5zZXNzaW9uSUQoKSkpOwogCkBA
IC0xMTE2LDcgKzExMjEsNyBAQCBzdGF0aWMgdm9pZCBsb2dDb29raWVJbmZvcm1hdGlvbkludGVy
bmFsKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aQogI3VuZGVmIExPQ0FM
X0xPR19JRl9BTExPV0VECiB9CiAKLXZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpsb2dDb29r
aWVJbmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwg
Y29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBjb25zdCBOZXR3
b3JrU3RvcmFnZVNlc3Npb24mIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmws
IGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBPcHRpb25hbDx1aW50NjRfdD4gaWRlbnRpZmll
cikKK3ZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpsb2dDb29raWVJbmZvcm1hdGlvbihOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgY29uc3QgU3RyaW5nJiBsYWJl
bCwgY29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24m
IG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1l
U2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVm
ZXJyZXIsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+IHBhZ2VJRCwgT3B0aW9uYWw8dWludDY0X3Q+IGlkZW50aWZpZXIpCiB7CiAgICAg
QVNTRVJUKHNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKGNvbm5lY3Rpb24sIG5ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5zZXNzaW9uSUQoKSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAppbmRleCA2MmM2NWNkZGZmN2NhMGIy
MGExYzE5MDk5YjlmNzE1ZmFlNDU0YThlLi43NDkyZGYzMmY3OTk2ZTA5MDNiZTkwZGEwMDVlOWIx
NDZkYTE1ZmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZGVyLmgKQEAgLTg1LDcgKzg1LDcgQEAgcHVibGljOgogICAgIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkgY29uc3Qg
eyByZXR1cm4gbV9jb25uZWN0aW9uOyB9CiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkg
Y29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLnNlc3Npb25JRDsgfQogICAgIFJlc291cmNlTG9h
ZElkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy5pZGVu
dGlmaWVyOyB9Ci0gICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1l
dGVycy53ZWJGcmFtZUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQo
KSBjb25zdCB7IHJldHVybiBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRDsgfQogICAgIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy53ZWJQ
YWdlSUQ7IH0KIAogICAgIHN0cnVjdCBTeW5jaHJvbm91c0xvYWREYXRhOwpAQCAtMTEyLDcgKzEx
Miw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpICYm
ICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIHN0YXRpYyBib29sIHNob3VsZExvZ0Nvb2tpZUlu
Zm9ybWF0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgY29uc3QgUEFMOjpTZXNz
aW9uSUQmKTsKLSAgICBzdGF0aWMgdm9pZCBsb2dDb29raWVJbmZvcm1hdGlvbihOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2VzcyYsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IHZvaWQqIGxv
Z2dlZE9iamVjdCwgY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwm
LCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0
aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBPcHRpb25hbDx1aW50NjRfdD4gaWRlbnRp
Zmllcik7CisgICAgc3RhdGljIHZvaWQgbG9nQ29va2llSW5mb3JtYXRpb24oTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MmLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2b2lkKiBsb2dn
ZWRPYmplY3QsIGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwg
Y29uc3QgU3RyaW5nJiByZWZlcnJlciwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
PiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBPcHRpb25hbDx1aW50NjRfdD4g
aWRlbnRpZmllcik7CiAjZW5kaWYKIAogICAgIHZvaWQgZGlzYWJsZUV4dHJhTmV0d29ya0xvYWRN
ZXRyaWNzQ2FwdHVyZSgpIHsgbV9zaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3Mg
PSBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9OZXR3b3JrQ2FjaGUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlLmgKaW5kZXggZDk0ZmM3MzgwZjE5YTVmNWY1Yjc4ZWEzOWVmMWQ2NWE5MjExZWU0
Zi4uODVkMTAwY2E2YzdjMDVmYjhjM2QxMmQwM2E0NDAyODExMDM5NWVmOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCkBAIC0yOCw2
ICsyOCw3IEBACiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlRW50cnkuaCIKICNpbmNsdWRlICJOZXR3
b3JrQ2FjaGVTdG9yYWdlLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlUmVzb3VyY2UuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlk
ZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KICNpbmNs
dWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KQEAgLTg1LDcgKzg2LDcgQEAgZW51bSBjbGFz
cyBVc2VEZWNpc2lvbiB7CiAgICAgTm9EdWVUb0V4cGlyZWRSZWRpcmVjdAogfTsKIAotdXNpbmcg
R2xvYmFsRnJhbWVJRCA9IHN0ZDo6cGFpcjxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0
X3QgLyp3ZWJGcmFtZUlEKi8+OwordXNpbmcgR2xvYmFsRnJhbWVJRCA9IHN0ZDo6cGFpcjxXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPjsgLy8gRklYTUU6
IFVzZSBHbG9iYWxGcmFtZUlkZW50aWZpZXIuCiAKIGVudW0gY2xhc3MgQ2FjaGVPcHRpb24gOiB1
aW50OF90IHsKICAgICAvLyBJbiB0ZXN0aW5nIG1vZGUgd2UgdHJ5IHRvIGVsaW1pbmF0ZSBzb3Vy
Y2VzIG9mIHJhbmRvbW5lc3MuIENhY2hlIGRvZXMgbm90IHNocmluayBhbmQgdGhlcmUgYXJlIG5v
IHJlYWQgdGltZW91dHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKaW5kZXggMjc5MzU3NTM1YmUxZTg0YTEz
ZDMxZmY3ZmMzMmVjODJlNjllZGI4Zi4uNDNhZDZmMWRlNDFjNTE2MWRkOWRiM2I2OWFmOTFjYTNm
N2FiMjQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrRGF0YVRhc2tDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaApAQCAtNDIsNyArNDIsNyBAQCBjbGFzcyBOZXR3
b3JrU2Vzc2lvbkNvY29hOwogY2xhc3MgTmV0d29ya0RhdGFUYXNrQ29jb2EgZmluYWwgOiBwdWJs
aWMgTmV0d29ya0RhdGFUYXNrIHsKICAgICBmcmllbmQgY2xhc3MgTmV0d29ya1Nlc3Npb25Db2Nv
YTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5ldHdvcmtEYXRhVGFzaz4gY3JlYXRlKE5ldHdv
cmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCB1aW50NjRfdCBmcmFtZUlELCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xp
Y3kgc2hvdWxkQ29udGVudFNuaWZmLCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1Bv
bGljeSBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25s
eSwgYm9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgYm9vbCBkYXRhVGFza0lz
Rm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lLCBPcHRpb25hbDxOZXR3b3JrQWN0
aXZpdHlUcmFja2VyPiBuZXR3b3JrQWN0aXZpdHlUcmFja2VyKQorICAgIHN0YXRpYyBSZWY8TmV0
d29ya0RhdGFUYXNrPiBjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRh
VGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciBwYWdlSUQsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRl
bnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVu
dFNuaWZmLCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250
ZW50RW5jb2RpbmdTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJl
ZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFz
a0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgYm9vbCBkYXRhVGFza0lzRm9yTWFpblJlc291cmNl
TmF2aWdhdGlvbkZvckFueUZyYW1lLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBu
ZXR3b3JrQWN0aXZpdHlUcmFja2VyKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgTmV0d29ya0RhdGFUYXNrQ29jb2Eoc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0LCBmcmFtZUlE
LCBwYWdlSUQsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDb250ZW50U25pZmYsIHNo
b3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRU
UFJlZGlyZWN0LCBzaG91bGRQcmVjb25uZWN0T25seSwgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5h
dmlnYXRpb24sIGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUs
IG5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpKTsKICAgICB9CkBAIC02OSwxMyArNjksMTMgQEAgcHVi
bGljOgogCiAgICAgV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3JrTG9hZE1ldHJp
Y3MoKSB7IHJldHVybiBtX25ldHdvcmtMb2FkTWV0cmljczsgfQogCi0gICAgdWludDY0X3QgZnJh
bWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfTsKKyAgICBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfTsKICAgICBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VJRDsgfTsK
IAogICAgIFN0cmluZyBkZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgot
ICAgIE5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNr
Q2xpZW50JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgdWludDY0X3QgZnJhbWVJ
RCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRFbmNv
ZGluZ1NuaWZmaW5nUG9saWN5LCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZp
Z2F0aW9uLCBib29sIGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJh
bWUsIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+KTsKKyAgICBOZXR3b3JrRGF0YVRh
c2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtEYXRhVGFza0NsaWVudCYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJD
b3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZm
aW5nUG9saWN5LCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Qs
IFByZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBi
b29sIGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIE9wdGlv
bmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+KTsKIAogICAgIGJvb2wgdHJ5UGFzc3dvcmRCYXNl
ZEF1dGhlbnRpY2F0aW9uKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwg
Q2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImKTsKICAgICB2b2lkIGFwcGx5U25pZmZpbmdQb2xp
Y2llc0FuZEJpbmRSZXF1ZXN0VG9JbmZlcmZhY2VJZk5lZWRlZChfX3N0cm9uZyBOU1VSTFJlcXVl
c3QqJiwgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5n
U25pZmYpOwpAQCAtOTIsNyArOTIsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxTYW5kYm94RXh0
ZW5zaW9uPiBtX3NhbmRib3hFeHRlbnNpb247CiAgICAgUmV0YWluUHRyPE5TVVJMU2Vzc2lvbkRh
dGFUYXNrPiBtX3Rhc2s7CiAgICAgV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzIG1fbmV0d29y
a0xvYWRNZXRyaWNzOwotICAgIHVpbnQ2NF90IG1fZnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgbV9mcmFtZUlEOwogICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIG1fcGFn
ZUlEOwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0Nv
Y29hLm1tCmluZGV4IDQyZTdhY2U0MjRiMmFiOGJiMDBhMzdjOTYzZWE5N2Q0NDEzMTVhZTAuLmMy
ZTdiMzY4NTRlNzM5NWNiNjkzMGQ2ZTI1NzQ4YzRiYWQ2MDEyMTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2Nv
YS5tbQpAQCAtMTcwLDcgKzE3MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBjb21wdXRlSXNBbHdh
eXNPbkxvZ2dpbmdBbGxvd2VkKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uKQogICAgIHJldHVybiBz
ZXNzaW9uLnNlc3Npb25JRCgpLmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpOwogfQogCi1OZXR3
b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNl
c3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIHVpbnQ2NF90IGZyYW1lSUQsIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1Bv
bGljeSBzaG91bGRDb250ZW50U25pZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5n
UG9saWN5IHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJy
ZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RP
bmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBib29sIGRhdGFUYXNr
SXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIE9wdGlvbmFsPE5ldHdvcmtB
Y3Rpdml0eVRyYWNrZXI+IG5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpCitOZXR3b3JrRGF0YVRhc2tD
b2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdv
cmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRp
YWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZp
bmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlm
ZmluZ1BvbGljeSBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJl
ZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25u
ZWN0T25seSwgYm9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgYm9vbCBkYXRh
VGFza0lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lLCBPcHRpb25hbDxOZXR3
b3JrQWN0aXZpdHlUcmFja2VyPiBuZXR3b3JrQWN0aXZpdHlUcmFja2VyKQogICAgIDogTmV0d29y
a0RhdGFUYXNrKHNlc3Npb24sIGNsaWVudCwgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgc3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJl
Y3QsIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uKQogICAgICwgbV9mcmFtZUlEKGZy
YW1lSUQpCiAgICAgLCBtX3BhZ2VJRChwYWdlSUQpCkBAIC0yNTYsNyArMjU2LDcgQEAgTmV0d29y
a0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNz
aW9uLCBOZXR3b3JrRGF0YVQKICAgICBpZiAoc2hvdWxkQmxvY2tDb29raWVzKSB7CiAjaWYgIVJF
TEVBU0VfTE9HX0RJU0FCTEVECiAgICAgICAgIGlmIChtX3Nlc3Npb24tPnNob3VsZExvZ0Nvb2tp
ZUluZm9ybWF0aW9uKCkpCi0gICAgICAgICAgICBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9n
Z2luZ0FsbG93ZWQoKSwgTmV0d29yaywgIiVwIC0gTmV0d29ya0RhdGFUYXNrQ29jb2E6OmxvZ0Nv
b2tpZUluZm9ybWF0aW9uOiBwYWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwgdGFza0lEID0g
JWx1OiBCbG9ja2luZyBjb29raWVzIGZvciBVUkwgJXMiLCB0aGlzLCBwYWdlSUQudG9VSW50NjQo
KSwgZnJhbWVJRCwgKHVuc2lnbmVkIGxvbmcpW21fdGFzayB0YXNrSWRlbnRpZmllcl0sIG5zUmVx
dWVzdC5VUkwuYWJzb2x1dGVTdHJpbmcuVVRGOFN0cmluZyk7CisgICAgICAgICAgICBSRUxFQVNF
X0xPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29yaywgIiVwIC0gTmV0d29y
a0RhdGFUYXNrQ29jb2E6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uOiBwYWdlSUQgPSAlbGx1LCBmcmFt
ZUlEID0gJWxsdSwgdGFza0lEID0gJWx1OiBCbG9ja2luZyBjb29raWVzIGZvciBVUkwgJXMiLCB0
aGlzLCBwYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpLCAodW5zaWduZWQgbG9u
ZylbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgbnNSZXF1ZXN0LlVSTC5hYnNvbHV0ZVN0cmluZy5V
VEY4U3RyaW5nKTsKICNlbHNlCiAgICAgICAgIExPRyhOZXR3b3JrU2Vzc2lvbiwgIiVsbHUgQmxv
Y2tpbmcgY29va2llcyBmb3IgVVJMICVzIiwgW21fdGFzayB0YXNrSWRlbnRpZmllcl0sIG5zUmVx
dWVzdC5VUkwuYWJzb2x1dGVTdHJpbmcuVVRGOFN0cmluZyk7CiAjZW5kaWYKQEAgLTM5MCw3ICsz
OTAsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza0NvY29hOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVj
dGlvbihXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJgogICAgIH0KICNpZiAhUkVMRUFTRV9MT0df
RElTQUJMRUQKICAgICBpZiAobV9zZXNzaW9uLT5zaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbigp
KQotICAgICAgICBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0
d29yaywgIiVwIC0gTmV0d29ya0RhdGFUYXNrQ29jb2E6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0
aW9uOjpsb2dDb29raWVJbmZvcm1hdGlvbjogcGFnZUlEID0gJWxsdSwgZnJhbWVJRCA9ICVsbHUs
IHRhc2tJRCA9ICVsdTogJXMgY29va2llcyBmb3IgcmVkaXJlY3QgVVJMICVzIiwgdGhpcywgbV9w
YWdlSUQudG9VSW50NjQoKSwgbV9mcmFtZUlELCAodW5zaWduZWQgbG9uZylbbV90YXNrIHRhc2tJ
ZGVudGlmaWVyXSwgKG1faGFzQmVlblNldFRvVXNlU3RhdGVsZXNzQ29va2llU3RvcmFnZSA/ICJC
bG9ja2luZyIgOiAiTm90IGJsb2NraW5nIiksIHJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgp
LmRhdGEoKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dl
ZCgpLCBOZXR3b3JrLCAiJXAgLSBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6d2lsbFBlcmZvcm1IVFRQ
UmVkaXJlY3Rpb246OmxvZ0Nvb2tpZUluZm9ybWF0aW9uOiBwYWdlSUQgPSAlbGx1LCBmcmFtZUlE
ID0gJWxsdSwgdGFza0lEID0gJWx1OiAlcyBjb29raWVzIGZvciByZWRpcmVjdCBVUkwgJXMiLCB0
aGlzLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBtX2ZyYW1lSUQudG9VSW50NjQoKSwgKHVuc2lnbmVk
IGxvbmcpW21fdGFzayB0YXNrSWRlbnRpZmllcl0sIChtX2hhc0JlZW5TZXRUb1VzZVN0YXRlbGVz
c0Nvb2tpZVN0b3JhZ2UgPyAiQmxvY2tpbmciIDogIk5vdCBibG9ja2luZyIpLCByZXF1ZXN0LnVy
bCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogI2Vsc2UKICAgICBMT0coTmV0d29ya1Nlc3Np
b24sICIlbGx1ICVzIGNvb2tpZXMgZm9yIHJlZGlyZWN0IFVSTCAlcyIsIFttX3Rhc2sgdGFza0lk
ZW50aWZpZXJdLCAobV9oYXNCZWVuU2V0VG9Vc2VTdGF0ZWxlc3NDb29raWVTdG9yYWdlID8gIkJs
b2NraW5nIiA6ICJOb3QgYmxvY2tpbmciKSwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkK
aW5kZXggZjBlYzhkYzFiNzE2OWJjY2E1NWE2NTQ5MTJlZDJmZWY1MzcwZGYxMC4uYzAxZTg5NTll
ODA3ZmY2MjRlZjg1NzdlYjM1NTY1ZTQyZDkzYTNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yMDUsNiArMjA1LDcgQEAgZGVmIGZvcndhcmRfZGVjbGFy
YXRpb25zX2FuZF9oZWFkZXJzKHJlY2VpdmVyKToKICAgICAgICAgJ1N0cmluZycsCiAgICAgICAg
ICdXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6RmV0Y2hJ
ZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYkNvcmU6OkZyYW1lSWRlbnRpZmllcicsCiAgICAgICAg
ICdXZWJDb3JlOjpQYWdlSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpQb2ludGVySUQn
LAogICAgICAgICAnV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXInLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5jcHAKaW5kZXggNzk2NDZhYzZlNTljNDFkNGRmNzA5
MDFkYmE3ZTI2NzUzMzZkNTI0YS4uNDA4MDEzODg1NDhhMTgxMWFiNTllNWNiMjQ1YTExNTIxMTQy
YmVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuY3BwCkBA
IC0zMSwxNyArMzEsMTcgQEAKIAogbmFtZXNwYWNlIEFQSSB7CiAKLVJlZjxGcmFtZUhhbmRsZT4g
RnJhbWVIYW5kbGU6OmNyZWF0ZSh1aW50NjRfdCBmcmFtZUlEKQorUmVmPEZyYW1lSGFuZGxlPiBG
cmFtZUhhbmRsZTo6Y3JlYXRlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewog
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZyYW1lSGFuZGxlKGZyYW1lSUQsIGZhbHNlKSk7CiB9
CiAKLVJlZjxGcmFtZUhhbmRsZT4gRnJhbWVIYW5kbGU6OmNyZWF0ZUF1dG9jb252ZXJ0aW5nKHVp
bnQ2NF90IGZyYW1lSUQpCitSZWY8RnJhbWVIYW5kbGU+IEZyYW1lSGFuZGxlOjpjcmVhdGVBdXRv
Y29udmVydGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBGcmFtZUhhbmRsZShmcmFtZUlELCB0cnVlKSk7CiB9CiAKLUZyYW1l
SGFuZGxlOjpGcmFtZUhhbmRsZSh1aW50NjRfdCBmcmFtZUlELCBib29sIGlzQXV0b2NvbnZlcnRp
bmcpCitGcmFtZUhhbmRsZTo6RnJhbWVIYW5kbGUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIGJvb2wgaXNBdXRvY29udmVydGluZykKICAgICA6IG1fZnJhbWVJRChmcmFtZUlEKQog
ICAgICwgbV9pc0F1dG9jb252ZXJ0aW5nKGlzQXV0b2NvbnZlcnRpbmcpCiB7CkBAIC01OSw3ICs1
OSw3IEBAIHZvaWQgRnJhbWVIYW5kbGU6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNv
bnN0CiAKIGJvb2wgRnJhbWVIYW5kbGU6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFJl
ZlB0cjxPYmplY3Q+JiByZXN1bHQpCiB7Ci0gICAgdWludDY0X3QgZnJhbWVJRDsKKyAgICBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGZy
YW1lSUQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJ
L0FQSUZyYW1lSGFuZGxlLmgKaW5kZXggYjEwZTgwOGE0YjE5YWQzMTNkOGI0NTVjMjNiOWQ4Mzk5
Y2MzODU1MC4uMWM2NGE0YWQxZTgwMmEwNDY3Mjk4MWJjYmY4YTc2MDE2NDI1ZmZkOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmgKQEAgLTI3LDYgKzI3LDcgQEAK
ICNkZWZpbmUgQVBJRnJhbWVIYW5kbGVfaAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAK
IG5hbWVzcGFjZSBJUEMgewpAQCAtMzgsMjAgKzM5LDIwIEBAIG5hbWVzcGFjZSBBUEkgewogCiBj
bGFzcyBGcmFtZUhhbmRsZSA6IHB1YmxpYyBPYmplY3RJbXBsPE9iamVjdDo6VHlwZTo6RnJhbWVI
YW5kbGU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEZyYW1lSGFuZGxlPiBjcmVhdGUodWlu
dDY0X3QgZnJhbWVJRCk7Ci0gICAgc3RhdGljIFJlZjxGcmFtZUhhbmRsZT4gY3JlYXRlQXV0b2Nv
bnZlcnRpbmcodWludDY0X3QgZnJhbWVJRCk7CisgICAgc3RhdGljIFJlZjxGcmFtZUhhbmRsZT4g
Y3JlYXRlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgc3RhdGljIFJlZjxGcmFtZUhh
bmRsZT4gY3JlYXRlQXV0b2NvbnZlcnRpbmcoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKIAot
ICAgIGV4cGxpY2l0IEZyYW1lSGFuZGxlKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNBdXRvY29u
dmVydGluZyk7CisgICAgZXhwbGljaXQgRnJhbWVIYW5kbGUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBib29sIGlzQXV0b2NvbnZlcnRpbmcpOwogICAgIHZpcnR1YWwgfkZyYW1lSGFuZGxlKCk7
CiAKLSAgICB1aW50NjRfdCBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9Cisg
ICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2Zy
YW1lSUQ7IH0KICAgICBib29sIGlzQXV0b2NvbnZlcnRpbmcoKSBjb25zdCB7IHJldHVybiBtX2lz
QXV0b2NvbnZlcnRpbmc7IH0KIAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0
OwogICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBSZWZQdHI8T2JqZWN0PiYp
OwogCiBwcml2YXRlOgotICAgIGNvbnN0IHVpbnQ2NF90IG1fZnJhbWVJRDsKKyAgICBjb25zdCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbV9mcmFtZUlEOwogICAgIGNvbnN0IGJvb2wgbV9pc0F1
dG9jb252ZXJ0aW5nOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJ
L0NvY29hL19XS0ZyYW1lSGFuZGxlLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29h
L19XS0ZyYW1lSGFuZGxlLm1tCmluZGV4IGE0MWE2MTNhN2QzNzFkN2FlMmE3M2U0MDU4MjdiMGFi
ZDczNTcwNzAuLmVkY2IzOGU2MzVhN2JmMDkyN2IxMTBjYzdkNGNmOTc2NmFiNWQwODEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5kbGUubW0KQEAg
LTI2LDYgKzI2LDggQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiX1dLRnJhbWVIYW5k
bGVJbnRlcm5hbC5oIgogCisjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgorCiBA
aW1wbGVtZW50YXRpb24gX1dLRnJhbWVIYW5kbGUgewogICAgIEFQSTo6T2JqZWN0U3RvcmFnZTxB
UEk6OkZyYW1lSGFuZGxlPiBfZnJhbWVIYW5kbGU7CiB9CkBAIC01MCwxMiArNTIsMTIgQEAgLSAo
Qk9PTClpc0VxdWFsOihpZClvYmplY3QKIAogLSAoTlNVSW50ZWdlciloYXNoCiB7Ci0gICAgcmV0
dXJuIF9mcmFtZUhhbmRsZS0+ZnJhbWVJRCgpOworICAgIHJldHVybiBfZnJhbWVIYW5kbGUtPmZy
YW1lSUQoKS50b1VJbnQ2NCgpOwogfQogCiAtICh1aW50NjRfdClfZnJhbWVJRAogewotICAgIHJl
dHVybiBfZnJhbWVIYW5kbGUtPmZyYW1lSUQoKTsKKyAgICByZXR1cm4gX2ZyYW1lSGFuZGxlLT5m
cmFtZUlEKCkudG9VSW50NjQoKTsKIH0KIAogI3ByYWdtYSBtYXJrIE5TQ29weWluZyBwcm90b2Nv
bCBpbXBsZW1lbnRhdGlvbgpAQCAtODMsMTQgKzg1LDE0IEBAIC0gKGlkKWluaXRXaXRoQ29kZXI6
KE5TQ29kZXIgKilkZWNvZGVyCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCi0gICAgQVBJ
OjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OkZyYW1lSGFuZGxlPihzZWxmLCBmcmFt
ZUlELnVuc2lnbmVkTG9uZ0xvbmdWYWx1ZSwgZmFsc2UpOworICAgIEFQSTo6T2JqZWN0Ojpjb25z
dHJ1Y3RJbldyYXBwZXI8QVBJOjpGcmFtZUhhbmRsZT4oc2VsZiwgV2ViQ29yZTo6ZnJhbWVJZGVu
dGlmaWVyRnJvbUlEKGZyYW1lSUQudW5zaWduZWRMb25nTG9uZ1ZhbHVlKSwgZmFsc2UpOwogCiAg
ICAgcmV0dXJuIHNlbGY7CiB9CiAKIC0gKHZvaWQpZW5jb2RlV2l0aENvZGVyOihOU0NvZGVyICop
Y29kZXIKIHsKLSAgICBbY29kZXIgZW5jb2RlT2JqZWN0OkAoX2ZyYW1lSGFuZGxlLT5mcmFtZUlE
KCkpIGZvcktleTpAImZyYW1lSUQiXTsKKyAgICBbY29kZXIgZW5jb2RlT2JqZWN0OkAoW3NlbGYg
X2ZyYW1lSURdKSBmb3JLZXk6QCJmcmFtZUlEIl07CiB9CiAKICNwcmFnbWEgbWFyayBXS09iamVj
dCBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXgg
OWRlYjc2ZmYxMzJjNmNiNWZkZjVlYmY1MjIyMzRmNmQ0NDNlZjk0ZC4uMzhhNWJmZjZhZmQyNTcx
ZDUyZGNlNGMwOTgwNGFhNzU0NGFiZTRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCkBA
IC0xMDgsNyArMTA4LDcgQEAgVmVjdG9yPHVpbnQ2NF90PiBBdXRoZW50aWNhdGlvbk1hbmFnZXI6
OmNvYWxlc2NlQ2hhbGxlbmdlc01hdGNoaW5nKHVpbnQ2NF90IGNoYWwKICAgICByZXR1cm4gY2hh
bGxlbmdlc1RvQ29hbGVzY2U7CiB9CiAKLXZvaWQgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpkaWRS
ZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYXV0aGVudGljYXRp
b25DaGFsbGVuZ2UsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRs
ZXIpCit2b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwg
Q2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBB
U1NFUlQocGFnZUlEKTsKICAgICBBU1NFUlQoZnJhbWVJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5o
CmluZGV4IDg2ZTc0NGMxMDhkZjRjYmNmNWQwNDc2MDlhY2Y5NmM2ODIzZDZiMTYuLjQwMzZlYWI3
N2ZkOWNlMTU1NTMwZmI2YTRjYzU2MTY4M2Q3ZWQ5MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5o
CkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50Lmgi
CiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1N1cHBsZW1lbnQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0F1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZp
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3Rm
L0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTYxLDcg
KzYyLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1l
KCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6QXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYmKTsKKyAgICB2
b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYpOwogICAgIHZvaWQg
ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKElQQzo6TWVzc2FnZVNlbmRlciYgZG93
bmxvYWQsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgQ2hhbGxlbmdl
Q29tcGxldGlvbkhhbmRsZXImJik7CiAKICAgICB2b2lkIGNvbXBsZXRlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UodWludDY0X3QgY2hhbGxlbmdlSUQsIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlz
cG9zaXRpb24sIFdlYkNvcmU6OkNyZWRlbnRpYWwmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9GcmFtZUluZm9EYXRhLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9GcmFtZUlu
Zm9EYXRhLmgKaW5kZXggYTgyODM2ODZmMTZhYjNjZDM1MjQ5Y2U3MDVkM2YyYjhlN2JiM2M2Ni4u
MTNhMDI5OTQ0YjI4OTkwYWNhYjQ4MjZmNzZmNTNkNDQ3OWQzN2EzNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvRnJhbWVJbmZvRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0ZyYW1lSW5mb0RhdGEuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAor
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5o
PgogCkBAIC00Miw3ICs0Myw3IEBAIHN0cnVjdCBGcmFtZUluZm9EYXRhIHsKICAgICBib29sIGlz
TWFpbkZyYW1lIHsgZmFsc2UgfTsKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dDsKICAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgc2VjdXJpdHlPcmlnaW47Ci0gICAg
dWludDY0X3QgZnJhbWVJRCB7IDAgfTsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLRnJhbWVIYW5kbGVSZWYuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tG
cmFtZUhhbmRsZVJlZi5jcHAKaW5kZXggYjM5ZmNhMWJlNTdmMGQyNzRkODQ1N2YwNDNmNTBlYWI2
MmYyM2M1OC4uZTg3M2ZjNDY1MWQ1MjY5Mzg5MzY5ZmM2MGE3ODAyNjU0MjA1ZGQ3YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tGcmFtZUhhbmRsZVJlZi5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tGcmFtZUhhbmRsZVJlZi5jcHAK
QEAgLTM4LDUgKzM4LDUgQEAgV0tUeXBlSUQgV0tGcmFtZUhhbmRsZUdldFR5cGVJRCgpCiAKIHVp
bnQ2NF90IFdLRnJhbWVIYW5kbGVHZXRGcmFtZUlEKFdLRnJhbWVIYW5kbGVSZWYgZnJhbWVIYW5k
bGVSZWYpCiB7Ci0gICAgcmV0dXJuIHRvSW1wbChmcmFtZUhhbmRsZVJlZiktPmZyYW1lSUQoKTsK
KyAgICByZXR1cm4gdG9JbXBsKGZyYW1lSGFuZGxlUmVmKS0+ZnJhbWVJRCgpLnRvVUludDY0KCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpp
bmRleCAwMzkxYTE5OTJlMzUzMmRiZTVmMjFkYjY5MWRkODEwOGFhZTJhNjZjLi4wOTUxZTk0NDM3
YmNlNDY2NWQ2MTViZDA0MGQyNmRmMjBiNjRkZjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTY2MjEsNyArNjYyMSw3IEBAIC0gKE5T
UHJpbnRPcGVyYXRpb24gKilfcHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvOihOU1ByaW50SW5m
byAqKXByaW50SW5mbwogCiAtIChOU1ByaW50T3BlcmF0aW9uICopX3ByaW50T3BlcmF0aW9uV2l0
aFByaW50SW5mbzooTlNQcmludEluZm8gKilwcmludEluZm8gZm9yRnJhbWU6KF9XS0ZyYW1lSGFu
ZGxlICopZnJhbWVIYW5kbGUKIHsKLSAgICBpZiAoYXV0byogd2ViRnJhbWVQcm94eSA9IF9wYWdl
LT5wcm9jZXNzKCkud2ViRnJhbWUoZnJhbWVIYW5kbGUuX2ZyYW1lSUQpKQorICAgIGlmIChhdXRv
KiB3ZWJGcmFtZVByb3h5ID0gX3BhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShXZWJDb3JlOjpmcmFt
ZUlkZW50aWZpZXJGcm9tSUQoZnJhbWVIYW5kbGUuX2ZyYW1lSUQpKSkKICAgICAgICAgcmV0dXJu
IF9pbXBsLT5wcmludE9wZXJhdGlvbldpdGhQcmludEluZm8ocHJpbnRJbmZvLCAqd2ViRnJhbWVQ
cm94eSk7CiAgICAgcmV0dXJuIG5pbDsKIH0KQEAgLTcxMTQsNyArNzExNCw3IEBAIC0gKHZvaWQp
X2NvbXBsZXRlSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uCiAKIC0gKEJPT0wpX2NhbkNoYW5nZUZy
YW1lTGF5b3V0OihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lSGFuZGxlCiB7Ci0gICAgaWYgKGF1dG8q
IHdlYkZyYW1lUHJveHkgPSBfcGFnZS0+cHJvY2VzcygpLndlYkZyYW1lKGZyYW1lSGFuZGxlLl9m
cmFtZUlEKSkKKyAgICBpZiAoYXV0byogd2ViRnJhbWVQcm94eSA9IF9wYWdlLT5wcm9jZXNzKCku
d2ViRnJhbWUoV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKGZyYW1lSGFuZGxlLl9mcmFt
ZUlEKSkpCiAgICAgICAgIHJldHVybiBfaW1wbC0+Y2FuQ2hhbmdlRnJhbWVMYXlvdXQoKndlYkZy
YW1lUHJveHkpOwogICAgIHJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCmluZGV4IGM0OTliMThmYTkzODhhNDU4
NDMxNDc3MDhkM2QyOTZkZDUzMjkwYTQuLjNkMTVlYzJlZWE3OTExYjJhMzlkNjQwODc5MzZiZjRl
YTYzNDEzYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tJbnNwZWN0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S0luc3BlY3Rvci5tbQpAQCAtMzAsNiArMzAsNyBAQAogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5
LmgiCiAjaW1wb3J0ICJfV0tGcmFtZUhhbmRsZUludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tJbnNw
ZWN0b3JJbnRlcm5hbC5oIgorI2ltcG9ydCA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNp
bXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogQGltcGxlbWVudGF0aW9uIF9XS0luc3BlY3RvcgpA
QCAtOTksNyArMTAwLDcgQEAgLSAodm9pZClzaG93UmVzb3VyY2VzCiAtICh2b2lkKXNob3dNYWlu
UmVzb3VyY2VGb3JGcmFtZTooX1dLRnJhbWVIYW5kbGUgKilmcmFtZQogewogICAgIGlmIChhdXRv
KiBwYWdlID0gX2luc3BlY3Rvci0+aW5zcGVjdGVkUGFnZSgpKQotICAgICAgICBfaW5zcGVjdG9y
LT5zaG93TWFpblJlc291cmNlRm9yRnJhbWUocGFnZS0+cHJvY2VzcygpLndlYkZyYW1lKGZyYW1l
Ll9mcmFtZUlEKSk7CisgICAgICAgIF9pbnNwZWN0b3ItPnNob3dNYWluUmVzb3VyY2VGb3JGcmFt
ZShwYWdlLT5wcm9jZXNzKCkud2ViRnJhbWUoV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlE
KGZyYW1lLl9mcmFtZUlEKSkpOwogfQogCiAtICh2b2lkKWF0dGFjaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERp
c3BhdGNoZXIuY3BwCmluZGV4IDdhY2M2OGJhZWZlYWIwNzNiZjY2MGY2YzBiY2U1ZWZiOTdiNWFl
NjIuLmQ4NzQ4ZWVhN2ZjNmRhZTE1NDI2YWRhZWE5NjliNzRiZGVlNjNkYzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRj
aGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRl
ZElucHV0RGlzcGF0Y2hlci5jcHAKQEAgLTM4Miw3ICszODIsNyBAQCB2b2lkIFNpbXVsYXRlZElu
cHV0RGlzcGF0Y2hlcjo6dHJhbnNpdGlvbklucHV0U291cmNlVG9TdGF0ZShTaW11bGF0ZWRJbnB1
dFNvdXJjZQogICAgIH0KIH0KIAotdm9pZCBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXI6OnJ1bih1
aW50NjRfdCBmcmFtZUlELCBWZWN0b3I8U2ltdWxhdGVkSW5wdXRLZXlGcmFtZT4mJiBrZXlGcmFt
ZXMsIEhhc2hTZXQ8UmVmPFNpbXVsYXRlZElucHV0U291cmNlPj4mIGlucHV0U291cmNlcywgQXV0
b21hdGlvbkNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFNpbXVs
YXRlZElucHV0RGlzcGF0Y2hlcjo6cnVuKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBWZWN0b3I8U2ltdWxhdGVkSW5wdXRLZXlGcmFtZT4mJiBrZXlGcmFtZXMsIEhhc2hTZXQ8UmVm
PFNpbXVsYXRlZElucHV0U291cmNlPj4mIGlucHV0U291cmNlcywgQXV0b21hdGlvbkNvbXBsZXRp
b25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFpc0FjdGl2ZSgp
KTsKICAgICBpZiAoaXNBY3RpdmUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmgKaW5kZXgg
N2Y0MTQxY2UwYTM5ZTU2MDczYzdlYzhhOTY1NjBjYmMzNDhhZGZhNi4uYjA4OTFhOGYwYjY3NTI5
Y2I5YjM5ODZiODc5NTMwNzEyYTRhYWQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5oCkBA
IC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKFdFQkRSSVZFUl9BQ1RJT05TX0FQSSkKIAogI2lu
Y2x1ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4K
ICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNl
dC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgpAQCAtMTMyLDcgKzEzMyw3IEBAIHB1Ymxp
YzoKICNpZiBFTkFCTEUoV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykKICAgICAgICAg
dmlydHVhbCB2b2lkIHNpbXVsYXRlS2V5Ym9hcmRJbnRlcmFjdGlvbihXZWJQYWdlUHJveHkmLCBL
ZXlib2FyZEludGVyYWN0aW9uLCBXVEY6OlZhcmlhbnQ8VmlydHVhbEtleSwgQ2hhcktleT4mJiwg
QXV0b21hdGlvbkNvbXBsZXRpb25IYW5kbGVyJiYpID0gMDsKICNlbmRpZgotICAgICAgICB2aXJ0
dWFsIHZvaWQgdmlld3BvcnRJblZpZXdDZW50ZXJQb2ludE9mRWxlbWVudChXZWJQYWdlUHJveHkm
LCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG5vZGVIYW5kbGUsIEZ1bmN0aW9uPHZv
aWQgKE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiwgT3B0aW9uYWw8QXV0b21hdGlvbkNvbW1h
bmRFcnJvcj4pPiYmKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCB2aWV3cG9ydEluVmlld0Nl
bnRlclBvaW50T2ZFbGVtZW50KFdlYlBhZ2VQcm94eSYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBGdW5jdGlvbjx2b2lkIChPcHRpb25hbDxXZWJD
b3JlOjpJbnRQb2ludD4sIE9wdGlvbmFsPEF1dG9tYXRpb25Db21tYW5kRXJyb3I+KT4mJikgPSAw
OwogICAgIH07CiAKICAgICBzdGF0aWMgUmVmPFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlcj4gY3Jl
YXRlKFdlYlBhZ2VQcm94eSYgcGFnZSwgU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyOjpDbGllbnQm
IGNsaWVudCkKQEAgLTE0Miw3ICsxNDMsNyBAQCBwdWJsaWM6CiAKICAgICB+U2ltdWxhdGVkSW5w
dXREaXNwYXRjaGVyKCk7CiAKLSAgICB2b2lkIHJ1bih1aW50NjRfdCBmcmFtZUlELCBWZWN0b3I8
U2ltdWxhdGVkSW5wdXRLZXlGcmFtZT4mJiBrZXlGcmFtZXMsIEhhc2hTZXQ8UmVmPFNpbXVsYXRl
ZElucHV0U291cmNlPj4mIGlucHV0U291cmNlcywgQXV0b21hdGlvbkNvbXBsZXRpb25IYW5kbGVy
JiYpOworICAgIHZvaWQgcnVuKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgVmVjdG9yPFNpbXVs
YXRlZElucHV0S2V5RnJhbWU+JiYga2V5RnJhbWVzLCBIYXNoU2V0PFJlZjxTaW11bGF0ZWRJbnB1
dFNvdXJjZT4+JiBpbnB1dFNvdXJjZXMsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciYmKTsK
ICAgICB2b2lkIGNhbmNlbCgpOwogCiAgICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0OwpAQCAtMTY1
LDcgKzE2Niw3IEBAIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5JiBtX3BhZ2U7CiAgICAgU2lt
dWxhdGVkSW5wdXREaXNwYXRjaGVyOjpDbGllbnQmIG1fY2xpZW50OwogCi0gICAgT3B0aW9uYWw8
dWludDY0X3Q+IG1fZnJhbWVJRDsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXI+IG1fZnJhbWVJRDsKICAgICBBdXRvbWF0aW9uQ29tcGxldGlvbkhhbmRsZXIgbV9ydW5Db21w
bGV0aW9uSGFuZGxlcjsKICAgICBBdXRvbWF0aW9uQ29tcGxldGlvbkhhbmRsZXIgbV9rZXlGcmFt
ZVRyYW5zaXRpb25Db21wbGV0aW9uSGFuZGxlcjsKICAgICBSdW5Mb29wOjpUaW1lcjxTaW11bGF0
ZWRJbnB1dERpc3BhdGNoZXI+IG1fa2V5RnJhbWVUcmFuc2l0aW9uRHVyYXRpb25UaW1lcjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlv
blNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRv
bWF0aW9uU2Vzc2lvbi5jcHAKaW5kZXggY2NlNWM0ODE3YTgwNDkxN2NkYzE5OWMxYjAxNjBlMjU2
ZTliZTI5Ny4uNjhiZGFkYzgyNzE3NDM3MjM3NDRlZDVjOTI4ZjEwYTBkZjlmMmNkMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vz
c2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRv
bWF0aW9uU2Vzc2lvbi5jcHAKQEAgLTIwMiwxMCArMjAyLDEwIEBAIFN0cmluZyBXZWJBdXRvbWF0
aW9uU2Vzc2lvbjo6aGFuZGxlRm9yV2ViUGFnZVByb3h5KGNvbnN0IFdlYlBhZ2VQcm94eSYgd2Vi
UGFnZVByCiAgICAgcmV0dXJuIGhhbmRsZTsKIH0KIAotT3B0aW9uYWw8dWludDY0X3Q+IFdlYkF1
dG9tYXRpb25TZXNzaW9uOjp3ZWJGcmFtZUlERm9ySGFuZGxlKGNvbnN0IFN0cmluZyYgaGFuZGxl
KQorT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2ViRnJh
bWVJREZvckhhbmRsZShjb25zdCBTdHJpbmcmIGhhbmRsZSkKIHsKICAgICBpZiAoaGFuZGxlLmlz
RW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBGcmFtZUlkZW50aWZp
ZXIgeyB9OyAvLyBUaGlzIGlzIGV4cGxpY2l0bHkgemVybzsgc2VlIHdlYmtpdC5vcmcvYi8xNTk3
NzcuCiAKICAgICBhdXRvIGl0ZXIgPSBtX2hhbmRsZVdlYkZyYW1lTWFwLmZpbmQoaGFuZGxlKTsK
ICAgICBpZiAoaXRlciA9PSBtX2hhbmRsZVdlYkZyYW1lTWFwLmVuZCgpKQpAQCAtMjE0LDcgKzIx
NCw3IEBAIE9wdGlvbmFsPHVpbnQ2NF90PiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2ViRnJhbWVJ
REZvckhhbmRsZShjb25zdCBTdHJpbmcmIGhhbmRsCiAgICAgcmV0dXJuIGl0ZXItPnZhbHVlOwog
fQogCi1TdHJpbmcgV2ViQXV0b21hdGlvblNlc3Npb246OmhhbmRsZUZvcldlYkZyYW1lSUQodWlu
dDY0X3QgZnJhbWVJRCkKK1N0cmluZyBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6aGFuZGxlRm9yV2Vi
RnJhbWVJRChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBpZiAoIWZyYW1lSUQpCiAg
ICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwpAQCAtMzYyLDcgKzM2Miw3IEBAIHZvaWQgV2Vi
QXV0b21hdGlvblNlc3Npb246OnN3aXRjaFRvQnJvd3NpbmdDb250ZXh0KGNvbnN0IFN0cmluZyYg
YnJvd3NpbmdDb250ZXh0CiAgICAgaWYgKCFwYWdlKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhf
UFJFREVGSU5FRF9FUlJPUihXaW5kb3dOb3RGb3VuZCk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUob3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpv
cHRpb25hbEZyYW1lSGFuZGxlIDogZW1wdHlTdHJpbmcoKSk7CisgICAgYXV0byBmcmFtZUlEID0g
d2ViRnJhbWVJREZvckhhbmRsZShvcHRpb25hbEZyYW1lSGFuZGxlID8gKm9wdGlvbmFsRnJhbWVI
YW5kbGUgOiBlbXB0eVN0cmluZygpKTsKICAgICBpZiAoIWZyYW1lSUQpCiAgICAgICAgIEFTWU5D
X0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKEZyYW1lTm90Rm91bmQpOwogCkBAIC00NTksNyAr
NDU5LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2FpdEZvck5hdmlnYXRpb25Ub0Nv
bXBsZXRlKGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb24KICAgICAgICAgJiYgcGFnZS0+cGFnZUxv
YWRTdGF0ZSgpLmlzTG9hZGluZygpICYmIG1fY2xpZW50LT5pc1Nob3dpbmdKYXZhU2NyaXB0RGlh
bG9nT25QYWdlKCp0aGlzLCAqcGFnZSk7CiAKICAgICBpZiAob3B0aW9uYWxGcmFtZUhhbmRsZSAm
JiAhb3B0aW9uYWxGcmFtZUhhbmRsZS0+aXNFbXB0eSgpKSB7Ci0gICAgICAgIE9wdGlvbmFsPHVp
bnQ2NF90PiBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZSgqb3B0aW9uYWxGcmFtZUhhbmRs
ZSk7CisgICAgICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUoKm9wdGlvbmFs
RnJhbWVIYW5kbGUpOwogICAgICAgICBpZiAoIWZyYW1lSUQpCiAgICAgICAgICAgICBBU1lOQ19G
QUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKICAgICAgICAgV2ViRnJh
bWVQcm94eSogZnJhbWUgPSBwYWdlLT5wcm9jZXNzKCkud2ViRnJhbWUoZnJhbWVJRC52YWx1ZSgp
KTsKQEAgLTUzNyw3ICs1MzcsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNwb25k
VG9QZW5kaW5nUGFnZU5hdmlnYXRpb25DYWxsYmFja3NXaXRoVGltZW91dChIYQogICAgIH0KIH0K
IAotc3RhdGljIFdlYlBhZ2VQcm94eSogZmluZFBhZ2VGb3JGcmFtZUlEKGNvbnN0IFdlYlByb2Nl
c3NQb29sJiBwcm9jZXNzUG9vbCwgdWludDY0X3QgZnJhbWVJRCkKK3N0YXRpYyBXZWJQYWdlUHJv
eHkqIGZpbmRQYWdlRm9yRnJhbWVJRChjb25zdCBXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2ws
IEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIGZvciAoYXV0byYgcHJvY2VzcyA6IHBy
b2Nlc3NQb29sLnByb2Nlc3NlcygpKSB7CiAgICAgICAgIGlmIChhdXRvKiBmcmFtZSA9IHByb2Nl
c3MtPndlYkZyYW1lKGZyYW1lSUQpKQpAQCAtNTQ2LDcgKzU0Niw3IEBAIHN0YXRpYyBXZWJQYWdl
UHJveHkqIGZpbmRQYWdlRm9yRnJhbWVJRChjb25zdCBXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bv
b2wsIHVpbnQ2CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNl
c3Npb246OnJlc3BvbmRUb1BlbmRpbmdGcmFtZU5hdmlnYXRpb25DYWxsYmFja3NXaXRoVGltZW91
dChIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6
Q2FsbGJhY2tCYXNlPj4mIG1hcCkKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnJlc3BvbmRU
b1BlbmRpbmdGcmFtZU5hdmlnYXRpb25DYWxsYmFja3NXaXRoVGltZW91dChIYXNoTWFwPEZyYW1l
SWRlbnRpZmllciwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNr
QmFzZT4+JiBtYXApCiB7CiAgICAgSW5zcGVjdG9yOjpFcnJvclN0cmluZyB0aW1lb3V0RXJyb3Ig
PSBTVFJJTkdfRk9SX1BSRURFRklORURfRVJST1JfTkFNRShUaW1lb3V0KTsKICAgICBmb3IgKGF1
dG8gaWQgOiBjb3B5VG9WZWN0b3IobWFwLmtleXMoKSkpIHsKQEAgLTkyNCw3ICs5MjQsNyBAQCB2
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihjb25z
dCBTdHJpbmcmIGJyb3dzaW5nQ29udAogICAgIGlmICghcGFnZSkKICAgICAgICAgQVNZTkNfRkFJ
TF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwogCi0gICAgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5k
bGUgPyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCkpOworICAgIGF1dG8gZnJh
bWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUob3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpvcHRpb25h
bEZyYW1lSGFuZGxlIDogZW1wdHlTdHJpbmcoKSk7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAg
ICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIApAQCAt
OTY3LDExICs5NjcsMTEgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVzb2x2ZUNoaWxk
RnJhbWVIYW5kbGUoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHQKICAgICBpZiAoIXBhZ2Up
CiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5k
KTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRs
ZShvcHRpb25hbEZyYW1lSGFuZGxlID8gKm9wdGlvbmFsRnJhbWVIYW5kbGUgOiBlbXB0eVN0cmlu
ZygpKTsKKyAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJh
bWVIYW5kbGUgPyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCkpOwogICAgIGlm
ICghZnJhbWVJRCkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoRnJh
bWVOb3RGb3VuZCk7CiAKLSAgICBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8
U3RyaW5nPiwgdWludDY0X3QpPiBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyksIGNhbGxiYWNrID0gY2FsbGJhY2suY29weVJlZigpXShPcHRp
b25hbDxTdHJpbmc+IGVycm9yVHlwZSwgdWludDY0X3QgZnJhbWVJRCkgbXV0YWJsZSB7CisgICAg
V1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIEZyYW1lSWRlbnRp
Zmllcik+IGNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKSwgY2FsbGJhY2sgPSBjYWxsYmFjay5jb3B5UmVmKCldKE9wdGlvbmFsPFN0cmluZz4g
ZXJyb3JUeXBlLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkgbXV0YWJsZSB7CiAgICAgICAgIGlm
IChlcnJvclR5cGUpIHsKICAgICAgICAgICAgIGNhbGxiYWNrLT5zZW5kRmFpbHVyZShTVFJJTkdf
Rk9SX1BSRURFRklORURfRVJST1JfTUVTU0FHRSgqZXJyb3JUeXBlKSk7CiAgICAgICAgICAgICBy
ZXR1cm47CkBAIC0xMDA0LDExICsxMDA0LDExIEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246
OnJlc29sdmVQYXJlbnRGcmFtZUhhbmRsZShjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4CiAg
ICAgaWYgKCFwYWdlKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihX
aW5kb3dOb3RGb3VuZCk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCA9IHdlYkZy
YW1lSURGb3JIYW5kbGUoZnJhbWVIYW5kbGUpOworICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZyYW1l
SURGb3JIYW5kbGUoZnJhbWVIYW5kbGUpOwogICAgIGlmICghZnJhbWVJRCkKICAgICAgICAgQVNZ
TkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoRnJhbWVOb3RGb3VuZCk7CiAKLSAgICBXVEY6
OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWludDY0X3QpPiBjb21w
bGV0aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNh
bGxiYWNrID0gY2FsbGJhY2suY29weVJlZigpXShPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwg
dWludDY0X3QgZnJhbWVJRCkgbXV0YWJsZSB7CisgICAgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPFN0cmluZz4sIEZyYW1lSWRlbnRpZmllcik+IGNvbXBsZXRpb25IYW5kbGVy
ID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FsbGJhY2sgPSBjYWxs
YmFjay5jb3B5UmVmKCldKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChlcnJvclR5cGUpIHsKICAgICAgICAg
ICAgIGNhbGxiYWNrLT5zZW5kRmFpbHVyZShTVFJJTkdfRk9SX1BSRURFRklORURfRVJST1JfTUVT
U0FHRSgqZXJyb3JUeXBlKSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xMDM1LDcgKzEwMzUs
NyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpjb21wdXRlRWxlbWVudExheW91dChjb25z
dCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbgogICAgIGlmICghcGFnZSkKICAgICAgICAgQVNZ
TkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwogCi0gICAgT3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKGZyYW1lSGFuZGxl
KTsKKyAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKGZyYW1lSGFuZGxlKTsK
ICAgICBpZiAoIWZyYW1lSUQpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VS
Uk9SKEZyYW1lTm90Rm91bmQpOwogCkBAIC0xMDg3LDcgKzEwODcsNyBAQCB2b2lkIFdlYkF1dG9t
YXRpb25TZXNzaW9uOjpzZWxlY3RPcHRpb25FbGVtZW50KGNvbnN0IFN0cmluZyYgYnJvd3NpbmdD
b250ZXh0SGFuZAogICAgIGlmICghcGFnZSkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURF
RklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKGZyYW1lSGFuZGxlKTsKKyAgICBhdXRvIGZyYW1l
SUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKGZyYW1lSGFuZGxlKTsKICAgICBpZiAoIWZyYW1lSUQp
CiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKEZyYW1lTm90Rm91bmQp
OwogCkBAIC0xMjcxLDcgKzEyNzEsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpnZXRB
bGxDb29raWVzKGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBSZQogICAgIH07
CiAKICAgICAvLyBBbHdheXMgc2VuZCB0aGUgbWFpbiBmcmFtZSBJRCBhcyAwIHNvIGl0IGlzIHJl
c29sdmVkIG9uIHRoZSBXZWJQcm9jZXNzIHNpZGUuIFRoaXMgYXZvaWRzIGEgcmFjZSB3aGVuIHBh
Z2UtPm1haW5GcmFtZSgpIGlzIG51bGwgc3RpbGwuCi0gICAgY29uc3QgdWludDY0X3QgbWFpbkZy
YW1lSUQgPSAwOworICAgIGNvbnN0IEZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRDsKICAgICBw
YWdlLT5wcm9jZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9u
U2Vzc2lvblByb3h5OjpHZXRDb29raWVzRm9yRnJhbWUocGFnZS0+cGFnZUlEKCksIG1haW5GcmFt
ZUlEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCkBAIC0xMjkxLDcgKzEyOTEs
NyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpkZWxldGVTaW5nbGVDb29raWUoY29uc3Qg
U3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kbAogICAgIH07CiAKICAgICAvLyBBbHdheXMgc2Vu
ZCB0aGUgbWFpbiBmcmFtZSBJRCBhcyAwIHNvIGl0IGlzIHJlc29sdmVkIG9uIHRoZSBXZWJQcm9j
ZXNzIHNpZGUuIFRoaXMgYXZvaWRzIGEgcmFjZSB3aGVuIHBhZ2UtPm1haW5GcmFtZSgpIGlzIG51
bGwgc3RpbGwuCi0gICAgY29uc3QgdWludDY0X3QgbWFpbkZyYW1lSUQgPSAwOworICAgIGNvbnN0
IEZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRDsKICAgICBwYWdlLT5wcm9jZXNzKCkuc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpEZWxldGVD
b29raWUocGFnZS0+cGFnZUlEKCksIG1haW5GcmFtZUlELCBjb29raWVOYW1lKSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwogfQogCkBAIC0xNDU3LDcgKzE0NTcsNyBAQCBTaW11bGF0ZWRJ
bnB1dFNvdXJjZSogV2ViQXV0b21hdGlvblNlc3Npb246OmlucHV0U291cmNlRm9yVHlwZShTaW11
bGF0ZWRJbnB1dFNvdQogfQogCiAvLyBNQVJLOiBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXI6OkNs
aWVudCBBUEkKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnZpZXdwb3J0SW5WaWV3Q2VudGVy
UG9pbnRPZkVsZW1lbnQoV2ViUGFnZVByb3h5JiBwYWdlLCB1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBTdHJpbmcmIG5vZGVIYW5kbGUsIEZ1bmN0aW9uPHZvaWQgKE9wdGlvbmFsPFdlYkNvcmU6Oklu
dFBvaW50PiwgT3B0aW9uYWw8QXV0b21hdGlvbkNvbW1hbmRFcnJvcj4pPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6dmlld3BvcnRJblZpZXdDZW50ZXJQ
b2ludE9mRWxlbWVudChXZWJQYWdlUHJveHkmIHBhZ2UsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBjb25zdCBTdHJpbmcmIG5vZGVIYW5kbGUsIEZ1bmN0aW9uPHZvaWQgKE9wdGlvbmFsPFdlYkNv
cmU6OkludFBvaW50PiwgT3B0aW9uYWw8QXV0b21hdGlvbkNvbW1hbmRFcnJvcj4pPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25h
bDxTdHJpbmc+LCBXZWJDb3JlOjpJbnRSZWN0LCBPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4s
IGJvb2wpPiBkaWRDb21wdXRlRWxlbWVudExheW91dEhhbmRsZXIgPSBbY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5
cGUsIFdlYkNvcmU6OkludFJlY3QsIE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiBpblZpZXdD
ZW50ZXJQb2ludCwgYm9vbCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChlcnJvclR5cGUpIHsKQEAg
LTE5NzYsNyArMTk3Niw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnRha2VTY3JlZW5z
aG90KGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBTdHJpbmcqIG9wCiAgICAgaWYgKCFwYWdl
KQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5kb3dOb3RGb3Vu
ZCk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5k
bGUob3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpvcHRpb25hbEZyYW1lSGFuZGxlIDogZW1wdHlTdHJp
bmcoKSk7CisgICAgYXV0byBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShvcHRpb25hbEZy
YW1lSGFuZGxlID8gKm9wdGlvbmFsRnJhbWVIYW5kbGUgOiBlbXB0eVN0cmluZygpKTsKICAgICBp
ZiAoIWZyYW1lSUQpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKEZy
YW1lTm90Rm91bmQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRv
bWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
dXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmgKaW5kZXggZjM5YzA2MWI1Nzg5MmE5MjQ4
ZmQwOWRmZmNmYTdiOGM1MGEwNzUzNy4uMTIyMmMyODQyMmJmOTZjNmNjNGIxYTVkZmNhNDIyNzBm
ZDAyM2FhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9X
ZWJBdXRvbWF0aW9uU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9t
YXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUg
IlNoYXJlYWJsZUJpdG1hcC5oIgogI2luY2x1ZGUgIlNpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5o
IgogI2luY2x1ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZp
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3Rm
L0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTE1Miw3
ICsxNTMsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFD
VElPTlMpCiAgICAgdm9pZCBzaW11bGF0ZUtleWJvYXJkSW50ZXJhY3Rpb24oV2ViUGFnZVByb3h5
JiwgS2V5Ym9hcmRJbnRlcmFjdGlvbiwgV1RGOjpWYXJpYW50PFZpcnR1YWxLZXksIENoYXJLZXk+
JiYsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciYmKSBmaW5hbDsKICNlbmRpZgotICAgIHZv
aWQgdmlld3BvcnRJblZpZXdDZW50ZXJQb2ludE9mRWxlbWVudChXZWJQYWdlUHJveHkmLCB1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG5vZGVIYW5kbGUsIEZ1bmN0aW9uPHZvaWQgKE9w
dGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiwgT3B0aW9uYWw8QXV0b21hdGlvbkNvbW1hbmRFcnJv
cj4pPiYmKSBmaW5hbDsKKyAgICB2b2lkIHZpZXdwb3J0SW5WaWV3Q2VudGVyUG9pbnRPZkVsZW1l
bnQoV2ViUGFnZVByb3h5JiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IG5vZGVIYW5kbGUsIEZ1bmN0aW9uPHZvaWQgKE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50Piwg
T3B0aW9uYWw8QXV0b21hdGlvbkNvbW1hbmRFcnJvcj4pPiYmKSBmaW5hbDsKIAogI2VuZGlmIC8v
IEVOQUJMRShXRUJEUklWRVJfQUNUSU9OU19BUEkpCiAKQEAgLTIyMCwxNCArMjIxLDE0IEBAIHBy
aXZhdGU6CiAgICAgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkJyb3dzaW5n
Q29udGV4dD4gYnVpbGRCcm93c2luZ0NvbnRleHRGb3JQYWdlKFdlYlBhZ2VQcm94eSYsIFdlYkNv
cmU6OkZsb2F0UmVjdCB3aW5kb3dGcmFtZSk7CiAgICAgdm9pZCBnZXROZXh0Q29udGV4dChSZWY8
V2ViQXV0b21hdGlvblNlc3Npb24+JiYsIFZlY3RvcjxSZWY8V2ViUGFnZVByb3h5Pj4mJiwgUmVm
PEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6QnJvd3NpbmdD
b250ZXh0Pj4sIFJlZjxXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6R2V0QnJvd3NpbmdDb250ZXh0c0Nh
bGxiYWNrPiYmKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiB3ZWJGcmFtZUlERm9ySGFuZGxl
KGNvbnN0IFN0cmluZyYpOwotICAgIFN0cmluZyBoYW5kbGVGb3JXZWJGcmFtZUlEKHVpbnQ2NF90
IGZyYW1lSUQpOworICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gd2ViRnJh
bWVJREZvckhhbmRsZShjb25zdCBTdHJpbmcmKTsKKyAgICBTdHJpbmcgaGFuZGxlRm9yV2ViRnJh
bWVJRChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogICAgIFN0cmluZyBoYW5kbGVGb3JXZWJG
cmFtZVByb3h5KGNvbnN0IFdlYkZyYW1lUHJveHkmKTsKIAogICAgIHZvaWQgd2FpdEZvck5hdmln
YXRpb25Ub0NvbXBsZXRlT25QYWdlKFdlYlBhZ2VQcm94eSYsIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb246OlBhZ2VMb2FkU3RyYXRlZ3ksIFNlY29uZHMsIFJlZjxJbnNwZWN0b3I6OkJh
Y2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+JiYpOwogICAgIHZvaWQgd2FpdEZvck5hdmln
YXRpb25Ub0NvbXBsZXRlT25GcmFtZShXZWJGcmFtZVByb3h5JiwgSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6UGFnZUxvYWRTdHJhdGVneSwgU2Vjb25kcywgUmVmPEluc3BlY3Rvcjo6
QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4mJik7CiAgICAgdm9pZCByZXNwb25kVG9Q
ZW5kaW5nUGFnZU5hdmlnYXRpb25DYWxsYmFja3NXaXRoVGltZW91dChIYXNoTWFwPFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2Fs
bGJhY2tCYXNlPj4mKTsKLSAgICB2b2lkIHJlc3BvbmRUb1BlbmRpbmdGcmFtZU5hdmlnYXRpb25D
YWxsYmFja3NXaXRoVGltZW91dChIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8SW5zcGVjdG9yOjpC
YWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4mKTsKKyAgICB2b2lkIHJlc3BvbmRUb1Bl
bmRpbmdGcmFtZU5hdmlnYXRpb25DYWxsYmFja3NXaXRoVGltZW91dChIYXNoTWFwPFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNh
bGxiYWNrQmFzZT4+Jik7CiAgICAgdm9pZCBsb2FkVGltZXJGaXJlZCgpOwogCiAgICAgdm9pZCBl
eGl0RnVsbHNjcmVlbldpbmRvd0ZvclBhZ2UoV2ViUGFnZVByb3h5JiwgV1RGOjpDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwpAQCAtMjg0LDEzICsyODUsMTMgQEAgcHJpdmF0ZToKICAgICBI
YXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBTdHJpbmc+IG1fd2ViUGFnZUhhbmRsZU1h
cDsKICAgICBIYXNoTWFwPFN0cmluZywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG1faGFuZGxl
V2ViUGFnZU1hcDsKIAotICAgIEhhc2hNYXA8dWludDY0X3QsIFN0cmluZz4gbV93ZWJGcmFtZUhh
bmRsZU1hcDsKLSAgICBIYXNoTWFwPFN0cmluZywgdWludDY0X3Q+IG1faGFuZGxlV2ViRnJhbWVN
YXA7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFN0cmluZz4gbV93ZWJG
cmFtZUhhbmRsZU1hcDsKKyAgICBIYXNoTWFwPFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyPiBtX2hhbmRsZVdlYkZyYW1lTWFwOwogCiAgICAgSGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFz
ZT4+IG1fcGVuZGluZ05vcm1hbE5hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1Bl
clBhZ2U7CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgUmVmUHRyPEluc3Bl
Y3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGluZ0VhZ2VyTmF2
aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyUGFnZTsKLSAgICBIYXNoTWFwPHVp
bnQ2NF90LCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNl
Pj4gbV9wZW5kaW5nTm9ybWFsTmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVy
RnJhbWU7Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERp
c3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGluZ0VhZ2VyTmF2aWdhdGlvbkluQnJvd3Np
bmdDb250ZXh0Q2FsbGJhY2tzUGVyRnJhbWU7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jh
c2U+PiBtX3BlbmRpbmdOb3JtYWxOYXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQ
ZXJGcmFtZTsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmUHRyPElu
c3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGluZ0VhZ2Vy
TmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyRnJhbWU7CiAgICAgSGFzaE1h
cDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3Bh
dGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGluZ0luc3BlY3RvckNhbGxiYWNrc1BlclBhZ2U7
CiAjaWYgRU5BQkxFKFdFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpCiAgICAgSGFzaE1h
cDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgRnVuY3Rpb248dm9pZChPcHRpb25hbDxBdXRvbWF0
aW9uQ29tbWFuZEVycm9yPik+PiBtX3BlbmRpbmdLZXlib2FyZEV2ZW50c0ZsdXNoZWRDYWxsYmFj
a3NQZXJQYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlE
ZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0K
aW5kZXggYTUxYTIyMzYyMzg0MTUxYWIxMWQ0ODk0MzY5ZjhhMTg1ODAwNjdkYS4uMzAyZjY4MjI4
MmJjYzdlZTM4ZDNmNjcyN2Q2ZDIzZjg0YjI4OWRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBAIC0xMDMyLDcgKzEwMzIsNyBAQCB2b2lkIFVJRGVs
ZWdhdGU6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFn
ZVByb3h5JiBwYWdlLAogICAgIFVSTCByZXF1ZXN0RnJhbWVVUkwgeyBVUkwoKSwgZnJhbWUudXJs
KCkgfTsKICAgICBVUkwgbWFpbkZyYW1lVVJMIHsgVVJMKCksIG1haW5GcmFtZS0+dXJsKCkgfTsK
IAotICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlE
ZWxlZ2F0ZS5tX3dlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOnJlcXVlc3RG
cmFtZVVSTCBtYWluRnJhbWVVUkw6bWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjpmcmFtZS5m
cmFtZUlEKCkgZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07CisgICAgWyhp
ZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1f
d2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6cmVxdWVzdEZyYW1lVVJMIG1h
aW5GcmFtZVVSTDptYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOmZyYW1lLmZyYW1lSUQoKS50
b1VJbnQ2NCgpIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOwogfQogCiB2
b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjptZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZShXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1JlbG9hZEZyYW1lRXJyb3JSZWNvdmVyeUF0
dGVtcHRlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dLUmVsb2FkRnJhbWVF
cnJvclJlY292ZXJ5QXR0ZW1wdGVyLm1tCmluZGV4IDg0ZDIwYzRjZThiMWYwMDE3ZTFiYTc3Yjlk
MGRmNGYxMDEzOGE5MDAuLjljNDA5MmVmZDQzNmQwMjI0MGI4MDZhMmMyNDBmNjQzNmQyZWRiNWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dLUmVsb2FkRnJhbWVF
cnJvclJlY292ZXJ5QXR0ZW1wdGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dLUmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyLm1tCkBAIC0zMiw2ICszMiw3
IEBACiAjaW1wb3J0ICJXZWJGcmFtZVByb3h5LmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIK
ICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgorI2ltcG9ydCA8V2ViQ29yZS9GcmFtZUlkZW50
aWZpZXIuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9XZWFrT2Jq
Q1B0ci5oPgogCkBAIC02Miw4ICs2Myw3IEBAIC0gKEJPT0wpYXR0ZW1wdFJlY292ZXJ5CiAgICAg
aWYgKCF3ZWJWaWV3KQogICAgICAgICByZXR1cm4gTk87CiAKLSAgICB1aW50NjRfdCBmcmFtZUlE
ID0gW19mcmFtZUhhbmRsZSBfZnJhbWVJRF07Ci0gICAgV2ViS2l0OjpXZWJGcmFtZVByb3h5KiB3
ZWJGcmFtZVByb3h5ID0gd2ViVmlldy0+X3BhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlE
KTsKKyAgICBXZWJLaXQ6OldlYkZyYW1lUHJveHkqIHdlYkZyYW1lUHJveHkgPSB3ZWJWaWV3LT5f
cGFnZS0+cHJvY2VzcygpLndlYkZyYW1lKFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRChb
X2ZyYW1lSGFuZGxlIF9mcmFtZUlEXSkpOwogICAgIGlmICghd2ViRnJhbWVQcm94eSkKICAgICAg
ICAgcmV0dXJuIE5POwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJQYWdlUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlBhZ2VQcm94eUNvY29hLm1tCmluZGV4IGExYWY5OGQyMTA5M2U1YWVlZThiM2Q0ODBiODE2MWZl
MjZlOWVhNTEuLmQ5NjEzOTE4Zjc1ZmE1ZThkZjU4MzRmMjUyNDQzOGUwNmU5ODZiOTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1t
CkBAIC0xMDEsMTIgKzEwMSwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6YmVnaW5TYWZlQnJvd3Np
bmdDaGVjayhjb25zdCBVUkwmIHVybCwgYm9vbCBmb3JNYWluRnJhbWVOYXZpZwogfQogCiAjaWYg
RU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQotdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRlbnRGaWx0
ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9j
a0hhbmRsZXImIHVuYmxvY2tIYW5kbGVyLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdl
UHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpD
b250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIHVuYmxvY2tIYW5kbGVyLCBGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCkKIHsKICAgICBjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWVTaGFy
ZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgdW5ibG9ja0hhbmRsZXIsIGZyYW1lSUQpOwogfQogCi12
b2lkIFdlYlBhZ2VQcm94eTo6Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgY29uc3QgV2ViQ29yZTo6Q29udGVudEZp
bHRlclVuYmxvY2tIYW5kbGVyJiB1bmJsb2NrSGFuZGxlciwgdWludDY0X3QgZnJhbWVJRCkKK3Zv
aWQgV2ViUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWVTaGFyZWQo
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBjb25zdCBXZWJDb3JlOjpDb250ZW50Rmls
dGVyVW5ibG9ja0hhbmRsZXImIHVuYmxvY2tIYW5kbGVyLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCkKIHsKICAgICBpZiAoV2ViRnJhbWVQcm94eSogZnJhbWUgPSBwcm9jZXNzLT53ZWJGcmFtZShm
cmFtZUlEKSkKICAgICAgICAgZnJhbWUtPmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWQodW5ibG9j
a0hhbmRsZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggOTRmYWY2YjlkZTI2MjAxZDg0ZDI2ZmY4Mzkz
M2Y4MjI5YzA1ZDZiOS4uOTFlY2UxZjBkYWZmZTNlYTYzYWRiYzBkOTFlYWM0ZDE4MTExMzA5YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuY3BwCkBAIC0zMTIsNyArMzEyLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpkaWRDcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25zdCBJUEM6OkF0
dGEKICNlbmRpZgogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1l
SUQsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYgY29yZUNoYWxsZW5nZSwgdWlu
dDY0X3QgY2hhbGxlbmdlSUQpCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYmIGNvcmVDaGFs
bGVuZ2UsIHVpbnQ2NF90IGNoYWxsZW5nZUlEKQogewogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktF
UikKICAgICBpZiAoYXV0byogc2VydmljZVdvcmtlclByb2Nlc3NQcm94eSA9IG1fcHJvY2Vzc1Bv
b2wuc2VydmljZVdvcmtlclByb2Nlc3NQcm94eUZyb21QYWdlSUQocGFnZUlEKSkgewpAQCAtNzM3
LDcgKzczNyw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0R3JhbmRmYXRoZXJlZChQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzCiAgICAgc2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0R3JhbmRmYXRoZXJlZChzZXNzaW9uSUQs
IHJlc291cmNlRG9tYWluLCBpc0dyYW5kZmF0aGVyZWQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmVxdWVzdFN0b3JhZ2VBY2Nl
c3NDb25maXJtKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgdG9wRnJhbWVEb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNj
ZXNzQ29uZmlybShQYWdlSWRlbnRpZmllciBwYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBXZWJQcm9j
ZXNzUHJveHk6OndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5k
ZXggNDMzNTQ1YzBlMzNmYWFlZWQ5ZGViYjM0ZjZiMjBjZmNhZTVlOTVjOC4uNDBmODFkZTliNDdm
MTkyMjE5MDI2YTZlOGEwN2IyYTVlMmQ2YTk5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTgyLDcgKzgyLDYg
QEAgcHVibGljOgogICAgIHVzaW5nIE5hdmlnYXRlZFRvRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW47CiAgICAgdXNpbmcgRG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzID0gV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNpbmcgT3BlbmVyRG9tYWluID0gV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW47Ci0gICAgdXNpbmcgRnJhbWVJRCA9IHVpbnQ2NF90OwogCiAg
ICAgZXhwbGljaXQgTmV0d29ya1Byb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYpOwogICAgIH5O
ZXR3b3JrUHJvY2Vzc1Byb3h5KCk7CkBAIC0xMzAsNyArMTI5LDcgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2
b2lkIHNldFZlcnlQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgZ2V0
QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoVmVjdG9yPFN0cmluZz4gZG9tYWlucyk+JiYpOwotICAgIHZvaWQgcmVxdWVzdFN0b3Jh
Z2VBY2Nlc3NDb25maXJtKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBGcmFtZUlELCBjb25zdCBT
dWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJik7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3Vi
RnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYpOwogICAgIHZvaWQgcmVzZXRQYXJhbWV0ZXJzVG9EZWZhdWx0VmFsdWVzKFBB
TDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2No
ZWR1bGVDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudChQQUw6OlNlc3Npb25JRCwgU2hvdWxkR3Jh
bmRmYXRoZXJTdGF0aXN0aWNzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZv
aWQgc2NoZWR1bGVDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudChQQUw6OlNlc3Npb25JRCwgT3B0
aW9uYWw8V2FsbFRpbWU+IG1vZGlmaWVkU2luY2UsIFNob3VsZEdyYW5kZmF0aGVyU3RhdGlzdGlj
cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTIxMyw3ICsyMTIsNyBAQCBwcml2
YXRlOgogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKICAgICB2b2lkIGRpZFJlY2VpdmVOZXR3b3Jr
UHJvY2Vzc1Byb3h5TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKICAg
ICB2b2lkIGRpZENyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbnN0IElQQzo6
QXR0YWNobWVudCYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSYmLCB1aW50NjRfdCBjaGFsbGVuZ2VJRCk7CisgICAgdm9pZCBk
aWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVu
Z2UmJiwgdWludDY0X3QgY2hhbGxlbmdlSUQpOwogICAgIHZvaWQgZGlkRmV0Y2hXZWJzaXRlRGF0
YSh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBXZWJzaXRlRGF0YSYpOwogICAgIHZvaWQgZGlk
RGVsZXRlV2Vic2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBkaWREZWxl
dGVXZWJzaXRlRGF0YUZvck9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJRCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkubWVzc2FnZXMuaW4KaW5kZXggMTFkOGM1ZGVlMWRiYTgxZjhmNjNmN2Q5NDhlZjY2MTYx
OTgxZDEzNC4uYmZhZjlmMDQ5NmU1NmE5YjkzMWVmNmZmNzc1MWMzYWNmNWQxMzliYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjMsNyArMjMsNyBAQAogbWVzc2FnZXMgLT4g
TmV0d29ya1Byb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgRGlkQ3JlYXRlTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25JZGVudGlm
aWVyKQogCi0gICAgRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UgY2hhbGxlbmdlLCB1aW50NjRfdCBjaGFsbGVuZ2VJRCkKKyAgICBEaWRS
ZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFn
ZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UgY2hhbGxlbmdlLCB1aW50NjRfdCBjaGFsbGVuZ2VJRCkKIAogICAgIERp
ZEZldGNoV2Vic2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCwgc3RydWN0IFdlYktpdDo6V2Vi
c2l0ZURhdGEgd2Vic2l0ZURhdGEpCiAgICAgRGlkRGVsZXRlV2Vic2l0ZURhdGEodWludDY0X3Qg
Y2FsbGJhY2tJRCkKQEAgLTQ4LDcgKzQ4LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NQ
cm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgTm90aWZ5V2Vic2l0ZURhdGFEZWxldGlvbkZvclJl
Z2lzdHJhYmxlRG9tYWluc0ZpbmlzaGVkKCkKICAgICBOb3RpZnlXZWJzaXRlRGF0YVNjYW5Gb3JS
ZWdpc3RyYWJsZURvbWFpbnNGaW5pc2hlZCgpCiAgICAgTm90aWZ5UmVzb3VyY2VMb2FkU3RhdGlz
dGljc1RlbGVtZXRyeUZpbmlzaGVkKHVuc2lnbmVkIHRvdGFsUHJldmFsZW50UmVzb3VyY2VzLCB1
bnNpZ25lZCB0b3RhbFByZXZhbGVudFJlc291cmNlc1dpdGhVc2VySW50ZXJhY3Rpb24sIHVuc2ln
bmVkIHRvcDNTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW5zKQotICAgIFJlcXVlc3RTdG9yYWdl
QWNjZXNzQ29uZmlybShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkZyYW1lRG9tYWluLCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbikgLT4gKGJvb2wgdXNlckRpZEdyYW50
QWNjZXNzKSBBc3luYworICAgIFJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4pIC0+IChib29sIHVzZXJEaWRHcmFudEFjY2Vzcykg
QXN5bmMKICAgICBEZWxldGVXZWJzaXRlRGF0YUluVUlQcm9jZXNzRm9yUmVnaXN0cmFibGVEb21h
aW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURh
dGFUeXBlPiBkYXRhVHlwZXMsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhRmV0Y2hPcHRp
b24+IGZldGNoT3B0aW9ucywgVmVjdG9yPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21h
aW5zKSAtPiAoSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gZG9tYWluc1dpdGhN
YXRjaGluZ0RhdGFSZWNvcmRzKSBBc3luYwogICAgIERpZENvbW1pdENyb3NzU2l0ZUxvYWRXaXRo
RGF0YVRyYW5zZmVyRnJvbVByZXZhbGVudFJlc291cmNlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJv
dmlzaW9uYWxQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9u
YWxQYWdlUHJveHkuY3BwCmluZGV4IDY2NmZiZDNkYTEwZmI1ZDU5YWYyMTA1MjdhM2MxNTQ1YzE0
ODEzZTIuLmQ3ZjBjM2M5NTAyNzRkZThlMGE5NWNiODVhZGMyNzY1NThmNzJkOTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKQEAgLTE3
Niw3ICsxNzYsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpnb1RvQmFja0ZvcndhcmRJ
dGVtKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgV2ViQgogICAgIG1fcHJvY2Vzcy0+cmVz
cG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0KCk7CiB9CiAKLWlubGluZSBib29sIFByb3Zpc2lvbmFs
UGFnZVByb3h5Ojp2YWxpZGF0ZUlucHV0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IE9wdGlvbmFs
PHVpbnQ2NF90PiYgbmF2aWdhdGlvbklEKQoraW5saW5lIGJvb2wgUHJvdmlzaW9uYWxQYWdlUHJv
eHk6OnZhbGlkYXRlSW5wdXQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IE9wdGlvbmFs
PHVpbnQ2NF90PiYgbmF2aWdhdGlvbklEKQogewogICAgIC8vIElmIHRoZSBwcmV2aW91cyBwcm92
aXNpb25hbCBsb2FkIHVzZWQgYW4gZXhpc3RpbmcgcHJvY2Vzcywgd2UgbWF5IHJlY2VpdmUgbGVm
dG92ZXIgSVBDIGZvciBhIHByZXZpb3VzIG5hdmlnYXRpb24sIHdoaWNoIHdlIG5lZWQgdG8gaWdu
b3JlLgogICAgIGlmICghbV9tYWluRnJhbWUgfHwgbV9tYWluRnJhbWUtPmZyYW1lSUQoKSAhPSBm
cmFtZUlEKQpAQCAtMTg1LDkgKzE4NSw5IEBAIGlubGluZSBib29sIFByb3Zpc2lvbmFsUGFnZVBy
b3h5Ojp2YWxpZGF0ZUlucHV0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IE9wdGlvbmFsCiAgICAg
cmV0dXJuICFuYXZpZ2F0aW9uSUQgfHwgISpuYXZpZ2F0aW9uSUQgfHwgKm5hdmlnYXRpb25JRCA9
PSBtX25hdmlnYXRpb25JRDsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3Jl
YXRlTWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5
OjpkaWRDcmVhdGVNYWluRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7Ci0gICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICJkaWRDcmVhdGVNYWluRnJhbWU6
IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3BhZ2UucGFnZUlE
KCkudG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9j
ZXNzU3dhcHBpbmcsICJkaWRDcmVhdGVNYWluRnJhbWU6IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0LCBtX3BhZ2UucGFnZUlEKCkudG9VSW50NjQoKSwgZnJhbWVJRC50
b1VJbnQ2NCgpKTsKICAgICBBU1NFUlQoIW1fbWFpbkZyYW1lKTsKIAogICAgIG1fbWFpbkZyYW1l
ID0gV2ViRnJhbWVQcm94eTo6Y3JlYXRlKG1fcGFnZSwgZnJhbWVJRCk7CkBAIC0yMTIsNyArMjEy
LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQpCiAgICAgfQogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0
IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFBy
b3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIEZy
YW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlE
KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjIwLDEyICsyMjAsMTIgQEAgdm9pZCBQcm92aXNpb25h
bFBhZ2VQcm94eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNl
VVJMU3RyaW4KICAgICBtX3BhZ2UuZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkKG1fcHJv
Y2Vzcy5jb3B5UmVmKCksIHNvdXJjZVVSTFN0cmluZywgZGVzdGluYXRpb25VUkxTdHJpbmcsIGZy
YW1lSUQpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
VVJMJiYgdXJsLCBVUkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRh
KQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JG
cmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwm
JiB1cmwsIFVSTCYmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7
CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2Vzc1N3YXBwaW5nLCAi
ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZTogcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZy
YW1lSUQgPSAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEID0gJSIgUFJJdTY0LCBtX3BhZ2UucGFn
ZUlEKCkudG9VSW50NjQoKSwgZnJhbWVJRCwgbmF2aWdhdGlvbklEKTsKKyAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgImRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWU6IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIG5hdmln
YXRpb25JRCA9ICUiIFBSSXU2NCwgbV9wYWdlLnBhZ2VJRCgpLnRvVUludDY0KCksIGZyYW1lSUQu
dG9VSW50NjQoKSwgbmF2aWdhdGlvbklEKTsKICAgICBBU1NFUlQobV9wcm92aXNpb25hbExvYWRV
UkwuaXNOdWxsKCkpOwogICAgIG1fcHJvdmlzaW9uYWxMb2FkVVJMID0gdXJsOwogCkBAIC0yNDAs
MTIgKzI0MCwxMiBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbgogICAgIG1fcGFnZS5kaWRTdGFy
dFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1l
SUQsIG5hdmlnYXRpb25JRCwgV1RGTW92ZSh1cmwpLCBXVEZNb3ZlKHVucmVhY2hhYmxlVVJMKSwg
dXNlckRhdGEpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImIGVycm9yLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250aW51ZUxvYWRp
bmcsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6
OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2Fk
aW5nIHdpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAg
ICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcs
ICJkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIsIG5hdmlnYXRpb25JRCA9ICUiIFBSSXU2NCwgbV9wYWdlLnBh
Z2VJRCgpLnRvVUludDY0KCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCk7CisgICAgUkVMRUFTRV9M
T0dfRVJST1JfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICJkaWRGYWlsUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWU6IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IG5hdmlnYXRpb25JRCA9ICUiIFBSSXU2NCwgbV9wYWdlLnBhZ2VJRCgpLnRvVUludDY0KCksIGZy
YW1lSUQudG9VSW50NjQoKSwgbmF2aWdhdGlvbklEKTsKICAgICBBU1NFUlQoIW1fcHJvdmlzaW9u
YWxMb2FkVVJMLmlzTnVsbCgpKTsKICAgICBtX3Byb3Zpc2lvbmFsTG9hZFVSTCA9IHsgfTsKIApA
QCAtMjU2LDEyICsyNTYsMTIgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkRmFpbFBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnMKICAgICBtX3BhZ2Uu
ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCks
IGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIG5hdmlnYXRpb25JRCwgcHJvdmlzaW9uYWxV
UkwsIGVycm9yLCB3aWxsQ29udGludWVMb2FkaW5nLCB1c2VyRGF0YSk7IC8vIE1heSBkZWxldGUg
fHRoaXN8LgogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJp
bmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJf
dCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmlj
YXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpI
YXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRh
dGEmIHVzZXJEYXRhKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZv
ckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNv
bnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIs
IHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYg
Y2VydGlmaWNhdGVJbmZvLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdl
YkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25z
dCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQs
IG5hdmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoUHJvY2Vzc1N3YXBwaW5nLCAiZGlkQ29tbWl0TG9hZEZvckZyYW1lOiBwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9uSUQgPSAlIiBQUkl1
NjQsIG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQpOwor
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2Vzc1N3YXBwaW5nLCAiZGlkQ29tbWl0TG9h
ZEZvckZyYW1lOiBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBu
YXZpZ2F0aW9uSUQgPSAlIiBQUkl1NjQsIG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFt
ZUlELnRvVUludDY0KCksIG5hdmlnYXRpb25JRCk7CiAgICAgbV9wcm92aXNpb25hbExvYWRVUkwg
PSB7IH07CiAgICAgbV9wcm9jZXNzLT5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UucGFnZUlEKCkpOwogCkBA
IC0yNjksNyArMjY5LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9h
ZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmkKICAgICBtX3BhZ2UuY29t
bWl0UHJvdmlzaW9uYWxQYWdlKGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgbWltZVR5cGUsIGZyYW1l
SGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCBmcmFtZUxvYWRUeXBlLCBjZXJ0aWZpY2F0ZUluZm8s
IGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgdXNlckRh
dGEpOyAvLyBXaWxsIGRlbGV0ZSB8dGhpc3wuCiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJv
eHk6OmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25EYXRh
U3RvcmUmIHN0b3JlLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94
eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFT
dG9yZSYgc3RvcmUsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIGlmICghdmFsaWRh
dGVJbnB1dChmcmFtZUlEKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjc3LDcgKzI3Nyw3IEBAIHZv
aWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKGNv
bnN0IFdlYk5hdmlnYXRpb25EYXRhCiAgICAgbV9wYWdlLmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRp
b25EYXRhU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIHN0b3JlLCBmcmFtZUlEKTsKIH0KIAot
dm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCkKK3Zv
aWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYgdXJs
KQogewogICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQpKQogICAg
ICAgICByZXR1cm47CkBAIC0yODUsNyArMjg1LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94
eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW4K
ICAgICBtX3BhZ2UuZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNoYXJlZChtX3Byb2Nl
c3MuY29weVJlZigpLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUodXJsKSk7CiB9CiAK
LXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b25Bc3luYyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBm
cmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRp
ZmllciwKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb25Bc3luYyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyIGlkZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9u
QWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJ
bmZvRGF0YSwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwKICAgICBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVx
dWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBj
b25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIHVpbnQ2NF90IGxpc3RlbmVySUQpCiB7CkBAIC0yOTYs
NyArMjk2LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbkFzeW5jKHVpbnQ2NF90IGZyYW1lSUQKICAgICAgICAgV1RGTW92ZShmcmFt
ZUluZm9EYXRhKSwgb3JpZ2luYXRpbmdQYWdlSUQsIG9yaWdpbmFsUmVxdWVzdCwgV1RGTW92ZShy
ZXF1ZXN0KSwgV1RGTW92ZShyZXF1ZXN0Qm9keSksIFdURk1vdmUocmVkaXJlY3RSZXNwb25zZSks
IHVzZXJEYXRhLCBsaXN0ZW5lcklEKTsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6
ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRl
Y2lkZVBvbGljeUZvclJlc3BvbnNlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBv
bGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0
IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVz
ZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCwgbmF2
aWdhdGlvbklEKSkKQEAgLTMwNSw3ICszMDUsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5
OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDbwog
ICAgIG1fcGFnZS5kZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJl
ZigpLCBmcmFtZUlELCBmcmFtZVNlY3VyaXR5T3JpZ2luLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9u
SUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRl
LCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6
OmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywg
Y29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCkKK3Zv
aWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBT
dHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmlu
ZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZy
YW1lSUQpKQogICAgICAgICByZXR1cm47CkBAIC0zMTMsNyArMzEzLDcgQEAgdm9pZCBQcm92aXNp
b25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291
cmNlVVJMU3RyaW4KICAgICBtX3BhZ2UuZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0U2hhcmVkKG1f
cHJvY2Vzcy5jb3B5UmVmKCksIHNvdXJjZVVSTFN0cmluZywgZGVzdGluYXRpb25VUkxTdHJpbmcs
IGZyYW1lSUQpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRSZWNlaXZlU2Vy
dmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3Qs
IGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRp
ZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBpZiAo
IXZhbGlkYXRlSW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKICAgICAgICAgcmV0dXJuOwpA
QCAtMzMxLDcgKzMzMSw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmJhY2tGb3J3YXJk
R29Ub0l0ZW0oY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlCiAgICAgbV9wYWdlLmJh
Y2tGb3J3YXJkR29Ub0l0ZW1TaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgaWRlbnRpZmllciwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVBy
b3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyh1aW50NjRfdCBmcmFtZUlE
LCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNl
Y3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwK
K3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b25TeW5jKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xp
Y3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0Rh
dGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQ
YWdlSUQsCiAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVl
c3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZl
cmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0
UmVzcG9uc2UsCiAgICAgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5
JiYgcmVwbHkpCkBAIC0zNjYsNyArMzY2LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6
cmVnaXN0ZXJXZWJQcm9jZXNzQWNjZXNzaWJpbGl0eVRva2VuKGNvbnN0IElQQzo6RGF0YVIKICNl
bmRpZgogCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQotdm9pZCBQcm92aXNpb25hbFBh
Z2VQcm94eTo6Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKGNvbnN0IFdlYkNvcmU6
OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYgdW5ibG9ja0hhbmRsZXIsIHVpbnQ2NF90IGZy
YW1lSUQpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tM
b2FkRm9yRnJhbWUoY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiB1
bmJsb2NrSGFuZGxlciwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgbV9wYWdlLmNv
bnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigp
LCB1bmJsb2NrSGFuZGxlciwgZnJhbWVJRCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaAppbmRleCAzMzMyMTZhMmNjNzg1NjY3MTYzMjRhYjA2
ZmYxYjNiOTYwODBjMGJlLi5kZTNlZTY4N2ZhN2Q4MTc1MGI1OGZlZGE1ODQ1ODNmZDFmMWUyZDY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgK
QEAgLTkyLDIzICs5MiwyMyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAgICAgdm9pZCBkaWRSZWNl
aXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlx
dWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBmaW5hbDsKIAotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbkFzeW5jKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0YSYmLAorICAg
IHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9u
RGF0YSYmLCBGcmFtZUluZm9EYXRhJiYsCiAgICAgICAgIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZv
cm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxp
c3RlbmVySUQpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UodWludDY0X3QgZnJh
bWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgV2ViQ29yZTo6UG9saWN5
Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmLAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBX
ZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsCiAgICAgICAgIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25s
b2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwotICAg
IHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKLSAgICB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJS
ZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0
aW5hdGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRSZWNlaXZl
U2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25z
dCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29u
c3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQg
ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBj
b25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKTsKLSAg
ICB2b2lkIGRpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRp
ZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBVUkwmJiwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRh
Jik7Ci0gICAgdm9pZCBkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFz
Q3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJD
b3JlOjpDZXJ0aWZpY2F0ZUluZm8mLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlv
bmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50
LCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYg
ZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcm
IHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6
V2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZENoYW5n
ZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKKyAgICB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVj
dChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlv
blVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZFJlY2Vp
dmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmJiwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRp
b25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmLCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIpOworICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFN0cmluZyYg
c291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkQ3JlYXRlTWFpbkZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBV
UkwmJiwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBk
aWRDb21taXRMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21D
b250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNl
cnRpZmljYXRlSW5mbyYsIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8V2Vi
Q29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0
IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
IGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5n
JiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6
OldpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBzdGFydFVS
TFNjaGVtZVRhc2soVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJik7CiAgICAgdm9pZCBiYWNrRm9y
d2FyZEdvVG9JdGVtKGNvbnN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmKT4mJik7Ci0g
ICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyh1aW50NjRfdCBmcmFt
ZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmln
YXRpb25BY3Rpb25EYXRhJiYsCisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uU3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAg
RnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2lu
YXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1
ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYm
IHJlcXVlc3RCb2R5LAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJl
Y3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYpOwogI2lmIFVT
RShRVUlDS19MT09LKQpAQCAtMTE4LDExICsxMTgsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJl
Z2lzdGVyV2ViUHJvY2Vzc0FjY2Vzc2liaWxpdHlUb2tlbihjb25zdCBJUEM6OkRhdGFSZWZlcmVu
Y2UmKTsKICNlbmRpZgogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKLSAgICB2b2lkIGNv
bnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250ZW50Rmls
dGVyVW5ibG9ja0hhbmRsZXImLCB1aW50NjRfdCBmcmFtZUlEKTsKKyAgICB2b2lkIGNvbnRlbnRG
aWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5i
bG9ja0hhbmRsZXImLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogI2VuZGlmCiAKICAgICB2
b2lkIGluaXRpYWxpemVXZWJQYWdlKCk7Ci0gICAgYm9vbCB2YWxpZGF0ZUlucHV0KHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IE9wdGlvbmFsPHVpbnQ2NF90PiYgbmF2aWdhdGlvbklEID0gV1RGOjpu
dWxsb3B0KTsKKyAgICBib29sIHZhbGlkYXRlSW5wdXQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBjb25zdCBPcHRpb25hbDx1aW50NjRfdD4mIG5hdmlnYXRpb25JRCA9IFdURjo6bnVsbG9wdCk7
CiAKICAgICBXZWJQYWdlUHJveHkmIG1fcGFnZTsKICAgICBSZWY8V2ViUHJvY2Vzc1Byb3h5PiBt
X3Byb2Nlc3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXJQcm9jZXNzUHJveHkuY3BwCmluZGV4IGIyZjc3MjlmZDM5MzVmNzJlMWJjOTExNWEzMGExOGY2
NGUzOWZkMjUuLmY3OGE3YzM4NmM4OTU5MDExNTZiNTY4YWFmOThiYWIyM2IwODA2ZWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJv
eHkuY3BwCkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgU2VydmljZVdvcmtlclByb2Nlc3NQcm94eTo6
dXBkYXRlUHJlZmVyZW5jZXNTdG9yZShjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlCiAgICAgc2Vu
ZChNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OlVwZGF0ZVByZWZlcmVu
Y2VzU3RvcmUgeyBzdG9yZSB9LCAwKTsKIH0KIAotdm9pZCBTZXJ2aWNlV29ya2VyUHJvY2Vzc1By
b3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUGFnZUlkZW50aWZpZXIgcGFn
ZUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4m
JiBjaGFsbGVuZ2UpCit2b2lkIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJiBjaGFsbGVu
Z2UpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHBhZ2VJRCk7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1l
SUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclBy
b2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nl
c3NQcm94eS5oCmluZGV4IGU5MzY1YWZhYzRmNDdkN2ZkNzQ3Zjk4OTgzYWQ5OTkwZThhYjk3NTUu
LjdkODg3NjA1ZWVhMGI2NDc5ZDY5NzY5MWFiYjU1MjgwN2RlMjE4NDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgKQEAgLTQx
LDcgKzQxLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGJvb2wgaGFzUmVnaXN0ZXJlZFNlcnZp
Y2VXb3JrZXJzKGNvbnN0IFN0cmluZyYgc2VydmljZVdvcmtlckRpcmVjdG9yeSk7CiAKLSAgICB2
b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgdWludDY0X3QgZnJhbWVJRCwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+
JiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZjxBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZVByb3h5PiYmKTsKIAogICAgIHZvaWQgc3RhcnQoY29uc3QgV2ViUHJlZmVy
ZW5jZXNTdG9yZSYsIE9wdGlvbmFsPFBBTDo6U2Vzc2lvbklEPiBpbml0aWFsU2Vzc2lvbklEKTsK
ICAgICB2b2lkIHNldFVzZXJBZ2VudChjb25zdCBTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwCmluZGV4IGY2ZDNiNTM2ZGY4YWFiMTk3
ZDkxMWVkMTRkMmVhNDBmZWZmMmUxZGQuLmM2NGQ3ZWYxOWJkMGRlNzExNjk2OTk5MmMwNzY3MWU2
MWQ4MjgzZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBh
Z2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVBy
b3h5LmNwcApAQCAtNzgsNyArNzgsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFNldDxJUEM6OlN0cmlu
Z1JlZmVyZW5jZT4mIG1lc3NhZ2VOYW1lc1RvSWdub3JlV2hpbGVTdXNwZW5kZWQoKQogfQogI2Vu
ZGlmCiAKLVN1c3BlbmRlZFBhZ2VQcm94eTo6U3VzcGVuZGVkUGFnZVByb3h5KFdlYlBhZ2VQcm94
eSYgcGFnZSwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCB1aW50NjRfdCBtYWluRnJh
bWVJRCwgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmdNb2RlIHNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0
aW5nTW9kZSkKK1N1c3BlbmRlZFBhZ2VQcm94eTo6U3VzcGVuZGVkUGFnZVByb3h5KFdlYlBhZ2VQ
cm94eSYgcGFnZSwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFtZUlkZW50aWZp
ZXIgbWFpbkZyYW1lSUQsIFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nTW9kZSBzaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ01vZGUpCiAgICAgOiBtX3BhZ2UocGFnZSkKICAgICAsIG1fcHJvY2VzcyhX
VEZNb3ZlKHByb2Nlc3MpKQogICAgICwgbV9tYWluRnJhbWVJRChtYWluRnJhbWVJRCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmgKaW5kZXggMGRhZDA1NGIy
NzJhODE5ZDZlMGIwNmM3N2NlZDgxMmEyNjNkMTM0MC4uOTE2NTNjYzc4ZWEwMDg2NjBiMTRlMzM1
MDU1M2FhODllNzNkMTkxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3Vz
cGVuZGVkUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVk
UGFnZVByb3h5LmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJQcm9jZXNzVGhyb3R0bGVy
LmgiCiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oIgogI2luY2x1ZGUgIldlYlBh
Z2VQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAK
QEAgLTQyLDEyICs0MywxMiBAQCBlbnVtIGNsYXNzIFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50
ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSA6IGJvb2wgeyBObwogY2xhc3MgU3VzcGVu
ZGVkUGFnZVByb3h5IGZpbmFsOiBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBD
YW5NYWtlV2Vha1B0cjxTdXNwZW5kZWRQYWdlUHJveHk+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKLSAgICBTdXNwZW5kZWRQYWdlUHJveHkoV2ViUGFnZVByb3h5Jiwg
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3QgbWFpbkZyYW1lSUQsIFNob3VsZERlbGF5
Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSk7CisgICAgU3Vz
cGVuZGVkUGFnZVByb3h5KFdlYlBhZ2VQcm94eSYsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCwgU2hvdWxkRGVsYXlDbG9zaW5nVW50
aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKTsKICAgICB+U3VzcGVuZGVkUGFn
ZVByb3h5KCk7CiAKICAgICBXZWJQYWdlUHJveHkmIHBhZ2UoKSBjb25zdCB7IHJldHVybiBtX3Bh
Z2U7IH0KICAgICBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MoKSB7IHJldHVybiBtX3Byb2Nlc3Mu
Z2V0KCk7IH0KLSAgICB1aW50NjRfdCBtYWluRnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFp
bkZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQoKSBj
b25zdCB7IHJldHVybiBtX21haW5GcmFtZUlEOyB9CiAKICAgICBib29sIHBhZ2VJc0Nsb3NlZE9y
Q2xvc2luZygpIGNvbnN0OwogCkBAIC03NCw3ICs3NSw3IEBAIHByaXZhdGU6CiAKICAgICBXZWJQ
YWdlUHJveHkmIG1fcGFnZTsKICAgICBSZWY8V2ViUHJvY2Vzc1Byb3h5PiBtX3Byb2Nlc3M7Ci0g
ICAgdWludDY0X3QgbV9tYWluRnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
bV9tYWluRnJhbWVJRDsKICAgICBib29sIG1faXNDbG9zZWQgeyBmYWxzZSB9OwogICAgIFNob3Vs
ZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSBtX3No
b3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSB7
IFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9k
ZTo6Tm8gfTsKICAgICBib29sIG1fc2hvdWxkQ2xvc2VXaGVuRW50ZXJpbmdBY2NlbGVyYXRlZENv
bXBvc2l0aW5nTW9kZSB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5jcHAKaW5kZXggYWI3OTI0MDI5
ZTBlZjNhM2JiYWI3NGNiYWMwMGMyOTdmYTk2YTNjYS4uNGZhNmZkZjYwOGQ2YzM3ZWZlY2IwYTVl
MDZjMmNmZGU1MGViNTg0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmNwcApAQCAtMzMsNyArMzMsNyBAQAog
bmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotVXNlck1lZGlh
UGVybWlzc2lvbkNoZWNrUHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5KHVpbnQ2
NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlciwgUmVmPFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbikKK1VzZXJNZWRpYVBlcm1pc3Np
b25DaGVja1Byb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyLCBSZWY8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKQogICAgIDogbV9mcmFtZUlEKGZy
YW1lSUQpCiAgICAgLCBtX2NvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaGFuZGxlcikpCiAgICAg
LCBtX3VzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW4oV1RGTW92ZSh1c2VyTWVkaWFEb2N1
bWVudE9yaWdpbikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1l
ZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaAppbmRleCBkYzM0MDk4MTcxNGM3Mjc5M2MwMTA1ZDc4
MzM5MWI3ZmE5NDU5MThmLi5lODBiNTE5MTg0MWZkYjI0Njc1NTEwOTcyNTA5NjZlOTBiN2UyYTMy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
Q2hlY2tQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25DaGVja1Byb3h5LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHMuaD4KICNpbmNsdWRlIDx3dGYvQ29t
cGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTQx
LDcgKzQyLDcgQEAgcHVibGljOgogICAgIGVudW0gY2xhc3MgUGVybWlzc2lvbkluZm8geyBFcnJv
ciwgVW5rbm93biwgR3JhbnRlZCB9OwogICAgIHVzaW5nIENvbXBsZXRpb25IYW5kbGVyID0gV1RG
OjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBlcm1pc3Npb25JbmZvKT47CiAKLSAgICBzdGF0aWMg
UmVmPFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5PiBjcmVhdGUodWludDY0X3QgZnJhbWVJ
RCwgQ29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKQorICAgIHN0YXRpYyBSZWY8VXNlck1lZGlhUGVy
bWlzc2lvbkNoZWNrUHJveHk+IGNyZWF0ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgQ29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkoZnJhbWVJRCwgV1RGTW92ZSho
YW5kbGVyKSwgV1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiksIFdURk1vdmUodG9wTGV2
ZWxEb2N1bWVudE9yaWdpbikpKTsKICAgICB9CkBAIC01MCwxNyArNTEsMTcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0VXNlck1lZGlhQWNjZXNzSW5mbyhib29sKTsKICAgICB2b2lkIGludmFsaWRh
dGUoKSB7IGNvbXBsZXRlKFBlcm1pc3Npb25JbmZvOjpFcnJvcik7IH0KIAotICAgIHVpbnQ2NF90
IGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQogICAgIFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkg
eyByZXR1cm4gbV91c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luLmdldCgpOyB9CiAgICAg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbigp
IHsgcmV0dXJuIG1fdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luLmdldCgpOyB9CiAgICAg
CiBwcml2YXRlOgotICAgIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5KHVpbnQ2NF90IGZy
YW1lSUQsIENvbXBsZXRpb25IYW5kbGVyJiYsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4m
JiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYm
IHRvcExldmVsRG9jdW1lbnRPcmlnaW4pOworICAgIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1By
b3h5KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXImJiwgUmVmPFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7CiAgICAgflVz
ZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5KCk7CiAKICAgICB2b2lkIGNvbXBsZXRlKFBlcm1p
c3Npb25JbmZvKTsKICAgICAKLSAgICB1aW50NjRfdCBtX2ZyYW1lSUQ7CisgICAgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIG1fZnJhbWVJRDsKICAgICBDb21wbGV0aW9uSGFuZGxlciBtX2NvbXBs
ZXRpb25IYW5kbGVyOwogICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gbV91c2VyTWVk
aWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luOwogICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bj4gbV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5jcHAKaW5kZXggZDM0MDM3NmZmMjkwN2I4NzI5MzU2NDY0Mjg5ZDQzNDk2ZDQw
MDk5MS4uZGI0Y2RhMTExNjFkMjIyODI5ODRmZWU5YWVhZDQwYTRlZWMxYTQ5MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtMjQwLDkgKzI0MCw5IEBAIHZvaWQgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmZpbmlzaEdyYW50aW5nUmVxdWVz
dChVc2VyTWVkaWFQZXJtCiAgICAgcHJvY2Vzc05leHRVc2VyTWVkaWFSZXF1ZXN0SWZOZWVkZWQo
KTsKIH0KIAotdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVz
ZXRBY2Nlc3ModWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHk6OnJlc2V0QWNjZXNzKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewot
ICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgZnJhbWVJRCk7CisgICAgQUxXQVlTX0xPRyhM
T0dJREVOVElGSUVSLCBmcmFtZUlELmxvZ2dpbmdTdHJpbmcoKSk7CiAgICAgbV9ncmFudGVkUmVx
dWVzdHMucmVtb3ZlQWxsTWF0Y2hpbmcoW2ZyYW1lSURdKGNvbnN0IGF1dG8mIGdyYW50ZWRSZXF1
ZXN0KSB7CiAgICAgICAgIHJldHVybiBncmFudGVkUmVxdWVzdC0+bWFpbkZyYW1lSUQoKSA9PSBm
cmFtZUlEOwogICAgIH0pOwpAQCAtMjUxLDcgKzI1MSw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlc2V0QWNjZXNzKHVpbnQ2NF90IGZyYW1lSUQpCiAg
ICAgbV9oYXNGaWx0ZXJlZERldmljZUxpc3QgPSBmYWxzZTsKIH0KIAotY29uc3QgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eSogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk6OnNlYXJjaEZvckdyYW50ZWRSZXF1ZXN0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNl
Y3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmln
aW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGJvb2wgbmVlZHNBdWRpbywgYm9vbCBuZWVkc1Zp
ZGVvKSBjb25zdAorY29uc3QgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSogVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnNlYXJjaEZvckdyYW50ZWRSZXF1ZXN0
KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlh
RG9jdW1lbnRPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luLCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbykgY29uc3QKIHsKICAgICBpZiAo
bV9wYWdlLmlzTWVkaWFTdHJlYW1DYXB0dXJlTXV0ZWQoKSkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CkBAIC0yODIsNyArMjgyLDcgQEAgY29uc3QgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eSogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnMKICAgICByZXR1
cm4gbnVsbHB0cjsKIH0KIAotYm9vbCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6d2FzUmVxdWVzdERlbmllZCh1aW50NjRfdCBtYWluRnJhbWVJRCwgY29uc3QgU2VjdXJp
dHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYg
dG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8s
IGJvb2wgbmVlZHNTY3JlZW5DYXB0dXJlKQorYm9vbCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6d2FzUmVxdWVzdERlbmllZChGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1l
SUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3Qg
U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGJvb2wgbmVlZHNBdWRpbywg
Ym9vbCBuZWVkc1ZpZGVvLCBib29sIG5lZWRzU2NyZWVuQ2FwdHVyZSkKIHsKICAgICBmb3IgKGNv
bnN0IGF1dG8mIGRlbmllZFJlcXVlc3QgOiBtX2RlbmllZFJlcXVlc3RzKSB7CiAgICAgICAgIGlm
ICghZGVuaWVkUmVxdWVzdC51c2VyTWVkaWFEb2N1bWVudE9yaWdpbi0+aXNTYW1lU2NoZW1lSG9z
dFBvcnQodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pKQpAQCAtMzQ2LDcgKzM0Niw3IEBAIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpSZXF1ZXN0QWN0aW9uIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0CiB9CiAjZW5kaWYKIAotdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1
aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFNlY3VyaXR5T3JpZ2lu
PiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbiwgTWVkaWFTdHJlYW1SZXF1ZXN0JiYgdXNlclJlcXVlc3QpCit2b2lk
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlh
UGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBS
ZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgTWVkaWFTdHJlYW1S
ZXF1ZXN0JiYgdXNlclJlcXVlc3QpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBp
ZiAoIW1fcGFnZS5oYXNSdW5uaW5nUHJvY2VzcygpKQpAQCAtNTIxLDcgKzUyMSw3IEBAIHZvaWQg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnByb2Nlc3NVc2VyTWVkaWFQ
ZXJtaXNzaW9uVmFsaWRSZXF1CiAgICAgbV9wYWdlLnVpQ2xpZW50KCkuZGVjaWRlUG9saWN5Rm9y
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QobV9wYWdlLCAqd2ViRnJhbWUsIFdURk1vdmUodXNl
ck1lZGlhT3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZlbE9yaWdpbiksICptX2N1cnJlbnRVc2VyTWVk
aWFSZXF1ZXN0KTsKIH0KIAotdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6Z2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8odWludDY0X3QgZnJhbWVJRCwgUmVmPFNl
Y3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlPcmln
aW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQZXJt
aXNzaW9uSW5mbyk+JiYgaGFuZGxlcikKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHk6OmdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJl
ZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFBlcm1pc3Npb25JbmZvKT4mJiBoYW5kbGVyKQogewogICAgIGF1dG8qIHdlYkZy
YW1lID0gbV9wYWdlLnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBpZiAoIXdlYkZy
YW1lIHx8ICFTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhtX3BhZ2UucGFnZUxvYWRT
dGF0ZSgpLmFjdGl2ZVVSTCgpKS0+aXNTYW1lU2NoZW1lSG9zdFBvcnQodG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbi5nZXQoKSkpIHsKQEAgLTU0NSw3ICs1NDUsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpnZXRVc2VyTWVkaWFQZXJtaXNzaW9uSW5mbyh1aW50
NjRfdAogICAgIG1fcGFnZS51aUNsaWVudCgpLmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9y
aWdpbihtX3BhZ2UsICp3ZWJGcmFtZSwgdXNlck1lZGlhT3JpZ2luLmdldCgpLCB0b3BMZXZlbE9y
aWdpbi5nZXQoKSwgcmVxdWVzdC5nZXQoKSk7CiB9CiAKLWJvb2wgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc0dyYW50ZWRWaWRlb09yQXVkaW9BY2Nlc3ModWludDY0
X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
LCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbikKK2Jvb2wgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc0dyYW50ZWRWaWRlb09yQXVk
aW9BY2Nlc3MoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9j
dW1lbnRPcmlnaW4pCiB7CiAgICAgZm9yIChjb25zdCBhdXRvJiBncmFudGVkUmVxdWVzdCA6IG1f
Z3JhbnRlZFJlcXVlc3RzKSB7CiAgICAgICAgIGlmIChncmFudGVkUmVxdWVzdC0+cmVxdWlyZXNE
aXNwbGF5Q2FwdHVyZSgpKQpAQCAtNjA0LDcgKzYwNCw3IEBAIFZlY3RvcjxDYXB0dXJlRGV2aWNl
PiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y29tcHV0ZUZpbHRlcmVk
RGV2CiB9CiAjZW5kaWYKIAotdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQs
IHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pCit2
b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjplbnVtZXJhdGVNZWRp
YURldmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVm
PFNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pCiB7CiAjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIHVzZXJNZWRpYUlE
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCmluZGV4IGY1MDVlMjgwYzQ0MjkwYTgw
M2RiZGI2OGM5OGVlYTYzMGIxYzliYjYuLmJiYmE0NGFjODJiZDI4MDc1YmRkZmJiNDU0NDRjYTU2
OWFjY2ZiOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApAQCAtNjAsMTUgKzYw
LDE1IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgaW52YWxpZGF0ZVBlbmRpbmdSZXF1ZXN0cygpOwog
Ci0gICAgdm9pZCByZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVz
ZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+
JiYgIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+
JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYp
OworICAgIHZvaWQgcmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1
c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4+JiYgIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgV2ViQ29yZTo6TWVkaWFTdHJlYW1S
ZXF1ZXN0JiYpOwogCi0gICAgdm9pZCByZXNldEFjY2Vzcyh1aW50NjRfdCBtYWluRnJhbWVJRCk7
CisgICAgdm9pZCByZXNldEFjY2VzcyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1l
SUQpOwogICAgIHZvaWQgdmlld0lzQmVjb21pbmdWaXNpYmxlKCk7CiAKICAgICB2b2lkIGdyYW50
UmVxdWVzdChVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Jik7CiAgICAgdm9pZCBkZW55
UmVxdWVzdChVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiwgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uLCBjb25zdCBTdHJp
bmcmIGludmFsaWRDb25zdHJhaW50ID0geyB9KTsKIAotICAgIHZvaWQgZW51bWVyYXRlTWVkaWFE
ZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJl
ZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVm
PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pOworICAg
IHZvaWQgZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQs
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYm
IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYg
dG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7CiAKICAgICB2b2lkIHN0b3BDYXB0dXJlKCk7CiAgICAg
dm9pZCBzY2hlZHVsZU5leHRSZWplY3Rpb24oKTsKQEAgLTk1LDE5ICs5NSwxOSBAQCBwcml2YXRl
OgogICAgIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKSBjb25zdCBmaW5hbDsKICNlbmRpZgog
Ci0gICAgUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZVBlcm1pc3Np
b25SZXF1ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBtYWluRnJhbWVJRCwgdWlu
dDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbiwgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgYXVkaW9EZXZpY2Vz
LCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiB2aWRlb0RldmljZXMsIFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKKyAgICBSZWY8VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eT4gY3JlYXRlUGVybWlzc2lvblJlcXVlc3QodWludDY0X3QgdXNlck1lZGlhSUQsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmln
aW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
LCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVkaWFTdHJl
YW1SZXF1ZXN0JiYpOwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgdm9pZCBmaW5pc2hH
cmFudGluZ1JlcXVlc3QoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYpOwogCi0gICAg
Y29uc3QgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSogc2VhcmNoRm9yR3JhbnRlZFJl
cXVlc3QodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVz
ZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9w
TGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8pIGNv
bnN0OwotICAgIGJvb2wgd2FzUmVxdWVzdERlbmllZCh1aW50NjRfdCBtYWluRnJhbWVJRCwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBu
ZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8sIGJvb2wgbmVlZHNTY3JlZW5DYXB0dXJlKTsKKyAg
ICBjb25zdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KiBzZWFyY2hGb3JHcmFudGVk
UmVxdWVzdChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGJvb2wgbmVlZHNBdWRpbywgYm9vbCBuZWVk
c1ZpZGVvKSBjb25zdDsKKyAgICBib29sIHdhc1JlcXVlc3REZW5pZWQoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIG1haW5GcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNl
ck1lZGlhRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BM
ZXZlbERvY3VtZW50T3JpZ2luLCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbywgYm9v
bCBuZWVkc1NjcmVlbkNhcHR1cmUpOwogCiAgICAgdXNpbmcgUGVybWlzc2lvbkluZm8gPSBVc2Vy
TWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eTo6UGVybWlzc2lvbkluZm87Ci0gICAgdm9pZCBnZXRV
c2VyTWVkaWFQZXJtaXNzaW9uSW5mbyh1aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFBlcm1pc3Npb25JbmZvKT4mJik7CisgICAgdm9pZCBnZXRVc2VyTWVkaWFQZXJtaXNzaW9u
SW5mbyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
PiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUGVybWlz
c2lvbkluZm8pPiYmKTsKIAogICAgIFJlcXVlc3RBY3Rpb24gZ2V0UmVxdWVzdEFjdGlvbihjb25z
dCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Jik7CiAKLSAgICBib29sIHdhc0dyYW50
ZWRWaWRlb09yQXVkaW9BY2Nlc3ModWludDY0X3QsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pOworICAgIGJvb2wgd2FzR3JhbnRlZFZpZGVvT3JB
dWRpb0FjY2VzcyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pOwogCiAgICAgVmVjdG9yPFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2U+IGNvbXB1dGVGaWx0ZXJlZERldmljZUxpc3QoYm9vbCByZXZlYWxJZHNB
bmRMYWJlbHMsIGNvbnN0IFN0cmluZyYgZGV2aWNlSURIYXNoU2FsdCk7CiAKQEAgLTEzNCw3ICsx
MzQsNyBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxSZWY8VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eT4+IG1fZ3JhbnRlZFJlcXVlc3RzOwogCiAgICAgc3RydWN0IERlbmllZFJlcXVlc3Qg
ewotICAgICAgICB1aW50NjRfdCBtYWluRnJhbWVJRDsKKyAgICAgICAgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIG1haW5GcmFtZUlEOwogICAgICAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4+IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luOwogICAgICAgICBSZWY8V2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4+IHRvcExldmVsRG9jdW1lbnRPcmlnaW47CiAgICAgICAgIGJvb2wgaXNBdWRpb0Rl
bmllZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKaW5kZXggNGYwMjg0MDZiYTRhNzc1MTY0NzA2NDc2
NzFmM2E5NTA4OGFmZjRhYi4uOTY2ZmRhZDVjZjBkZDA5Yjk4ZmY1NTYxMDNlMjA2YWExMTc1Yzk2
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJNZWRpYUlE
LCB1aW50NjRfdCBtYWluRnJhbWVJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVjdG9yPFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmlj
ZT4mJiB2aWRlb0RldmljZXMsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmIHJlcXVlc3Qp
CitVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiBtYW5hZ2Vy
LCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgRnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlELCBGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJN
ZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbiwgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgYXVkaW9E
ZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiB2aWRlb0RldmljZXMsIFdl
YkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmIHJlcXVlc3QpCiAgICAgOiBtX21hbmFnZXIoJm1h
bmFnZXIpCiAgICAgLCBtX3VzZXJNZWRpYUlEKHVzZXJNZWRpYUlEKQogICAgICwgbV9tYWluRnJh
bWVJRChtYWluRnJhbWVJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaAppbmRleCA1NDRmNjExNmVkYjY2MmE4
ZmE5NjMxYmMzYWY4YjcwZGVkYzU4MjdmLi5iYTRlMGEzNDcxNjAzMWIxOGYwODVjZmQwMWE3MzUx
Nzc4YTAzMDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCkBAIC0yMSw2ICsyMSw3IEBACiAKICNpbmNs
dWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NhcHR1cmVEZXZpY2UuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVk
aWFTdHJlYW1SZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMzUsNyArMzYsNyBAQCBjbGFzcyBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTsKIAogY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGUoVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRf
dCBtYWluRnJhbWVJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiB2aWRl
b0RldmljZXMsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmIHJlcXVlc3QpCisgICAgc3Rh
dGljIFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGUoVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJNZWRp
YUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiBhdWRpb0Rl
dmljZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgV2Vi
Q29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYgcmVxdWVzdCkKICAgICB7CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkobWFuYWdlciwg
dXNlck1lZGlhSUQsIG1haW5GcmFtZUlELCBmcmFtZUlELCBXVEZNb3ZlKHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSwgV1RGTW92ZShhdWRp
b0RldmljZXMpLCBXVEZNb3ZlKHZpZGVvRGV2aWNlcyksIFdURk1vdmUocmVxdWVzdCkpKTsKICAg
ICB9CkBAIC02NSw4ICs2Niw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEhhc1BlcnNpc3RlbnRB
Y2Nlc3MoKSB7IG1faGFzUGVyc2lzdGVudEFjY2VzcyA9IHRydWU7IH0KIAogICAgIHVpbnQ2NF90
IHVzZXJNZWRpYUlEKCkgY29uc3QgeyByZXR1cm4gbV91c2VyTWVkaWFJRDsgfQotICAgIHVpbnQ2
NF90IG1haW5GcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJhbWVJRDsgfQotICAgIHVp
bnQ2NF90IGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KKyAgICBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX21haW5GcmFt
ZUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQoKSBjb25zdCB7IHJl
dHVybiBtX2ZyYW1lSUQ7IH0KIAogICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZl
bERvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSB7IHJldHVybiBtX3RvcExldmVsRG9jdW1lbnRTZWN1
cml0eU9yaWdpbi5nZXQoKTsgfQogICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVk
aWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkgeyByZXR1cm4gbV91c2VyTWVkaWFEb2N1bWVudFNl
Y3VyaXR5T3JpZ2luLmdldCgpOyB9CkBAIC04NCwxMiArODUsMTIgQEAgcHVibGljOgogICAgIFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2UgdmlkZW9EZXZpY2UoKSBjb25zdCB7IHJldHVybiBtX2VsaWdp
YmxlVmlkZW9EZXZpY2VzLmlzRW1wdHkoKSA/IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgeyB9IDog
bV9lbGlnaWJsZVZpZGVvRGV2aWNlc1swXTsgfQogCiBwcml2YXRlOgotICAgIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkmLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgbWFpbkZyYW1lSUQsIHVpbnQ2NF90
IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRP
cmlnaW4sIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVj
dG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3JlOjpNZWRp
YVN0cmVhbVJlcXVlc3QmJik7CisgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYsIHVpbnQ2NF90IHVzZXJNZWRp
YUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbiwgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgYXVkaW9EZXZpY2VzLCBW
ZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiB2aWRlb0RldmljZXMsIFdlYkNvcmU6Ok1l
ZGlhU3RyZWFtUmVxdWVzdCYmKTsKIAogICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5KiBtX21hbmFnZXI7CiAgICAgdWludDY0X3QgbV91c2VyTWVkaWFJRDsKLSAgICB1
aW50NjRfdCBtX21haW5GcmFtZUlEOwotICAgIHVpbnQ2NF90IG1fZnJhbWVJRDsKKyAgICBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgbV9tYWluRnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgbV9mcmFtZUlEOwogICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gbV91
c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luOwogICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbj4gbV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW47CiAgICAgVmVjdG9yPFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U+IG1fZWxpZ2libGVWaWRlb0RldmljZXM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCmluZGV4IDA3MTRiNDFlYjY3NzY4ZDllMGM5
ZDQxMmUyMGU4OThmODFlNzNkZDguLmVlMzM3MTA4MTcwN2VhMzZkMzUwZWZlMmNjNWEwM2MxZDE5
MWRhNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCkBAIC00
NSw5ICs0NSw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBjbGFzcyBXZWJQYWdlUHJv
eHk7CiAKLVdlYkZyYW1lUHJveHk6OldlYkZyYW1lUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCB1
aW50NjRfdCBmcmFtZUlEKQorV2ViRnJhbWVQcm94eTo6V2ViRnJhbWVQcm94eShXZWJQYWdlUHJv
eHkmIHBhZ2UsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogICAgIDogbV9wYWdlKG1ha2VXZWFr
UHRyKHBhZ2UpKQotICAgICwgbV9pc0ZyYW1lU2V0KGZhbHNlKQogICAgICwgbV9mcmFtZUlEKGZy
YW1lSUQpCiB7CiAgICAgV2ViUHJvY2Vzc1Bvb2w6OnN0YXRpc3RpY3MoKS53a0ZyYW1lQ291bnQr
KzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaAppbmRleCA0NDYwMGYxYzI3
MjkwZTVlNGMxNjhlYThjZDNjYzM5NjM2ZmRiYmUxLi5jY2RhNjM3ODAwMmQ1NWFiMTU3YTZmMTUz
N2M1ZWY3OWRiNDVjMjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJG
cmFtZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5o
CkBAIC01OSwxNCArNTksMTQgQEAgc3RydWN0IFdlYnNpdGVQb2xpY2llc0RhdGE7CiAKIGNsYXNz
IFdlYkZyYW1lUHJveHkgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBl
OjpGcmFtZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViRnJhbWVQcm94eT4gY3JlYXRl
KFdlYlBhZ2VQcm94eSYgcGFnZSwgdWludDY0X3QgZnJhbWVJRCkKKyAgICBzdGF0aWMgUmVmPFdl
YkZyYW1lUHJveHk+IGNyZWF0ZShXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBmcmFtZUlEKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2Vi
RnJhbWVQcm94eShwYWdlLCBmcmFtZUlEKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+V2ViRnJh
bWVQcm94eSgpOwogCi0gICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJh
bWVJRDsgfQorICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKCkgY29uc3QgeyBy
ZXR1cm4gbV9mcmFtZUlEOyB9CiAgICAgV2ViUGFnZVByb3h5KiBwYWdlKCkgY29uc3QgeyByZXR1
cm4gbV9wYWdlLmdldCgpOyB9CiAKICAgICB2b2lkIHdlYlByb2Nlc3NXaWxsU2h1dERvd24oKTsK
QEAgLTEzMCw3ICsxMzAsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBXZWJG
cmFtZVByb3h5KFdlYlBhZ2VQcm94eSYsIHVpbnQ2NF90IGZyYW1lSUQpOworICAgIFdlYkZyYW1l
UHJveHkoV2ViUGFnZVByb3h5JiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKIAogICAgIFdl
YWtQdHI8V2ViUGFnZVByb3h5PiBtX3BhZ2U7CiAKQEAgLTEzOCwxMSArMTM4LDExIEBAIHByaXZh
dGU6CiAKICAgICBTdHJpbmcgbV9NSU1FVHlwZTsKICAgICBTdHJpbmcgbV90aXRsZTsKLSAgICBi
b29sIG1faXNGcmFtZVNldDsKKyAgICBib29sIG1faXNGcmFtZVNldCB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX2NvbnRhaW5zUGx1Z2luRG9jdW1lbnQgeyBmYWxzZSB9OwogICAgIFJlZlB0cjxXZWJD
ZXJ0aWZpY2F0ZUluZm8+IG1fY2VydGlmaWNhdGVJbmZvOwogICAgIFJlZlB0cjxXZWJGcmFtZVBv
bGljeUxpc3RlbmVyUHJveHk+IG1fYWN0aXZlTGlzdGVuZXI7Ci0gICAgdWludDY0X3QgbV9mcmFt
ZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX2ZyYW1lSUQ7CiAjaWYgRU5BQkxF
KENPTlRFTlRfRklMVEVSSU5HKQogICAgIFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFu
ZGxlciBtX2NvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMzI2MzFjNDUwZWIyNmQ3NTQ1NDY4Yjcy
NmMxNWE0NDk4NWM5OThhOS4uNDM4ODIyZDQ1ZjNkNjY4MTc4NzcyYWI5YTVjMjllZDBmOTU4MTRi
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC03NDMsNyAr
NzQzLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxhdW5jaFByb2Nlc3MoY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIHJlZ2lzdHJhYmxlRG9tYWluKQogICAgIGZpbmlzaEF0dGFjaGluZ1RvV2ViUHJv
Y2VzcyhJc1Byb2Nlc3NTd2FwOjpObyk7CiB9CiAKLWJvb2wgV2ViUGFnZVByb3h5OjpzdXNwZW5k
Q3VycmVudFBhZ2VJZlBvc3NpYmxlKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgT3B0aW9u
YWw8dWludDY0X3Q+IG1haW5GcmFtZUlELCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHBy
b2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJp
bmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSBzaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVy
aW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpCitib29sIFdlYlBhZ2VQcm94eTo6c3VzcGVu
ZEN1cnJlbnRQYWdlSWZQb3NzaWJsZShBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIE9wdGlv
bmFsPEZyYW1lSWRlbnRpZmllcj4gbWFpbkZyYW1lSUQsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlD
bGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgU2hvdWxkRGVsYXlDbG9zaW5nVW50
aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlIHNob3VsZERlbGF5Q2xvc2luZ1Vu
dGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSkKIHsKICAgICBtX2xhc3RTdXNw
ZW5kZWRQYWdlID0gbnVsbHB0cjsKIApAQCAtMjkzMSwxMiArMjkzMSwxMiBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6cmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb24gYWN0aW9uLCBBUEk6
Ok5hdmlnYXRpb24qCiAgICAgc2VuZGVyLT5zZW5kKGFjdGlvbiwgbmF2aWdhdGlvbiA/IG5hdmln
YXRpb24tPm5hdmlnYXRpb25JRCgpIDogMCwgZG93bmxvYWRJRCwgV1RGTW92ZSh3ZWJzaXRlUG9s
aWNpZXMpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZSh1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1l
TG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZv
LCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2Vj
dXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYgdXNl
ckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6Y29tbWl0UHJvdmlzaW9uYWxQYWdlKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1l
TG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZv
LCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2Vj
dXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYgdXNl
ckRhdGEpCiB7CiAgICAgQVNTRVJUKG1fcHJvdmlzaW9uYWxQYWdlKTsKICAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKExvYWRpbmcsICJjb21taXRQcm92aXNpb25hbFBhZ2U6IHByZXZpb3VzUElE
ID0gJWksIG5ld1BJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vz
c0lkZW50aWZpZXIoKSwgbV9wcm92aXNpb25hbFBhZ2UtPnByb2Nlc3MoKS5wcm9jZXNzSWRlbnRp
ZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBt
YWluRnJhbWVJREluUHJldmlvdXNQcm9jZXNzID0gbV9tYWluRnJhbWUgPyBtYWtlT3B0aW9uYWwo
bV9tYWluRnJhbWUtPmZyYW1lSUQoKSkgOiBXVEY6Om51bGxvcHQ7CisgICAgT3B0aW9uYWw8RnJh
bWVJZGVudGlmaWVyPiBtYWluRnJhbWVJREluUHJldmlvdXNQcm9jZXNzID0gbV9tYWluRnJhbWUg
PyBtYWtlT3B0aW9uYWwobV9tYWluRnJhbWUtPmZyYW1lSUQoKSkgOiBXVEY6Om51bGxvcHQ7CiAK
ICAgICBBU1NFUlQobV9wcm9jZXNzLnB0cigpICE9ICZtX3Byb3Zpc2lvbmFsUGFnZS0+cHJvY2Vz
cygpKTsKIApAQCAtMzY3Miw3ICszNjcyLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFT
Y3JpcHRJbk1haW5GcmFtZVNjcmlwdFdvcmxkKGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib28KICAg
ICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlJ1bkphdmFTY3JpcHRJbk1haW5G
cmFtZVNjcmlwdFdvcmxkKHNjcmlwdCwgZm9yY2VVc2VyR2VzdHVyZSwgd29ybGROYW1lLCBjYWxs
YmFja0lEKSwgbV9wYWdlSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlw
dEluRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9y
Y2VVc2VyR2VzdHVyZSwgV1RGOjpGdW5jdGlvbjx2b2lkKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZh
bHVlKiwgYm9vbCBoYWRFeGNlcHRpb24sIGNvbnN0IEV4Y2VwdGlvbkRldGFpbHMmLCBDYWxsYmFj
a0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQordm9pZCBXZWJQYWdlUHJveHk6OnJ1
bkphdmFTY3JpcHRJbkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcm
IHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBXVEY6OkZ1bmN0aW9uPHZvaWQoQVBJOjpT
ZXJpYWxpemVkU2NyaXB0VmFsdWUqLCBib29sIGhhZEV4Y2VwdGlvbiwgY29uc3QgRXhjZXB0aW9u
RGV0YWlscyYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCiB7CiAg
ICAgQVNTRVJUKG1haW5GcmFtZSgpLT5mcmFtZUlEKCkgIT0gZnJhbWVJRCk7CiAgICAgYXV0byBj
YWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIG1f
cHJvY2Vzcy0+dGhyb3R0bGVyKCkuYmFja2dyb3VuZEFjdGl2aXR5VG9rZW4oKSk7CkBAIC0zODc4
LDcgKzM4NzgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cHJlZmVyZW5jZXNEaWRDaGFuZ2UoKQog
ICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6UHJlZmVyZW5jZXNEaWRDaGFu
Z2UocHJlZmVyZW5jZXNTdG9yZSgpKSwgbV9wYWdlSUQsIHByaW50aW5nU2VuZE9wdGlvbnMobV9p
c1BlcmZvcm1pbmdET01QcmludE9wZXJhdGlvbikpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkQ3JlYXRlTWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkQ3JlYXRlTWFpbkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIC8vIFRo
ZSBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyBJUEMgaXMgc3luY2hyb25vdXMg
YW5kIG1heSB0aGVyZWZvcmUgZ2V0IHByb2Nlc3NlZCBiZWZvcmUgdGhlIERpZENyZWF0ZU1haW5G
cmFtZSBvbmUuCiAgICAgLy8gV2hlbiB0aGlzIGhhcHBlbnMsIGRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25TeW5jKCkgY2FsbHMgZGlkQ3JlYXRlTWFpbkZyYW1lKCkgYW5kIHdlIG5lZWQg
dG8gaWdub3JlIHRoZSBEaWRDcmVhdGVNYWluRnJhbWUKQEAgLTM4OTcsNyArMzg5Nyw3IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJRCkKICAg
ICBtX3Byb2Nlc3MtPmZyYW1lQ3JlYXRlZChmcmFtZUlELCAqbV9tYWluRnJhbWUpOwogfQogCi12
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRlU3ViZnJhbWUodWludDY0X3QgZnJhbWVJRCkKK3Zv
aWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVTdWJmcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwog
CkBAIC0zOTE3LDcgKzM5MTcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRlU3ViZnJh
bWUodWludDY0X3QgZnJhbWVJRCkKICAgICBtX3Byb2Nlc3MtPmZyYW1lQ3JlYXRlZChmcmFtZUlE
LCBzdWJGcmFtZS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVXaW5k
b3codWludDY0X3QgZnJhbWVJRCwgR2xvYmFsV2luZG93SWRlbnRpZmllciYmIHdpbmRvd0lkZW50
aWZpZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRlV2luZG93KEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBHbG9iYWxXaW5kb3dJZGVudGlmaWVyJiYgd2luZG93SWRlbnRpZmllcikKIHsK
IH0KIApAQCAtMzk4MSwxMiArMzk4MSwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGVzdHJv
eU5hdmlnYXRpb24odWludDY0X3QgbmF2aWdhdGlvbklEKQogICAgIG1fbmF2aWdhdGlvblN0YXRl
LT5kaWREZXN0cm95TmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIFVSTCYmIHVybCwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRh
JiB1c2VyRGF0YSkKIHsKICAgICBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVk
KG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgV1RGTW92ZSh1cmwp
LCBXVEZNb3ZlKHVucmVhY2hhYmxlVVJMKSwgdXNlckRhdGEpOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgVVJMJiYgdXJsLCBVUkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVT
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwsIFVSTCYmIHVucmVhY2hhYmxl
VVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3Rv
ciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDAwNSw4ICs0MDA1LDggQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJgogICAgIGlmIChmcmFtZS0+aXNNYWluRnJhbWUoKSAmJiBuYXZpZ2F0
aW9uSUQpCiAgICAgICAgIG5hdmlnYXRpb24gPSBuYXZpZ2F0aW9uU3RhdGUoKS5uYXZpZ2F0aW9u
KG5hdmlnYXRpb25JRCk7CiAKLSAgICBMT0coTG9hZGluZywgIldlYlBhZ2VQcm94eSAlIiBQUkl1
NjQgIiBpbiBwcm9jZXNzIHBpZCAlaSBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lIHRv
IGZyYW1lSUQgJSIgUFJJdTY0ICIsIG5hdmlnYXRpb25JRCAlIiBQUkl1NjQgIiwgdXJsICVzIiwg
bV9wYWdlSUQudG9VSW50NjQoKSwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgZnJhbWVJ
RCwgbmF2aWdhdGlvbklELCB1cmwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFt
ZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
LCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFt
ZUlEKTsKKyAgICBMT0coTG9hZGluZywgIldlYlBhZ2VQcm94eSAlIiBQUkl1NjQgIiBpbiBwcm9j
ZXNzIHBpZCAlaSBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lIHRvIGZyYW1lSUQgJSIg
UFJJdTY0ICIsIG5hdmlnYXRpb25JRCAlIiBQUkl1NjQgIiwgdXJsICVzIiwgbV9wYWdlSUQudG9V
SW50NjQoKSwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgZnJhbWVJRC50b1VJbnQ2NCgp
LCBuYXZpZ2F0aW9uSUQsIHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
OiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQs
IHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1l
SUQudG9VSW50NjQoKSk7CiAKICAgICBhdXRvIHRyYW5zYWN0aW9uID0gbV9wYWdlTG9hZFN0YXRl
LnRyYW5zYWN0aW9uKCk7CiAKQEAgLTQwMzEsNyArNDAzMSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYKICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRTdGFydFByb3Zpc2lvbmFsTmF2
aWdhdGlvbigqdGhpcywgbmF2aWdhdGlvbi5nZXQoKSwgcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxl
c1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkRXhwbGljaXRPcGVuRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgVVJMJiYgdXJs
KQordm9pZCBXZWJQYWdlUHJveHk6OmRpZEV4cGxpY2l0T3BlbkZvckZyYW1lKEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBVUkwmJiB1cmwpCiB7CiAgICAgYXV0byogZnJhbWUgPSBtX3Byb2Nlc3Mt
PndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBmcmFtZSk7
CkBAIC00MDUwLDE1ICs0MDUwLDE1IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRFeHBsaWNpdE9w
ZW5Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBVUkwmJiB1cmwpCiAgICAgbV9wYWdlTG9hZFN0
YXRlLmNvbW1pdENoYW5nZXMoKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVT
ZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3Qg
VXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJS
ZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0
IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQ
cm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlE
LCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUocmVxdWVzdCksIHVzZXJEYXRhKTsKIH0KIAotdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgdWludDY0X3QgZnJh
bWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBj
b25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNl
cnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nl
c3NQcm94eT4mJiBwcm9jZXNzLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBVc2VyRGF0YSYgdXNl
ckRhdGEpCiB7Ci0gICAgTE9HKExvYWRpbmcsICJXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2
ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lIHRvIGZyYW1lSUQgJSIgUFJJdTY0
ICIsIG5hdmlnYXRpb25JRCAlIiBQUkl1NjQgIiwgdXJsICVzIiwgZnJhbWVJRCwgbmF2aWdhdGlv
bklELCByZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZy
YW1lSUQgPSAlIiBQUkl1NjQsIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlE
LnRvVUludDY0KCksIGZyYW1lSUQpOworICAgIExPRyhMb2FkaW5nLCAiV2ViUGFnZVByb3h5Ojpk
aWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSB0byBmcmFt
ZUlEICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9uSUQgJSIgUFJJdTY0ICIsIHVybCAlcyIsIGZyYW1l
SUQudG9VSW50NjQoKSwgbmF2aWdhdGlvbklELCByZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0Zjgo
KS5kYXRhKCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZFJlY2Vp
dmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwg
cGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIHByb2Nlc3MtPnByb2Nl
c3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7
CiAKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBA
IC00MDg1LDkgKzQwODUsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJl
ZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPAogICAgICAgICBtX25h
dmlnYXRpb25DbGllbnQtPmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTmF2
aWdhdGlvbigqdGhpcywgbmF2aWdhdGlvbi5nZXQoKSwgcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxl
c1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFN0cmluZyYgdXJsLCBkb3VibGUgZGVsYXksIFdlYkNvcmU6OkxvY2tCYWNrRm9yd2Fy
ZExpc3QpCit2b2lkIFdlYlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZy
YW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHVybCwgZG91YmxlIGRl
bGF5LCBXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0KQogewotICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoTG9hZGluZywgIndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZTogd2Vi
UElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3By
b2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQp
OworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgIndpbGxQZXJmb3JtQ2xpZW50
UmVkaXJlY3RGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlE
LnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAKICAgICBQYWdlQ2xpZW50UHJvdGVj
dG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00MDk4LDkgKzQwOTgsOSBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFN0cgogICAgICAgICBtX25hdmlnYXRpb25DbGllbnQtPndpbGxQZXJm
b3JtQ2xpZW50UmVkaXJlY3QoKnRoaXMsIHVybCwgZGVsYXkpOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQor
dm9pZCBXZWJQYWdlUHJveHk6OmRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUoRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5n
LCAiZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9
ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVu
dGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQpOworICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoTG9hZGluZywgImRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWU6IHdl
YlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9w
cm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlE
LnRvVUludDY0KCkpOwogCiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNs
aWVudCgpKTsKIApAQCAtNDExMSwxMiArNDExMSwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
Q2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQogICAgICAgICBt
X25hdmlnYXRpb25DbGllbnQtPmRpZENhbmNlbENsaWVudFJlZGlyZWN0KCp0aGlzKTsKIH0KIAot
dm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwpCit2b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwpCiB7CiAgICAgZGlkQ2hh
bmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFt
ZUlELCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUodXJsKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5
OjpkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYgcHJvY2VzcywgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QsIFVSTCYmIHVybCkKK3Zv
aWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVp
bnQ2NF90LCBVUkwmJiB1cmwpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3Io
cGFnZUNsaWVudCgpKTsKIApAQCAtNDEzNSw3ICs0MTM1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94
eT4mJgogICAgIGZyYW1lLT5kaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExv
YWQodXJsKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1l
U2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92
aXNpb25hbFVSTCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFdpbGxDb250aW51ZUxvYWRp
bmcgd2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBX
ZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2lu
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNv
bnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250aW51
ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBpZiAobV9wcm92aXNp
b25hbFBhZ2UgJiYgbV9wcm92aXNpb25hbFBhZ2UtPm5hdmlnYXRpb25JRCgpID09IG5hdmlnYXRp
b25JRCkgewogICAgICAgICAvLyBUaGUgbG9hZCBkaWQgbm90IGZhaWwsIGl0IGlzIG1lcmVseSBo
YXBwZW5pbmcgaW4gYSBuZXcgcHJvdmlzaW9uYWwgcHJvY2Vzcy4KQEAgLTQxNDUsMTAgKzQxNDUs
MTAgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cmkKICAgICBkaWRGYWlsUHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0
eU9yaWdpbiwgbmF2aWdhdGlvbklELCBwcm92aXNpb25hbFVSTCwgZXJyb3IsIHdpbGxDb250aW51
ZUxvYWRpbmcsIHVzZXJEYXRhKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92
aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3Ms
IHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0
eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFs
VVJMLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgV2lsbENvbnRpbnVlTG9hZGluZyB3aWxs
Q29udGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5
T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBj
b25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwg
V2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYg
dXNlckRhdGEpCiB7CiAgICAgTE9HKExvYWRpbmcsICIoTG9hZGluZykgV2ViUGFnZVByb3h5ICUi
IFBSSXU2NCAiIGluIHdlYiBwcm9jZXNzIHBpZCAlaSBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWUgdG8gcHJvdmlzaW9uYWxVUkwgJXMiLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBwcm9jZXNz
LT5wcm9jZXNzSWRlbnRpZmllcigpLCBwcm92aXNpb25hbFVSTC51dGY4KCkuZGF0YSgpKTsKLSAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3MsICJkaWRGYWlsUHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCAiLCBkb21haW4gPSAlcywgY29kZSA9ICVkIiwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50
aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCwgZXJyb3IuZG9tYWluKCkudXRm
OCgpLmRhdGEoKSwgZXJyb3IuZXJyb3JDb2RlKCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoUHJvY2VzcywgImRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZTogd2ViUElEID0gJWks
IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIGRvbWFpbiA9ICVz
LCBjb2RlID0gJWQiLCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJ
bnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCksIGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCks
IGVycm9yLmVycm9yQ29kZSgpKTsKIAogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9y
KHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQyMjQsMTEgKzQyMjQsMTEgQEAgc3RhdGljIE9wdGlvblNl
dDxDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyOjpGbGFnPiBjaGVja0lmTmF2aWdhdGlv
bkNvbnRhaW4KIH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMy
X3Qgb3BhcXVlRnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiBj
ZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8SGFz
SW5zZWN1cmVDb250ZW50PiBoYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJiB1c2Vy
RGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUoRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3Qgb3BhcXVl
RnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0
ZUluZm8sIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8SGFzSW5zZWN1cmVD
b250ZW50PiBoYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsK
ICAgICBMT0coTG9hZGluZywgIihMb2FkaW5nKSBXZWJQYWdlUHJveHkgJSIgUFJJdTY0ICIgZGlk
Q29tbWl0TG9hZEZvckZyYW1lIGluIG5hdmlnYXRpb24gJSIgUFJJdTY0LCBtX3BhZ2VJRC50b1VJ
bnQ2NCgpLCBuYXZpZ2F0aW9uSUQpOwogICAgIExPRyhCYWNrRm9yd2FyZCwgIihCYWNrL0Zvcndh
cmQpIEFmdGVyIGxvYWQgY29tbWl0LCBiYWNrL2ZvcndhcmQgbGlzdCBpcyBub3c6JXMiLCBtX2Jh
Y2tGb3J3YXJkTGlzdC0+bG9nZ2luZ1N0cmluZygpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKExvYWRpbmcsICJkaWRDb21taXRMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRl
bnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRDb21taXRMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVp
LCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5w
cm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0
KCkpOwogCiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsK
IApAQCAtNDMzOCw5ICs0MzM4LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQKICNlbmRpZgog
fQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBVc2VyRGF0YSYgdXNl
ckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgVXNl
ckRhdGEmIHVzZXJEYXRhKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywg
ImRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZp
ZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRChMb2FkaW5nLCAiZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWU6IHdlYlBJRCA9
ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNz
LT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUlu
dDY0KCkpOwogCiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgp
KTsKIApAQCAtNDM2MSwxMCArNDM2MSwxMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNo
RG9jdW1lbnRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aQogICAg
ICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRpZEZpbmlzaERvY3VtZW50TG9hZCgqdGhpcywgbmF2
aWdhdGlvbi5nZXQoKSwgbV9wcm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJE
YXRhLm9iamVjdCgpKS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hM
b2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25z
dCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZEZv
ckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBMT0coTG9hZGluZywgIldlYlBhZ2VQcm94
eTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lIC0gV2ViUGFnZVByb3h5ICVwIHdpdGggbmF2aWdhdGlv
bklEICUiIFBSSXU2NCAiIGRpZEZpbmlzaExvYWQiLCB0aGlzLCBuYXZpZ2F0aW9uSUQpOwotICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZEZpbmlzaExvYWRGb3JGcmFtZTog
d2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBt
X3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1l
SUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZEZpbmlzaExvYWRG
b3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0
KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3Rl
Y3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00NDA3LDkgKzQ0MDcsOSBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRAogICAgIG1faXNMb2FkaW5nQWx0ZXJuYXRlSFRNTFN0cmluZ0ZvckZhaWxpbmdQ
cm92aXNpb25hbExvYWQgPSBmYWxzZTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxM
b2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25z
dCBSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBX
ZWJQYWdlUHJveHk6OmRpZEZhaWxMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0
IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRp
bmcsICJkaWRGYWlsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgZG9tYWluID0gJXMsIGNvZGUgPSAlZCIsIG1fcHJv
Y2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCwg
ZXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSwgZXJyb3IuZXJyb3JDb2RlKCkpOworICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZEZhaWxMb2FkRm9yRnJhbWU6IHdlYlBJ
RCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBkb21h
aW4gPSAlcywgY29kZSA9ICVkIiwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3Bh
Z2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCksIGVycm9yLmRvbWFpbigpLnV0Zjgo
KS5kYXRhKCksIGVycm9yLmVycm9yQ29kZSgpKTsKIAogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3Ig
cHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQ0NDksOSArNDQ0OSw5IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwKICAgICB9CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRTYW1lRG9j
dW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdh
dGlvbklELCB1aW50MzJfdCBvcGFxdWVTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgVVJMJiYg
dXJsLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU2Ft
ZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQzMl90IG9wYXF1ZVNhbWVEb2N1bWVudE5hdmlnYXRpb25U
eXBlLCBVUkwmJiB1cmwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKLSAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJh
bWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2
NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBm
cmFtZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRTYW1lRG9j
dW1lbnROYXZpZ2F0aW9uRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBt
X3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCkpOwogCiAgICAgUGFnZUNsaWVu
dFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDQ4OCw3ICs0NDg4LDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdAogICAgICAgICBwYWdlQ2xpZW50KCkuZGlkU2FtZURv
Y3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShuYXZpZ2F0aW9uVHlwZSk7CiB9CiAKLXZvaWQg
V2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VNYWluRG9jdW1lbnQodWludDY0X3QgZnJhbWVJRCkKK3Zv
aWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VNYWluRG9jdW1lbnQoRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBpZiAobV91c2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpCkBAIC00NTA3LDcgKzQ1MDcsNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6dmlld0lzQmVjb21pbmdWaXNpYmxlKCkKICNlbmRpZgogfQogCi12b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
U3RyaW5nJiB0aXRsZSwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJv
eHk6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25z
dCBTdHJpbmcmIHRpdGxlLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgUGFnZUNs
aWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDUyOSwxMSArNDUy
OSwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRsZQogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRGaXJzdExheW91dEZvckZyYW1lKHVpbnQ2NF90LCBjb25zdCBVc2VyRGF0YSYg
dXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmlyc3RMYXlvdXRGb3JGcmFtZShGcmFt
ZUlkZW50aWZpZXIsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKIH0KIAotdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0
b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQ1NjQsNyArNDU2NCw3IEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpkaWRSZWFjaExheW91dE1pbGVzdG9uZShPcHRpb25TZXQ8V2ViQ29yZTo6
TGF5b3V0TWlsZXN0b25lPiBsCiAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5yZW5kZXJpbmdQcm9n
cmVzc0RpZENoYW5nZSgqdGhpcywgbGF5b3V0TWlsZXN0b25lcyk7CiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZERpc3Bs
YXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3Qg
VXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9y
KHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQ1NzgsNyArNDU3OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgVXNlCiAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWREaXNwbGF5SW5zZWN1cmVDb250ZW50
KCp0aGlzLCBtX3Byb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2Jq
ZWN0KCkpLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJ1bkluc2VjdXJlQ29u
dGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkK
K3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VD
bGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQ1OTIsNyArNDU5
Miw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBVc2VyRGF0CiAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5k
aWRSdW5JbnNlY3VyZUNvbnRlbnQoKnRoaXMsIG1fcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1Rv
T2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkRGV0ZWN0WFNTRm9yRnJhbWUodWludDY0X3QsIGNvbnN0IFVzZXJEYXRhJikKK3ZvaWQg
V2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIsIGNvbnN0
IFVzZXJEYXRhJikKIHsKIH0KIApAQCAtNDYwMSw3ICs0NjAxLDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6Om1haW5GcmFtZVBsdWdpbkhhbmRsZXNQYWdlU2NhbGVHZXN0dXJlRGlkQ2hhbmdlKGJvb2wg
bWFpbkZyYW0KICAgICBtX21haW5GcmFtZVBsdWdpbkhhbmRsZXNQYWdlU2NhbGVHZXN0dXJlID0g
bWFpbkZyYW1lUGx1Z2luSGFuZGxlc1BhZ2VTY2FsZUdlc3R1cmU7CiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpmcmFtZURpZEJlY29tZUZyYW1lU2V0KHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgdmFs
dWUpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZnJhbWVEaWRCZWNvbWVGcmFtZVNldChGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgYm9vbCB2YWx1ZSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHBy
b3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00NjIwLDcgKzQ2MjAsNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6YmVnaW5TYWZlQnJvd3NpbmdDaGVjayhjb25zdCBVUkwmLCBib29sLCBXZWJGcmFt
ZVBvbGljeUxpc3RlbgogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmModWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlm
aWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwKK3ZvaWQgV2ViUGFnZVByb3h5
OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4s
IFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
CiAgICAgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJ
bmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
PiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmln
aW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsCiAgICAgSVBD
OjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCB1aW50NjRf
dCBsaXN0ZW5lcklEKQogewpAQCAtNDYyOCw3ICs0NjI4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyh1aW50NjRfdCBmcmFtZUlELCBX
ZWJDb3IKICAgICAgICAgV1RGTW92ZShmcmFtZUluZm9EYXRhKSwgb3JpZ2luYXRpbmdQYWdlSUQs
IG9yaWdpbmFsUmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZXF1ZXN0Qm9keSks
IFdURk1vdmUocmVkaXJlY3RSZXNwb25zZSksIHVzZXJEYXRhLCBsaXN0ZW5lcklEKTsKIH0KIAot
dm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1No
YXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90IGZyYW1lSUQsIFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sCit2b2lkIFdl
YlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sCiAgICAgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJ
bmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
PiBvcmlnaW5hdGluZ1BhZ2VJRCwKICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgSVBD
OjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiYgcmVkaXJlY3RSZXNwb25zZSwKICAgICBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIHVp
bnQ2NF90IGxpc3RlbmVySUQpCkBAIC00ODU4LDcgKzQ4NTgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6bG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IFdlYkZyYW1lUHJveHkmIGZyYW1lLCBjb25zdCBV
UkwmIHBhZwogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uU3luYyh1aW50NjRfdCBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lD
aGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKK3ZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCBp
c01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9y
aWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2
aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBG
cmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IG9y
aWdpbmF0aW5nUGFnZUlELAogICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3Jp
Z2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZv
cm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
JiByZWRpcmVjdFJlc3BvbnNlLAogICAgIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRl
bGF5ZWRSZXBseSYmIHJlcGx5KQpAQCAtNDg3Niw3ICs0ODc2LDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKHVpbnQ2NF90IGZyYW1lSUQs
IGJvb2wgaXMKICAgICAgICAgV1RGTW92ZShmcmFtZUluZm9EYXRhKSwgb3JpZ2luYXRpbmdQYWdl
SUQsIG9yaWdpbmFsUmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZXF1ZXN0Qm9k
eSksIFdURk1vdmUocmVkaXJlY3RSZXNwb25zZSksIHVzZXJEYXRhLCBXVEZNb3ZlKHJlcGx5KSk7
CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
U3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90IGZyYW1l
SUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1l
U2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAordm9pZCBX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJv
b2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJp
dHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAogICAgIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0
YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVy
PiBvcmlnaW5hdGluZ1BhZ2VJRCwKICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgSVBD
OjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiYgcmVkaXJlY3RSZXNwb25zZSwKICAgICBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5j
OjpEZWxheWVkUmVwbHkmJiByZXBseSkKQEAgLTQ4OTMsNyArNDg5Myw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZChSZWY8V2Vi
UHJvY2Vzc1Byb3h5CiAgICAgc2VuZGVyLT5zZW5kKFBvbGljeUFjdGlvbjo6VXNlLCBuYXZpZ2F0
aW9uSUQsIERvd25sb2FkSUQoKSwgV1RGOjpudWxsb3B0KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJv
eHk6OmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRl
bnRpZmllciBpZGVudGlmaWVyLAordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5l
d1dpbmRvd0FjdGlvbihGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmln
aW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRp
ZmllciwKICAgICBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdWludDY0
X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGll
bnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CkBAIC00OTMxLDEzICs0OTMxLDEz
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24odWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpCiAgICAgICAgIAogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2Vj
dXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZp
ZXIgaWRlbnRpZmllciwKK3ZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFt
ZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKICAgICB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25z
dCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBV
c2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQo
bV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0eU9yaWdpbiwgaWRlbnRp
ZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd01JTUVUeXBlLCBk
b3dubG9hZEF0dHJpYnV0ZSwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOwogfQogCi12b2lkIFdlYlBh
Z2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiBwcm9jZXNzLCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEm
IGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAor
dm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQ
cm9jZXNzUHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNl
Y3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlm
aWVyIGlkZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29s
IGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0
X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGll
bnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CkBAIC00OTcxLDcgKzQ5NzEsNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLAogICAgIH0KIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6
OnVuYWJsZVRvSW1wbGVtZW50UG9saWN5KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJlc291cmNl
RXJyb3ImIGVycm9yLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94
eTo6dW5hYmxlVG9JbXBsZW1lbnRQb2xpY3koRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0
IFJlc291cmNlRXJyb3ImIGVycm9yLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAg
UGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDk4NSw3
ICs0OTg1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnVuYWJsZVRvSW1wbGVtZW50UG9saWN5KHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJlc291cmNlRXJyb3IKIAogLy8gRm9ybUNsaWVudAogCi12
b2lkIFdlYlBhZ2VQcm94eTo6d2lsbFN1Ym1pdEZvcm0odWludDY0X3QgZnJhbWVJRCwgdWludDY0
X3Qgc291cmNlRnJhbWVJRCwgY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+
JiB0ZXh0RmllbGRWYWx1ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1
c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0Rm9ybShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgRnJhbWVJZGVudGlmaWVyIHNvdXJjZUZyYW1lSUQsIGNvbnN0IFZlY3Rvcjxz
dGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiYgdGV4dEZpZWxkVmFsdWVzLCB1aW50NjRfdCBsaXN0
ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgV2ViRnJhbWVQcm94eSog
ZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0so
bV9wcm9jZXNzLCBmcmFtZSk7CkBAIC01MDAzLDEyICs1MDAzLDEyIEBAIHZvaWQgV2ViUGFnZVBy
b3h5Ojpjb250ZW50UnVsZUxpc3ROb3RpZmljYXRpb24oVVJMJiYgdXJsLCBDb250ZW50UnVsZUxp
c3RSZXN1bHRzCiAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5jb250ZW50UnVsZUxpc3ROb3RpZmlj
YXRpb24oKnRoaXMsIFdURk1vdmUodXJsKSwgV1RGTW92ZShyZXN1bHRzKSk7CiB9CiAgICAgCi12
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29uc3QgV2Vi
TmF2aWdhdGlvbkRhdGFTdG9yZSYgc3RvcmUsIHVpbnQ2NF90IGZyYW1lSUQpIAordm9pZCBXZWJQ
YWdlUHJveHk6OmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKGNvbnN0IFdlYk5hdmlnYXRp
b25EYXRhU3RvcmUmIHN0b3JlLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBkaWRO
YXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBzdG9y
ZSwgZnJhbWVJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWROYXZpZ2F0ZVdpdGhOYXZp
Z2F0aW9uRGF0YVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIGNvbnN0IFdl
Yk5hdmlnYXRpb25EYXRhU3RvcmUmIHN0b3JlLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQ
YWdlUHJveHk6OmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYgcHJvY2VzcywgY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYgc3RvcmUs
IEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
TG9hZGluZywgImRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkOiB3ZWJQSUQgPSAl
aSwgcGFnZUlEID0gJSIgUFJJdTY0LCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3Bh
Z2VJRC50b1VJbnQ2NCgpKTsKIApAQCAtNTAyMywxNCArNTAyMywxNCBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQoUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiBwcgogICAgIHByb2Nlc3MtPnByb2Nlc3NQb29sKCkuaGlzdG9yeUNsaWVudCgpLmRp
ZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKHByb2Nlc3MtPnByb2Nlc3NQb29sKCksICp0aGlz
LCBzdG9yZSwgKmZyYW1lKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGll
bnRSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBk
ZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5
OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcs
IGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlEKQogewogICAgIGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChtX3Byb2Nlc3MuY29w
eVJlZigpLCBzb3VyY2VVUkxTdHJpbmcsIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBmcmFtZUlEKTsK
IH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlE
KQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChSZWY8
V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5n
LCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRQZXJmb3Jt
Q2xpZW50UmVkaXJlY3RTaGFyZWQ6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdl
SUQudG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2Fk
aW5nLCAiZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkOiB3ZWJQSUQgPSAlaSwgcGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIHByb2Nlc3MtPnByb2Nlc3NJZGVu
dGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAKICAg
ICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC01MDUw
LDEyICs1MDUwLDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJl
Y3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzCiAgICAgcHJvY2Vzcy0+cHJv
Y2Vzc1Bvb2woKS5oaXN0b3J5Q2xpZW50KCkuZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KHByb2Nl
c3MtPnByb2Nlc3NQb29sKCksICp0aGlzLCBzb3VyY2VVUkxTdHJpbmcsIGRlc3RpbmF0aW9uVVJM
U3RyaW5nLCAqZnJhbWUpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZl
clJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRl
c3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6
OmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywg
Y29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQpCiB7CiAgICAgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0U2hhcmVkKG1fcHJvY2Vzcy5jb3B5
UmVmKCksIHNvdXJjZVVSTFN0cmluZywgZGVzdGluYXRpb25VUkxTdHJpbmcsIGZyYW1lSUQpOwog
fQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0U2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJp
bmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQp
Cit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0U2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcs
IGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlEKQogewogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZFBlcmZvcm1T
ZXJ2ZXJSZWRpcmVjdDogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCwgcHJvY2Vzcy0+
cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSk7CiAKQEAgLTUwNzYsNyAr
NTA3Niw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFy
ZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzCiAgICAgcHJvY2Vzcy0+cHJvY2Vzc1Bv
b2woKS5oaXN0b3J5Q2xpZW50KCkuZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KHByb2Nlc3MtPnBy
b2Nlc3NQb29sKCksICp0aGlzLCBzb3VyY2VVUkxTdHJpbmcsIGRlc3RpbmF0aW9uVVJMU3RyaW5n
LCAqZnJhbWUpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkVXBkYXRlSGlzdG9yeVRpdGxl
KGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgdXJsLCB1aW50NjRfdCBmcmFtZUlE
KQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFVwZGF0ZUhpc3RvcnlUaXRsZShjb25zdCBTdHJpbmcm
IHRpdGxlLCBjb25zdCBTdHJpbmcmIHVybCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAg
ICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNTE3
OCw3ICs1MTc4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNsb3NlUGFnZShib29sIHN0b3BSZXNw
b25zaXZlbmVzc1RpbWVyKQogICAgIG1fdWlDbGllbnQtPmNsb3NlKHRoaXMpOwogfQogCi12b2lk
IFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEFsZXJ0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdEFsZXJ0OjpEZWxheWVkUmVw
bHkmJiByZXBseSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmln
aW4sIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2
YVNjcmlwdEFsZXJ0OjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsKICAgICBXZWJGcmFtZVByb3h5
KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVD
SyhtX3Byb2Nlc3MsIGZyYW1lKTsKQEAgLTUxOTcsNyArNTE5Nyw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpydW5KYXZhU2NyaXB0QWxlcnQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlP
cmlnaW5EYXRhCiAgICAgbV91aUNsaWVudC0+cnVuSmF2YVNjcmlwdEFsZXJ0KHRoaXMsIG1lc3Nh
Z2UsIGZyYW1lLCBzZWN1cml0eU9yaWdpbiwgV1RGTW92ZShyZXBseSkpOwogfQogCi12b2lkIFdl
YlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdENvbmZpcm0odWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
U2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybTo6RGVsYXllZFJl
cGx5JiYgcmVwbHkpCit2b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlP
cmlnaW4sIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVu
SmF2YVNjcmlwdENvbmZpcm06OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQogewogICAgIFdlYkZyYW1l
UHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBNRVNTQUdF
X0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwpAQCAtNTIxNyw3ICs1MjE3LDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnJ1bkphdmFTY3JpcHRDb25maXJtKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNl
Y3VyaXR5T3JpZ2luRGEKICAgICBtX3VpQ2xpZW50LT5ydW5KYXZhU2NyaXB0Q29uZmlybSh0aGlz
LCBtZXNzYWdlLCBmcmFtZSwgc2VjdXJpdHlPcmlnaW4sIFdURk1vdmUocmVwbHkpKTsKIH0KIAot
dm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRQcm9tcHQodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6UnVuSmF2YVNjcmlwdFByb21wdDo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit2b2lkIFdlYlBh
Z2VQcm94eTo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29u
c3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
UnVuSmF2YVNjcmlwdFByb21wdDo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7CiAgICAgV2ViRnJh
bWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NB
R0VfQ0hFQ0sobV9wcm9jZXNzLCBmcmFtZSk7CkBAIC01Mzc2LDcgKzUzNzYsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6cm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3JlZW4oY29uc3QgSW50UmVjdCYg
dmlld1JlY3QsIENvbXBsZQogICAgIGNvbXBsZXRpb25IYW5kbGVyKHBhZ2VDbGllbnQoKS5yb290
Vmlld1RvQWNjZXNzaWJpbGl0eVNjcmVlbih2aWV3UmVjdCkpOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsOjpE
ZWxheWVkUmVwbHkmJiByZXBseSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpydW5CZWZvcmVVbmxvYWRD
b25maXJtUGFuZWwoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2lu
RGF0YSYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6UnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsOjpEZWxheWVkUmVwbHkmJiBy
ZXBseSkKIHsKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUo
ZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKQEAgLTU0MTYs
NyArNTQxNiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpwYWdlRGlkU2Nyb2xsKCkKICNlbmRpZgog
fQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cnVuT3BlblBhbmVsKHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgY29uc3QgRmlsZUNo
b29zZXJTZXR0aW5ncyYgc2V0dGluZ3MpCit2b2lkIFdlYlBhZ2VQcm94eTo6cnVuT3BlblBhbmVs
KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1l
U2VjdXJpdHlPcmlnaW4sIGNvbnN0IEZpbGVDaG9vc2VyU2V0dGluZ3MmIHNldHRpbmdzKQogewog
ICAgIGlmIChtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyKSB7CiAgICAgICAgIG1fb3BlblBhbmVs
UmVzdWx0TGlzdGVuZXItPmludmFsaWRhdGUoKTsKQEAgLTU0NTUsNyArNTQ1NSw3IEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpzaG93U2hhcmVTaGVldChjb25zdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJM
JiBzaGFyZURhdGEsIFNoYXJlCiAgICAgcGFnZUNsaWVudCgpLnNob3dTaGFyZVNoZWV0KHNoYXJl
RGF0YSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogICAgIAotdm9pZCBXZWJQYWdl
UHJveHk6OnByaW50RnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6OnByaW50RnJhbWUo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIW1faXNQZXJmb3JtaW5nRE9NUHJpbnRPcGVy
YXRpb24pOwogICAgIG1faXNQZXJmb3JtaW5nRE9NUHJpbnRPcGVyYXRpb24gPSB0cnVlOwpAQCAt
Njc2OSwyNyArNjc2OSwyNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cHJpbnRGaW5pc2hlZENhbGxi
YWNrKGNvbnN0IFJlc291cmNlRXJyb3ImIHByaW50RXJyb3IsIENhbGxiYQogfQogI2VuZGlmCiAK
LXZvaWQgV2ViUGFnZVByb3h5Ojpmb2N1c2VkRnJhbWVDaGFuZ2VkKHVpbnQ2NF90IGZyYW1lSUQp
Cit2b2lkIFdlYlBhZ2VQcm94eTo6Zm9jdXNlZEZyYW1lQ2hhbmdlZChjb25zdCBPcHRpb25hbDxG
cmFtZUlkZW50aWZpZXI+JiBmcmFtZUlEKQogewogICAgIGlmICghZnJhbWVJRCkgewogICAgICAg
ICBtX2ZvY3VzZWRGcmFtZSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7Cisg
ICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKCpmcmFtZUlEKTsK
ICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwogCiAgICAgbV9mb2N1c2VkRnJh
bWUgPSBmcmFtZTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmZyYW1lU2V0TGFyZ2VzdEZyYW1l
Q2hhbmdlZCh1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmZyYW1lU2V0TGFy
Z2VzdEZyYW1lQ2hhbmdlZChjb25zdCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+JiBmcmFtZUlE
KQogewogICAgIGlmICghZnJhbWVJRCkgewogICAgICAgICBtX2ZyYW1lU2V0TGFyZ2VzdEZyYW1l
ID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFdlYkZyYW1lUHJveHkq
IGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKKyAgICBXZWJGcmFtZVByb3h5
KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoKmZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hF
Q0sobV9wcm9jZXNzLCBmcmFtZSk7CiAKICAgICBtX2ZyYW1lU2V0TGFyZ2VzdEZyYW1lID0gZnJh
bWU7CkBAIC03MzQ1LDI2ICs3MzQ1LDI2IEBAIFdlYWtQdHI8U2VjS2V5UHJveHlTdG9yZT4gV2Vi
UGFnZVByb3h5OjpzZWNLZXlQcm94eVN0b3JlKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpCiAgICAg
cmV0dXJuIG51bGxwdHI7CiB9CiAgICAgCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkodWludDY0X3QsIFJlZjxBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZVByb3h5PiYmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKQordm9pZCBXZWJQYWdlUHJv
eHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5KEZyYW1lSWRlbnRpZmll
ciwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYgYXV0aGVudGljYXRpb25DaGFs
bGVuZ2UpCiB7CiAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRSZWNlaXZlQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UoKnRoaXMsIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmdldCgpKTsKIH0KIAot
dm9pZCBXZWJQYWdlUHJveHk6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSh1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VO
YW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVp
bnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2Us
IHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkV4Y2VlZGVk
RGF0YWJhc2VRdW90YTo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit2b2lkIFdlYlBhZ2VQcm94eTo6
ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJp
bmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBT
dHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJl
bnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4
cGVjdGVkVXNhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkV4Y2VlZGVkRGF0YWJhc2VRdW90
YTo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7CiAgICAgcmVxdWVzdFN0b3JhZ2VTcGFjZShmcmFt
ZUlELCBvcmlnaW5JZGVudGlmaWVyLCBkYXRhYmFzZU5hbWUsIGRpc3BsYXlOYW1lLCBjdXJyZW50
UXVvdGEsIGN1cnJlbnRPcmlnaW5Vc2FnZSwgY3VycmVudERhdGFiYXNlVXNhZ2UsIGV4cGVjdGVk
VXNhZ2UsIFtyZXBseSA9IFdURk1vdmUocmVwbHkpXShhdXRvIHF1b3RhKSBtdXRhYmxlIHsKICAg
ICAgICAgcmVwbHkocXVvdGEpOwogICAgIH0pOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVx
dWVzdFN0b3JhZ2VTcGFjZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdpbklk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3Bs
YXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2Fn
ZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2Us
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
dm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RTdG9yYWdlU3BhY2UoRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRh
YmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90
YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VV
c2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50
NjRfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RChTdG9yYWdlLCAicmVxdWVzdFN0b3JhZ2VTcGFjZSBmb3IgZnJhbWUgJSIgUFJJdTY0ICIsIGN1
cnJlbnQgcXVvdGEgJSIgUFJJdTY0ICIgY3VycmVudCB1c2FnZSAlIiBQUkl1NjQgIiBleHBlY3Rl
ZCB1c2FnZSAlIiBQUkl1NjQsIGZyYW1lSUQsIGN1cnJlbnRRdW90YSwgY3VycmVudERhdGFiYXNl
VXNhZ2UsIGV4cGVjdGVkVXNhZ2UpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoU3RvcmFn
ZSwgInJlcXVlc3RTdG9yYWdlU3BhY2UgZm9yIGZyYW1lICUiIFBSSXU2NCAiLCBjdXJyZW50IHF1
b3RhICUiIFBSSXU2NCAiIGN1cnJlbnQgdXNhZ2UgJSIgUFJJdTY0ICIgZXhwZWN0ZWQgdXNhZ2Ug
JSIgUFJJdTY0LCBmcmFtZUlELnRvVUludDY0KCksIGN1cnJlbnRRdW90YSwgY3VycmVudERhdGFi
YXNlVXNhZ2UsIGV4cGVjdGVkVXNhZ2UpOwogCiAgICAgU3RvcmFnZVJlcXVlc3RzOjpzaW5nbGV0
b24oKS5wcm9jZXNzT3JBcHBlbmQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgcGFnZVVSTCA9IGN1cnJlbnRVUkwoKSwgZnJhbWVJRCwgb3JpZ2luSWRlbnRpZmllciwgZGF0
YWJhc2VOYW1lLCBkaXNwbGF5TmFtZSwgY3VycmVudFF1b3RhLCBjdXJyZW50T3JpZ2luVXNhZ2Us
IGN1cnJlbnREYXRhYmFzZVVzYWdlLCBleHBlY3RlZFVzYWdlLCBjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewogICAgICAgICB0aGlzLT5t
YWtlU3RvcmFnZVNwYWNlUmVxdWVzdChmcmFtZUlELCBvcmlnaW5JZGVudGlmaWVyLCBkYXRhYmFz
ZU5hbWUsIGRpc3BsYXlOYW1lLCBjdXJyZW50UXVvdGEsIGN1cnJlbnRPcmlnaW5Vc2FnZSwgY3Vy
cmVudERhdGFiYXNlVXNhZ2UsIGV4cGVjdGVkVXNhZ2UsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
V1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgZnJhbWVJRCwgcGFnZVVSTCA9IFdURk1vdmUocGFnZVVS
TCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGN1cnJl
bnRRdW90YV0oYXV0byBxdW90YSkgbXV0YWJsZSB7CiAKLSAgICAgICAgICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoU3RvcmFnZSwgInJlcXVlc3RTdG9yYWdlU3BhY2UgcmVzcG9uc2UgZm9yIGZy
YW1lICUiIFBSSXU2NCAiLCBxdW90YSAlIiBQUkl1NjQsIGZyYW1lSUQsIHF1b3RhKTsKKyAgICAg
ICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoU3RvcmFnZSwgInJlcXVlc3RTdG9yYWdlU3Bh
Y2UgcmVzcG9uc2UgZm9yIGZyYW1lICUiIFBSSXU2NCAiLCBxdW90YSAlIiBQUkl1NjQsIGZyYW1l
SUQudG9VSW50NjQoKSwgcXVvdGEpOwogCiAgICAgICAgICAgICBpZiAocXVvdGEgPD0gY3VycmVu
dFF1b3RhICYmIHRoaXMtPmN1cnJlbnRVUkwoKSA9PSBwYWdlVVJMKSB7CiAgICAgICAgICAgICAg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChTdG9yYWdlLCAic3RvcmFnZSBzcGFjZSBpbmNyZWFz
ZSBkZW5pZWQiKTsKQEAgLTczNzYsNyArNzM3Niw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1
ZXN0U3RvcmFnZVNwYWNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRl
CiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjptYWtlU3RvcmFnZVNwYWNlUmVxdWVz
dCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRf
dCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3Vy
cmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQodWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJv
eHk6Om1ha2VTdG9yYWdlU3BhY2VSZXF1ZXN0KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25z
dCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBj
b25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90
IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2
NF90IGV4cGVjdGVkVXNhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChtX2lzUXVvdGFJbmNyZWFzZURlbmllZCkgewog
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjdXJyZW50UXVvdGEpOwpAQCAtNzQwMiw3ICs3NDAy
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVv
dGEoY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGkKICAgICBtX3VpQ2xpZW50LT5yZWFjaGVkQXBw
bGljYXRpb25DYWNoZU9yaWdpblF1b3RhKHRoaXMsIHNlY3VyaXR5T3JpZ2luLmdldCgpLCBjdXJy
ZW50UXVvdGEsIHRvdGFsQnl0ZXNOZWVkZWQsIFdURk1vdmUocmVwbHkpKTsKIH0KIAotdm9pZCBX
ZWJQYWdlUHJveHk6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRf
dCBnZW9sb2NhdGlvbklELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmll
cikKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJh
bWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmlu
ZyBvcmlnaW5JZGVudGlmaWVyKQogewogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9j
ZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJh
bWUpOwpAQCAtNzQ0Niw3ICs3NDQ2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldE1vY2tDYXB0
dXJlRGV2aWNlc0VuYWJsZWRPdmVycmlkZShPcHRpb25hbDxib29sPiBlbmFibGVkKQogfQogI2Vu
ZGlmCiAKLXZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZy
YW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmICB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRhdGEsIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEs
IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmIHJlcXVlc3QpCit2b2lkIFdlYlBhZ2VQcm94
eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJ
RCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYgIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luRGF0YSwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YSwgV2ViQ29yZTo6TWVkaWFT
dHJlYW1SZXF1ZXN0JiYgcmVxdWVzdCkKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAg
IE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpKTsK
QEAgLTc0NjEsNyArNzQ2MSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0VXNlck1lZGlh
UGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50CiAjZW5kaWYKIH0K
IAotdm9pZCBXZWJQYWdlUHJveHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2
NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luRGF0YSwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YSkKK3ZvaWQgV2Vi
UGFnZVByb3h5OjplbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVk
aWFJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5EYXRhLCBjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5EYXRhKQogewogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndl
YkZyYW1lKGZyYW1lSUQpOwpAQCAtNzQ5Myw3ICs3NDkzLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmNsZWFyVXNlck1lZGlhU3RhdGUoKQogfQogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElP
TikKLXZvaWQgV2ViUGFnZVByb3h5OjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYm
IG9yaWdpbkRhdGEsIGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKERldmlj
ZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBXZWJQYWdlUHJveHk6OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rp
b25BY2Nlc3MoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYmIG9yaWdpbkRhdGEsIGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFt
ZShmcmFtZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwpAQCAtODcz
Niw3ICs4NzM2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvYWRTeW5jaHJvbm91c1VSTFNjaGVt
ZVRhc2soVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJiBwYXJhbWUKIH0KIAogI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFN0b3Jh
Z2VBY2Nlc3NDb25maXJtKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9p
ZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BG
cmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbV91aUNsaWVudC0+cmVxdWVz
dFN0b3JhZ2VBY2Nlc3NDb25maXJtKCp0aGlzLCBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQp
LCBzdWJGcmFtZURvbWFpbiwgdG9wRnJhbWVEb21haW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYjQzODNj
YWY4OGYzNzI3MmNmOTQ3N2I2NDAzOWNlOWVmNWM5NDlhMS4uMjA3Njk1OTFhYzFlMzIyZjUxY2Rj
ZjUyMGU1YWNlZWIyZTNmOWNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKQEAgLTEwMTgsNyArMTAxOCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJ1bkphdmFTY3JpcHRJ
bk1haW5GcmFtZShjb25zdCBTdHJpbmcmLCBib29sLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKEFQSTo6
U2VyaWFsaXplZFNjcmlwdFZhbHVlKiwgYm9vbCBoYWRFeGNlcHRpb24sIGNvbnN0IFdlYkNvcmU6
OkV4Y2VwdGlvbkRldGFpbHMmLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0
aW9uKTsKICAgICB2b2lkIHJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZVNjcmlwdFdvcmxkKGNvbnN0
IFN0cmluZyYsIGJvb2wsIGNvbnN0IE9wdGlvbmFsPFN0cmluZz4mIHdvcmxkTmFtZSwgV1RGOjpG
dW5jdGlvbjx2b2lkKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiwgYm9vbCBoYWRFeGNlcHRp
b24sIGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHMmLCBDYWxsYmFja0Jhc2U6OkVycm9y
KT4mJiBjYWxsYmFja0Z1bmN0aW9uKTsKICAgICAvLyBGb3Igc3ViIGZyYW1lcy4KLSAgICB2b2lk
IHJ1bkphdmFTY3JpcHRJbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgc2Ny
aXB0LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIFdURjo6RnVuY3Rpb248dm9pZChBUEk6OlNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZSosIGJvb2wgaGFkRXhjZXB0aW9uLCBjb25zdCBXZWJDb3JlOjpFeGNl
cHRpb25EZXRhaWxzJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbik7
CisgICAgdm9pZCBydW5KYXZhU2NyaXB0SW5GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIFdURjo6RnVuY3Rp
b248dm9pZChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSosIGJvb2wgaGFkRXhjZXB0aW9uLCBj
b25zdCBXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYg
Y2FsbGJhY2tGdW5jdGlvbik7CiAgICAgdm9pZCBmb3JjZVJlcGFpbnQoUmVmUHRyPFZvaWRDYWxs
YmFjaz4mJik7CiAKICAgICBmbG9hdCBoZWFkZXJIZWlnaHQoV2ViRnJhbWVQcm94eSYpOwpAQCAt
MTE2MSw3ICsxMTYxLDcgQEAgcHVibGljOgogICAgIHZvaWQgZHJhd1JlY3RUb0ltYWdlKFdlYkZy
YW1lUHJveHkqLCBjb25zdCBQcmludEluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYsIFJlZjxJbWFnZUNhbGxiYWNrPiYmKTsKICAgICB2b2lkIGRy
YXdQYWdlc1RvUERGKFdlYkZyYW1lUHJveHkqLCBjb25zdCBQcmludEluZm8mLCB1aW50MzJfdCBm
aXJzdCwgdWludDMyX3QgY291bnQsIFJlZjxEYXRhQ2FsbGJhY2s+JiYpOwogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCi0gICAgdWludDMyX3QgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3
VG9QREYodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiwgRHJhd1RvUERGQ2FsbGJh
Y2s6OkNhbGxiYWNrRnVuY3Rpb24mJik7CisgICAgdWludDMyX3QgY29tcHV0ZVBhZ2VzRm9yUHJp
bnRpbmdBbmREcmF3VG9QREYoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmludElu
Zm8mLCBEcmF3VG9QREZDYWxsYmFjazo6Q2FsbGJhY2tGdW5jdGlvbiYmKTsKICAgICB2b2lkIGRy
YXdUb1BERkNhbGxiYWNrKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgcGRmRGF0YSwgV2ViS2l0
OjpDYWxsYmFja0lEKTsKICNlbmRpZgogI2VsaWYgUExBVEZPUk0oR1RLKQpAQCAtMTI1Miw3ICsx
MjUyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRV
bml0cyhjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSB2aWV3
cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCkgY29uc3QgeyByZXR1cm4gbV92aWV3cG9ydFNp
emVGb3JDU1NWaWV3cG9ydFVuaXRzLnZhbHVlT3IoV2ViQ29yZTo6SW50U2l6ZSgpKTsgfQogCi0g
ICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSh1aW50NjRfdCBm
cmFtZUlELCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJik7CisgICAgdm9pZCBk
aWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmKTsKIAogICAgIFNwZWxs
RG9jdW1lbnRUYWcgc3BlbGxEb2N1bWVudFRhZygpOwogCkBAIC0xNDUyLDEyICsxNDUyLDEyIEBA
IHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykK
LSAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShjb25zdCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0o
Y29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBk
aWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxlbnRSZXNvdXJj
ZSgpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQotICAgIHZvaWQg
c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh1aW50NjRfdCBmcmFt
ZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgYm9vbCBtYXlQcm9tcHQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1p
c3Npb25TdGF0ZSk+JiYpOworICAgIHZvaWQgc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFu
ZE1vdGlvbkFjY2VzcyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYmLCBib29sIG1heVByb21wdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlKT4mJik7CiAjZW5k
aWYKIAogICAgIHN0YXRpYyBXZWJQYWdlUHJveHkqIG5vbkVwaGVtZXJhbFdlYlBhZ2VQcm94eSgp
OwpAQCAtMTQ5OCwzMyArMTQ5OCwzMyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIFByb3Zpc2lv
bmFsUGFnZVByb3h5KiBwcm92aXNpb25hbFBhZ2VQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJv
dmlzaW9uYWxQYWdlLmdldCgpOyB9Ci0gICAgdm9pZCBjb21taXRQcm92aXNpb25hbFBhZ2UodWlu
dDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVU
eXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxv
YWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mLCBib29sIGNvbnRhaW5zUGx1
Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2Vk
SGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgY29tbWl0UHJv
dmlzaW9uYWxQYWdlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFBy
b3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0
ZUluZm8mLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhh
c0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0
YSYpOwogCiAgICAgLy8gTG9naWMgc2hhcmVkIGJldHdlZW4gdGhlIFdlYlBhZ2VQcm94eSBhbmQg
dGhlIFByb3Zpc2lvbmFsUGFnZVByb3h5LgotICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExv
YWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCB1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmLCBVUkwmJiB1bnJlYWNoYWJsZVVSTCwgY29u
c3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNo
YXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJE
YXRhJik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExv
YWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCB1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25z
dCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0U2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25z
dCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2
b2lkIGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
LCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlv
blVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWROYXZpZ2F0ZVdpdGhO
YXZpZ2F0aW9uRGF0YVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBXZWJOYXZp
Z2F0aW9uRGF0YVN0b3JlJiwgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRDaGFuZ2VQ
cm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVpbnQ2
NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOwotICAgIHZvaWQgZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZy
YW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwKKyAgICB2
b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IFVSTCYmLCBVUkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lk
IGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25z
dCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwg
V2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lk
IGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVXNlckRh
dGEmKTsKKyAgICB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJv
Y2Vzc1Byb3h5PiYmLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5n
JiBkZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2
b2lkIGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
LCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlv
blVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZE5hdmln
YXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0
IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAg
IHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgVVJMJiYpOworICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5j
U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLAogICAgICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYs
CiAgICAgICAgIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgdWlu
dDY0X3QgbGlzdGVuZXJJRCk7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJl
ZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciwKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3Jl
OjpQb2xpY3lDaGVja0lkZW50aWZpZXIsCiAgICAgICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0
cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQg
c3RhcnRVUkxTY2hlbWVUYXNrU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFVSTFNjaGVt
ZVRhc2tQYXJhbWV0ZXJzJiYpOwogICAgIHZvaWQgbG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJl
ZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBBUEk6Ok5hdmlnYXRpb24mLCBjb25zdCBJUEM6OkRh
dGFSZWZlcmVuY2UmLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29k
aW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29y
ZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNE
YXRhPiYmID0gV1RGOjpudWxsb3B0LCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5ID0gV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxs
b3cpOwogICAgIHZvaWQgbG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJv
Y2Vzc1Byb3h5PiYmLCBBUEk6Ok5hdmlnYXRpb24mLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
JiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgQVBJOjpPYmplY3QqIHVz
ZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9wdGlvbmFsPFdl
YnNpdGVQb2xpY2llc0RhdGE+JiYgPSBXVEY6Om51bGxvcHQpOwogICAgIHZvaWQgYmFja0Zvcndh
cmRHb1RvSXRlbVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBXZWJDb3JlOjpC
YWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGUmJik+JiYpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvblN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3QgZnJh
bWVJRCwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZp
Z2F0aW9uQWN0aW9uRGF0YSYmLAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvblN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwg
V2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5h
dmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKICAgICAgICAgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRh
JiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
blN5bmM6OkRlbGF5ZWRSZXBseSYmKTsKICNpZiBVU0UoUVVJQ0tfTE9PSykKICAgICB2b2lkIGRp
ZFJlcXVlc3RQYXNzd29yZEZvclF1aWNrTG9va0RvY3VtZW50SW5NYWluRnJhbWVTaGFyZWQoUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSk7CiAjZW5kaWYKICNp
ZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCi0gICAgdm9pZCBjb250ZW50RmlsdGVyRGlkQmxv
Y2tMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgV2ViQ29y
ZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiwgdWludDY0X3QgZnJhbWVJRCk7CisgICAg
dm9pZCBjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nl
c3NQcm94eT4mJiwgY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiwg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICNlbmRpZgogCiAgICAgdm9pZCBkdW1wQWRDbGlj
a0F0dHJpYnV0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJik+JiYpOwpA
QCAtMTU2MSw3ICsxNTYxLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRS
ZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1
bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKIAotICAgIHZvaWQgcmVxdWVzdFN0
b3JhZ2VTcGFjZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1l
LCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWlu
dDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIFdURjo6
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYpOworICAgIHZvaWQgcmVxdWVzdFN0
b3JhZ2VTcGFjZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb3JpZ2lu
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlz
cGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVz
YWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2Fn
ZSwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJik7CiAKICAgICBVUkwg
Y3VycmVudFJlc291cmNlRGlyZWN0b3J5VVJMKCkgY29uc3Q7CiAKQEAgLTE1ODEsNyArMTU4MSw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVUaHJvdHRsZVN0YXRlKCk7CiAgICAgdm9pZCB1
cGRhdGVIaWRkZW5QYWdlVGhyb3R0bGluZ0F1dG9JbmNyZWFzZXMoKTsKIAotICAgIGJvb2wgc3Vz
cGVuZEN1cnJlbnRQYWdlSWZQb3NzaWJsZShBUEk6Ok5hdmlnYXRpb24mLCBPcHRpb25hbDx1aW50
NjRfdD4gbWFpbkZyYW1lSUQsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFNob3VsZERl
bGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSk7CisgICAg
Ym9vbCBzdXNwZW5kQ3VycmVudFBhZ2VJZlBvc3NpYmxlKEFQSTo6TmF2aWdhdGlvbiYsIE9wdGlv
bmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gbWFpbkZyYW1lSUQsIFByb2Nlc3NTd2FwUmVx
dWVzdGVkQnlDbGllbnQsIFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nTW9kZSk7CiAKICAgICBlbnVtIGNsYXNzIFJlc2V0U3RhdGVSZWFzb24gewog
ICAgICAgICBQYWdlSW52YWxpZGF0ZWQsCkBAIC0xNjEwLDMyICsxNjEwLDMyIEBAIHByaXZhdGU6
CiAgICAgdm9pZCByZXF1ZXN0UG9pbnRlclVubG9jaygpOwogI2VuZGlmCiAKLSAgICB2b2lkIGRp
ZENyZWF0ZU1haW5GcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZENyZWF0ZVN1
YmZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkQ3JlYXRlV2luZG93KHVpbnQ2
NF90IGZyYW1lSUQsIFdlYkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXImJik7Ci0KLSAgICB2
b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVz
ZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25h
bExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgd2ls
bFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0
cmluZyYgdXJsLCBkb3VibGUgZGVsYXksIFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3QpOwot
ICAgIHZvaWQgZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
KTsKLSAgICB2b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJik7Ci0gICAgdm9pZCBkaWRGYWlsUHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
RXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYpOwot
ICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3Rv
bUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6
Q2VydGlmaWNhdGVJbmZvJiwgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxX
ZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgY29u
c3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEmKTsK
LSAgICB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRGYWlsTG9hZEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRTYW1l
RG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2
aWdhdGlvbklELCB1aW50MzJfdCBzYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgVVJMJiYsIGNv
bnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRDaGFuZ2VNYWluRG9jdW1lbnQodWludDY0X3Qg
ZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRFeHBsaWNpdE9wZW5Gb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBVUkwmJik7Ci0KLSAgICB2b2lkIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRG
aXJzdExheW91dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJik7Ci0g
ICAgdm9pZCBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29u
dGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9p
ZCBkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBV
c2VyRGF0YSYpOwotICAgIHZvaWQgZGlkRGV0ZWN0WFNTRm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZENyZWF0ZU1haW5GcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkQ3JlYXRlU3ViZnJhbWUoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZENyZWF0ZVdpbmRvdyhXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIFdlYkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXImJik7CisKKyAgICB2
b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmLCBVUkwmJiB1bnJlYWNoYWJsZVVSTCwg
Y29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVXNlckRhdGEm
KTsKKyAgICB2b2lkIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXJsLCBkb3VibGUgZGVsYXksIFdlYkNvcmU6
OkxvY2tCYWNrRm9yd2FyZExpc3QpOworICAgIHZvaWQgZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RG
b3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkQ2hhbmdlUHJv
dmlzaW9uYWxVUkxGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgVVJMJiYpOworICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0
IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBX
ZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQg
ZGlkQ29tbWl0TG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9t
Q29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpD
ZXJ0aWZpY2F0ZUluZm8mLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdl
YkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25z
dCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFVzZXJE
YXRhJik7CisgICAgdm9pZCBkaWRGaW5pc2hMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9p
ZCBkaWRGYWlsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgVXNlckRh
dGEmKTsKKyAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMyX3Qgc2FtZURv
Y3VtZW50TmF2aWdhdGlvblR5cGUsIFVSTCYmLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQg
ZGlkQ2hhbmdlTWFpbkRvY3VtZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9p
ZCBkaWRFeHBsaWNpdE9wZW5Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFVSTCYm
KTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkRmly
c3RMYXlvdXRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFVzZXJEYXRh
Jik7CisgICAgdm9pZCBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWREaXNw
bGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25z
dCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkRGV0
ZWN0WFNTRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBVc2VyRGF0YSYp
OwogICAgIHZvaWQgbWFpbkZyYW1lUGx1Z2luSGFuZGxlc1BhZ2VTY2FsZUdlc3R1cmVEaWRDaGFu
Z2UoYm9vbCk7Ci0gICAgdm9pZCBmcmFtZURpZEJlY29tZUZyYW1lU2V0KHVpbnQ2NF90IGZyYW1l
SUQsIGJvb2wpOworICAgIHZvaWQgZnJhbWVEaWRCZWNvbWVGcmFtZVNldChXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIGJvb2wpOwogICAgIHZvaWQgZGlkU3RhcnRQcm9ncmVzcygpOwogICAgIHZv
aWQgZGlkQ2hhbmdlUHJvZ3Jlc3MoZG91YmxlKTsKICAgICB2b2lkIGRpZEZpbmlzaFByb2dyZXNz
KCk7CkBAIC0xNjQ4LDM3ICsxNjQ4LDM3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkZyYW1lUHJv
eHkmLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAogICAgICAgICBGcmFtZUluZm9EYXRhJiYsIE9wdGlv
bmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAg
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2Vy
RGF0YSYsIFJlZjxQb2xpY3lEZWNpc2lvblNlbmRlcj4mJik7Ci0gICAgdm9pZCBkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmModWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAorICAgIHZvaWQgZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAogICAg
ICAgICBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBv
cmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5h
bFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJl
bmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiBy
ZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwot
ICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmModWludDY0X3QgZnJh
bWVJRCwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZp
Z2F0aW9uQWN0aW9uRGF0YSYmLAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvblN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBib29sIGlzTWFpbkZyYW1lLCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVy
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAg
IEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdp
bmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVx
dWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2Um
JiByZXF1ZXN0Qm9keSwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGly
ZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmKTsKLSAgICB2
b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JO
ZXdXaW5kb3dBY3Rpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIE5hdmln
YXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBj
b25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRh
dGEmKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNr
SWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELAorICAgIHZvaWQgZGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwKICAgICAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBj
b25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25z
dCBVc2VyRGF0YSYpOwotICAgIHZvaWQgdW5hYmxlVG9JbXBsZW1lbnRQb2xpY3kodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFVzZXJEYXRhJik7
CisgICAgdm9pZCB1bmFibGVUb0ltcGxlbWVudFBvbGljeShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0YSYpOwogICAg
IHZvaWQgYmVnaW5TYWZlQnJvd3NpbmdDaGVjayhjb25zdCBVUkwmLCBib29sLCBXZWJGcmFtZVBv
bGljeUxpc3RlbmVyUHJveHkmKTsKIAogICAgIFdlYkNvbnRlbnRNb2RlIGVmZmVjdGl2ZUNvbnRl
bnRNb2RlQWZ0ZXJBZGp1c3RpbmdQb2xpY2llcyhBUEk6OldlYnNpdGVQb2xpY2llcyYsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogCi0gICAgdm9pZCB3aWxsU3VibWl0Rm9ybSh1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBzb3VyY2VGcmFtZUlELCBjb25zdCBWZWN0b3I8c3Rk
OjpwYWlyPFN0cmluZywgU3RyaW5nPj4mIHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVu
ZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIHdpbGxTdWJtaXRGb3JtKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIHNvdXJjZUZyYW1lSUQs
IGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiYgdGV4dEZpZWxkVmFsdWVz
LCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwogCiAgICAgdm9pZCBjb250
ZW50UnVsZUxpc3ROb3RpZmljYXRpb24oVVJMJiYsIFdlYkNvcmU6OkNvbnRlbnRSdWxlTGlzdFJl
c3VsdHMmJik7CiAKICAgICAvLyBIaXN0b3J5IGNsaWVudAotICAgIHZvaWQgZGlkTmF2aWdhdGVX
aXRoTmF2aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYsIHVpbnQ2NF90
IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1
aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25z
dCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0
cmluZywgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRVcGRhdGVIaXN0b3J5VGl0bGUo
Y29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIHVpbnQ2NF90IGZyYW1lSUQp
OworICAgIHZvaWQgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdh
dGlvbkRhdGFTdG9yZSYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0
IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7
CisgICAgdm9pZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VV
UkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRVcGRhdGVIaXN0b3J5VGl0bGUoY29uc3QgU3Ry
aW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7
CiAKICAgICAvLyBVSSBjbGllbnQKICAgICB2b2lkIGNyZWF0ZU5ld1BhZ2UoY29uc3QgRnJhbWVJ
bmZvRGF0YSYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1Bh
Z2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVz
JiYsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0
ZU5ld1BhZ2U6OkRlbGF5ZWRSZXBseSYmKTsKICAgICB2b2lkIHNob3dQYWdlKCk7Ci0gICAgdm9p
ZCBydW5KYXZhU2NyaXB0QWxlcnQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
UnVuSmF2YVNjcmlwdEFsZXJ0OjpEZWxheWVkUmVwbHkmJik7Ci0gICAgdm9pZCBydW5KYXZhU2Ny
aXB0Q29uZmlybSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmLCBjb25zdCBTdHJpbmcmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2Ny
aXB0Q29uZmlybTo6RGVsYXllZFJlcGx5JiYpOwotICAgIHZvaWQgcnVuSmF2YVNjcmlwdFByb21w
dCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5K
YXZhU2NyaXB0UHJvbXB0OjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBydW5KYXZhU2NyaXB0
QWxlcnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZh
U2NyaXB0QWxlcnQ6OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIHJ1bkphdmFTY3JpcHRDb25m
aXJtKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNj
cmlwdENvbmZpcm06OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIHJ1bkphdmFTY3JpcHRQcm9t
cHQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0OjpEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBzZXRT
dGF0dXNUZXh0KGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1l
bnQoV2ViSGl0VGVzdFJlc3VsdERhdGEmJiwgdWludDMyX3QgbW9kaWZpZXJzLCBVc2VyRGF0YSYm
KTsKIApAQCAtMTcwMSwyMSArMTcwMSwyMSBAQCBwcml2YXRlOgogICAgIHZvaWQgcm9vdFZpZXdU
b1NjcmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB2aWV3UmVjdCwgTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6Um9vdFZpZXdUb1NjcmVlbjo6RGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgYWNj
ZXNzaWJpbGl0eVNjcmVlblRvUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcmVl
blBvaW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkludFBvaW50KT4mJik7CiAg
ICAgdm9pZCByb290Vmlld1RvQWNjZXNzaWJpbGl0eVNjcmVlbihjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiB2aWV3UmVjdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpJbnRSZWN0KT4m
Jik7Ci0gICAgdm9pZCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwodWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw6
OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsOjpEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBkaWRDaGFu
Z2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJik7
CiAgICAgdm9pZCBwYWdlRGlkU2Nyb2xsKCk7Ci0gICAgdm9pZCBydW5PcGVuUGFuZWwodWludDY0
X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgV2Vi
Q29yZTo6RmlsZUNob29zZXJTZXR0aW5ncyYpOworICAgIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwg
Y29uc3QgV2ViQ29yZTo6RmlsZUNob29zZXJTZXR0aW5ncyYpOwogICAgIHZvaWQgc2hvd1NoYXJl
U2hlZXQoY29uc3QgV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIFNoYXJlU2hlZXRD
YWxsYmFja0lEKTsKLSAgICB2b2lkIHByaW50RnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YSh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBj
dXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVu
dERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkV4Y2VlZGVkRGF0YWJhc2VRdW90YTo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQg
cHJpbnRGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CisgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
ZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50
UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFi
YXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkV4Y2VlZGVkRGF0YWJhc2VRdW90YTo6RGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgcmVhY2hl
ZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZp
ZXIsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgdG90YWxCeXRlc05lZWRlZCwgTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6UmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YTo6
RGVsYXllZFJlcGx5JiYpOwotICAgIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZv
ckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBv
cmlnaW5JZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25G
b3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKTsKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAg
ICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIHVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcigpOwogI2VuZGlmCi0gICAgdm9pZCByZXF1ZXN0VXNlck1lZGlh
UGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURvY3VtZW50T3Jp
Z2luSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYp
OwotICAgIHZvaWQgZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1l
ZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5EYXRhLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5EYXRhKTsKKyAgICB2b2lkIHJlcXVlc3RV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlh
U3RyZWFtUmVxdWVzdCYmKTsKKyAgICB2b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1l
KHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5EYXRhLCBj
b25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5E
YXRhKTsKICAgICB2b2lkIGJlZ2luTW9uaXRvcmluZ0NhcHR1cmVEZXZpY2VzKCk7CiAKICAgICB2
b2lkIHJ1bk1vZGFsKCk7CkBAIC0xODk1LDggKzE4OTUsOCBAQCBwcml2YXRlOgogICAgIHZvaWQg
cHJpbnRGaW5pc2hlZENhbGxiYWNrKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBDYWxs
YmFja0lEKTsKICNlbmRpZgogCi0gICAgdm9pZCBmb2N1c2VkRnJhbWVDaGFuZ2VkKHVpbnQ2NF90
IGZyYW1lSUQpOwotICAgIHZvaWQgZnJhbWVTZXRMYXJnZXN0RnJhbWVDaGFuZ2VkKHVpbnQ2NF90
IGZyYW1lSUQpOworICAgIHZvaWQgZm9jdXNlZEZyYW1lQ2hhbmdlZChjb25zdCBPcHRpb25hbDxX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+Jik7CisgICAgdm9pZCBmcmFtZVNldExhcmdlc3RGcmFt
ZUNoYW5nZWQoY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiYpOwogCiAg
ICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3RvbUNvbnRlbnRQcm92aWRlcihjb25z
dCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKTsK
IApAQCAtMTk5Nyw3ICsxOTk3LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgRU5BQkxFKENP
TlRFTlRfRklMVEVSSU5HKQotICAgIHZvaWQgY29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZy
YW1lKGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYsIHVpbnQ2NF90
IGZyYW1lSUQpOworICAgIHZvaWQgY29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKGNv
bnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcik7CiAjZW5kaWYKIAogICAgIHZvaWQgdHJ5UmVsb2FkQWZ0ZXJQcm9jZXNzVGVy
bWluYXRpb24oKTsKQEAgLTIxMTAsNyArMjExMCw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGJv
b2wgaXNJbkhhcmR3YXJlS2V5Ym9hcmRNb2RlKCk7CiAjZW5kaWYKIAotICAgIHZvaWQgbWFrZVN0
b3JhZ2VTcGFjZVJlcXVlc3QodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5J
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNw
bGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNh
Z2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdl
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJik7CisgICAgdm9pZCBtYWtlU3Rv
cmFnZVNwYWNlUmVxdWVzdChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
b3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmlu
ZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9y
aWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0
ZWRVc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYpOwogCiAgICAgV2Vh
a1B0cjxQYWdlQ2xpZW50PiBtX3BhZ2VDbGllbnQ7CiAgICAgUmVmPEFQSTo6UGFnZUNvbmZpZ3Vy
YXRpb24+IG1fY29uZmlndXJhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBlY2FkOTVlNDZiNTQzYWM5MTUwNDBlNjBlZjQw
NGJlZDY0MjY3MTYxLi4xNTg5MTllMzE2MDExZDY5OTQwZGQ5YjFlMmY3Y2NjMzFlYTRlNDNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CkBAIC0yNSw5ICsyNSw5IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgQ3JlYXRl
TmV3UGFnZShzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZv
RGF0YSwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlE
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdlYkNvcmU6OldpbmRv
d0ZlYXR1cmVzIHdpbmRvd0ZlYXR1cmVzLCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9u
RGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSkgLT4gKE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyPiBuZXdQYWdlSUQsIE9wdGlvbmFsPFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycz4gbmV3UGFnZVBhcmFtZXRlcnMpIFN5bmNocm9ub3VzCiAgICAgU2hvd1BhZ2UoKQogICAg
IENsb3NlUGFnZShib29sIHN0b3BSZXNwb25zaXZlbmVzc1RpbWVyKQotICAgIFJ1bkphdmFTY3Jp
cHRBbGVydCh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFN0cmluZyBtZXNzYWdlKSAtPiAoKSBTeW5jaHJvbm91
cwotICAgIFJ1bkphdmFTY3JpcHRDb25maXJtKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3Nh
Z2UpIC0+IChib29sIHJlc3VsdCkgU3luY2hyb25vdXMKLSAgICBSdW5KYXZhU2NyaXB0UHJvbXB0
KHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJh
bWVTZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBkZWZhdWx0VmFsdWUpIC0+
IChTdHJpbmcgcmVzdWx0KSBTeW5jaHJvbm91cworICAgIFJ1bkphdmFTY3JpcHRBbGVydChXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSkgLT4gKCkgU3luY2hy
b25vdXMKKyAgICBSdW5KYXZhU2NyaXB0Q29uZmlybShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5
T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSkgLT4gKGJvb2wgcmVzdWx0KSBTeW5jaHJvbm91cworICAg
IFJ1bkphdmFTY3JpcHRQcm9tcHQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgU3Ry
aW5nIG1lc3NhZ2UsIFN0cmluZyBkZWZhdWx0VmFsdWUpIC0+IChTdHJpbmcgcmVzdWx0KSBTeW5j
aHJvbm91cwogICAgIE1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KHN0cnVjdCBXZWJLaXQ6OldlYkhp
dFRlc3RSZXN1bHREYXRhIGhpdFRlc3RSZXN1bHREYXRhLCB1aW50MzJfdCBtb2RpZmllcnMsIFdl
YktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQ
SSkKQEAgLTQ3LDggKzQ3LDggQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBTZXRU
b29sVGlwKFN0cmluZyB0b29sVGlwKQogICAgIFNldEZvY3VzKGJvb2wgZm9jdXNlZCkKICAgICBU
YWtlRm9jdXModWludDMyX3QgZGlyZWN0aW9uKQotICAgIEZvY3VzZWRGcmFtZUNoYW5nZWQodWlu
dDY0X3QgZnJhbWVJRCkKLSAgICBGcmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQodWludDY0X3Qg
ZnJhbWVJRCkKKyAgICBGb2N1c2VkRnJhbWVDaGFuZ2VkKE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcj4gZnJhbWVJRCkKKyAgICBGcmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQoT3B0
aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKQogICAgIFNldFJlbmRlclRy
ZWVTaXplKHVpbnQ2NF90IHRyZWVTaXplKQogICAgIFNldFRvb2xiYXJzQXJlVmlzaWJsZShib29s
IHRvb2xiYXJzQXJlVmlzaWJsZSkKICAgICBHZXRUb29sYmFyc0FyZVZpc2libGUoKSAtPiAoYm9v
bCB0b29sYmFyc0FyZVZpc2libGUpIFN5bmNocm9ub3VzCkBAIC02OSwxMSArNjksMTEgQEAgbWVz
c2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBIaWRlVmFsaWRhdGlvbk1lc3NhZ2UoKQogI2Vu
ZGlmCiAKLSAgICBSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwodWludDY0X3QgZnJhbWVJRCwg
c3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBT
dHJpbmcgbWVzc2FnZSkgLT4gKGJvb2wgc2hvdWxkQ2xvc2UpIFN5bmNocm9ub3VzCisgICAgUnVu
QmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4s
IFN0cmluZyBtZXNzYWdlKSAtPiAoYm9vbCBzaG91bGRDbG9zZSkgU3luY2hyb25vdXMKICAgICBQ
YWdlRGlkU2Nyb2xsKCkKLSAgICBSdW5PcGVuUGFuZWwodWludDY0X3QgZnJhbWVJRCwgc3RydWN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBzdHJ1Y3Qg
V2ViQ29yZTo6RmlsZUNob29zZXJTZXR0aW5ncyBwYXJhbWV0ZXJzKQorICAgIFJ1bk9wZW5QYW5l
bChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBzdHJ1Y3QgV2ViQ29yZTo6RmlsZUNo
b29zZXJTZXR0aW5ncyBwYXJhbWV0ZXJzKQogICAgIFNob3dTaGFyZVNoZWV0KHN0cnVjdCBXZWJD
b3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJMIHNoYXJlRGF0YSwgdWludDY0X3QgY2FsbGJhY2tJ
RCkKLSAgICBQcmludEZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpIC0+ICgpIFN5bmNocm9ub3VzCisg
ICAgUHJpbnRGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkgLT4gKCkgU3lu
Y2hyb25vdXMKICAgICBSdW5Nb2RhbCgpCiAgICAgTm90aWZ5U2Nyb2xsZXJUaHVtYklzVmlzaWJs
ZUluUmVjdChXZWJDb3JlOjpJbnRSZWN0IHNjcm9sbGVyVGh1bWIpCiAgICAgUmVjb21tZW5kZWRT
Y3JvbGxiYXJTdHlsZURpZENoYW5nZShpbnQzMl90IG5ld1N0eWxlKQpAQCAtMTAzLDExICsxMDMs
MTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgogCiAgICAgIyBQb2xpY3kg
bWVzc2FnZXMKLSAgICBEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1aW50NjRfdCBmcmFtZUlELCBz
dHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBTdHJp
bmcgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRh
dGEgdXNlckRhdGEpCi0gICAgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKHVp
bnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNr
SWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0
aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJ
bmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9y
aWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9y
bURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVk
aXJlY3RSZXNwb25zZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVu
ZXJJRCkKLSAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyh1aW50NjRfdCBm
cmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBw
b2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktp
dDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJL
aXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0
LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpIC0+IChX
ZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCBlbnVt
OnVpbnQ4X3QgV2ViQ29yZTo6UG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgdWludDY0X3QgbmV3
TmF2aWdhdGlvbklELCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgT3B0aW9uYWw8V2Vi
S2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9saWNpZXMpIFN5bmNocm9ub3VzCi0g
ICAgRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVj
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgc3RydWN0IFdl
YktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0
ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIFVuYWJsZVRvSW1wbGVtZW50
UG9saWN5KHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdl
YktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlm
aWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVx
dWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIFN0cmluZyBkb3dubG9hZEF0dHJpYnV0ZSwgdWlu
dDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9y
aWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmll
ciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9u
RGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBv
cmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
PiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVx
dWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZl
cmVuY2UgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNw
b25zZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKKyAg
ICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVj
dCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBzdHJ1
Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgT3B0aW9u
YWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRh
KSAtPiAoV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmll
ciwgZW51bTp1aW50OF90IFdlYkNvcmU6OlBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIHVpbnQ2
NF90IG5ld05hdmlnYXRpb25JRCwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIE9wdGlv
bmFsPFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0YT4gd2Vic2l0ZVBvbGljaWVzKSBTeW5jaHJv
bm91cworICAgIERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFt
ZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hl
Y2tJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0
aW9uQWN0aW9uRGF0YSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBm
cmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEp
CisgICAgVW5hYmxlVG9JbXBsZW1lbnRQb2xpY3koV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6VXNlckRhdGEgdXNl
ckRhdGEpCiAKICAgICAjIFByb2dyZXNzIG1lc3NhZ2VzCiAgICAgRGlkQ2hhbmdlUHJvZ3Jlc3Mo
ZG91YmxlIHZhbHVlKQpAQCAtMTE3LDUxICsxMTcsNTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVBy
b3h5IHsKICAgICBTZXROZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzKGJvb2wgbmV0d29ya1JlcXVl
c3RzSW5Qcm9ncmVzcykKIAogICAgICMgRnJhbWUgbGlmZXRpbWUgbWVzc2FnZXMKLSAgICBEaWRD
cmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJRCkKLSAgICBEaWRDcmVhdGVTdWJmcmFtZSh1
aW50NjRfdCBmcmFtZUlEKQorICAgIERpZENyZWF0ZU1haW5GcmFtZShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCkKKyAgICBEaWRDcmVhdGVTdWJmcmFtZShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCkKIAotICAgIERpZENyZWF0ZVdpbmRvdyh1aW50NjRfdCBmcmFtZUlE
LCBzdHJ1Y3QgV2ViQ29yZTo6R2xvYmFsV2luZG93SWRlbnRpZmllciB3aW5kb3dJZGVudGlmaWVy
KQorICAgIERpZENyZWF0ZVdpbmRvdyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
c3RydWN0IFdlYkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXIgd2luZG93SWRlbnRpZmllcikK
IAogICAgICMgRnJhbWUgbG9hZCBtZXNzYWdlcwotICAgIERpZFN0YXJ0UHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwgdXJs
LCBVUkwgdW5yZWFjaGFibGVVUkwsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlk
UmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBXaWxsUGVyZm9ybUNsaWVu
dFJlZGlyZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHVybCwgZG91YmxlIGRl
bGF5LCBlbnVtOmJvb2wgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0Zvcndh
cmRMaXN0KQotICAgIERpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCkKLSAgICBEaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMIHVybCkKLSAgICBEaWRGYWlsUHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFN0
cmluZyBwcm92aXNpb25hbFVSTCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgZW51bTpi
b29sIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcgd2lsbENvbnRpbnVlTG9hZGluZywgV2Vi
S2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBTdHJpbmcgbWltZVR5cGUsIGJvb2wg
aGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBsb2FkVHlwZSwgV2ViQ29yZTo6Q2Vy
dGlmaWNhdGVJbmZvIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50
LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJl
Q29udGVudCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWRGYWlsTG9hZEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciBlcnJvciwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWRGaW5p
c2hEb2N1bWVudExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlkRmluaXNoTG9hZEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViS2l0OjpVc2Vy
RGF0YSB1c2VyRGF0YSkKLSAgICBEaWRGaXJzdExheW91dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlkRmlyc3RWaXN1YWxseU5vbkVt
cHR5TGF5b3V0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2Vy
RGF0YSkKKyAgICBEaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCB1cmwsIFVSTCB1
bnJlYWNoYWJsZVVSTCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWRSZWNlaXZl
U2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBXaWxsUGVy
Zm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIFN0cmluZyB1cmwsIGRvdWJsZSBkZWxheSwgZW51bTpib29sIFdlYkNvcmU6OkxvY2tCYWNr
Rm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCkKKyAgICBEaWRDYW5jZWxDbGllbnRSZWRp
cmVjdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQorICAgIERpZENo
YW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMIHVybCkKKyAgICBEaWRGYWlsUHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBTdHJpbmcgcHJvdmlzaW9uYWxVUkwsIFdlYkNvcmU6OlJlc291cmNlRXJy
b3IgZXJyb3IsIGVudW06Ym9vbCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250
aW51ZUxvYWRpbmcsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkQ29tbWl0TG9h
ZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIFN0cmluZyBtaW1lVHlwZSwgYm9vbCBoYXNDdXN0b21Db250ZW50UHJvdmlkZXIs
IHVpbnQzMl90IGxvYWRUeXBlLCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGVJ
bmZvLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0lu
c2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBXZWJLaXQ6OlVzZXJEYXRh
IHVzZXJEYXRhKQorICAgIERpZEZhaWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciBlcnJvciwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWRGaW5pc2hEb2N1bWVu
dExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZEZpbmlzaExv
YWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZEZpcnN0TGF5b3V0
Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYktpdDo6VXNlckRh
dGEgdXNlckRhdGEpCisgICAgRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRh
dGEpCiAgICAgRGlkUmVhY2hMYXlvdXRNaWxlc3RvbmUoT3B0aW9uU2V0PFdlYkNvcmU6OkxheW91
dE1pbGVzdG9uZT4gbGF5b3V0TWlsZXN0b25lcykKLSAgICBEaWRSZWNlaXZlVGl0bGVGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgdGl0bGUsIFdlYktpdDo6VXNlckRhdGEgdXNlckRh
dGEpCi0gICAgRGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlkUnVuSW5zZWN1cmVDb250ZW50
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAg
ICBEaWREZXRlY3RYU1NGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6OlVzZXJEYXRh
IHVzZXJEYXRhKQotICAgIERpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQzMl90IHR5cGUsIFVSTCB1cmws
IFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlkQ2hhbmdlTWFpbkRvY3VtZW50KHVp
bnQ2NF90IGZyYW1lSUQpCi0gICAgRGlkRXhwbGljaXRPcGVuRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgVVJMIHVybCkKKyAgICBEaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIHRpdGxlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJE
YXRhKQorICAgIERpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWRS
dW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWREZXRlY3RYU1NGb3JGcmFtZShX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0
YSkKKyAgICBEaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMyX3QgdHlwZSwg
VVJMIHVybCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWRDaGFuZ2VNYWluRG9j
dW1lbnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCisgICAgRGlkRXhwbGljaXRP
cGVuRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFVSTCB1cmwpCiAg
ICAgRGlkRGVzdHJveU5hdmlnYXRpb24odWludDY0X3QgbmF2aWdhdGlvbklEKQogCiAgICAgSGFz
SW5zZWN1cmVDb250ZW50KCkgLT4gKGVudW06Ym9vbCBXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRl
bnQgaGFzSW5zZWN1cmVDb250ZW50KSBTeW5jaHJvbm91cwogCiAgICAgTWFpbkZyYW1lUGx1Z2lu
SGFuZGxlc1BhZ2VTY2FsZUdlc3R1cmVEaWRDaGFuZ2UoYm9vbCBtYWluRnJhbWVQbHVnaW5IYW5k
bGVzUGFnZVNjYWxlR2VzdHVyZSkKIAotICAgIEZyYW1lRGlkQmVjb21lRnJhbWVTZXQodWludDY0
X3QgZnJhbWVJRCwgYm9vbCB2YWx1ZSkKKyAgICBGcmFtZURpZEJlY29tZUZyYW1lU2V0KFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIHZhbHVlKQogCiAgICAgIyBIaXN0b3J5
IGNsaWVudCBtZXNzYWdlcy4KLSAgICBEaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShzdHJ1
Y3QgV2ViS2l0OjpXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlIHN0b3JlLCB1aW50NjRfdCBmcmFtZUlE
KQotICAgIERpZFBlcmZvcm1DbGllbnRSZWRpcmVjdChTdHJpbmcgc291cmNlVVJMU3RyaW5nLCBT
dHJpbmcgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpCi0gICAgRGlkUGVy
Zm9ybVNlcnZlclJlZGlyZWN0KFN0cmluZyBzb3VyY2VVUkxTdHJpbmcsIFN0cmluZyBkZXN0aW5h
dGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCkKLSAgICBEaWRVcGRhdGVIaXN0b3J5VGl0
bGUoU3RyaW5nIHRpdGxlLCBTdHJpbmcgdXJsLCB1aW50NjRfdCBmcmFtZUlEKQorICAgIERpZE5h
dmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKHN0cnVjdCBXZWJLaXQ6OldlYk5hdmlnYXRpb25EYXRh
U3RvcmUgc3RvcmUsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQorICAgIERpZFBl
cmZvcm1DbGllbnRSZWRpcmVjdChTdHJpbmcgc291cmNlVVJMU3RyaW5nLCBTdHJpbmcgZGVzdGlu
YXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQorICAgIERp
ZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChTdHJpbmcgc291cmNlVVJMU3RyaW5nLCBTdHJpbmcgZGVz
dGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQorICAg
IERpZFVwZGF0ZUhpc3RvcnlUaXRsZShTdHJpbmcgdGl0bGUsIFN0cmluZyB1cmwsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogCiAgICAgIyBDdXN0b20gcmVwcmVzZW50YXRpb25z
CiAgICAgRGlkRmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0b21Db250ZW50UHJvdmlkZXIoU3RyaW5n
IHN1Z2dlc3RlZEZpbGVuYW1lLCBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkKIAogICAgICMgRm9y
bXMgbWVzc2FnZXMKLSAgICBXaWxsU3VibWl0Rm9ybSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRf
dCBzb3VyY2VGcmFtZUlELCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4gdGV4dEZp
ZWxkVmFsdWVzLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRh
KQorICAgIFdpbGxTdWJtaXRGb3JtKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgc291cmNlRnJhbWVJRCwgVmVjdG9yPHN0ZDo6cGFpcjxT
dHJpbmcsIFN0cmluZz4+IHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgV2Vi
S2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKIAogICAgICMgQ2FsbGJhY2sgbWVzc2FnZXMKICAgICBW
b2lkQ2FsbGJhY2soV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCkBAIC0yNzUsMTggKzI3
NSwxOCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2VuZGlmCiAKICAgICAjIERhdGFi
YXNlIG1lc3NhZ2VzCi0gICAgRXhjZWVkZWREYXRhYmFzZVF1b3RhKHVpbnQ2NF90IGZyYW1lSUQs
IFN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCBTdHJpbmcgZGF0YWJhc2VOYW1lLCBTdHJpbmcgZGF0
YWJhc2VEaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50
T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBl
Y3RlZFVzYWdlKSAtPiAodWludDY0X3QgbmV3UXVvdGEpIFN5bmNocm9ub3VzCisgICAgRXhjZWVk
ZWREYXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcg
b3JpZ2luSWRlbnRpZmllciwgU3RyaW5nIGRhdGFiYXNlTmFtZSwgU3RyaW5nIGRhdGFiYXNlRGlz
cGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVz
YWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2Fn
ZSkgLT4gKHVpbnQ2NF90IG5ld1F1b3RhKSBTeW5jaHJvbm91cwogCiAgICAgIyBBcHBsaWNhdGlv
biBjYWNoZSBtZXNzYWdlcwogICAgIFJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEo
U3RyaW5nIG9yaWdpbklkZW50aWZpZXIsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3Qg
dG90YWxCeXRlc05lZWRlZCkgLT4gKHVpbnQ2NF90IG5ld1F1b3RhKSBTeW5jaHJvbm91cwogCiAg
ICAgIyBHZW9sb2NhdGlvbiBtZXNzYWdlcwotICAgIFJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Np
b25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCB1aW50NjRfdCBmcmFtZUlELCBTdHJp
bmcgb3JpZ2luSWRlbnRpZmllcikKKyAgICBSZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9y
RnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQogICAgIAogI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAgICAgIyBNZWRpYVN0ZWFtIG1lc3NhZ2VzCi0gICAgUmVxdWVzdFVzZXJNZWRpYVBl
cm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwg
c3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
bklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wTGV2ZWxE
b2N1bWVudE9yaWdpbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVl
c3QgcmVxdWVzdCkKLSAgICBFbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50NjRfdCB1
c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIpCisg
ICAgUmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJ
RCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBzdHJ1Y3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlm
aWVyLCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0IHJlcXVlc3QpCisgICAgRW51
bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllcikKICAgICBC
ZWdpbk1vbml0b3JpbmdDYXB0dXJlRGV2aWNlcygpCiAjZW5kaWYKIApAQCAtNDczLDcgKzQ3Myw3
IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShDT05U
RU5UX0ZJTFRFUklORykKLSAgICBDb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWUoV2Vi
Q29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyIHVuYmxvY2tIYW5kbGVyLCB1aW50NjRf
dCBmcmFtZUlEKQorICAgIENvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShXZWJDb3Jl
OjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIgdW5ibG9ja0hhbmRsZXIsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlEKQogI2VuZGlmCiAKICAgICBJc1BsYXlpbmdNZWRpYURpZENo
YW5nZSh1bnNpZ25lZCBzdGF0ZSwgdWludDY0X3Qgc291cmNlRWxlbWVudElEKQpAQCAtNTM5LDcg
KzUzOSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgTG9hZFN5bmNocm9ub3Vz
VVJMU2NoZW1lVGFzayhzdHJ1Y3QgV2ViS2l0OjpVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyBwYXJh
bWV0ZXJzKSAtPiAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciBlcnJvciwgVmVjdG9yPGNoYXI+IGRhdGEpIFN5bmNocm9ub3VzCiAKICNp
ZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQotICAgIFNob3VsZEFsbG93RGV2aWNlT3JpZW50
YXRpb25BbmRNb3Rpb25BY2Nlc3ModWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4sIGJvb2wgbWF5UHJvbXB0KSAtPiAoZW51bTp1aW50OF90
IFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUgcGVybWlz
c2lvblN0YXRlKSBBc3luYworICAgIFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rp
b25BY2Nlc3MoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luLCBib29sIG1heVByb21wdCkgLT4gKGVudW06dWlu
dDhfdCBXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlIHBl
cm1pc3Npb25TdGF0ZSkgQXN5bmMKICNlbmRpZgogCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxF
TUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4
IGUxNjkxMzdmNTM4OWQzMGJiOGIxMWIzYThlMWY1MGNhNDNhYTA2ZWQuLjk1YjU4NjM5ZjNjNDBj
YzYzMDBhNDRmMmMwNDQ5ZWZmZWY4YWQxMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtODI3LDI1ICs4MjcsMjUgQEAgdm9pZCBXZWJQcm9jZXNz
UHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqIGxhdW5jaGVyLCBJUEM6
OkNvbm5lY3QKICNlbmRpZgogfQogCi1XZWJGcmFtZVByb3h5KiBXZWJQcm9jZXNzUHJveHk6Ondl
YkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpIGNvbnN0CitXZWJGcmFtZVByb3h5KiBXZWJQcm9jZXNz
UHJveHk6OndlYkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSBjb25zdAogewogICAgIGlm
ICghV2ViRnJhbWVQcm94eU1hcDo6aXNWYWxpZEtleShmcmFtZUlEKSkKLSAgICAgICAgcmV0dXJu
IDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgcmV0dXJuIG1fZnJhbWVNYXAuZ2V0
KGZyYW1lSUQpOwogfQogCi1ib29sIFdlYlByb2Nlc3NQcm94eTo6Y2FuQ3JlYXRlRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCkgY29uc3QKK2Jvb2wgV2ViUHJvY2Vzc1Byb3h5OjpjYW5DcmVhdGVGcmFt
ZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkgY29uc3QKIHsKICAgICByZXR1cm4gV2ViRnJhbWVQ
cm94eU1hcDo6aXNWYWxpZEtleShmcmFtZUlEKSAmJiAhbV9mcmFtZU1hcC5jb250YWlucyhmcmFt
ZUlEKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmZyYW1lQ3JlYXRlZCh1aW50NjRfdCBm
cmFtZUlELCBXZWJGcmFtZVByb3h5JiBmcmFtZVByb3h5KQordm9pZCBXZWJQcm9jZXNzUHJveHk6
OmZyYW1lQ3JlYXRlZChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViRnJhbWVQcm94eSYgZnJh
bWVQcm94eSkKIHsKICAgICBtX2ZyYW1lTWFwLnNldChmcmFtZUlELCAmZnJhbWVQcm94eSk7CiB9
CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWREZXN0cm95RnJhbWUodWludDY0X3QgZnJhbWVJ
RCkKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWREZXN0cm95RnJhbWUoRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQpCiB7CiAgICAgLy8gSWYgdGhlIHBhZ2UgaXMgY2xvc2VkIGJlZm9yZSBpdCBoYXMg
aGFkIHRoZSBjaGFuY2UgdG8gc2VuZCB0aGUgRGlkQ3JlYXRlTWFpbkZyYW1lIG1lc3NhZ2UKICAg
ICAvLyBiYWNrIHRvIHRoZSBVSVByb2Nlc3MsIHRoZW4gdGhlIGZyYW1lRGVzdHJveWVkIG1lc3Nh
Z2Ugd2lsbCBzdGlsbCBiZSByZWNlaXZlZCBiZWNhdXNlIGl0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDMwMDk2ZGQzMDg1NDhiODkwNDljODM1MTBlZWE3
MWJiMDU5NzZmZmMuLjE4ZjQ4ODBhMGJiMmQ0ZDgzZDJmYjZjNTk3Yzg3YzdjZGQ2ZWM4OTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0zOCw2ICszOCw3
IEBACiAjaW5jbHVkZSAiVmlzaWJsZVdlYlBhZ2VDb3VudGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2Vz
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZXNz
YWdlUG9ydElkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+
CkBAIC05Nyw3ICs5OCw3IEBAIGVudW0gY2xhc3MgQWxsb3dQcm9jZXNzQ2FjaGluZyB7IE5vLCBZ
ZXMgfTsKIAogY2xhc3MgV2ViUHJvY2Vzc1Byb3h5IDogcHVibGljIEF1eGlsaWFyeVByb2Nlc3NQ
cm94eSwgcHVibGljIFJlc3BvbnNpdmVuZXNzVGltZXI6OkNsaWVudCwgcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPFdlYlByb2Nlc3NQcm94eT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxXZWJQ
cm9jZXNzUHJveHk+LCBwcml2YXRlIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQgewogcHVibGljOgot
ICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYkZyYW1lUHJveHk+PiBXZWJG
cmFtZVByb3h5TWFwOworICAgIHR5cGVkZWYgSGFzaE1hcDxXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIFJlZlB0cjxXZWJGcmFtZVByb3h5Pj4gV2ViRnJhbWVQcm94eU1hcDsKICAgICB0eXBlZGVm
IEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYlBhZ2VQcm94eSo+IFdlYlBhZ2VQ
cm94eU1hcDsKICAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxBUEk6OlVzZXJJ
bml0aWF0ZWRBY3Rpb24+PiBVc2VySW5pdGlhdGVkQWN0aW9uTWFwOwogCkBAIC0xNjQsOSArMTY1
LDkgQEAgcHVibGljOgogICAgIFJlc3BvbnNpdmVuZXNzVGltZXImIHJlc3BvbnNpdmVuZXNzVGlt
ZXIoKSB7IHJldHVybiBtX3Jlc3BvbnNpdmVuZXNzVGltZXI7IH0KICAgICBib29sIGlzUmVzcG9u
c2l2ZSgpIGNvbnN0OwogCi0gICAgV2ViRnJhbWVQcm94eSogd2ViRnJhbWUodWludDY0X3QpIGNv
bnN0OwotICAgIGJvb2wgY2FuQ3JlYXRlRnJhbWUodWludDY0X3QgZnJhbWVJRCkgY29uc3Q7Ci0g
ICAgdm9pZCBmcmFtZUNyZWF0ZWQodWludDY0X3QsIFdlYkZyYW1lUHJveHkmKTsKKyAgICBXZWJG
cmFtZVByb3h5KiB3ZWJGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpIGNvbnN0OworICAg
IGJvb2wgY2FuQ3JlYXRlRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKSBjb25zdDsKKyAg
ICB2b2lkIGZyYW1lQ3JlYXRlZChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkZyYW1lUHJv
eHkmKTsKICAgICB2b2lkIGRpc2Nvbm5lY3RGcmFtZXNGcm9tUGFnZShXZWJQYWdlUHJveHkqKTsg
Ly8gSW5jbHVkaW5nIG1haW4gZnJhbWUuCiAgICAgc2l6ZV90IGZyYW1lQ291bnRJblBhZ2UoV2Vi
UGFnZVByb3h5KikgY29uc3Q7IC8vIEluY2x1ZGluZyBtYWluIGZyYW1lLgogCkBAIC0zMzUsNyAr
MzM2LDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICAvLyBJUEMgbWVzc2FnZSBoYW5kbGVy
cy4KICAgICB2b2lkIHVwZGF0ZUJhY2tGb3J3YXJkSXRlbShjb25zdCBCYWNrRm9yd2FyZExpc3RJ
dGVtU3RhdGUmKTsKLSAgICB2b2lkIGRpZERlc3Ryb3lGcmFtZSh1aW50NjRfdCk7CisgICAgdm9p
ZCBkaWREZXN0cm95RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICAgICB2b2lkIGRp
ZERlc3Ryb3lVc2VyR2VzdHVyZVRva2VuKHVpbnQ2NF90KTsKIAogICAgIGJvb2wgY2FuQmVBZGRl
ZFRvV2ViUHJvY2Vzc0NhY2hlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZjNkNWU5MzFlNmRlZTkwMmE0
YWM1ZTVmYzViMTBkZDQ2MTViMTVkMC4uMzJiYWZlYTllMTA5NThjMjVjZDE5NGRhMTg0NTM2YWQw
OTNmNzUyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbgpAQCAtMjIsNyArMjIsNyBAQAogCiBtZXNzYWdlcyAtPiBXZWJQcm9j
ZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogICAgIFVwZGF0ZUJhY2tGb3J3YXJkSXRlbShzdHJ1
Y3QgV2ViS2l0OjpCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUgYmFja0ZvcndhcmRMaXN0SXRlbVN0
YXRlKQotICAgIERpZERlc3Ryb3lGcmFtZSh1aW50NjRfdCBmcmFtZUlEKSAKKyAgICBEaWREZXN0
cm95RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIAogCiAgICAgRGlkRGVz
dHJveVVzZXJHZXN0dXJlVG9rZW4odWludDY0X3QgdXNlckdlc3R1cmVUb2tlbklEKSAKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQppbmRleCA2ODExZTg3
YTRhNDIxMDA1YmQ5NGE3YWMyMTY1NDNlY2MwMGE3N2ZjLi5jMjk5MjE0NThhZjAxZmQ5N2E0MDA5
MmM3MTNmNjdjNDFmZjc3ZTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlldy5tbQpAQCAtNzAxLDkgKzcwMSw5IEBAIC0gKE5TVUludGVnZXIpX3drX3BhZ2VD
b3VudEZvclByaW50Rm9ybWF0dGVyOihfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIgKilwcmludEZv
CiAgICAgaWYgKF9pc1ByaW50aW5nVG9QREYpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgdWlu
dDY0X3QgZnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRDsKICAg
ICBpZiAoX1dLRnJhbWVIYW5kbGUgKmhhbmRsZSA9IHByaW50Rm9ybWF0dGVyLmZyYW1lVG9Qcmlu
dCkKLSAgICAgICAgZnJhbWVJRCA9IGhhbmRsZS5fZnJhbWVJRDsKKyAgICAgICAgZnJhbWVJRCA9
IFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRChoYW5kbGUuX2ZyYW1lSUQpOwogICAgIGVs
c2UgaWYgKGF1dG8gbWFpbkZyYW1lID0gX3BhZ2UtPm1haW5GcmFtZSgpKQogICAgICAgICBmcmFt
ZUlEID0gbWFpbkZyYW1lLT5mcmFtZUlEKCk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggYjAyODI0ODkyMDAzYTA0OTg5
MjllNzA2YTU5MDQ1OWE0Zjg3MWFjZC4uODJkMzU0MjE3YjcwNjQyMDFlM2Q3YjA3NmU1YjA1OWI5
NjAxMWNmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQ
cm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5
SU9TLm1tCkBAIC0xMDY2LDcgKzEwNjYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlU21h
cnRNYWduaWZpY2F0aW9uSW5mb3JtYXRpb25Gb3JQb3RlbnRpYWxUYXAodWludDY0X3QgcgogICAg
IHBhZ2VDbGllbnQoKS5oYW5kbGVTbWFydE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbkZvclBvdGVu
dGlhbFRhcChyZXF1ZXN0SUQsIHJlbmRlclJlY3QsIGZpdEVudGlyZVJlY3QsIHZpZXdwb3J0TWlu
aW11bVNjYWxlLCB2aWV3cG9ydE1heGltdW1TY2FsZSk7CiB9CiAKLXVpbnQzMl90IFdlYlBhZ2VQ
cm94eTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYodWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIERyYXdUb1BERkNhbGxiYWNrOjpDYWxsYmFj
a0Z1bmN0aW9uJiYgY2FsbGJhY2spCit1aW50MzJfdCBXZWJQYWdlUHJveHk6OmNvbXB1dGVQYWdl
c0ZvclByaW50aW5nQW5kRHJhd1RvUERGKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBQ
cmludEluZm8mIHByaW50SW5mbywgRHJhd1RvUERGQ2FsbGJhY2s6OkNhbGxiYWNrRnVuY3Rpb24m
JiBjYWxsYmFjaykKIHsKICAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpIHsKICAgICAgICAg
Y2FsbGJhY2soSVBDOjpEYXRhUmVmZXJlbmNlKCksIENhbGxiYWNrQmFzZTo6RXJyb3I6Ok93bmVy
V2FzSW52YWxpZGF0ZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1
dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNwcAppbmRleCBl
NjM1M2NjZGQ1NGFkZmE1YWE1OTA1Yjg5NzMwMzRiYzFjZTk1NmYyLi43ZjU3ZmY4MGFjZDJiOTUx
MTU5MTBmNTk1OTRkMWRmY2Y0MzZkM2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5
LmNwcApAQCAtMTQzLDcgKzE0Myw3IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGV2YWx1YXRlSmF2YVNj
cmlwdENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmCiAgICAgaWYg
KCFhdXRvbWF0aW9uU2Vzc2lvblByb3h5KQogICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRl
ZmluZWQoY29udGV4dCk7CiAKLSAgICB1aW50NjRfdCBmcmFtZUlEID0gSlNWYWx1ZVRvTnVtYmVy
KGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKTsKKyAgICBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCA9IFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRChKU1ZhbHVl
VG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pKTsKICAgICB1aW50NjRf
dCBjYWxsYmFja0lEID0gSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1sxXSwgZXhj
ZXB0aW9uKTsKICAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKEpTVmFsdWVUb1N0cmluZ0NvcHko
Y29udGV4dCwgYXJndW1lbnRzWzJdLCBleGNlcHRpb24pKTsKIApAQCAtMjIwLDcgKzIyMCw3IEBA
IFdlYkNvcmU6OkVsZW1lbnQqIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmVsZW1lbnRGb3JO
b2RlSGFuZGxlKFdlYkZyYW1lJiBmcmFtCiAKIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eTo6ZGlkQ2xlYXJXaW5kb3dPYmplY3RGb3JGcmFtZShXZWJGcmFtZSYgZnJhbWUpCiB7Ci0gICAg
dWludDY0X3QgZnJhbWVJRCA9IGZyYW1lLmZyYW1lSUQoKTsKKyAgICBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCA9IGZyYW1lLmZyYW1lSUQoKTsKICAgICBpZiAoSlNPYmplY3RSZWYg
c2NyaXB0T2JqZWN0ID0gbV93ZWJGcmFtZVNjcmlwdE9iamVjdE1hcC50YWtlKGZyYW1lSUQpKQog
ICAgICAgICBKU1ZhbHVlVW5wcm90ZWN0KGZyYW1lLmpzQ29udGV4dCgpLCBzY3JpcHRPYmplY3Qp
OwogCkBAIC0yMzIsNyArMjMyLDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpk
aWRDbGVhcldpbmRvd09iamVjdEZvckZyYW1lKFdlYkZyYW1lJiBmcmFtZSkKICAgICAgICAgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6V2ViQXV0b21hdGlvblNlc3Npb246OkRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9u
KGNhbGxiYWNrSUQsIGVycm9yTWVzc2FnZSwgZXJyb3JUeXBlKSwgMCk7CiB9CiAKLXZvaWQgV2Vi
QXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcm
IGZ1bmN0aW9uLCBWZWN0b3I8U3RyaW5nPiBhcmd1bWVudHMsIGJvb2wgZXhwZWN0c0ltcGxpY2l0
Q2FsbGJhY2tBcmd1bWVudCwgaW50IGNhbGxiYWNrVGltZW91dCwgdWludDY0X3QgY2FsbGJhY2tJ
RCkKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZXZhbHVhdGVKYXZhU2NyaXB0RnVu
Y3Rpb24oV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBmdW5jdGlvbiwgVmVjdG9yPFN0cmluZz4gYXJn
dW1lbnRzLCBib29sIGV4cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJndW1lbnQsIGludCBjYWxsYmFj
a1RpbWVvdXQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsK
QEAgLTI2Myw3ICsyNjMsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmV2YWx1
YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OlBhZ2VJZGVudGlmaQogICAgICAgICB0b0pT
VmFsdWUoY29udGV4dCwgZnVuY3Rpb24pLAogICAgICAgICB0b0pTQXJyYXkoY29udGV4dCwgYXJn
dW1lbnRzLCB0b0pTVmFsdWUsICZleGNlcHRpb24pLAogICAgICAgICBKU1ZhbHVlTWFrZUJvb2xl
YW4oY29udGV4dCwgZXhwZWN0c0ltcGxpY2l0Q2FsbGJhY2tBcmd1bWVudCksCi0gICAgICAgIEpT
VmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIGZyYW1lSUQpLAorICAgICAgICBKU1ZhbHVlTWFrZU51
bWJlcihjb250ZXh0LCBmcmFtZUlELnRvVUludDY0KCkpLAogICAgICAgICBKU1ZhbHVlTWFrZU51
bWJlcihjb250ZXh0LCBjYWxsYmFja0lEKSwKICAgICAgICAgSlNPYmplY3RNYWtlRnVuY3Rpb25X
aXRoQ2FsbGJhY2soY29udGV4dCwgbnVsbHB0ciwgZXZhbHVhdGVKYXZhU2NyaXB0Q2FsbGJhY2sp
LAogICAgICAgICBKU1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCBjYWxsYmFja1RpbWVvdXQpCkBA
IC0zMDAsNyArMzAwLDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpldmFsdWF0
ZUphdmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRpZmkKICAgICBkaWRFdmFsdWF0
ZUphdmFTY3JpcHRGdW5jdGlvbihmcmFtZUlELCBjYWxsYmFja0lELCBleGNlcHRpb25NZXNzYWdl
LCBlcnJvclR5cGUpOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZEV2
YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGNhbGxi
YWNrSUQsIGNvbnN0IFN0cmluZyYgcmVzdWx0LCBjb25zdCBTdHJpbmcmIGVycm9yVHlwZSkKK3Zv
aWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZGlkRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rp
b24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IGNhbGxiYWNrSUQs
IGNvbnN0IFN0cmluZyYgcmVzdWx0LCBjb25zdCBTdHJpbmcmIGVycm9yVHlwZSkKIHsKICAgICBh
dXRvIGZpbmRSZXN1bHQgPSBtX3dlYkZyYW1lUGVuZGluZ0V2YWx1YXRlSmF2YVNjcmlwdENhbGxi
YWNrc01hcC5maW5kKGZyYW1lSUQpOwogICAgIGlmIChmaW5kUmVzdWx0ICE9IG1fd2ViRnJhbWVQ
ZW5kaW5nRXZhbHVhdGVKYXZhU2NyaXB0Q2FsbGJhY2tzTWFwLmVuZCgpKSB7CkBAIC0zMTMsMTIg
KzMxMywxMyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZEV2YWx1YXRlSmF2
YVNjcmlwdEZ1bmN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQXV0b21h
dGlvblNlc3Npb246OkRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKGNhbGxiYWNrSUQsIHJl
c3VsdCwgZXJyb3JUeXBlKSwgMCk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoT3JkaW5hbChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBw
YWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG9yZGluYWwsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQorLy8gRklYTUU6IFRoZXNlIGNhbGxiYWNrcyBzaG91bGQgdGFrZSBPcHRpb25hbDxXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXI+Lgordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNv
bHZlQ2hpbGRGcmFtZVdpdGhPcmRpbmFsKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQzMl90IG9yZGluYWwsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAgIGlmICghcGFnZSkgewogICAg
ICAgICBTdHJpbmcgd2luZG93Tm90Rm91bmRFcnJvclR5cGUgPSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUoSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JNZXNzYWdlOjpXaW5kb3dOb3RGb3VuZCk7Ci0gICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIod2luZG93Tm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKQEAgLTMyNiwzNyArMzI3LDM3IEBAIHZvaWQgV2ViQXV0b21hdGlv
blNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoT3JkaW5hbChXZWJDb3JlOjpQYWdl
SWRlbnRpCiAKICAgICBXZWJGcmFtZSogZnJhbWUgPSBmcmFtZUlEID8gV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCkgOiBwYWdlLT5tYWluV2ViRnJhbWUoKTsKICAgICBp
ZiAoIWZyYW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJv
clR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JU
eXBlLCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgV2ViQ29yZTo6RnJhbWUq
IGNvcmVGcmFtZSA9IGZyYW1lLT5jb3JlRnJhbWUoKTsKICAgICBpZiAoIWNvcmVGcmFtZSkgewot
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFdlYkNvcmU6OkZyYW1lKiBjb3JlQ2hpbGRGcmFt
ZSA9IGNvcmVGcmFtZS0+dHJlZSgpLnNjb3BlZENoaWxkKG9yZGluYWwpOwogICAgIGlmICghY29y
ZUNoaWxkRnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVy
cm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJv
clR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBXZWJGcmFtZSogY2hp
bGRGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpjb3JlQ2hpbGRGcmFtZSk7CiAgICAg
aWYgKCFjaGlsZEZyYW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91
bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5k
RXJyb3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgY29tcGxldGlv
bkhhbmRsZXIoV1RGOjpudWxsb3B0LCBjaGlsZEZyYW1lLT5mcmFtZUlEKCkpOwogfQogCi12b2lk
IFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5k
bGUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBTdHJpbmcmIG5vZGVIYW5kbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3Ry
aW5nPiwgdWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJBdXRvbWF0aW9u
U2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOb2RlSGFuZGxlKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNv
bnN0IFN0cmluZyYgbm9kZUhhbmRsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxT
dHJpbmc+LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBh
Z2VJRCk7CiAgICAgaWYgKCFwYWdlKSB7CiAgICAgICAgIFN0cmluZyB3aW5kb3dOb3RGb3VuZEVy
cm9yVHlwZSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVt
Q29uc3RhbnRWYWx1ZShJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3Nh
Z2U6OldpbmRvd05vdEZvdW5kKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIod2luZG93Tm90
Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5kb3dOb3RG
b3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMzY0LDM3
ICszNjUsMzcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRG
cmFtZVdpdGhOb2RlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJZGUKIAogICAgIFdlYkZyYW1lKiBmcmFt
ZSA9IGZyYW1lSUQgPyBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSA6
IHBhZ2UtPm1haW5XZWJGcmFtZSgpOwogICAgIGlmICghZnJhbWUpIHsKLSAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKICAgICBXZWJDb3JlOjpFbGVtZW50KiBjb3JlRWxlbWVudCA9IGVsZW1lbnRGb3JO
b2RlSGFuZGxlKCpmcmFtZSwgbm9kZUhhbmRsZSk7CiAgICAgaWYgKCFpczxXZWJDb3JlOjpIVE1M
RnJhbWVFbGVtZW50QmFzZT4oY29yZUVsZW1lbnQpKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CiAgICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZUZyb21FbGVtZW50ID0gZG93bmNhc3Q8V2Vi
Q29yZTo6SFRNTEZyYW1lRWxlbWVudEJhc2U+KCpjb3JlRWxlbWVudCkuY29udGVudEZyYW1lKCk7
CiAgICAgaWYgKCFjb3JlRnJhbWVGcm9tRWxlbWVudCkgewotICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAogICAgIFdlYkZyYW1lKiBmcmFtZUZyb21FbGVtZW50ID0gV2ViRnJhbWU6OmZyb21Db3JlRnJh
bWUoKmNvcmVGcmFtZUZyb21FbGVtZW50KTsKICAgICBpZiAoIWZyYW1lRnJvbUVsZW1lbnQpIHsK
LSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7Cisg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxv
cHQsIGZyYW1lRnJvbUVsZW1lbnQtPmZyYW1lSUQoKSk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlv
blNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoTmFtZShXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCB1aW50NjRfdCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGls
ZEZyYW1lV2l0aE5hbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsKICAgICAgICAgU3Ry
aW5nIHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVlKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OkVycm9yTWVzc2FnZTo6V2luZG93Tm90Rm91bmQpOwotICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCkBAIC00MDIsMzcgKzQwMywzNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9u
UHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZQog
CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gZnJhbWVJRCA/IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LndlYkZyYW1lKGZyYW1lSUQpIDogcGFnZS0+bWFpbldlYkZyYW1lKCk7CiAgICAgaWYgKCFmcmFt
ZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAw
KTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJh
bWUgPSBmcmFtZS0+Y29yZUZyYW1lKCk7CiAgICAgaWYgKCFjb3JlRnJhbWUpIHsKLSAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKICAgICBXZWJDb3JlOjpGcmFtZSogY29yZUNoaWxkRnJhbWUgPSBjb3Jl
RnJhbWUtPnRyZWUoKS5zY29wZWRDaGlsZChuYW1lKTsKICAgICBpZiAoIWNvcmVDaGlsZEZyYW1l
KSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDAp
OworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCB7IH0p
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgV2ViRnJhbWUqIGNoaWxkRnJhbWUgPSBX
ZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqY29yZUNoaWxkRnJhbWUpOwogICAgIGlmICghY2hpbGRG
cmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBl
LCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwg
eyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdU
Rjo6bnVsbG9wdCwgY2hpbGRGcmFtZS0+ZnJhbWVJRCgpKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlUGFyZW50RnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlv
bmFsPFN0cmluZz4sIHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZVBhcmVudEZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAgIGlmICghcGFnZSkgewogICAgICAg
ICBTdHJpbmcgd2luZG93Tm90Rm91bmRFcnJvclR5cGUgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUoSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6RXJyb3JNZXNzYWdlOjpXaW5kb3dOb3RGb3VuZCk7Ci0gICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIod2luZG93Tm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKQEAgLTQ0MCwyMCArNDQxLDIwIEBAIHZvaWQgV2ViQXV0b21hdGlvblNl
c3Npb25Qcm94eTo6cmVzb2x2ZVBhcmVudEZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBh
Z2VJCiAKICAgICBXZWJGcmFtZSogZnJhbWUgPSBmcmFtZUlEID8gV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkud2ViRnJhbWUoZnJhbWVJRCkgOiBwYWdlLT5tYWluV2ViRnJhbWUoKTsKICAgICBpZiAo
IWZyYW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5
cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBl
LCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgV2ViRnJhbWUqIHBhcmVudEZy
YW1lID0gZnJhbWUtPnBhcmVudEZyYW1lKCk7CiAgICAgaWYgKCFwYXJlbnRGcmFtZSkgewotICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVsbG9wdCwg
cGFyZW50RnJhbWUtPmZyYW1lSUQoKSk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eTo6Zm9jdXNGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90
IGZyYW1lSUQpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmZvY3VzRnJhbWUoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCkKIHsKICAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2Vi
UGFnZShwYWdlSUQpOwogICAgIGlmICghcGFnZSkKQEAgLTUyOCw3ICs1MjksNyBAQCBzdGF0aWMg
V2ViQ29yZTo6RmxvYXRQb2ludCBjb252ZXJ0UG9pbnRGcm9tRnJhbWVDbGllbnRUb1Jvb3RWaWV3
KFdlYkNvcmU6OkZyYW1lVgogICAgIHJldHVybiBjbGllbnRQb2ludDsKIH0KIAotdm9pZCBXZWJB
dXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpjb21wdXRlRWxlbWVudExheW91dChXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBi
b29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIENvb3JkaW5hdGVTeXN0ZW0gY29vcmRpbmF0ZVN5
c3RlbSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBXZWJDb3JlOjpJ
bnRSZWN0LCBPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIGJvb2wpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpjb21wdXRlRWxlbWVudExh
eW91dChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVl
ZGVkLCBDb29yZGluYXRlU3lzdGVtIGNvb3JkaW5hdGVTeXN0ZW0sIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6SW50UmVjdCwgT3B0aW9uYWw8V2ViQ29y
ZTo6SW50UG9pbnQ+LCBib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQYWdl
KiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAgIGlm
ICghcGFnZSkgewpAQCAtNjM2LDcgKzYzNyw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eTo6Y29tcHV0ZUVsZW1lbnRMYXlvdXQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnCiAg
ICAgY29tcGxldGlvbkhhbmRsZXIoV1RGOjpudWxsb3B0LCByZXN1bHRFbGVtZW50Qm91bmRzLCBy
ZXN1bHRJblZpZXdDZW50ZXJQb2ludCwgaXNPYnNjdXJlZCk7CiB9CiAKLXZvaWQgV2ViQXV0b21h
dGlvblNlc3Npb25Qcm94eTo6c2VsZWN0T3B0aW9uRWxlbWVudChXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
dm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpzZWxlY3RPcHRpb25FbGVtZW50KFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIFN0cmluZyBub2RlSGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0
cmluZz4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAgICAgaWYgKCFwYWdlKSB7CkBA
IC03MDQsNyArNzA1LDcgQEAgc3RhdGljIFdlYkNvcmU6OkludFJlY3Qgc25hcHNob3RSZWN0Rm9y
U2NyZWVuc2hvdChXZWJQYWdlJiBwYWdlLCBXZWJDb3JlOjpFbGVtZW4KICAgICByZXR1cm4geyB9
OwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnRha2VTY3JlZW5zaG90KFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5v
ZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgYm9vbCBjbGlwVG9WaWV3cG9y
dCwgdWludDY0X3QgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6
dGFrZVNjcmVlbnNob3QoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50
b1ZpZXdJZk5lZWRlZCwgYm9vbCBjbGlwVG9WaWV3cG9ydCwgdWludDY0X3QgY2FsbGJhY2tJRCkK
IHsKICAgICBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBoYW5kbGU7CiAKQEAgLTc1Miw3ICs3NTMs
NyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnRha2VTY3JlZW5zaG90KFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25T
ZXNzaW9uOjpEaWRUYWtlU2NyZWVuc2hvdChjYWxsYmFja0lELCBoYW5kbGUsIHsgfSksIDApOwog
fQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmdldENvb2tpZXNGb3JGcmFtZShX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4p
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpn
ZXRDb29raWVzRm9yRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25h
bDxTdHJpbmc+LCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPik+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2Uo
cGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsKQEAgLTc3Nyw3ICs3NzgsNyBAQCB2b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OmdldENvb2tpZXNGb3JGcmFtZShXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciBwYWdlSQogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVsbG9wdCwgZm91bmRD
b29raWVzKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpkZWxldGVDb29r
aWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJp
bmcgY29va2llTmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+KT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZGVs
ZXRlQ29va2llKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBjb29raWVOYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPFN0cmluZz4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlBh
Z2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAgICAg
aWYgKCFwYWdlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21h
dGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmgKaW5kZXggMTE2NzY0NTI3
N2RiYzE5MzBhNWE3YTU5N2RjYmMyZGYzZWNmNTVjOS4uNWUxYjBmY2ZmMGZjODU5OGI4Yzc5Nzcw
YTY4YjE4MWU3OGY2MzkxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1
dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaApAQCAtMjgs
NiArMjgsNyBAQAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJDb29yZGluYXRl
U3lzdGVtLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNCYXNlLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlm
aWVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTUxLDcgKzUyLDcg
QEAgcHVibGljOgogCiAgICAgdm9pZCBkaWRDbGVhcldpbmRvd09iamVjdEZvckZyYW1lKFdlYkZy
YW1lJik7CiAKLSAgICB2b2lkIGRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKHVpbnQ2NF90
IGZyYW1lSUQsIHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFN0cmluZyYgcmVzdWx0LCBjb25z
dCBTdHJpbmcmIGVycm9yVHlwZSk7CisgICAgdm9pZCBkaWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5j
dGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0
IFN0cmluZyYgcmVzdWx0LCBjb25zdCBTdHJpbmcmIGVycm9yVHlwZSk7CiAKIHByaXZhdGU6CiAg
ICAgSlNPYmplY3RSZWYgc2NyaXB0T2JqZWN0Rm9yRnJhbWUoV2ViRnJhbWUmKTsKQEAgLTYxLDIy
ICs2MiwyMiBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAKICAgICAvLyBDYWxsZWQgYnkgV2Vi
QXV0b21hdGlvblNlc3Npb25Qcm94eSBtZXNzYWdlcwotICAgIHZvaWQgZXZhbHVhdGVKYXZhU2Ny
aXB0RnVuY3Rpb24oV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFN0cmluZyYgZnVuY3Rpb24sIFZlY3RvcjxTdHJpbmc+IGFyZ3VtZW50cywgYm9vbCBleHBl
Y3RzSW1wbGljaXRDYWxsYmFja0FyZ3VtZW50LCBpbnQgY2FsbGJhY2tUaW1lb3V0LCB1aW50NjRf
dCBjYWxsYmFja0lEKTsKLSAgICB2b2lkIHJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGluYWwoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG9yZGluYWws
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWludDY0X3QpPiYmKTsK
LSAgICB2b2lkIHJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUoV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbm9kZUhhbmRsZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCB1aW50NjRfdCk+JiYpOwotICAg
IHZvaWQgcmVzb2x2ZUNoaWxkRnJhbWVXaXRoTmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4mJik7Ci0gICAgdm9pZCByZXNvbHZlUGFy
ZW50RnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWludDY0X3QpPiYmKTsKLSAgICB2
b2lkIGZvY3VzRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQp
OwotICAgIHZvaWQgY29tcHV0ZUVsZW1lbnRMYXlvdXQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3
SWZOZWVkZWQsIENvb3JkaW5hdGVTeXN0ZW0sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9u
YWw8U3RyaW5nPiwgV2ViQ29yZTo6SW50UmVjdCwgT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+
LCBib29sKT4mJik7Ci0gICAgdm9pZCBzZWxlY3RPcHRpb25FbGVtZW50KFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJik7Ci0gICAgdm9pZCB0YWtlU2NyZWVu
c2hvdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5v
ZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgYm9vbCBjbGlwVG9WaWV3cG9y
dCwgdWludDY0X3QgY2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBnZXRDb29raWVzRm9yRnJhbWUoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4pPiYmKTsKLSAg
ICB2b2lkIGRlbGV0ZUNvb2tpZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJh
bWVJRCwgU3RyaW5nIGNvb2tpZU5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8
U3RyaW5nPik+JiYpOworICAgIHZvaWQgZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBmdW5jdGlvbiwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRzLCBib29sIGV4cGVjdHNJbXBsaWNp
dENhbGxiYWNrQXJndW1lbnQsIGludCBjYWxsYmFja1RpbWVvdXQsIHVpbnQ2NF90IGNhbGxiYWNr
SUQpOworICAgIHZvaWQgcmVzb2x2ZUNoaWxkRnJhbWVXaXRoT3JkaW5hbChXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50MzJfdCBvcmRpbmFsLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcik+JiYpOworICAgIHZvaWQgcmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhhbmRsZShX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIG5vZGVIYW5kbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5n
PiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKT4mJik7CisgICAgdm9pZCByZXNvbHZlQ2hpbGRG
cmFtZVdpdGhOYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25h
bDxTdHJpbmc+LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpPiYmKTsKKyAgICB2b2lkIHJlc29s
dmVQYXJlbnRGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcik+JiYpOworICAgIHZvaWQgZm9jdXNGcmFtZShXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNvbXB1dGVF
bGVtZW50TGF5b3V0KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIENv
b3JkaW5hdGVTeXN0ZW0sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwg
V2ViQ29yZTo6SW50UmVjdCwgT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBib29sKT4mJik7
CisgICAgdm9pZCBzZWxlY3RPcHRpb25FbGVtZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFN0cmluZyBub2RlSGFuZGxlLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4pPiYmKTsKKyAgICB2b2lkIHRha2VTY3JlZW5zaG90
KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFN0cmlu
ZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGJvb2wgY2xpcFRvVmll
d3BvcnQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIHZvaWQgZ2V0Q29va2llc0ZvckZyYW1l
KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tp
ZT4pPiYmKTsKKyAgICB2b2lkIGRlbGV0ZUNvb2tpZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBTdHJpbmcgY29va2llTmFtZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJik7CiAKICAgICBTdHJpbmcgbV9zZXNzaW9u
SWRlbnRpZmllcjsKIAotICAgIEhhc2hNYXA8dWludDY0X3QsIEpTT2JqZWN0UmVmPiBtX3dlYkZy
YW1lU2NyaXB0T2JqZWN0TWFwOwotICAgIEhhc2hNYXA8dWludDY0X3QsIFZlY3Rvcjx1aW50NjRf
dD4+IG1fd2ViRnJhbWVQZW5kaW5nRXZhbHVhdGVKYXZhU2NyaXB0Q2FsbGJhY2tzTWFwOworICAg
IEhhc2hNYXA8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBKU09iamVjdFJlZj4gbV93ZWJGcmFt
ZVNjcmlwdE9iamVjdE1hcDsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
VmVjdG9yPHVpbnQ2NF90Pj4gbV93ZWJGcmFtZVBlbmRpbmdFdmFsdWF0ZUphdmFTY3JpcHRDYWxs
YmFja3NNYXA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHku
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRv
bWF0aW9uU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGQ3MmY4OWQyNjM1OWNmMDFjY2Zk
NTMxZTk2ZTAxZjQ0NDA5YWFmNTguLmYyNzY0OWI5YjczMTBiYTU5MTNiMGQ2ZmZmZTE3ZjIyNGVj
NWY2M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dl
YkF1dG9tYXRpb25TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5tZXNzYWdlcy5p
bgpAQCAtMjEsMjEgKzIxLDIxIEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIG1lc3NhZ2VzIC0+IFdlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHkgewotICAgIEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIGZ1
bmN0aW9uLCBWZWN0b3I8U3RyaW5nPiBhcmd1bWVudHMsIGJvb2wgZXhwZWN0c0ltcGxpY2l0Q2Fs
bGJhY2tBcmd1bWVudCwgaW50IGNhbGxiYWNrVGltZW91dCwgdWludDY0X3QgY2FsbGJhY2tJRCkK
KyAgICBFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBw
YWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgZnVuY3Rpb24s
IFZlY3RvcjxTdHJpbmc+IGFyZ3VtZW50cywgYm9vbCBleHBlY3RzSW1wbGljaXRDYWxsYmFja0Fy
Z3VtZW50LCBpbnQgY2FsbGJhY2tUaW1lb3V0LCB1aW50NjRfdCBjYWxsYmFja0lEKQogCi0gICAg
UmVzb2x2ZUNoaWxkRnJhbWVXaXRoT3JkaW5hbChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdl
SUQsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG9yZGluYWwpIC0+IChPcHRpb25hbDxTdHJp
bmc+IGVycm9yVHlwZSwgdWludDY0X3QgZnJhbWVJRCkgQXN5bmMKLSAgICBSZXNvbHZlQ2hpbGRG
cmFtZVdpdGhOb2RlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0
X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9y
VHlwZSwgdWludDY0X3QgZnJhbWVJRCkgQXN5bmMKLSAgICBSZXNvbHZlQ2hpbGRGcmFtZVdpdGhO
YW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgU3Ry
aW5nIG5hbWUpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgdWludDY0X3QgZnJhbWVJ
RCkgQXN5bmMKLSAgICBSZXNvbHZlUGFyZW50RnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
cGFnZUlELCB1aW50NjRfdCBmcmFtZUlEKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUs
IHVpbnQ2NF90IGZyYW1lSUQpIEFzeW5jCisgICAgUmVzb2x2ZUNoaWxkRnJhbWVXaXRoT3JkaW5h
bChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCB1aW50MzJfdCBvcmRpbmFsKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5
cGUsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSBBc3luYworICAgIFJlc29sdmVD
aGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUpIC0+IChP
cHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQpIEFzeW5jCisgICAgUmVzb2x2ZUNoaWxkRnJhbWVXaXRoTmFtZShXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcg
bmFtZSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCkgQXN5bmMKKyAgICBSZXNvbHZlUGFyZW50RnJhbWUoV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkgLT4g
KE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCkgQXN5bmMKIAotICAgIEZvY3VzRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFn
ZUlELCB1aW50NjRfdCBmcmFtZUlEKQorICAgIEZvY3VzRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIAotICAgIENv
bXB1dGVFbGVtZW50TGF5b3V0KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0
X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRl
ZCwgZW51bTp1aW50OF90IFdlYktpdDo6Q29vcmRpbmF0ZVN5c3RlbSBjb29yZGluYXRlU3lzdGVt
KSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIFdlYkNvcmU6OkludFJlY3QgcmVjdCwg
T3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+IGluVmlld0NlbnRlclBvaW50LCBib29sIGlzT2Jz
Y3VyZWQpIEFzeW5jCisgICAgQ29tcHV0ZUVsZW1lbnRMYXlvdXQoV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIG5v
ZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgZW51bTp1aW50OF90IFdlYktp
dDo6Q29vcmRpbmF0ZVN5c3RlbSBjb29yZGluYXRlU3lzdGVtKSAtPiAoT3B0aW9uYWw8U3RyaW5n
PiBlcnJvclR5cGUsIFdlYkNvcmU6OkludFJlY3QgcmVjdCwgT3B0aW9uYWw8V2ViQ29yZTo6SW50
UG9pbnQ+IGluVmlld0NlbnRlclBvaW50LCBib29sIGlzT2JzY3VyZWQpIEFzeW5jCiAKLSAgICBT
ZWxlY3RPcHRpb25FbGVtZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0
X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9y
VHlwZSkgQXN5bmMKKyAgICBTZWxlY3RPcHRpb25FbGVtZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBub2Rl
SGFuZGxlKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUpIEFzeW5jCiAKLSAgICBUYWtl
U2NyZWVuc2hvdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1l
SUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGJvb2wg
Y2xpcFRvVmlld3BvcnQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAgVGFrZVNjcmVlbnNob3Qo
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwg
Ym9vbCBjbGlwVG9WaWV3cG9ydCwgdWludDY0X3QgY2FsbGJhY2tJRCkKIAotICAgIEdldENvb2tp
ZXNGb3JGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1l
SUQpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgVmVjdG9yPFdlYkNvcmU6OkNvb2tp
ZT4gY29va2llcykgQXN5bmMKLSAgICBEZWxldGVDb29raWUoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgY29va2llTmFtZSkgLT4gKE9wdGlv
bmFsPFN0cmluZz4gZXJyb3JUeXBlKSBBc3luYworICAgIEdldENvb2tpZXNGb3JGcmFtZShXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlEKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIFZlY3RvcjxXZWJDb3JlOjpDb29r
aWU+IGNvb2tpZXMpIEFzeW5jCisgICAgRGVsZXRlQ29va2llKFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBjb29r
aWVOYW1lKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUpIEFzeW5jCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dL
V2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbQppbmRleCAwOTk3
NjM3MmYwNzM3NTdlZWRiMTc0OTNkNzMxZmEwYTNkNDY2OGM2Li4yNTczZTZkNDg1OWU1ZTBjZmU0
YTY3ZjVmNGYzYmJhNmIzMGZlODY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tX
ZWJQcm9jZXNzUGx1Z0luRnJhbWUubW0KQEAgLTQ4LDcgKzQ4LDcgQEAgQGltcGxlbWVudGF0aW9u
IFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lIHsKIAogKyAoaW5zdGFuY2V0eXBlKWxvb2tVcEZyYW1l
RnJvbUhhbmRsZTooX1dLRnJhbWVIYW5kbGUgKiloYW5kbGUKIHsKLSAgICByZXR1cm4gd3JhcHBl
cihXZWJLaXQ6OldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGhhbmRsZS5fZnJhbWVJ
RCkpOworICAgIHJldHVybiB3cmFwcGVyKFdlYktpdDo6V2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
d2ViRnJhbWUoV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKGhhbmRsZS5fZnJhbWVJRCkp
KTsKIH0KIAogLSAodm9pZClkZWFsbG9jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKaW5kZXggYzQ4Y2RkODU3OTRkOTIx
Njk5NTIwYzJkODM4YTViNjcwZjNiMmZmMS4uNWRmYzQyNTc4ODRiYzI5MmE0ZGFlOGM0NDVlOTJi
NzMyN2E5NmNhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViTG9hZGVyU3RyYXRlZ3kuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApAQCAtMTU5LDcgKzE1OSw3IEBAIHZvaWQgV2ViTG9h
ZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMb2FkZXIs
IENhY2hlZFJlc291CiAKICAgICBXZWJSZXNvdXJjZUxvYWRlcjo6VHJhY2tpbmdQYXJhbWV0ZXJz
IHRyYWNraW5nUGFyYW1ldGVyczsKICAgICB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlEID0gZnJh
bWVMb2FkZXJDbGllbnQucGFnZUlEKCkudmFsdWVPcihQYWdlSWRlbnRpZmllciB7IH0pOwotICAg
IHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlEID0gZnJhbWVMb2FkZXJDbGllbnQuZnJhbWVJRCgp
LnZhbHVlT3IoMCk7CisgICAgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQgPSBmcmFtZUxvYWRl
ckNsaWVudC5mcmFtZUlEKCkudmFsdWVPcihGcmFtZUlkZW50aWZpZXIgeyB9KTsKICAgICB0cmFj
a2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCA9IGlkZW50aWZpZXI7CiAgICAgYXV0byBzZXNzaW9u
SUQgPSBmcmFtZUxvYWRlckNsaWVudC5zZXNzaW9uSUQoKTsKIApAQCAtMTY4LDcgKzE2OCw3IEBA
IHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciYgcmVz
b3VyY2VMb2FkZXIsIENhY2hlZFJlc291CiAgICAgLy8gdGhlbiB3ZSBzaG91bGQgcmVtZW1iZXIg
dGhlIFJlc291cmNlTG9hZGVyIGluIG91ciByZWNvcmRzIGJ1dCBub3Qgc2NoZWR1bGUgaXQgaW4g
dGhlIE5ldHdvcmtQcm9jZXNzLgogICAgIGlmIChyZXNvdXJjZUxvYWRlci5kb2N1bWVudExvYWRl
cigpLT5zY2hlZHVsZUFyY2hpdmVMb2FkKHJlc291cmNlTG9hZGVyLCByZXNvdXJjZUxvYWRlci5y
ZXF1ZXN0KCkpKSB7CiAgICAgICAgIExPRyhOZXR3b3JrU2NoZWR1bGluZywgIihXZWJQcm9jZXNz
KSBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkLCB1cmwgJyVzJyB3aWxsIGJlIGhhbmRs
ZWQgYXMgYW4gYXJjaGl2ZSByZXNvdXJjZS4iLCByZXNvdXJjZUxvYWRlci51cmwoKS5zdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJj
ZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgaGFuZGxlZCBhcyBhbiBhcmNoaXZl
IHJlc291cmNlIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJh
bWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFt
ZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGhhbmRsZWQgYXMg
YW4gYXJjaGl2ZSByZXNvdXJjZSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZy
YW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNl
TG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJh
Y2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmllcik7CiAgICAgICAg
IG1fd2ViUmVzb3VyY2VMb2FkZXJzLnNldChpZGVudGlmaWVyLCBXZWJSZXNvdXJjZUxvYWRlcjo6
Y3JlYXRlKHJlc291cmNlTG9hZGVyLCB0cmFja2luZ1BhcmFtZXRlcnMpKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KQEAgLTE3NiwxNCArMTc2LDE0IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6
OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMb2FkZXIsIENhY2hlZFJlc291
CiAKICAgICBpZiAocmVzb3VyY2VMb2FkZXIuZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25D
YWNoZUhvc3QoKS5tYXliZUxvYWRSZXNvdXJjZShyZXNvdXJjZUxvYWRlciwgcmVzb3VyY2VMb2Fk
ZXIucmVxdWVzdCgpLCByZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkudXJsKCkpKSB7CiAgICAgICAg
IExPRyhOZXR3b3JrU2NoZWR1bGluZywgIihXZWJQcm9jZXNzKSBXZWJMb2FkZXJTdHJhdGVneTo6
c2NoZWR1bGVMb2FkLCB1cmwgJyVzJyB3aWxsIGJlIGxvYWRlZCBmcm9tIGFwcGxpY2F0aW9uIGNh
Y2hlLiIsIHJlc291cmNlTG9hZGVyLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAg
ICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2Fk
OiBVUkwgd2lsbCBiZSBsb2FkZWQgZnJvbSBhcHBsaWNhdGlvbiBjYWNoZSAoZnJhbWUgPSAlcCwg
cGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9
ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVy
cy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIGlkZW50aWZp
ZXIpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2No
ZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBsb2FkZWQgZnJvbSBhcHBsaWNhdGlvbiBjYWNoZSAoZnJh
bWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5n
UGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQu
dG9VSW50NjQoKSwgaWRlbnRpZmllcik7CiAgICAgICAgIG1fd2ViUmVzb3VyY2VMb2FkZXJzLnNl
dChpZGVudGlmaWVyLCBXZWJSZXNvdXJjZUxvYWRlcjo6Y3JlYXRlKHJlc291cmNlTG9hZGVyLCB0
cmFja2luZ1BhcmFtZXRlcnMpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChy
ZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkudXJsKCkucHJvdG9jb2xJc0RhdGEoKSkgewogICAgICAg
ICBMT0coTmV0d29ya1NjaGVkdWxpbmcsICIoV2ViUHJvY2VzcykgV2ViTG9hZGVyU3RyYXRlZ3k6
OnNjaGVkdWxlTG9hZCwgdXJsICclcycgd2lsbCBiZSBsb2FkZWQgYXMgZGF0YS4iLCByZXNvdXJj
ZUxvYWRlci51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUg
bG9hZGVkIGFzIGRhdGEgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRl
ci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5n
UGFyYW1ldGVycy5mcmFtZUlELCBpZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgbG9hZGVk
IGFzIGRhdGEgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFt
ZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1l
dGVycy5mcmFtZUlELnRvVUludDY0KCksIGlkZW50aWZpZXIpOwogICAgICAgICBzdGFydExvY2Fs
TG9hZChyZXNvdXJjZUxvYWRlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xOTEsNyAr
MTkxLDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9h
ZGVyJiByZXNvdXJjZUxvYWRlciwgQ2FjaGVkUmVzb3UKICNpZiBVU0UoUVVJQ0tfTE9PSykKICAg
ICBpZiAoaXNRdWlja0xvb2tQcmV2aWV3VVJMKHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS51cmwo
KSkpIHsKICAgICAgICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5nLCAiKFdlYlByb2Nlc3MpIFdlYkxv
YWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQsIHVybCAnJXMnIHdpbGwgYmUgaGFuZGxlZCBhcyBh
IFF1aWNrTG9vayByZXNvdXJjZS4iLCByZXNvdXJjZUxvYWRlci51cmwoKS5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpKTsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRl
ciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgaGFuZGxlZCBhcyBhIFF1aWNrTG9vayByZXNv
dXJjZSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCks
IHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJz
LmZyYW1lSUQsIGlkZW50aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJl
c291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBoYW5kbGVkIGFzIGEgUXVp
Y2tMb29rIHJlc291cmNlIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2Fk
ZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2lu
Z1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsKICAgICAgICAgc3Rh
cnRMb2NhbExvYWQocmVzb3VyY2VMb2FkZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAt
MjAyLDcgKzIwMiw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZChSZXNv
dXJjZUxvYWRlciYgcmVzb3VyY2VMb2FkZXIsIENhY2hlZFJlc291CiAgICAgLy8gaHR0cHM6Ly9i
bG9ncy5nbm9tZS5vcmcvYWxleGwvMjAxMi8wMS8yNi9yZXNvdXJjZXMtaW4tZ2xpYi8KICAgICBp
ZiAocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnVybCgpLnByb3RvY29sSXMoInJlc291cmNlIikp
IHsKICAgICAgICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5nLCAiKFdlYlByb2Nlc3MpIFdlYkxvYWRl
clN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQsIHVybCAnJXMnIHdpbGwgYmUgaGFuZGxlZCBhcyBhIEdS
ZXNvdXJjZS4iLCByZXNvdXJjZUxvYWRlci51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsK
LSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxl
TG9hZDogVVJMIHdpbGwgYmUgaGFuZGxlZCBhcyBhIEdSZXNvdXJjZSAoZnJhbWUgPSAlcCwgcGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUi
IFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5w
YWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIGlkZW50aWZpZXIp
OworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1
bGVMb2FkOiBVUkwgd2lsbCBiZSBoYW5kbGVkIGFzIGEgR1Jlc291cmNlIChmcmFtZSA9ICVwLCBw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJz
LnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgp
LCBpZGVudGlmaWVyKTsKICAgICAgICAgc3RhcnRMb2NhbExvYWQocmVzb3VyY2VMb2FkZXIpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjEyLDExICsyMTIsMTEgQEAgdm9pZCBXZWJMb2Fk
ZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlciwg
Q2FjaGVkUmVzb3UKICAgICBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXI6OnNpbmdsZXRvbigpLmhh
bmRsZUZldGNoKHJlc291cmNlTG9hZGVyLCBzZXNzaW9uSUQsIHNob3VsZENsZWFyUmVmZXJyZXJP
bkhUVFBTVG9IVFRQUmVkaXJlY3QsIFt0aGlzLCB0cmFja2luZ1BhcmFtZXRlcnMsIGlkZW50aWZp
ZXIsIHNlc3Npb25JRCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwg
bWF4aW11bUJ1ZmZlcmluZ1RpbWUgPSBtYXhpbXVtQnVmZmVyaW5nVGltZShyZXNvdXJjZSksIHJl
c291cmNlTG9hZGVyID0gbWFrZVJlZihyZXNvdXJjZUxvYWRlcildIChTZXJ2aWNlV29ya2VyQ2xp
ZW50RmV0Y2g6OlJlc3VsdCByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0ICE9
IFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6UmVzdWx0OjpVbmhhbmRsZWQpIHsKICAgICAgICAg
ICAgIExPRyhOZXR3b3JrU2NoZWR1bGluZywgIihXZWJQcm9jZXNzKSBXZWJMb2FkZXJTdHJhdGVn
eTo6c2NoZWR1bGVMb2FkLCB1cmwgJyVzJyB3aWxsIGJlIHNjaGVkdWxlZCB0aHJvdWdoIFNlcnZp
Y2VXb3JrZXIgaGFuZGxlIGZldGNoIGFsZ29yaXRobSIsIHJlc291cmNlTG9hZGVyLT51cmwoKS5z
dHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRChyZXNvdXJjZUxvYWRlci5nZXQoKSwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgc2No
ZWR1bGVkIHRocm91Z2ggU2VydmljZVdvcmtlciBoYW5kbGUgZmV0Y2ggYWxnb3JpdGhtIChmcmFt
ZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNv
dXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXItPmZyYW1lKCksIHRyYWNraW5n
UGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQs
IGlkZW50aWZpZXIpOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJj
ZUxvYWRlci5nZXQoKSwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgc2NoZWR1bGVkIHRocm91
Z2ggU2VydmljZVdvcmtlciBoYW5kbGUgZmV0Y2ggYWxnb3JpdGhtIChmcmFtZSA9ICVwLCBwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIg
UFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXItPmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5w
YWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwg
aWRlbnRpZmllcik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgaWYg
KHJlc291cmNlTG9hZGVyLT5vcHRpb25zKCkuc2VydmljZVdvcmtlcnNNb2RlID09IFNlcnZpY2VX
b3JrZXJzTW9kZTo6T25seSkgewotICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxM
T1dFRChyZXNvdXJjZUxvYWRlci5nZXQoKSwgInNjaGVkdWxlTG9hZDogdW5hYmxlIHRvIHNjaGVk
dWxlIFVSTCB0aHJvdWdoIFNlcnZpY2VXb3JrZXIgaGFuZGxlIGZldGNoIGFsZ29yaXRobSAoZnJh
bWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLT5mcmFtZSgpLCB0cmFja2lu
Z1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlE
LCBpZGVudGlmaWVyKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQo
cmVzb3VyY2VMb2FkZXIuZ2V0KCksICJzY2hlZHVsZUxvYWQ6IHVuYWJsZSB0byBzY2hlZHVsZSBV
UkwgdGhyb3VnaCBTZXJ2aWNlV29ya2VyIGhhbmRsZSBmZXRjaCBhbGdvcml0aG0gKGZyYW1lID0g
JXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNl
SUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci0+ZnJhbWUoKSwgdHJhY2tpbmdQYXJh
bWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJ
bnQ2NCgpLCBpZGVudGlmaWVyKTsKICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Jlc291
cmNlTG9hZGVyID0gV1RGTW92ZShyZXNvdXJjZUxvYWRlcildIHsKICAgICAgICAgICAgICAgICBh
dXRvIGVycm9yID0gaW50ZXJuYWxFcnJvcihyZXNvdXJjZUxvYWRlci0+cmVxdWVzdCgpLnVybCgp
KTsKICAgICAgICAgICAgICAgICBlcnJvci5zZXRUeXBlKFJlc291cmNlRXJyb3I6OlR5cGU6OkNh
bmNlbGxhdGlvbik7CkBAIC0yMjgsMTMgKzIyOCwxMyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5
OjpzY2hlZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTG9hZGVyLCBDYWNoZWRSZXNv
dQogICAgICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkxvYWRlclN0cmF0ZWd5
KCkudHJ5TG9hZGluZ1VzaW5nVVJMU2NoZW1lSGFuZGxlcihyZXNvdXJjZUxvYWRlcikpCiAgICAg
ICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJMb2FkZXJTdHJhdGVneSgpLnNjaGVk
dWxlTG9hZEZyb21OZXR3b3JrUHJvY2VzcyhyZXNvdXJjZUxvYWRlci5nZXQoKSwgcmVzb3VyY2VM
b2FkZXItPnJlcXVlc3QoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLCBzZXNzaW9uSUQsIHNob3VsZENs
ZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIG1heGltdW1CdWZmZXJpbmdUaW1lKTsK
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJj
ZUxvYWRlci5nZXQoKSwgInNjaGVkdWxlTG9hZDogVVJMIG5vdCBoYW5kbGVkIGJ5IGFueSBoYW5k
bGVycyAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLT5mcmFtZSgp
LCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVy
cy5mcmFtZUlELCBpZGVudGlmaWVyKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQocmVzb3VyY2VMb2FkZXIuZ2V0KCksICJzY2hlZHVsZUxvYWQ6IFVSTCBub3QgaGFuZGxlZCBi
eSBhbnkgaGFuZGxlcnMgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRl
ci0+ZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2lu
Z1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsKICAgICB9KTsKICNl
bHNlCiAgICAgaWYgKCF0cnlMb2FkaW5nVXNpbmdVUkxTY2hlbWVIYW5kbGVyKHJlc291cmNlTG9h
ZGVyKSkKICAgICAgICAgc2NoZWR1bGVMb2FkRnJvbU5ldHdvcmtQcm9jZXNzKHJlc291cmNlTG9h
ZGVyLCByZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCksIHRyYWNraW5nUGFyYW1ldGVycywgc2Vzc2lv
bklELCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBtYXhpbXVtQnVm
ZmVyaW5nVGltZShyZXNvdXJjZSkpOwogICAgIGVsc2UKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIG5vdCBoYW5kbGVkIGJ5
IGFueSBoYW5kbGVycyAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVy
LmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQ
YXJhbWV0ZXJzLmZyYW1lSUQsIGlkZW50aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgbm90IGhhbmRsZWQgYnkg
YW55IGhhbmRsZXJzIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9
ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIu
ZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1Bh
cmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsKICNlbmRpZgogfQogCkBA
IC0zMjUsNyArMzI1LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkRnJv
bU5ldHdvcmtQcm9jZXNzKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUwKICAgICBpZiAobG9hZFBh
cmFtZXRlcnMub3B0aW9ucy5tb2RlICE9IEZldGNoT3B0aW9uczo6TW9kZTo6TmF2aWdhdGUpIHsK
ICAgICAgICAgQVNTRVJUKGxvYWRQYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbik7CiAgICAgICAgIGlm
ICghbG9hZFBhcmFtZXRlcnMuc291cmNlT3JpZ2luKSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUl9JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBubyBzb3Vy
Y2VPcmlnaW4gKGZyYW1lID0gJXAsIHByaW9yaXR5ID0gJWQsIHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNv
dXJjZUxvYWRlci5mcmFtZSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlTG9hZGVyLnJlcXVl
c3QoKS5wcmlvcml0eSgpKSwgbG9hZFBhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIGxv
YWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQsIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIpOworICAg
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNj
aGVkdWxlTG9hZDogbm8gc291cmNlT3JpZ2luIChmcmFtZSA9ICVwLCBwcmlvcml0eSA9ICVkLCBw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgc3RhdGljX2Nhc3Q8aW50Pihy
ZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkucHJpb3JpdHkoKSksIGxvYWRQYXJhbWV0ZXJzLndlYlBh
Z2VJRC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIGxv
YWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIpOwogICAgICAgICAgICAgc2NoZWR1bGVJbnRlcm5hbGx5
RmFpbGVkTG9hZChyZXNvdXJjZUxvYWRlcik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KQEAgLTM0OCw5ICszNDgsOSBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxv
YWRGcm9tTmV0d29ya1Byb2Nlc3MoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTAogCiAgICAgQVNT
RVJUKChsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQgJiYgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJ
RCkgfHwgbG9hZFBhcmFtZXRlcnMuY2xpZW50Q3JlZGVudGlhbFBvbGljeSA9PSBDbGllbnRDcmVk
ZW50aWFsUG9saWN5OjpDYW5ub3RBc2tDbGllbnRGb3JDcmVkZW50aWFscyk7CiAKLSAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBSZXNvdXJj
ZSBpcyBiZWluZyBzY2hlZHVsZWQgd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3MgKGZyYW1lID0gJXAs
IHByaW9yaXR5ID0gJWQsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCBz
dGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS5wcmlvcml0eSgpKSwgbG9h
ZFBhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1l
SUQsIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFJlc291cmNlIGlzIGJlaW5nIHNjaGVk
dWxlZCB3aXRoIHRoZSBOZXR3b3JrUHJvY2VzcyAoZnJhbWUgPSAlcCwgcHJpb3JpdHkgPSAlZCwg
cGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9
ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHN0YXRpY19jYXN0PGludD4o
cmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnByaW9yaXR5KCkpLCBsb2FkUGFyYW1ldGVycy53ZWJQ
YWdlSUQudG9VSW50NjQoKSwgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBs
b2FkUGFyYW1ldGVycy5pZGVudGlmaWVyKTsKICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1l
c3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6U2NoZWR1bGVSZXNvdXJjZUxv
YWQobG9hZFBhcmFtZXRlcnMpLCAwKSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9B
TExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVbmFibGUgdG8gc2NoZWR1bGUg
cmVzb3VyY2Ugd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3MgKGZyYW1lID0gJXAsIHByaW9yaXR5ID0g
JWQsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNl
SUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCBzdGF0aWNfY2FzdDxp
bnQ+KHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS5wcmlvcml0eSgpKSwgbG9hZFBhcmFtZXRlcnMu
d2ViUGFnZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQsIGxvYWRQYXJh
bWV0ZXJzLmlkZW50aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VE
KHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVbmFibGUgdG8gc2NoZWR1bGUgcmVzb3Vy
Y2Ugd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3MgKGZyYW1lID0gJXAsIHByaW9yaXR5ID0gJWQsIHBh
Z2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAl
IiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHJl
c291cmNlTG9hZGVyLnJlcXVlc3QoKS5wcmlvcml0eSgpKSwgbG9hZFBhcmFtZXRlcnMud2ViUGFn
ZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbG9h
ZFBhcmFtZXRlcnMuaWRlbnRpZmllcik7CiAgICAgICAgIC8vIFdlIHByb2JhYmx5IGZhaWxlZCB0
byBzY2hlZHVsZSB0aGlzIGxvYWQgd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3MgYmVjYXVzZSBpdCBo
YWQgY3Jhc2hlZC4KICAgICAgICAgLy8gVGhpcyBsb2FkIHdpbGwgbmV2ZXIgc3VjY2VlZCBzbyB3
ZSB3aWxsIHNjaGVkdWxlIGl0IHRvIGZhaWwgYXN5bmNocm9ub3VzbHkuCiAgICAgICAgIHNjaGVk
dWxlSW50ZXJuYWxseUZhaWxlZExvYWQocmVzb3VyY2VMb2FkZXIpOwpAQCAtNTIwLDE4ICs1MjAs
MTggQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShG
cmFtZUxvYWRlciYgZnJhbWVMb2FkZXIsIHVuc2kKICAgICBXZWJQYWdlKiB3ZWJQYWdlID0gd2Vi
RnJhbWUgPyB3ZWJGcmFtZS0+cGFnZSgpIDogbnVsbHB0cjsKIAogICAgIGF1dG8gcGFnZUlEID0g
d2ViUGFnZSA/IHdlYlBhZ2UtPnBhZ2VJRCgpIDogUGFnZUlkZW50aWZpZXIgeyB9OwotICAgIGF1
dG8gZnJhbWVJRCA9IHdlYkZyYW1lID8gd2ViRnJhbWUtPmZyYW1lSUQoKSA6IDA7CisgICAgYXV0
byBmcmFtZUlEID0gd2ViRnJhbWUgPyB3ZWJGcmFtZS0+ZnJhbWVJRCgpIDogRnJhbWVJZGVudGlm
aWVyIHsgfTsKICAgICBhdXRvIHNlc3Npb25JRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5zZXNzaW9u
SUQoKSA6IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CiAKICAgICBhdXRvKiBk
b2N1bWVudCA9IGZyYW1lTG9hZGVyLmZyYW1lKCkuZG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3Vt
ZW50KSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoc2Vzc2lvbklELCAi
bG9hZFJlc291cmNlU3luY2hyb25vdXNseTogbm8gZG9jdW1lbnQgKHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlbHUpIiwgcGFnZUlELnRv
VUludDY0KCksIGZyYW1lSUQsIHJlc291cmNlTG9hZElkZW50aWZpZXIpOworICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHNlc3Npb25JRCwgImxvYWRSZXNvdXJjZVN5bmNocm9u
b3VzbHk6IG5vIGRvY3VtZW50IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEID0gJWx1KSIsIHBhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRv
VUludDY0KCksIHJlc291cmNlTG9hZElkZW50aWZpZXIpOwogICAgICAgICBlcnJvciA9IGludGVy
bmFsRXJyb3IocmVxdWVzdC51cmwoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBp
ZiAoYXV0byBzeW5jTG9hZFJlc3VsdCA9IHRyeUxvYWRpbmdTeW5jaHJvbm91c2x5VXNpbmdVUkxT
Y2hlbWVIYW5kbGVyKGZyYW1lTG9hZGVyLCByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCByZXF1ZXN0
KSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHNlc3Npb25JRCwgImxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6IGZhaWxlZCBjYWxsaW5nIHRyeUxvYWRpbmdTeW5jaHJv
bm91c2x5VXNpbmdVUkxTY2hlbWVIYW5kbGVyIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJWx1LCBlcnJvciA9ICVkKSIsIHBhZ2VJRC50
b1VJbnQ2NCgpLCBmcmFtZUlELCByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBzeW5jTG9hZFJlc3Vs
dC0+ZXJyb3IuZXJyb3JDb2RlKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExP
V0VEKHNlc3Npb25JRCwgImxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6IGZhaWxlZCBjYWxsaW5n
IHRyeUxvYWRpbmdTeW5jaHJvbm91c2x5VXNpbmdVUkxTY2hlbWVIYW5kbGVyIChwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJWx1LCBlcnJv
ciA9ICVkKSIsIHBhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCksIHJlc291cmNl
TG9hZElkZW50aWZpZXIsIHN5bmNMb2FkUmVzdWx0LT5lcnJvci5lcnJvckNvZGUoKSk7CiAgICAg
ICAgIGVycm9yID0gV1RGTW92ZShzeW5jTG9hZFJlc3VsdC0+ZXJyb3IpOwogICAgICAgICByZXNw
b25zZSA9IFdURk1vdmUoc3luY0xvYWRSZXN1bHQtPnJlc3BvbnNlKTsKICAgICAgICAgZGF0YSA9
IFdURk1vdmUoc3luY0xvYWRSZXN1bHQtPmRhdGEpOwpAQCAtNTY5LDcgKzU2OSw3IEBAIHZvaWQg
V2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoRnJhbWVMb2FkZXIm
IGZyYW1lTG9hZGVyLCB1bnNpCiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVu
dFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQb29sOjpTZXRX
ZWJQcm9jZXNzSGFzVXBsb2FkcyB7IFByb2Nlc3M6OmlkZW50aWZpZXIoKSB9LCAwKTsKIAogICAg
IGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6UGVyZm9ybVN5bmNocm9ub3VzTG9hZChsb2FkUGFyYW1ldGVycyksIE1lc3Nh
Z2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGVyZm9ybVN5bmNocm9ub3VzTG9h
ZDo6UmVwbHkoZXJyb3IsIHJlc3BvbnNlLCBkYXRhKSwgMCkpIHsKLSAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1JfSUZfQUxMT1dFRChzZXNzaW9uSUQsICJsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5
OiBmYWlsZWQgc2VuZGluZyBzeW5jaHJvbm91cyBuZXR3b3JrIHByb2Nlc3MgbWVzc2FnZSAocGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICVs
dSkiLCBwYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCwgcmVzb3VyY2VMb2FkSWRlbnRpZmllcik7
CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoc2Vzc2lvbklELCAibG9hZFJl
c291cmNlU3luY2hyb25vdXNseTogZmFpbGVkIHNlbmRpbmcgc3luY2hyb25vdXMgbmV0d29yayBw
cm9jZXNzIG1lc3NhZ2UgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlbHUpIiwgcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50
NjQoKSwgcmVzb3VyY2VMb2FkSWRlbnRpZmllcik7CiAgICAgICAgIGlmIChhdXRvKiBwYWdlID0g
d2ViUGFnZSA/IHdlYlBhZ2UtPmNvcmVQYWdlKCkgOiBudWxscHRyKQogICAgICAgICAgICAgcGFn
ZS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZShXZWJDb3Jl
OjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmludGVybmFsRXJyb3JLZXkoKSwgV2ViQ29yZTo6RGlh
Z25vc3RpY0xvZ2dpbmdLZXlzOjpzeW5jaHJvbm91c01lc3NhZ2VGYWlsZWRLZXkoKSwgV2ViQ29y
ZTo6U2hvdWxkU2FtcGxlOjpObyk7CiAgICAgICAgIHJlc3BvbnNlID0gUmVzb3VyY2VSZXNwb25z
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVz
b3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVz
b3VyY2VMb2FkZXIuY3BwCmluZGV4IDg4YmQ1M2JmMWY4ZmI3MzZlYjE3M2VmNjRmMWUzMDNkMWJi
MTAwYzEuLmZhNTM5MjVlYjY4ZjA0MmZlYzc5YmYzODg2MGIyNzYwMzI1ZmI1MWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRl
ci5jcHAKQEAgLTg4LDE2ICs4OCwxNiBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjp3aWxsU2Vu
ZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcHJvcG9zZWRSZXF1ZXN0LCBSZXNvdQogICAgIFJl
ZjxXZWJSZXNvdXJjZUxvYWRlcj4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAKICAgICBMT0coTmV0
d29yaywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0IHRv
ICclcyciLCBwcm9wb3NlZFJlcXVlc3QudXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsK
LSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3aWxsU2VuZFJlcXVlc3Q6IChwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0
ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQ
YXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOworICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIndpbGxTZW5kUmVxdWVzdDogKHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiki
LCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFt
ZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlE
KTsKIAogICAgIGlmIChtX2NvcmVMb2FkZXItPmRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9u
Q2FjaGVIb3N0KCkubWF5YmVMb2FkRmFsbGJhY2tGb3JSZWRpcmVjdChtX2NvcmVMb2FkZXIuZ2V0
KCksIHByb3Bvc2VkUmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSkpIHsKLSAgICAgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgid2lsbFNlbmRSZXF1ZXN0OiBleGl0aW5nIGVhcmx5IGJlY2F1c2Ug
bWF5YmVMb2FkRmFsbGJhY2tGb3JSZWRpcmVjdCByZXR1cm5lZCBmYWxzZSAocGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAi
KSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFy
YW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKKyAgICAg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgid2lsbFNlbmRSZXF1ZXN0OiBleGl0aW5nIGVhcmx5
IGJlY2F1c2UgbWF5YmVMb2FkRmFsbGJhY2tGb3JSZWRpcmVjdCByZXR1cm5lZCBmYWxzZSAocGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUi
IFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Ry
YWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJz
LnJlc291cmNlSUQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgbV9jb3JlTG9hZGVy
LT53aWxsU2VuZFJlcXVlc3QoV1RGTW92ZShwcm9wb3NlZFJlcXVlc3QpLCByZWRpcmVjdFJlc3Bv
bnNlLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldKFJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QpIHsKICAgICAgICAgaWYgKCFtX2NvcmVMb2FkZXIgfHwgIW1f
Y29yZUxvYWRlci0+aWRlbnRpZmllcigpKSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJ3aWxsU2VuZFJlcXVlc3Q6IGV4aXRpbmcgZWFybHkgYmVjYXVzZSBubyBjb3JlbG9h
ZGVyIG9yIGlkZW50aWZpZXIgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5w
YWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2lu
Z1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKCJ3aWxsU2VuZFJlcXVlc3Q6IGV4aXRpbmcgZWFybHkgYmVjYXVzZSBubyBjb3JlbG9hZGVy
IG9yIGlkZW50aWZpZXIgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdl
SUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBt
X3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogCkBAIC0xMTMsMTIgKzExMywxMiBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpk
aWRTZW5kRGF0YSh1aW50NjRfdCBieXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0ZXNUb0JlUwog
dm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VN
ZXNzYWdlKQogewogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9h
ZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UgZm9yICclcycuIFN0YXR1cyAlZC4iLCBtX2NvcmVMb2Fk
ZXItPnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSwgcmVzcG9uc2UuaHR0cFN0YXR1c0Nv
ZGUoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiAo
cGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9
ICUiIFBSSXU2NCAiLCBzdGF0dXMgPSAlZCkiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQu
dG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFt
ZXRlcnMucmVzb3VyY2VJRCwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSk7CisgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiAocGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBzdGF0
dXMgPSAlZCkiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFj
a2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5y
ZXNvdXJjZUlELCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpKTsKIAogICAgIFJlZjxXZWJSZXNv
dXJjZUxvYWRlcj4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAKICAgICBpZiAobV9jb3JlTG9hZGVy
LT5kb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLm1heWJlTG9hZEZhbGxi
YWNrRm9yUmVzcG9uc2UobV9jb3JlTG9hZGVyLmdldCgpLCByZXNwb25zZSkpIHsKLSAgICAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiBub3QgY29udGludWlu
ZyBsb2FkIGJlY2F1c2UgdGhlIGNvbnRlbnQgaXMgYWxyZWFkeSBjYWNoZWQgKHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQg
IikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1Bh
cmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAg
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZTogbm90IGNvbnRp
bnVpbmcgbG9hZCBiZWNhdXNlIHRoZSBjb250ZW50IGlzIGFscmVhZHkgY2FjaGVkIChwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJ
dTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tp
bmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVz
b3VyY2VJRCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEzNSw3ICsxMzUsNyBAQCB2
b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UsIGJvbwogICAgICAgICAgICAgaWYgKG1fY29yZUxvYWRlciAmJiBt
X2NvcmVMb2FkZXItPmlkZW50aWZpZXIoKSkKICAgICAgICAgICAgICAgICBzZW5kKE1lc3NhZ2Vz
OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OkNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkpOwog
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
ImRpZFJlY2VpdmVSZXNwb25zZTogbm90IGNvbnRpbnVpbmcgbG9hZCBiZWNhdXNlIG5vIGNvcmVM
b2FkZXIgb3Igbm8gSUQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdl
SUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1Bh
cmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiBub3QgY29udGludWluZyBsb2FkIGJlY2F1c2Ugbm8g
Y29yZUxvYWRlciBvciBubyBJRCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQ
Ukl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJz
LnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0
KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwogICAgICAgICB9OwogICAgIH0K
IApAQCAtMTQ4LDcgKzE0OCw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVE
YXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgaW50NjRfdCBlCiAgICAgQVNTRVJU
X1dJVEhfTUVTU0FHRSghbV9pc1Byb2Nlc3NpbmdOZXR3b3JrUmVzcG9uc2UsICJOZXR3b3JrIHBy
b2Nlc3Mgc2hvdWxkIG5vdCBzZW5kIGRhdGEgdW50aWwgd2UndmUgdmFsaWRhdGVkIHRoZSByZXNw
b25zZSIpOwogCiAgICAgaWYgKCFtX251bUJ5dGVzUmVjZWl2ZWQpIHsKLSAgICAgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZURhdGE6IFN0YXJ0ZWQgcmVjZWl2aW5nIGRhdGEg
KHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQg
PSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwg
bV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3Vy
Y2VJRCk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVEYXRhOiBT
dGFydGVkIHJlY2VpdmluZyBkYXRhIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRl
cnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50
NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CiAgICAgfQogICAgIG1fbnVt
Qnl0ZXNSZWNlaXZlZCArPSBkYXRhLnNpemUoKTsKIApAQCAtMTU4LDcgKzE1OCw3IEBAIHZvaWQg
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5j
ZSYgZGF0YSwgaW50NjRfdCBlCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hSZXNv
dXJjZUxvYWQoY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3JrTG9hZE1ldHJpY3MpCiB7
CiAgICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZp
bmlzaFJlc291cmNlTG9hZCBmb3IgJyVzJyIsIG1fY29yZUxvYWRlci0+dXJsKCkuc3RyaW5nKCku
bGF0aW4xKCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRGaW5pc2hS
ZXNvdXJjZUxvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAi
LCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGxlbmd0aCA9ICV6ZCkiLCBtX3RyYWNraW5nUGFy
YW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwg
bV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCwgbV9udW1CeXRlc1JlY2VpdmVkKTsKKyAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRGaW5pc2hSZXNvdXJjZUxvYWQ6IChwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJ
dTY0ICIsIGxlbmd0aCA9ICV6ZCkiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50
NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5n
UGFyYW1ldGVycy5yZXNvdXJjZUlELCBtX251bUJ5dGVzUmVjZWl2ZWQpOwogCiAgICAgQVNTRVJU
X1dJVEhfTUVTU0FHRSghbV9pc1Byb2Nlc3NpbmdOZXR3b3JrUmVzcG9uc2UsICJMb2FkIHNob3Vs
ZCBub3QgYmUgYWJsZSB0byBmaW5pc2ggYmVmb3JlIHdlJ3ZlIHZhbGlkYXRlZCB0aGUgcmVzcG9u
c2UiKTsKICAgICBtX2NvcmVMb2FkZXItPmRpZEZpbmlzaExvYWRpbmcobmV0d29ya0xvYWRNZXRy
aWNzKTsKQEAgLTE2Nyw3ICsxNjcsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRGaW5p
c2hSZXNvdXJjZUxvYWQoY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3JrTAogdm9pZCBX
ZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbFJlc291cmNlTG9hZChjb25zdCBSZXNvdXJjZUVycm9y
JiBlcnJvcikKIHsKICAgICBMT0coTmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxv
YWRlcjo6ZGlkRmFpbFJlc291cmNlTG9hZCBmb3IgJyVzJyIsIG1fY29yZUxvYWRlci0+dXJsKCku
c3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJk
aWRGYWlsUmVzb3VyY2VMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQ
Ukl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJz
LnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNr
aW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJk
aWRGYWlsUmVzb3VyY2VMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQ
Ukl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJz
LnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0
KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwogCiAgICAgQVNTRVJUX1dJVEhf
TUVTU0FHRSghbV9pc1Byb2Nlc3NpbmdOZXR3b3JrUmVzcG9uc2UsICJMb2FkIHNob3VsZCBub3Qg
YmUgYWJsZSB0byBmaW5pc2ggYmVmb3JlIHdlJ3ZlIHZhbGlkYXRlZCB0aGUgcmVzcG9uc2UiKTsK
IApAQCAtMTc5LDcgKzE3OSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxSZXNv
dXJjZUxvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB2b2lkIFdlYlJlc291cmNlTG9h
ZGVyOjpkaWRCbG9ja0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCkKIHsKICAgICBMT0coTmV0d29y
aywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkQmxvY2tBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSBmb3IgJyVzJyIsIG1fY29yZUxvYWRlci0+dXJsKCkuc3RyaW5nKCkubGF0aW4x
KCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRCbG9ja0F1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBh
Z2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5n
UGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRC
bG9ja0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQ
YXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlE
LnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwogCiAgICAgbV9j
b3JlTG9hZGVyLT5kaWRCbG9ja0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCk7CiB9CkBAIC0xODcs
NyArMTg3LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkQmxvY2tBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSgpCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpzdG9wTG9hZGluZ0FmdGVyWEZy
YW1lT3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVkKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlKQogewogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJl
c291cmNlTG9hZGVyOjpzdG9wTG9hZGluZ0FmdGVyWEZyYW1lT3B0aW9uc09yQ29udGVudFNlY3Vy
aXR5UG9saWN5RGVuaWVkIGZvciAnJXMnIiwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5s
YXRpbjEoKS5kYXRhKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0b3BMb2FkaW5n
QWZ0ZXJYRnJhbWVPcHRpb25zT3JDb250ZW50U2VjdXJpdHlQb2xpY3lEZW5pZWQ6IChwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJ
dTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tp
bmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwor
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0b3BMb2FkaW5nQWZ0ZXJYRnJhbWVPcHRpb25z
T3JDb250ZW50U2VjdXJpdHlQb2xpY3lEZW5pZWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2lu
Z1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1l
SUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CiAKICAgICBt
X2NvcmVMb2FkZXItPmRvY3VtZW50TG9hZGVyKCktPnN0b3BMb2FkaW5nQWZ0ZXJYRnJhbWVPcHRp
b25zT3JDb250ZW50U2VjdXJpdHlQb2xpY3lEZW5pZWQobV9jb3JlTG9hZGVyLT5pZGVudGlmaWVy
KCksIHJlc3BvbnNlKTsKIH0KQEAgLTE5NiwxMyArMTk2LDEzIEBAIHZvaWQgV2ViUmVzb3VyY2VM
b2FkZXI6OnN0b3BMb2FkaW5nQWZ0ZXJYRnJhbWVPcHRpb25zT3JDb250ZW50U2VjdXJpdHlQb2xp
Y3lEZW5pCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzb3VyY2UoY29uc3Qg
U2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSYgaGFuZGxlKQogewogICAgIExPRyhOZXR3b3JrLCAi
KFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzb3VyY2UgZm9yICcl
cyciLCBtX2NvcmVMb2FkZXItPnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSk7Ci0gICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc291cmNlOiAocGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAi
KSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFy
YW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKKyAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzb3VyY2U6IChwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIp
IiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJh
bWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJ
RCk7CiAKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBoYW5kbGUudHJ5V3JhcElu
U2hhcmVkQnVmZmVyKCk7CiAKICAgICBpZiAoIWJ1ZmZlcikgewogICAgICAgICBMT0dfRVJST1Io
IlVuYWJsZSB0byBjcmVhdGUgYnVmZmVyIGZyb20gU2hhcmVhYmxlUmVzb3VyY2Ugc2VudCBmcm9t
IHRoZSBuZXR3b3JrIHByb2Nlc3MuIik7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
ImRpZFJlY2VpdmVSZXNvdXJjZTogVW5hYmxlIHRvIGNyZWF0ZSBTaGFyZWRCdWZmZXIgKHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQ
Ukl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFj
a2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7
CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNvdXJjZTogVW5h
YmxlIHRvIGNyZWF0ZSBTaGFyZWRCdWZmZXIgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFy
YW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50
b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKICAgICAgICAgaWYg
KGF1dG8qIGZyYW1lID0gbV9jb3JlTG9hZGVyLT5mcmFtZSgpKSB7CiAgICAgICAgICAgICBpZiAo
YXV0byogcGFnZSA9IGZyYW1lLT5wYWdlKCkpCiAgICAgICAgICAgICAgICAgcGFnZS0+ZGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZShXZWJDb3JlOjpEaWFnbm9z
dGljTG9nZ2luZ0tleXM6OmludGVybmFsRXJyb3JLZXkoKSwgV2ViQ29yZTo6RGlhZ25vc3RpY0xv
Z2dpbmdLZXlzOjpjcmVhdGVTaGFyZWRCdWZmZXJGYWlsZWRLZXkoKSwgV2ViQ29yZTo6U2hvdWxk
U2FtcGxlOjpObyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViUmVzb3VyY2VMb2FkZXIuaAppbmRleCA1ODY1NDM3MThlNWU4Mzg4YjhiNDFhYjAyMDM3YWM3
NmU3ODY5MzdjLi45YzExNDdkYTA1MTUzZGQ3YWM0NGFmMzE1ODFlMjIxYjY5YmU5MjRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9h
ZGVyLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVk
ZSAiTWVzc2FnZVNlbmRlci5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZVJlc291cmNlLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJ
ZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CkBAIC01Miw3ICs1Myw3IEBAIGNsYXNzIFdlYlJlc291cmNlTG9hZGVyIDogcHVi
bGljIFJlZkNvdW50ZWQ8V2ViUmVzb3VyY2VMb2FkZXI+LCBwdWJsaWMgSVBDOjpNZXNzCiBwdWJs
aWM6CiAgICAgc3RydWN0IFRyYWNraW5nUGFyYW1ldGVycyB7CiAgICAgICAgIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJRDsKLSAgICAgICAgdWludDY0X3QgZnJhbWVJRCB7IDAgfTsKKyAg
ICAgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQ7CiAgICAgICAgIFJlc291cmNl
TG9hZElkZW50aWZpZXIgcmVzb3VyY2VJRCB7IDAgfTsKICAgICB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5jcHAKaW5kZXggNmZjMDljNGY2NWIyNDViNjBiZjRkNGY1OTdhOWY5
MGFkNGQwYWFmOS4uNDlkMjBjN2M0OWMwMmFhOTU5YWE0YWU0ZDllZWM4ZmU4M2M1ZmU3YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcApAQCAtNzMsNyArNzMsNyBAQCBzdGF0
aWMgY29uc3QgU2Vjb25kcyBzeW5jV29ya2VyVGVybWluYXRpb25UaW1lb3V0IHsgMTAwX21zIH07
IC8vIE9ubHkgdXNlZCBieSBsYQogCiBjbGFzcyBTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGll
bnQgZmluYWwgOiBwdWJsaWMgRW1wdHlGcmFtZUxvYWRlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAg
U2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50KFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1c2VyQWdl
bnQpCisgICAgU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50KFdlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0
IFN0cmluZyYgdXNlckFnZW50KQogICAgICAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQog
ICAgICAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAgICAgLCBtX3BhZ2VJRChwYWdl
SUQpCkBAIC05NiwxMyArOTYsMTMgQEAgcHJpdmF0ZToKIAogICAgIFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CiAgICAgT3B0aW9u
YWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fcGFnZUlEOyB9Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXI+IGZyYW1lSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KICAgICBT
dHJpbmcgdXNlckFnZW50KGNvbnN0IFVSTCYpIGZpbmFsIHsgcmV0dXJuIG1fdXNlckFnZW50OyB9
CiAKICAgICBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiYgbV9jb25uZWN0aW9uOwogICAg
IFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwotICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IG1fcGFnZUlEOwotICAgIHVpbnQ2NF90IG1fZnJhbWVJRCB7IDAgfTsKKyAgICBQYWdlSWRlbnRp
ZmllciBtX3BhZ2VJRDsKKyAgICBGcmFtZUlkZW50aWZpZXIgbV9mcmFtZUlEOwogICAgIFN0cmlu
ZyBtX3VzZXJBZ2VudDsKIH07CiAKQEAgLTE1Myw3ICsxNTMsOCBAQCB2b2lkIFdlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uOjppbnN0YWxsU2VydmljZVdvcmtlcihjb25zdCBTZXJ2aWNlV29y
a2VyQ29udAogCiAgICAgLy8gRklYTUU6IFRoaXMgbWV0aG9kIHNob3VsZCBiZSBtb3ZlZCBkaXJl
Y3RseSB0byBXZWJDb3JlOjpTV0NvbnRleHRNYW5hZ2VyOjpDb25uZWN0aW9uCiAgICAgLy8gSWYg
aXQgd2VyZW4ndCBmb3IgU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50J3MgZGVwZW5kZW5j
ZSBvbiBXZWJEb2N1bWVudExvYWRlciwgdGhpcyBjb3VsZCBhbHJlYWR5IGhhcHBlbi4KLSAgICBh
dXRvIGZyYW1lTG9hZGVyQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxTZXJ2aWNlV29ya2VyRnJh
bWVMb2FkZXJDbGllbnQ+KCp0aGlzLCBzZXNzaW9uSUQsIG1fcGFnZUlELCArK21fcHJldmlvdXNT
ZXJ2aWNlV29ya2VySUQsIGVmZmVjdGl2ZVVzZXJBZ2VudCk7CisgICAgLy8gRklYTUU6IFdlaXJk
IHRvIHBhc3MgbV9wcmV2aW91c1NlcnZpY2VXb3JrZXJJRCBhcyBhIEZyYW1lSWRlbnRpZmllci4K
KyAgICBhdXRvIGZyYW1lTG9hZGVyQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxTZXJ2aWNlV29y
a2VyRnJhbWVMb2FkZXJDbGllbnQ+KCp0aGlzLCBzZXNzaW9uSUQsIG1fcGFnZUlELCBmcmFtZUlk
ZW50aWZpZXJGcm9tSUQoKyttX3ByZXZpb3VzU2VydmljZVdvcmtlcklEKSwgZWZmZWN0aXZlVXNl
ckFnZW50KTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUg
PSBmcmFtZUxvYWRlckNsaWVudC5nZXQoKTsKICAgICBtX2xvYWRlcnMuYWRkKFdURk1vdmUoZnJh
bWVMb2FkZXJDbGllbnQpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAzYzg3MmY1YWRm
MzliZWFjZDNhNzA2NjdiMjY4OWQzOGM5YjExMTJlLi5mY2QwOThlNDg0MGE1OGEyYjVhMjE5N2Vi
NTI5MWUwYTRmNDgyOWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMjY1LDcgKzI2NSw3
IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpmb2N1c2VkRnJhbWVDaGFuZ2VkKEZyYW1lKiBmcmFt
ZSkKIHsKICAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBmcmFtZSA/IFdlYkZyYW1lOjpmcm9tQ29y
ZUZyYW1lKCpmcmFtZSkgOiBudWxscHRyOwogCi0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpG
b2N1c2VkRnJhbWVDaGFuZ2VkKHdlYkZyYW1lID8gd2ViRnJhbWUtPmZyYW1lSUQoKSA6IDApLCBt
X3BhZ2UucGFnZUlEKCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nl
c3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Rm9jdXNlZEZyYW1l
Q2hhbmdlZCh3ZWJGcmFtZSA/IG1ha2VPcHRpb25hbCh3ZWJGcmFtZS0+ZnJhbWVJRCgpKSA6IFdU
Rjo6bnVsbG9wdCksIG1fcGFnZS5wYWdlSUQoKSk7CiB9CiAKIFBhZ2UqIFdlYkNocm9tZUNsaWVu
dDo6Y3JlYXRlV2luZG93KEZyYW1lJiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVx
dWVzdCwgY29uc3QgV2luZG93RmVhdHVyZXMmIHdpbmRvd0ZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0
aW9uQWN0aW9uJiBuYXZpZ2F0aW9uQWN0aW9uKQpAQCAtNjI1LDcgKzYyNSw3IEBAIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lJiBmcmFtZSwgY29uc3QgSW50
U2l6ZSYgc2l6ZSkgY29uCiAgICAgICAgIFdlYkZyYW1lKiBsYXJnZXN0RnJhbWUgPSBmaW5kTGFy
Z2VzdEZyYW1lSW5GcmFtZVNldChtX3BhZ2UpOwogICAgICAgICBpZiAobGFyZ2VzdEZyYW1lICE9
IG1fY2FjaGVkRnJhbWVTZXRMYXJnZXN0RnJhbWUuZ2V0KCkpIHsKICAgICAgICAgICAgIG1fY2Fj
aGVkRnJhbWVTZXRMYXJnZXN0RnJhbWUgPSBsYXJnZXN0RnJhbWU7Ci0gICAgICAgICAgICBtX3Bh
Z2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGcmFtZVNldExhcmdlc3RGcmFtZUNoYW5n
ZWQobGFyZ2VzdEZyYW1lID8gbGFyZ2VzdEZyYW1lLT5mcmFtZUlEKCkgOiAwKSk7CisgICAgICAg
ICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGcmFtZVNldExhcmdlc3RG
cmFtZUNoYW5nZWQobGFyZ2VzdEZyYW1lID8gbWFrZU9wdGlvbmFsKGxhcmdlc3RGcmFtZS0+ZnJh
bWVJRCgpKSA6IFdURjo6bnVsbG9wdCkpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xMzE2LDEy
ICsxMzE2LDEyIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRJbnZhbGlkYXRlRG9jdW1lbnRN
YXJrZXJSZWN0cygpCiB9CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQot
dm9pZCBXZWJDaHJvbWVDbGllbnQ6Omhhc1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4m
JiBzdWJGcmFtZURvbWFpbiwgUmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgdWlu
dDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6aGFzU3RvcmFn
ZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdpc3RyYWJsZURv
bWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgbV9wYWdlLmhhc1N0b3JhZ2VBY2Nlc3MoV1RGTW92ZShzdWJGcmFtZURvbWFpbiks
IFdURk1vdmUodG9wRnJhbWVEb21haW4pLCBmcmFtZUlELCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhS
ZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdpc3RyYWJsZURvbWFpbiYmIHRv
cEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21w
dFdhc1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpy
ZXF1ZXN0U3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBS
ZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgUGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dh
c0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgbV9wYWdlLnJlcXVlc3RTdG9yYWdlQWNjZXNzKFdURk1vdmUoc3ViRnJhbWVE
b21haW4pLCBXVEZNb3ZlKHRvcEZyYW1lRG9tYWluKSwgZnJhbWVJRCwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGNlZDM2YTZjMjViN2U0Zjgz
NDRhNTg5OTQwMDY3OTFmN2NjOTI3NmYuLjJkYzY2MjJjMWI3ZjFjNWE5NWEyY2NkNzliMzIwOWJi
NTg3MmE2MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTM2Nyw4ICszNjcsOCBAQCBwcml2YXRl
OgogICAgIHZvaWQgZGlkSW52YWxpZGF0ZURvY3VtZW50TWFya2VyUmVjdHMoKSBmaW5hbDsKIAog
I2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgdm9pZCBoYXNTdG9yYWdl
QWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpIGZpbmFsOwotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4mJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNz
V2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJikgZmlu
YWw7CisgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
JiYgc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVE
b21haW4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CisgICAgdm9pZCBy
ZXF1ZXN0U3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1l
RG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXVEY6OkNvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFdlYkNv
cmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYpIGZpbmFsOwogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAKaW5kZXggNjU3MzliYjhhYTk2ZGZlOGMyYjBlMjZjMTcxYTlmOWI3NmI3MzQwOS4uNzA5ODBl
ZTViNWI4ZDcwMzdlNDViM2YyYWYzZTJiYjFmYTAzOTRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCkBAIC0xMjAsNyArMTIwLDcgQEAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpwYWdlSUQoKSBjb25zdAogICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CiB9CiAKLU9wdGlvbmFsPHVpbnQ2NF90PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZnJh
bWVJRCgpIGNvbnN0CitPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpmcmFtZUlEKCkgY29uc3QKIHsKICAgICBpZiAobV9mcmFtZSkKICAgICAgICAgcmV0dXJu
IG1fZnJhbWUtPmZyYW1lSUQoKTsKQEAgLTU0Niw3ICs1NDYsNyBAQCB2b2lkIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgUmVzb3VyY2VF
cnJvciYgZQogICAgIGlmICghd2ViUGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUkVMRUFT
RV9MT0coTmV0d29yaywgIiVwIC0gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFp
bFByb3Zpc2lvbmFsTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIpIiwgdGhpcywgd2ViUGFnZS0+cGFnZUlEKCkudG9VSW50NjQoKSwgbV9mcmFtZS0+ZnJh
bWVJRCgpKTsKKyAgICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBXZWJGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIikiLCB0aGlzLCB3ZWJQYWdlLT5wYWdlSUQoKS50b1VJ
bnQ2NCgpLCBtX2ZyYW1lLT5mcmFtZUlEKCkudG9VSW50NjQoKSk7CiAKICAgICBSZWZQdHI8QVBJ
OjpPYmplY3Q+IHVzZXJEYXRhOwogCkBAIC01ODIsNyArNTgyLDcgQEAgdm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJv
cikKICAgICBpZiAoIXdlYlBhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJFTEVBU0VfTE9H
KE5ldHdvcmssICIlcCAtIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2Fk
OiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIikiLCB0aGlzLCB3
ZWJQYWdlLT5wYWdlSUQoKS50b1VJbnQ2NCgpLCBtX2ZyYW1lLT5mcmFtZUlEKCkpOworICAgIFJF
TEVBU0VfTE9HKE5ldHdvcmssICIlcCAtIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERp
ZEZhaWxMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiki
LCB0aGlzLCB3ZWJQYWdlLT5wYWdlSUQoKS50b1VJbnQ2NCgpLCBtX2ZyYW1lLT5mcmFtZUlEKCku
dG9VSW50NjQoKSk7CiAKICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IHVzZXJEYXRhOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGM4ZmIyYWYyMTI1NjZjNjQ2ODYwNzdhMGM4OWFm
ODEwNTM5MGE2ODAuLjY0MWI4YzA2NjM0MTM4MGMwNzAyODIwYjg3ODlkZDE4NWU4YmIwNDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGFwcGx5VG9Eb2N1bWVudExvYWRlcihXZWJzaXRlUG9saWNpZXNEYXRhJiYpOwogCiAg
ICAgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCgpIGNvbnN0IGZpbmFs
OwotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEKCkgY29uc3QgZmluYWw7CisgICAgT3B0
aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKCkgY29uc3QgZmluYWw7CiAg
ICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgZmluYWw7CiAKICNpZiBFTkFCTEUo
UkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkNvb2tpZUphci5jcHAKaW5kZXggNzM4YmU5MmI5MmRjNzNkMmRmNjc3ZWUz
NGVjMTMwODFhNjBmMWExYy4uZjZjNTU3ZDVmMGZkMjAxZGJiNTA1MTE0N2ViYzI3MGE1YjQ1Y2Yz
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2ll
SmFyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVK
YXIuY3BwCkBAIC01MCw3ICs1MCw3IEBAIFdlYkNvb2tpZUphcjo6V2ViQ29va2llSmFyKCkKIAog
U3RyaW5nIFdlYkNvb2tpZUphcjo6Y29va2llcyhXZWJDb3JlOjpEb2N1bWVudCYgZG9jdW1lbnQs
IGNvbnN0IFVSTCYgdXJsKSBjb25zdAogewotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlE
OworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQ
YWdlSWRlbnRpZmllcj4gcGFnZUlEOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZy
YW1lKCkpIHsKICAgICAgICAgZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFt
ZUlEKCk7CkBAIC02Nyw3ICs2Nyw3IEBAIFN0cmluZyBXZWJDb29raWVKYXI6OmNvb2tpZXMoV2Vi
Q29yZTo6RG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCkgY29uc3QKIAogdm9pZCBX
ZWJDb29raWVKYXI6OnNldENvb2tpZXMoV2ViQ29yZTo6RG9jdW1lbnQmIGRvY3VtZW50LCBjb25z
dCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpCiB7Ci0gICAgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlE
OwogICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7CiAgICAgaWYgKGF1dG8qIGZy
YW1lID0gZG9jdW1lbnQuZnJhbWUoKSkgewogICAgICAgICBmcmFtZUlEID0gZnJhbWUtPmxvYWRl
cigpLmNsaWVudCgpLmZyYW1lSUQoKTsKQEAgLTg1LDcgKzg1LDcgQEAgYm9vbCBXZWJDb29raWVK
YXI6OmNvb2tpZXNFbmFibGVkKGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50JiBkb2N1bWVudCkgY29u
c3QKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb3JlOjpT
ZWN1cmVDb29raWVzQWNjZXNzZWQ+IFdlYkNvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZp
ZWxkVmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3Qg
VVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRp
Zmllcj4gcGFnZUlELCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJl
Q29va2llcykgY29uc3QKK3N0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvcmU6OlNlY3VyZUNvb2tpZXNB
Y2Nlc3NlZD4gV2ViQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25z
dCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0
aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
cGFnZUlELCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2ll
cykgY29uc3QKIHsKICAgICBTdHJpbmcgY29va2llU3RyaW5nOwogICAgIGJvb2wgc2VjdXJlQ29v
a2llc0FjY2Vzc2VkID0gZmFsc2U7CkBAIC05Niw3ICs5Niw3IEBAIHN0ZDo6cGFpcjxTdHJpbmcs
IFdlYkNvcmU6OlNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gV2ViQ29va2llSmFyOjpjb29raWVSZXF1
ZXN0SGVhCiAKIGJvb2wgV2ViQ29va2llSmFyOjpnZXRSYXdDb29raWVzKGNvbnN0IFdlYkNvcmU6
OkRvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwsIFZlY3RvcjxXZWJDb3JlOjpDb29r
aWU+JiByYXdDb29raWVzKSBjb25zdAogewotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlE
OworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQ
YWdlSWRlbnRpZmllcj4gcGFnZUlEOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZy
YW1lKCkpIHsKICAgICAgICAgZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFt
ZUlEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJD
b29raWVKYXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUph
ci5oCmluZGV4IDU1OWJkMGU1MGJiZWMzNWZmYjI1NmI5MTJiN2I0NmRhOTk0YjJkNDguLjVkY2Fj
ZGQ5NjhlNmE0YjA2MjdjNzg3YzZkYTFhNTE1NDcxYmY4OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5oCkBAIC0zNiw3ICszNiw3IEBAIHB1
YmxpYzoKICAgICBTdHJpbmcgY29va2llcyhXZWJDb3JlOjpEb2N1bWVudCYsIGNvbnN0IFVSTCYp
IGNvbnN0IGZpbmFsOwogICAgIHZvaWQgc2V0Q29va2llcyhXZWJDb3JlOjpEb2N1bWVudCYsIGNv
bnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKSBmaW5hbDsKICAgICBib29sIGNv
b2tpZXNFbmFibGVkKGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50JikgY29uc3QgZmluYWw7Ci0gICAg
c3RkOjpwYWlyPFN0cmluZywgV2ViQ29yZTo6U2VjdXJlQ29va2llc0FjY2Vzc2VkPiBjb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBQQUw6OlNlc3Npb25JRCYsIGNvbnN0IFVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
PiwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0IGZpbmFsOworICAgIHN0ZDo6
cGFpcjxTdHJpbmcsIFdlYkNvcmU6OlNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gY29va2llUmVxdWVz
dEhlYWRlckZpZWxkVmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBjb25zdCBVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFs
PFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyPiwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0IGZpbmFsOwogICAgIGJv
b2wgZ2V0UmF3Q29va2llcyhjb25zdCBXZWJDb3JlOjpEb2N1bWVudCYsIGNvbnN0IFVSTCYsIFZl
Y3RvcjxXZWJDb3JlOjpDb29raWU+JikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBkZWxldGVDb29r
aWUoY29uc3QgV2ViQ29yZTo6RG9jdW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGNv
b2tpZU5hbWUpIGZpbmFsOwogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkZyYW1lLmNwcAppbmRleCA2MGNmZDhkMmExNzU0YTdhY2VkNThkNjFkZjE3YmU0
YzE0MzEzNjk0Li5mMGViZmVkYmIyZTk1M2FkMGZjMDdmOWY4MTY2MDlkYjk3MzViNjY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC05NSwx
MiArOTUsNiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogREVGSU5FX0RFQlVHX09OTFlf
R0xPQkFMKFdURjo6UmVmQ291bnRlZExlYWtDb3VudGVyLCB3ZWJGcmFtZUNvdW50ZXIsICgiV2Vi
RnJhbWUiKSk7CiAKLXN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUZyYW1lSUQoKQotewotICAgIHN0
YXRpYyB1aW50NjRfdCB1bmlxdWVGcmFtZUlEID0gMTsKLSAgICByZXR1cm4gdW5pcXVlRnJhbWVJ
RCsrOwotfQotCiBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVMaXN0ZW5lcklEKCkKIHsKICAgICBz
dGF0aWMgdWludDY0X3QgdW5pcXVlTGlzdGVuZXJJRCA9IDE7CkBAIC0xNDgsNyArMTQyLDcgQEAg
UmVmPFdlYkZyYW1lPiBXZWJGcmFtZTo6Y3JlYXRlKHN0ZDo6dW5pcXVlX3B0cjxXZWJGcmFtZUxv
YWRlckNsaWVudD4gZnJhbWVMb2FkZXIKIAogV2ViRnJhbWU6OldlYkZyYW1lKHN0ZDo6dW5pcXVl
X3B0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4gZnJhbWVMb2FkZXJDbGllbnQpCiAgICAgOiBtX2Zy
YW1lTG9hZGVyQ2xpZW50KFdURk1vdmUoZnJhbWVMb2FkZXJDbGllbnQpKQotICAgICwgbV9mcmFt
ZUlEKGdlbmVyYXRlRnJhbWVJRCgpKQorICAgICwgbV9mcmFtZUlEKEZyYW1lSWRlbnRpZmllcjo6
Z2VuZXJhdGUoKSkKIHsKICAgICBtX2ZyYW1lTG9hZGVyQ2xpZW50LT5zZXRXZWJGcmFtZSh0aGlz
KTsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRXZWJGcmFtZShtX2ZyYW1lSUQsIHRo
aXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJh
bWUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKaW5kZXgg
NzFiMzhmNjFhYjE5NTA1NWI0NDdlODdiZmZmN2U5NjQwNmRlZWE5Yy4uMWVjNTA3NTQyNTdmODY2
ZWIyYWU4ZWM0Y2IwYzZkMWZmZTg2NTZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJGcmFtZS5oCkBAIC04MCw3ICs4MCw3IEBAIHB1YmxpYzoKICAgICBXZWJDb3Jl
OjpGcmFtZSogY29yZUZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9jb3JlRnJhbWU7IH0KIAogICAg
IEZyYW1lSW5mb0RhdGEgaW5mbygpIGNvbnN0OwotICAgIHVpbnQ2NF90IGZyYW1lSUQoKSBjb25z
dCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQogCiAgICAgZW51bSBjbGFzcyBGb3JO
YXZpZ2F0aW9uQWN0aW9uIHsgTm8sIFllcyB9OwogICAgIHVpbnQ2NF90IHNldFVwUG9saWN5TGlz
dGVuZXIoV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGlj
eUZ1bmN0aW9uJiYsIEZvck5hdmlnYXRpb25BY3Rpb24pOwpAQCAtMTg3LDcgKzE4Nyw3IEBAIHBy
aXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50PiBtX2ZyYW1l
TG9hZGVyQ2xpZW50OwogICAgIExvYWRMaXN0ZW5lciogbV9sb2FkTGlzdGVuZXIgeyBudWxscHRy
IH07CiAgICAgCi0gICAgdWludDY0X3QgbV9mcmFtZUlEIHsgMCB9OworICAgIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBtX2ZyYW1lSUQ7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAg
IHVpbnQ2NF90IG1fZmlyc3RMYXllclRyZWVUcmFuc2FjdGlvbklEQWZ0ZXJEaWRDb21taXRMb2Fk
IHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
SW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3Bl
Y3Rvci5jcHAKaW5kZXggZjI4ZGU1NjhlYzUxNWE1MWMzOGUwOWNhYWM0NGVhNzdmMjFkM2RiZS4u
MWYwMTZhZWFkYTk5NmY5NjNkZDVlNGVmYjk2ZDBjYWZlNjBhZDYxNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCkBAIC0yMDksNyAr
MjA5LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3I6OnNob3dSZXNvdXJjZXMoKQogICAgIH0pOwogfQog
Ci12b2lkIFdlYkluc3BlY3Rvcjo6c2hvd01haW5SZXNvdXJjZUZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSWRlbnRpZmllcikKK3ZvaWQgV2ViSW5zcGVjdG9yOjpzaG93TWFpblJlc291cmNlRm9yRnJh
bWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSWRlbnRpZmllcikKIHsKICAgICBXZWJG
cmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlkZW50
aWZpZXIpOwogICAgIGlmICghZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkluc3BlY3Rvci5oCmluZGV4IDQ4OWU0MWMwNzRmYzM2M2IzODAxMTYxN2I0Yzc1
ODI0ZGY1OWQ0N2IuLjI2Yjg5ZTUyMjc3OTc4ZDUzYTMzZmUzYzcxMTVlYWViYmIzODI5NTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oCkBA
IC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiQ29ubmVj
dGlvbi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
RnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTYwLDcgKzYxLDcgQEAgcHVibGljOgogICAg
IHZvaWQgc2hvd0NvbnNvbGUoKTsKICAgICB2b2lkIHNob3dSZXNvdXJjZXMoKTsKIAotICAgIHZv
aWQgc2hvd01haW5SZXNvdXJjZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSWRlbnRpZmllcik7Cisg
ICAgdm9pZCBzaG93TWFpblJlc291cmNlRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
KTsKIAogICAgIHZvaWQgc2V0QXR0YWNoZWQoYm9vbCBhdHRhY2hlZCkgeyBtX2F0dGFjaGVkID0g
YXR0YWNoZWQ7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViSW5zcGVjdG9yLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViSW5zcGVjdG9yLm1lc3NhZ2VzLmluCmluZGV4IGI2ZjNjMDFiMjQyMjI2YTIwZmI0
OWM1NDIyMDNhNmRjZGUyMjFlNjkuLmRhZjc0YjVlNmIwNDMwYjZiMGNhM2JlMjYwZjVmZmFiZWNk
NjU0ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYklu
c3BlY3Rvci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJJbnNwZWN0b3IubWVzc2FnZXMuaW4KQEAgLTI5LDcgKzI5LDcgQEAgbWVzc2FnZXMgLT4g
V2ViSW5zcGVjdG9yIHsKICAgICBTaG93Q29uc29sZSgpCiAgICAgU2hvd1Jlc291cmNlcygpCiAK
LSAgICBTaG93TWFpblJlc291cmNlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJZGVudGlmaWVyKQor
ICAgIFNob3dNYWluUmVzb3VyY2VGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJZGVudGlmaWVyKQogCiAgICAgT3BlbkluTmV3VGFiKFN0cmluZyB1cmwpCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMTMzNjU3MGQ5M2Fh
NTExMDY5Nzg1NjExNzAyNjA4OTNiOGEzY2RiNC4uMDFmZjFhNGY0NTdlNTM5MzU2MTQzMjRhMDk0
ODg0MDNhNzUwNTVhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKQEAgLTE0OTcsNyArMTQ5Nyw3IEBAIHZvaWQgV2ViUGFnZTo6c3VzcGVuZEZvclBy
b2Nlc3NTd2FwKCkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFN1c3BlbmRB
ZnRlclByb2Nlc3NTd2FwKCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OmxvYWRVUkxJbkZyYW1lKFVS
TCYmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQg
V2ViUGFnZTo6bG9hZFVSTEluRnJhbWUoVVJMJiYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVy
LCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBpZiAoIWZyYW1lKQpA
QCAtMTUwNiw3ICsxNTA2LDcgQEAgdm9pZCBXZWJQYWdlOjpsb2FkVVJMSW5GcmFtZShVUkwmJiB1
cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIHVpbnQ2NF90IGZyYW1lSUQKICAgICBmcmFtZS0+
Y29yZUZyYW1lKCktPmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVxdWVzdCgqZnJhbWUtPmNvcmVG
cmFtZSgpLCBSZXNvdXJjZVJlcXVlc3QodXJsLCByZWZlcnJlciksIFNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6bG9hZERh
dGFJbkZyYW1lKElQQzo6RGF0YVJlZmVyZW5jZSYmIGRhdGEsIFN0cmluZyYmIE1JTUVUeXBlLCBT
dHJpbmcmJiBlbmNvZGluZ05hbWUsIFVSTCYmIGJhc2VVUkwsIHVpbnQ2NF90IGZyYW1lSUQpCit2
b2lkIFdlYlBhZ2U6OmxvYWREYXRhSW5GcmFtZShJUEM6OkRhdGFSZWZlcmVuY2UmJiBkYXRhLCBT
dHJpbmcmJiBNSU1FVHlwZSwgU3RyaW5nJiYgZW5jb2RpbmdOYW1lLCBVUkwmJiBiYXNlVVJMLCBG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBpZiAoIWZyYW1lKQpAQCAt
MTYxNCw3ICsxNjE0LDcgQEAgdm9pZCBXZWJQYWdlOjpuYXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11
bGF0ZWRDbGljayhjb25zdCBTdHJpbmcmIHVybCwgSW50UG9pbnQgZG8KICAgICBtYWluRnJhbWUt
PmxvYWRlcigpLnVybFNlbGVjdGVkKG1haW5GcmFtZURvY3VtZW50LT5jb21wbGV0ZVVSTCh1cmwp
LCBlbXB0eVN0cmluZygpLCBtb3VzZUV2ZW50LnB0cigpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tC
YWNrRm9yd2FyZExpc3Q6Ok5vLCBTaG91bGRTZW5kUmVmZXJyZXI6Ok5ldmVyU2VuZFJlZmVycmVy
LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiB9CiAKLXZv
aWQgV2ViUGFnZTo6c3RvcExvYWRpbmdGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQ
YWdlOjpzdG9wTG9hZGluZ0ZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIFdl
YkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQp
OwogICAgIGlmICghZnJhbWUpCkBAIC0zMjM0LDcgKzMyMzQsNyBAQCB2b2lkIFdlYlBhZ2U6OnNl
dFNlc3Npb25JRChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgbV9wYWdlLT5zZXRTZXNz
aW9uSUQoc2Vzc2lvbklEKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlUG9saWN5RGVj
aXNpb24odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCwgUG9saWN5Q2hlY2tJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgY29uc3QgRG93bmxvYWRJRCYgZG93bmxvYWRJRCwgT3B0aW9uYWw8V2Vi
c2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMpCit2b2lkIFdlYlBhZ2U6OmRpZFJl
Y2VpdmVQb2xpY3lEZWNpc2lvbihGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbGlz
dGVuZXJJRCwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIFBvbGljeUFjdGlvbiBw
b2xpY3lBY3Rpb24sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgRG93bmxvYWRJRCYgZG93
bmxvYWRJRCwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMp
CiB7CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJh
bWUoZnJhbWVJRCk7CiAgICAgaWYgKCFmcmFtZSkKQEAgLTMyNDIsNyArMzI0Miw3IEBAIHZvaWQg
V2ViUGFnZTo6ZGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2
NF90IGxpc3RlbmVySUQsIFBvCiAgICAgZnJhbWUtPmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihs
aXN0ZW5lcklELCBpZGVudGlmaWVyLCBwb2xpY3lBY3Rpb24sIG5hdmlnYXRpb25JRCwgZG93bmxv
YWRJRCwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpjb250
aW51ZVdpbGxTdWJtaXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQp
Cit2b2lkIFdlYlBhZ2U6OmNvbnRpbnVlV2lsbFN1Ym1pdEZvcm0oRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQpCiB7CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCFmcmFtZSkK
QEAgLTMzODQsNyArMzM4NCw3IEBAIHZvaWQgV2ViUGFnZTo6cnVuSmF2YVNjcmlwdEluTWFpbkZy
YW1lU2NyaXB0V29ybGQoY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yCiAgICAgcnVuSmF2
YVNjcmlwdChtYWluV2ViRnJhbWUoKSwgc2NyaXB0LCBmb3JjZVVzZXJHZXN0dXJlLCB3b3JsZE5h
bWUsIGNhbGxiYWNrSUQpOwogfQogCi12b2lkIFdlYlBhZ2U6OnJ1bkphdmFTY3JpcHRJbkZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib29sIGZvcmNlVXNlckdl
c3R1cmUsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6cnVuSmF2YVNjcmlw
dEluRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgc2NyaXB0LCBi
b29sIGZvcmNlVXNlckdlc3R1cmUsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBXZWJG
cmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsK
ICAgICBBU1NFUlQobWFpbldlYkZyYW1lKCkgIT0gZnJhbWUpOwpAQCAtMzQ0NSw3ICszNDQ1LDcg
QEAgdm9pZCBXZWJQYWdlOjpnZXRTZWxlY3Rpb25PckNvbnRlbnRzQXNTdHJpbmcoQ2FsbGJhY2tJ
RCBjYWxsYmFja0lEKQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3RyaW5nQ2Fs
bGJhY2socmVzdWx0U3RyaW5nLCBjYWxsYmFja0lEKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6Z2V0
U291cmNlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQor
dm9pZCBXZWJQYWdlOjpnZXRTb3VyY2VGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIFN0cmluZyByZXN1bHRTdHJpbmc7CiAgICAg
aWYgKFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZy
YW1lSUQpKQpAQCAtMzQ1NCw3ICszNDU0LDcgQEAgdm9pZCBXZWJQYWdlOjpnZXRTb3VyY2VGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgc2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdHJpbmdDYWxsYmFjayhyZXN1bHRTdHJpbmcsIGNhbGxi
YWNrSUQpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpnZXRNYWluUmVzb3VyY2VEYXRhT2ZGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYlBhZ2U6Omdl
dE1haW5SZXNvdXJjZURhdGFPZkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDYWxsYmFj
a0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyOwogICAg
IGlmIChXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShm
cmFtZUlEKSkgewpAQCAtMzQ4NSw3ICszNDg1LDcgQEAgc3RhdGljIFJlZlB0cjxTaGFyZWRCdWZm
ZXI+IHJlc291cmNlRGF0YUZvckZyYW1lKEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiByZXNvdXIK
ICAgICByZXR1cm4gJnN1YnJlc291cmNlLT5kYXRhKCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6Z2V0
UmVzb3VyY2VEYXRhRnJvbUZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgcmVz
b3VyY2VVUkxTdHJpbmcsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6Z2V0
UmVzb3VyY2VEYXRhRnJvbUZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJp
bmcmIHJlc291cmNlVVJMU3RyaW5nLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpKSB7CkBAIC0zNDk5LDcgKzM0OTksNyBA
QCB2b2lkIFdlYlBhZ2U6OmdldFJlc291cmNlRGF0YUZyb21GcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBTdHJpbmcmIHJlc291cmNlVQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6RGF0YUNhbGxiYWNrKGRhdGFSZWZlcmVuY2UsIGNhbGxiYWNrSUQpKTsKIH0KIAotdm9pZCBX
ZWJQYWdlOjpnZXRXZWJBcmNoaXZlT2ZGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDYWxsYmFja0lE
IGNhbGxiYWNrSUQpCit2b2lkIFdlYlBhZ2U6OmdldFdlYkFyY2hpdmVPZkZyYW1lKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAjaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgUmV0YWluUHRyPENGRGF0YVJlZj4gZGF0YTsKQEAgLTM4MDIsMTMgKzM4MDIs
MTMgQEAgV2ViRnVsbFNjcmVlbk1hbmFnZXIqIFdlYlBhZ2U6OmZ1bGxTY3JlZW5NYW5hZ2VyKCkK
IH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2U6OmFkZENvbnNvbGVNZXNzYWdlKHVpbnQ2NF90IGZy
YW1lSUQsIE1lc3NhZ2VTb3VyY2UgbWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsIG1lc3NhZ2VM
ZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1aW50NjRfdCByZXF1ZXN0SUQpCit2b2lkIFdl
YlBhZ2U6OmFkZENvbnNvbGVNZXNzYWdlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBNZXNzYWdl
U291cmNlIG1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCBtZXNzYWdlTGV2ZWwsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgdWludDY0X3QgcmVxdWVzdElEKQogewogICAgIGlmIChhdXRvKiBmcmFt
ZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpKQogICAgICAgICBm
cmFtZS0+YWRkQ29uc29sZU1lc3NhZ2UobWVzc2FnZVNvdXJjZSwgbWVzc2FnZUxldmVsLCBtZXNz
YWdlLCByZXF1ZXN0SUQpOwogfQogCi12b2lkIFdlYlBhZ2U6OnNlbmRDU1BWaW9sYXRpb25SZXBv
cnQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVVJMJiByZXBvcnRVUkwsIElQQzo6Rm9ybURhdGFS
ZWZlcmVuY2UmJiByZXBvcnREYXRhKQordm9pZCBXZWJQYWdlOjpzZW5kQ1NQVmlvbGF0aW9uUmVw
b3J0KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgSVBDOjpG
b3JtRGF0YVJlZmVyZW5jZSYmIHJlcG9ydERhdGEpCiB7CiAgICAgYXV0byByZXBvcnQgPSByZXBv
cnREYXRhLnRha2VEYXRhKCk7CiAgICAgaWYgKCFyZXBvcnQpCkBAIC0zODE3LDcgKzM4MTcsNyBA
QCB2b2lkIFdlYlBhZ2U6OnNlbmRDU1BWaW9sYXRpb25SZXBvcnQodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgVVJMJiByZXBvcnRVUkwsIElQQwogICAgICAgICBQaW5nTG9hZGVyOjpzZW5kVmlvbGF0
aW9uUmVwb3J0KCpmcmFtZS0+Y29yZUZyYW1lKCksIHJlcG9ydFVSTCwgcmVwb3J0LnJlbGVhc2VO
b25OdWxsKCksIFZpb2xhdGlvblJlcG9ydFR5cGU6OkNvbnRlbnRTZWN1cml0eVBvbGljeSk7CiB9
CiAKLXZvaWQgV2ViUGFnZTo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQodWlu
dDY0X3QgZnJhbWVJRCwgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmIGV2ZW50
SW5pdCkKK3ZvaWQgV2ViUGFnZTo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6Oklu
aXQmJiBldmVudEluaXQpCiB7CiAgICAgYXV0byogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtNDY4MCw3ICs0Njgw
LDcgQEAgdm9pZCBXZWJQYWdlOjplZmZlY3RpdmVBcHBlYXJhbmNlRGlkQ2hhbmdlKGJvb2wgdXNl
RGFya0FwcGVhcmFuY2UsIGJvb2wgdXNlRWxldmEKIH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2U6
OmJlZ2luUHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludElu
Zm8pCit2b2lkIFdlYlBhZ2U6OmJlZ2luUHJpbnRpbmcoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlmICghZnJhbWUp
CkBAIC00NzI0LDcgKzQ3MjQsNyBAQCB2b2lkIFdlYlBhZ2U6OmVuZFByaW50aW5nKCkKICAgICB9
CiB9CiAKLXZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcodWludDY0X3QgZnJh
bWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkK
K3ZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcoRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQp
CiB7CiAgICAgVmVjdG9yPEludFJlY3Q+IHJlc3VsdFBhZ2VSZWN0czsKICAgICBkb3VibGUgcmVz
dWx0VG90YWxTY2FsZUZhY3RvckZvclByaW50aW5nID0gMTsKQEAgLTQ3MzMsNyArNDczMyw3IEBA
IHZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgUHJpbnRJbmZvJiBwcmludEluCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpDb21wdXRlZFBhZ2VzQ2FsbGJhY2socmVzdWx0UGFnZVJlY3RzLCByZXN1bHRUb3RhbFNjYWxl
RmFjdG9yRm9yUHJpbnRpbmcsIGNvbXB1dGVkUGFnZU1hcmdpbiwgY2FsbGJhY2tJRCkpOwogfQog
Ci12b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nSW1wbCh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+
JiByZXN1bHRQYWdlUmVjdHMsIGRvdWJsZSYgcmVzdWx0VG90YWxTY2FsZUZhY3RvckZvclByaW50
aW5nLCBGbG9hdEJveEV4dGVudCYgY29tcHV0ZWRQYWdlTWFyZ2luKQordm9pZCBXZWJQYWdlOjpj
b21wdXRlUGFnZXNGb3JQcmludGluZ0ltcGwoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0
IFByaW50SW5mbyYgcHJpbnRJbmZvLCBWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4mIHJlc3VsdFBh
Z2VSZWN0cywgZG91YmxlJiByZXN1bHRUb3RhbFNjYWxlRmFjdG9yRm9yUHJpbnRpbmcsIEZsb2F0
Qm94RXh0ZW50JiBjb21wdXRlZFBhZ2VNYXJnaW4pCiB7CiAgICAgQVNTRVJUKHJlc3VsdFBhZ2VS
ZWN0cy5pc0VtcHR5KCkpOwogCkBAIC00NzU2LDcgKzQ3NTYsNyBAQCB2b2lkIFdlYlBhZ2U6OmNv
bXB1dGVQYWdlc0ZvclByaW50aW5nSW1wbCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludElu
Zm8mIHByaQogfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi12b2lkIFdlYlBhZ2U6OmRyYXdSZWN0
VG9JbWFnZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgY29u
c3QgSW50UmVjdCYgcmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaW1hZ2VTaXplLCBDYWxs
YmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYlBhZ2U6OmRyYXdSZWN0VG9JbWFnZShGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIGNvbnN0IEludFJl
Y3QmIHJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGltYWdlU2l6ZSwgQ2FsbGJhY2tJRCBj
YWxsYmFja0lEKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBmcmFtZSA/IGZy
YW1lLT5jb3JlRnJhbWUoKSA6IDA7CkBAIC00ODA2LDE0ICs0ODA2LDE0IEBAIHZvaWQgV2ViUGFn
ZTo6ZHJhd1JlY3RUb0ltYWdlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJp
bnRJbmZvLCBjb25zCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpJbWFnZUNhbGxi
YWNrKGhhbmRsZSwgY2FsbGJhY2tJRCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OmRyYXdQYWdlc1Rv
UERGKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCB1aW50MzJf
dCBmaXJzdCwgdWludDMyX3QgY291bnQsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2Vi
UGFnZTo6ZHJhd1BhZ2VzVG9QREYoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50
SW5mbyYgcHJpbnRJbmZvLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIENhbGxiYWNr
SUQgY2FsbGJhY2tJRCkKIHsKICAgICBSZXRhaW5QdHI8Q0ZNdXRhYmxlRGF0YVJlZj4gcGRmUGFn
ZURhdGE7CiAgICAgZHJhd1BhZ2VzVG9QREZJbXBsKGZyYW1lSUQsIHByaW50SW5mbywgZmlyc3Qs
IGNvdW50LCBwZGZQYWdlRGF0YSk7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpE
YXRhQ2FsbGJhY2soeyBDRkRhdGFHZXRCeXRlUHRyKHBkZlBhZ2VEYXRhLmdldCgpKSwgc3RhdGlj
X2Nhc3Q8c2l6ZV90PihDRkRhdGFHZXRMZW5ndGgocGRmUGFnZURhdGEuZ2V0KCkpKSB9LCBjYWxs
YmFja0lEKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZHJhd1BhZ2VzVG9QREZJbXBsKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCB1aW50MzJfdCBmaXJzdCwgdWlu
dDMyX3QgY291bnQsIFJldGFpblB0cjxDRk11dGFibGVEYXRhUmVmPiYgcGRmUGFnZURhdGEpCit2
b2lkIFdlYlBhZ2U6OmRyYXdQYWdlc1RvUERGSW1wbChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
Y29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3Vu
dCwgUmV0YWluUHRyPENGTXV0YWJsZURhdGFSZWY+JiBwZGZQYWdlRGF0YSkKIHsKICAgICBXZWJG
cmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsK
ICAgICBGcmFtZSogY29yZUZyYW1lID0gZnJhbWUgPyBmcmFtZS0+Y29yZUZyYW1lKCkgOiAwOwpA
QCAtNDg2NCw3ICs0ODY0LDcgQEAgdm9pZCBXZWJQYWdlOjpkcmF3UGFnZXNUb1BERkltcGwodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIHUKIH0KIAogI2VsaWYg
UExBVEZPUk0oR1RLKQotdm9pZCBXZWJQYWdlOjpkcmF3UGFnZXNGb3JQcmludGluZyh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgQ2FsbGJhY2tJRCBjYWxsYmFj
a0lEKQordm9pZCBXZWJQYWdlOjpkcmF3UGFnZXNGb3JQcmludGluZyhGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIENhbGxiYWNrSUQgY2FsbGJhY2tJ
RCkKIHsKICAgICBiZWdpblByaW50aW5nKGZyYW1lSUQsIHByaW50SW5mbyk7CiAgICAgaWYgKG1f
cHJpbnRDb250ZXh0ICYmIG1fcHJpbnRPcGVyYXRpb24pIHsKQEAgLTY1MDIsNyArNjUwMiw3IEBA
IHZvaWQgV2ViUGFnZTo6c2V0SXNTdXNwZW5kZWQoYm9vbCBzdXNwZW5kZWQpCiAgICAgc3VzcGVu
ZEZvclByb2Nlc3NTd2FwKCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZnJhbWVCZWNhbWVSZW1vdGUo
dWludDY0X3QgZnJhbWVJRCwgR2xvYmFsRnJhbWVJZGVudGlmaWVyJiYgcmVtb3RlRnJhbWVJZGVu
dGlmaWVyLCBHbG9iYWxXaW5kb3dJZGVudGlmaWVyJiYgcmVtb3RlV2luZG93SWRlbnRpZmllcikK
K3ZvaWQgV2ViUGFnZTo6ZnJhbWVCZWNhbWVSZW1vdGUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IEdsb2JhbEZyYW1lSWRlbnRpZmllciYmIHJlbW90ZUZyYW1lSWRlbnRpZmllciwgR2xvYmFsV2lu
ZG93SWRlbnRpZmllciYmIHJlbW90ZVdpbmRvd0lkZW50aWZpZXIpCiB7CiAgICAgUmVmUHRyPFdl
YkZyYW1lPiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQp
OwogICAgIGlmICghZnJhbWUpCkBAIC02NTM0LDEyICs2NTM0LDEyIEBAIHZvaWQgV2ViUGFnZTo6
ZnJhbWVCZWNhbWVSZW1vdGUodWludDY0X3QgZnJhbWVJRCwgR2xvYmFsRnJhbWVJZGVudGlmaWVy
JiYgcmVtb3RlCiB9CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotdm9p
ZCBXZWJQYWdlOjpoYXNTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVE
b21haW4sIFJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1l
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2
b2lkIFdlYlBhZ2U6Omhhc1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFt
ZURvbWFpbiwgUmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Okhhc1N0b3JhZ2VBY2Nlc3Moc2Vzc2lvbklE
KCksIFdURk1vdmUoc3ViRnJhbWVEb21haW4pLCBXVEZNb3ZlKHRvcEZyYW1lRG9tYWluKSwgZnJh
bWVJRCwgbV9wYWdlSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQg
V2ViUGFnZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFt
ZURvbWFpbiwgUmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJh
bWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3Jh
bnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3ZvaWQgV2ViUGFnZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVE
b21haW4mJiBzdWJGcmFtZURvbWFpbiwgUmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFp
biwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29y
ZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlJl
cXVlc3RTdG9yYWdlQWNjZXNzKHNlc3Npb25JRCgpLCBXVEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwg
V1RGTW92ZSh0b3BGcmFtZURvbWFpbiksIGZyYW1lSUQsIG1fcGFnZUlEKSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOwogfQpAQCAtNjU1NSw3ICs2NTU1LDcgQEAgdm9pZCBXZWJQYWdlOjp3
YXNMb2FkZWRXaXRoRGF0YVRyYW5zZmVyRnJvbVByZXZhbGVudFJlc291cmNlKCkKICNlbmRpZgog
CiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLXZvaWQgV2ViUGFnZTo6c2hvdWxkQWxs
b3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh1aW50NjRfdCBmcmFtZUlELCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBvcmlnaW4sIGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlOjpzaG91bGRBbGxvd0RldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmJiBvcmlnaW4sIGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNz
KGZyYW1lSUQsIFdURk1vdmUob3JpZ2luKSwgbWF5UHJvbXB0KSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CmluZGV4IDcwOTkyNzAxNDI0M2MxMTI4ZmY2ZmFjOWU0ZWE5MmRkNjUxMjJjNmYuLjFkOTcxZjRh
MzM4NjExZTk0MDliMzRmMWU4MWRlZTUwYzc2MmZjYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTM0Niw5ICszNDYsOSBAQCBwdWJsaWM6CiAgICAg
V2ViRnVsbFNjcmVlbk1hbmFnZXIqIGZ1bGxTY3JlZW5NYW5hZ2VyKCk7CiAjZW5kaWYKIAotICAg
IHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UodWludDY0X3QgZnJhbWVJRCwgTWVzc2FnZVNvdXJjZSwg
TWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmLCB1aW50NjRfdCByZXF1ZXN0SUQgPSAwKTsKLSAg
ICB2b2lkIHNlbmRDU1BWaW9sYXRpb25SZXBvcnQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVVJM
JiByZXBvcnRVUkwsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJik7Ci0gICAgdm9pZCBlbnF1ZXVl
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpT
ZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYpOworICAgIHZvaWQgYWRkQ29uc29s
ZU1lc3NhZ2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBNZXNzYWdlU291cmNlLCBNZXNzYWdl
TGV2ZWwsIGNvbnN0IFN0cmluZyYsIHVpbnQ2NF90IHJlcXVlc3RJRCA9IDApOworICAgIHZvaWQg
c2VuZENTUFZpb2xhdGlvblJlcG9ydChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFVS
TCYgcmVwb3J0VVJMLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYpOworICAgIHZvaWQgZW5xdWV1
ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBX
ZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYpOwogCiAgICAgLy8g
LS0gQ2FsbGVkIGJ5IHRoZSBEcmF3aW5nQXJlYS4KICAgICAvLyBGSVhNRTogV2UgY291bGQgZ2Vu
ZXJpY2l6ZSB0aGVzZSBpbnRvIGEgRHJhd2luZ0FyZWEgY2xpZW50IGludGVyZmFjZS4gV291bGQg
dGhhdCBiZSBiZW5lZmljaWFsPwpAQCAtNTIyLDcgKzUyMiw3IEBAIHB1YmxpYzoKICAgICBXZWJD
b3JlOjpDb2xvciB1bmRlcmxheUNvbG9yKCkgY29uc3QgeyByZXR1cm4gbV91bmRlcmxheUNvbG9y
OyB9CiAKICAgICB2b2lkIHN0b3BMb2FkaW5nKCk7Ci0gICAgdm9pZCBzdG9wTG9hZGluZ0ZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQpOworICAgIHZvaWQgc3RvcExvYWRpbmdGcmFtZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIpOwogICAgIGJvb2wgZGVmZXJzTG9hZGluZygpIGNvbnN0OwogICAgIHZv
aWQgc2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVyTG9hZGluZyk7CiAKQEAgLTc2OSw3ICs3Njks
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb25maXJtQ29tcG9zaXRpb24oY29uc3QgU3RyaW5nJiB0
ZXh0LCBpbnQ2NF90IHNlbGVjdGlvblN0YXJ0LCBpbnQ2NF90IHNlbGVjdGlvbkxlbmd0aCk7CiAg
ICAgdm9pZCBjYW5jZWxDb21wb3NpdGlvbigpOwogCi0gICAgdm9pZCBjb2xsYXBzZVNlbGVjdGlv
bkluRnJhbWUodWludDY0X3QgZnJhbWVJRCk7CisgICAgdm9pZCBjb2xsYXBzZVNlbGVjdGlvbklu
RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICAgICB2b2lkIHNob3dFbW9qaVBpY2tl
cihXZWJDb3JlOjpGcmFtZSYpOwogCiAgICAgdm9pZCBnZXRDZW50ZXJGb3Jab29tR2VzdHVyZShj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2VudGVySW5WaWV3Q29vcmRpbmF0ZXMsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6SW50UG9pbnQmJik+JiYpOwpAQCAtODYyLDIzICs4NjIs
MjMgQEAgcHVibGljOgogICAgIFdlYkNvcmU6OkRyYWdTb3VyY2VBY3Rpb24gYWxsb3dlZERyYWdT
b3VyY2VBY3Rpb25zKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd2VkRHJhZ1NvdXJjZUFjdGlvbnM7
IH0KICNlbmRpZgogCi0gICAgdm9pZCBiZWdpblByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFByaW50SW5mbyYpOworICAgIHZvaWQgYmVnaW5QcmludGluZyhXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYpOwogICAgIHZvaWQgZW5kUHJpbnRpbmcoKTsKLSAg
ICB2b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFBy
aW50SW5mbyYsIENhbGxiYWNrSUQpOwotICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdJ
bXBsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIFZlY3RvcjxXZWJDb3JlOjpJ
bnRSZWN0PiYgcGFnZVJlY3RzLCBkb3VibGUmIHRvdGFsU2NhbGVGYWN0b3IsIFdlYkNvcmU6OkZs
b2F0Qm94RXh0ZW50JiBjb21wdXRlZE1hcmdpbik7CisgICAgdm9pZCBjb21wdXRlUGFnZXNGb3JQ
cmludGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYsIENhbGxi
YWNrSUQpOworICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdJbXBsKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+
JiBwYWdlUmVjdHMsIGRvdWJsZSYgdG90YWxTY2FsZUZhY3RvciwgV2ViQ29yZTo6RmxvYXRCb3hF
eHRlbnQmIGNvbXB1dGVkTWFyZ2luKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHZvaWQg
ZHJhd1JlY3RUb0ltYWdlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgQ2FsbGJhY2tJRCk7
Ci0gICAgdm9pZCBkcmF3UGFnZXNUb1BERih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludElu
Zm8mLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIENhbGxiYWNrSUQpOwotICAgIHZv
aWQgZHJhd1BhZ2VzVG9QREZJbXBsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYs
IHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgUmV0YWluUHRyPENGTXV0YWJsZURhdGFS
ZWY+JiBwZGZQYWdlRGF0YSk7CisgICAgdm9pZCBkcmF3UmVjdFRvSW1hZ2UoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jiwg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIENhbGxiYWNrSUQpOworICAgIHZvaWQgZHJhd1BhZ2Vz
VG9QREYoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mLCB1aW50MzJf
dCBmaXJzdCwgdWludDMyX3QgY291bnQsIENhbGxiYWNrSUQpOworICAgIHZvaWQgZHJhd1BhZ2Vz
VG9QREZJbXBsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgdWlu
dDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBSZXRhaW5QdHI8Q0ZNdXRhYmxlRGF0YVJlZj4m
IHBkZlBhZ2VEYXRhKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB2
b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFByaW50SW5mbyYsIENhbGxiYWNrSUQsIE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21wdXRl
UGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERjo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQg
Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBjb25zdCBQcmludEluZm8mLCBDYWxsYmFja0lELCBNZXNzYWdlczo6V2ViUGFnZTo6Q29t
cHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREY6OkRlbGF5ZWRSZXBseSYmKTsKICNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oR1RLKQotICAgIHZvaWQgZHJhd1BhZ2VzRm9yUHJpbnRpbmcodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBk
cmF3UGFnZXNGb3JQcmludGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50
SW5mbyYsIENhbGxiYWNrSUQpOwogICAgIHZvaWQgZGlkRmluaXNoUHJpbnRPcGVyYXRpb24oY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIENhbGxiYWNrSUQpOwogI2VuZGlmCiAKQEAgLTEx
MzEsMTMgKzExMzEsMTMgQEAgcHVibGljOgogICAgIHZvaWQgZmx1c2hQZW5kaW5nRWRpdG9yU3Rh
dGVVcGRhdGUoKTsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAg
dm9pZCBoYXNTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJh
bWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIHVp
bnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotICAgIHZv
aWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBzdWJG
cmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwg
dWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdl
QWNjZXNzV2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4m
Jik7CisgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
JiYgc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVE
b21haW4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJik7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYm
IHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3Jh
Z2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYpOwogICAgIHZvaWQgd2FzTG9hZGVkV2l0aERhdGFU
cmFuc2ZlckZyb21QcmV2YWxlbnRSZXNvdXJjZSgpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoREVW
SUNFX09SSUVOVEFUSU9OKQotICAgIHZvaWQgc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFu
ZE1vdGlvbkFjY2Vzcyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmJiwgYm9vbCBtYXlQcm9tcHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RGV2
aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+JiYpOworICAgIHZvaWQgc2hv
dWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBib29sIG1heVByb21wdCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9u
UGVybWlzc2lvblN0YXRlKT4mJik7CiAjZW5kaWYKIAogICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQo
V2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYgY2FsbGJhY2spOwpAQCAtMTM1Niw4ICsxMzU2LDggQEAgcHJpdmF0ZToKICAgICBz
dGF0aWMgYm9vbCBzY3JvbGwoV2ViQ29yZTo6UGFnZSosIFdlYkNvcmU6OlNjcm9sbERpcmVjdGlv
biwgV2ViQ29yZTo6U2Nyb2xsR3JhbnVsYXJpdHkpOwogICAgIHN0YXRpYyBib29sIGxvZ2ljYWxT
Y3JvbGwoV2ViQ29yZTo6UGFnZSosIFdlYkNvcmU6OlNjcm9sbExvZ2ljYWxEaXJlY3Rpb24sIFdl
YkNvcmU6OlNjcm9sbEdyYW51bGFyaXR5KTsKIAotICAgIHZvaWQgbG9hZFVSTEluRnJhbWUoVVJM
JiYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQg
bG9hZERhdGFJbkZyYW1lKElQQzo6RGF0YVJlZmVyZW5jZSYmLCBTdHJpbmcmJiBNSU1FVHlwZSwg
U3RyaW5nJiYgZW5jb2RpbmdOYW1lLCBVUkwmJiBiYXNlVVJMLCB1aW50NjRfdCBmcmFtZUlEKTsK
KyAgICB2b2lkIGxvYWRVUkxJbkZyYW1lKFVSTCYmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgbG9hZERhdGFJbkZyYW1lKElQQzo6
RGF0YVJlZmVyZW5jZSYmLCBTdHJpbmcmJiBNSU1FVHlwZSwgU3RyaW5nJiYgZW5jb2RpbmdOYW1l
LCBVUkwmJiBiYXNlVVJMLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogCiAgICAgZW51bSBj
bGFzcyBXYXNSZXN0b3JlZEJ5QVBJUmVxdWVzdCB7IE5vLCBZZXMgfTsKICAgICB2b2lkIHJlc3Rv
cmVTZXNzaW9uSW50ZXJuYWwoY29uc3QgVmVjdG9yPEJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZT4m
LCBXYXNSZXN0b3JlZEJ5QVBJUmVxdWVzdCwgV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6Ok92ZXJ3
cml0ZUV4aXN0aW5nSXRlbSk7CkBAIC0xMzg5LDE2ICsxMzg5LDE2IEBAIHByaXZhdGU6CiAjaWYg
RU5BQkxFKE1IVE1MKQogICAgIHZvaWQgZ2V0Q29udGVudHNBc01IVE1MRGF0YShDYWxsYmFja0lE
KTsKICNlbmRpZgotICAgIHZvaWQgZ2V0TWFpblJlc291cmNlRGF0YU9mRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBnZXRSZXNvdXJjZURhdGFGcm9tRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiByZXNvdXJjZVVSTCwgQ2FsbGJhY2tJRCk7
CisgICAgdm9pZCBnZXRNYWluUmVzb3VyY2VEYXRhT2ZGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIENhbGxiYWNrSUQpOworICAgIHZvaWQgZ2V0UmVzb3VyY2VEYXRhRnJvbUZyYW1lKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiByZXNvdXJjZVVSTCwgQ2FsbGJh
Y2tJRCk7CiAgICAgdm9pZCBnZXRSZW5kZXJUcmVlRXh0ZXJuYWxSZXByZXNlbnRhdGlvbihDYWxs
YmFja0lEKTsKICAgICB2b2lkIGdldFNlbGVjdGlvbk9yQ29udGVudHNBc1N0cmluZyhDYWxsYmFj
a0lEKTsKICAgICB2b2lkIGdldFNlbGVjdGlvbkFzV2ViQXJjaGl2ZURhdGEoQ2FsbGJhY2tJRCk7
Ci0gICAgdm9pZCBnZXRTb3VyY2VGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDYWxsYmFja0lE
KTsKLSAgICB2b2lkIGdldFdlYkFyY2hpdmVPZkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENhbGxi
YWNrSUQpOworICAgIHZvaWQgZ2V0U291cmNlRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIGdldFdlYkFyY2hpdmVPZkZyYW1lKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBydW5KYXZhU2NyaXB0KFdl
YkZyYW1lKiwgY29uc3QgU3RyaW5nJiwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBjb25zdCBPcHRp
b25hbDxTdHJpbmc+JiB3b3JsZE5hbWUsIENhbGxiYWNrSUQpOwogICAgIHZvaWQgcnVuSmF2YVNj
cmlwdEluTWFpbkZyYW1lU2NyaXB0V29ybGQoY29uc3QgU3RyaW5nJiwgYm9vbCBmb3JjZVVzZXJH
ZXN0dXJlLCBjb25zdCBPcHRpb25hbDxTdHJpbmc+JiB3b3JsZE5hbWUsIENhbGxiYWNrSUQpOwot
ICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3Ry
aW5nJiwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIHJ1bkph
dmFTY3JpcHRJbkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwg
Ym9vbCBmb3JjZVVzZXJHZXN0dXJlLCBDYWxsYmFja0lEKTsKICAgICB2b2lkIGZvcmNlUmVwYWlu
dChDYWxsYmFja0lEKTsKICAgICB2b2lkIHRha2VTbmFwc2hvdChXZWJDb3JlOjpJbnRSZWN0IHNu
YXBzaG90UmVjdCwgV2ViQ29yZTo6SW50U2l6ZSBiaXRtYXBTaXplLCB1aW50MzJfdCBvcHRpb25z
LCBDYWxsYmFja0lEKTsKIApAQCAtMTQxMiw4ICsxNDEyLDggQEAgcHJpdmF0ZToKICAgICBib29s
IHBhcmVudFByb2Nlc3NIYXNTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQoKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9CiAjZW5kaWYKIAotICAgIHZvaWQgZGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYkNvcmU6OlBvbGljeUNoZWNr
SWRlbnRpZmllciwgV2ViQ29yZTo6UG9saWN5QWN0aW9uLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IGNvbnN0IERvd25sb2FkSUQmLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmKTsKLSAg
ICB2b2lkIGNvbnRpbnVlV2lsbFN1Ym1pdEZvcm0odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qg
bGlzdGVuZXJJRCk7CisgICAgdm9pZCBkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24oV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIsIFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBjb25zdCBEb3dubG9hZElEJiwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJik7Cisg
ICAgdm9pZCBjb250aW51ZVdpbGxTdWJtaXRGb3JtKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
dWludDY0X3QgbGlzdGVuZXJJRCk7CiAgICAgdm9pZCBzZXRVc2VyQWdlbnQoY29uc3QgU3RyaW5n
Jik7CiAgICAgdm9pZCBzZXRDdXN0b21UZXh0RW5jb2RpbmdOYW1lKGNvbnN0IFN0cmluZyYpOwog
ICAgIHZvaWQgc3VzcGVuZEFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zKCk7CkBAIC0xNDMx
LDcgKzE0MzEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgd2luZG93QW5kVmlld0ZyYW1lc0NoYW5n
ZWQoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0
ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgd2luZG93RnJhbWVJblVuZmxpcHBlZFNjcmVl
bkNvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHZpZXdGcmFtZUluV2luZG93
Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGFjY2Vzc2liaWxpdHlWaWV3
Q29vcmRpbmF0ZXMpOwogCiAgICAgUmV0YWluUHRyPFBERkRvY3VtZW50PiBwZGZEb2N1bWVudEZv
clByaW50aW5nRnJhbWUoV2ViQ29yZTo6RnJhbWUqKTsKLSAgICB2b2lkIGNvbXB1dGVQYWdlc0Zv
clByaW50aW5nUERGRG9jdW1lbnQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiwg
VmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+JiByZXN1bHRQYWdlUmVjdHMpOworICAgIHZvaWQgY29t
cHV0ZVBhZ2VzRm9yUHJpbnRpbmdQREZEb2N1bWVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IGNvbnN0IFByaW50SW5mbyYsIFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiYgcmVzdWx0UGFnZVJl
Y3RzKTsKICAgICB2b2lkIGRyYXdQREZEb2N1bWVudChDR0NvbnRleHRSZWYsIFBERkRvY3VtZW50
ICosIGNvbnN0IFByaW50SW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKICAgICB2b2lk
IGRyYXdQYWdlc1RvUERGRnJvbVBERkRvY3VtZW50KENHQ29udGV4dFJlZiwgUERGRG9jdW1lbnQg
KiwgY29uc3QgUHJpbnRJbmZvJiwgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50KTsKICNl
bmRpZgpAQCAtMTU4NCw3ICsxNTg0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHZvaWNlc0RpZENo
YW5nZSgpOwogI2VuZGlmCiAKLSAgICB2b2lkIGZyYW1lQmVjYW1lUmVtb3RlKHVpbnQ2NF90IGZy
YW1lSUQsIFdlYkNvcmU6Okdsb2JhbEZyYW1lSWRlbnRpZmllciYmIHJlbW90ZUZyYW1lSWRlbnRp
ZmllciwgV2ViQ29yZTo6R2xvYmFsV2luZG93SWRlbnRpZmllciYmIHJlbW90ZVdpbmRvd0lkZW50
aWZpZXIpOworICAgIHZvaWQgZnJhbWVCZWNhbWVSZW1vdGUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBXZWJDb3JlOjpHbG9iYWxGcmFtZUlkZW50aWZpZXImJiByZW1vdGVGcmFtZUlkZW50aWZp
ZXIsIFdlYkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXImJiByZW1vdGVXaW5kb3dJZGVudGlm
aWVyKTsKIAogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVIYW5kbGVyKHVpbnQ2NF90IGlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgc2NoZW1lKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggYTUyZTI1MWQyNWRh
NmQ4ODcxYjI3MmQ3MTQyMjkxMzI5YzVmMjQzOC4uYmE3ZjY0YmZkY2JjY2Y4YWIyYzMzZjZjMjc4
YjQ2ZDE1MTg4OGYwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0yNyw5ICsyNyw5IEBAIG1lc3NhZ2VzIC0+IFdl
YlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgU2V0QmFja2dyb3VuZENvbG9yKE9wdGlvbmFs
PFdlYkNvcmU6OkNvbG9yPiBjb2xvcikKIAotICAgIEFkZENvbnNvbGVNZXNzYWdlKHVpbnQ2NF90
IGZyYW1lSUQsIGVudW06dWludDhfdCBKU0M6Ok1lc3NhZ2VTb3VyY2UgbWVzc2FnZVNvdXJjZSwg
ZW51bTp1aW50OF90IEpTQzo6TWVzc2FnZUxldmVsIG1lc3NhZ2VMZXZlbCwgU3RyaW5nIG1lc3Nh
Z2UsIHVpbnQ2NF90IHJlcXVlc3RJRCkKLSAgICBTZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KHVpbnQ2
NF90IGZyYW1lSUQsIFVSTCByZXBvcnRVUkwsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVwb3J0
RGF0YSkKLSAgICBFbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCh1aW50NjRfdCBm
cmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0IGV2ZW50
SW5pdCkKKyAgICBBZGRDb25zb2xlTWVzc2FnZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgZW51bTp1aW50OF90IEpTQzo6TWVzc2FnZVNvdXJjZSBtZXNzYWdlU291cmNlLCBlbnVt
OnVpbnQ4X3QgSlNDOjpNZXNzYWdlTGV2ZWwgbWVzc2FnZUxldmVsLCBTdHJpbmcgbWVzc2FnZSwg
dWludDY0X3QgcmVxdWVzdElEKQorICAgIFNlbmRDU1BWaW9sYXRpb25SZXBvcnQoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFVSTCByZXBvcnRVUkwsIElQQzo6Rm9ybURhdGFSZWZl
cmVuY2UgcmVwb3J0RGF0YSkKKyAgICBFbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVu
dChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb25FdmVudDo6SW5pdCBldmVudEluaXQpCiAKICAgICBUZXN0UHJvY2Vzc0luY29t
aW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoKSAtPiAoYm9vbCBoYW5kbGVk
KSBTeW5jaHJvbm91cwogCkBAIC0xNjIsOCArMTYyLDggQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0
aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5
cGUKICAgICBHb1RvQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0
IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgYmFja0ZvcndhcmRJdGVtSUQsIGVu
dW06dWludDhfdCBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlIGJhY2tGb3J3YXJkVHlwZSwgZW51bTpi
b29sIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQsIE9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0YT4gd2Vic2l0
ZVBvbGljaWVzKQogICAgIFRyeVJlc3RvcmVTY3JvbGxQb3NpdGlvbigpCiAKLSAgICBMb2FkVVJM
SW5GcmFtZShVUkwgdXJsLCBTdHJpbmcgcmVmZXJyZXIsIHVpbnQ2NF90IGZyYW1lSUQpCi0gICAg
TG9hZERhdGFJbkZyYW1lKElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhLCBTdHJpbmcgTUlNRVR5cGUs
IFN0cmluZyBlbmNvZGluZ05hbWUsIFVSTCBiYXNlVVJMLCB1aW50NjRfdCBmcmFtZUlEKQorICAg
IExvYWRVUkxJbkZyYW1lKFVSTCB1cmwsIFN0cmluZyByZWZlcnJlciwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQpCisgICAgTG9hZERhdGFJbkZyYW1lKElQQzo6RGF0YVJlZmVyZW5j
ZSBkYXRhLCBTdHJpbmcgTUlNRVR5cGUsIFN0cmluZyBlbmNvZGluZ05hbWUsIFVSTCBiYXNlVVJM
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKICAgICBMb2FkUmVxdWVzdChzdHJ1
Y3QgV2ViS2l0OjpMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycykKICAgICBMb2FkRGF0YShz
dHJ1Y3QgV2ViS2l0OjpMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycykKICAgICBMb2FkQWx0
ZXJuYXRlSFRNTChzdHJ1Y3QgV2ViS2l0OjpMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycykK
QEAgLTE3Myw3ICsxNzMsNyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06
dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIFJlbG9hZCh1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQzMl90IHJlbG9hZE9wdGlvbnMsIFdlYktpdDo6U2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpCiAgICAgU3RvcExv
YWRpbmcoKQogCi0gICAgU3RvcExvYWRpbmdGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQorICAgIFN0
b3BMb2FkaW5nRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAgICAgCiAg
ICAgUmVzdG9yZVNlc3Npb24oVmVjdG9yPFdlYktpdDo6QmFja0ZvcndhcmRMaXN0SXRlbVN0YXRl
PiBpdGVtU3RhdGVzKQogICAgIFVwZGF0ZUJhY2tGb3J3YXJkTGlzdEZvclJlYXR0YWNoKFZlY3Rv
cjxXZWJLaXQ6OkJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZT4gaXRlbVN0YXRlcykKQEAgLTE4Miw4
ICsxODIsOCBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBX
ZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIERpZFJlbW92ZUJhY2tGb3J3
YXJkSXRlbShzdHJ1Y3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciBiYWNrRm9y
d2FyZEl0ZW1JRCkKIAogICAgIFVwZGF0ZVdlYnNpdGVQb2xpY2llcyhzdHJ1Y3QgV2ViS2l0OjpX
ZWJzaXRlUG9saWNpZXNEYXRhIHdlYnNpdGVQb2xpY2llcykKLSAgICBEaWRSZWNlaXZlUG9saWN5
RGVjaXNpb24odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgZW51bTp1aW50OF90
IFdlYkNvcmU6OlBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIE9wdGlvbmFsPFdlYktpdDo6V2Vic2l0
ZVBvbGljaWVzRGF0YT4gd2Vic2l0ZVBvbGljaWVzKQotICAgIENvbnRpbnVlV2lsbFN1Ym1pdEZv
cm0odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCkKKyAgICBEaWRSZWNlaXZl
UG9saWN5RGVjaXNpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90
IGxpc3RlbmVySUQsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lk
ZW50aWZpZXIsIGVudW06dWludDhfdCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9u
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBP
cHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQb2xpY2llcykKKyAg
ICBDb250aW51ZVdpbGxTdWJtaXRGb3JtKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCB1aW50NjRfdCBsaXN0ZW5lcklEKQogCiAgICAgQ2xlYXJTZWxlY3Rpb24oKQogICAgIFJlc3Rv
cmVTZWxlY3Rpb25JbkZvY3VzZWRFZGl0YWJsZUVsZW1lbnQoKQpAQCAtMTk2LDE1ICsxOTYsMTUg
QEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpT
eW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICNpZiBFTkFCTEUoTUhUTUwpCiAgICAgR2V0Q29u
dGVudHNBc01IVE1MRGF0YShXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICNlbmRpZgot
ICAgIEdldE1haW5SZXNvdXJjZURhdGFPZkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6
Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIEdldFJlc291cmNlRGF0YUZyb21GcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBTdHJpbmcgcmVzb3VyY2VVUkwsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxs
YmFja0lEKQorICAgIEdldE1haW5SZXNvdXJjZURhdGFPZkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBHZXRS
ZXNvdXJjZURhdGFGcm9tRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0
cmluZyByZXNvdXJjZVVSTCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgR2V0
UmVuZGVyVHJlZUV4dGVybmFsUmVwcmVzZW50YXRpb24oV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxi
YWNrSUQpCiAgICAgR2V0U2VsZWN0aW9uT3JDb250ZW50c0FzU3RyaW5nKFdlYktpdDo6Q2FsbGJh
Y2tJRCBjYWxsYmFja0lEKQogICAgIEdldFNlbGVjdGlvbkFzV2ViQXJjaGl2ZURhdGEoV2ViS2l0
OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCi0gICAgR2V0U291cmNlRm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCi0gICAgR2V0V2ViQXJjaGl2
ZU9mRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQp
CisgICAgR2V0U291cmNlRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIEdldFdlYkFyY2hpdmVPZkZyYW1l
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2Fs
bGJhY2tJRCkKICAgICBSdW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3JsZChTdHJpbmcg
c2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIE9wdGlvbmFsPFN0cmluZz4gd29ybGROYW1l
LCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKLSAgICBSdW5KYXZhU2NyaXB0SW5GcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgc2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1cmUs
IFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIFJ1bkphdmFTY3JpcHRJbkZyYW1l
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgc2NyaXB0LCBib29sIGZv
cmNlVXNlckdlc3R1cmUsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIEZvcmNl
UmVwYWludChXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIAogICAgIFNlbGVjdEFsbCgp
CkBAIC0zODAsMTggKzM4MCwxOCBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVu
dW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIERpZFJl
Y2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9u
SUQsIGJvb2wgYWxsb3dlZCkKIAogICAgICMgUHJpbnRpbmcuCi0gICAgQmVnaW5QcmludGluZyh1
aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvKQorICAg
IEJlZ2luUHJpbnRpbmcoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBX
ZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8pCiAgICAgRW5kUHJpbnRpbmcoKQotICAgIENvbXB1
dGVQYWdlc0ZvclByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50
SW5mbyBwcmludEluZm8sIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIENvbXB1
dGVQYWdlc0ZvclByaW50aW5nKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1
Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJh
Y2tJRCkKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBEcmF3UmVjdFRvSW1hZ2UodWludDY0X3Qg
ZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2ViQ29yZTo6SW50
UmVjdCByZWN0LCBXZWJDb3JlOjpJbnRTaXplIGltYWdlU2l6ZSwgV2ViS2l0OjpDYWxsYmFja0lE
IGNhbGxiYWNrSUQpCi0gICAgRHJhd1BhZ2VzVG9QREYodWludDY0X3QgZnJhbWVJRCwgc3RydWN0
IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNv
dW50LCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBEcmF3UmVjdFRvSW1hZ2Uo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5m
byBwcmludEluZm8sIFdlYkNvcmU6OkludFJlY3QgcmVjdCwgV2ViQ29yZTo6SW50U2l6ZSBpbWFn
ZVNpemUsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIERyYXdQYWdlc1RvUERG
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludElu
Zm8gcHJpbnRJbmZvLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIFdlYktpdDo6Q2Fs
bGJhY2tJRCBjYWxsYmFja0lEKQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgQ29tcHV0
ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdl
YktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQp
IC0+ICh1aW50MzJfdCBwYWdlQ291bnQpIFN5bmNocm9ub3VzCisgICAgQ29tcHV0ZVBhZ2VzRm9y
UHJpbnRpbmdBbmREcmF3VG9QREYoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0
cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxs
YmFja0lEKSAtPiAodWludDMyX3QgcGFnZUNvdW50KSBTeW5jaHJvbm91cwogI2VuZGlmCiAjZW5k
aWYKICNpZiBQTEFURk9STShHVEspCi0gICAgRHJhd1BhZ2VzRm9yUHJpbnRpbmcodWludDY0X3Qg
ZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2ViS2l0OjpDYWxs
YmFja0lEIGNhbGxiYWNrSUQpCisgICAgRHJhd1BhZ2VzRm9yUHJpbnRpbmcoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8s
IFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogI2VuZGlmCiAKICAgICAjIE1lZGlhCkBA
IC00MTMsNyArNDEzLDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVp
bnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBDb25maXJtQ29t
cG9zaXRpb24oU3RyaW5nIHRleHQsIGludDY0X3Qgc2VsZWN0aW9uU3RhcnQsIGludDY0X3Qgc2Vs
ZWN0aW9uTGVuZ3RoKQogICAgIENhbmNlbENvbXBvc2l0aW9uKCkKIAotICAgIENvbGxhcHNlU2Vs
ZWN0aW9uSW5GcmFtZSh1aW50NjRfdCBmcmFtZUlEKQorICAgIENvbGxhcHNlU2VsZWN0aW9uSW5G
cmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIAogICAgIEdldENlbnRlckZv
clpvb21HZXN0dXJlKFdlYkNvcmU6OkludFBvaW50IGNlbnRlckluVmlld0Nvb3JkaW5hdGVzKSAt
PiAoV2ViQ29yZTo6SW50UG9pbnQgY2VudGVyKSBTeW5jaHJvbm91cwogI2VuZGlmCkBAIC01MzYs
NyArNTM2LDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3Qg
V2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBEaWRSZWNlaXZlUGFzc3dv
cmRGb3JRdWlja0xvb2tEb2N1bWVudChTdHJpbmcgcGFzc3dvcmQpCiAjZW5kaWYKIAotICAgIEZy
YW1lQmVjYW1lUmVtb3RlKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpHbG9iYWxG
cmFtZUlkZW50aWZpZXIgcmVtb3RlRnJhbWVJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6R2xv
YmFsV2luZG93SWRlbnRpZmllciByZW1vdGVXaW5kb3dJZGVudGlmaWVyKQorICAgIEZyYW1lQmVj
YW1lUmVtb3RlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29y
ZTo6R2xvYmFsRnJhbWVJZGVudGlmaWVyIHJlbW90ZUZyYW1lSWRlbnRpZmllciwgc3RydWN0IFdl
YkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXIgcmVtb3RlV2luZG93SWRlbnRpZmllcikKIAog
ICAgIFJlZ2lzdGVyVVJMU2NoZW1lSGFuZGxlcih1aW50NjRfdCBpZGVudGlmaWVyLCBTdHJpbmcg
c2NoZW1lKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tCmluZGV4IGU0YzY0MjcxY2NmODkzYjM1OWI5NDU3OWM4YjJkMTc5MWRkYTlj
YjkuLjJkYjBlYjZiYmFhNDU3OGJmNmE2OTVjZTQwMDJkNzczNjUxNmJkNDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC01
NTEsNyArNTUxLDcgQEAgdm9pZCBXZWJQYWdlOjphY2NlcHRzRmlyc3RNb3VzZShpbnQsIGNvbnN0
IFdlYktpdDo6V2ViTW91c2VFdmVudCYsIENvbXBsZXRpb25IYW4KICAgICBjb21wbGV0aW9uSGFu
ZGxlcihmYWxzZSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdQ
REZEb2N1bWVudCh1aW50NjRfdCwgY29uc3QgUHJpbnRJbmZvJiwgVmVjdG9yPEludFJlY3Q+JikK
K3ZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdQREZEb2N1bWVudChXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYsIFZlY3RvcjxJbnRSZWN0PiYpCiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTM3MzksNyArMzczOSw3IEBAIHZvaWQgV2Vi
UGFnZTo6ZGlzcGF0Y2hBc3luY2hyb25vdXNUb3VjaEV2ZW50cyhjb25zdCBWZWN0b3I8V2ViVG91
Y2hFdmVudCwgMT4mIHF1CiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNG
b3JQcmludGluZ0FuZERyYXdUb1BERih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8m
IHByaW50SW5mbywgQ2FsbGJhY2tJRCBjYWxsYmFja0lELCBNZXNzYWdlczo6V2ViUGFnZTo6Q29t
cHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREY6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQor
dm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERihXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIENh
bGxiYWNrSUQgY2FsbGJhY2tJRCwgTWVzc2FnZXM6OldlYlBhZ2U6OkNvbXB1dGVQYWdlc0ZvclBy
aW50aW5nQW5kRHJhd1RvUERGOjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsKICAgICBpZiAocHJp
bnRJbmZvLnNuYXBzaG90Rmlyc3RQYWdlKSB7CiAgICAgICAgIHJlcGx5KDEpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0gYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQppbmRleCA0
MzFkZmExN2FjYTA1YjYwZWZlOWFlMDQwM2E0MDg4MGUyODE4ZDgwLi5mZTI0MTdiMGE3ZDU4MzYz
YzU0YmI4NmRhNTc4OThkMTFmYmUzNTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQpAQCAtNjcwLDcgKzY3MCw3IEBAIHZvaWQg
V2ViUGFnZTo6dXBkYXRlSGVhZGVyQW5kRm9vdGVyTGF5ZXJzRm9yRGV2aWNlU2NhbGVDaGFuZ2Uo
ZmxvYXQgc2NhbGVGYWN0b3IpCiAgICAgICAgIG1fZm9vdGVyQmFubmVyLT5kaWRDaGFuZ2VEZXZp
Y2VTY2FsZUZhY3RvcihzY2FsZUZhY3Rvcik7CiB9CiAKLXZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBh
Z2VzRm9yUHJpbnRpbmdQREZEb2N1bWVudCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludElu
Zm8mIHByaW50SW5mbywgVmVjdG9yPEludFJlY3Q+JiByZXN1bHRQYWdlUmVjdHMpCit2b2lkIFdl
YlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERGRG9jdW1lbnQoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBWZWN0b3I8SW50
UmVjdD4mIHJlc3VsdFBhZ2VSZWN0cykKIHsKICAgICBBU1NFUlQocmVzdWx0UGFnZVJlY3RzLmlz
RW1wdHkoKSk7CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
d2ViRnJhbWUoZnJhbWVJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAK
aW5kZXggYTJkYTEyYzYwMjI5MzczY2Y4Nzg5MmI4M2RhYTU3NzM1MDBhNzdmMi4uNTY1ZmNhYWVk
MTMwOWU3ODY1NjRjMGJmZWFiOGI5ZTFiZjU0MDc1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcApAQCAtNzY4LDE3ICs3NjgsMTcgQEAgdm9pZCBXZWJQcm9jZXNzOjpk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2Rl
ciYgZGUKICAgICBMT0dfRVJST1IoIlVuaGFuZGxlZCB3ZWIgcHJvY2VzcyBtZXNzYWdlICclczol
cyciLCBkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKS50b1N0cmluZygpLmRhdGEoKSwgZGVj
b2Rlci5tZXNzYWdlTmFtZSgpLnRvU3RyaW5nKCkuZGF0YSgpKTsKIH0KIAotV2ViRnJhbWUqIFdl
YlByb2Nlc3M6OndlYkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpIGNvbnN0CitXZWJGcmFtZSogV2Vi
UHJvY2Vzczo6d2ViRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIG1fZnJhbWVNYXAuZ2V0KGZyYW1lSUQpOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OmFk
ZFdlYkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkZyYW1lKiBmcmFtZSkKK3ZvaWQgV2ViUHJv
Y2Vzczo6YWRkV2ViRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkZyYW1lKiBmcmFt
ZSkKIHsKICAgICBtX2ZyYW1lTWFwLnNldChmcmFtZUlELCBmcmFtZSk7CiB9CiAKLXZvaWQgV2Vi
UHJvY2Vzczo6cmVtb3ZlV2ViRnJhbWUodWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUHJvY2Vz
czo6cmVtb3ZlV2ViRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgbV9mcmFt
ZU1hcC5yZW1vdmUoZnJhbWVJRCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
CmluZGV4IGQ0YzAxYmFiMWY5M2RhOTA4NWIwZjIxOTRjZDMyN2Q0NzE4NjUwYjIuLjNjYjJjNDk2
OTQ5OTg4N2IzMmI1M2IzYTY2ZDBiYmY2ODVhMzIxOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIldlYlNRTGl0ZURhdGFi
YXNlVHJhY2tlci5oIgogI2luY2x1ZGUgIldlYlNvY2tldENoYW5uZWxNYW5hZ2VyLmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9BY3Rpdml0eVN0YXRlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlk
ZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTE3
Miw5ICsxNzMsOSBAQCBwdWJsaWM6CiAKICAgICBib29sIGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX2Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQ7IH0KIAotICAg
IFdlYkZyYW1lKiB3ZWJGcmFtZSh1aW50NjRfdCkgY29uc3Q7Ci0gICAgdm9pZCBhZGRXZWJGcmFt
ZSh1aW50NjRfdCwgV2ViRnJhbWUqKTsKLSAgICB2b2lkIHJlbW92ZVdlYkZyYW1lKHVpbnQ2NF90
KTsKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKSBjb25z
dDsKKyAgICB2b2lkIGFkZFdlYkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViRnJh
bWUqKTsKKyAgICB2b2lkIHJlbW92ZVdlYkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7
CiAKICAgICBXZWJQYWdlR3JvdXBQcm94eSogd2ViUGFnZUdyb3VwKFdlYkNvcmU6OlBhZ2VHcm91
cCopOwogICAgIFdlYlBhZ2VHcm91cFByb3h5KiB3ZWJQYWdlR3JvdXAodWludDY0X3QgcGFnZUdy
b3VwSUQpOwpAQCAtNDg5LDcgKzQ5MCw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fZnVsbEtl
eWJvYXJkQWNjZXNzRW5hYmxlZCB7IGZhbHNlIH07CiAKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBX
ZWJGcmFtZSo+IG1fZnJhbWVNYXA7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIFdlYkZyYW1lKj4gbV9mcmFtZU1hcDsKIAogICAgIHR5cGVkZWYgSGFzaE1hcDxjb25zdCBj
aGFyKiwgc3RkOjp1bmlxdWVfcHRyPFdlYlByb2Nlc3NTdXBwbGVtZW50PiwgUHRySGFzaDxjb25z
dCBjaGFyKj4+IFdlYlByb2Nlc3NTdXBwbGVtZW50TWFwOwogICAgIFdlYlByb2Nlc3NTdXBwbGVt
ZW50TWFwIG1fc3VwcGxlbWVudHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBiMTQw
M2QwNTYzOTNiMzk3ZDAxN2QwOTNkZTVmZTA0Y2RjY2E4Y2NkLi5kNjA2MzBmZTBjYWFkZjQzYThi
NzQ0OWQyZDU0OTBlZGIwOGU2YWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTY0
LDcgKzY0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGhhc1dlYlZpZXcoKSBjb25zdCBmaW5hbDsg
Ly8gbWFpbmx5IGZvciBhc3NlcnRpb25zCiAKICAgICBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRl
bnRpZmllcj4gcGFnZUlEKCkgY29uc3QgZmluYWw7Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQoKSBjb25zdCBmaW5hbDsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXI+IGZyYW1lSUQoKSBjb25zdCBmaW5hbDsKICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQo
KSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgbWFrZVJlcHJlc2VudGF0aW9uKFdlYkNvcmU6OkRv
Y3VtZW50TG9hZGVyKikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDNk
ZDUwZTdiM2I5Y2Y5OTMzNDljOWFiYjRjYjQ5NzgzN2VlYzM1M2UuLmI3YTY1ZTk5MzRmZmYwODgw
Yjc1NjhjYTAwZTk2MmUwMTVhZTQyMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBA
IC0yMTQsNyArMjE0LDcgQEAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpwYWdlSUQoKSBjb25zdAogICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiB9CiAKLU9w
dGlvbmFsPHVpbnQ2NF90PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZnJhbWVJRCgpIGNvbnN0CitP
cHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlEKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376303</attachid>
            <date>2019-08-14 13:16:32 -0700</date>
            <delta_ts>2019-08-14 13:42:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199986-20190814131631.patch</filename>
            <type>text/plain</type>
            <size>438688</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmE3MDY4NjA3ZWFlOTVj
NTA0YWRlOThlNGIyZDQ4NzlmMjY2NDRmOS4uOTM1OGNjMTBmYjk5ZjFkMTE2ZmEyNDUwMzVhM2Ri
MDgzMjEwYTc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE5LTA4LTE0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBPYmplY3RJ
ZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+IGZvciBmcmFtZUlEcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5OTg2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBzdHJvbmdseS10eXBl
ZCBGcmFtZUlkZW50aWZpZXIgaW5zdGVhZCBvZiB1aW50NjRfdCBhcyBmcmFtZSBpZGVudGlmaWVy
cyBldmVyeXdoZXJlLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGxvYWRlci9Db29raWVKYXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q29va2llSmFyOjpjb29raWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tpZUphcjo6
c2V0Q29va2llcyk6CisgICAgICAgIChXZWJDb3JlOjpDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tpZUphcjo6Z2V0
UmF3Q29va2llcyBjb25zdCk6CisgICAgICAgICogbG9hZGVyL0Nvb2tpZUphci5oOgorICAgICAg
ICAqIGxvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3Bw
OgorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
OjpOYXZpZ2F0aW9uQWN0aW9uOjpSZXF1ZXN0ZXI6OmZyYW1lSUQgY29uc3QpOgorICAgICAgICAq
IHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9HbG9iYWxGcmFtZUlkZW50aWZp
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Okdsb2JhbEZyYW1lSWRlbnRpZmllcjo6ZGVjb2RlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Nvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzaG91bGRCbG9ja0Nv
b2tpZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpo
YXNTdG9yYWdlQWNjZXNzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6Z3JhbnRTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW06CisgICAgICAg
IChXZWJDb3JlOjpjb29raWVzRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZXNGb3JT
ZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2ll
c0ZvckRPTSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzIGNvbnN0KToK
KwogMjAxOS0wOC0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAg
ICAgVXBkYXRlIFdvcmtlcjo6bm90aWZ5RmluaXNoZWQgdG8gbm90IHVzZSBlbXB0eVNlc3Npb25J
RApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA1NGI3OTc3NmIwNTc1YjFhODgzY2Y2OTc4ZmFjZDBhMTU1Y2NhOWM1Li40
NTg3MjQyZjU2N2Q0YzBiMmVlZjgwYmIxOTJmYWJiZjE1ODIwMjk3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDM0OSBAQAorMjAxOS0wOC0xNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KKworICAgICAgICBVc2UgT2JqZWN0SWRlbnRpZmllcjxGcmFtZUlkZW50aWZpZXJUeXBl
PiBmb3IgZnJhbWVJRHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5OTk4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVzZSB0aGUgc3Ryb25nbHktdHlwZWQgRnJhbWVJZGVudGlmaWVyIGluc3RlYWQgb2Yg
dWludDY0X3QgYXMgZnJhbWUgaWRlbnRpZmllcnMgZXZlcnl3aGVyZS4KKworICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFudFN0b3JhZ2VB
Y2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAg
ICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmdyYW50U3RvcmFn
ZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsSGFzU3Rv
cmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEdy
YW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTSk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJv
bURPTSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpj
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXRSYXdDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpoYXNT
dG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtMb2FkQ2hlY2tlcjo6TmV0d29ya0xvYWRDaGVja2VyKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRy
eSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnROZXR3b3Jr
TG9hZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y29udmVydFRv
RG93bmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmFib3J0
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVz
cG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2Vp
dmVCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZp
bmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRp
ZEZhaWxMb2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpj
b250aW51ZVdpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OmVzY2FwZUlERm9ySlNP
Tik6CisgICAgICAgIChXZWJLaXQ6OmxvZ0Jsb2NrZWRDb29raWVJbmZvcm1hdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uSW50ZXJuYWwpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24pOgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNoYXJlZC9BUEkv
QVBJRnJhbWVIYW5kbGUuY3BwOgorICAgICAgICAoQVBJOjpGcmFtZUhhbmRsZTo6Y3JlYXRlKToK
KyAgICAgICAgKEFQSTo6RnJhbWVIYW5kbGU6OmNyZWF0ZUF1dG9jb252ZXJ0aW5nKToKKyAgICAg
ICAgKEFQSTo6RnJhbWVIYW5kbGU6OkZyYW1lSGFuZGxlKToKKyAgICAgICAgKEFQSTo6RnJhbWVI
YW5kbGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5oOgor
ICAgICAgICAoQVBJOjpGcmFtZUhhbmRsZTo6ZnJhbWVJRCBjb25zdCk6CisgICAgICAgICogU2hh
cmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5tbToKKyAgICAgICAgKC1bX1dLRnJhbWVIYW5k
bGUgaGFzaF0pOgorICAgICAgICAoLVtfV0tGcmFtZUhhbmRsZSBfZnJhbWVJRF0pOgorICAgICAg
ICAoLVtfV0tGcmFtZUhhbmRsZSBpbml0V2l0aENvZGVyOl0pOgorICAgICAgICAoLVtfV0tGcmFt
ZUhhbmRsZSBlbmNvZGVXaXRoQ29kZXI6XSk6CisgICAgICAgICogU2hhcmVkL0F1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRp
Y2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAg
ICAgKiBTaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmg6CisgICAg
ICAgICogU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tGcmFtZUhhbmRsZVJlZi5jcHA6CisgICAgICAgIChXS0ZyYW1lSGFuZGxlR2V0RnJhbWVJRCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgt
W1dLV2ViVmlldyBfcHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvOmZvckZyYW1lOl0pOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX2NhbkNoYW5nZUZyYW1lTGF5b3V0Ol0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tOgorICAgICAgICAoLVtfV0tJbnNwZWN0
b3Igc2hvd01haW5SZXNvdXJjZUZvckZyYW1lOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRv
bWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNp
bXVsYXRlZElucHV0RGlzcGF0Y2hlcjo6cnVuKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21h
dGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0
b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dG9tYXRpb25TZXNzaW9uOjp3ZWJGcmFtZUlERm9ySGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQXV0b21hdGlvblNlc3Npb246OmhhbmRsZUZvcldlYkZyYW1lSUQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c3dpdGNoVG9Ccm93c2luZ0NvbnRleHQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2FpdEZvck5hdmlnYXRpb25Ub0Nv
bXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6ZmluZFBhZ2VGb3JGcmFtZUlEKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnJlc3BvbmRUb1BlbmRpbmdGcmFtZU5hdmln
YXRpb25DYWxsYmFja3NXaXRoVGltZW91dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRp
b25TZXNzaW9uOjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZlQ2hpbGRGcmFtZUhhbmRsZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZlUGFyZW50RnJhbWVIYW5kbGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Y29tcHV0ZUVsZW1lbnRM
YXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2VsZWN0T3B0
aW9uRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpnZXRB
bGxDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OmRlbGV0
ZVNpbmdsZUNvb2tpZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjp2
aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
QXV0b21hdGlvblNlc3Npb246OnRha2VTY3JlZW5zaG90KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVu
dDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW06CisgICAgICAg
ICgtW1dLUmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyIGF0dGVtcHRSZWNvdmVyeV0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9j
a0xvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6
OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSk6CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAg
ICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UHJvdmlzaW9uYWxQYWdlUHJveHk6OnZhbGlkYXRlSW5wdXQpOgorICAgICAgICAoV2ViS2l0OjpQ
cm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZEZh
aWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFs
UGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQcm92
aXNpb25hbFBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEpOgorICAgICAg
ICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxG
b3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNp
b25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0
OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9u
YWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xv
YWRGb3JGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJv
Y2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlN1c3BlbmRlZFBhZ2VQcm94eTo6U3VzcGVuZGVkUGFnZVByb3h5
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25D
aGVja1Byb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNr
UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5
OjpmcmFtZUlEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVzZXRBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6c2VhcmNoRm9yR3JhbnRl
ZFJlcXVlc3QgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6d2FzUmVxdWVzdERlbmllZCk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVy
bWlzc2lvbkZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OmdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKToKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc0dyYW50
ZWRWaWRlb09yQXVkaW9BY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6bWFpbkZyYW1lSUQgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpmcmFtZUlEIGNvbnN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkZyYW1lUHJveHk6OldlYkZyYW1lUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJGcmFtZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6OmZyYW1lSUQgY29uc3QpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGlkQ3JlYXRlU3ViZnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmRpZENyZWF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkU3Rh
cnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6ZGlkRXhwbGljaXRPcGVuRm9yRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZl
U2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1l
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDYW5jZWxDbGllbnRSZWRpcmVj
dEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92
aXNpb25hbFVSTEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRD
aGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZEZvckZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZyYW1l
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENoYW5nZU1h
aW5Eb2N1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRp
dGxlRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZpcnN0TGF5
b3V0Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZpcnN0Vmlz
dWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFtZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZnJhbWVEaWRCZWNvbWVGcmFtZVNldCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5j
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uQXN5bmNTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNw
b25zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2VTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnVuYWJsZVRvSW1w
bGVtZW50UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0
Rm9ybSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2
aWdhdGlvbkRhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZE5hdmlnYXRl
V2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFVwZGF0ZUhpc3RvcnlUaXRsZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEFsZXJ0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0Q29uZmlybSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdFByb21wdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpydW5PcGVuUGFuZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnByaW50RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZvY3Vz
ZWRGcmFtZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZyYW1lU2V0
TGFyZ2VzdEZyYW1lQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cmVxdWVzdFN0b3JhZ2VTcGFjZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6bWFrZVN0b3JhZ2VTcGFjZVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2Vz
Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNob3VsZEFsbG93RGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6d2ViRnJhbWUgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUHJveHk6OmNhbkNyZWF0ZUZyYW1lIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpmcmFtZUNyZWF0ZWQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUHJveHk6OmRpZERlc3Ryb3lGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IF93a19wYWdlQ291bnRGb3JQcmludEZvcm1hdHRlcjpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojpjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpldmFsdWF0ZUphdmFTY3JpcHRDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZENsZWFyV2luZG93
T2JqZWN0Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5OjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJh
bWVXaXRoT3JkaW5hbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZVBhcmVudEZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Zm9jdXNG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmNvbXB1
dGVFbGVtZW50TGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eTo6c2VsZWN0T3B0aW9uRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHk6OnRha2VTY3JlZW5zaG90KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eTo6Z2V0Q29va2llc0ZvckZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZGVsZXRlQ29va2llKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dL
V2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tOgorICAgICAgICAoK1tXS1dlYlByb2Nlc3NQbHVnSW5G
cmFtZSBsb29rVXBGcmFtZUZyb21IYW5kbGU6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3Ry
YXRlZ3k6OnNjaGVkdWxlTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5
OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJM
b2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJS
ZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxSZXNvdXJjZUxvYWQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVyOjpzdG9wTG9hZGluZ0FmdGVyWEZyYW1l
T3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNvdXJjZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omluc3RhbGxTZXJ2aWNlV29ya2VyKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZCBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6aGFzU3RvcmFnZUFjY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cmVxdWVzdFN0b3JhZ2VBY2Nl
c3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlE
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGlkRmFpbFByb3Zpc2lvbmFsTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkNvb2tpZUphci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6
Y29va2llcyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6c2V0Q29va2ll
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZp
ZWxkVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVKYXI6OmdldFJhd0Nv
b2tpZXMgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJGcmFtZTo6V2ViRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpnZW5lcmF0ZUZy
YW1lSUQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6ZnJhbWVJRCBjb25zdCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
Ykluc3BlY3Rvcjo6c2hvd01haW5SZXNvdXJjZUZvckZyYW1lKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxvYWRVUkxJbkZyYW1lKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9hZERhdGFJbkZyYW1lKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6c3RvcExvYWRpbmdGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmNvbnRpbnVlV2lsbFN1Ym1pdEZvcm0pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpydW5K
YXZhU2NyaXB0SW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldFNvdXJjZUZv
ckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0TWFpblJlc291cmNlRGF0YU9m
RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRSZXNvdXJjZURhdGFGcm9tRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRXZWJBcmNoaXZlT2ZGcmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmFkZENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6c2VuZENTUFZpb2xhdGlvblJlcG9ydCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6YmVnaW5QcmludGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
ZHJhd1JlY3RUb0ltYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZHJhd1BhZ2VzVG9Q
REYpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmF3UGFnZXNUb1BERkltcGwpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmF3UGFnZXNGb3JQcmludGluZyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmZyYW1lQmVjYW1lUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVl
c3RTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2hvdWxkQWxsb3dE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERG
RG9jdW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmlu
dGluZ0FuZERyYXdUb1BERik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQ
YWdlTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmlu
dGluZ1BERkRvY3VtZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp3ZWJGcmFtZSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmFkZFdlYkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6cmVtb3ZlV2ViRnJhbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
OgorCiAyMDE5LTA4LTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgdXNlIG9mIGVtcHR5U2Vzc2lvbklEIGZyb20gTmV0d29ya0xvYWRQYXJhbWV0
ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggODllZTNjYmU0NzY3YWVlNjU1MjE2
Njk1NjBlY2RlOGVkMTA2YTI3ZS4uODMwYTc4MjViOTFkZmQxNmU3Y2Y3MTkyN2Q3MTM4ODkxYjA3
NDYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5
LTA4LTE0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAg
IFVzZSBPYmplY3RJZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+IGZvciBmcmFtZUlEcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5OTg2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBz
dHJvbmdseS10eXBlZCBGcmFtZUlkZW50aWZpZXIgaW5zdGVhZCBvZiB1aW50NjRfdCBhcyBmcmFt
ZSBpZGVudGlmaWVycyBldmVyeXdoZXJlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlEIGNv
bnN0KToKKwogMjAxOS0wOC0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6YmxvYlNpemUgc2hvdWxkIHRha2UgYSBT
ZXNzaW9uSUQgYXMgcGFyYW1ldGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9PYmplY3RJ
ZGVudGlmaWVyLmggYi9Tb3VyY2UvV1RGL3d0Zi9PYmplY3RJZGVudGlmaWVyLmgKaW5kZXggYjNi
Y2FkZDlkZDE5NWFiMzBiMThjZjFkYWQzMzUyMzExOTI1MjZmOC4uNjdjYzk2NGZmZDA2Y2ZlNDFh
ZWZmMjRmYjc3OWVlYWY4NTA2MzQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvT2JqZWN0
SWRlbnRpZmllci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL09iamVjdElkZW50aWZpZXIuaApAQCAt
NTksNyArNTksNyBAQCBwdWJsaWM6CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKLSAgICAgICAgQVNTRVJU
KGlzVmFsaWRJZGVudGlmaWVyKG1faWRlbnRpZmllcikpOworICAgICAgICBSRUxFQVNFX0FTU0VS
VChpc1ZhbGlkSWRlbnRpZmllcihtX2lkZW50aWZpZXIpKTsgLy8gRklYTUU6IFNob3VsZCBiZSBh
IGRlYnVnIEFTU0VSVCgpLgogICAgICAgICBlbmNvZGVyIDw8IG1faWRlbnRpZmllcjsKICAgICB9
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPE9iamVjdElk
ZW50aWZpZXI+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQpAQCAtNjgsNyArNjgsNyBAQCBwdWJs
aWM6CiAgICAgICAgIGRlY29kZXIgPj4gaWRlbnRpZmllcjsKICAgICAgICAgaWYgKCFpZGVudGlm
aWVyKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAgICAgQVNTRVJUKGlz
VmFsaWRJZGVudGlmaWVyKCppZGVudGlmaWVyKSk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGlz
VmFsaWRJZGVudGlmaWVyKCppZGVudGlmaWVyKSk7IC8vIEZJWE1FOiBTaG91bGQgYmUgYSBkZWJ1
ZyBBU1NFUlQoKS4KICAgICAgICAgcmV0dXJuIE9iamVjdElkZW50aWZpZXIgeyAqaWRlbnRpZmll
ciB9OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGI3YmU3NDkzZmIzNDdlN2FlYzVkMTE3Y2M1Y2M2OWE4YTFlZmMx
ZTMuLjQ5NTdiYWJjOTdiMTcxMDRhNDQ1MzVlNDM4M2ZkZmE4YjEyNzQyMDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4MCw2
ICsyODAsNyBAQAogCQkwRjAzQzA3NDE4ODQ2OTVFMDBBNUY4Q0EgLyogU3lzdGVtTWVtb3J5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjAzQzA3MzE4
ODQ2OTVFMDBBNUY4Q0EgLyogU3lzdGVtTWVtb3J5LmggKi87IH07CiAJCTBGMDNDMDc1MTg4NDgw
NTUwMEE1RjhDQSAvKiBJbnNwZWN0b3JPdmVybGF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzUyMkQ0QTE1QjQ3OEIyMDA5QjdDOTUgLyogSW5zcGVj
dG9yT3ZlcmxheS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTBGMDk5RDA5MTdCOTY4QTEwMEZGODRCOSAvKiBXZWJDb3JlVHlwZWRBcnJheUNvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MDk5RDA3MTdCOTY4QTEwMEZGODRCOSAvKiBXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjExNzgx
ODIyRTNDNDdGMDA4QkQ1NzAgLyogRnJhbWVJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjExNzgxNjIyRTNDNDdFMDA4QkQ1NzAgLyog
RnJhbWVJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMEYxMUE1NEYwRjM5MjMzMTAwQzM3ODg0IC8qIFJlbmRlclNlbGVjdGlvbklu
Zm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTFB
NTRFMEYzOTIzMzEwMEMzNzg4NCAvKiBSZW5kZXJTZWxlY3Rpb25JbmZvLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYxMzE2M0UxNkVEMENDODAw
MzVDQzA0IC8qIFBsYXRmb3JtQ0FGaWx0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjEzMTYzRDE2RUQwQ0M4MDAzNUNDMDQgLyogUGxhdGZvcm1D
QUZpbHRlcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwRjE1REE4QTBGM0FBRUU3MDAwMENFNDcgLyogQ1NTQW5pbWF0aW9uQ29udHJvbGxlclBy
aXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MTVEQTg5MEYzQUFFRTcwMDAwQ0U0NyAvKiBDU1NBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5o
ICovOyB9OwpAQCAtNTU3OCw2ICs1NTc5LDcgQEAKIAkJMEYwM0MwNzMxODg0Njk1RTAwQTVGOENB
IC8qIFN5c3RlbU1lbW9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTeXN0
ZW1NZW1vcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYwOTlEMDYxN0I5NjhB
MTAwRkY4NEI5IC8qIFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjA5OUQwNzE3Qjk2OEExMDBGRjg0Qjkg
LyogV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkwRjExNzgxNjIyRTNDNDdFMDA4QkQ1NzAgLyogRnJhbWVJZGVudGlmaWVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZyYW1lSWRlbnRpZmllci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjExQTU0RTBGMzkyMzMxMDBDMzc4ODQgLyog
UmVuZGVyU2VsZWN0aW9uSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW5kZXJTZWxlY3Rpb25JbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMTMx
NjNEMTZFRDBDQzgwMDM1Q0MwNCAvKiBQbGF0Zm9ybUNBRmlsdGVycy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUNBRmlsdGVycy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjEzMTYzRjE2RUQwQ0RFMDAzNUNDMDQgLyogUGxhdGZvcm1DQUZpbHRl
cnNDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBsYXRm
b3JtQ0FGaWx0ZXJzQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDIw
NCw2ICsyMDIwNiw3IEBACiAJCQkJNjVCRjAyMkEwOTc0ODE2MzAwQzQzMTk2IC8qIEZyYW1lLmgg
Ki8sCiAJCQkJOTc0QTg2MjAxNEI3QURCQjAwM0ZEQzc2IC8qIEZyYW1lRGVzdHJ1Y3Rpb25PYnNl
cnZlci5jcHAgKi8sCiAJCQkJOTc0QTg2MjExNEI3QURCQjAwM0ZEQzc2IC8qIEZyYW1lRGVzdHJ1
Y3Rpb25PYnNlcnZlci5oICovLAorCQkJCTBGMTE3ODE2MjJFM0M0N0UwMDhCRDU3MCAvKiBGcmFt
ZUlkZW50aWZpZXIuaCAqLywKIAkJCQlDNENENjI5ODE4MzgzNzY2MDA3RUJBRjEgLyogRnJhbWVT
bmFwc2hvdHRpbmcuY3BwICovLAogCQkJCUM0Q0Q2Mjk5MTgzODM3NjYwMDdFQkFGMSAvKiBGcmFt
ZVNuYXBzaG90dGluZy5oICovLAogCQkJCTY1QTIxNDgyMDk3QTNGNTMwMEI5MDUwQSAvKiBGcmFt
ZVRyZWUuY3BwICovLApAQCAtMjkyNTUsNiArMjkyNTgsNyBAQAogCQkJCUE4NTMxMjNEMTFEMDQ3
MUIwMEQ0RDA3NyAvKiBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCTY1QkYwMjJGMDk3NDgxNjMwMEM0MzE5NiAvKiBGcmFtZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTc0QTg2MjMxNEI3QURCQjAwM0ZEQzc2IC8qIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZl
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYxMTc4MTgyMkUzQzQ3RjAwOEJENTcwIC8qIEZyYW1l
SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2RDM3M0MwQURCQTVERTAwQTQ1NTRE
IC8qIEZyYW1lTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTZEMzczRTBBREJBNURFMDBB
NDU1NEQgLyogRnJhbWVMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUQwMDBFQkEz
MTFCREFGRDQwMEM0NzcyNiAvKiBGcmFtZUxvYWRlclN0YXRlTWFjaGluZS5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3BwCmluZGV4IDY5NjMwMzMwYjVkNzkzMGQ3
ZDdhYWYxZGRiNGE4OWRmYjYwZGRkY2MuLjZkMDM2MmU5NzY0MTg4YjYwODRjYmFhOGNjMTQyZDRk
MzkxZjVhODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3BwCkBAIC03MSw3ICs3MSw3
IEBAIFN0cmluZyBDb29raWVKYXI6OmNvb2tpZXMoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBV
UkwmIHVybCkgY29uc3QKIAogICAgIGF1dG8gaW5jbHVkZVNlY3VyZUNvb2tpZXMgPSBzaG91bGRJ
bmNsdWRlU2VjdXJlQ29va2llcyhkb2N1bWVudCwgdXJsKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2
NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAg
ICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEOwogICAgIGlmIChhdXRvKiBmcmFtZSA9
IGRvY3VtZW50LmZyYW1lKCkpIHsKICAgICAgICAgZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5j
bGllbnQoKS5mcmFtZUlEKCk7CkBAIC05NCw3ICs5NCw3IEBAIENvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFByb3h5IENvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkoY29uc3Qg
RG9jCiB7CiAgICAgVHJhY2VTY29wZSBzY29wZShGZXRjaENvb2tpZXNTdGFydCwgRmV0Y2hDb29r
aWVzRW5kKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFs
PEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
cGFnZUlEOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKICAgICAg
ICAgZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CkBAIC0xMDYs
NyArMTA2LDcgQEAgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkgQ29va2llSmFyOjpjb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eShjb25zdCBEb2MKIAogdm9pZCBDb29raWVKYXI6OnNl
dENvb2tpZXMoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5n
JiBjb29raWVTdHJpbmcpCiB7Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAg
T3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiBwYWdlSUQ7CiAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkg
ewogICAgICAgICBmcmFtZUlEID0gZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKTsK
QEAgLTEyOCw3ICsxMjgsNyBAQCBib29sIENvb2tpZUphcjo6Y29va2llc0VuYWJsZWQoY29uc3Qg
RG9jdW1lbnQmKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RkOjpwYWlyPFN0cmlu
ZywgU2VjdXJlQ29va2llc0FjY2Vzc2VkPiBDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNs
dWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKK3N0ZDo6cGFpcjxT
dHJpbmcsIFNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZShjb25zdCBQQUw6OlNlc3Npb25JRCYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0
eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRp
b25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBw
YWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAog
ewogICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbV9zdG9yYWdlU2Vzc2lvblByb3ZpZGVyLT5zdG9y
YWdlU2Vzc2lvbigpKSB7CiAgICAgICAgIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IHJlc3VsdCA9
IHNlc3Npb24tPmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGZpcnN0UGFydHksIHNhbWVT
aXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKQEAg
LTE0MSw3ICsxNDEsNyBAQCBzdGQ6OnBhaXI8U3RyaW5nLCBTZWN1cmVDb29raWVzQWNjZXNzZWQ+
IENvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdQogCiBTdHJpbmcgQ29va2ll
SmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNv
bnN0IFVSTCYgdXJsKSBjb25zdAogewotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOwor
ICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdl
SWRlbnRpZmllcj4gcGFnZUlEOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1l
KCkpIHsKICAgICAgICAgZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlE
KCk7CkBAIC0xNTYsNyArMTU2LDcgQEAgU3RyaW5nIENvb2tpZUphcjo6Y29va2llUmVxdWVzdEhl
YWRlckZpZWxkVmFsdWUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHUKIAogYm9vbCBD
b29raWVKYXI6OmdldFJhd0Nvb2tpZXMoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBV
UkwmIHVybCwgVmVjdG9yPENvb2tpZT4mIGNvb2tpZXMpIGNvbnN0CiB7Ci0gICAgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlE
OwogICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7CiAgICAgaWYgKGF1dG8qIGZy
YW1lID0gZG9jdW1lbnQuZnJhbWUoKSkgewogICAgICAgICBmcmFtZUlEID0gZnJhbWUtPmxvYWRl
cigpLmNsaWVudCgpLmZyYW1lSUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Db29raWVKYXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuaAppbmRleCAy
ODFmODRjNDkwMDUyNjdlYTA1NGQ1MWQ3NjhhOWViNzMyY2JjMjM5Li44MDg3YjhjZDViN2NmNGY1
NjkzZTJmN2U5NWQ4ZWY2YTE3OTg0NmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvQ29va2llSmFyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5oCkBA
IC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiRnJhbWVJZGVudGlm
aWVyLmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNTksNyArNjAsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldENvb2tpZXMoRG9jdW1lbnQmLCBjb25zdCBVUkwm
LCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0cmluZyk7CiAKICAgICB2aXJ0dWFsIGJvb2wgY29va2ll
c0VuYWJsZWQoY29uc3QgRG9jdW1lbnQmKSBjb25zdDsKLSAgICB2aXJ0dWFsIHN0ZDo6cGFpcjxT
dHJpbmcsIFNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFs
dWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKKyAgICB2
aXJ0dWFsIHN0ZDo6cGFpcjxTdHJpbmcsIFNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gY29va2llUmVx
dWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZyYW1l
SWRlbnRpZmllcj4sIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNvb2tp
ZXMpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IERvY3VtZW50
JiwgY29uc3QgVVJMJiwgVmVjdG9yPENvb2tpZT4mKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQg
ZGVsZXRlQ29va2llKGNvbnN0IERvY3VtZW50JiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBj
b29raWVOYW1lKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJh
bWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVy
Q2xpZW50LmgKaW5kZXggMWY3YTI5YzRiMzAxYTM2NTgyMmU0MjMzYjQxNWRkMWMwMDE5MTMyZC4u
ZTU5ZDE3MGRmMGJhMDhhMmM0ZjYwM2ZkY2ZhODM1N2RmZjg5YmRiOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0zMiw3ICszMiw3IEBA
IGNsYXNzIFdFQkNPUkVfRVhQT1JUIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRnJh
bWVMb2FkZXJDbGllbnQgewogCiAgICAgdm9pZCBmcmFtZUxvYWRlckRlc3Ryb3llZCgpIG92ZXJy
aWRlIHsgfQogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+
IGZyYW1lSUQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KICAgICBP
cHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
V1RGOjpudWxsb3B0OyB9CiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Qgb3Zl
cnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNs
aWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXgg
MDc0ODc2MTE4ZGM2OTFhYTdjOGFkYTk3Yjc5NzEzNzMzYTI4YTY5NS4uZWQ4NDdjYjA0Nzg1MjVl
NTIxMGYxY2M4NWI3ZmVjNTNjZTcyMjJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyQ2xpZW50LmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNs
dWRlICJGcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAj
aW5jbHVkZSAiTGF5b3V0TWlsZXN0b25lLmgiCiAjaW5jbHVkZSAiTGlua0ljb24uaCIKQEAgLTEy
OCw3ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG1ha2VSZXByZXNlbnRhdGlv
bihEb2N1bWVudExvYWRlciopID0gMDsKIAogICAgIHZpcnR1YWwgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRCgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIE9wdGlvbmFsPHVpbnQ2NF90
PiBmcmFtZUlEKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgT3B0aW9uYWw8RnJhbWVJZGVudGlm
aWVyPiBmcmFtZUlEKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKCkgY29uc3QgPSAwOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcAppbmRleCA2MmJhMmRkMmY3NzBhNDA2
ZTE1YzkwMzk1ZTQxN2M0MmMyOGY1MjBlLi5iZDczOGUwODk1N2UyZmQ4NGRhMDU1YWI0NTNlMWE0
M2UwYjI4OGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3Bw
CkBAIC00MSw3ICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIE5hdmlnYXRpb25BY3Rpb246
OlJlcXVlc3Rlcjo6UmVxdWVzdGVyKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IG1f
dXJsIHsgVVJMIHsgZG9jdW1lbnQudXJsKCkgfSB9CiAgICAgLCBtX29yaWdpbiB7IG1ha2VSZWZQ
dHIoZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKSkgfQotICAgICwgbV9wYWdlSURBbmRGcmFtZUlE
UGFpciB7IGRvY3VtZW50LmZyYW1lKCkgPyBzdGQ6Om1ha2VfcGFpcihkb2N1bWVudC5mcmFtZSgp
LT5sb2FkZXIoKS5jbGllbnQoKS5wYWdlSUQoKS52YWx1ZU9yKFBhZ2VJZGVudGlmaWVyIHsgfSks
IGRvY3VtZW50LmZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKS52YWx1ZU9yKDAp
KSA6IHN0ZDo6bWFrZV9wYWlyPFBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdD4oeyB9LCAwKSB9Cisg
ICAgLCBtX3BhZ2VJREFuZEZyYW1lSURQYWlyIHsgZG9jdW1lbnQuZnJhbWUoKSA/IHN0ZDo6bWFr
ZV9wYWlyKGRvY3VtZW50LmZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgpLnBhZ2VJRCgpLnZhbHVl
T3IoUGFnZUlkZW50aWZpZXIgeyB9KSwgZG9jdW1lbnQuZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50
KCkuZnJhbWVJRCgpLnZhbHVlT3IoRnJhbWVJZGVudGlmaWVyIHsgfSkpIDogc3RkOjptYWtlX3Bh
aXI8UGFnZUlkZW50aWZpZXIsIEZyYW1lSWRlbnRpZmllcj4oeyB9LCB7IH0pIH0KIHsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmgKaW5kZXggMzVjOTYxYWExNTQ3
YjhlYTBjNGI5MDQwNzAzYzg1ZDNlYThlN2U1Ny4uMGEwMjFkNGZjNzlkOTZiM2YyYTg4YmFlNDA0
NTYxOTEwNGNlOTBiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRp
b25BY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5o
CkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJBZENsaWNrQXR0cmlidXRpb24uaCIKICNp
bmNsdWRlICJCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiRnJhbWVJZGVu
dGlmaWVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIkxheW91
dFBvaW50LmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKQEAgLTY0LDcgKzY1LDcgQEAg
cHVibGljOgogICAgIE5hdmlnYXRpb25BY3Rpb24oTmF2aWdhdGlvbkFjdGlvbiYmKTsKICAgICBO
YXZpZ2F0aW9uQWN0aW9uJiBvcGVyYXRvcj0oTmF2aWdhdGlvbkFjdGlvbiYmKTsKIAotICAgIHVz
aW5nIFBhZ2VJREFuZEZyYW1lSURQYWlyID0gc3RkOjpwYWlyPFBhZ2VJZGVudGlmaWVyLCB1aW50
NjRfdCAvKiBmcmFtZUlEICovPjsKKyAgICB1c2luZyBQYWdlSURBbmRGcmFtZUlEUGFpciA9IHN0
ZDo6cGFpcjxQYWdlSWRlbnRpZmllciwgRnJhbWVJZGVudGlmaWVyPjsgLy8gRklYTUU6IFVzZSBH
bG9iYWxGcmFtZUlkZW50aWZpZXIuCiAgICAgY2xhc3MgUmVxdWVzdGVyIHsKICAgICBwdWJsaWM6
CiAgICAgICAgIFJlcXVlc3Rlcihjb25zdCBEb2N1bWVudCYpOwpAQCAtNzIsNyArNzMsNyBAQCBw
dWJsaWM6CiAgICAgICAgIGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7IH0K
ICAgICAgICAgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyBy
ZXR1cm4gKm1fb3JpZ2luOyB9CiAgICAgICAgIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCgpIGNvbnN0
IHsgcmV0dXJuIG1fcGFnZUlEQW5kRnJhbWVJRFBhaXIuZmlyc3Q7IH0KLSAgICAgICAgdWludDY0
X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUlEQW5kRnJhbWVJRFBhaXIuc2Vjb25k
OyB9CisgICAgICAgIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9w
YWdlSURBbmRGcmFtZUlEUGFpci5zZWNvbmQ7IH0KICAgICBwcml2YXRlOgogICAgICAgICBVUkwg
bV91cmw7CiAgICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gbV9vcmlnaW47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCBjMjVhMDI0YmMwNjNjNThmM2IyOGJkNzljYmIwMzM4
NDQyNmM4YzVlLi5lOGE1ZGUzM2VkMTc5MjZjOWFhODU2YjA4MTZiNGVlY2Y4MmM5NGY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJE
aXNwbGF5UmVmcmVzaE1vbml0b3IuaCIKICNpbmNsdWRlICJEb2N1bWVudFN0b3JhZ2VBY2Nlc3Mu
aCIKICNpbmNsdWRlICJGb2N1c0RpcmVjdGlvbi5oIgorI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmll
ci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0
LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllci5oIgpAQCAtNDg2LDggKzQ4Nyw4IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIFJlZlB0cjxJY29uPiBjcmVhdGVJY29uRm9yRmlsZXMoY29uc3QgVmVj
dG9yPFN0cmluZz4mIC8qIGZpbGVuYW1lcyAqLykgPSAwOwogCiAjaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKLSAgICB2aXJ0dWFsIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhSZWdp
c3RyYWJsZURvbWFpbiYmIC8qc3ViRnJhbWVEb21haW4qLywgUmVnaXN0cmFibGVEb21haW4mJiAv
KnRvcEZyYW1lRG9tYWluKi8sIHVpbnQ2NF90IC8qZnJhbWVJRCovLCBQYWdlSWRlbnRpZmllciwg
V1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7
IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsgfQotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3Rv
cmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIC8qc3ViRnJhbWVEb21haW4qLywgUmVnaXN0
cmFibGVEb21haW4mJiAvKnRvcEZyYW1lRG9tYWluKi8sIHVpbnQ2NF90IC8qZnJhbWVJRCovLCBQ
YWdlSWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NX
YXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5k
bGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOjpObywgU3Rv
cmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpObyk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaGFzU3Rv
cmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIC8qc3ViRnJhbWVEb21haW4qLywgUmVnaXN0
cmFibGVEb21haW4mJiAvKnRvcEZyYW1lRG9tYWluKi8sIEZyYW1lSWRlbnRpZmllciwgUGFnZUlk
ZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiAvKnN1YkZyYW1lRG9tYWlu
Ki8sIFJlZ2lzdHJhYmxlRG9tYWluJiYgLyp0b3BGcmFtZURvbWFpbiovLCBGcmFtZUlkZW50aWZp
ZXIsIFBhZ2VJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFj
Y2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlv
bkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQ6Ok5v
LCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd246Ok5vKTsgfQogI2VuZGlmCiAKICNpZiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVJZGVudGlmaWVyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjVkNDk2N2FiMWI0NTQyMzU4ZTg2NzI0MDVjYjY2YjdkNzhkNzIyNgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVJZGVudGlmaWVyLmgKQEAg
LTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3Rm
L09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIEZyYW1l
SWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgRnJhbWVJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRp
ZmllcjxGcmFtZUlkZW50aWZpZXJUeXBlPjsKKworaW5saW5lIEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlkZW50aWZpZXJGcm9tSUQodWludDY0X3QgZnJhbWVJRCkKK3sKKyAgICByZXR1cm4gbWFrZU9i
amVjdElkZW50aWZpZXI8RnJhbWVJZGVudGlmaWVyVHlwZT4oZnJhbWVJRCk7Cit9CisKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2xvYmFsRnJhbWVJZGVudGlmaWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0dsb2JhbEZyYW1lSWRlbnRpZmllci5oCmluZGV4IDBkN2IzZGJm
NzJmODFlNGZkNjJhNzNmZWQyNTgxY2VhZWUxNjdiNGEuLjcwOTM0NjdiMTJmODU2NjFhOGY3ZmFk
ZjAyYjM1Nzc5OTRlYjZhMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2xvYmFs
RnJhbWVJZGVudGlmaWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9HbG9iYWxGcmFtZUlk
ZW50aWZpZXIuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUg
IkZyYW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCiAjaW5jbHVk
ZSA8d3RmL09wdGlvbmFsLmg+CiAKQEAgLTMzLDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogLy8gRnJhbWUgaWRlbnRpZmllciB0aGF0IGlzIHVuaXF1ZSBhY3Jvc3MgYWxsIFdlYkNvbnRl
bnQgcHJvY2Vzc2VzLgogc3RydWN0IEdsb2JhbEZyYW1lSWRlbnRpZmllciB7CiAgICAgUGFnZUlk
ZW50aWZpZXIgcGFnZUlEOwotICAgIHVpbnQ2NF90IGZyYW1lSUQ7CisgICAgRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQ7CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlv
bmFsPEdsb2JhbEZyYW1lSWRlbnRpZmllcj4gZGVjb2RlKERlY29kZXImKTsKQEAgLTUzLDcgKzU0
LDcgQEAgT3B0aW9uYWw8R2xvYmFsRnJhbWVJZGVudGlmaWVyPiBHbG9iYWxGcmFtZUlkZW50aWZp
ZXI6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIGlmICghcGFnZUlEKQogICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7Cisg
ICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEOwogICAgIGRlY29kZXIgPj4gZnJh
bWVJRDsKICAgICBpZiAoIWZyYW1lSUQpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Nvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Nvb2tp
ZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5LmgKaW5kZXggYTMzMDE5ZjlkNWIyYWVkMjYwNzQ2Njk0
MDFmZDczMjJmMDJkNTE1Ny4uYzY4NmM4MWI1MzcxYTY3Y2RkOGFlMDliNGExMDEzMmE1MmQ1YjJk
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Db29raWVSZXF1
ZXN0SGVhZGVyRmllbGRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaApAQCAtMjYsNiArMjYsNyBAQAogI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlICJDb29raWVKYXIuaCIKKyNpbmNsdWRlICJGcmFtZUlkZW50
aWZpZXIuaCIKICNpbmNsdWRlICJQYWdlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNhbWVTaXRl
SW5mby5oIgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KQEAgLTM4LDcgKzM5LDcgQEAgc3Ry
dWN0IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5IHsKICAgICBVUkwgZmlyc3RQYXJ0eTsK
ICAgICBTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvOwogICAgIFVSTCB1cmw7Ci0gICAgT3B0aW9u
YWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFt
ZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7CiAgICAgSW5jbHVkZVNl
Y3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMgeyBJbmNsdWRlU2VjdXJlQ29va2llczo6
Tm8gfTsKIApAQCAtNzgsOCArNzksOSBAQCBPcHRpb25hbDxDb29raWVSZXF1ZXN0SGVhZGVyRmll
bGRQcm94eT4gQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHk6OmRlY29kZShEZQogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUodXJsKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAot
ICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
ZnJhbWVJRCkpCisgICAgT3B0aW9uYWw8T3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPj4gZnJhbWVJ
RDsKKyAgICBkZWNvZGVyID4+IGZyYW1lSUQ7CisgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwogCiAgICAgT3B0aW9uYWw8T3B0aW9uYWw8UGFnZUlkZW50aWZp
ZXI+PiBwYWdlSUQ7CkBAIC05MSw3ICs5Myw3IEBAIE9wdGlvbmFsPENvb2tpZVJlcXVlc3RIZWFk
ZXJGaWVsZFByb3h5PiBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eTo6ZGVjb2RlKERlCiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmNsdWRlU2VjdXJlQ29va2llcykpCiAgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICByZXR1cm4gQ29va2llUmVxdWVzdEhlYWRlckZpZWxk
UHJveHkgeyAqc2Vzc2lvbklELCBXVEZNb3ZlKGZpcnN0UGFydHkpLCBXVEZNb3ZlKHNhbWVTaXRl
SW5mbyksIFdURk1vdmUodXJsKSwgZnJhbWVJRCwgKnBhZ2VJRCwgaW5jbHVkZVNlY3VyZUNvb2tp
ZXMgfTsKKyAgICByZXR1cm4gQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkgeyAqc2Vzc2lv
bklELCBXVEZNb3ZlKGZpcnN0UGFydHkpLCBXVEZNb3ZlKHNhbWVTaXRlSW5mbyksIFdURk1vdmUo
dXJsKSwgKmZyYW1lSUQsICpwYWdlSUQsIGluY2x1ZGVTZWN1cmVDb29raWVzIH07CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcAppbmRleCBlNzE5MDdkOTc3ZGY1
OTI3M2Y0OTE5YzU2NTFhZjE3MzZmYjFhNjdmLi5mNGIwOWE4ZDVlMWFkOTQ4NGVkN2IzMmViNTZl
Mzk2Zjc1ZGFjOTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3BwCkBAIC03OSwxMiArNzksMTIgQEAgYm9v
bCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXNCdXRL
ZWVwRmlyc3RQYXJ0eUNvb2tpZXMKICAgICByZXR1cm4gbV9yZWdpc3RyYWJsZURvbWFpbnNUb0Js
b2NrQnV0S2VlcENvb2tpZXNGb3IuY29udGFpbnMocmVnaXN0cmFibGVEb21haW4pOwogfQogCi1i
b29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2hvdWxkQmxvY2tDb29raWVzKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFs
PFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQpIGNvbnN0Citib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6c2hvdWxkQmxvY2tDb29raWVzKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgT3B0
aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
cGFnZUlEKSBjb25zdAogewogICAgIHJldHVybiBzaG91bGRCbG9ja0Nvb2tpZXMocmVxdWVzdC5m
aXJzdFBhcnR5Rm9yQ29va2llcygpLCByZXF1ZXN0LnVybCgpLCBmcmFtZUlELCBwYWdlSUQpOwog
fQogICAgIAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNob3VsZEJsb2NrQ29va2llcyhj
b25zdCBVUkwmIGZpcnN0UGFydHlGb3JDb29raWVzLCBjb25zdCBVUkwmIHJlc291cmNlLCBPcHRp
b25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkg
Y29uc3QKK2Jvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzaG91bGRCbG9ja0Nvb2tpZXMoY29u
c3QgVVJMJiBmaXJzdFBhcnR5Rm9yQ29va2llcywgY29uc3QgVVJMJiByZXNvdXJjZSwgT3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFn
ZUlEKSBjb25zdAogewogICAgIFJlZ2lzdHJhYmxlRG9tYWluIGZpcnN0UGFydHlEb21haW4geyBm
aXJzdFBhcnR5Rm9yQ29va2llcyB9OwogICAgIGlmIChmaXJzdFBhcnR5RG9tYWluLmlzRW1wdHko
KSkKQEAgLTEzNiw3ICsxMzYsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6cmVtb3Zl
UHJldmFsZW50RG9tYWlucyhjb25zdCBWZWN0b3I8UmVnaXN0cmFibGVEb21haQogICAgIH0KIH0K
IAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
Zmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIFBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCkgY29uc3QKK2Jvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpoYXNTdG9yYWdl
QWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmll
cj4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKSBjb25zdAogewogICAgIGlmIChmcmFt
ZUlEKSB7CiAgICAgICAgIGF1dG8gZnJhbWVzR3JhbnRlZEl0ZXJhdG9yID0gbV9mcmFtZXNHcmFu
dGVkU3RvcmFnZUFjY2Vzcy5maW5kKHBhZ2VJRCk7CkBAIC0xNjksNyArMTY5LDcgQEAgVmVjdG9y
PFN0cmluZz4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRBbGxTdG9yYWdlQWNjZXNzRW50cmll
cygpIGNvbnN0CiAgICAgcmV0dXJuIGVudHJpZXM7CiB9CiAgICAgCi12b2lkIE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBy
ZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4s
IE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQpCit2b2lk
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0
UGFydHlEb21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlkZW50
aWZpZXIgcGFnZUlEKQogewogICAgIGlmICghZnJhbWVJRCkgewogICAgICAgICBpZiAoZmlyc3RQ
YXJ0eURvbWFpbi5pc0VtcHR5KCkpCkBAIC0xOTEsNyArMTkxLDcgQEAgdm9pZCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
cmVzb3VyY2UKIAogICAgIGF1dG8gcGFnZXNHcmFudGVkSXRlcmF0b3IgPSBtX2ZyYW1lc0dyYW50
ZWRTdG9yYWdlQWNjZXNzLmZpbmQocGFnZUlEKTsKICAgICBpZiAocGFnZXNHcmFudGVkSXRlcmF0
b3IgPT0gbV9mcmFtZXNHcmFudGVkU3RvcmFnZUFjY2Vzcy5lbmQoKSkgewotICAgICAgICBIYXNo
TWFwPHVpbnQ2NF90LCBSZWdpc3RyYWJsZURvbWFpbiwgRGVmYXVsdEhhc2g8dWludDY0X3Q+OjpI
YXNoLCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPHVpbnQ2NF90Pj4gZW50cnk7
CisgICAgICAgIEhhc2hNYXA8RnJhbWVJZGVudGlmaWVyLCBSZWdpc3RyYWJsZURvbWFpbj4gZW50
cnk7CiAgICAgICAgIGVudHJ5LmFkZChmcmFtZUlELnZhbHVlKCksIHJlc291cmNlRG9tYWluKTsK
ICAgICAgICAgbV9mcmFtZXNHcmFudGVkU3RvcmFnZUFjY2Vzcy5hZGQocGFnZUlELCBlbnRyeSk7
CiAgICAgfSBlbHNlIHsKQEAgLTIwMyw3ICsyMDMsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJj
ZQogICAgIH0KIH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnJlbW92ZVN0b3JhZ2VB
Y2Nlc3NGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQpCit2
b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQpCiB7CiAgICAgYXV0
byBpdGVyYXRpb24gPSBtX2ZyYW1lc0dyYW50ZWRTdG9yYWdlQWNjZXNzLmZpbmQocGFnZUlEKTsK
ICAgICBpZiAoaXRlcmF0aW9uID09IG1fZnJhbWVzR3JhbnRlZFN0b3JhZ2VBY2Nlc3MuZW5kKCkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3Rv
cmFnZVNlc3Npb24uaAppbmRleCBjOGVmOGY3YmFiNzVmZDk5NzliMjgyZjVmNWE4NzAyZWY4MGM4
OGIzLi44ZGRmNTViNGExZmNhNWM1NGE0OTkwYTNhMzdjMDU5MjY2OGZlMDBkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQ3JlZGVu
dGlhbFN0b3JhZ2UuaCIKKyNpbmNsdWRlICJGcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJQ
YWdlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlJlZ2lzdHJhYmxlRG9tYWluLmgiCiAjaW5jbHVk
ZSA8cGFsL1Nlc3Npb25JRC5oPgpAQCAtMTIzLDcgKzEyNCw3IEBAIHB1YmxpYzoKICAgICBXRUJD
T1JFX0VYUE9SVCBib29sIGNvb2tpZXNFbmFibGVkKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRDb29raWUoY29uc3QgQ29va2llJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRDb29raWVzKGNvbnN0IFZlY3RvcjxDb29raWU+JiwgY29uc3QgVVJMJiwgY29uc3QgVVJM
JiBtYWluRG9jdW1lbnRVUkwpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29va2llc0Zy
b21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBV
UkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+
LCBjb25zdCBTdHJpbmcmKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENvb2tp
ZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29u
c3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50aWZp
ZXI+LCBjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0
ZUNvb2tpZShjb25zdCBDb29raWUmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZUNv
b2tpZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGRlbGV0ZUFsbENvb2tpZXMoKTsKQEAgLTEzMiwyNiArMTMzLDI2IEBAIHB1YmxpYzoK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZXMoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGNvb2tpZUhvc3ROYW1lcywgSW5jbHVkZUh0dHBPbmx5Q29va2llcyk7
CiAgICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPENvb2tpZT4gZ2V0QWxsQ29va2llcygpOwogICAg
IFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxDb29raWU+IGdldENvb2tpZXMoY29uc3QgVVJMJik7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0
eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgVmVjdG9yPENvb2tpZT4mKSBjb25zdDsK
KyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxGcmFtZUlkZW50
aWZpZXI+LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIFZlY3RvcjxDb29raWU+JikgY29uc3Q7
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmbHVzaENvb2tpZVN0b3JlKCk7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhIYXNoU2V0PFN0cmluZz4mIGhv
c3RuYW1lcyk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29v
a2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNv
bnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRp
Zmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBz
dGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25z
dCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlv
bmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVT
ZWN1cmVDb29raWVzKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6OnBhaXI8U3RyaW5n
LCBib29sPiBjb29raWVzRm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNp
dGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8
UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7CisgICAgV0VCQ09S
RV9FWFBPUlQgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxk
VmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBV
UkwmLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4s
IEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6OnBh
aXI8U3RyaW5nLCBib29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBDb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eSYpIGNvbnN0OwogCiAjaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNob3VsZEJsb2NrQ29v
a2llcyhjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+KSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBib29s
IHNob3VsZEJsb2NrQ29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHlGb3JDb29raWVzLCBjb25z
dCBVUkwmIHJlc291cmNlLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFn
ZUlkZW50aWZpZXI+KSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNob3VsZEJsb2Nr
Q29va2llcyhjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+
LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4pIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIGJv
b2wgc2hvdWxkQmxvY2tDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eUZvckNvb2tpZXMsIGNv
bnN0IFVSTCYgcmVzb3VyY2UsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91bGRCbG9j
a1RoaXJkUGFydHlDb29raWVzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJikgY29uc3Q7CiAgICAg
V0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzQnV0S2VlcEZp
cnN0UGFydHlDb29raWVzRm9yKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJikgY29uc3Q7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRQcmV2YWxlbnREb21haW5zVG9CbG9ja0FuZERlbGV0ZUNv
b2tpZXNGb3IoY29uc3QgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiYpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0UHJldmFsZW50RG9tYWluc1RvQmxvY2tCdXRLZWVwQ29va2llc0Zvcihj
b25zdCBWZWN0b3I8UmVnaXN0cmFibGVEb21haW4+Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyhPcHRpb25hbDxTZWNvbmRzPik7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVQcmV2YWxlbnREb21haW5zKGNvbnN0IFZlY3RvcjxS
ZWdpc3RyYWJsZURvbWFpbj4mIGRvbWFpbnMpOwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFz
U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIGJv
b2wgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21h
aW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDxG
cmFtZUlkZW50aWZpZXI+LCBQYWdlSWRlbnRpZmllcikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBP
UlQgVmVjdG9yPFN0cmluZz4gZ2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoKSBjb25zdDsKLSAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBh
cnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIpOwot
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdy
YW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4s
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDxGcmFt
ZUlkZW50aWZpZXI+LCBQYWdlSWRlbnRpZmllcik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBy
ZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyLCBQYWdlSWRlbnRpZmll
cik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhclBhZ2VTcGVjaWZpY0RhdGFGb3JSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzKFBhZ2VJZGVudGlmaWVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3MoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKFNlY29uZHMpOwpAQCAtMTg1LDcg
KzE4Niw3IEBAIHByaXZhdGU6CiAgICAgT3B0aW9uYWw8U2Vjb25kcz4gY2xpZW50U2lkZUNvb2tp
ZUNhcChjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eSwgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+KSBjb25zdDsKICAgICBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiBtX3JlZ2lz
dHJhYmxlRG9tYWluc1RvQmxvY2tBbmREZWxldGVDb29raWVzRm9yOwogICAgIEhhc2hTZXQ8UmVn
aXN0cmFibGVEb21haW4+IG1fcmVnaXN0cmFibGVEb21haW5zVG9CbG9ja0J1dEtlZXBDb29raWVz
Rm9yOwotICAgIEhhc2hNYXA8UGFnZUlkZW50aWZpZXIsIEhhc2hNYXA8dWludDY0X3QsIFJlZ2lz
dHJhYmxlRG9tYWluLCBEZWZhdWx0SGFzaDx1aW50NjRfdD46Okhhc2gsIFdURjo6VW5zaWduZWRX
aXRoWmVyb0tleUhhc2hUcmFpdHM8dWludDY0X3Q+Pj4gbV9mcmFtZXNHcmFudGVkU3RvcmFnZUFj
Y2VzczsKKyAgICBIYXNoTWFwPFBhZ2VJZGVudGlmaWVyLCBIYXNoTWFwPEZyYW1lSWRlbnRpZmll
ciwgUmVnaXN0cmFibGVEb21haW4+PiBtX2ZyYW1lc0dyYW50ZWRTdG9yYWdlQWNjZXNzOwogICAg
IEhhc2hNYXA8UGFnZUlkZW50aWZpZXIsIEhhc2hNYXA8UmVnaXN0cmFibGVEb21haW4sIFJlZ2lz
dHJhYmxlRG9tYWluPj4gbV9wYWdlc0dyYW50ZWRTdG9yYWdlQWNjZXNzOwogICAgIE9wdGlvbmFs
PFNlY29uZHM+IG1fY2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMgeyB9OwogICAg
IE9wdGlvbmFsPFNlY29uZHM+IG1fYWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMgeyB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3Rv
cmFnZVNlc3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29j
b2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KaW5kZXggODRiNzNiODM0NGIwY2FiNWE5
MDQ4YjQ4NWVmYjE3NmQ1ZDM0MDU4MS4uODVmNGM2MmUzYmY3NGMwZGU1NDM1ZjJmMDBiZTk4NGQ4
MmVhZWY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2Nv
YS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tCkBAIC0yOTQs
NyArMjk0LDcgQEAgc3RhdGljIFJldGFpblB0cjxOU0FycmF5PiBmaWx0ZXJDb29raWVzKE5TQXJy
YXkgKnVuZmlsdGVyZWRDb29raWVzLCBPcHRpb25hbDxTZWMKICAgICByZXR1cm4gZmlsdGVyZWRD
b29raWVzOwogfQogCi1zdGF0aWMgTlNBcnJheSAqY29va2llc0ZvclVSTChjb25zdCBOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2Ft
ZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkKK3N0YXRpYyBOU0Fy
cmF5ICpjb29raWVzRm9yVVJMKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwg
Y29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywg
Y29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkKIHsKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKQogICAgIGlmIChzZXNzaW9uLnNob3VsZEJsb2NrQ29va2llcyhmaXJzdFBhcnR5
LCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCkpCkBAIC0zMDcsNyArMzA3LDcgQEAgc3RhdGljIE5TQXJy
YXkgKmNvb2tpZXNGb3JVUkwoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBj
b25zdCBVUkwmIGYKIH0KIAogZW51bSBJbmNsdWRlSFRUUE9ubHlPck5vdCB7IERvTm90SW5jbHVk
ZUhUVFBPbmx5LCBJbmNsdWRlSFRUUE9ubHkgfTsKLXN0YXRpYyBzdGQ6OnBhaXI8U3RyaW5nLCBi
b29sPiBjb29raWVzRm9yU2Vzc2lvbihjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Np
b24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUlu
Zm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8
UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZUhUVFBPbmx5T3JOb3QgaW5jbHVkZUhUVFBP
bmx5LCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykKK3N0YXRpYyBz
dGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yU2Vzc2lvbihjb25zdCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNp
dGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50
aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVI
VFRQT25seU9yTm90IGluY2x1ZGVIVFRQT25seSwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVk
ZVNlY3VyZUNvb2tpZXMpCiB7CiAgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vz
c1ByaXZpbGVnZTo6Q2FuQWNjZXNzUmF3Q29va2llcykpOwogCkBAIC0zNjMsMTIgKzM2MywxMiBA
QCBzdGF0aWMgdm9pZCBkZWxldGVBbGxIVFRQQ29va2llcyhDRkhUVFBDb29raWVTdG9yYWdlUmVm
IGNvb2tpZVN0b3JhZ2UpCiAgICAgQ0ZIVFRQQ29va2llU3RvcmFnZURlbGV0ZUFsbENvb2tpZXMo
Y29va2llU3RvcmFnZSk7CiB9CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0
X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1
cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAorc3RkOjpwYWlyPFN0cmluZywg
Ym9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVzRm9yRE9NKGNvbnN0IFVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJs
LCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlm
aWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBj
b25zdAogewogICAgIHJldHVybiBjb29raWVzRm9yU2Vzc2lvbigqdGhpcywgZmlyc3RQYXJ0eSwg
c2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgRG9Ob3RJbmNsdWRlSFRUUE9ubHks
IGluY2x1ZGVTZWN1cmVDb29raWVzKTsKIH0KIAotc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBV
UkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBV
UkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlm
aWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBj
b25zdAorc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJ
ZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNs
dWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKIHsKICAgICByZXR1
cm4gY29va2llc0ZvclNlc3Npb24oKnRoaXMsIGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJs
LCBmcmFtZUlELCBwYWdlSUQsIEluY2x1ZGVIVFRQT25seSwgaW5jbHVkZVNlY3VyZUNvb2tpZXMp
OwogfQpAQCAtMzc4LDcgKzM3OCw3IEBAIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uCiAgICAgcmV0
dXJuIGNvb2tpZXNGb3JTZXNzaW9uKCp0aGlzLCBoZWFkZXJGaWVsZFByb3h5LmZpcnN0UGFydHks
IGhlYWRlckZpZWxkUHJveHkuc2FtZVNpdGVJbmZvLCBoZWFkZXJGaWVsZFByb3h5LnVybCwgaGVh
ZGVyRmllbGRQcm94eS5mcmFtZUlELCBoZWFkZXJGaWVsZFByb3h5LnBhZ2VJRCwgSW5jbHVkZUhU
VFBPbmx5LCBoZWFkZXJGaWVsZFByb3h5LmluY2x1ZGVTZWN1cmVDb29raWVzKTsKIH0KIAotdm9p
ZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJs
LCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBh
Z2VJRCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHIpIGNvbnN0Cit2b2lkIE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBT
YW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1l
SWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgY29u
c3QgU3RyaW5nJiBjb29raWVTdHIpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2
aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNjZXNzUmF3Q29va2llcykpOwogCkBAIC00NDMs
NyArNDQzLDcgQEAgYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNFbmFibGVkKCkg
Y29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpnZXRSYXdDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZv
JiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgVmVjdG9yPENvb2tpZT4mIHJhd0Nv
b2tpZXMpIGNvbnN0Citib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyhj
b25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBj
b25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25h
bDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBWZWN0b3I8Q29va2llPiYgcmF3Q29va2llcykgY29u
c3QKIHsKICAgICByYXdDb29raWVzLmNsZWFyKCk7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENF
UFRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L0Nvb2tpZUphckN1cmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L0Nvb2tpZUphckN1cmwuY3BwCmluZGV4IDM5NGMzNDYyNjY0OWQ1ZGVhODY5ZTA5NWJlMGQ5ZmFl
N2IxYTVlY2IuLjcxOThhZGYwYjQyZmVkMGNiNDE4MzQwYmUxNzljM2Y5N2M5OTUxYTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJDdXJs
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFy
Q3VybC5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgc3RhdGljIFN0cmluZyBjb29raWVzRm9yU2Vzc2lv
bihjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYKICAgICBy
ZXR1cm4gY29va2llcy50b1N0cmluZygpOwogfQogCi12b2lkIENvb2tpZUphckN1cmw6OnNldENv
b2tpZXNGcm9tRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgY29uc3Qg
U3RyaW5nJiB2YWx1ZSkgY29uc3QKK3ZvaWQgQ29va2llSmFyQ3VybDo6c2V0Q29va2llc0Zyb21E
T00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFt
ZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgY29uc3QgU3Ry
aW5nJiB2YWx1ZSkgY29uc3QKIHsKICAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CiAKQEAgLTgy
LDcgKzgyLDcgQEAgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gQ29va2llSmFyQ3VybDo6Y29va2ll
c0ZvckRPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24KICAgICByZXR1cm4geyBjb29raWVz
Rm9yU2Vzc2lvbihzZXNzaW9uLCBmaXJzdFBhcnR5LCB1cmwsIGZhbHNlKSwgZmFsc2UgfTsKIH0K
IAotc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gQ29va2llSmFyQ3VybDo6Y29va2llUmVxdWVzdEhl
YWRlckZpZWxkVmFsdWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25z
dCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBP
cHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJ
RCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CitzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBD
b29raWVKYXJDdXJsOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2Ft
ZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJh
bWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tp
ZXMpIGNvbnN0CiB7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwogICAgIFVOVVNFRF9QQVJB
TShwYWdlSUQpOwpAQCAtMTEyLDcgKzExMiw3IEBAIGJvb2wgQ29va2llSmFyQ3VybDo6Y29va2ll
c0VuYWJsZWQoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uKSBjb25zdAogICAg
IHJldHVybiBzZXNzaW9uLmNvb2tpZURhdGFiYXNlKCkuaXNFbmFibGVkKCk7CiB9CiAKLWJvb2wg
Q29va2llSmFyQ3VybDo6Z2V0UmF3Q29va2llcyhjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24m
IHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29u
c3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRl
bnRpZmllcj4gcGFnZUlELCBWZWN0b3I8Q29va2llPiYgcmF3Q29va2llcykgY29uc3QKK2Jvb2wg
Q29va2llSmFyQ3VybDo6Z2V0UmF3Q29va2llcyhjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24m
IHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29u
c3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8
UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgVmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0
CiB7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwogICAgIFVOVVNFRF9QQVJBTShwYWdlSUQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tp
ZUphckN1cmwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVK
YXJDdXJsLmgKaW5kZXggMjRhMDVhMjI3YWUwNmFiYTExNDMxNTJhOGZhYzg0ODI5ZTAxZjQxMC4u
ZTYyYmM0YTA3ZTgyZTNlY2Y3Y2YyZjY4YTQxZTRhMmFkYTcwZmI5MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3VybC5oCkBAIC0y
NCw2ICsyNCw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiRnJhbWVJZGVudGlmaWVy
LmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CkBAIC00MiwxNSArNDMsMTUgQEAgZW51bSBjbGFz
cyBDb29raWVBY2NlcHRQb2xpY3k7CiAKIGNsYXNzIENvb2tpZUphckN1cmwgewogcHVibGljOgot
ICAgIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZXNGb3JET00oY29uc3QgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8m
LCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7Ci0gICAgdm9pZCBzZXRDb29r
aWVzRnJvbURPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90
PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIGNvbnN0IFN0cmluZyYpIGNvbnN0
OworICAgIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZXNGb3JET00oY29uc3QgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUlu
Zm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlv
bmFsPFBhZ2VJZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0OworICAgIHZv
aWQgc2V0Q29va2llc0Zyb21ET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25h
bDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgY29u
c3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdm9pZCBzZXRDb29raWVzRnJvbUhUVFBSZXNwb25zZShj
b25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFVSTCYsIGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAgIHZvaWQgc2V0Q29va2llQWNjZXB0UG9s
aWN5KGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIENvb2tpZUFjY2VwdFBvbGljeSkgY29u
c3Q7CiAgICAgQ29va2llQWNjZXB0UG9saWN5IGNvb2tpZUFjY2VwdFBvbGljeShjb25zdCBOZXR3
b3JrU3RvcmFnZVNlc3Npb24mKSBjb25zdDsKICAgICBib29sIGNvb2tpZXNFbmFibGVkKGNvbnN0
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYpIGNvbnN0OwotICAgIHN0ZDo6cGFpcjxTdHJpbmcsIGJv
b2w+IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3Qg
VVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVy
PiwgSW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0OworICAgIHN0ZDo6cGFpcjxTdHJpbmcsIGJv
b2w+IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3Qg
VVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRl
bnRpZmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKICAgICBzdGQ6OnBhaXI8U3Ry
aW5nLCBib29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb24mLCBjb25zdCBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eSYpIGNvbnN0
OwotICAgIGJvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBj
b25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9w
dGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIFZlY3Rv
cjxDb29raWU+JikgY29uc3Q7CisgICAgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZv
JiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25h
bDxQYWdlSWRlbnRpZmllcj4sIFZlY3RvcjxDb29raWU+JikgY29uc3Q7CiAgICAgdm9pZCBkZWxl
dGVDb29raWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiwgY29uc3Qg
U3RyaW5nJikgY29uc3Q7CiAgICAgdm9pZCBnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhjb25zdCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBIYXNoU2V0PFN0cmluZz4mIGhvc3RuYW1lcykgY29uc3Q7
CiAgICAgdm9pZCBkZWxldGVDb29raWVzRm9ySG9zdG5hbWVzKGNvbnN0IE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjb29raWVIb3N0TmFtZXMpIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtT
dG9yYWdlU2Vzc2lvblNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCmluZGV4IGU0YzhiMGYxM2U2ZDA4OWE1
ODkyYWE3YWUwYTliODIxNTg1YmI5YTQuLmU5NjFjMjg4M2I4NjMwMTA1ZGE3ZDc4MDdmM2ZiYmUy
NjFhMjA2MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKQEAgLTI2MCw3
ICsyNjAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaHR0cE9ubHlDb29raWVFeGlzdHMoY29uc3Qg
R1NMaXN0KiBjb29raWVzLCBjb25zdCBnY2hhciogbmFtZQogICAgIHJldHVybiBmYWxzZTsKIH0K
IAotdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlv
bmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBj
b25zdCBTdHJpbmcmIHZhbHVlKSBjb25zdAordm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNl
dENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZv
JiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0
aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QK
IHsKICAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CiAgICAgVU5VU0VEX1BBUkFNKHBhZ2VJRCk7
CkBAIC00MTMsNyArNDEzLDcgQEAgVmVjdG9yPENvb2tpZT4gTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpnZXRDb29raWVzKGNvbnN0IFVSTCYgdXJsKQogICAgIHJldHVybiBjb29raWVzOwogfQogCi1i
b29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50
NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgVmVjdG9yPENv
b2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0Citib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0
UmF3Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNv
bnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFs
PFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFZlY3RvcjxDb29raWU+JiByYXdDb29raWVzKSBjb25z
dAogewogICAgIFVOVVNFRF9QQVJBTShmaXJzdFBhcnR5KTsKICAgICBVTlVTRURfUEFSQU0oZnJh
bWVJRCk7CkBAIC00ODMsNyArNDgzLDcgQEAgc3RhdGljIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+
IGNvb2tpZXNGb3JTZXNzaW9uKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2UKICAgICBy
ZXR1cm4geyBTdHJpbmc6OmZyb21VVEY4KGNvb2tpZUhlYWRlci5nZXQoKSksIGRpZEFjY2Vzc1Nl
Y3VyZUNvb2tpZXMgfTsKIH0KIAotc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpjb29raWVzRm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2Ft
ZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBP
cHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNs
dWRlU2VjdXJlQ29va2llcykgY29uc3QKK3N0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+
IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVD
b29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAogewogICAgIFVOVVNFRF9QQVJBTShm
aXJzdFBhcnR5KTsKICAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CkBAIC00OTEsNyArNDkxLDcg
QEAgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVz
Rm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXIKICAgICByZXR1cm4gY29va2llc0ZvclNlc3Npb24o
KnRoaXMsIHVybCwgZmFsc2UsIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKIH0KIAotc3RkOjpwYWly
PFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1ZXN0SGVhZGVy
RmllbGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNv
bnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tp
ZXMpIGNvbnN0CitzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmll
cj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3Vy
ZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CiB7CiAgICAgVU5VU0VEX1BBUkFN
KGZpcnN0UGFydHkpOwogICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCmluZGV4IDY4N2Qw
YjA0NjFhZmRlN2MwNzI5OGM2YzllZmZkMjYxOTRiZjQ3YWMuLjc2M2I0NzU5ZTQzM2Y4NzEzMGIz
OTQwMDYyMzQwYjI2ODQ4ZWE4YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcApAQCAtNzE2LDcgKzcxNiw3IEBAIHZvaWQgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnN5bmNTdG9yYWdlSW1tZWRpYXRlbHko
KQogICAgIG1fZGF0YWJhc2UucnVuVmFjdXVtQ29tbWFuZCgpOwogfQogCi12b2lkIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZy
YW1lRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgVG9wRnJhbWVEb21haW4mIHRvcEZyYW1l
RG9tYWluLCBPcHRpb25hbDxGcmFtZUlEPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lk
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNv
bnN0IFN1YkZyYW1lRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgVG9wRnJhbWVEb21haW4m
IHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtNzQz
LDcgKzc0Myw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omhh
c1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mCiAgICAgfSk7CiB9CiAKLXZvaWQg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNz
KFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJh
bWVEb21haW4sIEZyYW1lSUQgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVxdWVzdFN0b3Jh
Z2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21haW4m
JiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApA
QCAtODA0LDcgKzgwNCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoRG9tYWluCiAgICAgZ3JhbnRTdG9y
YWdlQWNjZXNzSW50ZXJuYWwoV1RGTW92ZShkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MpLCBX
VEZNb3ZlKG9wZW5lckRvbWFpbiksIFdURjo6bnVsbG9wdCwgb3BlbmVyUGFnZUlELCBTdG9yYWdl
QWNjZXNzUHJvbXB0V2FzU2hvd246Ok5vLCBbXShTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCkgeyB9
KTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z3JhbnRT
dG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9t
YWluJiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW50U3Rv
cmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFp
biYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZp
ZXIgcGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC04MTgs
NyArODE4LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z3Jh
bnRTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3UKICAgICBncmFudFN0b3JhZ2VBY2Nl
c3NJbnRlcm5hbChXVEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0b3BGcmFtZURvbWFp
biksIGZyYW1lSUQsIHBhZ2VJRCwgcHJvbXB0V2FzU2hvd24sIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6
Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFp
biwgVG9wRnJhbWVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJRD4gZnJh
bWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24g
cHJvbXB0V2FzU2hvd25Ob3dPckVhcmxpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFn
ZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoU3Vi
RnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21haW4mJiB0b3BGcmFtZURv
bWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBw
YWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93bk5vd09yRWFy
bGllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgK
aW5kZXggM2M4ZDJiMWYxNjU0OTNjOTNjYTVkODJiYzAyNzJmOTEzYjdhMDdmYS4uZDI1NmJlMjFj
ZmY3YjFmNzA1NTY0MDMxYTU3NWY1ZTVkMjMzMGVlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKQEAgLTkxLDkgKzkxLDkgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBjYWxjdWxhdGVBbmRTdWJtaXRUZWxlbWV0cnkoKSBjb25zdCBvdmVy
cmlkZTsKIAotICAgIHZvaWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYs
IGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8RnJhbWVJRD4sIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBvdmVycmlkZTsKLSAg
ICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9t
YWluJiYsIEZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIGdyYW50
U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBGcmFtZUlE
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdh
c1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNH
cmFudGVkKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1
YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vz
cyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0
b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGdyYW50U3RvcmFnZUFj
Y2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNz
UHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFj
Y2Vzc1dhc0dyYW50ZWQpPiYmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgbG9nRnJhbWVOYXZpZ2F0
aW9uKGNvbnN0IE5hdmlnYXRlZFRvRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBjb25z
dCBOYXZpZ2F0ZWRGcm9tRG9tYWluJiwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlzTWFpbkZyYW1l
KSBvdmVycmlkZTsKICAgICB2b2lkIGxvZ1VzZXJJbnRlcmFjdGlvbihjb25zdCBUb3BGcmFtZURv
bWFpbiYpIG92ZXJyaWRlOwpAQCAtMTUzLDcgKzE1Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBz
ZXRQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIFJlc291cmNlTG9h
ZFByZXZhbGVuY2UpOwogICAgIHVuc2lnbmVkIHJlY3Vyc2l2ZWx5RmluZE5vblByZXZhbGVudERv
bWFpbnNUaGF0UmVkaXJlY3RlZFRvVGhpc0RvbWFpbih1bnNpZ25lZCBwcmltYXJ5RG9tYWluSUQs
IFN0ZFNldDx1bnNpZ25lZD4mIG5vblByZXZhbGVudFJlZGlyZWN0aW9uU291cmNlcywgdW5zaWdu
ZWQgbnVtYmVyT2ZSZWN1cnNpdmVDYWxscyk7CiAgICAgdm9pZCBzZXREb21haW5zQXNQcmV2YWxl
bnQoU3RkU2V0PHVuc2lnbmVkPiYmKTsKLSAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzc0ludGVy
bmFsKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIE9wdGlvbmFsPEZyYW1lSUQ+
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdh
c1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNH
cmFudGVkKT4mJik7CisgICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChTdWJGcmFt
ZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXI+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1By
b21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nl
c3NXYXNHcmFudGVkKT4mJik7CiAgICAgdm9pZCBtYXJrQXNQcmV2YWxlbnRJZkhhc1JlZGlyZWN0
ZWRUb1ByZXZhbGVudCgpOwogICAgIFZlY3RvcjxSZWdpc3RyYWJsZURvbWFpbj4gZW5zdXJlUHJl
dmFsZW50UmVzb3VyY2VzRm9yRGVidWdNb2RlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZW1vdmVE
YXRhUmVjb3JkcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NNZW1vcnlTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcAppbmRleCBlMjM5ZmNjODAz
ZThkNzQ0NTYxMjE4ZDY3MjE3ZjcxZWQ0MWIxODdmLi5mNmVlOTJmOWI2OGQzMmYwN2U1MjE1ZDMw
MzU0OTk1MTQ0ZjdhODNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc01lbW9yeVN0b3JlLmNwcApAQCAtMjExLDcgKzIxMSw3IEBAIHZvaWQgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc01lbW9yeVN0b3JlOjpzeW5jU3RvcmFnZUltbWVkaWF0ZWx5KCkKICAgICAgICAg
bV9wZXJzaXN0ZW50U3RvcmFnZS0+c2NoZWR1bGVPcldyaXRlTWVtb3J5U3RvcmUoUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlOjpGb3JjZUltbWVkaWF0ZVdyaXRlOjpZZXMp
OwogfQogCi12b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6aGFzU3RvcmFn
ZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFRvcEZy
YW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJRD4gZnJhbWVJRCwgUGFn
ZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6Omhh
c1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25z
dCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmll
cj4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNN
YWluKCkpOwogCkBAIC0yMzUsNyArMjM1LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TWVtb3J5U3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mIHMKICAg
ICB9KTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnJlcXVl
c3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1l
RG9tYWluJiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSUQgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIg
cGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6
OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRv
cEZyYW1lRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vz
c1N0YXR1cyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjpp
c01haW4oKSk7CiAKQEAgLTI4OCw3ICsyODgsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NNZW1vcnlTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihEb21haW5Jbgog
ICAgIGdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFdURk1vdmUoZG9tYWluSW5OZWVkT2ZTdG9y
YWdlQWNjZXNzKSwgV1RGTW92ZShvcGVuZXJEb21haW4pLCBXVEY6Om51bGxvcHQsIG9wZW5lclBh
Z2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpObywgW10oU3RvcmFnZUFjY2Vzc1dh
c0dyYW50ZWQpIHsgfSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0
b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwg
VG9wRnJhbWVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlk
ZW50aWZpZXIgcGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hv
d24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6
OmdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BG
cmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFn
ZUlkZW50aWZpZXIgcGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2Fz
U2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwog
CkBAIC0zMDAsNyArMzAwLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3Rv
cmU6OmdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1YkYKICAgICBncmFudFN0
b3JhZ2VBY2Nlc3NJbnRlcm5hbChXVEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0b3BG
cmFtZURvbWFpbiksIGZyYW1lSUQsIHBhZ2VJRCwgcHJvbXB0V2FzU2hvd24sIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5
U3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJh
bWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPEZyYW1l
SUQ+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdh
c1Nob3duIHByb21wdFdhc1Nob3duTm93T3JFYXJsaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5h
bChTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZy
YW1lRG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duTm93
T3JFYXJsaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVk
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigp
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5o
CmluZGV4IDVhZjY3YTE2ZjA2MTZkYTlmYTBjMDkzMzE1YWNiYzM1ZGFhNWIxMTkuLmE0YTdiODhl
MmRmYjAwMzQ2YmRjMjcxZmViN2U1YjI0YmE4MjA5NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5
U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVz
b3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgKQEAgLTk3LDkgKzk3LDkgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBjYWxjdWxhdGVBbmRTdWJtaXRUZWxlbWV0cnkoKSBjb25zdCBvdmVycmlk
ZTsKIAotICAgIHZvaWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNv
bnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8RnJhbWVJRD4sIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBvdmVycmlkZTsKLSAgICB2
b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWlu
JiYsIEZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIGdyYW50U3Rv
cmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBGcmFtZUlELCBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1No
b3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFu
dGVkKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZy
YW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhT
dWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3Jh
Z2VBY2Nlc3NTdGF0dXMpPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vz
cyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJv
bXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vz
c1dhc0dyYW50ZWQpPiYmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgbG9nRnJhbWVOYXZpZ2F0aW9u
KGNvbnN0IE5hdmlnYXRlZFRvRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBjb25zdCBO
YXZpZ2F0ZWRGcm9tRG9tYWluJiwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlzTWFpbkZyYW1lKSBv
dmVycmlkZTsKICAgICB2b2lkIGxvZ1VzZXJJbnRlcmFjdGlvbihjb25zdCBUb3BGcmFtZURvbWFp
biYpIG92ZXJyaWRlOwpAQCAtMTIzLDcgKzEyMyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbmNy
ZW1lbnRSZWNvcmRzRGVsZXRlZENvdW50Rm9yRG9tYWlucyhIYXNoU2V0PFJlZ2lzdHJhYmxlRG9t
YWluPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFByZXZhbGVudFJlc291cmNlKFJlc291cmNl
TG9hZFN0YXRpc3RpY3MmLCBSZXNvdXJjZUxvYWRQcmV2YWxlbmNlKTsKICAgICB1bnNpZ25lZCBy
ZWN1cnNpdmVseUdldEFsbERvbWFpbnNUaGF0SGF2ZVJlZGlyZWN0ZWRUb1RoaXNEb21haW4oY29u
c3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYsIEhhc2hTZXQ8UmVkaXJlY3RlZFRvRG9tYWluPiYs
IHVuc2lnbmVkIG51bWJlck9mUmVjdXJzaXZlQ2FsbHMpIGNvbnN0OwotICAgIHZvaWQgZ3JhbnRT
dG9yYWdlQWNjZXNzSW50ZXJuYWwoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwg
T3B0aW9uYWw8RnJhbWVJRD4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9y
YWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6
U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKTsKKyAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vz
c0ludGVybmFsKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIE9wdGlvbmFsPFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3Jl
OjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vi
Q29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKTsKICAgICB2b2lkIG1hcmtBc1ByZXZh
bGVudElmSGFzUmVkaXJlY3RlZFRvUHJldmFsZW50KFJlc291cmNlTG9hZFN0YXRpc3RpY3MmKTsK
ICAgICBib29sIGlzUHJldmFsZW50RHVlVG9EZWJ1Z01vZGUoUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyYpOwogICAgIFZlY3RvcjxSZWdpc3RyYWJsZURvbWFpbj4gZW5zdXJlUHJldmFsZW50UmVzb3Vy
Y2VzRm9yRGVidWdNb2RlKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLmgKaW5kZXggNzBhY2JkY2U5NmY2NWNmODNhOTQ2MzdkM2ZiOGQxZTliMjY1NTNk
ZC4uMjA5NDVkYTA5OGE2ODBhMGE0ZTk5NzdmZDc1MjQ3MGY2NzhkOTk1ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5j
bHVkZSAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0NsYXNzaWZpZXIuaCIKICNpbmNsdWRlICJXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRl
bnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgpAQCAtOTAsNyArOTEsNiBA
QCBwdWJsaWM6CiAgICAgdXNpbmcgTmF2aWdhdGVkVG9Eb21haW4gPSBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbjsKICAgICB1c2luZyBEb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MgPSBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKICAgICB1c2luZyBPcGVuZXJEb21haW4gPSBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbjsKLSAgICB1c2luZyBGcmFtZUlEID0gdWludDY0X3Q7CiAgICAg
CiAgICAgdmlydHVhbCB+UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKCk7CiAKQEAgLTE1OSw5
ICsxNTksOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0RlYnVnTW9kZUVuYWJsZWQoKSBjb25zdCB7
IHJldHVybiBtX2RlYnVnTW9kZUVuYWJsZWQ7IH07CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNv
dXJjZUZvckRlYnVnTW9kZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpOwogCi0gICAgdmlydHVh
bCB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BG
cmFtZURvbWFpbiYsIE9wdGlvbmFsPEZyYW1lSUQ+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBy
ZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBG
cmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChT
dG9yYWdlQWNjZXNzU3RhdHVzKT4mJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBncmFudFN0b3Jh
Z2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgRnJhbWVJRCwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93
biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRl
ZCk+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJG
cmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nl
c3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChT
dG9yYWdlQWNjZXNzU3RhdHVzKT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBncmFudFN0b3Jh
Z2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFj
Y2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3Jh
Z2VBY2Nlc3NXYXNHcmFudGVkKT4mJikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGxvZ0ZyYW1l
TmF2aWdhdGlvbihjb25zdCBOYXZpZ2F0ZWRUb0RvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWlu
JiwgY29uc3QgTmF2aWdhdGVkRnJvbURvbWFpbiYsIGJvb2wgaXNSZWRpcmVjdCwgYm9vbCBpc01h
aW5GcmFtZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb24oY29uc3Qg
VG9wRnJhbWVEb21haW4mKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmUuY3BwCmluZGV4IDhjMjExNTdjYzdmNjkxN2JhOTcwODllMzZmMTY5ZDg2Y2Y4
YjhhYjAuLjY3NWYwZGFmNTljZTliNGY4ODdiNzk0YmM4OTJlYzQ0YTgzNzU2ZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCkBAIC0yODAsNyAr
MjgwLDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlc291cmNlTG9h
ZFN0YXRpc3RpY3NVcGRhdGVkKFZlY3RvcjxXZWJDb3IKICAgICB9KTsKIH0KIAotdm9pZCBXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9w
RnJhbWVEb21haW4sIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBw
YWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
Cit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyhj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlE
LCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKHN1YkZyYW1lRG9tYWluICE9IHRvcEZy
YW1lRG9tYWluKTsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAtMzAxLDcgKzMw
MSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpoYXNTdG9yYWdlQWNj
ZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzCiAgICAgfSk7CiB9CiAKLWJvb2wgV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgZmlyc3RQYXJ0eURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFn
ZUlEKQorYm9vbCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nl
c3NGb3JGcmFtZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7CiAKQEAgLTMxNCw3ICszMTQsNyBAQCBib29sIFdlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNvbnN0IFJlZ2lzdHJhYmxlRAogICAg
IHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
OmNhbGxIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlE
b21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sIGhhc0FjY2Vzcyk+JiYgY2FsbGJhY2spCit2b2lkIFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRs
ZXIoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGhhc0FjY2Vz
cyk+JiYgY2FsbGJhY2spCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAt
MzI4LDcgKzMyOCw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxs
SGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcihjb25zdCBSCiAgICAgY2FsbGJhY2soZmFs
c2UpOwogfQogCi12b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0
b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNz
V2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXF1ZXN0U3RvcmFn
ZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNj
ZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC0zOTEsNyAr
MzkxLDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlcXVlc3RTdG9y
YWdlQWNjZXNzVW5kZXJPcGVuZXIoUmVnaXN0cmFibGUKICAgICB9KTsKIH0KIAotdm9pZCBXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0
b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBT
dG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNT
aG93bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJG
cmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBTdG9yYWdlQWNjZXNz
UHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3Rv
cmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBw
b3N0VGFzayhbdGhpcywgc3ViRnJhbWVEb21haW4gPSBzdWJGcmFtZURvbWFpbi5pc29sYXRlZENv
cHkoKSwgdG9wRnJhbWVEb21haW4gPSB0b3BGcmFtZURvbWFpbi5pc29sYXRlZENvcHkoKSwgZnJh
bWVJRCwgcGFnZUlELCBwcm9tcHRXYXNTaG93biwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKQEAgLTQxMCw3ICs0MTAsNyBAQCB2b2lk
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJgogICAgIH0pOwogfQogCi1TdG9yYWdlQWNjZXNzV2FzR3JhbnRl
ZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgUGFnZUlk
ZW50aWZpZXIgcGFnZUlEKQorU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURv
bWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBw
YWdlSUQpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtNDI3LDcgKzQy
Nyw3IEBAIFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0CiAgICAgcmV0dXJuIGlzU3RvcmFnZUdyYW50
ZWQgPyBTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZDo6WWVzIDogU3RvcmFnZUFjY2Vzc1dhc0dyYW50
ZWQ6Ok5vOwogfQogCi12b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEdy
YW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1l
RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
dm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxHcmFudFN0b3JhZ2VBY2Nl
c3NIYW5kbGVyKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZp
ZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
QVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4IDAyM2RjMjc3Y2Y1MDU0N2JmOTY4OWVjY2E0ODQ0ZDBl
NjRhYjEzMmYuLjlkYTFiNmJiNTIxNTIxYTAxMjQyMzRjZDQzMjcxMTU2ZjhjZTBiNWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAgLTMwLDYgKzMw
LDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFjY2Vzc1N0
YXR1cy5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhVHlwZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
RnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVnaXN0cmFibGVEb21haW4uaD4KICNpbmNsdWRlIDx3dGYvQ29t
cGxldGlvbkhhbmRsZXIuaD4KQEAgLTg5LDcgKzkwLDYgQEAgcHVibGljOgogICAgIHVzaW5nIE5h
dmlnYXRlZFRvRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNpbmcg
RG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47
CiAgICAgdXNpbmcgT3BlbmVyRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47Ci0g
ICAgdXNpbmcgRnJhbWVJRCA9IHVpbnQ2NF90OwogICAgIHVzaW5nIFN0b3JhZ2VBY2Nlc3NXYXNH
cmFudGVkID0gV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQ7CiAgICAgdXNpbmcgU3Rv
cmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duID0gV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdh
c1Nob3duOwogCkBAIC0xMTEsNyArMTExLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2hvdWxk
Q2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoYm9vbCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFNob3VsZFN1Ym1pdFRlbGVtZXRyeShi
b29sKTsKIAotICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWlu
JiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBGcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0
b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKTsK
KyAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0
IFRvcEZyYW1lRG9tYWluJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hv
d24pPiYmKTsKIAogICAgIHZvaWQgYXBwbGljYXRpb25XaWxsVGVybWluYXRlKCk7CiAKQEAgLTEy
NSwxMSArMTI1LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyVXNlckludGVyYWN0aW9uKGNv
bnN0IFRvcEZyYW1lRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2
b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9yUmVnaXN0cmFibGVEb21haW5zKE9wdGlvblNldDxXZWJz
aXRlRGF0YVR5cGU+LCBIYXNoTWFwPFJlZ2lzdHJhYmxlRG9tYWluLCBXZWJzaXRlRGF0YVRvUmVt
b3ZlPiYmLCBib29sIHNob3VsZE5vdGlmeVBhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29u
c3QgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4mKT4mJik7CiAgICAgdm9pZCByZWdpc3RyYWJs
ZURvbWFpbnNXaXRoV2Vic2l0ZURhdGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIGJvb2wg
c2hvdWxkTm90aWZ5UGFnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNoU2V0PFJlZ2lzdHJh
YmxlRG9tYWluPiYmKT4mJik7Ci0gICAgU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgZ3JhbnRTdG9y
YWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBP
cHRpb25hbDxGcmFtZUlEPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOworICAgIFN0b3JhZ2VB
Y2Nlc3NXYXNHcmFudGVkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYs
IGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
PiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogICAgIHZvaWQgaGFzSGFkVXNlckludGVyYWN0
aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJik7Ci0gICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwg
Y29uc3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxGcmFtZUlEPiwgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotICAgIGJvb2wgaGFz
U3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJh
bWVEb21haW4mLCBGcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7Ci0gICAgdm9pZCBy
ZXF1ZXN0U3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1l
RG9tYWluJiwgRnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNT
aG93bik+JiYpOworICAgIHZvaWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFp
biYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpOworICAgIGJvb2wgaGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNvbnN0IFN1YkZyYW1l
RG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNz
KGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hv
d24pPiYmKTsKICAgICB2b2lkIHNldExhc3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwg
U2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFByZXZh
bGVudFJlc291cmNlKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFZlcnlQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CkBAIC0xNzIsMTEg
KzE3MiwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVn
TW9kZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CiAKICAgICB2b2lkIGxvZ1Rlc3RpbmdFdmVudChjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lk
IGNhbGxHcmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29u
c3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxGcmFtZUlEPiwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYm
KTsKKyAgICB2b2lkIGNhbGxHcmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKGNvbnN0IFN1YkZyYW1l
RG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXI+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpOwogICAgIHZvaWQgcmVtb3ZlQWxsU3RvcmFn
ZUFjY2VzcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgY2FsbFVwZGF0
ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0ZvckhhbmRsZXIoY29uc3QgUmVnaXN0cmFi
bGVEb21haW5zVG9CbG9ja0Nvb2tpZXNGb3ImLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwogICAgIHZvaWQgY2FsbFJlbW92ZURvbWFpbnNIYW5kbGVyKGNvbnN0IFZlY3RvcjxSZWdpc3Ry
YWJsZURvbWFpbj4mKTsKLSAgICB2b2lkIGNhbGxIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5k
bGVyKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBGcmFtZUlE
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
Jik7CisgICAgdm9pZCBjYWxsSGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcihjb25zdCBT
dWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJik7CiAKICAgICB2b2lkIGRpZENyZWF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRD
aGVja2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxp
Z2h0Q2hlY2tlci5oCmluZGV4IDc5MzAxYjIwY2NjYWZlYjUyMTBkNzVhZDU3NDFmZDJkOTJlOGFj
YWQuLjJjYmY0YzZlZTJiM2NjNTBiNTExN2NmMjZmMzEzYjE1MmM3MzkwZmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2Vy
LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdo
dENoZWNrZXIuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgICAgIFN0cmluZyB1c2Vy
QWdlbnQ7CiAgICAgICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRDsKICAgICAgICAgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEOwotICAgICAgICB1aW50NjRfdCBmcmFtZUlEOworICAg
ICAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRDsKICAgICAgICAgV2ViQ29yZTo6
U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k7CiAgICAgfTsK
ICAgICB1c2luZyBDb21wbGV0aW9uQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImJik+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRl
eCAxZjEwMDRlMWI1YmNkMzlkOGIxMjJkZjhjNmRhNDhkMTM3YzRiZTYxLi4wYzJjOTc2ZmVlMjBk
MzI5YjQwN2UwNGRiOTYyZmI2Nzk5YWY0MzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cApAQCAtNTI1LDcgKzUyNSw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChQQUw6OlNlc3NpCiAgICAgbG9hZGVy
LT5jb252ZXJ0VG9Eb3dubG9hZChkb3dubG9hZElELCByZXF1ZXN0LCByZXNwb25zZSk7CiB9CiAK
LXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNGb3JET00oUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRl
SW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29r
aWVzIGluY2x1ZGVTZWN1cmVDb29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyBj
b29raWVTdHJpbmcsIGJvb2wgc2VjdXJlQ29va2llc0FjY2Vzc2VkKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNGb3JET00o
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJ
ZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNs
dWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChTdHJpbmcgY29va2llU3RyaW5nLCBib29sIHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXV0byYgbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0g
c3RvcmFnZVNlc3Npb24obmV0d29ya1Byb2Nlc3MoKSwgc2Vzc2lvbklEKTsKICAgICBhdXRvIHJl
c3VsdCA9IG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jb29raWVzRm9yRE9NKGZpcnN0UGFydHksIHNh
bWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIGluY2x1ZGVTZWN1cmVDb29raWVzKTsK
QEAgLTUzOCw3ICs1MzgsNyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpj
b29raWVzRm9yRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29ucwogICAgIGNvbXBsZXRp
b25IYW5kbGVyKFdURk1vdmUocmVzdWx0LmZpcnN0KSwgcmVzdWx0LnNlY29uZCk7CiB9CiAKLXZv
aWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldENvb2tpZXNGcm9tRE9NKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0
ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBm
cmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBjb25zdCBTdHJpbmcmIGNv
b2tpZVN0cmluZykKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldENvb2tp
ZXNGcm9tRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlv
bmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpCiB7CiAgICAgYXV0byYg
bmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gc3RvcmFnZVNlc3Npb24obmV0d29ya1Byb2Nlc3MoKSwg
c2Vzc2lvbklEKTsKICAgICBuZXR3b3JrU3RvcmFnZVNlc3Npb24uc2V0Q29va2llc0Zyb21ET00o
Zmlyc3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgY29va2llU3Ry
aW5nKTsKQEAgLTU1NSwxMyArNTU1LDEzIEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OmNvb2tpZXNFbmFibGVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tCiAgICAg
Y29tcGxldGlvbkhhbmRsZXIoc3RvcmFnZVNlc3Npb24obmV0d29ya1Byb2Nlc3MoKSwgc2Vzc2lv
bklEKS5jb29raWVzRW5hYmxlZCgpKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNp
dGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlv
bmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVT
ZWN1cmVDb29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZywgYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0
IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVD
b29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZywgYm9vbCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgYXV0byByZXN1bHQgPSBzdG9yYWdlU2Vzc2lvbihuZXR3b3JrUHJv
Y2VzcygpLCBzZXNzaW9uSUQpLmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGZpcnN0UGFy
dHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIGluY2x1ZGVTZWN1cmVDb29r
aWVzKTsKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdC5maXJzdCksIHJlc3Vs
dC5zZWNvbmQpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXRS
YXdDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlv
bmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Z2V0UmF3
Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwg
Y29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25h
bDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdl
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gcmVzdWx0
OwogICAgIHN0b3JhZ2VTZXNzaW9uKG5ldHdvcmtQcm9jZXNzKCksIHNlc3Npb25JRCkuZ2V0UmF3
Q29va2llcyhmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlELCBy
ZXN1bHQpOwpAQCAtNjcwLDcgKzY3MCw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OmVuc3VyZUxlZ2FjeVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQogfQogCiAjaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKK3ZvaWQgTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRl
bnRpZmllciBwYWdlSUQpCiB7CiAgICAgaWYgKGF1dG8qIHN0b3JhZ2VTZXNzaW9uID0gbmV0d29y
a1Byb2Nlc3MoKS5zdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQogICAgICAgICBzdG9yYWdlU2Vz
c2lvbi0+cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGZyYW1lSUQsIHBhZ2VJRCk7CkBAIC03
MjgsNyArNzI4LDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1VwZGF0ZWQoVmVjdG9yPFdlYkNvcmUKICAgICAgICAgcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy0+cmVzb3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0ZWQoV1RGTW92ZShzdGF0
aXN0aWNzKSk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Omhhc1N0
b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURv
bWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6aGFzU3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
UGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IG5ldHdv
cmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewogICAgICAgICBpZiAoYXV0
byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IG5ldHdvcmtTZXNzaW9uLT5yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzKCkpIHsKQEAgLTc0MCw3ICs3NDAsNyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpoYXNTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
YwogICAgIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRl
bnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFj
Y2Vzc1dhc0dyYW50ZWQgd2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdh
c1Nob3duIHByb21wdFdhc1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vi
Q29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgd2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFn
ZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSBuZXR3b3JrUHJvY2VzcygpLm5l
dHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKICAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9h
ZFN0YXRpc3RpY3MgPSBuZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggOTI4NjczM2M0YjdjNzUxMmMyOWM1MzI0Mzgy
MWQwZWUxZWM3MTMwOS4uMjU1MDg0ZjkyMzFmZWE4MzA4MDA5OGQzNTkzMDU3YTFiZDkwN2M1MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIk5l
dHdvcmtSVENQcm92aWRlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRNYXAuaCIK
ICNpbmNsdWRlICJXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrTG9hZEluZm9y
bWF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KQEAgLTE3NCwxMSArMTc1LDExIEBAIHByaXZh
dGU6CiAgICAgdm9pZCBzdGFydERvd25sb2FkKFBBTDo6U2Vzc2lvbklELCBEb3dubG9hZElELCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZE5h
bWUgPSB7IH0pOwogICAgIHZvaWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFBB
TDo6U2Vzc2lvbklELCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgRG93bmxv
YWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYpOwogCi0gICAgdm9pZCBjb29raWVzRm9yRE9NKFBBTDo6U2Vzc2lvbklE
LCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNv
bnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllcj4sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgc2VjdXJlQ29va2llc0FjY2Vz
c2VkKT4mJik7Ci0gICAgdm9pZCBzZXRDb29raWVzRnJvbURPTShQQUw6OlNlc3Npb25JRCwgY29u
c3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBV
UkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXI+LCBjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGNvb2tpZXNGb3JET00oUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJ
bmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgT3B0
aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29v
a2llcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcgY29va2llU3RyaW5nLCBib29sIHNl
Y3VyZUNvb2tpZXNBY2Nlc3NlZCk+JiYpOworICAgIHZvaWQgc2V0Q29va2llc0Zyb21ET00oUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNp
dGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwg
T3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBjb25zdCBTdHJpbmcmKTsKICAgICB2
b2lkIGNvb2tpZXNFbmFibGVkKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKTsKLSAgICB2b2lkIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRl
SW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgc2VjdXJlQ29v
a2llc0FjY2Vzc2VkKT4mJik7Ci0gICAgdm9pZCBnZXRSYXdDb29raWVzKFBBTDo6U2Vzc2lvbklE
LCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNv
bnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllcj4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkNv
b2tpZT4mJik+JiYpOworICAgIHZvaWQgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNp
dGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwg
T3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJl
Q29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcgY29va2llU3RyaW5nLCBib29s
IHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCk+JiYpOworICAgIHZvaWQgZ2V0UmF3Q29va2llcyhQQUw6
OlNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0
ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBP
cHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
VmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJik+JiYpOwogICAgIHZvaWQgZGVsZXRlQ29va2llKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUpOwogCiAg
ICAgdm9pZCByZWdpc3RlckZpbGVCbG9iVVJMKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmLCBj
b25zdCBTdHJpbmcmIHBhdGgsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmLCBjb25zdCBTdHJp
bmcmIGNvbnRlbnRUeXBlKTsKQEAgLTIxOCw3ICsyMTksNyBAQCBwcml2YXRlOgogICAgIENhY2hl
U3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24mIGNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oKTsKIAogI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgdm9pZCByZW1vdmVTdG9yYWdl
QWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShQ
QUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllcik7CiAgICAgdm9pZCBjbGVhclBhZ2VTcGVjaWZpY0RhdGFGb3JSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzKFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAKICAg
ICB2b2lkIGxvZ1VzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mKTsKQEAgLTIyNiw4ICsyMjcsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgbG9nU3Vi
cmVzb3VyY2VMb2FkaW5nKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
dGFyZ2V0RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIFdh
bGxUaW1lIGxhc3RTZWVuKTsKICAgICB2b2lkIGxvZ1N1YnJlc291cmNlUmVkaXJlY3QoUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzb3VyY2VEb21haW4sIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiB0YXJnZXREb21haW4pOwogICAgIHZvaWQgcmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1VwZGF0ZWQoVmVjdG9yPFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M+JiYp
OwotICAgIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9w
RnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKLSAgICB2b2lkIHJlcXVlc3RTdG9yYWdl
QWNjZXNzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVE
b21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3Qg
ZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
V2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQ
cm9tcHRXYXNTaG93bik+JiYpOworICAgIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Np
b25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
OworICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NX
YXNHcmFudGVkLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKTsKICAg
ICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoUEFMOjpTZXNzaW9uSUQsIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzLCBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBvcGVuZXJQYWdlSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluJiYgb3BlbmVyRG9tYWluKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA0YjExODliMzljY2ViYzhmYjIyNmY4ZmVlMDM0Mjhj
NmM4NWFkN2EzLi45OWFiZDA3OGZiMTRjOWYzMGJlOWM4NzYwM2ExM2Q5MWJkNzlhOWNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTM0LDExICszNCwx
MSBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBMZWdhY3lSZWNl
aXZlciB7CiAgICAgU3RhcnREb3dubG9hZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktp
dDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dCwgU3RyaW5nIHN1Z2dlc3RlZE5hbWUpCiAgICAgQ29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rv
d25sb2FkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgbWFpblJlc291cmNlTG9h
ZElkZW50aWZpZXIsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSkK
IAotICAgIENvb2tpZXNGb3JET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgZmlyc3RQ
YXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmws
IE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRp
Zmllcj4gcGFnZUlELCBlbnVtOmJvb2wgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5j
bHVkZVNlY3VyZUNvb2tpZXMpIC0+IChTdHJpbmcgY29va2llU3RyaW5nLCBib29sIGRpZEFjY2Vz
c1NlY3VyZUNvb2tpZXMpIFN5bmNocm9ub3VzCi0gICAgU2V0Q29va2llc0Zyb21ET00oUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVT
aXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlE
LCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBTdHJpbmcgY29va2ll
U3RyaW5nKQorICAgIENvb2tpZXNGb3JET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwg
Zmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVS
TCB1cmwsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9u
YWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgZW51bTpib29sIFdlYkNvcmU6Oklu
Y2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSAtPiAoU3RyaW5nIGNvb2tp
ZVN0cmluZywgYm9vbCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzKSBTeW5jaHJvbm91cworICAgIFNl
dENvb2tpZXNGcm9tRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZpcnN0UGFydHks
IHN0cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRp
b25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFN0cmluZyBjb29raWVTdHJpbmcpCiAgICAgQ29va2ll
c0VuYWJsZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoYm9vbCBlbmFibGVkKSBTeW5j
aHJvbm91cwotICAgIENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgVVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8g
c2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9u
YWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgZW51bTpib29sIFdlYkNvcmU6Oklu
Y2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSAtPiAoU3RyaW5nIGNvb2tp
ZVN0cmluZywgYm9vbCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzKSBTeW5jaHJvbm91cwotICAgIEdl
dFJhd0Nvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgZmlyc3RQYXJ0eSwgc3Ry
dWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFn
ZUlEKSAtPiAoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykgU3luY2hyb25vdXMKKyAg
ICBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5m
bywgVVJMIHVybCwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBP
cHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBlbnVtOmJvb2wgV2ViQ29y
ZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIC0+IChTdHJpbmcg
Y29va2llU3RyaW5nLCBib29sIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMpIFN5bmNocm9ub3VzCisg
ICAgR2V0UmF3Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5
LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0
aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcj4gcGFnZUlEKSAtPiAoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29v
a2llcykgU3luY2hyb25vdXMKICAgICBEZWxldGVDb29raWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBVUkwgdXJsLCBTdHJpbmcgY29va2llTmFtZSkKIAogICAgIFJlZ2lzdGVyRmlsZUJsb2JV
UkwoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgdXJsLCBTdHJpbmcgcGF0aCwgV2ViS2l0
OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgZXh0ZW5zaW9uSGFuZGxlLCBTdHJpbmcgY29udGVu
dFR5cGUpCkBAIC01OCwxNSArNTgsMTUgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIEVuc3VyZUxlZ2FjeVByaXZhdGVCcm93
c2luZ1Nlc3Npb24oKQogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLSAg
ICBSZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1
aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpOworICAgIFJl
bW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdl
SUQpOwogICAgIENsZWFyUGFnZVNwZWNpZmljRGF0YUZvclJlc291cmNlTG9hZFN0YXRpc3RpY3Mo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQp
OwogICAgIExvZ1VzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbikKICAgICBMb2dXZWJTb2NrZXRMb2FkaW5nKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFyZ2V0
RG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgV2FsbFRp
bWUgbGFzdFNlZW4pCiAgICAgTG9nU3VicmVzb3VyY2VMb2FkaW5nKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFyZ2V0RG9tYWluLCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgV2FsbFRpbWUgbGFzdFNlZW4pCiAg
ICAgTG9nU3VicmVzb3VyY2VSZWRpcmVjdChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIHNvdXJjZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gdGFyZ2V0RG9tYWluKQogICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVkKFZl
Y3RvcjxXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPiBzdGF0aXN0aWNzKQotICAgIEhh
c1N0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9w
RnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCkgLT4gKGJvb2wgaGFzU3RvcmFnZUFjY2VzcykgQXN5bmMKLSAgICBSZXF1ZXN0U3RvcmFn
ZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURv
bWFpbiwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKSAt
PiAoZW51bTpib29sIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIHdhc0dyYW50ZWQs
IGVudW06Ym9vbCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2Fz
U2hvd24pIEFzeW5jCisgICAgSGFzU3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkgLT4gKGJvb2wgaGFzU3Rv
cmFnZUFjY2VzcykgQXN5bmMKKyAgICBSZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkZyYW1lRG9tYWluLCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkgLT4gKGVu
dW06Ym9vbCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCB3YXNHcmFudGVkLCBlbnVt
OmJvb2wgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3du
KSBBc3luYwogICAgIFJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW5Jbk5lZWRPZlN0
b3JhZ2VBY2Nlc3MsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIG9wZW5lclBhZ2VJRCwgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4gb3BlbmVyRG9tYWluKQogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcAppbmRleCA0
MDk3MTRkNjY3MjZhODQ3NGFmZjI5YTE2MDgxN2YyNDc5NjdiMDE2Li4xMTc2ZjUzN2E4NTgwOWI0
YmFlMWNlNzY4YjU2NTM1YjE1ZDVlYmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwCkBAIC00OCw3ICs0OCw3IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBpc1NhbWVPcmlnaW4oY29uc3QgVVJMJiB1cmwsIGNvbnN0IFNlY3VyaXR5
T3JpZ2luKiBvcmlnaW4pCiAgICAgcmV0dXJuIHVybC5wcm90b2NvbElzRGF0YSgpIHx8IHVybC5w
cm90b2NvbElzQmxvYigpIHx8ICFvcmlnaW4gfHwgb3JpZ2luLT5jYW5SZXF1ZXN0KHVybCk7CiB9
CiAKLU5ldHdvcmtMb2FkQ2hlY2tlcjo6TmV0d29ya0xvYWRDaGVja2VyKE5ldHdvcmtQcm9jZXNz
JiBuZXR3b3JrUHJvY2VzcywgRmV0Y2hPcHRpb25zJiYgb3B0aW9ucywgUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIEhUVFBI
ZWFkZXJNYXAmJiBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzLCBVUkwmJiB1cmwsIFJlZlB0cjxTZWN1
cml0eU9yaWdpbj4mJiBzb3VyY2VPcmlnaW4sIFByZWZsaWdodFBvbGljeSBwcmVmbGlnaHRQb2xp
Y3ksIFN0cmluZyYmIHJlZmVycmVyLCBib29sIGlzSFRUUFNVcGdyYWRlRW5hYmxlZCwgYm9vbCBz
aG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MsIExvYWRUeXBlIHJlcXVlc3RMb2Fk
VHlwZSkKK05ldHdvcmtMb2FkQ2hlY2tlcjo6TmV0d29ya0xvYWRDaGVja2VyKE5ldHdvcmtQcm9j
ZXNzJiBuZXR3b3JrUHJvY2VzcywgRmV0Y2hPcHRpb25zJiYgb3B0aW9ucywgUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBIVFRQSGVhZGVyTWFwJiYgb3JpZ2luYWxSZXF1ZXN0SGVhZGVycywgVVJMJiYgdXJsLCBS
ZWZQdHI8U2VjdXJpdHlPcmlnaW4+JiYgc291cmNlT3JpZ2luLCBQcmVmbGlnaHRQb2xpY3kgcHJl
ZmxpZ2h0UG9saWN5LCBTdHJpbmcmJiByZWZlcnJlciwgYm9vbCBpc0hUVFBTVXBncmFkZUVuYWJs
ZWQsIGJvb2wgc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzLCBMb2FkVHlwZSBy
ZXF1ZXN0TG9hZFR5cGUpCiAgICAgOiBtX29wdGlvbnMoV1RGTW92ZShvcHRpb25zKSkKICAgICAs
IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAsIG1fbmV0d29ya1Byb2Nlc3MobmV0d29ya1By
b2Nlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtM
b2FkQ2hlY2tlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENo
ZWNrZXIuaAppbmRleCAwNzcwNjQ2NzBmY2JiOWFjOTQyZjhkODYxODEwNDk1OWYwMGUwNTc4Li5l
Yzk0ZTE0Njk1MzNkN2Q5ODc4MTZiYjI2YjE3ZGZiMjNiOTQzZmMxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmgKQEAgLTI5LDYgKzI5
LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9Db250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0ZldGNoT3B0aW9ucy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJ
ZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrTG9hZEluZm9ybWF0aW9uLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UmVzb3VyY2VFcnJvci5oPgpAQCAtNTUsNyArNTYsNyBAQCBjbGFzcyBOZXR3b3JrTG9hZENoZWNr
ZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TmV0d29ya0xvYWRDaGVja2VyPiB7CiBwdWJsaWM6
CiAgICAgZW51bSBjbGFzcyBMb2FkVHlwZSA6IGJvb2wgeyBNYWluRnJhbWUsIE90aGVyIH07CiAK
LSAgICBOZXR3b3JrTG9hZENoZWNrZXIoTmV0d29ya1Byb2Nlc3MmLCBXZWJDb3JlOjpGZXRjaE9w
dGlvbnMmJiwgUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRf
dCBmcmFtZUlELCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiYsIFVSTCYmLCBSZWZQdHI8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4+JiYsIFdlYkNvcmU6OlByZWZsaWdodFBvbGljeSwgU3RyaW5nJiYg
cmVmZXJyZXIsIGJvb2wgaXNIVFRQU1VwZ3JhZGVFbmFibGVkID0gZmFsc2UsIGJvb2wgc2hvdWxk
Q2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzID0gZmFsc2UsIExvYWRUeXBlIHJlcXVlc3RM
b2FkVHlwZSA9IExvYWRUeXBlOjpPdGhlcik7CisgICAgTmV0d29ya0xvYWRDaGVja2VyKE5ldHdv
cmtQcm9jZXNzJiwgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiYsIFBBTDo6U2Vzc2lvbklELCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpI
VFRQSGVhZGVyTWFwJiYsIFVSTCYmLCBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYs
IFdlYkNvcmU6OlByZWZsaWdodFBvbGljeSwgU3RyaW5nJiYgcmVmZXJyZXIsIGJvb2wgaXNIVFRQ
U1VwZ3JhZGVFbmFibGVkID0gZmFsc2UsIGJvb2wgc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xv
YWRNZXRyaWNzID0gZmFsc2UsIExvYWRUeXBlIHJlcXVlc3RMb2FkVHlwZSA9IExvYWRUeXBlOjpP
dGhlcik7CiAgICAgfk5ldHdvcmtMb2FkQ2hlY2tlcigpOwogCiAgICAgc3RydWN0IFJlZGlyZWN0
aW9uVHJpcGxldCB7CkBAIC0xMjcsNyArMTI4LDcgQEAgcHJpdmF0ZToKICAgICBQQUw6OlNlc3Np
b25JRCBtX3Nlc3Npb25JRDsKICAgICBSZWY8TmV0d29ya1Byb2Nlc3M+IG1fbmV0d29ya1Byb2Nl
c3M7CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV9wYWdlSUQ7Ci0gICAgdWludDY0X3Qg
bV9mcmFtZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX2ZyYW1lSUQ7CiAgICAg
V2ViQ29yZTo6SFRUUEhlYWRlck1hcCBtX29yaWdpbmFsUmVxdWVzdEhlYWRlcnM7IC8vIE5lZWRl
ZCBmb3IgQ09SUyBjaGVja3MuCiAgICAgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCBtX2ZpcnN0UmVx
dWVzdEhlYWRlcnM7IC8vIE5lZWRlZCBmb3IgQ09SUyBjaGVja3MuCiAgICAgVVJMIG1fdXJsOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFt
ZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0
ZXJzLmgKaW5kZXggYzQzZTVkY2Q3NTAxMWE1NTkxZTZlNjgyNzI0YzFhNjk1NjVlY2YxNy4uYjhm
N2QxMzllMzFlYzVjODI3MTM1ZTM3MzBiN2IwZDllZjBhNDYxYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCkBAIC0yNyw2
ICsyNyw3IEBACiAKICNpbmNsdWRlICJOZXR3b3JrQWN0aXZpdHlUcmFja2VyLmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9CbG9iRGF0YUZpbGVSZWZlcmVuY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zy
YW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CkBAIC00Niw3ICs0Nyw3IEBAIHB1YmxpYzoKIAogICAgIFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRDsKICAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQ
YWdlSUQ7Ci0gICAgdWludDY0X3Qgd2ViRnJhbWVJRCB7IDAgfTsKKyAgICBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgd2ViRnJhbWVJRDsKICAgICBXVEY6OlByb2Nlc3NJRCBwYXJlbnRQSUQgeyAw
IH07CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Q7CiAgICAgV2ViQ29yZTo6
Q29udGVudFNuaWZmaW5nUG9saWN5IGNvbnRlbnRTbmlmZmluZ1BvbGljeSB7IFdlYkNvcmU6OkNv
bnRlbnRTbmlmZmluZ1BvbGljeTo6U25pZmZDb250ZW50IH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggYTkyYjcyNDFlYjI5OGVhNjZjNWE4
YTI4NDc0ZjQwM2U1N2U0NWMzOS4uYzIzNjNkZDExMzVmN2UyYmZhMDMyOWVkZjI2MmEyNWJlZTIy
YjNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aApAQCAtMTM3LDcgKzEzNyw2IEBAIHB1YmxpYzoKICAgICB1c2luZyBOYXZpZ2F0ZWRUb0RvbWFp
biA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwogICAgIHVzaW5nIERvbWFpbkluTmVlZE9m
U3RvcmFnZUFjY2VzcyA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwogICAgIHVzaW5nIE9w
ZW5lckRvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwotICAgIHVzaW5nIEZyYW1l
SUQgPSB1aW50NjRfdDsKIAogICAgIE5ldHdvcmtQcm9jZXNzKEF1eGlsaWFyeVByb2Nlc3NJbml0
aWFsaXphdGlvblBhcmFtZXRlcnMmJik7CiAgICAgfk5ldHdvcmtQcm9jZXNzKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5j
cHAKaW5kZXggNDc4MmVmMTVmM2RlZWU1YWY0ZWFlZjA1Y2RmNjAzNmFlN2U2ZDJmYi4uZWM2YTgw
Yzg0ODlkZWYzMmQ3ODliNzRiZWMxMjczNTdiZWM1NTgzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApAQCAtMTgw
LDE4ICsxODAsMTggQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KCkKIAogICAg
ICAgICAgICAgV1RGOjpzd2l0Y2hPbihyZXN1bHQsCiAgICAgICAgICAgICAgICAgW3RoaXNdIChS
ZXNvdXJjZUVycm9yJiBlcnJvcikgewotICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKCJzdGFydDogZXJyb3IgY2hlY2tpbmcgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVz
b3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkLCBwYXJlbnRQSUQgPSAlZCwgZXJyb3IuZG9t
YWluID0gJXtwdWJsaWN9cywgZXJyb3IuY29kZSA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdl
SUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVu
dGlmaWVyLCB0aGlzLT5pc01haW5SZXNvdXJjZSgpLCB0aGlzLT5pc1N5bmNocm9ub3VzKCksIG1f
cGFyYW1ldGVycy5wYXJlbnRQSUQsIGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCksIGVycm9y
LmVycm9yQ29kZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RCgic3RhcnQ6IGVycm9yIGNoZWNraW5nIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9
ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0g
JWQsIGlzU3luY2hyb25vdXMgPSAlZCwgcGFyZW50UElEID0gJWQsIGVycm9yLmRvbWFpbiA9ICV7
cHVibGljfXMsIGVycm9yLmNvZGUgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUlu
dDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5p
ZGVudGlmaWVyLCB0aGlzLT5pc01haW5SZXNvdXJjZSgpLCB0aGlzLT5pc1N5bmNocm9ub3VzKCks
IG1fcGFyYW1ldGVycy5wYXJlbnRQSUQsIGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCksIGVy
cm9yLmVycm9yQ29kZSgpKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFlcnJvci5pc0NhbmNl
bGxhdGlvbigpKQogICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy0+ZGlkRmFpbExvYWRpbmco
ZXJyb3IpOwogICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgW3RoaXNdIChOZXR3
b3JrTG9hZENoZWNrZXI6OlJlZGlyZWN0aW9uVHJpcGxldCYgdHJpcGxldCkgewogICAgICAgICAg
ICAgICAgICAgICB0aGlzLT5tX2lzV2FpdGluZ0NvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0Rm9yQ2Fj
aGVkUmVkaXJlY3QgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICB0aGlzLT53aWxsU2VuZFJl
ZGlyZWN0ZWRSZXF1ZXN0KFdURk1vdmUodHJpcGxldC5yZXF1ZXN0KSwgV1RGTW92ZSh0cmlwbGV0
LnJlZGlyZWN0UmVxdWVzdCksIFdURk1vdmUodHJpcGxldC5yZWRpcmVjdFJlc3BvbnNlKSk7Ci0g
ICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0OiBzeW50aGV0
aWMgcmVkaXJlY3Qgc2VudCBiZWNhdXNlIHJlcXVlc3QgVVJMIHdhcyBtb2RpZmllZCAocGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBS
SXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQsIHBhcmVudFBJ
RCA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJz
LndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCB0aGlzLT5pc01haW5SZXNvdXJj
ZSgpLCB0aGlzLT5pc1N5bmNocm9ub3VzKCksIG1fcGFyYW1ldGVycy5wYXJlbnRQSUQpOworICAg
ICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydDogc3ludGhldGlj
IHJlZGlyZWN0IHNlbnQgYmVjYXVzZSByZXF1ZXN0IFVSTCB3YXMgbW9kaWZpZWQgKHBhZ2VJRCA9
ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1
NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkLCBwYXJlbnRQSUQg
PSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53
ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCB0aGlzLT5pc01h
aW5SZXNvdXJjZSgpLCB0aGlzLT5pc1N5bmNocm9ub3VzKCksIG1fcGFyYW1ldGVycy5wYXJlbnRQ
SUQpOwogICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgW3RoaXNdIChSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMtPmNhblVz
ZUNhY2hlKHJlcXVlc3QpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKCJzdGFydDogQ2hlY2tpbmcgY2FjaGUgZm9yIHJlc291cmNlIChwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0
ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCwgcGFyZW50UElEID0g
JWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2Vi
RnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIHRoaXMtPmlzTWFpblJlc291cmNlKCks
IHRoaXMtPmlzU3luY2hyb25vdXMoKSwgbV9wYXJhbWV0ZXJzLnBhcmVudFBJRCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydDogQ2hlY2tpbmcg
Y2FjaGUgZm9yIHJlc291cmNlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlz
U3luY2hyb25vdXMgPSAlZCwgcGFyZW50UElEID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJ
RC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFt
ZXRlcnMuaWRlbnRpZmllciwgdGhpcy0+aXNNYWluUmVzb3VyY2UoKSwgdGhpcy0+aXNTeW5jaHJv
bm91cygpLCBtX3BhcmFtZXRlcnMucGFyZW50UElEKTsKICAgICAgICAgICAgICAgICAgICAgICAg
IHRoaXMtPnJldHJpZXZlQ2FjaGVFbnRyeShyZXF1ZXN0KTsKICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgfQpAQCAtMjA0LDcgKzIwNCw3IEBAIHZv
aWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydCgpCiAgICAgfQogICAgIC8vIEZJWE1FOiBS
ZW1vdmUgdGhhdCBjb2RlIHBhdGggb25jZSBtX25ldHdvcmtMb2FkQ2hlY2tlciBpcyB1c2VkIGZv
ciBhbGwgbmV0d29yayBsb2Fkcy4KICAgICBpZiAoY2FuVXNlQ2FjaGUob3JpZ2luYWxSZXF1ZXN0
KCkpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0OiBDaGVja2luZyBj
YWNoZSBmb3IgcmVzb3VyY2UgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNT
eW5jaHJvbm91cyA9ICVkLCBwYXJlbnRQSUQgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlE
LnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRp
ZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpLCBtX3BhcmFtZXRlcnMucGFy
ZW50UElEKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6IENoZWNraW5n
IGNhY2hlIGZvciByZXNvdXJjZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQ
Ukl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBp
c1N5bmNocm9ub3VzID0gJWQsIHBhcmVudFBJRCA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdl
SUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJh
bWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSwgbV9w
YXJhbWV0ZXJzLnBhcmVudFBJRCk7CiAgICAgICAgIHJldHJpZXZlQ2FjaGVFbnRyeShvcmlnaW5h
bFJlcXVlc3QoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yNDQsNyArMjQ0LDcgQEAg
dm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRyeShjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAgICAgICAgIGxvZ1Nsb3dDYWNoZVJldHJpZXZlSWZOZWVk
ZWQoaW5mbyk7CiAKICAgICAgICAgaWYgKCFlbnRyeSkgewotICAgICAgICAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNoZUVudHJ5OiBSZXNvdXJjZSBub3QgaW4gY2FjaGUg
KHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQg
PSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIs
IG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1l
SUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9u
b3VzKCkpOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNo
ZUVudHJ5OiBSZXNvdXJjZSBub3QgaW4gY2FjaGUgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3Vy
Y2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9V
SW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJz
LmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CiAgICAgICAg
ICAgICBzdGFydE5ldHdvcmtMb2FkKFdURk1vdmUocmVxdWVzdCksIEZpcnN0TG9hZDo6WWVzKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMjU2LDcgKzI1Niw3IEBAIHZvaWQg
TmV0d29ya1Jlc291cmNlTG9hZGVyOjpyZXRyaWV2ZUNhY2hlRW50cnlJbnRlcm5hbChzdGQ6OnVu
aXF1ZV9wdHI8TmV0d29ya0NhCiB7CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKICAgICBpZiAoZW50cnktPmhhc1JlYWNoZWRQcmV2YWxlbnRSZXNvdXJjZUFnZUNhcCgpKSB7
Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogUmVz
b3VyY2UgaGFzIHJlYWNoZWQgcHJldmFsZW50IHJlc291cmNlIGFnZSBjYXAgKHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQg
IiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVy
cy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1l
dGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOworICAg
ICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJlc291cmNl
IGhhcyByZWFjaGVkIHByZXZhbGVudCByZXNvdXJjZSBhZ2UgY2FwIChwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlz
TWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2Vi
UGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1f
cGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkp
OwogICAgICAgICBtX2NhY2hlRW50cnlGb3JNYXhBZ2VDYXBWYWxpZGF0aW9uID0gV1RGTW92ZShl
bnRyeSk7CiAgICAgICAgIFJlc291cmNlUmVxdWVzdCByZXZhbGlkYXRpb25SZXF1ZXN0ID0gb3Jp
Z2luYWxSZXF1ZXN0KCk7CiAgICAgICAgIHN0YXJ0TmV0d29ya0xvYWQoV1RGTW92ZShyZXZhbGlk
YXRpb25SZXF1ZXN0KSwgRmlyc3RMb2FkOjpZZXMpOwpAQCAtMjY0LDI4ICsyNjQsMjggQEAgdm9p
ZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRyeUludGVybmFsKHN0ZDo6
dW5pcXVlX3B0cjxOZXR3b3JrQ2EKICAgICB9CiAjZW5kaWYKICAgICBpZiAoZW50cnktPnJlZGly
ZWN0UmVxdWVzdCgpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZl
Q2FjaGVFbnRyeTogSGFuZGxpbmcgcmVkaXJlY3QgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3Vy
Y2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9V
SW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVy
LCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOworICAgICAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IEhhbmRsaW5nIHJlZGlyZWN0IChwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIg
UFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3Bh
cmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRv
VUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5
bmNocm9ub3VzKCkpOwogICAgICAgICBkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdEZvckNhY2hlRW50
cnkoV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShlbnRyeSkpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogICAgIGlmIChtX3BhcmFtZXRlcnMubmVlZHNDZXJ0aWZpY2F0ZUluZm8gJiYgIWVudHJ5
LT5yZXNwb25zZSgpLmNlcnRpZmljYXRlSW5mbygpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogUmVzb3VyY2UgZG9lcyBub3QgaGF2ZSByZXF1
aXJlZCBjZXJ0aWZpY2F0ZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5
bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Bh
cmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291
cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
InJldHJpZXZlQ2FjaGVFbnRyeTogUmVzb3VyY2UgZG9lcyBub3QgaGF2ZSByZXF1aXJlZCBjZXJ0
aWZpY2F0ZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3Vz
ID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMu
d2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVz
b3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKICAgICAgICAgc3RhcnROZXR3b3JrTG9hZChXVEZN
b3ZlKHJlcXVlc3QpLCBGaXJzdExvYWQ6Olllcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAg
ICAgaWYgKGVudHJ5LT5uZWVkc1ZhbGlkYXRpb24oKSB8fCByZXF1ZXN0LmNhY2hlUG9saWN5KCkg
PT0gV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xpY3k6OlJlZnJlc2hBbnlDYWNoZURh
dGEpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNoZUVudHJ5
OiBWYWxpZGF0aW5nIGNhY2hlIGVudHJ5IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9
ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0g
JWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0
KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNN
YWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgicmV0cmlldmVDYWNoZUVudHJ5OiBWYWxpZGF0aW5nIGNhY2hlIGVudHJ5IChwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIg
UFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3Bh
cmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRv
VUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5
bmNocm9ub3VzKCkpOwogICAgICAgICB2YWxpZGF0ZUNhY2hlRW50cnkoV1RGTW92ZShlbnRyeSkp
OwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJl
dHJpZXZlQ2FjaGVFbnRyeTogUmV0cmlldmVkIHJlc291cmNlIGZyb20gY2FjaGUgKHBhZ2VJRCA9
ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1
NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1l
dGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFy
YW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOwor
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogUmV0cmlldmVk
IHJlc291cmNlIGZyb20gY2FjaGUgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwg
aXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwg
bV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZp
ZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CiAgICAgZGlkUmV0cmlldmVD
YWNoZUVudHJ5KFdURk1vdmUoZW50cnkpKTsKIH0KIAogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXI6OnN0YXJ0TmV0d29ya0xvYWQoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgRmlyc3RMb2Fk
IGxvYWQpCiB7CiAgICAgaWYgKGxvYWQgPT0gRmlyc3RMb2FkOjpZZXMpIHsKLSAgICAgICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnROZXR3b3JrTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNN
YWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQ
YWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5p
ZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOworICAgICAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydE5ldHdvcmtMb2FkOiAocGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBp
c01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndl
YlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBt
X3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygp
KTsKIAogICAgICAgICBjb25zdW1lU2FuZGJveEV4dGVuc2lvbnMoKTsKIApAQCAtMzA4LDcgKzMw
OCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydE5ldHdvcmtMb2FkKFJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEZpcnN0TG9hCiAgICAgfQogICAgIGlmICghbmV0d29ya1Nl
c3Npb24pIHsKICAgICAgICAgV1RGTG9nQWx3YXlzKCJBdHRlbXB0ZWQgdG8gY3JlYXRlIGEgTmV0
d29ya0xvYWQgd2l0aCBhIHNlc3Npb24gKGlkPSUiIFBSSXU2NCAiKSB0aGF0IGRvZXMgbm90IGV4
aXN0LiIsIHBhcmFtZXRlcnMuc2Vzc2lvbklELnNlc3Npb25JRCgpKTsKLSAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1JfSUZfQUxMT1dFRCgic3RhcnROZXR3b3JrTG9hZDogQXR0ZW1wdGVkIHRvIGNy
ZWF0ZSBhIE5ldHdvcmtMb2FkIHdpdGggYSBzZXNzaW9uIHRoYXQgZG9lcyBub3QgZXhpc3QgKHBh
Z2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAl
IiBQUkl1NjQgIiwgc2Vzc2lvbklEPSUiIFBSSXU2NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdl
SUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVu
dGlmaWVyLCBwYXJhbWV0ZXJzLnNlc3Npb25JRC5zZXNzaW9uSUQoKSk7CisgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoInN0YXJ0TmV0d29ya0xvYWQ6IEF0dGVtcHRlZCB0byBj
cmVhdGUgYSBOZXR3b3JrTG9hZCB3aXRoIGEgc2Vzc2lvbiB0aGF0IGRvZXMgbm90IGV4aXN0IChw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JSIgUFJJdTY0ICIsIHNlc3Npb25JRD0lIiBQUkl1NjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFn
ZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFy
YW1ldGVycy5pZGVudGlmaWVyLCBwYXJhbWV0ZXJzLnNlc3Npb25JRC5zZXNzaW9uSUQoKSk7CiAg
ICAgICAgIG1fY29ubmVjdGlvbi0+bmV0d29ya1Byb2Nlc3MoKS5sb2dEaWFnbm9zdGljTWVzc2Fn
ZShtX3BhcmFtZXRlcnMud2ViUGFnZUlELCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6
OmludGVybmFsRXJyb3JLZXkoKSwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjppbnZh
bGlkU2Vzc2lvbklES2V5KCksIFdlYkNvcmU6OlNob3VsZFNhbXBsZTo6Tm8pOwogICAgICAgICBk
aWRGYWlsTG9hZGluZyhpbnRlcm5hbEVycm9yKHJlcXVlc3QudXJsKCkpKTsKICAgICAgICAgcmV0
dXJuOwpAQCAtMzIwLDcgKzMyMCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFy
dE5ldHdvcmtMb2FkKFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEZpcnN0TG9hCiAgICAgcGFy
YW1ldGVycy5yZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KTsKICAgICBtX25ldHdvcmtMb2FkID0g
c3RkOjptYWtlX3VuaXF1ZTxOZXR3b3JrTG9hZD4oKnRoaXMsICZuZXR3b3JrU2Vzc2lvbi0+Ymxv
YlJlZ2lzdHJ5KCksIFdURk1vdmUocGFyYW1ldGVycyksICpuZXR3b3JrU2Vzc2lvbik7CiAKLSAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydE5ldHdvcmtMb2FkOiAocGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAi
LCBkZXNjcmlwdGlvbiA9ICV7cHVibGljfXMpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJ
bnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIs
IG1fbmV0d29ya0xvYWQtPmRlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSk7CisgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgic3RhcnROZXR3b3JrTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgZGVzY3Jp
cHRpb24gPSAle3B1YmxpY31zKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwg
bV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZp
ZXIsIG1fbmV0d29ya0xvYWQtPmRlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSk7CiB9CiAKIHZv
aWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjbGVhbnVwKExvYWRSZXN1bHQgcmVzdWx0KQpAQCAt
MzQ0LDcgKzM0NCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjbGVhbnVwKExvYWRS
ZXN1bHQgcmVzdWx0KQogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y29udmVydFRvRG93
bmxvYWQoRG93bmxvYWRJRCBkb3dubG9hZElELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewotICAgIFJFTEVBU0VfTE9H
KExvYWRpbmcsICJDb252ZXJ0aW5nIE5ldHdvcmtSZXNvdXJjZUxvYWRlciAlcCB0byBkb3dubG9h
ZCAlIiBQUkl1NjQgIiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQg
IiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHRoaXMsIGRvd25sb2FkSUQuZG93bmxvYWRJ
RCgpLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJG
cmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CisgICAgUkVMRUFTRV9MT0coTG9hZGlu
ZywgIkNvbnZlcnRpbmcgTmV0d29ya1Jlc291cmNlTG9hZGVyICVwIHRvIGRvd25sb2FkICUiIFBS
SXU2NCAiIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNv
dXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgdGhpcywgZG93bmxvYWRJRC5kb3dubG9hZElEKCksIG1f
cGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQu
dG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIpOwogICAgIAogICAgIC8vIFRoaXMg
Y2FuIGhhcHBlbiBpZiB0aGUgcmVzb3VyY2UgY2FtZSBmcm9tIHRoZSBkaXNrIGNhY2hlLgogICAg
IGlmICghbV9uZXR3b3JrTG9hZCkgewpAQCAtMzYyLDcgKzM2Miw3IEBAIHZvaWQgTmV0d29ya1Jl
c291cmNlTG9hZGVyOjphYm9ydCgpCiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAog
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImFib3J0OiBDYW5jZWxpbmcgcmVzb3VyY2UgbG9h
ZCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJ
RCA9ICUiIFBSSXU2NCAiKSIsCi0gICAgICAgIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50
NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyKTsK
KyAgICAgICAgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMu
d2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CiAKICAgICBp
ZiAobV9wYXJhbWV0ZXJzLm9wdGlvbnMua2VlcEFsaXZlICYmIG1fcmVzcG9uc2UuaXNOdWxsKCkg
JiYgIW1faXNLZXB0QWxpdmUpIHsKICAgICAgICAgbV9pc0tlcHRBbGl2ZSA9IHRydWU7CkBAIC00
NDcsNyArNDQ3LDcgQEAgYm9vbCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNob3VsZEludGVycnVw
dExvYWRGb3JDU1BGcmFtZUFuY2VzdG9yc09yWEZyYW1lT3B0aW8KIAogdm9pZCBOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVjZWl2
ZWRSZXNwb25zZSwgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZTogKHBh
Z2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAl
IiBQUkl1NjQgIiwgaHR0cFN0YXR1c0NvZGUgPSAlZCwgbGVuZ3RoID0gJSIgUFJJZDY0ICIpIiwg
bV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJ
RCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIHJlY2VpdmVkUmVzcG9uc2UuaHR0cFN0YXR1c0Nv
ZGUoKSwgcmVjZWl2ZWRSZXNwb25zZS5leHBlY3RlZENvbnRlbnRMZW5ndGgoKSk7CisgICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiAocGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBo
dHRwU3RhdHVzQ29kZSA9ICVkLCBsZW5ndGggPSAlIiBQUklkNjQgIikiLCBtX3BhcmFtZXRlcnMu
d2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCks
IG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCByZWNlaXZlZFJlc3BvbnNlLmh0dHBTdGF0dXNDb2Rl
KCksIHJlY2VpdmVkUmVzcG9uc2UuZXhwZWN0ZWRDb250ZW50TGVuZ3RoKCkpOwogCiAgICAgbV9y
ZXNwb25zZSA9IFdURk1vdmUocmVjZWl2ZWRSZXNwb25zZSk7CiAKQEAgLTUyNyw3ICs1MjcsNyBA
QCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNl
UmVzcG9uc2UmJiByZWNlaXZlZFJlc3Bvbgogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRp
ZFJlY2VpdmVCdWZmZXIoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIsIGludCByZXBvcnRlZEVu
Y29kZWREYXRhTGVuZ3RoKQogewogICAgIGlmICghbV9udW1CeXRlc1JlY2VpdmVkKQotICAgICAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlQnVmZmVyOiBTdGFydGVkIHJlY2Vp
dmluZyBkYXRhIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBy
ZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2
NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIpOwor
ICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlQnVmZmVyOiBTdGFydGVk
IHJlY2VpdmluZyBkYXRhIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2
NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50
b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRl
cnMuaWRlbnRpZmllcik7CiAgICAgbV9udW1CeXRlc1JlY2VpdmVkICs9IGJ1ZmZlci0+c2l6ZSgp
OwogCiAgICAgQVNTRVJUKCFtX2NhY2hlRW50cnlGb3JWYWxpZGF0aW9uKTsKQEAgLTU1Niw3ICs1
NTYsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZUJ1ZmZlcihSZWY8
U2hhcmVkQnVmZmVyPiYmIGJ1ZmZlciwgaW50IHJlcAogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxv
YWRlcjo6ZGlkRmluaXNoTG9hZGluZyhjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtM
b2FkTWV0cmljcykKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRGaW5pc2hMb2Fk
aW5nOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3Vy
Y2VJRCA9ICUiIFBSSXU2NCAiLCBsZW5ndGggPSAlemQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJ
RC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50
aWZpZXIsIG1fbnVtQnl0ZXNSZWNlaXZlZCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgi
ZGlkRmluaXNoTG9hZGluZzogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgbGVuZ3RoID0gJXpkKSIsIG1fcGFyYW1l
dGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50
NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIG1fbnVtQnl0ZXNSZWNlaXZlZCk7CiAKICAg
ICBpZiAoc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKCkpCiAgICAgICAgIG1f
Y29ubmVjdGlvbi0+YWRkTmV0d29ya0xvYWRJbmZvcm1hdGlvbk1ldHJpY3MoaWRlbnRpZmllcigp
LCBuZXR3b3JrTG9hZE1ldHJpY3MpOwpAQCAtNTkxLDcgKzU5MSw3IEBAIHZvaWQgTmV0d29ya1Jl
c291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYg
bmV0d29ya0xvCiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRGYWlsTG9hZGluZyhj
b25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KCJkaWRGYWlsTG9hZGluZzogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNUaW1lb3V0ID0gJWQsIGlzQ2FuY2Vs
bGF0aW9uID0gJWQsIGlzQWNjZXNzQ29udHJvbCA9ICVkLCBlcnJDb2RlID0gJWQpIiwgbV9wYXJh
bWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9w
YXJhbWV0ZXJzLmlkZW50aWZpZXIsIGVycm9yLmlzVGltZW91dCgpLCBlcnJvci5pc0NhbmNlbGxh
dGlvbigpLCBlcnJvci5pc0FjY2Vzc0NvbnRyb2woKSwgZXJyb3IuZXJyb3JDb2RlKCkpOworICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZhaWxMb2FkaW5nOiAocGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBp
c1RpbWVvdXQgPSAlZCwgaXNDYW5jZWxsYXRpb24gPSAlZCwgaXNBY2Nlc3NDb250cm9sID0gJWQs
IGVyckNvZGUgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFy
YW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBl
cnJvci5pc1RpbWVvdXQoKSwgZXJyb3IuaXNDYW5jZWxsYXRpb24oKSwgZXJyb3IuaXNBY2Nlc3ND
b250cm9sKCksIGVycm9yLmVycm9yQ29kZSgpKTsKIAogICAgIGlmIChzaG91bGRDYXB0dXJlRXh0
cmFOZXR3b3JrTG9hZE1ldHJpY3MoKSkKICAgICAgICAgbV9jb25uZWN0aW9uLT5yZW1vdmVOZXR3
b3JrTG9hZEluZm9ybWF0aW9uKGlkZW50aWZpZXIoKSk7CkBAIC03NTYsNyArNzU2LDcgQEAgdm9p
ZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KFJlc291cmNl
UmVxdWVzdCYmIG5ld1JlcXVlc3QKICAgICAgICAgfQogICAgIH0KIAotICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoImNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0OiAocGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1f
cGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQs
IG1fcGFyYW1ldGVycy5pZGVudGlmaWVyKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJj
b250aW51ZVdpbGxTZW5kUmVxdWVzdDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3BhcmFtZXRlcnMud2Vi
UGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1f
cGFyYW1ldGVycy5pZGVudGlmaWVyKTsKIAogICAgIG1faXNBbGxvd2VkVG9Bc2tVc2VyRm9yQ3Jl
ZGVudGlhbHMgPSBpc0FsbG93ZWRUb0Fza1VzZXJGb3JDcmVkZW50aWFsczsKIApAQCAtMTAxMSwx
MiArMTAxMSwxNyBAQCBzdGF0aWMgU3RyaW5nIGVzY2FwZUZvckpTT04oU3RyaW5nIHMpCiBzdGF0
aWMgU3RyaW5nIGVzY2FwZUlERm9ySlNPTihjb25zdCBPcHRpb25hbDx1aW50NjRfdD4mIHZhbHVl
KQogewogICAgIHJldHVybiB2YWx1ZSA/IFN0cmluZzo6bnVtYmVyKHZhbHVlLnZhbHVlKCkpIDog
U3RyaW5nKCJOb25lIl9zKTsKLX07Cit9CisKK3N0YXRpYyBTdHJpbmcgZXNjYXBlSURGb3JKU09O
KGNvbnN0IE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4mIHZhbHVlKQoreworICAgIHJldHVybiB2
YWx1ZSA/IFN0cmluZzo6bnVtYmVyKHZhbHVlLT50b1VJbnQ2NCgpKSA6IFN0cmluZygiTm9uZSJf
cyk7Cit9CiAKIHN0YXRpYyBTdHJpbmcgZXNjYXBlSURGb3JKU09OKGNvbnN0IE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiYgdmFsdWUpCiB7CiAgICAgcmV0dXJuIHZhbHVlID8gU3RyaW5nOjpudW1i
ZXIodmFsdWUtPnRvVUludDY0KCkpIDogU3RyaW5nKCJOb25lIl9zKTsKLX07Cit9CiAKIHZvaWQg
TmV0d29ya1Jlc291cmNlTG9hZGVyOjpsb2dDb29raWVJbmZvcm1hdGlvbigpIGNvbnN0CiB7CkBA
IC0xMDI4LDcgKzEwMzMsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6bG9nQ29va2ll
SW5mb3JtYXRpb24oKSBjb25zdAogICAgIGxvZ0Nvb2tpZUluZm9ybWF0aW9uKG1fY29ubmVjdGlv
biwgIk5ldHdvcmtSZXNvdXJjZUxvYWRlciIsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+
KHRoaXMpLCAqbmV0d29ya1N0b3JhZ2VTZXNzaW9uLCBvcmlnaW5hbFJlcXVlc3QoKS5maXJzdFBh
cnR5Rm9yQ29va2llcygpLCBTYW1lU2l0ZUluZm86OmNyZWF0ZShvcmlnaW5hbFJlcXVlc3QoKSks
IG9yaWdpbmFsUmVxdWVzdCgpLnVybCgpLCBvcmlnaW5hbFJlcXVlc3QoKS5odHRwUmVmZXJyZXIo
KSwgZnJhbWVJRCgpLCBwYWdlSUQoKSwgaWRlbnRpZmllcigpKTsKIH0KIAotc3RhdGljIHZvaWQg
bG9nQmxvY2tlZENvb2tpZUluZm9ybWF0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
JiBjb25uZWN0aW9uLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2b2lkKiBsb2dnZWRPYmpl
Y3QsIGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgbmV0d29ya1N0b3JhZ2VT
ZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNp
dGVJbmZvLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIE9wdGlv
bmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyKQorc3RhdGljIHZvaWQgbG9nQmxvY2tlZENvb2tpZUlu
Zm9ybWF0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBjb25z
dCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2b2lkKiBsb2dnZWRPYmplY3QsIGNvbnN0IFdlYkNvcmU6
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLCBjb25zdCBVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBm
cmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBPcHRpb25hbDx1aW50NjRf
dD4gaWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQoTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzaG91
bGRMb2dDb29raWVJbmZvcm1hdGlvbihjb25uZWN0aW9uLCBuZXR3b3JrU3RvcmFnZVNlc3Npb24u
c2Vzc2lvbklEKCkpKTsKIApAQCAtMTA1NSw3ICsxMDYwLDcgQEAgc3RhdGljIHZvaWQgbG9nQmxv
Y2tlZENvb2tpZUluZm9ybWF0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25u
ZWN0aW8KICN1bmRlZiBMT0NBTF9MT0dfSUZfQUxMT1dFRAogfQogCi1zdGF0aWMgdm9pZCBsb2dD
b29raWVJbmZvcm1hdGlvbkludGVybmFsKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBj
b25uZWN0aW9uLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2b2lkKiBsb2dnZWRPYmplY3Qs
IGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgbmV0d29ya1N0b3JhZ2VTZXNz
aW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYg
c2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgT3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQs
IE9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyKQorc3RhdGljIHZvaWQgbG9nQ29va2llSW5m
b3JtYXRpb25JbnRlcm5hbChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlv
biwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBjb25zdCBX
ZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgY29u
c3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mIHNhbWVTaXRl
SW5mbywgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIE9wdGlvbmFsPEZy
YW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwg
T3B0aW9uYWw8dWludDY0X3Q+IGlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKE5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6c2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oY29ubmVjdGlvbiwgbmV0d29y
a1N0b3JhZ2VTZXNzaW9uLnNlc3Npb25JRCgpKSk7CiAKQEAgLTExMTYsNyArMTEyMSw3IEBAIHN0
YXRpYyB2b2lkIGxvZ0Nvb2tpZUluZm9ybWF0aW9uSW50ZXJuYWwoTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MmIGNvbm5lY3RpCiAjdW5kZWYgTE9DQUxfTE9HX0lGX0FMTE9XRUQKIH0KIAot
dm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uKE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBj
b25zdCB2b2lkKiBsb2dnZWRPYmplY3QsIGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgbmV0
d29ya1N0b3JhZ2VTZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRl
SW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJl
ciwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBw
YWdlSUQsIE9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyKQordm9pZCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzJiBjb25uZWN0aW9uLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2b2lkKiBsb2dnZWRP
YmplY3QsIGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgbmV0d29ya1N0b3JhZ2VTZXNzaW9u
LCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZv
LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgT3B0aW9uYWw8RnJhbWVJ
ZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBPcHRp
b25hbDx1aW50NjRfdD4gaWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQoc2hvdWxkTG9nQ29va2ll
SW5mb3JtYXRpb24oY29ubmVjdGlvbiwgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLnNlc3Npb25JRCgp
KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRlci5oCmluZGV4IDYyYzY1Y2RkZmY3Y2EwYjIwYTFjMTkwOTliOWY3MTVmYWU0NTRh
OGUuLjc0OTJkZjMyZjc5OTZlMDkwM2JlOTBkYTAwNWU5YjE0NmRhMTVmYmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaApA
QCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MmIGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rpb247
IH0KICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3BhcmFt
ZXRlcnMuc2Vzc2lvbklEOyB9CiAgICAgUmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVy
KCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXI7IH0KLSAgICB1aW50NjRf
dCBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQ7IH0KKyAg
ICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFy
YW1ldGVycy53ZWJGcmFtZUlEOyB9CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
KCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRDsgfQogCiAgICAgc3RydWN0
IFN5bmNocm9ub3VzTG9hZERhdGE7CkBAIC0xMTIsNyArMTEyLDcgQEAgcHVibGljOgogCiAjaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
CiAgICAgc3RhdGljIGJvb2wgc2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MmLCBjb25zdCBQQUw6OlNlc3Npb25JRCYpOwotICAgIHN0YXRpYyB2
b2lkIGxvZ0Nvb2tpZUluZm9ybWF0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwg
Y29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBjb25zdCBXZWJD
b3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgcmVmZXJy
ZXIsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRl
bnRpZmllcj4sIE9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyKTsKKyAgICBzdGF0aWMgdm9p
ZCBsb2dDb29raWVJbmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIGNv
bnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29uc3QgV2ViQ29y
ZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBX
ZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVy
LCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllcj4sIE9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyKTsKICNlbmRpZgog
CiAgICAgdm9pZCBkaXNhYmxlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3NDYXB0dXJlKCkgeyBtX3No
b3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyA9IGZhbHNlOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaAppbmRleCBkOTRm
YzczODBmMTlhNWY1ZjViNzhlYTM5ZWYxZDY1YTkyMTFlZTRmLi44NWQxMDBjYTZjN2MwNWZiOGMz
ZDEyZDAzYTQ0MDI4MTEwMzk1ZWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJO
ZXR3b3JrQ2FjaGVFbnRyeS5oIgogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZVN0b3JhZ2UuaCIKICNp
bmNsdWRlICJTaGFyZWFibGVSZXNvdXJjZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVu
dGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFu
ZGxlci5oPgpAQCAtODUsNyArODYsNyBAQCBlbnVtIGNsYXNzIFVzZURlY2lzaW9uIHsKICAgICBO
b0R1ZVRvRXhwaXJlZFJlZGlyZWN0CiB9OwogCi11c2luZyBHbG9iYWxGcmFtZUlEID0gc3RkOjpw
YWlyPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCAvKndlYkZyYW1lSUQqLz47Cit1
c2luZyBHbG9iYWxGcmFtZUlEID0gc3RkOjpwYWlyPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+OyAvLyBGSVhNRTogVXNlIEdsb2JhbEZyYW1lSWRlbnRp
Zmllci4KIAogZW51bSBjbGFzcyBDYWNoZU9wdGlvbiA6IHVpbnQ4X3QgewogICAgIC8vIEluIHRl
c3RpbmcgbW9kZSB3ZSB0cnkgdG8gZWxpbWluYXRlIHNvdXJjZXMgb2YgcmFuZG9tbmVzcy4gQ2Fj
aGUgZG9lcyBub3Qgc2hyaW5rIGFuZCB0aGVyZSBhcmUgbm8gcmVhZCB0aW1lb3V0cy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNr
Q29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFU
YXNrQ29jb2EuaAppbmRleCAyNzkzNTc1MzViZTFlODRhMTNkMzFmZjdmYzMyZWM4MmU2OWVkYjhm
Li40M2FkNmYxZGU0MWM1MTYxZGQ5ZGIzYjY5YWY5MWNhM2Y3YWIyNDMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tD
b2NvYS5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIE5ldHdvcmtTZXNzaW9uQ29jb2E7CiBjbGFz
cyBOZXR3b3JrRGF0YVRhc2tDb2NvYSBmaW5hbCA6IHB1YmxpYyBOZXR3b3JrRGF0YVRhc2sgewog
ICAgIGZyaWVuZCBjbGFzcyBOZXR3b3JrU2Vzc2lvbkNvY29hOwogcHVibGljOgotICAgIHN0YXRp
YyBSZWY8TmV0d29ya0RhdGFUYXNrPiBjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5l
dHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYs
IFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRFbmNv
ZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Qs
IFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JN
YWluRnJhbWVOYXZpZ2F0aW9uLCBib29sIGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0
aW9uRm9yQW55RnJhbWUsIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+IG5ldHdvcmtB
Y3Rpdml0eVRyYWNrZXIpCisgICAgc3RhdGljIFJlZjxOZXR3b3JrRGF0YVRhc2s+IGNyZWF0ZShO
ZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6
U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6
OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIFdlYkNvcmU6OkNvbnRl
bnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBib29s
IHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5
IHNob3VsZFByZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0
aW9uLCBib29sIGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUs
IE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+IG5ldHdvcmtBY3Rpdml0eVRyYWNrZXIp
CiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrRGF0YVRhc2tDb2Nv
YShzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3QsIGZyYW1lSUQsIHBhZ2VJRCwgc3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3ksIHNob3VsZENvbnRlbnRTbmlmZiwgc2hvdWxkQ29udGVudEVuY29kaW5nU25p
ZmYsIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHNob3VsZFByZWNv
bm5lY3RPbmx5LCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgZGF0YVRhc2tJc0Zv
ck1haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSwgbmV0d29ya0FjdGl2aXR5VHJhY2tl
cikpOwogICAgIH0KQEAgLTY5LDEzICs2OSwxMyBAQCBwdWJsaWM6CiAKICAgICBXZWJDb3JlOjpO
ZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMb2FkTWV0cmljcygpIHsgcmV0dXJuIG1fbmV0d29y
a0xvYWRNZXRyaWNzOyB9CiAKLSAgICB1aW50NjRfdCBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4g
bV9mcmFtZUlEOyB9OworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKCkgY29u
c3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9OwogICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUlEOyB9OwogCiAgICAgU3RyaW5nIGRlc2NyaXB0
aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgTmV0d29ya0RhdGFUYXNrQ29j
b2EoTmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRT
bmlmZmluZ1BvbGljeSwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIGJv
b2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9u
bHksIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24sIGJvb2wgZGF0YVRhc2tJ
c0Zvck1haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSwgT3B0aW9uYWw8TmV0d29ya0Fj
dGl2aXR5VHJhY2tlcj4pOworICAgIE5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9u
JiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2Vi
Q29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1Bv
bGljeSwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIGJvb2wgc2hvdWxk
Q2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHksIGJvb2wg
ZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24sIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5S
ZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSwgT3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJh
Y2tlcj4pOwogCiAgICAgYm9vbCB0cnlQYXNzd29yZEJhc2VkQXV0aGVudGljYXRpb24oY29uc3Qg
V2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFu
ZGxlciYpOwogICAgIHZvaWQgYXBwbHlTbmlmZmluZ1BvbGljaWVzQW5kQmluZFJlcXVlc3RUb0lu
ZmVyZmFjZUlmTmVlZGVkKF9fc3Ryb25nIE5TVVJMUmVxdWVzdComLCBib29sIHNob3VsZENvbnRl
bnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZik7CkBAIC05Miw3ICs5Miw3
IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IG1fc2FuZGJveEV4dGVu
c2lvbjsKICAgICBSZXRhaW5QdHI8TlNVUkxTZXNzaW9uRGF0YVRhc2s+IG1fdGFzazsKICAgICBX
ZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3MgbV9uZXR3b3JrTG9hZE1ldHJpY3M7Ci0gICAgdWlu
dDY0X3QgbV9mcmFtZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX2ZyYW1lSUQ7
CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV9wYWdlSUQ7CiAKICNpZiBFTkFCTEUoUkVT
T1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KaW5kZXggNDJlN2FjZTQy
NGIyYWI4YmIwMGEzN2M5NjNlYTk3ZDQ0MTMxNWFlMC4uYzJlN2IzNjg1NGU3Mzk1Y2I2OTMwZDZl
MjU3NDhjNGJhZDYwMTIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCkBAIC0xNzAsNyArMTcwLDcg
QEAgc3RhdGljIGlubGluZSBib29sIGNvbXB1dGVJc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoTmV0
d29ya1Nlc3Npb24mIHNlc3Npb24pCiAgICAgcmV0dXJuIHNlc3Npb24uc2Vzc2lvbklEKCkuaXNB
bHdheXNPbkxvZ2dpbmdBbGxvd2VkKCk7CiB9CiAKLU5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3
b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNr
Q2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdFdp
dGhDcmVkZW50aWFscywgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
cGFnZUlELCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFs
c1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlm
ZiwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudEVu
Y29kaW5nU25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVj
dCwgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zv
ck1haW5GcmFtZU5hdmlnYXRpb24sIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5SZXNvdXJjZU5hdmln
YXRpb25Gb3JBbnlGcmFtZSwgT3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4gbmV0d29y
a0FjdGl2aXR5VHJhY2tlcikKK05ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tD
b2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGll
bnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdFdpdGhDcmVkZW50aWFs
cywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50
U25pZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNob3VsZENvbnRl
bnRFbmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVk
aXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNr
SXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBib29sIGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VO
YXZpZ2F0aW9uRm9yQW55RnJhbWUsIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+IG5l
dHdvcmtBY3Rpdml0eVRyYWNrZXIpCiAgICAgOiBOZXR3b3JrRGF0YVRhc2soc2Vzc2lvbiwgY2xp
ZW50LCByZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgc2hv
dWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgZGF0YVRhc2tJc0Zvck1haW5G
cmFtZU5hdmlnYXRpb24pCiAgICAgLCBtX2ZyYW1lSUQoZnJhbWVJRCkKICAgICAsIG1fcGFnZUlE
KHBhZ2VJRCkKQEAgLTI1Niw3ICsyNTYsNyBAQCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29y
a0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVAogICAg
IGlmIChzaG91bGRCbG9ja0Nvb2tpZXMpIHsKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAg
ICAgICAgaWYgKG1fc2Vzc2lvbi0+c2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oKSkKLSAgICAg
ICAgICAgIFJFTEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3b3Jr
LCAiJXAgLSBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6bG9nQ29va2llSW5mb3JtYXRpb246IHBhZ2VJ
RCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCB0YXNrSUQgPSAlbHU6IEJsb2NraW5nIGNvb2tpZXMg
Zm9yIFVSTCAlcyIsIHRoaXMsIHBhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELCAodW5zaWduZWQg
bG9uZylbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgbnNSZXF1ZXN0LlVSTC5hYnNvbHV0ZVN0cmlu
Zy5VVEY4U3RyaW5nKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dn
aW5nQWxsb3dlZCgpLCBOZXR3b3JrLCAiJXAgLSBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6bG9nQ29v
a2llSW5mb3JtYXRpb246IHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCB0YXNrSUQgPSAl
bHU6IEJsb2NraW5nIGNvb2tpZXMgZm9yIFVSTCAlcyIsIHRoaXMsIHBhZ2VJRC50b1VJbnQ2NCgp
LCBmcmFtZUlELnRvVUludDY0KCksICh1bnNpZ25lZCBsb25nKVttX3Rhc2sgdGFza0lkZW50aWZp
ZXJdLCBuc1JlcXVlc3QuVVJMLmFic29sdXRlU3RyaW5nLlVURjhTdHJpbmcpOwogI2Vsc2UKICAg
ICAgICAgTE9HKE5ldHdvcmtTZXNzaW9uLCAiJWxsdSBCbG9ja2luZyBjb29raWVzIGZvciBVUkwg
JXMiLCBbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgbnNSZXF1ZXN0LlVSTC5hYnNvbHV0ZVN0cmlu
Zy5VVEY4U3RyaW5nKTsKICNlbmRpZgpAQCAtMzkwLDcgKzM5MCw3IEBAIHZvaWQgTmV0d29ya0Rh
dGFUYXNrQ29jb2E6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmCiAgICAgfQogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGlmIChtX3Nl
c3Npb24tPnNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKCkpCi0gICAgICAgIFJFTEVBU0VfTE9H
X0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3b3JrLCAiJXAgLSBOZXR3b3JrRGF0
YVRhc2tDb2NvYTo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb246OmxvZ0Nvb2tpZUluZm9ybWF0
aW9uOiBwYWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwgdGFza0lEID0gJWx1OiAlcyBjb29r
aWVzIGZvciByZWRpcmVjdCBVUkwgJXMiLCB0aGlzLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBtX2Zy
YW1lSUQsICh1bnNpZ25lZCBsb25nKVttX3Rhc2sgdGFza0lkZW50aWZpZXJdLCAobV9oYXNCZWVu
U2V0VG9Vc2VTdGF0ZWxlc3NDb29raWVTdG9yYWdlID8gIkJsb2NraW5nIiA6ICJOb3QgYmxvY2tp
bmciKSwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgUkVM
RUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdvcmssICIlcCAtIE5l
dHdvcmtEYXRhVGFza0NvY29hOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbjo6bG9nQ29va2ll
SW5mb3JtYXRpb246IHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCB0YXNrSUQgPSAlbHU6
ICVzIGNvb2tpZXMgZm9yIHJlZGlyZWN0IFVSTCAlcyIsIHRoaXMsIG1fcGFnZUlELnRvVUludDY0
KCksIG1fZnJhbWVJRC50b1VJbnQ2NCgpLCAodW5zaWduZWQgbG9uZylbbV90YXNrIHRhc2tJZGVu
dGlmaWVyXSwgKG1faGFzQmVlblNldFRvVXNlU3RhdGVsZXNzQ29va2llU3RvcmFnZSA/ICJCbG9j
a2luZyIgOiAiTm90IGJsb2NraW5nIiksIHJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRh
dGEoKSk7CiAjZWxzZQogICAgIExPRyhOZXR3b3JrU2Vzc2lvbiwgIiVsbHUgJXMgY29va2llcyBm
b3IgcmVkaXJlY3QgVVJMICVzIiwgW21fdGFzayB0YXNrSWRlbnRpZmllcl0sIChtX2hhc0JlZW5T
ZXRUb1VzZVN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2UgPyAiQmxvY2tpbmciIDogIk5vdCBibG9ja2lu
ZyIpLCByZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCBmMGVjOGRjMWI3MTY5YmNj
YTU1YTY1NDkxMmVkMmZlZjUzNzBkZjEwLi5jMDFlODk1OWU4MDdmZjYyNGVmODU3N2ViMzU1NjVl
NDJkOTNhM2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAg
LTIwNSw2ICsyMDUsNyBAQCBkZWYgZm9yd2FyZF9kZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnMocmVj
ZWl2ZXIpOgogICAgICAgICAnU3RyaW5nJywKICAgICAgICAgJ1dlYkNvcmU6OkRvY3VtZW50SWRl
bnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpGZXRjaElkZW50aWZpZXInLAorICAgICAgICAn
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlBvaW50ZXJJRCcsCiAgICAgICAgICdXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpZmllcicsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkv
QVBJRnJhbWVIYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUZyYW1lSGFu
ZGxlLmNwcAppbmRleCA3OTY0NmFjNmU1OWM0MWQ0ZGY3MDkwMWRiYTdlMjY3NTMzNmQ1MjRhLi40
MDgwMTM4ODU0OGExODExYWI1OWU1Y2IyNDVhMTE1MjExNDJiZWZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5jcHAKQEAgLTMxLDE3ICszMSwxNyBAQAogCiBu
YW1lc3BhY2UgQVBJIHsKIAotUmVmPEZyYW1lSGFuZGxlPiBGcmFtZUhhbmRsZTo6Y3JlYXRlKHVp
bnQ2NF90IGZyYW1lSUQpCitSZWY8RnJhbWVIYW5kbGU+IEZyYW1lSGFuZGxlOjpjcmVhdGUoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgRnJhbWVIYW5kbGUoZnJhbWVJRCwgZmFsc2UpKTsKIH0KIAotUmVmPEZyYW1lSGFuZGxlPiBG
cmFtZUhhbmRsZTo6Y3JlYXRlQXV0b2NvbnZlcnRpbmcodWludDY0X3QgZnJhbWVJRCkKK1JlZjxG
cmFtZUhhbmRsZT4gRnJhbWVIYW5kbGU6OmNyZWF0ZUF1dG9jb252ZXJ0aW5nKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZyYW1l
SGFuZGxlKGZyYW1lSUQsIHRydWUpKTsKIH0KIAotRnJhbWVIYW5kbGU6OkZyYW1lSGFuZGxlKHVp
bnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNBdXRvY29udmVydGluZykKK0ZyYW1lSGFuZGxlOjpGcmFt
ZUhhbmRsZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCBpc0F1dG9jb252
ZXJ0aW5nKQogICAgIDogbV9mcmFtZUlEKGZyYW1lSUQpCiAgICAgLCBtX2lzQXV0b2NvbnZlcnRp
bmcoaXNBdXRvY29udmVydGluZykKIHsKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBGcmFtZUhhbmRs
ZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIAogYm9vbCBGcmFtZUhhbmRs
ZTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPE9iamVjdD4mIHJlc3VsdCkK
IHsKLSAgICB1aW50NjRfdCBmcmFtZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlEOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZnJhbWVJRCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUZyYW1l
SGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuaAppbmRl
eCBiMTBlODA4YTRiMTlhZDMxM2Q4YjQ1NWMyM2I5ZDgzOTljYzM4NTUwLi4xYzY0YTRhZDFlODAy
YTA0NjcyOTgxYmNiZjhhNzYwMTY0MjVmZmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkv
QVBJRnJhbWVIYW5kbGUuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBBUElGcmFtZUhhbmRs
ZV9oCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRl
bnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIAogbmFtZXNwYWNlIElQQyB7CkBAIC0z
OCwyMCArMzksMjAgQEAgbmFtZXNwYWNlIEFQSSB7CiAKIGNsYXNzIEZyYW1lSGFuZGxlIDogcHVi
bGljIE9iamVjdEltcGw8T2JqZWN0OjpUeXBlOjpGcmFtZUhhbmRsZT4gewogcHVibGljOgotICAg
IHN0YXRpYyBSZWY8RnJhbWVIYW5kbGU+IGNyZWF0ZSh1aW50NjRfdCBmcmFtZUlEKTsKLSAgICBz
dGF0aWMgUmVmPEZyYW1lSGFuZGxlPiBjcmVhdGVBdXRvY29udmVydGluZyh1aW50NjRfdCBmcmFt
ZUlEKTsKKyAgICBzdGF0aWMgUmVmPEZyYW1lSGFuZGxlPiBjcmVhdGUoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyKTsKKyAgICBzdGF0aWMgUmVmPEZyYW1lSGFuZGxlPiBjcmVhdGVBdXRvY29udmVy
dGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogCi0gICAgZXhwbGljaXQgRnJhbWVIYW5k
bGUodWludDY0X3QgZnJhbWVJRCwgYm9vbCBpc0F1dG9jb252ZXJ0aW5nKTsKKyAgICBleHBsaWNp
dCBGcmFtZUhhbmRsZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGJvb2wgaXNBdXRvY29udmVy
dGluZyk7CiAgICAgdmlydHVhbCB+RnJhbWVIYW5kbGUoKTsKIAotICAgIHVpbnQ2NF90IGZyYW1l
SUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQogICAgIGJvb2wgaXNB
dXRvY29udmVydGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNBdXRvY29udmVydGluZzsgfQogCiAg
ICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVj
b2RlKElQQzo6RGVjb2RlciYsIFJlZlB0cjxPYmplY3Q+Jik7CiAKIHByaXZhdGU6Ci0gICAgY29u
c3QgdWludDY0X3QgbV9mcmFtZUlEOworICAgIGNvbnN0IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBtX2ZyYW1lSUQ7CiAgICAgY29uc3QgYm9vbCBtX2lzQXV0b2NvbnZlcnRpbmc7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5kbGUu
bW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5kbGUubW0KaW5k
ZXggYTQxYTYxM2E3ZDM3MWQ3YWUyYTczZTQwNTgyN2IwYWJkNzM1NzA3MC4uZWRjYjM4ZTYzNWE3
YmYwOTI3YjExMGNjN2Q0Y2Y5NzY2YWI1ZDA4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvQVBJL0NvY29hL19XS0ZyYW1lSGFuZGxlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5tbQpAQCAtMjYsNiArMjYsOCBAQAogI2ltcG9y
dCAiY29uZmlnLmgiCiAjaW1wb3J0ICJfV0tGcmFtZUhhbmRsZUludGVybmFsLmgiCiAKKyNpbXBv
cnQgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CisKIEBpbXBsZW1lbnRhdGlvbiBfV0tGcmFt
ZUhhbmRsZSB7CiAgICAgQVBJOjpPYmplY3RTdG9yYWdlPEFQSTo6RnJhbWVIYW5kbGU+IF9mcmFt
ZUhhbmRsZTsKIH0KQEAgLTUwLDEyICs1MiwxMiBAQCAtIChCT09MKWlzRXF1YWw6KGlkKW9iamVj
dAogCiAtIChOU1VJbnRlZ2VyKWhhc2gKIHsKLSAgICByZXR1cm4gX2ZyYW1lSGFuZGxlLT5mcmFt
ZUlEKCk7CisgICAgcmV0dXJuIF9mcmFtZUhhbmRsZS0+ZnJhbWVJRCgpLnRvVUludDY0KCk7CiB9
CiAKIC0gKHVpbnQ2NF90KV9mcmFtZUlECiB7Ci0gICAgcmV0dXJuIF9mcmFtZUhhbmRsZS0+ZnJh
bWVJRCgpOworICAgIHJldHVybiBfZnJhbWVIYW5kbGUtPmZyYW1lSUQoKS50b1VJbnQ2NCgpOwog
fQogCiAjcHJhZ21hIG1hcmsgTlNDb3B5aW5nIHByb3RvY29sIGltcGxlbWVudGF0aW9uCkBAIC04
MywxNCArODUsMTQgQEAgLSAoaWQpaW5pdFdpdGhDb2RlcjooTlNDb2RlciAqKWRlY29kZXIKICAg
ICAgICAgcmV0dXJuIG5pbDsKICAgICB9CiAKLSAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5X
cmFwcGVyPEFQSTo6RnJhbWVIYW5kbGU+KHNlbGYsIGZyYW1lSUQudW5zaWduZWRMb25nTG9uZ1Zh
bHVlLCBmYWxzZSk7CisgICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OkZy
YW1lSGFuZGxlPihzZWxmLCBXZWJDb3JlOjpmcmFtZUlkZW50aWZpZXJGcm9tSUQoZnJhbWVJRC51
bnNpZ25lZExvbmdMb25nVmFsdWUpLCBmYWxzZSk7CiAKICAgICByZXR1cm4gc2VsZjsKIH0KIAog
LSAodm9pZCllbmNvZGVXaXRoQ29kZXI6KE5TQ29kZXIgKiljb2RlcgogewotICAgIFtjb2RlciBl
bmNvZGVPYmplY3Q6QChfZnJhbWVIYW5kbGUtPmZyYW1lSUQoKSkgZm9yS2V5OkAiZnJhbWVJRCJd
OworICAgIFtjb2RlciBlbmNvZGVPYmplY3Q6QChbc2VsZiBfZnJhbWVJRF0pIGZvcktleTpAImZy
YW1lSUQiXTsKIH0KIAogI3ByYWdtYSBtYXJrIFdLT2JqZWN0IHByb3RvY29sIGltcGxlbWVudGF0
aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRo
ZW50aWNhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRp
b24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcAppbmRleCA5ZGViNzZmZjEzMmM2Y2I1ZmRmNWVi
ZjUyMjIzNGY2ZDQ0M2VmOTRkLi4zOGE1YmZmNmFmZDI1NzFkNTJkY2U0YzA5ODA0YWE3NTQ0YWJl
NGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRo
ZW50aWNhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRp
Y2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAKQEAgLTEwOCw3ICsxMDgsNyBAQCBWZWN0
b3I8dWludDY0X3Q+IEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6Y29hbGVzY2VDaGFsbGVuZ2VzTWF0
Y2hpbmcodWludDY0X3QgY2hhbAogICAgIHJldHVybiBjaGFsbGVuZ2VzVG9Db2FsZXNjZTsKIH0K
IAotdm9pZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgQ2hhbGxlbmdl
Q29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgQXV0aGVudGljYXRp
b25NYW5hZ2VyOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUGFnZUlkZW50aWZp
ZXIgcGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFu
ZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChwYWdlSUQpOwogICAgIEFT
U0VSVChmcmFtZUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRp
Y2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgKaW5kZXggODZlNzQ0YzEwOGRmNGNi
Y2Y1ZDA0NzYwOWFjZjk2YzY4MjNkNmIxNi4uNDAzNmVhYjc3ZmQ5Y2UxNTU1MzBmYjZhNGNjNTYx
NjgzZDdlZDkxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRp
b24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNp
bmNsdWRlICJOZXR3b3JrUHJvY2Vzc1N1cHBsZW1lbnQuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNz
U3VwcGxlbWVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4K
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtNjEsNyArNjIsNyBAQCBwdWJsaWM6CiAKICAg
ICBzdGF0aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUoKTsKIAotICAgIHZvaWQgZGlkUmVj
ZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIENo
YWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgQ2hhbGxl
bmdlQ29tcGxldGlvbkhhbmRsZXImJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UoSVBDOjpNZXNzYWdlU2VuZGVyJiBkb3dubG9hZCwgY29uc3QgV2ViQ29yZTo6
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYmKTsK
IAogICAgIHZvaWQgY29tcGxldGVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh1aW50NjRfdCBjaGFs
bGVuZ2VJRCwgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbiwgV2ViQ29yZTo6Q3Jl
ZGVudGlhbCYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0Rh
dGEuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaAppbmRleCBhODI4MzY4
NmYxNmFiM2NkMzUyNDljZTcwNWQzZjJiOGU3YmIzYzY2Li4xM2EwMjk5NDRiMjg5OTBhY2FiNDgy
NmY3NmY1M2Q0NDc5ZDM3YTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9GcmFt
ZUluZm9EYXRhLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRnJhbWVJbmZvRGF0YS5oCkBA
IC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFt
ZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAKQEAgLTQyLDcgKzQzLDcgQEAg
c3RydWN0IEZyYW1lSW5mb0RhdGEgewogICAgIGJvb2wgaXNNYWluRnJhbWUgeyBmYWxzZSB9Owog
ICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0OwogICAgIFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSBzZWN1cml0eU9yaWdpbjsKLSAgICB1aW50NjRfdCBmcmFtZUlEIHsgMCB9
OworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEOwogfTsKIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tGcmFtZUhhbmRsZVJlZi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lSGFuZGxlUmVmLmNwcAppbmRl
eCBiMzlmY2ExYmU1N2YwZDI3NGQ4NDU3ZjA0M2Y1MGVhYjYyZjIzYzU4Li5lODczZmM0NjUxZDUy
NjkzODkzNjlmYzYwYTc4MDI2NTQyMDVkZDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS0ZyYW1lSGFuZGxlUmVmLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS0ZyYW1lSGFuZGxlUmVmLmNwcApAQCAtMzgsNSArMzgsNSBAQCBXS1R5
cGVJRCBXS0ZyYW1lSGFuZGxlR2V0VHlwZUlEKCkKIAogdWludDY0X3QgV0tGcmFtZUhhbmRsZUdl
dEZyYW1lSUQoV0tGcmFtZUhhbmRsZVJlZiBmcmFtZUhhbmRsZVJlZikKIHsKLSAgICByZXR1cm4g
dG9JbXBsKGZyYW1lSGFuZGxlUmVmKS0+ZnJhbWVJRCgpOworICAgIHJldHVybiB0b0ltcGwoZnJh
bWVIYW5kbGVSZWYpLT5mcmFtZUlEKCkudG9VSW50NjQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDAzOTFhMTk5MmUzNTMyZGJl
NWYyMWRiNjkxZGQ4MTA4YWFlMmE2NmMuLjA5NTFlOTQ0MzdiY2U0NjY1ZDYxNWJkMDQwZDI2ZGYy
MGI2NGRmMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbQpAQCAtNjYyMSw3ICs2NjIxLDcgQEAgLSAoTlNQcmludE9wZXJhdGlvbiAqKV9wcmlu
dE9wZXJhdGlvbldpdGhQcmludEluZm86KE5TUHJpbnRJbmZvICopcHJpbnRJbmZvCiAKIC0gKE5T
UHJpbnRPcGVyYXRpb24gKilfcHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvOihOU1ByaW50SW5m
byAqKXByaW50SW5mbyBmb3JGcmFtZTooX1dLRnJhbWVIYW5kbGUgKilmcmFtZUhhbmRsZQogewot
ICAgIGlmIChhdXRvKiB3ZWJGcmFtZVByb3h5ID0gX3BhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShm
cmFtZUhhbmRsZS5fZnJhbWVJRCkpCisgICAgaWYgKGF1dG8qIHdlYkZyYW1lUHJveHkgPSBfcGFn
ZS0+cHJvY2VzcygpLndlYkZyYW1lKFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRChmcmFt
ZUhhbmRsZS5fZnJhbWVJRCkpKQogICAgICAgICByZXR1cm4gX2ltcGwtPnByaW50T3BlcmF0aW9u
V2l0aFByaW50SW5mbyhwcmludEluZm8sICp3ZWJGcmFtZVByb3h5KTsKICAgICByZXR1cm4gbmls
OwogfQpAQCAtNzExNCw3ICs3MTE0LDcgQEAgLSAodm9pZClfY29tcGxldGVJbW1lZGlhdGVBY3Rp
b25BbmltYXRpb24KIAogLSAoQk9PTClfY2FuQ2hhbmdlRnJhbWVMYXlvdXQ6KF9XS0ZyYW1lSGFu
ZGxlICopZnJhbWVIYW5kbGUKIHsKLSAgICBpZiAoYXV0byogd2ViRnJhbWVQcm94eSA9IF9wYWdl
LT5wcm9jZXNzKCkud2ViRnJhbWUoZnJhbWVIYW5kbGUuX2ZyYW1lSUQpKQorICAgIGlmIChhdXRv
KiB3ZWJGcmFtZVByb3h5ID0gX3BhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShXZWJDb3JlOjpmcmFt
ZUlkZW50aWZpZXJGcm9tSUQoZnJhbWVIYW5kbGUuX2ZyYW1lSUQpKSkKICAgICAgICAgcmV0dXJu
IF9pbXBsLT5jYW5DaGFuZ2VGcmFtZUxheW91dCgqd2ViRnJhbWVQcm94eSk7CiAgICAgcmV0dXJu
IGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0luc3BlY3Rvci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJ
bnNwZWN0b3IubW0KaW5kZXggYzQ5OWIxOGZhOTM4OGE0NTg0MzE0NzcwOGQzZDI5NmRkNTMyOTBh
NC4uM2QxNWVjMmVlYTc5MTFiMmEzOWQ2NDA4NzkzNmJmNGVhNjM0MTNhYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCkBAIC0zMCw2
ICszMCw3IEBACiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbXBvcnQgIl9XS0ZyYW1l
SGFuZGxlSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS0luc3BlY3RvckludGVybmFsLmgiCisjaW1w
b3J0IDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5o
PgogCiBAaW1wbGVtZW50YXRpb24gX1dLSW5zcGVjdG9yCkBAIC05OSw3ICsxMDAsNyBAQCAtICh2
b2lkKXNob3dSZXNvdXJjZXMKIC0gKHZvaWQpc2hvd01haW5SZXNvdXJjZUZvckZyYW1lOihfV0tG
cmFtZUhhbmRsZSAqKWZyYW1lCiB7CiAgICAgaWYgKGF1dG8qIHBhZ2UgPSBfaW5zcGVjdG9yLT5p
bnNwZWN0ZWRQYWdlKCkpCi0gICAgICAgIF9pbnNwZWN0b3ItPnNob3dNYWluUmVzb3VyY2VGb3JG
cmFtZShwYWdlLT5wcm9jZXNzKCkud2ViRnJhbWUoZnJhbWUuX2ZyYW1lSUQpKTsKKyAgICAgICAg
X2luc3BlY3Rvci0+c2hvd01haW5SZXNvdXJjZUZvckZyYW1lKHBhZ2UtPnByb2Nlc3MoKS53ZWJG
cmFtZShXZWJDb3JlOjpmcmFtZUlkZW50aWZpZXJGcm9tSUQoZnJhbWUuX2ZyYW1lSUQpKSk7CiB9
CiAKIC0gKHZvaWQpYXR0YWNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
dXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHAKaW5kZXggN2Fj
YzY4YmFlZmVhYjA3M2JmNjYwZjZjMGJjZTVlZmI5N2I1YWU2Mi4uZDg3NDhlZWE3ZmM2ZGFlMTU0
MjZhZGFlYTk2OWI3NGJkZWU2M2RjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmNwcApA
QCAtMzgyLDcgKzM4Miw3IEBAIHZvaWQgU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyOjp0cmFuc2l0
aW9uSW5wdXRTb3VyY2VUb1N0YXRlKFNpbXVsYXRlZElucHV0U291cmNlCiAgICAgfQogfQogCi12
b2lkIFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlcjo6cnVuKHVpbnQ2NF90IGZyYW1lSUQsIFZlY3Rv
cjxTaW11bGF0ZWRJbnB1dEtleUZyYW1lPiYmIGtleUZyYW1lcywgSGFzaFNldDxSZWY8U2ltdWxh
dGVkSW5wdXRTb3VyY2U+PiYgaW5wdXRTb3VyY2VzLCBBdXRvbWF0aW9uQ29tcGxldGlvbkhhbmRs
ZXImJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyOjpy
dW4oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFZlY3RvcjxTaW11bGF0ZWRJbnB1
dEtleUZyYW1lPiYmIGtleUZyYW1lcywgSGFzaFNldDxSZWY8U2ltdWxhdGVkSW5wdXRTb3VyY2U+
PiYgaW5wdXRTb3VyY2VzLCBBdXRvbWF0aW9uQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICAgICBBU1NFUlQoIWlzQWN0aXZlKCkpOwogICAgIGlmIChpc0FjdGl2ZSgp
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVs
YXRlZElucHV0RGlzcGF0Y2hlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlv
bi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaAppbmRleCA3ZjQxNDFjZTBhMzllNTYwNzNjN2Vj
OGE5NjU2MGNiYzM0OGFkZmE2Li5iMDg5MWE4ZjBiNjc1MjljYjliMzk4NmI4Nzk1MzA3MTJhNGFh
ZDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVs
YXRlZElucHV0RGlzcGF0Y2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9t
YXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBF
TkFCTEUoV0VCRFJJVkVSX0FDVElPTlNfQVBJKQogCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0
aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL09w
dGlvbmFsLmg+CkBAIC0xMzIsNyArMTMzLDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShXRUJEUklW
RVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKQogICAgICAgICB2aXJ0dWFsIHZvaWQgc2ltdWxhdGVL
ZXlib2FyZEludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYsIEtleWJvYXJkSW50ZXJhY3Rpb24sIFdU
Rjo6VmFyaWFudDxWaXJ0dWFsS2V5LCBDaGFyS2V5PiYmLCBBdXRvbWF0aW9uQ29tcGxldGlvbkhh
bmRsZXImJikgPSAwOwogI2VuZGlmCi0gICAgICAgIHZpcnR1YWwgdm9pZCB2aWV3cG9ydEluVmll
d0NlbnRlclBvaW50T2ZFbGVtZW50KFdlYlBhZ2VQcm94eSYsIHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFN0cmluZyYgbm9kZUhhbmRsZSwgRnVuY3Rpb248dm9pZCAoT3B0aW9uYWw8V2ViQ29yZTo6
SW50UG9pbnQ+LCBPcHRpb25hbDxBdXRvbWF0aW9uQ29tbWFuZEVycm9yPik+JiYpID0gMDsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIHZpZXdwb3J0SW5WaWV3Q2VudGVyUG9pbnRPZkVsZW1lbnQoV2Vi
UGFnZVByb3h5JiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5vZGVI
YW5kbGUsIEZ1bmN0aW9uPHZvaWQgKE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiwgT3B0aW9u
YWw8QXV0b21hdGlvbkNvbW1hbmRFcnJvcj4pPiYmKSA9IDA7CiAgICAgfTsKIAogICAgIHN0YXRp
YyBSZWY8U2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyPiBjcmVhdGUoV2ViUGFnZVByb3h5JiBwYWdl
LCBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXI6OkNsaWVudCYgY2xpZW50KQpAQCAtMTQyLDcgKzE0
Myw3IEBAIHB1YmxpYzoKIAogICAgIH5TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIoKTsKIAotICAg
IHZvaWQgcnVuKHVpbnQ2NF90IGZyYW1lSUQsIFZlY3RvcjxTaW11bGF0ZWRJbnB1dEtleUZyYW1l
PiYmIGtleUZyYW1lcywgSGFzaFNldDxSZWY8U2ltdWxhdGVkSW5wdXRTb3VyY2U+PiYgaW5wdXRT
b3VyY2VzLCBBdXRvbWF0aW9uQ29tcGxldGlvbkhhbmRsZXImJik7CisgICAgdm9pZCBydW4oV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBWZWN0b3I8U2ltdWxhdGVkSW5wdXRLZXlGcmFtZT4mJiBr
ZXlGcmFtZXMsIEhhc2hTZXQ8UmVmPFNpbXVsYXRlZElucHV0U291cmNlPj4mIGlucHV0U291cmNl
cywgQXV0b21hdGlvbkNvbXBsZXRpb25IYW5kbGVyJiYpOwogICAgIHZvaWQgY2FuY2VsKCk7CiAK
ICAgICBib29sIGlzQWN0aXZlKCkgY29uc3Q7CkBAIC0xNjUsNyArMTY2LDcgQEAgcHJpdmF0ZToK
ICAgICBXZWJQYWdlUHJveHkmIG1fcGFnZTsKICAgICBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXI6
OkNsaWVudCYgbV9jbGllbnQ7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gbV9mcmFtZUlEOwor
ICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gbV9mcmFtZUlEOwogICAgIEF1
dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciBtX3J1bkNvbXBsZXRpb25IYW5kbGVyOwogICAgIEF1
dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciBtX2tleUZyYW1lVHJhbnNpdGlvbkNvbXBsZXRpb25I
YW5kbGVyOwogICAgIFJ1bkxvb3A6OlRpbWVyPFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlcj4gbV9r
ZXlGcmFtZVRyYW5zaXRpb25EdXJhdGlvblRpbWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcAppbmRl
eCBjY2U1YzQ4MTdhODA0OTE3Y2RjMTk5YzFiMDE2MGUyNTZlOWJlMjk3Li42OGJkYWRjODI3MTc0
MzcyMzc0NGVkNWM5MjhmMTBhMGRmOWYyY2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcApAQCAt
MjAyLDEwICsyMDIsMTAgQEAgU3RyaW5nIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpoYW5kbGVGb3JX
ZWJQYWdlUHJveHkoY29uc3QgV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHIKICAgICByZXR1cm4gaGFu
ZGxlOwogfQogCi1PcHRpb25hbDx1aW50NjRfdD4gV2ViQXV0b21hdGlvblNlc3Npb246OndlYkZy
YW1lSURGb3JIYW5kbGUoY29uc3QgU3RyaW5nJiBoYW5kbGUpCitPcHRpb25hbDxGcmFtZUlkZW50
aWZpZXI+IFdlYkF1dG9tYXRpb25TZXNzaW9uOjp3ZWJGcmFtZUlERm9ySGFuZGxlKGNvbnN0IFN0
cmluZyYgaGFuZGxlKQogewogICAgIGlmIChoYW5kbGUuaXNFbXB0eSgpKQotICAgICAgICByZXR1
cm4gMDsKKyAgICAgICAgcmV0dXJuIEZyYW1lSWRlbnRpZmllciB7IH07IC8vIFRoaXMgaXMgZXhw
bGljaXRseSB6ZXJvOyBzZWUgd2Via2l0Lm9yZy9iLzE1OTc3Ny4KIAogICAgIGF1dG8gaXRlciA9
IG1faGFuZGxlV2ViRnJhbWVNYXAuZmluZChoYW5kbGUpOwogICAgIGlmIChpdGVyID09IG1faGFu
ZGxlV2ViRnJhbWVNYXAuZW5kKCkpCkBAIC0yMTQsNyArMjE0LDcgQEAgT3B0aW9uYWw8dWludDY0
X3Q+IFdlYkF1dG9tYXRpb25TZXNzaW9uOjp3ZWJGcmFtZUlERm9ySGFuZGxlKGNvbnN0IFN0cmlu
ZyYgaGFuZGwKICAgICByZXR1cm4gaXRlci0+dmFsdWU7CiB9CiAKLVN0cmluZyBXZWJBdXRvbWF0
aW9uU2Vzc2lvbjo6aGFuZGxlRm9yV2ViRnJhbWVJRCh1aW50NjRfdCBmcmFtZUlEKQorU3RyaW5n
IFdlYkF1dG9tYXRpb25TZXNzaW9uOjpoYW5kbGVGb3JXZWJGcmFtZUlEKEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlEKQogewogICAgIGlmICghZnJhbWVJRCkKICAgICAgICAgcmV0dXJuIGVtcHR5U3Ry
aW5nKCk7CkBAIC0zNjIsNyArMzYyLDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c3dp
dGNoVG9Ccm93c2luZ0NvbnRleHQoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHQKICAgICBp
ZiAoIXBhZ2UpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRv
d05vdEZvdW5kKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEID0gd2ViRnJhbWVJ
REZvckhhbmRsZShvcHRpb25hbEZyYW1lSGFuZGxlID8gKm9wdGlvbmFsRnJhbWVIYW5kbGUgOiBl
bXB0eVN0cmluZygpKTsKKyAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9w
dGlvbmFsRnJhbWVIYW5kbGUgPyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCkp
OwogICAgIGlmICghZnJhbWVJRCkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURf
RVJST1IoRnJhbWVOb3RGb3VuZCk7CiAKQEAgLTQ1OSw3ICs0NTksNyBAQCB2b2lkIFdlYkF1dG9t
YXRpb25TZXNzaW9uOjp3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGUoY29uc3QgU3RyaW5nJiBi
cm93c2luZ0NvbgogICAgICAgICAmJiBwYWdlLT5wYWdlTG9hZFN0YXRlKCkuaXNMb2FkaW5nKCkg
JiYgbV9jbGllbnQtPmlzU2hvd2luZ0phdmFTY3JpcHREaWFsb2dPblBhZ2UoKnRoaXMsICpwYWdl
KTsKIAogICAgIGlmIChvcHRpb25hbEZyYW1lSGFuZGxlICYmICFvcHRpb25hbEZyYW1lSGFuZGxl
LT5pc0VtcHR5KCkpIHsKLSAgICAgICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQgPSB3ZWJG
cmFtZUlERm9ySGFuZGxlKCpvcHRpb25hbEZyYW1lSGFuZGxlKTsKKyAgICAgICAgYXV0byBmcmFt
ZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZSgqb3B0aW9uYWxGcmFtZUhhbmRsZSk7CiAgICAgICAg
IGlmICghZnJhbWVJRCkKICAgICAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VS
Uk9SKEZyYW1lTm90Rm91bmQpOwogICAgICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IHBhZ2Ut
PnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlELnZhbHVlKCkpOwpAQCAtNTM3LDcgKzUzNyw3IEBA
IHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnJlc3BvbmRUb1BlbmRpbmdQYWdlTmF2aWdhdGlv
bkNhbGxiYWNrc1dpdGhUaW1lb3V0KEhhCiAgICAgfQogfQogCi1zdGF0aWMgV2ViUGFnZVByb3h5
KiBmaW5kUGFnZUZvckZyYW1lSUQoY29uc3QgV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCB1
aW50NjRfdCBmcmFtZUlEKQorc3RhdGljIFdlYlBhZ2VQcm94eSogZmluZFBhZ2VGb3JGcmFtZUlE
KGNvbnN0IFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQpCiB7CiAgICAgZm9yIChhdXRvJiBwcm9jZXNzIDogcHJvY2Vzc1Bvb2wucHJvY2Vzc2VzKCkp
IHsKICAgICAgICAgaWYgKGF1dG8qIGZyYW1lID0gcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCkp
CkBAIC01NDYsNyArNTQ2LDcgQEAgc3RhdGljIFdlYlBhZ2VQcm94eSogZmluZFBhZ2VGb3JGcmFt
ZUlEKGNvbnN0IFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgdWludDYKICAgICByZXR1cm4g
bnVsbHB0cjsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVzcG9uZFRvUGVuZGlu
Z0ZyYW1lTmF2aWdhdGlvbkNhbGxiYWNrc1dpdGhUaW1lb3V0KEhhc2hNYXA8dWludDY0X3QsIFJl
ZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiYgbWFwKQor
dm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVzcG9uZFRvUGVuZGluZ0ZyYW1lTmF2aWdhdGlv
bkNhbGxiYWNrc1dpdGhUaW1lb3V0KEhhc2hNYXA8RnJhbWVJZGVudGlmaWVyLCBSZWZQdHI8SW5z
cGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4mIG1hcCkKIHsKICAgICBJ
bnNwZWN0b3I6OkVycm9yU3RyaW5nIHRpbWVvdXRFcnJvciA9IFNUUklOR19GT1JfUFJFREVGSU5F
RF9FUlJPUl9OQU1FKFRpbWVvdXQpOwogICAgIGZvciAoYXV0byBpZCA6IGNvcHlUb1ZlY3Rvciht
YXAua2V5cygpKSkgewpAQCAtOTI0LDcgKzkyNCw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b246OmV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250
CiAgICAgaWYgKCFwYWdlKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJP
UihXaW5kb3dOb3RGb3VuZCk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCA9IHdl
YkZyYW1lSURGb3JIYW5kbGUob3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpvcHRpb25hbEZyYW1lSGFu
ZGxlIDogZW1wdHlTdHJpbmcoKSk7CisgICAgYXV0byBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhh
bmRsZShvcHRpb25hbEZyYW1lSGFuZGxlID8gKm9wdGlvbmFsRnJhbWVIYW5kbGUgOiBlbXB0eVN0
cmluZygpKTsKICAgICBpZiAoIWZyYW1lSUQpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVE
RUZJTkVEX0VSUk9SKEZyYW1lTm90Rm91bmQpOwogCkBAIC05NjcsMTEgKzk2NywxMSBAQCB2b2lk
IFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZlQ2hpbGRGcmFtZUhhbmRsZShjb25zdCBTdHJp
bmcmIGJyb3dzaW5nQ29udGV4dAogICAgIGlmICghcGFnZSkKICAgICAgICAgQVNZTkNfRkFJTF9X
SVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwogCi0gICAgT3B0aW9uYWw8dWlu
dDY0X3Q+IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5kbGUg
PyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCkpOworICAgIGF1dG8gZnJhbWVJ
RCA9IHdlYkZyYW1lSURGb3JIYW5kbGUob3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpvcHRpb25hbEZy
YW1lSGFuZGxlIDogZW1wdHlTdHJpbmcoKSk7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICBB
U1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIAotICAgIFdU
Rjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCB1aW50NjRfdCk+IGNv
bXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwg
Y2FsbGJhY2sgPSBjYWxsYmFjay5jb3B5UmVmKCldKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBl
LCB1aW50NjRfdCBmcmFtZUlEKSBtdXRhYmxlIHsKKyAgICBXVEY6OkNvbXBsZXRpb25IYW5kbGVy
PHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgRnJhbWVJZGVudGlmaWVyKT4gY29tcGxldGlvbkhhbmRs
ZXIgPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxsYmFjayA9IGNh
bGxiYWNrLmNvcHlSZWYoKV0oT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlEKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGVycm9yVHlwZSkgewogICAgICAg
ICAgICAgY2FsbGJhY2stPnNlbmRGYWlsdXJlKFNUUklOR19GT1JfUFJFREVGSU5FRF9FUlJPUl9N
RVNTQUdFKCplcnJvclR5cGUpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTEwMDQsMTEgKzEw
MDQsMTEgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVzb2x2ZVBhcmVudEZyYW1lSGFu
ZGxlKGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXgKICAgICBpZiAoIXBhZ2UpCiAgICAgICAg
IEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKIAotICAg
IE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShmcmFtZUhh
bmRsZSk7CisgICAgYXV0byBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShmcmFtZUhhbmRs
ZSk7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5F
RF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIAotICAgIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9p
ZChPcHRpb25hbDxTdHJpbmc+LCB1aW50NjRfdCk+IGNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FsbGJhY2sgPSBjYWxsYmFjay5jb3B5
UmVmKCldKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCB1aW50NjRfdCBmcmFtZUlEKSBtdXRh
YmxlIHsKKyAgICBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwg
RnJhbWVJZGVudGlmaWVyKT4gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxsYmFjayA9IGNhbGxiYWNrLmNvcHlSZWYoKV0oT3B0aW9u
YWw8U3RyaW5nPiBlcnJvclR5cGUsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSBtdXRhYmxlIHsK
ICAgICAgICAgaWYgKGVycm9yVHlwZSkgewogICAgICAgICAgICAgY2FsbGJhY2stPnNlbmRGYWls
dXJlKFNUUklOR19GT1JfUFJFREVGSU5FRF9FUlJPUl9NRVNTQUdFKCplcnJvclR5cGUpKTsKICAg
ICAgICAgICAgIHJldHVybjsKQEAgLTEwMzUsNyArMTAzNSw3IEBAIHZvaWQgV2ViQXV0b21hdGlv
blNlc3Npb246OmNvbXB1dGVFbGVtZW50TGF5b3V0KGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250
ZXh0SGFuCiAgICAgaWYgKCFwYWdlKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5F
RF9FUlJPUihXaW5kb3dOb3RGb3VuZCk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCA9IHdlYkZyYW1lSURGb3JIYW5kbGUoZnJhbWVIYW5kbGUpOworICAgIGF1dG8gZnJhbWVJRCA9
IHdlYkZyYW1lSURGb3JIYW5kbGUoZnJhbWVIYW5kbGUpOwogICAgIGlmICghZnJhbWVJRCkKICAg
ICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoRnJhbWVOb3RGb3VuZCk7CiAK
QEAgLTEwODcsNyArMTA4Nyw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnNlbGVjdE9w
dGlvbkVsZW1lbnQoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kCiAgICAgaWYgKCFw
YWdlKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5kb3dOb3RG
b3VuZCk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JI
YW5kbGUoZnJhbWVIYW5kbGUpOworICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5k
bGUoZnJhbWVIYW5kbGUpOwogICAgIGlmICghZnJhbWVJRCkKICAgICAgICAgQVNZTkNfRkFJTF9X
SVRIX1BSRURFRklORURfRVJST1IoRnJhbWVOb3RGb3VuZCk7CiAKQEAgLTEyNzEsNyArMTI3MSw3
IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmdldEFsbENvb2tpZXMoY29uc3QgU3RyaW5n
JiBicm93c2luZ0NvbnRleHRIYW5kbGUsIFJlCiAgICAgfTsKIAogICAgIC8vIEFsd2F5cyBzZW5k
IHRoZSBtYWluIGZyYW1lIElEIGFzIDAgc28gaXQgaXMgcmVzb2x2ZWQgb24gdGhlIFdlYlByb2Nl
c3Mgc2lkZS4gVGhpcyBhdm9pZHMgYSByYWNlIHdoZW4gcGFnZS0+bWFpbkZyYW1lKCkgaXMgbnVs
bCBzdGlsbC4KLSAgICBjb25zdCB1aW50NjRfdCBtYWluRnJhbWVJRCA9IDA7CisgICAgY29uc3Qg
RnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlEOwogICAgIHBhZ2UtPnByb2Nlc3MoKS5zZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OkdldENvb2tp
ZXNGb3JGcmFtZShwYWdlLT5wYWdlSUQoKSwgbWFpbkZyYW1lSUQpLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiB9CiAKQEAgLTEyOTEsNyArMTI5MSw3IEBAIHZvaWQgV2ViQXV0b21hdGlv
blNlc3Npb246OmRlbGV0ZVNpbmdsZUNvb2tpZShjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4
dEhhbmRsCiAgICAgfTsKIAogICAgIC8vIEFsd2F5cyBzZW5kIHRoZSBtYWluIGZyYW1lIElEIGFz
IDAgc28gaXQgaXMgcmVzb2x2ZWQgb24gdGhlIFdlYlByb2Nlc3Mgc2lkZS4gVGhpcyBhdm9pZHMg
YSByYWNlIHdoZW4gcGFnZS0+bWFpbkZyYW1lKCkgaXMgbnVsbCBzdGlsbC4KLSAgICBjb25zdCB1
aW50NjRfdCBtYWluRnJhbWVJRCA9IDA7CisgICAgY29uc3QgRnJhbWVJZGVudGlmaWVyIG1haW5G
cmFtZUlEOwogICAgIHBhZ2UtPnByb2Nlc3MoKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OkRlbGV0ZUNvb2tpZShwYWdlLT5wYWdlSUQoKSwg
bWFpbkZyYW1lSUQsIGNvb2tpZU5hbWUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9
CiAKQEAgLTE0NTcsNyArMTQ1Nyw3IEBAIFNpbXVsYXRlZElucHV0U291cmNlKiBXZWJBdXRvbWF0
aW9uU2Vzc2lvbjo6aW5wdXRTb3VyY2VGb3JUeXBlKFNpbXVsYXRlZElucHV0U291CiB9CiAKIC8v
IE1BUks6IFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlcjo6Q2xpZW50IEFQSQotdm9pZCBXZWJBdXRv
bWF0aW9uU2Vzc2lvbjo6dmlld3BvcnRJblZpZXdDZW50ZXJQb2ludE9mRWxlbWVudChXZWJQYWdl
UHJveHkmIHBhZ2UsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbm9kZUhhbmRsZSwg
RnVuY3Rpb248dm9pZCAoT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBPcHRpb25hbDxBdXRv
bWF0aW9uQ29tbWFuZEVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkF1dG9t
YXRpb25TZXNzaW9uOjp2aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVtZW50KFdlYlBhZ2VQ
cm94eSYgcGFnZSwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbm9kZUhh
bmRsZSwgRnVuY3Rpb248dm9pZCAoT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBPcHRpb25h
bDxBdXRvbWF0aW9uQ29tbWFuZEVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
V1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6Oklu
dFJlY3QsIE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiwgYm9vbCk+IGRpZENvbXB1dGVFbGVt
ZW50TGF5b3V0SGFuZGxlciA9IFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXShPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgV2ViQ29yZTo6SW50UmVjdCwg
T3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+IGluVmlld0NlbnRlclBvaW50LCBib29sKSBtdXRh
YmxlIHsKICAgICAgICAgaWYgKGVycm9yVHlwZSkgewpAQCAtMTk3Niw3ICsxOTc2LDcgQEAgdm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6dGFrZVNjcmVlbnNob3QoY29uc3QgU3RyaW5nJiBoYW5k
bGUsIGNvbnN0IFN0cmluZyogb3AKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIEFTWU5DX0ZBSUxf
V0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKIAotICAgIE9wdGlvbmFsPHVp
bnQ2NF90PiBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShvcHRpb25hbEZyYW1lSGFuZGxl
ID8gKm9wdGlvbmFsRnJhbWVIYW5kbGUgOiBlbXB0eVN0cmluZygpKTsKKyAgICBhdXRvIGZyYW1l
SUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5kbGUgPyAqb3B0aW9uYWxG
cmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCkpOwogICAgIGlmICghZnJhbWVJRCkKICAgICAgICAg
QVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoRnJhbWVOb3RGb3VuZCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNl
c3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlv
blNlc3Npb24uaAppbmRleCBmMzljMDYxYjU3ODkyYTkyNDhmZDA5ZGZmY2ZhN2I4YzUwYTA3NTM3
Li4xMjIyYzI4NDIyYmY5NmM2Y2M0YjFhNWRmY2E0MjI3MGZkMDIzYWEzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vz
c2lvbi5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCiAj
aW5jbHVkZSAiU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnQu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4K
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtMTUyLDcgKzE1Myw3IEBAIHB1YmxpYzoKICNp
ZiBFTkFCTEUoV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykKICAgICB2b2lkIHNpbXVs
YXRlS2V5Ym9hcmRJbnRlcmFjdGlvbihXZWJQYWdlUHJveHkmLCBLZXlib2FyZEludGVyYWN0aW9u
LCBXVEY6OlZhcmlhbnQ8VmlydHVhbEtleSwgQ2hhcktleT4mJiwgQXV0b21hdGlvbkNvbXBsZXRp
b25IYW5kbGVyJiYpIGZpbmFsOwogI2VuZGlmCi0gICAgdm9pZCB2aWV3cG9ydEluVmlld0NlbnRl
clBvaW50T2ZFbGVtZW50KFdlYlBhZ2VQcm94eSYsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0
cmluZyYgbm9kZUhhbmRsZSwgRnVuY3Rpb248dm9pZCAoT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9p
bnQ+LCBPcHRpb25hbDxBdXRvbWF0aW9uQ29tbWFuZEVycm9yPik+JiYpIGZpbmFsOworICAgIHZv
aWQgdmlld3BvcnRJblZpZXdDZW50ZXJQb2ludE9mRWxlbWVudChXZWJQYWdlUHJveHkmLCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbm9kZUhhbmRsZSwgRnVuY3Rpb248
dm9pZCAoT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBPcHRpb25hbDxBdXRvbWF0aW9uQ29t
bWFuZEVycm9yPik+JiYpIGZpbmFsOwogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkRSSVZFUl9BQ1RJ
T05TX0FQSSkKIApAQCAtMjIwLDE0ICsyMjEsMTQgQEAgcHJpdmF0ZToKICAgICBSZWY8SW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6QnJvd3NpbmdDb250ZXh0PiBidWlsZEJyb3dzaW5n
Q29udGV4dEZvclBhZ2UoV2ViUGFnZVByb3h5JiwgV2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRvd0Zy
YW1lKTsKICAgICB2b2lkIGdldE5leHRDb250ZXh0KFJlZjxXZWJBdXRvbWF0aW9uU2Vzc2lvbj4m
JiwgVmVjdG9yPFJlZjxXZWJQYWdlUHJveHk+PiYmLCBSZWY8SlNPTjo6QXJyYXlPZjxJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpCcm93c2luZ0NvbnRleHQ+PiwgUmVmPFdlYkF1dG9t
YXRpb25TZXNzaW9uOjpHZXRCcm93c2luZ0NvbnRleHRzQ2FsbGJhY2s+JiYpOwogCi0gICAgT3B0
aW9uYWw8dWludDY0X3Q+IHdlYkZyYW1lSURGb3JIYW5kbGUoY29uc3QgU3RyaW5nJik7Ci0gICAg
U3RyaW5nIGhhbmRsZUZvcldlYkZyYW1lSUQodWludDY0X3QgZnJhbWVJRCk7CisgICAgT3B0aW9u
YWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiB3ZWJGcmFtZUlERm9ySGFuZGxlKGNvbnN0IFN0
cmluZyYpOworICAgIFN0cmluZyBoYW5kbGVGb3JXZWJGcmFtZUlEKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcik7CiAgICAgU3RyaW5nIGhhbmRsZUZvcldlYkZyYW1lUHJveHkoY29uc3QgV2ViRnJh
bWVQcm94eSYpOwogCiAgICAgdm9pZCB3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVPblBhZ2Uo
V2ViUGFnZVByb3h5JiwgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6UGFnZUxvYWRT
dHJhdGVneSwgU2Vjb25kcywgUmVmPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxi
YWNrQmFzZT4mJik7CiAgICAgdm9pZCB3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVPbkZyYW1l
KFdlYkZyYW1lUHJveHkmLCBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpQYWdlTG9h
ZFN0cmF0ZWd5LCBTZWNvbmRzLCBSZWY8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2Fs
bGJhY2tCYXNlPiYmKTsKICAgICB2b2lkIHJlc3BvbmRUb1BlbmRpbmdQYWdlTmF2aWdhdGlvbkNh
bGxiYWNrc1dpdGhUaW1lb3V0KEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFJlZlB0
cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiYpOwotICAgIHZv
aWQgcmVzcG9uZFRvUGVuZGluZ0ZyYW1lTmF2aWdhdGlvbkNhbGxiYWNrc1dpdGhUaW1lb3V0KEhh
c2hNYXA8dWludDY0X3QsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxs
YmFja0Jhc2U+PiYpOworICAgIHZvaWQgcmVzcG9uZFRvUGVuZGluZ0ZyYW1lTmF2aWdhdGlvbkNh
bGxiYWNrc1dpdGhUaW1lb3V0KEhhc2hNYXA8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWZQ
dHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4mKTsKICAgICB2
b2lkIGxvYWRUaW1lckZpcmVkKCk7CiAKICAgICB2b2lkIGV4aXRGdWxsc2NyZWVuV2luZG93Rm9y
UGFnZShXZWJQYWdlUHJveHkmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CkBA
IC0yODQsMTMgKzI4NSwxMyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIsIFN0cmluZz4gbV93ZWJQYWdlSGFuZGxlTWFwOwogICAgIEhhc2hNYXA8U3RyaW5n
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gbV9oYW5kbGVXZWJQYWdlTWFwOwogCi0gICAgSGFz
aE1hcDx1aW50NjRfdCwgU3RyaW5nPiBtX3dlYkZyYW1lSGFuZGxlTWFwOwotICAgIEhhc2hNYXA8
U3RyaW5nLCB1aW50NjRfdD4gbV9oYW5kbGVXZWJGcmFtZU1hcDsKKyAgICBIYXNoTWFwPFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgU3RyaW5nPiBtX3dlYkZyYW1lSGFuZGxlTWFwOworICAgIEhh
c2hNYXA8U3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IG1faGFuZGxlV2ViRnJhbWVN
YXA7CiAKICAgICBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBSZWZQdHI8SW5zcGVj
dG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4gbV9wZW5kaW5nTm9ybWFsTmF2
aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyUGFnZTsKICAgICBIYXNoTWFwPFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hl
cjo6Q2FsbGJhY2tCYXNlPj4gbV9wZW5kaW5nRWFnZXJOYXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRl
eHRDYWxsYmFja3NQZXJQYWdlOwotICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxJbnNwZWN0
b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiBtX3BlbmRpbmdOb3JtYWxOYXZp
Z2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJGcmFtZTsKLSAgICBIYXNoTWFwPHVp
bnQ2NF90LCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNl
Pj4gbV9wZW5kaW5nRWFnZXJOYXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJG
cmFtZTsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmUHRyPEluc3Bl
Y3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGluZ05vcm1hbE5h
dmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlckZyYW1lOworICAgIEhhc2hNYXA8
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0
Y2hlcjo6Q2FsbGJhY2tCYXNlPj4gbV9wZW5kaW5nRWFnZXJOYXZpZ2F0aW9uSW5Ccm93c2luZ0Nv
bnRleHRDYWxsYmFja3NQZXJGcmFtZTsKICAgICBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4g
bV9wZW5kaW5nSW5zcGVjdG9yQ2FsbGJhY2tzUGVyUGFnZTsKICNpZiBFTkFCTEUoV0VCRFJJVkVS
X0tFWUJPQVJEX0lOVEVSQUNUSU9OUykKICAgICBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCBGdW5jdGlvbjx2b2lkKE9wdGlvbmFsPEF1dG9tYXRpb25Db21tYW5kRXJyb3I+KT4+IG1f
cGVuZGluZ0tleWJvYXJkRXZlbnRzRmx1c2hlZENhbGxiYWNrc1BlclBhZ2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCBhNTFhMjIzNjIzODQxNTFh
YjExZDQ4OTQzNjlmOGExODU4MDA2N2RhLi4zMDJmNjgyMjgyYmNjN2VlMzhkM2Y2NzI3ZDZkMjNm
ODRiMjg5ZGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURl
bGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
bW0KQEAgLTEwMzIsNyArMTAzMiw3IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmNoZWNr
VXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJQYWdlUHJveHkmIHBhZ2UsCiAgICAgVVJM
IHJlcXVlc3RGcmFtZVVSTCB7IFVSTCgpLCBmcmFtZS51cmwoKSB9OwogICAgIFVSTCBtYWluRnJh
bWVVUkwgeyBVUkwoKSwgbWFpbkZyYW1lLT51cmwoKSB9OwogCi0gICAgWyhpZCA8V0tVSURlbGVn
YXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyBjaGVj
a1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6cmVxdWVzdEZyYW1lVVJMIG1haW5GcmFtZVVSTDpt
YWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOmZyYW1lLmZyYW1lSUQoKSBkZWNpc2lvbkhhbmRs
ZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKKyAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRl
PilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IGNoZWNrVXNlck1lZGlh
UGVybWlzc2lvbkZvclVSTDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVS
TCBmcmFtZUlkZW50aWZpZXI6ZnJhbWUuZnJhbWVJRCgpLnRvVUludDY0KCkgZGVjaXNpb25IYW5k
bGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07CiB9CiAKIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGll
bnQ6Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGVGbGFncyBzdGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dLUmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIu
bW0KaW5kZXggODRkMjBjNGNlOGIxZjAwMTdlMWJhNzdiOWQwZGY0ZjEwMTM4YTkwMC4uOWM0MDky
ZWZkNDM2ZDAyMjQwYjgwNmEyYzI0MGY2NDM2ZDJlZGI1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9y
UmVjb3ZlcnlBdHRlbXB0ZXIubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIldlYkZyYW1l
UHJveHkuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1By
b3h5LmgiCisjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2ltcG9ydCA8d3Rm
L1JldGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+CiAKQEAgLTYyLDggKzYz
LDcgQEAgLSAoQk9PTClhdHRlbXB0UmVjb3ZlcnkKICAgICBpZiAoIXdlYlZpZXcpCiAgICAgICAg
IHJldHVybiBOTzsKIAotICAgIHVpbnQ2NF90IGZyYW1lSUQgPSBbX2ZyYW1lSGFuZGxlIF9mcmFt
ZUlEXTsKLSAgICBXZWJLaXQ6OldlYkZyYW1lUHJveHkqIHdlYkZyYW1lUHJveHkgPSB3ZWJWaWV3
LT5fcGFnZS0+cHJvY2VzcygpLndlYkZyYW1lKGZyYW1lSUQpOworICAgIFdlYktpdDo6V2ViRnJh
bWVQcm94eSogd2ViRnJhbWVQcm94eSA9IHdlYlZpZXctPl9wYWdlLT5wcm9jZXNzKCkud2ViRnJh
bWUoV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKFtfZnJhbWVIYW5kbGUgX2ZyYW1lSURd
KSk7CiAgICAgaWYgKCF3ZWJGcmFtZVByb3h5KQogICAgICAgICByZXR1cm4gTk87CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KaW5k
ZXggYTFhZjk4ZDIxMDkzZTVhZWVlOGIzZDQ4MGI4MTYxZmUyNmU5ZWE1MS4uZDk2MTM5MThmNzVm
YTVlOGRmNTgzNGYyNTI0NDM4ZTA2ZTk4NmI5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KQEAgLTEwMSwxMiArMTAxLDEyIEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpiZWdpblNhZmVCcm93c2luZ0NoZWNrKGNvbnN0IFVSTCYgdXJs
LCBib29sIGZvck1haW5GcmFtZU5hdmlnCiB9CiAKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJ
TkcpCi12b2lkIFdlYlBhZ2VQcm94eTo6Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1l
KGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYgdW5ibG9ja0hhbmRs
ZXIsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGVudEZpbHRlckRp
ZEJsb2NrTG9hZEZvckZyYW1lKGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFu
ZGxlciYgdW5ibG9ja0hhbmRsZXIsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIGNv
bnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigp
LCB1bmJsb2NrSGFuZGxlciwgZnJhbWVJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpjb250
ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiBwcm9jZXNzLCBjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIHVu
YmxvY2tIYW5kbGVyLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmNvbnRl
bnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
IHByb2Nlc3MsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYgdW5i
bG9ja0hhbmRsZXIsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIGlmIChXZWJGcmFt
ZVByb3h5KiBmcmFtZSA9IHByb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpKQogICAgICAgICBmcmFt
ZS0+Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZCh1bmJsb2NrSGFuZGxlcik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cAppbmRleCA5NGZhZjZiOWRlMjYyMDFkODRkMjZmZjgzOTMzZjgyMjljMDVkNmI5Li45MWVjZTFm
MGRhZmZlM2VhNjNhZGJjMGQ5MWVhYzRkMTgxMTEzMDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTMx
Miw3ICszMTIsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZENyZWF0ZU5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbnN0IElQQzo6QXR0YQogI2VuZGlmCiB9CiAKLXZvaWQg
TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UmJiBjb3JlQ2hhbGxlbmdlLCB1aW50NjRfdCBjaGFsbGVuZ2VJRCkKK3Zv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6
OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYgY29yZUNoYWxsZW5nZSwgdWludDY0X3QgY2hhbGxl
bmdlSUQpCiB7CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIGlmIChhdXRvKiBzZXJ2
aWNlV29ya2VyUHJvY2Vzc1Byb3h5ID0gbV9wcm9jZXNzUG9vbC5zZXJ2aWNlV29ya2VyUHJvY2Vz
c1Byb3h5RnJvbVBhZ2VJRChwYWdlSUQpKSB7CkBAIC03MzcsNyArNzM3LDcgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpzZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgY29uc3QgUmVnaXMKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpTZXRHcmFuZGZhdGhlcmVkKHNlc3Npb25JRCwgcmVzb3VyY2VEb21haW4sIGlzR3Jh
bmRmYXRoZXJlZCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oUGFnZUlkZW50aWZp
ZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3Vi
RnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9t
YWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZShwYWdl
SUQpOwogICAgIGlmICghcGFnZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCA0MzM1NDVjMGUzM2ZhYWVlZDlk
ZWJiMzRmNmIyMGNmY2FlNWU5NWM4Li40MGY4MWRlOWI0N2YxOTIyMTkwMjZhNmU4YTA3YjJhNWUy
ZDZhOTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuaApAQCAtODIsNyArODIsNiBAQCBwdWJsaWM6CiAgICAgdXNpbmcg
TmF2aWdhdGVkVG9Eb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKICAgICB1c2lu
ZyBEb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MgPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
bjsKICAgICB1c2luZyBPcGVuZXJEb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsK
LSAgICB1c2luZyBGcmFtZUlEID0gdWludDY0X3Q7CiAKICAgICBleHBsaWNpdCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJik7CiAgICAgfk5ldHdvcmtQcm9jZXNzUHJveHkoKTsK
QEAgLTEzMCw3ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJj
ZUZvckRlYnVnTW9kZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0VmVyeVByZXZhbGVudFJl
c291cmNlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBnZXRBbGxTdG9yYWdlQWNjZXNzRW50cmll
cyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiBk
b21haW5zKT4mJik7Ci0gICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIsIEZyYW1lSUQsIGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3Qg
VG9wRnJhbWVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2
b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRv
cEZyYW1lRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9p
ZCByZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRWYWx1ZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQ
ZXJzaXN0ZW50KFBBTDo6U2Vzc2lvbklELCBTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3MsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzY2hlZHVsZUNsZWFySW5NZW1v
cnlBbmRQZXJzaXN0ZW50KFBBTDo6U2Vzc2lvbklELCBPcHRpb25hbDxXYWxsVGltZT4gbW9kaWZp
ZWRTaW5jZSwgU2hvdWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwpAQCAtMjEzLDcgKzIxMiw3IEBAIHByaXZhdGU6CiAgICAgLy8gTWVzc2FnZSBo
YW5kbGVycwogICAgIHZvaWQgZGlkUmVjZWl2ZU5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwogICAgIHZvaWQgZGlkQ3JlYXRlTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29uc3QgSVBDOjpBdHRhY2htZW50Jik7Ci0gICAgdm9p
ZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYs
IHVpbnQ2NF90IGNoYWxsZW5nZUlEKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYmLCB1aW50NjRfdCBjaGFsbGVu
Z2VJRCk7CiAgICAgdm9pZCBkaWRGZXRjaFdlYnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQs
IGNvbnN0IFdlYnNpdGVEYXRhJik7CiAgICAgdm9pZCBkaWREZWxldGVXZWJzaXRlRGF0YSh1aW50
NjRfdCBjYWxsYmFja0lEKTsKICAgICB2b2lkIGRpZERlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lu
cyh1aW50NjRfdCBjYWxsYmFja0lEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRl
eCAxMWQ4YzVkZWUxZGJhODFmOGY2M2Y3ZDk0OGVmNjYxNjE5ODFkMTM0Li5iZmFmOWYwNDk2ZTU2
YTliOTMxZWY2ZmY3NzUxYzNhY2Y1ZDEzOWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2Vz
LmluCkBAIC0yMyw3ICsyMyw3IEBACiBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc1Byb3h5IExl
Z2FjeVJlY2VpdmVyIHsKICAgICBEaWRDcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyhJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbklkZW50aWZpZXIpCiAKLSAgICBEaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1
aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjaGFsbGVu
Z2UsIHVpbnQ2NF90IGNoYWxsZW5nZUlEKQorICAgIERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjaGFsbGVu
Z2UsIHVpbnQ2NF90IGNoYWxsZW5nZUlEKQogCiAgICAgRGlkRmV0Y2hXZWJzaXRlRGF0YSh1aW50
NjRfdCBjYWxsYmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpXZWJzaXRlRGF0YSB3ZWJzaXRlRGF0YSkK
ICAgICBEaWREZWxldGVXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lEKQpAQCAtNDgsNyAr
NDgsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsK
ICAgICBOb3RpZnlXZWJzaXRlRGF0YURlbGV0aW9uRm9yUmVnaXN0cmFibGVEb21haW5zRmluaXNo
ZWQoKQogICAgIE5vdGlmeVdlYnNpdGVEYXRhU2NhbkZvclJlZ2lzdHJhYmxlRG9tYWluc0Zpbmlz
aGVkKCkKICAgICBOb3RpZnlSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5RmluaXNoZWQo
dW5zaWduZWQgdG90YWxQcmV2YWxlbnRSZXNvdXJjZXMsIHVuc2lnbmVkIHRvdGFsUHJldmFsZW50
UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlvbiwgdW5zaWduZWQgdG9wM1N1YmZyYW1lVW5kZXJU
b3BGcmFtZU9yaWdpbnMpCi0gICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4gc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRv
cEZyYW1lRG9tYWluKSAtPiAoYm9vbCB1c2VyRGlkR3JhbnRBY2Nlc3MpIEFzeW5jCisgICAgUmVx
dWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURv
bWFpbikgLT4gKGJvb2wgdXNlckRpZEdyYW50QWNjZXNzKSBBc3luYwogICAgIERlbGV0ZVdlYnNp
dGVEYXRhSW5VSVByb2Nlc3NGb3JSZWdpc3RyYWJsZURvbWFpbnMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgT3B0
aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFGZXRjaE9wdGlvbj4gZmV0Y2hPcHRpb25zLCBWZWN0
b3I8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+IGRvbWFpbnMpIC0+IChIYXNoU2V0PFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21haW5zV2l0aE1hdGNoaW5nRGF0YVJlY29yZHMpIEFz
eW5jCiAgICAgRGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXJGcm9tUHJldmFs
ZW50UmVzb3VyY2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKQogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKaW5kZXgg
NjY2ZmJkM2RhMTBmYjVkNTlhZjIxMDUyN2EzYzE1NDVjMTQ4MTNlMi4uZDdmMGMzYzk1MDI3NGRl
OGUwYTk1Y2I4NWFkYzI3NjU1OGY3MmQ5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcApAQCAtMTc2LDcgKzE3Niw3IEBAIHZvaWQgUHJv
dmlzaW9uYWxQYWdlUHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0oQVBJOjpOYXZpZ2F0aW9uJiBu
YXZpZ2F0aW9uLCBXZWJCCiAgICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3Rh
cnQoKTsKIH0KIAotaW5saW5lIGJvb2wgUHJvdmlzaW9uYWxQYWdlUHJveHk6OnZhbGlkYXRlSW5w
dXQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgT3B0aW9uYWw8dWludDY0X3Q+JiBuYXZpZ2F0aW9u
SUQpCitpbmxpbmUgYm9vbCBQcm92aXNpb25hbFBhZ2VQcm94eTo6dmFsaWRhdGVJbnB1dChGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgT3B0aW9uYWw8dWludDY0X3Q+JiBuYXZpZ2F0aW9u
SUQpCiB7CiAgICAgLy8gSWYgdGhlIHByZXZpb3VzIHByb3Zpc2lvbmFsIGxvYWQgdXNlZCBhbiBl
eGlzdGluZyBwcm9jZXNzLCB3ZSBtYXkgcmVjZWl2ZSBsZWZ0b3ZlciBJUEMgZm9yIGEgcHJldmlv
dXMgbmF2aWdhdGlvbiwgd2hpY2ggd2UgbmVlZCB0byBpZ25vcmUuCiAgICAgaWYgKCFtX21haW5G
cmFtZSB8fCBtX21haW5GcmFtZS0+ZnJhbWVJRCgpICE9IGZyYW1lSUQpCkBAIC0xODUsOSArMTg1
LDkgQEAgaW5saW5lIGJvb2wgUHJvdmlzaW9uYWxQYWdlUHJveHk6OnZhbGlkYXRlSW5wdXQodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgT3B0aW9uYWwKICAgICByZXR1cm4gIW5hdmlnYXRpb25JRCB8
fCAhKm5hdmlnYXRpb25JRCB8fCAqbmF2aWdhdGlvbklEID09IG1fbmF2aWdhdGlvbklEOwogfQog
Ci12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCkKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZShG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFBy
b2Nlc3NTd2FwcGluZywgImRpZENyZWF0ZU1haW5GcmFtZTogcGFnZUlEID0gJSIgUFJJdTY0ICIs
IGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFtZUlE
KTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgImRpZENyZWF0
ZU1haW5GcmFtZTogcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1f
cGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCkpOwogICAgIEFTU0VS
VCghbV9tYWluRnJhbWUpOwogCiAgICAgbV9tYWluRnJhbWUgPSBXZWJGcmFtZVByb3h5OjpjcmVh
dGUobV9wYWdlLCBmcmFtZUlEKTsKQEAgLTIxMiw3ICsyMTIsNyBAQCB2b2lkIFByb3Zpc2lvbmFs
UGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJRCkKICAgICB9CiB9
CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdChj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVS
TFN0cmluZywgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRp
ZFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29u
c3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQp
CiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQpKQogICAgICAgICByZXR1cm47CkBA
IC0yMjAsMTIgKzIyMCwxMiBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQZXJmb3Jt
Q2xpZW50UmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbgogICAgIG1fcGFnZS5k
aWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgc291cmNl
VVJMU3RyaW5nLCBkZXN0aW5hdGlvblVSTFN0cmluZywgZnJhbWVJRCk7CiB9CiAKLXZvaWQgUHJv
dmlzaW9uYWxQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwsIFVSTCYmIHVucmVh
Y2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFByb3Zpc2lvbmFsUGFn
ZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCwgVVJMJiYgdW5yZWFjaGFi
bGVVUkwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBpZiAoIXZhbGlkYXRlSW5w
dXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICJkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lOiBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBu
YXZpZ2F0aW9uSUQgPSAlIiBQUkl1NjQsIG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFt
ZUlELCBuYXZpZ2F0aW9uSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2Vzc1N3
YXBwaW5nLCAiZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZTogcGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEID0gJSIgUFJJdTY0LCBt
X3BhZ2UucGFnZUlEKCkudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpLCBuYXZpZ2F0aW9u
SUQpOwogICAgIEFTU0VSVChtX3Byb3Zpc2lvbmFsTG9hZFVSTC5pc051bGwoKSk7CiAgICAgbV9w
cm92aXNpb25hbExvYWRVUkwgPSB1cmw7CiAKQEAgLTI0MCwxMiArMjQwLDEyIEBAIHZvaWQgUHJv
dmlzaW9uYWxQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgdWluCiAgICAgbV9wYWdlLmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgbmF2aWdhdGlvbklELCBXVEZN
b3ZlKHVybCksIFdURk1vdmUodW5yZWFjaGFibGVVUkwpLCB1c2VyRGF0YSk7CiB9CiAKLXZvaWQg
UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNp
b25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IsIFdlYkNvcmU6Oldp
bGxDb250aW51ZUxvYWRpbmcgd2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEmIHVz
ZXJEYXRhKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
Y29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciYgZXJyb3IsIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcgd2lsbENvbnRpbnVlTG9hZGlu
ZywgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIGlmICghdmFsaWRhdGVJbnB1dChm
cmFtZUlELCBuYXZpZ2F0aW9uSUQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBSRUxFQVNFX0xP
R19FUlJPUl9JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgImRpZEZhaWxQcm92aXNpb25hbExv
YWRGb3JGcmFtZTogcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwg
bmF2aWdhdGlvbklEID0gJSIgUFJJdTY0LCBtX3BhZ2UucGFnZUlEKCkudG9VSW50NjQoKSwgZnJh
bWVJRCwgbmF2aWdhdGlvbklEKTsKKyAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKFBy
b2Nlc3NTd2FwcGluZywgImRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZTogcGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEID0gJSIgUFJJ
dTY0LCBtX3BhZ2UucGFnZUlEKCkudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpLCBuYXZp
Z2F0aW9uSUQpOwogICAgIEFTU0VSVCghbV9wcm92aXNpb25hbExvYWRVUkwuaXNOdWxsKCkpOwog
ICAgIG1fcHJvdmlzaW9uYWxMb2FkVVJMID0geyB9OwogCkBAIC0yNTYsMTIgKzI1NiwxMiBAQCB2
b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgY29ucwogICAgIG1fcGFnZS5kaWRGYWlsUHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0
eU9yaWdpbiwgbmF2aWdhdGlvbklELCBwcm92aXNpb25hbFVSTCwgZXJyb3IsIHdpbGxDb250aW51
ZUxvYWRpbmcsIHVzZXJEYXRhKTsgLy8gTWF5IGRlbGV0ZSB8dGhpc3wuCiB9CiAKLXZvaWQgUHJv
dmlzaW9uYWxQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJh
bWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0
IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBib29sIGNvbnRhaW5z
UGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9y
Y2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFBy
b3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwg
Ym9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlw
ZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wg
Y29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250
ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkK
IHsKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcs
ICJkaWRDb21taXRMb2FkRm9yRnJhbWU6IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0ICIsIG5hdmlnYXRpb25JRCA9ICUiIFBSSXU2NCwgbV9wYWdlLnBhZ2VJRCgpLnRv
VUludDY0KCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRChQcm9jZXNzU3dhcHBpbmcsICJkaWRDb21taXRMb2FkRm9yRnJhbWU6IHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIG5hdmlnYXRpb25JRCA9ICUiIFBSSXU2
NCwgbV9wYWdlLnBhZ2VJRCgpLnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSwgbmF2aWdh
dGlvbklEKTsKICAgICBtX3Byb3Zpc2lvbmFsTG9hZFVSTCA9IHsgfTsKICAgICBtX3Byb2Nlc3Mt
PnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViUGFnZVByb3h5OjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCksIG1fcGFnZS5wYWdlSUQoKSk7CiAKQEAgLTI2OSw3ICsyNjksNyBAQCB2b2lk
IFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgdWludDY0X3QgbmF2aQogICAgIG1fcGFnZS5jb21taXRQcm92aXNpb25hbFBhZ2UoZnJh
bWVJRCwgbmF2aWdhdGlvbklELCBtaW1lVHlwZSwgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlk
ZXIsIGZyYW1lTG9hZFR5cGUsIGNlcnRpZmljYXRlSW5mbywgY29udGFpbnNQbHVnaW5Eb2N1bWVu
dCwgZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCB1c2VyRGF0YSk7IC8vIFdpbGwgZGVsZXRlIHx0
aGlzfC4KIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2
aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYgc3RvcmUsIHVpbnQ2NF90
IGZyYW1lSUQpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWROYXZpZ2F0ZVdpdGhOYXZp
Z2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiBzdG9yZSwgRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQpKQogICAg
ICAgICByZXR1cm47CkBAIC0yNzcsNyArMjc3LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94
eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdhdGlvbkRhdGEK
ICAgICBtX3BhZ2UuZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQobV9wcm9jZXNz
LmNvcHlSZWYoKSwgc3RvcmUsIGZyYW1lSUQpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVBy
b3h5OjpkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYgdXJsKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94
eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwpCiB7CiAgICAgaWYgKCF2YWxpZGF0
ZUlucHV0KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKQEAgLTI4NSw3
ICsyODUsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92aXNpb25h
bFVSTEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbgogICAgIG1fcGFnZS5kaWRDaGFuZ2VQ
cm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQs
IG5hdmlnYXRpb25JRCwgV1RGTW92ZSh1cmwpKTsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQ
cm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKHVpbnQ2NF90IGZyYW1l
SUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAordm9pZCBQcm92aXNpb25h
bFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKICAg
ICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlv
bkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxQYWdl
SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgb3JpZ2luYWxSZXF1ZXN0LAogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJl
cXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0
YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKIHsKQEAgLTI5Niw3ICsyOTYsNyBAQCB2b2lkIFByb3Zp
c2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmModWlu
dDY0X3QgZnJhbWVJRAogICAgICAgICBXVEZNb3ZlKGZyYW1lSW5mb0RhdGEpLCBvcmlnaW5hdGlu
Z1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVl
c3RCb2R5KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNlckRhdGEsIGxpc3RlbmVySUQp
OwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZy
YW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlm
aWVyLAordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2Uo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlk
ZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJp
YnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewog
ICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQpKQpAQCAtMzA1LDcg
KzMwNSw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvCiAgICAgbV9wYWdlLmRlY2lkZVBvbGlj
eUZvclJlc3BvbnNlU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3Qs
IGNhblNob3dNSU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVySUQsIHVzZXJEYXRh
KTsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGly
ZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0
aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94
eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5n
LCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCkKIHsKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCkpCiAgICAgICAgIHJldHVy
bjsKQEAgLTMxMyw3ICszMTMsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQZXJm
b3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbgogICAgIG1fcGFn
ZS5kaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgc291
cmNlVVJMU3RyaW5nLCBkZXN0aW5hdGlvblVSTFN0cmluZywgZnJhbWVJRCk7CiB9CiAKLXZvaWQg
UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0
Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29u
c3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlE
LCBuYXZpZ2F0aW9uSUQpKQogICAgICAgICByZXR1cm47CkBAIC0zMzEsNyArMzMxLDcgQEAgdm9p
ZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6YmFja0ZvcndhcmRHb1RvSXRlbShjb25zdCBXZWJDb3Jl
OjpCYWNrRm9yd2FyZEl0ZW1JZGUKICAgICBtX3BhZ2UuYmFja0ZvcndhcmRHb1RvSXRlbVNoYXJl
ZChtX3Byb2Nlc3MuY29weVJlZigpLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb25TeW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6
OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAordm9pZCBQcm92aXNpb25hbFBhZ2VQ
cm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYm
IGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVu
dGlmaWVyLAogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEm
JiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9w
dGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwKICAgICBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwKICAgICBjb25zdCBV
c2VyRGF0YSYgdXNlckRhdGEsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVkUmVwbHkmJiByZXBseSkKQEAgLTM2Niw3ICsz
NjYsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpyZWdpc3RlcldlYlByb2Nlc3NBY2Nl
c3NpYmlsaXR5VG9rZW4oY29uc3QgSVBDOjpEYXRhUgogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ09O
VEVOVF9GSUxURVJJTkcpCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpjb250ZW50RmlsdGVy
RGlkQmxvY2tMb2FkRm9yRnJhbWUoY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tI
YW5kbGVyJiB1bmJsb2NrSGFuZGxlciwgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgUHJvdmlzaW9u
YWxQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJD
b3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIHVuYmxvY2tIYW5kbGVyLCBGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBtX3BhZ2UuY29udGVudEZpbHRlckRpZEJsb2NrTG9h
ZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIHVuYmxvY2tIYW5kbGVyLCBmcmFt
ZUlEKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFs
UGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94
eS5oCmluZGV4IDMzMzIxNmEyY2M3ODU2NjcxNjMyNGFiMDZmZjFiM2I5NjA4MGMwYmUuLmRlM2Vl
Njg3ZmE3ZDgxNzUwYjU4ZmVkYTU4NDU4M2ZkMWYxZTJkNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaApAQCAtOTIsMjMgKzkyLDIzIEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImKSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYp
IGZpbmFsOwogCi0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMo
dWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6
OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9u
QWN0aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYsCisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uQXN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEm
JiwKICAgICAgICAgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5n
UGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1
ZXN0Qm9keSwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVz
cG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7Ci0gICAgdm9pZCBk
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsCisgICAg
dm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiwKICAgICAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBj
YW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90
IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNp
b25hbFVSTEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
VVJMJiYpOwotICAgIHZvaWQgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmluZyYg
c291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50
NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9p
ZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0
b3JlJiwgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJl
Y3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRp
b25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkQ3JlYXRlTWFpbkZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmLCBV
UkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZENvbW1p
dExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNv
bnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIs
IHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYs
IGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1
cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJik7Ci0g
ICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nLCBj
b25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFt
ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYp
OworICAgIHZvaWQgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNl
VVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBVc2VyRGF0YSYp
OworICAgIHZvaWQgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdh
dGlvbkRhdGFTdG9yZSYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0
IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7
CisgICAgdm9pZCBkaWRDcmVhdGVNYWluRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsK
KyAgICB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmLCBVUkwmJiB1bnJlYWNoYWJs
ZVVSTCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZShX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMy
X3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiwgYm9vbCBj
b250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRl
bnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lk
IGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZywg
Y29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIHN0YXJ0VVJMU2NoZW1lVGFzayhVUkxTY2hlbWVU
YXNrUGFyYW1ldGVycyYmKTsKICAgICB2b2lkIGJhY2tGb3J3YXJkR29Ub0l0ZW0oY29uc3QgV2Vi
Q29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYpPiYmKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25TeW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUs
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKKyAg
ICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAogICAgICAgICBGcmFtZUluZm9EYXRhJiYsIE9wdGlv
bmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAg
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2Vy
RGF0YSYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25TeW5jOjpEZWxheWVkUmVwbHkmJik7CiAjaWYgVVNFKFFVSUNLX0xPT0spCkBAIC0xMTgs
MTEgKzExOCwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJXZWJQcm9jZXNzQWNjZXNz
aWJpbGl0eVRva2VuKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpOwogI2VuZGlmCiAjaWYgRU5B
QkxFKENPTlRFTlRfRklMVEVSSU5HKQotICAgIHZvaWQgY29udGVudEZpbHRlckRpZEJsb2NrTG9h
ZEZvckZyYW1lKGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYsIHVp
bnQ2NF90IGZyYW1lSUQpOworICAgIHZvaWQgY29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZy
YW1lKGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcik7CiAjZW5kaWYKIAogICAgIHZvaWQgaW5pdGlhbGl6ZVdlYlBhZ2Uo
KTsKLSAgICBib29sIHZhbGlkYXRlSW5wdXQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgT3B0aW9u
YWw8dWludDY0X3Q+JiBuYXZpZ2F0aW9uSUQgPSBXVEY6Om51bGxvcHQpOworICAgIGJvb2wgdmFs
aWRhdGVJbnB1dChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IE9wdGlvbmFsPHVpbnQ2
NF90PiYgbmF2aWdhdGlvbklEID0gV1RGOjpudWxsb3B0KTsKIAogICAgIFdlYlBhZ2VQcm94eSYg
bV9wYWdlOwogICAgIFJlZjxXZWJQcm9jZXNzUHJveHk+IG1fcHJvY2VzczsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHAKaW5k
ZXggYjJmNzcyOWZkMzkzNWY3MmUxYmM5MTE1YTMwYTE4ZjY0ZTM5ZmQyNS4uZjc4YTdjMzg2Yzg5
NTkwMTE1NmI1NjhhYWY5OGJhYjIzYjA4MDZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHAKQEAgLTkwLDcgKzkwLDcg
QEAgdm9pZCBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5Ojp1cGRhdGVQcmVmZXJlbmNlc1N0b3Jl
KGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbjo6VXBkYXRlUHJlZmVyZW5jZXNTdG9yZSB7IHN0b3JlIH0sIDAp
OwogfQogCi12b2lkIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQs
IFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmIGNoYWxsZW5nZSkKK3ZvaWQgU2Vy
dmljZVdvcmtlclByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmIGNoYWxsZW5nZSkKIHsKICAgICBVTlVTRURfUEFS
QU0ocGFnZUlEKTsKICAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgKaW5kZXggZTkzNjVh
ZmFjNGY0N2Q3ZmQ3NDdmOTg5ODNhZDk5OTBlOGFiOTc1NS4uN2Q4ODc2MDVlZWEwYjY0NzlkNjk3
NjkxYWJiNTUyODA3ZGUyMTg0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAK
ICAgICBzdGF0aWMgYm9vbCBoYXNSZWdpc3RlcmVkU2VydmljZVdvcmtlcnMoY29uc3QgU3RyaW5n
JiBzZXJ2aWNlV29ya2VyRGlyZWN0b3J5KTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlE
LCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJik7CisgICAgdm9pZCBkaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYp
OwogCiAgICAgdm9pZCBzdGFydChjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiwgT3B0aW9uYWw8
UEFMOjpTZXNzaW9uSUQ+IGluaXRpYWxTZXNzaW9uSUQpOwogICAgIHZvaWQgc2V0VXNlckFnZW50
KGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3Vz
cGVuZGVkUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBh
Z2VQcm94eS5jcHAKaW5kZXggZjZkM2I1MzZkZjhhYWIxOTdkOTExZWQxNGQyZWE0MGZlZmYyZTFk
ZC4uYzY0ZDdlZjE5YmQwZGU3MTE2OTY5OTkyYzA3NjcxZTYxZDgyODNlZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwCkBAIC03OCw3ICs3OCw3
IEBAIHN0YXRpYyBjb25zdCBIYXNoU2V0PElQQzo6U3RyaW5nUmVmZXJlbmNlPiYgbWVzc2FnZU5h
bWVzVG9JZ25vcmVXaGlsZVN1c3BlbmRlZCgpCiB9CiAjZW5kaWYKIAotU3VzcGVuZGVkUGFnZVBy
b3h5OjpTdXNwZW5kZWRQYWdlUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90IG1haW5GcmFtZUlELCBTaG91bGREZWxheUNsb3Np
bmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUgc2hvdWxkRGVsYXlDbG9z
aW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKQorU3VzcGVuZGVkUGFn
ZVByb3h5OjpTdXNwZW5kZWRQYWdlUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBSZWY8V2ViUHJv
Y2Vzc1Byb3h5PiYmIHByb2Nlc3MsIEZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCwgU2hvdWxk
RGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlIHNob3Vs
ZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSkKICAg
ICA6IG1fcGFnZShwYWdlKQogICAgICwgbV9wcm9jZXNzKFdURk1vdmUocHJvY2VzcykpCiAgICAg
LCBtX21haW5GcmFtZUlEKG1haW5GcmFtZUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
dXNwZW5kZWRQYWdlUHJveHkuaAppbmRleCAwZGFkMDU0YjI3MmE4MTlkNmUwYjA2Yzc3Y2VkODEy
YTI2M2QxMzQwLi45MTY1M2NjNzhlYTAwODY2MGIxNGUzMzUwNTUzYWE4OWU3M2QxOTEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuaApAQCAtMjksNiAr
MjksNyBAQAogI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXIuaCIKICNpbmNsdWRlICJXZWJCYWNr
Rm9yd2FyZExpc3RJdGVtLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIApAQCAtNDIsMTIgKzQzLDEyIEBAIGVu
dW0gY2xhc3MgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdNb2RlIDogYm9vbCB7IE5vCiBjbGFzcyBTdXNwZW5kZWRQYWdlUHJveHkgZmluYWw6IHB1
YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHVibGljIENhbk1ha2VXZWFrUHRyPFN1c3BlbmRl
ZFBhZ2VQcm94eT4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAg
IFN1c3BlbmRlZFBhZ2VQcm94eShXZWJQYWdlUHJveHkmLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
LCB1aW50NjRfdCBtYWluRnJhbWVJRCwgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKTsKKyAgICBTdXNwZW5kZWRQYWdlUHJveHkoV2ViUGFn
ZVByb3h5JiwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IG1haW5GcmFtZUlELCBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ01vZGUpOwogICAgIH5TdXNwZW5kZWRQYWdlUHJveHkoKTsKIAogICAgIFdlYlBh
Z2VQcm94eSYgcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZTsgfQogICAgIFdlYlByb2Nlc3NQ
cm94eSYgcHJvY2VzcygpIHsgcmV0dXJuIG1fcHJvY2Vzcy5nZXQoKTsgfQotICAgIHVpbnQ2NF90
IG1haW5GcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJhbWVJRDsgfQorICAgIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbkZy
YW1lSUQ7IH0KIAogICAgIGJvb2wgcGFnZUlzQ2xvc2VkT3JDbG9zaW5nKCkgY29uc3Q7CiAKQEAg
LTc0LDcgKzc1LDcgQEAgcHJpdmF0ZToKIAogICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdlOwogICAg
IFJlZjxXZWJQcm9jZXNzUHJveHk+IG1fcHJvY2VzczsKLSAgICB1aW50NjRfdCBtX21haW5GcmFt
ZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX21haW5GcmFtZUlEOwogICAgIGJv
b2wgbV9pc0Nsb3NlZCB7IGZhbHNlIH07CiAgICAgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRl
cmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlIG1fc2hvdWxkRGVsYXlDbG9zaW5nVW50aWxF
bnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlIHsgU2hvdWxkRGVsYXlDbG9zaW5nVW50
aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlOjpObyB9OwogICAgIGJvb2wgbV9z
aG91bGRDbG9zZVdoZW5FbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlIHsgZmFsc2Ug
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25DaGVja1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25DaGVja1Byb3h5LmNwcAppbmRleCBhYjc5MjQwMjllMGVmM2EzYmJhYjc0Y2JhYzAwYzI5
N2ZhOTZhM2NhLi40ZmE2ZmRmNjA4ZDZjMzdlZmVjYjBhNWUwNmMyY2ZkZTUwZWI1ODRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
bkNoZWNrUHJveHkuY3BwCkBAIC0zMyw3ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eTo6
VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkodWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlv
bkhhbmRsZXImJiBoYW5kbGVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luKQorVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OlVzZXJNZWRp
YVBlcm1pc3Npb25DaGVja1Byb3h5KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDb21wbGV0aW9u
SGFuZGxlciYmIGhhbmRsZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVk
aWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVs
RG9jdW1lbnRPcmlnaW4pCiAgICAgOiBtX2ZyYW1lSUQoZnJhbWVJRCkKICAgICAsIG1fY29tcGxl
dGlvbkhhbmRsZXIoV1RGTW92ZShoYW5kbGVyKSkKICAgICAsIG1fdXNlck1lZGlhRG9jdW1lbnRT
ZWN1cml0eU9yaWdpbihXVEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94
eS5oCmluZGV4IGRjMzQwOTgxNzE0YzcyNzkzYzAxMDVkNzgzMzkxYjdmYTk0NTkxOGYuLmU4MGI1
MTkxODQxZmRiMjQ2NzU1MTA5NzI1MDk2NmU5MGI3ZTJhMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaApAQCAt
MjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVk
aWFDb25zdHJhaW50cy5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNDEsNyArNDIsNyBAQCBwdWJsaWM6CiAg
ICAgZW51bSBjbGFzcyBQZXJtaXNzaW9uSW5mbyB7IEVycm9yLCBVbmtub3duLCBHcmFudGVkIH07
CiAgICAgdXNpbmcgQ29tcGxldGlvbkhhbmRsZXIgPSBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZv
aWQoUGVybWlzc2lvbkluZm8pPjsKIAotICAgIHN0YXRpYyBSZWY8VXNlck1lZGlhUGVybWlzc2lv
bkNoZWNrUHJveHk+IGNyZWF0ZSh1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlciYm
IGhhbmRsZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRP
cmlnaW4pCisgICAgc3RhdGljIFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eT4gY3Jl
YXRlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlciYm
IGhhbmRsZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRP
cmlnaW4pCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBVc2VyTWVkaWFQZXJt
aXNzaW9uQ2hlY2tQcm94eShmcmFtZUlELCBXVEZNb3ZlKGhhbmRsZXIpLCBXVEZNb3ZlKHVzZXJN
ZWRpYURvY3VtZW50T3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSkpOwog
ICAgIH0KQEAgLTUwLDE3ICs1MSwxNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRVc2VyTWVkaWFB
Y2Nlc3NJbmZvKGJvb2wpOwogICAgIHZvaWQgaW52YWxpZGF0ZSgpIHsgY29tcGxldGUoUGVybWlz
c2lvbkluZm86OkVycm9yKTsgfQogCi0gICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0
dXJuIG1fZnJhbWVJRDsgfQorICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKCkg
Y29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9CiAgICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4m
IHVzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSB7IHJldHVybiBtX3VzZXJNZWRpYURv
Y3VtZW50U2VjdXJpdHlPcmlnaW4uZ2V0KCk7IH0KICAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
biYgdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkgeyByZXR1cm4gbV90b3BMZXZlbERv
Y3VtZW50U2VjdXJpdHlPcmlnaW4uZ2V0KCk7IH0KICAgICAKIHByaXZhdGU6Ci0gICAgVXNlck1l
ZGlhUGVybWlzc2lvbkNoZWNrUHJveHkodWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRs
ZXImJiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3Jp
Z2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdp
bik7CisgICAgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlciYmLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+
JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4m
JiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKTsKICAgICB+VXNlck1lZGlhUGVybWlzc2lvbkNoZWNr
UHJveHkoKTsKIAogICAgIHZvaWQgY29tcGxldGUoUGVybWlzc2lvbkluZm8pOwogICAgIAotICAg
IHVpbnQ2NF90IG1fZnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbV9mcmFt
ZUlEOwogICAgIENvbXBsZXRpb25IYW5kbGVyIG1fY29tcGxldGlvbkhhbmRsZXI7CiAgICAgUmVm
PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBtX3VzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmln
aW47CiAgICAgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBtX3RvcExldmVsRG9jdW1lbnRT
ZWN1cml0eU9yaWdpbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAppbmRleCBk
MzQwMzc2ZmYyOTA3Yjg3MjkzNTY0NjQyODlkNDM0OTZkNDAwOTkxLi5kYjRjZGExMTE2MWQyMjI4
Mjk4NGZlZTlhZWFkNDBhNGVlYzFhNDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwCkBAIC0yNDAsOSArMjQwLDkgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6ZmluaXNoR3JhbnRpbmdSZXF1ZXN0KFVzZXJNZWRpYVBlcm0KICAgICBw
cm9jZXNzTmV4dFVzZXJNZWRpYVJlcXVlc3RJZk5lZWRlZCgpOwogfQogCi12b2lkIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXNldEFjY2Vzcyh1aW50NjRfdCBmcmFt
ZUlEKQordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVzZXRB
Y2Nlc3MoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7Ci0gICAgQUxXQVlTX0xPRyhMT0dJREVO
VElGSUVSLCBmcmFtZUlEKTsKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIGZyYW1lSUQu
bG9nZ2luZ1N0cmluZygpKTsKICAgICBtX2dyYW50ZWRSZXF1ZXN0cy5yZW1vdmVBbGxNYXRjaGlu
ZyhbZnJhbWVJRF0oY29uc3QgYXV0byYgZ3JhbnRlZFJlcXVlc3QpIHsKICAgICAgICAgcmV0dXJu
IGdyYW50ZWRSZXF1ZXN0LT5tYWluRnJhbWVJRCgpID09IGZyYW1lSUQ7CiAgICAgfSk7CkBAIC0y
NTEsNyArMjUxLDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eTo6cmVzZXRBY2Nlc3ModWludDY0X3QgZnJhbWVJRCkKICAgICBtX2hhc0ZpbHRlcmVkRGV2aWNl
TGlzdCA9IGZhbHNlOwogfQogCi1jb25zdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
KiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6c2VhcmNoRm9yR3JhbnRl
ZFJlcXVlc3QodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9y
aWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8pIGNvbnN0Citjb25zdCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eTo6c2VhcmNoRm9yR3JhbnRlZFJlcXVlc3QoRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3Qg
U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGJvb2wgbmVlZHNBdWRpbywg
Ym9vbCBuZWVkc1ZpZGVvKSBjb25zdAogewogICAgIGlmIChtX3BhZ2UuaXNNZWRpYVN0cmVhbUNh
cHR1cmVNdXRlZCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTI4Miw3ICsyODIsNyBA
QCBjb25zdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KiBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cwogICAgIHJldHVybiBudWxscHRyOwogfQogCi1ib29s
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp3YXNSZXF1ZXN0RGVuaWVk
KHVpbnQ2NF90IG1haW5GcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9j
dW1lbnRPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
LCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbywgYm9vbCBuZWVkc1NjcmVlbkNhcHR1
cmUpCitib29sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp3YXNSZXF1
ZXN0RGVuaWVkKEZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmln
aW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8sIGJvb2wg
bmVlZHNTY3JlZW5DYXB0dXJlKQogewogICAgIGZvciAoY29uc3QgYXV0byYgZGVuaWVkUmVxdWVz
dCA6IG1fZGVuaWVkUmVxdWVzdHMpIHsKICAgICAgICAgaWYgKCFkZW5pZWRSZXF1ZXN0LnVzZXJN
ZWRpYURvY3VtZW50T3JpZ2luLT5pc1NhbWVTY2hlbWVIb3N0UG9ydCh1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbikpCkBAIC0zNDYsNyArMzQ2LDcgQEAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHk6OlJlcXVlc3RBY3Rpb24gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QKIH0K
ICNlbmRpZgogCi12b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpy
ZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1
aW50NjRfdCBmcmFtZUlELCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4sIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBNZWRp
YVN0cmVhbVJlcXVlc3QmJiB1c2VyUmVxdWVzdCkKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWlu
dDY0X3QgdXNlck1lZGlhSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8U2VjdXJpdHlP
cmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0
b3BMZXZlbERvY3VtZW50T3JpZ2luLCBNZWRpYVN0cmVhbVJlcXVlc3QmJiB1c2VyUmVxdWVzdCkK
IHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIGlmICghbV9wYWdlLmhhc1J1bm5pbmdQ
cm9jZXNzKCkpCkBAIC01MjEsNyArNTIxLDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6cHJvY2Vzc1VzZXJNZWRpYVBlcm1pc3Npb25WYWxpZFJlcXUKICAg
ICBtX3BhZ2UudWlDbGllbnQoKS5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdChtX3BhZ2UsICp3ZWJGcmFtZSwgV1RGTW92ZSh1c2VyTWVkaWFPcmlnaW4pLCBXVEZNb3Zl
KHRvcExldmVsT3JpZ2luKSwgKm1fY3VycmVudFVzZXJNZWRpYVJlcXVlc3QpOwogfQogCi12b2lk
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpnZXRVc2VyTWVkaWFQZXJt
aXNzaW9uSW5mbyh1aW50NjRfdCBmcmFtZUlELCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50
T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBlcm1pc3Npb25JbmZvKT4mJiBoYW5kbGVy
KQordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Z2V0VXNlck1l
ZGlhUGVybWlzc2lvbkluZm8oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxTZWN1cml0eU9y
aWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRv
cExldmVsRG9jdW1lbnRPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUGVybWlzc2lvbklu
Zm8pPiYmIGhhbmRsZXIpCiB7CiAgICAgYXV0byogd2ViRnJhbWUgPSBtX3BhZ2UucHJvY2Vzcygp
LndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlmICghd2ViRnJhbWUgfHwgIVNlY3VyaXR5T3JpZ2lu
OjpjcmVhdGVGcm9tU3RyaW5nKG1fcGFnZS5wYWdlTG9hZFN0YXRlKCkuYWN0aXZlVVJMKCkpLT5p
c1NhbWVTY2hlbWVIb3N0UG9ydCh0b3BMZXZlbERvY3VtZW50T3JpZ2luLmdldCgpKSkgewpAQCAt
NTQ1LDcgKzU0NSw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHk6OmdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKHVpbnQ2NF90CiAgICAgbV9wYWdlLnVpQ2xp
ZW50KCkuY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKG1fcGFnZSwgKndlYkZyYW1l
LCB1c2VyTWVkaWFPcmlnaW4uZ2V0KCksIHRvcExldmVsT3JpZ2luLmdldCgpLCByZXF1ZXN0Lmdl
dCgpKTsKIH0KIAotYm9vbCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
d2FzR3JhbnRlZFZpZGVvT3JBdWRpb0FjY2Vzcyh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1
cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2lu
JiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKQorYm9vbCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6d2FzR3JhbnRlZFZpZGVvT3JBdWRpb0FjY2VzcyhGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
LCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbikKIHsKICAgICBm
b3IgKGNvbnN0IGF1dG8mIGdyYW50ZWRSZXF1ZXN0IDogbV9ncmFudGVkUmVxdWVzdHMpIHsKICAg
ICAgICAgaWYgKGdyYW50ZWRSZXF1ZXN0LT5yZXF1aXJlc0Rpc3BsYXlDYXB0dXJlKCkpCkBAIC02
MDQsNyArNjA0LDcgQEAgVmVjdG9yPENhcHR1cmVEZXZpY2U+IFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5Ojpjb21wdXRlRmlsdGVyZWREZXYKIH0KICNlbmRpZgogCi12b2lk
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjplbnVtZXJhdGVNZWRpYURl
dmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVm
PFNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlP
cmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbikKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2
NF90IHVzZXJNZWRpYUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUmVmPFNlY3VyaXR5T3Jp
Z2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9w
TGV2ZWxEb2N1bWVudE9yaWdpbikKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIEFM
V0FZU19MT0coTE9HSURFTlRJRklFUiwgdXNlck1lZGlhSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmgKaW5kZXggZjUwNWUyODBjNDQyOTBhODAzZGJkYjY4Yzk4ZWVhNjMwYjFjOWJi
Ni4uYmJiYTQ0YWM4MmJkMjgwNzViZGRmYmI0NTQ0NGNhNTY5YWNjZmI5NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5oCkBAIC02MCwxNSArNjAsMTUgQEAgcHVibGljOgogCiAgICAg
dm9pZCBpbnZhbGlkYXRlUGVuZGluZ1JlcXVlc3RzKCk7CiAKLSAgICB2b2lkIHJlcXVlc3RVc2Vy
TWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiAgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJik7CisgICAgdm9pZCByZXF1ZXN0VXNl
ck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiAgdXNlck1lZGlh
RG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERv
Y3VtZW50T3JpZ2luLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJik7CiAKLSAgICB2b2lk
IHJlc2V0QWNjZXNzKHVpbnQ2NF90IG1haW5GcmFtZUlEKTsKKyAgICB2b2lkIHJlc2V0QWNjZXNz
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCk7CiAgICAgdm9pZCB2aWV3SXNC
ZWNvbWluZ1Zpc2libGUoKTsKIAogICAgIHZvaWQgZ3JhbnRSZXF1ZXN0KFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkmKTsKICAgICB2b2lkIGRlbnlSZXF1ZXN0KFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkmLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2Vy
TWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24sIGNvbnN0IFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnQg
PSB7IH0pOwogCi0gICAgdm9pZCBlbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50NjRf
dCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7CisgICAgdm9pZCBlbnVtZXJhdGVNZWRpYURl
dmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmln
aW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
KTsKIAogICAgIHZvaWQgc3RvcENhcHR1cmUoKTsKICAgICB2b2lkIHNjaGVkdWxlTmV4dFJlamVj
dGlvbigpOwpAQCAtOTUsMTkgKzk1LDE5IEBAIHByaXZhdGU6CiAgICAgV1RGTG9nQ2hhbm5lbCYg
bG9nQ2hhbm5lbCgpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKLSAgICBSZWY8VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRlUGVybWlzc2lvblJlcXVlc3QodWludDY0X3QgdXNl
ck1lZGlhSUQsIHVpbnQ2NF90IG1haW5GcmFtZUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0b3I8V2Vi
Q29yZTo6Q2FwdHVyZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYp
OworICAgIFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGVQZXJtaXNz
aW9uUmVxdWVzdCh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IG1haW5GcmFtZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+
JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJik7CiAjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKICAgICB2b2lkIGZpbmlzaEdyYW50aW5nUmVxdWVzdChVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Jik7CiAKLSAgICBjb25zdCBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5KiBzZWFyY2hGb3JHcmFudGVkUmVxdWVzdCh1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4s
IGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBi
b29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbykgY29uc3Q7Ci0gICAgYm9vbCB3YXNSZXF1
ZXN0RGVuaWVkKHVpbnQ2NF90IG1haW5GcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNW
aWRlbywgYm9vbCBuZWVkc1NjcmVlbkNhcHR1cmUpOworICAgIGNvbnN0IFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkqIHNlYXJjaEZvckdyYW50ZWRSZXF1ZXN0KFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8pIGNvbnN0OworICAgIGJv
b2wgd2FzUmVxdWVzdERlbmllZChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQs
IGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGJv
b2wgbmVlZHNBdWRpbywgYm9vbCBuZWVkc1ZpZGVvLCBib29sIG5lZWRzU2NyZWVuQ2FwdHVyZSk7
CiAKICAgICB1c2luZyBQZXJtaXNzaW9uSW5mbyA9IFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1By
b3h5OjpQZXJtaXNzaW9uSW5mbzsKLSAgICB2b2lkIGdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZv
KHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVk
aWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVs
RG9jdW1lbnRPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUGVybWlzc2lvbkluZm8pPiYm
KTsKKyAgICB2b2lkIGdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50
T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9y
aWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQZXJtaXNzaW9uSW5mbyk+JiYpOwogCiAgICAg
UmVxdWVzdEFjdGlvbiBnZXRSZXF1ZXN0QWN0aW9uKGNvbnN0IFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkmKTsKIAotICAgIGJvb2wgd2FzR3JhbnRlZFZpZGVvT3JBdWRpb0FjY2Vzcyh1
aW50NjRfdCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50
T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9y
aWdpbik7CisgICAgYm9vbCB3YXNHcmFudGVkVmlkZW9PckF1ZGlvQWNjZXNzKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbik7CiAKICAgICBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gY29tcHV0
ZUZpbHRlcmVkRGV2aWNlTGlzdChib29sIHJldmVhbElkc0FuZExhYmVscywgY29uc3QgU3RyaW5n
JiBkZXZpY2VJREhhc2hTYWx0KTsKIApAQCAtMTM0LDcgKzEzNCw3IEBAIHByaXZhdGU6CiAgICAg
VmVjdG9yPFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Pj4gbV9ncmFudGVkUmVx
dWVzdHM7CiAKICAgICBzdHJ1Y3QgRGVuaWVkUmVxdWVzdCB7Ci0gICAgICAgIHVpbnQ2NF90IG1h
aW5GcmFtZUlEOworICAgICAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQ7
CiAgICAgICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW47CiAgICAgICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbjsKICAgICAgICAgYm9vbCBpc0F1ZGlvRGVuaWVkOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmNwcAppbmRleCA0ZjAyODQwNmJhNGE3NzUxNjQ3MDY0NzY3MWYzYTk1MDg4YWZmNGFiLi45NjZm
ZGFkNWNmMGRkMDliOThmZjU1NjEwM2UyMDZhYTExNzVjOTYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmNwcApAQCAtMzAsNyArMzAsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAotVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eSYgbWFuYWdlciwgdWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IG1haW5GcmFtZUlE
LCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiBhdWRpb0Rl
dmljZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgV2Vi
Q29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYgcmVxdWVzdCkKK1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJNZWRpYUlE
LCBGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBS
ZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJl
ZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0
b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1
ZXN0JiYgcmVxdWVzdCkKICAgICA6IG1fbWFuYWdlcigmbWFuYWdlcikKICAgICAsIG1fdXNlck1l
ZGlhSUQodXNlck1lZGlhSUQpCiAgICAgLCBtX21haW5GcmFtZUlEKG1haW5GcmFtZUlEKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eS5oCmluZGV4IDU0NGY2MTE2ZWRiNjYyYThmYTk2MzFiYzNhZjhiNzBkZWRjNTgy
N2YuLmJhNGUwYTM0NzE2MDMxYjE4ZjA4NWNmZDAxYTczNTE3NzhhMDMwNTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5LmgKQEAgLTIxLDYgKzIxLDcgQEAKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJ
ZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVN0cmVhbVJlcXVlc3QuaD4KICNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBA
IC0zNSw3ICszNiw3IEBAIGNsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5OwogCiBjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5IDogcHVibGljIEFQ
STo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3Q+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHk+IGNyZWF0ZShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbWFu
YWdlciwgdWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IG1haW5GcmFtZUlELCB1aW50NjRf
dCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1l
bnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50
T3JpZ2luLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZl
Y3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVk
aWFTdHJlYW1SZXF1ZXN0JiYgcmVxdWVzdCkKKyAgICBzdGF0aWMgUmVmPFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eSYgbWFuYWdlciwgdWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBtYWluRnJhbWVJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJl
ZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVm
PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZlY3Rv
cjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVl
c3QmJiByZXF1ZXN0KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShtYW5hZ2VyLCB1c2VyTWVkaWFJRCwgbWFpbkZyYW1l
SUQsIGZyYW1lSUQsIFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKHRv
cExldmVsRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKGF1ZGlvRGV2aWNlcyksIFdURk1vdmUodmlk
ZW9EZXZpY2VzKSwgV1RGTW92ZShyZXF1ZXN0KSkpOwogICAgIH0KQEAgLTY1LDggKzY2LDggQEAg
cHVibGljOgogICAgIHZvaWQgc2V0SGFzUGVyc2lzdGVudEFjY2VzcygpIHsgbV9oYXNQZXJzaXN0
ZW50QWNjZXNzID0gdHJ1ZTsgfQogCiAgICAgdWludDY0X3QgdXNlck1lZGlhSUQoKSBjb25zdCB7
IHJldHVybiBtX3VzZXJNZWRpYUlEOyB9Ci0gICAgdWludDY0X3QgbWFpbkZyYW1lSUQoKSBjb25z
dCB7IHJldHVybiBtX21haW5GcmFtZUlEOyB9Ci0gICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0
IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQorICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWlu
RnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbkZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQogCiAg
ICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdp
bigpIHsgcmV0dXJuIG1fdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luLmdldCgpOyB9CiAg
ICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmln
aW4oKSB7IHJldHVybiBtX3VzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW4uZ2V0KCk7IH0K
QEAgLTg0LDEyICs4NSwxMiBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZSB2
aWRlb0RldmljZSgpIGNvbnN0IHsgcmV0dXJuIG1fZWxpZ2libGVWaWRlb0RldmljZXMuaXNFbXB0
eSgpID8gV2ViQ29yZTo6Q2FwdHVyZURldmljZSB7IH0gOiBtX2VsaWdpYmxlVmlkZW9EZXZpY2Vz
WzBdOyB9CiAKIHByaXZhdGU6Ci0gICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYsIHVpbnQ2NF90IHVzZXJNZWRp
YUlELCB1aW50NjRfdCBtYWluRnJhbWVJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVjdG9yPFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURl
dmljZT4mJiB2aWRlb0RldmljZXMsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKKyAg
ICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5JiwgdWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBtYWluRnJhbWVJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWY8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0b3I8V2ViQ29y
ZTo6Q2FwdHVyZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYpOwog
CiAgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkqIG1fbWFuYWdlcjsK
ICAgICB1aW50NjRfdCBtX3VzZXJNZWRpYUlEOwotICAgIHVpbnQ2NF90IG1fbWFpbkZyYW1lSUQ7
Ci0gICAgdWludDY0X3QgbV9mcmFtZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBt
X21haW5GcmFtZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX2ZyYW1lSUQ7CiAg
ICAgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBtX3VzZXJNZWRpYURvY3VtZW50U2VjdXJp
dHlPcmlnaW47CiAgICAgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBtX3RvcExldmVsRG9j
dW1lbnRTZWN1cml0eU9yaWdpbjsKICAgICBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4g
bV9lbGlnaWJsZVZpZGVvRGV2aWNlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkZyYW1lUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQ
cm94eS5jcHAKaW5kZXggMDcxNGI0MWViNjc3NjhkOWUwYzlkNDEyZTIwZTg5OGY4MWU3M2RkOC4u
ZWUzMzcxMDgxNzA3ZWEzNmQzNTBlZmUyY2M1YTAzYzFkMTkxZGE0YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAKQEAgLTQ1LDkgKzQ1LDggQEAgdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIAotV2ViRnJhbWVQcm94eTo6
V2ViRnJhbWVQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIHVpbnQ2NF90IGZyYW1lSUQpCitXZWJG
cmFtZVByb3h5OjpXZWJGcmFtZVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQpCiAgICAgOiBtX3BhZ2UobWFrZVdlYWtQdHIocGFnZSkpCi0gICAgLCBtX2lz
RnJhbWVTZXQoZmFsc2UpCiAgICAgLCBtX2ZyYW1lSUQoZnJhbWVJRCkKIHsKICAgICBXZWJQcm9j
ZXNzUG9vbDo6c3RhdGlzdGljcygpLndrRnJhbWVDb3VudCsrOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViRnJhbWVQcm94eS5oCmluZGV4IDQ0NjAwZjFjMjcyOTBlNWU0YzE2OGVhOGNkM2NjMzk2
MzZmZGJiZTEuLmNjZGE2Mzc4MDAyZDU1YWIxNTdhNmYxNTM3YzVlZjc5ZGI0NWMyNTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgKQEAgLTU5LDE0ICs1OSwxNCBAQCBz
dHJ1Y3QgV2Vic2l0ZVBvbGljaWVzRGF0YTsKIAogY2xhc3MgV2ViRnJhbWVQcm94eSA6IHB1Ymxp
YyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OkZyYW1lPiB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxXZWJGcmFtZVByb3h5PiBjcmVhdGUoV2ViUGFnZVByb3h5JiBwYWdlLCB1
aW50NjRfdCBmcmFtZUlEKQorICAgIHN0YXRpYyBSZWY8V2ViRnJhbWVQcm94eT4gY3JlYXRlKFdl
YlBhZ2VQcm94eSYgcGFnZSwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAgICAg
ewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJGcmFtZVByb3h5KHBhZ2UsIGZyYW1l
SUQpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5XZWJGcmFtZVByb3h5KCk7CiAKLSAgICB1aW50
NjRfdCBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9CisgICAgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KICAg
ICBXZWJQYWdlUHJveHkqIHBhZ2UoKSBjb25zdCB7IHJldHVybiBtX3BhZ2UuZ2V0KCk7IH0KIAog
ICAgIHZvaWQgd2ViUHJvY2Vzc1dpbGxTaHV0RG93bigpOwpAQCAtMTMwLDcgKzEzMCw3IEBAIHB1
YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIFdlYkZyYW1lUHJveHkoV2ViUGFnZVByb3h5
JiwgdWludDY0X3QgZnJhbWVJRCk7CisgICAgV2ViRnJhbWVQcm94eShXZWJQYWdlUHJveHkmLCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogCiAgICAgV2Vha1B0cjxXZWJQYWdlUHJveHk+IG1f
cGFnZTsKIApAQCAtMTM4LDExICsxMzgsMTEgQEAgcHJpdmF0ZToKIAogICAgIFN0cmluZyBtX01J
TUVUeXBlOwogICAgIFN0cmluZyBtX3RpdGxlOwotICAgIGJvb2wgbV9pc0ZyYW1lU2V0OworICAg
IGJvb2wgbV9pc0ZyYW1lU2V0IHsgZmFsc2UgfTsKICAgICBib29sIG1fY29udGFpbnNQbHVnaW5E
b2N1bWVudCB7IGZhbHNlIH07CiAgICAgUmVmUHRyPFdlYkNlcnRpZmljYXRlSW5mbz4gbV9jZXJ0
aWZpY2F0ZUluZm87CiAgICAgUmVmUHRyPFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eT4gbV9h
Y3RpdmVMaXN0ZW5lcjsKLSAgICB1aW50NjRfdCBtX2ZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIG1fZnJhbWVJRDsKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCiAg
ICAgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyIG1fY29udGVudEZpbHRlclVu
YmxvY2tIYW5kbGVyOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAppbmRleCAzMjYzMWM0NTBlYjI2ZDc1NDU0NjhiNzI2YzE1YTQ0OTg1Yzk5OGE5Li40Mzg4
MjJkNDVmM2Q2NjgxNzg3NzJhYjlhNWMyOWVkMGY5NTgxNGIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTc0Myw3ICs3NDMsNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6bGF1bmNoUHJvY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVnaXN0cmFibGVE
b21haW4pCiAgICAgZmluaXNoQXR0YWNoaW5nVG9XZWJQcm9jZXNzKElzUHJvY2Vzc1N3YXA6Ok5v
KTsKIH0KIAotYm9vbCBXZWJQYWdlUHJveHk6OnN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUo
QVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBPcHRpb25hbDx1aW50NjRfdD4gbWFpbkZyYW1l
SUQsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNs
aWVudCwgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmdNb2RlIHNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0
aW5nTW9kZSkKK2Jvb2wgV2ViUGFnZVByb3h5OjpzdXNwZW5kQ3VycmVudFBhZ2VJZlBvc3NpYmxl
KEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBt
YWluRnJhbWVJRCwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVl
c3RlZEJ5Q2xpZW50LCBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ01vZGUgc2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKQogewogICAgIG1fbGFzdFN1c3BlbmRlZFBhZ2UgPSBudWxscHRyOwog
CkBAIC0yOTMxLDEyICsyOTMxLDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWNlaXZlZFBvbGlj
eURlY2lzaW9uKFBvbGljeUFjdGlvbiBhY3Rpb24sIEFQSTo6TmF2aWdhdGlvbioKICAgICBzZW5k
ZXItPnNlbmQoYWN0aW9uLCBuYXZpZ2F0aW9uID8gbmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCkg
OiAwLCBkb3dubG9hZElELCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcykpOwogfQogCi12b2lkIFdl
YlBhZ2VQcm94eTo6Y29tbWl0UHJvdmlzaW9uYWxQYWdlKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1
c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29y
ZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVnaW5E
b2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJ
bnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVBy
b3h5Ojpjb21taXRQcm92aXNpb25hbFBhZ2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1
c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29y
ZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVnaW5E
b2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJ
bnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBBU1NFUlQo
bV9wcm92aXNpb25hbFBhZ2UpOwogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywg
ImNvbW1pdFByb3Zpc2lvbmFsUGFnZTogcHJldmlvdXNQSUQgPSAlaSwgbmV3UElEID0gJWksIHBh
Z2VJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3Byb3Zp
c2lvbmFsUGFnZS0+cHJvY2VzcygpLnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUlu
dDY0KCkpOwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IG1haW5GcmFtZUlESW5QcmV2aW91c1By
b2Nlc3MgPSBtX21haW5GcmFtZSA/IG1ha2VPcHRpb25hbChtX21haW5GcmFtZS0+ZnJhbWVJRCgp
KSA6IFdURjo6bnVsbG9wdDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IG1haW5GcmFt
ZUlESW5QcmV2aW91c1Byb2Nlc3MgPSBtX21haW5GcmFtZSA/IG1ha2VPcHRpb25hbChtX21haW5G
cmFtZS0+ZnJhbWVJRCgpKSA6IFdURjo6bnVsbG9wdDsKIAogICAgIEFTU0VSVChtX3Byb2Nlc3Mu
cHRyKCkgIT0gJm1fcHJvdmlzaW9uYWxQYWdlLT5wcm9jZXNzKCkpOwogCkBAIC0zNjcyLDcgKzM2
NzIsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lU2NyaXB0
V29ybGQoY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvbwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6UnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lU2NyaXB0V29ybGQoc2NyaXB0
LCBmb3JjZVVzZXJHZXN0dXJlLCB3b3JsZE5hbWUsIGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7CiB9
CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0SW5GcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBTdHJpbmcmIHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBXVEY6OkZ1
bmN0aW9uPHZvaWQoQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqLCBib29sIGhhZEV4Y2VwdGlv
biwgY29uc3QgRXhjZXB0aW9uRGV0YWlscyYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxi
YWNrRnVuY3Rpb24pCit2b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEluRnJhbWUoRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib29sIGZvcmNlVXNl
ckdlc3R1cmUsIFdURjo6RnVuY3Rpb248dm9pZChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSos
IGJvb2wgaGFkRXhjZXB0aW9uLCBjb25zdCBFeGNlcHRpb25EZXRhaWxzJiwgQ2FsbGJhY2tCYXNl
OjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbikKIHsKICAgICBBU1NFUlQobWFpbkZyYW1lKCkt
PmZyYW1lSUQoKSAhPSBmcmFtZUlEKTsKICAgICBhdXRvIGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNr
cy5wdXQoV1RGTW92ZShjYWxsYmFja0Z1bmN0aW9uKSwgbV9wcm9jZXNzLT50aHJvdHRsZXIoKS5i
YWNrZ3JvdW5kQWN0aXZpdHlUb2tlbigpKTsKQEAgLTM4NzgsNyArMzg3OCw3IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpwcmVmZXJlbmNlc0RpZENoYW5nZSgpCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpQcmVmZXJlbmNlc0RpZENoYW5nZShwcmVmZXJlbmNlc1N0b3JlKCkp
LCBtX3BhZ2VJRCwgcHJpbnRpbmdTZW5kT3B0aW9ucyhtX2lzUGVyZm9ybWluZ0RPTVByaW50T3Bl
cmF0aW9uKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUoRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgLy8gVGhlIERlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25TeW5jIElQQyBpcyBzeW5jaHJvbm91cyBhbmQgbWF5IHRoZXJlZm9yZSBnZXQg
cHJvY2Vzc2VkIGJlZm9yZSB0aGUgRGlkQ3JlYXRlTWFpbkZyYW1lIG9uZS4KICAgICAvLyBXaGVu
IHRoaXMgaGFwcGVucywgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoKSBjYWxs
cyBkaWRDcmVhdGVNYWluRnJhbWUoKSBhbmQgd2UgbmVlZCB0byBpZ25vcmUgdGhlIERpZENyZWF0
ZU1haW5GcmFtZQpAQCAtMzg5Nyw3ICszODk3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENy
ZWF0ZU1haW5GcmFtZSh1aW50NjRfdCBmcmFtZUlEKQogICAgIG1fcHJvY2Vzcy0+ZnJhbWVDcmVh
dGVkKGZyYW1lSUQsICptX21haW5GcmFtZSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRD
cmVhdGVTdWJmcmFtZSh1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENy
ZWF0ZVN1YmZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIFBhZ2VDbGllbnRQ
cm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTM5MTcsNyArMzkxNyw3IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVTdWJmcmFtZSh1aW50NjRfdCBmcmFtZUlEKQog
ICAgIG1fcHJvY2Vzcy0+ZnJhbWVDcmVhdGVkKGZyYW1lSUQsIHN1YkZyYW1lLmdldCgpKTsKIH0K
IAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0ZVdpbmRvdyh1aW50NjRfdCBmcmFtZUlELCBH
bG9iYWxXaW5kb3dJZGVudGlmaWVyJiYgd2luZG93SWRlbnRpZmllcikKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRDcmVhdGVXaW5kb3coRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEdsb2JhbFdpbmRv
d0lkZW50aWZpZXImJiB3aW5kb3dJZGVudGlmaWVyKQogewogfQogCkBAIC0zOTgxLDEyICszOTgx
LDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWREZXN0cm95TmF2aWdhdGlvbih1aW50NjRfdCBu
YXZpZ2F0aW9uSUQpCiAgICAgbV9uYXZpZ2F0aW9uU3RhdGUtPmRpZERlc3Ryb3lOYXZpZ2F0aW9u
KG5hdmlnYXRpb25JRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
VVJMJiYgdXJsLCBVUkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRh
KQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYgdXJsLCBV
UkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIGRp
ZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwg
ZnJhbWVJRCwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKHVybCksIFdURk1vdmUodW5yZWFjaGFibGVV
UkwpLCB1c2VyRGF0YSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgdWlu
dDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwsIFVSTCYmIHVu
cmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmIHByb2Nlc3MsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIFVSTCYmIHVybCwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJiB1
c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50
KCkpOwogCkBAIC00MDA1LDggKzQwMDUsOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU3RhcnRQ
cm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmCiAgICAg
aWYgKGZyYW1lLT5pc01haW5GcmFtZSgpICYmIG5hdmlnYXRpb25JRCkKICAgICAgICAgbmF2aWdh
dGlvbiA9IG5hdmlnYXRpb25TdGF0ZSgpLm5hdmlnYXRpb24obmF2aWdhdGlvbklEKTsKIAotICAg
IExPRyhMb2FkaW5nLCAiV2ViUGFnZVByb3h5ICUiIFBSSXU2NCAiIGluIHByb2Nlc3MgcGlkICVp
IGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUgdG8gZnJhbWVJRCAlIiBQUkl1NjQgIiwg
bmF2aWdhdGlvbklEICUiIFBSSXU2NCAiLCB1cmwgJXMiLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBw
cm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQsIHVybC5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRp
bmcsICJkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIHByb2Nlc3MtPnByb2Nlc3NJZGVu
dGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQpOworICAgIExPRyhMb2FkaW5n
LCAiV2ViUGFnZVByb3h5ICUiIFBSSXU2NCAiIGluIHByb2Nlc3MgcGlkICVpIGRpZFN0YXJ0UHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWUgdG8gZnJhbWVJRCAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklE
ICUiIFBSSXU2NCAiLCB1cmwgJXMiLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBwcm9jZXNzLT5wcm9j
ZXNzSWRlbnRpZmllcigpLCBmcmFtZUlELnRvVUludDY0KCksIG5hdmlnYXRpb25JRCwgdXJsLnN0
cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGlu
ZywgImRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50
aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAg
IGF1dG8gdHJhbnNhY3Rpb24gPSBtX3BhZ2VMb2FkU3RhdGUudHJhbnNhY3Rpb24oKTsKIApAQCAt
NDAzMSw3ICs0MDMxLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJgogICAgICAgICBtX25hdmln
YXRpb25DbGllbnQtPmRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uKCp0aGlzLCBuYXZpZ2F0
aW9uLmdldCgpLCBwcm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9i
amVjdCgpKS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRFeHBsaWNpdE9wZW5G
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBVUkwmJiB1cmwpCit2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkRXhwbGljaXRPcGVuRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFVSTCYmIHVy
bCkKIHsKICAgICBhdXRvKiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAg
ICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKQEAgLTQwNTAsMTUgKzQwNTAsMTUg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEV4cGxpY2l0T3BlbkZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIFVSTCYmIHVybCkKICAgICBtX3BhZ2VMb2FkU3RhdGUuY29tbWl0Q2hhbmdlcygpOwog
fQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQog
ewogICAgIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
U2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgV1RGTW92
ZShyZXF1ZXN0KSwgdXNlckRhdGEpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2
ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiBwcm9jZXNzLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0
YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNp
b25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFJlc291cmNlUmVx
dWVzdCYmIHJlcXVlc3QsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKLSAgICBMT0coTG9h
ZGluZywgIldlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUgdG8gZnJhbWVJRCAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEICUiIFBS
SXU2NCAiLCB1cmwgJXMiLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQsIHJlcXVlc3QudXJsKCkuc3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5n
LCAiZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6IHdl
YlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgcHJv
Y2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCk7
CisgICAgTE9HKExvYWRpbmcsICJXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lIHRvIGZyYW1lSUQgJSIgUFJJdTY0ICIsIG5hdmln
YXRpb25JRCAlIiBQUkl1NjQgIiwgdXJsICVzIiwgZnJhbWVJRC50b1VJbnQ2NCgpLCBuYXZpZ2F0
aW9uSUQsIHJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdl
SUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAgIFBhZ2VDbGllbnRQcm90
ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQwODUsOSArNDA4NSw5IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExv
YWRGb3JGcmFtZVNoYXJlZChSZWY8CiAgICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkUmVj
ZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxOYXZpZ2F0aW9uKCp0aGlzLCBuYXZpZ2F0
aW9uLmdldCgpLCBwcm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9i
amVjdCgpKS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsUGVyZm9ybUNsaWVu
dFJlZGlyZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1cmwsIGRv
dWJsZSBkZWxheSwgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCkKK3ZvaWQgV2ViUGFnZVBy
b3h5Ojp3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIGNvbnN0IFN0cmluZyYgdXJsLCBkb3VibGUgZGVsYXksIFdlYkNvcmU6OkxvY2tCYWNr
Rm9yd2FyZExpc3QpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAid2ls
bFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZp
ZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRChMb2FkaW5nLCAid2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lOiB3ZWJQ
SUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJv
Y2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50
b1VJbnQ2NCgpKTsKIAogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGll
bnQoKSk7CiAKQEAgLTQwOTgsOSArNDA5OCw5IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsUGVy
Zm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyCiAg
ICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdCgqdGhp
cywgdXJsLCBkZWxheSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRDYW5jZWxDbGllbnRS
ZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
Q2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsK
LSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRDYW5jZWxDbGllbnRSZWRp
cmVjdEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9V
SW50NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAi
ZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlm
aWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAKICAgICBQ
YWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00MTExLDEy
ICs0MTExLDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCiAgICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlk
Q2FuY2VsQ2xpZW50UmVkaXJlY3QoKnRoaXMpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
Q2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIFVSTCYmIHVybCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92
aXNpb25hbFVSTEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIFVSTCYmIHVybCkKIHsKICAgICBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZy
YW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgV1RG
TW92ZSh1cmwpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFs
VVJMRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCB1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCwgVVJMJiYgdXJsKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENo
YW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBw
cm9jZXNzLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QsIFVSTCYmIHVybCkKIHsK
ICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00
MTM1LDcgKzQxMzUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxV
UkxGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmCiAgICAgZnJhbWUtPmRpZFJl
Y2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZCh1cmwpOwogfQogCi12b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBSZXNv
dXJjZUVycm9yJiBlcnJvciwgV2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5n
LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1
cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJy
b3IsIFdpbGxDb250aW51ZUxvYWRpbmcgd2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRh
dGEmIHVzZXJEYXRhKQogewogICAgIGlmIChtX3Byb3Zpc2lvbmFsUGFnZSAmJiBtX3Byb3Zpc2lv
bmFsUGFnZS0+bmF2aWdhdGlvbklEKCkgPT0gbmF2aWdhdGlvbklEKSB7CiAgICAgICAgIC8vIFRo
ZSBsb2FkIGRpZCBub3QgZmFpbCwgaXQgaXMgbWVyZWx5IGhhcHBlbmluZyBpbiBhIG5ldyBwcm92
aXNpb25hbCBwcm9jZXNzLgpAQCAtNDE0NSwxMCArNDE0NSwxMCBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFNlY3VyaQogICAgIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nl
c3MuY29weVJlZigpLCBmcmFtZUlELCBmcmFtZVNlY3VyaXR5T3JpZ2luLCBuYXZpZ2F0aW9uSUQs
IHByb3Zpc2lvbmFsVVJMLCBlcnJvciwgd2lsbENvbnRpbnVlTG9hZGluZywgdXNlckRhdGEpOwog
fQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgdWludDY0X3QgZnJhbWVJRCwgY29u
c3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFJlc291cmNlRXJy
b3ImIGVycm9yLCBXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0
IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9u
YWxVUkwsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBXaWxsQ29udGludWVMb2FkaW5nIHdp
bGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBMT0co
TG9hZGluZywgIihMb2FkaW5nKSBXZWJQYWdlUHJveHkgJSIgUFJJdTY0ICIgaW4gd2ViIHByb2Nl
c3MgcGlkICVpIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSB0byBwcm92aXNpb25hbFVS
TCAlcyIsIG1fcGFnZUlELnRvVUludDY0KCksIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCks
IHByb3Zpc2lvbmFsVVJMLnV0ZjgoKS5kYXRhKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoUHJvY2VzcywgImRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZTogd2ViUElEID0gJWks
IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIGRvbWFpbiA9ICVz
LCBjb2RlID0gJWQiLCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJ
bnQ2NCgpLCBmcmFtZUlELCBlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJvci5lcnJv
ckNvZGUoKSk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzLCAiZGlkRmFpbFBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIs
IGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgZG9tYWluID0gJXMsIGNvZGUgPSAlZCIsIHByb2Nlc3Mt
PnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50
NjQoKSwgZXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSwgZXJyb3IuZXJyb3JDb2RlKCkpOwog
CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAt
NDIyNCwxMSArNDIyNCwxMSBAQCBzdGF0aWMgT3B0aW9uU2V0PENyb3NzU2l0ZU5hdmlnYXRpb25E
YXRhVHJhbnNmZXI6OkZsYWc+IGNoZWNrSWZOYXZpZ2F0aW9uQ29udGFpbgogfQogI2VuZGlmCiAK
LXZvaWQgV2ViUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZy
YW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBvcGFxdWVGcmFtZUxvYWRUeXBl
LCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBj
b250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxIYXNJbnNlY3VyZUNvbnRlbnQ+IGhhc0lu
c2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJv
eHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3Vz
dG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBvcGFxdWVGcmFtZUxvYWRUeXBlLCBjb25zdCBX
ZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1Bs
dWdpbkRvY3VtZW50LCBPcHRpb25hbDxIYXNJbnNlY3VyZUNvbnRlbnQ+IGhhc0luc2VjdXJlQ29u
dGVudCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIExPRyhMb2FkaW5nLCAiKExv
YWRpbmcpIFdlYlBhZ2VQcm94eSAlIiBQUkl1NjQgIiBkaWRDb21taXRMb2FkRm9yRnJhbWUgaW4g
bmF2aWdhdGlvbiAlIiBQUkl1NjQsIG1fcGFnZUlELnRvVUludDY0KCksIG5hdmlnYXRpb25JRCk7
CiAgICAgTE9HKEJhY2tGb3J3YXJkLCAiKEJhY2svRm9yd2FyZCkgQWZ0ZXIgbG9hZCBjb21taXQs
IGJhY2svZm9yd2FyZCBsaXN0IGlzIG5vdzolcyIsIG1fYmFja0ZvcndhcmRMaXN0LT5sb2dnaW5n
U3RyaW5nKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZENvbW1p
dExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRv
VUludDY0KCksIGZyYW1lSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywg
ImRpZENvbW1pdExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1f
cGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAKICAgICBQYWdlQ2xpZW50
UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00MzM4LDkgKzQzMzgsOSBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRAogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5
OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7Ci0g
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkRmluaXNoRG9jdW1lbnRMb2Fk
Rm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2
NCgpLCBmcmFtZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRG
aW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCks
IG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAKICAgICBQYWdlQ2xp
ZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00MzYxLDEwICs0MzYx
LDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpCiAgICAgICAgIG1fbmF2aWdhdGlvbkNsaWVu
dC0+ZGlkRmluaXNoRG9jdW1lbnRMb2FkKCp0aGlzLCBuYXZpZ2F0aW9uLmdldCgpLCBtX3Byb2Nl
c3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0KCkpLmdldCgpKTsK
IH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkK
K3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRh
KQogewogICAgIExPRyhMb2FkaW5nLCAiV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hMb2FkRm9yRnJh
bWUgLSBXZWJQYWdlUHJveHkgJXAgd2l0aCBuYXZpZ2F0aW9uSUQgJSIgUFJJdTY0ICIgZGlkRmlu
aXNoTG9hZCIsIHRoaXMsIG5hdmlnYXRpb25JRCk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RChMb2FkaW5nLCAiZGlkRmluaXNoTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50
aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkRmluaXNoTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwg
cGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJv
Y2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgp
KTsKIAogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAK
QEAgLTQ0MDcsOSArNDQwNyw5IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hMb2FkRm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklECiAgICAgbV9pc0xv
YWRpbmdBbHRlcm5hdGVIVE1MU3RyaW5nRm9yRmFpbGluZ1Byb3Zpc2lvbmFsTG9hZCA9IGZhbHNl
OwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbExvYWRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9y
LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbExv
YWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQog
ewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZEZhaWxMb2FkRm9yRnJh
bWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2
NCAiLCBkb21haW4gPSAlcywgY29kZSA9ICVkIiwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmll
cigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELCBlcnJvci5kb21haW4oKS51dGY4KCku
ZGF0YSgpLCBlcnJvci5lcnJvckNvZGUoKSk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChM
b2FkaW5nLCAiZGlkRmFpbExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIGRvbWFpbiA9ICVzLCBjb2RlID0gJWQiLCBt
X3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1l
SUQudG9VSW50NjQoKSwgZXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSwgZXJyb3IuZXJyb3JD
b2RlKCkpOwogCiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgp
KTsKIApAQCAtNDQ0OSw5ICs0NDQ5LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxMb2Fk
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELAogICAgIH0K
IH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQzMl90IG9wYXF1
ZVNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLCBVUkwmJiB1cmwsIGNvbnN0IFVzZXJEYXRhJiB1
c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9y
RnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWlu
dDMyX3Qgb3BhcXVlU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUsIFVSTCYmIHVybCwgY29uc3Qg
VXNlckRhdGEmIHVzZXJEYXRhKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGlu
ZywgImRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJ
ZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQpOworICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFt
ZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZy
YW1lSUQudG9VSW50NjQoKSk7CiAKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3Rvcihw
YWdlQ2xpZW50KCkpOwogCkBAIC00NDg4LDcgKzQ0ODgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2
NF90CiAgICAgICAgIHBhZ2VDbGllbnQoKS5kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFp
bkZyYW1lKG5hdmlnYXRpb25UeXBlKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5n
ZU1haW5Eb2N1bWVudCh1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENo
YW5nZU1haW5Eb2N1bWVudChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQogICAgIGlmIChtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cikKQEAgLTQ1MDcsNyArNDUwNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp2aWV3SXNCZWNvbWlu
Z1Zpc2libGUoKQogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlVGl0
bGVGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBV
c2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRpdGxlRm9y
RnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0
IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3Rv
cihwYWdlQ2xpZW50KCkpOwogCkBAIC00NTI5LDExICs0NTI5LDExIEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJp
bmcmIHRpdGxlCiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpcnN0TGF5b3V0
Rm9yRnJhbWUodWludDY0X3QsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRGaXJzdExheW91dEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciwgY29uc3QgVXNl
ckRhdGEmIHVzZXJEYXRhKQogewogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmlyc3RWaXN1
YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVXNlckRh
dGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0
eUxheW91dEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBVc2VyRGF0YSYg
dXNlckRhdGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVu
dCgpKTsKIApAQCAtNDU2NCw3ICs0NTY0LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlYWNo
TGF5b3V0TWlsZXN0b25lKE9wdGlvblNldDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+IGwKICAg
ICBtX25hdmlnYXRpb25DbGllbnQtPnJlbmRlcmluZ1Byb2dyZXNzRGlkQ2hhbmdlKCp0aGlzLCBs
YXlvdXRNaWxlc3RvbmVzKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZERpc3BsYXlJbnNl
Y3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVc2VyRGF0YSYgdXNl
ckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZy
YW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7
CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAt
NDU3OCw3ICs0NTc4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZERpc3BsYXlJbnNlY3VyZUNv
bnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVc2UKICAgICBtX25hdmlnYXRp
b25DbGllbnQtPmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQoKnRoaXMsIG1fcHJvY2Vzcy0+dHJh
bnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOwogfQogCi12
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRp
ZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25z
dCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0
b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDU5Miw3ICs0NTkyLDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFVzZXJEYXQKICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRpZFJ1bkluc2VjdXJlQ29udGVudCgq
dGhpcywgbV9wcm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9iamVj
dCgpKS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFt
ZSh1aW50NjRfdCwgY29uc3QgVXNlckRhdGEmKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZERldGVj
dFhTU0ZvckZyYW1lKEZyYW1lSWRlbnRpZmllciwgY29uc3QgVXNlckRhdGEmKQogewogfQogCkBA
IC00NjAxLDcgKzQ2MDEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bWFpbkZyYW1lUGx1Z2luSGFu
ZGxlc1BhZ2VTY2FsZUdlc3R1cmVEaWRDaGFuZ2UoYm9vbCBtYWluRnJhbQogICAgIG1fbWFpbkZy
YW1lUGx1Z2luSGFuZGxlc1BhZ2VTY2FsZUdlc3R1cmUgPSBtYWluRnJhbWVQbHVnaW5IYW5kbGVz
UGFnZVNjYWxlR2VzdHVyZTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmZyYW1lRGlkQmVjb21l
RnJhbWVTZXQodWludDY0X3QgZnJhbWVJRCwgYm9vbCB2YWx1ZSkKK3ZvaWQgV2ViUGFnZVByb3h5
OjpmcmFtZURpZEJlY29tZUZyYW1lU2V0KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIHZh
bHVlKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7
CiAKQEAgLTQ2MjAsNyArNDYyMCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpiZWdpblNhZmVCcm93
c2luZ0NoZWNrKGNvbnN0IFVSTCYsIGJvb2wsIFdlYkZyYW1lUG9saWN5TGlzdGVuCiB9CiAjZW5k
aWYKIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25B
c3luYyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFt
ZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0
X3QgbmF2aWdhdGlvbklELAordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25Bc3luYyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVy
IGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwKICAgICBOYXZpZ2F0aW9uQWN0aW9u
RGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0
YSwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwKICAgICBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYg
cmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNl
LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIHVpbnQ2NF90IGxpc3RlbmVySUQpCiB7CkBAIC00
NjI4LDcgKzQ2MjgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbkFzeW5jKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcgogICAgICAgICBXVEZNb3Zl
KGZyYW1lSW5mb0RhdGEpLCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZN
b3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRpcmVjdFJlc3Bv
bnNlKSwgdXNlckRhdGEsIGxpc3RlbmVySUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYgcHJvY2VzcywgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwKK3ZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBw
cm9jZXNzLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwKICAgICBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9u
RGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0
YSwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELAog
ICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYg
cmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNl
LAogICAgIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKQEAg
LTQ4NTgsNyArNDg1OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2dGcmFtZU5hdmlnYXRpb24o
Y29uc3QgV2ViRnJhbWVQcm94eSYgZnJhbWUsIGNvbnN0IFVSTCYgcGFnCiB9CiAjZW5kaWYKIAot
dm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKHVp
bnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlm
aWVyLAordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25T
eW5jKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50
aWZpZXIgaWRlbnRpZmllciwKICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25B
Y3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUlu
Zm9EYXRhLCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsCiAgICAg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1
ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsCiAg
ICAgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCkBA
IC00ODc2LDcgKzQ4NzYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvblN5bmModWludDY0X3QgZnJhbWVJRCwgYm9vbCBpcwogICAgICAgICBXVEZN
b3ZlKGZyYW1lSW5mb0RhdGEpLCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBX
VEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRpcmVjdFJl
c3BvbnNlKSwgdXNlckRhdGEsIFdURk1vdmUocmVwbHkpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJv
eHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYgcHJvY2VzcywgdWludDY0X3QgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5
Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBw
cm9jZXNzLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0
aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJh
bWVJbmZvRGF0YSwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELAog
ICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYg
cmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNl
LAogICAgIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmIHJlcGx5
KQpAQCAtNDg5Myw3ICs0ODkzLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHkKICAgICBzZW5k
ZXItPnNlbmQoUG9saWN5QWN0aW9uOjpVc2UsIG5hdmlnYXRpb25JRCwgRG93bmxvYWRJRCgpLCBX
VEY6Om51bGxvcHQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3
V2luZG93QWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYg
ZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCit2
b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlP
cmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAogICAgIE5hdmlnYXRpb25B
Y3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVl
c3QsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBV
c2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3Io
cGFnZUNsaWVudCgpKTsKQEAgLTQ5MzEsMTMgKzQ5MzEsMTMgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBT
ZWN1cmkKICAgICAgICAgCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1l
U2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAordm9pZCBX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGlj
eUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRy
aWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsK
ICAgICBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBm
cmFtZUlELCBmcmFtZVNlY3VyaXR5T3JpZ2luLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJl
c3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRlLCBsaXN0
ZW5lcklELCB1c2VyRGF0YSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lG
b3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwg
UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNz
LCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFt
ZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKICAgICB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25z
dCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBV
c2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3Io
cGFnZUNsaWVudCgpKTsKQEAgLTQ5NzEsNyArNDk3MSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpk
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nl
c3MsCiAgICAgfQogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6dW5hYmxlVG9JbXBsZW1lbnRQb2xp
Y3kodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0IFVz
ZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojp1bmFibGVUb0ltcGxlbWVudFBv
bGljeShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3Is
IGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHBy
b3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00OTg1LDcgKzQ5ODUsNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6dW5hYmxlVG9JbXBsZW1lbnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
UmVzb3VyY2VFcnJvcgogCiAvLyBGb3JtQ2xpZW50CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojp3aWxs
U3VibWl0Rm9ybSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBzb3VyY2VGcmFtZUlELCBjb25z
dCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4mIHRleHRGaWVsZFZhbHVlcywgdWlu
dDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdl
UHJveHk6OndpbGxTdWJtaXRGb3JtKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUlkZW50
aWZpZXIgc291cmNlRnJhbWVJRCwgY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmlu
Zz4+JiB0ZXh0RmllbGRWYWx1ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRh
JiB1c2VyRGF0YSkKIHsKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2Vi
RnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKQEAg
LTUwMDMsMTIgKzUwMDMsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRlbnRSdWxlTGlzdE5v
dGlmaWNhdGlvbihVUkwmJiB1cmwsIENvbnRlbnRSdWxlTGlzdFJlc3VsdHMKICAgICBtX25hdmln
YXRpb25DbGllbnQtPmNvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlvbigqdGhpcywgV1RGTW92ZSh1
cmwpLCBXVEZNb3ZlKHJlc3VsdHMpKTsKIH0KICAgICAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRO
YXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiBz
dG9yZSwgdWludDY0X3QgZnJhbWVJRCkgCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVX
aXRoTmF2aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYgc3RvcmUsIEZy
YW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25E
YXRhU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIHN0b3JlLCBmcmFtZUlEKTsKIH0KIAotdm9p
ZCBXZWJQYWdlUHJveHk6OmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYg
c3RvcmUsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVX
aXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBj
b25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiBzdG9yZSwgRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQpCiB7CiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkTmF2aWdhdGVX
aXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQ6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQs
IHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCkpOwogCkBA
IC01MDIzLDE0ICs1MDIzLDE0IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWROYXZpZ2F0ZVdpdGhO
YXZpZ2F0aW9uRGF0YVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByCiAgICAgcHJvY2Vz
cy0+cHJvY2Vzc1Bvb2woKS5oaXN0b3J5Q2xpZW50KCkuZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlv
bkRhdGEocHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKSwgKnRoaXMsIHN0b3JlLCAqZnJhbWUpOwogfQog
Ci12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1
aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRp
cmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5h
dGlvblVSTFN0cmluZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgZGlkUGVyZm9y
bUNsaWVudFJlZGlyZWN0U2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIHNvdXJjZVVSTFN0cmlu
ZywgZGVzdGluYXRpb25VUkxTdHJpbmcsIGZyYW1lSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYg
cHJvY2VzcywgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVz
dGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJv
Y2VzcywgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGlu
YXRpb25VUkxTdHJpbmcsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewotICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZDog
d2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBw
cm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlE
KTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRQZXJmb3JtQ2xpZW50
UmVkaXJlY3RTaGFyZWQ6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9V
SW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3Ig
cHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTUwNTAsMTIgKzUwNTAsMTIgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmIHByb2Nlc3MKICAgICBwcm9jZXNzLT5wcm9jZXNzUG9vbCgpLmhpc3RvcnlDbGll
bnQoKS5kaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QocHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKSwgKnRo
aXMsIHNvdXJjZVVSTFN0cmluZywgZGVzdGluYXRpb25VUkxTdHJpbmcsICpmcmFtZSk7CiB9CiAK
LXZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVp
bnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGly
ZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0
aW9uVVJMU3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBkaWRQZXJmb3Jt
U2VydmVyUmVkaXJlY3RTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgc291cmNlVVJMU3RyaW5n
LCBkZXN0aW5hdGlvblVSTFN0cmluZywgZnJhbWVJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5
OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBw
cm9jZXNzLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0
aW5hdGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9j
ZXNzLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5h
dGlvblVSTFN0cmluZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0OiB3ZWJQSUQg
PSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0LCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBt
X3BhZ2VJRC50b1VJbnQ2NCgpKTsKIApAQCAtNTA3Niw3ICs1MDc2LDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmIHByb2Nlc3MKICAgICBwcm9jZXNzLT5wcm9jZXNzUG9vbCgpLmhpc3RvcnlDbGllbnQoKS5k
aWRQZXJmb3JtU2VydmVyUmVkaXJlY3QocHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKSwgKnRoaXMsIHNv
dXJjZVVSTFN0cmluZywgZGVzdGluYXRpb25VUkxTdHJpbmcsICpmcmFtZSk7CiB9CiAKLXZvaWQg
V2ViUGFnZVByb3h5OjpkaWRVcGRhdGVIaXN0b3J5VGl0bGUoY29uc3QgU3RyaW5nJiB0aXRsZSwg
Y29uc3QgU3RyaW5nJiB1cmwsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkVXBkYXRlSGlzdG9yeVRpdGxlKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYg
dXJsLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9y
IHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC01MTc4LDcgKzUxNzgsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6Y2xvc2VQYWdlKGJvb2wgc3RvcFJlc3BvbnNpdmVuZXNzVGltZXIpCiAgICAg
bV91aUNsaWVudC0+Y2xvc2UodGhpcyk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZh
U2NyaXB0QWxlcnQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBz
ZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQ6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQordm9pZCBXZWJQ
YWdlUHJveHk6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29u
c3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQ6OkRlbGF5ZWRS
ZXBseSYmIHJlcGx5KQogewogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53
ZWJGcmFtZShmcmFtZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwpA
QCAtNTE5Nyw3ICs1MTk3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRBbGVy
dCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEKICAgICBtX3VpQ2xp
ZW50LT5ydW5KYXZhU2NyaXB0QWxlcnQodGhpcywgbWVzc2FnZSwgZnJhbWUsIHNlY3VyaXR5T3Jp
Z2luLCBXVEZNb3ZlKHJlcGx5KSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2Ny
aXB0Q29uZmlybSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNl
Y3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlJ1bkphdmFTY3JpcHRDb25maXJtOjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
Y29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybTo6RGVs
YXllZFJlcGx5JiYgcmVwbHkpCiB7CiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nl
c3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBmcmFt
ZSk7CkBAIC01MjE3LDcgKzUyMTcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlw
dENvbmZpcm0odWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYQogICAgIG1f
dWlDbGllbnQtPnJ1bkphdmFTY3JpcHRDb25maXJtKHRoaXMsIG1lc3NhZ2UsIGZyYW1lLCBzZWN1
cml0eU9yaWdpbiwgV1RGTW92ZShyZXBseSkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cnVu
SmF2YVNjcmlwdFByb21wdCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRh
dGEmIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
ZGVmYXVsdFZhbHVlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0
OjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0
UHJvbXB0KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEm
IHNlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVm
YXVsdFZhbHVlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0OjpE
ZWxheWVkUmVwbHkmJiByZXBseSkKIHsKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJv
Y2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZy
YW1lKTsKQEAgLTUzNzYsNyArNTM3Niw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpyb290Vmlld1Rv
QWNjZXNzaWJpbGl0eVNjcmVlbihjb25zdCBJbnRSZWN0JiB2aWV3UmVjdCwgQ29tcGxlCiAgICAg
Y29tcGxldGlvbkhhbmRsZXIocGFnZUNsaWVudCgpLnJvb3RWaWV3VG9BY2Nlc3NpYmlsaXR5U2Ny
ZWVuKHZpZXdSZWN0KSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpydW5CZWZvcmVVbmxvYWRD
b25maXJtUGFuZWwodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBz
ZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQor
dm9pZCBXZWJQYWdlUHJveHk6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbiwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5CZWZvcmVV
bmxvYWRDb25maXJtUGFuZWw6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQogewogICAgIFdlYkZyYW1l
UHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBNRVNTQUdF
X0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwpAQCAtNTQxNiw3ICs1NDE2LDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnBhZ2VEaWRTY3JvbGwoKQogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5
OjpydW5PcGVuUGFuZWwodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRh
JiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBjb25zdCBGaWxlQ2hvb3NlclNldHRpbmdzJiBzZXR0aW5n
cykKK3ZvaWQgV2ViUGFnZVByb3h5OjpydW5PcGVuUGFuZWwoRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgY29uc3Qg
RmlsZUNob29zZXJTZXR0aW5ncyYgc2V0dGluZ3MpCiB7CiAgICAgaWYgKG1fb3BlblBhbmVsUmVz
dWx0TGlzdGVuZXIpIHsKICAgICAgICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci0+aW52YWxp
ZGF0ZSgpOwpAQCAtNTQ1NSw3ICs1NDU1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNob3dTaGFy
ZVNoZWV0KGNvbnN0IFNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmIHNoYXJlRGF0YSwgU2hhcmUKICAg
ICBwYWdlQ2xpZW50KCkuc2hvd1NoYXJlU2hlZXQoc2hhcmVEYXRhLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiB9CiAgICAgCi12b2lkIFdlYlBhZ2VQcm94eTo6cHJpbnRGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6cHJpbnRGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IEFTU0VSVCghbV9pc1BlcmZvcm1pbmdET01QcmludE9wZXJhdGlvbik7CiAgICAgbV9pc1BlcmZv
cm1pbmdET01QcmludE9wZXJhdGlvbiA9IHRydWU7CkBAIC02NzY5LDI3ICs2NzY5LDI3IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpwcmludEZpbmlzaGVkQ2FsbGJhY2soY29uc3QgUmVzb3VyY2VFcnJv
ciYgcHJpbnRFcnJvciwgQ2FsbGJhCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdlUHJveHk6OmZv
Y3VzZWRGcmFtZUNoYW5nZWQodWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpm
b2N1c2VkRnJhbWVDaGFuZ2VkKGNvbnN0IE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4mIGZyYW1l
SUQpCiB7CiAgICAgaWYgKCFmcmFtZUlEKSB7CiAgICAgICAgIG1fZm9jdXNlZEZyYW1lID0gbnVs
bHB0cjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFdlYkZyYW1lUHJveHkqIGZyYW1l
ID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKKyAgICBXZWJGcmFtZVByb3h5KiBmcmFt
ZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoKmZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9w
cm9jZXNzLCBmcmFtZSk7CiAKICAgICBtX2ZvY3VzZWRGcmFtZSA9IGZyYW1lOwogfQogCi12b2lk
IFdlYlBhZ2VQcm94eTo6ZnJhbWVTZXRMYXJnZXN0RnJhbWVDaGFuZ2VkKHVpbnQ2NF90IGZyYW1l
SUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZnJhbWVTZXRMYXJnZXN0RnJhbWVDaGFuZ2VkKGNvbnN0
IE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4mIGZyYW1lSUQpCiB7CiAgICAgaWYgKCFmcmFtZUlE
KSB7CiAgICAgICAgIG1fZnJhbWVTZXRMYXJnZXN0RnJhbWUgPSBudWxscHRyOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndl
YkZyYW1lKGZyYW1lSUQpOworICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53
ZWJGcmFtZSgqZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsK
IAogICAgIG1fZnJhbWVTZXRMYXJnZXN0RnJhbWUgPSBmcmFtZTsKQEAgLTczNDUsMjYgKzczNDUs
MjYgQEAgV2Vha1B0cjxTZWNLZXlQcm94eVN0b3JlPiBXZWJQYWdlUHJveHk6OnNlY0tleVByb3h5
U3RvcmUoY29uc3QgV2ViQ29yZTo6QXV0aGVudGkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KICAg
ICAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQ
cm94eSh1aW50NjRfdCwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYgYXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlUHJveHkoRnJhbWVJZGVudGlmaWVyLCBSZWY8QXV0aGVudGljYXRpb25D
aGFsbGVuZ2VQcm94eT4mJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkKIHsKICAgICBtX25hdmln
YXRpb25DbGllbnQtPmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgqdGhpcywgYXV0
aGVudGljYXRpb25DaGFsbGVuZ2UuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZXhj
ZWVkZWREYXRhYmFzZVF1b3RhKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2lu
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlz
cGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVz
YWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2Fn
ZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhjZWVkZWREYXRhYmFzZVF1b3RhOjpEZWxheWVk
UmVwbHkmJiByZXBseSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpleGNlZWRlZERhdGFiYXNlUXVvdGEo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVp
bnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRf
dCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6RXhjZWVkZWREYXRhYmFzZVF1b3RhOjpEZWxheWVkUmVwbHkmJiByZXBs
eSkKIHsKICAgICByZXF1ZXN0U3RvcmFnZVNwYWNlKGZyYW1lSUQsIG9yaWdpbklkZW50aWZpZXIs
IGRhdGFiYXNlTmFtZSwgZGlzcGxheU5hbWUsIGN1cnJlbnRRdW90YSwgY3VycmVudE9yaWdpblVz
YWdlLCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgZXhwZWN0ZWRVc2FnZSwgW3JlcGx5ID0gV1RGTW92
ZShyZXBseSldKGF1dG8gcXVvdGEpIG11dGFibGUgewogICAgICAgICByZXBseShxdW90YSk7CiAg
ICAgfSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0U3RvcmFnZVNwYWNlKHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJl
bnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0
YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCh1aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVx
dWVzdFN0b3JhZ2VTcGFjZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBv
cmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5n
JiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3Jp
Z2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3Rl
ZFVzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFN0b3JhZ2UsICJyZXF1ZXN0U3Rv
cmFnZVNwYWNlIGZvciBmcmFtZSAlIiBQUkl1NjQgIiwgY3VycmVudCBxdW90YSAlIiBQUkl1NjQg
IiBjdXJyZW50IHVzYWdlICUiIFBSSXU2NCAiIGV4cGVjdGVkIHVzYWdlICUiIFBSSXU2NCwgZnJh
bWVJRCwgY3VycmVudFF1b3RhLCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgZXhwZWN0ZWRVc2FnZSk7
CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChTdG9yYWdlLCAicmVxdWVzdFN0b3JhZ2VTcGFj
ZSBmb3IgZnJhbWUgJSIgUFJJdTY0ICIsIGN1cnJlbnQgcXVvdGEgJSIgUFJJdTY0ICIgY3VycmVu
dCB1c2FnZSAlIiBQUkl1NjQgIiBleHBlY3RlZCB1c2FnZSAlIiBQUkl1NjQsIGZyYW1lSUQudG9V
SW50NjQoKSwgY3VycmVudFF1b3RhLCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgZXhwZWN0ZWRVc2Fn
ZSk7CiAKICAgICBTdG9yYWdlUmVxdWVzdHM6OnNpbmdsZXRvbigpLnByb2Nlc3NPckFwcGVuZChb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBwYWdlVVJMID0gY3VycmVudFVS
TCgpLCBmcmFtZUlELCBvcmlnaW5JZGVudGlmaWVyLCBkYXRhYmFzZU5hbWUsIGRpc3BsYXlOYW1l
LCBjdXJyZW50UXVvdGEsIGN1cnJlbnRPcmlnaW5Vc2FnZSwgY3VycmVudERhdGFiYXNlVXNhZ2Us
IGV4cGVjdGVkVXNhZ2UsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAgIHRoaXMtPm1ha2VTdG9yYWdlU3BhY2VSZXF1ZXN0
KGZyYW1lSUQsIG9yaWdpbklkZW50aWZpZXIsIGRhdGFiYXNlTmFtZSwgZGlzcGxheU5hbWUsIGN1
cnJlbnRRdW90YSwgY3VycmVudE9yaWdpblVzYWdlLCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgZXhw
ZWN0ZWRVc2FnZSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMp
LCBmcmFtZUlELCBwYWdlVVJMID0gV1RGTW92ZShwYWdlVVJMKSwgY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgY3VycmVudFF1b3RhXShhdXRvIHF1b3RhKSBt
dXRhYmxlIHsKIAotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChTdG9yYWdlLCAi
cmVxdWVzdFN0b3JhZ2VTcGFjZSByZXNwb25zZSBmb3IgZnJhbWUgJSIgUFJJdTY0ICIsIHF1b3Rh
ICUiIFBSSXU2NCwgZnJhbWVJRCwgcXVvdGEpOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRChTdG9yYWdlLCAicmVxdWVzdFN0b3JhZ2VTcGFjZSByZXNwb25zZSBmb3IgZnJhbWUg
JSIgUFJJdTY0ICIsIHF1b3RhICUiIFBSSXU2NCwgZnJhbWVJRC50b1VJbnQ2NCgpLCBxdW90YSk7
CiAKICAgICAgICAgICAgIGlmIChxdW90YSA8PSBjdXJyZW50UXVvdGEgJiYgdGhpcy0+Y3VycmVu
dFVSTCgpID09IHBhZ2VVUkwpIHsKICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKFN0b3JhZ2UsICJzdG9yYWdlIHNwYWNlIGluY3JlYXNlIGRlbmllZCIpOwpAQCAtNzM3Niw3
ICs3Mzc2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RTdG9yYWdlU3BhY2UodWludDY0
X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGUKICAgICB9KTsKIH0KIAotdm9pZCBX
ZWJQYWdlUHJveHk6Om1ha2VTdG9yYWdlU3BhY2VSZXF1ZXN0KHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUs
IGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0
X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWlu
dDY0X3QgZXhwZWN0ZWRVc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6bWFrZVN0b3JhZ2VTcGFjZVJl
cXVlc3QoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5h
bWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1
aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgaWYgKG1faXNRdW90YUluY3JlYXNlRGVuaWVkKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKGN1cnJlbnRRdW90YSk7CkBAIC03NDAyLDcgKzc0MDIsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShjb25zdCBTdHJpbmcmIG9yaWdp
bklkZW50aQogICAgIG1fdWlDbGllbnQtPnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVv
dGEodGhpcywgc2VjdXJpdHlPcmlnaW4uZ2V0KCksIGN1cnJlbnRRdW90YSwgdG90YWxCeXRlc05l
ZWRlZCwgV1RGTW92ZShyZXBseSkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEdl
b2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIHVpbnQ2
NF90IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQordm9pZCBXZWJQYWdlUHJveHk6
OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlv
bklELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCiB7
CiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQp
OwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBmcmFtZSk7CkBAIC03NDQ2LDcgKzc0NDYs
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZE92ZXJy
aWRlKE9wdGlvbmFsPGJvb2w+IGVuYWJsZWQpCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdlUHJv
eHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlh
SUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYg
IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luRGF0YSwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YSwgV2ViQ29yZTo6TWVkaWFTdHJlYW1S
ZXF1ZXN0JiYgcmVxdWVzdCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVy
bWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiAgdXNlck1lZGlhRG9jdW1l
bnRPcmlnaW5EYXRhLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVs
RG9jdW1lbnRPcmlnaW5EYXRhLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJiByZXF1ZXN0
KQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nl
c3MsIG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCkpOwpAQCAtNzQ2MSw3ICs3NDYxLDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWlu
dDY0X3QgdXNlck1lZGlhSUQsIHVpbnQKICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6
ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdXNlck1lZGlh
RG9jdW1lbnRPcmlnaW5EYXRhLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRv
cExldmVsRG9jdW1lbnRPcmlnaW5EYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmVudW1lcmF0ZU1l
ZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2VyTWVkaWFEb2N1
bWVudE9yaWdpbkRhdGEsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbkRhdGEpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBX
ZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC03
NDkzLDcgKzc0OTMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xlYXJVc2VyTWVkaWFTdGF0ZSgp
CiB9CiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQotdm9pZCBXZWJQYWdlUHJveHk6
OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ModWludDY0X3QgZnJh
bWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgb3JpZ2luRGF0YSwgYm9vbCBtYXlQ
cm9tcHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBl
cm1pc3Npb25TdGF0ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6
c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgb3JpZ2luRGF0YSwgYm9v
bCBtYXlQcm9tcHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRGV2aWNlT3JpZW50YXRpb25Pck1v
dGlvblBlcm1pc3Npb25TdGF0ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViRnJh
bWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NB
R0VfQ0hFQ0sobV9wcm9jZXNzLCBmcmFtZSk7CkBAIC04NzM2LDcgKzg3MzYsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6bG9hZFN5bmNocm9ub3VzVVJMU2NoZW1lVGFzayhVUkxTY2hlbWVUYXNrUGFy
YW1ldGVycyYmIHBhcmFtZQogfQogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKLXZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVz
dFN0b3JhZ2VBY2Nlc3NDb25maXJtKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURv
bWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICAgICBtX3VpQ2xpZW50LT5yZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0o
KnRoaXMsIG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCksIHN1YkZyYW1lRG9tYWluLCB0b3BG
cmFtZURvbWFpbiwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBiNDM4M2NhZjg4ZjM3MjcyY2Y5NDc3YjY0MDM5
Y2U5ZWY1Yzk0OWExLi4yMDc2OTU5MWFjMWUzMjJmNTFjZGNmNTIwZTVhY2VlYjJlM2Y5Y2E5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTAxOCw3ICsxMDE4LDcg
QEAgcHVibGljOgogICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKGNvbnN0IFN0cmlu
ZyYsIGJvb2wsIFdURjo6RnVuY3Rpb248dm9pZCAoQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUq
LCBib29sIGhhZEV4Y2VwdGlvbiwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyYsIENh
bGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pOwogICAgIHZvaWQgcnVuSmF2
YVNjcmlwdEluTWFpbkZyYW1lU2NyaXB0V29ybGQoY29uc3QgU3RyaW5nJiwgYm9vbCwgY29uc3Qg
T3B0aW9uYWw8U3RyaW5nPiYgd29ybGROYW1lLCBXVEY6OkZ1bmN0aW9uPHZvaWQoQVBJOjpTZXJp
YWxpemVkU2NyaXB0VmFsdWUqLCBib29sIGhhZEV4Y2VwdGlvbiwgY29uc3QgV2ViQ29yZTo6RXhj
ZXB0aW9uRGV0YWlscyYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24p
OwogICAgIC8vIEZvciBzdWIgZnJhbWVzLgotICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2Vz
dHVyZSwgV1RGOjpGdW5jdGlvbjx2b2lkKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiwgYm9v
bCBoYWRFeGNlcHRpb24sIGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHMmLCBDYWxsYmFj
a0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKTsKKyAgICB2b2lkIHJ1bkphdmFTY3Jp
cHRJbkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzY3JpcHQs
IGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgV1RGOjpGdW5jdGlvbjx2b2lkKEFQSTo6U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlKiwgYm9vbCBoYWRFeGNlcHRpb24sIGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlv
bkRldGFpbHMmLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKTsKICAg
ICB2b2lkIGZvcmNlUmVwYWludChSZWZQdHI8Vm9pZENhbGxiYWNrPiYmKTsKIAogICAgIGZsb2F0
IGhlYWRlckhlaWdodChXZWJGcmFtZVByb3h5Jik7CkBAIC0xMTYxLDcgKzExNjEsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBkcmF3UmVjdFRvSW1hZ2UoV2ViRnJhbWVQcm94eSosIGNvbnN0IFByaW50
SW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwg
UmVmPEltYWdlQ2FsbGJhY2s+JiYpOwogICAgIHZvaWQgZHJhd1BhZ2VzVG9QREYoV2ViRnJhbWVQ
cm94eSosIGNvbnN0IFByaW50SW5mbyYsIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwg
UmVmPERhdGFDYWxsYmFjaz4mJik7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB1aW50
MzJfdCBjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERih1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBQcmludEluZm8mLCBEcmF3VG9QREZDYWxsYmFjazo6Q2FsbGJhY2tGdW5jdGlvbiYm
KTsKKyAgICB1aW50MzJfdCBjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERihXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYsIERyYXdUb1BERkNhbGxiYWNr
OjpDYWxsYmFja0Z1bmN0aW9uJiYpOwogICAgIHZvaWQgZHJhd1RvUERGQ2FsbGJhY2soY29uc3Qg
SVBDOjpEYXRhUmVmZXJlbmNlJiBwZGZEYXRhLCBXZWJLaXQ6OkNhbGxiYWNrSUQpOwogI2VuZGlm
CiAjZWxpZiBQTEFURk9STShHVEspCkBAIC0xMjUyLDcgKzEyNTIsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmKTsKICAgICBXZWJDb3JlOjpJbnRTaXplIHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0
VW5pdHMoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMu
dmFsdWVPcihXZWJDb3JlOjpJbnRTaXplKCkpOyB9CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5KHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZVByb3h5PiYmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZVByb3h5KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmPEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlUHJveHk+JiYpOwogCiAgICAgU3BlbGxEb2N1bWVudFRhZyBzcGVsbERvY3Vt
ZW50VGFnKCk7CiAKQEAgLTE0NTIsMTIgKzE0NTIsMTIgQEAgcHVibGljOgogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIHZvaWQgcmVxdWVzdFN0b3Jh
Z2VBY2Nlc3NDb25maXJtKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFt
ZURvbWFpbiwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWlu
LCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAg
ICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShjb25zdCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluJiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIGRpZENvbW1pdENyb3NzU2l0ZUxvYWRX
aXRoRGF0YVRyYW5zZmVyRnJvbVByZXZhbGVudFJlc291cmNlKCk7CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgdm9pZCBzaG91bGRBbGxvd0RldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYmLCBib29sIG1heVByb21wdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlKT4mJik7CisgICAg
dm9pZCBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIGJvb2wgbWF5
UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmKTsKICNlbmRpZgogCiAgICAgc3RhdGljIFdlYlBh
Z2VQcm94eSogbm9uRXBoZW1lcmFsV2ViUGFnZVByb3h5KCk7CkBAIC0xNDk4LDMzICsxNDk4LDMz
IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgUHJvdmlzaW9uYWxQYWdlUHJveHkqIHByb3Zpc2lv
bmFsUGFnZVByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9wcm92aXNpb25hbFBhZ2UuZ2V0KCk7IH0K
LSAgICB2b2lkIGNvbW1pdFByb3Zpc2lvbmFsUGFnZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0
b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6
OkNlcnRpZmljYXRlSW5mbyYsIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8
V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIGNv
bnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBjb21taXRQcm92aXNpb25hbFBhZ2UoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1l
TG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYsIGJvb2wgY29udGFpbnNQ
bHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3Jj
ZWRIYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJik7CiAKICAgICAvLyBMb2dpYyBz
aGFyZWQgYmV0d2VlbiB0aGUgV2ViUGFnZVByb3h5IGFuZCB0aGUgUHJvdmlzaW9uYWxQYWdlUHJv
eHkuCi0gICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgVVJMJiYsIFVSTCYmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZv
aWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJp
bmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29y
ZTo6V2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZFJl
Y2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9p
ZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25V
UkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJl
ZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgc291cmNl
VVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBm
cmFtZUlEKTsKLSAgICB2b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmLCB1aW50
NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVT
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBVUkwmJik7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3QgZnJhbWVJ
RCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLAorICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25h
bExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYsIFVSTCYmIHVucmVhY2hh
YmxlVVJMLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5
T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxV
UkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29udGludWVM
b2FkaW5nLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGly
ZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkUGVy
Zm9ybVNlcnZlclJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0
cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5n
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJl
ZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgc291cmNl
VVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFT
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9y
ZSYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNp
b25hbFVSTEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJik7CisgICAgdm9pZCBk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZp
ZXIsCiAgICAgICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEm
JiwgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3Jp
Z2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxS
ZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwKICAgICAgICAgSVBDOjpGb3JtRGF0
YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVk
aXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCB1aW50NjRfdCBsaXN0ZW5lcklEKTsKLSAg
ICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYg
ZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLAorICAg
IHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciwKICAgICAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93
TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3Rl
bmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBzdGFydFVSTFNjaGVtZVRhc2tTaGFy
ZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJik7CiAg
ICAgdm9pZCBsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYsIEFQSTo6TmF2aWdhdGlvbiYsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGNvbnN0IFN0
cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFz
ZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBXVEY6Om51bGxvcHQs
IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpTaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiAgICAgdm9pZCBsb2FkUmVx
dWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIEFQSTo6TmF2
aWdhdGlvbiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiA9
IFdURjo6bnVsbG9wdCk7CiAgICAgdm9pZCBiYWNrRm9yd2FyZEdvVG9JdGVtU2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZp
ZXImLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmKT4m
Jik7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZChS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCB1aW50NjRfdCBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1l
LCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCisg
ICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZChSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGJvb2wgaXNNYWluRnJh
bWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lk
ZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwK
ICAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmll
cj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3Jp
Z2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJl
ZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYp
OwogI2lmIFVTRShRVUlDS19MT09LKQogICAgIHZvaWQgZGlkUmVxdWVzdFBhc3N3b3JkRm9yUXVp
Y2tMb29rRG9jdW1lbnRJbk1haW5GcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBj
b25zdCBTdHJpbmcmIGZpbGVOYW1lKTsKICNlbmRpZgogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRF
UklORykKLSAgICB2b2lkIGNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZVNoYXJlZChS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9j
a0hhbmRsZXImLCB1aW50NjRfdCBmcmFtZUlEKTsKKyAgICB2b2lkIGNvbnRlbnRGaWx0ZXJEaWRC
bG9ja0xvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBXZWJD
b3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIpOwogI2VuZGlmCiAKICAgICB2b2lkIGR1bXBBZENsaWNrQXR0cmlidXRpb24oQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChjb25zdCBTdHJpbmcmKT4mJik7CkBAIC0xNTYxLDcgKzE1NjEsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVy
PiYpIG92ZXJyaWRlOwogCi0gICAgdm9pZCByZXF1ZXN0U3RvcmFnZVNwYWNlKHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRh
YmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90
YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VV
c2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KHVpbnQ2NF90KT4mJik7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZVNwYWNlKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3Vy
cmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnRE
YXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBXVEY6OkNvbXBsZXRpb25IYW5k
bGVyPHZvaWQodWludDY0X3QpPiYmKTsKIAogICAgIFVSTCBjdXJyZW50UmVzb3VyY2VEaXJlY3Rv
cnlVUkwoKSBjb25zdDsKIApAQCAtMTU4MSw3ICsxNTgxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHVwZGF0ZVRocm90dGxlU3RhdGUoKTsKICAgICB2b2lkIHVwZGF0ZUhpZGRlblBhZ2VUaHJvdHRs
aW5nQXV0b0luY3JlYXNlcygpOwogCi0gICAgYm9vbCBzdXNwZW5kQ3VycmVudFBhZ2VJZlBvc3Np
YmxlKEFQSTo6TmF2aWdhdGlvbiYsIE9wdGlvbmFsPHVpbnQ2NF90PiBtYWluRnJhbWVJRCwgUHJv
Y2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmlu
Z0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKTsKKyAgICBib29sIHN1c3BlbmRDdXJyZW50UGFn
ZUlmUG9zc2libGUoQVBJOjpOYXZpZ2F0aW9uJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyPiBtYWluRnJhbWVJRCwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgU2hvdWxk
RGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKTsKIAog
ICAgIGVudW0gY2xhc3MgUmVzZXRTdGF0ZVJlYXNvbiB7CiAgICAgICAgIFBhZ2VJbnZhbGlkYXRl
ZCwKQEAgLTE2MTAsMzIgKzE2MTAsMzIgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RQb2lu
dGVyVW5sb2NrKCk7CiAjZW5kaWYKIAotICAgIHZvaWQgZGlkQ3JlYXRlTWFpbkZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkQ3JlYXRlU3ViZnJhbWUodWludDY0X3QgZnJhbWVJ
RCk7Ci0gICAgdm9pZCBkaWRDcmVhdGVXaW5kb3codWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6
R2xvYmFsV2luZG93SWRlbnRpZmllciYmKTsKLQotICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25h
bExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVS
TCYmLCBVUkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRp
ZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiYsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1cmwsIGRvdWJsZSBkZWxh
eSwgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCk7Ci0gICAgdm9pZCBkaWRDYW5jZWxDbGll
bnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkQ2hhbmdl
UHJvdmlzaW9uYWxVUkxGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIFVSTCYmKTsKLSAgICB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1l
U2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92
aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OldpbGxD
b250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRDb21taXRMb2Fk
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBT
dHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50
MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mLCBib29s
IGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29u
dGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZv
aWQgZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkRmluaXNoTG9h
ZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3Qg
VXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZEZhaWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwg
Y29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQzMl90IHNh
bWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLCBVUkwmJiwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2
b2lkIGRpZENoYW5nZU1haW5Eb2N1bWVudCh1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRp
ZEV4cGxpY2l0T3BlbkZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFVSTCYmKTsKLQotICAgIHZv
aWQgZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5n
JiwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZEZpcnN0VmlzdWFs
bHlOb25FbXB0eUxheW91dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRh
Jik7Ci0gICAgdm9pZCBkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZFJ1bkluc2VjdXJlQ29udGVu
dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBk
aWREZXRlY3RYU1NGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVc2VyRGF0YSYpOwor
ICAgIHZvaWQgZGlkQ3JlYXRlTWFpbkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7Cisg
ICAgdm9pZCBkaWRDcmVhdGVTdWJmcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAg
IHZvaWQgZGlkQ3JlYXRlV2luZG93KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6
R2xvYmFsV2luZG93SWRlbnRpZmllciYmKTsKKworICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25h
bExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgVVJMJiYsIFVSTCYmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYpOworICAg
IHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgd2lsbFBlcmZv
cm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiB1cmwsIGRvdWJsZSBkZWxheSwgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCk7
CisgICAgdm9pZCBkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJik7Cisg
ICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlP
cmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVS
TCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OldpbGxDb250aW51ZUxv
YWRpbmcsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRDb21taXRMb2FkRm9yRnJhbWUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0
cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQz
Ml90IGZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYsIGJvb2wg
Y29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250
ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9p
ZCBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZEZp
bmlzaExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZEZhaWxMb2FkRm9yRnJhbWUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkU2Ft
ZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCB1aW50MzJfdCBzYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwg
VVJMJiYsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRDaGFuZ2VNYWluRG9jdW1lbnQo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZEV4cGxpY2l0T3BlbkZvckZy
YW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgVVJMJiYpOworCisgICAgdm9pZCBkaWRSZWNl
aXZlVGl0bGVGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYs
IGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRGaXJzdExheW91dEZvckZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZEZpcnN0
VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
Y29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JG
cmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9p
ZCBkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWREZXRlY3RYU1NGb3JGcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBtYWluRnJhbWVQ
bHVnaW5IYW5kbGVzUGFnZVNjYWxlR2VzdHVyZURpZENoYW5nZShib29sKTsKLSAgICB2b2lkIGZy
YW1lRGlkQmVjb21lRnJhbWVTZXQodWludDY0X3QgZnJhbWVJRCwgYm9vbCk7CisgICAgdm9pZCBm
cmFtZURpZEJlY29tZUZyYW1lU2V0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCk7CiAg
ICAgdm9pZCBkaWRTdGFydFByb2dyZXNzKCk7CiAgICAgdm9pZCBkaWRDaGFuZ2VQcm9ncmVzcyhk
b3VibGUpOwogICAgIHZvaWQgZGlkRmluaXNoUHJvZ3Jlc3MoKTsKQEAgLTE2NDgsMzcgKzE2NDgs
MzcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24o
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViRnJhbWVQcm94eSYsIFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYmLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRh
JiYsCiAgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50
aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURh
dGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgUmVmPFBvbGljeURlY2lz
aW9uU2VuZGVyPiYmKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25B
c3luYyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmln
YXRpb25BY3Rpb25EYXRhJiYsCisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uQXN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwg
T3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKICAg
ICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0
IFVzZXJEYXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uU3luYyh1aW50NjRfdCBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1l
LCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCisg
ICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCBPcHRp
b25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAogICAgICAg
ICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNl
ckRhdGEmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3
V2luZG93QWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgTmF2aWdhdGlvbkFjdGlv
bkRhdGEmJiwKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAg
ICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1l
LCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsCisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdlYkNv
cmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELAogICAgICAg
ICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRB
dHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9p
ZCB1bmFibGVUb0ltcGxlbWVudFBvbGljeSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yJiwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIHVuYWJsZVRvSW1w
bGVtZW50UG9saWN5KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciYsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBiZWdpblNhZmVCcm93c2lu
Z0NoZWNrKGNvbnN0IFVSTCYsIGJvb2wsIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eSYpOwog
CiAgICAgV2ViQ29udGVudE1vZGUgZWZmZWN0aXZlQ29udGVudE1vZGVBZnRlckFkanVzdGluZ1Bv
bGljaWVzKEFQSTo6V2Vic2l0ZVBvbGljaWVzJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0Jik7CiAKLSAgICB2b2lkIHdpbGxTdWJtaXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2
NF90IHNvdXJjZUZyYW1lSUQsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+
PiYgdGV4dEZpZWxkVmFsdWVzLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYp
OworICAgIHZvaWQgd2lsbFN1Ym1pdEZvcm0oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgc291cmNlRnJhbWVJRCwgY29uc3QgVmVjdG9yPHN0ZDo6cGFp
cjxTdHJpbmcsIFN0cmluZz4+JiB0ZXh0RmllbGRWYWx1ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQs
IGNvbnN0IFVzZXJEYXRhJik7CiAKICAgICB2b2lkIGNvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlv
bihVUkwmJiwgV2ViQ29yZTo6Q29udGVudFJ1bGVMaXN0UmVzdWx0cyYmKTsKIAogICAgIC8vIEhp
c3RvcnkgY2xpZW50Ci0gICAgdm9pZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShjb25z
dCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiwgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBk
aWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNv
bnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAg
IHZvaWQgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlE
KTsKLSAgICB2b2lkIGRpZFVwZGF0ZUhpc3RvcnlUaXRsZShjb25zdCBTdHJpbmcmIHRpdGxlLCBj
b25zdCBTdHJpbmcmIHVybCwgdWludDY0X3QgZnJhbWVJRCk7CisgICAgdm9pZCBkaWROYXZpZ2F0
ZVdpdGhOYXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiwgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdChj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVS
TFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZFBlcmZvcm1T
ZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5n
JiBkZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2
b2lkIGRpZFVwZGF0ZUhpc3RvcnlUaXRsZShjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJp
bmcmIHVybCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKIAogICAgIC8vIFVJIGNsaWVudAog
ICAgIHZvaWQgY3JlYXRlTmV3UGFnZShjb25zdCBGcmFtZUluZm9EYXRhJiwgT3B0aW9uYWw8V2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmJiwgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMmJiwgTmF2aWdhdGlvbkFjdGlvbkRh
dGEmJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3JlYXRlTmV3UGFnZTo6RGVsYXllZFJlcGx5
JiYpOwogICAgIHZvaWQgc2hvd1BhZ2UoKTsKLSAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydCh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25z
dCBTdHJpbmcmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQ6OkRl
bGF5ZWRSZXBseSYmKTsKLSAgICB2b2lkIHJ1bkphdmFTY3JpcHRDb25maXJtKHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYs
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRDb25maXJtOjpEZWxheWVkUmVw
bHkmJik7Ci0gICAgdm9pZCBydW5KYXZhU2NyaXB0UHJvbXB0KHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0
cmluZyYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OkRlbGF5
ZWRSZXBseSYmKTsKKyAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmlu
ZyYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydDo6RGVsYXllZFJl
cGx5JiYpOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcm
LCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybTo6RGVsYXllZFJl
cGx5JiYpOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYs
IGNvbnN0IFN0cmluZyYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9t
cHQ6OkRlbGF5ZWRSZXBseSYmKTsKICAgICB2b2lkIHNldFN0YXR1c1RleHQoY29uc3QgU3RyaW5n
Jik7CiAgICAgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChXZWJIaXRUZXN0UmVzdWx0RGF0
YSYmLCB1aW50MzJfdCBtb2RpZmllcnMsIFVzZXJEYXRhJiYpOwogCkBAIC0xNzAxLDIxICsxNzAx
LDIxIEBAIHByaXZhdGU6CiAgICAgdm9pZCByb290Vmlld1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIHZpZXdSZWN0LCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSb290Vmlld1RvU2Ny
ZWVuOjpEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBhY2Nlc3NpYmlsaXR5U2NyZWVuVG9Sb290
Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2NyZWVuUG9pbnQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViQ29yZTo6SW50UG9pbnQpPiYmKTsKICAgICB2b2lkIHJvb3RWaWV3VG9BY2Nl
c3NpYmlsaXR5U2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHZpZXdSZWN0LCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkludFJlY3QpPiYmKTsKLSAgICB2b2lkIHJ1bkJlZm9y
ZVVubG9hZENvbmZpcm1QYW5lbCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OlJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDo6RGVsYXllZFJlcGx5JiYpOworICAg
IHZvaWQgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw6
OkRlbGF5ZWRSZXBseSYmKTsKICAgICB2b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhj
b25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmKTsKICAgICB2b2lkIHBhZ2VEaWRTY3Jv
bGwoKTsKLSAgICB2b2lkIHJ1bk9wZW5QYW5lbCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRp
bmdzJik7CisgICAgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBj
b25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBXZWJDb3JlOjpGaWxlQ2hv
b3NlclNldHRpbmdzJik7CiAgICAgdm9pZCBzaG93U2hhcmVTaGVldChjb25zdCBXZWJDb3JlOjpT
aGFyZURhdGFXaXRoUGFyc2VkVVJMJiwgU2hhcmVTaGVldENhbGxiYWNrSUQpOwotICAgIHZvaWQg
cHJpbnRGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwotICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNv
bnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3Qg
Y3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0
X3QgZXhwZWN0ZWRVc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhjZWVkZWREYXRhYmFz
ZVF1b3RhOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBwcmludEZyYW1lKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIGV4
Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0
cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVu
dE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhw
ZWN0ZWRVc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhjZWVkZWREYXRhYmFzZVF1b3Rh
OjpEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdp
blF1b3RhKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgdWludDY0X3QgY3VycmVudFF1
b3RhLCB1aW50NjRfdCB0b3RhbEJ5dGVzTmVlZGVkLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpS
ZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhOjpEZWxheWVkUmVwbHkmJik7Ci0gICAg
dm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9j
YXRpb25JRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpOworICAg
IHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xv
Y2F0aW9uSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgU3RyaW5nIG9yaWdpbklkZW50aWZp
ZXIpOwogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eSYgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCk7
CiAjZW5kaWYKLSAgICB2b2lkIHJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWlu
dDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBjb25zdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlm
aWVyLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJik7Ci0gICAgdm9pZCBlbnVtZXJhdGVN
ZWRpYURldmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2VyTWVkaWFEb2N1bWVudE9y
aWdpbkRhdGEsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbkRhdGEpOworICAgIHZvaWQgcmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JG
cmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luSWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYpOworICAg
IHZvaWQgZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQs
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRhdGEsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEpOwogICAgIHZvaWQgYmVnaW5N
b25pdG9yaW5nQ2FwdHVyZURldmljZXMoKTsKIAogICAgIHZvaWQgcnVuTW9kYWwoKTsKQEAgLTE4
OTUsOCArMTg5NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwcmludEZpbmlzaGVkQ2FsbGJhY2so
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIENhbGxiYWNrSUQpOwogI2VuZGlmCiAKLSAg
ICB2b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQodWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBm
cmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQodWludDY0X3QgZnJhbWVJRCk7CisgICAgdm9pZCBm
b2N1c2VkRnJhbWVDaGFuZ2VkKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
cj4mKTsKKyAgICB2b2lkIGZyYW1lU2V0TGFyZ2VzdEZyYW1lQ2hhbmdlZChjb25zdCBPcHRpb25h
bDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+Jik7CiAKICAgICB2b2lkIGRpZEZpbmlzaExvYWRp
bmdEYXRhRm9yQ3VzdG9tQ29udGVudFByb3ZpZGVyKGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmls
ZW5hbWUsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpOwogCkBAIC0xOTk3LDcgKzE5OTcsNyBA
QCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCi0gICAg
dm9pZCBjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWUoY29uc3QgV2ViQ29yZTo6Q29u
dGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiwgdWludDY0X3QgZnJhbWVJRCk7CisgICAgdm9pZCBj
b250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWUoY29uc3QgV2ViQ29yZTo6Q29udGVudEZp
bHRlclVuYmxvY2tIYW5kbGVyJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICNlbmRpZgog
CiAgICAgdm9pZCB0cnlSZWxvYWRBZnRlclByb2Nlc3NUZXJtaW5hdGlvbigpOwpAQCAtMjExMCw3
ICsyMTEwLDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgYm9vbCBpc0luSGFyZHdhcmVLZXlib2Fy
ZE1vZGUoKTsKICNlbmRpZgogCi0gICAgdm9pZCBtYWtlU3RvcmFnZVNwYWNlUmVxdWVzdCh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJy
ZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERh
dGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQodWludDY0X3QpPiYmKTsKKyAgICB2b2lkIG1ha2VTdG9yYWdlU3BhY2VSZXF1ZXN0KFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0
X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1
cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKHVpbnQ2NF90KT4mJik7CiAKICAgICBXZWFrUHRyPFBhZ2VDbGllbnQ+IG1fcGFn
ZUNsaWVudDsKICAgICBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4gbV9jb25maWd1cmF0aW9u
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CmluZGV4IGVjYWQ5NWU0NmI1NDNhYzkxNTA0MGU2MGVmNDA0YmVkNjQyNjcxNjEuLjE1ODkxOWUz
MTYwMTFkNjk5NDBkZDliMWUyZjdjY2MzMWVhNGU0M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTI1LDkgKzI1LDkgQEAgbWVz
c2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBDcmVhdGVOZXdQYWdlKHN0cnVjdCBXZWJLaXQ6
OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCByZXF1ZXN0LCBzdHJ1Y3QgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMgd2luZG93RmVhdHVy
ZXMsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25E
YXRhKSAtPiAoT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG5ld1BhZ2VJRCwgT3B0
aW9uYWw8V2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBuZXdQYWdlUGFyYW1ldGVy
cykgU3luY2hyb25vdXMKICAgICBTaG93UGFnZSgpCiAgICAgQ2xvc2VQYWdlKGJvb2wgc3RvcFJl
c3BvbnNpdmVuZXNzVGltZXIpCi0gICAgUnVuSmF2YVNjcmlwdEFsZXJ0KHVpbnQ2NF90IGZyYW1l
SUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdp
biwgU3RyaW5nIG1lc3NhZ2UpIC0+ICgpIFN5bmNocm9ub3VzCi0gICAgUnVuSmF2YVNjcmlwdENv
bmZpcm0odWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSkgLT4gKGJvb2wgcmVzdWx0KSBT
eW5jaHJvbm91cwotICAgIFJ1bkphdmFTY3JpcHRQcm9tcHQodWludDY0X3QgZnJhbWVJRCwgc3Ry
dWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBTdHJp
bmcgbWVzc2FnZSwgU3RyaW5nIGRlZmF1bHRWYWx1ZSkgLT4gKFN0cmluZyByZXN1bHQpIFN5bmNo
cm9ub3VzCisgICAgUnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlP
cmlnaW4sIFN0cmluZyBtZXNzYWdlKSAtPiAoKSBTeW5jaHJvbm91cworICAgIFJ1bkphdmFTY3Jp
cHRDb25maXJtKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFN0cmluZyBtZXNzYWdl
KSAtPiAoYm9vbCByZXN1bHQpIFN5bmNocm9ub3VzCisgICAgUnVuSmF2YVNjcmlwdFByb21wdChX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSwgU3RyaW5nIGRl
ZmF1bHRWYWx1ZSkgLT4gKFN0cmluZyByZXN1bHQpIFN5bmNocm9ub3VzCiAgICAgTW91c2VEaWRN
b3ZlT3ZlckVsZW1lbnQoc3RydWN0IFdlYktpdDo6V2ViSGl0VGVzdFJlc3VsdERhdGEgaGl0VGVz
dFJlc3VsdERhdGEsIHVpbnQzMl90IG1vZGlmaWVycywgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0
YSkKIAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQpAQCAtNDcsOCArNDcsOCBAQCBt
ZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIFNldFRvb2xUaXAoU3RyaW5nIHRvb2xUaXAp
CiAgICAgU2V0Rm9jdXMoYm9vbCBmb2N1c2VkKQogICAgIFRha2VGb2N1cyh1aW50MzJfdCBkaXJl
Y3Rpb24pCi0gICAgRm9jdXNlZEZyYW1lQ2hhbmdlZCh1aW50NjRfdCBmcmFtZUlEKQotICAgIEZy
YW1lU2V0TGFyZ2VzdEZyYW1lQ2hhbmdlZCh1aW50NjRfdCBmcmFtZUlEKQorICAgIEZvY3VzZWRG
cmFtZUNoYW5nZWQoT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKQor
ICAgIEZyYW1lU2V0TGFyZ2VzdEZyYW1lQ2hhbmdlZChPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXI+IGZyYW1lSUQpCiAgICAgU2V0UmVuZGVyVHJlZVNpemUodWludDY0X3QgdHJlZVNp
emUpCiAgICAgU2V0VG9vbGJhcnNBcmVWaXNpYmxlKGJvb2wgdG9vbGJhcnNBcmVWaXNpYmxlKQog
ICAgIEdldFRvb2xiYXJzQXJlVmlzaWJsZSgpIC0+IChib29sIHRvb2xiYXJzQXJlVmlzaWJsZSkg
U3luY2hyb25vdXMKQEAgLTY5LDExICs2OSwxMSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkg
ewogICAgIEhpZGVWYWxpZGF0aW9uTWVzc2FnZSgpCiAjZW5kaWYKIAotICAgIFJ1bkJlZm9yZVVu
bG9hZENvbmZpcm1QYW5lbCh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFN0cmluZyBtZXNzYWdlKSAtPiAoYm9v
bCBzaG91bGRDbG9zZSkgU3luY2hyb25vdXMKKyAgICBSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFu
ZWwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3NhZ2UpIC0+IChi
b29sIHNob3VsZENsb3NlKSBTeW5jaHJvbm91cwogICAgIFBhZ2VEaWRTY3JvbGwoKQotICAgIFJ1
bk9wZW5QYW5lbCh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHN0cnVjdCBXZWJDb3JlOjpGaWxlQ2hvb3NlclNl
dHRpbmdzIHBhcmFtZXRlcnMpCisgICAgUnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIHN0cnVjdCBXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzIHBhcmFtZXRl
cnMpCiAgICAgU2hvd1NoYXJlU2hlZXQoc3RydWN0IFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJz
ZWRVUkwgc2hhcmVEYXRhLCB1aW50NjRfdCBjYWxsYmFja0lEKQotICAgIFByaW50RnJhbWUodWlu
dDY0X3QgZnJhbWVJRCkgLT4gKCkgU3luY2hyb25vdXMKKyAgICBQcmludEZyYW1lKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSAtPiAoKSBTeW5jaHJvbm91cwogICAgIFJ1bk1vZGFs
KCkKICAgICBOb3RpZnlTY3JvbGxlclRodW1iSXNWaXNpYmxlSW5SZWN0KFdlYkNvcmU6OkludFJl
Y3Qgc2Nyb2xsZXJUaHVtYikKICAgICBSZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdl
KGludDMyX3QgbmV3U3R5bGUpCkBAIC0xMDMsMTEgKzEwMywxMSBAQCBtZXNzYWdlcyAtPiBXZWJQ
YWdlUHJveHkgewogI2VuZGlmCiAKICAgICAjIFBvbGljeSBtZXNzYWdlcwotICAgIERlY2lkZVBv
bGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIFN0cmluZyBkb3dubG9hZEF0dHJpYnV0ZSwg
dWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmModWludDY0X3QgZnJhbWVJRCwgc3RydWN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3Jl
OjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRp
b25BY3Rpb25EYXRhLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJh
bWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5n
UGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0
Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6
OlVzZXJEYXRhIHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQotICAgIERlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJh
bWUsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdp
biwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0
YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmln
aW5hdGluZ0ZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBv
cmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVz
dCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVu
Y2UgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25z
ZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkgLT4gKFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIGVudW06dWludDhfdCBXZWJDb3JlOjpQb2xp
Y3lBY3Rpb24gcG9saWN5QWN0aW9uLCB1aW50NjRfdCBuZXdOYXZpZ2F0aW9uSUQsIFdlYktpdDo6
RG93bmxvYWRJRCBkb3dubG9hZElELCBPcHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0Rh
dGE+IHdlYnNpdGVQb2xpY2llcykgU3luY2hyb25vdXMKLSAgICBEZWNpZGVQb2xpY3lGb3JOZXdX
aW5kb3dBY3Rpb24odWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZp
ZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9u
RGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QsIFN0cmluZyBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRh
dGEgdXNlckRhdGEpCi0gICAgVW5hYmxlVG9JbXBsZW1lbnRQb2xpY3kodWludDY0X3QgZnJhbWVJ
RCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0
YSkKKyAgICBEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5
T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlm
aWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVz
cG9uc2UsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBib29sIGNhblNob3dNSU1F
VHlwZSwgU3RyaW5nIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJL
aXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b25Bc3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25E
YXRhLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0
YSwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRh
IHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQorICAgIERlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25TeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlz
TWFpbkZyYW1lLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJp
dHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50
aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFj
dGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0Rh
dGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRp
Zmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBvcmlnaW5h
bFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBJUEM6OkZvcm1EYXRh
UmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0
UmVzcG9uc2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpIC0+IChXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3QgV2ViQ29y
ZTo6UG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgdWludDY0X3QgbmV3TmF2aWdhdGlvbklELCBX
ZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgT3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9s
aWNpZXNEYXRhPiB3ZWJzaXRlUG9saWNpZXMpIFN5bmNocm9ub3VzCisgICAgRGVjaWRlUG9saWN5
Rm9yTmV3V2luZG93QWN0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1
Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNv
cmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHN0cnVjdCBX
ZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIGZyYW1lTmFtZSwgdWludDY0X3QgbGlz
dGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBVbmFibGVUb0ltcGxlbWVu
dFBvbGljeShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciBlcnJvciwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKIAogICAgICMgUHJvZ3Jl
c3MgbWVzc2FnZXMKICAgICBEaWRDaGFuZ2VQcm9ncmVzcyhkb3VibGUgdmFsdWUpCkBAIC0xMTcs
NTEgKzExNyw1MSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIFNldE5ldHdvcmtS
ZXF1ZXN0c0luUHJvZ3Jlc3MoYm9vbCBuZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzKQogCiAgICAg
IyBGcmFtZSBsaWZldGltZSBtZXNzYWdlcwotICAgIERpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRf
dCBmcmFtZUlEKQotICAgIERpZENyZWF0ZVN1YmZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCisgICAg
RGlkQ3JlYXRlTWFpbkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQorICAg
IERpZENyZWF0ZVN1YmZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogCi0g
ICAgRGlkQ3JlYXRlV2luZG93KHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpHbG9i
YWxXaW5kb3dJZGVudGlmaWVyIHdpbmRvd0lkZW50aWZpZXIpCisgICAgRGlkQ3JlYXRlV2luZG93
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6R2xvYmFs
V2luZG93SWRlbnRpZmllciB3aW5kb3dJZGVudGlmaWVyKQogCiAgICAgIyBGcmFtZSBsb2FkIG1l
c3NhZ2VzCi0gICAgRGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCB1cmwsIFVSTCB1bnJlYWNoYWJsZVVSTCwg
V2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RG
b3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJLaXQ6OlVzZXJE
YXRhIHVzZXJEYXRhKQotICAgIFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBTdHJpbmcgdXJsLCBkb3VibGUgZGVsYXksIGVudW06Ym9vbCBXZWJDb3Jl
OjpMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QpCi0gICAgRGlkQ2FuY2Vs
Q2xpZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQotICAgIERpZENoYW5nZVBy
b3Zpc2lvbmFsVVJMRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBVUkwgdXJsKQotICAgIERpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJp
dHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgU3RyaW5nIHByb3Zpc2lvbmFsVVJMLCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBlbnVtOmJvb2wgV2ViQ29yZTo6V2lsbENvbnRp
bnVlTG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRh
KQotICAgIERpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIFN0cmluZyBtaW1lVHlwZSwgYm9vbCBoYXNDdXN0b21Db250ZW50UHJvdmlk
ZXIsIHVpbnQzMl90IGxvYWRUeXBlLCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNh
dGVJbmZvLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhh
c0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBXZWJLaXQ6OlVzZXJE
YXRhIHVzZXJEYXRhKQotICAgIERpZEZhaWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBXZWJL
aXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViS2l0OjpVc2VyRGF0
YSB1c2VyRGF0YSkKLSAgICBEaWRGaW5pc2hMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERp
ZEZpcnN0TGF5b3V0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpVc2VyRGF0YSB1
c2VyRGF0YSkKLSAgICBEaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZFN0YXJ0UHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMIHVybCwgVVJMIHVucmVhY2hhYmxlVVJMLCBXZWJLaXQ6
OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJL
aXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JG
cmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIHVybCwgZG91Ymxl
IGRlbGF5LCBlbnVtOmJvb2wgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0Zv
cndhcmRMaXN0KQorICAgIERpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCisgICAgRGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JG
cmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBVUkwgdXJsKQorICAgIERpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFN0cmluZyBw
cm92aXNpb25hbFVSTCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgZW51bTpib29sIFdl
YkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcgd2lsbENvbnRpbnVlTG9hZGluZywgV2ViS2l0OjpV
c2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWRDb21taXRMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgU3RyaW5nIG1pbWVU
eXBlLCBib29sIGhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgbG9hZFR5cGUsIFdl
YkNvcmU6OkNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVn
aW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRI
YXNJbnNlY3VyZUNvbnRlbnQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkRmFp
bExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBXZWJLaXQ6OlVzZXJE
YXRhIHVzZXJEYXRhKQorICAgIERpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYktpdDo6
VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkRmluaXNoTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYktpdDo6VXNl
ckRhdGEgdXNlckRhdGEpCisgICAgRGlkRmlyc3RMYXlvdXRGb3JGcmFtZShXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWRG
aXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKICAgICBEaWRSZWFjaExheW91
dE1pbGVzdG9uZShPcHRpb25TZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPiBsYXlvdXRNaWxl
c3RvbmVzKQotICAgIERpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFN0
cmluZyB0aXRsZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWREaXNwbGF5SW5z
ZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpVc2VyRGF0YSB1
c2VyRGF0YSkKLSAgICBEaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZERldGVjdFhTU0ZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlkU2Ft
ZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgdWludDMyX3QgdHlwZSwgVVJMIHVybCwgV2ViS2l0OjpVc2VyRGF0YSB1c2Vy
RGF0YSkKLSAgICBEaWRDaGFuZ2VNYWluRG9jdW1lbnQodWludDY0X3QgZnJhbWVJRCkKLSAgICBE
aWRFeHBsaWNpdE9wZW5Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBVUkwgdXJsKQorICAgIERp
ZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBT
dHJpbmcgdGl0bGUsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkRGlzcGxheUlu
c2VjdXJlQ29udGVudEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBX
ZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZFJ1bkluc2VjdXJlQ29udGVudEZvckZy
YW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJLaXQ6OlVzZXJEYXRhIHVz
ZXJEYXRhKQorICAgIERpZERldGVjdFhTU0ZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZFNhbWVEb2N1bWVu
dE5hdmlnYXRpb25Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCB1aW50MzJfdCB0eXBlLCBVUkwgdXJsLCBXZWJLaXQ6OlVzZXJE
YXRhIHVzZXJEYXRhKQorICAgIERpZENoYW5nZU1haW5Eb2N1bWVudChXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCkKKyAgICBEaWRFeHBsaWNpdE9wZW5Gb3JGcmFtZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgVVJMIHVybCkKICAgICBEaWREZXN0cm95TmF2aWdhdGlv
bih1aW50NjRfdCBuYXZpZ2F0aW9uSUQpCiAKICAgICBIYXNJbnNlY3VyZUNvbnRlbnQoKSAtPiAo
ZW51bTpib29sIFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudCBoYXNJbnNlY3VyZUNvbnRlbnQp
IFN5bmNocm9ub3VzCiAKICAgICBNYWluRnJhbWVQbHVnaW5IYW5kbGVzUGFnZVNjYWxlR2VzdHVy
ZURpZENoYW5nZShib29sIG1haW5GcmFtZVBsdWdpbkhhbmRsZXNQYWdlU2NhbGVHZXN0dXJlKQog
Ci0gICAgRnJhbWVEaWRCZWNvbWVGcmFtZVNldCh1aW50NjRfdCBmcmFtZUlELCBib29sIHZhbHVl
KQorICAgIEZyYW1lRGlkQmVjb21lRnJhbWVTZXQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIGJvb2wgdmFsdWUpCiAKICAgICAjIEhpc3RvcnkgY2xpZW50IG1lc3NhZ2VzLgotICAg
IERpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKHN0cnVjdCBXZWJLaXQ6OldlYk5hdmlnYXRp
b25EYXRhU3RvcmUgc3RvcmUsIHVpbnQ2NF90IGZyYW1lSUQpCi0gICAgRGlkUGVyZm9ybUNsaWVu
dFJlZGlyZWN0KFN0cmluZyBzb3VyY2VVUkxTdHJpbmcsIFN0cmluZyBkZXN0aW5hdGlvblVSTFN0
cmluZywgdWludDY0X3QgZnJhbWVJRCkKLSAgICBEaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoU3Ry
aW5nIHNvdXJjZVVSTFN0cmluZywgU3RyaW5nIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRf
dCBmcmFtZUlEKQotICAgIERpZFVwZGF0ZUhpc3RvcnlUaXRsZShTdHJpbmcgdGl0bGUsIFN0cmlu
ZyB1cmwsIHVpbnQ2NF90IGZyYW1lSUQpCisgICAgRGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRh
dGEoc3RydWN0IFdlYktpdDo6V2ViTmF2aWdhdGlvbkRhdGFTdG9yZSBzdG9yZSwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCisgICAgRGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KFN0
cmluZyBzb3VyY2VVUkxTdHJpbmcsIFN0cmluZyBkZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCisgICAgRGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0
KFN0cmluZyBzb3VyY2VVUkxTdHJpbmcsIFN0cmluZyBkZXN0aW5hdGlvblVSTFN0cmluZywgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCisgICAgRGlkVXBkYXRlSGlzdG9yeVRpdGxl
KFN0cmluZyB0aXRsZSwgU3RyaW5nIHVybCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQpCiAKICAgICAjIEN1c3RvbSByZXByZXNlbnRhdGlvbnMKICAgICBEaWRGaW5pc2hMb2FkaW5n
RGF0YUZvckN1c3RvbUNvbnRlbnRQcm92aWRlcihTdHJpbmcgc3VnZ2VzdGVkRmlsZW5hbWUsIElQ
Qzo6RGF0YVJlZmVyZW5jZSBkYXRhKQogCiAgICAgIyBGb3JtcyBtZXNzYWdlcwotICAgIFdpbGxT
dWJtaXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZyYW1lSUQsIFZlY3Rv
cjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXh0RmllbGRWYWx1ZXMsIHVpbnQ2NF90IGxp
c3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgV2lsbFN1Ym1pdEZvcm0o
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBzb3VyY2VGcmFtZUlELCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4gdGV4dEZp
ZWxkVmFsdWVzLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRh
KQogCiAgICAgIyBDYWxsYmFjayBtZXNzYWdlcwogICAgIFZvaWRDYWxsYmFjayhXZWJLaXQ6OkNh
bGxiYWNrSUQgY2FsbGJhY2tJRCkKQEAgLTI3NSwxOCArMjc1LDE4IEBAIG1lc3NhZ2VzIC0+IFdl
YlBhZ2VQcm94eSB7CiAjZW5kaWYKIAogICAgICMgRGF0YWJhc2UgbWVzc2FnZXMKLSAgICBFeGNl
ZWRlZERhdGFiYXNlUXVvdGEodWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZp
ZXIsIFN0cmluZyBkYXRhYmFzZU5hbWUsIFN0cmluZyBkYXRhYmFzZURpc3BsYXlOYW1lLCB1aW50
NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3Qg
Y3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UpIC0+ICh1aW50NjRf
dCBuZXdRdW90YSkgU3luY2hyb25vdXMKKyAgICBFeGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCBTdHJp
bmcgZGF0YWJhc2VOYW1lLCBTdHJpbmcgZGF0YWJhc2VEaXNwbGF5TmFtZSwgdWludDY0X3QgY3Vy
cmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnRE
YXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlKSAtPiAodWludDY0X3QgbmV3UXVv
dGEpIFN5bmNocm9ub3VzCiAKICAgICAjIEFwcGxpY2F0aW9uIGNhY2hlIG1lc3NhZ2VzCiAgICAg
UmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTdHJpbmcgb3JpZ2luSWRlbnRpZmll
ciwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCB0b3RhbEJ5dGVzTmVlZGVkKSAtPiAo
dWludDY0X3QgbmV3UXVvdGEpIFN5bmNocm9ub3VzCiAKICAgICAjIEdlb2xvY2F0aW9uIG1lc3Nh
Z2VzCi0gICAgUmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdl
b2xvY2F0aW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQor
ICAgIFJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2Nh
dGlvbklELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklk
ZW50aWZpZXIpCiAgICAgCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICAjIE1lZGlhU3Rl
YW0gbWVzc2FnZXMKLSAgICBSZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2
NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgc3RydWN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmll
ciwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCByZXF1ZXN0KQotICAgIEVudW1l
cmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBm
cmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0
b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllcikKKyAgICBSZXF1ZXN0VXNlck1lZGlhUGVy
bWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB1c2VyTWVk
aWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpN
ZWRpYVN0cmVhbVJlcXVlc3QgcmVxdWVzdCkKKyAgICBFbnVtZXJhdGVNZWRpYURldmljZXNGb3JG
cmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW5JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcExl
dmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyKQogICAgIEJlZ2luTW9uaXRvcmluZ0NhcHR1cmVE
ZXZpY2VzKCkKICNlbmRpZgogCkBAIC00NzMsNyArNDczLDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFn
ZVByb3h5IHsKICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQotICAgIENv
bnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5i
bG9ja0hhbmRsZXIgdW5ibG9ja0hhbmRsZXIsIHVpbnQ2NF90IGZyYW1lSUQpCisgICAgQ29udGVu
dEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2Nr
SGFuZGxlciB1bmJsb2NrSGFuZGxlciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQp
CiAjZW5kaWYKIAogICAgIElzUGxheWluZ01lZGlhRGlkQ2hhbmdlKHVuc2lnbmVkIHN0YXRlLCB1
aW50NjRfdCBzb3VyY2VFbGVtZW50SUQpCkBAIC01MzksNyArNTM5LDcgQEAgbWVzc2FnZXMgLT4g
V2ViUGFnZVByb3h5IHsKICAgICBMb2FkU3luY2hyb25vdXNVUkxTY2hlbWVUYXNrKHN0cnVjdCBX
ZWJLaXQ6OlVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzIHBhcmFtZXRlcnMpIC0+IChXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBW
ZWN0b3I8Y2hhcj4gZGF0YSkgU3luY2hyb25vdXMKIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pCi0gICAgU2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh1
aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdp
biwgYm9vbCBtYXlQcm9tcHQpIC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6RGV2aWNlT3JpZW50
YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSBwZXJtaXNzaW9uU3RhdGUpIEFzeW5jCisgICAg
U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBv
cmlnaW4sIGJvb2wgbWF5UHJvbXB0KSAtPiAoZW51bTp1aW50OF90IFdlYkNvcmU6OkRldmljZU9y
aWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUgcGVybWlzc2lvblN0YXRlKSBBc3luYwog
I2VuZGlmCiAKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggZTE2OTEzN2Y1Mzg5ZDMwYmI4YjEx
YjNhOGUxZjUwY2E0M2FhMDZlZC4uOTViNTg2MzlmM2M0MGNjNjMwMGE0NGYyYzA0NDllZmZlZjhh
ZDEzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBA
IC04MjcsMjUgKzgyNywyNSBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNo
aW5nKFByb2Nlc3NMYXVuY2hlciogbGF1bmNoZXIsIElQQzo6Q29ubmVjdAogI2VuZGlmCiB9CiAK
LVdlYkZyYW1lUHJveHkqIFdlYlByb2Nlc3NQcm94eTo6d2ViRnJhbWUodWludDY0X3QgZnJhbWVJ
RCkgY29uc3QKK1dlYkZyYW1lUHJveHkqIFdlYlByb2Nlc3NQcm94eTo6d2ViRnJhbWUoRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQpIGNvbnN0CiB7CiAgICAgaWYgKCFXZWJGcmFtZVByb3h5TWFwOjpp
c1ZhbGlkS2V5KGZyYW1lSUQpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKICAgICByZXR1cm4gbV9mcmFtZU1hcC5nZXQoZnJhbWVJRCk7CiB9CiAKLWJvb2wg
V2ViUHJvY2Vzc1Byb3h5OjpjYW5DcmVhdGVGcmFtZSh1aW50NjRfdCBmcmFtZUlEKSBjb25zdAor
Ym9vbCBXZWJQcm9jZXNzUHJveHk6OmNhbkNyZWF0ZUZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlEKSBjb25zdAogewogICAgIHJldHVybiBXZWJGcmFtZVByb3h5TWFwOjppc1ZhbGlkS2V5KGZy
YW1lSUQpICYmICFtX2ZyYW1lTWFwLmNvbnRhaW5zKGZyYW1lSUQpOwogfQogCi12b2lkIFdlYlBy
b2Nlc3NQcm94eTo6ZnJhbWVDcmVhdGVkKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkZyYW1lUHJveHkm
IGZyYW1lUHJveHkpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZnJhbWVDcmVhdGVkKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBXZWJGcmFtZVByb3h5JiBmcmFtZVByb3h5KQogewogICAgIG1fZnJh
bWVNYXAuc2V0KGZyYW1lSUQsICZmcmFtZVByb3h5KTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUHJv
eHk6OmRpZERlc3Ryb3lGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQcm9jZXNzUHJv
eHk6OmRpZERlc3Ryb3lGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICAvLyBJ
ZiB0aGUgcGFnZSBpcyBjbG9zZWQgYmVmb3JlIGl0IGhhcyBoYWQgdGhlIGNoYW5jZSB0byBzZW5k
IHRoZSBEaWRDcmVhdGVNYWluRnJhbWUgbWVzc2FnZQogICAgIC8vIGJhY2sgdG8gdGhlIFVJUHJv
Y2VzcywgdGhlbiB0aGUgZnJhbWVEZXN0cm95ZWQgbWVzc2FnZSB3aWxsIHN0aWxsIGJlIHJlY2Vp
dmVkIGJlY2F1c2UgaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgK
aW5kZXggMzAwOTZkZDMwODU0OGI4OTA0OWM4MzUxMGVlYTcxYmIwNTk3NmZmYy4uMThmNDg4MGEw
YmIyZDRkODNkMmZiNmM1OTdjODdjN2NkZDZlYzg5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJWaXNpYmxl
V2ViUGFnZUNvdW50ZXIuaCIKICNpbmNsdWRlICJXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgi
CiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVzc2FnZVBvcnRDaGFubmVs
UHJvdmlkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lc3NhZ2VQb3J0SWRlbnRpZmllci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KQEAgLTk3LDcgKzk4LDcgQEAgZW51
bSBjbGFzcyBBbGxvd1Byb2Nlc3NDYWNoaW5nIHsgTm8sIFllcyB9OwogCiBjbGFzcyBXZWJQcm9j
ZXNzUHJveHkgOiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LCBwdWJsaWMgUmVzcG9uc2l2
ZW5lc3NUaW1lcjo6Q2xpZW50LCBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V2ViUHJvY2Vz
c1Byb3h5PiwgcHVibGljIENhbk1ha2VXZWFrUHRyPFdlYlByb2Nlc3NQcm94eT4sIHByaXZhdGUg
UHJvY2Vzc1Rocm90dGxlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgdHlwZWRlZiBIYXNoTWFwPHVp
bnQ2NF90LCBSZWZQdHI8V2ViRnJhbWVQcm94eT4+IFdlYkZyYW1lUHJveHlNYXA7CisgICAgdHlw
ZWRlZiBIYXNoTWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmUHRyPFdlYkZyYW1lUHJv
eHk+PiBXZWJGcmFtZVByb3h5TWFwOwogICAgIHR5cGVkZWYgSGFzaE1hcDxXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgV2ViUGFnZVByb3h5Kj4gV2ViUGFnZVByb3h5TWFwOwogICAgIHR5cGVkZWYg
SGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEFQSTo6VXNlckluaXRpYXRlZEFjdGlvbj4+IFVzZXJJ
bml0aWF0ZWRBY3Rpb25NYXA7CiAKQEAgLTE2NCw5ICsxNjUsOSBAQCBwdWJsaWM6CiAgICAgUmVz
cG9uc2l2ZW5lc3NUaW1lciYgcmVzcG9uc2l2ZW5lc3NUaW1lcigpIHsgcmV0dXJuIG1fcmVzcG9u
c2l2ZW5lc3NUaW1lcjsgfQogICAgIGJvb2wgaXNSZXNwb25zaXZlKCkgY29uc3Q7CiAKLSAgICBX
ZWJGcmFtZVByb3h5KiB3ZWJGcmFtZSh1aW50NjRfdCkgY29uc3Q7Ci0gICAgYm9vbCBjYW5DcmVh
dGVGcmFtZSh1aW50NjRfdCBmcmFtZUlEKSBjb25zdDsKLSAgICB2b2lkIGZyYW1lQ3JlYXRlZCh1
aW50NjRfdCwgV2ViRnJhbWVQcm94eSYpOworICAgIFdlYkZyYW1lUHJveHkqIHdlYkZyYW1lKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllcikgY29uc3Q7CisgICAgYm9vbCBjYW5DcmVhdGVGcmFtZShX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpIGNvbnN0OworICAgIHZvaWQgZnJhbWVDcmVhdGVkKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViRnJhbWVQcm94eSYpOwogICAgIHZvaWQgZGlzY29u
bmVjdEZyYW1lc0Zyb21QYWdlKFdlYlBhZ2VQcm94eSopOyAvLyBJbmNsdWRpbmcgbWFpbiBmcmFt
ZS4KICAgICBzaXplX3QgZnJhbWVDb3VudEluUGFnZShXZWJQYWdlUHJveHkqKSBjb25zdDsgLy8g
SW5jbHVkaW5nIG1haW4gZnJhbWUuCiAKQEAgLTMzNSw3ICszMzYsNyBAQCBwcm90ZWN0ZWQ6CiBw
cml2YXRlOgogICAgIC8vIElQQyBtZXNzYWdlIGhhbmRsZXJzLgogICAgIHZvaWQgdXBkYXRlQmFj
a0ZvcndhcmRJdGVtKGNvbnN0IEJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSYpOwotICAgIHZvaWQg
ZGlkRGVzdHJveUZyYW1lKHVpbnQ2NF90KTsKKyAgICB2b2lkIGRpZERlc3Ryb3lGcmFtZShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZGlkRGVzdHJveVVzZXJHZXN0dXJlVG9r
ZW4odWludDY0X3QpOwogCiAgICAgYm9vbCBjYW5CZUFkZGVkVG9XZWJQcm9jZXNzQ2FjaGUoKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbgppbmRleCBmM2Q1ZTkzMWU2ZGVlOTAyYTRhYzVlNWZjNWIxMGRkNDYxNWIxNWQw
Li4zMmJhZmVhOWUxMDk1OGMyNWNkMTk0ZGExODQ1MzZhZDA5M2Y3NTJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0y
Miw3ICsyMiw3IEBACiAKIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZl
ciB7CiAgICAgVXBkYXRlQmFja0ZvcndhcmRJdGVtKHN0cnVjdCBXZWJLaXQ6OkJhY2tGb3J3YXJk
TGlzdEl0ZW1TdGF0ZSBiYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUpCi0gICAgRGlkRGVzdHJveUZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQpIAorICAgIERpZERlc3Ryb3lGcmFtZShXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCkgCiAKICAgICBEaWREZXN0cm95VXNlckdlc3R1cmVUb2tlbih1
aW50NjRfdCB1c2VyR2VzdHVyZVRva2VuSUQpIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3Lm1tCmluZGV4IDY4MTFlODdhNGE0MjEwMDViZDk0YTdhYzIxNjU0
M2VjYzAwYTc3ZmMuLmMyOTkyMTQ1OGFmMDFmZDk3YTQwMDkyYzcxM2Y2N2M0MWZmNzdlN2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCkBAIC03MDEs
OSArNzAxLDkgQEAgLSAoTlNVSW50ZWdlcilfd2tfcGFnZUNvdW50Rm9yUHJpbnRGb3JtYXR0ZXI6
KF9XS1dlYlZpZXdQcmludEZvcm1hdHRlciAqKXByaW50Rm8KICAgICBpZiAoX2lzUHJpbnRpbmdU
b1BERikKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICB1aW50NjRfdCBmcmFtZUlEOworICAgIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEOwogICAgIGlmIChfV0tGcmFtZUhhbmRsZSAq
aGFuZGxlID0gcHJpbnRGb3JtYXR0ZXIuZnJhbWVUb1ByaW50KQotICAgICAgICBmcmFtZUlEID0g
aGFuZGxlLl9mcmFtZUlEOworICAgICAgICBmcmFtZUlEID0gV2ViQ29yZTo6ZnJhbWVJZGVudGlm
aWVyRnJvbUlEKGhhbmRsZS5fZnJhbWVJRCk7CiAgICAgZWxzZSBpZiAoYXV0byBtYWluRnJhbWUg
PSBfcGFnZS0+bWFpbkZyYW1lKCkpCiAgICAgICAgIGZyYW1lSUQgPSBtYWluRnJhbWUtPmZyYW1l
SUQoKTsKICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQ
cm94eUlPUy5tbQppbmRleCBiMDI4MjQ4OTIwMDNhMDQ5ODkyOWU3MDZhNTkwNDU5YTRmODcxYWNk
Li44MmQzNTQyMTdiNzA2NDIwMWUzZDdiMDc2ZTViMDU5Yjk2MDExY2YzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTEwNjYsNyArMTA2
Niw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVTbWFydE1hZ25pZmljYXRpb25JbmZvcm1h
dGlvbkZvclBvdGVudGlhbFRhcCh1aW50NjRfdCByCiAgICAgcGFnZUNsaWVudCgpLmhhbmRsZVNt
YXJ0TWFnbmlmaWNhdGlvbkluZm9ybWF0aW9uRm9yUG90ZW50aWFsVGFwKHJlcXVlc3RJRCwgcmVu
ZGVyUmVjdCwgZml0RW50aXJlUmVjdCwgdmlld3BvcnRNaW5pbXVtU2NhbGUsIHZpZXdwb3J0TWF4
aW11bVNjYWxlKTsKIH0KIAotdWludDMyX3QgV2ViUGFnZVByb3h5Ojpjb21wdXRlUGFnZXNGb3JQ
cmludGluZ0FuZERyYXdUb1BERih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHBy
aW50SW5mbywgRHJhd1RvUERGQ2FsbGJhY2s6OkNhbGxiYWNrRnVuY3Rpb24mJiBjYWxsYmFjaykK
K3VpbnQzMl90IFdlYlBhZ2VQcm94eTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9Q
REYoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBE
cmF3VG9QREZDYWxsYmFjazo6Q2FsbGJhY2tGdW5jdGlvbiYmIGNhbGxiYWNrKQogewogICAgIGlm
ICghaGFzUnVubmluZ1Byb2Nlc3MoKSkgewogICAgICAgICBjYWxsYmFjayhJUEM6OkRhdGFSZWZl
cmVuY2UoKSwgQ2FsbGJhY2tCYXNlOjpFcnJvcjo6T3duZXJXYXNJbnZhbGlkYXRlZCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9u
U2Vzc2lvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dl
YkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwCmluZGV4IGU2MzUzY2NkZDU0YWRmYTVhYTU5MDVi
ODk3MzAzNGJjMWNlOTU2ZjIuLjdmNTdmZjgwYWNkMmI5NTExNTkxMGY1OTU5NGQxZGZjZjQzNmQz
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9B
dXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwCkBAIC0xNDMsNyArMTQzLDcg
QEAgc3RhdGljIEpTVmFsdWVSZWYgZXZhbHVhdGVKYXZhU2NyaXB0Q2FsbGJhY2soSlNDb250ZXh0
UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGYKICAgICBpZiAoIWF1dG9tYXRpb25TZXNzaW9uUHJv
eHkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIAotICAg
IHVpbnQ2NF90IGZyYW1lSUQgPSBKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzBd
LCBleGNlcHRpb24pOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEID0gV2Vi
Q29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1
bWVudHNbMF0sIGV4Y2VwdGlvbikpOwogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBKU1ZhbHVl
VG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzFdLCBleGNlcHRpb24pOwogICAgIGF1dG8gcmVz
dWx0ID0gYWRvcHRSZWYoSlNWYWx1ZVRvU3RyaW5nQ29weShjb250ZXh0LCBhcmd1bWVudHNbMl0s
IGV4Y2VwdGlvbikpOwogCkBAIC0yMjAsNyArMjIwLDcgQEAgV2ViQ29yZTo6RWxlbWVudCogV2Vi
QXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZWxlbWVudEZvck5vZGVIYW5kbGUoV2ViRnJhbWUmIGZy
YW0KIAogdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpkaWRDbGVhcldpbmRvd09iamVj
dEZvckZyYW1lKFdlYkZyYW1lJiBmcmFtZSkKIHsKLSAgICB1aW50NjRfdCBmcmFtZUlEID0gZnJh
bWUuZnJhbWVJRCgpOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEID0gZnJh
bWUuZnJhbWVJRCgpOwogICAgIGlmIChKU09iamVjdFJlZiBzY3JpcHRPYmplY3QgPSBtX3dlYkZy
YW1lU2NyaXB0T2JqZWN0TWFwLnRha2UoZnJhbWVJRCkpCiAgICAgICAgIEpTVmFsdWVVbnByb3Rl
Y3QoZnJhbWUuanNDb250ZXh0KCksIHNjcmlwdE9iamVjdCk7CiAKQEAgLTIzMiw3ICsyMzIsNyBA
QCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZENsZWFyV2luZG93T2JqZWN0Rm9y
RnJhbWUoV2ViRnJhbWUmIGZyYW1lKQogICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5w
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vz
c2lvbjo6RGlkRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oY2FsbGJhY2tJRCwgZXJyb3JNZXNz
YWdlLCBlcnJvclR5cGUpLCAwKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5
OjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdl
SUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgZnVuY3Rpb24sIFZlY3RvcjxTdHJp
bmc+IGFyZ3VtZW50cywgYm9vbCBleHBlY3RzSW1wbGljaXRDYWxsYmFja0FyZ3VtZW50LCBpbnQg
Y2FsbGJhY2tUaW1lb3V0LCB1aW50NjRfdCBjYWxsYmFja0lEKQordm9pZCBXZWJBdXRvbWF0aW9u
U2Vzc2lvblByb3h5OjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBT
dHJpbmcmIGZ1bmN0aW9uLCBWZWN0b3I8U3RyaW5nPiBhcmd1bWVudHMsIGJvb2wgZXhwZWN0c0lt
cGxpY2l0Q2FsbGJhY2tBcmd1bWVudCwgaW50IGNhbGxiYWNrVGltZW91dCwgdWludDY0X3QgY2Fs
bGJhY2tJRCkKIHsKICAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
d2ViUGFnZShwYWdlSUQpOwogICAgIGlmICghcGFnZSkgewpAQCAtMjYzLDcgKzI2Myw3IEBAIHZv
aWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24o
V2ViQ29yZTo6UGFnZUlkZW50aWZpCiAgICAgICAgIHRvSlNWYWx1ZShjb250ZXh0LCBmdW5jdGlv
biksCiAgICAgICAgIHRvSlNBcnJheShjb250ZXh0LCBhcmd1bWVudHMsIHRvSlNWYWx1ZSwgJmV4
Y2VwdGlvbiksCiAgICAgICAgIEpTVmFsdWVNYWtlQm9vbGVhbihjb250ZXh0LCBleHBlY3RzSW1w
bGljaXRDYWxsYmFja0FyZ3VtZW50KSwKLSAgICAgICAgSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4
dCwgZnJhbWVJRCksCisgICAgICAgIEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIGZyYW1lSUQu
dG9VSW50NjQoKSksCiAgICAgICAgIEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIGNhbGxiYWNr
SUQpLAogICAgICAgICBKU09iamVjdE1ha2VGdW5jdGlvbldpdGhDYWxsYmFjayhjb250ZXh0LCBu
dWxscHRyLCBldmFsdWF0ZUphdmFTY3JpcHRDYWxsYmFjayksCiAgICAgICAgIEpTVmFsdWVNYWtl
TnVtYmVyKGNvbnRleHQsIGNhbGxiYWNrVGltZW91dCkKQEAgLTMwMCw3ICszMDAsNyBAQCB2b2lk
IFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdl
YkNvcmU6OlBhZ2VJZGVudGlmaQogICAgIGRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKGZy
YW1lSUQsIGNhbGxiYWNrSUQsIGV4Y2VwdGlvbk1lc3NhZ2UsIGVycm9yVHlwZSk7CiB9CiAKLXZv
aWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZGlkRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rp
b24odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgU3RyaW5nJiBy
ZXN1bHQsIGNvbnN0IFN0cmluZyYgZXJyb3JUeXBlKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lv
blByb3h5OjpkaWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgU3RyaW5nJiByZXN1bHQs
IGNvbnN0IFN0cmluZyYgZXJyb3JUeXBlKQogewogICAgIGF1dG8gZmluZFJlc3VsdCA9IG1fd2Vi
RnJhbWVQZW5kaW5nRXZhbHVhdGVKYXZhU2NyaXB0Q2FsbGJhY2tzTWFwLmZpbmQoZnJhbWVJRCk7
CiAgICAgaWYgKGZpbmRSZXN1bHQgIT0gbV93ZWJGcmFtZVBlbmRpbmdFdmFsdWF0ZUphdmFTY3Jp
cHRDYWxsYmFja3NNYXAuZW5kKCkpIHsKQEAgLTMxMywxMiArMzEzLDEzIEBAIHZvaWQgV2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eTo6ZGlkRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24odWludDY0
X3QgZnJhbWVJRCwKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6RGlkRXZhbHVh
dGVKYXZhU2NyaXB0RnVuY3Rpb24oY2FsbGJhY2tJRCwgcmVzdWx0LCBlcnJvclR5cGUpLCAwKTsK
IH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdp
dGhPcmRpbmFsKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJ
RCwgdWludDMyX3Qgb3JkaW5hbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJp
bmc+LCB1aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCisvLyBGSVhNRTogVGhlc2UgY2Fs
bGJhY2tzIHNob3VsZCB0YWtlIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4uCit2
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGlu
YWwoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgdWludDMyX3Qgb3JkaW5hbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRp
b25hbDxTdHJpbmc+LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQ
YWdlKHBhZ2VJRCk7CiAgICAgaWYgKCFwYWdlKSB7CiAgICAgICAgIFN0cmluZyB3aW5kb3dOb3RG
b3VuZEVycm9yVHlwZSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpn
ZXRFbnVtQ29uc3RhbnRWYWx1ZShJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJv
ck1lc3NhZ2U6OldpbmRvd05vdEZvdW5kKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIod2lu
ZG93Tm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5k
b3dOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAt
MzI2LDM3ICszMjcsMzcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZl
Q2hpbGRGcmFtZVdpdGhPcmRpbmFsKFdlYkNvcmU6OlBhZ2VJZGVudGkKIAogICAgIFdlYkZyYW1l
KiBmcmFtZSA9IGZyYW1lSUQgPyBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFt
ZUlEKSA6IHBhZ2UtPm1haW5XZWJGcmFtZSgpOwogICAgIGlmICghZnJhbWUpIHsKLSAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKICAgICBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lID0gZnJhbWUtPmNv
cmVGcmFtZSgpOwogICAgIGlmICghY29yZUZyYW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CiAgICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVDaGlsZEZyYW1lID0gY29yZUZyYW1lLT50cmVlKCku
c2NvcGVkQ2hpbGQob3JkaW5hbCk7CiAgICAgaWYgKCFjb3JlQ2hpbGRGcmFtZSkgewotICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAogICAgIFdlYkZyYW1lKiBjaGlsZEZyYW1lID0gV2ViRnJhbWU6OmZy
b21Db3JlRnJhbWUoKmNvcmVDaGlsZEZyYW1lKTsKICAgICBpZiAoIWNoaWxkRnJhbWUpIHsKLSAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQs
IGNoaWxkRnJhbWUtPmZyYW1lSUQoKSk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhhbmRsZShXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbm9kZUhhbmRsZSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCB1aW50NjRfdCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVD
aGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxl
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUGFnZSogcGFnZSA9
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBhZ2Up
IHsKICAgICAgICAgU3RyaW5nIHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlID0gSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVlKEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkVycm9yTWVzc2FnZTo6V2luZG93Tm90Rm91bmQpOwot
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSwgMCk7Cisg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0zNjQsMzcgKzM2NSwzNyBAQCB2b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUoV2Vi
Q29yZTo6UGFnZUlkZQogCiAgICAgV2ViRnJhbWUqIGZyYW1lID0gZnJhbWVJRCA/IFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpIDogcGFnZS0+bWFpbldlYkZyYW1lKCk7
CiAgICAgaWYgKCFmcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZv
dW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3Vu
ZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFdlYkNvcmU6
OkVsZW1lbnQqIGNvcmVFbGVtZW50ID0gZWxlbWVudEZvck5vZGVIYW5kbGUoKmZyYW1lLCBub2Rl
SGFuZGxlKTsKICAgICBpZiAoIWlzPFdlYkNvcmU6OkhUTUxGcmFtZUVsZW1lbnRCYXNlPihjb3Jl
RWxlbWVudCkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9y
VHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5
cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBXZWJDb3JlOjpGcmFtZSog
Y29yZUZyYW1lRnJvbUVsZW1lbnQgPSBkb3duY2FzdDxXZWJDb3JlOjpIVE1MRnJhbWVFbGVtZW50
QmFzZT4oKmNvcmVFbGVtZW50KS5jb250ZW50RnJhbWUoKTsKICAgICBpZiAoIWNvcmVGcmFtZUZy
b21FbGVtZW50KSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJv
clR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JU
eXBlLCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgV2ViRnJhbWUqIGZyYW1l
RnJvbUVsZW1lbnQgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqY29yZUZyYW1lRnJvbUVsZW1l
bnQpOwogICAgIGlmICghZnJhbWVGcm9tRWxlbWVudCkgewotICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVsbG9wdCwgZnJhbWVGcm9tRWxlbWVudC0+
ZnJhbWVJRCgpKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZl
Q2hpbGRGcmFtZVdpdGhOYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0
X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9w
dGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2Vi
QXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoTmFtZShXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3Ry
aW5nPiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdl
SUQpOwogICAgIGlmICghcGFnZSkgewogICAgICAgICBTdHJpbmcgd2luZG93Tm90Rm91bmRFcnJv
clR5cGUgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0RW51bUNv
bnN0YW50VmFsdWUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JNZXNzYWdl
OjpXaW5kb3dOb3RGb3VuZCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHdpbmRvd05vdEZv
dW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIod2luZG93Tm90Rm91
bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTQwMiwzNyAr
NDAzLDM3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJh
bWVXaXRoTmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllCiAKICAgICBXZWJGcmFtZSogZnJhbWUg
PSBmcmFtZUlEID8gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCkgOiBw
YWdlLT5tYWluV2ViRnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKSB7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCiAgICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZSA9IGZyYW1lLT5jb3JlRnJhbWUo
KTsKICAgICBpZiAoIWNvcmVGcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFt
ZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVO
b3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFdl
YkNvcmU6OkZyYW1lKiBjb3JlQ2hpbGRGcmFtZSA9IGNvcmVGcmFtZS0+dHJlZSgpLnNjb3BlZENo
aWxkKG5hbWUpOwogICAgIGlmICghY29yZUNoaWxkRnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKICAgICBXZWJGcmFtZSogY2hpbGRGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1l
KCpjb3JlQ2hpbGRGcmFtZSk7CiAgICAgaWYgKCFjaGlsZEZyYW1lKSB7Ci0gICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGOjpudWxsb3B0LCBjaGlsZEZyYW1l
LT5mcmFtZUlEKCkpOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29s
dmVQYXJlbnRGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWludDY0X3Qp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpy
ZXNvbHZlUGFyZW50RnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25h
bDxTdHJpbmc+LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewogICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdl
KHBhZ2VJRCk7CiAgICAgaWYgKCFwYWdlKSB7CiAgICAgICAgIFN0cmluZyB3aW5kb3dOb3RGb3Vu
ZEVycm9yVHlwZSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRF
bnVtQ29uc3RhbnRWYWx1ZShJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1l
c3NhZ2U6OldpbmRvd05vdEZvdW5kKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIod2luZG93
Tm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5kb3dO
b3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNDQw
LDIwICs0NDEsMjAgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlUGFy
ZW50RnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUkKIAogICAgIFdlYkZyYW1lKiBm
cmFtZSA9IGZyYW1lSUQgPyBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlE
KSA6IHBhZ2UtPm1haW5XZWJGcmFtZSgpOwogICAgIGlmICghZnJhbWUpIHsKLSAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKICAgICBXZWJGcmFtZSogcGFyZW50RnJhbWUgPSBmcmFtZS0+cGFyZW50RnJh
bWUoKTsKICAgICBpZiAoIXBhcmVudEZyYW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihm
cmFtZU5vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAg
ICAgY29tcGxldGlvbkhhbmRsZXIoV1RGOjpudWxsb3B0LCBwYXJlbnRGcmFtZS0+ZnJhbWVJRCgp
KTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpmb2N1c0ZyYW1lKFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eTo6Zm9jdXNGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBw
YWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIFdlYlBhZ2Uq
IHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAgICAgaWYg
KCFwYWdlKQpAQCAtNTI4LDcgKzUyOSw3IEBAIHN0YXRpYyBXZWJDb3JlOjpGbG9hdFBvaW50IGNv
bnZlcnRQb2ludEZyb21GcmFtZUNsaWVudFRvUm9vdFZpZXcoV2ViQ29yZTo6RnJhbWVWCiAgICAg
cmV0dXJuIGNsaWVudFBvaW50OwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6
OmNvbXB1dGVFbGVtZW50TGF5b3V0KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWlu
dDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5l
ZWRlZCwgQ29vcmRpbmF0ZVN5c3RlbSBjb29yZGluYXRlU3lzdGVtLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkludFJlY3QsIE9wdGlvbmFsPFdlYkNv
cmU6OkludFBvaW50PiwgYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkF1dG9t
YXRpb25TZXNzaW9uUHJveHk6OmNvbXB1dGVFbGVtZW50TGF5b3V0KFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBu
b2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIENvb3JkaW5hdGVTeXN0ZW0g
Y29vcmRpbmF0ZVN5c3RlbSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+
LCBXZWJDb3JlOjpJbnRSZWN0LCBPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIGJvb2wpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAgICAgaWYgKCFwYWdlKSB7CkBAIC02MzYsNyAr
NjM3LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpjb21wdXRlRWxlbWVudExh
eW91dChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWcKICAgICBjb21wbGV0aW9uSGFuZGxlcihX
VEY6Om51bGxvcHQsIHJlc3VsdEVsZW1lbnRCb3VuZHMsIHJlc3VsdEluVmlld0NlbnRlclBvaW50
LCBpc09ic2N1cmVkKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpzZWxl
Y3RPcHRpb25FbGVtZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3Qg
ZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9u
YWw8U3RyaW5nPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNz
aW9uUHJveHk6OnNlbGVjdE9wdGlvbkVsZW1lbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFn
ZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndl
YlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsKQEAgLTcwNCw3ICs3MDUsNyBAQCBzdGF0
aWMgV2ViQ29yZTo6SW50UmVjdCBzbmFwc2hvdFJlY3RGb3JTY3JlZW5zaG90KFdlYlBhZ2UmIHBh
Z2UsIFdlYkNvcmU6OkVsZW1lbgogICAgIHJldHVybiB7IH07CiB9CiAKLXZvaWQgV2ViQXV0b21h
dGlvblNlc3Npb25Qcm94eTo6dGFrZVNjcmVlbnNob3QoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
cGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJ
bnRvVmlld0lmTmVlZGVkLCBib29sIGNsaXBUb1ZpZXdwb3J0LCB1aW50NjRfdCBjYWxsYmFja0lE
KQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojp0YWtlU2NyZWVuc2hvdChXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBib29sIGNs
aXBUb1ZpZXdwb3J0LCB1aW50NjRfdCBjYWxsYmFja0lEKQogewogICAgIFNoYXJlYWJsZUJpdG1h
cDo6SGFuZGxlIGhhbmRsZTsKIApAQCAtNzUyLDcgKzc1Myw3IEBAIHZvaWQgV2ViQXV0b21hdGlv
blNlc3Npb25Qcm94eTo6dGFrZVNjcmVlbnNob3QoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFn
ZUlELCB1CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb246OkRpZFRha2VTY3JlZW5z
aG90KGNhbGxiYWNrSUQsIGhhbmRsZSwgeyB9KSwgMCk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlv
blNlc3Npb25Qcm94eTo6Z2V0Q29va2llc0ZvckZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25h
bDxTdHJpbmc+LCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPik+JiYgY29tcGxldGlvbkhhbmRsZXIp
Cit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmdldENvb2tpZXNGb3JGcmFtZShXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFZlY3RvcjxXZWJD
b3JlOjpDb29raWU+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQYWdlKiBwYWdl
ID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAgIGlmICghcGFn
ZSkgewpAQCAtNzc3LDcgKzc3OCw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6
Z2V0Q29va2llc0ZvckZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJCiAgICAgY29t
cGxldGlvbkhhbmRsZXIoV1RGOjpudWxsb3B0LCBmb3VuZENvb2tpZXMpOwogfQogCi12b2lkIFdl
YkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRlbGV0ZUNvb2tpZShXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBjb29raWVOYW1lLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
dm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpkZWxldGVDb29raWUoV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3Ry
aW5nIGNvb2tpZU5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNz
aW9uUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9t
YXRpb25TZXNzaW9uUHJveHkuaAppbmRleCAxMTY3NjQ1Mjc3ZGJjMTkzMGE1YTdhNTk3ZGNiYzJk
ZjNlY2Y1NWM5Li41ZTFiMGZjZmYwZmM4NTk4YjhjNzk3NzBhNjhiMTgxZTc4ZjYzOTE5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9u
U2Vzc2lvblByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24v
V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAi
Q29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIkNvb3JkaW5hdGVTeXN0ZW0uaCIKICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9KU0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmll
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNTEsNyArNTIsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IGRpZENsZWFyV2luZG93T2JqZWN0Rm9yRnJhbWUoV2ViRnJhbWUmKTsKIAotICAgIHZvaWQgZGlk
RXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgY2Fs
bGJhY2tJRCwgY29uc3QgU3RyaW5nJiByZXN1bHQsIGNvbnN0IFN0cmluZyYgZXJyb3JUeXBlKTsK
KyAgICB2b2lkIGRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgdWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgU3RyaW5nJiByZXN1bHQsIGNvbnN0
IFN0cmluZyYgZXJyb3JUeXBlKTsKIAogcHJpdmF0ZToKICAgICBKU09iamVjdFJlZiBzY3JpcHRP
YmplY3RGb3JGcmFtZShXZWJGcmFtZSYpOwpAQCAtNjEsMjIgKzYyLDIyIEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KSBvdmVycmlkZTsKIAogICAgIC8vIENhbGxlZCBieSBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5
IG1lc3NhZ2VzCi0gICAgdm9pZCBldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBmdW5jdGlvbiwg
VmVjdG9yPFN0cmluZz4gYXJndW1lbnRzLCBib29sIGV4cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJn
dW1lbnQsIGludCBjYWxsYmFja1RpbWVvdXQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwotICAgIHZv
aWQgcmVzb2x2ZUNoaWxkRnJhbWVXaXRoT3JkaW5hbChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
dWludDY0X3QgZnJhbWVJRCwgdWludDMyX3Qgb3JkaW5hbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChPcHRpb25hbDxTdHJpbmc+LCB1aW50NjRfdCk+JiYpOwotICAgIHZvaWQgcmVzb2x2ZUNoaWxk
RnJhbWVXaXRoTm9kZUhhbmRsZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJh
bWVJRCwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9w
dGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4mJik7Ci0gICAgdm9pZCByZXNvbHZlQ2hpbGRGcmFt
ZVdpdGhOYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwg
dWludDY0X3QpPiYmKTsKLSAgICB2b2lkIHJlc29sdmVQYXJlbnRGcmFtZShXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRp
b25hbDxTdHJpbmc+LCB1aW50NjRfdCk+JiYpOwotICAgIHZvaWQgZm9jdXNGcmFtZShXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBjb21wdXRlRWxl
bWVudExheW91dChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgU3Ry
aW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgQ29vcmRpbmF0ZVN5
c3RlbSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBXZWJDb3JlOjpJ
bnRSZWN0LCBPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIGJvb2wpPiYmKTsKLSAgICB2b2lk
IHNlbGVjdE9wdGlvbkVsZW1lbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZy
YW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFs
PFN0cmluZz4pPiYmKTsKLSAgICB2b2lkIHRha2VTY3JlZW5zaG90KFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJ
bnRvVmlld0lmTmVlZGVkLCBib29sIGNsaXBUb1ZpZXdwb3J0LCB1aW50NjRfdCBjYWxsYmFja0lE
KTsKLSAgICB2b2lkIGdldENvb2tpZXNGb3JGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
dWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+
LCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPik+JiYpOwotICAgIHZvaWQgZGVsZXRlQ29va2llKFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgY29va2llTmFt
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJik7CisgICAgdm9p
ZCBldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGZ1bmN0aW9uLCBWZWN0b3I8U3Ry
aW5nPiBhcmd1bWVudHMsIGJvb2wgZXhwZWN0c0ltcGxpY2l0Q2FsbGJhY2tBcmd1bWVudCwgaW50
IGNhbGxiYWNrVGltZW91dCwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgdm9pZCByZXNvbHZl
Q2hpbGRGcmFtZVdpdGhPcmRpbmFsKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIHVpbnQzMl90IG9yZGluYWwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
T3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKT4mJik7CisgICAgdm9p
ZCByZXNvbHZlQ2hpbGRGcmFtZVdpdGhOb2RlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbm9kZUhhbmRsZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIpPiYmKTsKKyAgICB2b2lkIHJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBu
YW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllcik+JiYpOworICAgIHZvaWQgcmVzb2x2ZVBhcmVudEZyYW1lKFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKT4mJik7
CisgICAgdm9pZCBmb2N1c0ZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgY29tcHV0ZUVsZW1lbnRMYXlvdXQoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgU3RyaW5nIG5vZGVIYW5k
bGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgQ29vcmRpbmF0ZVN5c3RlbSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBXZWJDb3JlOjpJbnRSZWN0LCBPcHRp
b25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIGJvb2wpPiYmKTsKKyAgICB2b2lkIHNlbGVjdE9wdGlv
bkVsZW1lbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgU3RyaW5nIG5vZGVIYW5kbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3Ry
aW5nPik+JiYpOworICAgIHZvaWQgdGFrZVNjcmVlbnNob3QoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Ny
b2xsSW50b1ZpZXdJZk5lZWRlZCwgYm9vbCBjbGlwVG9WaWV3cG9ydCwgdWludDY0X3QgY2FsbGJh
Y2tJRCk7CisgICAgdm9pZCBnZXRDb29raWVzRm9yRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRp
b25hbDxTdHJpbmc+LCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPik+JiYpOworICAgIHZvaWQgZGVs
ZXRlQ29va2llKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIFN0cmluZyBjb29raWVOYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0
cmluZz4pPiYmKTsKIAogICAgIFN0cmluZyBtX3Nlc3Npb25JZGVudGlmaWVyOwogCi0gICAgSGFz
aE1hcDx1aW50NjRfdCwgSlNPYmplY3RSZWY+IG1fd2ViRnJhbWVTY3JpcHRPYmplY3RNYXA7Ci0g
ICAgSGFzaE1hcDx1aW50NjRfdCwgVmVjdG9yPHVpbnQ2NF90Pj4gbV93ZWJGcmFtZVBlbmRpbmdF
dmFsdWF0ZUphdmFTY3JpcHRDYWxsYmFja3NNYXA7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIEpTT2JqZWN0UmVmPiBtX3dlYkZyYW1lU2NyaXB0T2JqZWN0TWFwOworICAg
IEhhc2hNYXA8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBWZWN0b3I8dWludDY0X3Q+PiBtX3dl
YkZyYW1lUGVuZGluZ0V2YWx1YXRlSmF2YVNjcmlwdENhbGxiYWNrc01hcDsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1
dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkubWVz
c2FnZXMuaW4KaW5kZXggZDcyZjg5ZDI2MzU5Y2YwMWNjZmQ1MzFlOTZlMDFmNDQ0MDlhYWY1OC4u
ZjI3NjQ5YjliNzMxMGJhNTkxM2IwZDZmZmZlMTdmMjI0ZWM1ZjYzYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9X
ZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yMSwyMSArMjEsMjEgQEAK
ICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KIAogbWVzc2FnZXMgLT4gV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eSB7
Ci0gICAgRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
cGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgZnVuY3Rpb24sIFZlY3RvcjxTdHJpbmc+
IGFyZ3VtZW50cywgYm9vbCBleHBlY3RzSW1wbGljaXRDYWxsYmFja0FyZ3VtZW50LCBpbnQgY2Fs
bGJhY2tUaW1lb3V0LCB1aW50NjRfdCBjYWxsYmFja0lEKQorICAgIEV2YWx1YXRlSmF2YVNjcmlw
dEZ1bmN0aW9uKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBmdW5jdGlvbiwgVmVjdG9yPFN0cmluZz4gYXJndW1l
bnRzLCBib29sIGV4cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJndW1lbnQsIGludCBjYWxsYmFja1Rp
bWVvdXQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAKLSAgICBSZXNvbHZlQ2hpbGRGcmFtZVdpdGhP
cmRpbmFsKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwg
dWludDMyX3Qgb3JkaW5hbCkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCB1aW50NjRf
dCBmcmFtZUlEKSBBc3luYwotICAgIFJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9k
ZUhhbmRsZSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCB1aW50NjRfdCBmcmFtZUlE
KSBBc3luYwotICAgIFJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUoV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbmFtZSkgLT4gKE9wdGlvbmFs
PFN0cmluZz4gZXJyb3JUeXBlLCB1aW50NjRfdCBmcmFtZUlEKSBBc3luYwotICAgIFJlc29sdmVQ
YXJlbnRGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1l
SUQpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgdWludDY0X3QgZnJhbWVJRCkgQXN5
bmMKKyAgICBSZXNvbHZlQ2hpbGRGcmFtZVdpdGhPcmRpbmFsKFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQzMl90IG9y
ZGluYWwpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQpIEFzeW5jCisgICAgUmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhhbmRs
ZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JU
eXBlLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkgQXN5bmMKKyAgICBSZXNvbHZl
Q2hpbGRGcmFtZVdpdGhOYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBuYW1lKSAtPiAoT3B0aW9uYWw8U3Ry
aW5nPiBlcnJvclR5cGUsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSBBc3luYwor
ICAgIFJlc29sdmVQYXJlbnRGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJv
clR5cGUsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSBBc3luYwogCi0gICAgRm9j
dXNGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQp
CisgICAgRm9jdXNGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogCi0gICAgQ29tcHV0ZUVsZW1lbnRMYXlvdXQoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9k
ZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBlbnVtOnVpbnQ4X3QgV2ViS2l0
OjpDb29yZGluYXRlU3lzdGVtIGNvb3JkaW5hdGVTeXN0ZW0pIC0+IChPcHRpb25hbDxTdHJpbmc+
IGVycm9yVHlwZSwgV2ViQ29yZTo6SW50UmVjdCByZWN0LCBPcHRpb25hbDxXZWJDb3JlOjpJbnRQ
b2ludD4gaW5WaWV3Q2VudGVyUG9pbnQsIGJvb2wgaXNPYnNjdXJlZCkgQXN5bmMKKyAgICBDb21w
dXRlRWxlbWVudExheW91dChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJ
bnRvVmlld0lmTmVlZGVkLCBlbnVtOnVpbnQ4X3QgV2ViS2l0OjpDb29yZGluYXRlU3lzdGVtIGNv
b3JkaW5hdGVTeXN0ZW0pIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgV2ViQ29yZTo6
SW50UmVjdCByZWN0LCBPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4gaW5WaWV3Q2VudGVyUG9p
bnQsIGJvb2wgaXNPYnNjdXJlZCkgQXN5bmMKIAotICAgIFNlbGVjdE9wdGlvbkVsZW1lbnQoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9k
ZUhhbmRsZSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlKSBBc3luYworICAgIFNlbGVj
dE9wdGlvbkVsZW1lbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUpIC0+IChPcHRpb25hbDxT
dHJpbmc+IGVycm9yVHlwZSkgQXN5bmMKIAotICAgIFRha2VTY3JlZW5zaG90KFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUs
IGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgYm9vbCBjbGlwVG9WaWV3cG9ydCwgdWludDY0
X3QgY2FsbGJhY2tJRCkKKyAgICBUYWtlU2NyZWVuc2hvdChXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgbm9kZUhh
bmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBib29sIGNsaXBUb1ZpZXdwb3J0LCB1
aW50NjRfdCBjYWxsYmFja0lEKQogCi0gICAgR2V0Q29va2llc0ZvckZyYW1lKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCkgLT4gKE9wdGlvbmFsPFN0cmlu
Zz4gZXJyb3JUeXBlLCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBjb29raWVzKSBBc3luYwotICAg
IERlbGV0ZUNvb2tpZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFN0cmluZyBjb29raWVOYW1lKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUp
IEFzeW5jCisgICAgR2V0Q29va2llc0ZvckZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIC0+IChPcHRpb25hbDxTdHJp
bmc+IGVycm9yVHlwZSwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykgQXN5bmMKKyAg
ICBEZWxldGVDb29raWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIGNvb2tpZU5hbWUpIC0+IChPcHRpb25hbDxT
dHJpbmc+IGVycm9yVHlwZSkgQXN5bmMKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dL
V2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tCmluZGV4IDA5OTc2MzcyZjA3Mzc1N2VlZGIxNzQ5M2Q3
MzFmYTBhM2Q0NjY4YzYuLjI1NzNlNmQ0ODU5ZTVlMGNmZTRhNjdmNWY0ZjNiYmE2YjMwZmU4NjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Q29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5t
bQpAQCAtNDgsNyArNDgsNyBAQCBAaW1wbGVtZW50YXRpb24gV0tXZWJQcm9jZXNzUGx1Z0luRnJh
bWUgewogCiArIChpbnN0YW5jZXR5cGUpbG9va1VwRnJhbWVGcm9tSGFuZGxlOihfV0tGcmFtZUhh
bmRsZSAqKWhhbmRsZQogewotICAgIHJldHVybiB3cmFwcGVyKFdlYktpdDo6V2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkud2ViRnJhbWUoaGFuZGxlLl9mcmFtZUlEKSk7CisgICAgcmV0dXJuIHdyYXBw
ZXIoV2ViS2l0OjpXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShXZWJDb3JlOjpmcmFt
ZUlkZW50aWZpZXJGcm9tSUQoaGFuZGxlLl9mcmFtZUlEKSkpOwogfQogCiAtICh2b2lkKWRlYWxs
b2MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRl
clN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRl
clN0cmF0ZWd5LmNwcAppbmRleCBjNDhjZGQ4NTc5NGQ5MjE2OTk1MjBjMmQ4MzhhNWI2NzBmM2Iy
ZmYxLi41ZGZjNDI1Nzg4NGJjMjkyYTRkYWU4YzQ0NWU5MmI3MzI3YTk2Y2EyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3ku
Y3BwCkBAIC0xNTksNyArMTU5LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVM
b2FkKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlciwgQ2FjaGVkUmVzb3UKIAogICAgIFdl
YlJlc291cmNlTG9hZGVyOjpUcmFja2luZ1BhcmFtZXRlcnMgdHJhY2tpbmdQYXJhbWV0ZXJzOwog
ICAgIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQgPSBmcmFtZUxvYWRlckNsaWVudC5wYWdlSUQo
KS52YWx1ZU9yKFBhZ2VJZGVudGlmaWVyIHsgfSk7Ci0gICAgdHJhY2tpbmdQYXJhbWV0ZXJzLmZy
YW1lSUQgPSBmcmFtZUxvYWRlckNsaWVudC5mcmFtZUlEKCkudmFsdWVPcigwKTsKKyAgICB0cmFj
a2luZ1BhcmFtZXRlcnMuZnJhbWVJRCA9IGZyYW1lTG9hZGVyQ2xpZW50LmZyYW1lSUQoKS52YWx1
ZU9yKEZyYW1lSWRlbnRpZmllciB7IH0pOwogICAgIHRyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJj
ZUlEID0gaWRlbnRpZmllcjsKICAgICBhdXRvIHNlc3Npb25JRCA9IGZyYW1lTG9hZGVyQ2xpZW50
LnNlc3Npb25JRCgpOwogCkBAIC0xNjgsNyArMTY4LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVn
eTo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlciwgQ2FjaGVkUmVz
b3UKICAgICAvLyB0aGVuIHdlIHNob3VsZCByZW1lbWJlciB0aGUgUmVzb3VyY2VMb2FkZXIgaW4g
b3VyIHJlY29yZHMgYnV0IG5vdCBzY2hlZHVsZSBpdCBpbiB0aGUgTmV0d29ya1Byb2Nlc3MuCiAg
ICAgaWYgKHJlc291cmNlTG9hZGVyLmRvY3VtZW50TG9hZGVyKCktPnNjaGVkdWxlQXJjaGl2ZUxv
YWQocmVzb3VyY2VMb2FkZXIsIHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKSkpIHsKICAgICAgICAg
TE9HKE5ldHdvcmtTY2hlZHVsaW5nLCAiKFdlYlByb2Nlc3MpIFdlYkxvYWRlclN0cmF0ZWd5Ojpz
Y2hlZHVsZUxvYWQsIHVybCAnJXMnIHdpbGwgYmUgaGFuZGxlZCBhcyBhbiBhcmNoaXZlIHJlc291
cmNlLiIsIHJlc291cmNlTG9hZGVyLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAg
ICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2Fk
OiBVUkwgd2lsbCBiZSBoYW5kbGVkIGFzIGFuIGFyY2hpdmUgcmVzb3VyY2UgKGZyYW1lID0gJXAs
IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQg
PSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRl
cnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBpZGVudGlm
aWVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNj
aGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgaGFuZGxlZCBhcyBhbiBhcmNoaXZlIHJlc291cmNlIChm
cmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBy
ZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tp
bmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJ
RC50b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsKICAgICAgICAgbV93ZWJSZXNvdXJjZUxvYWRlcnMu
c2V0KGlkZW50aWZpZXIsIFdlYlJlc291cmNlTG9hZGVyOjpjcmVhdGUocmVzb3VyY2VMb2FkZXIs
IHRyYWNraW5nUGFyYW1ldGVycykpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTc2LDE0
ICsxNzYsMTQgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKFJlc291cmNl
TG9hZGVyJiByZXNvdXJjZUxvYWRlciwgQ2FjaGVkUmVzb3UKIAogICAgIGlmIChyZXNvdXJjZUxv
YWRlci5kb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLm1heWJlTG9hZFJl
c291cmNlKHJlc291cmNlTG9hZGVyLCByZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCksIHJlc291cmNl
TG9hZGVyLnJlcXVlc3QoKS51cmwoKSkpIHsKICAgICAgICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5n
LCAiKFdlYlByb2Nlc3MpIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQsIHVybCAnJXMn
IHdpbGwgYmUgbG9hZGVkIGZyb20gYXBwbGljYXRpb24gY2FjaGUuIiwgcmVzb3VyY2VMb2FkZXIu
dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGxvYWRlZCBm
cm9tIGFwcGxpY2F0aW9uIGNhY2hlIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3Vy
Y2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0
cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7CisgICAgICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJl
IGxvYWRlZCBmcm9tIGFwcGxpY2F0aW9uIGNhY2hlIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIp
IiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJ
bnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlmaWVy
KTsKICAgICAgICAgbV93ZWJSZXNvdXJjZUxvYWRlcnMuc2V0KGlkZW50aWZpZXIsIFdlYlJlc291
cmNlTG9hZGVyOjpjcmVhdGUocmVzb3VyY2VMb2FkZXIsIHRyYWNraW5nUGFyYW1ldGVycykpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKHJlc291cmNlTG9hZGVyLnJlcXVlc3Qo
KS51cmwoKS5wcm90b2NvbElzRGF0YSgpKSB7CiAgICAgICAgIExPRyhOZXR3b3JrU2NoZWR1bGlu
ZywgIihXZWJQcm9jZXNzKSBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkLCB1cmwgJyVz
JyB3aWxsIGJlIGxvYWRlZCBhcyBkYXRhLiIsIHJlc291cmNlTG9hZGVyLnVybCgpLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNl
TG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBsb2FkZWQgYXMgZGF0YSAoZnJhbWUg
PSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3Vy
Y2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFy
YW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIGlk
ZW50aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVy
LCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBsb2FkZWQgYXMgZGF0YSAoZnJhbWUgPSAlcCwg
cGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9
ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVy
cy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQo
KSwgaWRlbnRpZmllcik7CiAgICAgICAgIHN0YXJ0TG9jYWxMb2FkKHJlc291cmNlTG9hZGVyKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE5MSw3ICsxOTEsNyBAQCB2b2lkIFdlYkxvYWRl
clN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTG9hZGVyLCBD
YWNoZWRSZXNvdQogI2lmIFVTRShRVUlDS19MT09LKQogICAgIGlmIChpc1F1aWNrTG9va1ByZXZp
ZXdVUkwocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnVybCgpKSkgewogICAgICAgICBMT0coTmV0
d29ya1NjaGVkdWxpbmcsICIoV2ViUHJvY2VzcykgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxl
TG9hZCwgdXJsICclcycgd2lsbCBiZSBoYW5kbGVkIGFzIGEgUXVpY2tMb29rIHJlc291cmNlLiIs
IHJlc291cmNlTG9hZGVyLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwg
d2lsbCBiZSBoYW5kbGVkIGFzIGEgUXVpY2tMb29rIHJlc291cmNlIChmcmFtZSA9ICVwLCBwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIg
UFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBh
Z2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7
CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVs
ZUxvYWQ6IFVSTCB3aWxsIGJlIGhhbmRsZWQgYXMgYSBRdWlja0xvb2sgcmVzb3VyY2UgKGZyYW1l
ID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1Bh
cmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRv
VUludDY0KCksIGlkZW50aWZpZXIpOwogICAgICAgICBzdGFydExvY2FsTG9hZChyZXNvdXJjZUxv
YWRlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yMDIsNyArMjAyLDcgQEAgdm9pZCBX
ZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxv
YWRlciwgQ2FjaGVkUmVzb3UKICAgICAvLyBodHRwczovL2Jsb2dzLmdub21lLm9yZy9hbGV4bC8y
MDEyLzAxLzI2L3Jlc291cmNlcy1pbi1nbGliLwogICAgIGlmIChyZXNvdXJjZUxvYWRlci5yZXF1
ZXN0KCkudXJsKCkucHJvdG9jb2xJcygicmVzb3VyY2UiKSkgewogICAgICAgICBMT0coTmV0d29y
a1NjaGVkdWxpbmcsICIoV2ViUHJvY2VzcykgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9h
ZCwgdXJsICclcycgd2lsbCBiZSBoYW5kbGVkIGFzIGEgR1Jlc291cmNlLiIsIHJlc291cmNlTG9h
ZGVyLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBoYW5k
bGVkIGFzIGEgR1Jlc291cmNlIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VM
b2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFj
a2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7CisgICAgICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGhh
bmRsZWQgYXMgYSBHUmVzb3VyY2UgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJj
ZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRy
YWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIGlkZW50aWZpZXIpOwogICAgICAg
ICBzdGFydExvY2FsTG9hZChyZXNvdXJjZUxvYWRlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9
CkBAIC0yMTIsMTEgKzIxMiwxMSBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxv
YWQoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTG9hZGVyLCBDYWNoZWRSZXNvdQogICAgIFdlYlNl
cnZpY2VXb3JrZXJQcm92aWRlcjo6c2luZ2xldG9uKCkuaGFuZGxlRmV0Y2gocmVzb3VyY2VMb2Fk
ZXIsIHNlc3Npb25JRCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwg
W3RoaXMsIHRyYWNraW5nUGFyYW1ldGVycywgaWRlbnRpZmllciwgc2Vzc2lvbklELCBzaG91bGRD
bGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBtYXhpbXVtQnVmZmVyaW5nVGltZSA9
IG1heGltdW1CdWZmZXJpbmdUaW1lKHJlc291cmNlKSwgcmVzb3VyY2VMb2FkZXIgPSBtYWtlUmVm
KHJlc291cmNlTG9hZGVyKV0gKFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6UmVzdWx0IHJlc3Vs
dCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChyZXN1bHQgIT0gU2VydmljZVdvcmtlckNsaWVudEZl
dGNoOjpSZXN1bHQ6OlVuaGFuZGxlZCkgewogICAgICAgICAgICAgTE9HKE5ldHdvcmtTY2hlZHVs
aW5nLCAiKFdlYlByb2Nlc3MpIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQsIHVybCAn
JXMnIHdpbGwgYmUgc2NoZWR1bGVkIHRocm91Z2ggU2VydmljZVdvcmtlciBoYW5kbGUgZmV0Y2gg
YWxnb3JpdGhtIiwgcmVzb3VyY2VMb2FkZXItPnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEo
KSk7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLmdl
dCgpLCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBzY2hlZHVsZWQgdGhyb3VnaCBTZXJ2aWNl
V29ya2VyIGhhbmRsZSBmZXRjaCBhbGdvcml0aG0gKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiki
LCByZXNvdXJjZUxvYWRlci0+ZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJ
bnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7CisgICAgICAg
ICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLmdldCgpLCAic2NoZWR1
bGVMb2FkOiBVUkwgd2lsbCBiZSBzY2hlZHVsZWQgdGhyb3VnaCBTZXJ2aWNlV29ya2VyIGhhbmRs
ZSBmZXRjaCBhbGdvcml0aG0gKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxv
YWRlci0+ZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFj
a2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBpZiAocmVzb3VyY2VMb2FkZXItPm9wdGlv
bnMoKS5zZXJ2aWNlV29ya2Vyc01vZGUgPT0gU2VydmljZVdvcmtlcnNNb2RlOjpPbmx5KSB7Ci0g
ICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLmdl
dCgpLCAic2NoZWR1bGVMb2FkOiB1bmFibGUgdG8gc2NoZWR1bGUgVVJMIHRocm91Z2ggU2Vydmlj
ZVdvcmtlciBoYW5kbGUgZmV0Y2ggYWxnb3JpdGhtIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIp
IiwgcmVzb3VyY2VMb2FkZXItPmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9V
SW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIGlkZW50aWZpZXIpOworICAgICAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlci5nZXQoKSwg
InNjaGVkdWxlTG9hZDogdW5hYmxlIHRvIHNjaGVkdWxlIFVSTCB0aHJvdWdoIFNlcnZpY2VXb3Jr
ZXIgaGFuZGxlIGZldGNoIGFsZ29yaXRobSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJl
c291cmNlTG9hZGVyLT5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0
KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIGlkZW50aWZpZXIpOwog
ICAgICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbcmVzb3VyY2VMb2FkZXIgPSBXVEZNb3ZlKHJl
c291cmNlTG9hZGVyKV0gewogICAgICAgICAgICAgICAgIGF1dG8gZXJyb3IgPSBpbnRlcm5hbEVy
cm9yKHJlc291cmNlTG9hZGVyLT5yZXF1ZXN0KCkudXJsKCkpOwogICAgICAgICAgICAgICAgIGVy
cm9yLnNldFR5cGUoUmVzb3VyY2VFcnJvcjo6VHlwZTo6Q2FuY2VsbGF0aW9uKTsKQEAgLTIyOCwx
MyArMjI4LDEzIEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZChSZXNvdXJj
ZUxvYWRlciYgcmVzb3VyY2VMb2FkZXIsIENhY2hlZFJlc291CiAgICAgICAgIGlmICghV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkud2ViTG9hZGVyU3RyYXRlZ3koKS50cnlMb2FkaW5nVXNpbmdVUkxT
Y2hlbWVIYW5kbGVyKHJlc291cmNlTG9hZGVyKSkKICAgICAgICAgICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLndlYkxvYWRlclN0cmF0ZWd5KCkuc2NoZWR1bGVMb2FkRnJvbU5ldHdvcmtQcm9j
ZXNzKHJlc291cmNlTG9hZGVyLmdldCgpLCByZXNvdXJjZUxvYWRlci0+cmVxdWVzdCgpLCB0cmFj
a2luZ1BhcmFtZXRlcnMsIHNlc3Npb25JRCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hU
VFBSZWRpcmVjdCwgbWF4aW11bUJ1ZmZlcmluZ1RpbWUpOwogICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLmdldCgpLCAic2NoZWR1
bGVMb2FkOiBVUkwgbm90IGhhbmRsZWQgYnkgYW55IGhhbmRsZXJzIChmcmFtZSA9ICVwLCBwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIg
UFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXItPmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5w
YWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIGlkZW50aWZpZXIp
OworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlci5nZXQo
KSwgInNjaGVkdWxlTG9hZDogVVJMIG5vdCBoYW5kbGVkIGJ5IGFueSBoYW5kbGVycyAoZnJhbWUg
PSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3Vy
Y2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLT5mcmFtZSgpLCB0cmFja2luZ1Bh
cmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRv
VUludDY0KCksIGlkZW50aWZpZXIpOwogICAgIH0pOwogI2Vsc2UKICAgICBpZiAoIXRyeUxvYWRp
bmdVc2luZ1VSTFNjaGVtZUhhbmRsZXIocmVzb3VyY2VMb2FkZXIpKQogICAgICAgICBzY2hlZHVs
ZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MocmVzb3VyY2VMb2FkZXIsIHJlc291cmNlTG9hZGVyLnJl
cXVlc3QoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLCBzZXNzaW9uSUQsIHNob3VsZENsZWFyUmVmZXJy
ZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIG1heGltdW1CdWZmZXJpbmdUaW1lKHJlc291cmNlKSk7
CiAgICAgZWxzZQotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVy
LCAic2NoZWR1bGVMb2FkOiBVUkwgbm90IGhhbmRsZWQgYnkgYW55IGhhbmRsZXJzIChmcmFtZSA9
ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJj
ZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJh
bWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgaWRl
bnRpZmllcik7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIs
ICJzY2hlZHVsZUxvYWQ6IFVSTCBub3QgaGFuZGxlZCBieSBhbnkgaGFuZGxlcnMgKGZyYW1lID0g
JXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNl
SUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1BhcmFt
ZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUlu
dDY0KCksIGlkZW50aWZpZXIpOwogI2VuZGlmCiB9CiAKQEAgLTMyNSw3ICszMjUsNyBAQCB2b2lk
IFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MoUmVzb3Vy
Y2VMb2FkZXImIHJlc291cmNlTAogICAgIGlmIChsb2FkUGFyYW1ldGVycy5vcHRpb25zLm1vZGUg
IT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOYXZpZ2F0ZSkgewogICAgICAgICBBU1NFUlQobG9hZFBh
cmFtZXRlcnMuc291cmNlT3JpZ2luKTsKICAgICAgICAgaWYgKCFsb2FkUGFyYW1ldGVycy5zb3Vy
Y2VPcmlnaW4pIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQocmVz
b3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IG5vIHNvdXJjZU9yaWdpbiAoZnJhbWUgPSAlcCwg
cHJpb3JpdHkgPSAlZCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQg
IiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHN0
YXRpY19jYXN0PGludD4ocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnByaW9yaXR5KCkpLCBsb2Fk
UGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJ
RCwgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllcik7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUl9JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBubyBzb3VyY2VP
cmlnaW4gKGZyYW1lID0gJXAsIHByaW9yaXR5ID0gJWQsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJj
ZUxvYWRlci5mcmFtZSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlTG9hZGVyLnJlcXVlc3Qo
KS5wcmlvcml0eSgpKSwgbG9hZFBhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIGxvYWRQ
YXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmll
cik7CiAgICAgICAgICAgICBzY2hlZHVsZUludGVybmFsbHlGYWlsZWRMb2FkKHJlc291cmNlTG9h
ZGVyKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMzQ4LDkgKzM0OCw5IEBA
IHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZEZyb21OZXR3b3JrUHJvY2VzcyhS
ZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMCiAKICAgICBBU1NFUlQoKGxvYWRQYXJhbWV0ZXJzLndl
YlBhZ2VJRCAmJiBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlEKSB8fCBsb2FkUGFyYW1ldGVycy5j
bGllbnRDcmVkZW50aWFsUG9saWN5ID09IENsaWVudENyZWRlbnRpYWxQb2xpY3k6OkNhbm5vdEFz
a0NsaWVudEZvckNyZWRlbnRpYWxzKTsKIAotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVz
b3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFJlc291cmNlIGlzIGJlaW5nIHNjaGVkdWxlZCB3
aXRoIHRoZSBOZXR3b3JrUHJvY2VzcyAoZnJhbWUgPSAlcCwgcHJpb3JpdHkgPSAlZCwgcGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBS
SXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHN0YXRpY19jYXN0PGludD4ocmVzb3Vy
Y2VMb2FkZXIucmVxdWVzdCgpLnByaW9yaXR5KCkpLCBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQu
dG9VSW50NjQoKSwgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRCwgbG9hZFBhcmFtZXRlcnMuaWRl
bnRpZmllcik7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNj
aGVkdWxlTG9hZDogUmVzb3VyY2UgaXMgYmVpbmcgc2NoZWR1bGVkIHdpdGggdGhlIE5ldHdvcmtQ
cm9jZXNzIChmcmFtZSA9ICVwLCBwcmlvcml0eSA9ICVkLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3Vy
Y2VMb2FkZXIuZnJhbWUoKSwgc3RhdGljX2Nhc3Q8aW50PihyZXNvdXJjZUxvYWRlci5yZXF1ZXN0
KCkucHJpb3JpdHkoKSksIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBsb2Fk
UGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZp
ZXIpOwogICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpTY2hlZHVsZVJlc291cmNlTG9hZChsb2FkUGFyYW1ldGVycyksIDAp
KSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIs
ICJzY2hlZHVsZUxvYWQ6IFVuYWJsZSB0byBzY2hlZHVsZSByZXNvdXJjZSB3aXRoIHRoZSBOZXR3
b3JrUHJvY2VzcyAoZnJhbWUgPSAlcCwgcHJpb3JpdHkgPSAlZCwgcGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJl
c291cmNlTG9hZGVyLmZyYW1lKCksIHN0YXRpY19jYXN0PGludD4ocmVzb3VyY2VMb2FkZXIucmVx
dWVzdCgpLnByaW9yaXR5KCkpLCBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwg
bG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRCwgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllcik7Cisg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hl
ZHVsZUxvYWQ6IFVuYWJsZSB0byBzY2hlZHVsZSByZXNvdXJjZSB3aXRoIHRoZSBOZXR3b3JrUHJv
Y2VzcyAoZnJhbWUgPSAlcCwgcHJpb3JpdHkgPSAlZCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZy
YW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNl
TG9hZGVyLmZyYW1lKCksIHN0YXRpY19jYXN0PGludD4ocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgp
LnByaW9yaXR5KCkpLCBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbG9hZFBh
cmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVy
KTsKICAgICAgICAgLy8gV2UgcHJvYmFibHkgZmFpbGVkIHRvIHNjaGVkdWxlIHRoaXMgbG9hZCB3
aXRoIHRoZSBOZXR3b3JrUHJvY2VzcyBiZWNhdXNlIGl0IGhhZCBjcmFzaGVkLgogICAgICAgICAv
LyBUaGlzIGxvYWQgd2lsbCBuZXZlciBzdWNjZWVkIHNvIHdlIHdpbGwgc2NoZWR1bGUgaXQgdG8g
ZmFpbCBhc3luY2hyb25vdXNseS4KICAgICAgICAgc2NoZWR1bGVJbnRlcm5hbGx5RmFpbGVkTG9h
ZChyZXNvdXJjZUxvYWRlcik7CkBAIC01MjAsMTggKzUyMCwxOCBAQCB2b2lkIFdlYkxvYWRlclN0
cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KEZyYW1lTG9hZGVyJiBmcmFtZUxvYWRl
ciwgdW5zaQogICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSB3ZWJGcmFtZSA/IHdlYkZyYW1lLT5wYWdl
KCkgOiBudWxscHRyOwogCiAgICAgYXV0byBwYWdlSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+cGFn
ZUlEKCkgOiBQYWdlSWRlbnRpZmllciB7IH07Ci0gICAgYXV0byBmcmFtZUlEID0gd2ViRnJhbWUg
PyB3ZWJGcmFtZS0+ZnJhbWVJRCgpIDogMDsKKyAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZSA/
IHdlYkZyYW1lLT5mcmFtZUlEKCkgOiBGcmFtZUlkZW50aWZpZXIgeyB9OwogICAgIGF1dG8gc2Vz
c2lvbklEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogUEFMOjpTZXNzaW9uSUQ6
OmRlZmF1bHRTZXNzaW9uSUQoKTsKIAogICAgIGF1dG8qIGRvY3VtZW50ID0gZnJhbWVMb2FkZXIu
ZnJhbWUoKS5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQpIHsKLSAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1JfSUZfQUxMT1dFRChzZXNzaW9uSUQsICJsb2FkUmVzb3VyY2VTeW5jaHJvbm91
c2x5OiBubyBkb2N1bWVudCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICVsdSkiLCBwYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCwgcmVz
b3VyY2VMb2FkSWRlbnRpZmllcik7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9X
RUQoc2Vzc2lvbklELCAibG9hZFJlc291cmNlU3luY2hyb25vdXNseTogbm8gZG9jdW1lbnQgKHBh
Z2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAl
bHUpIiwgcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSwgcmVzb3VyY2VMb2Fk
SWRlbnRpZmllcik7CiAgICAgICAgIGVycm9yID0gaW50ZXJuYWxFcnJvcihyZXF1ZXN0LnVybCgp
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChhdXRvIHN5bmNMb2FkUmVzdWx0
ID0gdHJ5TG9hZGluZ1N5bmNocm9ub3VzbHlVc2luZ1VSTFNjaGVtZUhhbmRsZXIoZnJhbWVMb2Fk
ZXIsIHJlc291cmNlTG9hZElkZW50aWZpZXIsIHJlcXVlc3QpKSB7Ci0gICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SX0lGX0FMTE9XRUQoc2Vzc2lvbklELCAibG9hZFJlc291cmNlU3luY2hyb25vdXNs
eTogZmFpbGVkIGNhbGxpbmcgdHJ5TG9hZGluZ1N5bmNocm9ub3VzbHlVc2luZ1VSTFNjaGVtZUhh
bmRsZXIgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlbHUsIGVycm9yID0gJWQpIiwgcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQsIHJl
c291cmNlTG9hZElkZW50aWZpZXIsIHN5bmNMb2FkUmVzdWx0LT5lcnJvci5lcnJvckNvZGUoKSk7
CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoc2Vzc2lvbklELCAibG9hZFJl
c291cmNlU3luY2hyb25vdXNseTogZmFpbGVkIGNhbGxpbmcgdHJ5TG9hZGluZ1N5bmNocm9ub3Vz
bHlVc2luZ1VSTFNjaGVtZUhhbmRsZXIgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlbHUsIGVycm9yID0gJWQpIiwgcGFnZUlELnRvVUlu
dDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSwgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgc3luY0xv
YWRSZXN1bHQtPmVycm9yLmVycm9yQ29kZSgpKTsKICAgICAgICAgZXJyb3IgPSBXVEZNb3ZlKHN5
bmNMb2FkUmVzdWx0LT5lcnJvcik7CiAgICAgICAgIHJlc3BvbnNlID0gV1RGTW92ZShzeW5jTG9h
ZFJlc3VsdC0+cmVzcG9uc2UpOwogICAgICAgICBkYXRhID0gV1RGTW92ZShzeW5jTG9hZFJlc3Vs
dC0+ZGF0YSk7CkBAIC01NjksNyArNTY5LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6bG9h
ZFJlc291cmNlU3luY2hyb25vdXNseShGcmFtZUxvYWRlciYgZnJhbWVMb2FkZXIsIHVuc2kKICAg
ICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Bvb2w6OlNldFdlYlByb2Nlc3NIYXNVcGxvYWRzIHsg
UHJvY2Vzczo6aWRlbnRpZmllcigpIH0sIDApOwogCiAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2Vu
ZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQZXJmb3JtU3lu
Y2hyb25vdXNMb2FkKGxvYWRQYXJhbWV0ZXJzKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpQZXJmb3JtU3luY2hyb25vdXNMb2FkOjpSZXBseShlcnJvciwgcmVzcG9u
c2UsIGRhdGEpLCAwKSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHNl
c3Npb25JRCwgImxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6IGZhaWxlZCBzZW5kaW5nIHN5bmNo
cm9ub3VzIG5ldHdvcmsgcHJvY2VzcyBtZXNzYWdlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJWx1KSIsIHBhZ2VJRC50b1VJbnQ2NCgp
LCBmcmFtZUlELCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0df
RVJST1JfSUZfQUxMT1dFRChzZXNzaW9uSUQsICJsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiBm
YWlsZWQgc2VuZGluZyBzeW5jaHJvbm91cyBuZXR3b3JrIHByb2Nlc3MgbWVzc2FnZSAocGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICVsdSki
LCBwYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpLCByZXNvdXJjZUxvYWRJZGVu
dGlmaWVyKTsKICAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSB3ZWJQYWdlID8gd2ViUGFnZS0+Y29y
ZVBhZ2UoKSA6IG51bGxwdHIpCiAgICAgICAgICAgICBwYWdlLT5kaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlKFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5
czo6aW50ZXJuYWxFcnJvcktleSgpLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnN5
bmNocm9ub3VzTWVzc2FnZUZhaWxlZEtleSgpLCBXZWJDb3JlOjpTaG91bGRTYW1wbGU6Ok5vKTsK
ICAgICAgICAgcmVzcG9uc2UgPSBSZXNvdXJjZVJlc3BvbnNlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXgg
ODhiZDUzYmYxZjhmYjczNmViMTczZWY2NGYxZTMwM2QxYmIxMDBjMS4uZmE1MzkyNWViNjhmMDQy
ZmVjNzliZjM4ODYwYjI3NjAzMjVmYjUxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcApAQCAtODgsMTYgKzg4LDE2
IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVl
c3QmJiBwcm9wb3NlZFJlcXVlc3QsIFJlc291CiAgICAgUmVmPFdlYlJlc291cmNlTG9hZGVyPiBw
cm90ZWN0ZWRUaGlzKCp0aGlzKTsKIAogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdl
YlJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QgdG8gJyVzJyIsIHByb3Bvc2VkUmVxdWVz
dC51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoIndpbGxTZW5kUmVxdWVzdDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1l
dGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90
cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RCgid2lsbFNlbmRSZXF1ZXN0OiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQ
Ukl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJz
LnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0
KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwogCiAgICAgaWYgKG1fY29yZUxv
YWRlci0+ZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS5tYXliZUxvYWRG
YWxsYmFja0ZvclJlZGlyZWN0KG1fY29yZUxvYWRlci5nZXQoKSwgcHJvcG9zZWRSZXF1ZXN0LCBy
ZWRpcmVjdFJlc3BvbnNlKSkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3aWxs
U2VuZFJlcXVlc3Q6IGV4aXRpbmcgZWFybHkgYmVjYXVzZSBtYXliZUxvYWRGYWxsYmFja0ZvclJl
ZGlyZWN0IHJldHVybmVkIGZhbHNlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRl
cnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJh
Y2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKCJ3aWxsU2VuZFJlcXVlc3Q6IGV4aXRpbmcgZWFybHkgYmVjYXVzZSBtYXliZUxvYWRGYWxs
YmFja0ZvclJlZGlyZWN0IHJldHVybmVkIGZhbHNlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2lu
Z1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1l
SUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKICAgICBtX2NvcmVMb2FkZXItPndpbGxTZW5kUmVxdWVzdChXVEZN
b3ZlKHByb3Bvc2VkUmVxdWVzdCksIHJlZGlyZWN0UmVzcG9uc2UsIFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0oUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkg
ewogICAgICAgICBpZiAoIW1fY29yZUxvYWRlciB8fCAhbV9jb3JlTG9hZGVyLT5pZGVudGlmaWVy
KCkpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIndpbGxTZW5kUmVxdWVz
dDogZXhpdGluZyBlYXJseSBiZWNhdXNlIG5vIGNvcmVsb2FkZXIgb3IgaWRlbnRpZmllciAocGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUi
IFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Ry
YWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlE
KTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIndpbGxTZW5kUmVxdWVzdDog
ZXhpdGluZyBlYXJseSBiZWNhdXNlIG5vIGNvcmVsb2FkZXIgb3IgaWRlbnRpZmllciAocGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBS
SXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNr
aW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJl
c291cmNlSUQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTExMywxMiAr
MTEzLDEyIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFNlbmREYXRhKHVpbnQ2NF90IGJ5
dGVzU2VudCwgdWludDY0X3QgdG90YWxCeXRlc1RvQmVTCiB2b2lkIFdlYlJlc291cmNlTG9hZGVy
OjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGJv
b2wgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpCiB7CiAgICAgTE9HKE5l
dHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25z
ZSBmb3IgJyVzJy4gU3RhdHVzICVkLiIsIG1fY29yZUxvYWRlci0+dXJsKCkuc3RyaW5nKCkubGF0
aW4xKCkuZGF0YSgpLCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpKTsKLSAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIHN0YXR1cyA9
ICVkKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5n
UGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlELCByZXNw
b25zZS5odHRwU3RhdHVzQ29kZSgpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRS
ZWNlaXZlUmVzcG9uc2U6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2
NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIHN0YXR1cyA9ICVkKSIsIG1fdHJhY2tpbmdQ
YXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlE
LnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQsIHJlc3BvbnNlLmh0
dHBTdGF0dXNDb2RlKCkpOwogCiAgICAgUmVmPFdlYlJlc291cmNlTG9hZGVyPiBwcm90ZWN0ZWRU
aGlzKCp0aGlzKTsKIAogICAgIGlmIChtX2NvcmVMb2FkZXItPmRvY3VtZW50TG9hZGVyKCktPmFw
cGxpY2F0aW9uQ2FjaGVIb3N0KCkubWF5YmVMb2FkRmFsbGJhY2tGb3JSZXNwb25zZShtX2NvcmVM
b2FkZXIuZ2V0KCksIHJlc3BvbnNlKSkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KCJkaWRSZWNlaXZlUmVzcG9uc2U6IG5vdCBjb250aW51aW5nIGxvYWQgYmVjYXVzZSB0aGUgY29u
dGVudCBpcyBhbHJlYWR5IGNhY2hlZCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAl
IiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0
ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3Ry
YWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiBub3QgY29udGludWluZyBsb2FkIGJlY2F1c2UgdGhl
IGNvbnRlbnQgaXMgYWxyZWFkeSBjYWNoZWQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFy
YW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50
b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIApAQCAtMTM1LDcgKzEzNSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6
OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgYm9v
CiAgICAgICAgICAgICBpZiAobV9jb3JlTG9hZGVyICYmIG1fY29yZUxvYWRlci0+aWRlbnRpZmll
cigpKQogICAgICAgICAgICAgICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSZXNvdXJjZUxvYWRl
cjo6Q29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKSk7CiAgICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiBu
b3QgY29udGludWluZyBsb2FkIGJlY2F1c2Ugbm8gY29yZUxvYWRlciBvciBubyBJRCAocGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBS
SXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNr
aW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsK
KyAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzcG9u
c2U6IG5vdCBjb250aW51aW5nIGxvYWQgYmVjYXVzZSBubyBjb3JlTG9hZGVyIG9yIG5vIElEIChw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1f
dHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRl
cnMucmVzb3VyY2VJRCk7CiAgICAgICAgIH07CiAgICAgfQogCkBAIC0xNDgsNyArMTQ4LDcgQEAg
dm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgSVBDOjpEYXRhUmVm
ZXJlbmNlJiBkYXRhLCBpbnQ2NF90IGUKICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFtX2lzUHJv
Y2Vzc2luZ05ldHdvcmtSZXNwb25zZSwgIk5ldHdvcmsgcHJvY2VzcyBzaG91bGQgbm90IHNlbmQg
ZGF0YSB1bnRpbCB3ZSd2ZSB2YWxpZGF0ZWQgdGhlIHJlc3BvbnNlIik7CiAKICAgICBpZiAoIW1f
bnVtQnl0ZXNSZWNlaXZlZCkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRS
ZWNlaXZlRGF0YTogU3RhcnRlZCByZWNlaXZpbmcgZGF0YSAocGFnZUlEID0gJSIgUFJJdTY0ICIs
IGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJh
Y2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5m
cmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKKyAgICAgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZURhdGE6IFN0YXJ0ZWQgcmVjZWl2aW5nIGRhdGEg
KHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQg
PSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwg
bV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1l
dGVycy5yZXNvdXJjZUlEKTsKICAgICB9CiAgICAgbV9udW1CeXRlc1JlY2VpdmVkICs9IGRhdGEu
c2l6ZSgpOwogCkBAIC0xNTgsNyArMTU4LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlk
UmVjZWl2ZURhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBpbnQ2NF90IGUKIHZv
aWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaFJlc291cmNlTG9hZChjb25zdCBOZXR3b3Jr
TG9hZE1ldHJpY3MmIG5ldHdvcmtMb2FkTWV0cmljcykKIHsKICAgICBMT0coTmV0d29yaywgIihX
ZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkIGZvciAn
JXMnIiwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwotICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZpbmlzaFJlc291cmNlTG9hZDogKHBhZ2VJRCA9
ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1
NjQgIiwgbGVuZ3RoID0gJXpkKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2
NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5y
ZXNvdXJjZUlELCBtX251bUJ5dGVzUmVjZWl2ZWQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoImRpZEZpbmlzaFJlc291cmNlTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgbGVuZ3RoID0gJXpkKSIs
IG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1l
dGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQs
IG1fbnVtQnl0ZXNSZWNlaXZlZCk7CiAKICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFtX2lzUHJv
Y2Vzc2luZ05ldHdvcmtSZXNwb25zZSwgIkxvYWQgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIGZpbmlz
aCBiZWZvcmUgd2UndmUgdmFsaWRhdGVkIHRoZSByZXNwb25zZSIpOwogICAgIG1fY29yZUxvYWRl
ci0+ZGlkRmluaXNoTG9hZGluZyhuZXR3b3JrTG9hZE1ldHJpY3MpOwpAQCAtMTY3LDcgKzE2Nyw3
IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaFJlc291cmNlTG9hZChjb25zdCBO
ZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRG
YWlsUmVzb3VyY2VMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewogICAgIExPRyhO
ZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9hZGVyOjpkaWRGYWlsUmVzb3VyY2VM
b2FkIGZvciAnJXMnIiwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRh
KCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZhaWxSZXNvdXJjZUxvYWQ6IChw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1f
dHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNl
SUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZhaWxSZXNvdXJjZUxvYWQ6IChw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1f
dHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRl
cnMucmVzb3VyY2VJRCk7CiAKICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFtX2lzUHJvY2Vzc2lu
Z05ldHdvcmtSZXNwb25zZSwgIkxvYWQgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIGZpbmlzaCBiZWZv
cmUgd2UndmUgdmFsaWRhdGVkIHRoZSByZXNwb25zZSIpOwogCkBAIC0xNzksNyArMTc5LDcgQEAg
dm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbFJlc291cmNlTG9hZChjb25zdCBSZXNvdXJj
ZUVycm9yJiBlcnJvcikKIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEJsb2NrQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UoKQogewogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJl
c291cmNlTG9hZGVyOjpkaWRCbG9ja0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGZvciAnJXMnIiwg
bV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwotICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoImRpZEJsb2NrQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6IChwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIg
UFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJh
Y2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQp
OworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEJsb2NrQXV0aGVudGljYXRpb25DaGFs
bGVuZ2U6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNv
dXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUlu
dDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2lu
Z1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CiAKICAgICBtX2NvcmVMb2FkZXItPmRpZEJsb2NrQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UoKTsKIH0KQEAgLTE4Nyw3ICsxODcsNyBAQCB2b2lkIFdlYlJl
c291cmNlTG9hZGVyOjpkaWRCbG9ja0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCkKIHZvaWQgV2Vi
UmVzb3VyY2VMb2FkZXI6OnN0b3BMb2FkaW5nQWZ0ZXJYRnJhbWVPcHRpb25zT3JDb250ZW50U2Vj
dXJpdHlQb2xpY3lEZW5pZWQoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAg
ICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OnN0b3BMb2Fk
aW5nQWZ0ZXJYRnJhbWVPcHRpb25zT3JDb250ZW50U2VjdXJpdHlQb2xpY3lEZW5pZWQgZm9yICcl
cyciLCBtX2NvcmVMb2FkZXItPnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSk7Ci0gICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RvcExvYWRpbmdBZnRlclhGcmFtZU9wdGlvbnNPckNv
bnRlbnRTZWN1cml0eVBvbGljeURlbmllZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFy
YW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwg
bV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRCgic3RvcExvYWRpbmdBZnRlclhGcmFtZU9wdGlvbnNPckNvbnRlbnRTZWN1cml0eVBvbGlj
eURlbmllZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJl
c291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9V
SW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNr
aW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKIAogICAgIG1fY29yZUxvYWRlci0+ZG9jdW1lbnRM
b2FkZXIoKS0+c3RvcExvYWRpbmdBZnRlclhGcmFtZU9wdGlvbnNPckNvbnRlbnRTZWN1cml0eVBv
bGljeURlbmllZChtX2NvcmVMb2FkZXItPmlkZW50aWZpZXIoKSwgcmVzcG9uc2UpOwogfQpAQCAt
MTk2LDEzICsxOTYsMTMgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6c3RvcExvYWRpbmdBZnRl
clhGcmFtZU9wdGlvbnNPckNvbnRlbnRTZWN1cml0eVBvbGljeURlbmkKIHZvaWQgV2ViUmVzb3Vy
Y2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNvdXJjZShjb25zdCBTaGFyZWFibGVSZXNvdXJjZTo6SGFu
ZGxlJiBoYW5kbGUpCiB7CiAgICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3Vy
Y2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNvdXJjZSBmb3IgJyVzJyIsIG1fY29yZUxvYWRlci0+dXJs
KCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KCJkaWRSZWNlaXZlUmVzb3VyY2U6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRl
cnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJh
Y2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
ImRpZFJlY2VpdmVSZXNvdXJjZTogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVy
cy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2
NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKIAogICAgIFJlZlB0cjxTaGFy
ZWRCdWZmZXI+IGJ1ZmZlciA9IGhhbmRsZS50cnlXcmFwSW5TaGFyZWRCdWZmZXIoKTsKIAogICAg
IGlmICghYnVmZmVyKSB7CiAgICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIGNyZWF0ZSBidWZm
ZXIgZnJvbSBTaGFyZWFibGVSZXNvdXJjZSBzZW50IGZyb20gdGhlIG5ldHdvcmsgcHJvY2Vzcy4i
KTsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc291cmNlOiBV
bmFibGUgdG8gY3JlYXRlIFNoYXJlZEJ1ZmZlciAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQ
YXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlE
LCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKKyAgICAgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc291cmNlOiBVbmFibGUgdG8gY3JlYXRlIFNoYXJlZEJ1
ZmZlciAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3Vy
Y2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2
NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQ
YXJhbWV0ZXJzLnJlc291cmNlSUQpOwogICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBtX2NvcmVM
b2FkZXItPmZyYW1lKCkpIHsKICAgICAgICAgICAgIGlmIChhdXRvKiBwYWdlID0gZnJhbWUtPnBh
Z2UoKSkKICAgICAgICAgICAgICAgICBwYWdlLT5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxv
Z0RpYWdub3N0aWNNZXNzYWdlKFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6aW50ZXJu
YWxFcnJvcktleSgpLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmNyZWF0ZVNoYXJl
ZEJ1ZmZlckZhaWxlZEtleSgpLCBXZWJDb3JlOjpTaG91bGRTYW1wbGU6Ok5vKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oCmlu
ZGV4IDU4NjU0MzcxOGU1ZTgzODhiOGI0MWFiMDIwMzdhYzc2ZTc4NjkzN2MuLjljMTE0N2RhMDUx
NTNkZDdhYzQ0YWYzMTU4MWUyMjFiNjliZTkyNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaApAQCAtMjgsNiArMjgsNyBA
QAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAj
aW5jbHVkZSAiU2hhcmVhYmxlUmVzb3VyY2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRl
bnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTUyLDcgKzUz
LDcgQEAgY2xhc3MgV2ViUmVzb3VyY2VMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJSZXNv
dXJjZUxvYWRlcj4sIHB1YmxpYyBJUEM6Ok1lc3MKIHB1YmxpYzoKICAgICBzdHJ1Y3QgVHJhY2tp
bmdQYXJhbWV0ZXJzIHsKICAgICAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEOwot
ICAgICAgICB1aW50NjRfdCBmcmFtZUlEIHsgMCB9OworICAgICAgICBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRDsKICAgICAgICAgUmVzb3VyY2VMb2FkSWRlbnRpZmllciByZXNvdXJj
ZUlEIHsgMCB9OwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcApp
bmRleCA2ZmMwOWM0ZjY1YjI0NWI2MGJmNGQ0ZjU5N2E5ZjkwYWQ0ZDBhYWY5Li40OWQyMGM3YzQ5
YzAyYWE5NTlhYTRhZTRkOWVlYzhmZTgzYzVmZTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24uY3BwCkBAIC03Myw3ICs3Myw3IEBAIHN0YXRpYyBjb25zdCBTZWNvbmRzIHN5bmNX
b3JrZXJUZXJtaW5hdGlvblRpbWVvdXQgeyAxMDBfbXMgfTsgLy8gT25seSB1c2VkIGJ5IGxhCiAK
IGNsYXNzIFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudCBmaW5hbCA6IHB1YmxpYyBFbXB0
eUZyYW1lTG9hZGVyQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBTZXJ2aWNlV29ya2VyRnJhbWVMb2Fk
ZXJDbGllbnQoV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCkKKyAgICBTZXJ2aWNlV29ya2Vy
RnJhbWVMb2FkZXJDbGllbnQoV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24sIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFn
ZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpCiAg
ICAgICAgIDogbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCiAgICAgICAgICwgbV9zZXNzaW9uSUQo
c2Vzc2lvbklEKQogICAgICAgICAsIG1fcGFnZUlEKHBhZ2VJRCkKQEAgLTk2LDEzICs5NiwxMyBA
QCBwcml2YXRlOgogCiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KICAgICBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRp
Zmllcj4gcGFnZUlEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9wYWdlSUQ7IH0KLSAgICBPcHRp
b25hbDx1aW50NjRfdD4gZnJhbWVJRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZnJhbWVJRDsg
fQorICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1fZnJhbWVJRDsgfQogICAgIFN0cmluZyB1c2VyQWdlbnQoY29uc3Qg
VVJMJikgZmluYWwgeyByZXR1cm4gbV91c2VyQWdlbnQ7IH0KIAogICAgIFdlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uJiBtX2Nvbm5lY3Rpb247CiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNz
aW9uSUQ7Ci0gICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV9wYWdlSUQ7Ci0gICAgdWludDY0
X3QgbV9mcmFtZUlEIHsgMCB9OworICAgIFBhZ2VJZGVudGlmaWVyIG1fcGFnZUlEOworICAgIEZy
YW1lSWRlbnRpZmllciBtX2ZyYW1lSUQ7CiAgICAgU3RyaW5nIG1fdXNlckFnZW50OwogfTsKIApA
QCAtMTUzLDcgKzE1Myw4IEBAIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omlu
c3RhbGxTZXJ2aWNlV29ya2VyKGNvbnN0IFNlcnZpY2VXb3JrZXJDb250CiAKICAgICAvLyBGSVhN
RTogVGhpcyBtZXRob2Qgc2hvdWxkIGJlIG1vdmVkIGRpcmVjdGx5IHRvIFdlYkNvcmU6OlNXQ29u
dGV4dE1hbmFnZXI6OkNvbm5lY3Rpb24KICAgICAvLyBJZiBpdCB3ZXJlbid0IGZvciBTZXJ2aWNl
V29ya2VyRnJhbWVMb2FkZXJDbGllbnQncyBkZXBlbmRlbmNlIG9uIFdlYkRvY3VtZW50TG9hZGVy
LCB0aGlzIGNvdWxkIGFscmVhZHkgaGFwcGVuLgotICAgIGF1dG8gZnJhbWVMb2FkZXJDbGllbnQg
PSBzdGQ6Om1ha2VfdW5pcXVlPFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudD4oKnRoaXMs
IHNlc3Npb25JRCwgbV9wYWdlSUQsICsrbV9wcmV2aW91c1NlcnZpY2VXb3JrZXJJRCwgZWZmZWN0
aXZlVXNlckFnZW50KTsKKyAgICAvLyBGSVhNRTogV2VpcmQgdG8gcGFzcyBtX3ByZXZpb3VzU2Vy
dmljZVdvcmtlcklEIGFzIGEgRnJhbWVJZGVudGlmaWVyLgorICAgIGF1dG8gZnJhbWVMb2FkZXJD
bGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudD4o
KnRoaXMsIHNlc3Npb25JRCwgbV9wYWdlSUQsIGZyYW1lSWRlbnRpZmllckZyb21JRCgrK21fcHJl
dmlvdXNTZXJ2aWNlV29ya2VySUQpLCBlZmZlY3RpdmVVc2VyQWdlbnQpOwogICAgIHBhZ2VDb25m
aWd1cmF0aW9uLmxvYWRlckNsaWVudEZvck1haW5GcmFtZSA9IGZyYW1lTG9hZGVyQ2xpZW50Lmdl
dCgpOwogICAgIG1fbG9hZGVycy5hZGQoV1RGTW92ZShmcmFtZUxvYWRlckNsaWVudCkpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDNjODcyZjVhZGYzOWJlYWNkM2E3MDY2N2IyNjg5ZDM4
YzliMTExMmUuLmZjZDA5OGU0ODQwYTU4YTJiNWEyMTk3ZWI1MjkxZTBhNGY0ODI5ZjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0yNjUsNyArMjY1LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmZvY3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUqIGZyYW1lKQogewogICAgIFdlYkZyYW1lKiB3
ZWJGcmFtZSA9IGZyYW1lID8gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lKSA6IG51bGxw
dHI7CiAKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkZvY3VzZWRGcmFtZUNoYW5nZWQod2Vi
RnJhbWUgPyB3ZWJGcmFtZS0+ZnJhbWVJRCgpIDogMCksIG1fcGFnZS5wYWdlSUQoKSk7CisgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGb2N1c2VkRnJhbWVDaGFuZ2VkKHdlYkZyYW1lID8gbWFr
ZU9wdGlvbmFsKHdlYkZyYW1lLT5mcmFtZUlEKCkpIDogV1RGOjpudWxsb3B0KSwgbV9wYWdlLnBh
Z2VJRCgpKTsKIH0KIAogUGFnZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3coRnJhbWUm
IGZyYW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXaW5kb3dGZWF0
dXJlcyYgd2luZG93RmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIG5hdmlnYXRpb25B
Y3Rpb24pCkBAIC02MjUsNyArNjI1LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRz
U2l6ZUNoYW5nZWQoRnJhbWUmIGZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb24KICAgICAg
ICAgV2ViRnJhbWUqIGxhcmdlc3RGcmFtZSA9IGZpbmRMYXJnZXN0RnJhbWVJbkZyYW1lU2V0KG1f
cGFnZSk7CiAgICAgICAgIGlmIChsYXJnZXN0RnJhbWUgIT0gbV9jYWNoZWRGcmFtZVNldExhcmdl
c3RGcmFtZS5nZXQoKSkgewogICAgICAgICAgICAgbV9jYWNoZWRGcmFtZVNldExhcmdlc3RGcmFt
ZSA9IGxhcmdlc3RGcmFtZTsKLSAgICAgICAgICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OkZyYW1lU2V0TGFyZ2VzdEZyYW1lQ2hhbmdlZChsYXJnZXN0RnJhbWUgPyBsYXJn
ZXN0RnJhbWUtPmZyYW1lSUQoKSA6IDApKTsKKyAgICAgICAgICAgIG1fcGFnZS5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkZyYW1lU2V0TGFyZ2VzdEZyYW1lQ2hhbmdlZChsYXJnZXN0RnJh
bWUgPyBtYWtlT3B0aW9uYWwobGFyZ2VzdEZyYW1lLT5mcmFtZUlEKCkpIDogV1RGOjpudWxsb3B0
KSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTEzMTYsMTIgKzEzMTYsMTIgQEAgdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OmRpZEludmFsaWRhdGVEb2N1bWVudE1hcmtlclJlY3RzKCkKIH0KIAogI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi12b2lkIFdlYkNocm9tZUNsaWVudDo6
aGFzU3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdp
c3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpoYXNTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9t
YWluJiYgc3ViRnJhbWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4s
IEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3BhZ2UuaGFzU3Rv
cmFnZUFjY2VzcyhXVEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0b3BGcmFtZURvbWFp
biksIGZyYW1lSUQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWluJiYgc3Vi
RnJhbWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90
IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VB
Y2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFJl
Z2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluJiYgdG9w
RnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vz
c1Byb21wdFdhc1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3BhZ2UucmVx
dWVzdFN0b3JhZ2VBY2Nlc3MoV1RGTW92ZShzdWJGcmFtZURvbWFpbiksIFdURk1vdmUodG9wRnJh
bWVEb21haW4pLCBmcmFtZUlELCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmgKaW5kZXggY2VkMzZhNmMyNWI3ZTRmODM0NGE1ODk5NDAwNjc5MWY3Y2M5Mjc2
Zi4uMmRjNjYyMmMxYjdmMWM1YTk1YTJjY2Q3OWIzMjA5YmI1ODcyYTYyYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaApAQCAtMzY3LDggKzM2Nyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRJbnZhbGlk
YXRlRG9jdW1lbnRNYXJrZXJSZWN0cygpIGZpbmFsOwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xP
QURfU1RBVElTVElDUykKLSAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4m
JiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7Ci0gICAgdm9p
ZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZy
YW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCB1
aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBXZWJDb3JlOjpT
dG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKSBmaW5hbDsKKyAgICB2b2lkIGhhc1N0b3Jh
Z2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21w
dFdhc1Nob3duKT4mJikgZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA2NTczOWJiOGFhOTZk
ZmU4YzJiMGUyNmMxNzFhOWY5Yjc2YjczNDA5Li43MDk4MGVlNWI1YjhkNzAzN2U0NWIzZjJhZjNl
MmJiMWZhMDM5NGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTEyMCw3
ICsxMjAsNyBAQCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OnBhZ2VJRCgpIGNvbnN0CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KIAotT3B0aW9uYWw8
dWludDY0X3Q+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlEKCkgY29uc3QKK09wdGlvbmFs
PEZyYW1lSWRlbnRpZmllcj4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZyYW1lSUQoKSBjb25zdAog
ewogICAgIGlmIChtX2ZyYW1lKQogICAgICAgICByZXR1cm4gbV9mcmFtZS0+ZnJhbWVJRCgpOwpA
QCAtNTQ2LDcgKzU0Niw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlk
RmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlCiAgICAgaWYgKCF3ZWJQ
YWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkOiAocGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIikiLCB0aGlzLCB3ZWJQYWdl
LT5wYWdlSUQoKS50b1VJbnQ2NCgpLCBtX2ZyYW1lLT5mcmFtZUlEKCkpOworICAgIFJFTEVBU0Vf
TE9HKE5ldHdvcmssICIlcCAtIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxQ
cm92aXNpb25hbExvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2
NCAiKSIsIHRoaXMsIHdlYlBhZ2UtPnBhZ2VJRCgpLnRvVUludDY0KCksIG1fZnJhbWUtPmZyYW1l
SUQoKS50b1VJbnQ2NCgpKTsKIAogICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4gdXNlckRhdGE7CiAK
QEAgLTU4Miw3ICs1ODIsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERp
ZEZhaWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAgIGlmICghd2ViUGFnZSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgUkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0gV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiKSIsIHRoaXMsIHdlYlBhZ2UtPnBhZ2VJRCgpLnRvVUlu
dDY0KCksIG1fZnJhbWUtPmZyYW1lSUQoKSk7CisgICAgUkVMRUFTRV9MT0coTmV0d29yaywgIiVw
IC0gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWQ6IChwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiKSIsIHRoaXMsIHdlYlBhZ2UtPnBhZ2VJ
RCgpLnRvVUludDY0KCksIG1fZnJhbWUtPmZyYW1lSUQoKS50b1VJbnQ2NCgpKTsKIAogICAgIFJl
ZlB0cjxBUEk6Ok9iamVjdD4gdXNlckRhdGE7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgK
aW5kZXggYzhmYjJhZjIxMjU2NmM2NDY4NjA3N2EwYzg5YWY4MTA1MzkwYTY4MC4uNjQxYjhjMDY2
MzQxMzgwYzA3MDI4MjBiODc4OWRkMTg1ZThiYjA0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIHZvaWQgYXBwbHlUb0RvY3VtZW50
TG9hZGVyKFdlYnNpdGVQb2xpY2llc0RhdGEmJik7CiAKICAgICBPcHRpb25hbDxXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllcj4gcGFnZUlEKCkgY29uc3QgZmluYWw7Ci0gICAgT3B0aW9uYWw8dWludDY0
X3Q+IGZyYW1lSUQoKSBjb25zdCBmaW5hbDsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXI+IGZyYW1lSUQoKSBjb25zdCBmaW5hbDsKICAgICBQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQoKSBjb25zdCBmaW5hbDsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29r
aWVKYXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFy
LmNwcAppbmRleCA3MzhiZTkyYjkyZGM3M2QyZGY2NzdlZTM0ZWMxMzA4MWE2MGYxYTFjLi5mNmM1
NTdkNWYwZmQyMDFkYmI1MDUxMTQ3ZWJjMjcwYTViNDVjZjNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5jcHAKQEAgLTUwLDcgKzUwLDcg
QEAgV2ViQ29va2llSmFyOjpXZWJDb29raWVKYXIoKQogCiBTdHJpbmcgV2ViQ29va2llSmFyOjpj
b29raWVzKFdlYkNvcmU6OkRvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwpIGNvbnN0
CiB7Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJ
ZGVudGlmaWVyPiBmcmFtZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7
CiAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkgewogICAgICAgICBmcmFt
ZUlEID0gZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKTsKQEAgLTY3LDcgKzY3LDcg
QEAgU3RyaW5nIFdlYkNvb2tpZUphcjo6Y29va2llcyhXZWJDb3JlOjpEb2N1bWVudCYgZG9jdW1l
bnQsIGNvbnN0IFVSTCYgdXJsKSBjb25zdAogCiB2b2lkIFdlYkNvb2tpZUphcjo6c2V0Q29va2ll
cyhXZWJDb3JlOjpEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJp
bmcmIGNvb2tpZVN0cmluZykKIHsKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRDsKKyAg
ICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQ7CiAgICAgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+IHBhZ2VJRDsKICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgp
KSB7CiAgICAgICAgIGZyYW1lSUQgPSBmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuZnJhbWVJRCgp
OwpAQCAtODUsNyArODUsNyBAQCBib29sIFdlYkNvb2tpZUphcjo6Y29va2llc0VuYWJsZWQoY29u
c3QgV2ViQ29yZTo6RG9jdW1lbnQmIGRvY3VtZW50KSBjb25zdAogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvcmU6OlNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4g
V2ViQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBQQUw6OlNl
c3Npb25JRCYgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6
OlNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWlu
dDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFdlYkNvcmU6
OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAorc3RkOjpw
YWlyPFN0cmluZywgV2ViQ29yZTo6U2VjdXJlQ29va2llc0FjY2Vzc2VkPiBXZWJDb29raWVKYXI6
OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNz
aW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZv
JiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+
IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFdlYkNvcmU6OkluY2x1
ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAogewogICAgIFN0cmlu
ZyBjb29raWVTdHJpbmc7CiAgICAgYm9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQgPSBmYWxzZTsK
QEAgLTk2LDcgKzk2LDcgQEAgc3RkOjpwYWlyPFN0cmluZywgV2ViQ29yZTo6U2VjdXJlQ29va2ll
c0FjY2Vzc2VkPiBXZWJDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWEKIAogYm9vbCBXZWJDb29r
aWVKYXI6OmdldFJhd0Nvb2tpZXMoY29uc3QgV2ViQ29yZTo6RG9jdW1lbnQmIGRvY3VtZW50LCBj
b25zdCBVUkwmIHVybCwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0
CiB7Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJ
ZGVudGlmaWVyPiBmcmFtZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7
CiAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkgewogICAgICAgICBmcmFt
ZUlEID0gZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmgKaW5kZXggNTU5YmQwZTUwYmJl
YzM1ZmZiMjU2YjkxMmI3YjQ2ZGE5OTRiMmQ0OC4uNWRjYWNkZDk2OGU2YTRiMDYyN2M3ODdjNmRh
MWE1MTU0NzFiZjg4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViQ29va2llSmFyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViQ29va2llSmFyLmgKQEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAgIFN0cmluZyBjb29r
aWVzKFdlYkNvcmU6OkRvY3VtZW50JiwgY29uc3QgVVJMJikgY29uc3QgZmluYWw7CiAgICAgdm9p
ZCBzZXRDb29raWVzKFdlYkNvcmU6OkRvY3VtZW50JiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5n
JiBjb29raWVTdHJpbmcpIGZpbmFsOwogICAgIGJvb2wgY29va2llc0VuYWJsZWQoY29uc3QgV2Vi
Q29yZTo6RG9jdW1lbnQmKSBjb25zdCBmaW5hbDsKLSAgICBzdGQ6OnBhaXI8U3RyaW5nLCBXZWJD
b3JlOjpTZWN1cmVDb29raWVzQWNjZXNzZWQ+IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVl
KGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJD
b3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpJbmNsdWRlU2Vj
dXJlQ29va2llcykgY29uc3QgZmluYWw7CisgICAgc3RkOjpwYWlyPFN0cmluZywgV2ViQ29yZTo6
U2VjdXJlQ29va2llc0FjY2Vzc2VkPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25z
dCBQQUw6OlNlc3Npb25JRCYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6
U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyPiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpJbmNsdWRl
U2VjdXJlQ29va2llcykgY29uc3QgZmluYWw7CiAgICAgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0
IFdlYkNvcmU6OkRvY3VtZW50JiwgY29uc3QgVVJMJiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4m
KSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBXZWJDb3JlOjpEb2N1
bWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSkgZmluYWw7CiBwcml2
YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJh
bWUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCmlu
ZGV4IDYwY2ZkOGQyYTE3NTRhN2FjZWQ1OGQ2MWRmMTdiZTRjMTQzMTM2OTQuLmYwZWJmZWRiYjJl
OTUzYWQwZmMwN2Y5ZjgxNjYwOWRiOTczNWI2NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKQEAgLTk1LDEyICs5NSw2IEBAIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCiBERUZJTkVfREVCVUdfT05MWV9HTE9CQUwoV1RGOjpSZWZDb3VudGVk
TGVha0NvdW50ZXIsIHdlYkZyYW1lQ291bnRlciwgKCJXZWJGcmFtZSIpKTsKIAotc3RhdGljIHVp
bnQ2NF90IGdlbmVyYXRlRnJhbWVJRCgpCi17Ci0gICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZUZy
YW1lSUQgPSAxOwotICAgIHJldHVybiB1bmlxdWVGcmFtZUlEKys7Ci19Ci0KIHN0YXRpYyB1aW50
NjRfdCBnZW5lcmF0ZUxpc3RlbmVySUQoKQogewogICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVM
aXN0ZW5lcklEID0gMTsKQEAgLTE0OCw3ICsxNDIsNyBAQCBSZWY8V2ViRnJhbWU+IFdlYkZyYW1l
OjpjcmVhdGUoc3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50PiBmcmFtZUxvYWRl
cgogCiBXZWJGcmFtZTo6V2ViRnJhbWUoc3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xp
ZW50PiBmcmFtZUxvYWRlckNsaWVudCkKICAgICA6IG1fZnJhbWVMb2FkZXJDbGllbnQoV1RGTW92
ZShmcmFtZUxvYWRlckNsaWVudCkpCi0gICAgLCBtX2ZyYW1lSUQoZ2VuZXJhdGVGcmFtZUlEKCkp
CisgICAgLCBtX2ZyYW1lSUQoRnJhbWVJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQogewogICAgIG1f
ZnJhbWVMb2FkZXJDbGllbnQtPnNldFdlYkZyYW1lKHRoaXMpOwogICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLmFkZFdlYkZyYW1lKG1fZnJhbWVJRCwgdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaAppbmRleCA3MWIzOGY2MWFiMTk1MDU1YjQ0N2U4
N2JmZmY3ZTk2NDA2ZGVlYTljLi4xZWM1MDc1NDI1N2Y4NjZlYjJhZThlYzRjYjBjNmQxZmZlODY1
NmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFt
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKQEAg
LTgwLDcgKzgwLDcgQEAgcHVibGljOgogICAgIFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWUoKSBj
b25zdCB7IHJldHVybiBtX2NvcmVGcmFtZTsgfQogCiAgICAgRnJhbWVJbmZvRGF0YSBpbmZvKCkg
Y29uc3Q7Ci0gICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsg
fQorICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4g
bV9mcmFtZUlEOyB9CiAKICAgICBlbnVtIGNsYXNzIEZvck5hdmlnYXRpb25BY3Rpb24geyBObywg
WWVzIH07CiAgICAgdWludDY0X3Qgc2V0VXBQb2xpY3lMaXN0ZW5lcihXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJiwgRm9yTmF2aWdh
dGlvbkFjdGlvbik7CkBAIC0xODcsNyArMTg3LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+IG1fZnJhbWVMb2FkZXJDbGllbnQ7CiAgICAgTG9h
ZExpc3RlbmVyKiBtX2xvYWRMaXN0ZW5lciB7IG51bGxwdHIgfTsKICAgICAKLSAgICB1aW50NjRf
dCBtX2ZyYW1lSUQgeyAwIH07CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fZnJhbWVJ
RDsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgdWludDY0X3QgbV9maXJzdExheWVy
VHJlZVRyYW5zYWN0aW9uSURBZnRlckRpZENvbW1pdExvYWQgeyAwIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcAppbmRleCBmMjhkZTU2
OGVjNTE1YTUxYzM4ZTA5Y2FhYzQ0ZWE3N2YyMWQzZGJlLi4xZjAxNmFlYWRhOTk2Zjk2M2RkNWU0
ZWZiOTZkMGNhZmU2MGFkNjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKQEAgLTIwOSw3ICsyMDksNyBAQCB2b2lkIFdlYkluc3Bl
Y3Rvcjo6c2hvd1Jlc291cmNlcygpCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViSW5zcGVjdG9yOjpz
aG93TWFpblJlc291cmNlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJZGVudGlmaWVyKQordm9pZCBX
ZWJJbnNwZWN0b3I6OnNob3dNYWluUmVzb3VyY2VGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJZGVudGlmaWVyKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSWRlbnRpZmllcik7CiAgICAgaWYgKCFmcmFt
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3Bl
Y3Rvci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmgK
aW5kZXggNDg5ZTQxYzA3NGZjMzYzYjM4MDExNjE3YjRjNzU4MjRkZjU5ZDQ3Yi4uMjZiODllNTIy
Nzc5NzhkNTNhMzNmZTNjNzExNWVhZWJiYjM4Mjk1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNs
dWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVz
c2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNp
bmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIApAQCAtNjAsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzaG93Q29uc29sZSgpOwog
ICAgIHZvaWQgc2hvd1Jlc291cmNlcygpOwogCi0gICAgdm9pZCBzaG93TWFpblJlc291cmNlRm9y
RnJhbWUodWludDY0X3QgZnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIHNob3dNYWluUmVzb3Vy
Y2VGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogCiAgICAgdm9pZCBzZXRBdHRh
Y2hlZChib29sIGF0dGFjaGVkKSB7IG1fYXR0YWNoZWQgPSBhdHRhY2hlZDsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IubWVz
c2FnZXMuaW4KaW5kZXggYjZmM2MwMWIyNDIyMjZhMjBmYjQ5YzU0MjIwM2E2ZGNkZTIyMWU2OS4u
ZGFmNzRiNWU2YjA0MzBiNmIwY2EzYmUyNjBmNWZmYWJlY2Q2NTQ4OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5tZXNzYWdl
cy5pbgpAQCAtMjksNyArMjksNyBAQCBtZXNzYWdlcyAtPiBXZWJJbnNwZWN0b3IgewogICAgIFNo
b3dDb25zb2xlKCkKICAgICBTaG93UmVzb3VyY2VzKCkKIAotICAgIFNob3dNYWluUmVzb3VyY2VG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlkZW50aWZpZXIpCisgICAgU2hvd01haW5SZXNvdXJjZUZv
ckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlkZW50aWZpZXIpCiAKICAgICBP
cGVuSW5OZXdUYWIoU3RyaW5nIHVybCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAppbmRleCAxMzM2NTcwZDkzYWE1MTEwNjk3ODU2MTE3MDI2MDg5M2I4
YTNjZGI0Li4wMWZmMWE0ZjQ1N2U1MzkzNTYxNDMyNGEwOTQ4ODQwM2E3NTA1NWExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTQ5Nyw3ICsx
NDk3LDcgQEAgdm9pZCBXZWJQYWdlOjpzdXNwZW5kRm9yUHJvY2Vzc1N3YXAoKQogICAgIHNlbmQo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkU3VzcGVuZEFmdGVyUHJvY2Vzc1N3YXAoKSk7CiB9
CiAKLXZvaWQgV2ViUGFnZTo6bG9hZFVSTEluRnJhbWUoVVJMJiYgdXJsLCBjb25zdCBTdHJpbmcm
IHJlZmVycmVyLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlOjpsb2FkVVJMSW5GcmFt
ZShVUkwmJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlEKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndl
YkZyYW1lKGZyYW1lSUQpOwogICAgIGlmICghZnJhbWUpCkBAIC0xNTA2LDcgKzE1MDYsNyBAQCB2
b2lkIFdlYlBhZ2U6OmxvYWRVUkxJbkZyYW1lKFVSTCYmIHVybCwgY29uc3QgU3RyaW5nJiByZWZl
cnJlciwgdWludDY0X3QgZnJhbWVJRAogICAgIGZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCku
bG9hZChGcmFtZUxvYWRSZXF1ZXN0KCpmcmFtZS0+Y29yZUZyYW1lKCksIFJlc291cmNlUmVxdWVz
dCh1cmwsIHJlZmVycmVyKSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90
QWxsb3cpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpsb2FkRGF0YUluRnJhbWUoSVBDOjpEYXRhUmVm
ZXJlbmNlJiYgZGF0YSwgU3RyaW5nJiYgTUlNRVR5cGUsIFN0cmluZyYmIGVuY29kaW5nTmFtZSwg
VVJMJiYgYmFzZVVSTCwgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZTo6bG9hZERhdGFJ
bkZyYW1lKElQQzo6RGF0YVJlZmVyZW5jZSYmIGRhdGEsIFN0cmluZyYmIE1JTUVUeXBlLCBTdHJp
bmcmJiBlbmNvZGluZ05hbWUsIFVSTCYmIGJhc2VVUkwsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
KQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZy
YW1lKGZyYW1lSUQpOwogICAgIGlmICghZnJhbWUpCkBAIC0xNjE0LDcgKzE2MTQsNyBAQCB2b2lk
IFdlYlBhZ2U6Om5hdmlnYXRlVG9QREZMaW5rV2l0aFNpbXVsYXRlZENsaWNrKGNvbnN0IFN0cmlu
ZyYgdXJsLCBJbnRQb2ludCBkbwogICAgIG1haW5GcmFtZS0+bG9hZGVyKCkudXJsU2VsZWN0ZWQo
bWFpbkZyYW1lRG9jdW1lbnQtPmNvbXBsZXRlVVJMKHVybCksIGVtcHR5U3RyaW5nKCksIG1vdXNl
RXZlbnQucHRyKCksIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIFNo
b3VsZFNlbmRSZWZlcnJlcjo6TmV2ZXJTZW5kUmVmZXJyZXIsIFNob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKIH0KIAotdm9pZCBXZWJQYWdlOjpzdG9wTG9hZGlu
Z0ZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2U6OnN0b3BMb2FkaW5nRnJhbWUo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCFmcmFtZSkKQEAg
LTMyMzQsNyArMzIzNCw3IEBAIHZvaWQgV2ViUGFnZTo6c2V0U2Vzc2lvbklEKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCkKICAgICBtX3BhZ2UtPnNldFNlc3Npb25JRChzZXNzaW9uSUQpOwogfQog
Ci12b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbih1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBsaXN0ZW5lcklELCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwg
UG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBE
b3dubG9hZElEJiBkb3dubG9hZElELCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdl
YnNpdGVQb2xpY2llcykKK3ZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBsaXN0ZW5lcklELCBQb2xpY3lDaGVja0lk
ZW50aWZpZXIgaWRlbnRpZmllciwgUG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBjb25zdCBEb3dubG9hZElEJiBkb3dubG9hZElELCBPcHRpb25hbDxXZWJz
aXRlUG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcykKIHsKICAgICBXZWJGcmFtZSogZnJh
bWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBpZiAo
IWZyYW1lKQpAQCAtMzI0Miw3ICszMjQyLDcgQEAgdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlUG9s
aWN5RGVjaXNpb24odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCwgUG8KICAg
ICBmcmFtZS0+ZGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKGxpc3RlbmVySUQsIGlkZW50aWZpZXIs
IHBvbGljeUFjdGlvbiwgbmF2aWdhdGlvbklELCBkb3dubG9hZElELCBXVEZNb3ZlKHdlYnNpdGVQ
b2xpY2llcykpOwogfQogCi12b2lkIFdlYlBhZ2U6OmNvbnRpbnVlV2lsbFN1Ym1pdEZvcm0odWlu
dDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCkKK3ZvaWQgV2ViUGFnZTo6Y29udGlu
dWVXaWxsU3VibWl0Rm9ybShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVu
ZXJJRCkKIHsKICAgICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53
ZWJGcmFtZShmcmFtZUlEKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtMzM4NCw3ICszMzg0LDcgQEAg
dm9pZCBXZWJQYWdlOjpydW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3JsZChjb25zdCBT
dHJpbmcmIHNjcmlwdCwgYm9vbCBmb3IKICAgICBydW5KYXZhU2NyaXB0KG1haW5XZWJGcmFtZSgp
LCBzY3JpcHQsIGZvcmNlVXNlckdlc3R1cmUsIHdvcmxkTmFtZSwgY2FsbGJhY2tJRCk7CiB9CiAK
LXZvaWQgV2ViUGFnZTo6cnVuSmF2YVNjcmlwdEluRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgQ2FsbGJhY2tJRCBjYWxs
YmFja0lEKQordm9pZCBXZWJQYWdlOjpydW5KYXZhU2NyaXB0SW5GcmFtZShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwg
Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIEFTU0VSVChtYWluV2ViRnJh
bWUoKSAhPSBmcmFtZSk7CkBAIC0zNDQ1LDcgKzM0NDUsNyBAQCB2b2lkIFdlYlBhZ2U6OmdldFNl
bGVjdGlvbk9yQ29udGVudHNBc1N0cmluZyhDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdHJpbmdDYWxsYmFjayhyZXN1bHRTdHJpbmcsIGNh
bGxiYWNrSUQpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpnZXRTb3VyY2VGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYlBhZ2U6OmdldFNvdXJj
ZUZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQp
CiB7CiAgICAgU3RyaW5nIHJlc3VsdFN0cmluZzsKICAgICBpZiAoV2ViRnJhbWUqIGZyYW1lID0g
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCkpCkBAIC0zNDU0LDcgKzM0
NTQsNyBAQCB2b2lkIFdlYlBhZ2U6OmdldFNvdXJjZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlN0cmluZ0NhbGxiYWNrKHJlc3VsdFN0cmluZywgY2FsbGJhY2tJRCkpOwogfQogCi12b2lkIFdl
YlBhZ2U6OmdldE1haW5SZXNvdXJjZURhdGFPZkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENhbGxi
YWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6Z2V0TWFpblJlc291cmNlRGF0YU9mRnJh
bWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAg
ICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXI7CiAgICAgaWYgKFdlYkZyYW1lKiBmcmFtZSA9
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpKSB7CkBAIC0zNDg1LDcg
KzM0ODUsNyBAQCBzdGF0aWMgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gcmVzb3VyY2VEYXRhRm9yRnJh
bWUoRnJhbWUqIGZyYW1lLCBjb25zdCBVUkwmIHJlc291cgogICAgIHJldHVybiAmc3VicmVzb3Vy
Y2UtPmRhdGEoKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpnZXRSZXNvdXJjZURhdGFGcm9tRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiByZXNvdXJjZVVSTFN0cmluZywgQ2FsbGJh
Y2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdlOjpnZXRSZXNvdXJjZURhdGFGcm9tRnJhbWUo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VVUkxTdHJpbmcs
IENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZm
ZXI7CiAgICAgaWYgKGF1dG8qIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJh
bWUoZnJhbWVJRCkpIHsKQEAgLTM0OTksNyArMzQ5OSw3IEBAIHZvaWQgV2ViUGFnZTo6Z2V0UmVz
b3VyY2VEYXRhRnJvbUZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgcmVzb3Vy
Y2VVCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEYXRhQ2FsbGJhY2soZGF0YVJl
ZmVyZW5jZSwgY2FsbGJhY2tJRCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OmdldFdlYkFyY2hpdmVP
ZkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2Vi
UGFnZTo6Z2V0V2ViQXJjaGl2ZU9mRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENhbGxi
YWNrSUQgY2FsbGJhY2tJRCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8
Q0ZEYXRhUmVmPiBkYXRhOwpAQCAtMzgwMiwxMyArMzgwMiwxMyBAQCBXZWJGdWxsU2NyZWVuTWFu
YWdlciogV2ViUGFnZTo6ZnVsbFNjcmVlbk1hbmFnZXIoKQogfQogI2VuZGlmCiAKLXZvaWQgV2Vi
UGFnZTo6YWRkQ29uc29sZU1lc3NhZ2UodWludDY0X3QgZnJhbWVJRCwgTWVzc2FnZVNvdXJjZSBt
ZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwgbWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIHVpbnQ2NF90IHJlcXVlc3RJRCkKK3ZvaWQgV2ViUGFnZTo6YWRkQ29uc29sZU1lc3Nh
Z2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIE1lc3NhZ2VTb3VyY2UgbWVzc2FnZVNvdXJjZSwg
TWVzc2FnZUxldmVsIG1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1aW50NjRf
dCByZXF1ZXN0SUQpCiB7CiAgICAgaWYgKGF1dG8qIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkud2ViRnJhbWUoZnJhbWVJRCkpCiAgICAgICAgIGZyYW1lLT5hZGRDb25zb2xlTWVzc2Fn
ZShtZXNzYWdlU291cmNlLCBtZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIHJlcXVlc3RJRCk7CiB9CiAK
LXZvaWQgV2ViUGFnZTo6c2VuZENTUFZpb2xhdGlvblJlcG9ydCh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBVUkwmIHJlcG9ydFVSTCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcG9ydERhdGEp
Cit2b2lkIFdlYlBhZ2U6OnNlbmRDU1BWaW9sYXRpb25SZXBvcnQoRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVw
b3J0RGF0YSkKIHsKICAgICBhdXRvIHJlcG9ydCA9IHJlcG9ydERhdGEudGFrZURhdGEoKTsKICAg
ICBpZiAoIXJlcG9ydCkKQEAgLTM4MTcsNyArMzgxNyw3IEBAIHZvaWQgV2ViUGFnZTo6c2VuZENT
UFZpb2xhdGlvblJlcG9ydCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVUkwmIHJlcG9ydFVSTCwg
SVBDCiAgICAgICAgIFBpbmdMb2FkZXI6OnNlbmRWaW9sYXRpb25SZXBvcnQoKmZyYW1lLT5jb3Jl
RnJhbWUoKSwgcmVwb3J0VVJMLCByZXBvcnQucmVsZWFzZU5vbk51bGwoKSwgVmlvbGF0aW9uUmVw
b3J0VHlwZTo6Q29udGVudFNlY3VyaXR5UG9saWN5KTsKIH0KIAotdm9pZCBXZWJQYWdlOjplbnF1
ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCh1aW50NjRfdCBmcmFtZUlELCBTZWN1cml0
eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYgZXZlbnRJbml0KQordm9pZCBXZWJQYWdlOjpl
bnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmIGV2ZW50SW5pdCkKIHsKICAg
ICBhdXRvKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQp
OwogICAgIGlmICghZnJhbWUpCkBAIC00NjgwLDcgKzQ2ODAsNyBAQCB2b2lkIFdlYlBhZ2U6OmVm
ZmVjdGl2ZUFwcGVhcmFuY2VEaWRDaGFuZ2UoYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSwgYm9vbCB1
c2VFbGV2YQogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZTo6YmVnaW5QcmludGluZyh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbykKK3ZvaWQgV2ViUGFnZTo6YmVn
aW5QcmludGluZyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmlu
dEluZm8pCiB7CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCFmcmFtZSkKQEAgLTQ3MjQsNyArNDcyNCw3IEBA
IHZvaWQgV2ViUGFnZTo6ZW5kUHJpbnRpbmcoKQogICAgIH0KIH0KIAotdm9pZCBXZWJQYWdlOjpj
b21wdXRlUGFnZXNGb3JQcmludGluZyh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8m
IHByaW50SW5mbywgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdlOjpjb21wdXRl
UGFnZXNGb3JQcmludGluZyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZv
JiBwcmludEluZm8sIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBWZWN0b3I8SW50UmVj
dD4gcmVzdWx0UGFnZVJlY3RzOwogICAgIGRvdWJsZSByZXN1bHRUb3RhbFNjYWxlRmFjdG9yRm9y
UHJpbnRpbmcgPSAxOwpAQCAtNDczMyw3ICs0NzMzLDcgQEAgdm9pZCBXZWJQYWdlOjpjb21wdXRl
UGFnZXNGb3JQcmludGluZyh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50
SW4KICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNvbXB1dGVkUGFnZXNDYWxsYmFj
ayhyZXN1bHRQYWdlUmVjdHMsIHJlc3VsdFRvdGFsU2NhbGVGYWN0b3JGb3JQcmludGluZywgY29t
cHV0ZWRQYWdlTWFyZ2luLCBjYWxsYmFja0lEKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6Y29tcHV0
ZVBhZ2VzRm9yUHJpbnRpbmdJbXBsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYg
cHJpbnRJbmZvLCBWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4mIHJlc3VsdFBhZ2VSZWN0cywgZG91
YmxlJiByZXN1bHRUb3RhbFNjYWxlRmFjdG9yRm9yUHJpbnRpbmcsIEZsb2F0Qm94RXh0ZW50JiBj
b21wdXRlZFBhZ2VNYXJnaW4pCit2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5n
SW1wbChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8s
IFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiYgcmVzdWx0UGFnZVJlY3RzLCBkb3VibGUmIHJlc3Vs
dFRvdGFsU2NhbGVGYWN0b3JGb3JQcmludGluZywgRmxvYXRCb3hFeHRlbnQmIGNvbXB1dGVkUGFn
ZU1hcmdpbikKIHsKICAgICBBU1NFUlQocmVzdWx0UGFnZVJlY3RzLmlzRW1wdHkoKSk7CiAKQEAg
LTQ3NTYsNyArNDc1Niw3IEBAIHZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdJ
bXBsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpCiB9CiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKLXZvaWQgV2ViUGFnZTo6ZHJhd1JlY3RUb0ltYWdlKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0LCBjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiBpbWFnZVNpemUsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3Zv
aWQgV2ViUGFnZTo6ZHJhd1JlY3RUb0ltYWdlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25z
dCBQcmludEluZm8mIHByaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgaW1hZ2VTaXplLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgV2Vi
RnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7
CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGZyYW1lID8gZnJhbWUtPmNvcmVGcmFtZSgpIDogMDsK
QEAgLTQ4MDYsMTQgKzQ4MDYsMTQgQEAgdm9pZCBXZWJQYWdlOjpkcmF3UmVjdFRvSW1hZ2UodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIGNvbnMKICAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkltYWdlQ2FsbGJhY2soaGFuZGxlLCBjYWxsYmFja0lE
KSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZHJhd1BhZ2VzVG9QREYodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3Vu
dCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdlOjpkcmF3UGFnZXNUb1BERihG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIHVpbnQz
Ml90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAg
IFJldGFpblB0cjxDRk11dGFibGVEYXRhUmVmPiBwZGZQYWdlRGF0YTsKICAgICBkcmF3UGFnZXNU
b1BERkltcGwoZnJhbWVJRCwgcHJpbnRJbmZvLCBmaXJzdCwgY291bnQsIHBkZlBhZ2VEYXRhKTsK
ICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRhdGFDYWxsYmFjayh7IENGRGF0YUdl
dEJ5dGVQdHIocGRmUGFnZURhdGEuZ2V0KCkpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KENGRGF0YUdl
dExlbmd0aChwZGZQYWdlRGF0YS5nZXQoKSkpIH0sIGNhbGxiYWNrSUQpKTsKIH0KIAotdm9pZCBX
ZWJQYWdlOjpkcmF3UGFnZXNUb1BERkltcGwodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJ
bmZvJiBwcmludEluZm8sIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgUmV0YWluUHRy
PENGTXV0YWJsZURhdGFSZWY+JiBwZGZQYWdlRGF0YSkKK3ZvaWQgV2ViUGFnZTo6ZHJhd1BhZ2Vz
VG9QREZJbXBsKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50
SW5mbywgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBSZXRhaW5QdHI8Q0ZNdXRhYmxl
RGF0YVJlZj4mIHBkZlBhZ2VEYXRhKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIEZyYW1lKiBjb3JlRnJhbWUg
PSBmcmFtZSA/IGZyYW1lLT5jb3JlRnJhbWUoKSA6IDA7CkBAIC00ODY0LDcgKzQ4NjQsNyBAQCB2
b2lkIFdlYlBhZ2U6OmRyYXdQYWdlc1RvUERGSW1wbCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQ
cmludEluZm8mIHByaW50SW5mbywgdQogfQogCiAjZWxpZiBQTEFURk9STShHVEspCi12b2lkIFdl
YlBhZ2U6OmRyYXdQYWdlc0ZvclByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50
SW5mbyYgcHJpbnRJbmZvLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYlBhZ2U6OmRy
YXdQYWdlc0ZvclByaW50aW5nKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBQcmludElu
Zm8mIHByaW50SW5mbywgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIGJlZ2luUHJpbnRp
bmcoZnJhbWVJRCwgcHJpbnRJbmZvKTsKICAgICBpZiAobV9wcmludENvbnRleHQgJiYgbV9wcmlu
dE9wZXJhdGlvbikgewpAQCAtNjUwMiw3ICs2NTAyLDcgQEAgdm9pZCBXZWJQYWdlOjpzZXRJc1N1
c3BlbmRlZChib29sIHN1c3BlbmRlZCkKICAgICBzdXNwZW5kRm9yUHJvY2Vzc1N3YXAoKTsKIH0K
IAotdm9pZCBXZWJQYWdlOjpmcmFtZUJlY2FtZVJlbW90ZSh1aW50NjRfdCBmcmFtZUlELCBHbG9i
YWxGcmFtZUlkZW50aWZpZXImJiByZW1vdGVGcmFtZUlkZW50aWZpZXIsIEdsb2JhbFdpbmRvd0lk
ZW50aWZpZXImJiByZW1vdGVXaW5kb3dJZGVudGlmaWVyKQordm9pZCBXZWJQYWdlOjpmcmFtZUJl
Y2FtZVJlbW90ZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgR2xvYmFsRnJhbWVJZGVudGlmaWVy
JiYgcmVtb3RlRnJhbWVJZGVudGlmaWVyLCBHbG9iYWxXaW5kb3dJZGVudGlmaWVyJiYgcmVtb3Rl
V2luZG93SWRlbnRpZmllcikKIHsKICAgICBSZWZQdHI8V2ViRnJhbWU+IGZyYW1lID0gV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCFmcmFtZSkKQEAg
LTY1MzQsMTIgKzY1MzQsMTIgQEAgdm9pZCBXZWJQYWdlOjpmcmFtZUJlY2FtZVJlbW90ZSh1aW50
NjRfdCBmcmFtZUlELCBHbG9iYWxGcmFtZUlkZW50aWZpZXImJiByZW1vdGUKIH0KIAogI2lmIEVO
QUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi12b2lkIFdlYlBhZ2U6Omhhc1N0b3JhZ2VB
Y2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgUmVnaXN0cmFibGVEb21h
aW4mJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZTo6aGFzU3RvcmFn
ZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdpc3RyYWJsZURv
bWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0
aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6SGFzU3RvcmFnZUFjY2VzcyhzZXNzaW9uSUQoKSwgV1RGTW92ZShzdWJGcmFtZURv
bWFpbiksIFdURk1vdmUodG9wRnJhbWVEb21haW4pLCBmcmFtZUlELCBtX3BhZ2VJRCksIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpyZXF1ZXN0U3RvcmFn
ZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdpc3RyYWJsZURv
bWFpbiYmIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBXZWJDb3JlOjpTdG9yYWdl
QWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdl
OjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWlu
LCBSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3Jh
bnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVxdWVzdFN0b3JhZ2VBY2Nlc3Moc2Vz
c2lvbklEKCksIFdURk1vdmUoc3ViRnJhbWVEb21haW4pLCBXVEZNb3ZlKHRvcEZyYW1lRG9tYWlu
KSwgZnJhbWVJRCwgbV9wYWdlSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CkBA
IC02NTU1LDcgKzY1NTUsNyBAQCB2b2lkIFdlYlBhZ2U6Ondhc0xvYWRlZFdpdGhEYXRhVHJhbnNm
ZXJGcm9tUHJldmFsZW50UmVzb3VyY2UoKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoREVWSUNFX09S
SUVOVEFUSU9OKQotdm9pZCBXZWJQYWdlOjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5k
TW90aW9uQWNjZXNzKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYmIG9yaWdpbiwgYm9vbCBtYXlQcm9tcHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRGV2aWNl
T3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIp
Cit2b2lkIFdlYlBhZ2U6OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nl
c3MoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYm
IG9yaWdpbiwgYm9vbCBtYXlQcm9tcHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRGV2aWNlT3Jp
ZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3VsZEFs
bG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoZnJhbWVJRCwgV1RGTW92ZShvcmln
aW4pLCBtYXlQcm9tcHQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggNzA5OTI3MDE0MjQzYzEx
MjhmZjZmYWM5ZTRlYTkyZGQ2NTEyMmM2Zi4uMWQ5NzFmNGEzMzg2MTFlOTQwOWIzNGYxZTgxZGVl
NTBjNzYyZmNiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aApAQCAtMzQ2LDkgKzM0Niw5IEBAIHB1YmxpYzoKICAgICBXZWJGdWxsU2NyZWVuTWFuYWdlciog
ZnVsbFNjcmVlbk1hbmFnZXIoKTsKICNlbmRpZgogCi0gICAgdm9pZCBhZGRDb25zb2xlTWVzc2Fn
ZSh1aW50NjRfdCBmcmFtZUlELCBNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0
cmluZyYsIHVpbnQ2NF90IHJlcXVlc3RJRCA9IDApOwotICAgIHZvaWQgc2VuZENTUFZpb2xhdGlv
blJlcG9ydCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgSVBDOjpGb3Jt
RGF0YVJlZmVyZW5jZSYmKTsKLSAgICB2b2lkIGVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlv
bkV2ZW50KHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnQ6OkluaXQmJik7CisgICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiwg
dWludDY0X3QgcmVxdWVzdElEID0gMCk7CisgICAgdm9pZCBzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgVVJMJiByZXBvcnRVUkwsIElQQzo6Rm9y
bURhdGFSZWZlcmVuY2UmJik7CisgICAgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5
VmlvbGF0aW9uRXZlbnQ6OkluaXQmJik7CiAKICAgICAvLyAtLSBDYWxsZWQgYnkgdGhlIERyYXdp
bmdBcmVhLgogICAgIC8vIEZJWE1FOiBXZSBjb3VsZCBnZW5lcmljaXplIHRoZXNlIGludG8gYSBE
cmF3aW5nQXJlYSBjbGllbnQgaW50ZXJmYWNlLiBXb3VsZCB0aGF0IGJlIGJlbmVmaWNpYWw/CkBA
IC01MjIsNyArNTIyLDcgQEAgcHVibGljOgogICAgIFdlYkNvcmU6OkNvbG9yIHVuZGVybGF5Q29s
b3IoKSBjb25zdCB7IHJldHVybiBtX3VuZGVybGF5Q29sb3I7IH0KIAogICAgIHZvaWQgc3RvcExv
YWRpbmcoKTsKLSAgICB2b2lkIHN0b3BMb2FkaW5nRnJhbWUodWludDY0X3QgZnJhbWVJRCk7Cisg
ICAgdm9pZCBzdG9wTG9hZGluZ0ZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAgICAg
Ym9vbCBkZWZlcnNMb2FkaW5nKCkgY29uc3Q7CiAgICAgdm9pZCBzZXREZWZlcnNMb2FkaW5nKGJv
b2wgZGVmZXJMb2FkaW5nKTsKIApAQCAtNzY5LDcgKzc2OSw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGNvbmZpcm1Db21wb3NpdGlvbihjb25zdCBTdHJpbmcmIHRleHQsIGludDY0X3Qgc2VsZWN0aW9u
U3RhcnQsIGludDY0X3Qgc2VsZWN0aW9uTGVuZ3RoKTsKICAgICB2b2lkIGNhbmNlbENvbXBvc2l0
aW9uKCk7CiAKLSAgICB2b2lkIGNvbGxhcHNlU2VsZWN0aW9uSW5GcmFtZSh1aW50NjRfdCBmcmFt
ZUlEKTsKKyAgICB2b2lkIGNvbGxhcHNlU2VsZWN0aW9uSW5GcmFtZShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIpOwogICAgIHZvaWQgc2hvd0Vtb2ppUGlja2VyKFdlYkNvcmU6OkZyYW1lJik7CiAK
ICAgICB2b2lkIGdldENlbnRlckZvclpvb21HZXN0dXJlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiBjZW50ZXJJblZpZXdDb29yZGluYXRlcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3Jl
OjpJbnRQb2ludCYmKT4mJik7CkBAIC04NjIsMjMgKzg2MiwyMyBAQCBwdWJsaWM6CiAgICAgV2Vi
Q29yZTo6RHJhZ1NvdXJjZUFjdGlvbiBhbGxvd2VkRHJhZ1NvdXJjZUFjdGlvbnMoKSBjb25zdCB7
IHJldHVybiBtX2FsbG93ZWREcmFnU291cmNlQWN0aW9uczsgfQogI2VuZGlmCiAKLSAgICB2b2lk
IGJlZ2luUHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJik7CisgICAg
dm9pZCBiZWdpblByaW50aW5nKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJ
bmZvJik7CiAgICAgdm9pZCBlbmRQcmludGluZygpOwotICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9y
UHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiwgQ2FsbGJhY2tJRCk7
Ci0gICAgdm9pZCBjb21wdXRlUGFnZXNGb3JQcmludGluZ0ltcGwodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgUHJpbnRJbmZvJiwgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+JiBwYWdlUmVjdHMsIGRv
dWJsZSYgdG90YWxTY2FsZUZhY3RvciwgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIGNvbXB1dGVk
TWFyZ2luKTsKKyAgICB2b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBjb21w
dXRlUGFnZXNGb3JQcmludGluZ0ltcGwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQ
cmludEluZm8mLCBWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4mIHBhZ2VSZWN0cywgZG91YmxlJiB0
b3RhbFNjYWxlRmFjdG9yLCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgY29tcHV0ZWRNYXJnaW4p
OwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdm9pZCBkcmF3UmVjdFRvSW1hZ2UodWludDY0
X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNv
bnN0IFdlYkNvcmU6OkludFNpemUmLCBDYWxsYmFja0lEKTsKLSAgICB2b2lkIGRyYXdQYWdlc1Rv
UERGKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIHVpbnQzMl90IGZpcnN0LCB1
aW50MzJfdCBjb3VudCwgQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBkcmF3UGFnZXNUb1BERkltcGwo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiwgdWludDMyX3QgZmlyc3QsIHVpbnQz
Ml90IGNvdW50LCBSZXRhaW5QdHI8Q0ZNdXRhYmxlRGF0YVJlZj4mIHBkZlBhZ2VEYXRhKTsKKyAg
ICB2b2lkIGRyYXdSZWN0VG9JbWFnZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFBy
aW50SW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JiwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBkcmF3UGFnZXNUb1BERihXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYsIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3Vu
dCwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBkcmF3UGFnZXNUb1BERkltcGwoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3Qg
Y291bnQsIFJldGFpblB0cjxDRk11dGFibGVEYXRhUmVmPiYgcGRmUGFnZURhdGEpOwogI2VuZGlm
CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJp
bnRpbmdBbmREcmF3VG9QREYodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiwgQ2Fs
bGJhY2tJRCwgTWVzc2FnZXM6OldlYlBhZ2U6OkNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJh
d1RvUERGOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBjb21wdXRlUGFnZXNGb3JQcmludGlu
Z0FuZERyYXdUb1BERihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYs
IENhbGxiYWNrSUQsIE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21wdXRlUGFnZXNGb3JQcmludGluZ0Fu
ZERyYXdUb1BERjo6RGVsYXllZFJlcGx5JiYpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShHVEsp
Ci0gICAgdm9pZCBkcmF3UGFnZXNGb3JQcmludGluZyh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQ
cmludEluZm8mLCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIGRyYXdQYWdlc0ZvclByaW50aW5nKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgQ2FsbGJhY2tJRCk7CiAg
ICAgdm9pZCBkaWRGaW5pc2hQcmludE9wZXJhdGlvbihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yJiwgQ2FsbGJhY2tJRCk7CiAjZW5kaWYKIApAQCAtMTEzMSwxMyArMTEzMSwxMyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBmbHVzaFBlbmRpbmdFZGl0b3JTdGF0ZVVwZGF0ZSgpOwogCiAjaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLSAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3Mo
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vz
cyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBXZWJD
b3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKTsKKyAgICB2b2lkIGhhc1N0b3Jh
Z2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHJl
cXVlc3RTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVE
b21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9y
YWdlQWNjZXNzV2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3du
KT4mJik7CiAgICAgdm9pZCB3YXNMb2FkZWRXaXRoRGF0YVRyYW5zZmVyRnJvbVByZXZhbGVudFJl
c291cmNlKCk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0gICAg
dm9pZCBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKHVpbnQ2NF90
IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBib29sIG1heVByb21wdCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9u
UGVybWlzc2lvblN0YXRlKT4mJik7CisgICAgdm9pZCBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0
aW9uQW5kTW90aW9uQWNjZXNzKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiYsIGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmKTsK
ICNlbmRpZgogCiAgICAgdm9pZCBzaG93U2hhcmVTaGVldChXZWJDb3JlOjpTaGFyZURhdGFXaXRo
UGFyc2VkVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFjayk7CkBA
IC0xMzU2LDggKzEzNTYsOCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBib29sIHNjcm9sbChXZWJD
b3JlOjpQYWdlKiwgV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uLCBXZWJDb3JlOjpTY3JvbGxHcmFu
dWxhcml0eSk7CiAgICAgc3RhdGljIGJvb2wgbG9naWNhbFNjcm9sbChXZWJDb3JlOjpQYWdlKiwg
V2ViQ29yZTo6U2Nyb2xsTG9naWNhbERpcmVjdGlvbiwgV2ViQ29yZTo6U2Nyb2xsR3JhbnVsYXJp
dHkpOwogCi0gICAgdm9pZCBsb2FkVVJMSW5GcmFtZShVUkwmJiwgY29uc3QgU3RyaW5nJiByZWZl
cnJlciwgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBsb2FkRGF0YUluRnJhbWUoSVBDOjpE
YXRhUmVmZXJlbmNlJiYsIFN0cmluZyYmIE1JTUVUeXBlLCBTdHJpbmcmJiBlbmNvZGluZ05hbWUs
IFVSTCYmIGJhc2VVUkwsIHVpbnQ2NF90IGZyYW1lSUQpOworICAgIHZvaWQgbG9hZFVSTEluRnJh
bWUoVVJMJiYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
cik7CisgICAgdm9pZCBsb2FkRGF0YUluRnJhbWUoSVBDOjpEYXRhUmVmZXJlbmNlJiYsIFN0cmlu
ZyYmIE1JTUVUeXBlLCBTdHJpbmcmJiBlbmNvZGluZ05hbWUsIFVSTCYmIGJhc2VVUkwsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcik7CiAKICAgICBlbnVtIGNsYXNzIFdhc1Jlc3RvcmVkQnlBUElS
ZXF1ZXN0IHsgTm8sIFllcyB9OwogICAgIHZvaWQgcmVzdG9yZVNlc3Npb25JbnRlcm5hbChjb25z
dCBWZWN0b3I8QmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlPiYsIFdhc1Jlc3RvcmVkQnlBUElSZXF1
ZXN0LCBXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6T3ZlcndyaXRlRXhpc3RpbmdJdGVtKTsKQEAg
LTEzODksMTYgKzEzODksMTYgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoTUhUTUwpCiAgICAgdm9p
ZCBnZXRDb250ZW50c0FzTUhUTUxEYXRhKENhbGxiYWNrSUQpOwogI2VuZGlmCi0gICAgdm9pZCBn
ZXRNYWluUmVzb3VyY2VEYXRhT2ZGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDYWxsYmFja0lEKTsK
LSAgICB2b2lkIGdldFJlc291cmNlRGF0YUZyb21GcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBTdHJpbmcmIHJlc291cmNlVVJMLCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIGdldE1haW5SZXNv
dXJjZURhdGFPZkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ2FsbGJhY2tJRCk7Cisg
ICAgdm9pZCBnZXRSZXNvdXJjZURhdGFGcm9tRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIHJlc291cmNlVVJMLCBDYWxsYmFja0lEKTsKICAgICB2b2lkIGdldFJl
bmRlclRyZWVFeHRlcm5hbFJlcHJlc2VudGF0aW9uKENhbGxiYWNrSUQpOwogICAgIHZvaWQgZ2V0
U2VsZWN0aW9uT3JDb250ZW50c0FzU3RyaW5nKENhbGxiYWNrSUQpOwogICAgIHZvaWQgZ2V0U2Vs
ZWN0aW9uQXNXZWJBcmNoaXZlRGF0YShDYWxsYmFja0lEKTsKLSAgICB2b2lkIGdldFNvdXJjZUZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENhbGxiYWNrSUQpOwotICAgIHZvaWQgZ2V0V2ViQXJj
aGl2ZU9mRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBnZXRT
b3VyY2VGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENhbGxiYWNrSUQpOworICAg
IHZvaWQgZ2V0V2ViQXJjaGl2ZU9mRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBDYWxs
YmFja0lEKTsKICAgICB2b2lkIHJ1bkphdmFTY3JpcHQoV2ViRnJhbWUqLCBjb25zdCBTdHJpbmcm
LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIGNvbnN0IE9wdGlvbmFsPFN0cmluZz4mIHdvcmxkTmFt
ZSwgQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBydW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRX
b3JsZChjb25zdCBTdHJpbmcmLCBib29sIGZvcmNlVXNlckdlc3R1cmUsIGNvbnN0IE9wdGlvbmFs
PFN0cmluZz4mIHdvcmxkTmFtZSwgQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBydW5KYXZhU2NyaXB0
SW5GcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmLCBib29sIGZvcmNlVXNlckdl
c3R1cmUsIENhbGxiYWNrSUQpOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluRnJhbWUoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sIGZvcmNlVXNlckdlc3R1cmUs
IENhbGxiYWNrSUQpOwogICAgIHZvaWQgZm9yY2VSZXBhaW50KENhbGxiYWNrSUQpOwogICAgIHZv
aWQgdGFrZVNuYXBzaG90KFdlYkNvcmU6OkludFJlY3Qgc25hcHNob3RSZWN0LCBXZWJDb3JlOjpJ
bnRTaXplIGJpdG1hcFNpemUsIHVpbnQzMl90IG9wdGlvbnMsIENhbGxiYWNrSUQpOwogCkBAIC0x
NDEyLDggKzE0MTIsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgcGFyZW50UHJvY2Vzc0hhc1NlcnZp
Y2VXb3JrZXJFbnRpdGxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICNlbmRpZgogCi0g
ICAgdm9pZCBkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24odWludDY0X3QgZnJhbWVJRCwgdWludDY0
X3QgbGlzdGVuZXJJRCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpQ
b2xpY3lBY3Rpb24sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgRG93bmxvYWRJRCYsIE9w
dGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYpOwotICAgIHZvaWQgY29udGludWVXaWxsU3Vi
bWl0Rm9ybSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBsaXN0ZW5lcklEKTsKKyAgICB2b2lk
IGRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2
NF90IGxpc3RlbmVySUQsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6
UG9saWN5QWN0aW9uLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IERvd25sb2FkSUQmLCBP
cHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmKTsKKyAgICB2b2lkIGNvbnRpbnVlV2lsbFN1
Ym1pdEZvcm0oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBsaXN0ZW5lcklEKTsK
ICAgICB2b2lkIHNldFVzZXJBZ2VudChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHNldEN1c3Rv
bVRleHRFbmNvZGluZ05hbWUoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBzdXNwZW5kQWN0aXZl
RE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMoKTsKQEAgLTE0MzEsNyArMTQzMSw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCB3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiB3aW5kb3dGcmFtZUluVW5mbGlwcGVkU2NyZWVuQ29vcmRpbmF0ZXMsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcywgY29uc3QgV2Vi
Q29yZTo6RmxvYXRQb2ludCYgYWNjZXNzaWJpbGl0eVZpZXdDb29yZGluYXRlcyk7CiAKICAgICBS
ZXRhaW5QdHI8UERGRG9jdW1lbnQ+IHBkZkRvY3VtZW50Rm9yUHJpbnRpbmdGcmFtZShXZWJDb3Jl
OjpGcmFtZSopOwotICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdQREZEb2N1bWVudCh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mLCBWZWN0b3I8V2ViQ29yZTo6SW50UmVj
dD4mIHJlc3VsdFBhZ2VSZWN0cyk7CisgICAgdm9pZCBjb21wdXRlUGFnZXNGb3JQcmludGluZ1BE
RkRvY3VtZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgVmVj
dG9yPFdlYkNvcmU6OkludFJlY3Q+JiByZXN1bHRQYWdlUmVjdHMpOwogICAgIHZvaWQgZHJhd1BE
RkRvY3VtZW50KENHQ29udGV4dFJlZiwgUERGRG9jdW1lbnQgKiwgY29uc3QgUHJpbnRJbmZvJiwg
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogICAgIHZvaWQgZHJhd1BhZ2VzVG9QREZGcm9tUERG
RG9jdW1lbnQoQ0dDb250ZXh0UmVmLCBQREZEb2N1bWVudCAqLCBjb25zdCBQcmludEluZm8mLCB1
aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQpOwogI2VuZGlmCkBAIC0xNTg0LDcgKzE1ODQs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgdm9pY2VzRGlkQ2hhbmdlKCk7CiAjZW5kaWYKIAotICAg
IHZvaWQgZnJhbWVCZWNhbWVSZW1vdGUodWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6R2xvYmFs
RnJhbWVJZGVudGlmaWVyJiYgcmVtb3RlRnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpHbG9iYWxX
aW5kb3dJZGVudGlmaWVyJiYgcmVtb3RlV2luZG93SWRlbnRpZmllcik7CisgICAgdm9pZCBmcmFt
ZUJlY2FtZVJlbW90ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6Okdsb2JhbEZy
YW1lSWRlbnRpZmllciYmIHJlbW90ZUZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6R2xvYmFsV2lu
ZG93SWRlbnRpZmllciYmIHJlbW90ZVdpbmRvd0lkZW50aWZpZXIpOwogCiAgICAgdm9pZCByZWdp
c3RlclVSTFNjaGVtZUhhbmRsZXIodWludDY0X3QgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBz
Y2hlbWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgppbmRleCBhNTJlMjUxZDI1ZGE2ZDg4NzFiMjcyZDcxNDIyOTEzMjlj
NWYyNDM4Li5iYTdmNjRiZmRjYmNjZjhhYjJjMzNmNmMyNzhiNDZkMTUxODg4ZjAxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW4KQEAgLTI3LDkgKzI3LDkgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7
CiAKICAgICBTZXRCYWNrZ3JvdW5kQ29sb3IoT3B0aW9uYWw8V2ViQ29yZTo6Q29sb3I+IGNvbG9y
KQogCi0gICAgQWRkQ29uc29sZU1lc3NhZ2UodWludDY0X3QgZnJhbWVJRCwgZW51bTp1aW50OF90
IEpTQzo6TWVzc2FnZVNvdXJjZSBtZXNzYWdlU291cmNlLCBlbnVtOnVpbnQ4X3QgSlNDOjpNZXNz
YWdlTGV2ZWwgbWVzc2FnZUxldmVsLCBTdHJpbmcgbWVzc2FnZSwgdWludDY0X3QgcmVxdWVzdElE
KQotICAgIFNlbmRDU1BWaW9sYXRpb25SZXBvcnQodWludDY0X3QgZnJhbWVJRCwgVVJMIHJlcG9y
dFVSTCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXBvcnREYXRhKQotICAgIEVucXVldWVTZWN1
cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3Vy
aXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQgZXZlbnRJbml0KQorICAgIEFkZENvbnNvbGVN
ZXNzYWdlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBlbnVtOnVpbnQ4X3QgSlND
OjpNZXNzYWdlU291cmNlIG1lc3NhZ2VTb3VyY2UsIGVudW06dWludDhfdCBKU0M6Ok1lc3NhZ2VM
ZXZlbCBtZXNzYWdlTGV2ZWwsIFN0cmluZyBtZXNzYWdlLCB1aW50NjRfdCByZXF1ZXN0SUQpCisg
ICAgU2VuZENTUFZpb2xhdGlvblJlcG9ydChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgVVJMIHJlcG9ydFVSTCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXBvcnREYXRhKQorICAg
IEVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0
IGV2ZW50SW5pdCkKIAogICAgIFRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2Fp
dGluZ0ZvclN5bmNSZXBseSgpIC0+IChib29sIGhhbmRsZWQpIFN5bmNocm9ub3VzCiAKQEAgLTE2
Miw4ICsxNjIsOCBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhf
dCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIEdvVG9CYWNrRm9yd2Fy
ZEl0ZW0odWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJ
dGVtSWRlbnRpZmllciBiYWNrRm9yd2FyZEl0ZW1JRCwgZW51bTp1aW50OF90IFdlYkNvcmU6OkZy
YW1lTG9hZFR5cGUgYmFja0ZvcndhcmRUeXBlLCBlbnVtOmJvb2wgV2ViQ29yZTo6U2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0aW9uYWw8
V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9saWNpZXMpCiAgICAgVHJ5UmVz
dG9yZVNjcm9sbFBvc2l0aW9uKCkKIAotICAgIExvYWRVUkxJbkZyYW1lKFVSTCB1cmwsIFN0cmlu
ZyByZWZlcnJlciwgdWludDY0X3QgZnJhbWVJRCkKLSAgICBMb2FkRGF0YUluRnJhbWUoSVBDOjpE
YXRhUmVmZXJlbmNlIGRhdGEsIFN0cmluZyBNSU1FVHlwZSwgU3RyaW5nIGVuY29kaW5nTmFtZSwg
VVJMIGJhc2VVUkwsIHVpbnQ2NF90IGZyYW1lSUQpCisgICAgTG9hZFVSTEluRnJhbWUoVVJMIHVy
bCwgU3RyaW5nIHJlZmVycmVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKKyAg
ICBMb2FkRGF0YUluRnJhbWUoSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEsIFN0cmluZyBNSU1FVHlw
ZSwgU3RyaW5nIGVuY29kaW5nTmFtZSwgVVJMIGJhc2VVUkwsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlEKQogICAgIExvYWRSZXF1ZXN0KHN0cnVjdCBXZWJLaXQ6OkxvYWRQYXJhbWV0
ZXJzIGxvYWRQYXJhbWV0ZXJzKQogICAgIExvYWREYXRhKHN0cnVjdCBXZWJLaXQ6OkxvYWRQYXJh
bWV0ZXJzIGxvYWRQYXJhbWV0ZXJzKQogICAgIExvYWRBbHRlcm5hdGVIVE1MKHN0cnVjdCBXZWJL
aXQ6OkxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzKQpAQCAtMTczLDcgKzE3Myw3IEBAIEdl
bmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhl
dGljRWRpdGluZ0NvbW1hbmRUeXBlCiAgICAgUmVsb2FkKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
dWludDMyX3QgcmVsb2FkT3B0aW9ucywgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUg
c2FuZGJveEV4dGVuc2lvbkhhbmRsZSkKICAgICBTdG9wTG9hZGluZygpCiAKLSAgICBTdG9wTG9h
ZGluZ0ZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCisgICAgU3RvcExvYWRpbmdGcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKICAgICAKICAgICBSZXN0b3JlU2Vzc2lvbihWZWN0
b3I8V2ViS2l0OjpCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGU+IGl0ZW1TdGF0ZXMpCiAgICAgVXBk
YXRlQmFja0ZvcndhcmRMaXN0Rm9yUmVhdHRhY2goVmVjdG9yPFdlYktpdDo6QmFja0ZvcndhcmRM
aXN0SXRlbVN0YXRlPiBpdGVtU3RhdGVzKQpAQCAtMTgyLDggKzE4Miw4IEBAIEdlbmVyYXRlU3lu
dGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGlu
Z0NvbW1hbmRUeXBlCiAgICAgRGlkUmVtb3ZlQmFja0ZvcndhcmRJdGVtKHN0cnVjdCBXZWJDb3Jl
OjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyIGJhY2tGb3J3YXJkSXRlbUlEKQogCiAgICAgVXBk
YXRlV2Vic2l0ZVBvbGljaWVzKHN0cnVjdCBXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGEgd2Vi
c2l0ZVBvbGljaWVzKQotICAgIERpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbih1aW50NjRfdCBmcmFt
ZUlELCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIg
cG9saWN5Q2hlY2tJZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UG9saWN5QWN0aW9u
IHBvbGljeUFjdGlvbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJLaXQ6OkRvd25sb2FkSUQg
ZG93bmxvYWRJRCwgT3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRl
UG9saWNpZXMpCi0gICAgQ29udGludWVXaWxsU3VibWl0Rm9ybSh1aW50NjRfdCBmcmFtZUlELCB1
aW50NjRfdCBsaXN0ZW5lcklEKQorICAgIERpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgZW51bTp1aW50OF90
IFdlYkNvcmU6OlBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIE9wdGlvbmFsPFdlYktpdDo6V2Vic2l0
ZVBvbGljaWVzRGF0YT4gd2Vic2l0ZVBvbGljaWVzKQorICAgIENvbnRpbnVlV2lsbFN1Ym1pdEZv
cm0oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQp
CiAKICAgICBDbGVhclNlbGVjdGlvbigpCiAgICAgUmVzdG9yZVNlbGVjdGlvbkluRm9jdXNlZEVk
aXRhYmxlRWxlbWVudCgpCkBAIC0xOTYsMTUgKzE5NiwxNSBAQCBHZW5lcmF0ZVN5bnRoZXRpY0Vk
aXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5k
VHlwZQogI2lmIEVOQUJMRShNSFRNTCkKICAgICBHZXRDb250ZW50c0FzTUhUTUxEYXRhKFdlYktp
dDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogI2VuZGlmCi0gICAgR2V0TWFpblJlc291cmNlRGF0
YU9mRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQp
Ci0gICAgR2V0UmVzb3VyY2VEYXRhRnJvbUZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBy
ZXNvdXJjZVVSTCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCisgICAgR2V0TWFpblJl
c291cmNlRGF0YU9mRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYktp
dDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIEdldFJlc291cmNlRGF0YUZyb21GcmFtZShX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIHJlc291cmNlVVJMLCBXZWJL
aXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBHZXRSZW5kZXJUcmVlRXh0ZXJuYWxSZXBy
ZXNlbnRhdGlvbihXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBHZXRTZWxlY3Rp
b25PckNvbnRlbnRzQXNTdHJpbmcoV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAg
R2V0U2VsZWN0aW9uQXNXZWJBcmNoaXZlRGF0YShXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJ
RCkKLSAgICBHZXRTb3VyY2VGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6OkNhbGxi
YWNrSUQgY2FsbGJhY2tJRCkKLSAgICBHZXRXZWJBcmNoaXZlT2ZGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBHZXRTb3VyY2VGb3JGcmFt
ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViS2l0OjpDYWxsYmFja0lEIGNh
bGxiYWNrSUQpCisgICAgR2V0V2ViQXJjaGl2ZU9mRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIFJ1bkphdmFT
Y3JpcHRJbk1haW5GcmFtZVNjcmlwdFdvcmxkKFN0cmluZyBzY3JpcHQsIGJvb2wgZm9yY2VVc2Vy
R2VzdHVyZSwgT3B0aW9uYWw8U3RyaW5nPiB3b3JsZE5hbWUsIFdlYktpdDo6Q2FsbGJhY2tJRCBj
YWxsYmFja0lEKQotICAgIFJ1bkphdmFTY3JpcHRJbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFN0
cmluZyBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgV2ViS2l0OjpDYWxsYmFja0lEIGNh
bGxiYWNrSUQpCisgICAgUnVuSmF2YVNjcmlwdEluRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIFN0cmluZyBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgV2ViS2l0
OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgRm9yY2VSZXBhaW50KFdlYktpdDo6Q2FsbGJh
Y2tJRCBjYWxsYmFja0lEKQogCiAgICAgU2VsZWN0QWxsKCkKQEAgLTM4MCwxOCArMzgwLDE4IEBA
IEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3lu
dGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAgICAgRGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1p
c3Npb25EZWNpc2lvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCwgYm9vbCBhbGxvd2VkKQogCiAg
ICAgIyBQcmludGluZy4KLSAgICBCZWdpblByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVj
dCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8pCisgICAgQmVnaW5QcmludGluZyhXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50
SW5mbykKICAgICBFbmRQcmludGluZygpCi0gICAgQ29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcodWlu
dDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2ViS2l0
OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCisgICAgQ29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBw
cmludEluZm8sIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogI2lmIFBMQVRGT1JNKENP
Q09BKQotICAgIERyYXdSZWN0VG9JbWFnZSh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0
OjpQcmludEluZm8gcHJpbnRJbmZvLCBXZWJDb3JlOjpJbnRSZWN0IHJlY3QsIFdlYkNvcmU6Oklu
dFNpemUgaW1hZ2VTaXplLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKLSAgICBEcmF3
UGFnZXNUb1BERih1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJp
bnRJbmZvLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIFdlYktpdDo6Q2FsbGJhY2tJ
RCBjYWxsYmFja0lEKQorICAgIERyYXdSZWN0VG9JbWFnZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2ViQ29yZTo6
SW50UmVjdCByZWN0LCBXZWJDb3JlOjpJbnRTaXplIGltYWdlU2l6ZSwgV2ViS2l0OjpDYWxsYmFj
a0lEIGNhbGxiYWNrSUQpCisgICAgRHJhd1BhZ2VzVG9QREYoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIHVpbnQzMl90
IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBDb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERy
YXdUb1BERih1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJ
bmZvLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkgLT4gKHVpbnQzMl90IHBhZ2VDb3Vu
dCkgU3luY2hyb25vdXMKKyAgICBDb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERihX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZv
IHByaW50SW5mbywgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpIC0+ICh1aW50MzJfdCBw
YWdlQ291bnQpIFN5bmNocm9ub3VzCiAjZW5kaWYKICNlbmRpZgogI2lmIFBMQVRGT1JNKEdUSykK
LSAgICBEcmF3UGFnZXNGb3JQcmludGluZyh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0
OjpQcmludEluZm8gcHJpbnRJbmZvLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAg
ICBEcmF3UGFnZXNGb3JQcmludGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
c3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2ViS2l0OjpDYWxsYmFja0lEIGNh
bGxiYWNrSUQpCiAjZW5kaWYKIAogICAgICMgTWVkaWEKQEAgLTQxMyw3ICs0MTMsNyBAQCBHZW5l
cmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRp
Y0VkaXRpbmdDb21tYW5kVHlwZQogICAgIENvbmZpcm1Db21wb3NpdGlvbihTdHJpbmcgdGV4dCwg
aW50NjRfdCBzZWxlY3Rpb25TdGFydCwgaW50NjRfdCBzZWxlY3Rpb25MZW5ndGgpCiAgICAgQ2Fu
Y2VsQ29tcG9zaXRpb24oKQogCi0gICAgQ29sbGFwc2VTZWxlY3Rpb25JbkZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQpCisgICAgQ29sbGFwc2VTZWxlY3Rpb25JbkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBmcmFtZUlEKQogCiAgICAgR2V0Q2VudGVyRm9yWm9vbUdlc3R1cmUoV2ViQ29yZTo6
SW50UG9pbnQgY2VudGVySW5WaWV3Q29vcmRpbmF0ZXMpIC0+IChXZWJDb3JlOjpJbnRQb2ludCBj
ZW50ZXIpIFN5bmNocm9ub3VzCiAjZW5kaWYKQEAgLTUzNiw3ICs1MzYsNyBAQCBHZW5lcmF0ZVN5
bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRp
bmdDb21tYW5kVHlwZQogICAgIERpZFJlY2VpdmVQYXNzd29yZEZvclF1aWNrTG9va0RvY3VtZW50
KFN0cmluZyBwYXNzd29yZCkKICNlbmRpZgogCi0gICAgRnJhbWVCZWNhbWVSZW1vdGUodWludDY0
X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6Okdsb2JhbEZyYW1lSWRlbnRpZmllciByZW1vdGVG
cmFtZUlkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlmaWVyIHJl
bW90ZVdpbmRvd0lkZW50aWZpZXIpCisgICAgRnJhbWVCZWNhbWVSZW1vdGUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpHbG9iYWxGcmFtZUlkZW50aWZp
ZXIgcmVtb3RlRnJhbWVJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6R2xvYmFsV2luZG93SWRl
bnRpZmllciByZW1vdGVXaW5kb3dJZGVudGlmaWVyKQogCiAgICAgUmVnaXN0ZXJVUkxTY2hlbWVI
YW5kbGVyKHVpbnQ2NF90IGlkZW50aWZpZXIsIFN0cmluZyBzY2hlbWUpCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggZTRj
NjQyNzFjY2Y4OTNiMzU5Yjk0NTc5YzhiMmQxNzkxZGRhOWNiOS4uMmRiMGViNmJiYWE0NTc4YmY2
YTY5NWNlNDAwMmQ3NzM2NTE2YmQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTU1MSw3ICs1NTEsNyBAQCB2b2lkIFdl
YlBhZ2U6OmFjY2VwdHNGaXJzdE1vdXNlKGludCwgY29uc3QgV2ViS2l0OjpXZWJNb3VzZUV2ZW50
JiwgQ29tcGxldGlvbkhhbgogICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKIH0KIAotdm9p
ZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZ1BERkRvY3VtZW50KHVpbnQ2NF90LCBj
b25zdCBQcmludEluZm8mLCBWZWN0b3I8SW50UmVjdD4mKQordm9pZCBXZWJQYWdlOjpjb21wdXRl
UGFnZXNGb3JQcmludGluZ1BERkRvY3VtZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29u
c3QgUHJpbnRJbmZvJiwgVmVjdG9yPEludFJlY3Q+JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogfQpAQCAtMzczOSw3ICszNzM5LDcgQEAgdm9pZCBXZWJQYWdlOjpkaXNwYXRjaEFzeW5jaHJv
bm91c1RvdWNoRXZlbnRzKGNvbnN0IFZlY3RvcjxXZWJUb3VjaEV2ZW50LCAxPiYgcXUKIH0KICNl
bmRpZgogCi12b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERG
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBDYWxsYmFja0lE
IGNhbGxiYWNrSUQsIE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21wdXRlUGFnZXNGb3JQcmludGluZ0Fu
ZERyYXdUb1BERjo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQ
YWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgQ2FsbGJhY2tJRCBjYWxsYmFja0lELCBN
ZXNzYWdlczo6V2ViUGFnZTo6Q29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREY6OkRl
bGF5ZWRSZXBseSYmIHJlcGx5KQogewogICAgIGlmIChwcmludEluZm8uc25hcHNob3RGaXJzdFBh
Z2UpIHsKICAgICAgICAgcmVwbHkoMSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCmluZGV4IDQzMWRmYTE3YWNhMDViNjBlZmU5YWUw
NDAzYTQwODgwZTI4MThkODAuLmZlMjQxN2IwYTdkNTgzNjNjNTRiYjg2ZGE1Nzg5OGQxMWZiZTM1
MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQ
YWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQ
YWdlTWFjLm1tCkBAIC02NzAsNyArNjcwLDcgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVIZWFkZXJB
bmRGb290ZXJMYXllcnNGb3JEZXZpY2VTY2FsZUNoYW5nZShmbG9hdCBzY2FsZUZhY3RvcikKICAg
ICAgICAgbV9mb290ZXJCYW5uZXItPmRpZENoYW5nZURldmljZVNjYWxlRmFjdG9yKHNjYWxlRmFj
dG9yKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZ1BERkRvY3Vt
ZW50KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBWZWN0b3I8
SW50UmVjdD4mIHJlc3VsdFBhZ2VSZWN0cykKK3ZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9y
UHJpbnRpbmdQREZEb2N1bWVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29u
c3QgUHJpbnRJbmZvJiBwcmludEluZm8sIFZlY3RvcjxJbnRSZWN0PiYgcmVzdWx0UGFnZVJlY3Rz
KQogewogICAgIEFTU0VSVChyZXN1bHRQYWdlUmVjdHMuaXNFbXB0eSgpKTsKICAgICBXZWJGcmFt
ZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCBhMmRhMTJjNjAyMjkzNzNj
Zjg3ODkyYjgzZGFhNTc3MzUwMGE3N2YyLi41NjVmY2FhZWQxMzA5ZTc4NjU2NGMwYmZlYWI4Yjll
MWJmNTQwNzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC03
NjgsMTcgKzc2OCwxNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZQogICAgIExPR19FUlJPUigi
VW5oYW5kbGVkIHdlYiBwcm9jZXNzIG1lc3NhZ2UgJyVzOiVzJyIsIGRlY29kZXIubWVzc2FnZVJl
Y2VpdmVyTmFtZSgpLnRvU3RyaW5nKCkuZGF0YSgpLCBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkudG9T
dHJpbmcoKS5kYXRhKCkpOwogfQogCi1XZWJGcmFtZSogV2ViUHJvY2Vzczo6d2ViRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCkgY29uc3QKK1dlYkZyYW1lKiBXZWJQcm9jZXNzOjp3ZWJGcmFtZShGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9mcmFtZU1hcC5nZXQo
ZnJhbWVJRCk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6YWRkV2ViRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgV2ViRnJhbWUqIGZyYW1lKQordm9pZCBXZWJQcm9jZXNzOjphZGRXZWJGcmFtZShGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViRnJhbWUqIGZyYW1lKQogewogICAgIG1fZnJhbWVNYXAu
c2V0KGZyYW1lSUQsIGZyYW1lKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjpyZW1vdmVXZWJGcmFt
ZSh1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQcm9jZXNzOjpyZW1vdmVXZWJGcmFtZShGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBtX2ZyYW1lTWFwLnJlbW92ZShmcmFtZUlEKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZDRjMDFiYWIxZjkzZGE5
MDg1YjBmMjE5NGNkMzI3ZDQ3MTg2NTBiMi4uM2NiMmM0OTY5NDk5ODg3YjMyYjUzYjNhNjZkMGJi
ZjY4NWEzMjE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC00MCw2
ICs0MCw3IEBACiAjaW5jbHVkZSAiV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmgiCiAjaW5jbHVk
ZSAiV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FjdGl2aXR5
U3RhdGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lzdHJhYmxl
RG9tYWluLmg+CiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMTcyLDkgKzE3Myw5IEBAIHB1YmxpYzoK
IAogICAgIGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZDsgfQogCi0gICAgV2ViRnJhbWUqIHdlYkZyYW1lKHVp
bnQ2NF90KSBjb25zdDsKLSAgICB2b2lkIGFkZFdlYkZyYW1lKHVpbnQ2NF90LCBXZWJGcmFtZSop
OwotICAgIHZvaWQgcmVtb3ZlV2ViRnJhbWUodWludDY0X3QpOworICAgIFdlYkZyYW1lKiB3ZWJG
cmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpIGNvbnN0OworICAgIHZvaWQgYWRkV2ViRnJh
bWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJGcmFtZSopOworICAgIHZvaWQgcmVtb3Zl
V2ViRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKIAogICAgIFdlYlBhZ2VHcm91cFBy
b3h5KiB3ZWJQYWdlR3JvdXAoV2ViQ29yZTo6UGFnZUdyb3VwKik7CiAgICAgV2ViUGFnZUdyb3Vw
UHJveHkqIHdlYlBhZ2VHcm91cCh1aW50NjRfdCBwYWdlR3JvdXBJRCk7CkBAIC00ODksNyArNDkw
LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9mdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkIHsg
ZmFsc2UgfTsKIAotICAgIEhhc2hNYXA8dWludDY0X3QsIFdlYkZyYW1lKj4gbV9mcmFtZU1hcDsK
KyAgICBIYXNoTWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViRnJhbWUqPiBtX2ZyYW1l
TWFwOwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPGNvbnN0IGNoYXIqLCBzdGQ6OnVuaXF1ZV9wdHI8
V2ViUHJvY2Vzc1N1cHBsZW1lbnQ+LCBQdHJIYXNoPGNvbnN0IGNoYXIqPj4gV2ViUHJvY2Vzc1N1
cHBsZW1lbnRNYXA7CiAgICAgV2ViUHJvY2Vzc1N1cHBsZW1lbnRNYXAgbV9zdXBwbGVtZW50czsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGIxNDAzZDA1NjM5M2IzOTdkMDE3ZDA5M2Rl
NWZlMDRjZGNjYThjY2QuLmQ2MDYzMGZlMGNhYWRmNDNhOGI3NDQ5ZDJkNTQ5MGVkYjA4ZTZhYzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtNjQsNyArNjQsNyBAQCBwcml2YXRlOgog
ICAgIGJvb2wgaGFzV2ViVmlldygpIGNvbnN0IGZpbmFsOyAvLyBtYWlubHkgZm9yIGFzc2VydGlv
bnMKIAogICAgIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQoKSBjb25z
dCBmaW5hbDsKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCgpIGNvbnN0IGZpbmFsOwor
ICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCgpIGNvbnN0IGZp
bmFsOwogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IGZpbmFsOwogCiAgICAg
dm9pZCBtYWtlUmVwcmVzZW50YXRpb24oV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKSBmaW5hbDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KaW5kZXggM2RkNTBlN2IzYjljZjk5MzM0OWM5YWJi
NGNiNDk3ODM3ZWVjMzUzZS4uYjdhNjVlOTkzNGZmZjA4ODBiNzU2OGNhMDBlOTYyZTAxNWFlNDIx
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTIxNCw3ICsyMTQsNyBAQCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnBhZ2VJRCgpIGNvbnN0
CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KIAotT3B0aW9uYWw8dWludDY0X3Q+IFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlEKCkgY29uc3QKK09wdGlvbmFsPEZyYW1lSWRlbnRpZmll
cj4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZyYW1lSUQoKSBjb25zdAogewogICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376305</attachid>
            <date>2019-08-14 13:42:45 -0700</date>
            <delta_ts>2019-08-14 14:13:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199986-20190814134244.patch</filename>
            <type>text/plain</type>
            <size>442919</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmE3MDY4NjA3ZWFlOTVj
NTA0YWRlOThlNGIyZDQ4NzlmMjY2NDRmOS4uOTM1OGNjMTBmYjk5ZjFkMTE2ZmEyNDUwMzVhM2Ri
MDgzMjEwYTc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE5LTA4LTE0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBPYmplY3RJ
ZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+IGZvciBmcmFtZUlEcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5OTg2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBzdHJvbmdseS10eXBl
ZCBGcmFtZUlkZW50aWZpZXIgaW5zdGVhZCBvZiB1aW50NjRfdCBhcyBmcmFtZSBpZGVudGlmaWVy
cyBldmVyeXdoZXJlLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGxvYWRlci9Db29raWVKYXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q29va2llSmFyOjpjb29raWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tpZUphcjo6
c2V0Q29va2llcyk6CisgICAgICAgIChXZWJDb3JlOjpDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tpZUphcjo6Z2V0
UmF3Q29va2llcyBjb25zdCk6CisgICAgICAgICogbG9hZGVyL0Nvb2tpZUphci5oOgorICAgICAg
ICAqIGxvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3Bw
OgorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
OjpOYXZpZ2F0aW9uQWN0aW9uOjpSZXF1ZXN0ZXI6OmZyYW1lSUQgY29uc3QpOgorICAgICAgICAq
IHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9HbG9iYWxGcmFtZUlkZW50aWZp
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Okdsb2JhbEZyYW1lSWRlbnRpZmllcjo6ZGVjb2RlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Nvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzaG91bGRCbG9ja0Nv
b2tpZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpo
YXNTdG9yYWdlQWNjZXNzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6Z3JhbnRTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW06CisgICAgICAg
IChXZWJDb3JlOjpjb29raWVzRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZXNGb3JT
ZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2ll
c0ZvckRPTSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzIGNvbnN0KToK
KwogMjAxOS0wOC0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAg
ICAgVXBkYXRlIFdvcmtlcjo6bm90aWZ5RmluaXNoZWQgdG8gbm90IHVzZSBlbXB0eVNlc3Npb25J
RApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA1NGI3OTc3NmIwNTc1YjFhODgzY2Y2OTc4ZmFjZDBhMTU1Y2NhOWM1Li40
NTg3MjQyZjU2N2Q0YzBiMmVlZjgwYmIxOTJmYWJiZjE1ODIwMjk3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDM0OSBAQAorMjAxOS0wOC0xNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KKworICAgICAgICBVc2UgT2JqZWN0SWRlbnRpZmllcjxGcmFtZUlkZW50aWZpZXJUeXBl
PiBmb3IgZnJhbWVJRHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5OTk4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVzZSB0aGUgc3Ryb25nbHktdHlwZWQgRnJhbWVJZGVudGlmaWVyIGluc3RlYWQgb2Yg
dWludDY0X3QgYXMgZnJhbWUgaWRlbnRpZmllcnMgZXZlcnl3aGVyZS4KKworICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFudFN0b3JhZ2VB
Y2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAg
ICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmdyYW50U3RvcmFn
ZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsSGFzU3Rv
cmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEdy
YW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTSk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJv
bURPTSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpj
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXRSYXdDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpoYXNT
dG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtMb2FkQ2hlY2tlcjo6TmV0d29ya0xvYWRDaGVja2VyKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRy
eSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnROZXR3b3Jr
TG9hZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y29udmVydFRv
RG93bmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmFib3J0
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVz
cG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2Vp
dmVCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZp
bmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRp
ZEZhaWxMb2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpj
b250aW51ZVdpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OmVzY2FwZUlERm9ySlNP
Tik6CisgICAgICAgIChXZWJLaXQ6OmxvZ0Jsb2NrZWRDb29raWVJbmZvcm1hdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uSW50ZXJuYWwpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24pOgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNoYXJlZC9BUEkv
QVBJRnJhbWVIYW5kbGUuY3BwOgorICAgICAgICAoQVBJOjpGcmFtZUhhbmRsZTo6Y3JlYXRlKToK
KyAgICAgICAgKEFQSTo6RnJhbWVIYW5kbGU6OmNyZWF0ZUF1dG9jb252ZXJ0aW5nKToKKyAgICAg
ICAgKEFQSTo6RnJhbWVIYW5kbGU6OkZyYW1lSGFuZGxlKToKKyAgICAgICAgKEFQSTo6RnJhbWVI
YW5kbGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5oOgor
ICAgICAgICAoQVBJOjpGcmFtZUhhbmRsZTo6ZnJhbWVJRCBjb25zdCk6CisgICAgICAgICogU2hh
cmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5tbToKKyAgICAgICAgKC1bX1dLRnJhbWVIYW5k
bGUgaGFzaF0pOgorICAgICAgICAoLVtfV0tGcmFtZUhhbmRsZSBfZnJhbWVJRF0pOgorICAgICAg
ICAoLVtfV0tGcmFtZUhhbmRsZSBpbml0V2l0aENvZGVyOl0pOgorICAgICAgICAoLVtfV0tGcmFt
ZUhhbmRsZSBlbmNvZGVXaXRoQ29kZXI6XSk6CisgICAgICAgICogU2hhcmVkL0F1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRp
Y2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAg
ICAgKiBTaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmg6CisgICAg
ICAgICogU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tGcmFtZUhhbmRsZVJlZi5jcHA6CisgICAgICAgIChXS0ZyYW1lSGFuZGxlR2V0RnJhbWVJRCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgt
W1dLV2ViVmlldyBfcHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvOmZvckZyYW1lOl0pOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX2NhbkNoYW5nZUZyYW1lTGF5b3V0Ol0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tOgorICAgICAgICAoLVtfV0tJbnNwZWN0
b3Igc2hvd01haW5SZXNvdXJjZUZvckZyYW1lOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRv
bWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNp
bXVsYXRlZElucHV0RGlzcGF0Y2hlcjo6cnVuKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21h
dGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0
b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dG9tYXRpb25TZXNzaW9uOjp3ZWJGcmFtZUlERm9ySGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQXV0b21hdGlvblNlc3Npb246OmhhbmRsZUZvcldlYkZyYW1lSUQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c3dpdGNoVG9Ccm93c2luZ0NvbnRleHQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2FpdEZvck5hdmlnYXRpb25Ub0Nv
bXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6ZmluZFBhZ2VGb3JGcmFtZUlEKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnJlc3BvbmRUb1BlbmRpbmdGcmFtZU5hdmln
YXRpb25DYWxsYmFja3NXaXRoVGltZW91dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRp
b25TZXNzaW9uOjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZlQ2hpbGRGcmFtZUhhbmRsZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZlUGFyZW50RnJhbWVIYW5kbGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Y29tcHV0ZUVsZW1lbnRM
YXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2VsZWN0T3B0
aW9uRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpnZXRB
bGxDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OmRlbGV0
ZVNpbmdsZUNvb2tpZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjp2
aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
QXV0b21hdGlvblNlc3Npb246OnRha2VTY3JlZW5zaG90KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVu
dDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW06CisgICAgICAg
ICgtW1dLUmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyIGF0dGVtcHRSZWNvdmVyeV0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9j
a0xvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6
OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSk6CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAg
ICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UHJvdmlzaW9uYWxQYWdlUHJveHk6OnZhbGlkYXRlSW5wdXQpOgorICAgICAgICAoV2ViS2l0OjpQ
cm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZEZh
aWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFs
UGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQcm92
aXNpb25hbFBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEpOgorICAgICAg
ICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxG
b3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNp
b25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0
OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9u
YWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xv
YWRGb3JGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJv
Y2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlN1c3BlbmRlZFBhZ2VQcm94eTo6U3VzcGVuZGVkUGFnZVByb3h5
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25D
aGVja1Byb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNr
UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5
OjpmcmFtZUlEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVzZXRBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6c2VhcmNoRm9yR3JhbnRl
ZFJlcXVlc3QgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6d2FzUmVxdWVzdERlbmllZCk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVy
bWlzc2lvbkZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OmdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKToKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc0dyYW50
ZWRWaWRlb09yQXVkaW9BY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6bWFpbkZyYW1lSUQgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpmcmFtZUlEIGNvbnN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkZyYW1lUHJveHk6OldlYkZyYW1lUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJGcmFtZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6OmZyYW1lSUQgY29uc3QpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGlkQ3JlYXRlU3ViZnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmRpZENyZWF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkU3Rh
cnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6ZGlkRXhwbGljaXRPcGVuRm9yRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZl
U2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1l
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDYW5jZWxDbGllbnRSZWRpcmVj
dEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92
aXNpb25hbFVSTEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRD
aGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZEZvckZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZyYW1l
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENoYW5nZU1h
aW5Eb2N1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRp
dGxlRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZpcnN0TGF5
b3V0Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZpcnN0Vmlz
dWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFtZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZnJhbWVEaWRCZWNvbWVGcmFtZVNldCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5j
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uQXN5bmNTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNw
b25zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2VTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnVuYWJsZVRvSW1w
bGVtZW50UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0
Rm9ybSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2
aWdhdGlvbkRhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZE5hdmlnYXRl
V2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFVwZGF0ZUhpc3RvcnlUaXRsZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEFsZXJ0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0Q29uZmlybSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdFByb21wdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpydW5PcGVuUGFuZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnByaW50RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZvY3Vz
ZWRGcmFtZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZyYW1lU2V0
TGFyZ2VzdEZyYW1lQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cmVxdWVzdFN0b3JhZ2VTcGFjZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6bWFrZVN0b3JhZ2VTcGFjZVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2Vz
Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNob3VsZEFsbG93RGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6d2ViRnJhbWUgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUHJveHk6OmNhbkNyZWF0ZUZyYW1lIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpmcmFtZUNyZWF0ZWQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUHJveHk6OmRpZERlc3Ryb3lGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IF93a19wYWdlQ291bnRGb3JQcmludEZvcm1hdHRlcjpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojpjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpldmFsdWF0ZUphdmFTY3JpcHRDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZENsZWFyV2luZG93
T2JqZWN0Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5OjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJh
bWVXaXRoT3JkaW5hbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZVBhcmVudEZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Zm9jdXNG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmNvbXB1
dGVFbGVtZW50TGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eTo6c2VsZWN0T3B0aW9uRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHk6OnRha2VTY3JlZW5zaG90KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eTo6Z2V0Q29va2llc0ZvckZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZGVsZXRlQ29va2llKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dL
V2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tOgorICAgICAgICAoK1tXS1dlYlByb2Nlc3NQbHVnSW5G
cmFtZSBsb29rVXBGcmFtZUZyb21IYW5kbGU6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3Ry
YXRlZ3k6OnNjaGVkdWxlTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5
OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJM
b2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJS
ZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxSZXNvdXJjZUxvYWQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVyOjpzdG9wTG9hZGluZ0FmdGVyWEZyYW1l
T3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNvdXJjZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omluc3RhbGxTZXJ2aWNlV29ya2VyKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZCBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6aGFzU3RvcmFnZUFjY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cmVxdWVzdFN0b3JhZ2VBY2Nl
c3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlE
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGlkRmFpbFByb3Zpc2lvbmFsTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkNvb2tpZUphci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6
Y29va2llcyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6c2V0Q29va2ll
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZp
ZWxkVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVKYXI6OmdldFJhd0Nv
b2tpZXMgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJGcmFtZTo6V2ViRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpnZW5lcmF0ZUZy
YW1lSUQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6ZnJhbWVJRCBjb25zdCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
Ykluc3BlY3Rvcjo6c2hvd01haW5SZXNvdXJjZUZvckZyYW1lKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxvYWRVUkxJbkZyYW1lKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9hZERhdGFJbkZyYW1lKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6c3RvcExvYWRpbmdGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmNvbnRpbnVlV2lsbFN1Ym1pdEZvcm0pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpydW5K
YXZhU2NyaXB0SW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldFNvdXJjZUZv
ckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0TWFpblJlc291cmNlRGF0YU9m
RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRSZXNvdXJjZURhdGFGcm9tRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRXZWJBcmNoaXZlT2ZGcmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmFkZENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6c2VuZENTUFZpb2xhdGlvblJlcG9ydCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6YmVnaW5QcmludGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
ZHJhd1JlY3RUb0ltYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZHJhd1BhZ2VzVG9Q
REYpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmF3UGFnZXNUb1BERkltcGwpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmF3UGFnZXNGb3JQcmludGluZyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmZyYW1lQmVjYW1lUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVl
c3RTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2hvdWxkQWxsb3dE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERG
RG9jdW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmlu
dGluZ0FuZERyYXdUb1BERik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQ
YWdlTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmlu
dGluZ1BERkRvY3VtZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp3ZWJGcmFtZSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmFkZFdlYkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6cmVtb3ZlV2ViRnJhbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
OgorCiAyMDE5LTA4LTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgdXNlIG9mIGVtcHR5U2Vzc2lvbklEIGZyb20gTmV0d29ya0xvYWRQYXJhbWV0
ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggODllZTNjYmU0NzY3YWVlNjU1MjE2
Njk1NjBlY2RlOGVkMTA2YTI3ZS4uODMwYTc4MjViOTFkZmQxNmU3Y2Y3MTkyN2Q3MTM4ODkxYjA3
NDYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5
LTA4LTE0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAg
IFVzZSBPYmplY3RJZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+IGZvciBmcmFtZUlEcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5OTg2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBz
dHJvbmdseS10eXBlZCBGcmFtZUlkZW50aWZpZXIgaW5zdGVhZCBvZiB1aW50NjRfdCBhcyBmcmFt
ZSBpZGVudGlmaWVycyBldmVyeXdoZXJlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlEIGNv
bnN0KToKKwogMjAxOS0wOC0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6YmxvYlNpemUgc2hvdWxkIHRha2UgYSBT
ZXNzaW9uSUQgYXMgcGFyYW1ldGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9PYmplY3RJ
ZGVudGlmaWVyLmggYi9Tb3VyY2UvV1RGL3d0Zi9PYmplY3RJZGVudGlmaWVyLmgKaW5kZXggYjNi
Y2FkZDlkZDE5NWFiMzBiMThjZjFkYWQzMzUyMzExOTI1MjZmOC4uNjdjYzk2NGZmZDA2Y2ZlNDFh
ZWZmMjRmYjc3OWVlYWY4NTA2MzQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvT2JqZWN0
SWRlbnRpZmllci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL09iamVjdElkZW50aWZpZXIuaApAQCAt
NTksNyArNTksNyBAQCBwdWJsaWM6CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKLSAgICAgICAgQVNTRVJU
KGlzVmFsaWRJZGVudGlmaWVyKG1faWRlbnRpZmllcikpOworICAgICAgICBSRUxFQVNFX0FTU0VS
VChpc1ZhbGlkSWRlbnRpZmllcihtX2lkZW50aWZpZXIpKTsgLy8gRklYTUU6IFNob3VsZCBiZSBh
IGRlYnVnIEFTU0VSVCgpLgogICAgICAgICBlbmNvZGVyIDw8IG1faWRlbnRpZmllcjsKICAgICB9
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPE9iamVjdElk
ZW50aWZpZXI+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQpAQCAtNjgsNyArNjgsNyBAQCBwdWJs
aWM6CiAgICAgICAgIGRlY29kZXIgPj4gaWRlbnRpZmllcjsKICAgICAgICAgaWYgKCFpZGVudGlm
aWVyKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAgICAgQVNTRVJUKGlz
VmFsaWRJZGVudGlmaWVyKCppZGVudGlmaWVyKSk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGlz
VmFsaWRJZGVudGlmaWVyKCppZGVudGlmaWVyKSk7IC8vIEZJWE1FOiBTaG91bGQgYmUgYSBkZWJ1
ZyBBU1NFUlQoKS4KICAgICAgICAgcmV0dXJuIE9iamVjdElkZW50aWZpZXIgeyAqaWRlbnRpZmll
ciB9OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGI3YmU3NDkzZmIzNDdlN2FlYzVkMTE3Y2M1Y2M2OWE4YTFlZmMx
ZTMuLjQ5NTdiYWJjOTdiMTcxMDRhNDQ1MzVlNDM4M2ZkZmE4YjEyNzQyMDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4MCw2
ICsyODAsNyBAQAogCQkwRjAzQzA3NDE4ODQ2OTVFMDBBNUY4Q0EgLyogU3lzdGVtTWVtb3J5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjAzQzA3MzE4
ODQ2OTVFMDBBNUY4Q0EgLyogU3lzdGVtTWVtb3J5LmggKi87IH07CiAJCTBGMDNDMDc1MTg4NDgw
NTUwMEE1RjhDQSAvKiBJbnNwZWN0b3JPdmVybGF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzUyMkQ0QTE1QjQ3OEIyMDA5QjdDOTUgLyogSW5zcGVj
dG9yT3ZlcmxheS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTBGMDk5RDA5MTdCOTY4QTEwMEZGODRCOSAvKiBXZWJDb3JlVHlwZWRBcnJheUNvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MDk5RDA3MTdCOTY4QTEwMEZGODRCOSAvKiBXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjExNzgx
ODIyRTNDNDdGMDA4QkQ1NzAgLyogRnJhbWVJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjExNzgxNjIyRTNDNDdFMDA4QkQ1NzAgLyog
RnJhbWVJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMEYxMUE1NEYwRjM5MjMzMTAwQzM3ODg0IC8qIFJlbmRlclNlbGVjdGlvbklu
Zm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTFB
NTRFMEYzOTIzMzEwMEMzNzg4NCAvKiBSZW5kZXJTZWxlY3Rpb25JbmZvLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYxMzE2M0UxNkVEMENDODAw
MzVDQzA0IC8qIFBsYXRmb3JtQ0FGaWx0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjEzMTYzRDE2RUQwQ0M4MDAzNUNDMDQgLyogUGxhdGZvcm1D
QUZpbHRlcnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwRjE1REE4QTBGM0FBRUU3MDAwMENFNDcgLyogQ1NTQW5pbWF0aW9uQ29udHJvbGxlclBy
aXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MTVEQTg5MEYzQUFFRTcwMDAwQ0U0NyAvKiBDU1NBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5o
ICovOyB9OwpAQCAtNTU3OCw2ICs1NTc5LDcgQEAKIAkJMEYwM0MwNzMxODg0Njk1RTAwQTVGOENB
IC8qIFN5c3RlbU1lbW9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTeXN0
ZW1NZW1vcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYwOTlEMDYxN0I5NjhB
MTAwRkY4NEI5IC8qIFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjA5OUQwNzE3Qjk2OEExMDBGRjg0Qjkg
LyogV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkwRjExNzgxNjIyRTNDNDdFMDA4QkQ1NzAgLyogRnJhbWVJZGVudGlmaWVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZyYW1lSWRlbnRpZmllci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjExQTU0RTBGMzkyMzMxMDBDMzc4ODQgLyog
UmVuZGVyU2VsZWN0aW9uSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZW5kZXJTZWxlY3Rpb25JbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMTMx
NjNEMTZFRDBDQzgwMDM1Q0MwNCAvKiBQbGF0Zm9ybUNBRmlsdGVycy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUNBRmlsdGVycy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjEzMTYzRjE2RUQwQ0RFMDAzNUNDMDQgLyogUGxhdGZvcm1DQUZpbHRl
cnNDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBsYXRm
b3JtQ0FGaWx0ZXJzQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDIw
NCw2ICsyMDIwNiw3IEBACiAJCQkJNjVCRjAyMkEwOTc0ODE2MzAwQzQzMTk2IC8qIEZyYW1lLmgg
Ki8sCiAJCQkJOTc0QTg2MjAxNEI3QURCQjAwM0ZEQzc2IC8qIEZyYW1lRGVzdHJ1Y3Rpb25PYnNl
cnZlci5jcHAgKi8sCiAJCQkJOTc0QTg2MjExNEI3QURCQjAwM0ZEQzc2IC8qIEZyYW1lRGVzdHJ1
Y3Rpb25PYnNlcnZlci5oICovLAorCQkJCTBGMTE3ODE2MjJFM0M0N0UwMDhCRDU3MCAvKiBGcmFt
ZUlkZW50aWZpZXIuaCAqLywKIAkJCQlDNENENjI5ODE4MzgzNzY2MDA3RUJBRjEgLyogRnJhbWVT
bmFwc2hvdHRpbmcuY3BwICovLAogCQkJCUM0Q0Q2Mjk5MTgzODM3NjYwMDdFQkFGMSAvKiBGcmFt
ZVNuYXBzaG90dGluZy5oICovLAogCQkJCTY1QTIxNDgyMDk3QTNGNTMwMEI5MDUwQSAvKiBGcmFt
ZVRyZWUuY3BwICovLApAQCAtMjkyNTUsNiArMjkyNTgsNyBAQAogCQkJCUE4NTMxMjNEMTFEMDQ3
MUIwMEQ0RDA3NyAvKiBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCTY1QkYwMjJGMDk3NDgxNjMwMEM0MzE5NiAvKiBGcmFtZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTc0QTg2MjMxNEI3QURCQjAwM0ZEQzc2IC8qIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZl
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYxMTc4MTgyMkUzQzQ3RjAwOEJENTcwIC8qIEZyYW1l
SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2RDM3M0MwQURCQTVERTAwQTQ1NTRE
IC8qIEZyYW1lTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTZEMzczRTBBREJBNURFMDBB
NDU1NEQgLyogRnJhbWVMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUQwMDBFQkEz
MTFCREFGRDQwMEM0NzcyNiAvKiBGcmFtZUxvYWRlclN0YXRlTWFjaGluZS5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3BwCmluZGV4IDY5NjMwMzMwYjVkNzkzMGQ3
ZDdhYWYxZGRiNGE4OWRmYjYwZGRkY2MuLjZkMDM2MmU5NzY0MTg4YjYwODRjYmFhOGNjMTQyZDRk
MzkxZjVhODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3BwCkBAIC03MSw3ICs3MSw3
IEBAIFN0cmluZyBDb29raWVKYXI6OmNvb2tpZXMoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBV
UkwmIHVybCkgY29uc3QKIAogICAgIGF1dG8gaW5jbHVkZVNlY3VyZUNvb2tpZXMgPSBzaG91bGRJ
bmNsdWRlU2VjdXJlQ29va2llcyhkb2N1bWVudCwgdXJsKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2
NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAg
ICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEOwogICAgIGlmIChhdXRvKiBmcmFtZSA9
IGRvY3VtZW50LmZyYW1lKCkpIHsKICAgICAgICAgZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5j
bGllbnQoKS5mcmFtZUlEKCk7CkBAIC05NCw3ICs5NCw3IEBAIENvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFByb3h5IENvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkoY29uc3Qg
RG9jCiB7CiAgICAgVHJhY2VTY29wZSBzY29wZShGZXRjaENvb2tpZXNTdGFydCwgRmV0Y2hDb29r
aWVzRW5kKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFs
PEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
cGFnZUlEOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKICAgICAg
ICAgZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CkBAIC0xMDYs
NyArMTA2LDcgQEAgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkgQ29va2llSmFyOjpjb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eShjb25zdCBEb2MKIAogdm9pZCBDb29raWVKYXI6OnNl
dENvb2tpZXMoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5n
JiBjb29raWVTdHJpbmcpCiB7Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAg
T3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiBwYWdlSUQ7CiAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkg
ewogICAgICAgICBmcmFtZUlEID0gZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKTsK
QEAgLTEyOCw3ICsxMjgsNyBAQCBib29sIENvb2tpZUphcjo6Y29va2llc0VuYWJsZWQoY29uc3Qg
RG9jdW1lbnQmKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RkOjpwYWlyPFN0cmlu
ZywgU2VjdXJlQ29va2llc0FjY2Vzc2VkPiBDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNs
dWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKK3N0ZDo6cGFpcjxT
dHJpbmcsIFNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZShjb25zdCBQQUw6OlNlc3Npb25JRCYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0
eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRp
b25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBw
YWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAog
ewogICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbV9zdG9yYWdlU2Vzc2lvblByb3ZpZGVyLT5zdG9y
YWdlU2Vzc2lvbigpKSB7CiAgICAgICAgIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IHJlc3VsdCA9
IHNlc3Npb24tPmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGZpcnN0UGFydHksIHNhbWVT
aXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKQEAg
LTE0MSw3ICsxNDEsNyBAQCBzdGQ6OnBhaXI8U3RyaW5nLCBTZWN1cmVDb29raWVzQWNjZXNzZWQ+
IENvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdQogCiBTdHJpbmcgQ29va2ll
SmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNv
bnN0IFVSTCYgdXJsKSBjb25zdAogewotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOwor
ICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdl
SWRlbnRpZmllcj4gcGFnZUlEOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1l
KCkpIHsKICAgICAgICAgZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlE
KCk7CkBAIC0xNTYsNyArMTU2LDcgQEAgU3RyaW5nIENvb2tpZUphcjo6Y29va2llUmVxdWVzdEhl
YWRlckZpZWxkVmFsdWUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHUKIAogYm9vbCBD
b29raWVKYXI6OmdldFJhd0Nvb2tpZXMoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBV
UkwmIHVybCwgVmVjdG9yPENvb2tpZT4mIGNvb2tpZXMpIGNvbnN0CiB7Ci0gICAgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlE
OwogICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7CiAgICAgaWYgKGF1dG8qIGZy
YW1lID0gZG9jdW1lbnQuZnJhbWUoKSkgewogICAgICAgICBmcmFtZUlEID0gZnJhbWUtPmxvYWRl
cigpLmNsaWVudCgpLmZyYW1lSUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Db29raWVKYXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuaAppbmRleCAy
ODFmODRjNDkwMDUyNjdlYTA1NGQ1MWQ3NjhhOWViNzMyY2JjMjM5Li44MDg3YjhjZDViN2NmNGY1
NjkzZTJmN2U5NWQ4ZWY2YTE3OTg0NmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvQ29va2llSmFyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5oCkBA
IC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiRnJhbWVJZGVudGlm
aWVyLmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNTksNyArNjAsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldENvb2tpZXMoRG9jdW1lbnQmLCBjb25zdCBVUkwm
LCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0cmluZyk7CiAKICAgICB2aXJ0dWFsIGJvb2wgY29va2ll
c0VuYWJsZWQoY29uc3QgRG9jdW1lbnQmKSBjb25zdDsKLSAgICB2aXJ0dWFsIHN0ZDo6cGFpcjxT
dHJpbmcsIFNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFs
dWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKKyAgICB2
aXJ0dWFsIHN0ZDo6cGFpcjxTdHJpbmcsIFNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gY29va2llUmVx
dWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZyYW1l
SWRlbnRpZmllcj4sIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNvb2tp
ZXMpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IERvY3VtZW50
JiwgY29uc3QgVVJMJiwgVmVjdG9yPENvb2tpZT4mKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQg
ZGVsZXRlQ29va2llKGNvbnN0IERvY3VtZW50JiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBj
b29raWVOYW1lKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJh
bWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVy
Q2xpZW50LmgKaW5kZXggMWY3YTI5YzRiMzAxYTM2NTgyMmU0MjMzYjQxNWRkMWMwMDE5MTMyZC4u
ZTU5ZDE3MGRmMGJhMDhhMmM0ZjYwM2ZkY2ZhODM1N2RmZjg5YmRiOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0zMiw3ICszMiw3IEBA
IGNsYXNzIFdFQkNPUkVfRVhQT1JUIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRnJh
bWVMb2FkZXJDbGllbnQgewogCiAgICAgdm9pZCBmcmFtZUxvYWRlckRlc3Ryb3llZCgpIG92ZXJy
aWRlIHsgfQogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+
IGZyYW1lSUQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KICAgICBP
cHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
V1RGOjpudWxsb3B0OyB9CiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Qgb3Zl
cnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNs
aWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXgg
MDc0ODc2MTE4ZGM2OTFhYTdjOGFkYTk3Yjc5NzEzNzMzYTI4YTY5NS4uZWQ4NDdjYjA0Nzg1MjVl
NTIxMGYxY2M4NWI3ZmVjNTNjZTcyMjJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyQ2xpZW50LmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNs
dWRlICJGcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAj
aW5jbHVkZSAiTGF5b3V0TWlsZXN0b25lLmgiCiAjaW5jbHVkZSAiTGlua0ljb24uaCIKQEAgLTEy
OCw3ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG1ha2VSZXByZXNlbnRhdGlv
bihEb2N1bWVudExvYWRlciopID0gMDsKIAogICAgIHZpcnR1YWwgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRCgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIE9wdGlvbmFsPHVpbnQ2NF90
PiBmcmFtZUlEKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgT3B0aW9uYWw8RnJhbWVJZGVudGlm
aWVyPiBmcmFtZUlEKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKCkgY29uc3QgPSAwOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcAppbmRleCA2MmJhMmRkMmY3NzBhNDA2
ZTE1YzkwMzk1ZTQxN2M0MmMyOGY1MjBlLi5iZDczOGUwODk1N2UyZmQ4NGRhMDU1YWI0NTNlMWE0
M2UwYjI4OGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3Bw
CkBAIC00MSw3ICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIE5hdmlnYXRpb25BY3Rpb246
OlJlcXVlc3Rlcjo6UmVxdWVzdGVyKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IG1f
dXJsIHsgVVJMIHsgZG9jdW1lbnQudXJsKCkgfSB9CiAgICAgLCBtX29yaWdpbiB7IG1ha2VSZWZQ
dHIoZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKSkgfQotICAgICwgbV9wYWdlSURBbmRGcmFtZUlE
UGFpciB7IGRvY3VtZW50LmZyYW1lKCkgPyBzdGQ6Om1ha2VfcGFpcihkb2N1bWVudC5mcmFtZSgp
LT5sb2FkZXIoKS5jbGllbnQoKS5wYWdlSUQoKS52YWx1ZU9yKFBhZ2VJZGVudGlmaWVyIHsgfSks
IGRvY3VtZW50LmZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKS52YWx1ZU9yKDAp
KSA6IHN0ZDo6bWFrZV9wYWlyPFBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdD4oeyB9LCAwKSB9Cisg
ICAgLCBtX3BhZ2VJREFuZEZyYW1lSURQYWlyIHsgZG9jdW1lbnQuZnJhbWUoKSA/IHN0ZDo6bWFr
ZV9wYWlyKGRvY3VtZW50LmZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgpLnBhZ2VJRCgpLnZhbHVl
T3IoUGFnZUlkZW50aWZpZXIgeyB9KSwgZG9jdW1lbnQuZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50
KCkuZnJhbWVJRCgpLnZhbHVlT3IoRnJhbWVJZGVudGlmaWVyIHsgfSkpIDogc3RkOjptYWtlX3Bh
aXI8UGFnZUlkZW50aWZpZXIsIEZyYW1lSWRlbnRpZmllcj4oeyB9LCB7IH0pIH0KIHsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmgKaW5kZXggMzVjOTYxYWExNTQ3
YjhlYTBjNGI5MDQwNzAzYzg1ZDNlYThlN2U1Ny4uMGEwMjFkNGZjNzlkOTZiM2YyYTg4YmFlNDA0
NTYxOTEwNGNlOTBiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRp
b25BY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5o
CkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJBZENsaWNrQXR0cmlidXRpb24uaCIKICNp
bmNsdWRlICJCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiRnJhbWVJZGVu
dGlmaWVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIkxheW91
dFBvaW50LmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKQEAgLTY0LDcgKzY1LDcgQEAg
cHVibGljOgogICAgIE5hdmlnYXRpb25BY3Rpb24oTmF2aWdhdGlvbkFjdGlvbiYmKTsKICAgICBO
YXZpZ2F0aW9uQWN0aW9uJiBvcGVyYXRvcj0oTmF2aWdhdGlvbkFjdGlvbiYmKTsKIAotICAgIHVz
aW5nIFBhZ2VJREFuZEZyYW1lSURQYWlyID0gc3RkOjpwYWlyPFBhZ2VJZGVudGlmaWVyLCB1aW50
NjRfdCAvKiBmcmFtZUlEICovPjsKKyAgICB1c2luZyBQYWdlSURBbmRGcmFtZUlEUGFpciA9IHN0
ZDo6cGFpcjxQYWdlSWRlbnRpZmllciwgRnJhbWVJZGVudGlmaWVyPjsgLy8gRklYTUU6IFVzZSBH
bG9iYWxGcmFtZUlkZW50aWZpZXIuCiAgICAgY2xhc3MgUmVxdWVzdGVyIHsKICAgICBwdWJsaWM6
CiAgICAgICAgIFJlcXVlc3Rlcihjb25zdCBEb2N1bWVudCYpOwpAQCAtNzIsNyArNzMsNyBAQCBw
dWJsaWM6CiAgICAgICAgIGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7IH0K
ICAgICAgICAgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyBy
ZXR1cm4gKm1fb3JpZ2luOyB9CiAgICAgICAgIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCgpIGNvbnN0
IHsgcmV0dXJuIG1fcGFnZUlEQW5kRnJhbWVJRFBhaXIuZmlyc3Q7IH0KLSAgICAgICAgdWludDY0
X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUlEQW5kRnJhbWVJRFBhaXIuc2Vjb25k
OyB9CisgICAgICAgIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9w
YWdlSURBbmRGcmFtZUlEUGFpci5zZWNvbmQ7IH0KICAgICBwcml2YXRlOgogICAgICAgICBVUkwg
bV91cmw7CiAgICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gbV9vcmlnaW47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCBjMjVhMDI0YmMwNjNjNThmM2IyOGJkNzljYmIwMzM4
NDQyNmM4YzVlLi5lOGE1ZGUzM2VkMTc5MjZjOWFhODU2YjA4MTZiNGVlY2Y4MmM5NGY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJE
aXNwbGF5UmVmcmVzaE1vbml0b3IuaCIKICNpbmNsdWRlICJEb2N1bWVudFN0b3JhZ2VBY2Nlc3Mu
aCIKICNpbmNsdWRlICJGb2N1c0RpcmVjdGlvbi5oIgorI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmll
ci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0
LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllci5oIgpAQCAtNDg2LDggKzQ4Nyw4IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIFJlZlB0cjxJY29uPiBjcmVhdGVJY29uRm9yRmlsZXMoY29uc3QgVmVj
dG9yPFN0cmluZz4mIC8qIGZpbGVuYW1lcyAqLykgPSAwOwogCiAjaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKLSAgICB2aXJ0dWFsIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhSZWdp
c3RyYWJsZURvbWFpbiYmIC8qc3ViRnJhbWVEb21haW4qLywgUmVnaXN0cmFibGVEb21haW4mJiAv
KnRvcEZyYW1lRG9tYWluKi8sIHVpbnQ2NF90IC8qZnJhbWVJRCovLCBQYWdlSWRlbnRpZmllciwg
V1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7
IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsgfQotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3Rv
cmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIC8qc3ViRnJhbWVEb21haW4qLywgUmVnaXN0
cmFibGVEb21haW4mJiAvKnRvcEZyYW1lRG9tYWluKi8sIHVpbnQ2NF90IC8qZnJhbWVJRCovLCBQ
YWdlSWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NX
YXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5k
bGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOjpObywgU3Rv
cmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpObyk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaGFzU3Rv
cmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIC8qc3ViRnJhbWVEb21haW4qLywgUmVnaXN0
cmFibGVEb21haW4mJiAvKnRvcEZyYW1lRG9tYWluKi8sIEZyYW1lSWRlbnRpZmllciwgUGFnZUlk
ZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiAvKnN1YkZyYW1lRG9tYWlu
Ki8sIFJlZ2lzdHJhYmxlRG9tYWluJiYgLyp0b3BGcmFtZURvbWFpbiovLCBGcmFtZUlkZW50aWZp
ZXIsIFBhZ2VJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFj
Y2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlv
bkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQ6Ok5v
LCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd246Ok5vKTsgfQogI2VuZGlmCiAKICNpZiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVJZGVudGlmaWVyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjVkNDk2N2FiMWI0NTQyMzU4ZTg2NzI0MDVjYjY2YjdkNzhkNzIyNgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVJZGVudGlmaWVyLmgKQEAg
LTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3Rm
L09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIEZyYW1l
SWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgRnJhbWVJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRp
ZmllcjxGcmFtZUlkZW50aWZpZXJUeXBlPjsKKworaW5saW5lIEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlkZW50aWZpZXJGcm9tSUQodWludDY0X3QgZnJhbWVJRCkKK3sKKyAgICByZXR1cm4gbWFrZU9i
amVjdElkZW50aWZpZXI8RnJhbWVJZGVudGlmaWVyVHlwZT4oZnJhbWVJRCk7Cit9CisKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2xvYmFsRnJhbWVJZGVudGlmaWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0dsb2JhbEZyYW1lSWRlbnRpZmllci5oCmluZGV4IDBkN2IzZGJm
NzJmODFlNGZkNjJhNzNmZWQyNTgxY2VhZWUxNjdiNGEuLjcwOTM0NjdiMTJmODU2NjFhOGY3ZmFk
ZjAyYjM1Nzc5OTRlYjZhMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2xvYmFs
RnJhbWVJZGVudGlmaWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9HbG9iYWxGcmFtZUlk
ZW50aWZpZXIuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUg
IkZyYW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCiAjaW5jbHVk
ZSA8d3RmL09wdGlvbmFsLmg+CiAKQEAgLTMzLDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogLy8gRnJhbWUgaWRlbnRpZmllciB0aGF0IGlzIHVuaXF1ZSBhY3Jvc3MgYWxsIFdlYkNvbnRl
bnQgcHJvY2Vzc2VzLgogc3RydWN0IEdsb2JhbEZyYW1lSWRlbnRpZmllciB7CiAgICAgUGFnZUlk
ZW50aWZpZXIgcGFnZUlEOwotICAgIHVpbnQ2NF90IGZyYW1lSUQ7CisgICAgRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQ7CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlv
bmFsPEdsb2JhbEZyYW1lSWRlbnRpZmllcj4gZGVjb2RlKERlY29kZXImKTsKQEAgLTUzLDcgKzU0
LDcgQEAgT3B0aW9uYWw8R2xvYmFsRnJhbWVJZGVudGlmaWVyPiBHbG9iYWxGcmFtZUlkZW50aWZp
ZXI6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIGlmICghcGFnZUlEKQogICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7Cisg
ICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEOwogICAgIGRlY29kZXIgPj4gZnJh
bWVJRDsKICAgICBpZiAoIWZyYW1lSUQpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Nvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Nvb2tp
ZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5LmgKaW5kZXggYTMzMDE5ZjlkNWIyYWVkMjYwNzQ2Njk0
MDFmZDczMjJmMDJkNTE1Ny4uYzY4NmM4MWI1MzcxYTY3Y2RkOGFlMDliNGExMDEzMmE1MmQ1YjJk
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Db29raWVSZXF1
ZXN0SGVhZGVyRmllbGRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaApAQCAtMjYsNiArMjYsNyBAQAogI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlICJDb29raWVKYXIuaCIKKyNpbmNsdWRlICJGcmFtZUlkZW50
aWZpZXIuaCIKICNpbmNsdWRlICJQYWdlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNhbWVTaXRl
SW5mby5oIgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KQEAgLTM4LDcgKzM5LDcgQEAgc3Ry
dWN0IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5IHsKICAgICBVUkwgZmlyc3RQYXJ0eTsK
ICAgICBTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvOwogICAgIFVSTCB1cmw7Ci0gICAgT3B0aW9u
YWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFt
ZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7CiAgICAgSW5jbHVkZVNl
Y3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMgeyBJbmNsdWRlU2VjdXJlQ29va2llczo6
Tm8gfTsKIApAQCAtNzgsOCArNzksOSBAQCBPcHRpb25hbDxDb29raWVSZXF1ZXN0SGVhZGVyRmll
bGRQcm94eT4gQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHk6OmRlY29kZShEZQogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUodXJsKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAot
ICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
ZnJhbWVJRCkpCisgICAgT3B0aW9uYWw8T3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPj4gZnJhbWVJ
RDsKKyAgICBkZWNvZGVyID4+IGZyYW1lSUQ7CisgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwogCiAgICAgT3B0aW9uYWw8T3B0aW9uYWw8UGFnZUlkZW50aWZp
ZXI+PiBwYWdlSUQ7CkBAIC05MSw3ICs5Myw3IEBAIE9wdGlvbmFsPENvb2tpZVJlcXVlc3RIZWFk
ZXJGaWVsZFByb3h5PiBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eTo6ZGVjb2RlKERlCiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmNsdWRlU2VjdXJlQ29va2llcykpCiAgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICByZXR1cm4gQ29va2llUmVxdWVzdEhlYWRlckZpZWxk
UHJveHkgeyAqc2Vzc2lvbklELCBXVEZNb3ZlKGZpcnN0UGFydHkpLCBXVEZNb3ZlKHNhbWVTaXRl
SW5mbyksIFdURk1vdmUodXJsKSwgZnJhbWVJRCwgKnBhZ2VJRCwgaW5jbHVkZVNlY3VyZUNvb2tp
ZXMgfTsKKyAgICByZXR1cm4gQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkgeyAqc2Vzc2lv
bklELCBXVEZNb3ZlKGZpcnN0UGFydHkpLCBXVEZNb3ZlKHNhbWVTaXRlSW5mbyksIFdURk1vdmUo
dXJsKSwgKmZyYW1lSUQsICpwYWdlSUQsIGluY2x1ZGVTZWN1cmVDb29raWVzIH07CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcAppbmRleCBlNzE5MDdkOTc3ZGY1
OTI3M2Y0OTE5YzU2NTFhZjE3MzZmYjFhNjdmLi5mNGIwOWE4ZDVlMWFkOTQ4NGVkN2IzMmViNTZl
Mzk2Zjc1ZGFjOTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3BwCkBAIC03OSwxMiArNzksMTIgQEAgYm9v
bCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXNCdXRL
ZWVwRmlyc3RQYXJ0eUNvb2tpZXMKICAgICByZXR1cm4gbV9yZWdpc3RyYWJsZURvbWFpbnNUb0Js
b2NrQnV0S2VlcENvb2tpZXNGb3IuY29udGFpbnMocmVnaXN0cmFibGVEb21haW4pOwogfQogCi1i
b29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2hvdWxkQmxvY2tDb29raWVzKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFs
PFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQpIGNvbnN0Citib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6c2hvdWxkQmxvY2tDb29raWVzKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgT3B0
aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
cGFnZUlEKSBjb25zdAogewogICAgIHJldHVybiBzaG91bGRCbG9ja0Nvb2tpZXMocmVxdWVzdC5m
aXJzdFBhcnR5Rm9yQ29va2llcygpLCByZXF1ZXN0LnVybCgpLCBmcmFtZUlELCBwYWdlSUQpOwog
fQogICAgIAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNob3VsZEJsb2NrQ29va2llcyhj
b25zdCBVUkwmIGZpcnN0UGFydHlGb3JDb29raWVzLCBjb25zdCBVUkwmIHJlc291cmNlLCBPcHRp
b25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkg
Y29uc3QKK2Jvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzaG91bGRCbG9ja0Nvb2tpZXMoY29u
c3QgVVJMJiBmaXJzdFBhcnR5Rm9yQ29va2llcywgY29uc3QgVVJMJiByZXNvdXJjZSwgT3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFn
ZUlEKSBjb25zdAogewogICAgIFJlZ2lzdHJhYmxlRG9tYWluIGZpcnN0UGFydHlEb21haW4geyBm
aXJzdFBhcnR5Rm9yQ29va2llcyB9OwogICAgIGlmIChmaXJzdFBhcnR5RG9tYWluLmlzRW1wdHko
KSkKQEAgLTEzNiw3ICsxMzYsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6cmVtb3Zl
UHJldmFsZW50RG9tYWlucyhjb25zdCBWZWN0b3I8UmVnaXN0cmFibGVEb21haQogICAgIH0KIH0K
IAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
Zmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIFBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCkgY29uc3QKK2Jvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpoYXNTdG9yYWdl
QWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmll
cj4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKSBjb25zdAogewogICAgIGlmIChmcmFt
ZUlEKSB7CiAgICAgICAgIGF1dG8gZnJhbWVzR3JhbnRlZEl0ZXJhdG9yID0gbV9mcmFtZXNHcmFu
dGVkU3RvcmFnZUFjY2Vzcy5maW5kKHBhZ2VJRCk7CkBAIC0xNjksNyArMTY5LDcgQEAgVmVjdG9y
PFN0cmluZz4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRBbGxTdG9yYWdlQWNjZXNzRW50cmll
cygpIGNvbnN0CiAgICAgcmV0dXJuIGVudHJpZXM7CiB9CiAgICAgCi12b2lkIE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBy
ZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4s
IE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQpCit2b2lk
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0
UGFydHlEb21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlkZW50
aWZpZXIgcGFnZUlEKQogewogICAgIGlmICghZnJhbWVJRCkgewogICAgICAgICBpZiAoZmlyc3RQ
YXJ0eURvbWFpbi5pc0VtcHR5KCkpCkBAIC0xOTEsNyArMTkxLDcgQEAgdm9pZCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
cmVzb3VyY2UKIAogICAgIGF1dG8gcGFnZXNHcmFudGVkSXRlcmF0b3IgPSBtX2ZyYW1lc0dyYW50
ZWRTdG9yYWdlQWNjZXNzLmZpbmQocGFnZUlEKTsKICAgICBpZiAocGFnZXNHcmFudGVkSXRlcmF0
b3IgPT0gbV9mcmFtZXNHcmFudGVkU3RvcmFnZUFjY2Vzcy5lbmQoKSkgewotICAgICAgICBIYXNo
TWFwPHVpbnQ2NF90LCBSZWdpc3RyYWJsZURvbWFpbiwgRGVmYXVsdEhhc2g8dWludDY0X3Q+OjpI
YXNoLCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPHVpbnQ2NF90Pj4gZW50cnk7
CisgICAgICAgIEhhc2hNYXA8RnJhbWVJZGVudGlmaWVyLCBSZWdpc3RyYWJsZURvbWFpbj4gZW50
cnk7CiAgICAgICAgIGVudHJ5LmFkZChmcmFtZUlELnZhbHVlKCksIHJlc291cmNlRG9tYWluKTsK
ICAgICAgICAgbV9mcmFtZXNHcmFudGVkU3RvcmFnZUFjY2Vzcy5hZGQocGFnZUlELCBlbnRyeSk7
CiAgICAgfSBlbHNlIHsKQEAgLTIwMyw3ICsyMDMsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJj
ZQogICAgIH0KIH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnJlbW92ZVN0b3JhZ2VB
Y2Nlc3NGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQpCit2
b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQpCiB7CiAgICAgYXV0
byBpdGVyYXRpb24gPSBtX2ZyYW1lc0dyYW50ZWRTdG9yYWdlQWNjZXNzLmZpbmQocGFnZUlEKTsK
ICAgICBpZiAoaXRlcmF0aW9uID09IG1fZnJhbWVzR3JhbnRlZFN0b3JhZ2VBY2Nlc3MuZW5kKCkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3Rv
cmFnZVNlc3Npb24uaAppbmRleCBjOGVmOGY3YmFiNzVmZDk5NzliMjgyZjVmNWE4NzAyZWY4MGM4
OGIzLi44ZGRmNTViNGExZmNhNWM1NGE0OTkwYTNhMzdjMDU5MjY2OGZlMDBkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQ3JlZGVu
dGlhbFN0b3JhZ2UuaCIKKyNpbmNsdWRlICJGcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJQ
YWdlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlJlZ2lzdHJhYmxlRG9tYWluLmgiCiAjaW5jbHVk
ZSA8cGFsL1Nlc3Npb25JRC5oPgpAQCAtMTIzLDcgKzEyNCw3IEBAIHB1YmxpYzoKICAgICBXRUJD
T1JFX0VYUE9SVCBib29sIGNvb2tpZXNFbmFibGVkKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRDb29raWUoY29uc3QgQ29va2llJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRDb29raWVzKGNvbnN0IFZlY3RvcjxDb29raWU+JiwgY29uc3QgVVJMJiwgY29uc3QgVVJM
JiBtYWluRG9jdW1lbnRVUkwpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29va2llc0Zy
b21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBV
UkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+
LCBjb25zdCBTdHJpbmcmKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENvb2tp
ZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29u
c3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50aWZp
ZXI+LCBjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0
ZUNvb2tpZShjb25zdCBDb29raWUmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZUNv
b2tpZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGRlbGV0ZUFsbENvb2tpZXMoKTsKQEAgLTEzMiwyNiArMTMzLDI2IEBAIHB1YmxpYzoK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZXMoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGNvb2tpZUhvc3ROYW1lcywgSW5jbHVkZUh0dHBPbmx5Q29va2llcyk7
CiAgICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPENvb2tpZT4gZ2V0QWxsQ29va2llcygpOwogICAg
IFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxDb29raWU+IGdldENvb2tpZXMoY29uc3QgVVJMJik7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0
eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgVmVjdG9yPENvb2tpZT4mKSBjb25zdDsK
KyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxGcmFtZUlkZW50
aWZpZXI+LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIFZlY3RvcjxDb29raWU+JikgY29uc3Q7
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmbHVzaENvb2tpZVN0b3JlKCk7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhIYXNoU2V0PFN0cmluZz4mIGhv
c3RuYW1lcyk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29v
a2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNv
bnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRp
Zmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBz
dGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25z
dCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlv
bmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVT
ZWN1cmVDb29raWVzKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6OnBhaXI8U3RyaW5n
LCBib29sPiBjb29raWVzRm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNp
dGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8
UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7CisgICAgV0VCQ09S
RV9FWFBPUlQgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxk
VmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBV
UkwmLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4s
IEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6OnBh
aXI8U3RyaW5nLCBib29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBDb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eSYpIGNvbnN0OwogCiAjaWYgRU5BQkxFKFJFU09VUkNF
X0xPQURfU1RBVElTVElDUykKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNob3VsZEJsb2NrQ29v
a2llcyhjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+KSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBib29s
IHNob3VsZEJsb2NrQ29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHlGb3JDb29raWVzLCBjb25z
dCBVUkwmIHJlc291cmNlLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFn
ZUlkZW50aWZpZXI+KSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNob3VsZEJsb2Nr
Q29va2llcyhjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+
LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4pIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIGJv
b2wgc2hvdWxkQmxvY2tDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eUZvckNvb2tpZXMsIGNv
bnN0IFVSTCYgcmVzb3VyY2UsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91bGRCbG9j
a1RoaXJkUGFydHlDb29raWVzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJikgY29uc3Q7CiAgICAg
V0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzQnV0S2VlcEZp
cnN0UGFydHlDb29raWVzRm9yKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJikgY29uc3Q7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRQcmV2YWxlbnREb21haW5zVG9CbG9ja0FuZERlbGV0ZUNv
b2tpZXNGb3IoY29uc3QgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiYpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0UHJldmFsZW50RG9tYWluc1RvQmxvY2tCdXRLZWVwQ29va2llc0Zvcihj
b25zdCBWZWN0b3I8UmVnaXN0cmFibGVEb21haW4+Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyhPcHRpb25hbDxTZWNvbmRzPik7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVQcmV2YWxlbnREb21haW5zKGNvbnN0IFZlY3RvcjxS
ZWdpc3RyYWJsZURvbWFpbj4mIGRvbWFpbnMpOwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFz
U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIGJv
b2wgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21h
aW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDxG
cmFtZUlkZW50aWZpZXI+LCBQYWdlSWRlbnRpZmllcikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBP
UlQgVmVjdG9yPFN0cmluZz4gZ2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoKSBjb25zdDsKLSAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBh
cnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIpOwot
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdy
YW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4s
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDxGcmFt
ZUlkZW50aWZpZXI+LCBQYWdlSWRlbnRpZmllcik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBy
ZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyLCBQYWdlSWRlbnRpZmll
cik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhclBhZ2VTcGVjaWZpY0RhdGFGb3JSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzKFBhZ2VJZGVudGlmaWVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3MoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKFNlY29uZHMpOwpAQCAtMTg1LDcg
KzE4Niw3IEBAIHByaXZhdGU6CiAgICAgT3B0aW9uYWw8U2Vjb25kcz4gY2xpZW50U2lkZUNvb2tp
ZUNhcChjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eSwgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+KSBjb25zdDsKICAgICBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiBtX3JlZ2lz
dHJhYmxlRG9tYWluc1RvQmxvY2tBbmREZWxldGVDb29raWVzRm9yOwogICAgIEhhc2hTZXQ8UmVn
aXN0cmFibGVEb21haW4+IG1fcmVnaXN0cmFibGVEb21haW5zVG9CbG9ja0J1dEtlZXBDb29raWVz
Rm9yOwotICAgIEhhc2hNYXA8UGFnZUlkZW50aWZpZXIsIEhhc2hNYXA8dWludDY0X3QsIFJlZ2lz
dHJhYmxlRG9tYWluLCBEZWZhdWx0SGFzaDx1aW50NjRfdD46Okhhc2gsIFdURjo6VW5zaWduZWRX
aXRoWmVyb0tleUhhc2hUcmFpdHM8dWludDY0X3Q+Pj4gbV9mcmFtZXNHcmFudGVkU3RvcmFnZUFj
Y2VzczsKKyAgICBIYXNoTWFwPFBhZ2VJZGVudGlmaWVyLCBIYXNoTWFwPEZyYW1lSWRlbnRpZmll
ciwgUmVnaXN0cmFibGVEb21haW4+PiBtX2ZyYW1lc0dyYW50ZWRTdG9yYWdlQWNjZXNzOwogICAg
IEhhc2hNYXA8UGFnZUlkZW50aWZpZXIsIEhhc2hNYXA8UmVnaXN0cmFibGVEb21haW4sIFJlZ2lz
dHJhYmxlRG9tYWluPj4gbV9wYWdlc0dyYW50ZWRTdG9yYWdlQWNjZXNzOwogICAgIE9wdGlvbmFs
PFNlY29uZHM+IG1fY2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMgeyB9OwogICAg
IE9wdGlvbmFsPFNlY29uZHM+IG1fYWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMgeyB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5k
bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5k
bGUuY3BwCmluZGV4IGRiYTBmMTNmNDc5YTMzMjZiZTg1ZDY2OTM5ZTUwYzYzYzEzYjYxYTAuLmIw
M2YyZDIxODg2NTE0YzI4ZWIwOTM3NDgxYmMwYTkzNTNkMGNkNjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NvY2tldFN0cmVhbUhhbmRsZS5jcHAKQEAg
LTYxLDcgKzYxLDcgQEAgdm9pZCBTb2NrZXRTdHJlYW1IYW5kbGU6OnNlbmRIYW5kc2hha2UoQ1N0
cmluZyYmIGhhbmRzaGFrZSwgT3B0aW9uYWw8Q29va2llUmVxdWUKIHsKICAgICBpZiAobV9zdGF0
ZSA9PSBDb25uZWN0aW5nIHx8IG1fc3RhdGUgPT0gQ2xvc2luZykKICAgICAgICAgcmV0dXJuIGNv
bXBsZXRpb25IYW5kbGVyKGZhbHNlLCBmYWxzZSk7Ci0gICAgcGxhdGZvcm1TZW5kSGFuZHNoYWtl
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGhhbmRzaGFrZS5kYXRhKCkpLCBoYW5k
c2hha2UubGVuZ3RoKCksIGhlYWRlckZpZWxkUHJveHksIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKKyAgICBwbGF0Zm9ybVNlbmRIYW5kc2hha2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1
aW50OF90Kj4oaGFuZHNoYWtlLmRhdGEoKSksIGhhbmRzaGFrZS5sZW5ndGgoKSwgV1RGTW92ZSho
ZWFkZXJGaWVsZFByb3h5KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB2b2lk
IFNvY2tldFN0cmVhbUhhbmRsZTo6Y2xvc2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Q29jb2EubW0KaW5kZXggODRiNzNiODM0NGIwY2FiNWE5MDQ4YjQ4NWVmYjE3NmQ1ZDM0MDU4MS4u
ODVmNGM2MmUzYmY3NGMwZGU1NDM1ZjJmMDBiZTk4NGQ4MmVhZWY2YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25D
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdv
cmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tCkBAIC0yOTQsNyArMjk0LDcgQEAgc3RhdGljIFJldGFp
blB0cjxOU0FycmF5PiBmaWx0ZXJDb29raWVzKE5TQXJyYXkgKnVuZmlsdGVyZWRDb29raWVzLCBP
cHRpb25hbDxTZWMKICAgICByZXR1cm4gZmlsdGVyZWRDb29raWVzOwogfQogCi1zdGF0aWMgTlNB
cnJheSAqY29va2llc0ZvclVSTChjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24s
IGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8s
IGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFn
ZUlkZW50aWZpZXI+IHBhZ2VJRCkKK3N0YXRpYyBOU0FycmF5ICpjb29raWVzRm9yVVJMKGNvbnN0
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFs
PEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJ
RCkKIHsKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlmIChzZXNz
aW9uLnNob3VsZEJsb2NrQ29va2llcyhmaXJzdFBhcnR5LCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCkp
CkBAIC0zMDcsNyArMzA3LDcgQEAgc3RhdGljIE5TQXJyYXkgKmNvb2tpZXNGb3JVUkwoY29uc3Qg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGYKIH0KIAogZW51bSBJ
bmNsdWRlSFRUUE9ubHlPck5vdCB7IERvTm90SW5jbHVkZUhUVFBPbmx5LCBJbmNsdWRlSFRUUE9u
bHkgfTsKLXN0YXRpYyBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yU2Vzc2lvbihj
b25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0
eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRp
b25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwg
SW5jbHVkZUhUVFBPbmx5T3JOb3QgaW5jbHVkZUhUVFBPbmx5LCBJbmNsdWRlU2VjdXJlQ29va2ll
cyBpbmNsdWRlU2VjdXJlQ29va2llcykKK3N0YXRpYyBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBj
b29raWVzRm9yU2Vzc2lvbihjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNv
bnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFs
PFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVIVFRQT25seU9yTm90IGluY2x1ZGVIVFRQ
T25seSwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpCiB7CiAgICAg
QVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNjZXNzUmF3
Q29va2llcykpOwogCkBAIC0zNjMsMTIgKzM2MywxMiBAQCBzdGF0aWMgdm9pZCBkZWxldGVBbGxI
VFRQQ29va2llcyhDRkhUVFBDb29raWVTdG9yYWdlUmVmIGNvb2tpZVN0b3JhZ2UpCiAgICAgQ0ZI
VFRQQ29va2llU3RvcmFnZURlbGV0ZUFsbENvb2tpZXMoY29va2llU3RvcmFnZSk7CiB9CiAKLXN0
ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRP
TShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZv
LCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVD
b29raWVzKSBjb25zdAorc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpjb29raWVzRm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJ
bmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZp
ZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1
cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAogewogICAgIHJldHVybiBjb29r
aWVzRm9yU2Vzc2lvbigqdGhpcywgZmlyc3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1l
SUQsIHBhZ2VJRCwgRG9Ob3RJbmNsdWRlSFRUUE9ubHksIGluY2x1ZGVTZWN1cmVDb29raWVzKTsK
IH0KIAotc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0
X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1
cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAorc3RkOjpwYWlyPFN0cmluZywg
Ym9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1
ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZv
LCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRl
U2VjdXJlQ29va2llcykgY29uc3QKIHsKICAgICByZXR1cm4gY29va2llc0ZvclNlc3Npb24oKnRo
aXMsIGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIEluY2x1
ZGVIVFRQT25seSwgaW5jbHVkZVNlY3VyZUNvb2tpZXMpOwogfQpAQCAtMzc4LDcgKzM3OCw3IEBA
IHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llUmVx
dWVzdEhlYWRlckZpZWxkVmFsdWUoY29uCiAgICAgcmV0dXJuIGNvb2tpZXNGb3JTZXNzaW9uKCp0
aGlzLCBoZWFkZXJGaWVsZFByb3h5LmZpcnN0UGFydHksIGhlYWRlckZpZWxkUHJveHkuc2FtZVNp
dGVJbmZvLCBoZWFkZXJGaWVsZFByb3h5LnVybCwgaGVhZGVyRmllbGRQcm94eS5mcmFtZUlELCBo
ZWFkZXJGaWVsZFByb3h5LnBhZ2VJRCwgSW5jbHVkZUhUVFBPbmx5LCBoZWFkZXJGaWVsZFByb3h5
LmluY2x1ZGVTZWN1cmVDb29raWVzKTsKIH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJ
bmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJh
bWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBjb29r
aWVTdHIpIGNvbnN0Cit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21E
T00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5m
bywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0
aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHIpIGNv
bnN0CiB7CiAgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6
Q2FuQWNjZXNzUmF3Q29va2llcykpOwogCkBAIC00NDMsNyArNDQzLDcgQEAgYm9vbCBOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmNvb2tpZXNFbmFibGVkKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKLWJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzKGNvbnN0IFVS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVS
TCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZp
ZXI+IHBhZ2VJRCwgVmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0Citib29sIE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8
RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlE
LCBWZWN0b3I8Q29va2llPiYgcmF3Q29va2llcykgY29uc3QKIHsKICAgICByYXdDb29raWVzLmNs
ZWFyKCk7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuY3BwCmluZGV4
IDM5NGMzNDYyNjY0OWQ1ZGVhODY5ZTA5NWJlMGQ5ZmFlN2IxYTVlY2IuLjcxOThhZGYwYjQyZmVk
MGNiNDE4MzQwYmUxNzljM2Y5N2M5OTUxYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3VybC5jcHAKQEAgLTU5LDcgKzU5LDcg
QEAgc3RhdGljIFN0cmluZyBjb29raWVzRm9yU2Vzc2lvbihjb25zdCBOZXR3b3JrU3RvcmFnZVNl
c3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYKICAgICByZXR1cm4gY29va2llcy50b1N0cmluZygp
OwogfQogCi12b2lkIENvb2tpZUphckN1cmw6OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBT
YW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQs
IE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QKK3Zv
aWQgQ29va2llSmFyQ3VybDo6c2V0Q29va2llc0Zyb21ET00oY29uc3QgTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5m
byYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9w
dGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QKIHsKICAg
ICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CiAKQEAgLTgyLDcgKzgyLDcgQEAgc3RkOjpwYWlyPFN0
cmluZywgYm9vbD4gQ29va2llSmFyQ3VybDo6Y29va2llc0ZvckRPTShjb25zdCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb24KICAgICByZXR1cm4geyBjb29raWVzRm9yU2Vzc2lvbihzZXNzaW9uLCBmaXJz
dFBhcnR5LCB1cmwsIGZhbHNlKSwgZmFsc2UgfTsKIH0KIAotc3RkOjpwYWlyPFN0cmluZywgYm9v
bD4gQ29va2llSmFyQ3VybDo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMp
IGNvbnN0CitzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBDb29raWVKYXJDdXJsOjpjb29raWVSZXF1
ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24s
IGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1
cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CiB7CiAgICAgVU5VU0VE
X1BBUkFNKGZyYW1lSUQpOwogICAgIFVOVVNFRF9QQVJBTShwYWdlSUQpOwpAQCAtMTEyLDcgKzEx
Miw3IEBAIGJvb2wgQ29va2llSmFyQ3VybDo6Y29va2llc0VuYWJsZWQoY29uc3QgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uJiBzZXNzaW9uKSBjb25zdAogICAgIHJldHVybiBzZXNzaW9uLmNvb2tpZURh
dGFiYXNlKCkuaXNFbmFibGVkKCk7CiB9CiAKLWJvb2wgQ29va2llSmFyQ3VybDo6Z2V0UmF3Q29v
a2llcyhjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVp
bnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBWZWN0b3I8
Q29va2llPiYgcmF3Q29va2llcykgY29uc3QKK2Jvb2wgQ29va2llSmFyQ3VybDo6Z2V0UmF3Q29v
a2llcyhjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZy
YW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwg
VmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0CiB7CiAgICAgVU5VU0VEX1BBUkFNKGZy
YW1lSUQpOwogICAgIFVOVVNFRF9QQVJBTShwYWdlSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJDdXJsLmgKaW5kZXggMjRhMDVhMjI3
YWUwNmFiYTExNDMxNTJhOGZhYzg0ODI5ZTAxZjQxMC4uZTYyYmM0YTA3ZTgyZTNlY2Y3Y2YyZjY4
YTQxZTRhMmFkYTcwZmI5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL0Nvb2tpZUphckN1cmwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQ29va2llSmFyQ3VybC5oCkBAIC0yNCw2ICsyNCw3IEBACiAKICNwcmFnbWEg
b25jZQogCisjaW5jbHVkZSAiRnJhbWVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50
aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0
Lmg+CkBAIC00MiwxNSArNDMsMTUgQEAgZW51bSBjbGFzcyBDb29raWVBY2NlcHRQb2xpY3k7CiAK
IGNsYXNzIENvb2tpZUphckN1cmwgewogcHVibGljOgotICAgIHN0ZDo6cGFpcjxTdHJpbmcsIGJv
b2w+IGNvb2tpZXNGb3JET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJM
JiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1
aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJl
Q29va2llcykgY29uc3Q7Ci0gICAgdm9pZCBzZXRDb29raWVzRnJvbURPTShjb25zdCBOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5m
byYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdl
SWRlbnRpZmllcj4sIGNvbnN0IFN0cmluZyYpIGNvbnN0OworICAgIHN0ZDo6cGFpcjxTdHJpbmcs
IGJvb2w+IGNvb2tpZXNGb3JET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25h
bDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgSW5j
bHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0OworICAgIHZvaWQgc2V0Q29va2llc0Zyb21ET00oY29u
c3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBT
YW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1l
SUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAg
dm9pZCBzZXRDb29raWVzRnJvbUhUVFBSZXNwb25zZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Np
b24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYpIGNv
bnN0OwogICAgIHZvaWQgc2V0Q29va2llQWNjZXB0UG9saWN5KGNvbnN0IE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiYsIENvb2tpZUFjY2VwdFBvbGljeSkgY29uc3Q7CiAgICAgQ29va2llQWNjZXB0UG9s
aWN5IGNvb2tpZUFjY2VwdFBvbGljeShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mKSBjb25z
dDsKICAgICBib29sIGNvb2tpZXNFbmFibGVkKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYp
IGNvbnN0OwotICAgIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+
IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNvb2tpZXMp
IGNvbnN0OworICAgIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVu
dGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1cmVD
b29raWVzKSBjb25zdDsKICAgICBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVSZXF1ZXN0
SGVhZGVyRmllbGRWYWx1ZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBDb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eSYpIGNvbnN0OwotICAgIGJvb2wgZ2V0UmF3Q29va2ll
cyhjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlE
LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIFZlY3RvcjxDb29raWU+JikgY29uc3Q7CisgICAg
Ym9vbCBnZXRSYXdDb29raWVzKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8
RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIFZlY3Rv
cjxDb29raWU+JikgY29uc3Q7CiAgICAgdm9pZCBkZWxldGVDb29raWUoY29uc3QgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdm9p
ZCBnZXRIb3N0bmFtZXNXaXRoQ29va2llcyhjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBI
YXNoU2V0PFN0cmluZz4mIGhvc3RuYW1lcykgY29uc3Q7CiAgICAgdm9pZCBkZWxldGVDb29raWVz
Rm9ySG9zdG5hbWVzKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBjb29raWVIb3N0TmFtZXMpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lv
blNvdXAuY3BwCmluZGV4IGU0YzhiMGYxM2U2ZDA4OWE1ODkyYWE3YWUwYTliODIxNTg1YmI5YTQu
LmU5NjFjMjg4M2I4NjMwMTA1ZGE3ZDc4MDdmM2ZiYmUyNjFhMjA2MTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25T
b3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKQEAgLTI2MCw3ICsyNjAsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgaHR0cE9ubHlDb29raWVFeGlzdHMoY29uc3QgR1NMaXN0KiBjb29raWVzLCBjb25zdCBn
Y2hhciogbmFtZQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZVNl
c3Npb246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2Ft
ZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBP
cHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBjb25zdCBTdHJpbmcmIHZhbHVlKSBjb25z
dAordm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlv
bmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBh
Z2VJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QKIHsKICAgICBVTlVTRURfUEFSQU0oZnJh
bWVJRCk7CiAgICAgVU5VU0VEX1BBUkFNKHBhZ2VJRCk7CkBAIC00MTMsNyArNDEzLDcgQEAgVmVj
dG9yPENvb2tpZT4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRDb29raWVzKGNvbnN0IFVSTCYg
dXJsKQogICAgIHJldHVybiBjb29raWVzOwogfQogCi1ib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6Z2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5m
byYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8
UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgVmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0
Citib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxG
cmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQs
IFZlY3RvcjxDb29raWU+JiByYXdDb29raWVzKSBjb25zdAogewogICAgIFVOVVNFRF9QQVJBTShm
aXJzdFBhcnR5KTsKICAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CkBAIC00ODMsNyArNDgzLDcg
QEAgc3RhdGljIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZXNGb3JTZXNzaW9uKGNvbnN0
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2UKICAgICByZXR1cm4geyBTdHJpbmc6OmZyb21VVEY4
KGNvb2tpZUhlYWRlci5nZXQoKSksIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMgfTsKIH0KIAotc3Rk
OjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVzRm9yRE9N
KGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1
cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
cGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QK
K3N0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0Zv
ckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVS
TCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29r
aWVzKSBjb25zdAogewogICAgIFVOVVNFRF9QQVJBTShmaXJzdFBhcnR5KTsKICAgICBVTlVTRURf
UEFSQU0oZnJhbWVJRCk7CkBAIC00OTEsNyArNDkxLDcgQEAgc3RkOjpwYWlyPFN0cmluZywgYm9v
bD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVzRm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQ
YXIKICAgICByZXR1cm4gY29va2llc0ZvclNlc3Npb24oKnRoaXMsIHVybCwgZmFsc2UsIGluY2x1
ZGVTZWN1cmVDb29raWVzKTsKIH0KIAotc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1
aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVk
ZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CitzdGQ6OnBhaXI8U3Ry
aW5nLCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVs
ZFZhbHVlKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3Qg
VVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFn
ZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNv
b2tpZXMpIGNvbnN0CiB7CiAgICAgVU5VU0VEX1BBUkFNKGZpcnN0UGFydHkpOwogICAgIFVOVVNF
RF9QQVJBTShmcmFtZUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmUuY3BwCmluZGV4IDY4N2QwYjA0NjFhZmRlN2MwNzI5OGM2YzllZmZk
MjYxOTRiZjQ3YWMuLjc2M2I0NzU5ZTQzM2Y4NzEzMGIzOTQwMDYyMzQwYjI2ODQ4ZWE4YTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
LmNwcApAQCAtNzE2LDcgKzcxNiw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFi
YXNlU3RvcmU6OnN5bmNTdG9yYWdlSW1tZWRpYXRlbHkoKQogICAgIG1fZGF0YWJhc2UucnVuVmFj
dXVtQ29tbWFuZCgpOwogfQogCi12b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiBzdWJGcmFtZURvbWFp
biwgY29uc3QgVG9wRnJhbWVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDxGcmFtZUlE
PiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiBzdWJG
cmFtZURvbWFpbiwgY29uc3QgVG9wRnJhbWVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBPcHRpb25h
bDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NF
UlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtNzQzLDcgKzc0Myw3IEBAIHZvaWQgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3Vi
RnJhbWVEb21haW4mCiAgICAgfSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJh
bWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSUQgZnJhbWVJ
RCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VB
Y2Nlc3NTdGF0dXMpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4m
JiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtODA0LDcgKzgwNCw3IEBAIHZvaWQg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNz
VW5kZXJPcGVuZXIoRG9tYWluCiAgICAgZ3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoV1RGTW92
ZShkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MpLCBXVEZNb3ZlKG9wZW5lckRvbWFpbiksIFdU
Rjo6bnVsbG9wdCwgb3BlbmVyUGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd246Ok5v
LCBbXShTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCkgeyB9KTsKIH0KIAotdm9pZCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9t
YWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIHVp
bnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21w
dFdhc1Nob3duIHByb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VB
Y2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFp
biYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBTdG9yYWdlQWNjZXNz
UHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3Rv
cmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VS
VCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC04MTgsNyArODE4LDcgQEAgdm9pZCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKFN1YkZyYW1l
RG9tYWluJiYgc3UKICAgICBncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChXVEZNb3ZlKHN1YkZy
YW1lRG9tYWluKSwgV1RGTW92ZSh0b3BGcmFtZURvbWFpbiksIGZyYW1lSUQsIHBhZ2VJRCwgcHJv
bXB0V2FzU2hvd24sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJu
YWwoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21haW4mJiB0b3BG
cmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJRD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFn
ZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd25Ob3dPckVhcmxp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURv
bWFpbiwgVG9wRnJhbWVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVu
dGlmaWVyPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9t
cHRXYXNTaG93biBwcm9tcHRXYXNTaG93bk5vd09yRWFybGllciwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKaW5kZXggM2M4ZDJiMWYxNjU0OTNjOTNj
YTVkODJiYzAyNzJmOTEzYjdhMDdmYS4uZDI1NmJlMjFjZmY3YjFmNzA1NTY0MDMxYTU3NWY1ZTVk
MjMzMGVlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlLmgKQEAgLTkxLDkgKzkxLDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBjYWxjdWxh
dGVBbmRTdWJtaXRUZWxlbWV0cnkoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZvaWQgaGFzU3Rv
cmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwg
T3B0aW9uYWw8RnJhbWVJRD4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNj
ZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIEZyYW1lSUQsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0
dXMpPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURv
bWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBGcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9w
RnJhbWVEb21haW4mLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgb3ZlcnJp
ZGU7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BG
cmFtZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmKSBv
dmVycmlkZTsKKyAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBU
b3BGcmFtZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKSBvdmVy
cmlkZTsKIAogICAgIHZvaWQgbG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IE5hdmlnYXRlZFRvRG9t
YWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBjb25zdCBOYXZpZ2F0ZWRGcm9tRG9tYWluJiwg
Ym9vbCBpc1JlZGlyZWN0LCBib29sIGlzTWFpbkZyYW1lKSBvdmVycmlkZTsKICAgICB2b2lkIGxv
Z1VzZXJJbnRlcmFjdGlvbihjb25zdCBUb3BGcmFtZURvbWFpbiYpIG92ZXJyaWRlOwpAQCAtMTUz
LDcgKzE1Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZShjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYsIFJlc291cmNlTG9hZFByZXZhbGVuY2UpOwogICAgIHVuc2ln
bmVkIHJlY3Vyc2l2ZWx5RmluZE5vblByZXZhbGVudERvbWFpbnNUaGF0UmVkaXJlY3RlZFRvVGhp
c0RvbWFpbih1bnNpZ25lZCBwcmltYXJ5RG9tYWluSUQsIFN0ZFNldDx1bnNpZ25lZD4mIG5vblBy
ZXZhbGVudFJlZGlyZWN0aW9uU291cmNlcywgdW5zaWduZWQgbnVtYmVyT2ZSZWN1cnNpdmVDYWxs
cyk7CiAgICAgdm9pZCBzZXREb21haW5zQXNQcmV2YWxlbnQoU3RkU2V0PHVuc2lnbmVkPiYmKTsK
LSAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFN1YkZyYW1lRG9tYWluJiYsIFRv
cEZyYW1lRG9tYWluJiYsIE9wdGlvbmFsPEZyYW1lSUQ+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJik7CisgICAgdm9pZCBn
cmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFp
biYmLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJik7CiAgICAg
dm9pZCBtYXJrQXNQcmV2YWxlbnRJZkhhc1JlZGlyZWN0ZWRUb1ByZXZhbGVudCgpOwogICAgIFZl
Y3RvcjxSZWdpc3RyYWJsZURvbWFpbj4gZW5zdXJlUHJldmFsZW50UmVzb3VyY2VzRm9yRGVidWdN
b2RlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZW1vdmVEYXRhUmVjb3JkcyhDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c01lbW9yeVN0b3JlLmNwcAppbmRleCBlMjM5ZmNjODAzZThkNzQ0NTYxMjE4ZDY3MjE3ZjcxZWQ0
MWIxODdmLi5mNmVlOTJmOWI2OGQzMmYwN2U1MjE1ZDMwMzU0OTk1MTQ0ZjdhODNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcApAQCAt
MjExLDcgKzIxMSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpz
eW5jU3RvcmFnZUltbWVkaWF0ZWx5KCkKICAgICAgICAgbV9wZXJzaXN0ZW50U3RvcmFnZS0+c2No
ZWR1bGVPcldyaXRlTWVtb3J5U3RvcmUoUmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRT
dG9yYWdlOjpGb3JjZUltbWVkaWF0ZVdyaXRlOjpZZXMpOwogfQogCi12b2lkIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURv
bWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFp
biwgT3B0aW9uYWw8RnJhbWVJRD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3Vi
RnJhbWVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJh
bWVEb21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlkZW50aWZp
ZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC0yMzUsNyArMjM1
LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6Omhhc1N0b3JhZ2VB
Y2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mIHMKICAgICB9KTsKIH0KIAotdm9pZCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1l
RG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVEb21haW4s
IEZyYW1lSUQgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1
YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVE
b21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTI4OCw3ICsy
ODgsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVxdWVzdFN0
b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihEb21haW5JbgogICAgIGdyYW50U3RvcmFnZUFjY2Vzc0lu
dGVybmFsKFdURk1vdmUoZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzKSwgV1RGTW92ZShvcGVu
ZXJEb21haW4pLCBXVEY6Om51bGxvcHQsIG9wZW5lclBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21w
dFdhc1Nob3duOjpObywgW10oU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpIHsgfSk7CiB9CiAKLXZv
aWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3Mo
U3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21haW4mJiB0b3BGcmFt
ZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBTdG9yYWdl
QWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmdyYW50U3RvcmFnZUFjY2VzcyhTdWJG
cmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9t
YWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBTdG9y
YWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewog
ICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC0zMDAsNyArMzAwLDcgQEAgdm9p
ZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmdyYW50U3RvcmFnZUFjY2VzcyhT
dWJGcmFtZURvbWFpbiYmIHN1YkYKICAgICBncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChXVEZN
b3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0b3BGcmFtZURvbWFpbiksIGZyYW1lSUQsIHBh
Z2VJRCwgcHJvbXB0V2FzU2hvd24sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAot
dm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vz
c0ludGVybmFsKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWlu
JiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPEZyYW1lSUQ+IGZyYW1lSUQsIFBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duTm93
T3JFYXJsaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVk
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9y
eVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChTdWJGcmFtZURvbWFpbiYmIHN1YkZy
YW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDxGcmFt
ZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vz
c1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duTm93T3JFYXJsaWVyLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCmluZGV4IDVhZjY3YTE2ZjA2MTZkYTlm
YTBjMDkzMzE1YWNiYzM1ZGFhNWIxMTkuLmE0YTdiODhlMmRmYjAwMzQ2YmRjMjcxZmViN2U1YjI0
YmE4MjA5NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9y
eVN0b3JlLmgKQEAgLTk3LDkgKzk3LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBjYWxjdWxhdGVB
bmRTdWJtaXRUZWxlbWV0cnkoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIHZvaWQgaGFzU3RvcmFn
ZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0
aW9uYWw8RnJhbWVJRD4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNz
KFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIEZyYW1lSUQsIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMp
PiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFp
biYmLCBUb3BGcmFtZURvbWFpbiYmLCBGcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
V2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJh
bWVEb21haW4mLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgb3ZlcnJpZGU7
CisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFt
ZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BG
cmFtZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKSBvdmVycmlk
ZTsKIAogICAgIHZvaWQgbG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IE5hdmlnYXRlZFRvRG9tYWlu
JiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBjb25zdCBOYXZpZ2F0ZWRGcm9tRG9tYWluJiwgYm9v
bCBpc1JlZGlyZWN0LCBib29sIGlzTWFpbkZyYW1lKSBvdmVycmlkZTsKICAgICB2b2lkIGxvZ1Vz
ZXJJbnRlcmFjdGlvbihjb25zdCBUb3BGcmFtZURvbWFpbiYpIG92ZXJyaWRlOwpAQCAtMTIzLDcg
KzEyMyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbmNyZW1lbnRSZWNvcmRzRGVsZXRlZENvdW50
Rm9yRG9tYWlucyhIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiYmKSBvdmVycmlkZTsKICAgICB2
b2lkIHNldFByZXZhbGVudFJlc291cmNlKFJlc291cmNlTG9hZFN0YXRpc3RpY3MmLCBSZXNvdXJj
ZUxvYWRQcmV2YWxlbmNlKTsKICAgICB1bnNpZ25lZCByZWN1cnNpdmVseUdldEFsbERvbWFpbnNU
aGF0SGF2ZVJlZGlyZWN0ZWRUb1RoaXNEb21haW4oY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyYsIEhhc2hTZXQ8UmVkaXJlY3RlZFRvRG9tYWluPiYsIHVuc2lnbmVkIG51bWJlck9mUmVjdXJz
aXZlQ2FsbHMpIGNvbnN0OwotICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoU3Vi
RnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgT3B0aW9uYWw8RnJhbWVJRD4sIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQp
PiYmKTsKKyAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFN1YkZyYW1lRG9tYWlu
JiYsIFRvcEZyYW1lRG9tYWluJiYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4s
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2Fz
U2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dy
YW50ZWQpPiYmKTsKICAgICB2b2lkIG1hcmtBc1ByZXZhbGVudElmSGFzUmVkaXJlY3RlZFRvUHJl
dmFsZW50KFJlc291cmNlTG9hZFN0YXRpc3RpY3MmKTsKICAgICBib29sIGlzUHJldmFsZW50RHVl
VG9EZWJ1Z01vZGUoUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpOwogICAgIFZlY3RvcjxSZWdpc3Ry
YWJsZURvbWFpbj4gZW5zdXJlUHJldmFsZW50UmVzb3VyY2VzRm9yRGVidWdNb2RlKCkgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIv
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKaW5kZXggNzBhY2Jk
Y2U5NmY2NWNmODNhOTQ2MzdkM2ZiOGQxZTliMjY1NTNkZC4uMjA5NDVkYTA5OGE2ODBhMGE0ZTk5
NzdmZDc1MjQ3MGY2NzhkOTk1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0NsYXNzaWZpZXIuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0
Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgpAQCAtOTAsNyArOTEsNiBAQCBwdWJsaWM6CiAgICAgdXNpbmcgTmF2
aWdhdGVkVG9Eb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKICAgICB1c2luZyBE
b21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MgPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsK
ICAgICB1c2luZyBPcGVuZXJEb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKLSAg
ICB1c2luZyBGcmFtZUlEID0gdWludDY0X3Q7CiAgICAgCiAgICAgdmlydHVhbCB+UmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlKCk7CiAKQEAgLTE1OSw5ICsxNTksOSBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBpc0RlYnVnTW9kZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2RlYnVnTW9kZUVuYWJs
ZWQ7IH07CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYpOwogCi0gICAgdmlydHVhbCB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3Mo
Y29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPEZy
YW1lSUQ+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJG
cmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBGcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJikg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4m
JiwgVG9wRnJhbWVEb21haW4mJiwgRnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdl
YkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZy
YW1lRG9tYWluJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9w
RnJhbWVEb21haW4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4m
JiwgVG9wRnJhbWVEb21haW4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJikg
PSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBOYXZpZ2F0
ZWRUb0RvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgY29uc3QgTmF2aWdhdGVkRnJvbURv
bWFpbiYsIGJvb2wgaXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFtZSkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb24oY29uc3QgVG9wRnJhbWVEb21haW4mKSA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCmluZGV4IDhj
MjExNTdjYzdmNjkxN2JhOTcwODllMzZmMTY5ZDg2Y2Y4YjhhYjAuLjY3NWYwZGFmNTljZTliNGY4
ODdiNzk0YmM4OTJlYzQ0YTgzNzU2ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuY3BwCkBAIC0yODAsNyArMjgwLDcgQEAgdm9pZCBXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVkKFZlY3Rv
cjxXZWJDb3IKICAgICB9KTsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9t
YWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPHVp
bnQ2NF90PiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
c3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwg
T3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgQVNTRVJUKHN1YkZyYW1lRG9tYWluICE9IHRvcEZyYW1lRG9tYWluKTsKICAgICBBU1NFUlQo
UnVuTG9vcDo6aXNNYWluKCkpOwpAQCAtMzAxLDcgKzMwMSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiBzCiAgICAgfSk7CiB9CiAKLWJvb2wgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291
cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgdWlu
dDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKQorYm9vbCBXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJz
dFBhcnR5RG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFn
ZUlEKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTMxNCw3ICszMTQs
NyBAQCBib29sIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vz
c0ZvckZyYW1lKGNvbnN0IFJlZ2lzdHJhYmxlRAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9p
ZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxIYXNTdG9yYWdlQWNjZXNzRm9y
RnJhbWVIYW5kbGVyKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQs
IFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGhhc0Fj
Y2Vzcyk+JiYgY2FsbGJhY2spCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6
Y2FsbEhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURv
bWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sIGhhc0FjY2Vzcyk+JiYgY2FsbGJhY2spCiB7CiAgICAg
QVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtMzI4LDcgKzMyOCw3IEBAIHZvaWQgV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsSGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1l
SGFuZGxlcihjb25zdCBSCiAgICAgY2FsbGJhY2soZmFsc2UpOwogfQogCi12b2lkIFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9w
RnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vz
c1Byb21wdFdhc1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFt
ZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFj
Y2Vzc1Byb21wdFdhc1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQo
UnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC0zOTEsNyArMzkxLDcgQEAgdm9pZCBXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoUmVn
aXN0cmFibGUKICAgICB9KTsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVE
b21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3Qg
ZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hv
d24gcHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dh
c0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNj
ZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFn
ZUlkZW50aWZpZXIgcGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2Fz
U2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0
b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
QVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBwb3N0VGFzayhbdGhpcywgc3ViRnJhbWVE
b21haW4gPSBzdWJGcmFtZURvbWFpbi5pc29sYXRlZENvcHkoKSwgdG9wRnJhbWVEb21haW4gPSB0
b3BGcmFtZURvbWFpbi5pc29sYXRlZENvcHkoKSwgZnJhbWVJRCwgcGFnZUlELCBwcm9tcHRXYXNT
aG93biwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBt
dXRhYmxlIHsKQEAgLTQxMCw3ICs0MTAsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJgogICAg
IH0pOwogfQogCi1TdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVz
b3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBP
cHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKQorU3RvcmFn
ZUFjY2Vzc1dhc0dyYW50ZWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpncmFudFN0
b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVu
dGlmaWVyPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQpCiB7CiAgICAgQVNTRVJUKFJ1
bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtNDI3LDcgKzQyNyw3IEBAIFN0b3JhZ2VBY2Nlc3NXYXNH
cmFudGVkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNz
KGNvbnN0CiAgICAgcmV0dXJuIGlzU3RvcmFnZUdyYW50ZWQgPyBTdG9yYWdlQWNjZXNzV2FzR3Jh
bnRlZDo6WWVzIDogU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQ6Ok5vOwogfQogCi12b2lkIFdlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIo
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBQYWdl
SWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dh
c0dyYW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OmNhbGxHcmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZy
YW1lRG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRl
ZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVy
L1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4
IDAyM2RjMjc3Y2Y1MDU0N2JmOTY4OWVjY2E0ODQ0ZDBlNjRhYjEzMmYuLjlkYTFiNmJiNTIxNTIx
YTAxMjQyMzRjZDQzMjcxMTU2ZjhjZTBiNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJDb25uZWN0
aW9uLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFjY2Vzc1N0YXR1cy5oIgogI2luY2x1ZGUgIldlYnNp
dGVEYXRhVHlwZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaXN0
cmFibGVEb21haW4uaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KQEAgLTg5
LDcgKzkwLDYgQEAgcHVibGljOgogICAgIHVzaW5nIE5hdmlnYXRlZFRvRG9tYWluID0gV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNpbmcgRG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNj
ZXNzID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNpbmcgT3BlbmVyRG9tYWlu
ID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47Ci0gICAgdXNpbmcgRnJhbWVJRCA9IHVpbnQ2
NF90OwogICAgIHVzaW5nIFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkID0gV2ViQ29yZTo6U3RvcmFn
ZUFjY2Vzc1dhc0dyYW50ZWQ7CiAgICAgdXNpbmcgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3du
ID0gV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOwogCkBAIC0xMTEsNyArMTEx
LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVE
YXRhUmVjb3Jkc1JlbW92YWwoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAg
ICB2b2lkIHNldFNob3VsZFN1Ym1pdFRlbGVtZXRyeShib29sKTsKIAotICAgIHZvaWQgZ3JhbnRT
dG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4m
LCBGcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgU3RvcmFnZUFjY2Vzc1Byb21wdFdh
c1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBT
dG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKTsKKyAgICB2b2lkIGdyYW50U3RvcmFnZUFj
Y2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgU3RvcmFnZUFjY2Vz
c1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNH
cmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKTsKIAogICAgIHZvaWQgYXBw
bGljYXRpb25XaWxsVGVybWluYXRlKCk7CiAKQEAgLTEyNSwxMSArMTI1LDExIEBAIHB1YmxpYzoK
ICAgICB2b2lkIGNsZWFyVXNlckludGVyYWN0aW9uKGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9y
UmVnaXN0cmFibGVEb21haW5zKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBIYXNoTWFwPFJl
Z2lzdHJhYmxlRG9tYWluLCBXZWJzaXRlRGF0YVRvUmVtb3ZlPiYmLCBib29sIHNob3VsZE5vdGlm
eVBhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgSGFzaFNldDxSZWdpc3RyYWJsZURv
bWFpbj4mKT4mJik7CiAgICAgdm9pZCByZWdpc3RyYWJsZURvbWFpbnNXaXRoV2Vic2l0ZURhdGEo
T3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIGJvb2wgc2hvdWxkTm90aWZ5UGFnZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiYmKT4mJik7Ci0gICAg
U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgZ3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1l
RG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxGcmFtZUlEPiwgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIpOworICAgIFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIGdyYW50U3Rv
cmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwg
T3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIpOwogICAgIHZvaWQgaGFzSGFkVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCBoYXNTdG9y
YWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBP
cHRpb25hbDxGcmFtZUlEPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYpOwotICAgIGJvb2wgaGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNv
bnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBGcmFtZUlELCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcik7Ci0gICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzcyhjb25z
dCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgRnJhbWVJRCwgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dh
c0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYpOworICAgIHZvaWQgaGFz
U3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWlu
JiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIGJvb2wgaGFzU3Rv
cmFnZUFjY2Vzc0ZvckZyYW1lKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVE
b21haW4mLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
KTsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwg
Y29uc3QgVG9wRnJhbWVEb21haW4mLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNH
cmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKTsKICAgICB2b2lkIHNldExh
c3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgU2Vjb25kcywgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFByZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNl
dFZlcnlQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CkBAIC0xNzIsMTEgKzE3MiwxMSBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICAgICB2b2lkIGxvZ1Rlc3Rp
bmdFdmVudChjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIGNhbGxHcmFudFN0b3JhZ2VBY2Nlc3NI
YW5kbGVyKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBPcHRp
b25hbDxGcmFtZUlEPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKTsKKyAgICB2b2lkIGNhbGxHcmFudFN0
b3JhZ2VBY2Nlc3NIYW5kbGVyKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVE
b21haW4mLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRl
ZCk+JiYpOwogICAgIHZvaWQgcmVtb3ZlQWxsU3RvcmFnZUFjY2VzcyhDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwogICAgIHZvaWQgY2FsbFVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2Nr
Q29va2llc0ZvckhhbmRsZXIoY29uc3QgUmVnaXN0cmFibGVEb21haW5zVG9CbG9ja0Nvb2tpZXNG
b3ImLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgY2FsbFJlbW92ZURv
bWFpbnNIYW5kbGVyKGNvbnN0IFZlY3RvcjxSZWdpc3RyYWJsZURvbWFpbj4mKTsKLSAgICB2b2lk
IGNhbGxIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKGNvbnN0IFN1YkZyYW1lRG9tYWlu
JiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBGcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCBjYWxsSGFzU3Rv
cmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcihjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRv
cEZyYW1lRG9tYWluJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAKICAgICB2b2lkIGRp
ZENyZWF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oCmluZGV4IDc5MzAx
YjIwY2NjYWZlYjUyMTBkNzVhZDU3NDFmZDJkOTJlOGFjYWQuLjJjYmY0YzZlZTJiM2NjNTBiNTEx
N2NmMjZmMzEzYjE1MmM3MzkwZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaApAQCAtNTEsNyArNTEs
NyBAQCBwdWJsaWM6CiAgICAgICAgIFN0cmluZyB1c2VyQWdlbnQ7CiAgICAgICAgIFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRDsKICAgICAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
OwotICAgICAgICB1aW50NjRfdCBmcmFtZUlEOworICAgICAgICBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRDsKICAgICAgICAgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kg
c3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k7CiAgICAgfTsKICAgICB1c2luZyBDb21wbGV0aW9uQ2Fs
bGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlJlc291cmNlRXJyb3ImJik+
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCAxZjEwMDRlMWI1YmNkMzlkOGIxMjJk
ZjhjNmRhNDhkMTM3YzRiZTYxLi4wYzJjOTc2ZmVlMjBkMzI5YjQwN2UwNGRiOTYyZmI2Nzk5YWY0
MzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNTI1LDcgKzUyNSw3IEBAIHZv
aWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2Fk
VG9Eb3dubG9hZChQQUw6OlNlc3NpCiAgICAgbG9hZGVyLT5jb252ZXJ0VG9Eb3dubG9hZChkb3du
bG9hZElELCByZXF1ZXN0LCByZXNwb25zZSk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OmNvb2tpZXNGb3JET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25z
dCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25z
dCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVz
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgc2VjdXJl
Q29va2llc0FjY2Vzc2VkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNGb3JET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZv
LCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRl
U2VjdXJlQ29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcgY29va2llU3RyaW5n
LCBib29sIHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgYXV0byYgbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gc3RvcmFnZVNlc3Npb24obmV0d29ya1By
b2Nlc3MoKSwgc2Vzc2lvbklEKTsKICAgICBhdXRvIHJlc3VsdCA9IG5ldHdvcmtTdG9yYWdlU2Vz
c2lvbi5jb29raWVzRm9yRE9NKGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlE
LCBwYWdlSUQsIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKQEAgLTUzOCw3ICs1MzgsNyBAQCB2b2lk
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRm9yRE9NKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgY29ucwogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0
LmZpcnN0KSwgcmVzdWx0LnNlY29uZCk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OnNldENvb2tpZXNGcm9tRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29u
c3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29u
c3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRl
bnRpZmllcj4gcGFnZUlELCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0cmluZykKK3ZvaWQgTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldENvb2tpZXNGcm9tRE9NKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNh
bWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRp
Zmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgY29uc3QgU3Ry
aW5nJiBjb29raWVTdHJpbmcpCiB7CiAgICAgYXV0byYgbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0g
c3RvcmFnZVNlc3Npb24obmV0d29ya1Byb2Nlc3MoKSwgc2Vzc2lvbklEKTsKICAgICBuZXR3b3Jr
U3RvcmFnZVNlc3Npb24uc2V0Q29va2llc0Zyb21ET00oZmlyc3RQYXJ0eSwgc2FtZVNpdGVJbmZv
LCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgY29va2llU3RyaW5nKTsKQEAgLTU1NSwxMyArNTU1LDEz
IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNFbmFibGVkKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tCiAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RvcmFn
ZVNlc3Npb24obmV0d29ya1Byb2Nlc3MoKSwgc2Vzc2lvbklEKS5jb29raWVzRW5hYmxlZCgpKTsK
IH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llUmVxdWVzdEhl
YWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwg
T3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdl
SUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFN0cmluZywgYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1
ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
U2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFt
ZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIElu
Y2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFN0cmluZywgYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXV0byBy
ZXN1bHQgPSBzdG9yYWdlU2Vzc2lvbihuZXR3b3JrUHJvY2VzcygpLCBzZXNzaW9uSUQpLmNvb2tp
ZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBm
cmFtZUlELCBwYWdlSUQsIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKICAgICBjb21wbGV0aW9uSGFu
ZGxlcihXVEZNb3ZlKHJlc3VsdC5maXJzdCksIHJlc3VsdC5zZWNvbmQpOwogfQogCi12b2lkIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXRSYXdDb29raWVzKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNh
bWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBP
cHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZl
Y3RvcjxXZWJDb3JlOjpDb29raWU+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Z2V0UmF3Q29va2llcyhQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1l
U2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1l
SUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gcmVzdWx0OwogICAgIHN0b3JhZ2VTZXNzaW9uKG5l
dHdvcmtQcm9jZXNzKCksIHNlc3Npb25JRCkuZ2V0UmF3Q29va2llcyhmaXJzdFBhcnR5LCBzYW1l
U2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlELCByZXN1bHQpOwpAQCAtNjcwLDcgKzY3MCw3
IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmVuc3VyZUxlZ2FjeVByaXZh
dGVCcm93c2luZ1Nlc3Npb24oKQogfQogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VB
Y2Nlc3NGb3JGcmFtZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQs
IFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQpCiB7CiAgICAg
aWYgKGF1dG8qIHN0b3JhZ2VTZXNzaW9uID0gbmV0d29ya1Byb2Nlc3MoKS5zdG9yYWdlU2Vzc2lv
bihzZXNzaW9uSUQpKQogICAgICAgICBzdG9yYWdlU2Vzc2lvbi0+cmVtb3ZlU3RvcmFnZUFjY2Vz
c0ZvckZyYW1lKGZyYW1lSUQsIHBhZ2VJRCk7CkBAIC03MjgsNyArNzI4LDcgQEAgdm9pZCBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0ZWQo
VmVjdG9yPFdlYkNvcmUKICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+cmVzb3VyY2VM
b2FkU3RhdGlzdGljc1VwZGF0ZWQoV1RGTW92ZShzdGF0aXN0aWNzKSk7CiB9CiAKLXZvaWQgTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Omhhc1N0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwg
UGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6aGFz
U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1l
RG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IG5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Np
b24oc2Vzc2lvbklEKSkgewogICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyA9IG5ldHdvcmtTZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpIHsKQEAgLTc0MCw3
ICs3NDAsNyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpoYXNTdG9yYWdl
QWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYwogICAgIGNvbXBsZXRpb25IYW5kbGVy
KHRydWUpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZXF1ZXN0
U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1l
RG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgd2FzR3JhbnRl
ZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
dG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBw
YWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dy
YW50ZWQgd2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHBy
b21wdFdhc1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoYXV0byogbmV0
d29ya1Nlc3Npb24gPSBuZXR3b3JrUHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkp
IHsKICAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBuZXR3b3JrU2Vz
c2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgK
aW5kZXggOTI4NjczM2M0YjdjNzUxMmMyOWM1MzI0MzgyMWQwZWUxZWM3MTMwOS4uMjU1MDg0Zjky
MzFmZWE4MzA4MDA5OGQzNTkzMDU3YTFiZDkwN2M1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIk5ldHdvcmtSVENQcm92aWRlci5oIgogI2lu
Y2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRNYXAuaCIKICNpbmNsdWRlICJXZWJQYXltZW50Q29v
cmRpbmF0b3JQcm94eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrTG9hZEluZm9ybWF0aW9uLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZp
ZXIuaD4KQEAgLTE3NCwxMSArMTc1LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdGFydERvd25s
b2FkKFBBTDo6U2Vzc2lvbklELCBEb3dubG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUgPSB7IH0pOwogICAgIHZvaWQgY29u
dmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFBBTDo6U2Vzc2lvbklELCB1aW50NjRfdCBt
YWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogCi0gICAg
dm9pZCBjb29raWVzRm9yRE9NKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2
NF90PiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIFdlYkNvcmU6
OkluY2x1ZGVTZWN1cmVDb29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyBjb29r
aWVTdHJpbmcsIGJvb2wgc2VjdXJlQ29va2llc0FjY2Vzc2VkKT4mJik7Ci0gICAgdm9pZCBzZXRD
b29raWVzRnJvbURPTShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4g
ZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBjb25zdCBTdHJpbmcm
KTsKKyAgICB2b2lkIGNvb2tpZXNGb3JET00oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9u
YWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50
aWZpZXI+LCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChTdHJpbmcgY29va2llU3RyaW5nLCBib29sIHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCk+JiYp
OworICAgIHZvaWQgc2V0Q29va2llc0Zyb21ET00oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0
aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXI+LCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGNvb2tpZXNFbmFibGVkKFBBTDo6
U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKLSAgICB2b2lkIGNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlv
bmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4s
IFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0
cmluZyBjb29raWVTdHJpbmcsIGJvb2wgc2VjdXJlQ29va2llc0FjY2Vzc2VkKT4mJik7Ci0gICAg
dm9pZCBnZXRSYXdDb29raWVzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2
NF90PiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJik+JiYpOworICAgIHZvaWQg
Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0
aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXI+LCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcywgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChTdHJpbmcgY29va2llU3RyaW5nLCBib29sIHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCk+
JiYpOworICAgIHZvaWQgZ2V0UmF3Q29va2llcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRp
b25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRl
bnRpZmllcj4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4m
Jik+JiYpOwogICAgIHZvaWQgZGVsZXRlQ29va2llKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwm
LCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUpOwogCiAgICAgdm9pZCByZWdpc3RlckZpbGVCbG9i
VVJMKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHBhdGgsIFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKQEAgLTIx
OCw3ICsyMTksNyBAQCBwcml2YXRlOgogICAgIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24m
IGNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oKTsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCi0gICAgdm9pZCByZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNz
aW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKKyAgICB2
b2lkIHJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAgICAgdm9pZCBjbGVh
clBhZ2VTcGVjaWZpY0RhdGFGb3JSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKFBBTDo6U2Vzc2lvbklE
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CiAKICAgICB2b2lkIGxvZ1VzZXJJbnRlcmFjdGlv
bihQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mKTsKQEAgLTIyNiw4ICsy
MjcsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgbG9nU3VicmVzb3VyY2VMb2FkaW5nKFBBTDo6U2Vz
c2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdGFyZ2V0RG9tYWluLCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIFdhbGxUaW1lIGxhc3RTZWVuKTsKICAgICB2
b2lkIGxvZ1N1YnJlc291cmNlUmVkaXJlY3QoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiBzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0YXJnZXRE
b21haW4pOwogICAgIHZvaWQgcmVzb3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0ZWQoVmVjdG9yPFdl
YkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M+JiYpOwotICAgIHZvaWQgaGFzU3RvcmFnZUFj
Y2VzcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9t
YWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZy
YW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKTsKLSAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dh
c0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYpOworICAg
IHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVE
b21haW4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgcmVxdWVzdFN0b3Jh
Z2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFt
ZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBXZWJDb3JlOjpTdG9y
YWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKTsKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNj
ZXNzVW5kZXJPcGVuZXIoUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
JiYgZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBv
cGVuZXJQYWdlSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgb3BlbmVyRG9tYWluKTsK
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRl
eCA0YjExODliMzljY2ViYzhmYjIyNmY4ZmVlMDM0MjhjNmM4NWFkN2EzLi45OWFiZDA3OGZiMTRj
OWYzMGJlOWM4NzYwM2ExM2Q5MWJkNzlhOWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW4KQEAgLTM0LDExICszNCwxMSBAQCBtZXNzYWdlcyAtPiBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgU3RhcnREb3dubG9h
ZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElE
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIHN1Z2dlc3RlZE5hbWUp
CiAgICAgQ29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIFdlYktpdDo6RG93
bmxvYWRJRCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSkKIAotICAgIENvb2tpZXNGb3JET00oUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNh
bWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFt
ZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBlbnVtOmJvb2wg
V2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIC0+IChT
dHJpbmcgY29va2llU3RyaW5nLCBib29sIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMpIFN5bmNocm9u
b3VzCi0gICAgU2V0Q29va2llc0Zyb21ET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwg
Zmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVS
TCB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdl
SWRlbnRpZmllcj4gcGFnZUlELCBTdHJpbmcgY29va2llU3RyaW5nKQorICAgIENvb2tpZXNGb3JE
T00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNv
cmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXI+IHBhZ2VJRCwgZW51bTpib29sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1
ZGVTZWN1cmVDb29raWVzKSAtPiAoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBkaWRBY2Nlc3NT
ZWN1cmVDb29raWVzKSBTeW5jaHJvbm91cworICAgIFNldENvb2tpZXNGcm9tRE9NKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgVVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1lU2l0
ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQs
IFN0cmluZyBjb29raWVTdHJpbmcpCiAgICAgQ29va2llc0VuYWJsZWQoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKSAtPiAoYm9vbCBlbmFibGVkKSBTeW5jaHJvbm91cwotICAgIENvb2tpZVJlcXVl
c3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZpcnN0UGFy
dHksIHN0cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBP
cHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXI+IHBhZ2VJRCwgZW51bTpib29sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1
ZGVTZWN1cmVDb29raWVzKSAtPiAoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBkaWRBY2Nlc3NT
ZWN1cmVDb29raWVzKSBTeW5jaHJvbm91cwotICAgIEdldFJhd0Nvb2tpZXMoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5m
byBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRp
b25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlEKSAtPiAoVmVjdG9yPFdlYkNvcmU6
OkNvb2tpZT4gY29va2llcykgU3luY2hyb25vdXMKKyAgICBDb29raWVSZXF1ZXN0SGVhZGVyRmll
bGRWYWx1ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3Qg
V2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8V2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRl
bnRpZmllcj4gcGFnZUlELCBlbnVtOmJvb2wgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMg
aW5jbHVkZVNlY3VyZUNvb2tpZXMpIC0+IChTdHJpbmcgY29va2llU3RyaW5nLCBib29sIGRpZEFj
Y2Vzc1NlY3VyZUNvb2tpZXMpIFN5bmNocm9ub3VzCisgICAgR2V0UmF3Q29va2llcyhQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNp
dGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlE
KSAtPiAoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykgU3luY2hyb25vdXMKICAgICBE
ZWxldGVDb29raWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgdXJsLCBTdHJpbmcgY29v
a2llTmFtZSkKIAogICAgIFJlZ2lzdGVyRmlsZUJsb2JVUkwoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBVUkwgdXJsLCBTdHJpbmcgcGF0aCwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUgZXh0ZW5zaW9uSGFuZGxlLCBTdHJpbmcgY29udGVudFR5cGUpCkBAIC01OCwxNSArNTgsMTUg
QEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2
ZXIgewogICAgIEVuc3VyZUxlZ2FjeVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQogCiAjaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLSAgICBSZW1vdmVTdG9yYWdlQWNjZXNzRm9y
RnJhbWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciBwYWdlSUQpOworICAgIFJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFt
ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpOwogICAgIENsZWFyUGFnZVNwZWNp
ZmljRGF0YUZvclJlc291cmNlTG9hZFN0YXRpc3RpY3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpOwogICAgIExvZ1VzZXJJbnRlcmFjdGlv
bihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRv
bWFpbikKICAgICBMb2dXZWJTb2NrZXRMb2FkaW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFyZ2V0RG9tYWluLCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgV2FsbFRpbWUgbGFzdFNlZW4pCiAgICAgTG9nU3Vi
cmVzb3VyY2VMb2FkaW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4gdGFyZ2V0RG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BG
cmFtZURvbWFpbiwgV2FsbFRpbWUgbGFzdFNlZW4pCiAgICAgTG9nU3VicmVzb3VyY2VSZWRpcmVj
dChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHNv
dXJjZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFyZ2V0RG9tYWluKQogICAg
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVkKFZlY3RvcjxXZWJDb3JlOjpSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzPiBzdGF0aXN0aWNzKQotICAgIEhhc1N0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFp
biwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZy
YW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkgLT4gKGJvb2wgaGFzU3RvcmFn
ZUFjY2VzcykgQXN5bmMKLSAgICBSZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkZyYW1lRG9tYWluLCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKSAtPiAoZW51bTpib29sIFdlYkNvcmU6OlN0
b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIHdhc0dyYW50ZWQsIGVudW06Ym9vbCBXZWJDb3JlOjpTdG9y
YWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24pIEFzeW5jCisgICAgSGFzU3Rv
cmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFt
ZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCkgLT4gKGJvb2wgaGFzU3RvcmFnZUFjY2VzcykgQXN5bmMKKyAgICBS
ZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkgLT4gKGVudW06Ym9vbCBXZWJDb3JlOjpTdG9yYWdl
QWNjZXNzV2FzR3JhbnRlZCB3YXNHcmFudGVkLCBlbnVtOmJvb2wgV2ViQ29yZTo6U3RvcmFnZUFj
Y2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duKSBBc3luYwogICAgIFJlcXVlc3RTdG9y
YWdlQWNjZXNzVW5kZXJPcGVuZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiBkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MsIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIG9wZW5lclBhZ2VJRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gb3Bl
bmVyRG9tYWluKQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcAppbmRleCA0MDk3MTRkNjY3MjZhODQ3NGFmZjI5YTE2
MDgxN2YyNDc5NjdiMDE2Li4xMTc2ZjUzN2E4NTgwOWI0YmFlMWNlNzY4YjU2NTM1YjE1ZDVlYmIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hl
Y2tlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENo
ZWNrZXIuY3BwCkBAIC00OCw3ICs0OCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1NhbWVPcmln
aW4oY29uc3QgVVJMJiB1cmwsIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCiAgICAgcmV0
dXJuIHVybC5wcm90b2NvbElzRGF0YSgpIHx8IHVybC5wcm90b2NvbElzQmxvYigpIHx8ICFvcmln
aW4gfHwgb3JpZ2luLT5jYW5SZXF1ZXN0KHVybCk7CiB9CiAKLU5ldHdvcmtMb2FkQ2hlY2tlcjo6
TmV0d29ya0xvYWRDaGVja2VyKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgRmV0Y2hP
cHRpb25zJiYgb3B0aW9ucywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIEhUVFBIZWFkZXJNYXAmJiBvcmlnaW5hbFJlcXVl
c3RIZWFkZXJzLCBVUkwmJiB1cmwsIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4mJiBzb3VyY2VPcmln
aW4sIFByZWZsaWdodFBvbGljeSBwcmVmbGlnaHRQb2xpY3ksIFN0cmluZyYmIHJlZmVycmVyLCBi
b29sIGlzSFRUUFNVcGdyYWRlRW5hYmxlZCwgYm9vbCBzaG91bGRDYXB0dXJlRXh0cmFOZXR3b3Jr
TG9hZE1ldHJpY3MsIExvYWRUeXBlIHJlcXVlc3RMb2FkVHlwZSkKK05ldHdvcmtMb2FkQ2hlY2tl
cjo6TmV0d29ya0xvYWRDaGVja2VyKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgRmV0
Y2hPcHRpb25zJiYgb3B0aW9ucywgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBQYWdlSWRlbnRp
ZmllciBwYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBIVFRQSGVhZGVyTWFwJiYgb3Jp
Z2luYWxSZXF1ZXN0SGVhZGVycywgVVJMJiYgdXJsLCBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+JiYg
c291cmNlT3JpZ2luLCBQcmVmbGlnaHRQb2xpY3kgcHJlZmxpZ2h0UG9saWN5LCBTdHJpbmcmJiBy
ZWZlcnJlciwgYm9vbCBpc0hUVFBTVXBncmFkZUVuYWJsZWQsIGJvb2wgc2hvdWxkQ2FwdHVyZUV4
dHJhTmV0d29ya0xvYWRNZXRyaWNzLCBMb2FkVHlwZSByZXF1ZXN0TG9hZFR5cGUpCiAgICAgOiBt
X29wdGlvbnMoV1RGTW92ZShvcHRpb25zKSkKICAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkK
ICAgICAsIG1fbmV0d29ya1Byb2Nlc3MobmV0d29ya1Byb2Nlc3MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaAppbmRleCAwNzcwNjQ2NzBm
Y2JiOWFjOTQyZjhkODYxODEwNDk1OWYwMGUwNTc4Li5lYzk0ZTE0Njk1MzNkN2Q5ODc4MTZiYjI2
YjE3ZGZiMjNiOTQzZmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtMb2FkQ2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0xvYWRDaGVja2VyLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L0NvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db250ZW50U2Vj
dXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZldGNoT3B0
aW9ucy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9OZXR3b3JrTG9hZEluZm9ybWF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdl
SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgpAQCAtNTUs
NyArNTYsNyBAQCBjbGFzcyBOZXR3b3JrTG9hZENoZWNrZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQ
dHI8TmV0d29ya0xvYWRDaGVja2VyPiB7CiBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBMb2FkVHlw
ZSA6IGJvb2wgeyBNYWluRnJhbWUsIE90aGVyIH07CiAKLSAgICBOZXR3b3JrTG9hZENoZWNrZXIo
TmV0d29ya1Byb2Nlc3MmLCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmJiwgUEFMOjpTZXNzaW9uSUQs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpIVFRQ
SGVhZGVyTWFwJiYsIFVSTCYmLCBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYsIFdl
YkNvcmU6OlByZWZsaWdodFBvbGljeSwgU3RyaW5nJiYgcmVmZXJyZXIsIGJvb2wgaXNIVFRQU1Vw
Z3JhZGVFbmFibGVkID0gZmFsc2UsIGJvb2wgc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRN
ZXRyaWNzID0gZmFsc2UsIExvYWRUeXBlIHJlcXVlc3RMb2FkVHlwZSA9IExvYWRUeXBlOjpPdGhl
cik7CisgICAgTmV0d29ya0xvYWRDaGVja2VyKE5ldHdvcmtQcm9jZXNzJiwgV2ViQ29yZTo6RmV0
Y2hPcHRpb25zJiYsIFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiYsIFVSTCYmLCBS
ZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYsIFdlYkNvcmU6OlByZWZsaWdodFBvbGlj
eSwgU3RyaW5nJiYgcmVmZXJyZXIsIGJvb2wgaXNIVFRQU1VwZ3JhZGVFbmFibGVkID0gZmFsc2Us
IGJvb2wgc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzID0gZmFsc2UsIExvYWRU
eXBlIHJlcXVlc3RMb2FkVHlwZSA9IExvYWRUeXBlOjpPdGhlcik7CiAgICAgfk5ldHdvcmtMb2Fk
Q2hlY2tlcigpOwogCiAgICAgc3RydWN0IFJlZGlyZWN0aW9uVHJpcGxldCB7CkBAIC0xMjcsNyAr
MTI4LDcgQEAgcHJpdmF0ZToKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICAgICBS
ZWY8TmV0d29ya1Byb2Nlc3M+IG1fbmV0d29ya1Byb2Nlc3M7CiAgICAgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgbV9wYWdlSUQ7Ci0gICAgdWludDY0X3QgbV9mcmFtZUlEOworICAgIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBtX2ZyYW1lSUQ7CiAgICAgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCBt
X29yaWdpbmFsUmVxdWVzdEhlYWRlcnM7IC8vIE5lZWRlZCBmb3IgQ09SUyBjaGVja3MuCiAgICAg
V2ViQ29yZTo6SFRUUEhlYWRlck1hcCBtX2ZpcnN0UmVxdWVzdEhlYWRlcnM7IC8vIE5lZWRlZCBm
b3IgQ09SUyBjaGVja3MuCiAgICAgVVJMIG1fdXJsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKaW5kZXggYzQzZTVkY2Q3NTAx
MWE1NTkxZTZlNjgyNzI0YzFhNjk1NjVlY2YxNy4uYjhmN2QxMzllMzFlYzVjODI3MTM1ZTM3MzBi
N2IwZDllZjBhNDYxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJO
ZXR3b3JrQWN0aXZpdHlUcmFja2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9CbG9iRGF0YUZpbGVS
ZWZlcmVuY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
TG9hZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CkBA
IC00Niw3ICs0Nyw3IEBAIHB1YmxpYzoKIAogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRDsK
ICAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQ7Ci0gICAgdWludDY0X3Qgd2Vi
RnJhbWVJRCB7IDAgfTsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgd2ViRnJhbWVJRDsK
ICAgICBXVEY6OlByb2Nlc3NJRCBwYXJlbnRQSUQgeyAwIH07CiAgICAgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0IHJlcXVlc3Q7CiAgICAgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IGNv
bnRlbnRTbmlmZmluZ1BvbGljeSB7IFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeTo6U25p
ZmZDb250ZW50IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmgKaW5kZXggYTkyYjcyNDFlYjI5OGVhNjZjNWE4YTI4NDc0ZjQwM2U1N2U0NWMzOS4uYzIz
NjNkZDExMzVmN2UyYmZhMDMyOWVkZjI2MmEyNWJlZTIyYjNjNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMTM3LDcgKzEzNyw2IEBAIHB1
YmxpYzoKICAgICB1c2luZyBOYXZpZ2F0ZWRUb0RvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluOwogICAgIHVzaW5nIERvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcyA9IFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluOwogICAgIHVzaW5nIE9wZW5lckRvbWFpbiA9IFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluOwotICAgIHVzaW5nIEZyYW1lSUQgPSB1aW50NjRfdDsKIAogICAgIE5l
dHdvcmtQcm9jZXNzKEF1eGlsaWFyeVByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmJik7
CiAgICAgfk5ldHdvcmtQcm9jZXNzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggNDc4MmVmMTVmM2RlZWU1
YWY0ZWFlZjA1Y2RmNjAzNmFlN2U2ZDJmYi4uZWM2YTgwYzg0ODlkZWYzMmQ3ODliNzRiZWMxMjcz
NTdiZWM1NTgzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApAQCAtMTgwLDE4ICsxODAsMTggQEAgdm9pZCBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KCkKIAogICAgICAgICAgICAgV1RGOjpzd2l0Y2hPbihy
ZXN1bHQsCiAgICAgICAgICAgICAgICAgW3RoaXNdIChSZXNvdXJjZUVycm9yJiBlcnJvcikgewot
ICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydDogZXJyb3Ig
Y2hlY2tpbmcgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJl
c291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91
cyA9ICVkLCBwYXJlbnRQSUQgPSAlZCwgZXJyb3IuZG9tYWluID0gJXtwdWJsaWN9cywgZXJyb3Iu
Y29kZSA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0
ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCB0aGlzLT5pc01haW5SZXNv
dXJjZSgpLCB0aGlzLT5pc1N5bmNocm9ub3VzKCksIG1fcGFyYW1ldGVycy5wYXJlbnRQSUQsIGVy
cm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCksIGVycm9yLmVycm9yQ29kZSgpKTsKKyAgICAgICAg
ICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6IGVycm9yIGNoZWNraW5n
IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlE
ID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCwg
cGFyZW50UElEID0gJWQsIGVycm9yLmRvbWFpbiA9ICV7cHVibGljfXMsIGVycm9yLmNvZGUgPSAl
ZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJG
cmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCB0aGlzLT5pc01haW5S
ZXNvdXJjZSgpLCB0aGlzLT5pc1N5bmNocm9ub3VzKCksIG1fcGFyYW1ldGVycy5wYXJlbnRQSUQs
IGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCksIGVycm9yLmVycm9yQ29kZSgpKTsKICAgICAg
ICAgICAgICAgICAgICAgaWYgKCFlcnJvci5pc0NhbmNlbGxhdGlvbigpKQogICAgICAgICAgICAg
ICAgICAgICAgICAgdGhpcy0+ZGlkRmFpbExvYWRpbmcoZXJyb3IpOwogICAgICAgICAgICAgICAg
IH0sCiAgICAgICAgICAgICAgICAgW3RoaXNdIChOZXR3b3JrTG9hZENoZWNrZXI6OlJlZGlyZWN0
aW9uVHJpcGxldCYgdHJpcGxldCkgewogICAgICAgICAgICAgICAgICAgICB0aGlzLT5tX2lzV2Fp
dGluZ0NvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0Rm9yQ2FjaGVkUmVkaXJlY3QgPSB0cnVlOwogICAg
ICAgICAgICAgICAgICAgICB0aGlzLT53aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFdURk1vdmUo
dHJpcGxldC5yZXF1ZXN0KSwgV1RGTW92ZSh0cmlwbGV0LnJlZGlyZWN0UmVxdWVzdCksIFdURk1v
dmUodHJpcGxldC5yZWRpcmVjdFJlc3BvbnNlKSk7Ci0gICAgICAgICAgICAgICAgICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0OiBzeW50aGV0aWMgcmVkaXJlY3Qgc2VudCBiZWNhdXNl
IHJlcXVlc3QgVVJMIHdhcyBtb2RpZmllZCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9
ICVkLCBpc1N5bmNocm9ub3VzID0gJWQsIHBhcmVudFBJRCA9ICVkKSIsIG1fcGFyYW1ldGVycy53
ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVy
cy5pZGVudGlmaWVyLCB0aGlzLT5pc01haW5SZXNvdXJjZSgpLCB0aGlzLT5pc1N5bmNocm9ub3Vz
KCksIG1fcGFyYW1ldGVycy5wYXJlbnRQSUQpOworICAgICAgICAgICAgICAgICAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKCJzdGFydDogc3ludGhldGljIHJlZGlyZWN0IHNlbnQgYmVjYXVzZSBy
ZXF1ZXN0IFVSTCB3YXMgbW9kaWZpZWQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAl
ZCwgaXNTeW5jaHJvbm91cyA9ICVkLCBwYXJlbnRQSUQgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2Vi
UGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1f
cGFyYW1ldGVycy5pZGVudGlmaWVyLCB0aGlzLT5pc01haW5SZXNvdXJjZSgpLCB0aGlzLT5pc1N5
bmNocm9ub3VzKCksIG1fcGFyYW1ldGVycy5wYXJlbnRQSUQpOwogICAgICAgICAgICAgICAgIH0s
CiAgICAgICAgICAgICAgICAgW3RoaXNdIChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIHsKICAg
ICAgICAgICAgICAgICAgICAgaWYgKHRoaXMtPmNhblVzZUNhY2hlKHJlcXVlc3QpKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydDogQ2hlY2tp
bmcgY2FjaGUgZm9yIHJlc291cmNlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQs
IGlzU3luY2hyb25vdXMgPSAlZCwgcGFyZW50UElEID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBh
Z2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlk
ZW50aWZpZXIsIHRoaXMtPmlzTWFpblJlc291cmNlKCksIHRoaXMtPmlzU3luY2hyb25vdXMoKSwg
bV9wYXJhbWV0ZXJzLnBhcmVudFBJRCk7CisgICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKCJzdGFydDogQ2hlY2tpbmcgY2FjaGUgZm9yIHJlc291cmNlIChwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIg
UFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCwgcGFyZW50
UElEID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRl
cnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgdGhpcy0+
aXNNYWluUmVzb3VyY2UoKSwgdGhpcy0+aXNTeW5jaHJvbm91cygpLCBtX3BhcmFtZXRlcnMucGFy
ZW50UElEKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMtPnJldHJpZXZlQ2FjaGVFbnRy
eShyZXF1ZXN0KTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAg
ICAgICAgICAgfQpAQCAtMjA0LDcgKzIwNCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVy
OjpzdGFydCgpCiAgICAgfQogICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhhdCBjb2RlIHBhdGggb25j
ZSBtX25ldHdvcmtMb2FkQ2hlY2tlciBpcyB1c2VkIGZvciBhbGwgbmV0d29yayBsb2Fkcy4KICAg
ICBpZiAoY2FuVXNlQ2FjaGUob3JpZ2luYWxSZXF1ZXN0KCkpKSB7Ci0gICAgICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoInN0YXJ0OiBDaGVja2luZyBjYWNoZSBmb3IgcmVzb3VyY2UgKHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQ
Ukl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkLCBwYXJlbnRQ
SUQgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVy
cy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwg
aXNTeW5jaHJvbm91cygpLCBtX3BhcmFtZXRlcnMucGFyZW50UElEKTsKKyAgICAgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6IENoZWNraW5nIGNhY2hlIGZvciByZXNvdXJjZSAocGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUi
IFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQsIHBhcmVu
dFBJRCA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0
ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFp
blJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSwgbV9wYXJhbWV0ZXJzLnBhcmVudFBJRCk7CiAg
ICAgICAgIHJldHJpZXZlQ2FjaGVFbnRyeShvcmlnaW5hbFJlcXVlc3QoKSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CkBAIC0yNDQsNyArMjQ0LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXI6OnJldHJpZXZlQ2FjaGVFbnRyeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAg
ICAgICAgIGxvZ1Nsb3dDYWNoZVJldHJpZXZlSWZOZWVkZWQoaW5mbyk7CiAKICAgICAgICAgaWYg
KCFlbnRyeSkgewotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVD
YWNoZUVudHJ5OiBSZXNvdXJjZSBub3QgaW4gY2FjaGUgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVz
b3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQu
dG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlm
aWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOworICAgICAgICAgICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNoZUVudHJ5OiBSZXNvdXJjZSBub3QgaW4g
Y2FjaGUgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9
ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndl
YkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291
cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CiAgICAgICAgICAgICBzdGFydE5ldHdvcmtMb2FkKFdU
Rk1vdmUocmVxdWVzdCksIEZpcnN0TG9hZDo6WWVzKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQpAQCAtMjU2LDcgKzI1Niw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpy
ZXRyaWV2ZUNhY2hlRW50cnlJbnRlcm5hbChzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0NhCiB7CiAj
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBpZiAoZW50cnktPmhhc1Jl
YWNoZWRQcmV2YWxlbnRSZXNvdXJjZUFnZUNhcCgpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogUmVzb3VyY2UgaGFzIHJlYWNoZWQgcHJldmFs
ZW50IHJlc291cmNlIGFnZSBjYXAgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwg
aXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwg
bV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5S
ZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJlc291cmNlIGhhcyByZWFjaGVkIHByZXZhbGVudCBy
ZXNvdXJjZSBhZ2UgY2FwIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2
NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3lu
Y2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFy
YW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBp
c01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOwogICAgICAgICBtX2NhY2hlRW50cnlG
b3JNYXhBZ2VDYXBWYWxpZGF0aW9uID0gV1RGTW92ZShlbnRyeSk7CiAgICAgICAgIFJlc291cmNl
UmVxdWVzdCByZXZhbGlkYXRpb25SZXF1ZXN0ID0gb3JpZ2luYWxSZXF1ZXN0KCk7CiAgICAgICAg
IHN0YXJ0TmV0d29ya0xvYWQoV1RGTW92ZShyZXZhbGlkYXRpb25SZXF1ZXN0KSwgRmlyc3RMb2Fk
OjpZZXMpOwpAQCAtMjY0LDI4ICsyNjQsMjggQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OnJldHJpZXZlQ2FjaGVFbnRyeUludGVybmFsKHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrQ2EKICAg
ICB9CiAjZW5kaWYKICAgICBpZiAoZW50cnktPnJlZGlyZWN0UmVxdWVzdCgpKSB7Ci0gICAgICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogSGFuZGxpbmcgcmVk
aXJlY3QgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9
ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndl
YkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5
bmNocm9ub3VzKCkpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNh
Y2hlRW50cnk6IEhhbmRsaW5nIHJlZGlyZWN0IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNl
ID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUlu
dDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5p
ZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOwogICAgICAgICBk
aXNwYXRjaFdpbGxTZW5kUmVxdWVzdEZvckNhY2hlRW50cnkoV1RGTW92ZShyZXF1ZXN0KSwgV1RG
TW92ZShlbnRyeSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlmIChtX3BhcmFtZXRl
cnMubmVlZHNDZXJ0aWZpY2F0ZUluZm8gJiYgIWVudHJ5LT5yZXNwb25zZSgpLmNlcnRpZmljYXRl
SW5mbygpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVF
bnRyeTogUmVzb3VyY2UgZG9lcyBub3QgaGF2ZSByZXF1aXJlZCBjZXJ0aWZpY2F0ZSAocGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBS
SXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJh
bWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9w
YXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7
CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogUmVz
b3VyY2UgZG9lcyBub3QgaGF2ZSByZXF1aXJlZCBjZXJ0aWZpY2F0ZSAocGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBp
c01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndl
YlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBt
X3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygp
KTsKICAgICAgICAgc3RhcnROZXR3b3JrTG9hZChXVEZNb3ZlKHJlcXVlc3QpLCBGaXJzdExvYWQ6
Olllcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKGVudHJ5LT5uZWVkc1ZhbGlk
YXRpb24oKSB8fCByZXF1ZXN0LmNhY2hlUG9saWN5KCkgPT0gV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0Q2FjaGVQb2xpY3k6OlJlZnJlc2hBbnlDYWNoZURhdGEpIHsKLSAgICAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNoZUVudHJ5OiBWYWxpZGF0aW5nIGNhY2hlIGVudHJ5
IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlE
ID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCki
LCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFt
ZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJv
bm91cygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNoZUVu
dHJ5OiBWYWxpZGF0aW5nIGNhY2hlIGVudHJ5IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNl
ID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUlu
dDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5p
ZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOwogICAgICAgICB2
YWxpZGF0ZUNhY2hlRW50cnkoV1RGTW92ZShlbnRyeSkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogUmV0cmll
dmVkIHJlc291cmNlIGZyb20gY2FjaGUgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAl
ZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQo
KSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01h
aW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoInJldHJpZXZlQ2FjaGVFbnRyeTogUmV0cmlldmVkIHJlc291cmNlIGZyb20gY2FjaGUgKHBh
Z2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAl
IiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1f
cGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQu
dG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlz
U3luY2hyb25vdXMoKSk7CiAgICAgZGlkUmV0cmlldmVDYWNoZUVudHJ5KFdURk1vdmUoZW50cnkp
KTsKIH0KIAogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0TmV0d29ya0xvYWQoUmVz
b3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgRmlyc3RMb2FkIGxvYWQpCiB7CiAgICAgaWYgKGxvYWQg
PT0gRmlyc3RMb2FkOjpZZXMpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3Rh
cnROZXR3b3JrTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5j
aHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJh
bWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJj
ZSgpLCBpc1N5bmNocm9ub3VzKCkpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJz
dGFydE5ldHdvcmtMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5
bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Bh
cmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwg
aXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKIAogICAgICAgICBjb25zdW1lU2Fu
ZGJveEV4dGVuc2lvbnMoKTsKIApAQCAtMzA4LDcgKzMwOCw3IEBAIHZvaWQgTmV0d29ya1Jlc291
cmNlTG9hZGVyOjpzdGFydE5ldHdvcmtMb2FkKFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEZp
cnN0TG9hCiAgICAgfQogICAgIGlmICghbmV0d29ya1Nlc3Npb24pIHsKICAgICAgICAgV1RGTG9n
QWx3YXlzKCJBdHRlbXB0ZWQgdG8gY3JlYXRlIGEgTmV0d29ya0xvYWQgd2l0aCBhIHNlc3Npb24g
KGlkPSUiIFBSSXU2NCAiKSB0aGF0IGRvZXMgbm90IGV4aXN0LiIsIHBhcmFtZXRlcnMuc2Vzc2lv
bklELnNlc3Npb25JRCgpKTsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgi
c3RhcnROZXR3b3JrTG9hZDogQXR0ZW1wdGVkIHRvIGNyZWF0ZSBhIE5ldHdvcmtMb2FkIHdpdGgg
YSBzZXNzaW9uIHRoYXQgZG9lcyBub3QgZXhpc3QgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgc2Vzc2lvbklEPSUi
IFBSSXU2NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0
ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBwYXJhbWV0ZXJzLnNlc3Np
b25JRC5zZXNzaW9uSUQoKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQo
InN0YXJ0TmV0d29ya0xvYWQ6IEF0dGVtcHRlZCB0byBjcmVhdGUgYSBOZXR3b3JrTG9hZCB3aXRo
IGEgc2Vzc2lvbiB0aGF0IGRvZXMgbm90IGV4aXN0IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIHNlc3Npb25JRD0l
IiBQUkl1NjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1l
dGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBwYXJh
bWV0ZXJzLnNlc3Npb25JRC5zZXNzaW9uSUQoKSk7CiAgICAgICAgIG1fY29ubmVjdGlvbi0+bmV0
d29ya1Byb2Nlc3MoKS5sb2dEaWFnbm9zdGljTWVzc2FnZShtX3BhcmFtZXRlcnMud2ViUGFnZUlE
LCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmludGVybmFsRXJyb3JLZXkoKSwgV2Vi
Q29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjppbnZhbGlkU2Vzc2lvbklES2V5KCksIFdlYkNv
cmU6OlNob3VsZFNhbXBsZTo6Tm8pOwogICAgICAgICBkaWRGYWlsTG9hZGluZyhpbnRlcm5hbEVy
cm9yKHJlcXVlc3QudXJsKCkpKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMzIwLDcgKzMyMCw3IEBA
IHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydE5ldHdvcmtMb2FkKFJlc291cmNlUmVx
dWVzdCYmIHJlcXVlc3QsIEZpcnN0TG9hCiAgICAgcGFyYW1ldGVycy5yZXF1ZXN0ID0gV1RGTW92
ZShyZXF1ZXN0KTsKICAgICBtX25ldHdvcmtMb2FkID0gc3RkOjptYWtlX3VuaXF1ZTxOZXR3b3Jr
TG9hZD4oKnRoaXMsICZuZXR3b3JrU2Vzc2lvbi0+YmxvYlJlZ2lzdHJ5KCksIFdURk1vdmUocGFy
YW1ldGVycyksICpuZXR3b3JrU2Vzc2lvbik7CiAKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KCJzdGFydE5ldHdvcmtMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQ
Ukl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBkZXNjcmlwdGlvbiA9ICV7cHVibGlj
fXMpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2Vi
RnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIG1fbmV0d29ya0xvYWQtPmRlc2NyaXB0
aW9uKCkudXRmOCgpLmRhdGEoKSk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnRO
ZXR3b3JrTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgZGVzY3JpcHRpb24gPSAle3B1YmxpY31zKSIsIG1f
cGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQu
dG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIG1fbmV0d29ya0xvYWQtPmRlc2Ny
aXB0aW9uKCkudXRmOCgpLmRhdGEoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVy
OjpjbGVhbnVwKExvYWRSZXN1bHQgcmVzdWx0KQpAQCAtMzQ0LDcgKzM0NCw3IEBAIHZvaWQgTmV0
d29ya1Jlc291cmNlTG9hZGVyOjpjbGVhbnVwKExvYWRSZXN1bHQgcmVzdWx0KQogCiB2b2lkIE5l
dHdvcmtSZXNvdXJjZUxvYWRlcjo6Y29udmVydFRvRG93bmxvYWQoRG93bmxvYWRJRCBkb3dubG9h
ZElELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlKQogewotICAgIFJFTEVBU0VfTE9HKExvYWRpbmcsICJDb252ZXJ0aW5nIE5l
dHdvcmtSZXNvdXJjZUxvYWRlciAlcCB0byBkb3dubG9hZCAlIiBQUkl1NjQgIiAocGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2
NCAiKSIsIHRoaXMsIGRvd25sb2FkSUQuZG93bmxvYWRJRCgpLCBtX3BhcmFtZXRlcnMud2ViUGFn
ZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRl
bnRpZmllcik7CisgICAgUkVMRUFTRV9MT0coTG9hZGluZywgIkNvbnZlcnRpbmcgTmV0d29ya1Jl
c291cmNlTG9hZGVyICVwIHRvIGRvd25sb2FkICUiIFBSSXU2NCAiIChwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwg
dGhpcywgZG93bmxvYWRJRC5kb3dubG9hZElEKCksIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9V
SW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJz
LmlkZW50aWZpZXIpOwogICAgIAogICAgIC8vIFRoaXMgY2FuIGhhcHBlbiBpZiB0aGUgcmVzb3Vy
Y2UgY2FtZSBmcm9tIHRoZSBkaXNrIGNhY2hlLgogICAgIGlmICghbV9uZXR3b3JrTG9hZCkgewpA
QCAtMzYyLDcgKzM2Miw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjphYm9ydCgpCiAg
ICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIAogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoImFib3J0OiBDYW5jZWxpbmcgcmVzb3VyY2UgbG9hZCAocGFnZUlEID0gJSIgUFJJdTY0ICIs
IGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsCi0gICAg
ICAgIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZy
YW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyKTsKKyAgICAgICAgbV9wYXJhbWV0ZXJzLndl
YlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBt
X3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CiAKICAgICBpZiAobV9wYXJhbWV0ZXJzLm9wdGlvbnMu
a2VlcEFsaXZlICYmIG1fcmVzcG9uc2UuaXNOdWxsKCkgJiYgIW1faXNLZXB0QWxpdmUpIHsKICAg
ICAgICAgbV9pc0tlcHRBbGl2ZSA9IHRydWU7CkBAIC00NDcsNyArNDQ3LDcgQEAgYm9vbCBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OnNob3VsZEludGVycnVwdExvYWRGb3JDU1BGcmFtZUFuY2VzdG9y
c09yWEZyYW1lT3B0aW8KIAogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVS
ZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVjZWl2ZWRSZXNwb25zZSwgUmVzcG9uc2VDb21w
bGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZTogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaHR0cFN0YXR1c0Nv
ZGUgPSAlZCwgbGVuZ3RoID0gJSIgUFJJZDY0ICIpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50
b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZp
ZXIsIHJlY2VpdmVkUmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSwgcmVjZWl2ZWRSZXNwb25zZS5l
eHBlY3RlZENvbnRlbnRMZW5ndGgoKSk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlk
UmVjZWl2ZVJlc3BvbnNlOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBodHRwU3RhdHVzQ29kZSA9ICVkLCBsZW5n
dGggPSAlIiBQUklkNjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1f
cGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVy
LCByZWNlaXZlZFJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCksIHJlY2VpdmVkUmVzcG9uc2UuZXhw
ZWN0ZWRDb250ZW50TGVuZ3RoKCkpOwogCiAgICAgbV9yZXNwb25zZSA9IFdURk1vdmUocmVjZWl2
ZWRSZXNwb25zZSk7CiAKQEAgLTUyNyw3ICs1MjcsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxv
YWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJiByZWNlaXZlZFJlc3Bv
bgogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVCdWZmZXIoUmVmPFNoYXJl
ZEJ1ZmZlcj4mJiBidWZmZXIsIGludCByZXBvcnRlZEVuY29kZWREYXRhTGVuZ3RoKQogewogICAg
IGlmICghbV9udW1CeXRlc1JlY2VpdmVkKQotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KCJkaWRSZWNlaXZlQnVmZmVyOiBTdGFydGVkIHJlY2VpdmluZyBkYXRhIChwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIp
IiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJh
bWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJkaWRSZWNlaXZlQnVmZmVyOiBTdGFydGVkIHJlY2VpdmluZyBkYXRhIChwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJ
dTY0ICIpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMu
d2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CiAgICAgbV9u
dW1CeXRlc1JlY2VpdmVkICs9IGJ1ZmZlci0+c2l6ZSgpOwogCiAgICAgQVNTRVJUKCFtX2NhY2hl
RW50cnlGb3JWYWxpZGF0aW9uKTsKQEAgLTU1Niw3ICs1NTYsNyBAQCB2b2lkIE5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZUJ1ZmZlcihSZWY8U2hhcmVkQnVmZmVyPiYmIGJ1ZmZlciwg
aW50IHJlcAogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhj
b25zdCBOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMb2FkTWV0cmljcykKIHsKLSAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKCJkaWRGaW5pc2hMb2FkaW5nOiAocGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBsZW5n
dGggPSAlemQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRl
cnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIG1fbnVtQnl0ZXNSZWNlaXZl
ZCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkRmluaXNoTG9hZGluZzogKHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQ
Ukl1NjQgIiwgbGVuZ3RoID0gJXpkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQo
KSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50
aWZpZXIsIG1fbnVtQnl0ZXNSZWNlaXZlZCk7CiAKICAgICBpZiAoc2hvdWxkQ2FwdHVyZUV4dHJh
TmV0d29ya0xvYWRNZXRyaWNzKCkpCiAgICAgICAgIG1fY29ubmVjdGlvbi0+YWRkTmV0d29ya0xv
YWRJbmZvcm1hdGlvbk1ldHJpY3MoaWRlbnRpZmllcigpLCBuZXR3b3JrTG9hZE1ldHJpY3MpOwpA
QCAtNTkxLDcgKzU5MSw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hM
b2FkaW5nKGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvCiAKIHZvaWQgTmV0d29y
a1Jlc291cmNlTG9hZGVyOjpkaWRGYWlsTG9hZGluZyhjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJv
cikKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRGYWlsTG9hZGluZzogKHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQ
Ukl1NjQgIiwgaXNUaW1lb3V0ID0gJWQsIGlzQ2FuY2VsbGF0aW9uID0gJWQsIGlzQWNjZXNzQ29u
dHJvbCA9ICVkLCBlcnJDb2RlID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2
NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGVy
cm9yLmlzVGltZW91dCgpLCBlcnJvci5pc0NhbmNlbGxhdGlvbigpLCBlcnJvci5pc0FjY2Vzc0Nv
bnRyb2woKSwgZXJyb3IuZXJyb3JDb2RlKCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
ImRpZEZhaWxMb2FkaW5nOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc1RpbWVvdXQgPSAlZCwgaXNDYW5jZWxs
YXRpb24gPSAlZCwgaXNBY2Nlc3NDb250cm9sID0gJWQsIGVyckNvZGUgPSAlZCkiLCBtX3BhcmFt
ZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUlu
dDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBlcnJvci5pc1RpbWVvdXQoKSwgZXJyb3Iu
aXNDYW5jZWxsYXRpb24oKSwgZXJyb3IuaXNBY2Nlc3NDb250cm9sKCksIGVycm9yLmVycm9yQ29k
ZSgpKTsKIAogICAgIGlmIChzaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MoKSkK
ICAgICAgICAgbV9jb25uZWN0aW9uLT5yZW1vdmVOZXR3b3JrTG9hZEluZm9ybWF0aW9uKGlkZW50
aWZpZXIoKSk7CkBAIC03NTYsNyArNzU2LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OmNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIG5ld1JlcXVlc3QKICAg
ICAgICAgfQogICAgIH0KIAotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImNvbnRpbnVlV2ls
bFNlbmRSZXF1ZXN0OiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQg
IiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9V
SW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVy
KTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJjb250aW51ZVdpbGxTZW5kUmVxdWVzdDog
KHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQg
PSAlIiBQUkl1NjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFy
YW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyKTsK
IAogICAgIG1faXNBbGxvd2VkVG9Bc2tVc2VyRm9yQ3JlZGVudGlhbHMgPSBpc0FsbG93ZWRUb0Fz
a1VzZXJGb3JDcmVkZW50aWFsczsKIApAQCAtMTAxMSwxMiArMTAxMSwxNyBAQCBzdGF0aWMgU3Ry
aW5nIGVzY2FwZUZvckpTT04oU3RyaW5nIHMpCiBzdGF0aWMgU3RyaW5nIGVzY2FwZUlERm9ySlNP
Tihjb25zdCBPcHRpb25hbDx1aW50NjRfdD4mIHZhbHVlKQogewogICAgIHJldHVybiB2YWx1ZSA/
IFN0cmluZzo6bnVtYmVyKHZhbHVlLnZhbHVlKCkpIDogU3RyaW5nKCJOb25lIl9zKTsKLX07Cit9
CisKK3N0YXRpYyBTdHJpbmcgZXNjYXBlSURGb3JKU09OKGNvbnN0IE9wdGlvbmFsPEZyYW1lSWRl
bnRpZmllcj4mIHZhbHVlKQoreworICAgIHJldHVybiB2YWx1ZSA/IFN0cmluZzo6bnVtYmVyKHZh
bHVlLT50b1VJbnQ2NCgpKSA6IFN0cmluZygiTm9uZSJfcyk7Cit9CiAKIHN0YXRpYyBTdHJpbmcg
ZXNjYXBlSURGb3JKU09OKGNvbnN0IE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiYgdmFsdWUpCiB7
CiAgICAgcmV0dXJuIHZhbHVlID8gU3RyaW5nOjpudW1iZXIodmFsdWUtPnRvVUludDY0KCkpIDog
U3RyaW5nKCJOb25lIl9zKTsKLX07Cit9CiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjps
b2dDb29raWVJbmZvcm1hdGlvbigpIGNvbnN0CiB7CkBAIC0xMDI4LDcgKzEwMzMsNyBAQCB2b2lk
IE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6bG9nQ29va2llSW5mb3JtYXRpb24oKSBjb25zdAogICAg
IGxvZ0Nvb2tpZUluZm9ybWF0aW9uKG1fY29ubmVjdGlvbiwgIk5ldHdvcmtSZXNvdXJjZUxvYWRl
ciIsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KHRoaXMpLCAqbmV0d29ya1N0b3JhZ2VT
ZXNzaW9uLCBvcmlnaW5hbFJlcXVlc3QoKS5maXJzdFBhcnR5Rm9yQ29va2llcygpLCBTYW1lU2l0
ZUluZm86OmNyZWF0ZShvcmlnaW5hbFJlcXVlc3QoKSksIG9yaWdpbmFsUmVxdWVzdCgpLnVybCgp
LCBvcmlnaW5hbFJlcXVlc3QoKS5odHRwUmVmZXJyZXIoKSwgZnJhbWVJRCgpLCBwYWdlSUQoKSwg
aWRlbnRpZmllcigpKTsKIH0KIAotc3RhdGljIHZvaWQgbG9nQmxvY2tlZENvb2tpZUluZm9ybWF0
aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBjb25zdCBTdHJp
bmcmIGxhYmVsLCBjb25zdCB2b2lkKiBsb2dnZWRPYmplY3QsIGNvbnN0IFdlYkNvcmU6Ok5ldHdv
cmtTdG9yYWdlU2Vzc2lvbiYgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwg
Y29uc3QgU3RyaW5nJiByZWZlcnJlciwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlv
bmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIE9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVy
KQorc3RhdGljIHZvaWQgbG9nQmxvY2tlZENvb2tpZUluZm9ybWF0aW9uKE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2
b2lkKiBsb2dnZWRPYmplY3QsIGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYg
bmV0d29ya1N0b3JhZ2VTZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVT
aXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZl
cnJlciwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRl
bnRpZmllcj4gcGFnZUlELCBPcHRpb25hbDx1aW50NjRfdD4gaWRlbnRpZmllcikKIHsKICAgICBB
U1NFUlQoTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbihj
b25uZWN0aW9uLCBuZXR3b3JrU3RvcmFnZVNlc3Npb24uc2Vzc2lvbklEKCkpKTsKIApAQCAtMTA1
NSw3ICsxMDYwLDcgQEAgc3RhdGljIHZvaWQgbG9nQmxvY2tlZENvb2tpZUluZm9ybWF0aW9uKE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW8KICN1bmRlZiBMT0NBTF9MT0df
SUZfQUxMT1dFRAogfQogCi1zdGF0aWMgdm9pZCBsb2dDb29raWVJbmZvcm1hdGlvbkludGVybmFs
KE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBjb25zdCBTdHJpbmcm
IGxhYmVsLCBjb25zdCB2b2lkKiBsb2dnZWRPYmplY3QsIGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiYgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQs
IE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIE9wdGlvbmFsPHVpbnQ2NF90PiBpZGVu
dGlmaWVyKQorc3RhdGljIHZvaWQgbG9nQ29va2llSW5mb3JtYXRpb25JbnRlcm5hbChOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgY29uc3QgU3RyaW5nJiBsYWJlbCwg
Y29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNl
c3Npb24mIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgcmVmZXJyZXIsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgT3B0aW9uYWw8dWludDY0X3Q+IGlkZW50
aWZpZXIpCiB7CiAgICAgQVNTRVJUKE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2hvdWxkTG9nQ29v
a2llSW5mb3JtYXRpb24oY29ubmVjdGlvbiwgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLnNlc3Npb25J
RCgpKSk7CiAKQEAgLTExMTYsNyArMTEyMSw3IEBAIHN0YXRpYyB2b2lkIGxvZ0Nvb2tpZUluZm9y
bWF0aW9uSW50ZXJuYWwoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3RpCiAj
dW5kZWYgTE9DQUxfTE9HX0lGX0FMTE9XRUQKIH0KIAotdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXI6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBj
b25uZWN0aW9uLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2b2lkKiBsb2dnZWRPYmplY3Qs
IGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLCBjb25z
dCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25z
dCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIE9wdGlvbmFsPHVpbnQ2NF90
PiBpZGVudGlmaWVyKQordm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmxvZ0Nvb2tpZUluZm9y
bWF0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBjb25zdCBT
dHJpbmcmIGxhYmVsLCBjb25zdCB2b2lkKiBsb2dnZWRPYmplY3QsIGNvbnN0IE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbiYgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgY29uc3Qg
U3RyaW5nJiByZWZlcnJlciwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBPcHRpb25hbDx1aW50NjRfdD4gaWRlbnRpZmll
cikKIHsKICAgICBBU1NFUlQoc2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oY29ubmVjdGlvbiwg
bmV0d29ya1N0b3JhZ2VTZXNzaW9uLnNlc3Npb25JRCgpKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCmluZGV4IDYyYzY1
Y2RkZmY3Y2EwYjIwYTFjMTkwOTliOWY3MTVmYWU0NTRhOGUuLjc0OTJkZjMyZjc5OTZlMDkwM2Jl
OTBkYTAwNWU5YjE0NmRhMTVmYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaApAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6
CiAgICAgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MoKSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rpb247IH0KICAgICBQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQoKSBjb25zdCB7IHJldHVybiBtX3BhcmFtZXRlcnMuc2Vzc2lvbklEOyB9CiAgICAg
UmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9wYXJh
bWV0ZXJzLmlkZW50aWZpZXI7IH0KLSAgICB1aW50NjRfdCBmcmFtZUlEKCkgY29uc3QgeyByZXR1
cm4gbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlEOyB9CiAg
ICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKCkgY29uc3QgeyByZXR1cm4gbV9wYXJh
bWV0ZXJzLndlYlBhZ2VJRDsgfQogCiAgICAgc3RydWN0IFN5bmNocm9ub3VzTG9hZERhdGE7CkBA
IC0xMTIsNyArMTEyLDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgc3RhdGljIGJvb2wgc2hvdWxk
TG9nQ29va2llSW5mb3JtYXRpb24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBjb25z
dCBQQUw6OlNlc3Npb25JRCYpOwotICAgIHN0YXRpYyB2b2lkIGxvZ0Nvb2tpZUluZm9ybWF0aW9u
KE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29u
c3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYs
IGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIE9wdGlvbmFsPHVpbnQ2NF90PiBm
cmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIE9wdGlvbmFsPHVpbnQ2
NF90PiBpZGVudGlmaWVyKTsKKyAgICBzdGF0aWMgdm9pZCBsb2dDb29raWVJbmZvcm1hdGlvbihO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0
IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBj
b25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXI+LCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIE9wdGlvbmFs
PHVpbnQ2NF90PiBpZGVudGlmaWVyKTsKICNlbmRpZgogCiAgICAgdm9pZCBkaXNhYmxlRXh0cmFO
ZXR3b3JrTG9hZE1ldHJpY3NDYXB0dXJlKCkgeyBtX3Nob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtM
b2FkTWV0cmljcyA9IGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jYWNoZS9OZXR3b3JrQ2FjaGUuaAppbmRleCBkOTRmYzczODBmMTlhNWY1ZjViNzhlYTM5ZWYx
ZDY1YTkyMTFlZTRmLi44NWQxMDBjYTZjN2MwNWZiOGMzZDEyZDAzYTQ0MDI4MTEwMzk1ZWY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNo
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hl
LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVFbnRyeS5oIgogI2lu
Y2x1ZGUgIk5ldHdvcmtDYWNoZVN0b3JhZ2UuaCIKICNpbmNsdWRlICJTaGFyZWFibGVSZXNvdXJj
ZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25z
ZS5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgpAQCAtODUsNyArODYsNyBA
QCBlbnVtIGNsYXNzIFVzZURlY2lzaW9uIHsKICAgICBOb0R1ZVRvRXhwaXJlZFJlZGlyZWN0CiB9
OwogCi11c2luZyBHbG9iYWxGcmFtZUlEID0gc3RkOjpwYWlyPFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCB1aW50NjRfdCAvKndlYkZyYW1lSUQqLz47Cit1c2luZyBHbG9iYWxGcmFtZUlEID0gc3Rk
OjpwYWlyPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+
OyAvLyBGSVhNRTogVXNlIEdsb2JhbEZyYW1lSWRlbnRpZmllci4KIAogZW51bSBjbGFzcyBDYWNo
ZU9wdGlvbiA6IHVpbnQ4X3QgewogICAgIC8vIEluIHRlc3RpbmcgbW9kZSB3ZSB0cnkgdG8gZWxp
bWluYXRlIHNvdXJjZXMgb2YgcmFuZG9tbmVzcy4gQ2FjaGUgZG9lcyBub3Qgc2hyaW5rIGFuZCB0
aGVyZSBhcmUgbm8gcmVhZCB0aW1lb3V0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaAppbmRleCAyNzkzNTc1
MzViZTFlODRhMTNkMzFmZjdmYzMyZWM4MmU2OWVkYjhmLi40M2FkNmYxZGU0MWM1MTYxZGQ5ZGIz
YjY5YWY5MWNhM2Y3YWIyNDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCkBAIC00Miw3ICs0Miw3IEBA
IGNsYXNzIE5ldHdvcmtTZXNzaW9uQ29jb2E7CiBjbGFzcyBOZXR3b3JrRGF0YVRhc2tDb2NvYSBm
aW5hbCA6IHB1YmxpYyBOZXR3b3JrRGF0YVRhc2sgewogICAgIGZyaWVuZCBjbGFzcyBOZXR3b3Jr
U2Vzc2lvbkNvY29hOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8TmV0d29ya0RhdGFUYXNrPiBj
cmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xp
ZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIHVpbnQ2NF90IGZy
YW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRT
bmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGlu
Z1NuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENs
ZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFBy
ZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBib29s
IGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIE9wdGlvbmFs
PE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+IG5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpCisgICAgc3Rh
dGljIFJlZjxOZXR3b3JrRGF0YVRhc2s+IGNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwg
TmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kg
c3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBz
aG91bGRDb250ZW50U25pZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5
IHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhU
VFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5LCBi
b29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBib29sIGRhdGFUYXNrSXNGb3JN
YWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0
eVRyYWNrZXI+IG5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpCiAgICAgewogICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBOZXR3b3JrRGF0YVRhc2tDb2NvYShzZXNzaW9uLCBjbGllbnQsIHJlcXVl
c3QsIGZyYW1lSUQsIHBhZ2VJRCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENvbnRl
bnRTbmlmZiwgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIHNob3VsZENsZWFyUmVmZXJyZXJP
bkhUVFBTVG9IVFRQUmVkaXJlY3QsIHNob3VsZFByZWNvbm5lY3RPbmx5LCBkYXRhVGFza0lzRm9y
TWFpbkZyYW1lTmF2aWdhdGlvbiwgZGF0YVRhc2tJc0Zvck1haW5SZXNvdXJjZU5hdmlnYXRpb25G
b3JBbnlGcmFtZSwgbmV0d29ya0FjdGl2aXR5VHJhY2tlcikpOwogICAgIH0KQEAgLTY5LDEzICs2
OSwxMyBAQCBwdWJsaWM6CiAKICAgICBXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdv
cmtMb2FkTWV0cmljcygpIHsgcmV0dXJuIG1fbmV0d29ya0xvYWRNZXRyaWNzOyB9CiAKLSAgICB1
aW50NjRfdCBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9OworICAgIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9
OwogICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1f
cGFnZUlEOyB9OwogCiAgICAgU3RyaW5nIGRlc2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAK
IHByaXZhdGU6Ci0gICAgTmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mLCBOZXR3
b3JrRGF0YVRhc2tDbGllbnQmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCB1aW50
NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwgV2ViQ29yZTo6
Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9u
SFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zvck1h
aW5GcmFtZU5hdmlnYXRpb24sIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5SZXNvdXJjZU5hdmlnYXRp
b25Gb3JBbnlGcmFtZSwgT3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4pOworICAgIE5l
dHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50
JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwgV2ViQ29yZTo6Q29udGVudEVu
Y29kaW5nU25pZmZpbmdQb2xpY3ksIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hU
VFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5h
dmlnYXRpb24sIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlG
cmFtZSwgT3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4pOwogCiAgICAgYm9vbCB0cnlQ
YXNzd29yZEJhc2VkQXV0aGVudGljYXRpb24oY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYpOwogICAgIHZvaWQgYXBwbHlT
bmlmZmluZ1BvbGljaWVzQW5kQmluZFJlcXVlc3RUb0luZmVyZmFjZUlmTmVlZGVkKF9fc3Ryb25n
IE5TVVJMUmVxdWVzdComLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250
ZW50RW5jb2RpbmdTbmlmZik7CkBAIC05Miw3ICs5Miw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRy
PFNhbmRib3hFeHRlbnNpb24+IG1fc2FuZGJveEV4dGVuc2lvbjsKICAgICBSZXRhaW5QdHI8TlNV
UkxTZXNzaW9uRGF0YVRhc2s+IG1fdGFzazsKICAgICBXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJp
Y3MgbV9uZXR3b3JrTG9hZE1ldHJpY3M7Ci0gICAgdWludDY0X3QgbV9mcmFtZUlEOworICAgIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX2ZyYW1lSUQ7CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgbV9wYWdlSUQ7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0
YVRhc2tDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a0RhdGFUYXNrQ29jb2EubW0KaW5kZXggNDJlN2FjZTQyNGIyYWI4YmIwMGEzN2M5NjNlYTk3ZDQ0
MTMxNWFlMC4uYzJlN2IzNjg1NGU3Mzk1Y2I2OTMwZDZlMjU3NDhjNGJhZDYwMTIxNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tD
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtE
YXRhVGFza0NvY29hLm1tCkBAIC0xNzAsNyArMTcwLDcgQEAgc3RhdGljIGlubGluZSBib29sIGNv
bXB1dGVJc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24pCiAg
ICAgcmV0dXJuIHNlc3Npb24uc2Vzc2lvbklEKCkuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCk7
CiB9CiAKLU5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3Jr
U2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgdWludDY0X3Qg
ZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpTdG9yZWRD
cmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVu
dFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgV2ViQ29yZTo6Q29udGVudEVuY29k
aW5nU25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIGJvb2wgc2hvdWxk
Q2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hvdWxk
UHJlY29ubmVjdE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24sIGJv
b2wgZGF0YVRhc2tJc0Zvck1haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSwgT3B0aW9u
YWw8TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4gbmV0d29ya0FjdGl2aXR5VHJhY2tlcikKK05ldHdv
cmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vz
c2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6U3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNv
bnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIFdlYkNvcmU6OkNvbnRlbnRF
bmNvZGluZ1NuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBib29sIHNo
b3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNo
b3VsZFByZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9u
LCBib29sIGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIE9w
dGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+IG5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpCiAg
ICAgOiBOZXR3b3JrRGF0YVRhc2soc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0V2l0aENyZWRlbnRp
YWxzLCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNU
b0hUVFBSZWRpcmVjdCwgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24pCiAgICAgLCBt
X2ZyYW1lSUQoZnJhbWVJRCkKICAgICAsIG1fcGFnZUlEKHBhZ2VJRCkKQEAgLTI1Niw3ICsyNTYs
NyBAQCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nl
c3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVAogICAgIGlmIChzaG91bGRCbG9ja0Nvb2tpZXMp
IHsKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAgICAgaWYgKG1fc2Vzc2lvbi0+c2hv
dWxkTG9nQ29va2llSW5mb3JtYXRpb24oKSkKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGKGlz
QWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3b3JrLCAiJXAgLSBOZXR3b3JrRGF0YVRhc2tD
b2NvYTo6bG9nQ29va2llSW5mb3JtYXRpb246IHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1
LCB0YXNrSUQgPSAlbHU6IEJsb2NraW5nIGNvb2tpZXMgZm9yIFVSTCAlcyIsIHRoaXMsIHBhZ2VJ
RC50b1VJbnQ2NCgpLCBmcmFtZUlELCAodW5zaWduZWQgbG9uZylbbV90YXNrIHRhc2tJZGVudGlm
aWVyXSwgbnNSZXF1ZXN0LlVSTC5hYnNvbHV0ZVN0cmluZy5VVEY4U3RyaW5nKTsKKyAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3b3JrLCAi
JXAgLSBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6bG9nQ29va2llSW5mb3JtYXRpb246IHBhZ2VJRCA9
ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCB0YXNrSUQgPSAlbHU6IEJsb2NraW5nIGNvb2tpZXMgZm9y
IFVSTCAlcyIsIHRoaXMsIHBhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCksICh1
bnNpZ25lZCBsb25nKVttX3Rhc2sgdGFza0lkZW50aWZpZXJdLCBuc1JlcXVlc3QuVVJMLmFic29s
dXRlU3RyaW5nLlVURjhTdHJpbmcpOwogI2Vsc2UKICAgICAgICAgTE9HKE5ldHdvcmtTZXNzaW9u
LCAiJWxsdSBCbG9ja2luZyBjb29raWVzIGZvciBVUkwgJXMiLCBbbV90YXNrIHRhc2tJZGVudGlm
aWVyXSwgbnNSZXF1ZXN0LlVSTC5hYnNvbHV0ZVN0cmluZy5VVEY4U3RyaW5nKTsKICNlbmRpZgpA
QCAtMzkwLDcgKzM5MCw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrQ29jb2E6OndpbGxQZXJmb3Jt
SFRUUFJlZGlyZWN0aW9uKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmCiAgICAgfQogI2lmICFS
RUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGlmIChtX3Nlc3Npb24tPnNob3VsZExvZ0Nvb2tpZUlu
Zm9ybWF0aW9uKCkpCi0gICAgICAgIFJFTEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxs
b3dlZCgpLCBOZXR3b3JrLCAiJXAgLSBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6d2lsbFBlcmZvcm1I
VFRQUmVkaXJlY3Rpb246OmxvZ0Nvb2tpZUluZm9ybWF0aW9uOiBwYWdlSUQgPSAlbGx1LCBmcmFt
ZUlEID0gJWxsdSwgdGFza0lEID0gJWx1OiAlcyBjb29raWVzIGZvciByZWRpcmVjdCBVUkwgJXMi
LCB0aGlzLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBtX2ZyYW1lSUQsICh1bnNpZ25lZCBsb25nKVtt
X3Rhc2sgdGFza0lkZW50aWZpZXJdLCAobV9oYXNCZWVuU2V0VG9Vc2VTdGF0ZWxlc3NDb29raWVT
dG9yYWdlID8gIkJsb2NraW5nIiA6ICJOb3QgYmxvY2tpbmciKSwgcmVxdWVzdC51cmwoKS5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxv
Z2dpbmdBbGxvd2VkKCksIE5ldHdvcmssICIlcCAtIE5ldHdvcmtEYXRhVGFza0NvY29hOjp3aWxs
UGVyZm9ybUhUVFBSZWRpcmVjdGlvbjo6bG9nQ29va2llSW5mb3JtYXRpb246IHBhZ2VJRCA9ICVs
bHUsIGZyYW1lSUQgPSAlbGx1LCB0YXNrSUQgPSAlbHU6ICVzIGNvb2tpZXMgZm9yIHJlZGlyZWN0
IFVSTCAlcyIsIHRoaXMsIG1fcGFnZUlELnRvVUludDY0KCksIG1fZnJhbWVJRC50b1VJbnQ2NCgp
LCAodW5zaWduZWQgbG9uZylbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgKG1faGFzQmVlblNldFRv
VXNlU3RhdGVsZXNzQ29va2llU3RvcmFnZSA/ICJCbG9ja2luZyIgOiAiTm90IGJsb2NraW5nIiks
IHJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAjZWxzZQogICAgIExPRyhO
ZXR3b3JrU2Vzc2lvbiwgIiVsbHUgJXMgY29va2llcyBmb3IgcmVkaXJlY3QgVVJMICVzIiwgW21f
dGFzayB0YXNrSWRlbnRpZmllcl0sIChtX2hhc0JlZW5TZXRUb1VzZVN0YXRlbGVzc0Nvb2tpZVN0
b3JhZ2UgPyAiQmxvY2tpbmciIDogIk5vdCBibG9ja2luZyIpLCByZXF1ZXN0LnVybCgpLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Nj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weQppbmRleCBmMGVjOGRjMWI3MTY5YmNjYTU1YTY1NDkxMmVkMmZlZjUzNzBkZjEw
Li5jMDFlODk1OWU4MDdmZjYyNGVmODU3N2ViMzU1NjVlNDJkOTNhM2IxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTIwNSw2ICsyMDUsNyBAQCBkZWYgZm9y
d2FyZF9kZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnMocmVjZWl2ZXIpOgogICAgICAgICAnU3RyaW5n
JywKICAgICAgICAgJ1dlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJD
b3JlOjpGZXRjaElkZW50aWZpZXInLAorICAgICAgICAnV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
JywKICAgICAgICAgJ1dlYkNvcmU6OlBhZ2VJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6
OlBvaW50ZXJJRCcsCiAgICAgICAgICdXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcicsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuY3BwIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmNwcAppbmRleCA3OTY0NmFjNmU1
OWM0MWQ0ZGY3MDkwMWRiYTdlMjY3NTMzNmQ1MjRhLi40MDgwMTM4ODU0OGExODExYWI1OWU1Y2Iy
NDVhMTE1MjExNDJiZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJ
RnJhbWVIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElGcmFtZUhh
bmRsZS5jcHAKQEAgLTMxLDE3ICszMSwxNyBAQAogCiBuYW1lc3BhY2UgQVBJIHsKIAotUmVmPEZy
YW1lSGFuZGxlPiBGcmFtZUhhbmRsZTo6Y3JlYXRlKHVpbnQ2NF90IGZyYW1lSUQpCitSZWY8RnJh
bWVIYW5kbGU+IEZyYW1lSGFuZGxlOjpjcmVhdGUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRnJhbWVIYW5kbGUoZnJhbWVJRCwg
ZmFsc2UpKTsKIH0KIAotUmVmPEZyYW1lSGFuZGxlPiBGcmFtZUhhbmRsZTo6Y3JlYXRlQXV0b2Nv
bnZlcnRpbmcodWludDY0X3QgZnJhbWVJRCkKK1JlZjxGcmFtZUhhbmRsZT4gRnJhbWVIYW5kbGU6
OmNyZWF0ZUF1dG9jb252ZXJ0aW5nKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQog
ewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZyYW1lSGFuZGxlKGZyYW1lSUQsIHRydWUpKTsK
IH0KIAotRnJhbWVIYW5kbGU6OkZyYW1lSGFuZGxlKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNB
dXRvY29udmVydGluZykKK0ZyYW1lSGFuZGxlOjpGcmFtZUhhbmRsZShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgYm9vbCBpc0F1dG9jb252ZXJ0aW5nKQogICAgIDogbV9mcmFtZUlE
KGZyYW1lSUQpCiAgICAgLCBtX2lzQXV0b2NvbnZlcnRpbmcoaXNBdXRvY29udmVydGluZykKIHsK
QEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBGcmFtZUhhbmRsZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKIAogYm9vbCBGcmFtZUhhbmRsZTo6ZGVjb2RlKElQQzo6RGVjb2RlciYg
ZGVjb2RlciwgUmVmUHRyPE9iamVjdD4mIHJlc3VsdCkKIHsKLSAgICB1aW50NjRfdCBmcmFtZUlE
OworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEOwogICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoZnJhbWVJRCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuaAppbmRleCBiMTBlODA4YTRiMTlhZDMxM2Q4YjQ1
NWMyM2I5ZDgzOTljYzM4NTUwLi4xYzY0YTRhZDFlODAyYTA0NjcyOTgxYmNiZjhhNzYwMTY0MjVm
ZmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuaApAQCAtMjcs
NiArMjcsNyBAQAogI2RlZmluZSBBUElGcmFtZUhhbmRsZV9oCiAKICNpbmNsdWRlICJBUElPYmpl
Y3QuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0
Zi9SZWYuaD4KIAogbmFtZXNwYWNlIElQQyB7CkBAIC0zOCwyMCArMzksMjAgQEAgbmFtZXNwYWNl
IEFQSSB7CiAKIGNsYXNzIEZyYW1lSGFuZGxlIDogcHVibGljIE9iamVjdEltcGw8T2JqZWN0OjpU
eXBlOjpGcmFtZUhhbmRsZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RnJhbWVIYW5kbGU+
IGNyZWF0ZSh1aW50NjRfdCBmcmFtZUlEKTsKLSAgICBzdGF0aWMgUmVmPEZyYW1lSGFuZGxlPiBj
cmVhdGVBdXRvY29udmVydGluZyh1aW50NjRfdCBmcmFtZUlEKTsKKyAgICBzdGF0aWMgUmVmPEZy
YW1lSGFuZGxlPiBjcmVhdGUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICBzdGF0aWMg
UmVmPEZyYW1lSGFuZGxlPiBjcmVhdGVBdXRvY29udmVydGluZyhXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIpOwogCi0gICAgZXhwbGljaXQgRnJhbWVIYW5kbGUodWludDY0X3QgZnJhbWVJRCwgYm9v
bCBpc0F1dG9jb252ZXJ0aW5nKTsKKyAgICBleHBsaWNpdCBGcmFtZUhhbmRsZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIGJvb2wgaXNBdXRvY29udmVydGluZyk7CiAgICAgdmlydHVhbCB+RnJh
bWVIYW5kbGUoKTsKIAotICAgIHVpbnQ2NF90IGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2Zy
YW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNvbnN0IHsg
cmV0dXJuIG1fZnJhbWVJRDsgfQogICAgIGJvb2wgaXNBdXRvY29udmVydGluZygpIGNvbnN0IHsg
cmV0dXJuIG1faXNBdXRvY29udmVydGluZzsgfQogCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNv
ZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFJlZlB0
cjxPYmplY3Q+Jik7CiAKIHByaXZhdGU6Ci0gICAgY29uc3QgdWludDY0X3QgbV9mcmFtZUlEOwor
ICAgIGNvbnN0IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX2ZyYW1lSUQ7CiAgICAgY29uc3Qg
Ym9vbCBtX2lzQXV0b2NvbnZlcnRpbmc7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5kbGUubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5kbGUubW0KaW5kZXggYTQxYTYxM2E3ZDM3MWQ3YWUyYTcz
ZTQwNTgyN2IwYWJkNzM1NzA3MC4uZWRjYjM4ZTYzNWE3YmYwOTI3YjExMGNjN2Q0Y2Y5NzY2YWI1
ZDA4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS0ZyYW1l
SGFuZGxlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhh
bmRsZS5tbQpAQCAtMjYsNiArMjYsOCBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJf
V0tGcmFtZUhhbmRsZUludGVybmFsLmgiCiAKKyNpbXBvcnQgPFdlYkNvcmUvRnJhbWVJZGVudGlm
aWVyLmg+CisKIEBpbXBsZW1lbnRhdGlvbiBfV0tGcmFtZUhhbmRsZSB7CiAgICAgQVBJOjpPYmpl
Y3RTdG9yYWdlPEFQSTo6RnJhbWVIYW5kbGU+IF9mcmFtZUhhbmRsZTsKIH0KQEAgLTUwLDEyICs1
MiwxMiBAQCAtIChCT09MKWlzRXF1YWw6KGlkKW9iamVjdAogCiAtIChOU1VJbnRlZ2VyKWhhc2gK
IHsKLSAgICByZXR1cm4gX2ZyYW1lSGFuZGxlLT5mcmFtZUlEKCk7CisgICAgcmV0dXJuIF9mcmFt
ZUhhbmRsZS0+ZnJhbWVJRCgpLnRvVUludDY0KCk7CiB9CiAKIC0gKHVpbnQ2NF90KV9mcmFtZUlE
CiB7Ci0gICAgcmV0dXJuIF9mcmFtZUhhbmRsZS0+ZnJhbWVJRCgpOworICAgIHJldHVybiBfZnJh
bWVIYW5kbGUtPmZyYW1lSUQoKS50b1VJbnQ2NCgpOwogfQogCiAjcHJhZ21hIG1hcmsgTlNDb3B5
aW5nIHByb3RvY29sIGltcGxlbWVudGF0aW9uCkBAIC04MywxNCArODUsMTQgQEAgLSAoaWQpaW5p
dFdpdGhDb2RlcjooTlNDb2RlciAqKWRlY29kZXIKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9
CiAKLSAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6RnJhbWVIYW5kbGU+
KHNlbGYsIGZyYW1lSUQudW5zaWduZWRMb25nTG9uZ1ZhbHVlLCBmYWxzZSk7CisgICAgQVBJOjpP
YmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OkZyYW1lSGFuZGxlPihzZWxmLCBXZWJDb3Jl
OjpmcmFtZUlkZW50aWZpZXJGcm9tSUQoZnJhbWVJRC51bnNpZ25lZExvbmdMb25nVmFsdWUpLCBm
YWxzZSk7CiAKICAgICByZXR1cm4gc2VsZjsKIH0KIAogLSAodm9pZCllbmNvZGVXaXRoQ29kZXI6
KE5TQ29kZXIgKiljb2RlcgogewotICAgIFtjb2RlciBlbmNvZGVPYmplY3Q6QChfZnJhbWVIYW5k
bGUtPmZyYW1lSUQoKSkgZm9yS2V5OkAiZnJhbWVJRCJdOworICAgIFtjb2RlciBlbmNvZGVPYmpl
Y3Q6QChbc2VsZiBfZnJhbWVJRF0pIGZvcktleTpAImZyYW1lSUQiXTsKIH0KIAogI3ByYWdtYSBt
YXJrIFdLT2JqZWN0IHByb3RvY29sIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2Vy
LmNwcAppbmRleCA5ZGViNzZmZjEzMmM2Y2I1ZmRmNWViZjUyMjIzNGY2ZDQ0M2VmOTRkLi4zOGE1
YmZmNmFmZDI1NzFkNTJkY2U0YzA5ODA0YWE3NTQ0YWJlNGYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFu
YWdlci5jcHAKQEAgLTEwOCw3ICsxMDgsNyBAQCBWZWN0b3I8dWludDY0X3Q+IEF1dGhlbnRpY2F0
aW9uTWFuYWdlcjo6Y29hbGVzY2VDaGFsbGVuZ2VzTWF0Y2hpbmcodWludDY0X3QgY2hhbAogICAg
IHJldHVybiBjaGFsbGVuZ2VzVG9Db2FsZXNjZTsKIH0KIAotdm9pZCBBdXRoZW50aWNhdGlvbk1h
bmFnZXI6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShQYWdlSWRlbnRpZmllciBw
YWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBh
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewogICAgIEFTU0VSVChwYWdlSUQpOwogICAgIEFTU0VSVChmcmFtZUlEKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFu
YWdlci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRp
b25NYW5hZ2VyLmgKaW5kZXggODZlNzQ0YzEwOGRmNGNiY2Y1ZDA0NzYwOWFjZjk2YzY4MjNkNmIx
Ni4uNDAzNmVhYjc3ZmQ5Y2UxNTU1MzBmYjZhNGNjNTYxNjgzZDdlZDkxYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2Vy
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRp
b25NYW5hZ2VyLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1N1
cHBsZW1lbnQuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzU3VwcGxlbWVudC5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zy
YW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNp
bmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgpAQCAtNjEsNyArNjIsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgY29uc3QgY2hhciogc3Vw
cGxlbWVudE5hbWUoKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJD
b3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVy
JiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJik7
CiAgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoSVBDOjpNZXNzYWdl
U2VuZGVyJiBkb3dubG9hZCwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2Um
LCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYmKTsKIAogICAgIHZvaWQgY29tcGxldGVBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCwgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VEaXNwb3NpdGlvbiwgV2ViQ29yZTo6Q3JlZGVudGlhbCYmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuY3BwIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvRnJhbWVJbmZvRGF0YS5jcHAKaW5kZXggOTQ0MjM3NDU2NTgxNmY0ZTg4MDQwZmYwODRl
MGMxYTNiZTUzMWZmNC4uM2U5ZDcyZWFkNTNjNTgzMmM0MzMxNzM0YjcwNzQxZmRiMzRhMjEyMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvRnJhbWVJbmZvRGF0YS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvRnJhbWVJbmZvRGF0YS5jcHAKQEAgLTQ5LDggKzQ5LDEyIEBA
IGJvb2wgRnJhbWVJbmZvRGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgRnJhbWVJ
bmZvRGF0YSYgcmVzdWx0KQogICAgIGlmICghc2VjdXJpdHlPcmlnaW4pCiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICByZXN1bHQuc2VjdXJpdHlPcmlnaW4gPSBXVEZNb3ZlKCpzZWN1cml0eU9y
aWdpbik7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuZnJhbWVJRCkpCisgICAgCisg
ICAgT3B0aW9uYWw8T3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPj4gZnJhbWVJRDsKKyAgICBkZWNv
ZGVyID4+IGZyYW1lSUQ7CisgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgcmVzdWx0LmZyYW1lSUQgPSBXVEZNb3ZlKCpmcmFtZUlEKTsKIAogICAgIHJldHVybiB0
cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRnJhbWVJbmZvRGF0YS5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvRnJhbWVJbmZvRGF0YS5oCmluZGV4IGE4MjgzNjg2ZjE2
YWIzY2QzNTI0OWNlNzA1ZDNmMmI4ZTdiYjNjNjYuLjUzODcxNmViMjFlYjU0MGE0MTc3OWM3ZTZi
OGZmZDQzNTJmYmMxM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5m
b0RhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9GcmFtZUluZm9EYXRhLmgKQEAgLTI1
LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRl
bnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KIApAQCAtNDIsNyArNDMsNyBAQCBzdHJ1
Y3QgRnJhbWVJbmZvRGF0YSB7CiAgICAgYm9vbCBpc01haW5GcmFtZSB7IGZhbHNlIH07CiAgICAg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Q7CiAgICAgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhIHNlY3VyaXR5T3JpZ2luOwotICAgIHVpbnQ2NF90IGZyYW1lSUQgeyAwIH07Cisg
ICAgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEOwogfTsKIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUZyYW1lSW5mby5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJRnJhbWVJbmZvLmNwcAppbmRleCA5NmIx
M2QxNzg1NDQ1YzM5NzMzYjJmMDQ4YTYwZjIwMjE1MDhjOGM4Li44Mjk3MjhiOTFkNjFhYTI2MDQ3
NWUyYTFjOTFkMjQyMGU5Nzg2MGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJRnJhbWVJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJRnJhbWVJbmZvLmNwcApAQCAtNTUsNyArNTUsNyBAQCBGcmFtZUluZm86OkZyYW1lSW5mbyhj
b25zdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEmIGZyYW1lSW5mb0RhdGEsIFdlYktpdDo6V2ViUGFn
ZQogICAgIDogbV9pc01haW5GcmFtZSB7IGZyYW1lSW5mb0RhdGEuaXNNYWluRnJhbWUgfQogICAg
ICwgbV9yZXF1ZXN0IHsgZnJhbWVJbmZvRGF0YS5yZXF1ZXN0IH0KICAgICAsIG1fc2VjdXJpdHlP
cmlnaW4geyBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKGZyYW1lSW5mb0RhdGEuc2VjdXJpdHlPcmln
aW4uc2VjdXJpdHlPcmlnaW4oKSkgfQotICAgICwgbV9oYW5kbGUgeyBBUEk6OkZyYW1lSGFuZGxl
OjpjcmVhdGUoZnJhbWVJbmZvRGF0YS5mcmFtZUlEKSB9CisgICAgLCBtX2hhbmRsZSB7IEFQSTo6
RnJhbWVIYW5kbGU6OmNyZWF0ZShmcmFtZUluZm9EYXRhLmZyYW1lSUQgPyAqZnJhbWVJbmZvRGF0
YS5mcmFtZUlEIDogV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyeyB9KSB9CiAgICAgLCBtX3BhZ2Ug
eyBtYWtlUmVmUHRyKHBhZ2UpIH0KIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLRnJhbWVIYW5kbGVSZWYuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tGcmFtZUhhbmRsZVJlZi5jcHAKaW5kZXggYjM5ZmNhMWJlNTdmMGQyNzRkODQ1
N2YwNDNmNTBlYWI2MmYyM2M1OC4uZTg3M2ZjNDY1MWQ1MjY5Mzg5MzY5ZmM2MGE3ODAyNjU0MjA1
ZGQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tGcmFtZUhh
bmRsZVJlZi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tGcmFtZUhh
bmRsZVJlZi5jcHAKQEAgLTM4LDUgKzM4LDUgQEAgV0tUeXBlSUQgV0tGcmFtZUhhbmRsZUdldFR5
cGVJRCgpCiAKIHVpbnQ2NF90IFdLRnJhbWVIYW5kbGVHZXRGcmFtZUlEKFdLRnJhbWVIYW5kbGVS
ZWYgZnJhbWVIYW5kbGVSZWYpCiB7Ci0gICAgcmV0dXJuIHRvSW1wbChmcmFtZUhhbmRsZVJlZikt
PmZyYW1lSUQoKTsKKyAgICByZXR1cm4gdG9JbXBsKGZyYW1lSGFuZGxlUmVmKS0+ZnJhbWVJRCgp
LnRvVUludDY0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbQppbmRleCAwMzkxYTE5OTJlMzUzMmRiZTVmMjFkYjY5MWRkODEwOGFhZTJhNjZj
Li4wOTUxZTk0NDM3YmNlNDY2NWQ2MTViZDA0MGQyNmRmMjBiNjRkZjM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTY2MjEsNyArNjYy
MSw3IEBAIC0gKE5TUHJpbnRPcGVyYXRpb24gKilfcHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZv
OihOU1ByaW50SW5mbyAqKXByaW50SW5mbwogCiAtIChOU1ByaW50T3BlcmF0aW9uICopX3ByaW50
T3BlcmF0aW9uV2l0aFByaW50SW5mbzooTlNQcmludEluZm8gKilwcmludEluZm8gZm9yRnJhbWU6
KF9XS0ZyYW1lSGFuZGxlICopZnJhbWVIYW5kbGUKIHsKLSAgICBpZiAoYXV0byogd2ViRnJhbWVQ
cm94eSA9IF9wYWdlLT5wcm9jZXNzKCkud2ViRnJhbWUoZnJhbWVIYW5kbGUuX2ZyYW1lSUQpKQor
ICAgIGlmIChhdXRvKiB3ZWJGcmFtZVByb3h5ID0gX3BhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShX
ZWJDb3JlOjpmcmFtZUlkZW50aWZpZXJGcm9tSUQoZnJhbWVIYW5kbGUuX2ZyYW1lSUQpKSkKICAg
ICAgICAgcmV0dXJuIF9pbXBsLT5wcmludE9wZXJhdGlvbldpdGhQcmludEluZm8ocHJpbnRJbmZv
LCAqd2ViRnJhbWVQcm94eSk7CiAgICAgcmV0dXJuIG5pbDsKIH0KQEAgLTcxMTQsNyArNzExNCw3
IEBAIC0gKHZvaWQpX2NvbXBsZXRlSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uCiAKIC0gKEJPT0wp
X2NhbkNoYW5nZUZyYW1lTGF5b3V0OihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lSGFuZGxlCiB7Ci0g
ICAgaWYgKGF1dG8qIHdlYkZyYW1lUHJveHkgPSBfcGFnZS0+cHJvY2VzcygpLndlYkZyYW1lKGZy
YW1lSGFuZGxlLl9mcmFtZUlEKSkKKyAgICBpZiAoYXV0byogd2ViRnJhbWVQcm94eSA9IF9wYWdl
LT5wcm9jZXNzKCkud2ViRnJhbWUoV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKGZyYW1l
SGFuZGxlLl9mcmFtZUlEKSkpCiAgICAgICAgIHJldHVybiBfaW1wbC0+Y2FuQ2hhbmdlRnJhbWVM
YXlvdXQoKndlYkZyYW1lUHJveHkpOwogICAgIHJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCmluZGV4IGM0OTli
MThmYTkzODhhNDU4NDMxNDc3MDhkM2QyOTZkZDUzMjkwYTQuLjNkMTVlYzJlZWE3OTExYjJhMzlk
NjQwODc5MzZiZjRlYTYzNDEzYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0luc3BlY3Rvci5tbQpAQCAtMzAsNiArMzAsNyBAQAogI2ltcG9ydCAiV2Vi
UHJvY2Vzc1Byb3h5LmgiCiAjaW1wb3J0ICJfV0tGcmFtZUhhbmRsZUludGVybmFsLmgiCiAjaW1w
b3J0ICJfV0tJbnNwZWN0b3JJbnRlcm5hbC5oIgorI2ltcG9ydCA8V2ViQ29yZS9GcmFtZUlkZW50
aWZpZXIuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogQGltcGxlbWVudGF0aW9uIF9X
S0luc3BlY3RvcgpAQCAtOTksNyArMTAwLDcgQEAgLSAodm9pZClzaG93UmVzb3VyY2VzCiAtICh2
b2lkKXNob3dNYWluUmVzb3VyY2VGb3JGcmFtZTooX1dLRnJhbWVIYW5kbGUgKilmcmFtZQogewog
ICAgIGlmIChhdXRvKiBwYWdlID0gX2luc3BlY3Rvci0+aW5zcGVjdGVkUGFnZSgpKQotICAgICAg
ICBfaW5zcGVjdG9yLT5zaG93TWFpblJlc291cmNlRm9yRnJhbWUocGFnZS0+cHJvY2VzcygpLndl
YkZyYW1lKGZyYW1lLl9mcmFtZUlEKSk7CisgICAgICAgIF9pbnNwZWN0b3ItPnNob3dNYWluUmVz
b3VyY2VGb3JGcmFtZShwYWdlLT5wcm9jZXNzKCkud2ViRnJhbWUoV2ViQ29yZTo6ZnJhbWVJZGVu
dGlmaWVyRnJvbUlEKGZyYW1lLl9mcmFtZUlEKSkpOwogfQogCiAtICh2b2lkKWF0dGFjaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1
dERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11
bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3BwCmluZGV4IDdhY2M2OGJhZWZlYWIwNzNiZjY2MGY2YzBi
Y2U1ZWZiOTdiNWFlNjIuLmQ4NzQ4ZWVhN2ZjNmRhZTE1NDI2YWRhZWE5NjliNzRiZGVlNjNkYzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVk
SW5wdXREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0
aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHAKQEAgLTM4Miw3ICszODIsNyBAQCB2b2lk
IFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlcjo6dHJhbnNpdGlvbklucHV0U291cmNlVG9TdGF0ZShT
aW11bGF0ZWRJbnB1dFNvdXJjZQogICAgIH0KIH0KIAotdm9pZCBTaW11bGF0ZWRJbnB1dERpc3Bh
dGNoZXI6OnJ1bih1aW50NjRfdCBmcmFtZUlELCBWZWN0b3I8U2ltdWxhdGVkSW5wdXRLZXlGcmFt
ZT4mJiBrZXlGcmFtZXMsIEhhc2hTZXQ8UmVmPFNpbXVsYXRlZElucHV0U291cmNlPj4mIGlucHV0
U291cmNlcywgQXV0b21hdGlvbkNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIp
Cit2b2lkIFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlcjo6cnVuKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBWZWN0b3I8U2ltdWxhdGVkSW5wdXRLZXlGcmFtZT4mJiBrZXlGcmFtZXMs
IEhhc2hTZXQ8UmVmPFNpbXVsYXRlZElucHV0U291cmNlPj4mIGlucHV0U291cmNlcywgQXV0b21h
dGlvbkNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJU
KCFpc0FjdGl2ZSgpKTsKICAgICBpZiAoaXNBY3RpdmUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRj
aGVyLmgKaW5kZXggN2Y0MTQxY2UwYTM5ZTU2MDczYzdlYzhhOTY1NjBjYmMzNDhhZGZhNi4uYjA4
OTFhOGYwYjY3NTI5Y2I5YjM5ODZiODc5NTMwNzEyYTRhYWQ0NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlz
cGF0Y2hlci5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKFdFQkRSSVZFUl9BQ1RJT05T
X0FQSSkKIAogI2luY2x1ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlk
ZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRl
IDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgpAQCAtMTMyLDcgKzEz
Myw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9O
UykKICAgICAgICAgdmlydHVhbCB2b2lkIHNpbXVsYXRlS2V5Ym9hcmRJbnRlcmFjdGlvbihXZWJQ
YWdlUHJveHkmLCBLZXlib2FyZEludGVyYWN0aW9uLCBXVEY6OlZhcmlhbnQ8VmlydHVhbEtleSwg
Q2hhcktleT4mJiwgQXV0b21hdGlvbkNvbXBsZXRpb25IYW5kbGVyJiYpID0gMDsKICNlbmRpZgot
ICAgICAgICB2aXJ0dWFsIHZvaWQgdmlld3BvcnRJblZpZXdDZW50ZXJQb2ludE9mRWxlbWVudChX
ZWJQYWdlUHJveHkmLCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG5vZGVIYW5kbGUs
IEZ1bmN0aW9uPHZvaWQgKE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiwgT3B0aW9uYWw8QXV0
b21hdGlvbkNvbW1hbmRFcnJvcj4pPiYmKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCB2aWV3
cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVtZW50KFdlYlBhZ2VQcm94eSYsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBGdW5jdGlvbjx2b2lkIChP
cHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIE9wdGlvbmFsPEF1dG9tYXRpb25Db21tYW5kRXJy
b3I+KT4mJikgPSAwOwogICAgIH07CiAKICAgICBzdGF0aWMgUmVmPFNpbXVsYXRlZElucHV0RGlz
cGF0Y2hlcj4gY3JlYXRlKFdlYlBhZ2VQcm94eSYgcGFnZSwgU2ltdWxhdGVkSW5wdXREaXNwYXRj
aGVyOjpDbGllbnQmIGNsaWVudCkKQEAgLTE0Miw3ICsxNDMsNyBAQCBwdWJsaWM6CiAKICAgICB+
U2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyKCk7CiAKLSAgICB2b2lkIHJ1bih1aW50NjRfdCBmcmFt
ZUlELCBWZWN0b3I8U2ltdWxhdGVkSW5wdXRLZXlGcmFtZT4mJiBrZXlGcmFtZXMsIEhhc2hTZXQ8
UmVmPFNpbXVsYXRlZElucHV0U291cmNlPj4mIGlucHV0U291cmNlcywgQXV0b21hdGlvbkNvbXBs
ZXRpb25IYW5kbGVyJiYpOworICAgIHZvaWQgcnVuKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
VmVjdG9yPFNpbXVsYXRlZElucHV0S2V5RnJhbWU+JiYga2V5RnJhbWVzLCBIYXNoU2V0PFJlZjxT
aW11bGF0ZWRJbnB1dFNvdXJjZT4+JiBpbnB1dFNvdXJjZXMsIEF1dG9tYXRpb25Db21wbGV0aW9u
SGFuZGxlciYmKTsKICAgICB2b2lkIGNhbmNlbCgpOwogCiAgICAgYm9vbCBpc0FjdGl2ZSgpIGNv
bnN0OwpAQCAtMTY1LDcgKzE2Niw3IEBAIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5JiBtX3Bh
Z2U7CiAgICAgU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyOjpDbGllbnQmIG1fY2xpZW50OwogCi0g
ICAgT3B0aW9uYWw8dWludDY0X3Q+IG1fZnJhbWVJRDsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXI+IG1fZnJhbWVJRDsKICAgICBBdXRvbWF0aW9uQ29tcGxldGlvbkhhbmRs
ZXIgbV9ydW5Db21wbGV0aW9uSGFuZGxlcjsKICAgICBBdXRvbWF0aW9uQ29tcGxldGlvbkhhbmRs
ZXIgbV9rZXlGcmFtZVRyYW5zaXRpb25Db21wbGV0aW9uSGFuZGxlcjsKICAgICBSdW5Mb29wOjpU
aW1lcjxTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXI+IG1fa2V5RnJhbWVUcmFuc2l0aW9uRHVyYXRp
b25UaW1lcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24v
V2ViQXV0b21hdGlvblNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21h
dGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKaW5kZXggY2NlNWM0ODE3YTgwNDkxN2NkYzE5
OWMxYjAxNjBlMjU2ZTliZTI5Ny4uNjhiZGFkYzgyNzE3NDM3MjM3NDRlZDVjOTI4ZjEwYTBkZjlm
MmNkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJB
dXRvbWF0aW9uU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21h
dGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKQEAgLTIwMiwxMCArMjAyLDEwIEBAIFN0cmlu
ZyBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6aGFuZGxlRm9yV2ViUGFnZVByb3h5KGNvbnN0IFdlYlBh
Z2VQcm94eSYgd2ViUGFnZVByCiAgICAgcmV0dXJuIGhhbmRsZTsKIH0KIAotT3B0aW9uYWw8dWlu
dDY0X3Q+IFdlYkF1dG9tYXRpb25TZXNzaW9uOjp3ZWJGcmFtZUlERm9ySGFuZGxlKGNvbnN0IFN0
cmluZyYgaGFuZGxlKQorT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBXZWJBdXRvbWF0aW9uU2Vz
c2lvbjo6d2ViRnJhbWVJREZvckhhbmRsZShjb25zdCBTdHJpbmcmIGhhbmRsZSkKIHsKICAgICBp
ZiAoaGFuZGxlLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBG
cmFtZUlkZW50aWZpZXIgeyB9OyAvLyBUaGlzIGlzIGV4cGxpY2l0bHkgemVybzsgc2VlIHdlYmtp
dC5vcmcvYi8xNTk3NzcuCiAKICAgICBhdXRvIGl0ZXIgPSBtX2hhbmRsZVdlYkZyYW1lTWFwLmZp
bmQoaGFuZGxlKTsKICAgICBpZiAoaXRlciA9PSBtX2hhbmRsZVdlYkZyYW1lTWFwLmVuZCgpKQpA
QCAtMjE0LDcgKzIxNCw3IEBAIE9wdGlvbmFsPHVpbnQ2NF90PiBXZWJBdXRvbWF0aW9uU2Vzc2lv
bjo6d2ViRnJhbWVJREZvckhhbmRsZShjb25zdCBTdHJpbmcmIGhhbmRsCiAgICAgcmV0dXJuIGl0
ZXItPnZhbHVlOwogfQogCi1TdHJpbmcgV2ViQXV0b21hdGlvblNlc3Npb246OmhhbmRsZUZvcldl
YkZyYW1lSUQodWludDY0X3QgZnJhbWVJRCkKK1N0cmluZyBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6
aGFuZGxlRm9yV2ViRnJhbWVJRChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBpZiAo
IWZyYW1lSUQpCiAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwpAQCAtMzYyLDcgKzM2Miw3
IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnN3aXRjaFRvQnJvd3NpbmdDb250ZXh0KGNv
bnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0CiAgICAgaWYgKCFwYWdlKQogICAgICAgICBBU1lO
Q19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5kb3dOb3RGb3VuZCk7CiAKLSAgICBPcHRp
b25hbDx1aW50NjRfdD4gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUob3B0aW9uYWxGcmFt
ZUhhbmRsZSA/ICpvcHRpb25hbEZyYW1lSGFuZGxlIDogZW1wdHlTdHJpbmcoKSk7CisgICAgYXV0
byBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShvcHRpb25hbEZyYW1lSGFuZGxlID8gKm9w
dGlvbmFsRnJhbWVIYW5kbGUgOiBlbXB0eVN0cmluZygpKTsKICAgICBpZiAoIWZyYW1lSUQpCiAg
ICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKEZyYW1lTm90Rm91bmQpOwog
CkBAIC00NTksNyArNDU5LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2FpdEZvck5h
dmlnYXRpb25Ub0NvbXBsZXRlKGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb24KICAgICAgICAgJiYg
cGFnZS0+cGFnZUxvYWRTdGF0ZSgpLmlzTG9hZGluZygpICYmIG1fY2xpZW50LT5pc1Nob3dpbmdK
YXZhU2NyaXB0RGlhbG9nT25QYWdlKCp0aGlzLCAqcGFnZSk7CiAKICAgICBpZiAob3B0aW9uYWxG
cmFtZUhhbmRsZSAmJiAhb3B0aW9uYWxGcmFtZUhhbmRsZS0+aXNFbXB0eSgpKSB7Ci0gICAgICAg
IE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZSgqb3B0aW9u
YWxGcmFtZUhhbmRsZSk7CisgICAgICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5k
bGUoKm9wdGlvbmFsRnJhbWVIYW5kbGUpOwogICAgICAgICBpZiAoIWZyYW1lSUQpCiAgICAgICAg
ICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKICAg
ICAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBwYWdlLT5wcm9jZXNzKCkud2ViRnJhbWUoZnJh
bWVJRC52YWx1ZSgpKTsKQEAgLTUzNyw3ICs1MzcsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNz
aW9uOjpyZXNwb25kVG9QZW5kaW5nUGFnZU5hdmlnYXRpb25DYWxsYmFja3NXaXRoVGltZW91dChI
YQogICAgIH0KIH0KIAotc3RhdGljIFdlYlBhZ2VQcm94eSogZmluZFBhZ2VGb3JGcmFtZUlEKGNv
bnN0IFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgdWludDY0X3QgZnJhbWVJRCkKK3N0YXRp
YyBXZWJQYWdlUHJveHkqIGZpbmRQYWdlRm9yRnJhbWVJRChjb25zdCBXZWJQcm9jZXNzUG9vbCYg
cHJvY2Vzc1Bvb2wsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIGZvciAoYXV0byYg
cHJvY2VzcyA6IHByb2Nlc3NQb29sLnByb2Nlc3NlcygpKSB7CiAgICAgICAgIGlmIChhdXRvKiBm
cmFtZSA9IHByb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpKQpAQCAtNTQ2LDcgKzU0Niw3IEBAIHN0
YXRpYyBXZWJQYWdlUHJveHkqIGZpbmRQYWdlRm9yRnJhbWVJRChjb25zdCBXZWJQcm9jZXNzUG9v
bCYgcHJvY2Vzc1Bvb2wsIHVpbnQ2CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLXZvaWQgV2Vi
QXV0b21hdGlvblNlc3Npb246OnJlc3BvbmRUb1BlbmRpbmdGcmFtZU5hdmlnYXRpb25DYWxsYmFj
a3NXaXRoVGltZW91dChIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5k
RGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4mIG1hcCkKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b246OnJlc3BvbmRUb1BlbmRpbmdGcmFtZU5hdmlnYXRpb25DYWxsYmFja3NXaXRoVGltZW91dChI
YXNoTWFwPEZyYW1lSWRlbnRpZmllciwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNo
ZXI6OkNhbGxiYWNrQmFzZT4+JiBtYXApCiB7CiAgICAgSW5zcGVjdG9yOjpFcnJvclN0cmluZyB0
aW1lb3V0RXJyb3IgPSBTVFJJTkdfRk9SX1BSRURFRklORURfRVJST1JfTkFNRShUaW1lb3V0KTsK
ICAgICBmb3IgKGF1dG8gaWQgOiBjb3B5VG9WZWN0b3IobWFwLmtleXMoKSkpIHsKQEAgLTkyNCw3
ICs5MjQsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpldmFsdWF0ZUphdmFTY3JpcHRG
dW5jdGlvbihjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udAogICAgIGlmICghcGFnZSkKICAgICAg
ICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwogCi0g
ICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9wdGlv
bmFsRnJhbWVIYW5kbGUgPyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCkpOwor
ICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUob3B0aW9uYWxGcmFtZUhhbmRs
ZSA/ICpvcHRpb25hbEZyYW1lSGFuZGxlIDogZW1wdHlTdHJpbmcoKSk7CiAgICAgaWYgKCFmcmFt
ZUlEKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZv
dW5kKTsKIApAQCAtOTY3LDExICs5NjcsMTEgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6
cmVzb2x2ZUNoaWxkRnJhbWVIYW5kbGUoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHQKICAg
ICBpZiAoIXBhZ2UpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdp
bmRvd05vdEZvdW5kKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEID0gd2ViRnJh
bWVJREZvckhhbmRsZShvcHRpb25hbEZyYW1lSGFuZGxlID8gKm9wdGlvbmFsRnJhbWVIYW5kbGUg
OiBlbXB0eVN0cmluZygpKTsKKyAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxl
KG9wdGlvbmFsRnJhbWVIYW5kbGUgPyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5n
KCkpOwogICAgIGlmICghZnJhbWVJRCkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklO
RURfRVJST1IoRnJhbWVOb3RGb3VuZCk7CiAKLSAgICBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZv
aWQoT3B0aW9uYWw8U3RyaW5nPiwgdWludDY0X3QpPiBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhbGxiYWNrID0gY2FsbGJhY2suY29w
eVJlZigpXShPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgdWludDY0X3QgZnJhbWVJRCkgbXV0
YWJsZSB7CisgICAgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4s
IEZyYW1lSWRlbnRpZmllcik+IGNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FsbGJhY2sgPSBjYWxsYmFjay5jb3B5UmVmKCldKE9wdGlv
bmFsPFN0cmluZz4gZXJyb3JUeXBlLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkgbXV0YWJsZSB7
CiAgICAgICAgIGlmIChlcnJvclR5cGUpIHsKICAgICAgICAgICAgIGNhbGxiYWNrLT5zZW5kRmFp
bHVyZShTVFJJTkdfRk9SX1BSRURFRklORURfRVJST1JfTUVTU0FHRSgqZXJyb3JUeXBlKSk7CiAg
ICAgICAgICAgICByZXR1cm47CkBAIC0xMDA0LDExICsxMDA0LDExIEBAIHZvaWQgV2ViQXV0b21h
dGlvblNlc3Npb246OnJlc29sdmVQYXJlbnRGcmFtZUhhbmRsZShjb25zdCBTdHJpbmcmIGJyb3dz
aW5nQ29udGV4CiAgICAgaWYgKCFwYWdlKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVG
SU5FRF9FUlJPUihXaW5kb3dOb3RGb3VuZCk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJh
bWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUoZnJhbWVIYW5kbGUpOworICAgIGF1dG8gZnJhbWVJ
RCA9IHdlYkZyYW1lSURGb3JIYW5kbGUoZnJhbWVIYW5kbGUpOwogICAgIGlmICghZnJhbWVJRCkK
ICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoRnJhbWVOb3RGb3VuZCk7
CiAKLSAgICBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWlu
dDY0X3QpPiBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyksIGNhbGxiYWNrID0gY2FsbGJhY2suY29weVJlZigpXShPcHRpb25hbDxTdHJpbmc+
IGVycm9yVHlwZSwgdWludDY0X3QgZnJhbWVJRCkgbXV0YWJsZSB7CisgICAgV1RGOjpDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIEZyYW1lSWRlbnRpZmllcik+IGNvbXBs
ZXRpb25IYW5kbGVyID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2Fs
bGJhY2sgPSBjYWxsYmFjay5jb3B5UmVmKCldKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChlcnJvclR5cGUp
IHsKICAgICAgICAgICAgIGNhbGxiYWNrLT5zZW5kRmFpbHVyZShTVFJJTkdfRk9SX1BSRURFRklO
RURfRVJST1JfTUVTU0FHRSgqZXJyb3JUeXBlKSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0x
MDM1LDcgKzEwMzUsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpjb21wdXRlRWxlbWVu
dExheW91dChjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbgogICAgIGlmICghcGFnZSkK
ICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQp
OwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxl
KGZyYW1lSGFuZGxlKTsKKyAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKGZy
YW1lSGFuZGxlKTsKICAgICBpZiAoIWZyYW1lSUQpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9Q
UkVERUZJTkVEX0VSUk9SKEZyYW1lTm90Rm91bmQpOwogCkBAIC0xMDg3LDcgKzEwODcsNyBAQCB2
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpzZWxlY3RPcHRpb25FbGVtZW50KGNvbnN0IFN0cmlu
ZyYgYnJvd3NpbmdDb250ZXh0SGFuZAogICAgIGlmICghcGFnZSkKICAgICAgICAgQVNZTkNfRkFJ
TF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwogCi0gICAgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKGZyYW1lSGFuZGxlKTsKKyAg
ICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKGZyYW1lSGFuZGxlKTsKICAgICBp
ZiAoIWZyYW1lSUQpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKEZy
YW1lTm90Rm91bmQpOwogCkBAIC0xMjcxLDcgKzEyNzEsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25T
ZXNzaW9uOjpnZXRBbGxDb29raWVzKGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxl
LCBSZQogICAgIH07CiAKICAgICAvLyBBbHdheXMgc2VuZCB0aGUgbWFpbiBmcmFtZSBJRCBhcyAw
IHNvIGl0IGlzIHJlc29sdmVkIG9uIHRoZSBXZWJQcm9jZXNzIHNpZGUuIFRoaXMgYXZvaWRzIGEg
cmFjZSB3aGVuIHBhZ2UtPm1haW5GcmFtZSgpIGlzIG51bGwgc3RpbGwuCi0gICAgY29uc3QgdWlu
dDY0X3QgbWFpbkZyYW1lSUQgPSAwOworICAgIGNvbnN0IEZyYW1lSWRlbnRpZmllciBtYWluRnJh
bWVJRDsKICAgICBwYWdlLT5wcm9jZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpX
ZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpHZXRDb29raWVzRm9yRnJhbWUocGFnZS0+cGFnZUlE
KCksIG1haW5GcmFtZUlEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCkBAIC0x
MjkxLDcgKzEyOTEsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpkZWxldGVTaW5nbGVD
b29raWUoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kbAogICAgIH07CiAKICAgICAv
LyBBbHdheXMgc2VuZCB0aGUgbWFpbiBmcmFtZSBJRCBhcyAwIHNvIGl0IGlzIHJlc29sdmVkIG9u
IHRoZSBXZWJQcm9jZXNzIHNpZGUuIFRoaXMgYXZvaWRzIGEgcmFjZSB3aGVuIHBhZ2UtPm1haW5G
cmFtZSgpIGlzIG51bGwgc3RpbGwuCi0gICAgY29uc3QgdWludDY0X3QgbWFpbkZyYW1lSUQgPSAw
OworICAgIGNvbnN0IEZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRDsKICAgICBwYWdlLT5wcm9j
ZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5OjpEZWxldGVDb29raWUocGFnZS0+cGFnZUlEKCksIG1haW5GcmFtZUlELCBjb29raWVOYW1l
KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCkBAIC0xNDU3LDcgKzE0NTcsNyBA
QCBTaW11bGF0ZWRJbnB1dFNvdXJjZSogV2ViQXV0b21hdGlvblNlc3Npb246OmlucHV0U291cmNl
Rm9yVHlwZShTaW11bGF0ZWRJbnB1dFNvdQogfQogCiAvLyBNQVJLOiBTaW11bGF0ZWRJbnB1dERp
c3BhdGNoZXI6OkNsaWVudCBBUEkKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnZpZXdwb3J0
SW5WaWV3Q2VudGVyUG9pbnRPZkVsZW1lbnQoV2ViUGFnZVByb3h5JiBwYWdlLCB1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBTdHJpbmcmIG5vZGVIYW5kbGUsIEZ1bmN0aW9uPHZvaWQgKE9wdGlvbmFs
PFdlYkNvcmU6OkludFBvaW50PiwgT3B0aW9uYWw8QXV0b21hdGlvbkNvbW1hbmRFcnJvcj4pPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6dmlld3BvcnRJ
blZpZXdDZW50ZXJQb2ludE9mRWxlbWVudChXZWJQYWdlUHJveHkmIHBhZ2UsIEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG5vZGVIYW5kbGUsIEZ1bmN0aW9uPHZvaWQgKE9w
dGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiwgT3B0aW9uYWw8QXV0b21hdGlvbkNvbW1hbmRFcnJv
cj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8
dm9pZChPcHRpb25hbDxTdHJpbmc+LCBXZWJDb3JlOjpJbnRSZWN0LCBPcHRpb25hbDxXZWJDb3Jl
OjpJbnRQb2ludD4sIGJvb2wpPiBkaWRDb21wdXRlRWxlbWVudExheW91dEhhbmRsZXIgPSBbY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oT3B0aW9uYWw8U3Ry
aW5nPiBlcnJvclR5cGUsIFdlYkNvcmU6OkludFJlY3QsIE9wdGlvbmFsPFdlYkNvcmU6OkludFBv
aW50PiBpblZpZXdDZW50ZXJQb2ludCwgYm9vbCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChlcnJv
clR5cGUpIHsKQEAgLTE5NzYsNyArMTk3Niw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246
OnRha2VTY3JlZW5zaG90KGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBTdHJpbmcqIG9wCiAg
ICAgaWYgKCFwYWdlKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihX
aW5kb3dOb3RGb3VuZCk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCA9IHdlYkZy
YW1lSURGb3JIYW5kbGUob3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpvcHRpb25hbEZyYW1lSGFuZGxl
IDogZW1wdHlTdHJpbmcoKSk7CisgICAgYXV0byBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRs
ZShvcHRpb25hbEZyYW1lSGFuZGxlID8gKm9wdGlvbmFsRnJhbWVIYW5kbGUgOiBlbXB0eVN0cmlu
ZygpKTsKICAgICBpZiAoIWZyYW1lSUQpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJ
TkVEX0VSUk9SKEZyYW1lTm90Rm91bmQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmgKaW5kZXggZjM5YzA2
MWI1Nzg5MmE5MjQ4ZmQwOWRmZmNmYTdiOGM1MGEwNzUzNy4uMTIyMmMyODQyMmJmOTZjNmNjNGIx
YTVkZmNhNDIyNzBmZDAyM2FhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaApAQCAtMzQsNiArMzQsNyBA
QAogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgogI2luY2x1ZGUgIlNpbXVsYXRlZElucHV0
RGlzcGF0Y2hlci5oIgogI2luY2x1ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9G
cmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAj
aW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KQEAgLTE1Miw3ICsxNTMsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdFQkRSSVZFUl9LRVlC
T0FSRF9JTlRFUkFDVElPTlMpCiAgICAgdm9pZCBzaW11bGF0ZUtleWJvYXJkSW50ZXJhY3Rpb24o
V2ViUGFnZVByb3h5JiwgS2V5Ym9hcmRJbnRlcmFjdGlvbiwgV1RGOjpWYXJpYW50PFZpcnR1YWxL
ZXksIENoYXJLZXk+JiYsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciYmKSBmaW5hbDsKICNl
bmRpZgotICAgIHZvaWQgdmlld3BvcnRJblZpZXdDZW50ZXJQb2ludE9mRWxlbWVudChXZWJQYWdl
UHJveHkmLCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG5vZGVIYW5kbGUsIEZ1bmN0
aW9uPHZvaWQgKE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiwgT3B0aW9uYWw8QXV0b21hdGlv
bkNvbW1hbmRFcnJvcj4pPiYmKSBmaW5hbDsKKyAgICB2b2lkIHZpZXdwb3J0SW5WaWV3Q2VudGVy
UG9pbnRPZkVsZW1lbnQoV2ViUGFnZVByb3h5JiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIG5vZGVIYW5kbGUsIEZ1bmN0aW9uPHZvaWQgKE9wdGlvbmFsPFdlYkNvcmU6
OkludFBvaW50PiwgT3B0aW9uYWw8QXV0b21hdGlvbkNvbW1hbmRFcnJvcj4pPiYmKSBmaW5hbDsK
IAogI2VuZGlmIC8vIEVOQUJMRShXRUJEUklWRVJfQUNUSU9OU19BUEkpCiAKQEAgLTIyMCwxNCAr
MjIxLDE0IEBAIHByaXZhdGU6CiAgICAgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b246OkJyb3dzaW5nQ29udGV4dD4gYnVpbGRCcm93c2luZ0NvbnRleHRGb3JQYWdlKFdlYlBhZ2VQ
cm94eSYsIFdlYkNvcmU6OkZsb2F0UmVjdCB3aW5kb3dGcmFtZSk7CiAgICAgdm9pZCBnZXROZXh0
Q29udGV4dChSZWY8V2ViQXV0b21hdGlvblNlc3Npb24+JiYsIFZlY3RvcjxSZWY8V2ViUGFnZVBy
b3h5Pj4mJiwgUmVmPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bjo6QnJvd3NpbmdDb250ZXh0Pj4sIFJlZjxXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6R2V0QnJvd3Np
bmdDb250ZXh0c0NhbGxiYWNrPiYmKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiB3ZWJGcmFt
ZUlERm9ySGFuZGxlKGNvbnN0IFN0cmluZyYpOwotICAgIFN0cmluZyBoYW5kbGVGb3JXZWJGcmFt
ZUlEKHVpbnQ2NF90IGZyYW1lSUQpOworICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRp
Zmllcj4gd2ViRnJhbWVJREZvckhhbmRsZShjb25zdCBTdHJpbmcmKTsKKyAgICBTdHJpbmcgaGFu
ZGxlRm9yV2ViRnJhbWVJRChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogICAgIFN0cmluZyBo
YW5kbGVGb3JXZWJGcmFtZVByb3h5KGNvbnN0IFdlYkZyYW1lUHJveHkmKTsKIAogICAgIHZvaWQg
d2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRlT25QYWdlKFdlYlBhZ2VQcm94eSYsIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlBhZ2VMb2FkU3RyYXRlZ3ksIFNlY29uZHMsIFJlZjxJ
bnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+JiYpOwogICAgIHZvaWQg
d2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRlT25GcmFtZShXZWJGcmFtZVByb3h5JiwgSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6UGFnZUxvYWRTdHJhdGVneSwgU2Vjb25kcywgUmVm
PEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4mJik7CiAgICAgdm9p
ZCByZXNwb25kVG9QZW5kaW5nUGFnZU5hdmlnYXRpb25DYWxsYmFja3NXaXRoVGltZW91dChIYXNo
TWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlz
cGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4mKTsKLSAgICB2b2lkIHJlc3BvbmRUb1BlbmRpbmdGcmFt
ZU5hdmlnYXRpb25DYWxsYmFja3NXaXRoVGltZW91dChIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8
SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4mKTsKKyAgICB2b2lk
IHJlc3BvbmRUb1BlbmRpbmdGcmFtZU5hdmlnYXRpb25DYWxsYmFja3NXaXRoVGltZW91dChIYXNo
TWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERp
c3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+Jik7CiAgICAgdm9pZCBsb2FkVGltZXJGaXJlZCgpOwog
CiAgICAgdm9pZCBleGl0RnVsbHNjcmVlbldpbmRvd0ZvclBhZ2UoV2ViUGFnZVByb3h5JiwgV1RG
OjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpAQCAtMjg0LDEzICsyODUsMTMgQEAgcHJp
dmF0ZToKICAgICBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBTdHJpbmc+IG1fd2Vi
UGFnZUhhbmRsZU1hcDsKICAgICBIYXNoTWFwPFN0cmluZywgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXI+IG1faGFuZGxlV2ViUGFnZU1hcDsKIAotICAgIEhhc2hNYXA8dWludDY0X3QsIFN0cmluZz4g
bV93ZWJGcmFtZUhhbmRsZU1hcDsKLSAgICBIYXNoTWFwPFN0cmluZywgdWludDY0X3Q+IG1faGFu
ZGxlV2ViRnJhbWVNYXA7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFN0
cmluZz4gbV93ZWJGcmFtZUhhbmRsZU1hcDsKKyAgICBIYXNoTWFwPFN0cmluZywgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyPiBtX2hhbmRsZVdlYkZyYW1lTWFwOwogCiAgICAgSGFzaE1hcDxXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6
OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGluZ05vcm1hbE5hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4
dENhbGxiYWNrc1BlclBhZ2U7CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
UmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVu
ZGluZ0VhZ2VyTmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyUGFnZTsKLSAg
ICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6
Q2FsbGJhY2tCYXNlPj4gbV9wZW5kaW5nTm9ybWFsTmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0
Q2FsbGJhY2tzUGVyRnJhbWU7Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEluc3BlY3Rv
cjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGluZ0VhZ2VyTmF2aWdh
dGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyRnJhbWU7CisgICAgSGFzaE1hcDxXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVy
OjpDYWxsYmFja0Jhc2U+PiBtX3BlbmRpbmdOb3JtYWxOYXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRl
eHRDYWxsYmFja3NQZXJGcmFtZTsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1f
cGVuZGluZ0VhZ2VyTmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyRnJhbWU7
CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgUmVmUHRyPEluc3BlY3Rvcjo6
QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGluZ0luc3BlY3RvckNhbGxi
YWNrc1BlclBhZ2U7CiAjaWYgRU5BQkxFKFdFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMp
CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgRnVuY3Rpb248dm9pZChPcHRp
b25hbDxBdXRvbWF0aW9uQ29tbWFuZEVycm9yPik+PiBtX3BlbmRpbmdLZXlib2FyZEV2ZW50c0Zs
dXNoZWRDYWxsYmFja3NQZXJQYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJ
RGVsZWdhdGUubW0KaW5kZXggYTUxYTIyMzYyMzg0MTUxYWIxMWQ0ODk0MzY5ZjhhMTg1ODAwNjdk
YS4uMzAyZjY4MjI4MmJjYzdlZTM4ZDNmNjcyN2Q2ZDIzZjg0YjI4OWRhOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBAIC0xMDMyLDcgKzEwMzIsNyBA
QCB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JP
cmlnaW4oV2ViUGFnZVByb3h5JiBwYWdlLAogICAgIFVSTCByZXF1ZXN0RnJhbWVVUkwgeyBVUkwo
KSwgZnJhbWUudXJsKCkgfTsKICAgICBVUkwgbWFpbkZyYW1lVVJMIHsgVVJMKCksIG1haW5GcmFt
ZS0+dXJsKCkgfTsKIAotICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93
ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9y
VVJMOnJlcXVlc3RGcmFtZVVSTCBtYWluRnJhbWVVUkw6bWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRp
ZmllcjpmcmFtZS5mcmFtZUlEKCkgZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQo
KV07CisgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91
aURlbGVnYXRlLm1fd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6cmVxdWVz
dEZyYW1lVVJMIG1haW5GcmFtZVVSTDptYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOmZyYW1l
LmZyYW1lSUQoKS50b1VJbnQ2NCgpIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0
KCldOwogfQogCiB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjptZWRpYUNhcHR1cmVTdGF0ZURp
ZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1JlbG9hZEZyYW1lRXJy
b3JSZWNvdmVyeUF0dGVtcHRlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dL
UmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyLm1tCmluZGV4IDg0ZDIwYzRjZThiMWYw
MDE3ZTFiYTc3YjlkMGRmNGYxMDEzOGE5MDAuLjljNDA5MmVmZDQzNmQwMjI0MGI4MDZhMmMyNDBm
NjQzNmQyZWRiNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dL
UmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dLUmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyLm1tCkBA
IC0zMiw2ICszMiw3IEBACiAjaW1wb3J0ICJXZWJGcmFtZVByb3h5LmgiCiAjaW1wb3J0ICJXZWJQ
YWdlUHJveHkuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgorI2ltcG9ydCA8V2ViQ29y
ZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQg
PHd0Zi9XZWFrT2JqQ1B0ci5oPgogCkBAIC02Miw4ICs2Myw3IEBAIC0gKEJPT0wpYXR0ZW1wdFJl
Y292ZXJ5CiAgICAgaWYgKCF3ZWJWaWV3KQogICAgICAgICByZXR1cm4gTk87CiAKLSAgICB1aW50
NjRfdCBmcmFtZUlEID0gW19mcmFtZUhhbmRsZSBfZnJhbWVJRF07Ci0gICAgV2ViS2l0OjpXZWJG
cmFtZVByb3h5KiB3ZWJGcmFtZVByb3h5ID0gd2ViVmlldy0+X3BhZ2UtPnByb2Nlc3MoKS53ZWJG
cmFtZShmcmFtZUlEKTsKKyAgICBXZWJLaXQ6OldlYkZyYW1lUHJveHkqIHdlYkZyYW1lUHJveHkg
PSB3ZWJWaWV3LT5fcGFnZS0+cHJvY2VzcygpLndlYkZyYW1lKFdlYkNvcmU6OmZyYW1lSWRlbnRp
ZmllckZyb21JRChbX2ZyYW1lSGFuZGxlIF9mcmFtZUlEXSkpOwogICAgIGlmICghd2ViRnJhbWVQ
cm94eSkKICAgICAgICAgcmV0dXJuIE5POwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCmluZGV4IGExYWY5OGQyMTA5M2U1YWVlZThi
M2Q0ODBiODE2MWZlMjZlOWVhNTEuLmQ5NjEzOTE4Zjc1ZmE1ZThkZjU4MzRmMjUyNDQzOGUwNmU5
ODZiOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQ
cm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQ
cm94eUNvY29hLm1tCkBAIC0xMDEsMTIgKzEwMSwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6YmVn
aW5TYWZlQnJvd3NpbmdDaGVjayhjb25zdCBVUkwmIHVybCwgYm9vbCBmb3JNYWluRnJhbWVOYXZp
ZwogfQogCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQotdm9pZCBXZWJQYWdlUHJveHk6
OmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250ZW50
RmlsdGVyVW5ibG9ja0hhbmRsZXImIHVuYmxvY2tIYW5kbGVyLCB1aW50NjRfdCBmcmFtZUlEKQor
dm9pZCBXZWJQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShjb25z
dCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIHVuYmxvY2tIYW5kbGVyLCBG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBjb250ZW50RmlsdGVyRGlkQmxvY2tMb2Fk
Rm9yRnJhbWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgdW5ibG9ja0hhbmRsZXIsIGZyYW1l
SUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZv
ckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgY29uc3QgV2ViQ29y
ZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiB1bmJsb2NrSGFuZGxlciwgdWludDY0X3Qg
ZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9y
RnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBjb25zdCBXZWJDb3Jl
OjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIHVuYmxvY2tIYW5kbGVyLCBGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCkKIHsKICAgICBpZiAoV2ViRnJhbWVQcm94eSogZnJhbWUgPSBwcm9jZXNz
LT53ZWJGcmFtZShmcmFtZUlEKSkKICAgICAgICAgZnJhbWUtPmNvbnRlbnRGaWx0ZXJEaWRCbG9j
a0xvYWQodW5ibG9ja0hhbmRsZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggOTRmYWY2YjlkZTI2MjAx
ZDg0ZDI2ZmY4MzkzM2Y4MjI5YzA1ZDZiOS4uOTFlY2UxZjBkYWZmZTNlYTYzYWRiYzBkOTFlYWM0
ZDE4MTExMzA5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0zMTIsNyArMzEyLDcgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyhj
b25zdCBJUEM6OkF0dGEKICNlbmRpZgogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVp
bnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYgY29yZUNo
YWxsZW5nZSwgdWludDY0X3QgY2hhbGxlbmdlSUQpCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShQYWdlSWRlbnRpZmllciBwYWdlSUQs
IEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYmIGNvcmVDaGFsbGVuZ2UsIHVpbnQ2NF90IGNoYWxsZW5nZUlEKQogewogI2lmIEVOQUJMRShT
RVJWSUNFX1dPUktFUikKICAgICBpZiAoYXV0byogc2VydmljZVdvcmtlclByb2Nlc3NQcm94eSA9
IG1fcHJvY2Vzc1Bvb2wuc2VydmljZVdvcmtlclByb2Nlc3NQcm94eUZyb21QYWdlSUQocGFnZUlE
KSkgewpAQCAtNzM3LDcgKzczNyw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0R3Jh
bmRmYXRoZXJlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzCiAgICAgc2Vu
ZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0R3JhbmRmYXRoZXJl
ZChzZXNzaW9uSUQsIHJlc291cmNlRG9tYWluLCBpc0dyYW5kZmF0aGVyZWQpLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmVxdWVz
dFN0b3JhZ2VBY2Nlc3NDb25maXJtKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJh
bWVJRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnJlcXVl
c3RTdG9yYWdlQWNjZXNzQ29uZmlybShQYWdlSWRlbnRpZmllciBwYWdlSUQsIEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQYWdlUHJveHkqIHBh
Z2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmgKaW5kZXggNDMzNTQ1YzBlMzNmYWFlZWQ5ZGViYjM0ZjZiMjBjZmNhZTVlOTVjOC4u
NDBmODFkZTliNDdmMTkyMjE5MDI2YTZlOGEwN2IyYTVlMmQ2YTk5MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAg
LTgyLDcgKzgyLDYgQEAgcHVibGljOgogICAgIHVzaW5nIE5hdmlnYXRlZFRvRG9tYWluID0gV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNpbmcgRG9tYWluSW5OZWVkT2ZTdG9yYWdl
QWNjZXNzID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNpbmcgT3BlbmVyRG9t
YWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47Ci0gICAgdXNpbmcgRnJhbWVJRCA9IHVp
bnQ2NF90OwogCiAgICAgZXhwbGljaXQgTmV0d29ya1Byb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9v
bCYpOwogICAgIH5OZXR3b3JrUHJvY2Vzc1Byb3h5KCk7CkBAIC0xMzAsNyArMTI5LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoUEFMOjpTZXNz
aW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKICAgICB2b2lkIHNldFZlcnlQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwog
ICAgIHZvaWQgZ2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4gZG9tYWlucyk+JiYpOwotICAgIHZvaWQg
cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBGcmFt
ZUlELCBjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vz
c0NvbmZpcm0oV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgcmVzZXRQYXJhbWV0ZXJzVG9EZWZh
dWx0VmFsdWVzKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwog
ICAgIHZvaWQgc2NoZWR1bGVDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudChQQUw6OlNlc3Npb25J
RCwgU2hvdWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwogICAgIHZvaWQgc2NoZWR1bGVDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudChQQUw6OlNl
c3Npb25JRCwgT3B0aW9uYWw8V2FsbFRpbWU+IG1vZGlmaWVkU2luY2UsIFNob3VsZEdyYW5kZmF0
aGVyU3RhdGlzdGljcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTIxMyw3ICsy
MTIsNyBAQCBwcml2YXRlOgogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKICAgICB2b2lkIGRpZFJl
Y2VpdmVOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKTsKICAgICB2b2lkIGRpZENyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
KGNvbnN0IElQQzo6QXR0YWNobWVudCYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBX
ZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYmLCB1aW50NjRfdCBjaGFsbGVuZ2VJRCk7
CisgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UmJiwgdWludDY0X3QgY2hhbGxlbmdlSUQpOwogICAgIHZvaWQgZGlkRmV0
Y2hXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBXZWJzaXRlRGF0YSYpOwog
ICAgIHZvaWQgZGlkRGVsZXRlV2Vic2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAg
dm9pZCBkaWREZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJRCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMTFkOGM1ZGVlMWRiYTgxZjhmNjNm
N2Q5NDhlZjY2MTYxOTgxZDEzNC4uYmZhZjlmMDQ5NmU1NmE5YjkzMWVmNmZmNzc1MWMzYWNmNWQx
MzliYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjMsNyArMjMsNyBAQAog
bWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgRGlk
Q3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoSVBDOjpBdHRhY2htZW50IGNvbm5l
Y3Rpb25JZGVudGlmaWVyKQogCi0gICAgRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29y
ZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UgY2hhbGxlbmdlLCB1aW50NjRfdCBjaGFsbGVuZ2VJ
RCkKKyAgICBEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29y
ZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UgY2hhbGxlbmdlLCB1aW50NjRfdCBjaGFsbGVuZ2VJ
RCkKIAogICAgIERpZEZldGNoV2Vic2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCwgc3RydWN0
IFdlYktpdDo6V2Vic2l0ZURhdGEgd2Vic2l0ZURhdGEpCiAgICAgRGlkRGVsZXRlV2Vic2l0ZURh
dGEodWludDY0X3QgY2FsbGJhY2tJRCkKQEAgLTQ4LDcgKzQ4LDcgQEAgbWVzc2FnZXMgLT4gTmV0
d29ya1Byb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgTm90aWZ5V2Vic2l0ZURhdGFE
ZWxldGlvbkZvclJlZ2lzdHJhYmxlRG9tYWluc0ZpbmlzaGVkKCkKICAgICBOb3RpZnlXZWJzaXRl
RGF0YVNjYW5Gb3JSZWdpc3RyYWJsZURvbWFpbnNGaW5pc2hlZCgpCiAgICAgTm90aWZ5UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUZpbmlzaGVkKHVuc2lnbmVkIHRvdGFsUHJldmFsZW50
UmVzb3VyY2VzLCB1bnNpZ25lZCB0b3RhbFByZXZhbGVudFJlc291cmNlc1dpdGhVc2VySW50ZXJh
Y3Rpb24sIHVuc2lnbmVkIHRvcDNTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW5zKQotICAgIFJl
cXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQs
IHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkZyYW1lRG9t
YWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbikgLT4gKGJvb2wg
dXNlckRpZEdyYW50QWNjZXNzKSBBc3luYworICAgIFJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmly
bShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4pIC0+IChib29sIHVzZXJEaWRH
cmFudEFjY2VzcykgQXN5bmMKICAgICBEZWxldGVXZWJzaXRlRGF0YUluVUlQcm9jZXNzRm9yUmVn
aXN0cmFibGVEb21haW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktp
dDo6V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVE
YXRhRmV0Y2hPcHRpb24+IGZldGNoT3B0aW9ucywgVmVjdG9yPFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluPiBkb21haW5zKSAtPiAoSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4g
ZG9tYWluc1dpdGhNYXRjaGluZ0RhdGFSZWNvcmRzKSBBc3luYwogICAgIERpZENvbW1pdENyb3Nz
U2l0ZUxvYWRXaXRoRGF0YVRyYW5zZmVyRnJvbVByZXZhbGVudFJlc291cmNlKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCmluZGV4IDY2NmZiZDNkYTEwZmI1ZDU5YWYyMTA1
MjdhM2MxNTQ1YzE0ODEzZTIuLmQ3ZjBjM2M5NTAyNzRkZThlMGE5NWNiODVhZGMyNzY1NThmNzJk
OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94
eS5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpnb1Rv
QmFja0ZvcndhcmRJdGVtKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgV2ViQgogICAgIG1f
cHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0KCk7CiB9CiAKLWlubGluZSBib29s
IFByb3Zpc2lvbmFsUGFnZVByb3h5Ojp2YWxpZGF0ZUlucHV0KHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IE9wdGlvbmFsPHVpbnQ2NF90PiYgbmF2aWdhdGlvbklEKQoraW5saW5lIGJvb2wgUHJvdmlz
aW9uYWxQYWdlUHJveHk6OnZhbGlkYXRlSW5wdXQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNv
bnN0IE9wdGlvbmFsPHVpbnQ2NF90PiYgbmF2aWdhdGlvbklEKQogewogICAgIC8vIElmIHRoZSBw
cmV2aW91cyBwcm92aXNpb25hbCBsb2FkIHVzZWQgYW4gZXhpc3RpbmcgcHJvY2Vzcywgd2UgbWF5
IHJlY2VpdmUgbGVmdG92ZXIgSVBDIGZvciBhIHByZXZpb3VzIG5hdmlnYXRpb24sIHdoaWNoIHdl
IG5lZWQgdG8gaWdub3JlLgogICAgIGlmICghbV9tYWluRnJhbWUgfHwgbV9tYWluRnJhbWUtPmZy
YW1lSUQoKSAhPSBmcmFtZUlEKQpAQCAtMTg1LDkgKzE4NSw5IEBAIGlubGluZSBib29sIFByb3Zp
c2lvbmFsUGFnZVByb3h5Ojp2YWxpZGF0ZUlucHV0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IE9w
dGlvbmFsCiAgICAgcmV0dXJuICFuYXZpZ2F0aW9uSUQgfHwgISpuYXZpZ2F0aW9uSUQgfHwgKm5h
dmlnYXRpb25JRCA9PSBtX25hdmlnYXRpb25JRDsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQ
cm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFByb3Zpc2lv
bmFsUGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQp
CiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICJkaWRDcmVh
dGVNYWluRnJhbWU6IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBt
X3BhZ2UucGFnZUlEKCkudG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICJkaWRDcmVhdGVNYWluRnJhbWU6IHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3BhZ2UucGFnZUlEKCkudG9VSW50NjQo
KSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKICAgICBBU1NFUlQoIW1fbWFpbkZyYW1lKTsKIAogICAg
IG1fbWFpbkZyYW1lID0gV2ViRnJhbWVQcm94eTo6Y3JlYXRlKG1fcGFnZSwgZnJhbWVJRCk7CkBA
IC0yMTIsNyArMjEyLDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFp
bkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCiAgICAgfQogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFn
ZVByb3h5OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxT
dHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1l
SUQpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3Qo
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25V
UkxTdHJpbmcsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIGlmICghdmFsaWRhdGVJ
bnB1dChmcmFtZUlEKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjIwLDEyICsyMjAsMTIgQEAgdm9p
ZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFN0
cmluZyYgc291cmNlVVJMU3RyaW4KICAgICBtX3BhZ2UuZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0
U2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIHNvdXJjZVVSTFN0cmluZywgZGVzdGluYXRpb25V
UkxTdHJpbmcsIGZyYW1lSUQpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRT
dGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgVVJMJiYgdXJsLCBVUkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRh
dGEmIHVzZXJEYXRhKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNp
b25hbExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBVUkwmJiB1cmwsIFVSTCYmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYg
dXNlckRhdGEpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5hdmlnYXRpb25J
RCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2Vz
c1N3YXBwaW5nLCAiZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZTogcGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEID0gJSIgUFJJdTY0
LCBtX3BhZ2UucGFnZUlEKCkudG9VSW50NjQoKSwgZnJhbWVJRCwgbmF2aWdhdGlvbklEKTsKKyAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgImRpZFN0YXJ0UHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWU6IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIsIG5hdmlnYXRpb25JRCA9ICUiIFBSSXU2NCwgbV9wYWdlLnBhZ2VJRCgpLnRvVUludDY0
KCksIGZyYW1lSUQudG9VSW50NjQoKSwgbmF2aWdhdGlvbklEKTsKICAgICBBU1NFUlQobV9wcm92
aXNpb25hbExvYWRVUkwuaXNOdWxsKCkpOwogICAgIG1fcHJvdmlzaW9uYWxMb2FkVVJMID0gdXJs
OwogCkBAIC0yNDAsMTIgKzI0MCwxMiBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRT
dGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbgogICAgIG1f
cGFnZS5kaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5
UmVmKCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgV1RGTW92ZSh1cmwpLCBXVEZNb3ZlKHVucmVh
Y2hhYmxlVVJMKSwgdXNlckRhdGEpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpk
aWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlRXJyb3ImIGVycm9yLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nIHdpbGxD
b250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgUHJvdmlzaW9u
YWxQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9u
YWxVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yLCBXZWJDb3JlOjpXaWxs
Q29udGludWVMb2FkaW5nIHdpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJiB1c2Vy
RGF0YSkKIHsKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChQcm9j
ZXNzU3dhcHBpbmcsICJkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6IHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIG5hdmlnYXRpb25JRCA9ICUiIFBSSXU2
NCwgbV9wYWdlLnBhZ2VJRCgpLnRvVUludDY0KCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCk7Cisg
ICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICJkaWRGYWls
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0ICIsIG5hdmlnYXRpb25JRCA9ICUiIFBSSXU2NCwgbV9wYWdlLnBhZ2VJRCgpLnRv
VUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSwgbmF2aWdhdGlvbklEKTsKICAgICBBU1NFUlQo
IW1fcHJvdmlzaW9uYWxMb2FkVVJMLmlzTnVsbCgpKTsKICAgICBtX3Byb3Zpc2lvbmFsTG9hZFVS
TCA9IHsgfTsKIApAQCAtMjU2LDEyICsyNTYsMTIgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94
eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnMK
ICAgICBtX3BhZ2UuZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vz
cy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIG5hdmlnYXRpb25JRCwg
cHJvdmlzaW9uYWxVUkwsIGVycm9yLCB3aWxsQ29udGludWVMb2FkaW5nLCB1c2VyRGF0YSk7IC8v
IE1heSBkZWxldGUgfHRoaXN8LgogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRD
b21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3Zp
ZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUlu
Zm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25h
bDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwg
Y29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlk
Q29tbWl0TG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250
ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRp
ZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQs
IE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVD
b250ZW50LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlu
cHV0KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoUHJvY2Vzc1N3YXBwaW5nLCAiZGlkQ29tbWl0TG9hZEZvckZyYW1l
OiBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9u
SUQgPSAlIiBQUkl1NjQsIG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFtZUlELCBuYXZp
Z2F0aW9uSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2Vzc1N3YXBwaW5nLCAi
ZGlkQ29tbWl0TG9hZEZvckZyYW1lOiBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCAiLCBuYXZpZ2F0aW9uSUQgPSAlIiBQUkl1NjQsIG1fcGFnZS5wYWdlSUQoKS50b1VJ
bnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCksIG5hdmlnYXRpb25JRCk7CiAgICAgbV9wcm92aXNp
b25hbExvYWRVUkwgPSB7IH07CiAgICAgbV9wcm9jZXNzLT5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UucGFn
ZUlEKCkpOwogCkBAIC0yNjksNyArMjY5LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6
ZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmkKICAg
ICBtX3BhZ2UuY29tbWl0UHJvdmlzaW9uYWxQYWdlKGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgbWlt
ZVR5cGUsIGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCBmcmFtZUxvYWRUeXBlLCBjZXJ0
aWZpY2F0ZUluZm8sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIGZvcmNlZEhhc0luc2VjdXJlQ29u
dGVudCwgdXNlckRhdGEpOyAvLyBXaWxsIGRlbGV0ZSB8dGhpc3wuCiB9CiAKLXZvaWQgUHJvdmlz
aW9uYWxQYWdlUHJveHk6OmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKGNvbnN0IFdlYk5h
dmlnYXRpb25EYXRhU3RvcmUmIHN0b3JlLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBQcm92aXNp
b25hbFBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2
aWdhdGlvbkRhdGFTdG9yZSYgc3RvcmUsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAg
IGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlEKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjc3LDcg
KzI3Nyw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZE5hdmlnYXRlV2l0aE5hdmln
YXRpb25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhCiAgICAgbV9wYWdlLmRpZE5hdmlnYXRl
V2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIHN0b3JlLCBmcmFt
ZUlEKTsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9u
YWxVUkxGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVS
TCYmIHVybCkKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFs
VVJMRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgVVJMJiYgdXJsKQogewogICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlELCBuYXZpZ2F0
aW9uSUQpKQogICAgICAgICByZXR1cm47CkBAIC0yODUsNyArMjg1LDcgQEAgdm9pZCBQcm92aXNp
b25hbFBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCB1aW4KICAgICBtX3BhZ2UuZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNo
YXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUo
dXJsKSk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb25Bc3luYyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIgaWRlbnRpZmllciwKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9s
aWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9E
YXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5n
UGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwK
ICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVm
ZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVj
dFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIHVpbnQ2NF90IGxpc3RlbmVySUQp
CiB7CkBAIC0yOTYsNyArMjk2LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKHVpbnQ2NF90IGZyYW1lSUQKICAgICAgICAg
V1RGTW92ZShmcmFtZUluZm9EYXRhKSwgb3JpZ2luYXRpbmdQYWdlSUQsIG9yaWdpbmFsUmVxdWVz
dCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZXF1ZXN0Qm9keSksIFdURk1vdmUocmVkaXJl
Y3RSZXNwb25zZSksIHVzZXJEYXRhLCBsaXN0ZW5lcklEKTsKIH0KIAotdm9pZCBQcm92aXNpb25h
bFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKK3ZvaWQgUHJvdmlzaW9uYWxQ
YWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4s
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAogICAgIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Us
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlN
RVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVy
SUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQo
ZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKQEAgLTMwNSw3ICszMDUsNyBAQCB2b2lkIFByb3Zpc2lv
bmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBXZWJDbwogICAgIG1fcGFnZS5kZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3By
b2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBmcmFtZVNlY3VyaXR5T3JpZ2luLCBpZGVudGlmaWVy
LCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25s
b2FkQXR0cmlidXRlLCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7CiB9CiAKLXZvaWQgUHJvdmlzaW9u
YWxQYWdlUHJveHk6OmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0X3Qg
ZnJhbWVJRCkKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1TZXJ2ZXJSZWRp
cmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5h
dGlvblVSTFN0cmluZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgaWYgKCF2YWxp
ZGF0ZUlucHV0KGZyYW1lSUQpKQogICAgICAgICByZXR1cm47CkBAIC0zMTMsNyArMzEzLDcgQEAg
dm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0
IFN0cmluZyYgc291cmNlVVJMU3RyaW4KICAgICBtX3BhZ2UuZGlkUGVyZm9ybVNlcnZlclJlZGly
ZWN0U2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIHNvdXJjZVVSTFN0cmluZywgZGVzdGluYXRp
b25VUkxTdHJpbmcsIGZyYW1lSUQpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpk
aWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmIHJlcXVlc3QsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgUHJvdmlzaW9uYWxQ
YWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkK
IHsKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtMzMxLDcgKzMzMSw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6
OmJhY2tGb3J3YXJkR29Ub0l0ZW0oY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlCiAg
ICAgbV9wYWdlLmJhY2tGb3J3YXJkR29Ub0l0ZW1TaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwg
aWRlbnRpZmllciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIFByb3Zp
c2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyh1aW50
NjRfdCBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIg
aWRlbnRpZmllciwKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb25TeW5jKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZy
YW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBX
ZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKICAgICB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEs
IEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
b3JpZ2luYXRpbmdQYWdlSUQsCiAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBv
cmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6
Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYmIHJlZGlyZWN0UmVzcG9uc2UsCiAgICAgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6
RGVsYXllZFJlcGx5JiYgcmVwbHkpCkBAIC0zNjYsNyArMzY2LDcgQEAgdm9pZCBQcm92aXNpb25h
bFBhZ2VQcm94eTo6cmVnaXN0ZXJXZWJQcm9jZXNzQWNjZXNzaWJpbGl0eVRva2VuKGNvbnN0IElQ
Qzo6RGF0YVIKICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQotdm9pZCBQ
cm92aXNpb25hbFBhZ2VQcm94eTo6Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKGNv
bnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYgdW5ibG9ja0hhbmRsZXIs
IHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpjb250ZW50Rmls
dGVyRGlkQmxvY2tMb2FkRm9yRnJhbWUoY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxv
Y2tIYW5kbGVyJiB1bmJsb2NrSGFuZGxlciwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAg
ICAgbV9wYWdlLmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nl
c3MuY29weVJlZigpLCB1bmJsb2NrSGFuZGxlciwgZnJhbWVJRCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaAppbmRleCAzMzMyMTZhMmNjNzg1
NjY3MTYzMjRhYjA2ZmYxYjNiOTYwODBjMGJlLi5kZTNlZTY4N2ZhN2Q4MTc1MGI1OGZlZGE1ODQ1
ODNmZDFmMWUyZDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNp
b25hbFBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFs
UGFnZVByb3h5LmgKQEAgLTkyLDIzICs5MiwyMyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAgICAg
dm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
Jiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBmaW5hbDsKIAotICAgIHZvaWQgZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZv
RGF0YSYmLAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZp
Z2F0aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYsCiAgICAgICAgIE9wdGlvbmFsPFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAgIFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYs
IHVpbnQ2NF90IGxpc3RlbmVySUQpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2Uo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsCiAgICAgICAgIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBT
dHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2Vy
RGF0YSYpOwotICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKLSAgICB2b2lkIGRpZFBl
cmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3Qg
U3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9p
ZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkTmF2aWdhdGVXaXRoTmF2aWdh
dGlvbkRhdGEoY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYsIHVpbnQ2NF90IGZyYW1lSUQp
OwotICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNl
VVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBm
cmFtZUlEKTsKLSAgICB2b2lkIGRpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsK
LSAgICB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNv
bnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBi
b29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBl
LCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mLCBib29sIGNvbnRhaW5zUGx1Z2luRG9j
dW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5z
ZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBj
b25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
JiwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2
b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKKyAgICB2b2lkIGRpZFBlcmZvcm1T
ZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5n
JiBkZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2
b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZE5hdmlnYXRl
V2l0aE5hdmlnYXRpb25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmLCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNv
bnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJM
U3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkQ3JlYXRlTWFp
bkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRTdGFydFByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBVUkwmJiwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJik7
CisgICAgdm9pZCBkaWRDb21taXRMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJh
bWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0
IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYsIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwg
T3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNv
bnRlbnQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
Y29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciYsIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAg
dm9pZCBzdGFydFVSTFNjaGVtZVRhc2soVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJik7CiAgICAg
dm9pZCBiYWNrRm9yd2FyZEdvVG9JdGVtKGNvbnN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlk
ZW50aWZpZXImLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSYmKT4mJik7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyh1
aW50NjRfdCBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uU3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGJvb2wgaXNNYWlu
RnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEm
JiwKICAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRp
Zmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYg
b3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0
YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5
JiYpOwogI2lmIFVTRShRVUlDS19MT09LKQpAQCAtMTE4LDExICsxMTgsMTEgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHJlZ2lzdGVyV2ViUHJvY2Vzc0FjY2Vzc2liaWxpdHlUb2tlbihjb25zdCBJUEM6
OkRhdGFSZWZlcmVuY2UmKTsKICNlbmRpZgogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykK
LSAgICB2b2lkIGNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3Jl
OjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImLCB1aW50NjRfdCBmcmFtZUlEKTsKKyAgICB2
b2lkIGNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250
ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogI2Vu
ZGlmCiAKICAgICB2b2lkIGluaXRpYWxpemVXZWJQYWdlKCk7Ci0gICAgYm9vbCB2YWxpZGF0ZUlu
cHV0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IE9wdGlvbmFsPHVpbnQ2NF90PiYgbmF2aWdhdGlv
bklEID0gV1RGOjpudWxsb3B0KTsKKyAgICBib29sIHZhbGlkYXRlSW5wdXQoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBjb25zdCBPcHRpb25hbDx1aW50NjRfdD4mIG5hdmlnYXRpb25JRCA9IFdU
Rjo6bnVsbG9wdCk7CiAKICAgICBXZWJQYWdlUHJveHkmIG1fcGFnZTsKICAgICBSZWY8V2ViUHJv
Y2Vzc1Byb3h5PiBtX3Byb2Nlc3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwCmluZGV4IGIyZjc3MjlmZDM5MzVmNzJlMWJj
OTExNWEzMGExOGY2NGUzOWZkMjUuLmY3OGE3YzM4NmM4OTU5MDExNTZiNTY4YWFmOThiYWIyM2Iw
ODA2ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQ
cm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXJQcm9jZXNzUHJveHkuY3BwCkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgU2VydmljZVdvcmtlclBy
b2Nlc3NQcm94eTo6dXBkYXRlUHJlZmVyZW5jZXNTdG9yZShjb25zdCBXZWJQcmVmZXJlbmNlc1N0
b3JlCiAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OlVw
ZGF0ZVByZWZlcmVuY2VzU3RvcmUgeyBzdG9yZSB9LCAwKTsKIH0KIAotdm9pZCBTZXJ2aWNlV29y
a2VyUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUGFnZUlk
ZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8QXV0aGVudGljYXRpb25DaGFs
bGVuZ2VQcm94eT4mJiBjaGFsbGVuZ2UpCit2b2lkIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6
OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShQYWdlSWRlbnRpZmllciBwYWdlSUQs
IEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94
eT4mJiBjaGFsbGVuZ2UpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHBhZ2VJRCk7CiAgICAgVU5VU0VE
X1BBUkFNKGZyYW1lSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2Vy
dmljZVdvcmtlclByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2Vydmlj
ZVdvcmtlclByb2Nlc3NQcm94eS5oCmluZGV4IGU5MzY1YWZhYzRmNDdkN2ZkNzQ3Zjk4OTgzYWQ5
OTkwZThhYjk3NTUuLjdkODg3NjA1ZWVhMGI2NDc5ZDY5NzY5MWFiYjU1MjgwN2RlMjE4NDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1By
b3h5LmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGJvb2wgaGFzUmVn
aXN0ZXJlZFNlcnZpY2VXb3JrZXJzKGNvbnN0IFN0cmluZyYgc2VydmljZVdvcmtlckRpcmVjdG9y
eSk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlUHJveHk+JiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJl
ZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmKTsKIAogICAgIHZvaWQgc3RhcnQoY29u
c3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYsIE9wdGlvbmFsPFBBTDo6U2Vzc2lvbklEPiBpbml0aWFs
U2Vzc2lvbklEKTsKICAgICB2b2lkIHNldFVzZXJBZ2VudChjb25zdCBTdHJpbmcmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwCmluZGV4IGY2ZDNi
NTM2ZGY4YWFiMTk3ZDkxMWVkMTRkMmVhNDBmZWZmMmUxZGQuLmM2NGQ3ZWYxOWJkMGRlNzExNjk2
OTk5MmMwNzY3MWU2MWQ4MjgzZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1N1c3BlbmRlZFBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3Vz
cGVuZGVkUGFnZVByb3h5LmNwcApAQCAtNzgsNyArNzgsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFNl
dDxJUEM6OlN0cmluZ1JlZmVyZW5jZT4mIG1lc3NhZ2VOYW1lc1RvSWdub3JlV2hpbGVTdXNwZW5k
ZWQoKQogfQogI2VuZGlmCiAKLVN1c3BlbmRlZFBhZ2VQcm94eTo6U3VzcGVuZGVkUGFnZVByb3h5
KFdlYlBhZ2VQcm94eSYgcGFnZSwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCB1aW50
NjRfdCBtYWluRnJhbWVJRCwgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJh
dGVkQ29tcG9zaXRpbmdNb2RlIHNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVy
YXRlZENvbXBvc2l0aW5nTW9kZSkKK1N1c3BlbmRlZFBhZ2VQcm94eTo6U3VzcGVuZGVkUGFnZVBy
b3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBG
cmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQsIFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJp
bmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSBzaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVy
aW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpCiAgICAgOiBtX3BhZ2UocGFnZSkKICAgICAs
IG1fcHJvY2VzcyhXVEZNb3ZlKHByb2Nlc3MpKQogICAgICwgbV9tYWluRnJhbWVJRChtYWluRnJh
bWVJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmgKaW5k
ZXggMGRhZDA1NGIyNzJhODE5ZDZlMGIwNmM3N2NlZDgxMmEyNjNkMTM0MC4uOTE2NTNjYzc4ZWEw
MDg2NjBiMTRlMzM1MDU1M2FhODllNzNkMTkxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvU3VzcGVuZGVkUGFnZVByb3h5LmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJQcm9j
ZXNzVGhyb3R0bGVyLmgiCiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oIgogI2lu
Y2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlk
ZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9X
ZWFrUHRyLmg+CiAKQEAgLTQyLDEyICs0MywxMiBAQCBlbnVtIGNsYXNzIFNob3VsZERlbGF5Q2xv
c2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSA6IGJvb2wgeyBObwog
Y2xhc3MgU3VzcGVuZGVkUGFnZVByb3h5IGZpbmFsOiBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2
ZXIsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTdXNwZW5kZWRQYWdlUHJveHk+IHsKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBTdXNwZW5kZWRQYWdlUHJveHkoV2Vi
UGFnZVByb3h5JiwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3QgbWFpbkZyYW1lSUQs
IFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9k
ZSk7CisgICAgU3VzcGVuZGVkUGFnZVByb3h5KFdlYlBhZ2VQcm94eSYsIFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCwgU2hvdWxkRGVs
YXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKTsKICAgICB+
U3VzcGVuZGVkUGFnZVByb3h5KCk7CiAKICAgICBXZWJQYWdlUHJveHkmIHBhZ2UoKSBjb25zdCB7
IHJldHVybiBtX3BhZ2U7IH0KICAgICBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MoKSB7IHJldHVy
biBtX3Byb2Nlc3MuZ2V0KCk7IH0KLSAgICB1aW50NjRfdCBtYWluRnJhbWVJRCgpIGNvbnN0IHsg
cmV0dXJuIG1fbWFpbkZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFp
bkZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX21haW5GcmFtZUlEOyB9CiAKICAgICBib29sIHBh
Z2VJc0Nsb3NlZE9yQ2xvc2luZygpIGNvbnN0OwogCkBAIC03NCw3ICs3NSw3IEBAIHByaXZhdGU6
CiAKICAgICBXZWJQYWdlUHJveHkmIG1fcGFnZTsKICAgICBSZWY8V2ViUHJvY2Vzc1Byb3h5PiBt
X3Byb2Nlc3M7Ci0gICAgdWludDY0X3QgbV9tYWluRnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgbV9tYWluRnJhbWVJRDsKICAgICBib29sIG1faXNDbG9zZWQgeyBmYWxzZSB9
OwogICAgIFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0
aW5nTW9kZSBtX3Nob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBv
c2l0aW5nTW9kZSB7IFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENv
bXBvc2l0aW5nTW9kZTo6Tm8gfTsKICAgICBib29sIG1fc2hvdWxkQ2xvc2VXaGVuRW50ZXJpbmdB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5jcHAKaW5k
ZXggYWI3OTI0MDI5ZTBlZjNhM2JiYWI3NGNiYWMwMGMyOTdmYTk2YTNjYS4uNGZhNmZkZjYwOGQ2
YzM3ZWZlY2IwYTVlMDZjMmNmZGU1MGViNTg0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmNwcApAQCAtMzMs
NyArMzMsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAotVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVj
a1Byb3h5KHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlciwgUmVm
PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbikKK1VzZXJN
ZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eShG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyLCBSZWY8
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKQogICAgIDog
bV9mcmFtZUlEKGZyYW1lSUQpCiAgICAgLCBtX2NvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaGFu
ZGxlcikpCiAgICAgLCBtX3VzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW4oV1RGTW92ZSh1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaAppbmRleCBkYzM0MDk4MTcxNGM3
Mjc5M2MwMTA1ZDc4MzM5MWI3ZmE5NDU5MThmLi5lODBiNTE5MTg0MWZkYjI0Njc1NTEwOTcyNTA5
NjZlOTBiN2UyYTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEg
b25jZQogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlk
ZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHMuaD4KICNpbmNs
dWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KQEAgLTQxLDcgKzQyLDcgQEAgcHVibGljOgogICAgIGVudW0gY2xhc3MgUGVybWlzc2lv
bkluZm8geyBFcnJvciwgVW5rbm93biwgR3JhbnRlZCB9OwogICAgIHVzaW5nIENvbXBsZXRpb25I
YW5kbGVyID0gV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBlcm1pc3Npb25JbmZvKT47CiAK
LSAgICBzdGF0aWMgUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5PiBjcmVhdGUodWlu
dDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyLCBSZWY8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKQorICAgIHN0YXRpYyBSZWY8
VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk+IGNyZWF0ZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyLCBSZWY8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKQogICAgIHsKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkoZnJhbWVJ
RCwgV1RGTW92ZShoYW5kbGVyKSwgV1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiksIFdU
Rk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbikpKTsKICAgICB9CkBAIC01MCwxNyArNTEsMTcg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0VXNlck1lZGlhQWNjZXNzSW5mbyhib29sKTsKICAgICB2
b2lkIGludmFsaWRhdGUoKSB7IGNvbXBsZXRlKFBlcm1pc3Npb25JbmZvOjpFcnJvcik7IH0KIAot
ICAgIHVpbnQ2NF90IGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KKyAgICBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJ
RDsgfQogICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudFNlY3Vy
aXR5T3JpZ2luKCkgeyByZXR1cm4gbV91c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luLmdl
dCgpOyB9CiAgICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRTZWN1
cml0eU9yaWdpbigpIHsgcmV0dXJuIG1fdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luLmdl
dCgpOyB9CiAgICAgCiBwcml2YXRlOgotICAgIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5
KHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyJiYsIFJlZjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pOworICAgIFVzZXJNZWRpYVBlcm1p
c3Npb25DaGVja1Byb3h5KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXImJiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3Jp
Z2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdp
bik7CiAgICAgflVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5KCk7CiAKICAgICB2b2lkIGNv
bXBsZXRlKFBlcm1pc3Npb25JbmZvKTsKICAgICAKLSAgICB1aW50NjRfdCBtX2ZyYW1lSUQ7Cisg
ICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fZnJhbWVJRDsKICAgICBDb21wbGV0aW9uSGFu
ZGxlciBtX2NvbXBsZXRpb25IYW5kbGVyOwogICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bj4gbV91c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luOwogICAgIFJlZjxXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbj4gbV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKaW5kZXggZDM0MDM3NmZmMjkwN2I4NzI5MzU2NDY0
Mjg5ZDQzNDk2ZDQwMDk5MS4uZGI0Y2RhMTExNjFkMjIyODI5ODRmZWU5YWVhZDQwYTRlZWMxYTQ5
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtMjQwLDkgKzI0MCw5
IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmZpbmlzaEdy
YW50aW5nUmVxdWVzdChVc2VyTWVkaWFQZXJtCiAgICAgcHJvY2Vzc05leHRVc2VyTWVkaWFSZXF1
ZXN0SWZOZWVkZWQoKTsKIH0KIAotdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTo6cmVzZXRBY2Nlc3ModWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlc2V0QWNjZXNzKEZyYW1lSWRlbnRpZmllciBm
cmFtZUlEKQogewotICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgZnJhbWVJRCk7CisgICAg
QUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBmcmFtZUlELmxvZ2dpbmdTdHJpbmcoKSk7CiAgICAg
bV9ncmFudGVkUmVxdWVzdHMucmVtb3ZlQWxsTWF0Y2hpbmcoW2ZyYW1lSURdKGNvbnN0IGF1dG8m
IGdyYW50ZWRSZXF1ZXN0KSB7CiAgICAgICAgIHJldHVybiBncmFudGVkUmVxdWVzdC0+bWFpbkZy
YW1lSUQoKSA9PSBmcmFtZUlEOwogICAgIH0pOwpAQCAtMjUxLDcgKzI1MSw3IEBAIHZvaWQgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlc2V0QWNjZXNzKHVpbnQ2NF90
IGZyYW1lSUQpCiAgICAgbV9oYXNGaWx0ZXJlZERldmljZUxpc3QgPSBmYWxzZTsKIH0KIAotY29u
c3QgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSogVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OnNlYXJjaEZvckdyYW50ZWRSZXF1ZXN0KHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3Qg
U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGJvb2wgbmVlZHNBdWRpbywg
Ym9vbCBuZWVkc1ZpZGVvKSBjb25zdAorY29uc3QgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eSogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnNlYXJjaEZvckdy
YW50ZWRSZXF1ZXN0KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdp
biYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luLCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbykgY29uc3QK
IHsKICAgICBpZiAobV9wYWdlLmlzTWVkaWFTdHJlYW1DYXB0dXJlTXV0ZWQoKSkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CkBAIC0yODIsNyArMjgyLDcgQEAgY29uc3QgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eSogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6
OnMKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotYm9vbCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6d2FzUmVxdWVzdERlbmllZCh1aW50NjRfdCBtYWluRnJhbWVJRCwg
Y29uc3QgU2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBTZWN1
cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBib29s
IG5lZWRzVmlkZW8sIGJvb2wgbmVlZHNTY3JlZW5DYXB0dXJlKQorYm9vbCBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6d2FzUmVxdWVzdERlbmllZChGcmFtZUlkZW50aWZp
ZXIgbWFpbkZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9y
aWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGJvb2wg
bmVlZHNBdWRpbywgYm9vbCBuZWVkc1ZpZGVvLCBib29sIG5lZWRzU2NyZWVuQ2FwdHVyZSkKIHsK
ICAgICBmb3IgKGNvbnN0IGF1dG8mIGRlbmllZFJlcXVlc3QgOiBtX2RlbmllZFJlcXVlc3RzKSB7
CiAgICAgICAgIGlmICghZGVuaWVkUmVxdWVzdC51c2VyTWVkaWFEb2N1bWVudE9yaWdpbi0+aXNT
YW1lU2NoZW1lSG9zdFBvcnQodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pKQpAQCAtMzQ2LDcgKzM0
Niw3IEBAIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpSZXF1ZXN0QWN0
aW9uIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0CiB9CiAjZW5kaWYKIAotdm9pZCBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Np
b25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFNl
Y3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlPcmln
aW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgTWVkaWFTdHJlYW1SZXF1ZXN0JiYgdXNlclJl
cXVlc3QpCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1
ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwg
TWVkaWFTdHJlYW1SZXF1ZXN0JiYgdXNlclJlcXVlc3QpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKICAgICBpZiAoIW1fcGFnZS5oYXNSdW5uaW5nUHJvY2VzcygpKQpAQCAtNTIxLDcgKzUy
MSw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnByb2Nl
c3NVc2VyTWVkaWFQZXJtaXNzaW9uVmFsaWRSZXF1CiAgICAgbV9wYWdlLnVpQ2xpZW50KCkuZGVj
aWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QobV9wYWdlLCAqd2ViRnJhbWUs
IFdURk1vdmUodXNlck1lZGlhT3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZlbE9yaWdpbiksICptX2N1
cnJlbnRVc2VyTWVkaWFSZXF1ZXN0KTsKIH0KIAotdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6Z2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8odWludDY0X3QgZnJh
bWVJRCwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8
U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChQZXJtaXNzaW9uSW5mbyk+JiYgaGFuZGxlcikKK3ZvaWQgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKEZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1l
bnRPcmlnaW4sIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFBlcm1pc3Npb25JbmZvKT4mJiBoYW5kbGVyKQogewogICAg
IGF1dG8qIHdlYkZyYW1lID0gbV9wYWdlLnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlEKTsKICAg
ICBpZiAoIXdlYkZyYW1lIHx8ICFTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhtX3Bh
Z2UucGFnZUxvYWRTdGF0ZSgpLmFjdGl2ZVVSTCgpKS0+aXNTYW1lU2NoZW1lSG9zdFBvcnQodG9w
TGV2ZWxEb2N1bWVudE9yaWdpbi5nZXQoKSkpIHsKQEAgLTU0NSw3ICs1NDUsNyBAQCB2b2lkIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpnZXRVc2VyTWVkaWFQZXJtaXNz
aW9uSW5mbyh1aW50NjRfdAogICAgIG1fcGFnZS51aUNsaWVudCgpLmNoZWNrVXNlck1lZGlhUGVy
bWlzc2lvbkZvck9yaWdpbihtX3BhZ2UsICp3ZWJGcmFtZSwgdXNlck1lZGlhT3JpZ2luLmdldCgp
LCB0b3BMZXZlbE9yaWdpbi5nZXQoKSwgcmVxdWVzdC5nZXQoKSk7CiB9CiAKLWJvb2wgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc0dyYW50ZWRWaWRlb09yQXVkaW9B
Y2Nlc3ModWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdp
bikKK2Jvb2wgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc0dyYW50
ZWRWaWRlb09yQXVkaW9BY2Nlc3MoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3Vy
aXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4m
IHRvcExldmVsRG9jdW1lbnRPcmlnaW4pCiB7CiAgICAgZm9yIChjb25zdCBhdXRvJiBncmFudGVk
UmVxdWVzdCA6IG1fZ3JhbnRlZFJlcXVlc3RzKSB7CiAgICAgICAgIGlmIChncmFudGVkUmVxdWVz
dC0+cmVxdWlyZXNEaXNwbGF5Q2FwdHVyZSgpKQpAQCAtNjA0LDcgKzYwNCw3IEBAIFZlY3RvcjxD
YXB0dXJlRGV2aWNlPiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y29t
cHV0ZUZpbHRlcmVkRGV2CiB9CiAjZW5kaWYKIAotdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3Qg
dXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1l
bnRPcmlnaW4pCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpl
bnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pCiB7
CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIs
IHVzZXJNZWRpYUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCmluZGV4IGY1MDVl
MjgwYzQ0MjkwYTgwM2RiZGI2OGM5OGVlYTYzMGIxYzliYjYuLmJiYmE0NGFjODJiZDI4MDc1YmRk
ZmJiNDU0NDRjYTU2OWFjY2ZiOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApA
QCAtNjAsMTUgKzYwLDE1IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgaW52YWxpZGF0ZVBlbmRpbmdS
ZXF1ZXN0cygpOwogCi0gICAgdm9pZCByZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1l
KHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+JiYgIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgV2ViQ29yZTo6TWVkaWFTdHJl
YW1SZXF1ZXN0JiYpOworICAgIHZvaWQgcmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFt
ZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWY8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgV2ViQ29yZTo6
TWVkaWFTdHJlYW1SZXF1ZXN0JiYpOwogCi0gICAgdm9pZCByZXNldEFjY2Vzcyh1aW50NjRfdCBt
YWluRnJhbWVJRCk7CisgICAgdm9pZCByZXNldEFjY2VzcyhXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgbWFpbkZyYW1lSUQpOwogICAgIHZvaWQgdmlld0lzQmVjb21pbmdWaXNpYmxlKCk7CiAKICAg
ICB2b2lkIGdyYW50UmVxdWVzdChVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Jik7CiAg
ICAgdm9pZCBkZW55UmVxdWVzdChVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiwgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29u
LCBjb25zdCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50ID0geyB9KTsKIAotICAgIHZvaWQgZW51
bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90
IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRP
cmlnaW4pOworICAgIHZvaWQgZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3Qg
dXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7CiAKICAgICB2b2lkIHN0b3BDYXB0
dXJlKCk7CiAgICAgdm9pZCBzY2hlZHVsZU5leHRSZWplY3Rpb24oKTsKQEAgLTk1LDE5ICs5NSwx
OSBAQCBwcml2YXRlOgogICAgIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKSBjb25zdCBmaW5h
bDsKICNlbmRpZgogCi0gICAgUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNy
ZWF0ZVBlcm1pc3Npb25SZXF1ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBtYWlu
RnJhbWVJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYm
IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYg
dG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYg
YXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiB2aWRlb0Rldmlj
ZXMsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKKyAgICBSZWY8VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRlUGVybWlzc2lvblJlcXVlc3QodWludDY0X3QgdXNl
ck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlh
RG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERv
Y3VtZW50T3JpZ2luLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiBhdWRpb0Rldmlj
ZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgV2ViQ29y
ZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYpOwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAg
dm9pZCBmaW5pc2hHcmFudGluZ1JlcXVlc3QoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eSYpOwogCi0gICAgY29uc3QgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSogc2VhcmNo
Rm9yR3JhbnRlZFJlcXVlc3QodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBib29sIG5l
ZWRzVmlkZW8pIGNvbnN0OwotICAgIGJvb2wgd2FzUmVxdWVzdERlbmllZCh1aW50NjRfdCBtYWlu
RnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50
T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9y
aWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8sIGJvb2wgbmVlZHNTY3JlZW5D
YXB0dXJlKTsKKyAgICBjb25zdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KiBzZWFy
Y2hGb3JHcmFudGVkUmVxdWVzdChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGJvb2wgbmVlZHNBdWRp
bywgYm9vbCBuZWVkc1ZpZGVvKSBjb25zdDsKKyAgICBib29sIHdhc1JlcXVlc3REZW5pZWQoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVl
ZHNWaWRlbywgYm9vbCBuZWVkc1NjcmVlbkNhcHR1cmUpOwogCiAgICAgdXNpbmcgUGVybWlzc2lv
bkluZm8gPSBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eTo6UGVybWlzc2lvbkluZm87Ci0g
ICAgdm9pZCBnZXRVc2VyTWVkaWFQZXJtaXNzaW9uSW5mbyh1aW50NjRfdCBmcmFtZUlELCBSZWY8
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFBlcm1pc3Npb25JbmZvKT4mJik7CisgICAgdm9pZCBnZXRVc2VyTWVk
aWFQZXJtaXNzaW9uSW5mbyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoUGVybWlzc2lvbkluZm8pPiYmKTsKIAogICAgIFJlcXVlc3RBY3Rpb24gZ2V0UmVxdWVz
dEFjdGlvbihjb25zdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Jik7CiAKLSAgICBi
b29sIHdhc0dyYW50ZWRWaWRlb09yQXVkaW9BY2Nlc3ModWludDY0X3QsIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pOworICAgIGJvb2wgd2FzR3Jh
bnRlZFZpZGVvT3JBdWRpb0FjY2VzcyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pOwogCiAgICAgVmVj
dG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IGNvbXB1dGVGaWx0ZXJlZERldmljZUxpc3QoYm9v
bCByZXZlYWxJZHNBbmRMYWJlbHMsIGNvbnN0IFN0cmluZyYgZGV2aWNlSURIYXNoU2FsdCk7CiAK
QEAgLTEzNCw3ICsxMzQsNyBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxSZWY8VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eT4+IG1fZ3JhbnRlZFJlcXVlc3RzOwogCiAgICAgc3RydWN0IERl
bmllZFJlcXVlc3QgewotICAgICAgICB1aW50NjRfdCBtYWluRnJhbWVJRDsKKyAgICAgICAgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlEOwogICAgICAgICBSZWY8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4+IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luOwogICAgICAgICBSZWY8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4+IHRvcExldmVsRG9jdW1lbnRPcmlnaW47CiAgICAgICAgIGJv
b2wgaXNBdWRpb0RlbmllZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKaW5kZXggNGYwMjg0MDZiYTRh
Nzc1MTY0NzA2NDc2NzFmM2E5NTA4OGFmZjRhYi4uOTY2ZmRhZDVjZjBkZDA5Yjk4ZmY1NTYxMDNl
MjA2YWExMTc1Yzk2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKQEAgLTMwLDcgKzMwLDcgQEAK
IG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHko
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90
IHVzZXJNZWRpYUlELCB1aW50NjRfdCBtYWluRnJhbWVJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVm
PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVjdG9y
PFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6
Q2FwdHVyZURldmljZT4mJiB2aWRlb0RldmljZXMsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVz
dCYmIHJlcXVlc3QpCitVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5JiBtYW5hZ2VyLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgRnJhbWVJZGVudGlmaWVyIG1haW5G
cmFtZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiB2aWRl
b0RldmljZXMsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmIHJlcXVlc3QpCiAgICAgOiBt
X21hbmFnZXIoJm1hbmFnZXIpCiAgICAgLCBtX3VzZXJNZWRpYUlEKHVzZXJNZWRpYUlEKQogICAg
ICwgbV9tYWluRnJhbWVJRChtYWluRnJhbWVJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaAppbmRleCA1NDRm
NjExNmVkYjY2MmE4ZmE5NjMxYmMzYWY4YjcwZGVkYzU4MjdmLi5iYTRlMGEzNDcxNjAzMWIxOGYw
ODVjZmQwMWE3MzUxNzc4YTAzMDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCkBAIC0yMSw2ICsyMSw3
IEBACiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NhcHR1cmVE
ZXZpY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvTWVkaWFTdHJlYW1SZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMzUsNyArMzYsNyBAQCBjbGFzcyBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTsKIAogY2xhc3MgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmpl
Y3Q6OlR5cGU6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0PiB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGUoVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJNZWRp
YUlELCB1aW50NjRfdCBtYWluRnJhbWVJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVjdG9yPFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURl
dmljZT4mJiB2aWRlb0RldmljZXMsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmIHJlcXVl
c3QpCisgICAgc3RhdGljIFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVh
dGUoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2
NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmlj
ZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIHZpZGVv
RGV2aWNlcywgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYgcmVxdWVzdCkKICAgICB7CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkobWFuYWdlciwgdXNlck1lZGlhSUQsIG1haW5GcmFtZUlELCBmcmFtZUlELCBXVEZNb3ZlKHVz
ZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSwg
V1RGTW92ZShhdWRpb0RldmljZXMpLCBXVEZNb3ZlKHZpZGVvRGV2aWNlcyksIFdURk1vdmUocmVx
dWVzdCkpKTsKICAgICB9CkBAIC02NSw4ICs2Niw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEhh
c1BlcnNpc3RlbnRBY2Nlc3MoKSB7IG1faGFzUGVyc2lzdGVudEFjY2VzcyA9IHRydWU7IH0KIAog
ICAgIHVpbnQ2NF90IHVzZXJNZWRpYUlEKCkgY29uc3QgeyByZXR1cm4gbV91c2VyTWVkaWFJRDsg
fQotICAgIHVpbnQ2NF90IG1haW5GcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJhbWVJ
RDsgfQotICAgIHVpbnQ2NF90IGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0K
KyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQoKSBjb25zdCB7IHJldHVy
biBtX21haW5GcmFtZUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQo
KSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KIAogICAgIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luJiB0b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSB7IHJldHVybiBtX3RvcExldmVs
RG9jdW1lbnRTZWN1cml0eU9yaWdpbi5nZXQoKTsgfQogICAgIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luJiB1c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkgeyByZXR1cm4gbV91c2VyTWVk
aWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luLmdldCgpOyB9CkBAIC04NCwxMiArODUsMTIgQEAgcHVi
bGljOgogICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgdmlkZW9EZXZpY2UoKSBjb25zdCB7IHJl
dHVybiBtX2VsaWdpYmxlVmlkZW9EZXZpY2VzLmlzRW1wdHkoKSA/IFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2UgeyB9IDogbV9lbGlnaWJsZVZpZGVvRGV2aWNlc1swXTsgfQogCiBwcml2YXRlOgotICAg
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkmLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgbWFpbkZyYW1l
SUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExl
dmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlv
RGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBX
ZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJik7CisgICAgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYsIHVpbnQ2
NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVz
ZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9w
TGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgYXVk
aW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiB2aWRlb0RldmljZXMs
IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKIAogICAgIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5KiBtX21hbmFnZXI7CiAgICAgdWludDY0X3QgbV91c2VyTWVk
aWFJRDsKLSAgICB1aW50NjRfdCBtX21haW5GcmFtZUlEOwotICAgIHVpbnQ2NF90IG1fZnJhbWVJ
RDsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbV9tYWluRnJhbWVJRDsKKyAgICBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgbV9mcmFtZUlEOwogICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbj4gbV91c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luOwogICAgIFJlZjxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbj4gbV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW47CiAg
ICAgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IG1fZWxpZ2libGVWaWRlb0RldmljZXM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCmluZGV4IDA3MTRiNDFl
YjY3NzY4ZDllMGM5ZDQxMmUyMGU4OThmODFlNzNkZDguLmVlMzM3MTA4MTcwN2VhMzZkMzUwZWZl
MmNjNWEwM2MxZDE5MWRhNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkZyYW1lUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJv
eHkuY3BwCkBAIC00NSw5ICs0NSw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBjbGFz
cyBXZWJQYWdlUHJveHk7CiAKLVdlYkZyYW1lUHJveHk6OldlYkZyYW1lUHJveHkoV2ViUGFnZVBy
b3h5JiBwYWdlLCB1aW50NjRfdCBmcmFtZUlEKQorV2ViRnJhbWVQcm94eTo6V2ViRnJhbWVQcm94
eShXZWJQYWdlUHJveHkmIHBhZ2UsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogICAgIDogbV9w
YWdlKG1ha2VXZWFrUHRyKHBhZ2UpKQotICAgICwgbV9pc0ZyYW1lU2V0KGZhbHNlKQogICAgICwg
bV9mcmFtZUlEKGZyYW1lSUQpCiB7CiAgICAgV2ViUHJvY2Vzc1Bvb2w6OnN0YXRpc3RpY3MoKS53
a0ZyYW1lQ291bnQrKzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZy
YW1lUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaAppbmRl
eCA0NDYwMGYxYzI3MjkwZTVlNGMxNjhlYThjZDNjYzM5NjM2ZmRiYmUxLi5jY2RhNjM3ODAwMmQ1
NWFiMTU3YTZmMTUzN2M1ZWY3OWRiNDVjMjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
RnJhbWVQcm94eS5oCkBAIC01OSwxNCArNTksMTQgQEAgc3RydWN0IFdlYnNpdGVQb2xpY2llc0Rh
dGE7CiAKIGNsYXNzIFdlYkZyYW1lUHJveHkgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6
T2JqZWN0OjpUeXBlOjpGcmFtZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViRnJhbWVQ
cm94eT4gY3JlYXRlKFdlYlBhZ2VQcm94eSYgcGFnZSwgdWludDY0X3QgZnJhbWVJRCkKKyAgICBz
dGF0aWMgUmVmPFdlYkZyYW1lUHJveHk+IGNyZWF0ZShXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgV2ViRnJhbWVQcm94eShwYWdlLCBmcmFtZUlEKSk7CiAgICAgfQogCiAgICAgdmly
dHVhbCB+V2ViRnJhbWVQcm94eSgpOwogCi0gICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsg
cmV0dXJuIG1fZnJhbWVJRDsgfQorICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
KCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9CiAgICAgV2ViUGFnZVByb3h5KiBwYWdlKCkg
Y29uc3QgeyByZXR1cm4gbV9wYWdlLmdldCgpOyB9CiAKICAgICB2b2lkIHdlYlByb2Nlc3NXaWxs
U2h1dERvd24oKTsKQEAgLTEzMCw3ICsxMzAsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0
ZToKLSAgICBXZWJGcmFtZVByb3h5KFdlYlBhZ2VQcm94eSYsIHVpbnQ2NF90IGZyYW1lSUQpOwor
ICAgIFdlYkZyYW1lUHJveHkoV2ViUGFnZVByb3h5JiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
KTsKIAogICAgIFdlYWtQdHI8V2ViUGFnZVByb3h5PiBtX3BhZ2U7CiAKQEAgLTEzOCwxMSArMTM4
LDExIEBAIHByaXZhdGU6CiAKICAgICBTdHJpbmcgbV9NSU1FVHlwZTsKICAgICBTdHJpbmcgbV90
aXRsZTsKLSAgICBib29sIG1faXNGcmFtZVNldDsKKyAgICBib29sIG1faXNGcmFtZVNldCB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX2NvbnRhaW5zUGx1Z2luRG9jdW1lbnQgeyBmYWxzZSB9OwogICAg
IFJlZlB0cjxXZWJDZXJ0aWZpY2F0ZUluZm8+IG1fY2VydGlmaWNhdGVJbmZvOwogICAgIFJlZlB0
cjxXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk+IG1fYWN0aXZlTGlzdGVuZXI7Ci0gICAgdWlu
dDY0X3QgbV9mcmFtZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX2ZyYW1lSUQ7
CiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQogICAgIFdlYkNvcmU6OkNvbnRlbnRGaWx0
ZXJVbmJsb2NrSGFuZGxlciBtX2NvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcjsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMzI2MzFjNDUwZWIy
NmQ3NTQ1NDY4YjcyNmMxNWE0NDk4NWM5OThhOS4uZDJmOWE4ODcwNTdiMGRjZDc5NDc4YjEwYjcw
MDczYzZkODZjN2JiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CkBAIC03NDMsNyArNzQzLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxhdW5jaFByb2Nlc3MoY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIHJlZ2lzdHJhYmxlRG9tYWluKQogICAgIGZpbmlzaEF0dGFj
aGluZ1RvV2ViUHJvY2VzcyhJc1Byb2Nlc3NTd2FwOjpObyk7CiB9CiAKLWJvb2wgV2ViUGFnZVBy
b3h5OjpzdXNwZW5kQ3VycmVudFBhZ2VJZlBvc3NpYmxlKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdh
dGlvbiwgT3B0aW9uYWw8dWludDY0X3Q+IG1haW5GcmFtZUlELCBQcm9jZXNzU3dhcFJlcXVlc3Rl
ZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFNob3VsZERlbGF5Q2xvc2lu
Z1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSBzaG91bGREZWxheUNsb3Np
bmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpCitib29sIFdlYlBhZ2VQ
cm94eTo6c3VzcGVuZEN1cnJlbnRQYWdlSWZQb3NzaWJsZShBUEk6Ok5hdmlnYXRpb24mIG5hdmln
YXRpb24sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gbWFpbkZyYW1lSUQsIFByb2Nlc3NTd2Fw
UmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgU2hvdWxkRGVs
YXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlIHNob3VsZERl
bGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSkKIHsKICAg
ICBtX2xhc3RTdXNwZW5kZWRQYWdlID0gbnVsbHB0cjsKIApAQCAtMjkzMSwxMiArMjkzMSwxMiBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb24g
YWN0aW9uLCBBUEk6Ok5hdmlnYXRpb24qCiAgICAgc2VuZGVyLT5zZW5kKGFjdGlvbiwgbmF2aWdh
dGlvbiA/IG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpIDogMCwgZG93bmxvYWRJRCwgV1RGTW92
ZSh3ZWJzaXRlUG9saWNpZXMpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zp
c2lvbmFsUGFnZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0
IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVp
bnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2Vy
dGlmaWNhdGVJbmZvLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNv
cmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBV
c2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6Y29tbWl0UHJvdmlzaW9uYWxQ
YWdlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0
IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVp
bnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2Vy
dGlmaWNhdGVJbmZvLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNv
cmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBV
c2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgQVNTRVJUKG1fcHJvdmlzaW9uYWxQYWdlKTsKICAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJjb21taXRQcm92aXNpb25hbFBhZ2U6
IHByZXZpb3VzUElEID0gJWksIG5ld1BJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQsIG1fcHJv
Y2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wcm92aXNpb25hbFBhZ2UtPnByb2Nlc3MoKS5w
cm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpKTsKIAotICAgIE9wdGlvbmFs
PHVpbnQ2NF90PiBtYWluRnJhbWVJREluUHJldmlvdXNQcm9jZXNzID0gbV9tYWluRnJhbWUgPyBt
YWtlT3B0aW9uYWwobV9tYWluRnJhbWUtPmZyYW1lSUQoKSkgOiBXVEY6Om51bGxvcHQ7CisgICAg
T3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBtYWluRnJhbWVJREluUHJldmlvdXNQcm9jZXNzID0g
bV9tYWluRnJhbWUgPyBtYWtlT3B0aW9uYWwobV9tYWluRnJhbWUtPmZyYW1lSUQoKSkgOiBXVEY6
Om51bGxvcHQ7CiAKICAgICBBU1NFUlQobV9wcm9jZXNzLnB0cigpICE9ICZtX3Byb3Zpc2lvbmFs
UGFnZS0+cHJvY2VzcygpKTsKIApAQCAtMzY3Miw3ICszNjcyLDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZVNjcmlwdFdvcmxkKGNvbnN0IFN0cmluZyYgc2Ny
aXB0LCBib28KICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlJ1bkphdmFT
Y3JpcHRJbk1haW5GcmFtZVNjcmlwdFdvcmxkKHNjcmlwdCwgZm9yY2VVc2VyR2VzdHVyZSwgd29y
bGROYW1lLCBjYWxsYmFja0lEKSwgbV9wYWdlSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6
cnVuSmF2YVNjcmlwdEluRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBzY3Jp
cHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgV1RGOjpGdW5jdGlvbjx2b2lkKEFQSTo6U2VyaWFs
aXplZFNjcmlwdFZhbHVlKiwgYm9vbCBoYWRFeGNlcHRpb24sIGNvbnN0IEV4Y2VwdGlvbkRldGFp
bHMmLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQordm9pZCBXZWJQ
YWdlUHJveHk6OnJ1bkphdmFTY3JpcHRJbkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBj
b25zdCBTdHJpbmcmIHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBXVEY6OkZ1bmN0aW9u
PHZvaWQoQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqLCBib29sIGhhZEV4Y2VwdGlvbiwgY29u
c3QgRXhjZXB0aW9uRGV0YWlscyYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVu
Y3Rpb24pCiB7CiAgICAgQVNTRVJUKG1haW5GcmFtZSgpLT5mcmFtZUlEKCkgIT0gZnJhbWVJRCk7
CiAgICAgYXV0byBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KFdURk1vdmUoY2FsbGJhY2tG
dW5jdGlvbiksIG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkuYmFja2dyb3VuZEFjdGl2aXR5VG9rZW4o
KSk7CkBAIC0zODc4LDcgKzM4NzgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cHJlZmVyZW5jZXNE
aWRDaGFuZ2UoKQogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6UHJlZmVy
ZW5jZXNEaWRDaGFuZ2UocHJlZmVyZW5jZXNTdG9yZSgpKSwgbV9wYWdlSUQsIHByaW50aW5nU2Vu
ZE9wdGlvbnMobV9pc1BlcmZvcm1pbmdET01QcmludE9wZXJhdGlvbikpOwogfQogCi12b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQog
ewogICAgIC8vIFRoZSBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyBJUEMgaXMg
c3luY2hyb25vdXMgYW5kIG1heSB0aGVyZWZvcmUgZ2V0IHByb2Nlc3NlZCBiZWZvcmUgdGhlIERp
ZENyZWF0ZU1haW5GcmFtZSBvbmUuCiAgICAgLy8gV2hlbiB0aGlzIGhhcHBlbnMsIGRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKCkgY2FsbHMgZGlkQ3JlYXRlTWFpbkZyYW1lKCkg
YW5kIHdlIG5lZWQgdG8gaWdub3JlIHRoZSBEaWRDcmVhdGVNYWluRnJhbWUKQEAgLTM4OTcsNyAr
Mzg5Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCkKICAgICBtX3Byb2Nlc3MtPmZyYW1lQ3JlYXRlZChmcmFtZUlELCAqbV9tYWluRnJh
bWUpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRlU3ViZnJhbWUodWludDY0X3Qg
ZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVTdWJmcmFtZShGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdl
Q2xpZW50KCkpOwogCkBAIC0zOTE3LDcgKzM5MTcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
Q3JlYXRlU3ViZnJhbWUodWludDY0X3QgZnJhbWVJRCkKICAgICBtX3Byb2Nlc3MtPmZyYW1lQ3Jl
YXRlZChmcmFtZUlELCBzdWJGcmFtZS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRDcmVhdGVXaW5kb3codWludDY0X3QgZnJhbWVJRCwgR2xvYmFsV2luZG93SWRlbnRpZmllciYm
IHdpbmRvd0lkZW50aWZpZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRlV2luZG93KEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBHbG9iYWxXaW5kb3dJZGVudGlmaWVyJiYgd2luZG93SWRl
bnRpZmllcikKIHsKIH0KIApAQCAtMzk4MSwxMiArMzk4MSwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkRGVzdHJveU5hdmlnYXRpb24odWludDY0X3QgbmF2aWdhdGlvbklEKQogICAgIG1fbmF2
aWdhdGlvblN0YXRlLT5kaWREZXN0cm95TmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQpOwogfQogCi12
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCwgVVJMJiYgdW5yZWFj
aGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCwg
V1RGTW92ZSh1cmwpLCBXVEZNb3ZlKHVucmVhY2hhYmxlVVJMKSwgdXNlckRhdGEpOwogfQogCi12
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgVVJMJiYgdXJsLCBVUkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNl
ckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwsIFVSTCYm
IHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgUGFnZUNs
aWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDAwNSw4ICs0MDA1
LDggQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVT
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJgogICAgIGlmIChmcmFtZS0+aXNNYWluRnJhbWUo
KSAmJiBuYXZpZ2F0aW9uSUQpCiAgICAgICAgIG5hdmlnYXRpb24gPSBuYXZpZ2F0aW9uU3RhdGUo
KS5uYXZpZ2F0aW9uKG5hdmlnYXRpb25JRCk7CiAKLSAgICBMT0coTG9hZGluZywgIldlYlBhZ2VQ
cm94eSAlIiBQUkl1NjQgIiBpbiBwcm9jZXNzIHBpZCAlaSBkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lIHRvIGZyYW1lSUQgJSIgUFJJdTY0ICIsIG5hdmlnYXRpb25JRCAlIiBQUkl1NjQg
IiwgdXJsICVzIiwgbV9wYWdlSUQudG9VSW50NjQoKSwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZp
ZXIoKSwgZnJhbWVJRCwgbmF2aWdhdGlvbklELCB1cmwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7
Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkU3RhcnRQcm92aXNpb25h
bExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0LCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJ
bnQ2NCgpLCBmcmFtZUlEKTsKKyAgICBMT0coTG9hZGluZywgIldlYlBhZ2VQcm94eSAlIiBQUkl1
NjQgIiBpbiBwcm9jZXNzIHBpZCAlaSBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lIHRv
IGZyYW1lSUQgJSIgUFJJdTY0ICIsIG5hdmlnYXRpb25JRCAlIiBQUkl1NjQgIiwgdXJsICVzIiwg
bV9wYWdlSUQudG9VSW50NjQoKSwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgZnJhbWVJ
RC50b1VJbnQ2NCgpLCBuYXZpZ2F0aW9uSUQsIHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsK
KyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRTdGFydFByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQsIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUlu
dDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAKICAgICBhdXRvIHRyYW5zYWN0aW9uID0gbV9w
YWdlTG9hZFN0YXRlLnRyYW5zYWN0aW9uKCk7CiAKQEAgLTQwMzEsNyArNDAzMSw3IEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYKICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRTdGFydFBy
b3Zpc2lvbmFsTmF2aWdhdGlvbigqdGhpcywgbmF2aWdhdGlvbi5nZXQoKSwgcHJvY2Vzcy0+dHJh
bnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOwogfQogCi12
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRXhwbGljaXRPcGVuRm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgVVJMJiYgdXJsKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZEV4cGxpY2l0T3BlbkZvckZyYW1l
KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBVUkwmJiB1cmwpCiB7CiAgICAgYXV0byogZnJhbWUg
PSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9j
ZXNzLCBmcmFtZSk7CkBAIC00MDUwLDE1ICs0MDUwLDE1IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRFeHBsaWNpdE9wZW5Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBVUkwmJiB1cmwpCiAgICAg
bV9wYWdlTG9hZFN0YXRlLmNvbW1pdENoYW5nZXMoKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6
OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJl
Y2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFJlc291cmNlUmVxdWVzdCYmIHJl
cXVlc3QsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBkaWRSZWNlaXZlU2VydmVy
UmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJl
ZigpLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUocmVxdWVzdCksIHVzZXJEYXRhKTsK
IH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vzcywg
dWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBSZXNvdXJjZVJlcXVlc3Qm
JiByZXF1ZXN0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQo
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBV
c2VyRGF0YSYgdXNlckRhdGEpCiB7Ci0gICAgTE9HKExvYWRpbmcsICJXZWJQYWdlUHJveHk6OmRp
ZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lIHRvIGZyYW1l
SUQgJSIgUFJJdTY0ICIsIG5hdmlnYXRpb25JRCAlIiBQUkl1NjQgIiwgdXJsICVzIiwgZnJhbWVJ
RCwgbmF2aWdhdGlvbklELCByZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwot
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZFJlY2VpdmVTZXJ2ZXJSZWRp
cmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVy
KCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQpOworICAgIExPRyhMb2FkaW5nLCAiV2Vi
UGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JG
cmFtZSB0byBmcmFtZUlEICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9uSUQgJSIgUFJJdTY0ICIsIHVy
bCAlcyIsIGZyYW1lSUQudG9VSW50NjQoKSwgbmF2aWdhdGlvbklELCByZXF1ZXN0LnVybCgpLnN0
cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGlu
ZywgImRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiB3
ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIHBy
b2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQu
dG9VSW50NjQoKSk7CiAKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xp
ZW50KCkpOwogCkBAIC00MDg1LDkgKzQwODUsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVj
ZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPAog
ICAgICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclBy
b3Zpc2lvbmFsTmF2aWdhdGlvbigqdGhpcywgbmF2aWdhdGlvbi5nZXQoKSwgcHJvY2Vzcy0+dHJh
bnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOwogfQogCi12
b2lkIFdlYlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdXJsLCBkb3VibGUgZGVsYXksIFdlYkNvcmU6Okxv
Y2tCYWNrRm9yd2FyZExpc3QpCit2b2lkIFdlYlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1DbGllbnRS
ZWRpcmVjdEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHVy
bCwgZG91YmxlIGRlbGF5LCBXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0KQogewotICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgIndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RG
b3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0
KCksIGZyYW1lSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgIndpbGxQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVy
KCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAKICAgICBQYWdl
Q2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00MDk4LDkgKzQw
OTgsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cgogICAgICAgICBtX25hdmlnYXRpb25DbGll
bnQtPndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QoKnRoaXMsIHVybCwgZGVsYXkpOwogfQogCi12
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9y
RnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRChMb2FkaW5nLCAiZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZTogd2ViUElEID0g
JWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3Mt
PnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQpOworICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZENhbmNlbENsaWVudFJlZGlyZWN0
Rm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2
NCgpLCBmcmFtZUlELnRvVUludDY0KCkpOwogCiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90
ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDExMSwxMiArNDExMSwxMiBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
KQogICAgICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRpZENhbmNlbENsaWVudFJlZGlyZWN0KCp0
aGlzKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwp
Cit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZShGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwpCiB7
CiAgICAgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29w
eVJlZigpLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUodXJsKSk7CiB9CiAKLXZvaWQg
V2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QsIFVS
TCYmIHVybCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZy
YW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIHVpbnQ2NF90LCBVUkwmJiB1cmwpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3Rv
ciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDEzNSw3ICs0MTM1LDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJgogICAgIGZyYW1lLT5kaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQ
cm92aXNpb25hbExvYWQodXJsKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92
aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdp
bkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3Qg
U3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFdpbGxD
b250aW51ZUxvYWRpbmcgd2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZShG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNl
Y3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlz
aW9uYWxVUkwsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBXaWxsQ29udGludWVMb2FkaW5n
IHdpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBp
ZiAobV9wcm92aXNpb25hbFBhZ2UgJiYgbV9wcm92aXNpb25hbFBhZ2UtPm5hdmlnYXRpb25JRCgp
ID09IG5hdmlnYXRpb25JRCkgewogICAgICAgICAvLyBUaGUgbG9hZCBkaWQgbm90IGZhaWwsIGl0
IGlzIG1lcmVseSBoYXBwZW5pbmcgaW4gYSBuZXcgcHJvdmlzaW9uYWwgcHJvY2Vzcy4KQEAgLTQx
NDUsMTAgKzQxNDUsMTAgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExv
YWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cmkKICAgICBkaWRGYWlsUHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwg
ZnJhbWVTZWN1cml0eU9yaWdpbiwgbmF2aWdhdGlvbklELCBwcm92aXNpb25hbFVSTCwgZXJyb3Is
IHdpbGxDb250aW51ZUxvYWRpbmcsIHVzZXJEYXRhKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6
OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmIHByb2Nlc3MsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYg
ZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcm
IHByb3Zpc2lvbmFsVVJMLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgV2lsbENvbnRpbnVl
TG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNv
bnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBSZXNvdXJjZUVy
cm9yJiBlcnJvciwgV2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBjb25z
dCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgTE9HKExvYWRpbmcsICIoTG9hZGluZykgV2Vi
UGFnZVByb3h5ICUiIFBSSXU2NCAiIGluIHdlYiBwcm9jZXNzIHBpZCAlaSBkaWRGYWlsUHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUgdG8gcHJvdmlzaW9uYWxVUkwgJXMiLCBtX3BhZ2VJRC50b1VJbnQ2
NCgpLCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBwcm92aXNpb25hbFVSTC51dGY4KCku
ZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3MsICJkaWRGYWlsUHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBkb21haW4gPSAlcywgY29kZSA9ICVkIiwgcHJvY2Vzcy0+
cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCwgZXJyb3Iu
ZG9tYWluKCkudXRmOCgpLmRhdGEoKSwgZXJyb3IuZXJyb3JDb2RlKCkpOworICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoUHJvY2VzcywgImRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZTog
d2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IGRvbWFpbiA9ICVzLCBjb2RlID0gJWQiLCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBt
X3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCksIGVycm9yLmRvbWFpbigpLnV0
ZjgoKS5kYXRhKCksIGVycm9yLmVycm9yQ29kZSgpKTsKIAogICAgIFBhZ2VDbGllbnRQcm90ZWN0
b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQyMjQsMTEgKzQyMjQsMTEgQEAgc3Rh
dGljIE9wdGlvblNldDxDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyOjpGbGFnPiBjaGVj
a0lmTmF2aWdhdGlvbkNvbnRhaW4KIH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
Q29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92
aWRlciwgdWludDMyX3Qgb3BhcXVlRnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlm
aWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwg
T3B0aW9uYWw8SGFzSW5zZWN1cmVDb250ZW50PiBoYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVz
ZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJh
bWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWlu
dDMyX3Qgb3BhcXVlRnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZv
JiBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8
SGFzSW5zZWN1cmVDb250ZW50PiBoYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJiB1
c2VyRGF0YSkKIHsKICAgICBMT0coTG9hZGluZywgIihMb2FkaW5nKSBXZWJQYWdlUHJveHkgJSIg
UFJJdTY0ICIgZGlkQ29tbWl0TG9hZEZvckZyYW1lIGluIG5hdmlnYXRpb24gJSIgUFJJdTY0LCBt
X3BhZ2VJRC50b1VJbnQ2NCgpLCBuYXZpZ2F0aW9uSUQpOwogICAgIExPRyhCYWNrRm9yd2FyZCwg
IihCYWNrL0ZvcndhcmQpIEFmdGVyIGxvYWQgY29tbWl0LCBiYWNrL2ZvcndhcmQgbGlzdCBpcyBu
b3c6JXMiLCBtX2JhY2tGb3J3YXJkTGlzdC0+bG9nZ2luZ1N0cmluZygpKTsKLSAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRDb21taXRMb2FkRm9yRnJhbWU6IHdlYlBJRCA9
ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNz
LT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRDb21taXRMb2FkRm9yRnJhbWU6
IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwg
bV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFt
ZUlELnRvVUludDY0KCkpOwogCiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFn
ZUNsaWVudCgpKTsKIApAQCAtNDMzOCw5ICs0MzM4LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQKICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoRG9jdW1lbnRMb2Fk
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBV
c2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoRG9jdW1lbnRM
b2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoTG9hZGluZywgImRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwg
cGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJv
Y2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJh
bWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2
NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBm
cmFtZUlELnRvVUludDY0KCkpOwogCiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3Io
cGFnZUNsaWVudCgpKTsKIApAQCAtNDM2MSwxMCArNDM2MSwxMCBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0
X3QgbmF2aQogICAgICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRpZEZpbmlzaERvY3VtZW50TG9h
ZCgqdGhpcywgbmF2aWdhdGlvbi5nZXQoKSwgbV9wcm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9P
YmplY3RzKHVzZXJEYXRhLm9iamVjdCgpKS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5
OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
RmluaXNoTG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBMT0coTG9hZGluZywg
IldlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lIC0gV2ViUGFnZVByb3h5ICVwIHdp
dGggbmF2aWdhdGlvbklEICUiIFBSSXU2NCAiIGRpZEZpbmlzaExvYWQiLCB0aGlzLCBuYXZpZ2F0
aW9uSUQpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZEZpbmlzaExv
YWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUlu
dDY0KCksIGZyYW1lSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRp
ZEZpbmlzaExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFn
ZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAKICAgICBQYWdlQ2xpZW50UHJv
dGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00NDA3LDkgKzQ0MDcsOSBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRAogICAgIG1faXNMb2FkaW5nQWx0ZXJuYXRlSFRNTFN0cmlu
Z0ZvckZhaWxpbmdQcm92aXNpb25hbExvYWQgPSBmYWxzZTsKIH0KIAotdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZEZhaWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VFcnJvciYg
ZXJyb3IsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKExvYWRpbmcsICJkaWRGYWlsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgZG9tYWluID0gJXMsIGNvZGUg
PSAlZCIsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQo
KSwgZnJhbWVJRCwgZXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSwgZXJyb3IuZXJyb3JDb2Rl
KCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZEZhaWxMb2FkRm9y
RnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCBkb21haW4gPSAlcywgY29kZSA9ICVkIiwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRp
ZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCksIGVycm9yLmRv
bWFpbigpLnV0ZjgoKS5kYXRhKCksIGVycm9yLmVycm9yQ29kZSgpKTsKIAogICAgIFBhZ2VDbGll
bnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQ0NDksOSArNDQ0OSw5
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwKICAgICB9CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5
OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCB1aW50MzJfdCBvcGFxdWVTYW1lRG9jdW1lbnROYXZpZ2F0aW9u
VHlwZSwgVVJMJiYgdXJsLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQzMl90IG9wYXF1ZVNhbWVEb2N1bWVu
dE5hdmlnYXRpb25UeXBlLCBVUkwmJiB1cmwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsK
LSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRTYW1lRG9jdW1lbnROYXZp
Z2F0aW9uRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50
b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcs
ICJkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRl
bnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCkpOwogCiAg
ICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDQ4
OCw3ICs0NDg4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRp
b25Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdAogICAgICAgICBwYWdlQ2xpZW50
KCkuZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShuYXZpZ2F0aW9uVHlwZSk7
CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VNYWluRG9jdW1lbnQodWludDY0X3Qg
ZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VNYWluRG9jdW1lbnQoRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBpZiAo
bV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpCkBAIC00NTA3LDcgKzQ1MDcsNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6dmlld0lzQmVjb21pbmdWaXNpYmxlKCkKICNlbmRpZgogfQog
Ci12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9p
ZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7
CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAt
NDUyOSwxMSArNDUyOSwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRpdGxlRm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRsZQogI2VuZGlmCiB9CiAK
LXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdExheW91dEZvckZyYW1lKHVpbnQ2NF90LCBjb25z
dCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmlyc3RMYXlvdXRG
b3JGcmFtZShGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKIH0K
IAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZShGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VD
bGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQ1NjQsNyArNDU2
NCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWFjaExheW91dE1pbGVzdG9uZShPcHRpb25T
ZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPiBsCiAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5y
ZW5kZXJpbmdQcm9ncmVzc0RpZENoYW5nZSgqdGhpcywgbGF5b3V0TWlsZXN0b25lcyk7CiB9CiAK
LXZvaWQgV2ViUGFnZVByb3h5OjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJv
eHk6OmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0
b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQ1NzgsNyArNDU3OCw3IEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgVXNlCiAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWREaXNwbGF5SW5z
ZWN1cmVDb250ZW50KCp0aGlzLCBtX3Byb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHMo
dXNlckRhdGEub2JqZWN0KCkpLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJ1
bkluc2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRh
JiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JG
cmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQog
ewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAg
LTQ1OTIsNyArNDU5Miw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSdW5JbnNlY3VyZUNvbnRl
bnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVc2VyRGF0CiAgICAgbV9uYXZpZ2F0
aW9uQ2xpZW50LT5kaWRSdW5JbnNlY3VyZUNvbnRlbnQoKnRoaXMsIG1fcHJvY2Vzcy0+dHJhbnNm
b3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOwogfQogCi12b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkRGV0ZWN0WFNTRm9yRnJhbWUodWludDY0X3QsIGNvbnN0IFVzZXJE
YXRhJikKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFtZShGcmFtZUlkZW50
aWZpZXIsIGNvbnN0IFVzZXJEYXRhJikKIHsKIH0KIApAQCAtNDYwMSw3ICs0NjAxLDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6Om1haW5GcmFtZVBsdWdpbkhhbmRsZXNQYWdlU2NhbGVHZXN0dXJlRGlk
Q2hhbmdlKGJvb2wgbWFpbkZyYW0KICAgICBtX21haW5GcmFtZVBsdWdpbkhhbmRsZXNQYWdlU2Nh
bGVHZXN0dXJlID0gbWFpbkZyYW1lUGx1Z2luSGFuZGxlc1BhZ2VTY2FsZUdlc3R1cmU7CiB9CiAK
LXZvaWQgV2ViUGFnZVByb3h5OjpmcmFtZURpZEJlY29tZUZyYW1lU2V0KHVpbnQ2NF90IGZyYW1l
SUQsIGJvb2wgdmFsdWUpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZnJhbWVEaWRCZWNvbWVGcmFtZVNl
dChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCB2YWx1ZSkKIHsKICAgICBQYWdlQ2xpZW50
UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00NjIwLDcgKzQ2MjAsNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6YmVnaW5TYWZlQnJvd3NpbmdDaGVjayhjb25zdCBVUkwmLCBi
b29sLCBXZWJGcmFtZVBvbGljeUxpc3RlbgogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZVByb3h5
OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmModWludDY0X3QgZnJhbWVJRCwg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5
Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwKK3ZvaWQg
V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsCiAgICAgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9u
RGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVl
c3QsCiAgICAgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQogewpAQCAtNDYyOCw3ICs0NjI4LDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyh1aW50NjRf
dCBmcmFtZUlELCBXZWJDb3IKICAgICAgICAgV1RGTW92ZShmcmFtZUluZm9EYXRhKSwgb3JpZ2lu
YXRpbmdQYWdlSUQsIG9yaWdpbmFsUmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShy
ZXF1ZXN0Qm9keSksIFdURk1vdmUocmVkaXJlY3RSZXNwb25zZSksIHVzZXJEYXRhLCBsaXN0ZW5l
cklEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25Bc3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90
IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmln
aW4sCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFz
eW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmln
aW4sCiAgICAgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9u
RGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwKICAgICBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYg
cmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwKICAgICBjb25zdCBVc2VyRGF0YSYg
dXNlckRhdGEsIHVpbnQ2NF90IGxpc3RlbmVySUQpCkBAIC00NzY5LDcgKzQ3NjksNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihSZWY8V2ViUHJv
Y2Vzc1Byb3h5PiYmIHByb2NlcwogICAgICAgICBiZWdpblNhZmVCcm93c2luZ0NoZWNrKHJlcXVl
c3QudXJsKCksIGZyYW1lLmlzTWFpbkZyYW1lKCksIGxpc3RlbmVyKTsKIAogICAgIEFQSTo6TmF2
aWdhdGlvbiogbWFpbkZyYW1lTmF2aWdhdGlvbiA9IGZyYW1lLmlzTWFpbkZyYW1lKCkgPyBuYXZp
Z2F0aW9uLmdldCgpIDogbnVsbHB0cjsKLSAgICBXZWJGcmFtZVByb3h5KiBvcmlnaW5hdGluZ0Zy
YW1lID0gcHJvY2Vzcy0+d2ViRnJhbWUob3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLmZyYW1lSUQp
OworICAgIFdlYkZyYW1lUHJveHkqIG9yaWdpbmF0aW5nRnJhbWUgPSBvcmlnaW5hdGluZ0ZyYW1l
SW5mb0RhdGEuZnJhbWVJRCA/IHByb2Nlc3MtPndlYkZyYW1lKCpvcmlnaW5hdGluZ0ZyYW1lSW5m
b0RhdGEuZnJhbWVJRCkgOiBudWxscHRyOwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlID0gd2Vi
c2l0ZURhdGFTdG9yZSgpLnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKQEAgLTQ4NTgsNyArNDg1
OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgV2ViRnJh
bWVQcm94eSYgZnJhbWUsIGNvbnN0IFVSTCYgcGFnCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdl
UHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKHVpbnQ2NF90IGZyYW1l
SUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1l
U2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAordm9pZCBX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRp
ZmllciwKICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYg
bmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsCiAgICAgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsCiAgICAgY29uc3QgVXNl
ckRhdGEmIHVzZXJEYXRhLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCkBAIC00ODc2LDcgKzQ4
NzYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
blN5bmModWludDY0X3QgZnJhbWVJRCwgYm9vbCBpcwogICAgICAgICBXVEZNb3ZlKGZyYW1lSW5m
b0RhdGEpLCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZNb3ZlKHJlcXVl
c3QpLCBXVEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNl
ckRhdGEsIFdURk1vdmUocmVwbHkpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYg
cHJvY2VzcywgdWludDY0X3QgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlm
aWVyIGlkZW50aWZpZXIsCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvblN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlk
ZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0
YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELAogICAgIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHks
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLAogICAgIGNvbnN0
IFVzZXJEYXRhJiB1c2VyRGF0YSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQpAQCAtNDg5Myw3
ICs0ODkzLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHkKICAgICBzZW5kZXItPnNlbmQoUG9s
aWN5QWN0aW9uOjpVc2UsIG5hdmlnYXRpb25JRCwgRG93bmxvYWRJRCgpLCBXVEY6Om51bGxvcHQp
OwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9u
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0
eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCit2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGlj
eUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAogICAgIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYg
bmF2aWdhdGlvbkFjdGlvbkRhdGEsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFN0
cmluZyYgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNl
ckRhdGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgp
KTsKQEAgLTQ5MzEsMTMgKzQ5MzEsMTMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGlj
eUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cmkKICAgICAg
ICAgCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmln
aW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAordm9pZCBXZWJQYWdlUHJveHk6
OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBT
ZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRp
ZmllciBpZGVudGlmaWVyLAogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9v
bCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2
NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBkZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBmcmFt
ZVNlY3VyaXR5T3JpZ2luLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCByZXF1
ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRlLCBsaXN0ZW5lcklELCB1c2Vy
RGF0YSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNo
YXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3Jp
Z2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKICAgICB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRv
d25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNl
ckRhdGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgp
KTsKQEAgLTQ5NzEsNyArNDk3MSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lG
b3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsCiAgICAgfQog
fQogCi12b2lkIFdlYlBhZ2VQcm94eTo6dW5hYmxlVG9JbXBsZW1lbnRQb2xpY3kodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0IFVzZXJEYXRhJiB1c2Vy
RGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojp1bmFibGVUb0ltcGxlbWVudFBvbGljeShGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0IFVzZXJE
YXRhJiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdl
Q2xpZW50KCkpOwogCkBAIC00OTg1LDcgKzQ5ODUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dW5h
YmxlVG9JbXBsZW1lbnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VFcnJv
cgogCiAvLyBGb3JtQ2xpZW50CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0Rm9ybSh1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBzb3VyY2VGcmFtZUlELCBjb25zdCBWZWN0b3I8c3Rk
OjpwYWlyPFN0cmluZywgU3RyaW5nPj4mIHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVu
ZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OndpbGxT
dWJtaXRGb3JtKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUlkZW50aWZpZXIgc291cmNl
RnJhbWVJRCwgY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+JiB0ZXh0Rmll
bGRWYWx1ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkK
IHsKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJ
RCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKQEAgLTUwMDMsMTIgKzUw
MDMsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlvbihV
UkwmJiB1cmwsIENvbnRlbnRSdWxlTGlzdFJlc3VsdHMKICAgICBtX25hdmlnYXRpb25DbGllbnQt
PmNvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlvbigqdGhpcywgV1RGTW92ZSh1cmwpLCBXVEZNb3Zl
KHJlc3VsdHMpKTsKIH0KICAgICAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWROYXZpZ2F0ZVdpdGhO
YXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiBzdG9yZSwgdWludDY0
X3QgZnJhbWVJRCkgCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlv
bkRhdGEoY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYgc3RvcmUsIEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlEKQogewogICAgIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKG1f
cHJvY2Vzcy5jb3B5UmVmKCksIHN0b3JlLCBmcmFtZUlEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYgcHJvY2VzcywgY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYgc3RvcmUsIHVpbnQ2
NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlv
bkRhdGFTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBjb25zdCBXZWJOYXZp
Z2F0aW9uRGF0YVN0b3JlJiBzdG9yZSwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlv
bkRhdGFTaGFyZWQ6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQsIHByb2Nlc3MtPnBy
b2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCkpOwogCkBAIC01MDIzLDE0ICs1
MDIzLDE0IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0
YVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByCiAgICAgcHJvY2Vzcy0+cHJvY2Vzc1Bv
b2woKS5oaXN0b3J5Q2xpZW50KCkuZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEocHJvY2Vz
cy0+cHJvY2Vzc1Bvb2woKSwgKnRoaXMsIHN0b3JlLCAqZnJhbWUpOwogfQogCi12b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJM
U3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFt
ZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBT
dHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmlu
ZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgZGlkUGVyZm9ybUNsaWVudFJlZGly
ZWN0U2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIHNvdXJjZVVSTFN0cmluZywgZGVzdGluYXRp
b25VUkxTdHJpbmcsIGZyYW1lSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9y
bUNsaWVudFJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgY29u
c3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxT
dHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybUNs
aWVudFJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgY29uc3Qg
U3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJp
bmcsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoTG9hZGluZywgImRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZDogd2ViUElEID0gJWks
IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBwcm9jZXNzLT5wcm9j
ZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFy
ZWQ6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2
NCwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJh
bWVJRC50b1VJbnQ2NCgpKTsKIAogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBh
Z2VDbGllbnQoKSk7CiAKQEAgLTUwNTAsMTIgKzUwNTAsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHBy
b2Nlc3MKICAgICBwcm9jZXNzLT5wcm9jZXNzUG9vbCgpLmhpc3RvcnlDbGllbnQoKS5kaWRQZXJm
b3JtQ2xpZW50UmVkaXJlY3QocHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKSwgKnRoaXMsIHNvdXJjZVVS
TFN0cmluZywgZGVzdGluYXRpb25VUkxTdHJpbmcsICpmcmFtZSk7CiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxT
dHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1l
SUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0
cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5n
LCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBkaWRQZXJmb3JtU2VydmVyUmVkaXJl
Y3RTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgc291cmNlVVJMU3RyaW5nLCBkZXN0aW5hdGlv
blVSTFN0cmluZywgZnJhbWVJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3Jt
U2VydmVyUmVkaXJlY3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBjb25z
dCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0
cmluZywgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtU2Vy
dmVyUmVkaXJlY3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBjb25zdCBT
dHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmlu
ZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RChMb2FkaW5nLCAiZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0OiB3ZWJQSUQgPSAlaSwgcGFnZUlE
ID0gJSIgUFJJdTY0LCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJ
bnQ2NCgpKTsKIApAQCAtNTA3Niw3ICs1MDc2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFBl
cmZvcm1TZXJ2ZXJSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MK
ICAgICBwcm9jZXNzLT5wcm9jZXNzUG9vbCgpLmhpc3RvcnlDbGllbnQoKS5kaWRQZXJmb3JtU2Vy
dmVyUmVkaXJlY3QocHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKSwgKnRoaXMsIHNvdXJjZVVSTFN0cmlu
ZywgZGVzdGluYXRpb25VUkxTdHJpbmcsICpmcmFtZSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5
OjpkaWRVcGRhdGVIaXN0b3J5VGl0bGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5n
JiB1cmwsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkVXBkYXRlSGlz
dG9yeVRpdGxlKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgdXJsLCBGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3Rvcihw
YWdlQ2xpZW50KCkpOwogCkBAIC01MTA3LDggKzUxMDcsMTAgQEAgc3RhdGljIHZvaWQgdHJ5U09B
dXRob3JpemF0aW9uKFJlZjxBUEk6Ok5hdmlnYXRpb25BY3Rpb24+JiYgbmF2aWdhdGlvbkFjdGlv
biwgV2UKIAogdm9pZCBXZWJQYWdlUHJveHk6OmNyZWF0ZU5ld1BhZ2UoY29uc3QgRnJhbWVJbmZv
RGF0YSYgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
b3JpZ2luYXRpbmdQYWdlSUQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFdpbmRvd0ZlYXR1
cmVzJiYgd2luZG93RmVhdHVyZXMsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFj
dGlvbkRhdGEsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZU5ld1BhZ2U6OkRlbGF5ZWRS
ZXBseSYmIHJlcGx5KQogewotICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBtX3Byb2Nlc3Mt
PndlYkZyYW1lKG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YS5mcmFtZUlEKSk7Ci0gICAgYXV0byBv
cmlnaW5hdGluZ0ZyYW1lSW5mbyA9IEFQSTo6RnJhbWVJbmZvOjpjcmVhdGUob3JpZ2luYXRpbmdG
cmFtZUluZm9EYXRhLCBvcmlnaW5hdGluZ1BhZ2VJRCA/IG1fcHJvY2Vzcy0+d2ViUGFnZSgqb3Jp
Z2luYXRpbmdQYWdlSUQpIDogbnVsbHB0cik7CisgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3Ms
IG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YS5mcmFtZUlEKTsKKyAgICBNRVNTQUdFX0NIRUNLKG1f
cHJvY2VzcywgbV9wcm9jZXNzLT53ZWJGcmFtZSgqb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLmZy
YW1lSUQpKTsKKworICAgIGF1dG8gb3JpZ2luYXRpbmdGcmFtZUluZm8gPSBBUEk6OkZyYW1lSW5m
bzo6Y3JlYXRlKG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgbV9wcm9jZXNzLT53ZWJQYWdlKCpv
cmlnaW5hdGluZ1BhZ2VJRCkpOwogICAgIGF1dG8gbWFpbkZyYW1lVVJMID0gbV9tYWluRnJhbWUg
PyBtX21haW5GcmFtZS0+dXJsKCkgOiBVUkwoKTsKICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVy
ID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbWFpbkZyYW1lVVJMLCBy
ZXF1ZXN0LCByZXBseSA9IFdURk1vdmUocmVwbHkpXSAoUmVmUHRyPFdlYlBhZ2VQcm94eT4gbmV3
UGFnZSkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghbmV3UGFnZSkgewpAQCAtNTE3OCw3ICs1MTgw
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNsb3NlUGFnZShib29sIHN0b3BSZXNwb25zaXZlbmVz
c1RpbWVyKQogICAgIG1fdWlDbGllbnQtPmNsb3NlKHRoaXMpOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6cnVuSmF2YVNjcmlwdEFsZXJ0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5
T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdEFsZXJ0OjpEZWxheWVkUmVwbHkmJiByZXBs
eSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdEFs
ZXJ0OjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9
IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nl
c3MsIGZyYW1lKTsKQEAgLTUxOTcsNyArNTE5OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpydW5K
YXZhU2NyaXB0QWxlcnQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRh
CiAgICAgbV91aUNsaWVudC0+cnVuSmF2YVNjcmlwdEFsZXJ0KHRoaXMsIG1lc3NhZ2UsIGZyYW1l
LCBzZWN1cml0eU9yaWdpbiwgV1RGTW92ZShyZXBseSkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94
eTo6cnVuSmF2YVNjcmlwdENvbmZpcm0odWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlP
cmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybTo6RGVsYXllZFJlcGx5JiYgcmVw
bHkpCit2b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4sIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlw
dENvbmZpcm06OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQogewogICAgIFdlYkZyYW1lUHJveHkqIGZy
YW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKG1f
cHJvY2VzcywgZnJhbWUpOwpAQCAtNTIxNyw3ICs1MjE5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OnJ1bkphdmFTY3JpcHRDb25maXJtKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3Jp
Z2luRGEKICAgICBtX3VpQ2xpZW50LT5ydW5KYXZhU2NyaXB0Q29uZmlybSh0aGlzLCBtZXNzYWdl
LCBmcmFtZSwgc2VjdXJpdHlPcmlnaW4sIFdURk1vdmUocmVwbHkpKTsKIH0KIAotdm9pZCBXZWJQ
YWdlUHJveHk6OnJ1bkphdmFTY3JpcHRQcm9tcHQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2Vj
dXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBj
b25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2
YVNjcmlwdFByb21wdDo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit2b2lkIFdlYlBhZ2VQcm94eTo6
cnVuSmF2YVNjcmlwdFByb21wdChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJp
dHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25z
dCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNj
cmlwdFByb21wdDo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7CiAgICAgV2ViRnJhbWVQcm94eSog
ZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0so
bV9wcm9jZXNzLCBmcmFtZSk7CkBAIC01Mzc2LDcgKzUzNzgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6cm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3JlZW4oY29uc3QgSW50UmVjdCYgdmlld1JlY3Qs
IENvbXBsZQogICAgIGNvbXBsZXRpb25IYW5kbGVyKHBhZ2VDbGllbnQoKS5yb290Vmlld1RvQWNj
ZXNzaWJpbGl0eVNjcmVlbih2aWV3UmVjdCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cnVu
QmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5
T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6UnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsOjpEZWxheWVkUmVw
bHkmJiByZXBseSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFu
ZWwoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2Vj
dXJpdHlPcmlnaW4sIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6UnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsOjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsK
ICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7
CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKQEAgLTU0MTYsNyArNTQxOCw3
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpwYWdlRGlkU2Nyb2xsKCkKICNlbmRpZgogfQogCi12b2lk
IFdlYlBhZ2VQcm94eTo6cnVuT3BlblBhbmVsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3Vy
aXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgY29uc3QgRmlsZUNob29zZXJTZXR0
aW5ncyYgc2V0dGluZ3MpCit2b2lkIFdlYlBhZ2VQcm94eTo6cnVuT3BlblBhbmVsKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlP
cmlnaW4sIGNvbnN0IEZpbGVDaG9vc2VyU2V0dGluZ3MmIHNldHRpbmdzKQogewogICAgIGlmICht
X29wZW5QYW5lbFJlc3VsdExpc3RlbmVyKSB7CiAgICAgICAgIG1fb3BlblBhbmVsUmVzdWx0TGlz
dGVuZXItPmludmFsaWRhdGUoKTsKQEAgLTU0NTUsNyArNTQ1Nyw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpzaG93U2hhcmVTaGVldChjb25zdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMJiBzaGFyZURh
dGEsIFNoYXJlCiAgICAgcGFnZUNsaWVudCgpLnNob3dTaGFyZVNoZWV0KHNoYXJlRGF0YSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogICAgIAotdm9pZCBXZWJQYWdlUHJveHk6OnBy
aW50RnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6OnByaW50RnJhbWUoRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBBU1NFUlQoIW1faXNQZXJmb3JtaW5nRE9NUHJpbnRPcGVyYXRpb24pOwog
ICAgIG1faXNQZXJmb3JtaW5nRE9NUHJpbnRPcGVyYXRpb24gPSB0cnVlOwpAQCAtNjc2OSwyNyAr
Njc3MSwyNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cHJpbnRGaW5pc2hlZENhbGxiYWNrKGNvbnN0
IFJlc291cmNlRXJyb3ImIHByaW50RXJyb3IsIENhbGxiYQogfQogI2VuZGlmCiAKLXZvaWQgV2Vi
UGFnZVByb3h5Ojpmb2N1c2VkRnJhbWVDaGFuZ2VkKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdl
YlBhZ2VQcm94eTo6Zm9jdXNlZEZyYW1lQ2hhbmdlZChjb25zdCBPcHRpb25hbDxGcmFtZUlkZW50
aWZpZXI+JiBmcmFtZUlEKQogewogICAgIGlmICghZnJhbWVJRCkgewogICAgICAgICBtX2ZvY3Vz
ZWRGcmFtZSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBXZWJGcmFt
ZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CisgICAgV2ViRnJh
bWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKCpmcmFtZUlEKTsKICAgICBNRVNT
QUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwogCiAgICAgbV9mb2N1c2VkRnJhbWUgPSBmcmFt
ZTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmZyYW1lU2V0TGFyZ2VzdEZyYW1lQ2hhbmdlZCh1
aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmZyYW1lU2V0TGFyZ2VzdEZyYW1l
Q2hhbmdlZChjb25zdCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+JiBmcmFtZUlEKQogewogICAg
IGlmICghZnJhbWVJRCkgewogICAgICAgICBtX2ZyYW1lU2V0TGFyZ2VzdEZyYW1lID0gbnVsbHB0
cjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0g
bV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKKyAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9
IG1fcHJvY2Vzcy0+d2ViRnJhbWUoKmZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9j
ZXNzLCBmcmFtZSk7CiAKICAgICBtX2ZyYW1lU2V0TGFyZ2VzdEZyYW1lID0gZnJhbWU7CkBAIC03
MzQ1LDI2ICs3MzQ3LDI2IEBAIFdlYWtQdHI8U2VjS2V5UHJveHlTdG9yZT4gV2ViUGFnZVByb3h5
OjpzZWNLZXlQcm94eVN0b3JlKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpCiAgICAgcmV0dXJuIG51
bGxwdHI7CiB9CiAgICAgCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlUHJveHkodWludDY0X3QsIFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVBy
b3h5PiYmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5KEZyYW1lSWRlbnRpZmllciwgUmVmPEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpCiB7
CiAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UoKnRoaXMsIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQ
YWdlUHJveHk6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBT
dHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25z
dCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1
cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90
IGV4cGVjdGVkVXNhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkV4Y2VlZGVkRGF0YWJhc2VR
dW90YTo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZXhjZWVkZWRE
YXRhYmFzZVF1b3RhKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdp
bklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRp
c3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5V
c2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNh
Z2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkV4Y2VlZGVkRGF0YWJhc2VRdW90YTo6RGVsYXll
ZFJlcGx5JiYgcmVwbHkpCiB7CiAgICAgcmVxdWVzdFN0b3JhZ2VTcGFjZShmcmFtZUlELCBvcmln
aW5JZGVudGlmaWVyLCBkYXRhYmFzZU5hbWUsIGRpc3BsYXlOYW1lLCBjdXJyZW50UXVvdGEsIGN1
cnJlbnRPcmlnaW5Vc2FnZSwgY3VycmVudERhdGFiYXNlVXNhZ2UsIGV4cGVjdGVkVXNhZ2UsIFty
ZXBseSA9IFdURk1vdmUocmVwbHkpXShhdXRvIHF1b3RhKSBtdXRhYmxlIHsKICAgICAgICAgcmVw
bHkocXVvdGEpOwogICAgIH0pOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFN0b3Jh
Z2VTcGFjZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1
aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0
X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQ
YWdlUHJveHk6OnJlcXVlc3RTdG9yYWdlU3BhY2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNv
bnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUs
IGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0
X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWlu
dDY0X3QgZXhwZWN0ZWRVc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChTdG9yYWdl
LCAicmVxdWVzdFN0b3JhZ2VTcGFjZSBmb3IgZnJhbWUgJSIgUFJJdTY0ICIsIGN1cnJlbnQgcXVv
dGEgJSIgUFJJdTY0ICIgY3VycmVudCB1c2FnZSAlIiBQUkl1NjQgIiBleHBlY3RlZCB1c2FnZSAl
IiBQUkl1NjQsIGZyYW1lSUQsIGN1cnJlbnRRdW90YSwgY3VycmVudERhdGFiYXNlVXNhZ2UsIGV4
cGVjdGVkVXNhZ2UpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoU3RvcmFnZSwgInJlcXVl
c3RTdG9yYWdlU3BhY2UgZm9yIGZyYW1lICUiIFBSSXU2NCAiLCBjdXJyZW50IHF1b3RhICUiIFBS
SXU2NCAiIGN1cnJlbnQgdXNhZ2UgJSIgUFJJdTY0ICIgZXhwZWN0ZWQgdXNhZ2UgJSIgUFJJdTY0
LCBmcmFtZUlELnRvVUludDY0KCksIGN1cnJlbnRRdW90YSwgY3VycmVudERhdGFiYXNlVXNhZ2Us
IGV4cGVjdGVkVXNhZ2UpOwogCiAgICAgU3RvcmFnZVJlcXVlc3RzOjpzaW5nbGV0b24oKS5wcm9j
ZXNzT3JBcHBlbmQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcGFnZVVS
TCA9IGN1cnJlbnRVUkwoKSwgZnJhbWVJRCwgb3JpZ2luSWRlbnRpZmllciwgZGF0YWJhc2VOYW1l
LCBkaXNwbGF5TmFtZSwgY3VycmVudFF1b3RhLCBjdXJyZW50T3JpZ2luVXNhZ2UsIGN1cnJlbnRE
YXRhYmFzZVVzYWdlLCBleHBlY3RlZFVzYWdlLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewogICAgICAgICB0aGlzLT5tYWtlU3RvcmFn
ZVNwYWNlUmVxdWVzdChmcmFtZUlELCBvcmlnaW5JZGVudGlmaWVyLCBkYXRhYmFzZU5hbWUsIGRp
c3BsYXlOYW1lLCBjdXJyZW50UXVvdGEsIGN1cnJlbnRPcmlnaW5Vc2FnZSwgY3VycmVudERhdGFi
YXNlVXNhZ2UsIGV4cGVjdGVkVXNhZ2UsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShw
cm90ZWN0ZWRUaGlzKSwgZnJhbWVJRCwgcGFnZVVSTCA9IFdURk1vdmUocGFnZVVSTCksIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGN1cnJlbnRRdW90YV0o
YXV0byBxdW90YSkgbXV0YWJsZSB7CiAKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoU3RvcmFnZSwgInJlcXVlc3RTdG9yYWdlU3BhY2UgcmVzcG9uc2UgZm9yIGZyYW1lICUiIFBS
SXU2NCAiLCBxdW90YSAlIiBQUkl1NjQsIGZyYW1lSUQsIHF1b3RhKTsKKyAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoU3RvcmFnZSwgInJlcXVlc3RTdG9yYWdlU3BhY2UgcmVzcG9u
c2UgZm9yIGZyYW1lICUiIFBSSXU2NCAiLCBxdW90YSAlIiBQUkl1NjQsIGZyYW1lSUQudG9VSW50
NjQoKSwgcXVvdGEpOwogCiAgICAgICAgICAgICBpZiAocXVvdGEgPD0gY3VycmVudFF1b3RhICYm
IHRoaXMtPmN1cnJlbnRVUkwoKSA9PSBwYWdlVVJMKSB7CiAgICAgICAgICAgICAgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRChTdG9yYWdlLCAic3RvcmFnZSBzcGFjZSBpbmNyZWFzZSBkZW5pZWQi
KTsKQEAgLTczNzYsNyArNzM3OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0U3RvcmFn
ZVNwYWNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlCiAgICAgfSk7
CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjptYWtlU3RvcmFnZVNwYWNlUmVxdWVzdCh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
ZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50
UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFi
YXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
dWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6Om1ha2VT
dG9yYWdlU3BhY2VSZXF1ZXN0KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcm
IG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJp
bmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRP
cmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVj
dGVkVXNhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewogICAgIGlmIChtX2lzUXVvdGFJbmNyZWFzZURlbmllZCkgewogICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihjdXJyZW50UXVvdGEpOwpAQCAtNzQwMiw3ICs3NDA0LDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoY29uc3Qg
U3RyaW5nJiBvcmlnaW5JZGVudGkKICAgICBtX3VpQ2xpZW50LT5yZWFjaGVkQXBwbGljYXRpb25D
YWNoZU9yaWdpblF1b3RhKHRoaXMsIHNlY3VyaXR5T3JpZ2luLmdldCgpLCBjdXJyZW50UXVvdGEs
IHRvdGFsQnl0ZXNOZWVkZWQsIFdURk1vdmUocmVwbHkpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJv
eHk6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2Nh
dGlvbklELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKK3ZvaWQg
V2ViUGFnZVByb3h5OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0
X3QgZ2VvbG9jYXRpb25JRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBvcmlnaW5J
ZGVudGlmaWVyKQogewogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJG
cmFtZShmcmFtZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwpAQCAt
NzQ0Niw3ICs3NDQ4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldE1vY2tDYXB0dXJlRGV2aWNl
c0VuYWJsZWRPdmVycmlkZShPcHRpb25hbDxib29sPiBlbmFibGVkKQogfQogI2VuZGlmCiAKLXZv
aWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2
NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmICB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRhdGEsIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEsIFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUmVxdWVzdCYmIHJlcXVlc3QpCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVz
dFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgIHVz
ZXJNZWRpYURvY3VtZW50T3JpZ2luRGF0YSwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YSwgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1
ZXN0JiYgcmVxdWVzdCkKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIE1FU1NBR0Vf
Q0hFQ0sobV9wcm9jZXNzLCBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpKTsKQEAgLTc0NjEs
NyArNzQ2Myw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lv
bkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50CiAjZW5kaWYKIH0KIAotdm9pZCBX
ZWJQYWdlUHJveHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJN
ZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luRGF0YSwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5
OjplbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYg
dXNlck1lZGlhRG9jdW1lbnRPcmlnaW5EYXRhLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5EYXRhKQogewogI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZy
YW1lSUQpOwpAQCAtNzQ5Myw3ICs3NDk1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNsZWFyVXNl
ck1lZGlhU3RhdGUoKQogfQogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLXZvaWQg
V2ViUGFnZVByb3h5OjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNz
KHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIG9yaWdpbkRh
dGEsIGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKERldmljZU9yaWVudGF0
aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBX
ZWJQYWdlUHJveHk6OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3Mo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIG9y
aWdpbkRhdGEsIGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKERldmljZU9y
aWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlE
KTsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwpAQCAtODczNiw3ICs4NzM4
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvYWRTeW5jaHJvbm91c1VSTFNjaGVtZVRhc2soVVJM
U2NoZW1lVGFza1BhcmFtZXRlcnMmJiBwYXJhbWUKIH0KIAogI2lmIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3ND
b25maXJtKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdl
UHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFp
biwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbV91aUNsaWVudC0+cmVxdWVzdFN0b3JhZ2VB
Y2Nlc3NDb25maXJtKCp0aGlzLCBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpLCBzdWJGcmFt
ZURvbWFpbiwgdG9wRnJhbWVEb21haW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYjQzODNjYWY4OGYzNzI3
MmNmOTQ3N2I2NDAzOWNlOWVmNWM5NDlhMS4uMjA3Njk1OTFhYzFlMzIyZjUxY2RjZjUyMGU1YWNl
ZWIyZTNmOWNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEw
MTgsNyArMTAxOCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJ1bkphdmFTY3JpcHRJbk1haW5GcmFt
ZShjb25zdCBTdHJpbmcmLCBib29sLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKEFQSTo6U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlKiwgYm9vbCBoYWRFeGNlcHRpb24sIGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlv
bkRldGFpbHMmLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKTsKICAg
ICB2b2lkIHJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZVNjcmlwdFdvcmxkKGNvbnN0IFN0cmluZyYs
IGJvb2wsIGNvbnN0IE9wdGlvbmFsPFN0cmluZz4mIHdvcmxkTmFtZSwgV1RGOjpGdW5jdGlvbjx2
b2lkKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiwgYm9vbCBoYWRFeGNlcHRpb24sIGNvbnN0
IFdlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHMmLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxs
YmFja0Z1bmN0aW9uKTsKICAgICAvLyBGb3Igc3ViIGZyYW1lcy4KLSAgICB2b2lkIHJ1bkphdmFT
Y3JpcHRJbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib29s
IGZvcmNlVXNlckdlc3R1cmUsIFdURjo6RnVuY3Rpb248dm9pZChBUEk6OlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSosIGJvb2wgaGFkRXhjZXB0aW9uLCBjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EZXRh
aWxzJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbik7CisgICAgdm9p
ZCBydW5KYXZhU2NyaXB0SW5GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgc2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIFdURjo6RnVuY3Rpb248dm9pZChB
UEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSosIGJvb2wgaGFkRXhjZXB0aW9uLCBjb25zdCBXZWJD
b3JlOjpFeGNlcHRpb25EZXRhaWxzJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tG
dW5jdGlvbik7CiAgICAgdm9pZCBmb3JjZVJlcGFpbnQoUmVmUHRyPFZvaWRDYWxsYmFjaz4mJik7
CiAKICAgICBmbG9hdCBoZWFkZXJIZWlnaHQoV2ViRnJhbWVQcm94eSYpOwpAQCAtMTE2MSw3ICsx
MTYxLDcgQEAgcHVibGljOgogICAgIHZvaWQgZHJhd1JlY3RUb0ltYWdlKFdlYkZyYW1lUHJveHkq
LCBjb25zdCBQcmludEluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYsIFJlZjxJbWFnZUNhbGxiYWNrPiYmKTsKICAgICB2b2lkIGRyYXdQYWdlc1Rv
UERGKFdlYkZyYW1lUHJveHkqLCBjb25zdCBQcmludEluZm8mLCB1aW50MzJfdCBmaXJzdCwgdWlu
dDMyX3QgY291bnQsIFJlZjxEYXRhQ2FsbGJhY2s+JiYpOwogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCi0gICAgdWludDMyX3QgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiwgRHJhd1RvUERGQ2FsbGJhY2s6OkNhbGxi
YWNrRnVuY3Rpb24mJik7CisgICAgdWludDMyX3QgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmRE
cmF3VG9QREYoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mLCBEcmF3
VG9QREZDYWxsYmFjazo6Q2FsbGJhY2tGdW5jdGlvbiYmKTsKICAgICB2b2lkIGRyYXdUb1BERkNh
bGxiYWNrKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgcGRmRGF0YSwgV2ViS2l0OjpDYWxsYmFj
a0lEKTsKICNlbmRpZgogI2VsaWYgUExBVEZPUk0oR1RLKQpAQCAtMTI1Miw3ICsxMjUyLDcgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyhjb25z
dCBXZWJDb3JlOjpJbnRTaXplJik7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSB2aWV3cG9ydFNpemVG
b3JDU1NWaWV3cG9ydFVuaXRzKCkgY29uc3QgeyByZXR1cm4gbV92aWV3cG9ydFNpemVGb3JDU1NW
aWV3cG9ydFVuaXRzLnZhbHVlT3IoV2ViQ29yZTo6SW50U2l6ZSgpKTsgfQogCi0gICAgdm9pZCBk
aWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSh1aW50NjRfdCBmcmFtZUlELCBS
ZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJik7CisgICAgdm9pZCBkaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJl
ZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmKTsKIAogICAgIFNwZWxsRG9jdW1lbnRU
YWcgc3BlbGxEb2N1bWVudFRhZygpOwogCkBAIC0xNDUyLDEyICsxNDUyLDEyIEBAIHB1YmxpYzoK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLSAgICB2b2lk
IHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiB0
b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJik7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oY29uc3QgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBkaWRDb21taXRD
cm9zc1NpdGVMb2FkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxlbnRSZXNvdXJjZSgpOwogI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQotICAgIHZvaWQgc2hvdWxkQWxs
b3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh1aW50NjRfdCBmcmFtZUlELCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgYm9vbCBtYXlQcm9tcHQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0
ZSk+JiYpOworICAgIHZvaWQgc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFj
Y2VzcyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYmLCBib29sIG1heVByb21wdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpEZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlKT4mJik7CiAjZW5kaWYKIAogICAg
IHN0YXRpYyBXZWJQYWdlUHJveHkqIG5vbkVwaGVtZXJhbFdlYlBhZ2VQcm94eSgpOwpAQCAtMTQ5
OCwzMyArMTQ5OCwzMyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIFByb3Zpc2lvbmFsUGFnZVBy
b3h5KiBwcm92aXNpb25hbFBhZ2VQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvdmlzaW9uYWxQ
YWdlLmdldCgpOyB9Ci0gICAgdm9pZCBjb21taXRQcm92aXNpb25hbFBhZ2UodWludDY0X3QgZnJh
bWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29s
IGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBj
b25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1l
bnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1
cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgY29tbWl0UHJvdmlzaW9uYWxQ
YWdlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25z
dCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1
aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mLCBi
b29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJl
Q29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYpOwogCiAg
ICAgLy8gTG9naWMgc2hhcmVkIGJldHdlZW4gdGhlIFdlYlBhZ2VQcm94eSBhbmQgdGhlIFByb3Zp
c2lvbmFsUGFnZVByb3h5LgotICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFt
ZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIFVSTCYmLCBVUkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRh
dGEmKTsKLSAgICB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8
V2ViUHJvY2Vzc1Byb3h5PiYmLCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciYsIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJik7Ci0g
ICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFt
ZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBVc2VyRGF0
YSYpOwotICAgIHZvaWQgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcm
IGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZFBl
cmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBT
dHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmlu
ZywgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9u
RGF0YVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBXZWJOYXZpZ2F0aW9uRGF0
YVN0b3JlJiwgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25h
bFVSTEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVp
bnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJp
dHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwKKyAgICB2b2lkIGRpZFN0
YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmLCBV
UkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZEZhaWxQ
cm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYg
ZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcm
IHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6
V2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZFJlY2Vp
dmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQ
cm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVXNlckRhdGEmKTsKKyAg
ICB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5h
dGlvblVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZFBl
cmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBT
dHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmlu
ZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZE5hdmlnYXRlV2l0aE5h
dmlnYXRpb25EYXRhU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFdlYk5hdmln
YXRpb25EYXRhU3RvcmUmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlk
Q2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYp
OworICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5
Q2hlY2tJZGVudGlmaWVyLAogICAgICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRp
b25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsCiAgICAgICAg
IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgdWludDY0X3QgbGlz
dGVuZXJJRCk7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmLCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciwKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQ
cm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIsCiAgICAgICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1
aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgc3RhcnRVUkxT
Y2hlbWVUYXNrU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFVSTFNjaGVtZVRhc2tQYXJh
bWV0ZXJzJiYpOwogICAgIHZvaWQgbG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmLCBBUEk6Ok5hdmlnYXRpb24mLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVu
Y2UmLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBjb25z
dCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmID0g
V1RGOjpudWxsb3B0LCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5ID0gV2Vi
Q29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogICAg
IHZvaWQgbG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmLCBBUEk6Ok5hdmlnYXRpb24mLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29y
ZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBX
ZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9wdGlvbmFsPFdlYnNpdGVQb2xp
Y2llc0RhdGE+JiYgPSBXVEY6Om51bGxvcHQpOwogICAgIHZvaWQgYmFja0ZvcndhcmRHb1RvSXRl
bVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBXZWJDb3JlOjpCYWNrRm9yd2Fy
ZEl0ZW1JZGVudGlmaWVyJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUmJik+JiYpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
blN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3QgZnJhbWVJRCwgYm9v
bCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBv
bGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0
aW9uRGF0YSYmLAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNT
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBi
b29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25B
Y3Rpb25EYXRhJiYsCiAgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViQ29yZTo6
UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQ
Qzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKICAgICAgICAgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRl
bGF5ZWRSZXBseSYmKTsKICNpZiBVU0UoUVVJQ0tfTE9PSykKICAgICB2b2lkIGRpZFJlcXVlc3RQ
YXNzd29yZEZvclF1aWNrTG9va0RvY3VtZW50SW5NYWluRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nl
c3NQcm94eT4mJiwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUo
Q09OVEVOVF9GSUxURVJJTkcpCi0gICAgdm9pZCBjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9y
RnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgV2ViQ29yZTo6Q29udGVu
dEZpbHRlclVuYmxvY2tIYW5kbGVyJiwgdWludDY0X3QgZnJhbWVJRCk7CisgICAgdm9pZCBjb250
ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiwgY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyKTsKICNlbmRpZgogCiAgICAgdm9pZCBkdW1wQWRDbGlja0F0dHJpYnV0
aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJik+JiYpOwpAQCAtMTU2MSw3
ICsxNTYxLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRSZWNlaXZlU3lu
Y01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRy
PElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKIAotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VTcGFj
ZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRf
dCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3Vy
cmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIFdURjo6Q29tcGxldGlv
bkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYpOworICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VTcGFj
ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUs
IHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50
NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgV1RGOjpD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJik7CiAKICAgICBVUkwgY3VycmVudFJl
c291cmNlRGlyZWN0b3J5VVJMKCkgY29uc3Q7CiAKQEAgLTE1ODEsNyArMTU4MSw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCB1cGRhdGVUaHJvdHRsZVN0YXRlKCk7CiAgICAgdm9pZCB1cGRhdGVIaWRk
ZW5QYWdlVGhyb3R0bGluZ0F1dG9JbmNyZWFzZXMoKTsKIAotICAgIGJvb2wgc3VzcGVuZEN1cnJl
bnRQYWdlSWZQb3NzaWJsZShBUEk6Ok5hdmlnYXRpb24mLCBPcHRpb25hbDx1aW50NjRfdD4gbWFp
bkZyYW1lSUQsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFNob3VsZERlbGF5Q2xvc2lu
Z1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSk7CisgICAgYm9vbCBzdXNw
ZW5kQ3VycmVudFBhZ2VJZlBvc3NpYmxlKEFQSTo6TmF2aWdhdGlvbiYsIE9wdGlvbmFsPFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcj4gbWFpbkZyYW1lSUQsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlD
bGllbnQsIFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0
aW5nTW9kZSk7CiAKICAgICBlbnVtIGNsYXNzIFJlc2V0U3RhdGVSZWFzb24gewogICAgICAgICBQ
YWdlSW52YWxpZGF0ZWQsCkBAIC0xNjEwLDMyICsxNjEwLDMyIEBAIHByaXZhdGU6CiAgICAgdm9p
ZCByZXF1ZXN0UG9pbnRlclVubG9jaygpOwogI2VuZGlmCiAKLSAgICB2b2lkIGRpZENyZWF0ZU1h
aW5GcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZENyZWF0ZVN1YmZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkQ3JlYXRlV2luZG93KHVpbnQ2NF90IGZyYW1l
SUQsIFdlYkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXImJik7Ci0KLSAgICB2b2lkIGRpZFN0
YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBVUkwmJiwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJik7
Ci0gICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYmLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgd2lsbFBlcmZvcm1D
bGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdXJs
LCBkb3VibGUgZGVsYXksIFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3QpOwotICAgIHZvaWQg
ZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2
b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJik7Ci0gICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0
IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBX
ZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQg
ZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQ
cm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNh
dGVJbmZvJiwgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpI
YXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRh
dGEmKTsKLSAgICB2b2lkIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lk
IGRpZEZpbmlzaExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRGYWlsTG9hZEZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciYsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRTYW1lRG9jdW1lbnRO
YXZpZ2F0aW9uRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCB1aW50MzJfdCBzYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgVVJMJiYsIGNvbnN0IFVzZXJE
YXRhJik7Ci0gICAgdm9pZCBkaWRDaGFuZ2VNYWluRG9jdW1lbnQodWludDY0X3QgZnJhbWVJRCk7
Ci0gICAgdm9pZCBkaWRFeHBsaWNpdE9wZW5Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBVUkwm
Jik7Ci0KLSAgICB2b2lkIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRGaXJzdExheW91
dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBk
aWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRSdW5J
bnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVc2VyRGF0YSYp
OwotICAgIHZvaWQgZGlkRGV0ZWN0WFNTRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
VXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZENyZWF0ZU1haW5GcmFtZShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIpOworICAgIHZvaWQgZGlkQ3JlYXRlU3ViZnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyKTsKKyAgICB2b2lkIGRpZENyZWF0ZVdpbmRvdyhXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIFdlYkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXImJik7CisKKyAgICB2b2lkIGRpZFN0
YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmLCBVUkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNl
ckRhdGEmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2
b2lkIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgdXJsLCBkb3VibGUgZGVsYXksIFdlYkNvcmU6OkxvY2tCYWNr
Rm9yd2FyZExpc3QpOworICAgIHZvaWQgZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxV
UkxGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgVVJMJiYpOworICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBm
cmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYg
cHJvdmlzaW9uYWxVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpX
aWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkQ29tbWl0
TG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFBy
b3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0
ZUluZm8mLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhh
c0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0
YSYpOworICAgIHZvaWQgZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFVzZXJEYXRhJik7Cisg
ICAgdm9pZCBkaWRGaW5pc2hMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRGYWls
TG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgVXNlckRhdGEmKTsKKyAg
ICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMyX3Qgc2FtZURvY3VtZW50TmF2
aWdhdGlvblR5cGUsIFVSTCYmLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkQ2hhbmdl
TWFpbkRvY3VtZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRFeHBs
aWNpdE9wZW5Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFVSTCYmKTsKKworICAg
IHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkRmlyc3RMYXlvdXRG
b3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFVzZXJEYXRhJik7CisgICAg
dm9pZCBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZShXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWREaXNwbGF5SW5zZWN1
cmVDb250ZW50Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBVc2VyRGF0
YSYpOworICAgIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkRGV0ZWN0WFNTRm9y
RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZv
aWQgbWFpbkZyYW1lUGx1Z2luSGFuZGxlc1BhZ2VTY2FsZUdlc3R1cmVEaWRDaGFuZ2UoYm9vbCk7
Ci0gICAgdm9pZCBmcmFtZURpZEJlY29tZUZyYW1lU2V0KHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wp
OworICAgIHZvaWQgZnJhbWVEaWRCZWNvbWVGcmFtZVNldChXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIGJvb2wpOwogICAgIHZvaWQgZGlkU3RhcnRQcm9ncmVzcygpOwogICAgIHZvaWQgZGlkQ2hh
bmdlUHJvZ3Jlc3MoZG91YmxlKTsKICAgICB2b2lkIGRpZEZpbmlzaFByb2dyZXNzKCk7CkBAIC0x
NjQ4LDM3ICsxNjQ4LDM3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkZyYW1lUHJveHkmLCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0
aW9uQWN0aW9uRGF0YSYmLAogICAgICAgICBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYm
LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAgIFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIFJl
ZjxQb2xpY3lEZWNpc2lvblNlbmRlcj4mJik7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uQXN5bmModWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAogICAgICAgICBGcmFt
ZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGlu
Z1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3Qs
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVx
dWVzdEJvZHksCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJl
c3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwotICAgIHZvaWQg
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmModWludDY0X3QgZnJhbWVJRCwgYm9v
bCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBv
bGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0
aW9uRGF0YSYmLAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAgIEZyYW1lSW5m
b0RhdGEmJiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFn
ZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0
Qm9keSwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9u
c2UsIGNvbnN0IFVzZXJEYXRhJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmKTsKLSAgICB2b2lkIGRlY2lk
ZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIE5h
dmlnYXRpb25BY3Rpb25EYXRhJiYsCisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dB
Y3Rpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIE5hdmlnYXRpb25BY3Rp
b25EYXRhJiYsCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBTdHJp
bmcmIGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKLSAg
ICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciwgdWludDY0X3QgbmF2aWdhdGlvbklELAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwKICAgICAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJp
bmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0
YSYpOwotICAgIHZvaWQgdW5hYmxlVG9JbXBsZW1lbnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9p
ZCB1bmFibGVUb0ltcGxlbWVudFBvbGljeShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgYmVn
aW5TYWZlQnJvd3NpbmdDaGVjayhjb25zdCBVUkwmLCBib29sLCBXZWJGcmFtZVBvbGljeUxpc3Rl
bmVyUHJveHkmKTsKIAogICAgIFdlYkNvbnRlbnRNb2RlIGVmZmVjdGl2ZUNvbnRlbnRNb2RlQWZ0
ZXJBZGp1c3RpbmdQb2xpY2llcyhBUEk6OldlYnNpdGVQb2xpY2llcyYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYpOwogCi0gICAgdm9pZCB3aWxsU3VibWl0Rm9ybSh1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCBzb3VyY2VGcmFtZUlELCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0
cmluZywgU3RyaW5nPj4mIHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgY29u
c3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIHdpbGxTdWJtaXRGb3JtKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIHNvdXJjZUZyYW1lSUQsIGNvbnN0IFZl
Y3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiYgdGV4dEZpZWxkVmFsdWVzLCB1aW50NjRf
dCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwogCiAgICAgdm9pZCBjb250ZW50UnVsZUxp
c3ROb3RpZmljYXRpb24oVVJMJiYsIFdlYkNvcmU6OkNvbnRlbnRSdWxlTGlzdFJlc3VsdHMmJik7
CiAKICAgICAvLyBIaXN0b3J5IGNsaWVudAotICAgIHZvaWQgZGlkTmF2aWdhdGVXaXRoTmF2aWdh
dGlvbkRhdGEoY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYsIHVpbnQ2NF90IGZyYW1lSUQp
OwotICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNl
VVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBm
cmFtZUlEKTsKLSAgICB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcm
IHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgdWlu
dDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRVcGRhdGVIaXN0b3J5VGl0bGUoY29uc3QgU3Ry
aW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIHVpbnQ2NF90IGZyYW1lSUQpOworICAgIHZv
aWQgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFT
dG9yZSYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRQZXJmb3JtQ2xp
ZW50UmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYg
ZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9p
ZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcs
IGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
Zmllcik7CisgICAgdm9pZCBkaWRVcGRhdGVIaXN0b3J5VGl0bGUoY29uc3QgU3RyaW5nJiB0aXRs
ZSwgY29uc3QgU3RyaW5nJiB1cmwsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAKICAgICAv
LyBVSSBjbGllbnQKICAgICB2b2lkIGNyZWF0ZU5ld1BhZ2UoY29uc3QgRnJhbWVJbmZvRGF0YSYs
IE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiYsIE5hdmln
YXRpb25BY3Rpb25EYXRhJiYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZU5ld1BhZ2U6
OkRlbGF5ZWRSZXBseSYmKTsKICAgICB2b2lkIHNob3dQYWdlKCk7Ci0gICAgdm9pZCBydW5KYXZh
U2NyaXB0QWxlcnQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNj
cmlwdEFsZXJ0OjpEZWxheWVkUmVwbHkmJik7Ci0gICAgdm9pZCBydW5KYXZhU2NyaXB0Q29uZmly
bSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBj
b25zdCBTdHJpbmcmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmly
bTo6RGVsYXllZFJlcGx5JiYpOwotICAgIHZvaWQgcnVuSmF2YVNjcmlwdFByb21wdCh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJp
bmcmLCBjb25zdCBTdHJpbmcmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0
UHJvbXB0OjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
LCBjb25zdCBTdHJpbmcmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxl
cnQ6OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIHJ1bkphdmFTY3JpcHRDb25maXJtKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwg
Y29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENvbmZp
cm06OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIHJ1bkphdmFTY3JpcHRQcm9tcHQoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5K
YXZhU2NyaXB0UHJvbXB0OjpEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBzZXRTdGF0dXNUZXh0
KGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoV2ViSGl0
VGVzdFJlc3VsdERhdGEmJiwgdWludDMyX3QgbW9kaWZpZXJzLCBVc2VyRGF0YSYmKTsKIApAQCAt
MTcwMSwyMSArMTcwMSwyMSBAQCBwcml2YXRlOgogICAgIHZvaWQgcm9vdFZpZXdUb1NjcmVlbihj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiB2aWV3UmVjdCwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
Um9vdFZpZXdUb1NjcmVlbjo6RGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgYWNjZXNzaWJpbGl0
eVNjcmVlblRvUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcmVlblBvaW50LCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkludFBvaW50KT4mJik7CiAgICAgdm9pZCBy
b290Vmlld1RvQWNjZXNzaWJpbGl0eVNjcmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB2aWV3
UmVjdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpJbnRSZWN0KT4mJik7Ci0gICAg
dm9pZCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwodWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw6OkRlbGF5ZWRS
ZXBseSYmKTsKKyAgICB2b2lkIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuQmVmb3JlVW5sb2Fk
Q29uZmlybVBhbmVsOjpEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBkaWRDaGFuZ2VWaWV3cG9y
dFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJik7CiAgICAgdm9p
ZCBwYWdlRGlkU2Nyb2xsKCk7Ci0gICAgdm9pZCBydW5PcGVuUGFuZWwodWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgV2ViQ29yZTo6Rmls
ZUNob29zZXJTZXR0aW5ncyYpOworICAgIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgV2Vi
Q29yZTo6RmlsZUNob29zZXJTZXR0aW5ncyYpOwogICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQoY29u
c3QgV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIFNoYXJlU2hlZXRDYWxsYmFja0lE
KTsKLSAgICB2b2lkIHByaW50RnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YSh1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0
YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVv
dGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNl
VXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkV4
Y2VlZGVkRGF0YWJhc2VRdW90YTo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgcHJpbnRGcmFt
ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CisgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VO
YW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVp
bnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2Us
IHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkV4Y2VlZGVk
RGF0YWJhc2VRdW90YTo6RGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgcmVhY2hlZEFwcGxpY2F0
aW9uQ2FjaGVPcmlnaW5RdW90YShjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIHVpbnQ2
NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgdG90YWxCeXRlc05lZWRlZCwgTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6UmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YTo6RGVsYXllZFJl
cGx5JiYpOwotICAgIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVp
bnQ2NF90IGdlb2xvY2F0aW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVu
dGlmaWVyKTsKKyAgICB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1
aW50NjRfdCBnZW9sb2NhdGlvbklELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFN0cmluZyBv
cmlnaW5JZGVudGlmaWVyKTsKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlcigpOwogI2VuZGlmCi0gICAgdm9pZCByZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lv
bkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRp
ZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50
T3JpZ2luSWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYpOwotICAgIHZv
aWQgZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW5EYXRhLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
IHRvcExldmVsRG9jdW1lbnRPcmlnaW5EYXRhKTsKKyAgICB2b2lkIHJlcXVlc3RVc2VyTWVkaWFQ
ZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2VyTWVkaWFEb2N1
bWVudE9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYg
dG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVx
dWVzdCYmKTsKKyAgICB2b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90
IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5EYXRhLCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5EYXRhKTsKICAg
ICB2b2lkIGJlZ2luTW9uaXRvcmluZ0NhcHR1cmVEZXZpY2VzKCk7CiAKICAgICB2b2lkIHJ1bk1v
ZGFsKCk7CkBAIC0xODk1LDggKzE4OTUsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJpbnRGaW5p
c2hlZENhbGxiYWNrKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBDYWxsYmFja0lEKTsK
ICNlbmRpZgogCi0gICAgdm9pZCBmb2N1c2VkRnJhbWVDaGFuZ2VkKHVpbnQ2NF90IGZyYW1lSUQp
OwotICAgIHZvaWQgZnJhbWVTZXRMYXJnZXN0RnJhbWVDaGFuZ2VkKHVpbnQ2NF90IGZyYW1lSUQp
OworICAgIHZvaWQgZm9jdXNlZEZyYW1lQ2hhbmdlZChjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXI+Jik7CisgICAgdm9pZCBmcmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQo
Y29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiYpOwogCiAgICAgdm9pZCBk
aWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3RvbUNvbnRlbnRQcm92aWRlcihjb25zdCBTdHJpbmcm
IHN1Z2dlc3RlZEZpbGVuYW1lLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKTsKIApAQCAtMTk5
Nyw3ICsxOTk3LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFTlRfRklM
VEVSSU5HKQotICAgIHZvaWQgY29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKGNvbnN0
IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYsIHVpbnQ2NF90IGZyYW1lSUQp
OworICAgIHZvaWQgY29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKGNvbnN0IFdlYkNv
cmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
cik7CiAjZW5kaWYKIAogICAgIHZvaWQgdHJ5UmVsb2FkQWZ0ZXJQcm9jZXNzVGVybWluYXRpb24o
KTsKQEAgLTIxMTAsNyArMjExMCw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wgaXNJbkhh
cmR3YXJlS2V5Ym9hcmRNb2RlKCk7CiAjZW5kaWYKIAotICAgIHZvaWQgbWFrZVN0b3JhZ2VTcGFj
ZVJlcXVlc3QodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwg
dWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2
NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJik7CisgICAgdm9pZCBtYWtlU3RvcmFnZVNwYWNl
UmVxdWVzdChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxh
eU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdl
LCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYpOwogCiAgICAgV2Vha1B0cjxQYWdl
Q2xpZW50PiBtX3BhZ2VDbGllbnQ7CiAgICAgUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+IG1f
Y29uZmlndXJhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgppbmRleCBlY2FkOTVlNDZiNTQzYWM5MTUwNDBlNjBlZjQwNGJlZDY0MjY3
MTYxLi4xNTg5MTllMzE2MDExZDY5OTQwZGQ5YjFlMmY3Y2NjMzFlYTRlNDNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNSw5
ICsyNSw5IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgQ3JlYXRlTmV3UGFnZShz
dHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgT3B0
aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVz
IHdpbmRvd0ZlYXR1cmVzLCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZp
Z2F0aW9uQWN0aW9uRGF0YSkgLT4gKE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBu
ZXdQYWdlSUQsIE9wdGlvbmFsPFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycz4gbmV3
UGFnZVBhcmFtZXRlcnMpIFN5bmNocm9ub3VzCiAgICAgU2hvd1BhZ2UoKQogICAgIENsb3NlUGFn
ZShib29sIHN0b3BSZXNwb25zaXZlbmVzc1RpbWVyKQotICAgIFJ1bkphdmFTY3JpcHRBbGVydCh1
aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1l
U2VjdXJpdHlPcmlnaW4sIFN0cmluZyBtZXNzYWdlKSAtPiAoKSBTeW5jaHJvbm91cwotICAgIFJ1
bkphdmFTY3JpcHRDb25maXJtKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3NhZ2UpIC0+IChi
b29sIHJlc3VsdCkgU3luY2hyb25vdXMKLSAgICBSdW5KYXZhU2NyaXB0UHJvbXB0KHVpbnQ2NF90
IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0
eU9yaWdpbiwgU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBkZWZhdWx0VmFsdWUpIC0+IChTdHJpbmcg
cmVzdWx0KSBTeW5jaHJvbm91cworICAgIFJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBm
cmFtZVNlY3VyaXR5T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSkgLT4gKCkgU3luY2hyb25vdXMKKyAg
ICBSdW5KYXZhU2NyaXB0Q29uZmlybShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
c3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBT
dHJpbmcgbWVzc2FnZSkgLT4gKGJvb2wgcmVzdWx0KSBTeW5jaHJvbm91cworICAgIFJ1bkphdmFT
Y3JpcHRQcm9tcHQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3Nh
Z2UsIFN0cmluZyBkZWZhdWx0VmFsdWUpIC0+IChTdHJpbmcgcmVzdWx0KSBTeW5jaHJvbm91cwog
ICAgIE1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KHN0cnVjdCBXZWJLaXQ6OldlYkhpdFRlc3RSZXN1
bHREYXRhIGhpdFRlc3RSZXN1bHREYXRhLCB1aW50MzJfdCBtb2RpZmllcnMsIFdlYktpdDo6VXNl
ckRhdGEgdXNlckRhdGEpCiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKQEAgLTQ3
LDggKzQ3LDggQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBTZXRUb29sVGlwKFN0
cmluZyB0b29sVGlwKQogICAgIFNldEZvY3VzKGJvb2wgZm9jdXNlZCkKICAgICBUYWtlRm9jdXMo
dWludDMyX3QgZGlyZWN0aW9uKQotICAgIEZvY3VzZWRGcmFtZUNoYW5nZWQodWludDY0X3QgZnJh
bWVJRCkKLSAgICBGcmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQodWludDY0X3QgZnJhbWVJRCkK
KyAgICBGb2N1c2VkRnJhbWVDaGFuZ2VkKE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
cj4gZnJhbWVJRCkKKyAgICBGcmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQoT3B0aW9uYWw8V2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKQogICAgIFNldFJlbmRlclRyZWVTaXplKHVp
bnQ2NF90IHRyZWVTaXplKQogICAgIFNldFRvb2xiYXJzQXJlVmlzaWJsZShib29sIHRvb2xiYXJz
QXJlVmlzaWJsZSkKICAgICBHZXRUb29sYmFyc0FyZVZpc2libGUoKSAtPiAoYm9vbCB0b29sYmFy
c0FyZVZpc2libGUpIFN5bmNocm9ub3VzCkBAIC02OSwxMSArNjksMTEgQEAgbWVzc2FnZXMgLT4g
V2ViUGFnZVByb3h5IHsKICAgICBIaWRlVmFsaWRhdGlvbk1lc3NhZ2UoKQogI2VuZGlmCiAKLSAg
ICBSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBTdHJpbmcgbWVz
c2FnZSkgLT4gKGJvb2wgc2hvdWxkQ2xvc2UpIFN5bmNocm9ub3VzCisgICAgUnVuQmVmb3JlVW5s
b2FkQ29uZmlybVBhbmVsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFN0cmluZyBt
ZXNzYWdlKSAtPiAoYm9vbCBzaG91bGRDbG9zZSkgU3luY2hyb25vdXMKICAgICBQYWdlRGlkU2Ny
b2xsKCkKLSAgICBSdW5PcGVuUGFuZWwodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBzdHJ1Y3QgV2ViQ29yZTo6
RmlsZUNob29zZXJTZXR0aW5ncyBwYXJhbWV0ZXJzKQorICAgIFJ1bk9wZW5QYW5lbChXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBzdHJ1Y3QgV2ViQ29yZTo6RmlsZUNob29zZXJTZXR0
aW5ncyBwYXJhbWV0ZXJzKQogICAgIFNob3dTaGFyZVNoZWV0KHN0cnVjdCBXZWJDb3JlOjpTaGFy
ZURhdGFXaXRoUGFyc2VkVVJMIHNoYXJlRGF0YSwgdWludDY0X3QgY2FsbGJhY2tJRCkKLSAgICBQ
cmludEZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpIC0+ICgpIFN5bmNocm9ub3VzCisgICAgUHJpbnRG
cmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkgLT4gKCkgU3luY2hyb25vdXMK
ICAgICBSdW5Nb2RhbCgpCiAgICAgTm90aWZ5U2Nyb2xsZXJUaHVtYklzVmlzaWJsZUluUmVjdChX
ZWJDb3JlOjpJbnRSZWN0IHNjcm9sbGVyVGh1bWIpCiAgICAgUmVjb21tZW5kZWRTY3JvbGxiYXJT
dHlsZURpZENoYW5nZShpbnQzMl90IG5ld1N0eWxlKQpAQCAtMTAzLDExICsxMDMsMTEgQEAgbWVz
c2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgogCiAgICAgIyBQb2xpY3kgbWVzc2FnZXMK
LSAgICBEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBv
bGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBTdHJpbmcgZG93bmxv
YWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRh
dGEpCi0gICAgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKHVpbnQ2NF90IGZy
YW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9y
aWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmll
ciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9u
RGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBv
cmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
PiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVx
dWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZl
cmVuY2UgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNw
b25zZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKLSAg
ICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyh1aW50NjRfdCBmcmFtZUlELCBi
b29sIGlzTWFpbkZyYW1lLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1l
U2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVj
a0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6TmF2aWdh
dGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6OkZyYW1l
SW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdl
SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBv
cmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBJUEM6OkZv
cm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJl
ZGlyZWN0UmVzcG9uc2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpIC0+IChXZWJDb3JlOjpQ
b2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3Qg
V2ViQ29yZTo6UG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgdWludDY0X3QgbmV3TmF2aWdhdGlv
bklELCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgT3B0aW9uYWw8V2ViS2l0OjpXZWJz
aXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9saWNpZXMpIFN5bmNocm9ub3VzCi0gICAgRGVjaWRl
UG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5
Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6TmF2
aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBX
ZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIFVuYWJsZVRvSW1wbGVtZW50UG9saWN5KHVp
bnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6VXNl
ckRhdGEgdXNlckRhdGEpCisgICAgRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEg
ZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGlj
eUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgYm9v
bCBjYW5TaG93TUlNRVR5cGUsIFN0cmluZyBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlz
dGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uQXN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZp
Z2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGlu
Z0ZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5h
dGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVx
dWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2Vi
S2l0OjpVc2VyRGF0YSB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKKyAgICBEZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgYm9vbCBpc01haW5GcmFtZSwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9s
aWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJLaXQ6
Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBzdHJ1Y3QgV2ViS2l0
OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwg
SVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKSAtPiAoV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgZW51bTp1
aW50OF90IFdlYkNvcmU6OlBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90IG5ld05h
dmlnYXRpb25JRCwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIE9wdGlvbmFsPFdlYktp
dDo6V2Vic2l0ZVBvbGljaWVzRGF0YT4gd2Vic2l0ZVBvbGljaWVzKSBTeW5jaHJvbm91cworICAg
IERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5
T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlm
aWVyLCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9u
RGF0YSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBmcmFtZU5hbWUs
IHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgVW5h
YmxlVG9JbXBsZW1lbnRQb2xpY3koV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdl
YkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAK
ICAgICAjIFByb2dyZXNzIG1lc3NhZ2VzCiAgICAgRGlkQ2hhbmdlUHJvZ3Jlc3MoZG91YmxlIHZh
bHVlKQpAQCAtMTE3LDUxICsxMTcsNTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAg
ICBTZXROZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzKGJvb2wgbmV0d29ya1JlcXVlc3RzSW5Qcm9n
cmVzcykKIAogICAgICMgRnJhbWUgbGlmZXRpbWUgbWVzc2FnZXMKLSAgICBEaWRDcmVhdGVNYWlu
RnJhbWUodWludDY0X3QgZnJhbWVJRCkKLSAgICBEaWRDcmVhdGVTdWJmcmFtZSh1aW50NjRfdCBm
cmFtZUlEKQorICAgIERpZENyZWF0ZU1haW5GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCkKKyAgICBEaWRDcmVhdGVTdWJmcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCkKIAotICAgIERpZENyZWF0ZVdpbmRvdyh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3Qg
V2ViQ29yZTo6R2xvYmFsV2luZG93SWRlbnRpZmllciB3aW5kb3dJZGVudGlmaWVyKQorICAgIERp
ZENyZWF0ZVdpbmRvdyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdl
YkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXIgd2luZG93SWRlbnRpZmllcikKIAogICAgICMg
RnJhbWUgbG9hZCBtZXNzYWdlcwotICAgIERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwgdXJsLCBVUkwgdW5y
ZWFjaGFibGVVUkwsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlkUmVjZWl2ZVNl
cnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwg
V2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHVybCwgZG91YmxlIGRlbGF5LCBlbnVt
OmJvb2wgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0KQot
ICAgIERpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCkKLSAg
ICBEaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgVVJMIHVybCkKLSAgICBEaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFN0cmluZyBwcm92
aXNpb25hbFVSTCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgZW51bTpib29sIFdlYkNv
cmU6OldpbGxDb250aW51ZUxvYWRpbmcgd2lsbENvbnRpbnVlTG9hZGluZywgV2ViS2l0OjpVc2Vy
RGF0YSB1c2VyRGF0YSkKLSAgICBEaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBTdHJpbmcgbWltZVR5cGUsIGJvb2wgaGFzQ3VzdG9t
Q29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBsb2FkVHlwZSwgV2ViQ29yZTo6Q2VydGlmaWNhdGVJ
bmZvIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25h
bDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwg
V2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciBlcnJvciwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWRGaW5pc2hEb2N1bWVu
dExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdl
YktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlkRmluaXNoTG9hZEZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2Vy
RGF0YSkKLSAgICBEaWRGaXJzdExheW91dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktp
dDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAg
ICBEaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCB1cmwsIFVSTCB1bnJlYWNoYWJs
ZVVSTCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWRSZWNlaXZlU2VydmVyUmVk
aXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBXaWxsUGVyZm9ybUNsaWVu
dFJlZGlyZWN0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmlu
ZyB1cmwsIGRvdWJsZSBkZWxheSwgZW51bTpib29sIFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExp
c3QgbG9ja0JhY2tGb3J3YXJkTGlzdCkKKyAgICBEaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZy
YW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQorICAgIERpZENoYW5nZVByb3Zp
c2lvbmFsVVJMRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgVVJMIHVybCkKKyAgICBEaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBTdHJpbmcgcHJvdmlzaW9uYWxVUkwsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3Is
IGVudW06Ym9vbCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250aW51ZUxvYWRp
bmcsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkQ29tbWl0TG9hZEZvckZyYW1l
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IFN0cmluZyBtaW1lVHlwZSwgYm9vbCBoYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90
IGxvYWRUeXBlLCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGVJbmZvLCBib29s
IGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29u
dGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRh
KQorICAgIERpZEZhaWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwg
V2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWRGaW5pc2hEb2N1bWVudExvYWRGb3JG
cmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZEZpbmlzaExvYWRGb3JGcmFt
ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZEZpcnN0TGF5b3V0Rm9yRnJhbWUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRh
dGEpCisgICAgRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAg
RGlkUmVhY2hMYXlvdXRNaWxlc3RvbmUoT3B0aW9uU2V0PFdlYkNvcmU6OkxheW91dE1pbGVzdG9u
ZT4gbGF5b3V0TWlsZXN0b25lcykKLSAgICBEaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCBTdHJpbmcgdGl0bGUsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAg
RGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktp
dDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWREZXRl
Y3RYU1NGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRh
KQotICAgIERpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQzMl90IHR5cGUsIFVSTCB1cmwsIFdlYktpdDo6
VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlkQ2hhbmdlTWFpbkRvY3VtZW50KHVpbnQ2NF90IGZy
YW1lSUQpCi0gICAgRGlkRXhwbGljaXRPcGVuRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgVVJM
IHVybCkKKyAgICBEaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgU3RyaW5nIHRpdGxlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAg
IERpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWRSdW5JbnNlY3Vy
ZUNvbnRlbnRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViS2l0
OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWREZXRlY3RYU1NGb3JGcmFtZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBE
aWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMyX3QgdHlwZSwgVVJMIHVybCwg
V2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWRDaGFuZ2VNYWluRG9jdW1lbnQoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCisgICAgRGlkRXhwbGljaXRPcGVuRm9yRnJh
bWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFVSTCB1cmwpCiAgICAgRGlkRGVz
dHJveU5hdmlnYXRpb24odWludDY0X3QgbmF2aWdhdGlvbklEKQogCiAgICAgSGFzSW5zZWN1cmVD
b250ZW50KCkgLT4gKGVudW06Ym9vbCBXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQgaGFzSW5z
ZWN1cmVDb250ZW50KSBTeW5jaHJvbm91cwogCiAgICAgTWFpbkZyYW1lUGx1Z2luSGFuZGxlc1Bh
Z2VTY2FsZUdlc3R1cmVEaWRDaGFuZ2UoYm9vbCBtYWluRnJhbWVQbHVnaW5IYW5kbGVzUGFnZVNj
YWxlR2VzdHVyZSkKIAotICAgIEZyYW1lRGlkQmVjb21lRnJhbWVTZXQodWludDY0X3QgZnJhbWVJ
RCwgYm9vbCB2YWx1ZSkKKyAgICBGcmFtZURpZEJlY29tZUZyYW1lU2V0KFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBib29sIHZhbHVlKQogCiAgICAgIyBIaXN0b3J5IGNsaWVudCBt
ZXNzYWdlcy4KLSAgICBEaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShzdHJ1Y3QgV2ViS2l0
OjpXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlIHN0b3JlLCB1aW50NjRfdCBmcmFtZUlEKQotICAgIERp
ZFBlcmZvcm1DbGllbnRSZWRpcmVjdChTdHJpbmcgc291cmNlVVJMU3RyaW5nLCBTdHJpbmcgZGVz
dGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpCi0gICAgRGlkUGVyZm9ybVNlcnZl
clJlZGlyZWN0KFN0cmluZyBzb3VyY2VVUkxTdHJpbmcsIFN0cmluZyBkZXN0aW5hdGlvblVSTFN0
cmluZywgdWludDY0X3QgZnJhbWVJRCkKLSAgICBEaWRVcGRhdGVIaXN0b3J5VGl0bGUoU3RyaW5n
IHRpdGxlLCBTdHJpbmcgdXJsLCB1aW50NjRfdCBmcmFtZUlEKQorICAgIERpZE5hdmlnYXRlV2l0
aE5hdmlnYXRpb25EYXRhKHN0cnVjdCBXZWJLaXQ6OldlYk5hdmlnYXRpb25EYXRhU3RvcmUgc3Rv
cmUsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQorICAgIERpZFBlcmZvcm1DbGll
bnRSZWRpcmVjdChTdHJpbmcgc291cmNlVVJMU3RyaW5nLCBTdHJpbmcgZGVzdGluYXRpb25VUkxT
dHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQorICAgIERpZFBlcmZvcm1T
ZXJ2ZXJSZWRpcmVjdChTdHJpbmcgc291cmNlVVJMU3RyaW5nLCBTdHJpbmcgZGVzdGluYXRpb25V
UkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQorICAgIERpZFVwZGF0
ZUhpc3RvcnlUaXRsZShTdHJpbmcgdGl0bGUsIFN0cmluZyB1cmwsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBmcmFtZUlEKQogCiAgICAgIyBDdXN0b20gcmVwcmVzZW50YXRpb25zCiAgICAgRGlk
RmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0b21Db250ZW50UHJvdmlkZXIoU3RyaW5nIHN1Z2dlc3Rl
ZEZpbGVuYW1lLCBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkKIAogICAgICMgRm9ybXMgbWVzc2Fn
ZXMKLSAgICBXaWxsU3VibWl0Rm9ybSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBzb3VyY2VG
cmFtZUlELCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4gdGV4dEZpZWxkVmFsdWVz
LCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIFdp
bGxTdWJtaXRGb3JtKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgc291cmNlRnJhbWVJRCwgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0
cmluZz4+IHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2Vy
RGF0YSB1c2VyRGF0YSkKIAogICAgICMgQ2FsbGJhY2sgbWVzc2FnZXMKICAgICBWb2lkQ2FsbGJh
Y2soV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCkBAIC0yNzUsMTggKzI3NSwxOCBAQCBt
ZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2VuZGlmCiAKICAgICAjIERhdGFiYXNlIG1lc3Nh
Z2VzCi0gICAgRXhjZWVkZWREYXRhYmFzZVF1b3RhKHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBv
cmlnaW5JZGVudGlmaWVyLCBTdHJpbmcgZGF0YWJhc2VOYW1lLCBTdHJpbmcgZGF0YWJhc2VEaXNw
bGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNh
Z2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdl
KSAtPiAodWludDY0X3QgbmV3UXVvdGEpIFN5bmNocm9ub3VzCisgICAgRXhjZWVkZWREYXRhYmFz
ZVF1b3RhKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRl
bnRpZmllciwgU3RyaW5nIGRhdGFiYXNlTmFtZSwgU3RyaW5nIGRhdGFiYXNlRGlzcGxheU5hbWUs
IHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50
NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSkgLT4gKHVp
bnQ2NF90IG5ld1F1b3RhKSBTeW5jaHJvbm91cwogCiAgICAgIyBBcHBsaWNhdGlvbiBjYWNoZSBt
ZXNzYWdlcwogICAgIFJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU3RyaW5nIG9y
aWdpbklkZW50aWZpZXIsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgdG90YWxCeXRl
c05lZWRlZCkgLT4gKHVpbnQ2NF90IG5ld1F1b3RhKSBTeW5jaHJvbm91cwogCiAgICAgIyBHZW9s
b2NhdGlvbiBtZXNzYWdlcwotICAgIFJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFt
ZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgb3JpZ2lu
SWRlbnRpZmllcikKKyAgICBSZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWlu
dDY0X3QgZ2VvbG9jYXRpb25JRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0
cmluZyBvcmlnaW5JZGVudGlmaWVyKQogICAgIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAg
ICAgIyBNZWRpYVN0ZWFtIG1lc3NhZ2VzCi0gICAgUmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25G
b3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZp
ZXIsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wTGV2ZWxEb2N1bWVudE9y
aWdpbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QgcmVxdWVz
dCkKLSAgICBFbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJ
RCwgdWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIpCisgICAgUmVxdWVz
dFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBzdHJ1
Y3QgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0IHJlcXVlc3QpCisgICAgRW51bWVyYXRlTWVk
aWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHVzZXJN
ZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllcikKICAgICBCZWdpbk1vbml0
b3JpbmdDYXB0dXJlRGV2aWNlcygpCiAjZW5kaWYKIApAQCAtNDczLDcgKzQ3Myw3IEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRF
UklORykKLSAgICBDb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWUoV2ViQ29yZTo6Q29u
dGVudEZpbHRlclVuYmxvY2tIYW5kbGVyIHVuYmxvY2tIYW5kbGVyLCB1aW50NjRfdCBmcmFtZUlE
KQorICAgIENvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShXZWJDb3JlOjpDb250ZW50
RmlsdGVyVW5ibG9ja0hhbmRsZXIgdW5ibG9ja0hhbmRsZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlEKQogI2VuZGlmCiAKICAgICBJc1BsYXlpbmdNZWRpYURpZENoYW5nZSh1bnNp
Z25lZCBzdGF0ZSwgdWludDY0X3Qgc291cmNlRWxlbWVudElEKQpAQCAtNTM5LDcgKzUzOSw3IEBA
IG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgTG9hZFN5bmNocm9ub3VzVVJMU2NoZW1l
VGFzayhzdHJ1Y3QgV2ViS2l0OjpVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyBwYXJhbWV0ZXJzKSAt
PiAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciBlcnJvciwgVmVjdG9yPGNoYXI+IGRhdGEpIFN5bmNocm9ub3VzCiAKICNpZiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQotICAgIFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3ModWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSBvcmlnaW4sIGJvb2wgbWF5UHJvbXB0KSAtPiAoZW51bTp1aW50OF90IFdlYkNvcmU6
OkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUgcGVybWlzc2lvblN0YXRl
KSBBc3luYworICAgIFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3Mo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEgb3JpZ2luLCBib29sIG1heVByb21wdCkgLT4gKGVudW06dWludDhfdCBXZWJD
b3JlOjpEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlIHBlcm1pc3Npb25T
dGF0ZSkgQXN5bmMKICNlbmRpZgogCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IGUxNjkxMzdm
NTM4OWQzMGJiOGIxMWIzYThlMWY1MGNhNDNhYTA2ZWQuLjk1YjU4NjM5ZjNjNDBjYzYzMDBhNDRm
MmMwNDQ5ZWZmZWY4YWQxMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcApAQCAtODI3LDI1ICs4MjcsMjUgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRp
ZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqIGxhdW5jaGVyLCBJUEM6OkNvbm5lY3QK
ICNlbmRpZgogfQogCi1XZWJGcmFtZVByb3h5KiBXZWJQcm9jZXNzUHJveHk6OndlYkZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQpIGNvbnN0CitXZWJGcmFtZVByb3h5KiBXZWJQcm9jZXNzUHJveHk6Ondl
YkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSBjb25zdAogewogICAgIGlmICghV2ViRnJh
bWVQcm94eU1hcDo6aXNWYWxpZEtleShmcmFtZUlEKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAg
ICAgIHJldHVybiBudWxscHRyOwogCiAgICAgcmV0dXJuIG1fZnJhbWVNYXAuZ2V0KGZyYW1lSUQp
OwogfQogCi1ib29sIFdlYlByb2Nlc3NQcm94eTo6Y2FuQ3JlYXRlRnJhbWUodWludDY0X3QgZnJh
bWVJRCkgY29uc3QKK2Jvb2wgV2ViUHJvY2Vzc1Byb3h5OjpjYW5DcmVhdGVGcmFtZShGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCkgY29uc3QKIHsKICAgICByZXR1cm4gV2ViRnJhbWVQcm94eU1hcDo6
aXNWYWxpZEtleShmcmFtZUlEKSAmJiAhbV9mcmFtZU1hcC5jb250YWlucyhmcmFtZUlEKTsKIH0K
IAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmZyYW1lQ3JlYXRlZCh1aW50NjRfdCBmcmFtZUlELCBX
ZWJGcmFtZVByb3h5JiBmcmFtZVByb3h5KQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmZyYW1lQ3Jl
YXRlZChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViRnJhbWVQcm94eSYgZnJhbWVQcm94eSkK
IHsKICAgICBtX2ZyYW1lTWFwLnNldChmcmFtZUlELCAmZnJhbWVQcm94eSk7CiB9CiAKLXZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpkaWREZXN0cm95RnJhbWUodWludDY0X3QgZnJhbWVJRCkKK3ZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpkaWREZXN0cm95RnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQp
CiB7CiAgICAgLy8gSWYgdGhlIHBhZ2UgaXMgY2xvc2VkIGJlZm9yZSBpdCBoYXMgaGFkIHRoZSBj
aGFuY2UgdG8gc2VuZCB0aGUgRGlkQ3JlYXRlTWFpbkZyYW1lIG1lc3NhZ2UKICAgICAvLyBiYWNr
IHRvIHRoZSBVSVByb2Nlc3MsIHRoZW4gdGhlIGZyYW1lRGVzdHJveWVkIG1lc3NhZ2Ugd2lsbCBz
dGlsbCBiZSByZWNlaXZlZCBiZWNhdXNlIGl0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5oCmluZGV4IDMwMDk2ZGQzMDg1NDhiODkwNDljODM1MTBlZWE3MWJiMDU5NzZm
ZmMuLjE4ZjQ4ODBhMGJiMmQ0ZDgzZDJmYjZjNTk3Yzg3YzdjZGQ2ZWM4OTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0zOCw2ICszOCw3IEBACiAjaW5j
bHVkZSAiVmlzaWJsZVdlYlBhZ2VDb3VudGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lc3Nh
Z2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZXNzYWdlUG9ydElk
ZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CkBAIC05Nyw3
ICs5OCw3IEBAIGVudW0gY2xhc3MgQWxsb3dQcm9jZXNzQ2FjaGluZyB7IE5vLCBZZXMgfTsKIAog
Y2xhc3MgV2ViUHJvY2Vzc1Byb3h5IDogcHVibGljIEF1eGlsaWFyeVByb2Nlc3NQcm94eSwgcHVi
bGljIFJlc3BvbnNpdmVuZXNzVGltZXI6OkNsaWVudCwgcHVibGljIFRocmVhZFNhZmVSZWZDb3Vu
dGVkPFdlYlByb2Nlc3NQcm94eT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxXZWJQcm9jZXNzUHJv
eHk+LCBwcml2YXRlIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQgewogcHVibGljOgotICAgIHR5cGVk
ZWYgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYkZyYW1lUHJveHk+PiBXZWJGcmFtZVByb3h5
TWFwOworICAgIHR5cGVkZWYgSGFzaE1hcDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZlB0
cjxXZWJGcmFtZVByb3h5Pj4gV2ViRnJhbWVQcm94eU1hcDsKICAgICB0eXBlZGVmIEhhc2hNYXA8
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYlBhZ2VQcm94eSo+IFdlYlBhZ2VQcm94eU1hcDsK
ICAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxBUEk6OlVzZXJJbml0aWF0ZWRB
Y3Rpb24+PiBVc2VySW5pdGlhdGVkQWN0aW9uTWFwOwogCkBAIC0xNjQsOSArMTY1LDkgQEAgcHVi
bGljOgogICAgIFJlc3BvbnNpdmVuZXNzVGltZXImIHJlc3BvbnNpdmVuZXNzVGltZXIoKSB7IHJl
dHVybiBtX3Jlc3BvbnNpdmVuZXNzVGltZXI7IH0KICAgICBib29sIGlzUmVzcG9uc2l2ZSgpIGNv
bnN0OwogCi0gICAgV2ViRnJhbWVQcm94eSogd2ViRnJhbWUodWludDY0X3QpIGNvbnN0OwotICAg
IGJvb2wgY2FuQ3JlYXRlRnJhbWUodWludDY0X3QgZnJhbWVJRCkgY29uc3Q7Ci0gICAgdm9pZCBm
cmFtZUNyZWF0ZWQodWludDY0X3QsIFdlYkZyYW1lUHJveHkmKTsKKyAgICBXZWJGcmFtZVByb3h5
KiB3ZWJGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpIGNvbnN0OworICAgIGJvb2wgY2Fu
Q3JlYXRlRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKSBjb25zdDsKKyAgICB2b2lkIGZy
YW1lQ3JlYXRlZChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkZyYW1lUHJveHkmKTsKICAg
ICB2b2lkIGRpc2Nvbm5lY3RGcmFtZXNGcm9tUGFnZShXZWJQYWdlUHJveHkqKTsgLy8gSW5jbHVk
aW5nIG1haW4gZnJhbWUuCiAgICAgc2l6ZV90IGZyYW1lQ291bnRJblBhZ2UoV2ViUGFnZVByb3h5
KikgY29uc3Q7IC8vIEluY2x1ZGluZyBtYWluIGZyYW1lLgogCkBAIC0zMzUsNyArMzM2LDcgQEAg
cHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICAvLyBJUEMgbWVzc2FnZSBoYW5kbGVycy4KICAgICB2
b2lkIHVwZGF0ZUJhY2tGb3J3YXJkSXRlbShjb25zdCBCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUm
KTsKLSAgICB2b2lkIGRpZERlc3Ryb3lGcmFtZSh1aW50NjRfdCk7CisgICAgdm9pZCBkaWREZXN0
cm95RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZERlc3Ryb3lV
c2VyR2VzdHVyZVRva2VuKHVpbnQ2NF90KTsKIAogICAgIGJvb2wgY2FuQmVBZGRlZFRvV2ViUHJv
Y2Vzc0NhY2hlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZjNkNWU5MzFlNmRlZTkwMmE0YWM1ZTVmYzVi
MTBkZDQ2MTViMTVkMC4uMzJiYWZlYTllMTA5NThjMjVjZDE5NGRhMTg0NTM2YWQwOTNmNzUyZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNz
YWdlcy5pbgpAQCAtMjIsNyArMjIsNyBAQAogCiBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUHJveHkg
TGVnYWN5UmVjZWl2ZXIgewogICAgIFVwZGF0ZUJhY2tGb3J3YXJkSXRlbShzdHJ1Y3QgV2ViS2l0
OjpCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUgYmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlKQotICAg
IERpZERlc3Ryb3lGcmFtZSh1aW50NjRfdCBmcmFtZUlEKSAKKyAgICBEaWREZXN0cm95RnJhbWUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIAogCiAgICAgRGlkRGVzdHJveVVzZXJH
ZXN0dXJlVG9rZW4odWludDY0X3QgdXNlckdlc3R1cmVUb2tlbklEKSAKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQppbmRleCA2ODExZTg3YTRhNDIxMDA1
YmQ5NGE3YWMyMTY1NDNlY2MwMGE3N2ZjLi5jMjk5MjE0NThhZjAxZmQ5N2E0MDA5MmM3MTNmNjdj
NDFmZjc3ZTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
dy5tbQpAQCAtNzAxLDkgKzcwMSw5IEBAIC0gKE5TVUludGVnZXIpX3drX3BhZ2VDb3VudEZvclBy
aW50Rm9ybWF0dGVyOihfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIgKilwcmludEZvCiAgICAgaWYg
KF9pc1ByaW50aW5nVG9QREYpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgdWludDY0X3QgZnJh
bWVJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRDsKICAgICBpZiAoX1dL
RnJhbWVIYW5kbGUgKmhhbmRsZSA9IHByaW50Rm9ybWF0dGVyLmZyYW1lVG9QcmludCkKLSAgICAg
ICAgZnJhbWVJRCA9IGhhbmRsZS5fZnJhbWVJRDsKKyAgICAgICAgZnJhbWVJRCA9IFdlYkNvcmU6
OmZyYW1lSWRlbnRpZmllckZyb21JRChoYW5kbGUuX2ZyYW1lSUQpOwogICAgIGVsc2UgaWYgKGF1
dG8gbWFpbkZyYW1lID0gX3BhZ2UtPm1haW5GcmFtZSgpKQogICAgICAgICBmcmFtZUlEID0gbWFp
bkZyYW1lLT5mcmFtZUlEKCk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggYjAyODI0ODkyMDAzYTA0OTg5MjllNzA2YTU5
MDQ1OWE0Zjg3MWFjZC4uODJkMzU0MjE3YjcwNjQyMDFlM2Q3YjA3NmU1YjA1OWI5NjAxMWNmMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBA
IC0xMDY2LDcgKzEwNjYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlU21hcnRNYWduaWZp
Y2F0aW9uSW5mb3JtYXRpb25Gb3JQb3RlbnRpYWxUYXAodWludDY0X3QgcgogICAgIHBhZ2VDbGll
bnQoKS5oYW5kbGVTbWFydE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbkZvclBvdGVudGlhbFRhcChy
ZXF1ZXN0SUQsIHJlbmRlclJlY3QsIGZpdEVudGlyZVJlY3QsIHZpZXdwb3J0TWluaW11bVNjYWxl
LCB2aWV3cG9ydE1heGltdW1TY2FsZSk7CiB9CiAKLXVpbnQzMl90IFdlYlBhZ2VQcm94eTo6Y29t
cHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYodWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
UHJpbnRJbmZvJiBwcmludEluZm8sIERyYXdUb1BERkNhbGxiYWNrOjpDYWxsYmFja0Z1bmN0aW9u
JiYgY2FsbGJhY2spCit1aW50MzJfdCBXZWJQYWdlUHJveHk6OmNvbXB1dGVQYWdlc0ZvclByaW50
aW5nQW5kRHJhd1RvUERGKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBQcmludEluZm8m
IHByaW50SW5mbywgRHJhd1RvUERGQ2FsbGJhY2s6OkNhbGxiYWNrRnVuY3Rpb24mJiBjYWxsYmFj
aykKIHsKICAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpIHsKICAgICAgICAgY2FsbGJhY2so
SVBDOjpEYXRhUmVmZXJlbmNlKCksIENhbGxiYWNrQmFzZTo6RXJyb3I6Ok93bmVyV2FzSW52YWxp
ZGF0ZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24v
V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
QXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNwcAppbmRleCBlNjM1M2NjZGQ1
NGFkZmE1YWE1OTA1Yjg5NzMwMzRiYzFjZTk1NmYyLi43ZjU3ZmY4MGFjZDJiOTUxMTU5MTBmNTk1
OTRkMWRmY2Y0MzZkM2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0
b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNwcApAQCAt
MTQzLDcgKzE0Myw3IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGV2YWx1YXRlSmF2YVNjcmlwdENhbGxi
YWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmCiAgICAgaWYgKCFhdXRvbWF0
aW9uU2Vzc2lvblByb3h5KQogICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29u
dGV4dCk7CiAKLSAgICB1aW50NjRfdCBmcmFtZUlEID0gSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQs
IGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKTsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCA9IFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRChKU1ZhbHVlVG9OdW1iZXIo
Y29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pKTsKICAgICB1aW50NjRfdCBjYWxsYmFj
a0lEID0gSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1sxXSwgZXhjZXB0aW9uKTsK
ICAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwg
YXJndW1lbnRzWzJdLCBleGNlcHRpb24pKTsKIApAQCAtMjIwLDcgKzIyMCw3IEBAIFdlYkNvcmU6
OkVsZW1lbnQqIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmVsZW1lbnRGb3JOb2RlSGFuZGxl
KFdlYkZyYW1lJiBmcmFtCiAKIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZGlkQ2xl
YXJXaW5kb3dPYmplY3RGb3JGcmFtZShXZWJGcmFtZSYgZnJhbWUpCiB7Ci0gICAgdWludDY0X3Qg
ZnJhbWVJRCA9IGZyYW1lLmZyYW1lSUQoKTsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCA9IGZyYW1lLmZyYW1lSUQoKTsKICAgICBpZiAoSlNPYmplY3RSZWYgc2NyaXB0T2Jq
ZWN0ID0gbV93ZWJGcmFtZVNjcmlwdE9iamVjdE1hcC50YWtlKGZyYW1lSUQpKQogICAgICAgICBK
U1ZhbHVlVW5wcm90ZWN0KGZyYW1lLmpzQ29udGV4dCgpLCBzY3JpcHRPYmplY3QpOwogCkBAIC0y
MzIsNyArMjMyLDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpkaWRDbGVhcldp
bmRvd09iamVjdEZvckZyYW1lKFdlYkZyYW1lJiBmcmFtZSkKICAgICAgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2Vi
QXV0b21hdGlvblNlc3Npb246OkRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKGNhbGxiYWNr
SUQsIGVycm9yTWVzc2FnZSwgZXJyb3JUeXBlKSwgMCk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlv
blNlc3Npb25Qcm94eTo6ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIGZ1bmN0aW9u
LCBWZWN0b3I8U3RyaW5nPiBhcmd1bWVudHMsIGJvb2wgZXhwZWN0c0ltcGxpY2l0Q2FsbGJhY2tB
cmd1bWVudCwgaW50IGNhbGxiYWNrVGltZW91dCwgdWludDY0X3QgY2FsbGJhY2tJRCkKK3ZvaWQg
V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgY29uc3QgU3RyaW5nJiBmdW5jdGlvbiwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRzLCBi
b29sIGV4cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJndW1lbnQsIGludCBjYWxsYmFja1RpbWVvdXQs
IHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsKQEAgLTI2Myw3
ICsyNjMsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmV2YWx1YXRlSmF2YVNj
cmlwdEZ1bmN0aW9uKFdlYkNvcmU6OlBhZ2VJZGVudGlmaQogICAgICAgICB0b0pTVmFsdWUoY29u
dGV4dCwgZnVuY3Rpb24pLAogICAgICAgICB0b0pTQXJyYXkoY29udGV4dCwgYXJndW1lbnRzLCB0
b0pTVmFsdWUsICZleGNlcHRpb24pLAogICAgICAgICBKU1ZhbHVlTWFrZUJvb2xlYW4oY29udGV4
dCwgZXhwZWN0c0ltcGxpY2l0Q2FsbGJhY2tBcmd1bWVudCksCi0gICAgICAgIEpTVmFsdWVNYWtl
TnVtYmVyKGNvbnRleHQsIGZyYW1lSUQpLAorICAgICAgICBKU1ZhbHVlTWFrZU51bWJlcihjb250
ZXh0LCBmcmFtZUlELnRvVUludDY0KCkpLAogICAgICAgICBKU1ZhbHVlTWFrZU51bWJlcihjb250
ZXh0LCBjYWxsYmFja0lEKSwKICAgICAgICAgSlNPYmplY3RNYWtlRnVuY3Rpb25XaXRoQ2FsbGJh
Y2soY29udGV4dCwgbnVsbHB0ciwgZXZhbHVhdGVKYXZhU2NyaXB0Q2FsbGJhY2spLAogICAgICAg
ICBKU1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCBjYWxsYmFja1RpbWVvdXQpCkBAIC0zMDAsNyAr
MzAwLDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpldmFsdWF0ZUphdmFTY3Jp
cHRGdW5jdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRpZmkKICAgICBkaWRFdmFsdWF0ZUphdmFTY3Jp
cHRGdW5jdGlvbihmcmFtZUlELCBjYWxsYmFja0lELCBleGNlcHRpb25NZXNzYWdlLCBlcnJvclR5
cGUpOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZEV2YWx1YXRlSmF2
YVNjcmlwdEZ1bmN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNv
bnN0IFN0cmluZyYgcmVzdWx0LCBjb25zdCBTdHJpbmcmIGVycm9yVHlwZSkKK3ZvaWQgV2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eTo6ZGlkRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFN0
cmluZyYgcmVzdWx0LCBjb25zdCBTdHJpbmcmIGVycm9yVHlwZSkKIHsKICAgICBhdXRvIGZpbmRS
ZXN1bHQgPSBtX3dlYkZyYW1lUGVuZGluZ0V2YWx1YXRlSmF2YVNjcmlwdENhbGxiYWNrc01hcC5m
aW5kKGZyYW1lSUQpOwogICAgIGlmIChmaW5kUmVzdWx0ICE9IG1fd2ViRnJhbWVQZW5kaW5nRXZh
bHVhdGVKYXZhU2NyaXB0Q2FsbGJhY2tzTWFwLmVuZCgpKSB7CkBAIC0zMTMsMTIgKzMxMywxMyBA
QCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1
bmN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Np
b246OkRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKGNhbGxiYWNrSUQsIHJlc3VsdCwgZXJy
b3JUeXBlKSwgMCk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2
ZUNoaWxkRnJhbWVXaXRoT3JkaW5hbChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG9yZGluYWwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
T3B0aW9uYWw8U3RyaW5nPiwgdWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorLy8gRklY
TUU6IFRoZXNlIGNhbGxiYWNrcyBzaG91bGQgdGFrZSBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXI+Lgordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRG
cmFtZVdpdGhPcmRpbmFsKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQzMl90IG9yZGluYWwsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAgIGlmICghcGFnZSkgewogICAgICAgICBTdHJp
bmcgd2luZG93Tm90Rm91bmRFcnJvclR5cGUgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0
b21hdGlvbjo6RXJyb3JNZXNzYWdlOjpXaW5kb3dOb3RGb3VuZCk7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIod2luZG93Tm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKQEAgLTMyNiwzNyArMzI3LDM3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoT3JkaW5hbChXZWJDb3JlOjpQYWdlSWRlbnRpCiAK
ICAgICBXZWJGcmFtZSogZnJhbWUgPSBmcmFtZUlEID8gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
d2ViRnJhbWUoZnJhbWVJRCkgOiBwYWdlLT5tYWluV2ViRnJhbWUoKTsKICAgICBpZiAoIWZyYW1l
KSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDAp
OworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCB7IH0p
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFt
ZSA9IGZyYW1lLT5jb3JlRnJhbWUoKTsKICAgICBpZiAoIWNvcmVGcmFtZSkgewotICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAogICAgIFdlYkNvcmU6OkZyYW1lKiBjb3JlQ2hpbGRGcmFtZSA9IGNvcmVG
cmFtZS0+dHJlZSgpLnNjb3BlZENoaWxkKG9yZGluYWwpOwogICAgIGlmICghY29yZUNoaWxkRnJh
bWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwg
MCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIHsg
fSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBXZWJGcmFtZSogY2hpbGRGcmFtZSA9
IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpjb3JlQ2hpbGRGcmFtZSk7CiAgICAgaWYgKCFjaGls
ZEZyYW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5
cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBl
LCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgY29tcGxldGlvbkhhbmRsZXIo
V1RGOjpudWxsb3B0LCBjaGlsZEZyYW1lLT5mcmFtZUlEKCkpOwogfQogCi12b2lkIFdlYkF1dG9t
YXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUoV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcm
IG5vZGVIYW5kbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWlu
dDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOb2RlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmlu
ZyYgbm9kZUhhbmRsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdl
YlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAg
ICAgaWYgKCFwYWdlKSB7CiAgICAgICAgIFN0cmluZyB3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSA9
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRW
YWx1ZShJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OldpbmRv
d05vdEZvdW5kKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIod2luZG93Tm90Rm91bmRFcnJv
clR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9y
VHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMzY0LDM3ICszNjUsMzcg
QEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhO
b2RlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJZGUKIAogICAgIFdlYkZyYW1lKiBmcmFtZSA9IGZyYW1l
SUQgPyBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSA6IHBhZ2UtPm1h
aW5XZWJGcmFtZSgpOwogICAgIGlmICghZnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
ICAgICBXZWJDb3JlOjpFbGVtZW50KiBjb3JlRWxlbWVudCA9IGVsZW1lbnRGb3JOb2RlSGFuZGxl
KCpmcmFtZSwgbm9kZUhhbmRsZSk7CiAgICAgaWYgKCFpczxXZWJDb3JlOjpIVE1MRnJhbWVFbGVt
ZW50QmFzZT4oY29yZUVsZW1lbnQpKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1l
Tm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5v
dEZvdW5kRXJyb3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgV2Vi
Q29yZTo6RnJhbWUqIGNvcmVGcmFtZUZyb21FbGVtZW50ID0gZG93bmNhc3Q8V2ViQ29yZTo6SFRN
TEZyYW1lRWxlbWVudEJhc2U+KCpjb3JlRWxlbWVudCkuY29udGVudEZyYW1lKCk7CiAgICAgaWYg
KCFjb3JlRnJhbWVGcm9tRWxlbWVudCkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFt
ZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVO
b3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFdl
YkZyYW1lKiBmcmFtZUZyb21FbGVtZW50ID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmNvcmVG
cmFtZUZyb21FbGVtZW50KTsKICAgICBpZiAoIWZyYW1lRnJvbUVsZW1lbnQpIHsKLSAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQsIGZyYW1l
RnJvbUVsZW1lbnQtPmZyYW1lSUQoKSk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoTmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBw
YWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCB1aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0
aE5hbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsKICAgICAgICAgU3RyaW5nIHdpbmRv
d05vdEZvdW5kRXJyb3JUeXBlID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBl
cnM6OmdldEVudW1Db25zdGFudFZhbHVlKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
OkVycm9yTWVzc2FnZTo6V2luZG93Tm90Rm91bmQpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cih3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CkBAIC00MDIsMzcgKzQwMywzNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJl
c29sdmVDaGlsZEZyYW1lV2l0aE5hbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZQogCiAgICAgV2Vi
RnJhbWUqIGZyYW1lID0gZnJhbWVJRCA/IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1l
KGZyYW1lSUQpIDogcGFnZS0+bWFpbldlYkZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkgewotICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAogICAgIFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWUgPSBmcmFt
ZS0+Y29yZUZyYW1lKCk7CiAgICAgaWYgKCFjb3JlRnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKICAgICBXZWJDb3JlOjpGcmFtZSogY29yZUNoaWxkRnJhbWUgPSBjb3JlRnJhbWUtPnRy
ZWUoKS5zY29wZWRDaGlsZChuYW1lKTsKICAgICBpZiAoIWNvcmVDaGlsZEZyYW1lKSB7Ci0gICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCiAgICAgV2ViRnJhbWUqIGNoaWxkRnJhbWUgPSBXZWJGcmFtZTo6
ZnJvbUNvcmVGcmFtZSgqY29yZUNoaWxkRnJhbWUpOwogICAgIGlmICghY2hpbGRGcmFtZSkgewot
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVsbG9w
dCwgY2hpbGRGcmFtZS0+ZnJhbWVJRCgpKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lv
blByb3h5OjpyZXNvbHZlUGFyZW50RnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
LCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmlu
Zz4sIHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0b21hdGlvblNl
c3Npb25Qcm94eTo6cmVzb2x2ZVBhcmVudEZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAgIGlmICghcGFnZSkgewogICAgICAgICBTdHJpbmcg
d2luZG93Tm90Rm91bmRFcnJvclR5cGUgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
SGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6RXJyb3JNZXNzYWdlOjpXaW5kb3dOb3RGb3VuZCk7Ci0gICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIod2luZG93Tm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKQEAgLTQ0MCwyMCArNDQxLDIwIEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eTo6cmVzb2x2ZVBhcmVudEZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJCiAKICAg
ICBXZWJGcmFtZSogZnJhbWUgPSBmcmFtZUlEID8gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2Vi
RnJhbWUoZnJhbWVJRCkgOiBwYWdlLT5tYWluV2ViRnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKSB7
Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgV2ViRnJhbWUqIHBhcmVudEZyYW1lID0gZnJh
bWUtPnBhcmVudEZyYW1lKCk7CiAgICAgaWYgKCFwYXJlbnRGcmFtZSkgewotICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVsbG9wdCwgcGFyZW50RnJh
bWUtPmZyYW1lSUQoKSk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Zm9j
dXNGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQp
Cit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmZvY3VzRnJhbWUoV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsK
ICAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdl
SUQpOwogICAgIGlmICghcGFnZSkKQEAgLTUyOCw3ICs1MjksNyBAQCBzdGF0aWMgV2ViQ29yZTo6
RmxvYXRQb2ludCBjb252ZXJ0UG9pbnRGcm9tRnJhbWVDbGllbnRUb1Jvb3RWaWV3KFdlYkNvcmU6
OkZyYW1lVgogICAgIHJldHVybiBjbGllbnRQb2ludDsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9u
U2Vzc2lvblByb3h5Ojpjb21wdXRlRWxlbWVudExheW91dChXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9s
bEludG9WaWV3SWZOZWVkZWQsIENvb3JkaW5hdGVTeXN0ZW0gY29vcmRpbmF0ZVN5c3RlbSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBXZWJDb3JlOjpJbnRSZWN0LCBP
cHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
dm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpjb21wdXRlRWxlbWVudExheW91dChXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBDb29y
ZGluYXRlU3lzdGVtIGNvb3JkaW5hdGVTeXN0ZW0sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0
aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6SW50UmVjdCwgT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9p
bnQ+LCBib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQYWdlKiBwYWdlID0g
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAgIGlmICghcGFnZSkg
ewpAQCAtNjM2LDcgKzYzNyw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Y29t
cHV0ZUVsZW1lbnRMYXlvdXQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnCiAgICAgY29tcGxl
dGlvbkhhbmRsZXIoV1RGOjpudWxsb3B0LCByZXN1bHRFbGVtZW50Qm91bmRzLCByZXN1bHRJblZp
ZXdDZW50ZXJQb2ludCwgaXNPYnNjdXJlZCk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b25Qcm94eTo6c2VsZWN0T3B0aW9uRWxlbWVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdl
SUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKE9wdGlvbmFsPFN0cmluZz4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJB
dXRvbWF0aW9uU2Vzc2lvblByb3h5OjpzZWxlY3RPcHRpb25FbGVtZW50KFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmlu
ZyBub2RlSGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4pPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAgICAgaWYgKCFwYWdlKSB7CkBAIC03MDQsNyAr
NzA1LDcgQEAgc3RhdGljIFdlYkNvcmU6OkludFJlY3Qgc25hcHNob3RSZWN0Rm9yU2NyZWVuc2hv
dChXZWJQYWdlJiBwYWdlLCBXZWJDb3JlOjpFbGVtZW4KICAgICByZXR1cm4geyB9OwogfQogCi12
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnRha2VTY3JlZW5zaG90KFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUs
IGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgYm9vbCBjbGlwVG9WaWV3cG9ydCwgdWludDY0
X3QgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6dGFrZVNjcmVl
bnNob3QoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5l
ZWRlZCwgYm9vbCBjbGlwVG9WaWV3cG9ydCwgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKICAgICBT
aGFyZWFibGVCaXRtYXA6OkhhbmRsZSBoYW5kbGU7CiAKQEAgLTc1Miw3ICs3NTMsNyBAQCB2b2lk
IFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnRha2VTY3JlZW5zaG90KFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgdQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFBy
b2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpE
aWRUYWtlU2NyZWVuc2hvdChjYWxsYmFja0lELCBoYW5kbGUsIHsgfSksIDApOwogfQogCi12b2lk
IFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmdldENvb2tpZXNGb3JGcmFtZShXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4pPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpnZXRDb29raWVz
Rm9yRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+
LCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
V2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsK
ICAgICBpZiAoIXBhZ2UpIHsKQEAgLTc3Nyw3ICs3NzgsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25T
ZXNzaW9uUHJveHk6OmdldENvb2tpZXNGb3JGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBw
YWdlSQogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVsbG9wdCwgZm91bmRDb29raWVzKTsK
IH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpkZWxldGVDb29raWUoV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgY29va2ll
TmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZGVsZXRlQ29va2ll
KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIFN0cmluZyBjb29raWVOYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlv
bmFsPFN0cmluZz4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlBhZ2UqIHBhZ2Ug
PSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAgICAgaWYgKCFwYWdl
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJB
dXRvbWF0aW9uU2Vzc2lvblByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21h
dGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmgKaW5kZXggMTE2NzY0NTI3N2RiYzE5MzBh
NWE3YTU5N2RjYmMyZGYzZWNmNTVjOS4uNWUxYjBmY2ZmMGZjODU5OGI4Yzc5NzcwYTY4YjE4MWU3
OGY2MzkxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24v
V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaApAQCAtMjgsNiArMjgsNyBA
QAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJDb29yZGluYXRlU3lzdGVtLmgi
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNCYXNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9G
cmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTUxLDcgKzUyLDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBkaWRDbGVhcldpbmRvd09iamVjdEZvckZyYW1lKFdlYkZyYW1lJik7CiAK
LSAgICB2b2lkIGRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKHVpbnQ2NF90IGZyYW1lSUQs
IHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFN0cmluZyYgcmVzdWx0LCBjb25zdCBTdHJpbmcm
IGVycm9yVHlwZSk7CisgICAgdm9pZCBkaWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFN0cmluZyYg
cmVzdWx0LCBjb25zdCBTdHJpbmcmIGVycm9yVHlwZSk7CiAKIHByaXZhdGU6CiAgICAgSlNPYmpl
Y3RSZWYgc2NyaXB0T2JqZWN0Rm9yRnJhbWUoV2ViRnJhbWUmKTsKQEAgLTYxLDIyICs2MiwyMiBA
QCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwg
SVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAKICAgICAvLyBDYWxsZWQgYnkgV2ViQXV0b21hdGlv
blNlc3Npb25Qcm94eSBtZXNzYWdlcwotICAgIHZvaWQgZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rp
b24oV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmlu
ZyYgZnVuY3Rpb24sIFZlY3RvcjxTdHJpbmc+IGFyZ3VtZW50cywgYm9vbCBleHBlY3RzSW1wbGlj
aXRDYWxsYmFja0FyZ3VtZW50LCBpbnQgY2FsbGJhY2tUaW1lb3V0LCB1aW50NjRfdCBjYWxsYmFj
a0lEKTsKLSAgICB2b2lkIHJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGluYWwoV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG9yZGluYWwsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWludDY0X3QpPiYmKTsKLSAgICB2b2lk
IHJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbm9kZUhhbmRsZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCB1aW50NjRfdCk+JiYpOwotICAgIHZvaWQgcmVz
b2x2ZUNoaWxkRnJhbWVXaXRoTmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlv
bmFsPFN0cmluZz4sIHVpbnQ2NF90KT4mJik7Ci0gICAgdm9pZCByZXNvbHZlUGFyZW50RnJhbWUo
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWludDY0X3QpPiYmKTsKLSAgICB2b2lkIGZvY3Vz
RnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZv
aWQgY29tcHV0ZUVsZW1lbnRMYXlvdXQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90
IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQs
IENvb3JkaW5hdGVTeXN0ZW0sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5n
PiwgV2ViQ29yZTo6SW50UmVjdCwgT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBib29sKT4m
Jik7Ci0gICAgdm9pZCBzZWxlY3RPcHRpb25FbGVtZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
LCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJik7Ci0gICAgdm9pZCB0YWtlU2NyZWVuc2hvdChXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUs
IGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgYm9vbCBjbGlwVG9WaWV3cG9ydCwgdWludDY0
X3QgY2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBnZXRDb29raWVzRm9yRnJhbWUoV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0
aW9uYWw8U3RyaW5nPiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4pPiYmKTsKLSAgICB2b2lkIGRl
bGV0ZUNvb2tpZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgU3Ry
aW5nIGNvb2tpZU5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+
JiYpOworICAgIHZvaWQgZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBmdW5jdGlv
biwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRzLCBib29sIGV4cGVjdHNJbXBsaWNpdENhbGxiYWNr
QXJndW1lbnQsIGludCBjYWxsYmFja1RpbWVvdXQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAg
IHZvaWQgcmVzb2x2ZUNoaWxkRnJhbWVXaXRoT3JkaW5hbChXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50MzJfdCBvcmRpbmFsLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik+
JiYpOworICAgIHZvaWQgcmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhhbmRsZShXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5v
ZGVIYW5kbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyKT4mJik7CisgICAgdm9pZCByZXNvbHZlQ2hpbGRGcmFtZVdpdGhO
YW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpPiYmKTsKKyAgICB2b2lkIHJlc29sdmVQYXJlbnRG
cmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcik+JiYpOworICAgIHZvaWQgZm9jdXNGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNvbXB1dGVFbGVtZW50TGF5
b3V0KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFN0
cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIENvb3JkaW5hdGVT
eXN0ZW0sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6
SW50UmVjdCwgT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBib29sKT4mJik7CisgICAgdm9p
ZCBzZWxlY3RPcHRpb25FbGVtZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIFN0cmluZyBub2RlSGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KE9wdGlvbmFsPFN0cmluZz4pPiYmKTsKKyAgICB2b2lkIHRha2VTY3JlZW5zaG90KFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFN0cmluZyBub2RlSGFu
ZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGJvb2wgY2xpcFRvVmlld3BvcnQsIHVp
bnQ2NF90IGNhbGxiYWNrSUQpOworICAgIHZvaWQgZ2V0Q29va2llc0ZvckZyYW1lKFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4pPiYmKTsK
KyAgICB2b2lkIGRlbGV0ZUNvb2tpZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBTdHJpbmcgY29va2llTmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChPcHRpb25hbDxTdHJpbmc+KT4mJik7CiAKICAgICBTdHJpbmcgbV9zZXNzaW9uSWRlbnRpZmll
cjsKIAotICAgIEhhc2hNYXA8dWludDY0X3QsIEpTT2JqZWN0UmVmPiBtX3dlYkZyYW1lU2NyaXB0
T2JqZWN0TWFwOwotICAgIEhhc2hNYXA8dWludDY0X3QsIFZlY3Rvcjx1aW50NjRfdD4+IG1fd2Vi
RnJhbWVQZW5kaW5nRXZhbHVhdGVKYXZhU2NyaXB0Q2FsbGJhY2tzTWFwOworICAgIEhhc2hNYXA8
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBKU09iamVjdFJlZj4gbV93ZWJGcmFtZVNjcmlwdE9i
amVjdE1hcDsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgVmVjdG9yPHVp
bnQ2NF90Pj4gbV93ZWJGcmFtZVBlbmRpbmdFdmFsdWF0ZUphdmFTY3JpcHRDYWxsYmFja3NNYXA7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vz
c2lvblByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGQ3MmY4OWQyNjM1OWNmMDFjY2ZkNTMxZTk2ZTAx
ZjQ0NDA5YWFmNTguLmYyNzY0OWI5YjczMTBiYTU5MTNiMGQ2ZmZmZTE3ZjIyNGVjNWY2M2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgpAQCAtMjEs
MjEgKzIxLDIxIEBACiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIG1lc3NhZ2VzIC0+IFdlYkF1dG9tYXRpb25T
ZXNzaW9uUHJveHkgewotICAgIEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIGZ1bmN0aW9uLCBW
ZWN0b3I8U3RyaW5nPiBhcmd1bWVudHMsIGJvb2wgZXhwZWN0c0ltcGxpY2l0Q2FsbGJhY2tBcmd1
bWVudCwgaW50IGNhbGxiYWNrVGltZW91dCwgdWludDY0X3QgY2FsbGJhY2tJRCkKKyAgICBFdmFs
dWF0ZUphdmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgZnVuY3Rpb24sIFZlY3RvcjxT
dHJpbmc+IGFyZ3VtZW50cywgYm9vbCBleHBlY3RzSW1wbGljaXRDYWxsYmFja0FyZ3VtZW50LCBp
bnQgY2FsbGJhY2tUaW1lb3V0LCB1aW50NjRfdCBjYWxsYmFja0lEKQogCi0gICAgUmVzb2x2ZUNo
aWxkRnJhbWVXaXRoT3JkaW5hbChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2
NF90IGZyYW1lSUQsIHVpbnQzMl90IG9yZGluYWwpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9y
VHlwZSwgdWludDY0X3QgZnJhbWVJRCkgQXN5bmMKLSAgICBSZXNvbHZlQ2hpbGRGcmFtZVdpdGhO
b2RlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJ
RCwgU3RyaW5nIG5vZGVIYW5kbGUpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgdWlu
dDY0X3QgZnJhbWVJRCkgQXN5bmMKLSAgICBSZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5hbWUp
IC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgdWludDY0X3QgZnJhbWVJRCkgQXN5bmMK
LSAgICBSZXNvbHZlUGFyZW50RnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1
aW50NjRfdCBmcmFtZUlEKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIHVpbnQ2NF90
IGZyYW1lSUQpIEFzeW5jCisgICAgUmVzb2x2ZUNoaWxkRnJhbWVXaXRoT3JkaW5hbChXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCB1aW50MzJfdCBvcmRpbmFsKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSBBc3luYworICAgIFJlc29sdmVDaGlsZEZyYW1l
V2l0aE5vZGVIYW5kbGUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUpIC0+IChPcHRpb25hbDxT
dHJpbmc+IGVycm9yVHlwZSwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIEFzeW5j
CisgICAgUmVzb2x2ZUNoaWxkRnJhbWVXaXRoTmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBw
YWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgbmFtZSkgLT4g
KE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCkgQXN5bmMKKyAgICBSZXNvbHZlUGFyZW50RnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkgLT4gKE9wdGlvbmFs
PFN0cmluZz4gZXJyb3JUeXBlLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkgQXN5
bmMKIAotICAgIEZvY3VzRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50
NjRfdCBmcmFtZUlEKQorICAgIEZvY3VzRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFn
ZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIAotICAgIENvbXB1dGVFbGVt
ZW50TGF5b3V0KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJ
RCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgZW51bTp1
aW50OF90IFdlYktpdDo6Q29vcmRpbmF0ZVN5c3RlbSBjb29yZGluYXRlU3lzdGVtKSAtPiAoT3B0
aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIFdlYkNvcmU6OkludFJlY3QgcmVjdCwgT3B0aW9uYWw8
V2ViQ29yZTo6SW50UG9pbnQ+IGluVmlld0NlbnRlclBvaW50LCBib29sIGlzT2JzY3VyZWQpIEFz
eW5jCisgICAgQ29tcHV0ZUVsZW1lbnRMYXlvdXQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFn
ZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUs
IGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgZW51bTp1aW50OF90IFdlYktpdDo6Q29vcmRp
bmF0ZVN5c3RlbSBjb29yZGluYXRlU3lzdGVtKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5
cGUsIFdlYkNvcmU6OkludFJlY3QgcmVjdCwgT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+IGlu
Vmlld0NlbnRlclBvaW50LCBib29sIGlzT2JzY3VyZWQpIEFzeW5jCiAKLSAgICBTZWxlY3RPcHRp
b25FbGVtZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJ
RCwgU3RyaW5nIG5vZGVIYW5kbGUpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSkgQXN5
bmMKKyAgICBTZWxlY3RPcHRpb25FbGVtZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlKSAt
PiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUpIEFzeW5jCiAKLSAgICBUYWtlU2NyZWVuc2hv
dChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmlu
ZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGJvb2wgY2xpcFRvVmll
d3BvcnQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAgVGFrZVNjcmVlbnNob3QoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
U3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgYm9vbCBjbGlw
VG9WaWV3cG9ydCwgdWludDY0X3QgY2FsbGJhY2tJRCkKIAotICAgIEdldENvb2tpZXNGb3JGcmFt
ZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQpIC0+IChP
cHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2ll
cykgQXN5bmMKLSAgICBEZWxldGVDb29raWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
LCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgY29va2llTmFtZSkgLT4gKE9wdGlvbmFsPFN0cmlu
Zz4gZXJyb3JUeXBlKSBBc3luYworICAgIEdldENvb2tpZXNGb3JGcmFtZShXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSAtPiAo
T3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IGNvb2tp
ZXMpIEFzeW5jCisgICAgRGVsZXRlQ29va2llKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBjb29raWVOYW1lKSAt
PiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUpIEFzeW5jCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vz
c1BsdWdJbkZyYW1lLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbQppbmRleCAwOTk3NjM3MmYwNzM3
NTdlZWRiMTc0OTNkNzMxZmEwYTNkNDY2OGM2Li4yNTczZTZkNDg1OWU1ZTBjZmU0YTY3ZjVmNGYz
YmJhNmIzMGZlODY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNz
UGx1Z0luRnJhbWUubW0KQEAgLTQ4LDcgKzQ4LDcgQEAgQGltcGxlbWVudGF0aW9uIFdLV2ViUHJv
Y2Vzc1BsdWdJbkZyYW1lIHsKIAogKyAoaW5zdGFuY2V0eXBlKWxvb2tVcEZyYW1lRnJvbUhhbmRs
ZTooX1dLRnJhbWVIYW5kbGUgKiloYW5kbGUKIHsKLSAgICByZXR1cm4gd3JhcHBlcihXZWJLaXQ6
OldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGhhbmRsZS5fZnJhbWVJRCkpOworICAg
IHJldHVybiB3cmFwcGVyKFdlYktpdDo6V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUo
V2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKGhhbmRsZS5fZnJhbWVJRCkpKTsKIH0KIAog
LSAodm9pZClkZWFsbG9jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKaW5kZXggYzQ4Y2RkODU3OTRkOTIxNjk5NTIwYzJk
ODM4YTViNjcwZjNiMmZmMS4uNWRmYzQyNTc4ODRiYzI5MmE0ZGFlOGM0NDVlOTJiNzMyN2E5NmNh
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVy
U3RyYXRlZ3kuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxv
YWRlclN0cmF0ZWd5LmNwcApAQCAtMTU5LDcgKzE1OSw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRl
Z3k6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMb2FkZXIsIENhY2hlZFJl
c291CiAKICAgICBXZWJSZXNvdXJjZUxvYWRlcjo6VHJhY2tpbmdQYXJhbWV0ZXJzIHRyYWNraW5n
UGFyYW1ldGVyczsKICAgICB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlEID0gZnJhbWVMb2FkZXJD
bGllbnQucGFnZUlEKCkudmFsdWVPcihQYWdlSWRlbnRpZmllciB7IH0pOwotICAgIHRyYWNraW5n
UGFyYW1ldGVycy5mcmFtZUlEID0gZnJhbWVMb2FkZXJDbGllbnQuZnJhbWVJRCgpLnZhbHVlT3Io
MCk7CisgICAgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQgPSBmcmFtZUxvYWRlckNsaWVudC5m
cmFtZUlEKCkudmFsdWVPcihGcmFtZUlkZW50aWZpZXIgeyB9KTsKICAgICB0cmFja2luZ1BhcmFt
ZXRlcnMucmVzb3VyY2VJRCA9IGlkZW50aWZpZXI7CiAgICAgYXV0byBzZXNzaW9uSUQgPSBmcmFt
ZUxvYWRlckNsaWVudC5zZXNzaW9uSUQoKTsKIApAQCAtMTY4LDcgKzE2OCw3IEBAIHZvaWQgV2Vi
TG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMb2Fk
ZXIsIENhY2hlZFJlc291CiAgICAgLy8gdGhlbiB3ZSBzaG91bGQgcmVtZW1iZXIgdGhlIFJlc291
cmNlTG9hZGVyIGluIG91ciByZWNvcmRzIGJ1dCBub3Qgc2NoZWR1bGUgaXQgaW4gdGhlIE5ldHdv
cmtQcm9jZXNzLgogICAgIGlmIChyZXNvdXJjZUxvYWRlci5kb2N1bWVudExvYWRlcigpLT5zY2hl
ZHVsZUFyY2hpdmVMb2FkKHJlc291cmNlTG9hZGVyLCByZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkp
KSB7CiAgICAgICAgIExPRyhOZXR3b3JrU2NoZWR1bGluZywgIihXZWJQcm9jZXNzKSBXZWJMb2Fk
ZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkLCB1cmwgJyVzJyB3aWxsIGJlIGhhbmRsZWQgYXMgYW4g
YXJjaGl2ZSByZXNvdXJjZS4iLCByZXNvdXJjZUxvYWRlci51cmwoKS5zdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwg
InNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgaGFuZGxlZCBhcyBhbiBhcmNoaXZlIHJlc291cmNl
IChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAi
LCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJh
Y2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJh
bWVJRCwgaWRlbnRpZmllcik7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3Vy
Y2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGhhbmRsZWQgYXMgYW4gYXJjaGl2
ZSByZXNvdXJjZSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAl
IiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZy
YW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJh
bWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmllcik7CiAgICAgICAgIG1fd2ViUmVz
b3VyY2VMb2FkZXJzLnNldChpZGVudGlmaWVyLCBXZWJSZXNvdXJjZUxvYWRlcjo6Y3JlYXRlKHJl
c291cmNlTG9hZGVyLCB0cmFja2luZ1BhcmFtZXRlcnMpKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KQEAgLTE3NiwxNCArMTc2LDE0IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxl
TG9hZChSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMb2FkZXIsIENhY2hlZFJlc291CiAKICAgICBp
ZiAocmVzb3VyY2VMb2FkZXIuZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3Qo
KS5tYXliZUxvYWRSZXNvdXJjZShyZXNvdXJjZUxvYWRlciwgcmVzb3VyY2VMb2FkZXIucmVxdWVz
dCgpLCByZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkudXJsKCkpKSB7CiAgICAgICAgIExPRyhOZXR3
b3JrU2NoZWR1bGluZywgIihXZWJQcm9jZXNzKSBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVM
b2FkLCB1cmwgJyVzJyB3aWxsIGJlIGxvYWRlZCBmcm9tIGFwcGxpY2F0aW9uIGNhY2hlLiIsIHJl
c291cmNlTG9hZGVyLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2ls
bCBiZSBsb2FkZWQgZnJvbSBhcHBsaWNhdGlvbiBjYWNoZSAoZnJhbWUgPSAlcCwgcGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2
NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQu
dG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIGlkZW50aWZpZXIpOworICAg
ICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2Fk
OiBVUkwgd2lsbCBiZSBsb2FkZWQgZnJvbSBhcHBsaWNhdGlvbiBjYWNoZSAoZnJhbWUgPSAlcCwg
cGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9
ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVy
cy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQo
KSwgaWRlbnRpZmllcik7CiAgICAgICAgIG1fd2ViUmVzb3VyY2VMb2FkZXJzLnNldChpZGVudGlm
aWVyLCBXZWJSZXNvdXJjZUxvYWRlcjo6Y3JlYXRlKHJlc291cmNlTG9hZGVyLCB0cmFja2luZ1Bh
cmFtZXRlcnMpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChyZXNvdXJjZUxv
YWRlci5yZXF1ZXN0KCkudXJsKCkucHJvdG9jb2xJc0RhdGEoKSkgewogICAgICAgICBMT0coTmV0
d29ya1NjaGVkdWxpbmcsICIoV2ViUHJvY2VzcykgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxl
TG9hZCwgdXJsICclcycgd2lsbCBiZSBsb2FkZWQgYXMgZGF0YS4iLCByZXNvdXJjZUxvYWRlci51
cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgbG9hZGVkIGFz
IGRhdGEgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgp
LCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVy
cy5mcmFtZUlELCBpZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChy
ZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgbG9hZGVkIGFzIGRhdGEg
KGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFj
a2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFt
ZUlELnRvVUludDY0KCksIGlkZW50aWZpZXIpOwogICAgICAgICBzdGFydExvY2FsTG9hZChyZXNv
dXJjZUxvYWRlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xOTEsNyArMTkxLDcgQEAg
dm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiByZXNv
dXJjZUxvYWRlciwgQ2FjaGVkUmVzb3UKICNpZiBVU0UoUVVJQ0tfTE9PSykKICAgICBpZiAoaXNR
dWlja0xvb2tQcmV2aWV3VVJMKHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS51cmwoKSkpIHsKICAg
ICAgICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5nLCAiKFdlYlByb2Nlc3MpIFdlYkxvYWRlclN0cmF0
ZWd5OjpzY2hlZHVsZUxvYWQsIHVybCAnJXMnIHdpbGwgYmUgaGFuZGxlZCBhcyBhIFF1aWNrTG9v
ayByZXNvdXJjZS4iLCByZXNvdXJjZUxvYWRlci51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgp
KTsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVk
dWxlTG9hZDogVVJMIHdpbGwgYmUgaGFuZGxlZCBhcyBhIFF1aWNrTG9vayByZXNvdXJjZSAoZnJh
bWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5n
UGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQs
IGlkZW50aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9h
ZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBoYW5kbGVkIGFzIGEgUXVpY2tMb29rIHJl
c291cmNlIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUo
KSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRl
cnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsKICAgICAgICAgc3RhcnRMb2NhbExv
YWQocmVzb3VyY2VMb2FkZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjAyLDcgKzIw
Miw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRl
ciYgcmVzb3VyY2VMb2FkZXIsIENhY2hlZFJlc291CiAgICAgLy8gaHR0cHM6Ly9ibG9ncy5nbm9t
ZS5vcmcvYWxleGwvMjAxMi8wMS8yNi9yZXNvdXJjZXMtaW4tZ2xpYi8KICAgICBpZiAocmVzb3Vy
Y2VMb2FkZXIucmVxdWVzdCgpLnVybCgpLnByb3RvY29sSXMoInJlc291cmNlIikpIHsKICAgICAg
ICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5nLCAiKFdlYlByb2Nlc3MpIFdlYkxvYWRlclN0cmF0ZWd5
OjpzY2hlZHVsZUxvYWQsIHVybCAnJXMnIHdpbGwgYmUgaGFuZGxlZCBhcyBhIEdSZXNvdXJjZS4i
LCByZXNvdXJjZUxvYWRlci51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJM
IHdpbGwgYmUgaGFuZGxlZCBhcyBhIEdSZXNvdXJjZSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAi
KSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9V
SW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIGlkZW50aWZpZXIpOworICAgICAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBV
Ukwgd2lsbCBiZSBoYW5kbGVkIGFzIGEgR1Jlc291cmNlIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0
ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50
b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlm
aWVyKTsKICAgICAgICAgc3RhcnRMb2NhbExvYWQocmVzb3VyY2VMb2FkZXIpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQpAQCAtMjEyLDExICsyMTIsMTEgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVn
eTo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlciwgQ2FjaGVkUmVz
b3UKICAgICBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXI6OnNpbmdsZXRvbigpLmhhbmRsZUZldGNo
KHJlc291cmNlTG9hZGVyLCBzZXNzaW9uSUQsIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9I
VFRQUmVkaXJlY3QsIFt0aGlzLCB0cmFja2luZ1BhcmFtZXRlcnMsIGlkZW50aWZpZXIsIHNlc3Np
b25JRCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgbWF4aW11bUJ1
ZmZlcmluZ1RpbWUgPSBtYXhpbXVtQnVmZmVyaW5nVGltZShyZXNvdXJjZSksIHJlc291cmNlTG9h
ZGVyID0gbWFrZVJlZihyZXNvdXJjZUxvYWRlcildIChTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6
OlJlc3VsdCByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0ICE9IFNlcnZpY2VX
b3JrZXJDbGllbnRGZXRjaDo6UmVzdWx0OjpVbmhhbmRsZWQpIHsKICAgICAgICAgICAgIExPRyhO
ZXR3b3JrU2NoZWR1bGluZywgIihXZWJQcm9jZXNzKSBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1
bGVMb2FkLCB1cmwgJyVzJyB3aWxsIGJlIHNjaGVkdWxlZCB0aHJvdWdoIFNlcnZpY2VXb3JrZXIg
aGFuZGxlIGZldGNoIGFsZ29yaXRobSIsIHJlc291cmNlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5s
YXRpbjEoKS5kYXRhKCkpOwotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNv
dXJjZUxvYWRlci5nZXQoKSwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgc2NoZWR1bGVkIHRo
cm91Z2ggU2VydmljZVdvcmtlciBoYW5kbGUgZmV0Y2ggYWxnb3JpdGhtIChmcmFtZSA9ICVwLCBw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXItPmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVy
cy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIGlkZW50aWZp
ZXIpOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlci5n
ZXQoKSwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgc2NoZWR1bGVkIHRocm91Z2ggU2Vydmlj
ZVdvcmtlciBoYW5kbGUgZmV0Y2ggYWxnb3JpdGhtIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIp
IiwgcmVzb3VyY2VMb2FkZXItPmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9V
SW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmll
cik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgaWYgKHJlc291cmNl
TG9hZGVyLT5vcHRpb25zKCkuc2VydmljZVdvcmtlcnNNb2RlID09IFNlcnZpY2VXb3JrZXJzTW9k
ZTo6T25seSkgewotICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChyZXNv
dXJjZUxvYWRlci5nZXQoKSwgInNjaGVkdWxlTG9hZDogdW5hYmxlIHRvIHNjaGVkdWxlIFVSTCB0
aHJvdWdoIFNlcnZpY2VXb3JrZXIgaGFuZGxlIGZldGNoIGFsZ29yaXRobSAoZnJhbWUgPSAlcCwg
cGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9
ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLT5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRl
cnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBpZGVudGlm
aWVyKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQocmVzb3VyY2VM
b2FkZXIuZ2V0KCksICJzY2hlZHVsZUxvYWQ6IHVuYWJsZSB0byBzY2hlZHVsZSBVUkwgdGhyb3Vn
aCBTZXJ2aWNlV29ya2VyIGhhbmRsZSBmZXRjaCBhbGdvcml0aG0gKGZyYW1lID0gJXAsIHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQ
Ukl1NjQgIikiLCByZXNvdXJjZUxvYWRlci0+ZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBh
Z2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBp
ZGVudGlmaWVyKTsKICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Jlc291cmNlTG9hZGVy
ID0gV1RGTW92ZShyZXNvdXJjZUxvYWRlcildIHsKICAgICAgICAgICAgICAgICBhdXRvIGVycm9y
ID0gaW50ZXJuYWxFcnJvcihyZXNvdXJjZUxvYWRlci0+cmVxdWVzdCgpLnVybCgpKTsKICAgICAg
ICAgICAgICAgICBlcnJvci5zZXRUeXBlKFJlc291cmNlRXJyb3I6OlR5cGU6OkNhbmNlbGxhdGlv
bik7CkBAIC0yMjgsMTMgKzIyOCwxMyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVs
ZUxvYWQoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTG9hZGVyLCBDYWNoZWRSZXNvdQogICAgICAg
ICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkxvYWRlclN0cmF0ZWd5KCkudHJ5TG9h
ZGluZ1VzaW5nVVJMU2NoZW1lSGFuZGxlcihyZXNvdXJjZUxvYWRlcikpCiAgICAgICAgICAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJMb2FkZXJTdHJhdGVneSgpLnNjaGVkdWxlTG9hZEZy
b21OZXR3b3JrUHJvY2VzcyhyZXNvdXJjZUxvYWRlci5nZXQoKSwgcmVzb3VyY2VMb2FkZXItPnJl
cXVlc3QoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLCBzZXNzaW9uSUQsIHNob3VsZENsZWFyUmVmZXJy
ZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIG1heGltdW1CdWZmZXJpbmdUaW1lKTsKICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlci5n
ZXQoKSwgInNjaGVkdWxlTG9hZDogVVJMIG5vdCBoYW5kbGVkIGJ5IGFueSBoYW5kbGVycyAoZnJh
bWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLT5mcmFtZSgpLCB0cmFja2lu
Z1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlE
LCBpZGVudGlmaWVyKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3Vy
Y2VMb2FkZXIuZ2V0KCksICJzY2hlZHVsZUxvYWQ6IFVSTCBub3QgaGFuZGxlZCBieSBhbnkgaGFu
ZGxlcnMgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci0+ZnJhbWUo
KSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRl
cnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsKICAgICB9KTsKICNlbHNlCiAgICAg
aWYgKCF0cnlMb2FkaW5nVXNpbmdVUkxTY2hlbWVIYW5kbGVyKHJlc291cmNlTG9hZGVyKSkKICAg
ICAgICAgc2NoZWR1bGVMb2FkRnJvbU5ldHdvcmtQcm9jZXNzKHJlc291cmNlTG9hZGVyLCByZXNv
dXJjZUxvYWRlci5yZXF1ZXN0KCksIHRyYWNraW5nUGFyYW1ldGVycywgc2Vzc2lvbklELCBzaG91
bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBtYXhpbXVtQnVmZmVyaW5nVGlt
ZShyZXNvdXJjZSkpOwogICAgIGVsc2UKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChy
ZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIG5vdCBoYW5kbGVkIGJ5IGFueSBoYW5k
bGVycyAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCks
IHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJz
LmZyYW1lSUQsIGlkZW50aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJl
c291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgbm90IGhhbmRsZWQgYnkgYW55IGhhbmRs
ZXJzIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2
NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwg
dHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMu
ZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsKICNlbmRpZgogfQogCkBAIC0zMjUsNyAr
MzI1LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkRnJvbU5ldHdvcmtQ
cm9jZXNzKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUwKICAgICBpZiAobG9hZFBhcmFtZXRlcnMu
b3B0aW9ucy5tb2RlICE9IEZldGNoT3B0aW9uczo6TW9kZTo6TmF2aWdhdGUpIHsKICAgICAgICAg
QVNTRVJUKGxvYWRQYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbik7CiAgICAgICAgIGlmICghbG9hZFBh
cmFtZXRlcnMuc291cmNlT3JpZ2luKSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9J
Rl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBubyBzb3VyY2VPcmlnaW4g
KGZyYW1lID0gJXAsIHByaW9yaXR5ID0gJWQsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRl
ci5mcmFtZSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS5wcmlv
cml0eSgpKSwgbG9hZFBhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0
ZXJzLndlYkZyYW1lSUQsIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIpOworICAgICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9h
ZDogbm8gc291cmNlT3JpZ2luIChmcmFtZSA9ICVwLCBwcmlvcml0eSA9ICVkLCBwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0
ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgc3RhdGljX2Nhc3Q8aW50PihyZXNvdXJjZUxv
YWRlci5yZXF1ZXN0KCkucHJpb3JpdHkoKSksIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJ
bnQ2NCgpLCBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0
ZXJzLmlkZW50aWZpZXIpOwogICAgICAgICAgICAgc2NoZWR1bGVJbnRlcm5hbGx5RmFpbGVkTG9h
ZChyZXNvdXJjZUxvYWRlcik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTM0
OCw5ICszNDgsOSBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWRGcm9tTmV0
d29ya1Byb2Nlc3MoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTAogCiAgICAgQVNTRVJUKChsb2Fk
UGFyYW1ldGVycy53ZWJQYWdlSUQgJiYgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRCkgfHwgbG9h
ZFBhcmFtZXRlcnMuY2xpZW50Q3JlZGVudGlhbFBvbGljeSA9PSBDbGllbnRDcmVkZW50aWFsUG9s
aWN5OjpDYW5ub3RBc2tDbGllbnRGb3JDcmVkZW50aWFscyk7CiAKLSAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBSZXNvdXJjZSBpcyBiZWlu
ZyBzY2hlZHVsZWQgd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3MgKGZyYW1lID0gJXAsIHByaW9yaXR5
ID0gJWQsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCBzdGF0aWNfY2Fz
dDxpbnQ+KHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS5wcmlvcml0eSgpKSwgbG9hZFBhcmFtZXRl
cnMud2ViUGFnZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQsIGxvYWRQ
YXJhbWV0ZXJzLmlkZW50aWZpZXIpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3Vy
Y2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFJlc291cmNlIGlzIGJlaW5nIHNjaGVkdWxlZCB3aXRo
IHRoZSBOZXR3b3JrUHJvY2VzcyAoZnJhbWUgPSAlcCwgcHJpb3JpdHkgPSAlZCwgcGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2
NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHN0YXRpY19jYXN0PGludD4ocmVzb3VyY2VM
b2FkZXIucmVxdWVzdCgpLnByaW9yaXR5KCkpLCBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQudG9V
SW50NjQoKSwgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1l
dGVycy5pZGVudGlmaWVyKTsKICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3Vy
ZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6U2NoZWR1bGVSZXNvdXJjZUxvYWQobG9hZFBh
cmFtZXRlcnMpLCAwKSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHJl
c291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVbmFibGUgdG8gc2NoZWR1bGUgcmVzb3VyY2Ug
d2l0aCB0aGUgTmV0d29ya1Byb2Nlc3MgKGZyYW1lID0gJXAsIHByaW9yaXR5ID0gJWQsIHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQ
Ukl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc291
cmNlTG9hZGVyLnJlcXVlc3QoKS5wcmlvcml0eSgpKSwgbG9hZFBhcmFtZXRlcnMud2ViUGFnZUlE
LnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQsIGxvYWRQYXJhbWV0ZXJzLmlk
ZW50aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHJlc291cmNl
TG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVbmFibGUgdG8gc2NoZWR1bGUgcmVzb3VyY2Ugd2l0aCB0
aGUgTmV0d29ya1Byb2Nlc3MgKGZyYW1lID0gJXAsIHByaW9yaXR5ID0gJWQsIHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQg
IikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlTG9h
ZGVyLnJlcXVlc3QoKS5wcmlvcml0eSgpKSwgbG9hZFBhcmFtZXRlcnMud2ViUGFnZUlELnRvVUlu
dDY0KCksIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbG9hZFBhcmFtZXRl
cnMuaWRlbnRpZmllcik7CiAgICAgICAgIC8vIFdlIHByb2JhYmx5IGZhaWxlZCB0byBzY2hlZHVs
ZSB0aGlzIGxvYWQgd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3MgYmVjYXVzZSBpdCBoYWQgY3Jhc2hl
ZC4KICAgICAgICAgLy8gVGhpcyBsb2FkIHdpbGwgbmV2ZXIgc3VjY2VlZCBzbyB3ZSB3aWxsIHNj
aGVkdWxlIGl0IHRvIGZhaWwgYXN5bmNocm9ub3VzbHkuCiAgICAgICAgIHNjaGVkdWxlSW50ZXJu
YWxseUZhaWxlZExvYWQocmVzb3VyY2VMb2FkZXIpOwpAQCAtNTIwLDE4ICs1MjAsMTggQEAgdm9p
ZCBXZWJMb2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShGcmFtZUxvYWRl
ciYgZnJhbWVMb2FkZXIsIHVuc2kKICAgICBXZWJQYWdlKiB3ZWJQYWdlID0gd2ViRnJhbWUgPyB3
ZWJGcmFtZS0+cGFnZSgpIDogbnVsbHB0cjsKIAogICAgIGF1dG8gcGFnZUlEID0gd2ViUGFnZSA/
IHdlYlBhZ2UtPnBhZ2VJRCgpIDogUGFnZUlkZW50aWZpZXIgeyB9OwotICAgIGF1dG8gZnJhbWVJ
RCA9IHdlYkZyYW1lID8gd2ViRnJhbWUtPmZyYW1lSUQoKSA6IDA7CisgICAgYXV0byBmcmFtZUlE
ID0gd2ViRnJhbWUgPyB3ZWJGcmFtZS0+ZnJhbWVJRCgpIDogRnJhbWVJZGVudGlmaWVyIHsgfTsK
ICAgICBhdXRvIHNlc3Npb25JRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSA6IFBB
TDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CiAKICAgICBhdXRvKiBkb2N1bWVudCA9
IGZyYW1lTG9hZGVyLmZyYW1lKCkuZG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50KSB7Ci0g
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoc2Vzc2lvbklELCAibG9hZFJlc291
cmNlU3luY2hyb25vdXNseTogbm8gZG9jdW1lbnQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlbHUpIiwgcGFnZUlELnRvVUludDY0KCks
IGZyYW1lSUQsIHJlc291cmNlTG9hZElkZW50aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUl9JRl9BTExPV0VEKHNlc3Npb25JRCwgImxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6IG5v
IGRvY3VtZW50IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBy
ZXNvdXJjZUlEID0gJWx1KSIsIHBhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCks
IHJlc291cmNlTG9hZElkZW50aWZpZXIpOwogICAgICAgICBlcnJvciA9IGludGVybmFsRXJyb3Io
cmVxdWVzdC51cmwoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoYXV0byBz
eW5jTG9hZFJlc3VsdCA9IHRyeUxvYWRpbmdTeW5jaHJvbm91c2x5VXNpbmdVUkxTY2hlbWVIYW5k
bGVyKGZyYW1lTG9hZGVyLCByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCByZXF1ZXN0KSkgewotICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHNlc3Npb25JRCwgImxvYWRSZXNvdXJj
ZVN5bmNocm9ub3VzbHk6IGZhaWxlZCBjYWxsaW5nIHRyeUxvYWRpbmdTeW5jaHJvbm91c2x5VXNp
bmdVUkxTY2hlbWVIYW5kbGVyIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEID0gJWx1LCBlcnJvciA9ICVkKSIsIHBhZ2VJRC50b1VJbnQ2NCgp
LCBmcmFtZUlELCByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBzeW5jTG9hZFJlc3VsdC0+ZXJyb3Iu
ZXJyb3JDb2RlKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHNlc3Np
b25JRCwgImxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6IGZhaWxlZCBjYWxsaW5nIHRyeUxvYWRp
bmdTeW5jaHJvbm91c2x5VXNpbmdVUkxTY2hlbWVIYW5kbGVyIChwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJWx1LCBlcnJvciA9ICVkKSIs
IHBhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCksIHJlc291cmNlTG9hZElkZW50
aWZpZXIsIHN5bmNMb2FkUmVzdWx0LT5lcnJvci5lcnJvckNvZGUoKSk7CiAgICAgICAgIGVycm9y
ID0gV1RGTW92ZShzeW5jTG9hZFJlc3VsdC0+ZXJyb3IpOwogICAgICAgICByZXNwb25zZSA9IFdU
Rk1vdmUoc3luY0xvYWRSZXN1bHQtPnJlc3BvbnNlKTsKICAgICAgICAgZGF0YSA9IFdURk1vdmUo
c3luY0xvYWRSZXN1bHQtPmRhdGEpOwpAQCAtNTY5LDcgKzU2OSw3IEBAIHZvaWQgV2ViTG9hZGVy
U3RyYXRlZ3k6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoRnJhbWVMb2FkZXImIGZyYW1lTG9h
ZGVyLCB1bnNpCiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQb29sOjpTZXRXZWJQcm9jZXNz
SGFzVXBsb2FkcyB7IFByb2Nlc3M6OmlkZW50aWZpZXIoKSB9LCAwKTsKIAogICAgIGlmICghV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29u
bmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6UGVyZm9ybVN5bmNocm9ub3VzTG9hZChsb2FkUGFyYW1ldGVycyksIE1lc3NhZ2VzOjpOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGVyZm9ybVN5bmNocm9ub3VzTG9hZDo6UmVwbHko
ZXJyb3IsIHJlc3BvbnNlLCBkYXRhKSwgMCkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Jf
SUZfQUxMT1dFRChzZXNzaW9uSUQsICJsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiBmYWlsZWQg
c2VuZGluZyBzeW5jaHJvbm91cyBuZXR3b3JrIHByb2Nlc3MgbWVzc2FnZSAocGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICVsdSkiLCBwYWdl
SUQudG9VSW50NjQoKSwgZnJhbWVJRCwgcmVzb3VyY2VMb2FkSWRlbnRpZmllcik7CisgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoc2Vzc2lvbklELCAibG9hZFJlc291cmNlU3lu
Y2hyb25vdXNseTogZmFpbGVkIHNlbmRpbmcgc3luY2hyb25vdXMgbmV0d29yayBwcm9jZXNzIG1l
c3NhZ2UgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlbHUpIiwgcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSwgcmVz
b3VyY2VMb2FkSWRlbnRpZmllcik7CiAgICAgICAgIGlmIChhdXRvKiBwYWdlID0gd2ViUGFnZSA/
IHdlYlBhZ2UtPmNvcmVQYWdlKCkgOiBudWxscHRyKQogICAgICAgICAgICAgcGFnZS0+ZGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZShXZWJDb3JlOjpEaWFnbm9z
dGljTG9nZ2luZ0tleXM6OmludGVybmFsRXJyb3JLZXkoKSwgV2ViQ29yZTo6RGlhZ25vc3RpY0xv
Z2dpbmdLZXlzOjpzeW5jaHJvbm91c01lc3NhZ2VGYWlsZWRLZXkoKSwgV2ViQ29yZTo6U2hvdWxk
U2FtcGxlOjpObyk7CiAgICAgICAgIHJlc3BvbnNlID0gUmVzb3VyY2VSZXNwb25zZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2Fk
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2Fk
ZXIuY3BwCmluZGV4IDg4YmQ1M2JmMWY4ZmI3MzZlYjE3M2VmNjRmMWUzMDNkMWJiMTAwYzEuLmZh
NTM5MjVlYjY4ZjA0MmZlYzc5YmYzODg2MGIyNzYwMzI1ZmI1MWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKQEAg
LTg4LDE2ICs4OCwxNiBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3Qo
UmVzb3VyY2VSZXF1ZXN0JiYgcHJvcG9zZWRSZXF1ZXN0LCBSZXNvdQogICAgIFJlZjxXZWJSZXNv
dXJjZUxvYWRlcj4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAKICAgICBMT0coTmV0d29yaywgIihX
ZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0IHRvICclcyciLCBw
cm9wb3NlZFJlcXVlc3QudXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKLSAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKCJ3aWxsU2VuZFJlcXVlc3Q6IChwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90
cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJz
LmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOworICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoIndpbGxTZW5kUmVxdWVzdDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNr
aW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJh
bWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKIAogICAg
IGlmIChtX2NvcmVMb2FkZXItPmRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0
KCkubWF5YmVMb2FkRmFsbGJhY2tGb3JSZWRpcmVjdChtX2NvcmVMb2FkZXIuZ2V0KCksIHByb3Bv
c2VkUmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgid2lsbFNlbmRSZXF1ZXN0OiBleGl0aW5nIGVhcmx5IGJlY2F1c2UgbWF5YmVMb2Fk
RmFsbGJhY2tGb3JSZWRpcmVjdCByZXR1cm5lZCBmYWxzZSAocGFnZUlEID0gJSIgUFJJdTY0ICIs
IGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJh
Y2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5m
cmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKKyAgICAgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgid2lsbFNlbmRSZXF1ZXN0OiBleGl0aW5nIGVhcmx5IGJlY2F1c2Ug
bWF5YmVMb2FkRmFsbGJhY2tGb3JSZWRpcmVjdCByZXR1cm5lZCBmYWxzZSAocGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAi
KSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFy
YW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNl
SUQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgbV9jb3JlTG9hZGVyLT53aWxsU2Vu
ZFJlcXVlc3QoV1RGTW92ZShwcm9wb3NlZFJlcXVlc3QpLCByZWRpcmVjdFJlc3BvbnNlLCBbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldKFJlc291cmNlUmVxdWVz
dCYmIHJlcXVlc3QpIHsKICAgICAgICAgaWYgKCFtX2NvcmVMb2FkZXIgfHwgIW1fY29yZUxvYWRl
ci0+aWRlbnRpZmllcigpKSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3
aWxsU2VuZFJlcXVlc3Q6IGV4aXRpbmcgZWFybHkgYmVjYXVzZSBubyBjb3JlbG9hZGVyIG9yIGlk
ZW50aWZpZXIgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJl
c291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9V
SW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRl
cnMucmVzb3VyY2VJRCk7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3aWxs
U2VuZFJlcXVlc3Q6IGV4aXRpbmcgZWFybHkgYmVjYXVzZSBubyBjb3JlbG9hZGVyIG9yIGlkZW50
aWZpZXIgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50
NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5n
UGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
CkBAIC0xMTMsMTIgKzExMywxMiBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRTZW5kRGF0
YSh1aW50NjRfdCBieXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0ZXNUb0JlUwogdm9pZCBXZWJS
ZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKQog
ewogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9hZGVyOjpkaWRS
ZWNlaXZlUmVzcG9uc2UgZm9yICclcycuIFN0YXR1cyAlZC4iLCBtX2NvcmVMb2FkZXItPnVybCgp
LnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSk7Ci0g
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiAocGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2
NCAiLCBzdGF0dXMgPSAlZCkiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQo
KSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVz
b3VyY2VJRCwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSk7CisgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBzdGF0dXMgPSAlZCki
LCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFt
ZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlE
LCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpKTsKIAogICAgIFJlZjxXZWJSZXNvdXJjZUxvYWRl
cj4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAKICAgICBpZiAobV9jb3JlTG9hZGVyLT5kb2N1bWVu
dExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLm1heWJlTG9hZEZhbGxiYWNrRm9yUmVz
cG9uc2UobV9jb3JlTG9hZGVyLmdldCgpLCByZXNwb25zZSkpIHsKLSAgICAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiBub3QgY29udGludWluZyBsb2FkIGJl
Y2F1c2UgdGhlIGNvbnRlbnQgaXMgYWxyZWFkeSBjYWNoZWQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3Ry
YWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMu
ZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAgICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZTogbm90IGNvbnRpbnVpbmcgbG9h
ZCBiZWNhdXNlIHRoZSBjb250ZW50IGlzIGFscmVhZHkgY2FjaGVkIChwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwg
bV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0
ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEzNSw3ICsxMzUsNyBAQCB2b2lkIFdlYlJl
c291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIGJvbwogICAgICAgICAgICAgaWYgKG1fY29yZUxvYWRlciAmJiBtX2NvcmVMb2Fk
ZXItPmlkZW50aWZpZXIoKSkKICAgICAgICAgICAgICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI6OkNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkpOwogICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2Vp
dmVSZXNwb25zZTogbm90IGNvbnRpbnVpbmcgbG9hZCBiZWNhdXNlIG5vIGNvcmVMb2FkZXIgb3Ig
bm8gSUQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50
NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMu
cmVzb3VyY2VJRCk7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlk
UmVjZWl2ZVJlc3BvbnNlOiBub3QgY29udGludWluZyBsb2FkIGJlY2F1c2Ugbm8gY29yZUxvYWRl
ciBvciBubyBJRCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwg
cmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50
b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJh
Y2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwogICAgICAgICB9OwogICAgIH0KIApAQCAtMTQ4
LDcgKzE0OCw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0
IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgaW50NjRfdCBlCiAgICAgQVNTRVJUX1dJVEhfTUVT
U0FHRSghbV9pc1Byb2Nlc3NpbmdOZXR3b3JrUmVzcG9uc2UsICJOZXR3b3JrIHByb2Nlc3Mgc2hv
dWxkIG5vdCBzZW5kIGRhdGEgdW50aWwgd2UndmUgdmFsaWRhdGVkIHRoZSByZXNwb25zZSIpOwog
CiAgICAgaWYgKCFtX251bUJ5dGVzUmVjZWl2ZWQpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgiZGlkUmVjZWl2ZURhdGE6IFN0YXJ0ZWQgcmVjZWl2aW5nIGRhdGEgKHBhZ2VJRCA9
ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1
NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2lu
Z1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7Cisg
ICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVEYXRhOiBTdGFydGVkIHJl
Y2VpdmluZyBkYXRhIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAi
LCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlE
LnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90
cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CiAgICAgfQogICAgIG1fbnVtQnl0ZXNSZWNl
aXZlZCArPSBkYXRhLnNpemUoKTsKIApAQCAtMTU4LDcgKzE1OCw3IEBAIHZvaWQgV2ViUmVzb3Vy
Y2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwg
aW50NjRfdCBlCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hSZXNvdXJjZUxvYWQo
Y29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3JrTG9hZE1ldHJpY3MpCiB7CiAgICAgTE9H
KE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaFJlc291
cmNlTG9hZCBmb3IgJyVzJyIsIG1fY29yZUxvYWRlci0+dXJsKCkuc3RyaW5nKCkubGF0aW4xKCku
ZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRGaW5pc2hSZXNvdXJjZUxv
YWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJj
ZUlEID0gJSIgUFJJdTY0ICIsIGxlbmd0aCA9ICV6ZCkiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5w
YWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2lu
Z1BhcmFtZXRlcnMucmVzb3VyY2VJRCwgbV9udW1CeXRlc1JlY2VpdmVkKTsKKyAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKCJkaWRGaW5pc2hSZXNvdXJjZUxvYWQ6IChwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGxl
bmd0aCA9ICV6ZCkiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90
cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVy
cy5yZXNvdXJjZUlELCBtX251bUJ5dGVzUmVjZWl2ZWQpOwogCiAgICAgQVNTRVJUX1dJVEhfTUVT
U0FHRSghbV9pc1Byb2Nlc3NpbmdOZXR3b3JrUmVzcG9uc2UsICJMb2FkIHNob3VsZCBub3QgYmUg
YWJsZSB0byBmaW5pc2ggYmVmb3JlIHdlJ3ZlIHZhbGlkYXRlZCB0aGUgcmVzcG9uc2UiKTsKICAg
ICBtX2NvcmVMb2FkZXItPmRpZEZpbmlzaExvYWRpbmcobmV0d29ya0xvYWRNZXRyaWNzKTsKQEAg
LTE2Nyw3ICsxNjcsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hSZXNvdXJj
ZUxvYWQoY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3JrTAogdm9pZCBXZWJSZXNvdXJj
ZUxvYWRlcjo6ZGlkRmFpbFJlc291cmNlTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikK
IHsKICAgICBMT0coTmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlk
RmFpbFJlc291cmNlTG9hZCBmb3IgJyVzJyIsIG1fY29yZUxvYWRlci0+dXJsKCkuc3RyaW5nKCku
bGF0aW4xKCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRGYWlsUmVz
b3VyY2VMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwg
cmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50
b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1l
dGVycy5yZXNvdXJjZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRGYWlsUmVz
b3VyY2VMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwg
cmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50
b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJh
Y2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwogCiAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSgh
bV9pc1Byb2Nlc3NpbmdOZXR3b3JrUmVzcG9uc2UsICJMb2FkIHNob3VsZCBub3QgYmUgYWJsZSB0
byBmaW5pc2ggYmVmb3JlIHdlJ3ZlIHZhbGlkYXRlZCB0aGUgcmVzcG9uc2UiKTsKIApAQCAtMTc5
LDcgKzE3OSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxSZXNvdXJjZUxvYWQo
Y29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRC
bG9ja0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCkKIHsKICAgICBMT0coTmV0d29yaywgIihXZWJQ
cm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSBmb3IgJyVzJyIsIG1fY29yZUxvYWRlci0+dXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgp
KTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRCbG9ja0F1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJ
bnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVy
cy5yZXNvdXJjZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRCbG9ja0F1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQ
Ukl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJz
LnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0
KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwogCiAgICAgbV9jb3JlTG9hZGVy
LT5kaWRCbG9ja0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCk7CiB9CkBAIC0xODcsNyArMTg3LDcg
QEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSgpCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpzdG9wTG9hZGluZ0FmdGVyWEZyYW1lT3B0aW9u
c09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlKQogewogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9h
ZGVyOjpzdG9wTG9hZGluZ0FmdGVyWEZyYW1lT3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5
RGVuaWVkIGZvciAnJXMnIiwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5k
YXRhKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0b3BMb2FkaW5nQWZ0ZXJYRnJh
bWVPcHRpb25zT3JDb250ZW50U2VjdXJpdHlQb2xpY3lEZW5pZWQ6IChwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwg
bV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0
ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOworICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoInN0b3BMb2FkaW5nQWZ0ZXJYRnJhbWVPcHRpb25zT3JDb250ZW50
U2VjdXJpdHlQb2xpY3lEZW5pZWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRl
cnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50
NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CiAKICAgICBtX2NvcmVMb2Fk
ZXItPmRvY3VtZW50TG9hZGVyKCktPnN0b3BMb2FkaW5nQWZ0ZXJYRnJhbWVPcHRpb25zT3JDb250
ZW50U2VjdXJpdHlQb2xpY3lEZW5pZWQobV9jb3JlTG9hZGVyLT5pZGVudGlmaWVyKCksIHJlc3Bv
bnNlKTsKIH0KQEAgLTE5NiwxMyArMTk2LDEzIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OnN0
b3BMb2FkaW5nQWZ0ZXJYRnJhbWVPcHRpb25zT3JDb250ZW50U2VjdXJpdHlQb2xpY3lEZW5pCiB2
b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzb3VyY2UoY29uc3QgU2hhcmVhYmxl
UmVzb3VyY2U6OkhhbmRsZSYgaGFuZGxlKQogewogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nl
c3MpIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzb3VyY2UgZm9yICclcyciLCBtX2Nv
cmVMb2FkZXItPnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc291cmNlOiAocGFnZUlEID0gJSIgUFJJdTY0ICIs
IGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJh
Y2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5m
cmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKKyAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzb3VyY2U6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFj
a2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZy
YW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CiAKICAg
ICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBoYW5kbGUudHJ5V3JhcEluU2hhcmVkQnVm
ZmVyKCk7CiAKICAgICBpZiAoIWJ1ZmZlcikgewogICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0
byBjcmVhdGUgYnVmZmVyIGZyb20gU2hhcmVhYmxlUmVzb3VyY2Ugc2VudCBmcm9tIHRoZSBuZXR3
b3JrIHByb2Nlc3MuIik7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2Vp
dmVSZXNvdXJjZTogVW5hYmxlIHRvIGNyZWF0ZSBTaGFyZWRCdWZmZXIgKHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiki
LCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFt
ZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAgICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNvdXJjZTogVW5hYmxlIHRvIGNy
ZWF0ZSBTaGFyZWRCdWZmZXIgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5w
YWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgp
LCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKICAgICAgICAgaWYgKGF1dG8qIGZy
YW1lID0gbV9jb3JlTG9hZGVyLT5mcmFtZSgpKSB7CiAgICAgICAgICAgICBpZiAoYXV0byogcGFn
ZSA9IGZyYW1lLT5wYWdlKCkpCiAgICAgICAgICAgICAgICAgcGFnZS0+ZGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZShXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2lu
Z0tleXM6OmludGVybmFsRXJyb3JLZXkoKSwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlz
OjpjcmVhdGVTaGFyZWRCdWZmZXJGYWlsZWRLZXkoKSwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlOjpO
byk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNv
dXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3Vy
Y2VMb2FkZXIuaAppbmRleCA1ODY1NDM3MThlNWU4Mzg4YjhiNDFhYjAyMDM3YWM3NmU3ODY5Mzdj
Li45YzExNDdkYTA1MTUzZGQ3YWM0NGFmMzE1ODFlMjIxYjY5YmU5MjRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKQEAg
LTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVzc2Fn
ZVNlbmRlci5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZVJlc291cmNlLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVy
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CkBAIC01Miw3ICs1Myw3IEBAIGNsYXNzIFdlYlJlc291cmNlTG9hZGVyIDogcHVibGljIFJlZkNv
dW50ZWQ8V2ViUmVzb3VyY2VMb2FkZXI+LCBwdWJsaWMgSVBDOjpNZXNzCiBwdWJsaWM6CiAgICAg
c3RydWN0IFRyYWNraW5nUGFyYW1ldGVycyB7CiAgICAgICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyIHBhZ2VJRDsKLSAgICAgICAgdWludDY0X3QgZnJhbWVJRCB7IDAgfTsKKyAgICAgICAgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQ7CiAgICAgICAgIFJlc291cmNlTG9hZElkZW50
aWZpZXIgcmVzb3VyY2VJRCB7IDAgfTsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbi5jcHAKaW5kZXggNmZjMDljNGY2NWIyNDViNjBiZjRkNGY1OTdhOWY5MGFkNGQwYWFm
OS4uNDlkMjBjN2M0OWMwMmFhOTU5YWE0YWU0ZDllZWM4ZmU4M2M1ZmU3YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcApAQCAtNzMsNyArNzMsNyBAQCBzdGF0aWMgY29uc3Qg
U2Vjb25kcyBzeW5jV29ya2VyVGVybWluYXRpb25UaW1lb3V0IHsgMTAwX21zIH07IC8vIE9ubHkg
dXNlZCBieSBsYQogCiBjbGFzcyBTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQgZmluYWwg
OiBwdWJsaWMgRW1wdHlGcmFtZUxvYWRlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgU2VydmljZVdv
cmtlckZyYW1lTG9hZGVyQ2xpZW50KFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uJiBjb25u
ZWN0aW9uLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpCisgICAg
U2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50KFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYg
dXNlckFnZW50KQogICAgICAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQogICAgICAgICAs
IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAgICAgLCBtX3BhZ2VJRChwYWdlSUQpCkBAIC05
NiwxMyArOTYsMTMgQEAgcHJpdmF0ZToKIAogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CiAgICAgT3B0aW9uYWw8V2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcGFnZUlE
OyB9Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX2ZyYW1lSUQ7IH0KKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZy
YW1lSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KICAgICBTdHJpbmcgdXNl
ckFnZW50KGNvbnN0IFVSTCYpIGZpbmFsIHsgcmV0dXJuIG1fdXNlckFnZW50OyB9CiAKICAgICBX
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiYgbV9jb25uZWN0aW9uOwogICAgIFBBTDo6U2Vz
c2lvbklEIG1fc2Vzc2lvbklEOwotICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIG1fcGFnZUlE
OwotICAgIHVpbnQ2NF90IG1fZnJhbWVJRCB7IDAgfTsKKyAgICBQYWdlSWRlbnRpZmllciBtX3Bh
Z2VJRDsKKyAgICBGcmFtZUlkZW50aWZpZXIgbV9mcmFtZUlEOwogICAgIFN0cmluZyBtX3VzZXJB
Z2VudDsKIH07CiAKQEAgLTE1Myw3ICsxNTMsOCBAQCB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uOjppbnN0YWxsU2VydmljZVdvcmtlcihjb25zdCBTZXJ2aWNlV29ya2VyQ29udAog
CiAgICAgLy8gRklYTUU6IFRoaXMgbWV0aG9kIHNob3VsZCBiZSBtb3ZlZCBkaXJlY3RseSB0byBX
ZWJDb3JlOjpTV0NvbnRleHRNYW5hZ2VyOjpDb25uZWN0aW9uCiAgICAgLy8gSWYgaXQgd2VyZW4n
dCBmb3IgU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50J3MgZGVwZW5kZW5jZSBvbiBXZWJE
b2N1bWVudExvYWRlciwgdGhpcyBjb3VsZCBhbHJlYWR5IGhhcHBlbi4KLSAgICBhdXRvIGZyYW1l
TG9hZGVyQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJD
bGllbnQ+KCp0aGlzLCBzZXNzaW9uSUQsIG1fcGFnZUlELCArK21fcHJldmlvdXNTZXJ2aWNlV29y
a2VySUQsIGVmZmVjdGl2ZVVzZXJBZ2VudCk7CisgICAgLy8gRklYTUU6IFdlaXJkIHRvIHBhc3Mg
bV9wcmV2aW91c1NlcnZpY2VXb3JrZXJJRCBhcyBhIEZyYW1lSWRlbnRpZmllci4KKyAgICBhdXRv
IGZyYW1lTG9hZGVyQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxTZXJ2aWNlV29ya2VyRnJhbWVM
b2FkZXJDbGllbnQ+KCp0aGlzLCBzZXNzaW9uSUQsIG1fcGFnZUlELCBmcmFtZUlkZW50aWZpZXJG
cm9tSUQoKyttX3ByZXZpb3VzU2VydmljZVdvcmtlcklEKSwgZWZmZWN0aXZlVXNlckFnZW50KTsK
ICAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgPSBmcmFtZUxv
YWRlckNsaWVudC5nZXQoKTsKICAgICBtX2xvYWRlcnMuYWRkKFdURk1vdmUoZnJhbWVMb2FkZXJD
bGllbnQpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAzYzg3MmY1YWRmMzliZWFjZDNh
NzA2NjdiMjY4OWQzOGM5YjExMTJlLi5mY2QwOThlNDg0MGE1OGEyYjVhMjE5N2ViNTI5MWUwYTRm
NDgyOWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMjY1LDcgKzI2NSw3IEBAIHZvaWQg
V2ViQ2hyb21lQ2xpZW50Ojpmb2N1c2VkRnJhbWVDaGFuZ2VkKEZyYW1lKiBmcmFtZSkKIHsKICAg
ICBXZWJGcmFtZSogd2ViRnJhbWUgPSBmcmFtZSA/IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpm
cmFtZSkgOiBudWxscHRyOwogCi0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGb2N1c2VkRnJh
bWVDaGFuZ2VkKHdlYkZyYW1lID8gd2ViRnJhbWUtPmZyYW1lSUQoKSA6IDApLCBtX3BhZ2UucGFn
ZUlEKCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Rm9jdXNlZEZyYW1lQ2hhbmdlZCh3
ZWJGcmFtZSA/IG1ha2VPcHRpb25hbCh3ZWJGcmFtZS0+ZnJhbWVJRCgpKSA6IFdURjo6bnVsbG9w
dCksIG1fcGFnZS5wYWdlSUQoKSk7CiB9CiAKIFBhZ2UqIFdlYkNocm9tZUNsaWVudDo6Y3JlYXRl
V2luZG93KEZyYW1lJiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzdCwgY29u
c3QgV2luZG93RmVhdHVyZXMmIHdpbmRvd0ZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9u
JiBuYXZpZ2F0aW9uQWN0aW9uKQpAQCAtNjI1LDcgKzYyNSw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xp
ZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lJiBmcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6
ZSkgY29uCiAgICAgICAgIFdlYkZyYW1lKiBsYXJnZXN0RnJhbWUgPSBmaW5kTGFyZ2VzdEZyYW1l
SW5GcmFtZVNldChtX3BhZ2UpOwogICAgICAgICBpZiAobGFyZ2VzdEZyYW1lICE9IG1fY2FjaGVk
RnJhbWVTZXRMYXJnZXN0RnJhbWUuZ2V0KCkpIHsKICAgICAgICAgICAgIG1fY2FjaGVkRnJhbWVT
ZXRMYXJnZXN0RnJhbWUgPSBsYXJnZXN0RnJhbWU7Ci0gICAgICAgICAgICBtX3BhZ2Uuc2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGcmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQobGFyZ2Vz
dEZyYW1lID8gbGFyZ2VzdEZyYW1lLT5mcmFtZUlEKCkgOiAwKSk7CisgICAgICAgICAgICBtX3Bh
Z2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGcmFtZVNldExhcmdlc3RGcmFtZUNoYW5n
ZWQobGFyZ2VzdEZyYW1lID8gbWFrZU9wdGlvbmFsKGxhcmdlc3RGcmFtZS0+ZnJhbWVJRCgpKSA6
IFdURjo6bnVsbG9wdCkpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xMzE2LDEyICsxMzE2LDEy
IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRJbnZhbGlkYXRlRG9jdW1lbnRNYXJrZXJSZWN0
cygpCiB9CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotdm9pZCBXZWJD
aHJvbWVDbGllbnQ6Omhhc1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFt
ZURvbWFpbiwgUmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJh
bWVJRCwgUGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6aGFzU3RvcmFnZUFjY2VzcyhS
ZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdpc3RyYWJsZURvbWFpbiYmIHRv
cEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
bV9wYWdlLmhhc1N0b3JhZ2VBY2Nlc3MoV1RGTW92ZShzdWJGcmFtZURvbWFpbiksIFdURk1vdmUo
dG9wRnJhbWVEb21haW4pLCBmcmFtZUlELCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9
CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJs
ZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9t
YWluLCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3du
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0U3Rv
cmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdpc3RyYWJs
ZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQs
IFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgbV9wYWdlLnJlcXVlc3RTdG9yYWdlQWNjZXNzKFdURk1vdmUoc3ViRnJhbWVEb21haW4pLCBX
VEZNb3ZlKHRvcEZyYW1lRG9tYWluKSwgZnJhbWVJRCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGNlZDM2YTZjMjViN2U0ZjgzNDRhNTg5OTQw
MDY3OTFmN2NjOTI3NmYuLjJkYzY2MjJjMWI3ZjFjNWE5NWEyY2NkNzliMzIwOWJiNTg3MmE2MmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTM2Nyw4ICszNjcsOCBAQCBwcml2YXRlOgogICAgIHZv
aWQgZGlkSW52YWxpZGF0ZURvY3VtZW50TWFya2VyUmVjdHMoKSBmaW5hbDsKIAogI2lmIEVOQUJM
RShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZp
bmFsOwotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4mJiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BG
cmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdU
Rjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRl
ZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJikgZmluYWw7CisgICAg
dm9pZCBoYXNTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJh
bWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdURjo6Q29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0U3Rv
cmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3Jh
Z2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYpIGZpbmFsOwogI2VuZGlmCiAKICNpZiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXgg
NjU3MzliYjhhYTk2ZGZlOGMyYjBlMjZjMTcxYTlmOWI3NmI3MzQwOS4uNzA5ODBlZTViNWI4ZDcw
MzdlNDViM2YyYWYzZTJiYjFmYTAzOTRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwCkBAIC0xMjAsNyArMTIwLDcgQEAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpwYWdlSUQoKSBjb25zdAogICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiB9
CiAKLU9wdGlvbmFsPHVpbnQ2NF90PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZnJhbWVJRCgpIGNv
bnN0CitPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFt
ZUlEKCkgY29uc3QKIHsKICAgICBpZiAobV9mcmFtZSkKICAgICAgICAgcmV0dXJuIG1fZnJhbWUt
PmZyYW1lSUQoKTsKQEAgLTU0Niw3ICs1NDYsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZQog
ICAgIGlmICghd2ViUGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUkVMRUFTRV9MT0coTmV0
d29yaywgIiVwIC0gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lv
bmFsTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIpIiwg
dGhpcywgd2ViUGFnZS0+cGFnZUlEKCkudG9VSW50NjQoKSwgbV9mcmFtZS0+ZnJhbWVJRCgpKTsK
KyAgICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIikiLCB0aGlzLCB3ZWJQYWdlLT5wYWdlSUQoKS50b1VJbnQ2NCgpLCBt
X2ZyYW1lLT5mcmFtZUlEKCkudG9VSW50NjQoKSk7CiAKICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+
IHVzZXJEYXRhOwogCkBAIC01ODIsNyArNTgyLDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKICAgICBp
ZiAoIXdlYlBhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJFTEVBU0VfTE9HKE5ldHdvcmss
ICIlcCAtIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkOiAocGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIikiLCB0aGlzLCB3ZWJQYWdlLT5w
YWdlSUQoKS50b1VJbnQ2NCgpLCBtX2ZyYW1lLT5mcmFtZUlEKCkpOworICAgIFJFTEVBU0VfTE9H
KE5ldHdvcmssICIlcCAtIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2Fk
OiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIikiLCB0aGlzLCB3
ZWJQYWdlLT5wYWdlSUQoKS50b1VJbnQ2NCgpLCBtX2ZyYW1lLT5mcmFtZUlEKCkudG9VSW50NjQo
KSk7CiAKICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IHVzZXJEYXRhOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5oCmluZGV4IGM4ZmIyYWYyMTI1NjZjNjQ2ODYwNzdhMGM4OWFmODEwNTM5MGE2
ODAuLjY0MWI4YzA2NjM0MTM4MGMwNzAyODIwYjg3ODlkZDE4NWU4YmIwNDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFw
cGx5VG9Eb2N1bWVudExvYWRlcihXZWJzaXRlUG9saWNpZXNEYXRhJiYpOwogCiAgICAgT3B0aW9u
YWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCgpIGNvbnN0IGZpbmFsOwotICAgIE9w
dGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEKCkgY29uc3QgZmluYWw7CisgICAgT3B0aW9uYWw8V2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKCkgY29uc3QgZmluYWw7CiAgICAgUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgZmluYWw7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViQ29va2llSmFyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkNvb2tpZUphci5jcHAKaW5kZXggNzM4YmU5MmI5MmRjNzNkMmRmNjc3ZWUzNGVjMTMwODFh
NjBmMWExYy4uZjZjNTU3ZDVmMGZkMjAxZGJiNTA1MTE0N2ViYzI3MGE1YjQ1Y2YzYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuY3BwCkBA
IC01MCw3ICs1MCw3IEBAIFdlYkNvb2tpZUphcjo6V2ViQ29va2llSmFyKCkKIAogU3RyaW5nIFdl
YkNvb2tpZUphcjo6Y29va2llcyhXZWJDb3JlOjpEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVS
TCYgdXJsKSBjb25zdAogewotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9w
dGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRp
Zmllcj4gcGFnZUlEOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsK
ICAgICAgICAgZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CkBA
IC02Nyw3ICs2Nyw3IEBAIFN0cmluZyBXZWJDb29raWVKYXI6OmNvb2tpZXMoV2ViQ29yZTo6RG9j
dW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCkgY29uc3QKIAogdm9pZCBXZWJDb29raWVK
YXI6OnNldENvb2tpZXMoV2ViQ29yZTo6RG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVy
bCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpCiB7Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+
IGZyYW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEOwogICAgIE9w
dGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7CiAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9j
dW1lbnQuZnJhbWUoKSkgewogICAgICAgICBmcmFtZUlEID0gZnJhbWUtPmxvYWRlcigpLmNsaWVu
dCgpLmZyYW1lSUQoKTsKQEAgLTg1LDcgKzg1LDcgQEAgYm9vbCBXZWJDb29raWVKYXI6OmNvb2tp
ZXNFbmFibGVkKGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50JiBkb2N1bWVudCkgY29uc3QKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCi1zdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb3JlOjpTZWN1cmVDb29r
aWVzQWNjZXNzZWQ+IFdlYkNvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUo
Y29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmws
IE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFn
ZUlELCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykg
Y29uc3QKK3N0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvcmU6OlNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4g
V2ViQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBQQUw6OlNl
c3Npb25JRCYgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6
OlNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJh
bWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBX
ZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QK
IHsKICAgICBTdHJpbmcgY29va2llU3RyaW5nOwogICAgIGJvb2wgc2VjdXJlQ29va2llc0FjY2Vz
c2VkID0gZmFsc2U7CkBAIC05Niw3ICs5Niw3IEBAIHN0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvcmU6
OlNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gV2ViQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhCiAK
IGJvb2wgV2ViQ29va2llSmFyOjpnZXRSYXdDb29raWVzKGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50
JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwsIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiByYXdD
b29raWVzKSBjb25zdAogewotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9w
dGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRp
Zmllcj4gcGFnZUlEOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsK
ICAgICAgICAgZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5oCmluZGV4
IDU1OWJkMGU1MGJiZWMzNWZmYjI1NmI5MTJiN2I0NmRhOTk0YjJkNDguLjVkY2FjZGQ5NjhlNmE0
YjA2MjdjNzg3YzZkYTFhNTE1NDcxYmY4OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5oCkBAIC0zNiw3ICszNiw3IEBAIHB1YmxpYzoKICAg
ICBTdHJpbmcgY29va2llcyhXZWJDb3JlOjpEb2N1bWVudCYsIGNvbnN0IFVSTCYpIGNvbnN0IGZp
bmFsOwogICAgIHZvaWQgc2V0Q29va2llcyhXZWJDb3JlOjpEb2N1bWVudCYsIGNvbnN0IFVSTCYs
IGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKSBmaW5hbDsKICAgICBib29sIGNvb2tpZXNFbmFi
bGVkKGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50JikgY29uc3QgZmluYWw7Ci0gICAgc3RkOjpwYWly
PFN0cmluZywgV2ViQ29yZTo6U2VjdXJlQ29va2llc0FjY2Vzc2VkPiBjb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZShjb25zdCBQQUw6OlNlc3Npb25JRCYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0
eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWlu
dDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgV2ViQ29y
ZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0IGZpbmFsOworICAgIHN0ZDo6cGFpcjxTdHJp
bmcsIFdlYkNvcmU6OlNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gY29va2llUmVxdWVzdEhlYWRlckZp
ZWxkVmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgV2Vi
Q29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgZ2V0UmF3
Q29va2llcyhjb25zdCBXZWJDb3JlOjpEb2N1bWVudCYsIGNvbnN0IFVSTCYsIFZlY3RvcjxXZWJD
b3JlOjpDb29raWU+JikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBkZWxldGVDb29raWUoY29uc3Qg
V2ViQ29yZTo6RG9jdW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUp
IGZpbmFsOwogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YkZyYW1lLmNwcAppbmRleCA2MGNmZDhkMmExNzU0YTdhY2VkNThkNjFkZjE3YmU0YzE0MzEzNjk0
Li5mMGViZmVkYmIyZTk1M2FkMGZjMDdmOWY4MTY2MDlkYjk3MzViNjY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC05NSwxMiArOTUsNiBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogREVGSU5FX0RFQlVHX09OTFlfR0xPQkFMKFdU
Rjo6UmVmQ291bnRlZExlYWtDb3VudGVyLCB3ZWJGcmFtZUNvdW50ZXIsICgiV2ViRnJhbWUiKSk7
CiAKLXN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUZyYW1lSUQoKQotewotICAgIHN0YXRpYyB1aW50
NjRfdCB1bmlxdWVGcmFtZUlEID0gMTsKLSAgICByZXR1cm4gdW5pcXVlRnJhbWVJRCsrOwotfQot
CiBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVMaXN0ZW5lcklEKCkKIHsKICAgICBzdGF0aWMgdWlu
dDY0X3QgdW5pcXVlTGlzdGVuZXJJRCA9IDE7CkBAIC0xNDgsNyArMTQyLDcgQEAgUmVmPFdlYkZy
YW1lPiBXZWJGcmFtZTo6Y3JlYXRlKHN0ZDo6dW5pcXVlX3B0cjxXZWJGcmFtZUxvYWRlckNsaWVu
dD4gZnJhbWVMb2FkZXIKIAogV2ViRnJhbWU6OldlYkZyYW1lKHN0ZDo6dW5pcXVlX3B0cjxXZWJG
cmFtZUxvYWRlckNsaWVudD4gZnJhbWVMb2FkZXJDbGllbnQpCiAgICAgOiBtX2ZyYW1lTG9hZGVy
Q2xpZW50KFdURk1vdmUoZnJhbWVMb2FkZXJDbGllbnQpKQotICAgICwgbV9mcmFtZUlEKGdlbmVy
YXRlRnJhbWVJRCgpKQorICAgICwgbV9mcmFtZUlEKEZyYW1lSWRlbnRpZmllcjo6Z2VuZXJhdGUo
KSkKIHsKICAgICBtX2ZyYW1lTG9hZGVyQ2xpZW50LT5zZXRXZWJGcmFtZSh0aGlzKTsKICAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRXZWJGcmFtZShtX2ZyYW1lSUQsIHRoaXMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKaW5kZXggNzFiMzhmNjFh
YjE5NTA1NWI0NDdlODdiZmZmN2U5NjQwNmRlZWE5Yy4uMWVjNTA3NTQyNTdmODY2ZWIyYWU4ZWM0
Y2IwYzZkMWZmZTg2NTZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJGcmFtZS5oCkBAIC04MCw3ICs4MCw3IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpGcmFtZSog
Y29yZUZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9jb3JlRnJhbWU7IH0KIAogICAgIEZyYW1lSW5m
b0RhdGEgaW5mbygpIGNvbnN0OwotICAgIHVpbnQ2NF90IGZyYW1lSUQoKSBjb25zdCB7IHJldHVy
biBtX2ZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNv
bnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQogCiAgICAgZW51bSBjbGFzcyBGb3JOYXZpZ2F0aW9u
QWN0aW9uIHsgTm8sIFllcyB9OwogICAgIHVpbnQ2NF90IHNldFVwUG9saWN5TGlzdGVuZXIoV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9u
JiYsIEZvck5hdmlnYXRpb25BY3Rpb24pOwpAQCAtMTg3LDcgKzE4Nyw3IEBAIHByaXZhdGU6CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50PiBtX2ZyYW1lTG9hZGVyQ2xp
ZW50OwogICAgIExvYWRMaXN0ZW5lciogbV9sb2FkTGlzdGVuZXIgeyBudWxscHRyIH07CiAgICAg
Ci0gICAgdWludDY0X3QgbV9mcmFtZUlEIHsgMCB9OworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBtX2ZyYW1lSUQ7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHVpbnQ2NF90
IG1fZmlyc3RMYXllclRyZWVUcmFuc2FjdGlvbklEQWZ0ZXJEaWRDb21taXRMb2FkIHsgMCB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9y
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAK
aW5kZXggZjI4ZGU1NjhlYzUxNWE1MWMzOGUwOWNhYWM0NGVhNzdmMjFkM2RiZS4uMWYwMTZhZWFk
YTk5NmY5NjNkZDVlNGVmYjk2ZDBjYWZlNjBhZDYxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCkBAIC0yMDksNyArMjA5LDcgQEAg
dm9pZCBXZWJJbnNwZWN0b3I6OnNob3dSZXNvdXJjZXMoKQogICAgIH0pOwogfQogCi12b2lkIFdl
Ykluc3BlY3Rvcjo6c2hvd01haW5SZXNvdXJjZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSWRlbnRp
ZmllcikKK3ZvaWQgV2ViSW5zcGVjdG9yOjpzaG93TWFpblJlc291cmNlRm9yRnJhbWUoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSWRlbnRpZmllcikKIHsKICAgICBXZWJGcmFtZSogZnJh
bWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlkZW50aWZpZXIpOwog
ICAgIGlmICghZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJJbnNwZWN0b3IuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
Ykluc3BlY3Rvci5oCmluZGV4IDQ4OWU0MWMwNzRmYzM2M2IzODAxMTYxN2I0Yzc1ODI0ZGY1OWQ0
N2IuLjI2Yjg5ZTUyMjc3OTc4ZDUzYTMzZmUzYzcxMTVlYWViYmIzODI5NTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oCkBAIC0yOCw2ICsy
OCw3IEBACiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgog
I2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVu
dGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CiAKQEAgLTYwLDcgKzYxLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2hv
d0NvbnNvbGUoKTsKICAgICB2b2lkIHNob3dSZXNvdXJjZXMoKTsKIAotICAgIHZvaWQgc2hvd01h
aW5SZXNvdXJjZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBz
aG93TWFpblJlc291cmNlRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKIAogICAg
IHZvaWQgc2V0QXR0YWNoZWQoYm9vbCBhdHRhY2hlZCkgeyBtX2F0dGFjaGVkID0gYXR0YWNoZWQ7
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5z
cGVjdG9yLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
SW5zcGVjdG9yLm1lc3NhZ2VzLmluCmluZGV4IGI2ZjNjMDFiMjQyMjI2YTIwZmI0OWM1NDIyMDNh
NmRjZGUyMjFlNjkuLmRhZjc0YjVlNmIwNDMwYjZiMGNhM2JlMjYwZjVmZmFiZWNkNjU0ODkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNw
ZWN0b3IubWVzc2FnZXMuaW4KQEAgLTI5LDcgKzI5LDcgQEAgbWVzc2FnZXMgLT4gV2ViSW5zcGVj
dG9yIHsKICAgICBTaG93Q29uc29sZSgpCiAgICAgU2hvd1Jlc291cmNlcygpCiAKLSAgICBTaG93
TWFpblJlc291cmNlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJZGVudGlmaWVyKQorICAgIFNob3dN
YWluUmVzb3VyY2VGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJZGVudGlm
aWVyKQogCiAgICAgT3BlbkluTmV3VGFiKFN0cmluZyB1cmwpCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMTMzNjU3MGQ5M2FhNTExMDY5Nzg1
NjExNzAyNjA4OTNiOGEzY2RiNC4uMDFmZjFhNGY0NTdlNTM5MzU2MTQzMjRhMDk0ODg0MDNhNzUw
NTVhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
QEAgLTE0OTcsNyArMTQ5Nyw3IEBAIHZvaWQgV2ViUGFnZTo6c3VzcGVuZEZvclByb2Nlc3NTd2Fw
KCkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFN1c3BlbmRBZnRlclByb2Nl
c3NTd2FwKCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OmxvYWRVUkxJbkZyYW1lKFVSTCYmIHVybCwg
Y29uc3QgU3RyaW5nJiByZWZlcnJlciwgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZTo6
bG9hZFVSTEluRnJhbWUoVVJMJiYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtMTUwNiw3
ICsxNTA2LDcgQEAgdm9pZCBXZWJQYWdlOjpsb2FkVVJMSW5GcmFtZShVUkwmJiB1cmwsIGNvbnN0
IFN0cmluZyYgcmVmZXJyZXIsIHVpbnQ2NF90IGZyYW1lSUQKICAgICBmcmFtZS0+Y29yZUZyYW1l
KCktPmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVxdWVzdCgqZnJhbWUtPmNvcmVGcmFtZSgpLCBS
ZXNvdXJjZVJlcXVlc3QodXJsLCByZWZlcnJlciksIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3k6OlNob3VsZE5vdEFsbG93KSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6bG9hZERhdGFJbkZyYW1l
KElQQzo6RGF0YVJlZmVyZW5jZSYmIGRhdGEsIFN0cmluZyYmIE1JTUVUeXBlLCBTdHJpbmcmJiBl
bmNvZGluZ05hbWUsIFVSTCYmIGJhc2VVUkwsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBh
Z2U6OmxvYWREYXRhSW5GcmFtZShJUEM6OkRhdGFSZWZlcmVuY2UmJiBkYXRhLCBTdHJpbmcmJiBN
SU1FVHlwZSwgU3RyaW5nJiYgZW5jb2RpbmdOYW1lLCBVUkwmJiBiYXNlVVJMLCBGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCkKIHsKICAgICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtMTYxNCw3ICsx
NjE0LDcgQEAgdm9pZCBXZWJQYWdlOjpuYXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0ZWRDbGlj
ayhjb25zdCBTdHJpbmcmIHVybCwgSW50UG9pbnQgZG8KICAgICBtYWluRnJhbWUtPmxvYWRlcigp
LnVybFNlbGVjdGVkKG1haW5GcmFtZURvY3VtZW50LT5jb21wbGV0ZVVSTCh1cmwpLCBlbXB0eVN0
cmluZygpLCBtb3VzZUV2ZW50LnB0cigpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2Fy
ZExpc3Q6Ok5vLCBTaG91bGRTZW5kUmVmZXJyZXI6Ok5ldmVyU2VuZFJlZmVycmVyLCBTaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiB9CiAKLXZvaWQgV2ViUGFn
ZTo6c3RvcExvYWRpbmdGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlOjpzdG9w
TG9hZGluZ0ZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIFdlYkZyYW1lKiBm
cmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlm
ICghZnJhbWUpCkBAIC0zMjM0LDcgKzMyMzQsNyBAQCB2b2lkIFdlYlBhZ2U6OnNldFNlc3Npb25J
RChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgbV9wYWdlLT5zZXRTZXNzaW9uSUQoc2Vz
c2lvbklEKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24odWlu
dDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCwgUG9saWN5Q2hlY2tJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgY29uc3QgRG93bmxvYWRJRCYgZG93bmxvYWRJRCwgT3B0aW9uYWw8V2Vic2l0ZVBvbGlj
aWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMpCit2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVQb2xp
Y3lEZWNpc2lvbihGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCwg
UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rp
b24sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgRG93bmxvYWRJRCYgZG93bmxvYWRJRCwg
T3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMpCiB7CiAgICAg
V2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJ
RCk7CiAgICAgaWYgKCFmcmFtZSkKQEAgLTMyNDIsNyArMzI0Miw3IEBAIHZvaWQgV2ViUGFnZTo6
ZGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGxpc3Rl
bmVySUQsIFBvCiAgICAgZnJhbWUtPmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihsaXN0ZW5lcklE
LCBpZGVudGlmaWVyLCBwb2xpY3lBY3Rpb24sIG5hdmlnYXRpb25JRCwgZG93bmxvYWRJRCwgV1RG
TW92ZSh3ZWJzaXRlUG9saWNpZXMpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpjb250aW51ZVdpbGxT
dWJtaXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQpCit2b2lkIFdl
YlBhZ2U6OmNvbnRpbnVlV2lsbFN1Ym1pdEZvcm0oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVp
bnQ2NF90IGxpc3RlbmVySUQpCiB7CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCFmcmFtZSkKQEAgLTMzODQs
NyArMzM4NCw3IEBAIHZvaWQgV2ViUGFnZTo6cnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lU2NyaXB0
V29ybGQoY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yCiAgICAgcnVuSmF2YVNjcmlwdCht
YWluV2ViRnJhbWUoKSwgc2NyaXB0LCBmb3JjZVVzZXJHZXN0dXJlLCB3b3JsZE5hbWUsIGNhbGxi
YWNrSUQpOwogfQogCi12b2lkIFdlYlBhZ2U6OnJ1bkphdmFTY3JpcHRJbkZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIENh
bGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6cnVuSmF2YVNjcmlwdEluRnJhbWUo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib29sIGZvcmNl
VXNlckdlc3R1cmUsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBXZWJGcmFtZSogZnJh
bWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBBU1NF
UlQobWFpbldlYkZyYW1lKCkgIT0gZnJhbWUpOwpAQCAtMzQ0NSw3ICszNDQ1LDcgQEAgdm9pZCBX
ZWJQYWdlOjpnZXRTZWxlY3Rpb25PckNvbnRlbnRzQXNTdHJpbmcoQ2FsbGJhY2tJRCBjYWxsYmFj
a0lEKQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3RyaW5nQ2FsbGJhY2socmVz
dWx0U3RyaW5nLCBjYWxsYmFja0lEKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6Z2V0U291cmNlRm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJQ
YWdlOjpnZXRTb3VyY2VGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ2FsbGJhY2tJ
RCBjYWxsYmFja0lEKQogewogICAgIFN0cmluZyByZXN1bHRTdHJpbmc7CiAgICAgaWYgKFdlYkZy
YW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpKQpA
QCAtMzQ1NCw3ICszNDU0LDcgQEAgdm9pZCBXZWJQYWdlOjpnZXRTb3VyY2VGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgc2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpTdHJpbmdDYWxsYmFjayhyZXN1bHRTdHJpbmcsIGNhbGxiYWNrSUQpKTsK
IH0KIAotdm9pZCBXZWJQYWdlOjpnZXRNYWluUmVzb3VyY2VEYXRhT2ZGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYlBhZ2U6OmdldE1haW5SZXNv
dXJjZURhdGFPZkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDYWxsYmFja0lEIGNhbGxi
YWNrSUQpCiB7CiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyOwogICAgIGlmIChXZWJG
cmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSkg
ewpAQCAtMzQ4NSw3ICszNDg1LDcgQEAgc3RhdGljIFJlZlB0cjxTaGFyZWRCdWZmZXI+IHJlc291
cmNlRGF0YUZvckZyYW1lKEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiByZXNvdXIKICAgICByZXR1
cm4gJnN1YnJlc291cmNlLT5kYXRhKCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6Z2V0UmVzb3VyY2VE
YXRhRnJvbUZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VVUkxT
dHJpbmcsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6Z2V0UmVzb3VyY2VE
YXRhRnJvbUZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHJlc291
cmNlVVJMU3RyaW5nLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4gYnVmZmVyOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpKSB7CkBAIC0zNDk5LDcgKzM0OTksNyBAQCB2b2lkIFdl
YlBhZ2U6OmdldFJlc291cmNlRGF0YUZyb21GcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBT
dHJpbmcmIHJlc291cmNlVQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGF0YUNh
bGxiYWNrKGRhdGFSZWZlcmVuY2UsIGNhbGxiYWNrSUQpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpn
ZXRXZWJBcmNoaXZlT2ZGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDYWxsYmFja0lEIGNhbGxiYWNr
SUQpCit2b2lkIFdlYlBhZ2U6OmdldFdlYkFyY2hpdmVPZkZyYW1lKEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAg
ICAgUmV0YWluUHRyPENGRGF0YVJlZj4gZGF0YTsKQEAgLTM4MDIsMTMgKzM4MDIsMTMgQEAgV2Vi
RnVsbFNjcmVlbk1hbmFnZXIqIFdlYlBhZ2U6OmZ1bGxTY3JlZW5NYW5hZ2VyKCkKIH0KICNlbmRp
ZgogCi12b2lkIFdlYlBhZ2U6OmFkZENvbnNvbGVNZXNzYWdlKHVpbnQ2NF90IGZyYW1lSUQsIE1l
c3NhZ2VTb3VyY2UgbWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsIG1lc3NhZ2VMZXZlbCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCB1aW50NjRfdCByZXF1ZXN0SUQpCit2b2lkIFdlYlBhZ2U6OmFk
ZENvbnNvbGVNZXNzYWdlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBNZXNzYWdlU291cmNlIG1l
c3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCBtZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgdWludDY0X3QgcmVxdWVzdElEKQogewogICAgIGlmIChhdXRvKiBmcmFtZSA9IFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpKQogICAgICAgICBmcmFtZS0+YWRk
Q29uc29sZU1lc3NhZ2UobWVzc2FnZVNvdXJjZSwgbWVzc2FnZUxldmVsLCBtZXNzYWdlLCByZXF1
ZXN0SUQpOwogfQogCi12b2lkIFdlYlBhZ2U6OnNlbmRDU1BWaW9sYXRpb25SZXBvcnQodWludDY0
X3QgZnJhbWVJRCwgY29uc3QgVVJMJiByZXBvcnRVUkwsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2Um
JiByZXBvcnREYXRhKQordm9pZCBXZWJQYWdlOjpzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KEZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgSVBDOjpGb3JtRGF0YVJl
ZmVyZW5jZSYmIHJlcG9ydERhdGEpCiB7CiAgICAgYXV0byByZXBvcnQgPSByZXBvcnREYXRhLnRh
a2VEYXRhKCk7CiAgICAgaWYgKCFyZXBvcnQpCkBAIC0zODE3LDcgKzM4MTcsNyBAQCB2b2lkIFdl
YlBhZ2U6OnNlbmRDU1BWaW9sYXRpb25SZXBvcnQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVVJM
JiByZXBvcnRVUkwsIElQQwogICAgICAgICBQaW5nTG9hZGVyOjpzZW5kVmlvbGF0aW9uUmVwb3J0
KCpmcmFtZS0+Y29yZUZyYW1lKCksIHJlcG9ydFVSTCwgcmVwb3J0LnJlbGVhc2VOb25OdWxsKCks
IFZpb2xhdGlvblJlcG9ydFR5cGU6OkNvbnRlbnRTZWN1cml0eVBvbGljeSk7CiB9CiAKLXZvaWQg
V2ViUGFnZTo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQodWludDY0X3QgZnJh
bWVJRCwgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmIGV2ZW50SW5pdCkKK3Zv
aWQgV2ViUGFnZTo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJiBldmVu
dEluaXQpCiB7CiAgICAgYXV0byogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJG
cmFtZShmcmFtZUlEKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtNDY4MCw3ICs0NjgwLDcgQEAgdm9p
ZCBXZWJQYWdlOjplZmZlY3RpdmVBcHBlYXJhbmNlRGlkQ2hhbmdlKGJvb2wgdXNlRGFya0FwcGVh
cmFuY2UsIGJvb2wgdXNlRWxldmEKIH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2U6OmJlZ2luUHJp
bnRpbmcodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8pCit2b2lk
IFdlYlBhZ2U6OmJlZ2luUHJpbnRpbmcoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFBy
aW50SW5mbyYgcHJpbnRJbmZvKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlmICghZnJhbWUpCkBAIC00NzI0
LDcgKzQ3MjQsNyBAQCB2b2lkIFdlYlBhZ2U6OmVuZFByaW50aW5nKCkKICAgICB9CiB9CiAKLXZv
aWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgUHJpbnRJbmZvJiBwcmludEluZm8sIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2Vi
UGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNv
bnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAg
VmVjdG9yPEludFJlY3Q+IHJlc3VsdFBhZ2VSZWN0czsKICAgICBkb3VibGUgcmVzdWx0VG90YWxT
Y2FsZUZhY3RvckZvclByaW50aW5nID0gMTsKQEAgLTQ3MzMsNyArNDczMyw3IEBAIHZvaWQgV2Vi
UGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJp
bnRJbmZvJiBwcmludEluCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDb21wdXRl
ZFBhZ2VzQ2FsbGJhY2socmVzdWx0UGFnZVJlY3RzLCByZXN1bHRUb3RhbFNjYWxlRmFjdG9yRm9y
UHJpbnRpbmcsIGNvbXB1dGVkUGFnZU1hcmdpbiwgY2FsbGJhY2tJRCkpOwogfQogCi12b2lkIFdl
YlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nSW1wbCh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBQcmludEluZm8mIHByaW50SW5mbywgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+JiByZXN1bHRQ
YWdlUmVjdHMsIGRvdWJsZSYgcmVzdWx0VG90YWxTY2FsZUZhY3RvckZvclByaW50aW5nLCBGbG9h
dEJveEV4dGVudCYgY29tcHV0ZWRQYWdlTWFyZ2luKQordm9pZCBXZWJQYWdlOjpjb21wdXRlUGFn
ZXNGb3JQcmludGluZ0ltcGwoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5m
byYgcHJpbnRJbmZvLCBWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4mIHJlc3VsdFBhZ2VSZWN0cywg
ZG91YmxlJiByZXN1bHRUb3RhbFNjYWxlRmFjdG9yRm9yUHJpbnRpbmcsIEZsb2F0Qm94RXh0ZW50
JiBjb21wdXRlZFBhZ2VNYXJnaW4pCiB7CiAgICAgQVNTRVJUKHJlc3VsdFBhZ2VSZWN0cy5pc0Vt
cHR5KCkpOwogCkBAIC00NzU2LDcgKzQ3NTYsNyBAQCB2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdl
c0ZvclByaW50aW5nSW1wbCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaQog
fQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi12b2lkIFdlYlBhZ2U6OmRyYXdSZWN0VG9JbWFnZSh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgY29uc3QgSW50UmVj
dCYgcmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaW1hZ2VTaXplLCBDYWxsYmFja0lEIGNh
bGxiYWNrSUQpCit2b2lkIFdlYlBhZ2U6OmRyYXdSZWN0VG9JbWFnZShGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3Qs
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGltYWdlU2l6ZSwgQ2FsbGJhY2tJRCBjYWxsYmFja0lE
KQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZy
YW1lKGZyYW1lSUQpOwogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBmcmFtZSA/IGZyYW1lLT5jb3Jl
RnJhbWUoKSA6IDA7CkBAIC00ODA2LDE0ICs0ODA2LDE0IEBAIHZvaWQgV2ViUGFnZTo6ZHJhd1Jl
Y3RUb0ltYWdlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBj
b25zCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpJbWFnZUNhbGxiYWNrKGhhbmRs
ZSwgY2FsbGJhY2tJRCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OmRyYXdQYWdlc1RvUERGKHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCB1aW50MzJfdCBmaXJzdCwg
dWludDMyX3QgY291bnQsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6ZHJh
d1BhZ2VzVG9QREYoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJp
bnRJbmZvLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIENhbGxiYWNrSUQgY2FsbGJh
Y2tJRCkKIHsKICAgICBSZXRhaW5QdHI8Q0ZNdXRhYmxlRGF0YVJlZj4gcGRmUGFnZURhdGE7CiAg
ICAgZHJhd1BhZ2VzVG9QREZJbXBsKGZyYW1lSUQsIHByaW50SW5mbywgZmlyc3QsIGNvdW50LCBw
ZGZQYWdlRGF0YSk7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEYXRhQ2FsbGJh
Y2soeyBDRkRhdGFHZXRCeXRlUHRyKHBkZlBhZ2VEYXRhLmdldCgpKSwgc3RhdGljX2Nhc3Q8c2l6
ZV90PihDRkRhdGFHZXRMZW5ndGgocGRmUGFnZURhdGEuZ2V0KCkpKSB9LCBjYWxsYmFja0lEKSk7
CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZHJhd1BhZ2VzVG9QREZJbXBsKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291
bnQsIFJldGFpblB0cjxDRk11dGFibGVEYXRhUmVmPiYgcGRmUGFnZURhdGEpCit2b2lkIFdlYlBh
Z2U6OmRyYXdQYWdlc1RvUERGSW1wbChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJp
bnRJbmZvJiBwcmludEluZm8sIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgUmV0YWlu
UHRyPENGTXV0YWJsZURhdGFSZWY+JiBwZGZQYWdlRGF0YSkKIHsKICAgICBXZWJGcmFtZSogZnJh
bWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBGcmFt
ZSogY29yZUZyYW1lID0gZnJhbWUgPyBmcmFtZS0+Y29yZUZyYW1lKCkgOiAwOwpAQCAtNDg2NCw3
ICs0ODY0LDcgQEAgdm9pZCBXZWJQYWdlOjpkcmF3UGFnZXNUb1BERkltcGwodWludDY0X3QgZnJh
bWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIHUKIH0KIAogI2VsaWYgUExBVEZPUk0o
R1RLKQotdm9pZCBXZWJQYWdlOjpkcmF3UGFnZXNGb3JQcmludGluZyh1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9p
ZCBXZWJQYWdlOjpkcmF3UGFnZXNGb3JQcmludGluZyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
Y29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAg
ICBiZWdpblByaW50aW5nKGZyYW1lSUQsIHByaW50SW5mbyk7CiAgICAgaWYgKG1fcHJpbnRDb250
ZXh0ICYmIG1fcHJpbnRPcGVyYXRpb24pIHsKQEAgLTY1MDIsNyArNjUwMiw3IEBAIHZvaWQgV2Vi
UGFnZTo6c2V0SXNTdXNwZW5kZWQoYm9vbCBzdXNwZW5kZWQpCiAgICAgc3VzcGVuZEZvclByb2Nl
c3NTd2FwKCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZnJhbWVCZWNhbWVSZW1vdGUodWludDY0X3Qg
ZnJhbWVJRCwgR2xvYmFsRnJhbWVJZGVudGlmaWVyJiYgcmVtb3RlRnJhbWVJZGVudGlmaWVyLCBH
bG9iYWxXaW5kb3dJZGVudGlmaWVyJiYgcmVtb3RlV2luZG93SWRlbnRpZmllcikKK3ZvaWQgV2Vi
UGFnZTo6ZnJhbWVCZWNhbWVSZW1vdGUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEdsb2JhbEZy
YW1lSWRlbnRpZmllciYmIHJlbW90ZUZyYW1lSWRlbnRpZmllciwgR2xvYmFsV2luZG93SWRlbnRp
ZmllciYmIHJlbW90ZVdpbmRvd0lkZW50aWZpZXIpCiB7CiAgICAgUmVmUHRyPFdlYkZyYW1lPiBm
cmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlm
ICghZnJhbWUpCkBAIC02NTM0LDEyICs2NTM0LDEyIEBAIHZvaWQgV2ViUGFnZTo6ZnJhbWVCZWNh
bWVSZW1vdGUodWludDY0X3QgZnJhbWVJRCwgR2xvYmFsRnJhbWVJZGVudGlmaWVyJiYgcmVtb3Rl
CiB9CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotdm9pZCBXZWJQYWdl
OjpoYXNTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFJl
Z2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBh
Z2U6Omhhc1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwg
UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6Okhhc1N0b3JhZ2VBY2Nlc3Moc2Vzc2lvbklEKCksIFdURk1v
dmUoc3ViRnJhbWVEb21haW4pLCBXVEZNb3ZlKHRvcEZyYW1lRG9tYWluKSwgZnJhbWVJRCwgbV9w
YWdlSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6
cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwg
UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgV2Vi
Q29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3ZvaWQgV2ViUGFnZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBz
dWJGcmFtZURvbWFpbiwgUmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFn
ZUFjY2Vzc1dhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5z
dXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlJlcXVlc3RTdG9y
YWdlQWNjZXNzKHNlc3Npb25JRCgpLCBXVEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0
b3BGcmFtZURvbWFpbiksIGZyYW1lSUQsIG1fcGFnZUlEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwogfQpAQCAtNjU1NSw3ICs2NTU1LDcgQEAgdm9pZCBXZWJQYWdlOjp3YXNMb2FkZWRX
aXRoRGF0YVRyYW5zZmVyRnJvbVByZXZhbGVudFJlc291cmNlKCkKICNlbmRpZgogCiAjaWYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKLXZvaWQgV2ViUGFnZTo6c2hvdWxkQWxsb3dEZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmJiBvcmlnaW4sIGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlOjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9u
QW5kTW90aW9uQWNjZXNzKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmJiBvcmlnaW4sIGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKGZyYW1lSUQs
IFdURk1vdmUob3JpZ2luKSwgbWF5UHJvbXB0KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDcw
OTkyNzAxNDI0M2MxMTI4ZmY2ZmFjOWU0ZWE5MmRkNjUxMjJjNmYuLjFkOTcxZjRhMzM4NjExZTk0
MDliMzRmMWU4MWRlZTUwYzc2MmZjYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKQEAgLTM0Niw5ICszNDYsOSBAQCBwdWJsaWM6CiAgICAgV2ViRnVsbFNj
cmVlbk1hbmFnZXIqIGZ1bGxTY3JlZW5NYW5hZ2VyKCk7CiAjZW5kaWYKIAotICAgIHZvaWQgYWRk
Q29uc29sZU1lc3NhZ2UodWludDY0X3QgZnJhbWVJRCwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxl
dmVsLCBjb25zdCBTdHJpbmcmLCB1aW50NjRfdCByZXF1ZXN0SUQgPSAwKTsKLSAgICB2b2lkIHNl
bmRDU1BWaW9sYXRpb25SZXBvcnQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVVJMJiByZXBvcnRV
UkwsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJik7Ci0gICAgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQ
b2xpY3lWaW9sYXRpb25FdmVudCh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eVBv
bGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYpOworICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2Uo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNv
bnN0IFN0cmluZyYsIHVpbnQ2NF90IHJlcXVlc3RJRCA9IDApOworICAgIHZvaWQgc2VuZENTUFZp
b2xhdGlvblJlcG9ydChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFVSTCYgcmVwb3J0
VVJMLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYpOworICAgIHZvaWQgZW5xdWV1ZVNlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpT
ZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYpOwogCiAgICAgLy8gLS0gQ2FsbGVk
IGJ5IHRoZSBEcmF3aW5nQXJlYS4KICAgICAvLyBGSVhNRTogV2UgY291bGQgZ2VuZXJpY2l6ZSB0
aGVzZSBpbnRvIGEgRHJhd2luZ0FyZWEgY2xpZW50IGludGVyZmFjZS4gV291bGQgdGhhdCBiZSBi
ZW5lZmljaWFsPwpAQCAtNTIyLDcgKzUyMiw3IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpDb2xv
ciB1bmRlcmxheUNvbG9yKCkgY29uc3QgeyByZXR1cm4gbV91bmRlcmxheUNvbG9yOyB9CiAKICAg
ICB2b2lkIHN0b3BMb2FkaW5nKCk7Ci0gICAgdm9pZCBzdG9wTG9hZGluZ0ZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQpOworICAgIHZvaWQgc3RvcExvYWRpbmdGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIpOwogICAgIGJvb2wgZGVmZXJzTG9hZGluZygpIGNvbnN0OwogICAgIHZvaWQgc2V0RGVm
ZXJzTG9hZGluZyhib29sIGRlZmVyTG9hZGluZyk7CiAKQEAgLTc2OSw3ICs3NjksNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBjb25maXJtQ29tcG9zaXRpb24oY29uc3QgU3RyaW5nJiB0ZXh0LCBpbnQ2
NF90IHNlbGVjdGlvblN0YXJ0LCBpbnQ2NF90IHNlbGVjdGlvbkxlbmd0aCk7CiAgICAgdm9pZCBj
YW5jZWxDb21wb3NpdGlvbigpOwogCi0gICAgdm9pZCBjb2xsYXBzZVNlbGVjdGlvbkluRnJhbWUo
dWludDY0X3QgZnJhbWVJRCk7CisgICAgdm9pZCBjb2xsYXBzZVNlbGVjdGlvbkluRnJhbWUoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICAgICB2b2lkIHNob3dFbW9qaVBpY2tlcihXZWJDb3Jl
OjpGcmFtZSYpOwogCiAgICAgdm9pZCBnZXRDZW50ZXJGb3Jab29tR2VzdHVyZShjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgY2VudGVySW5WaWV3Q29vcmRpbmF0ZXMsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViQ29yZTo6SW50UG9pbnQmJik+JiYpOwpAQCAtODYyLDIzICs4NjIsMjMgQEAgcHVi
bGljOgogICAgIFdlYkNvcmU6OkRyYWdTb3VyY2VBY3Rpb24gYWxsb3dlZERyYWdTb3VyY2VBY3Rp
b25zKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd2VkRHJhZ1NvdXJjZUFjdGlvbnM7IH0KICNlbmRp
ZgogCi0gICAgdm9pZCBiZWdpblByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50
SW5mbyYpOworICAgIHZvaWQgYmVnaW5QcmludGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IGNvbnN0IFByaW50SW5mbyYpOwogICAgIHZvaWQgZW5kUHJpbnRpbmcoKTsKLSAgICB2b2lkIGNv
bXB1dGVQYWdlc0ZvclByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYs
IENhbGxiYWNrSUQpOwotICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdJbXBsKHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiYg
cGFnZVJlY3RzLCBkb3VibGUmIHRvdGFsU2NhbGVGYWN0b3IsIFdlYkNvcmU6OkZsb2F0Qm94RXh0
ZW50JiBjb21wdXRlZE1hcmdpbik7CisgICAgdm9pZCBjb21wdXRlUGFnZXNGb3JQcmludGluZyhX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYsIENhbGxiYWNrSUQpOwor
ICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdJbXBsKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciwgY29uc3QgUHJpbnRJbmZvJiwgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+JiBwYWdlUmVj
dHMsIGRvdWJsZSYgdG90YWxTY2FsZUZhY3RvciwgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIGNv
bXB1dGVkTWFyZ2luKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHZvaWQgZHJhd1JlY3RU
b0ltYWdlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgQ2FsbGJhY2tJRCk7Ci0gICAgdm9p
ZCBkcmF3UGFnZXNUb1BERih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mLCB1aW50
MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIENhbGxiYWNrSUQpOwotICAgIHZvaWQgZHJhd1Bh
Z2VzVG9QREZJbXBsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIHVpbnQzMl90
IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgUmV0YWluUHRyPENGTXV0YWJsZURhdGFSZWY+JiBwZGZQ
YWdlRGF0YSk7CisgICAgdm9pZCBkcmF3UmVjdFRvSW1hZ2UoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBjb25zdCBQcmludEluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYsIENhbGxiYWNrSUQpOworICAgIHZvaWQgZHJhd1BhZ2VzVG9QREYoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mLCB1aW50MzJfdCBmaXJzdCwg
dWludDMyX3QgY291bnQsIENhbGxiYWNrSUQpOworICAgIHZvaWQgZHJhd1BhZ2VzVG9QREZJbXBs
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgdWludDMyX3QgZmly
c3QsIHVpbnQzMl90IGNvdW50LCBSZXRhaW5QdHI8Q0ZNdXRhYmxlRGF0YVJlZj4mIHBkZlBhZ2VE
YXRhKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB2b2lkIGNvbXB1
dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFBy
aW50SW5mbyYsIENhbGxiYWNrSUQsIE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21wdXRlUGFnZXNGb3JQ
cmludGluZ0FuZERyYXdUb1BERjo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgY29tcHV0ZVBh
Z2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25z
dCBQcmludEluZm8mLCBDYWxsYmFja0lELCBNZXNzYWdlczo6V2ViUGFnZTo6Q29tcHV0ZVBhZ2Vz
Rm9yUHJpbnRpbmdBbmREcmF3VG9QREY6OkRlbGF5ZWRSZXBseSYmKTsKICNlbmRpZgogCiAjaWYg
UExBVEZPUk0oR1RLKQotICAgIHZvaWQgZHJhd1BhZ2VzRm9yUHJpbnRpbmcodWludDY0X3QgZnJh
bWVJRCwgY29uc3QgUHJpbnRJbmZvJiwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBkcmF3UGFnZXNG
b3JQcmludGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYsIENh
bGxiYWNrSUQpOwogICAgIHZvaWQgZGlkRmluaXNoUHJpbnRPcGVyYXRpb24oY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciYsIENhbGxiYWNrSUQpOwogI2VuZGlmCiAKQEAgLTExMzEsMTMgKzEx
MzEsMTMgQEAgcHVibGljOgogICAgIHZvaWQgZmx1c2hQZW5kaW5nRWRpdG9yU3RhdGVVcGRhdGUo
KTsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgdm9pZCBoYXNT
dG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4s
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZy
YW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotICAgIHZvaWQgcmVxdWVz
dFN0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFp
biwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3Qg
ZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2Fz
R3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJik7CisgICAg
dm9pZCBoYXNTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJh
bWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7
CisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biYmIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1l
RG9tYWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
V2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQ
cm9tcHRXYXNTaG93bik+JiYpOwogICAgIHZvaWQgd2FzTG9hZGVkV2l0aERhdGFUcmFuc2ZlckZy
b21QcmV2YWxlbnRSZXNvdXJjZSgpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQotICAgIHZvaWQgc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFj
Y2Vzcyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgYm9v
bCBtYXlQcm9tcHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RGV2aWNlT3JpZW50
YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+JiYpOworICAgIHZvaWQgc2hvdWxkQWxsb3dE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBib29sIG1heVByb21wdCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lv
blN0YXRlKT4mJik7CiAjZW5kaWYKIAogICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQoV2ViQ29yZTo6
U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYg
Y2FsbGJhY2spOwpAQCAtMTM1Niw4ICsxMzU2LDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgYm9v
bCBzY3JvbGwoV2ViQ29yZTo6UGFnZSosIFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbiwgV2ViQ29y
ZTo6U2Nyb2xsR3JhbnVsYXJpdHkpOwogICAgIHN0YXRpYyBib29sIGxvZ2ljYWxTY3JvbGwoV2Vi
Q29yZTo6UGFnZSosIFdlYkNvcmU6OlNjcm9sbExvZ2ljYWxEaXJlY3Rpb24sIFdlYkNvcmU6OlNj
cm9sbEdyYW51bGFyaXR5KTsKIAotICAgIHZvaWQgbG9hZFVSTEluRnJhbWUoVVJMJiYsIGNvbnN0
IFN0cmluZyYgcmVmZXJyZXIsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgbG9hZERhdGFJ
bkZyYW1lKElQQzo6RGF0YVJlZmVyZW5jZSYmLCBTdHJpbmcmJiBNSU1FVHlwZSwgU3RyaW5nJiYg
ZW5jb2RpbmdOYW1lLCBVUkwmJiBiYXNlVVJMLCB1aW50NjRfdCBmcmFtZUlEKTsKKyAgICB2b2lk
IGxvYWRVUkxJbkZyYW1lKFVSTCYmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgbG9hZERhdGFJbkZyYW1lKElQQzo6RGF0YVJlZmVy
ZW5jZSYmLCBTdHJpbmcmJiBNSU1FVHlwZSwgU3RyaW5nJiYgZW5jb2RpbmdOYW1lLCBVUkwmJiBi
YXNlVVJMLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogCiAgICAgZW51bSBjbGFzcyBXYXNS
ZXN0b3JlZEJ5QVBJUmVxdWVzdCB7IE5vLCBZZXMgfTsKICAgICB2b2lkIHJlc3RvcmVTZXNzaW9u
SW50ZXJuYWwoY29uc3QgVmVjdG9yPEJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZT4mLCBXYXNSZXN0
b3JlZEJ5QVBJUmVxdWVzdCwgV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6Ok92ZXJ3cml0ZUV4aXN0
aW5nSXRlbSk7CkBAIC0xMzg5LDE2ICsxMzg5LDE2IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1I
VE1MKQogICAgIHZvaWQgZ2V0Q29udGVudHNBc01IVE1MRGF0YShDYWxsYmFja0lEKTsKICNlbmRp
ZgotICAgIHZvaWQgZ2V0TWFpblJlc291cmNlRGF0YU9mRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
Q2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBnZXRSZXNvdXJjZURhdGFGcm9tRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgU3RyaW5nJiByZXNvdXJjZVVSTCwgQ2FsbGJhY2tJRCk7CisgICAgdm9p
ZCBnZXRNYWluUmVzb3VyY2VEYXRhT2ZGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENh
bGxiYWNrSUQpOworICAgIHZvaWQgZ2V0UmVzb3VyY2VEYXRhRnJvbUZyYW1lKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiByZXNvdXJjZVVSTCwgQ2FsbGJhY2tJRCk7CiAg
ICAgdm9pZCBnZXRSZW5kZXJUcmVlRXh0ZXJuYWxSZXByZXNlbnRhdGlvbihDYWxsYmFja0lEKTsK
ICAgICB2b2lkIGdldFNlbGVjdGlvbk9yQ29udGVudHNBc1N0cmluZyhDYWxsYmFja0lEKTsKICAg
ICB2b2lkIGdldFNlbGVjdGlvbkFzV2ViQXJjaGl2ZURhdGEoQ2FsbGJhY2tJRCk7Ci0gICAgdm9p
ZCBnZXRTb3VyY2VGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDYWxsYmFja0lEKTsKLSAgICB2
b2lkIGdldFdlYkFyY2hpdmVPZkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENhbGxiYWNrSUQpOwor
ICAgIHZvaWQgZ2V0U291cmNlRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBDYWxs
YmFja0lEKTsKKyAgICB2b2lkIGdldFdlYkFyY2hpdmVPZkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBydW5KYXZhU2NyaXB0KFdlYkZyYW1lKiwg
Y29uc3QgU3RyaW5nJiwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBjb25zdCBPcHRpb25hbDxTdHJp
bmc+JiB3b3JsZE5hbWUsIENhbGxiYWNrSUQpOwogICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluTWFp
bkZyYW1lU2NyaXB0V29ybGQoY29uc3QgU3RyaW5nJiwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBj
b25zdCBPcHRpb25hbDxTdHJpbmc+JiB3b3JsZE5hbWUsIENhbGxiYWNrSUQpOwotICAgIHZvaWQg
cnVuSmF2YVNjcmlwdEluRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiwgYm9v
bCBmb3JjZVVzZXJHZXN0dXJlLCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIHJ1bkphdmFTY3JpcHRJ
bkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCBmb3Jj
ZVVzZXJHZXN0dXJlLCBDYWxsYmFja0lEKTsKICAgICB2b2lkIGZvcmNlUmVwYWludChDYWxsYmFj
a0lEKTsKICAgICB2b2lkIHRha2VTbmFwc2hvdChXZWJDb3JlOjpJbnRSZWN0IHNuYXBzaG90UmVj
dCwgV2ViQ29yZTo6SW50U2l6ZSBiaXRtYXBTaXplLCB1aW50MzJfdCBvcHRpb25zLCBDYWxsYmFj
a0lEKTsKIApAQCAtMTQxMiw4ICsxNDEyLDggQEAgcHJpdmF0ZToKICAgICBib29sIHBhcmVudFBy
b2Nlc3NIYXNTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
CiAjZW5kaWYKIAotICAgIHZvaWQgZGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKHVpbnQ2NF90IGZy
YW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciwgV2ViQ29yZTo6UG9saWN5QWN0aW9uLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IERv
d25sb2FkSUQmLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmKTsKLSAgICB2b2lkIGNv
bnRpbnVlV2lsbFN1Ym1pdEZvcm0odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJ
RCk7CisgICAgdm9pZCBkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24oV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZp
ZXIsIFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBE
b3dubG9hZElEJiwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJik7CisgICAgdm9pZCBj
b250aW51ZVdpbGxTdWJtaXRGb3JtKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3Qg
bGlzdGVuZXJJRCk7CiAgICAgdm9pZCBzZXRVc2VyQWdlbnQoY29uc3QgU3RyaW5nJik7CiAgICAg
dm9pZCBzZXRDdXN0b21UZXh0RW5jb2RpbmdOYW1lKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQg
c3VzcGVuZEFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zKCk7CkBAIC0xNDMxLDcgKzE0MzEs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgd2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JiB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgd2luZG93RnJhbWVJblVuZmxpcHBlZFNjcmVlbkNvb3JkaW5h
dGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0
ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGFjY2Vzc2liaWxpdHlWaWV3Q29vcmRpbmF0
ZXMpOwogCiAgICAgUmV0YWluUHRyPFBERkRvY3VtZW50PiBwZGZEb2N1bWVudEZvclByaW50aW5n
RnJhbWUoV2ViQ29yZTo6RnJhbWUqKTsKLSAgICB2b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5n
UERGRG9jdW1lbnQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiwgVmVjdG9yPFdl
YkNvcmU6OkludFJlY3Q+JiByZXN1bHRQYWdlUmVjdHMpOworICAgIHZvaWQgY29tcHV0ZVBhZ2Vz
Rm9yUHJpbnRpbmdQREZEb2N1bWVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFBy
aW50SW5mbyYsIFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiYgcmVzdWx0UGFnZVJlY3RzKTsKICAg
ICB2b2lkIGRyYXdQREZEb2N1bWVudChDR0NvbnRleHRSZWYsIFBERkRvY3VtZW50ICosIGNvbnN0
IFByaW50SW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKICAgICB2b2lkIGRyYXdQYWdl
c1RvUERGRnJvbVBERkRvY3VtZW50KENHQ29udGV4dFJlZiwgUERGRG9jdW1lbnQgKiwgY29uc3Qg
UHJpbnRJbmZvJiwgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50KTsKICNlbmRpZgpAQCAt
MTU4NCw3ICsxNTg0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHZvaWNlc0RpZENoYW5nZSgpOwog
I2VuZGlmCiAKLSAgICB2b2lkIGZyYW1lQmVjYW1lUmVtb3RlKHVpbnQ2NF90IGZyYW1lSUQsIFdl
YkNvcmU6Okdsb2JhbEZyYW1lSWRlbnRpZmllciYmIHJlbW90ZUZyYW1lSWRlbnRpZmllciwgV2Vi
Q29yZTo6R2xvYmFsV2luZG93SWRlbnRpZmllciYmIHJlbW90ZVdpbmRvd0lkZW50aWZpZXIpOwor
ICAgIHZvaWQgZnJhbWVCZWNhbWVSZW1vdGUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJD
b3JlOjpHbG9iYWxGcmFtZUlkZW50aWZpZXImJiByZW1vdGVGcmFtZUlkZW50aWZpZXIsIFdlYkNv
cmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXImJiByZW1vdGVXaW5kb3dJZGVudGlmaWVyKTsKIAog
ICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVIYW5kbGVyKHVpbnQ2NF90IGlkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgc2NoZW1lKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggYTUyZTI1MWQyNWRhNmQ4ODcxYjI3
MmQ3MTQyMjkxMzI5YzVmMjQzOC4uYmE3ZjY0YmZkY2JjY2Y4YWIyYzMzZjZjMjc4YjQ2ZDE1MTg4
OGYwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluCkBAIC0yNyw5ICsyNyw5IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVn
YWN5UmVjZWl2ZXIgewogCiAgICAgU2V0QmFja2dyb3VuZENvbG9yKE9wdGlvbmFsPFdlYkNvcmU6
OkNvbG9yPiBjb2xvcikKIAotICAgIEFkZENvbnNvbGVNZXNzYWdlKHVpbnQ2NF90IGZyYW1lSUQs
IGVudW06dWludDhfdCBKU0M6Ok1lc3NhZ2VTb3VyY2UgbWVzc2FnZVNvdXJjZSwgZW51bTp1aW50
OF90IEpTQzo6TWVzc2FnZUxldmVsIG1lc3NhZ2VMZXZlbCwgU3RyaW5nIG1lc3NhZ2UsIHVpbnQ2
NF90IHJlcXVlc3RJRCkKLSAgICBTZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KHVpbnQ2NF90IGZyYW1l
SUQsIFVSTCByZXBvcnRVUkwsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVwb3J0RGF0YSkKLSAg
ICBFbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCh1aW50NjRfdCBmcmFtZUlELCBX
ZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0IGV2ZW50SW5pdCkKKyAg
ICBBZGRDb25zb2xlTWVzc2FnZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgZW51
bTp1aW50OF90IEpTQzo6TWVzc2FnZVNvdXJjZSBtZXNzYWdlU291cmNlLCBlbnVtOnVpbnQ4X3Qg
SlNDOjpNZXNzYWdlTGV2ZWwgbWVzc2FnZUxldmVsLCBTdHJpbmcgbWVzc2FnZSwgdWludDY0X3Qg
cmVxdWVzdElEKQorICAgIFNlbmRDU1BWaW9sYXRpb25SZXBvcnQoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIFVSTCByZXBvcnRVUkwsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVw
b3J0RGF0YSkKKyAgICBFbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudDo6SW5pdCBldmVudEluaXQpCiAKICAgICBUZXN0UHJvY2Vzc0luY29taW5nU3luY01l
c3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoKSAtPiAoYm9vbCBoYW5kbGVkKSBTeW5jaHJv
bm91cwogCkBAIC0xNjIsOCArMTYyLDggQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFu
ZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBH
b1RvQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYkNvcmU6
OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgYmFja0ZvcndhcmRJdGVtSUQsIGVudW06dWludDhf
dCBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlIGJhY2tGb3J3YXJkVHlwZSwgZW51bTpib29sIFdlYkNv
cmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xv
YWQsIE9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0YT4gd2Vic2l0ZVBvbGljaWVz
KQogICAgIFRyeVJlc3RvcmVTY3JvbGxQb3NpdGlvbigpCiAKLSAgICBMb2FkVVJMSW5GcmFtZShV
UkwgdXJsLCBTdHJpbmcgcmVmZXJyZXIsIHVpbnQ2NF90IGZyYW1lSUQpCi0gICAgTG9hZERhdGFJ
bkZyYW1lKElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhLCBTdHJpbmcgTUlNRVR5cGUsIFN0cmluZyBl
bmNvZGluZ05hbWUsIFVSTCBiYXNlVVJMLCB1aW50NjRfdCBmcmFtZUlEKQorICAgIExvYWRVUkxJ
bkZyYW1lKFVSTCB1cmwsIFN0cmluZyByZWZlcnJlciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQpCisgICAgTG9hZERhdGFJbkZyYW1lKElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhLCBT
dHJpbmcgTUlNRVR5cGUsIFN0cmluZyBlbmNvZGluZ05hbWUsIFVSTCBiYXNlVVJMLCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKICAgICBMb2FkUmVxdWVzdChzdHJ1Y3QgV2ViS2l0
OjpMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycykKICAgICBMb2FkRGF0YShzdHJ1Y3QgV2Vi
S2l0OjpMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycykKICAgICBMb2FkQWx0ZXJuYXRlSFRN
TChzdHJ1Y3QgV2ViS2l0OjpMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycykKQEAgLTE3Myw3
ICsxNzMsNyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBX
ZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIFJlbG9hZCh1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIHVpbnQzMl90IHJlbG9hZE9wdGlvbnMsIFdlYktpdDo6U2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpCiAgICAgU3RvcExvYWRpbmcoKQog
Ci0gICAgU3RvcExvYWRpbmdGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQorICAgIFN0b3BMb2FkaW5n
RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAgICAgCiAgICAgUmVzdG9y
ZVNlc3Npb24oVmVjdG9yPFdlYktpdDo6QmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlPiBpdGVtU3Rh
dGVzKQogICAgIFVwZGF0ZUJhY2tGb3J3YXJkTGlzdEZvclJlYXR0YWNoKFZlY3RvcjxXZWJLaXQ6
OkJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZT4gaXRlbVN0YXRlcykKQEAgLTE4Miw4ICsxODIsOCBA
QCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5
bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIERpZFJlbW92ZUJhY2tGb3J3YXJkSXRlbShz
dHJ1Y3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciBiYWNrRm9yd2FyZEl0ZW1J
RCkKIAogICAgIFVwZGF0ZVdlYnNpdGVQb2xpY2llcyhzdHJ1Y3QgV2ViS2l0OjpXZWJzaXRlUG9s
aWNpZXNEYXRhIHdlYnNpdGVQb2xpY2llcykKLSAgICBEaWRSZWNlaXZlUG9saWN5RGVjaXNpb24o
dWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgZW51bTp1aW50OF90IFdlYkNvcmU6
OlBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViS2l0
OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIE9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBvbGljaWVz
RGF0YT4gd2Vic2l0ZVBvbGljaWVzKQotICAgIENvbnRpbnVlV2lsbFN1Ym1pdEZvcm0odWludDY0
X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCkKKyAgICBEaWRSZWNlaXZlUG9saWN5RGVj
aXNpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVy
SUQsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIs
IGVudW06dWludDhfdCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBPcHRpb25hbDxX
ZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQb2xpY2llcykKKyAgICBDb250aW51
ZVdpbGxTdWJtaXRGb3JtKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRf
dCBsaXN0ZW5lcklEKQogCiAgICAgQ2xlYXJTZWxlY3Rpb24oKQogICAgIFJlc3RvcmVTZWxlY3Rp
b25JbkZvY3VzZWRFZGl0YWJsZUVsZW1lbnQoKQpAQCAtMTk2LDE1ICsxOTYsMTUgQEAgR2VuZXJh
dGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNF
ZGl0aW5nQ29tbWFuZFR5cGUKICNpZiBFTkFCTEUoTUhUTUwpCiAgICAgR2V0Q29udGVudHNBc01I
VE1MRGF0YShXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICNlbmRpZgotICAgIEdldE1h
aW5SZXNvdXJjZURhdGFPZkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6Q2FsbGJhY2tJ
RCBjYWxsYmFja0lEKQotICAgIEdldFJlc291cmNlRGF0YUZyb21GcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBTdHJpbmcgcmVzb3VyY2VVUkwsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQor
ICAgIEdldE1haW5SZXNvdXJjZURhdGFPZkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBHZXRSZXNvdXJjZURh
dGFGcm9tRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyByZXNv
dXJjZVVSTCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgR2V0UmVuZGVyVHJl
ZUV4dGVybmFsUmVwcmVzZW50YXRpb24oV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAg
ICAgR2V0U2VsZWN0aW9uT3JDb250ZW50c0FzU3RyaW5nKFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxs
YmFja0lEKQogICAgIEdldFNlbGVjdGlvbkFzV2ViQXJjaGl2ZURhdGEoV2ViS2l0OjpDYWxsYmFj
a0lEIGNhbGxiYWNrSUQpCi0gICAgR2V0U291cmNlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
V2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCi0gICAgR2V0V2ViQXJjaGl2ZU9mRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCisgICAgR2V0
U291cmNlRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYktpdDo6
Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIEdldFdlYkFyY2hpdmVPZkZyYW1lKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkK
ICAgICBSdW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3JsZChTdHJpbmcgc2NyaXB0LCBi
b29sIGZvcmNlVXNlckdlc3R1cmUsIE9wdGlvbmFsPFN0cmluZz4gd29ybGROYW1lLCBXZWJLaXQ6
OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKLSAgICBSdW5KYXZhU2NyaXB0SW5GcmFtZSh1aW50NjRf
dCBmcmFtZUlELCBTdHJpbmcgc2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIFdlYktpdDo6
Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIFJ1bkphdmFTY3JpcHRJbkZyYW1lKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgc2NyaXB0LCBib29sIGZvcmNlVXNlckdl
c3R1cmUsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIEZvcmNlUmVwYWludChX
ZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIAogICAgIFNlbGVjdEFsbCgpCkBAIC0zODAs
MTggKzM4MCwxOCBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhf
dCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIERpZFJlY2VpdmVOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wg
YWxsb3dlZCkKIAogICAgICMgUHJpbnRpbmcuCi0gICAgQmVnaW5QcmludGluZyh1aW50NjRfdCBm
cmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvKQorICAgIEJlZ2luUHJp
bnRpbmcoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlBy
aW50SW5mbyBwcmludEluZm8pCiAgICAgRW5kUHJpbnRpbmcoKQotICAgIENvbXB1dGVQYWdlc0Zv
clByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmlu
dEluZm8sIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIENvbXB1dGVQYWdlc0Zv
clByaW50aW5nKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0
OjpQcmludEluZm8gcHJpbnRJbmZvLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICNp
ZiBQTEFURk9STShDT0NPQSkKLSAgICBEcmF3UmVjdFRvSW1hZ2UodWludDY0X3QgZnJhbWVJRCwg
c3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2ViQ29yZTo6SW50UmVjdCByZWN0
LCBXZWJDb3JlOjpJbnRTaXplIGltYWdlU2l6ZSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNr
SUQpCi0gICAgRHJhd1BhZ2VzVG9QREYodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6
UHJpbnRJbmZvIHByaW50SW5mbywgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBXZWJL
aXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBEcmF3UmVjdFRvSW1hZ2UoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludElu
Zm8sIFdlYkNvcmU6OkludFJlY3QgcmVjdCwgV2ViQ29yZTo6SW50U2l6ZSBpbWFnZVNpemUsIFdl
YktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIERyYXdQYWdlc1RvUERGKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJ
bmZvLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIFdlYktpdDo6Q2FsbGJhY2tJRCBj
YWxsYmFja0lEKQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgQ29tcHV0ZVBhZ2VzRm9y
UHJpbnRpbmdBbmREcmF3VG9QREYodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJp
bnRJbmZvIHByaW50SW5mbywgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpIC0+ICh1aW50
MzJfdCBwYWdlQ291bnQpIFN5bmNocm9ub3VzCisgICAgQ29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdB
bmREcmF3VG9QREYoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJL
aXQ6OlByaW50SW5mbyBwcmludEluZm8sIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKSAt
PiAodWludDMyX3QgcGFnZUNvdW50KSBTeW5jaHJvbm91cwogI2VuZGlmCiAjZW5kaWYKICNpZiBQ
TEFURk9STShHVEspCi0gICAgRHJhd1BhZ2VzRm9yUHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwg
c3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2ViS2l0OjpDYWxsYmFja0lEIGNh
bGxiYWNrSUQpCisgICAgRHJhd1BhZ2VzRm9yUHJpbnRpbmcoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIFdlYktpdDo6
Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogI2VuZGlmCiAKICAgICAjIE1lZGlhCkBAIC00MTMsNyAr
NDEzLDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2Vi
S2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBDb25maXJtQ29tcG9zaXRpb24o
U3RyaW5nIHRleHQsIGludDY0X3Qgc2VsZWN0aW9uU3RhcnQsIGludDY0X3Qgc2VsZWN0aW9uTGVu
Z3RoKQogICAgIENhbmNlbENvbXBvc2l0aW9uKCkKIAotICAgIENvbGxhcHNlU2VsZWN0aW9uSW5G
cmFtZSh1aW50NjRfdCBmcmFtZUlEKQorICAgIENvbGxhcHNlU2VsZWN0aW9uSW5GcmFtZShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIAogICAgIEdldENlbnRlckZvclpvb21HZXN0
dXJlKFdlYkNvcmU6OkludFBvaW50IGNlbnRlckluVmlld0Nvb3JkaW5hdGVzKSAtPiAoV2ViQ29y
ZTo6SW50UG9pbnQgY2VudGVyKSBTeW5jaHJvbm91cwogI2VuZGlmCkBAIC01MzYsNyArNTM2LDcg
QEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpT
eW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBEaWRSZWNlaXZlUGFzc3dvcmRGb3JRdWlj
a0xvb2tEb2N1bWVudChTdHJpbmcgcGFzc3dvcmQpCiAjZW5kaWYKIAotICAgIEZyYW1lQmVjYW1l
UmVtb3RlKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpHbG9iYWxGcmFtZUlkZW50
aWZpZXIgcmVtb3RlRnJhbWVJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6R2xvYmFsV2luZG93
SWRlbnRpZmllciByZW1vdGVXaW5kb3dJZGVudGlmaWVyKQorICAgIEZyYW1lQmVjYW1lUmVtb3Rl
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6R2xvYmFs
RnJhbWVJZGVudGlmaWVyIHJlbW90ZUZyYW1lSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Okds
b2JhbFdpbmRvd0lkZW50aWZpZXIgcmVtb3RlV2luZG93SWRlbnRpZmllcikKIAogICAgIFJlZ2lz
dGVyVVJMU2NoZW1lSGFuZGxlcih1aW50NjRfdCBpZGVudGlmaWVyLCBTdHJpbmcgc2NoZW1lKQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9T
Lm1tCmluZGV4IGU0YzY0MjcxY2NmODkzYjM1OWI5NDU3OWM4YjJkMTc5MWRkYTljYjkuLjJkYjBl
YjZiYmFhNDU3OGJmNmE2OTVjZTQwMDJkNzczNjUxNmJkNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC01NTEsNyArNTUx
LDcgQEAgdm9pZCBXZWJQYWdlOjphY2NlcHRzRmlyc3RNb3VzZShpbnQsIGNvbnN0IFdlYktpdDo6
V2ViTW91c2VFdmVudCYsIENvbXBsZXRpb25IYW4KICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxz
ZSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdQREZEb2N1bWVu
dCh1aW50NjRfdCwgY29uc3QgUHJpbnRJbmZvJiwgVmVjdG9yPEludFJlY3Q+JikKK3ZvaWQgV2Vi
UGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdQREZEb2N1bWVudChXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYsIFZlY3RvcjxJbnRSZWN0PiYpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTM3MzksNyArMzczOSw3IEBAIHZvaWQgV2ViUGFnZTo6ZGlz
cGF0Y2hBc3luY2hyb25vdXNUb3VjaEV2ZW50cyhjb25zdCBWZWN0b3I8V2ViVG91Y2hFdmVudCwg
MT4mIHF1CiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGlu
Z0FuZERyYXdUb1BERih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5m
bywgQ2FsbGJhY2tJRCBjYWxsYmFja0lELCBNZXNzYWdlczo6V2ViUGFnZTo6Q29tcHV0ZVBhZ2Vz
Rm9yUHJpbnRpbmdBbmREcmF3VG9QREY6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQordm9pZCBXZWJQ
YWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERihXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIENhbGxiYWNrSUQg
Y2FsbGJhY2tJRCwgTWVzc2FnZXM6OldlYlBhZ2U6OkNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5k
RHJhd1RvUERGOjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsKICAgICBpZiAocHJpbnRJbmZvLnNu
YXBzaG90Rmlyc3RQYWdlKSB7CiAgICAgICAgIHJlcGx5KDEpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQppbmRleCA0MzFkZmExN2Fj
YTA1YjYwZWZlOWFlMDQwM2E0MDg4MGUyODE4ZDgwLi5mZTI0MTdiMGE3ZDU4MzYzYzU0YmI4NmRh
NTc4OThkMTFmYmUzNTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvV2ViUGFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvV2ViUGFnZU1hYy5tbQpAQCAtNjcwLDcgKzY3MCw3IEBAIHZvaWQgV2ViUGFnZTo6
dXBkYXRlSGVhZGVyQW5kRm9vdGVyTGF5ZXJzRm9yRGV2aWNlU2NhbGVDaGFuZ2UoZmxvYXQgc2Nh
bGVGYWN0b3IpCiAgICAgICAgIG1fZm9vdGVyQmFubmVyLT5kaWRDaGFuZ2VEZXZpY2VTY2FsZUZh
Y3RvcihzY2FsZUZhY3Rvcik7CiB9CiAKLXZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJp
bnRpbmdQREZEb2N1bWVudCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50
SW5mbywgVmVjdG9yPEludFJlY3Q+JiByZXN1bHRQYWdlUmVjdHMpCit2b2lkIFdlYlBhZ2U6OmNv
bXB1dGVQYWdlc0ZvclByaW50aW5nUERGRG9jdW1lbnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBWZWN0b3I8SW50UmVjdD4mIHJl
c3VsdFBhZ2VSZWN0cykKIHsKICAgICBBU1NFUlQocmVzdWx0UGFnZVJlY3RzLmlzRW1wdHkoKSk7
CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUo
ZnJhbWVJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYTJk
YTEyYzYwMjI5MzczY2Y4Nzg5MmI4M2RhYTU3NzM1MDBhNzdmMi4uNTY1ZmNhYWVkMTMwOWU3ODY1
NjRjMGJmZWFiOGI5ZTFiZjU0MDc1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcApAQCAtNzY4LDE3ICs3NjgsMTcgQEAgdm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGUKICAg
ICBMT0dfRVJST1IoIlVuaGFuZGxlZCB3ZWIgcHJvY2VzcyBtZXNzYWdlICclczolcyciLCBkZWNv
ZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKS50b1N0cmluZygpLmRhdGEoKSwgZGVjb2Rlci5tZXNz
YWdlTmFtZSgpLnRvU3RyaW5nKCkuZGF0YSgpKTsKIH0KIAotV2ViRnJhbWUqIFdlYlByb2Nlc3M6
OndlYkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpIGNvbnN0CitXZWJGcmFtZSogV2ViUHJvY2Vzczo6
d2ViRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1f
ZnJhbWVNYXAuZ2V0KGZyYW1lSUQpOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OmFkZFdlYkZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIFdlYkZyYW1lKiBmcmFtZSkKK3ZvaWQgV2ViUHJvY2Vzczo6YWRk
V2ViRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkZyYW1lKiBmcmFtZSkKIHsKICAg
ICBtX2ZyYW1lTWFwLnNldChmcmFtZUlELCBmcmFtZSk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6
cmVtb3ZlV2ViRnJhbWUodWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUHJvY2Vzczo6cmVtb3Zl
V2ViRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgbV9mcmFtZU1hcC5yZW1v
dmUoZnJhbWVJRCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGQ0
YzAxYmFiMWY5M2RhOTA4NWIwZjIxOTRjZDMyN2Q0NzE4NjUwYjIuLjNjYjJjNDk2OTQ5OTg4N2Iz
MmI1M2IzYTY2ZDBiYmY2ODVhMzIxOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIldlYlNRTGl0ZURhdGFiYXNlVHJhY2tl
ci5oIgogI2luY2x1ZGUgIldlYlNvY2tldENoYW5uZWxNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9BY3Rpdml0eVN0YXRlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZWdpc3RyYWJsZURvbWFpbi5oPgogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTE3Miw5ICsxNzMs
OSBAQCBwdWJsaWM6CiAKICAgICBib29sIGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQoKSBjb25z
dCB7IHJldHVybiBtX2Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQ7IH0KIAotICAgIFdlYkZyYW1l
KiB3ZWJGcmFtZSh1aW50NjRfdCkgY29uc3Q7Ci0gICAgdm9pZCBhZGRXZWJGcmFtZSh1aW50NjRf
dCwgV2ViRnJhbWUqKTsKLSAgICB2b2lkIHJlbW92ZVdlYkZyYW1lKHVpbnQ2NF90KTsKKyAgICBX
ZWJGcmFtZSogd2ViRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKSBjb25zdDsKKyAgICB2
b2lkIGFkZFdlYkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViRnJhbWUqKTsKKyAg
ICB2b2lkIHJlbW92ZVdlYkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAKICAgICBX
ZWJQYWdlR3JvdXBQcm94eSogd2ViUGFnZUdyb3VwKFdlYkNvcmU6OlBhZ2VHcm91cCopOwogICAg
IFdlYlBhZ2VHcm91cFByb3h5KiB3ZWJQYWdlR3JvdXAodWludDY0X3QgcGFnZUdyb3VwSUQpOwpA
QCAtNDg5LDcgKzQ5MCw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fZnVsbEtleWJvYXJkQWNj
ZXNzRW5hYmxlZCB7IGZhbHNlIH07CiAKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBXZWJGcmFtZSo+
IG1fZnJhbWVNYXA7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkZy
YW1lKj4gbV9mcmFtZU1hcDsKIAogICAgIHR5cGVkZWYgSGFzaE1hcDxjb25zdCBjaGFyKiwgc3Rk
Ojp1bmlxdWVfcHRyPFdlYlByb2Nlc3NTdXBwbGVtZW50PiwgUHRySGFzaDxjb25zdCBjaGFyKj4+
IFdlYlByb2Nlc3NTdXBwbGVtZW50TWFwOwogICAgIFdlYlByb2Nlc3NTdXBwbGVtZW50TWFwIG1f
c3VwcGxlbWVudHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBiMTQwM2QwNTYzOTNi
Mzk3ZDAxN2QwOTNkZTVmZTA0Y2RjY2E4Y2NkLi5kNjA2MzBmZTBjYWFkZjQzYThiNzQ0OWQyZDU0
OTBlZGIwOGU2YWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTY0LDcgKzY0LDcg
QEAgcHJpdmF0ZToKICAgICBib29sIGhhc1dlYlZpZXcoKSBjb25zdCBmaW5hbDsgLy8gbWFpbmx5
IGZvciBhc3NlcnRpb25zCiAKICAgICBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4g
cGFnZUlEKCkgY29uc3QgZmluYWw7Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQoKSBj
b25zdCBmaW5hbDsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1l
SUQoKSBjb25zdCBmaW5hbDsKICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCBm
aW5hbDsKIAogICAgIHZvaWQgbWFrZVJlcHJlc2VudGF0aW9uKFdlYkNvcmU6OkRvY3VtZW50TG9h
ZGVyKikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDNkZDUwZTdiM2I5
Y2Y5OTMzNDljOWFiYjRjYjQ5NzgzN2VlYzM1M2UuLmI3YTY1ZTk5MzRmZmYwODgwYjc1NjhjYTAw
ZTk2MmUwMTVhZTQyMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC0yMTQsNyAr
MjE0LDcgQEAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpw
YWdlSUQoKSBjb25zdAogICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiB9CiAKLU9wdGlvbmFsPHVp
bnQ2NF90PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZnJhbWVJRCgpIGNvbnN0CitPcHRpb25hbDxG
cmFtZUlkZW50aWZpZXI+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlEKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376307</attachid>
            <date>2019-08-14 14:13:05 -0700</date>
            <delta_ts>2019-08-14 14:34:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199986-20190814141304.patch</filename>
            <type>text/plain</type>
            <size>443400</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmE3MDY4NjA3ZWFlOTVj
NTA0YWRlOThlNGIyZDQ4NzlmMjY2NDRmOS4uOTM1OGNjMTBmYjk5ZjFkMTE2ZmEyNDUwMzVhM2Ri
MDgzMjEwYTc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE5LTA4LTE0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBPYmplY3RJ
ZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+IGZvciBmcmFtZUlEcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5OTg2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBzdHJvbmdseS10eXBl
ZCBGcmFtZUlkZW50aWZpZXIgaW5zdGVhZCBvZiB1aW50NjRfdCBhcyBmcmFtZSBpZGVudGlmaWVy
cyBldmVyeXdoZXJlLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGxvYWRlci9Db29raWVKYXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q29va2llSmFyOjpjb29raWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tpZUphcjo6
c2V0Q29va2llcyk6CisgICAgICAgIChXZWJDb3JlOjpDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tpZUphcjo6Z2V0
UmF3Q29va2llcyBjb25zdCk6CisgICAgICAgICogbG9hZGVyL0Nvb2tpZUphci5oOgorICAgICAg
ICAqIGxvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3Bw
OgorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
OjpOYXZpZ2F0aW9uQWN0aW9uOjpSZXF1ZXN0ZXI6OmZyYW1lSUQgY29uc3QpOgorICAgICAgICAq
IHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9HbG9iYWxGcmFtZUlkZW50aWZp
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Okdsb2JhbEZyYW1lSWRlbnRpZmllcjo6ZGVjb2RlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Nvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzaG91bGRCbG9ja0Nv
b2tpZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpo
YXNTdG9yYWdlQWNjZXNzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6Z3JhbnRTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW06CisgICAgICAg
IChXZWJDb3JlOjpjb29raWVzRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZXNGb3JT
ZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2ll
c0ZvckRPTSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzIGNvbnN0KToK
KwogMjAxOS0wOC0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAg
ICAgVXBkYXRlIFdvcmtlcjo6bm90aWZ5RmluaXNoZWQgdG8gbm90IHVzZSBlbXB0eVNlc3Npb25J
RApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA1NGI3OTc3NmIwNTc1YjFhODgzY2Y2OTc4ZmFjZDBhMTU1Y2NhOWM1Li40
NTg3MjQyZjU2N2Q0YzBiMmVlZjgwYmIxOTJmYWJiZjE1ODIwMjk3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDM0OSBAQAorMjAxOS0wOC0xNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KKworICAgICAgICBVc2UgT2JqZWN0SWRlbnRpZmllcjxGcmFtZUlkZW50aWZpZXJUeXBl
PiBmb3IgZnJhbWVJRHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5OTk4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVzZSB0aGUgc3Ryb25nbHktdHlwZWQgRnJhbWVJZGVudGlmaWVyIGluc3RlYWQgb2Yg
dWludDY0X3QgYXMgZnJhbWUgaWRlbnRpZmllcnMgZXZlcnl3aGVyZS4KKworICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFudFN0b3JhZ2VB
Y2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAg
ICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmdyYW50U3RvcmFn
ZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsSGFzU3Rv
cmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEdy
YW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTSk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJv
bURPTSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpj
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXRSYXdDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpoYXNT
dG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtMb2FkQ2hlY2tlcjo6TmV0d29ya0xvYWRDaGVja2VyKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRy
eSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnROZXR3b3Jr
TG9hZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y29udmVydFRv
RG93bmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmFib3J0
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVz
cG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2Vp
dmVCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZp
bmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRp
ZEZhaWxMb2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpj
b250aW51ZVdpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OmVzY2FwZUlERm9ySlNP
Tik6CisgICAgICAgIChXZWJLaXQ6OmxvZ0Jsb2NrZWRDb29raWVJbmZvcm1hdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uSW50ZXJuYWwpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24pOgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNoYXJlZC9BUEkv
QVBJRnJhbWVIYW5kbGUuY3BwOgorICAgICAgICAoQVBJOjpGcmFtZUhhbmRsZTo6Y3JlYXRlKToK
KyAgICAgICAgKEFQSTo6RnJhbWVIYW5kbGU6OmNyZWF0ZUF1dG9jb252ZXJ0aW5nKToKKyAgICAg
ICAgKEFQSTo6RnJhbWVIYW5kbGU6OkZyYW1lSGFuZGxlKToKKyAgICAgICAgKEFQSTo6RnJhbWVI
YW5kbGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5oOgor
ICAgICAgICAoQVBJOjpGcmFtZUhhbmRsZTo6ZnJhbWVJRCBjb25zdCk6CisgICAgICAgICogU2hh
cmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5tbToKKyAgICAgICAgKC1bX1dLRnJhbWVIYW5k
bGUgaGFzaF0pOgorICAgICAgICAoLVtfV0tGcmFtZUhhbmRsZSBfZnJhbWVJRF0pOgorICAgICAg
ICAoLVtfV0tGcmFtZUhhbmRsZSBpbml0V2l0aENvZGVyOl0pOgorICAgICAgICAoLVtfV0tGcmFt
ZUhhbmRsZSBlbmNvZGVXaXRoQ29kZXI6XSk6CisgICAgICAgICogU2hhcmVkL0F1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRp
Y2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAg
ICAgKiBTaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmg6CisgICAg
ICAgICogU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tGcmFtZUhhbmRsZVJlZi5jcHA6CisgICAgICAgIChXS0ZyYW1lSGFuZGxlR2V0RnJhbWVJRCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgt
W1dLV2ViVmlldyBfcHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvOmZvckZyYW1lOl0pOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX2NhbkNoYW5nZUZyYW1lTGF5b3V0Ol0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tOgorICAgICAgICAoLVtfV0tJbnNwZWN0
b3Igc2hvd01haW5SZXNvdXJjZUZvckZyYW1lOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRv
bWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNp
bXVsYXRlZElucHV0RGlzcGF0Y2hlcjo6cnVuKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21h
dGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0
b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dG9tYXRpb25TZXNzaW9uOjp3ZWJGcmFtZUlERm9ySGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQXV0b21hdGlvblNlc3Npb246OmhhbmRsZUZvcldlYkZyYW1lSUQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c3dpdGNoVG9Ccm93c2luZ0NvbnRleHQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2FpdEZvck5hdmlnYXRpb25Ub0Nv
bXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6ZmluZFBhZ2VGb3JGcmFtZUlEKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnJlc3BvbmRUb1BlbmRpbmdGcmFtZU5hdmln
YXRpb25DYWxsYmFja3NXaXRoVGltZW91dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRp
b25TZXNzaW9uOjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZlQ2hpbGRGcmFtZUhhbmRsZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZlUGFyZW50RnJhbWVIYW5kbGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Y29tcHV0ZUVsZW1lbnRM
YXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2VsZWN0T3B0
aW9uRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpnZXRB
bGxDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OmRlbGV0
ZVNpbmdsZUNvb2tpZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjp2
aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
QXV0b21hdGlvblNlc3Npb246OnRha2VTY3JlZW5zaG90KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVu
dDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW06CisgICAgICAg
ICgtW1dLUmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyIGF0dGVtcHRSZWNvdmVyeV0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9j
a0xvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6
OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSk6CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAg
ICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UHJvdmlzaW9uYWxQYWdlUHJveHk6OnZhbGlkYXRlSW5wdXQpOgorICAgICAgICAoV2ViS2l0OjpQ
cm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZEZh
aWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFs
UGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQcm92
aXNpb25hbFBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEpOgorICAgICAg
ICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxG
b3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNp
b25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0
OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9u
YWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xv
YWRGb3JGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJv
Y2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlN1c3BlbmRlZFBhZ2VQcm94eTo6U3VzcGVuZGVkUGFnZVByb3h5
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25D
aGVja1Byb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNr
UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5
OjpmcmFtZUlEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVzZXRBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6c2VhcmNoRm9yR3JhbnRl
ZFJlcXVlc3QgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6d2FzUmVxdWVzdERlbmllZCk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVy
bWlzc2lvbkZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OmdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKToKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc0dyYW50
ZWRWaWRlb09yQXVkaW9BY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6bWFpbkZyYW1lSUQgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpmcmFtZUlEIGNvbnN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkZyYW1lUHJveHk6OldlYkZyYW1lUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJGcmFtZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6OmZyYW1lSUQgY29uc3QpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGlkQ3JlYXRlU3ViZnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmRpZENyZWF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkU3Rh
cnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6ZGlkRXhwbGljaXRPcGVuRm9yRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZl
U2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1l
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDYW5jZWxDbGllbnRSZWRpcmVj
dEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92
aXNpb25hbFVSTEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRD
aGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZEZvckZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZyYW1l
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENoYW5nZU1h
aW5Eb2N1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRp
dGxlRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZpcnN0TGF5
b3V0Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZpcnN0Vmlz
dWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFtZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZnJhbWVEaWRCZWNvbWVGcmFtZVNldCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5j
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uQXN5bmNTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNw
b25zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2VTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnVuYWJsZVRvSW1w
bGVtZW50UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0
Rm9ybSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2
aWdhdGlvbkRhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZE5hdmlnYXRl
V2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFVwZGF0ZUhpc3RvcnlUaXRsZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEFsZXJ0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0Q29uZmlybSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdFByb21wdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpydW5PcGVuUGFuZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnByaW50RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZvY3Vz
ZWRGcmFtZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZyYW1lU2V0
TGFyZ2VzdEZyYW1lQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cmVxdWVzdFN0b3JhZ2VTcGFjZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6bWFrZVN0b3JhZ2VTcGFjZVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2Vz
Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNob3VsZEFsbG93RGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6d2ViRnJhbWUgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUHJveHk6OmNhbkNyZWF0ZUZyYW1lIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpmcmFtZUNyZWF0ZWQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUHJveHk6OmRpZERlc3Ryb3lGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IF93a19wYWdlQ291bnRGb3JQcmludEZvcm1hdHRlcjpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojpjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpldmFsdWF0ZUphdmFTY3JpcHRDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZENsZWFyV2luZG93
T2JqZWN0Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5OjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJh
bWVXaXRoT3JkaW5hbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZVBhcmVudEZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Zm9jdXNG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmNvbXB1
dGVFbGVtZW50TGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eTo6c2VsZWN0T3B0aW9uRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHk6OnRha2VTY3JlZW5zaG90KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eTo6Z2V0Q29va2llc0ZvckZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZGVsZXRlQ29va2llKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dL
V2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tOgorICAgICAgICAoK1tXS1dlYlByb2Nlc3NQbHVnSW5G
cmFtZSBsb29rVXBGcmFtZUZyb21IYW5kbGU6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3Ry
YXRlZ3k6OnNjaGVkdWxlTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5
OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJM
b2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJS
ZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxSZXNvdXJjZUxvYWQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVyOjpzdG9wTG9hZGluZ0FmdGVyWEZyYW1l
T3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNvdXJjZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omluc3RhbGxTZXJ2aWNlV29ya2VyKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZCBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6aGFzU3RvcmFnZUFjY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cmVxdWVzdFN0b3JhZ2VBY2Nl
c3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlE
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGlkRmFpbFByb3Zpc2lvbmFsTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkNvb2tpZUphci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6
Y29va2llcyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6c2V0Q29va2ll
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZp
ZWxkVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVKYXI6OmdldFJhd0Nv
b2tpZXMgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJGcmFtZTo6V2ViRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpnZW5lcmF0ZUZy
YW1lSUQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6ZnJhbWVJRCBjb25zdCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
Ykluc3BlY3Rvcjo6c2hvd01haW5SZXNvdXJjZUZvckZyYW1lKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxvYWRVUkxJbkZyYW1lKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9hZERhdGFJbkZyYW1lKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6c3RvcExvYWRpbmdGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmNvbnRpbnVlV2lsbFN1Ym1pdEZvcm0pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpydW5K
YXZhU2NyaXB0SW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldFNvdXJjZUZv
ckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0TWFpblJlc291cmNlRGF0YU9m
RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRSZXNvdXJjZURhdGFGcm9tRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRXZWJBcmNoaXZlT2ZGcmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmFkZENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6c2VuZENTUFZpb2xhdGlvblJlcG9ydCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6YmVnaW5QcmludGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
ZHJhd1JlY3RUb0ltYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZHJhd1BhZ2VzVG9Q
REYpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmF3UGFnZXNUb1BERkltcGwpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmF3UGFnZXNGb3JQcmludGluZyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmZyYW1lQmVjYW1lUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVl
c3RTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2hvdWxkQWxsb3dE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERG
RG9jdW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmlu
dGluZ0FuZERyYXdUb1BERik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQ
YWdlTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmlu
dGluZ1BERkRvY3VtZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp3ZWJGcmFtZSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmFkZFdlYkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6cmVtb3ZlV2ViRnJhbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
OgorCiAyMDE5LTA4LTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgdXNlIG9mIGVtcHR5U2Vzc2lvbklEIGZyb20gTmV0d29ya0xvYWRQYXJhbWV0
ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggODllZTNjYmU0NzY3YWVlNjU1MjE2
Njk1NjBlY2RlOGVkMTA2YTI3ZS4uODMwYTc4MjViOTFkZmQxNmU3Y2Y3MTkyN2Q3MTM4ODkxYjA3
NDYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5
LTA4LTE0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAg
IFVzZSBPYmplY3RJZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+IGZvciBmcmFtZUlEcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5OTg2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBz
dHJvbmdseS10eXBlZCBGcmFtZUlkZW50aWZpZXIgaW5zdGVhZCBvZiB1aW50NjRfdCBhcyBmcmFt
ZSBpZGVudGlmaWVycyBldmVyeXdoZXJlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlEIGNv
bnN0KToKKwogMjAxOS0wOC0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6YmxvYlNpemUgc2hvdWxkIHRha2UgYSBT
ZXNzaW9uSUQgYXMgcGFyYW1ldGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9PYmplY3RJ
ZGVudGlmaWVyLmggYi9Tb3VyY2UvV1RGL3d0Zi9PYmplY3RJZGVudGlmaWVyLmgKaW5kZXggYjNi
Y2FkZDlkZDE5NWFiMzBiMThjZjFkYWQzMzUyMzExOTI1MjZmOC4uNjdjYzk2NGZmZDA2Y2ZlNDFh
ZWZmMjRmYjc3OWVlYWY4NTA2MzQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvT2JqZWN0
SWRlbnRpZmllci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL09iamVjdElkZW50aWZpZXIuaApAQCAt
NTksNyArNTksNyBAQCBwdWJsaWM6CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKLSAgICAgICAgQVNTRVJU
KGlzVmFsaWRJZGVudGlmaWVyKG1faWRlbnRpZmllcikpOworICAgICAgICBSRUxFQVNFX0FTU0VS
VChpc1ZhbGlkSWRlbnRpZmllcihtX2lkZW50aWZpZXIpKTsgLy8gRklYTUU6IFNob3VsZCBiZSBh
IGRlYnVnIEFTU0VSVCgpLgogICAgICAgICBlbmNvZGVyIDw8IG1faWRlbnRpZmllcjsKICAgICB9
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPE9iamVjdElk
ZW50aWZpZXI+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQpAQCAtNjgsNyArNjgsNyBAQCBwdWJs
aWM6CiAgICAgICAgIGRlY29kZXIgPj4gaWRlbnRpZmllcjsKICAgICAgICAgaWYgKCFpZGVudGlm
aWVyKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAgICAgQVNTRVJUKGlz
VmFsaWRJZGVudGlmaWVyKCppZGVudGlmaWVyKSk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGlz
VmFsaWRJZGVudGlmaWVyKCppZGVudGlmaWVyKSk7IC8vIEZJWE1FOiBTaG91bGQgYmUgYSBkZWJ1
ZyBBU1NFUlQoKS4KICAgICAgICAgcmV0dXJuIE9iamVjdElkZW50aWZpZXIgeyAqaWRlbnRpZmll
ciB9OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBi
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggOGMzOWUyOGM3NGViMWQ1NTE0YTU0
MTYwNzg4ZWNjMjJlYjdlZGM1NS4uNmUzOWJlNDE4YWQ4ZTEwMDliZGEzZGIwYWYxMGE0YmIzNGFm
ZmNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC03NzcsNiArNzc3LDcgQEAgc2V0KFdlYkNvcmVf
UFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2UvRm9jdXNEaXJlY3Rpb24uaAogICAg
IHBhZ2UvRnJhbWUuaAogICAgIHBhZ2UvRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmgKKyAgICBw
YWdlL0ZyYW1lSWRlbnRpZmllci5oCiAgICAgcGFnZS9GcmFtZVNuYXBzaG90dGluZy5oCiAgICAg
cGFnZS9GcmFtZVRyZWUuaAogICAgIHBhZ2UvRnJhbWVWaWV3LmgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiN2JlNzQ5M2ZiMzQ3
ZTdhZWM1ZDExN2NjNWNjNjlhOGExZWZjMWUzLi40OTU3YmFiYzk3YjE3MTA0YTQ0NTM1ZTQzODNm
ZGZhOGIxMjc0MjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0yODAsNiArMjgwLDcgQEAKIAkJMEYwM0MwNzQxODg0Njk1RTAw
QTVGOENBIC8qIFN5c3RlbU1lbW9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEYwM0MwNzMxODg0Njk1RTAwQTVGOENBIC8qIFN5c3RlbU1lbW9yeS5o
ICovOyB9OwogCQkwRjAzQzA3NTE4ODQ4MDU1MDBBNUY4Q0EgLyogSW5zcGVjdG9yT3ZlcmxheS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M1MjJENEEx
NUI0NzhCMjAwOUI3Qzk1IC8qIEluc3BlY3Rvck92ZXJsYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjA5OUQwOTE3Qjk2OEExMDBGRjg0Qjkg
LyogV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjA5OUQwNzE3Qjk2OEExMDBGRjg0QjkgLyogV2ViQ29y
ZVR5cGVkQXJyYXlDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJMEYxMTc4MTgyMkUzQzQ3RjAwOEJENTcwIC8qIEZyYW1lSWRlbnRp
Zmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYx
MTc4MTYyMkUzQzQ3RTAwOEJENTcwIC8qIEZyYW1lSWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMTFBNTRGMEYzOTIzMzEwMEMz
Nzg4NCAvKiBSZW5kZXJTZWxlY3Rpb25JbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjExQTU0RTBGMzkyMzMxMDBDMzc4ODQgLyogUmVuZGVyU2Vs
ZWN0aW9uSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTBGMTMxNjNFMTZFRDBDQzgwMDM1Q0MwNCAvKiBQbGF0Zm9ybUNBRmlsdGVycy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxMzE2M0QxNkVE
MENDODAwMzVDQzA0IC8qIFBsYXRmb3JtQ0FGaWx0ZXJzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYxNURBOEEwRjNBQUVFNzAwMDBDRTQ3IC8q
IENTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE1REE4OTBGM0FBRUU3MDAwMENFNDcgLyogQ1NTQW5p
bWF0aW9uQ29udHJvbGxlclByaXZhdGUuaCAqLzsgfTsKQEAgLTU1NzgsNiArNTU3OSw3IEBACiAJ
CTBGMDNDMDczMTg4NDY5NUUwMEE1RjhDQSAvKiBTeXN0ZW1NZW1vcnkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU3lzdGVtTWVtb3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGMDk5RDA2MTdCOTY4QTEwMEZGODRCOSAvKiBXZWJDb3JlVHlwZWRBcnJheUNv
bnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29y
ZVR5cGVkQXJyYXlDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEYwOTlEMDcxN0I5NjhBMTAwRkY4NEI5IC8qIFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlVHlwZWRBcnJheUNvbnRy
b2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYxMTc4MTYyMkUzQzQ3RTAw
OEJENTcwIC8qIEZyYW1lSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBGcmFtZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYx
MUE1NEUwRjM5MjMzMTAwQzM3ODg0IC8qIFJlbmRlclNlbGVjdGlvbkluZm8uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU2VsZWN0aW9uSW5mby5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRjEzMTYzRDE2RUQwQ0M4MDAzNUNDMDQgLyogUGxhdGZvcm1D
QUZpbHRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1DQUZp
bHRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxMzE2M0YxNkVEMENERTAw
MzVDQzA0IC8qIFBsYXRmb3JtQ0FGaWx0ZXJzQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBQbGF0Zm9ybUNBRmlsdGVyc0NvY29hLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjAyMDQsNiArMjAyMDYsNyBAQAogCQkJCTY1QkYwMjJBMDk3
NDgxNjMwMEM0MzE5NiAvKiBGcmFtZS5oICovLAogCQkJCTk3NEE4NjIwMTRCN0FEQkIwMDNGREM3
NiAvKiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwICovLAogCQkJCTk3NEE4NjIxMTRCN0FE
QkIwMDNGREM3NiAvKiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCAqLywKKwkJCQkwRjExNzgx
NjIyRTNDNDdFMDA4QkQ1NzAgLyogRnJhbWVJZGVudGlmaWVyLmggKi8sCiAJCQkJQzRDRDYyOTgx
ODM4Mzc2NjAwN0VCQUYxIC8qIEZyYW1lU25hcHNob3R0aW5nLmNwcCAqLywKIAkJCQlDNENENjI5
OTE4MzgzNzY2MDA3RUJBRjEgLyogRnJhbWVTbmFwc2hvdHRpbmcuaCAqLywKIAkJCQk2NUEyMTQ4
MjA5N0EzRjUzMDBCOTA1MEEgLyogRnJhbWVUcmVlLmNwcCAqLywKQEAgLTI5MjU1LDYgKzI5MjU4
LDcgQEAKIAkJCQlBODUzMTIzRDExRDA0NzFCMDBENEQwNzcgLyogRnJhZ21lbnRTY3JpcHRpbmdQ
ZXJtaXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NUJGMDIyRjA5NzQ4MTYzMDBDNDMxOTYg
LyogRnJhbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NEE4NjIzMTRCN0FEQkIwMDNGREM3NiAv
KiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMTE3ODE4
MjJFM0M0N0YwMDhCRDU3MCAvKiBGcmFtZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTY1NkQzNzNDMEFEQkE1REUwMEE0NTU0RCAvKiBGcmFtZUxvYWRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNjU2RDM3M0UwQURCQTVERTAwQTQ1NTREIC8qIEZyYW1lTG9hZGVyQ2xpZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlEMDAwRUJBMzExQkRBRkQ0MDBDNDc3MjYgLyogRnJhbWVMb2FkZXJT
dGF0ZU1hY2hpbmUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0Nvb2tpZUphci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmNw
cAppbmRleCA2OTYzMDMzMGI1ZDc5MzBkN2Q3YWFmMWRkYjRhODlkZmI2MGRkZGNjLi42ZDAzNjJl
OTc2NDE4OGI2MDg0Y2JhYThjYzE0MmQ0ZDM5MWY1YTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvQ29va2llSmFyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29v
a2llSmFyLmNwcApAQCAtNzEsNyArNzEsNyBAQCBTdHJpbmcgQ29va2llSmFyOjpjb29raWVzKERv
Y3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwpIGNvbnN0CiAKICAgICBhdXRvIGluY2x1
ZGVTZWN1cmVDb29raWVzID0gc2hvdWxkSW5jbHVkZVNlY3VyZUNvb2tpZXMoZG9jdW1lbnQsIHVy
bCk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxGcmFt
ZUlkZW50aWZpZXI+IGZyYW1lSUQ7CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJ
RDsKICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGZy
YW1lSUQgPSBmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuZnJhbWVJRCgpOwpAQCAtOTQsNyArOTQs
NyBAQCBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eSBDb29raWVKYXI6OmNvb2tpZVJlcXVl
c3RIZWFkZXJGaWVsZFByb3h5KGNvbnN0IERvYwogewogICAgIFRyYWNlU2NvcGUgc2NvcGUoRmV0
Y2hDb29raWVzU3RhcnQsIEZldGNoQ29va2llc0VuZCk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQ7CiAgICAg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKICAgICBpZiAoYXV0byogZnJhbWUgPSBk
b2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGZyYW1lSUQgPSBmcmFtZS0+bG9hZGVyKCkuY2xp
ZW50KCkuZnJhbWVJRCgpOwpAQCAtMTA2LDcgKzEwNiw3IEBAIENvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFByb3h5IENvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkoY29uc3Qg
RG9jCiAKIHZvaWQgQ29va2llSmFyOjpzZXRDb29raWVzKERvY3VtZW50JiBkb2N1bWVudCwgY29u
c3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKQogewotICAgIE9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJ
RDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEOwogICAgIGlmIChhdXRvKiBm
cmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKICAgICAgICAgZnJhbWVJRCA9IGZyYW1lLT5sb2Fk
ZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CkBAIC0xMjgsNyArMTI4LDcgQEAgYm9vbCBDb29raWVK
YXI6OmNvb2tpZXNFbmFibGVkKGNvbnN0IERvY3VtZW50JikgY29uc3QKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIFNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gQ29va2ll
SmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBQQUw6OlNlc3Npb25JRCYs
IGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8s
IGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFn
ZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNv
b2tpZXMpIGNvbnN0CitzdGQ6OnBhaXI8U3RyaW5nLCBTZWN1cmVDb29raWVzQWNjZXNzZWQ+IENv
b2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgUEFMOjpTZXNzaW9u
SUQmLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJ
bmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBP
cHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNs
dWRlU2VjdXJlQ29va2llcykgY29uc3QKIHsKICAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG1fc3Rv
cmFnZVNlc3Npb25Qcm92aWRlci0+c3RvcmFnZVNlc3Npb24oKSkgewogICAgICAgICBzdGQ6OnBh
aXI8U3RyaW5nLCBib29sPiByZXN1bHQgPSBzZXNzaW9uLT5jb29raWVSZXF1ZXN0SGVhZGVyRmll
bGRWYWx1ZShmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlELCBp
bmNsdWRlU2VjdXJlQ29va2llcyk7CkBAIC0xNDEsNyArMTQxLDcgQEAgc3RkOjpwYWlyPFN0cmlu
ZywgU2VjdXJlQ29va2llc0FjY2Vzc2VkPiBDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHUKIAogU3RyaW5nIENvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFs
dWUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCkgY29uc3QKIHsKLSAgICBPcHRp
b25hbDx1aW50NjRfdD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZy
YW1lSUQ7CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKICAgICBpZiAoYXV0
byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGZyYW1lSUQgPSBmcmFtZS0+
bG9hZGVyKCkuY2xpZW50KCkuZnJhbWVJRCgpOwpAQCAtMTU2LDcgKzE1Niw3IEBAIFN0cmluZyBD
b29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKERvY3VtZW50JiBkb2N1bWVu
dCwgY29uc3QgVVJMJiB1CiAKIGJvb2wgQ29va2llSmFyOjpnZXRSYXdDb29raWVzKGNvbnN0IERv
Y3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwsIFZlY3RvcjxDb29raWU+JiBjb29raWVz
KSBjb25zdAogewotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFs
PEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
cGFnZUlEOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKICAgICAg
ICAgZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvQ29va2llSmFyLmgKaW5kZXggMjgxZjg0YzQ5MDA1MjY3ZWEwNTRkNTFkNzY4YTllYjcz
MmNiYzIzOS4uODA4N2I4Y2Q1YjdjZjRmNTY5M2UyZjdlOTVkOGVmNmExNzk4NDZhOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Db29raWVKYXIuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UK
IAorI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVy
LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KQEAgLTU5LDcgKzYwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRDb29r
aWVzKERvY3VtZW50JiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpOwog
CiAgICAgdmlydHVhbCBib29sIGNvb2tpZXNFbmFibGVkKGNvbnN0IERvY3VtZW50JikgY29uc3Q7
Ci0gICAgdmlydHVhbCBzdGQ6OnBhaXI8U3RyaW5nLCBTZWN1cmVDb29raWVzQWNjZXNzZWQ+IGNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2Vj
dXJlQ29va2llcykgY29uc3Q7CisgICAgdmlydHVhbCBzdGQ6OnBhaXI8U3RyaW5nLCBTZWN1cmVD
b29raWVzQWNjZXNzZWQ+IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFBBTDo6
U2Vzc2lvbklEJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBj
b25zdCBVUkwmLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxQYWdlSWRlbnRp
Zmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0
UmF3Q29va2llcyhjb25zdCBEb2N1bWVudCYsIGNvbnN0IFVSTCYsIFZlY3RvcjxDb29raWU+Jikg
Y29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBEb2N1bWVudCYsIGNv
bnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDFmN2EyOWM0YjMwMWEzNjU4
MjJlNDIzM2I0MTVkZDFjMDAxOTEzMmQuLmU1OWQxNzBkZjBiYTA4YTJjNGY2MDNmZGNmYTgzNTdk
ZmY4OWJkYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9h
ZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJD
bGllbnQuaApAQCAtMzIsNyArMzIsNyBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBFbXB0eUZyYW1l
TG9hZGVyQ2xpZW50IDogcHVibGljIEZyYW1lTG9hZGVyQ2xpZW50IHsKIAogICAgIHZvaWQgZnJh
bWVMb2FkZXJEZXN0cm95ZWQoKSBvdmVycmlkZSB7IH0KIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90
PiBmcmFtZUlEKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gV1RGOjpudWxsb3B0OyB9CisgICAg
T3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gV1RGOjpudWxsb3B0OyB9CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFdURjo6bnVsbG9wdDsgfQogICAgIFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCgpIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDA3NDg3NjExOGRjNjkxYWE3YzhhZGE5N2I3OTcxMzcz
M2EyOGE2OTUuLmVkODQ3Y2IwNDc4NTI1ZTUyMTBmMWNjODViN2ZlYzUzY2U3MjIyZWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0yOSw2ICsyOSw3IEBA
CiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiRnJhbWVJZGVudGlmaWVyLmgiCiAjaW5jbHVk
ZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIkxheW91dE1pbGVzdG9uZS5oIgogI2lu
Y2x1ZGUgIkxpbmtJY29uLmgiCkBAIC0xMjgsNyArMTI5LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBtYWtlUmVwcmVzZW50YXRpb24oRG9jdW1lbnRMb2FkZXIqKSA9IDA7CiAKICAgICB2
aXJ0dWFsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQoKSBjb25zdCA9IDA7Ci0gICAg
dmlydHVhbCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0
dWFsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCgpIGNvbnN0ID0gMDsKICAgICB2
aXJ0dWFsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0ID0gMDsKIAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdh
dGlvbkFjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5j
cHAKaW5kZXggNjJiYTJkZDJmNzcwYTQwNmUxNWM5MDM5NWU0MTdjNDJjMjhmNTIwZS4uYmQ3Mzhl
MDg5NTdlMmZkODRkYTA1NWFiNDUzZTFhNDNlMGIyODhkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcApAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBOYXZpZ2F0aW9uQWN0aW9uOjpSZXF1ZXN0ZXI6OlJlcXVlc3Rlcihjb25zdCBEb2N1
bWVudCYgZG9jdW1lbnQpCiAgICAgOiBtX3VybCB7IFVSTCB7IGRvY3VtZW50LnVybCgpIH0gfQog
ICAgICwgbV9vcmlnaW4geyBtYWtlUmVmUHRyKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkpIH0K
LSAgICAsIG1fcGFnZUlEQW5kRnJhbWVJRFBhaXIgeyBkb2N1bWVudC5mcmFtZSgpID8gc3RkOjpt
YWtlX3BhaXIoZG9jdW1lbnQuZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkucGFnZUlEKCkudmFs
dWVPcihQYWdlSWRlbnRpZmllciB7IH0pLCBkb2N1bWVudC5mcmFtZSgpLT5sb2FkZXIoKS5jbGll
bnQoKS5mcmFtZUlEKCkudmFsdWVPcigwKSkgOiBzdGQ6Om1ha2VfcGFpcjxQYWdlSWRlbnRpZmll
ciwgdWludDY0X3Q+KHsgfSwgMCkgfQorICAgICwgbV9wYWdlSURBbmRGcmFtZUlEUGFpciB7IGRv
Y3VtZW50LmZyYW1lKCkgPyBzdGQ6Om1ha2VfcGFpcihkb2N1bWVudC5mcmFtZSgpLT5sb2FkZXIo
KS5jbGllbnQoKS5wYWdlSUQoKS52YWx1ZU9yKFBhZ2VJZGVudGlmaWVyIHsgfSksIGRvY3VtZW50
LmZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKS52YWx1ZU9yKEZyYW1lSWRlbnRp
ZmllciB7IH0pKSA6IHN0ZDo6bWFrZV9wYWlyPFBhZ2VJZGVudGlmaWVyLCBGcmFtZUlkZW50aWZp
ZXI+KHsgfSwgeyB9KSB9CiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9OYXZpZ2F0aW9uQWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFj
dGlvbi5oCmluZGV4IDM1Yzk2MWFhMTU0N2I4ZWEwYzRiOTA0MDcwM2M4NWQzZWE4ZTdlNTcuLjBh
MDIxZDRmYzc5ZDk2YjNmMmE4OGJhZTQwNDU2MTkxMDRjZTkwYjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAi
QWRDbGlja0F0dHJpYnV0aW9uLmgiCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRJdGVtSWRlbnRpZmll
ci5oIgorI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVy
VHlwZXMuaCIKICNpbmNsdWRlICJMYXlvdXRQb2ludC5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlm
aWVyLmgiCkBAIC02NCw3ICs2NSw3IEBAIHB1YmxpYzoKICAgICBOYXZpZ2F0aW9uQWN0aW9uKE5h
dmlnYXRpb25BY3Rpb24mJik7CiAgICAgTmF2aWdhdGlvbkFjdGlvbiYgb3BlcmF0b3I9KE5hdmln
YXRpb25BY3Rpb24mJik7CiAKLSAgICB1c2luZyBQYWdlSURBbmRGcmFtZUlEUGFpciA9IHN0ZDo6
cGFpcjxQYWdlSWRlbnRpZmllciwgdWludDY0X3QgLyogZnJhbWVJRCAqLz47CisgICAgdXNpbmcg
UGFnZUlEQW5kRnJhbWVJRFBhaXIgPSBzdGQ6OnBhaXI8UGFnZUlkZW50aWZpZXIsIEZyYW1lSWRl
bnRpZmllcj47IC8vIEZJWE1FOiBVc2UgR2xvYmFsRnJhbWVJZGVudGlmaWVyLgogICAgIGNsYXNz
IFJlcXVlc3RlciB7CiAgICAgcHVibGljOgogICAgICAgICBSZXF1ZXN0ZXIoY29uc3QgRG9jdW1l
bnQmKTsKQEAgLTcyLDcgKzczLDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBVUkwmIHVybCgp
IGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9CiAgICAgICAgIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBz
ZWN1cml0eU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuICptX29yaWdpbjsgfQogICAgICAgICBQYWdl
SWRlbnRpZmllciBwYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VJREFuZEZyYW1lSURQYWly
LmZpcnN0OyB9Ci0gICAgICAgIHVpbnQ2NF90IGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX3Bh
Z2VJREFuZEZyYW1lSURQYWlyLnNlY29uZDsgfQorICAgICAgICBGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUlEQW5kRnJhbWVJRFBhaXIuc2Vjb25kOyB9CiAg
ICAgcHJpdmF0ZToKICAgICAgICAgVVJMIG1fdXJsOwogICAgICAgICBSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+IG1fb3JpZ2luOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVD
bGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggYzI1YTAy
NGJjMDYzYzU4ZjNiMjhiZDc5Y2JiMDMzODQ0MjZjOGM1ZS4uZThhNWRlMzNlZDE3OTI2YzlhYTg1
NmIwODE2YjRlZWNmODJjOTRmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0z
MCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRGlzcGxheVJlZnJlc2hNb25pdG9yLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnRTdG9yYWdlQWNjZXNzLmgiCiAjaW5jbHVkZSAiRm9jdXNEaXJlY3Rpb24uaCIK
KyNpbmNsdWRlICJGcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgog
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIK
QEAgLTQ4Niw4ICs0ODcsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBSZWZQdHI8SWNvbj4gY3Jl
YXRlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiAvKiBmaWxlbmFtZXMgKi8pID0g
MDsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgdmlydHVhbCB2
b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiAvKnN1YkZyYW1lRG9tYWlu
Ki8sIFJlZ2lzdHJhYmxlRG9tYWluJiYgLyp0b3BGcmFtZURvbWFpbiovLCB1aW50NjRfdCAvKmZy
YW1lSUQqLywgUGFnZUlkZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiAv
KnN1YkZyYW1lRG9tYWluKi8sIFJlZ2lzdHJhYmxlRG9tYWluJiYgLyp0b3BGcmFtZURvbWFpbiov
LCB1aW50NjRfdCAvKmZyYW1lSUQqLywgUGFnZUlkZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhh
bmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdh
c1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihTdG9yYWdl
QWNjZXNzV2FzR3JhbnRlZDo6Tm8sIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bjo6Tm8pOyB9
CisgICAgdmlydHVhbCB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiAv
KnN1YkZyYW1lRG9tYWluKi8sIFJlZ2lzdHJhYmxlRG9tYWluJiYgLyp0b3BGcmFtZURvbWFpbiov
LCBGcmFtZUlkZW50aWZpZXIsIFBhZ2VJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoZmFs
c2UpOyB9CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxl
RG9tYWluJiYgLypzdWJGcmFtZURvbWFpbiovLCBSZWdpc3RyYWJsZURvbWFpbiYmIC8qdG9wRnJh
bWVEb21haW4qLywgRnJhbWVJZGVudGlmaWVyLCBQYWdlSWRlbnRpZmllciwgV1RGOjpDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJv
bXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKFN0
b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOjpObywgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpO
byk7IH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lSWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1ZDQ5NjdhYjFiNDU0MjM1OGU4
NjcyNDA1Y2I2NmI3ZDc4ZDcyMjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lSWRlbnRpZmllci5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworZW51bSBGcmFtZUlkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIEZyYW1l
SWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8RnJhbWVJZGVudGlmaWVyVHlwZT47CisKK2lu
bGluZSBGcmFtZUlkZW50aWZpZXIgZnJhbWVJZGVudGlmaWVyRnJvbUlEKHVpbnQ2NF90IGZyYW1l
SUQpCit7CisgICAgcmV0dXJuIG1ha2VPYmplY3RJZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5
cGU+KGZyYW1lSUQpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ds
b2JhbEZyYW1lSWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9HbG9iYWxGcmFtZUlk
ZW50aWZpZXIuaAppbmRleCAwZDdiM2RiZjcyZjgxZTRmZDYyYTczZmVkMjU4MWNlYWVlMTY3YjRh
Li43MDkzNDY3YjEyZjg1NjYxYThmN2ZhZGYwMmIzNTc3OTk0ZWI2YTAzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0dsb2JhbEZyYW1lSWRlbnRpZmllci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvR2xvYmFsRnJhbWVJZGVudGlmaWVyLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAog
I3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJGcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJQ
YWdlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogCkBAIC0zMyw3ICsz
NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIEZyYW1lIGlkZW50aWZpZXIgdGhhdCBpcyB1
bmlxdWUgYWNyb3NzIGFsbCBXZWJDb250ZW50IHByb2Nlc3Nlcy4KIHN0cnVjdCBHbG9iYWxGcmFt
ZUlkZW50aWZpZXIgewogICAgIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRDsKLSAgICB1aW50NjRfdCBm
cmFtZUlEOworICAgIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEOwogCiAgICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNs
YXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxHbG9iYWxGcmFtZUlkZW50aWZpZXI+IGRlY29k
ZShEZWNvZGVyJik7CkBAIC01Myw3ICs1NCw3IEBAIE9wdGlvbmFsPEdsb2JhbEZyYW1lSWRlbnRp
Zmllcj4gR2xvYmFsRnJhbWVJZGVudGlmaWVyOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAg
ICBpZiAoIXBhZ2VJRCkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIE9wdGlv
bmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJh
bWVJRDsKICAgICBkZWNvZGVyID4+IGZyYW1lSUQ7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9Db29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9Db29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eS5oCmluZGV4
IGEzMzAxOWY5ZDViMmFlZDI2MDc0NjY5NDAxZmQ3MzIyZjAyZDUxNTcuLmM2ODZjODFiNTM3MWE2
N2NkZDhhZTA5YjRhMTAxMzJhNTJkNWIyZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Nvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5
LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQ29va2llSmFy
LmgiCisjaW5jbHVkZSAiRnJhbWVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50aWZp
ZXIuaCIKICNpbmNsdWRlICJTYW1lU2l0ZUluZm8uaCIKICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklE
Lmg+CkBAIC0zOCw3ICszOSw3IEBAIHN0cnVjdCBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94
eSB7CiAgICAgVVJMIGZpcnN0UGFydHk7CiAgICAgU2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbzsK
ICAgICBVUkwgdXJsOwotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlv
bmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmll
cj4gcGFnZUlEOwogICAgIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVz
IHsgSW5jbHVkZVNlY3VyZUNvb2tpZXM6Ok5vIH07CiAKQEAgLTc4LDggKzc5LDkgQEAgT3B0aW9u
YWw8Q29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHk+IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVs
ZFByb3h5OjpkZWNvZGUoRGUKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHVybCkpCiAgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRDsK
LSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGZyYW1lSUQpKQorICAgIE9wdGlvbmFsPE9wdGlvbmFs
PEZyYW1lSWRlbnRpZmllcj4+IGZyYW1lSUQ7CisgICAgZGVjb2RlciA+PiBmcmFtZUlEOworICAg
IGlmICghZnJhbWVJRCkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAogICAgIE9wdGlv
bmFsPE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPj4gcGFnZUlEOwpAQCAtOTEsNyArOTMsNyBAQCBP
cHRpb25hbDxDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eT4gQ29va2llUmVxdWVzdEhlYWRl
ckZpZWxkUHJveHk6OmRlY29kZShEZQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5jbHVkZVNl
Y3VyZUNvb2tpZXMpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgcmV0dXJu
IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5IHsgKnNlc3Npb25JRCwgV1RGTW92ZShmaXJz
dFBhcnR5KSwgV1RGTW92ZShzYW1lU2l0ZUluZm8pLCBXVEZNb3ZlKHVybCksIGZyYW1lSUQsICpw
YWdlSUQsIGluY2x1ZGVTZWN1cmVDb29raWVzIH07CisgICAgcmV0dXJuIENvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFByb3h5IHsgKnNlc3Npb25JRCwgV1RGTW92ZShmaXJzdFBhcnR5KSwgV1RGTW92
ZShzYW1lU2l0ZUluZm8pLCBXVEZNb3ZlKHVybCksICpmcmFtZUlELCAqcGFnZUlELCBpbmNsdWRl
U2VjdXJlQ29va2llcyB9OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lv
bi5jcHAKaW5kZXggZTcxOTA3ZDk3N2RmNTkyNzNmNDkxOWM1NjUxYWYxNzM2ZmIxYTY3Zi4uZjRi
MDlhOGQ1ZTFhZDk0ODRlZDdiMzJlYjU2ZTM5NmY3NWRhYzkwZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNw
cApAQCAtNzksMTIgKzc5LDEyIEBAIGJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzaG91bGRC
bG9ja1RoaXJkUGFydHlDb29raWVzQnV0S2VlcEZpcnN0UGFydHlDb29raWVzCiAgICAgcmV0dXJu
IG1fcmVnaXN0cmFibGVEb21haW5zVG9CbG9ja0J1dEtlZXBDb29raWVzRm9yLmNvbnRhaW5zKHJl
Z2lzdHJhYmxlRG9tYWluKTsKIH0KIAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNob3Vs
ZEJsb2NrQ29va2llcyhjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIE9wdGlvbmFsPHVp
bnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEKSBjb25zdAor
Ym9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNob3VsZEJsb2NrQ29va2llcyhjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkgY29uc3QKIHsKICAgICByZXR1cm4gc2hv
dWxkQmxvY2tDb29raWVzKHJlcXVlc3QuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgcmVxdWVzdC51
cmwoKSwgZnJhbWVJRCwgcGFnZUlEKTsKIH0KICAgICAKLWJvb2wgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5Rm9yQ29va2llcywg
Y29uc3QgVVJMJiByZXNvdXJjZSwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFs
PFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQpIGNvbnN0Citib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6c2hvdWxkQmxvY2tDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eUZvckNvb2tpZXMsIGNv
bnN0IFVSTCYgcmVzb3VyY2UsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0
aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkgY29uc3QKIHsKICAgICBSZWdpc3RyYWJsZURv
bWFpbiBmaXJzdFBhcnR5RG9tYWluIHsgZmlyc3RQYXJ0eUZvckNvb2tpZXMgfTsKICAgICBpZiAo
Zmlyc3RQYXJ0eURvbWFpbi5pc0VtcHR5KCkpCkBAIC0xMzYsNyArMTM2LDcgQEAgdm9pZCBOZXR3
b3JrU3RvcmFnZVNlc3Npb246OnJlbW92ZVByZXZhbGVudERvbWFpbnMoY29uc3QgVmVjdG9yPFJl
Z2lzdHJhYmxlRG9tYWkKICAgICB9CiB9CiAKLWJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpo
YXNTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPHVpbnQ2
NF90PiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQpIGNvbnN0Citib29sIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
cmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWlu
LCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCkgY29uc3QKIHsKICAgICBpZiAoZnJhbWVJRCkgewogICAgICAgICBhdXRvIGZyYW1lc0dyYW50
ZWRJdGVyYXRvciA9IG1fZnJhbWVzR3JhbnRlZFN0b3JhZ2VBY2Nlc3MuZmluZChwYWdlSUQpOwpA
QCAtMTY5LDcgKzE2OSw3IEBAIFZlY3RvcjxTdHJpbmc+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
Z2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoKSBjb25zdAogICAgIHJldHVybiBlbnRyaWVzOwog
fQogICAgIAotdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdyYW50U3RvcmFnZUFjY2Vzcyhj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgUGFn
ZUlkZW50aWZpZXIgcGFnZUlEKQordm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdyYW50U3Rv
cmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50
aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKIHsKICAgICBpZiAoIWZyYW1l
SUQpIHsKICAgICAgICAgaWYgKGZpcnN0UGFydHlEb21haW4uaXNFbXB0eSgpKQpAQCAtMTkxLDcg
KzE5MSw3IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpncmFudFN0b3JhZ2VBY2Nlc3Mo
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlCiAKICAgICBhdXRvIHBhZ2VzR3JhbnRl
ZEl0ZXJhdG9yID0gbV9mcmFtZXNHcmFudGVkU3RvcmFnZUFjY2Vzcy5maW5kKHBhZ2VJRCk7CiAg
ICAgaWYgKHBhZ2VzR3JhbnRlZEl0ZXJhdG9yID09IG1fZnJhbWVzR3JhbnRlZFN0b3JhZ2VBY2Nl
c3MuZW5kKCkpIHsKLSAgICAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVnaXN0cmFibGVEb21haW4s
IERlZmF1bHRIYXNoPHVpbnQ2NF90Pjo6SGFzaCwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFz
aFRyYWl0czx1aW50NjRfdD4+IGVudHJ5OworICAgICAgICBIYXNoTWFwPEZyYW1lSWRlbnRpZmll
ciwgUmVnaXN0cmFibGVEb21haW4+IGVudHJ5OwogICAgICAgICBlbnRyeS5hZGQoZnJhbWVJRC52
YWx1ZSgpLCByZXNvdXJjZURvbWFpbik7CiAgICAgICAgIG1fZnJhbWVzR3JhbnRlZFN0b3JhZ2VB
Y2Nlc3MuYWRkKHBhZ2VJRCwgZW50cnkpOwogICAgIH0gZWxzZSB7CkBAIC0yMDMsNyArMjAzLDcg
QEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2UKICAgICB9CiB9CiAKLXZvaWQgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpyZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
UGFnZUlkZW50aWZpZXIgcGFnZUlEKQordm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnJlbW92
ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50
aWZpZXIgcGFnZUlEKQogewogICAgIGF1dG8gaXRlcmF0aW9uID0gbV9mcmFtZXNHcmFudGVkU3Rv
cmFnZUFjY2Vzcy5maW5kKHBhZ2VJRCk7CiAgICAgaWYgKGl0ZXJhdGlvbiA9PSBtX2ZyYW1lc0dy
YW50ZWRTdG9yYWdlQWNjZXNzLmVuZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKaW5kZXggYzhlZjhmN2JhYjc1
ZmQ5OTc5YjI4MmY1ZjVhODcwMmVmODBjODhiMy4uOGRkZjU1YjRhMWZjYTVjNTRhNDk5MGEzYTM3
YzA1OTI2NjhmZTAwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21h
IG9uY2UKIAogI2luY2x1ZGUgIkNyZWRlbnRpYWxTdG9yYWdlLmgiCisjaW5jbHVkZSAiRnJhbWVJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJSZWdp
c3RyYWJsZURvbWFpbi5oIgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KQEAgLTEyMyw3ICsx
MjQsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjb29raWVzRW5hYmxlZCgp
IGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29va2llKGNvbnN0IENvb2tpZSYp
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29va2llcyhjb25zdCBWZWN0b3I8Q29va2ll
PiYsIGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgbWFpbkRvY3VtZW50VVJMKTsKLSAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQs
IE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJikgY29uc3Q7CisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmll
cj4sIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVDb29raWUoY29uc3QgQ29va2llJik7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBkZWxldGVDb29raWUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJikg
Y29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVBbGxDb29raWVzKCk7CkBAIC0x
MzIsMjYgKzEzMywyNiBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVD
b29raWVzRm9ySG9zdG5hbWVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjb29raWVIb3N0TmFtZXMs
IEluY2x1ZGVIdHRwT25seUNvb2tpZXMpOwogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxDb29r
aWU+IGdldEFsbENvb2tpZXMoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8Q29va2llPiBn
ZXRDb29raWVzKGNvbnN0IFVSTCYpOwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgZ2V0UmF3Q29v
a2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVS
TCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4s
IFZlY3RvcjxDb29raWU+JikgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBnZXRSYXdD
b29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3Qg
VVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+
LCBWZWN0b3I8Q29va2llPiYpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZmx1c2hD
b29raWVTdG9yZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2V0SG9zdG5hbWVzV2l0aENv
b2tpZXMoSGFzaFNldDxTdHJpbmc+JiBob3N0bmFtZXMpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0
ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZXNGb3JET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJh
bWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29u
c3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llUmVx
dWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0
ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8
UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7CisgICAgV0VCQ09S
RV9FWFBPUlQgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvckRPTShjb25zdCBVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZy
YW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNv
b2tpZXMpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+
IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llUmVxdWVzdEhl
YWRlckZpZWxkVmFsdWUoY29uc3QgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkmKSBjb25z
dDsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgT3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPikgY29uc3Q7
Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgVVJMJiBm
aXJzdFBhcnR5Rm9yQ29va2llcywgY29uc3QgVVJMJiByZXNvdXJjZSwgT3B0aW9uYWw8dWludDY0
X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPikgY29uc3Q7CisgICAgV0VCQ09S
RV9FWFBPUlQgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jiwg
T3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+KSBjb25z
dDsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNob3VsZEJsb2NrQ29va2llcyhjb25zdCBVUkwm
IGZpcnN0UGFydHlGb3JDb29raWVzLCBjb25zdCBVUkwmIHJlc291cmNlLCBPcHRpb25hbDxGcmFt
ZUlkZW50aWZpZXI+LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4pIGNvbnN0OwogICAgIFdFQkNP
UkVfRVhQT1JUIGJvb2wgc2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2hvdWxkQmxvY2tU
aGlyZFBhcnR5Q29va2llc0J1dEtlZXBGaXJzdFBhcnR5Q29va2llc0Zvcihjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UHJldmFsZW50
RG9tYWluc1RvQmxvY2tBbmREZWxldGVDb29raWVzRm9yKGNvbnN0IFZlY3RvcjxSZWdpc3RyYWJs
ZURvbWFpbj4mKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFByZXZhbGVudERvbWFpbnNU
b0Jsb2NrQnV0S2VlcENvb2tpZXNGb3IoY29uc3QgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiYp
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMo
T3B0aW9uYWw8U2Vjb25kcz4pOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlUHJldmFs
ZW50RG9tYWlucyhjb25zdCBWZWN0b3I8UmVnaXN0cmFibGVEb21haW4+JiBkb21haW5zKTsKLSAg
ICBXRUJDT1JFX0VYUE9SVCBib29sIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0
eURvbWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyKSBjb25z
dDsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmly
c3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgUGFnZUlkZW50aWZpZXIp
IGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxTdHJpbmc+IGdldEFsbFN0b3JhZ2VB
Y2Nlc3NFbnRyaWVzKCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBncmFudFN0b3Jh
Z2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQsIFBhZ2VJZGVudGlmaWVyKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVN0
b3JhZ2VBY2Nlc3NGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllcik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQ
YXJ0eURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgUGFnZUlkZW50aWZpZXIpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKEZyYW1l
SWRlbnRpZmllciwgUGFnZUlkZW50aWZpZXIpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xl
YXJQYWdlU3BlY2lmaWNEYXRhRm9yUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQYWdlSWRlbnRpZmll
cik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVBbGxTdG9yYWdlQWNjZXNzKCk7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291
cmNlcyhTZWNvbmRzKTsKQEAgLTE4NSw3ICsxODYsNyBAQCBwcml2YXRlOgogICAgIE9wdGlvbmFs
PFNlY29uZHM+IGNsaWVudFNpZGVDb29raWVDYXAoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZp
cnN0UGFydHksIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPikgY29uc3Q7CiAgICAgSGFzaFNldDxS
ZWdpc3RyYWJsZURvbWFpbj4gbV9yZWdpc3RyYWJsZURvbWFpbnNUb0Jsb2NrQW5kRGVsZXRlQ29v
a2llc0ZvcjsKICAgICBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiBtX3JlZ2lzdHJhYmxlRG9t
YWluc1RvQmxvY2tCdXRLZWVwQ29va2llc0ZvcjsKLSAgICBIYXNoTWFwPFBhZ2VJZGVudGlmaWVy
LCBIYXNoTWFwPHVpbnQ2NF90LCBSZWdpc3RyYWJsZURvbWFpbiwgRGVmYXVsdEhhc2g8dWludDY0
X3Q+OjpIYXNoLCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPHVpbnQ2NF90Pj4+
IG1fZnJhbWVzR3JhbnRlZFN0b3JhZ2VBY2Nlc3M7CisgICAgSGFzaE1hcDxQYWdlSWRlbnRpZmll
ciwgSGFzaE1hcDxGcmFtZUlkZW50aWZpZXIsIFJlZ2lzdHJhYmxlRG9tYWluPj4gbV9mcmFtZXNH
cmFudGVkU3RvcmFnZUFjY2VzczsKICAgICBIYXNoTWFwPFBhZ2VJZGVudGlmaWVyLCBIYXNoTWFw
PFJlZ2lzdHJhYmxlRG9tYWluLCBSZWdpc3RyYWJsZURvbWFpbj4+IG1fcGFnZXNHcmFudGVkU3Rv
cmFnZUFjY2VzczsKICAgICBPcHRpb25hbDxTZWNvbmRzPiBtX2NhY2hlTWF4QWdlQ2FwRm9yUHJl
dmFsZW50UmVzb3VyY2VzIHsgfTsKICAgICBPcHRpb25hbDxTZWNvbmRzPiBtX2FnZUNhcEZvckNs
aWVudFNpZGVDb29raWVzIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlLmNwcAppbmRleCBkYmEwZjEzZjQ3OWEzMzI2YmU4
NWQ2NjkzOWU1MGM2M2MxM2I2MWEwLi5iMDNmMmQyMTg4NjUxNGMyOGViMDkzNzQ4MWJjMGE5MzUz
ZDBjZDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NvY2tl
dFN0cmVhbUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9T
b2NrZXRTdHJlYW1IYW5kbGUuY3BwCkBAIC02MSw3ICs2MSw3IEBAIHZvaWQgU29ja2V0U3RyZWFt
SGFuZGxlOjpzZW5kSGFuZHNoYWtlKENTdHJpbmcmJiBoYW5kc2hha2UsIE9wdGlvbmFsPENvb2tp
ZVJlcXVlCiB7CiAgICAgaWYgKG1fc3RhdGUgPT0gQ29ubmVjdGluZyB8fCBtX3N0YXRlID09IENs
b3NpbmcpCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSwgZmFsc2UpOwot
ICAgIHBsYXRmb3JtU2VuZEhhbmRzaGFrZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3Qq
PihoYW5kc2hha2UuZGF0YSgpKSwgaGFuZHNoYWtlLmxlbmd0aCgpLCBoZWFkZXJGaWVsZFByb3h5
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgcGxhdGZvcm1TZW5kSGFuZHNoYWtl
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGhhbmRzaGFrZS5kYXRhKCkpLCBoYW5k
c2hha2UubGVuZ3RoKCksIFdURk1vdmUoaGVhZGVyRmllbGRQcm94eSksIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBTb2NrZXRTdHJlYW1IYW5kbGU6OmNsb3NlKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nv
Y29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tCmluZGV4IDg0YjczYjgzNDRiMGNhYjVh
OTA0OGI0ODVlZmIxNzZkNWQzNDA1ODEuLjg1ZjRjNjJlM2JmNzRjMGRlNTQzNWYyZjAwYmU5ODRk
ODJlYWVmNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29j
b2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbQpAQCAtMjk0
LDcgKzI5NCw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gZmlsdGVyQ29va2llcyhOU0Fy
cmF5ICp1bmZpbHRlcmVkQ29va2llcywgT3B0aW9uYWw8U2VjCiAgICAgcmV0dXJuIGZpbHRlcmVk
Q29va2llczsKIH0KIAotc3RhdGljIE5TQXJyYXkgKmNvb2tpZXNGb3JVUkwoY29uc3QgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0
X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQpCitzdGF0aWMgTlNB
cnJheSAqY29va2llc0ZvclVSTChjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24s
IGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8s
IGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlv
bmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQpCiB7CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURf
U1RBVElTVElDUykKICAgICBpZiAoc2Vzc2lvbi5zaG91bGRCbG9ja0Nvb2tpZXMoZmlyc3RQYXJ0
eSwgdXJsLCBmcmFtZUlELCBwYWdlSUQpKQpAQCAtMzA3LDcgKzMwNyw3IEBAIHN0YXRpYyBOU0Fy
cmF5ICpjb29raWVzRm9yVVJMKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwg
Y29uc3QgVVJMJiBmCiB9CiAKIGVudW0gSW5jbHVkZUhUVFBPbmx5T3JOb3QgeyBEb05vdEluY2x1
ZGVIVFRQT25seSwgSW5jbHVkZUhUVFBPbmx5IH07Ci1zdGF0aWMgc3RkOjpwYWlyPFN0cmluZywg
Ym9vbD4gY29va2llc0ZvclNlc3Npb24oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNz
aW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJ
bmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFs
PFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVIVFRQT25seU9yTm90IGluY2x1ZGVIVFRQ
T25seSwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpCitzdGF0aWMg
c3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvclNlc3Npb24oY29uc3QgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVT
aXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVu
dGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRl
SFRUUE9ubHlPck5vdCBpbmNsdWRlSFRUUE9ubHksIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1
ZGVTZWN1cmVDb29raWVzKQogewogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nl
c3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsKIApAQCAtMzYzLDEyICszNjMsMTIg
QEAgc3RhdGljIHZvaWQgZGVsZXRlQWxsSFRUUENvb2tpZXMoQ0ZIVFRQQ29va2llU3RvcmFnZVJl
ZiBjb29raWVTdG9yYWdlKQogICAgIENGSFRUUENvb2tpZVN0b3JhZ2VEZWxldGVBbGxDb29raWVz
KGNvb2tpZVN0b3JhZ2UpOwogfQogCi1zdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmNvb2tpZXNGb3JET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBT
YW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2
NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2Vj
dXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKK3N0ZDo6cGFpcjxTdHJpbmcs
IGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVy
bCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRp
Zmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykg
Y29uc3QKIHsKICAgICByZXR1cm4gY29va2llc0ZvclNlc3Npb24oKnRoaXMsIGZpcnN0UGFydHks
IHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIERvTm90SW5jbHVkZUhUVFBPbmx5
LCBpbmNsdWRlU2VjdXJlQ29va2llcyk7CiB9CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3Qg
VVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRp
Zmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykg
Y29uc3QKK3N0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29v
a2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBT
YW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1l
SWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5j
bHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIGNvb2tpZXNGb3JTZXNzaW9uKCp0aGlzLCBmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVy
bCwgZnJhbWVJRCwgcGFnZUlELCBJbmNsdWRlSFRUUE9ubHksIGluY2x1ZGVTZWN1cmVDb29raWVz
KTsKIH0KQEAgLTM3OCw3ICszNzgsNyBAQCBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbgogICAgIHJl
dHVybiBjb29raWVzRm9yU2Vzc2lvbigqdGhpcywgaGVhZGVyRmllbGRQcm94eS5maXJzdFBhcnR5
LCBoZWFkZXJGaWVsZFByb3h5LnNhbWVTaXRlSW5mbywgaGVhZGVyRmllbGRQcm94eS51cmwsIGhl
YWRlckZpZWxkUHJveHkuZnJhbWVJRCwgaGVhZGVyRmllbGRQcm94eS5wYWdlSUQsIEluY2x1ZGVI
VFRQT25seSwgaGVhZGVyRmllbGRQcm94eS5pbmNsdWRlU2VjdXJlQ29va2llcyk7CiB9CiAKLXZv
aWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVy
bCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBw
YWdlSUQsIGNvbnN0IFN0cmluZyYgY29va2llU3RyKSBjb25zdAordm9pZCBOZXR3b3JrU3RvcmFn
ZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
U2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFt
ZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGNv
bnN0IFN0cmluZyYgY29va2llU3RyKSBjb25zdAogewogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJp
dmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsKIApAQCAtNDQz
LDcgKzQ0Myw3IEBAIGJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVzRW5hYmxlZCgp
IGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6Z2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5m
byYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1l
SUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFZlY3RvcjxDb29raWU+JiByYXdD
b29raWVzKSBjb25zdAorYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldFJhd0Nvb2tpZXMo
Y29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywg
Y29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgVmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNv
bnN0CiB7CiAgICAgcmF3Q29va2llcy5jbGVhcigpOwogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9Db29raWVKYXJDdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9Db29raWVKYXJDdXJsLmNwcAppbmRleCAzOTRjMzQ2MjY2NDlkNWRlYTg2OWUwOTViZTBkOWZh
ZTdiMWE1ZWNiLi43MTk4YWRmMGI0MmZlZDBjYjQxODM0MGJlMTc5YzNmOTdjOTk1MWE5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3Vy
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUph
ckN1cmwuY3BwCkBAIC01OSw3ICs1OSw3IEBAIHN0YXRpYyBTdHJpbmcgY29va2llc0ZvclNlc3Np
b24oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmCiAgICAg
cmV0dXJuIGNvb2tpZXMudG9TdHJpbmcoKTsKIH0KIAotdm9pZCBDb29raWVKYXJDdXJsOjpzZXRD
b29raWVzRnJvbURPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9w
dGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIGNvbnN0
IFN0cmluZyYgdmFsdWUpIGNvbnN0Cit2b2lkIENvb2tpZUphckN1cmw6OnNldENvb2tpZXNGcm9t
RE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJh
bWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIGNvbnN0IFN0
cmluZyYgdmFsdWUpIGNvbnN0CiB7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwogCkBAIC04
Miw3ICs4Miw3IEBAIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IENvb2tpZUphckN1cmw6OmNvb2tp
ZXNGb3JET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uCiAgICAgcmV0dXJuIHsgY29va2ll
c0ZvclNlc3Npb24oc2Vzc2lvbiwgZmlyc3RQYXJ0eSwgdXJsLCBmYWxzZSksIGZhbHNlIH07CiB9
CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IENvb2tpZUphckN1cmw6OmNvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHVlKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29u
c3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwg
T3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdl
SUQsIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAorc3RkOjpwYWlyPFN0cmluZywgYm9vbD4g
Q29va2llSmFyQ3VybDo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZy
YW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29r
aWVzKSBjb25zdAogewogICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKICAgICBVTlVTRURfUEFS
QU0ocGFnZUlEKTsKQEAgLTExMiw3ICsxMTIsNyBAQCBib29sIENvb2tpZUphckN1cmw6OmNvb2tp
ZXNFbmFibGVkKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbikgY29uc3QKICAg
ICByZXR1cm4gc2Vzc2lvbi5jb29raWVEYXRhYmFzZSgpLmlzRW5hYmxlZCgpOwogfQogCi1ib29s
IENvb2tpZUphckN1cmw6OmdldFJhd0Nvb2tpZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNv
bnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+IHBhZ2VJRCwgVmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0Citib29s
IENvb2tpZUphckN1cmw6OmdldFJhd0Nvb2tpZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNv
bnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFs
PFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFZlY3RvcjxDb29raWU+JiByYXdDb29raWVzKSBjb25z
dAogewogICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKICAgICBVTlVTRURfUEFSQU0ocGFnZUlE
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29r
aWVKYXJDdXJsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2ll
SmFyQ3VybC5oCmluZGV4IDI0YTA1YTIyN2FlMDZhYmExMTQzMTUyYThmYWM4NDgyOWUwMWY0MTAu
LmU2MmJjNGEwN2U4MmUzZWNmN2NmMmY2OGE0MWU0YTJhZGE3MGZiOTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJDdXJsLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuaApAQCAt
MjQsNiArMjQsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmll
ci5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgpAQCAtNDIsMTUgKzQzLDE1IEBAIGVudW0gY2xh
c3MgQ29va2llQWNjZXB0UG9saWN5OwogCiBjbGFzcyBDb29raWVKYXJDdXJsIHsKIHB1YmxpYzoK
LSAgICBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yRE9NKGNvbnN0IE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZv
JiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0OwotICAgIHZvaWQgc2V0Q29v
a2llc0Zyb21ET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBjb25zdCBTdHJpbmcmKSBjb25z
dDsKKyAgICBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yRE9NKGNvbnN0IE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJ
bmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKKyAgICB2
b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIGNv
bnN0IFN0cmluZyYpIGNvbnN0OwogICAgIHZvaWQgc2V0Q29va2llc0Zyb21IVFRQUmVzcG9uc2Uo
Y29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBVUkwmLCBjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICB2b2lkIHNldENvb2tpZUFjY2VwdFBv
bGljeShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBDb29raWVBY2NlcHRQb2xpY3kpIGNv
bnN0OwogICAgIENvb2tpZUFjY2VwdFBvbGljeSBjb29raWVBY2NlcHRQb2xpY3koY29uc3QgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uJikgY29uc3Q7CiAgICAgYm9vbCBjb29raWVzRW5hYmxlZChjb25z
dCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mKSBjb25zdDsKLSAgICBzdGQ6OnBhaXI8U3RyaW5nLCBi
b29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBOZXR3b3JrU3RvcmFnZVNl
c3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0
IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmll
cj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKKyAgICBzdGQ6OnBhaXI8U3RyaW5nLCBi
b29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBOZXR3b3JrU3RvcmFnZVNl
c3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0
IFVSTCYsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7CiAgICAgc3RkOjpwYWlyPFN0
cmluZywgYm9vbD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uJiwgY29uc3QgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkmKSBjb25z
dDsKLSAgICBib29sIGdldFJhd0Nvb2tpZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwg
Y29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBP
cHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBWZWN0
b3I8Q29va2llPiYpIGNvbnN0OworICAgIGJvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5m
byYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+LCBWZWN0b3I8Q29va2llPiYpIGNvbnN0OwogICAgIHZvaWQgZGVs
ZXRlQ29va2llKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYsIGNvbnN0
IFN0cmluZyYpIGNvbnN0OwogICAgIHZvaWQgZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoY29uc3Qg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgSGFzaFNldDxTdHJpbmc+JiBob3N0bmFtZXMpIGNvbnN0
OwogICAgIHZvaWQgZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lcyhjb25zdCBOZXR3b3JrU3RvcmFn
ZVNlc3Npb24mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgY29va2llSG9zdE5hbWVzKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3Jr
U3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAppbmRleCBlNGM4YjBmMTNlNmQwODlh
NTg5MmFhN2FlMGE5YjgyMTU4NWJiOWE0Li5lOTYxYzI4ODNiODYzMDEwNWRhN2Q3ODA3ZjNmYmJl
MjYxYTIwNjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCkBAIC0yNjAs
NyArMjYwLDcgQEAgc3RhdGljIGlubGluZSBib29sIGh0dHBPbmx5Q29va2llRXhpc3RzKGNvbnN0
IEdTTGlzdCogY29va2llcywgY29uc3QgZ2NoYXIqIG5hbWUKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVzRnJvbURPTShjb25zdCBV
UkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRp
b25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QKK3ZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpz
ZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5m
byYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9w
dGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGNvbnN0IFN0cmluZyYgdmFsdWUpIGNvbnN0
CiB7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwogICAgIFVOVVNFRF9QQVJBTShwYWdlSUQp
OwpAQCAtNDEzLDcgKzQxMyw3IEBAIFZlY3RvcjxDb29raWU+IE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6Z2V0Q29va2llcyhjb25zdCBVUkwmIHVybCkKICAgICByZXR1cm4gY29va2llczsKIH0KIAot
Ym9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWlu
dDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFZlY3RvcjxD
b29raWU+JiByYXdDb29raWVzKSBjb25zdAorYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246Omdl
dFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBj
b25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25h
bDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBWZWN0b3I8Q29va2llPiYgcmF3Q29va2llcykgY29u
c3QKIHsKICAgICBVTlVTRURfUEFSQU0oZmlyc3RQYXJ0eSk7CiAgICAgVU5VU0VEX1BBUkFNKGZy
YW1lSUQpOwpAQCAtNDgzLDcgKzQ4Myw3IEBAIHN0YXRpYyBzdGQ6OnBhaXI8U3RyaW5nLCBib29s
PiBjb29raWVzRm9yU2Vzc2lvbihjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlCiAgICAg
cmV0dXJuIHsgU3RyaW5nOjpmcm9tVVRGOChjb29raWVIZWFkZXIuZ2V0KCkpLCBkaWRBY2Nlc3NT
ZWN1cmVDb29raWVzIH07CiB9CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5j
bHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CitzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmNvb2tpZXNGb3JET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVy
PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJl
Q29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKIHsKICAgICBVTlVTRURfUEFSQU0o
Zmlyc3RQYXJ0eSk7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwpAQCAtNDkxLDcgKzQ5MSw3
IEBAIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2ll
c0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFyCiAgICAgcmV0dXJuIGNvb2tpZXNGb3JTZXNzaW9u
KCp0aGlzLCB1cmwsIGZhbHNlLCBpbmNsdWRlU2VjdXJlQ29va2llcyk7CiB9CiAKLXN0ZDo6cGFp
cjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llUmVxdWVzdEhlYWRl
ckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBj
b25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29r
aWVzKSBjb25zdAorc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Ojpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZp
ZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1
cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAogewogICAgIFVOVVNFRF9QQVJB
TShmaXJzdFBhcnR5KTsKICAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAppbmRleCA2ODdk
MGIwNDYxYWZkZTdjMDcyOThjNmM5ZWZmZDI2MTk0YmY0N2FjLi43NjNiNDc1OWU0MzNmODcxMzBi
Mzk0MDA2MjM0MGIyNjg0OGVhOGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKQEAgLTcxNiw3ICs3MTYsNyBAQCB2b2lkIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzeW5jU3RvcmFnZUltbWVkaWF0ZWx5
KCkKICAgICBtX2RhdGFiYXNlLnJ1blZhY3V1bUNvbW1hbmQoKTsKIH0KIAotdm9pZCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJG
cmFtZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFt
ZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJRD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9p
ZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyhj
b25zdCBTdWJGcmFtZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFRvcEZyYW1lRG9tYWlu
JiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBQYWdl
SWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTc0
Myw3ICs3NDMsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpo
YXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJgogICAgIH0pOwogfQogCi12b2lk
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vz
cyhTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZy
YW1lRG9tYWluLCBGcmFtZUlEIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlcXVlc3RTdG9y
YWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWlu
JiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAK
QEAgLTgwNCw3ICs4MDQsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyKERvbWFpbgogICAgIGdyYW50U3Rv
cmFnZUFjY2Vzc0ludGVybmFsKFdURk1vdmUoZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzKSwg
V1RGTW92ZShvcGVuZXJEb21haW4pLCBXVEY6Om51bGxvcHQsIG9wZW5lclBhZ2VJRCwgU3RvcmFn
ZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpObywgW10oU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpIHsg
fSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW50
U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURv
bWFpbiYmIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBw
YWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93biwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFudFN0
b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21h
aW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtODE4
LDcgKzgxOCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omdy
YW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1CiAgICAgZ3JhbnRTdG9yYWdlQWNj
ZXNzSW50ZXJuYWwoV1RGTW92ZShzdWJGcmFtZURvbWFpbiksIFdURk1vdmUodG9wRnJhbWVEb21h
aW4pLCBmcmFtZUlELCBwYWdlSUQsIHByb21wdFdhc1Nob3duLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21h
aW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPEZyYW1lSUQ+IGZy
YW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3du
IHByb21wdFdhc1Nob3duTm93T3JFYXJsaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3Jh
Z2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFN1
YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVE
b21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIg
cGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd25Ob3dPckVh
cmxpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5o
CmluZGV4IDNjOGQyYjFmMTY1NDkzYzkzY2E1ZDgyYmMwMjcyZjkxM2I3YTA3ZmEuLmQyNTZiZTIx
Y2ZmN2IxZjcwNTU2NDAzMWE1NzVmNWU1ZDIzMzBlZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oCkBAIC05MSw5ICs5MSw5IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgY2FsY3VsYXRlQW5kU3VibWl0VGVsZW1ldHJ5KCkgY29uc3Qgb3Zl
cnJpZGU7CiAKLSAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4m
LCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPEZyYW1lSUQ+LCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURv
bWFpbiYmLCBGcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBncmFu
dFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgRnJhbWVJ
RCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2Fz
R3JhbnRlZCk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBT
dWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8V2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nl
c3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChT
dG9yYWdlQWNjZXNzU3RhdHVzKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBncmFudFN0b3JhZ2VB
Y2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vz
c1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VB
Y2Nlc3NXYXNHcmFudGVkKT4mJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGxvZ0ZyYW1lTmF2aWdh
dGlvbihjb25zdCBOYXZpZ2F0ZWRUb0RvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgY29u
c3QgTmF2aWdhdGVkRnJvbURvbWFpbiYsIGJvb2wgaXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFt
ZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb24oY29uc3QgVG9wRnJhbWVE
b21haW4mKSBvdmVycmlkZTsKQEAgLTE1Myw3ICsxNTMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
c2V0UHJldmFsZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBSZXNvdXJjZUxv
YWRQcmV2YWxlbmNlKTsKICAgICB1bnNpZ25lZCByZWN1cnNpdmVseUZpbmROb25QcmV2YWxlbnRE
b21haW5zVGhhdFJlZGlyZWN0ZWRUb1RoaXNEb21haW4odW5zaWduZWQgcHJpbWFyeURvbWFpbklE
LCBTdGRTZXQ8dW5zaWduZWQ+JiBub25QcmV2YWxlbnRSZWRpcmVjdGlvblNvdXJjZXMsIHVuc2ln
bmVkIG51bWJlck9mUmVjdXJzaXZlQ2FsbHMpOwogICAgIHZvaWQgc2V0RG9tYWluc0FzUHJldmFs
ZW50KFN0ZFNldDx1bnNpZ25lZD4mJik7Ci0gICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3NJbnRl
cm5hbChTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBPcHRpb25hbDxGcmFtZUlE
PiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2Fz
R3JhbnRlZCk+JiYpOworICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoU3ViRnJh
bWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQ
cm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNj
ZXNzV2FzR3JhbnRlZCk+JiYpOwogICAgIHZvaWQgbWFya0FzUHJldmFsZW50SWZIYXNSZWRpcmVj
dGVkVG9QcmV2YWxlbnQoKTsKICAgICBWZWN0b3I8UmVnaXN0cmFibGVEb21haW4+IGVuc3VyZVBy
ZXZhbGVudFJlc291cmNlc0ZvckRlYnVnTW9kZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVtb3Zl
RGF0YVJlY29yZHMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzTWVtb3J5U3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAKaW5kZXggZTIzOWZjYzgw
M2U4ZDc0NDU2MTIxOGQ2NzIxN2Y3MWVkNDFiMTg3Zi4uZjZlZTkyZjliNjhkMzJmMDdlNTIxNWQz
MDM1NDk5NTE0NGY3YTgzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NNZW1vcnlTdG9yZS5jcHAKQEAgLTIxMSw3ICsyMTEsNyBAQCB2b2lkIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6c3luY1N0b3JhZ2VJbW1lZGlhdGVseSgpCiAgICAgICAg
IG1fcGVyc2lzdGVudFN0b3JhZ2UtPnNjaGVkdWxlT3JXcml0ZU1lbW9yeVN0b3JlKFJlc291cmNl
TG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZTo6Rm9yY2VJbW1lZGlhdGVXcml0ZTo6WWVz
KTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6Omhhc1N0b3Jh
Z2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBUb3BG
cmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPEZyYW1lSUQ+IGZyYW1lSUQsIFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpo
YXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29u
c3QgVG9wRnJhbWVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZp
ZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6Omlz
TWFpbigpKTsKIApAQCAtMjM1LDcgKzIzNSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c01lbW9yeVN0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiBzCiAg
ICAgfSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpyZXF1
ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFt
ZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlEIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3Jl
OjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBU
b3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
UGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nl
c3NTdGF0dXMpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6
aXNNYWluKCkpOwogCkBAIC0yODgsNyArMjg4LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzTWVtb3J5U3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoRG9tYWluSW4K
ICAgICBncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChXVEZNb3ZlKGRvbWFpbkluTmVlZE9mU3Rv
cmFnZUFjY2VzcyksIFdURk1vdmUob3BlbmVyRG9tYWluKSwgV1RGOjpudWxsb3B0LCBvcGVuZXJQ
YWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bjo6Tm8sIFtdKFN0b3JhZ2VBY2Nlc3NX
YXNHcmFudGVkKSB7IH0pOwogfQogCi12b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4s
IFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1No
b3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3Jl
OjpncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9w
RnJhbWVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdh
c1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsK
IApAQCAtMzAwLDcgKzMwMCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0
b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiBzdWJGCiAgICAgZ3JhbnRT
dG9yYWdlQWNjZXNzSW50ZXJuYWwoV1RGTW92ZShzdWJGcmFtZURvbWFpbiksIFdURk1vdmUodG9w
RnJhbWVEb21haW4pLCBmcmFtZUlELCBwYWdlSUQsIHByb21wdFdhc1Nob3duLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9y
eVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChTdWJGcmFtZURvbWFpbiYmIHN1YkZy
YW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDxGcmFt
ZUlEPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93biBwcm9tcHRXYXNTaG93bk5vd09yRWFybGllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJu
YWwoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21haW4mJiB0b3BG
cmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBQYWdlSWRlbnRp
ZmllciBwYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93bk5v
d09yRWFybGllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRl
ZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4o
KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUu
aAppbmRleCA1YWY2N2ExNmYwNjE2ZGE5ZmEwYzA5MzMxNWFjYmMzNWRhYTViMTE5Li5hNGE3Yjg4
ZTJkZmIwMDM0NmJkYzI3MWZlYjdlNWIyNGJhODIwOTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9y
eVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCkBAIC05Nyw5ICs5Nyw5IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgY2FsY3VsYXRlQW5kU3VibWl0VGVsZW1ldHJ5KCkgY29uc3Qgb3ZlcnJp
ZGU7CiAKLSAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBj
b25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPEZyYW1lSUQ+LCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgb3ZlcnJpZGU7Ci0gICAg
dm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFp
biYmLCBGcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBncmFudFN0
b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgRnJhbWVJRCwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNT
aG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3Jh
bnRlZCk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJG
cmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3Mo
U3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9y
YWdlQWNjZXNzU3RhdHVzKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nl
c3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1By
b21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nl
c3NXYXNHcmFudGVkKT4mJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGxvZ0ZyYW1lTmF2aWdhdGlv
bihjb25zdCBOYXZpZ2F0ZWRUb0RvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgY29uc3Qg
TmF2aWdhdGVkRnJvbURvbWFpbiYsIGJvb2wgaXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFtZSkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb24oY29uc3QgVG9wRnJhbWVEb21h
aW4mKSBvdmVycmlkZTsKQEAgLTEyMyw3ICsxMjMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgaW5j
cmVtZW50UmVjb3Jkc0RlbGV0ZWRDb3VudEZvckRvbWFpbnMoSGFzaFNldDxSZWdpc3RyYWJsZURv
bWFpbj4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZShSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzJiwgUmVzb3VyY2VMb2FkUHJldmFsZW5jZSk7CiAgICAgdW5zaWduZWQg
cmVjdXJzaXZlbHlHZXRBbGxEb21haW5zVGhhdEhhdmVSZWRpcmVjdGVkVG9UaGlzRG9tYWluKGNv
bnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3MmLCBIYXNoU2V0PFJlZGlyZWN0ZWRUb0RvbWFpbj4m
LCB1bnNpZ25lZCBudW1iZXJPZlJlY3Vyc2l2ZUNhbGxzKSBjb25zdDsKLSAgICB2b2lkIGdyYW50
U3RvcmFnZUFjY2Vzc0ludGVybmFsKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYs
IE9wdGlvbmFsPEZyYW1lSUQ+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3Rv
cmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6
OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJik7CisgICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nl
c3NJbnRlcm5hbChTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBPcHRpb25hbDxX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29y
ZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJik7CiAgICAgdm9pZCBtYXJrQXNQcmV2
YWxlbnRJZkhhc1JlZGlyZWN0ZWRUb1ByZXZhbGVudChSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJik7
CiAgICAgYm9vbCBpc1ByZXZhbGVudER1ZVRvRGVidWdNb2RlKFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MmKTsKICAgICBWZWN0b3I8UmVnaXN0cmFibGVEb21haW4+IGVuc3VyZVByZXZhbGVudFJlc291
cmNlc0ZvckRlYnVnTW9kZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5oCmluZGV4IDcwYWNiZGNlOTZmNjVjZjgzYTk0NjM3ZDNmYjhkMWU5YjI2NTUz
ZGQuLjIwOTQ1ZGEwOThhNjgwYTBhNGU5OTc3ZmQ3NTI0NzBmNjc4ZDk5NWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2lu
Y2x1ZGUgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NDbGFzc2lmaWVyLmgiCiAjaW5jbHVkZSAiV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlk
ZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KQEAgLTkwLDcgKzkxLDYg
QEAgcHVibGljOgogICAgIHVzaW5nIE5hdmlnYXRlZFRvRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW47CiAgICAgdXNpbmcgRG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzID0gV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNpbmcgT3BlbmVyRG9tYWluID0gV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW47Ci0gICAgdXNpbmcgRnJhbWVJRCA9IHVpbnQ2NF90OwogICAg
IAogICAgIHZpcnR1YWwgflJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSgpOwogCkBAIC0xNTks
OSArMTU5LDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNEZWJ1Z01vZGVFbmFibGVkKCkgY29uc3Qg
eyByZXR1cm4gbV9kZWJ1Z01vZGVFbmFibGVkOyB9OwogICAgIHZvaWQgc2V0UHJldmFsZW50UmVz
b3VyY2VGb3JEZWJ1Z01vZGUoY29uc3QgUmVnaXN0cmFibGVEb21haW4mKTsKIAotICAgIHZpcnR1
YWwgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9w
RnJhbWVEb21haW4mLCBPcHRpb25hbDxGcmFtZUlEPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwg
RnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZ3JhbnRTdG9y
YWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIEZyYW1lSUQsIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hv
d24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50
ZWQpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3Vi
RnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllcj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTdG9yYWdlQWNj
ZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ3JhbnRTdG9y
YWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VB
Y2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9y
YWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBsb2dGcmFt
ZU5hdmlnYXRpb24oY29uc3QgTmF2aWdhdGVkVG9Eb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFp
biYsIGNvbnN0IE5hdmlnYXRlZEZyb21Eb21haW4mLCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNN
YWluRnJhbWUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbG9nVXNlckludGVyYWN0aW9uKGNvbnN0
IFRvcEZyYW1lRG9tYWluJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlLmNwcAppbmRleCA4YzIxMTU3Y2M3ZjY5MTdiYTk3MDg5ZTM2ZjE2OWQ4NmNm
OGI4YWIwLi42NzVmMGRhZjU5Y2U5YjRmODg3Yjc5NGJjODkyZWM0NGE4Mzc1NmYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcApAQCAtMjgwLDcg
KzI4MCw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXNvdXJjZUxv
YWRTdGF0aXN0aWNzVXBkYXRlZChWZWN0b3I8V2ViQ29yCiAgICAgfSk7CiB9CiAKLXZvaWQgV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRv
cEZyYW1lRG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIg
cGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3Mo
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJ
RCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChzdWJGcmFtZURvbWFpbiAhPSB0b3BG
cmFtZURvbWFpbik7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTMwMSw3ICsz
MDEsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFj
Y2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcwogICAgIH0pOwogfQogCi1ib29sIFdlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIGZpcnN0UGFydHlEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCkKK2Jvb2wgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpoYXNTdG9yYWdlQWNj
ZXNzRm9yRnJhbWUoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNN
YWluKCkpOwogCkBAIC0zMTQsNyArMzE0LDcgQEAgYm9vbCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25zdCBSZWdpc3RyYWJsZUQKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpjYWxsSGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcihjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5
RG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCBoYXNBY2Nlc3MpPiYmIGNhbGxiYWNrKQordm9pZCBXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5k
bGVyKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBoYXNBY2Nl
c3MpPiYmIGNhbGxiYWNrKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKQEAg
LTMyOCw3ICszMjgsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2Fs
bEhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29uc3QgUgogICAgIGNhbGxiYWNrKGZh
bHNlKTsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlcXVlc3RT
dG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vz
c1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3Jh
Z2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFj
Y2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtMzkxLDcg
KzM5MSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXF1ZXN0U3Rv
cmFnZUFjY2Vzc1VuZGVyT3BlbmVyKFJlZ2lzdHJhYmxlCiAgICAgfSk7CiB9CiAKLXZvaWQgV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
dG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwg
U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2Fz
U2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3Vi
RnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vz
c1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0
b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAg
cG9zdFRhc2soW3RoaXMsIHN1YkZyYW1lRG9tYWluID0gc3ViRnJhbWVEb21haW4uaXNvbGF0ZWRD
b3B5KCksIHRvcEZyYW1lRG9tYWluID0gdG9wRnJhbWVEb21haW4uaXNvbGF0ZWRDb3B5KCksIGZy
YW1lSUQsIHBhZ2VJRCwgcHJvbXB0V2FzU2hvd24sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CkBAIC00MTAsNyArNDEwLDcgQEAgdm9p
ZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYKICAgICB9KTsKIH0KIAotU3RvcmFnZUFjY2Vzc1dhc0dyYW50
ZWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCkKK1N0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlE
b21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIg
cGFnZUlEKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTQyNyw3ICs0
MjcsNyBAQCBTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdAogICAgIHJldHVybiBpc1N0b3JhZ2VHcmFu
dGVkID8gU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQ6OlllcyA6IFN0b3JhZ2VBY2Nlc3NXYXNHcmFu
dGVkOjpObzsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxH
cmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFt
ZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBPcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsR3JhbnRTdG9yYWdlQWNj
ZXNzSGFuZGxlcihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlm
aWVyPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUu
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuaAppbmRleCAwMjNkYzI3N2NmNTA1NDdiZjk2ODllY2NhNDg0NGQw
ZTY0YWIxMzJmLi45ZGExYjZiYjUyMTUyMWEwMTI0MjM0Y2Q0MzI3MTE1NmY4Y2UwYjVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCkBAIC0zMCw2ICsz
MCw3IEBACiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBY2Nlc3NT
dGF0dXMuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVR5cGUuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWluLmg+CiAjaW5jbHVkZSA8d3RmL0Nv
bXBsZXRpb25IYW5kbGVyLmg+CkBAIC04OSw3ICs5MCw2IEBAIHB1YmxpYzoKICAgICB1c2luZyBO
YXZpZ2F0ZWRUb0RvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwogICAgIHVzaW5n
IERvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcyA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
OwogICAgIHVzaW5nIE9wZW5lckRvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwot
ICAgIHVzaW5nIEZyYW1lSUQgPSB1aW50NjRfdDsKICAgICB1c2luZyBTdG9yYWdlQWNjZXNzV2Fz
R3JhbnRlZCA9IFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOwogICAgIHVzaW5nIFN0
b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biA9IFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93bjsKIApAQCAtMTExLDcgKzExMSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNob3Vs
ZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGJvb2wsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRTaG91bGRTdWJtaXRUZWxlbWV0cnko
Ym9vbCk7CiAKLSAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFp
biYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgRnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChT
dG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJik7
CisgICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25z
dCBUb3BGcmFtZURvbWFpbiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1No
b3duKT4mJik7CiAKICAgICB2b2lkIGFwcGxpY2F0aW9uV2lsbFRlcm1pbmF0ZSgpOwogCkBAIC0x
MjUsMTEgKzEyNSwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhclVzZXJJbnRlcmFjdGlvbihj
b25zdCBUb3BGcmFtZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAg
dm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvclJlZ2lzdHJhYmxlRG9tYWlucyhPcHRpb25TZXQ8V2Vi
c2l0ZURhdGFUeXBlPiwgSGFzaE1hcDxSZWdpc3RyYWJsZURvbWFpbiwgV2Vic2l0ZURhdGFUb1Jl
bW92ZT4mJiwgYm9vbCBzaG91bGROb3RpZnlQYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNv
bnN0IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+Jik+JiYpOwogICAgIHZvaWQgcmVnaXN0cmFi
bGVEb21haW5zV2l0aFdlYnNpdGVEYXRhKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBib29s
IHNob3VsZE5vdGlmeVBhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzaFNldDxSZWdpc3Ry
YWJsZURvbWFpbj4mJik+JiYpOwotICAgIFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIGdyYW50U3Rv
cmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwg
T3B0aW9uYWw8RnJhbWVJRD4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKKyAgICBTdG9yYWdl
QWNjZXNzV2FzR3JhbnRlZCBncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4m
LCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
cj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKICAgICB2b2lkIGhhc0hhZFVzZXJJbnRlcmFj
dGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpOwotICAgIHZvaWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYs
IGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8RnJhbWVJRD4sIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKLSAgICBib29sIGhh
c1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZy
YW1lRG9tYWluJiwgRnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwotICAgIHZvaWQg
cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFt
ZURvbWFpbiYsIEZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2Fz
U2hvd24pPiYmKTsKKyAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21h
aW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRp
Zmllcj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKTsKKyAgICBib29sIGhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25zdCBTdWJGcmFt
ZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vz
cyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1No
b3duKT4mJik7CiAgICAgdm9pZCBzZXRMYXN0U2Vlbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYs
IFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRQcmV2
YWxlbnRSZXNvdXJjZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRWZXJ5UHJldmFsZW50UmVzb3VyY2UoY29uc3QgUmVn
aXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpAQCAtMTcyLDEx
ICsxNzIsMTEgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1
Z01vZGUoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwogCiAgICAgdm9pZCBsb2dUZXN0aW5nRXZlbnQoY29uc3QgU3RyaW5nJik7Ci0gICAgdm9p
ZCBjYWxsR3JhbnRTdG9yYWdlQWNjZXNzSGFuZGxlcihjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNv
bnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8RnJhbWVJRD4sIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4m
Jik7CisgICAgdm9pZCBjYWxsR3JhbnRTdG9yYWdlQWNjZXNzSGFuZGxlcihjb25zdCBTdWJGcmFt
ZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKTsKICAgICB2b2lkIHJlbW92ZUFsbFN0b3Jh
Z2VBY2Nlc3MoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGNhbGxVcGRh
dGVQcmV2YWxlbnREb21haW5zVG9CbG9ja0Nvb2tpZXNGb3JIYW5kbGVyKGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluc1RvQmxvY2tDb29raWVzRm9yJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKICAgICB2b2lkIGNhbGxSZW1vdmVEb21haW5zSGFuZGxlcihjb25zdCBWZWN0b3I8UmVnaXN0
cmFibGVEb21haW4+Jik7Ci0gICAgdm9pZCBjYWxsSGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFu
ZGxlcihjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgRnJhbWVJ
RCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYpOworICAgIHZvaWQgY2FsbEhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29uc3Qg
U3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYpOwogCiAgICAgdm9pZCBkaWRDcmVhdGVOZXR3b3JrUHJvY2VzcygpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0
Q2hlY2tlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZs
aWdodENoZWNrZXIuaAppbmRleCA3OTMwMWIyMGNjY2FmZWI1MjEwZDc1YWQ1NzQxZmQyZDkyZThh
Y2FkLi4yY2JmNGM2ZWUyYjNjYzUwYjUxMTdjZjI2ZjMxM2IxNTJjNzM5MGZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGln
aHRDaGVja2VyLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgICAgICBTdHJpbmcgdXNl
ckFnZW50OwogICAgICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7CiAgICAgICAgIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRDsKLSAgICAgICAgdWludDY0X3QgZnJhbWVJRDsKKyAg
ICAgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQ7CiAgICAgICAgIFdlYkNvcmU6
OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5OwogICAgIH07
CiAgICAgdXNpbmcgQ29tcGxldGlvbkNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYpPjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5k
ZXggMWYxMDA0ZTFiNWJjZDM5ZDhiMTIyZGY4YzZkYTQ4ZDEzN2M0YmU2MS4uMGMyYzk3NmZlZTIw
ZDMyOWI0MDdlMDRkYjk2MmZiNjc5OWFmNDMxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKQEAgLTUyNSw3ICs1MjUsNyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Ojpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoUEFMOjpTZXNzaQogICAgIGxvYWRl
ci0+Y29udmVydFRvRG93bmxvYWQoZG93bmxvYWRJRCwgcmVxdWVzdCwgcmVzcG9uc2UpOwogfQog
Ci12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRm9yRE9NKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0
ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBm
cmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29v
a2llcyBpbmNsdWRlU2VjdXJlQ29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcg
Y29va2llU3RyaW5nLCBib29sIHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRm9yRE9N
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBT
YW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1l
SWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5j
bHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8mIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9
IHN0b3JhZ2VTZXNzaW9uKG5ldHdvcmtQcm9jZXNzKCksIHNlc3Npb25JRCk7CiAgICAgYXV0byBy
ZXN1bHQgPSBuZXR3b3JrU3RvcmFnZVNlc3Npb24uY29va2llc0ZvckRPTShmaXJzdFBhcnR5LCBz
YW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlELCBpbmNsdWRlU2VjdXJlQ29va2llcyk7
CkBAIC01MzgsNyArNTM4LDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
Y29va2llc0ZvckRPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnMKICAgICBjb21wbGV0
aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdC5maXJzdCksIHJlc3VsdC5zZWNvbmQpOwogfQogCi12
b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJvbURPTShQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNp
dGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4g
ZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBj
b29raWVTdHJpbmcpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29r
aWVzRnJvbURPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0
eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRp
b25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiBwYWdlSUQsIGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKQogewogICAgIGF1dG8m
IG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IHN0b3JhZ2VTZXNzaW9uKG5ldHdvcmtQcm9jZXNzKCks
IHNlc3Npb25JRCk7CiAgICAgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLnNldENvb2tpZXNGcm9tRE9N
KGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIGNvb2tpZVN0
cmluZyk7CkBAIC01NTUsMTMgKzU1NSwxMyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpjb29raWVzRW5hYmxlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbQogICAg
IGNvbXBsZXRpb25IYW5kbGVyKHN0b3JhZ2VTZXNzaW9uKG5ldHdvcmtQcm9jZXNzKCksIHNlc3Np
b25JRCkuY29va2llc0VuYWJsZWQoKSk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVT
aXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRl
U2VjdXJlQ29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcsIGJvb2wpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29v
a2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25z
dCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25z
dCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQ
YWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJl
Q29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcsIGJvb2wpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIGF1dG8gcmVzdWx0ID0gc3RvcmFnZVNlc3Npb24obmV0d29ya1By
b2Nlc3MoKSwgc2Vzc2lvbklEKS5jb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShmaXJzdFBh
cnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlELCBpbmNsdWRlU2VjdXJlQ29v
a2llcyk7CiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQuZmlyc3QpLCByZXN1
bHQuc2Vjb25kKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Z2V0
UmF3Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0
eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRp
b25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYmKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmdldFJh
d0Nvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFn
ZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IHJlc3Vs
dDsKICAgICBzdG9yYWdlU2Vzc2lvbihuZXR3b3JrUHJvY2VzcygpLCBzZXNzaW9uSUQpLmdldFJh
d0Nvb2tpZXMoZmlyc3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwg
cmVzdWx0KTsKQEAgLTY3MCw3ICs2NzAsNyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjplbnN1cmVMZWdhY3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkKIH0KIAogI2lmIEVO
QUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpyZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQpCit2b2lkIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlk
ZW50aWZpZXIgcGFnZUlEKQogewogICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IG5ldHdv
cmtQcm9jZXNzKCkuc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSkKICAgICAgICAgc3RvcmFnZVNl
c3Npb24tPnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShmcmFtZUlELCBwYWdlSUQpOwpAQCAt
NzI4LDcgKzcyOCw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlc291
cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVkKFZlY3RvcjxXZWJDb3JlCiAgICAgICAgIHJlc291cmNl
TG9hZFN0YXRpc3RpY3MtPnJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVkKFdURk1vdmUoc3Rh
dGlzdGljcykpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpoYXNT
dG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVE
b21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6Omhhc1N0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSBuZXR3
b3JrUHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKICAgICAgICAgaWYgKGF1
dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBuZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2Fk
U3RhdGlzdGljcygpKSB7CkBAIC03NDAsNyArNzQwLDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6aGFzU3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGMKICAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlk
ZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VB
Y2Nlc3NXYXNHcmFudGVkIHdhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93biBwcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIHdhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3Jh
Z2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gbmV0d29ya1Byb2Nlc3MoKS5u
ZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CiAgICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDkyODY3MzNjNGI3Yzc1MTJjMjljNTMyNDM4
MjFkMGVlMWVjNzEzMDkuLjI1NTA4NGY5MjMxZmVhODMwODAwOThkMzU5MzA1N2ExYmQ5MDdjNTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJO
ZXR3b3JrUlRDUHJvdmlkZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkTWFwLmgi
CiAjaW5jbHVkZSAiV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya0xvYWRJbmZv
cm1hdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CkBAIC0xNzQsMTEgKzE3NSwxMSBAQCBwcml2
YXRlOgogICAgIHZvaWQgc3RhcnREb3dubG9hZChQQUw6OlNlc3Npb25JRCwgRG93bmxvYWRJRCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRO
YW1lID0geyB9KTsKICAgICB2b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChQ
QUw6OlNlc3Npb25JRCwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIERvd25s
b2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmKTsKIAotICAgIHZvaWQgY29va2llc0ZvckRPTShQQUw6OlNlc3Npb25J
RCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBj
b25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6
UGFnZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcywgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChTdHJpbmcgY29va2llU3RyaW5nLCBib29sIHNlY3VyZUNvb2tpZXNBY2Nl
c3NlZCk+JiYpOwotICAgIHZvaWQgc2V0Q29va2llc0Zyb21ET00oUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3Qg
VVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBjb29raWVzRm9yRE9NKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRl
SW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIE9w
dGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNv
b2tpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBz
ZWN1cmVDb29raWVzQWNjZXNzZWQpPiYmKTsKKyAgICB2b2lkIHNldENvb2tpZXNGcm9tRE9NKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVT
aXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4s
IE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJik7CiAgICAg
dm9pZCBjb29raWVzRW5hYmxlZChQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJik7Ci0gICAgdm9pZCBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6
OlNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0
ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcywg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcgY29va2llU3RyaW5nLCBib29sIHNlY3VyZUNv
b2tpZXNBY2Nlc3NlZCk+JiYpOwotICAgIHZvaWQgZ2V0UmF3Q29va2llcyhQQUw6OlNlc3Npb25J
RCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBj
b25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6
UGFnZUlkZW50aWZpZXI+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpD
b29raWU+JiYpPiYmKTsKKyAgICB2b2lkIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVT
aXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4s
IE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgV2ViQ29yZTo6SW5jbHVkZVNlY3Vy
ZUNvb2tpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9v
bCBzZWN1cmVDb29raWVzQWNjZXNzZWQpPiYmKTsKKyAgICB2b2lkIGdldFJhd0Nvb2tpZXMoUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNp
dGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwg
T3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYpPiYmKTsKICAgICB2b2lkIGRlbGV0ZUNvb2tpZShQ
QUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1lKTsKIAog
ICAgIHZvaWQgcmVnaXN0ZXJGaWxlQmxvYlVSTChQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwg
Y29uc3QgU3RyaW5nJiBwYXRoLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiwgY29uc3QgU3Ry
aW5nJiBjb250ZW50VHlwZSk7CkBAIC0yMTgsNyArMjE5LDcgQEAgcHJpdmF0ZToKICAgICBDYWNo
ZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uJiBjYWNoZVN0b3JhZ2VDb25uZWN0aW9uKCk7CiAKICNp
ZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIHZvaWQgcmVtb3ZlU3RvcmFn
ZUFjY2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lvbklELCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcik7CisgICAgdm9pZCByZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUo
UEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIpOwogICAgIHZvaWQgY2xlYXJQYWdlU3BlY2lmaWNEYXRhRm9yUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcyhQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogCiAg
ICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJik7CkBAIC0yMjYsOCArMjI3LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGxvZ1N1
YnJlc291cmNlTG9hZGluZyhQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHRhcmdldERvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBX
YWxsVGltZSBsYXN0U2Vlbik7CiAgICAgdm9pZCBsb2dTdWJyZXNvdXJjZVJlZGlyZWN0KFBBTDo6
U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc291cmNlRG9tYWluLCBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgdGFyZ2V0RG9tYWluKTsKICAgICB2b2lkIHJlc291cmNlTG9hZFN0
YXRpc3RpY3NVcGRhdGVkKFZlY3RvcjxXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPiYm
KTsKLSAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRv
cEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCByZXF1ZXN0U3RvcmFn
ZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1l
RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90
IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNz
UHJvbXB0V2FzU2hvd24pPiYmKTsKKyAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNz
aW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KTsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNz
V2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJik7CiAg
ICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyKFBBTDo6U2Vzc2lvbklELCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2Vzcywg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgb3BlbmVyUGFnZUlELCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiYmIG9wZW5lckRvbWFpbik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggNGIxMTg5YjM5Y2NlYmM4ZmIyMjZmOGZlZTAzNDI4
YzZjODVhZDdhMy4uOTlhYmQwNzhmYjE0YzlmMzBiZTljODc2MDNhMTNkOTFiZDc5YTljZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0zNCwxMSArMzQs
MTEgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVj
ZWl2ZXIgewogICAgIFN0YXJ0RG93bmxvYWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJL
aXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QsIFN0cmluZyBzdWdnZXN0ZWROYW1lKQogICAgIENvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9E
b3dubG9hZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxv
YWRJZGVudGlmaWVyLCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2Up
CiAKLSAgICBDb29raWVzRm9yRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZpcnN0
UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJs
LCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRCwgZW51bTpib29sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGlu
Y2x1ZGVTZWN1cmVDb29raWVzKSAtPiAoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBkaWRBY2Nl
c3NTZWN1cmVDb29raWVzKSBTeW5jaHJvbm91cwotICAgIFNldENvb2tpZXNGcm9tRE9NKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1l
U2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgU3RyaW5nIGNvb2tp
ZVN0cmluZykKKyAgICBDb29raWVzRm9yRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJM
IGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBV
UkwgdXJsLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlv
bmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpJ
bmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgLT4gKFN0cmluZyBjb29r
aWVTdHJpbmcsIGJvb2wgZGlkQWNjZXNzU2VjdXJlQ29va2llcykgU3luY2hyb25vdXMKKyAgICBT
ZXRDb29raWVzRnJvbURPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5
LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0
aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBTdHJpbmcgY29va2llU3RyaW5nKQogICAgIENvb2tp
ZXNFbmFibGVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKGJvb2wgZW5hYmxlZCkgU3lu
Y2hyb25vdXMKLSAgICBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZv
IHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlv
bmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpJ
bmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgLT4gKFN0cmluZyBjb29r
aWVTdHJpbmcsIGJvb2wgZGlkQWNjZXNzU2VjdXJlQ29va2llcykgU3luY2hyb25vdXMKLSAgICBH
ZXRSYXdDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZpcnN0UGFydHksIHN0
cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBh
Z2VJRCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IGNvb2tpZXMpIFN5bmNocm9ub3VzCisg
ICAgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUlu
Zm8sIFVSTCB1cmwsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwg
T3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgZW51bTpib29sIFdlYkNv
cmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSAtPiAoU3RyaW5n
IGNvb2tpZVN0cmluZywgYm9vbCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzKSBTeW5jaHJvbm91cwor
ICAgIEdldFJhd0Nvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgZmlyc3RQYXJ0
eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9w
dGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IGNv
b2tpZXMpIFN5bmNocm9ub3VzCiAgICAgRGVsZXRlQ29va2llKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgVVJMIHVybCwgU3RyaW5nIGNvb2tpZU5hbWUpCiAKICAgICBSZWdpc3RlckZpbGVCbG9i
VVJMKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIHVybCwgU3RyaW5nIHBhdGgsIFdlYktp
dDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGV4dGVuc2lvbkhhbmRsZSwgU3RyaW5nIGNvbnRl
bnRUeXBlKQpAQCAtNTgsMTUgKzU4LDE1IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBFbnN1cmVMZWdhY3lQcml2YXRlQnJv
d3NpbmdTZXNzaW9uKCkKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0g
ICAgUmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
dWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKTsKKyAgICBS
ZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFn
ZUlEKTsKICAgICBDbGVhclBhZ2VTcGVjaWZpY0RhdGFGb3JSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
KTsKICAgICBMb2dVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW4pCiAgICAgTG9nV2ViU29ja2V0TG9hZGluZyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRhcmdl
dERvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4sIFdhbGxU
aW1lIGxhc3RTZWVuKQogICAgIExvZ1N1YnJlc291cmNlTG9hZGluZyhQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRhcmdldERvbWFpbiwgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4sIFdhbGxUaW1lIGxhc3RTZWVuKQog
ICAgIExvZ1N1YnJlc291cmNlUmVkaXJlY3QoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzb3VyY2VEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluIHRhcmdldERvbWFpbikKICAgICBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVXBkYXRlZChW
ZWN0b3I8V2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4gc3RhdGlzdGljcykKLSAgICBI
YXNTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4gc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRv
cEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBw
YWdlSUQpIC0+IChib29sIGhhc1N0b3JhZ2VBY2Nlc3MpIEFzeW5jCi0gICAgUmVxdWVzdFN0b3Jh
Z2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVE
b21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkg
LT4gKGVudW06Ym9vbCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCB3YXNHcmFudGVk
LCBlbnVtOmJvb2wgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdh
c1Nob3duKSBBc3luYworICAgIEhhc1N0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpIC0+IChib29sIGhhc1N0
b3JhZ2VBY2Nlc3MpIEFzeW5jCisgICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpIC0+IChl
bnVtOmJvb2wgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgd2FzR3JhbnRlZCwgZW51
bTpib29sIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93
bikgQXN5bmMKICAgICBSZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluSW5OZWVkT2ZT
dG9yYWdlQWNjZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBvcGVuZXJQYWdlSUQsIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIG9wZW5lckRvbWFpbikKICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAKaW5kZXgg
NDA5NzE0ZDY2NzI2YTg0NzRhZmYyOWExNjA4MTdmMjQ3OTY3YjAxNi4uMTE3NmY1MzdhODU4MDli
NGJhZTFjZTc2OGI1NjUzNWIxNWQ1ZWJiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcApAQCAtNDgsNyArNDgsNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgaXNTYW1lT3JpZ2luKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTZWN1cml0
eU9yaWdpbiogb3JpZ2luKQogICAgIHJldHVybiB1cmwucHJvdG9jb2xJc0RhdGEoKSB8fCB1cmwu
cHJvdG9jb2xJc0Jsb2IoKSB8fCAhb3JpZ2luIHx8IG9yaWdpbi0+Y2FuUmVxdWVzdCh1cmwpOwog
fQogCi1OZXR3b3JrTG9hZENoZWNrZXI6Ok5ldHdvcmtMb2FkQ2hlY2tlcihOZXR3b3JrUHJvY2Vz
cyYgbmV0d29ya1Byb2Nlc3MsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMsIFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBIVFRQ
SGVhZGVyTWFwJiYgb3JpZ2luYWxSZXF1ZXN0SGVhZGVycywgVVJMJiYgdXJsLCBSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+JiYgc291cmNlT3JpZ2luLCBQcmVmbGlnaHRQb2xpY3kgcHJlZmxpZ2h0UG9s
aWN5LCBTdHJpbmcmJiByZWZlcnJlciwgYm9vbCBpc0hUVFBTVXBncmFkZUVuYWJsZWQsIGJvb2wg
c2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzLCBMb2FkVHlwZSByZXF1ZXN0TG9h
ZFR5cGUpCitOZXR3b3JrTG9hZENoZWNrZXI6Ok5ldHdvcmtMb2FkQ2hlY2tlcihOZXR3b3JrUHJv
Y2VzcyYgbmV0d29ya1Byb2Nlc3MsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMsIFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgSFRUUEhlYWRlck1hcCYmIG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMsIFVSTCYmIHVybCwg
UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiYmIHNvdXJjZU9yaWdpbiwgUHJlZmxpZ2h0UG9saWN5IHBy
ZWZsaWdodFBvbGljeSwgU3RyaW5nJiYgcmVmZXJyZXIsIGJvb2wgaXNIVFRQU1VwZ3JhZGVFbmFi
bGVkLCBib29sIHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcywgTG9hZFR5cGUg
cmVxdWVzdExvYWRUeXBlKQogICAgIDogbV9vcHRpb25zKFdURk1vdmUob3B0aW9ucykpCiAgICAg
LCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgLCBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQ
cm9jZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZENoZWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRD
aGVja2VyLmgKaW5kZXggMDc3MDY0NjcwZmNiYjlhYzk0MmY4ZDg2MTgxMDQ5NTlmMDBlMDU3OC4u
ZWM5NGUxNDY5NTMzZDdkOTg3ODE2YmIyNmIxN2RmYjIzYjk0M2ZjMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oCkBAIC0yOSw2ICsy
OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9GZXRjaE9wdGlvbnMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1l
SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya0xvYWRJbmZvcm1hdGlvbi5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1Jlc291cmNlRXJyb3IuaD4KQEAgLTU1LDcgKzU2LDcgQEAgY2xhc3MgTmV0d29ya0xvYWRDaGVj
a2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPE5ldHdvcmtMb2FkQ2hlY2tlcj4gewogcHVibGlj
OgogICAgIGVudW0gY2xhc3MgTG9hZFR5cGUgOiBib29sIHsgTWFpbkZyYW1lLCBPdGhlciB9Owog
Ci0gICAgTmV0d29ya0xvYWRDaGVja2VyKE5ldHdvcmtQcm9jZXNzJiwgV2ViQ29yZTo6RmV0Y2hP
cHRpb25zJiYsIFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0
X3QgZnJhbWVJRCwgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYmLCBVUkwmJiwgUmVmUHRyPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luPiYmLCBXZWJDb3JlOjpQcmVmbGlnaHRQb2xpY3ksIFN0cmluZyYm
IHJlZmVycmVyLCBib29sIGlzSFRUUFNVcGdyYWRlRW5hYmxlZCA9IGZhbHNlLCBib29sIHNob3Vs
ZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyA9IGZhbHNlLCBMb2FkVHlwZSByZXF1ZXN0
TG9hZFR5cGUgPSBMb2FkVHlwZTo6T3RoZXIpOworICAgIE5ldHdvcmtMb2FkQ2hlY2tlcihOZXR3
b3JrUHJvY2VzcyYsIFdlYkNvcmU6OkZldGNoT3B0aW9ucyYmLCBQQUw6OlNlc3Npb25JRCwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6
SFRUUEhlYWRlck1hcCYmLCBVUkwmJiwgUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYm
LCBXZWJDb3JlOjpQcmVmbGlnaHRQb2xpY3ksIFN0cmluZyYmIHJlZmVycmVyLCBib29sIGlzSFRU
UFNVcGdyYWRlRW5hYmxlZCA9IGZhbHNlLCBib29sIHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtM
b2FkTWV0cmljcyA9IGZhbHNlLCBMb2FkVHlwZSByZXF1ZXN0TG9hZFR5cGUgPSBMb2FkVHlwZTo6
T3RoZXIpOwogICAgIH5OZXR3b3JrTG9hZENoZWNrZXIoKTsKIAogICAgIHN0cnVjdCBSZWRpcmVj
dGlvblRyaXBsZXQgewpAQCAtMTI3LDcgKzEyOCw3IEBAIHByaXZhdGU6CiAgICAgUEFMOjpTZXNz
aW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgUmVmPE5ldHdvcmtQcm9jZXNzPiBtX25ldHdvcmtQcm9j
ZXNzOwogICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIG1fcGFnZUlEOwotICAgIHVpbnQ2NF90
IG1fZnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbV9mcmFtZUlEOwogICAg
IFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAgbV9vcmlnaW5hbFJlcXVlc3RIZWFkZXJzOyAvLyBOZWVk
ZWQgZm9yIENPUlMgY2hlY2tzLgogICAgIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAgbV9maXJzdFJl
cXVlc3RIZWFkZXJzOyAvLyBOZWVkZWQgZm9yIENPUlMgY2hlY2tzLgogICAgIFVSTCBtX3VybDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJh
bWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1l
dGVycy5oCmluZGV4IGM0M2U1ZGNkNzUwMTFhNTU5MWU2ZTY4MjcyNGMxYTY5NTY1ZWNmMTcuLmI4
ZjdkMTM5ZTMxZWM1YzgyNzEzNWUzNzMwYjdiMGQ5ZWYwYTQ2MWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaApAQCAtMjcs
NiArMjcsNyBAQAogCiAjaW5jbHVkZSAiTmV0d29ya0FjdGl2aXR5VHJhY2tlci5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvQmxvYkRhdGFGaWxlUmVmZXJlbmNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9G
cmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1Jlc291cmNlUmVxdWVzdC5oPgpAQCAtNDYsNyArNDcsNyBAQCBwdWJsaWM6CiAKICAgICBQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2Vi
UGFnZUlEOwotICAgIHVpbnQ2NF90IHdlYkZyYW1lSUQgeyAwIH07CisgICAgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIHdlYkZyYW1lSUQ7CiAgICAgV1RGOjpQcm9jZXNzSUQgcGFyZW50UElEIHsg
MCB9OwogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0OwogICAgIFdlYkNvcmU6
OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBjb250ZW50U25pZmZpbmdQb2xpY3kgeyBXZWJDb3JlOjpD
b250ZW50U25pZmZpbmdQb2xpY3k6OlNuaWZmQ29udGVudCB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IGE5MmI3MjQxZWIyOThlYTY2YzVh
OGEyODQ3NGY0MDNlNTdlNDVjMzkuLmMyMzYzZGQxMTM1ZjdlMmJmYTAzMjllZGYyNjJhMjViZWUy
MmIzYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmgKQEAgLTEzNyw3ICsxMzcsNiBAQCBwdWJsaWM6CiAgICAgdXNpbmcgTmF2aWdhdGVkVG9Eb21h
aW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKICAgICB1c2luZyBEb21haW5Jbk5lZWRP
ZlN0b3JhZ2VBY2Nlc3MgPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKICAgICB1c2luZyBP
cGVuZXJEb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKLSAgICB1c2luZyBGcmFt
ZUlEID0gdWludDY0X3Q7CiAKICAgICBOZXR3b3JrUHJvY2VzcyhBdXhpbGlhcnlQcm9jZXNzSW5p
dGlhbGl6YXRpb25QYXJhbWV0ZXJzJiYpOwogICAgIH5OZXR3b3JrUHJvY2VzcygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIu
Y3BwCmluZGV4IDQ3ODJlZjE1ZjNkZWVlNWFmNGVhZWYwNWNkZjYwMzZhZTdlNmQyZmIuLmVjNmE4
MGM4NDg5ZGVmMzJkNzg5Yjc0YmVjMTI3MzU3YmVjNTU4MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTE4
MCwxOCArMTgwLDE4IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydCgpCiAKICAg
ICAgICAgICAgIFdURjo6c3dpdGNoT24ocmVzdWx0LAogICAgICAgICAgICAgICAgIFt0aGlzXSAo
UmVzb3VyY2VFcnJvciYgZXJyb3IpIHsKLSAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgic3RhcnQ6IGVycm9yIGNoZWNraW5nIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJl
c291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCwgcGFyZW50UElEID0gJWQsIGVycm9yLmRv
bWFpbiA9ICV7cHVibGljfXMsIGVycm9yLmNvZGUgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFn
ZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRl
bnRpZmllciwgdGhpcy0+aXNNYWluUmVzb3VyY2UoKSwgdGhpcy0+aXNTeW5jaHJvbm91cygpLCBt
X3BhcmFtZXRlcnMucGFyZW50UElELCBlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJv
ci5lcnJvckNvZGUoKSk7CisgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoInN0YXJ0OiBlcnJvciBjaGVja2luZyAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9
ICVkLCBpc1N5bmNocm9ub3VzID0gJWQsIHBhcmVudFBJRCA9ICVkLCBlcnJvci5kb21haW4gPSAl
e3B1YmxpY31zLCBlcnJvci5jb2RlID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJ
bnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMu
aWRlbnRpZmllciwgdGhpcy0+aXNNYWluUmVzb3VyY2UoKSwgdGhpcy0+aXNTeW5jaHJvbm91cygp
LCBtX3BhcmFtZXRlcnMucGFyZW50UElELCBlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBl
cnJvci5lcnJvckNvZGUoKSk7CiAgICAgICAgICAgICAgICAgICAgIGlmICghZXJyb3IuaXNDYW5j
ZWxsYXRpb24oKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMtPmRpZEZhaWxMb2FkaW5n
KGVycm9yKTsKICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgIFt0aGlzXSAoTmV0
d29ya0xvYWRDaGVja2VyOjpSZWRpcmVjdGlvblRyaXBsZXQmIHRyaXBsZXQpIHsKICAgICAgICAg
ICAgICAgICAgICAgdGhpcy0+bV9pc1dhaXRpbmdDb250aW51ZVdpbGxTZW5kUmVxdWVzdEZvckNh
Y2hlZFJlZGlyZWN0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgdGhpcy0+d2lsbFNlbmRS
ZWRpcmVjdGVkUmVxdWVzdChXVEZNb3ZlKHRyaXBsZXQucmVxdWVzdCksIFdURk1vdmUodHJpcGxl
dC5yZWRpcmVjdFJlcXVlc3QpLCBXVEZNb3ZlKHRyaXBsZXQucmVkaXJlY3RSZXNwb25zZSkpOwot
ICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydDogc3ludGhl
dGljIHJlZGlyZWN0IHNlbnQgYmVjYXVzZSByZXF1ZXN0IFVSTCB3YXMgbW9kaWZpZWQgKHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQ
Ukl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkLCBwYXJlbnRQ
SUQgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVy
cy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgdGhpcy0+aXNNYWluUmVzb3Vy
Y2UoKSwgdGhpcy0+aXNTeW5jaHJvbm91cygpLCBtX3BhcmFtZXRlcnMucGFyZW50UElEKTsKKyAg
ICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6IHN5bnRoZXRp
YyByZWRpcmVjdCBzZW50IGJlY2F1c2UgcmVxdWVzdCBVUkwgd2FzIG1vZGlmaWVkIChwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJ
dTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCwgcGFyZW50UElE
ID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMu
d2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgdGhpcy0+aXNN
YWluUmVzb3VyY2UoKSwgdGhpcy0+aXNTeW5jaHJvbm91cygpLCBtX3BhcmFtZXRlcnMucGFyZW50
UElEKTsKICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgIFt0aGlzXSAoUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0KSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLT5jYW5V
c2VDYWNoZShyZXF1ZXN0KSkgewotICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgic3RhcnQ6IENoZWNraW5nIGNhY2hlIGZvciByZXNvdXJjZSAocGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2
NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQsIHBhcmVudFBJRCA9
ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndl
YkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCB0aGlzLT5pc01haW5SZXNvdXJjZSgp
LCB0aGlzLT5pc1N5bmNocm9ub3VzKCksIG1fcGFyYW1ldGVycy5wYXJlbnRQSUQpOworICAgICAg
ICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6IENoZWNraW5n
IGNhY2hlIGZvciByZXNvdXJjZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQ
Ukl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBp
c1N5bmNocm9ub3VzID0gJWQsIHBhcmVudFBJRCA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdl
SUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJh
bWV0ZXJzLmlkZW50aWZpZXIsIHRoaXMtPmlzTWFpblJlc291cmNlKCksIHRoaXMtPmlzU3luY2hy
b25vdXMoKSwgbV9wYXJhbWV0ZXJzLnBhcmVudFBJRCk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICB0aGlzLT5yZXRyaWV2ZUNhY2hlRW50cnkocmVxdWVzdCk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTIwNCw3ICsyMDQsNyBAQCB2
b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQoKQogICAgIH0KICAgICAvLyBGSVhNRTog
UmVtb3ZlIHRoYXQgY29kZSBwYXRoIG9uY2UgbV9uZXR3b3JrTG9hZENoZWNrZXIgaXMgdXNlZCBm
b3IgYWxsIG5ldHdvcmsgbG9hZHMuCiAgICAgaWYgKGNhblVzZUNhY2hlKG9yaWdpbmFsUmVxdWVz
dCgpKSkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydDogQ2hlY2tpbmcg
Y2FjaGUgZm9yIHJlc291cmNlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlz
U3luY2hyb25vdXMgPSAlZCwgcGFyZW50UElEID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJ
RC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50
aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSwgbV9wYXJhbWV0ZXJzLnBh
cmVudFBJRCk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0OiBDaGVja2lu
ZyBjYWNoZSBmb3IgcmVzb3VyY2UgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwg
aXNTeW5jaHJvbm91cyA9ICVkLCBwYXJlbnRQSUQgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFn
ZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFy
YW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCksIG1f
cGFyYW1ldGVycy5wYXJlbnRQSUQpOwogICAgICAgICByZXRyaWV2ZUNhY2hlRW50cnkob3JpZ2lu
YWxSZXF1ZXN0KCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjQ0LDcgKzI0NCw3IEBA
IHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpyZXRyaWV2ZUNhY2hlRW50cnkoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogICAgICAgICBsb2dTbG93Q2FjaGVSZXRyaWV2ZUlmTmVl
ZGVkKGluZm8pOwogCiAgICAgICAgIGlmICghZW50cnkpIHsKLSAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogUmVzb3VyY2Ugbm90IGluIGNhY2hl
IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlE
ID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCki
LCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFt
ZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJv
bm91cygpKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2Fj
aGVFbnRyeTogUmVzb3VyY2Ugbm90IGluIGNhY2hlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291
cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRv
VUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVy
cy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOwogICAgICAg
ICAgICAgc3RhcnROZXR3b3JrTG9hZChXVEZNb3ZlKHJlcXVlc3QpLCBGaXJzdExvYWQ6Olllcyk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lk
IE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6cmV0cmlldmVDYWNoZUVudHJ5SW50ZXJuYWwoc3RkOjp1
bmlxdWVfcHRyPE5ldHdvcmtDYQogewogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCiAgICAgaWYgKGVudHJ5LT5oYXNSZWFjaGVkUHJldmFsZW50UmVzb3VyY2VBZ2VDYXAoKSkg
ewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJl
c291cmNlIGhhcyByZWFjaGVkIHByZXZhbGVudCByZXNvdXJjZSBhZ2UgY2FwIChwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0
ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRl
cnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFt
ZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKKyAg
ICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNoZUVudHJ5OiBSZXNvdXJj
ZSBoYXMgcmVhY2hlZCBwcmV2YWxlbnQgcmVzb3VyY2UgYWdlIGNhcCAocGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBp
c01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndl
YlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBt
X3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygp
KTsKICAgICAgICAgbV9jYWNoZUVudHJ5Rm9yTWF4QWdlQ2FwVmFsaWRhdGlvbiA9IFdURk1vdmUo
ZW50cnkpOwogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmV2YWxpZGF0aW9uUmVxdWVzdCA9IG9y
aWdpbmFsUmVxdWVzdCgpOwogICAgICAgICBzdGFydE5ldHdvcmtMb2FkKFdURk1vdmUocmV2YWxp
ZGF0aW9uUmVxdWVzdCksIEZpcnN0TG9hZDo6WWVzKTsKQEAgLTI2NCwyOCArMjY0LDI4IEBAIHZv
aWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpyZXRyaWV2ZUNhY2hlRW50cnlJbnRlcm5hbChzdGQ6
OnVuaXF1ZV9wdHI8TmV0d29ya0NhCiAgICAgfQogI2VuZGlmCiAgICAgaWYgKGVudHJ5LT5yZWRp
cmVjdFJlcXVlc3QoKSkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2
ZUNhY2hlRW50cnk6IEhhbmRsaW5nIHJlZGlyZWN0IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291
cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRv
VUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmll
ciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKKyAgICAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNoZUVudHJ5OiBIYW5kbGluZyByZWRpcmVjdCAocGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUi
IFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9w
YXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50
b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNT
eW5jaHJvbm91cygpKTsKICAgICAgICAgZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3RGb3JDYWNoZUVu
dHJ5KFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoZW50cnkpKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICBpZiAobV9wYXJhbWV0ZXJzLm5lZWRzQ2VydGlmaWNhdGVJbmZvICYmICFlbnRy
eS0+cmVzcG9uc2UoKS5jZXJ0aWZpY2F0ZUluZm8oKSkgewotICAgICAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJlc291cmNlIGRvZXMgbm90IGhhdmUgcmVx
dWlyZWQgY2VydGlmaWNhdGUgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNT
eW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9w
YXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNv
dXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJlc291cmNlIGRvZXMgbm90IGhhdmUgcmVxdWlyZWQgY2Vy
dGlmaWNhdGUgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJl
c291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91
cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJz
LndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJl
c291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CiAgICAgICAgIHN0YXJ0TmV0d29ya0xvYWQoV1RG
TW92ZShyZXF1ZXN0KSwgRmlyc3RMb2FkOjpZZXMpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIGlmIChlbnRyeS0+bmVlZHNWYWxpZGF0aW9uKCkgfHwgcmVxdWVzdC5jYWNoZVBvbGljeSgp
ID09IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdENhY2hlUG9saWN5OjpSZWZyZXNoQW55Q2FjaGVE
YXRhKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRy
eTogVmFsaWRhdGluZyBjYWNoZSBlbnRyeSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9
ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2
NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlz
TWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogVmFsaWRhdGluZyBjYWNoZSBlbnRyeSAocGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUi
IFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9w
YXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50
b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNT
eW5jaHJvbm91cygpKTsKICAgICAgICAgdmFsaWRhdGVDYWNoZUVudHJ5KFdURk1vdmUoZW50cnkp
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJy
ZXRyaWV2ZUNhY2hlRW50cnk6IFJldHJpZXZlZCByZXNvdXJjZSBmcm9tIGNhY2hlIChwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJ
dTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFt
ZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3Bh
cmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsK
KyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJldHJpZXZl
ZCByZXNvdXJjZSBmcm9tIGNhY2hlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQs
IGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCks
IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlm
aWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOwogICAgIGRpZFJldHJpZXZl
Q2FjaGVFbnRyeShXVEZNb3ZlKGVudHJ5KSk7CiB9CiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9h
ZGVyOjpzdGFydE5ldHdvcmtMb2FkKFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEZpcnN0TG9h
ZCBsb2FkKQogewogICAgIGlmIChsb2FkID09IEZpcnN0TG9hZDo6WWVzKSB7Ci0gICAgICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0TmV0d29ya0xvYWQ6IChwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlz
TWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2Vi
UGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMu
aWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKKyAgICAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnROZXR3b3JrTG9hZDogKHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwg
aXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53
ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwg
bV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMo
KSk7CiAKICAgICAgICAgY29uc3VtZVNhbmRib3hFeHRlbnNpb25zKCk7CiAKQEAgLTMwOCw3ICsz
MDgsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnROZXR3b3JrTG9hZChSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBGaXJzdExvYQogICAgIH0KICAgICBpZiAoIW5ldHdvcmtT
ZXNzaW9uKSB7CiAgICAgICAgIFdURkxvZ0Fsd2F5cygiQXR0ZW1wdGVkIHRvIGNyZWF0ZSBhIE5l
dHdvcmtMb2FkIHdpdGggYSBzZXNzaW9uIChpZD0lIiBQUkl1NjQgIikgdGhhdCBkb2VzIG5vdCBl
eGlzdC4iLCBwYXJhbWV0ZXJzLnNlc3Npb25JRC5zZXNzaW9uSUQoKSk7Ci0gICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoInN0YXJ0TmV0d29ya0xvYWQ6IEF0dGVtcHRlZCB0byBj
cmVhdGUgYSBOZXR3b3JrTG9hZCB3aXRoIGEgc2Vzc2lvbiB0aGF0IGRvZXMgbm90IGV4aXN0IChw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JSIgUFJJdTY0ICIsIHNlc3Npb25JRD0lIiBQUkl1NjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFn
ZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRl
bnRpZmllciwgcGFyYW1ldGVycy5zZXNzaW9uSUQuc2Vzc2lvbklEKCkpOworICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKCJzdGFydE5ldHdvcmtMb2FkOiBBdHRlbXB0ZWQgdG8g
Y3JlYXRlIGEgTmV0d29ya0xvYWQgd2l0aCBhIHNlc3Npb24gdGhhdCBkb2VzIG5vdCBleGlzdCAo
cGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9
ICUiIFBSSXU2NCAiLCBzZXNzaW9uSUQ9JSIgUFJJdTY0ICIpIiwgbV9wYXJhbWV0ZXJzLndlYlBh
Z2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3Bh
cmFtZXRlcnMuaWRlbnRpZmllciwgcGFyYW1ldGVycy5zZXNzaW9uSUQuc2Vzc2lvbklEKCkpOwog
ICAgICAgICBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtQcm9jZXNzKCkubG9nRGlhZ25vc3RpY01lc3Nh
Z2UobV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlz
OjppbnRlcm5hbEVycm9yS2V5KCksIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6aW52
YWxpZFNlc3Npb25JREtleSgpLCBXZWJDb3JlOjpTaG91bGRTYW1wbGU6Ok5vKTsKICAgICAgICAg
ZGlkRmFpbExvYWRpbmcoaW50ZXJuYWxFcnJvcihyZXF1ZXN0LnVybCgpKSk7CiAgICAgICAgIHJl
dHVybjsKQEAgLTMyMCw3ICszMjAsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3Rh
cnROZXR3b3JrTG9hZChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBGaXJzdExvYQogICAgIHBh
cmFtZXRlcnMucmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCk7CiAgICAgbV9uZXR3b3JrTG9hZCA9
IHN0ZDo6bWFrZV91bmlxdWU8TmV0d29ya0xvYWQ+KCp0aGlzLCAmbmV0d29ya1Nlc3Npb24tPmJs
b2JSZWdpc3RyeSgpLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCAqbmV0d29ya1Nlc3Npb24pOwogCi0g
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnROZXR3b3JrTG9hZDogKHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQg
IiwgZGVzY3JpcHRpb24gPSAle3B1YmxpY31zKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9V
SW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVy
LCBtX25ldHdvcmtMb2FkLT5kZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpOworICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0TmV0d29ya0xvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGRlc2Ny
aXB0aW9uID0gJXtwdWJsaWN9cykiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCks
IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlm
aWVyLCBtX25ldHdvcmtMb2FkLT5kZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpOwogfQogCiB2
b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y2xlYW51cChMb2FkUmVzdWx0IHJlc3VsdCkKQEAg
LTM0NCw3ICszNDQsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y2xlYW51cChMb2Fk
UmVzdWx0IHJlc3VsdCkKIAogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnZlcnRUb0Rv
d25sb2FkKERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKLSAgICBSRUxFQVNFX0xP
RyhMb2FkaW5nLCAiQ29udmVydGluZyBOZXR3b3JrUmVzb3VyY2VMb2FkZXIgJXAgdG8gZG93bmxv
YWQgJSIgUFJJdTY0ICIgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCB0aGlzLCBkb3dubG9hZElELmRvd25sb2Fk
SUQoKSwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2Vi
RnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIpOworICAgIFJFTEVBU0VfTE9HKExvYWRp
bmcsICJDb252ZXJ0aW5nIE5ldHdvcmtSZXNvdXJjZUxvYWRlciAlcCB0byBkb3dubG9hZCAlIiBQ
Ukl1NjQgIiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHRoaXMsIGRvd25sb2FkSUQuZG93bmxvYWRJRCgpLCBt
X3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlE
LnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyKTsKICAgICAKICAgICAvLyBUaGlz
IGNhbiBoYXBwZW4gaWYgdGhlIHJlc291cmNlIGNhbWUgZnJvbSB0aGUgZGlzayBjYWNoZS4KICAg
ICBpZiAoIW1fbmV0d29ya0xvYWQpIHsKQEAgLTM2Miw3ICszNjIsNyBAQCB2b2lkIE5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6YWJvcnQoKQogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAK
ICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJhYm9ydDogQ2FuY2VsaW5nIHJlc291cmNlIGxv
YWQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNl
SUQgPSAlIiBQUkl1NjQgIikiLAotICAgICAgICBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUlu
dDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7
CisgICAgICAgIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJz
LndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIpOwogCiAgICAg
aWYgKG1fcGFyYW1ldGVycy5vcHRpb25zLmtlZXBBbGl2ZSAmJiBtX3Jlc3BvbnNlLmlzTnVsbCgp
ICYmICFtX2lzS2VwdEFsaXZlKSB7CiAgICAgICAgIG1faXNLZXB0QWxpdmUgPSB0cnVlOwpAQCAt
NDQ3LDcgKzQ0Nyw3IEBAIGJvb2wgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzaG91bGRJbnRlcnJ1
cHRMb2FkRm9yQ1NQRnJhbWVBbmNlc3RvcnNPclhGcmFtZU9wdGlvCiAKIHZvaWQgTmV0d29ya1Jl
c291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZSYmIHJlY2Vp
dmVkUmVzcG9uc2UsIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6IChw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JSIgUFJJdTY0ICIsIGh0dHBTdGF0dXNDb2RlID0gJWQsIGxlbmd0aCA9ICUiIFBSSWQ2NCAiKSIs
IG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1l
SUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCByZWNlaXZlZFJlc3BvbnNlLmh0dHBTdGF0dXND
b2RlKCksIHJlY2VpdmVkUmVzcG9uc2UuZXhwZWN0ZWRDb250ZW50TGVuZ3RoKCkpOworICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZTogKHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwg
aHR0cFN0YXR1c0NvZGUgPSAlZCwgbGVuZ3RoID0gJSIgUFJJZDY0ICIpIiwgbV9wYXJhbWV0ZXJz
LndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgp
LCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgcmVjZWl2ZWRSZXNwb25zZS5odHRwU3RhdHVzQ29k
ZSgpLCByZWNlaXZlZFJlc3BvbnNlLmV4cGVjdGVkQ29udGVudExlbmd0aCgpKTsKIAogICAgIG1f
cmVzcG9uc2UgPSBXVEZNb3ZlKHJlY2VpdmVkUmVzcG9uc2UpOwogCkBAIC01MjcsNyArNTI3LDcg
QEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJj
ZVJlc3BvbnNlJiYgcmVjZWl2ZWRSZXNwb24KIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpk
aWRSZWNlaXZlQnVmZmVyKFJlZjxTaGFyZWRCdWZmZXI+JiYgYnVmZmVyLCBpbnQgcmVwb3J0ZWRF
bmNvZGVkRGF0YUxlbmd0aCkKIHsKICAgICBpZiAoIW1fbnVtQnl0ZXNSZWNlaXZlZCkKLSAgICAg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZUJ1ZmZlcjogU3RhcnRlZCByZWNl
aXZpbmcgZGF0YSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwg
cmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50
NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyKTsK
KyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZUJ1ZmZlcjogU3RhcnRl
ZCByZWNlaXZpbmcgZGF0YSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQu
dG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0
ZXJzLmlkZW50aWZpZXIpOwogICAgIG1fbnVtQnl0ZXNSZWNlaXZlZCArPSBidWZmZXItPnNpemUo
KTsKIAogICAgIEFTU0VSVCghbV9jYWNoZUVudHJ5Rm9yVmFsaWRhdGlvbik7CkBAIC01NTYsNyAr
NTU2LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVCdWZmZXIoUmVm
PFNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIsIGludCByZXAKIAogdm9pZCBOZXR3b3JrUmVzb3VyY2VM
b2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3Jr
TG9hZE1ldHJpY3MpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkRmluaXNoTG9h
ZGluZzogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIiwgbGVuZ3RoID0gJXpkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdl
SUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVu
dGlmaWVyLCBtX251bUJ5dGVzUmVjZWl2ZWQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
ImRpZEZpbmlzaExvYWRpbmc6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGxlbmd0aCA9ICV6ZCkiLCBtX3BhcmFt
ZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUlu
dDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBtX251bUJ5dGVzUmVjZWl2ZWQpOwogCiAg
ICAgaWYgKHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcygpKQogICAgICAgICBt
X2Nvbm5lY3Rpb24tPmFkZE5ldHdvcmtMb2FkSW5mb3JtYXRpb25NZXRyaWNzKGlkZW50aWZpZXIo
KSwgbmV0d29ya0xvYWRNZXRyaWNzKTsKQEAgLTU5MSw3ICs1OTEsNyBAQCB2b2lkIE5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3Mm
IG5ldHdvcmtMbwogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbExvYWRpbmco
Y29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RCgiZGlkRmFpbExvYWRpbmc6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzVGltZW91dCA9ICVkLCBpc0NhbmNl
bGxhdGlvbiA9ICVkLCBpc0FjY2Vzc0NvbnRyb2wgPSAlZCwgZXJyQ29kZSA9ICVkKSIsIG1fcGFy
YW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1f
cGFyYW1ldGVycy5pZGVudGlmaWVyLCBlcnJvci5pc1RpbWVvdXQoKSwgZXJyb3IuaXNDYW5jZWxs
YXRpb24oKSwgZXJyb3IuaXNBY2Nlc3NDb250cm9sKCksIGVycm9yLmVycm9yQ29kZSgpKTsKKyAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRGYWlsTG9hZGluZzogKHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwg
aXNUaW1lb3V0ID0gJWQsIGlzQ2FuY2VsbGF0aW9uID0gJWQsIGlzQWNjZXNzQ29udHJvbCA9ICVk
LCBlcnJDb2RlID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Bh
cmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwg
ZXJyb3IuaXNUaW1lb3V0KCksIGVycm9yLmlzQ2FuY2VsbGF0aW9uKCksIGVycm9yLmlzQWNjZXNz
Q29udHJvbCgpLCBlcnJvci5lcnJvckNvZGUoKSk7CiAKICAgICBpZiAoc2hvdWxkQ2FwdHVyZUV4
dHJhTmV0d29ya0xvYWRNZXRyaWNzKCkpCiAgICAgICAgIG1fY29ubmVjdGlvbi0+cmVtb3ZlTmV0
d29ya0xvYWRJbmZvcm1hdGlvbihpZGVudGlmaWVyKCkpOwpAQCAtNzU2LDcgKzc1Niw3IEBAIHZv
aWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjb250aW51ZVdpbGxTZW5kUmVxdWVzdChSZXNvdXJj
ZVJlcXVlc3QmJiBuZXdSZXF1ZXN0CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKCJjb250aW51ZVdpbGxTZW5kUmVxdWVzdDogKHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBt
X3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlE
LCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgi
Y29udGludWVXaWxsU2VuZFJlcXVlc3Q6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9
ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV9wYXJhbWV0ZXJzLndl
YlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBt
X3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CiAKICAgICBtX2lzQWxsb3dlZFRvQXNrVXNlckZvckNy
ZWRlbnRpYWxzID0gaXNBbGxvd2VkVG9Bc2tVc2VyRm9yQ3JlZGVudGlhbHM7CiAKQEAgLTEwMTEs
MTIgKzEwMTEsMTcgQEAgc3RhdGljIFN0cmluZyBlc2NhcGVGb3JKU09OKFN0cmluZyBzKQogc3Rh
dGljIFN0cmluZyBlc2NhcGVJREZvckpTT04oY29uc3QgT3B0aW9uYWw8dWludDY0X3Q+JiB2YWx1
ZSkKIHsKICAgICByZXR1cm4gdmFsdWUgPyBTdHJpbmc6Om51bWJlcih2YWx1ZS52YWx1ZSgpKSA6
IFN0cmluZygiTm9uZSJfcyk7Ci19OworfQorCitzdGF0aWMgU3RyaW5nIGVzY2FwZUlERm9ySlNP
Tihjb25zdCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+JiB2YWx1ZSkKK3sKKyAgICByZXR1cm4g
dmFsdWUgPyBTdHJpbmc6Om51bWJlcih2YWx1ZS0+dG9VSW50NjQoKSkgOiBTdHJpbmcoIk5vbmUi
X3MpOworfQogCiBzdGF0aWMgU3RyaW5nIGVzY2FwZUlERm9ySlNPTihjb25zdCBPcHRpb25hbDxQ
YWdlSWRlbnRpZmllcj4mIHZhbHVlKQogewogICAgIHJldHVybiB2YWx1ZSA/IFN0cmluZzo6bnVt
YmVyKHZhbHVlLT50b1VJbnQ2NCgpKSA6IFN0cmluZygiTm9uZSJfcyk7Ci19OworfQogCiB2b2lk
IE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6bG9nQ29va2llSW5mb3JtYXRpb24oKSBjb25zdAogewpA
QCAtMTAyOCw3ICsxMDMzLDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmxvZ0Nvb2tp
ZUluZm9ybWF0aW9uKCkgY29uc3QKICAgICBsb2dDb29raWVJbmZvcm1hdGlvbihtX2Nvbm5lY3Rp
b24sICJOZXR3b3JrUmVzb3VyY2VMb2FkZXIiLCByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQq
Pih0aGlzKSwgKm5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgb3JpZ2luYWxSZXF1ZXN0KCkuZmlyc3RQ
YXJ0eUZvckNvb2tpZXMoKSwgU2FtZVNpdGVJbmZvOjpjcmVhdGUob3JpZ2luYWxSZXF1ZXN0KCkp
LCBvcmlnaW5hbFJlcXVlc3QoKS51cmwoKSwgb3JpZ2luYWxSZXF1ZXN0KCkuaHR0cFJlZmVycmVy
KCksIGZyYW1lSUQoKSwgcGFnZUlEKCksIGlkZW50aWZpZXIoKSk7CiB9CiAKLXN0YXRpYyB2b2lk
IGxvZ0Jsb2NrZWRDb29raWVJbmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyYgY29ubmVjdGlvbiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2Jq
ZWN0LCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIG5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVT
aXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIE9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBPcHRp
b25hbDx1aW50NjRfdD4gaWRlbnRpZmllcikKK3N0YXRpYyB2b2lkIGxvZ0Jsb2NrZWRDb29raWVJ
bmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgY29u
c3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBjb25zdCBXZWJDb3Jl
OjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgY29uc3QgVVJM
JiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJM
JiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4g
ZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgT3B0aW9uYWw8dWludDY0
X3Q+IGlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2hv
dWxkTG9nQ29va2llSW5mb3JtYXRpb24oY29ubmVjdGlvbiwgbmV0d29ya1N0b3JhZ2VTZXNzaW9u
LnNlc3Npb25JRCgpKSk7CiAKQEAgLTEwNTUsNyArMTA2MCw3IEBAIHN0YXRpYyB2b2lkIGxvZ0Js
b2NrZWRDb29raWVJbmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29u
bmVjdGlvCiAjdW5kZWYgTE9DQUxfTE9HX0lGX0FMTE9XRUQKIH0KIAotc3RhdGljIHZvaWQgbG9n
Q29va2llSW5mb3JtYXRpb25JbnRlcm5hbChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYg
Y29ubmVjdGlvbiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0
LCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIG5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8m
IHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIE9w
dGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlE
LCBPcHRpb25hbDx1aW50NjRfdD4gaWRlbnRpZmllcikKK3N0YXRpYyB2b2lkIGxvZ0Nvb2tpZUlu
Zm9ybWF0aW9uSW50ZXJuYWwoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rp
b24sIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29uc3Qg
V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24sIGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiBzYW1lU2l0
ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBPcHRpb25hbDxG
cmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQs
IE9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyKQogewogICAgIEFTU0VSVChOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OnNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKGNvbm5lY3Rpb24sIG5ldHdv
cmtTdG9yYWdlU2Vzc2lvbi5zZXNzaW9uSUQoKSkpOwogCkBAIC0xMTE2LDcgKzExMjEsNyBAQCBz
dGF0aWMgdm9pZCBsb2dDb29raWVJbmZvcm1hdGlvbkludGVybmFsKE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzJiBjb25uZWN0aQogI3VuZGVmIExPQ0FMX0xPR19JRl9BTExPV0VECiB9CiAK
LXZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpsb2dDb29raWVJbmZvcm1hdGlvbihOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgY29uc3QgU3RyaW5nJiBsYWJlbCwg
Y29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIG5l
dHdvcmtTdG9yYWdlU2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0
ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJy
ZXIsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
cGFnZUlELCBPcHRpb25hbDx1aW50NjRfdD4gaWRlbnRpZmllcikKK3ZvaWQgTmV0d29ya1Jlc291
cmNlTG9hZGVyOjpsb2dDb29raWVJbmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYgY29ubmVjdGlvbiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2Vk
T2JqZWN0LCBjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIG5ldHdvcmtTdG9yYWdlU2Vzc2lv
biwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5m
bywgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIE9wdGlvbmFsPEZyYW1l
SWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgT3B0
aW9uYWw8dWludDY0X3Q+IGlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKHNob3VsZExvZ0Nvb2tp
ZUluZm9ybWF0aW9uKGNvbm5lY3Rpb24sIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5zZXNzaW9uSUQo
KSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuaAppbmRleCA2MmM2NWNkZGZmN2NhMGIyMGExYzE5MDk5YjlmNzE1ZmFlNDU0
YThlLi43NDkyZGYzMmY3OTk2ZTA5MDNiZTkwZGEwMDVlOWIxNDZkYTE1ZmJjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgK
QEAgLTg1LDcgKzg1LDcgQEAgcHVibGljOgogICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkgY29uc3QgeyByZXR1cm4gbV9jb25uZWN0aW9u
OyB9CiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9wYXJh
bWV0ZXJzLnNlc3Npb25JRDsgfQogICAgIFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmll
cigpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyOyB9Ci0gICAgdWludDY0
X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlEOyB9Cisg
ICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX3Bh
cmFtZXRlcnMud2ViRnJhbWVJRDsgfQogICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQ7IH0KIAogICAgIHN0cnVj
dCBTeW5jaHJvbm91c0xvYWREYXRhOwpAQCAtMTEyLDcgKzExMiw3IEBAIHB1YmxpYzoKIAogI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpICYmICFSRUxFQVNFX0xPR19ESVNBQkxF
RAogICAgIHN0YXRpYyBib29sIHNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzJiwgY29uc3QgUEFMOjpTZXNzaW9uSUQmKTsKLSAgICBzdGF0aWMg
dm9pZCBsb2dDb29raWVJbmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYs
IGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29uc3QgV2Vi
Q29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHJlZmVy
cmVyLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXI+LCBPcHRpb25hbDx1aW50NjRfdD4gaWRlbnRpZmllcik7CisgICAgc3RhdGljIHZv
aWQgbG9nQ29va2llSW5mb3JtYXRpb24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBj
b25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2b2lkKiBsb2dnZWRPYmplY3QsIGNvbnN0IFdlYkNv
cmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
V2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiByZWZlcnJl
ciwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8V2ViQ29yZTo6
UGFnZUlkZW50aWZpZXI+LCBPcHRpb25hbDx1aW50NjRfdD4gaWRlbnRpZmllcik7CiAjZW5kaWYK
IAogICAgIHZvaWQgZGlzYWJsZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzQ2FwdHVyZSgpIHsgbV9z
aG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MgPSBmYWxzZTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmgKaW5kZXggZDk0
ZmM3MzgwZjE5YTVmNWY1Yjc4ZWEzOWVmMWQ2NWE5MjExZWU0Zi4uODVkMTAwY2E2YzdjMDVmYjhj
M2QxMmQwM2E0NDAyODExMDM5NWVmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAi
TmV0d29ya0NhY2hlRW50cnkuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVTdG9yYWdlLmgiCiAj
aW5jbHVkZSAiU2hhcmVhYmxlUmVzb3VyY2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRl
bnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhh
bmRsZXIuaD4KQEAgLTg1LDcgKzg2LDcgQEAgZW51bSBjbGFzcyBVc2VEZWNpc2lvbiB7CiAgICAg
Tm9EdWVUb0V4cGlyZWRSZWRpcmVjdAogfTsKIAotdXNpbmcgR2xvYmFsRnJhbWVJRCA9IHN0ZDo6
cGFpcjxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgLyp3ZWJGcmFtZUlEKi8+Owor
dXNpbmcgR2xvYmFsRnJhbWVJRCA9IHN0ZDo6cGFpcjxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPjsgLy8gRklYTUU6IFVzZSBHbG9iYWxGcmFtZUlkZW50
aWZpZXIuCiAKIGVudW0gY2xhc3MgQ2FjaGVPcHRpb24gOiB1aW50OF90IHsKICAgICAvLyBJbiB0
ZXN0aW5nIG1vZGUgd2UgdHJ5IHRvIGVsaW1pbmF0ZSBzb3VyY2VzIG9mIHJhbmRvbW5lc3MuIENh
Y2hlIGRvZXMgbm90IHNocmluayBhbmQgdGhlcmUgYXJlIG5vIHJlYWQgdGltZW91dHMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFz
a0NvY29hLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRh
VGFza0NvY29hLmgKaW5kZXggMjc5MzU3NTM1YmUxZTg0YTEzZDMxZmY3ZmMzMmVjODJlNjllZGI4
Zi4uNDNhZDZmMWRlNDFjNTE2MWRkOWRiM2I2OWFmOTFjYTNmN2FiMjQzMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNr
Q29jb2EuaApAQCAtNDIsNyArNDIsNyBAQCBjbGFzcyBOZXR3b3JrU2Vzc2lvbkNvY29hOwogY2xh
c3MgTmV0d29ya0RhdGFUYXNrQ29jb2EgZmluYWwgOiBwdWJsaWMgTmV0d29ya0RhdGFUYXNrIHsK
ICAgICBmcmllbmQgY2xhc3MgTmV0d29ya1Nlc3Npb25Db2NvYTsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPE5ldHdvcmtEYXRhVGFzaz4gY3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBO
ZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBw
YWdlSUQsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxz
UG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZm
LCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50RW5j
b2RpbmdTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0
LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lzRm9y
TWFpbkZyYW1lTmF2aWdhdGlvbiwgYm9vbCBkYXRhVGFza0lzRm9yTWFpblJlc291cmNlTmF2aWdh
dGlvbkZvckFueUZyYW1lLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBuZXR3b3Jr
QWN0aXZpdHlUcmFja2VyKQorICAgIHN0YXRpYyBSZWY8TmV0d29ya0RhdGFUYXNrPiBjcmVhdGUo
TmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6
OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3Jl
OjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBXZWJDb3JlOjpDb250
ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgYm9v
bCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25s
eSBzaG91bGRQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdh
dGlvbiwgYm9vbCBkYXRhVGFza0lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1l
LCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBuZXR3b3JrQWN0aXZpdHlUcmFja2Vy
KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya0RhdGFUYXNrQ29j
b2Eoc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0LCBmcmFtZUlELCBwYWdlSUQsIHN0b3JlZENyZWRl
bnRpYWxzUG9saWN5LCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENvbnRlbnRFbmNvZGluZ1Nu
aWZmLCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBzaG91bGRQcmVj
b25uZWN0T25seSwgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24sIGRhdGFUYXNrSXNG
b3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIG5ldHdvcmtBY3Rpdml0eVRyYWNr
ZXIpKTsKICAgICB9CkBAIC02OSwxMyArNjksMTMgQEAgcHVibGljOgogCiAgICAgV2ViQ29yZTo6
TmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3JrTG9hZE1ldHJpY3MoKSB7IHJldHVybiBtX25ldHdv
cmtMb2FkTWV0cmljczsgfQogCi0gICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJu
IG1fZnJhbWVJRDsgfTsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNv
bnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfTsKICAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBw
YWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VJRDsgfTsKIAogICAgIFN0cmluZyBkZXNjcmlw
dGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIE5ldHdvcmtEYXRhVGFza0Nv
Y29hKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50
U25pZmZpbmdQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5LCBi
b29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RP
bmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBib29sIGRhdGFUYXNr
SXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIE9wdGlvbmFsPE5ldHdvcmtB
Y3Rpdml0eVRyYWNrZXI+KTsKKyAgICBOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lv
biYsIE5ldHdvcmtEYXRhVGFza0NsaWVudCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdl
YkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQ
b2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5LCBib29sIHNob3Vs
ZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5LCBib29s
IGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBib29sIGRhdGFUYXNrSXNGb3JNYWlu
UmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRy
YWNrZXI+KTsKIAogICAgIGJvb2wgdHJ5UGFzc3dvcmRCYXNlZEF1dGhlbnRpY2F0aW9uKGNvbnN0
IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgQ2hhbGxlbmdlQ29tcGxldGlvbkhh
bmRsZXImKTsKICAgICB2b2lkIGFwcGx5U25pZmZpbmdQb2xpY2llc0FuZEJpbmRSZXF1ZXN0VG9J
bmZlcmZhY2VJZk5lZWRlZChfX3N0cm9uZyBOU1VSTFJlcXVlc3QqJiwgYm9vbCBzaG91bGRDb250
ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpOwpAQCAtOTIsNyArOTIs
NyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBtX3NhbmRib3hFeHRl
bnNpb247CiAgICAgUmV0YWluUHRyPE5TVVJMU2Vzc2lvbkRhdGFUYXNrPiBtX3Rhc2s7CiAgICAg
V2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzIG1fbmV0d29ya0xvYWRNZXRyaWNzOwotICAgIHVp
bnQ2NF90IG1fZnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbV9mcmFtZUlE
OwogICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIG1fcGFnZUlEOwogCiAjaWYgRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCmluZGV4IDQyZTdhY2U0
MjRiMmFiOGJiMDBhMzdjOTYzZWE5N2Q0NDEzMTVhZTAuLmMyZTdiMzY4NTRlNzM5NWNiNjkzMGQ2
ZTI1NzQ4YzRiYWQ2MDEyMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQpAQCAtMTcwLDcgKzE3MCw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBjb21wdXRlSXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKE5l
dHdvcmtTZXNzaW9uJiBzZXNzaW9uKQogICAgIHJldHVybiBzZXNzaW9uLnNlc3Npb25JRCgpLmlz
QWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpOwogfQogCi1OZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0
d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFz
a0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3RX
aXRoQ3JlZGVudGlhbHMsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25p
ZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRF
bmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJl
Y3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNG
b3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBib29sIGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZp
Z2F0aW9uRm9yQW55RnJhbWUsIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+IG5ldHdv
cmtBY3Rpdml0eVRyYWNrZXIpCitOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNr
Q29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xp
ZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3RXaXRoQ3JlZGVudGlh
bHMsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciBwYWdlSUQsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRl
bnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVu
dFNuaWZmLCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250
ZW50RW5jb2RpbmdTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJl
ZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFz
a0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgYm9vbCBkYXRhVGFza0lzRm9yTWFpblJlc291cmNl
TmF2aWdhdGlvbkZvckFueUZyYW1lLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBu
ZXR3b3JrQWN0aXZpdHlUcmFja2VyKQogICAgIDogTmV0d29ya0RhdGFUYXNrKHNlc3Npb24sIGNs
aWVudCwgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNo
b3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIGRhdGFUYXNrSXNGb3JNYWlu
RnJhbWVOYXZpZ2F0aW9uKQogICAgICwgbV9mcmFtZUlEKGZyYW1lSUQpCiAgICAgLCBtX3BhZ2VJ
RChwYWdlSUQpCkBAIC0yNTYsNyArMjU2LDcgQEAgTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdv
cmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVQKICAg
ICBpZiAoc2hvdWxkQmxvY2tDb29raWVzKSB7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAg
ICAgICAgIGlmIChtX3Nlc3Npb24tPnNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKCkpCi0gICAg
ICAgICAgICBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29y
aywgIiVwIC0gTmV0d29ya0RhdGFUYXNrQ29jb2E6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uOiBwYWdl
SUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwgdGFza0lEID0gJWx1OiBCbG9ja2luZyBjb29raWVz
IGZvciBVUkwgJXMiLCB0aGlzLCBwYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCwgKHVuc2lnbmVk
IGxvbmcpW21fdGFzayB0YXNrSWRlbnRpZmllcl0sIG5zUmVxdWVzdC5VUkwuYWJzb2x1dGVTdHJp
bmcuVVRGOFN0cmluZyk7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9n
Z2luZ0FsbG93ZWQoKSwgTmV0d29yaywgIiVwIC0gTmV0d29ya0RhdGFUYXNrQ29jb2E6OmxvZ0Nv
b2tpZUluZm9ybWF0aW9uOiBwYWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwgdGFza0lEID0g
JWx1OiBCbG9ja2luZyBjb29raWVzIGZvciBVUkwgJXMiLCB0aGlzLCBwYWdlSUQudG9VSW50NjQo
KSwgZnJhbWVJRC50b1VJbnQ2NCgpLCAodW5zaWduZWQgbG9uZylbbV90YXNrIHRhc2tJZGVudGlm
aWVyXSwgbnNSZXF1ZXN0LlVSTC5hYnNvbHV0ZVN0cmluZy5VVEY4U3RyaW5nKTsKICNlbHNlCiAg
ICAgICAgIExPRyhOZXR3b3JrU2Vzc2lvbiwgIiVsbHUgQmxvY2tpbmcgY29va2llcyBmb3IgVVJM
ICVzIiwgW21fdGFzayB0YXNrSWRlbnRpZmllcl0sIG5zUmVxdWVzdC5VUkwuYWJzb2x1dGVTdHJp
bmcuVVRGOFN0cmluZyk7CiAjZW5kaWYKQEAgLTM5MCw3ICszOTAsNyBAQCB2b2lkIE5ldHdvcmtE
YXRhVGFza0NvY29hOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbihXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJgogICAgIH0KICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBpZiAobV9z
ZXNzaW9uLT5zaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbigpKQotICAgICAgICBSRUxFQVNFX0xP
R19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29yaywgIiVwIC0gTmV0d29ya0Rh
dGFUYXNrQ29jb2E6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uOjpsb2dDb29raWVJbmZvcm1h
dGlvbjogcGFnZUlEID0gJWxsdSwgZnJhbWVJRCA9ICVsbHUsIHRhc2tJRCA9ICVsdTogJXMgY29v
a2llcyBmb3IgcmVkaXJlY3QgVVJMICVzIiwgdGhpcywgbV9wYWdlSUQudG9VSW50NjQoKSwgbV9m
cmFtZUlELCAodW5zaWduZWQgbG9uZylbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgKG1faGFzQmVl
blNldFRvVXNlU3RhdGVsZXNzQ29va2llU3RvcmFnZSA/ICJCbG9ja2luZyIgOiAiTm90IGJsb2Nr
aW5nIiksIHJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIFJF
TEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3b3JrLCAiJXAgLSBO
ZXR3b3JrRGF0YVRhc2tDb2NvYTo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb246OmxvZ0Nvb2tp
ZUluZm9ybWF0aW9uOiBwYWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwgdGFza0lEID0gJWx1
OiAlcyBjb29raWVzIGZvciByZWRpcmVjdCBVUkwgJXMiLCB0aGlzLCBtX3BhZ2VJRC50b1VJbnQ2
NCgpLCBtX2ZyYW1lSUQudG9VSW50NjQoKSwgKHVuc2lnbmVkIGxvbmcpW21fdGFzayB0YXNrSWRl
bnRpZmllcl0sIChtX2hhc0JlZW5TZXRUb1VzZVN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2UgPyAiQmxv
Y2tpbmciIDogIk5vdCBibG9ja2luZyIpLCByZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOwogI2Vsc2UKICAgICBMT0coTmV0d29ya1Nlc3Npb24sICIlbGx1ICVzIGNvb2tpZXMg
Zm9yIHJlZGlyZWN0IFVSTCAlcyIsIFttX3Rhc2sgdGFza0lkZW50aWZpZXJdLCAobV9oYXNCZWVu
U2V0VG9Vc2VTdGF0ZWxlc3NDb29raWVTdG9yYWdlID8gIkJsb2NraW5nIiA6ICJOb3QgYmxvY2tp
bmciKSwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggZjBlYzhkYzFiNzE2OWJj
Y2E1NWE2NTQ5MTJlZDJmZWY1MzcwZGYxMC4uYzAxZTg5NTllODA3ZmY2MjRlZjg1NzdlYjM1NTY1
ZTQyZDkzYTNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBA
IC0yMDUsNiArMjA1LDcgQEAgZGVmIGZvcndhcmRfZGVjbGFyYXRpb25zX2FuZF9oZWFkZXJzKHJl
Y2VpdmVyKToKICAgICAgICAgJ1N0cmluZycsCiAgICAgICAgICdXZWJDb3JlOjpEb2N1bWVudElk
ZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyJywKKyAgICAgICAg
J1dlYkNvcmU6OkZyYW1lSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpQb2ludGVySUQnLAogICAgICAgICAnV2ViQ29yZTo6
UHJvY2Vzc0lkZW50aWZpZXInLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJ
L0FQSUZyYW1lSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElGcmFtZUhh
bmRsZS5jcHAKaW5kZXggNzk2NDZhYzZlNTljNDFkNGRmNzA5MDFkYmE3ZTI2NzUzMzZkNTI0YS4u
NDA4MDEzODg1NDhhMTgxMWFiNTllNWNiMjQ1YTExNTIxMTQyYmVmYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuY3BwCkBAIC0zMSwxNyArMzEsMTcgQEAKIAog
bmFtZXNwYWNlIEFQSSB7CiAKLVJlZjxGcmFtZUhhbmRsZT4gRnJhbWVIYW5kbGU6OmNyZWF0ZSh1
aW50NjRfdCBmcmFtZUlEKQorUmVmPEZyYW1lSGFuZGxlPiBGcmFtZUhhbmRsZTo6Y3JlYXRlKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEZyYW1lSGFuZGxlKGZyYW1lSUQsIGZhbHNlKSk7CiB9CiAKLVJlZjxGcmFtZUhhbmRsZT4g
RnJhbWVIYW5kbGU6OmNyZWF0ZUF1dG9jb252ZXJ0aW5nKHVpbnQ2NF90IGZyYW1lSUQpCitSZWY8
RnJhbWVIYW5kbGU+IEZyYW1lSGFuZGxlOjpjcmVhdGVBdXRvY29udmVydGluZyhXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGcmFt
ZUhhbmRsZShmcmFtZUlELCB0cnVlKSk7CiB9CiAKLUZyYW1lSGFuZGxlOjpGcmFtZUhhbmRsZSh1
aW50NjRfdCBmcmFtZUlELCBib29sIGlzQXV0b2NvbnZlcnRpbmcpCitGcmFtZUhhbmRsZTo6RnJh
bWVIYW5kbGUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wgaXNBdXRvY29u
dmVydGluZykKICAgICA6IG1fZnJhbWVJRChmcmFtZUlEKQogICAgICwgbV9pc0F1dG9jb252ZXJ0
aW5nKGlzQXV0b2NvbnZlcnRpbmcpCiB7CkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgRnJhbWVIYW5k
bGU6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAKIGJvb2wgRnJhbWVIYW5k
bGU6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFJlZlB0cjxPYmplY3Q+JiByZXN1bHQp
CiB7Ci0gICAgdWludDY0X3QgZnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGZyYW1lSUQpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElGcmFt
ZUhhbmRsZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmgKaW5k
ZXggYjEwZTgwOGE0YjE5YWQzMTNkOGI0NTVjMjNiOWQ4Mzk5Y2MzODU1MC4uMWM2NGE0YWQxZTgw
MmEwNDY3Mjk4MWJjYmY4YTc2MDE2NDI1ZmZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJ
L0FQSUZyYW1lSGFuZGxlLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgQVBJRnJhbWVIYW5k
bGVfaAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlk
ZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKIG5hbWVzcGFjZSBJUEMgewpAQCAt
MzgsMjAgKzM5LDIwIEBAIG5hbWVzcGFjZSBBUEkgewogCiBjbGFzcyBGcmFtZUhhbmRsZSA6IHB1
YmxpYyBPYmplY3RJbXBsPE9iamVjdDo6VHlwZTo6RnJhbWVIYW5kbGU+IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPEZyYW1lSGFuZGxlPiBjcmVhdGUodWludDY0X3QgZnJhbWVJRCk7Ci0gICAg
c3RhdGljIFJlZjxGcmFtZUhhbmRsZT4gY3JlYXRlQXV0b2NvbnZlcnRpbmcodWludDY0X3QgZnJh
bWVJRCk7CisgICAgc3RhdGljIFJlZjxGcmFtZUhhbmRsZT4gY3JlYXRlKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcik7CisgICAgc3RhdGljIFJlZjxGcmFtZUhhbmRsZT4gY3JlYXRlQXV0b2NvbnZl
cnRpbmcoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKIAotICAgIGV4cGxpY2l0IEZyYW1lSGFu
ZGxlKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNBdXRvY29udmVydGluZyk7CisgICAgZXhwbGlj
aXQgRnJhbWVIYW5kbGUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBib29sIGlzQXV0b2NvbnZl
cnRpbmcpOwogICAgIHZpcnR1YWwgfkZyYW1lSGFuZGxlKCk7CiAKLSAgICB1aW50NjRfdCBmcmFt
ZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KICAgICBib29sIGlz
QXV0b2NvbnZlcnRpbmcoKSBjb25zdCB7IHJldHVybiBtX2lzQXV0b2NvbnZlcnRpbmc7IH0KIAog
ICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRl
Y29kZShJUEM6OkRlY29kZXImLCBSZWZQdHI8T2JqZWN0PiYpOwogCiBwcml2YXRlOgotICAgIGNv
bnN0IHVpbnQ2NF90IG1fZnJhbWVJRDsKKyAgICBjb25zdCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgbV9mcmFtZUlEOwogICAgIGNvbnN0IGJvb2wgbV9pc0F1dG9jb252ZXJ0aW5nOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS0ZyYW1lSGFuZGxl
Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS0ZyYW1lSGFuZGxlLm1tCmlu
ZGV4IGE0MWE2MTNhN2QzNzFkN2FlMmE3M2U0MDU4MjdiMGFiZDczNTcwNzAuLmVkY2IzOGU2MzVh
N2JmMDkyN2IxMTBjYzdkNGNmOTc2NmFiNWQwODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5kbGUubW0KQEAgLTI2LDYgKzI2LDggQEAKICNpbXBv
cnQgImNvbmZpZy5oIgogI2ltcG9ydCAiX1dLRnJhbWVIYW5kbGVJbnRlcm5hbC5oIgogCisjaW1w
b3J0IDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgorCiBAaW1wbGVtZW50YXRpb24gX1dLRnJh
bWVIYW5kbGUgewogICAgIEFQSTo6T2JqZWN0U3RvcmFnZTxBUEk6OkZyYW1lSGFuZGxlPiBfZnJh
bWVIYW5kbGU7CiB9CkBAIC01MCwxMiArNTIsMTIgQEAgLSAoQk9PTClpc0VxdWFsOihpZClvYmpl
Y3QKIAogLSAoTlNVSW50ZWdlciloYXNoCiB7Ci0gICAgcmV0dXJuIF9mcmFtZUhhbmRsZS0+ZnJh
bWVJRCgpOworICAgIHJldHVybiBfZnJhbWVIYW5kbGUtPmZyYW1lSUQoKS50b1VJbnQ2NCgpOwog
fQogCiAtICh1aW50NjRfdClfZnJhbWVJRAogewotICAgIHJldHVybiBfZnJhbWVIYW5kbGUtPmZy
YW1lSUQoKTsKKyAgICByZXR1cm4gX2ZyYW1lSGFuZGxlLT5mcmFtZUlEKCkudG9VSW50NjQoKTsK
IH0KIAogI3ByYWdtYSBtYXJrIE5TQ29weWluZyBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbgpAQCAt
ODMsMTQgKzg1LDE0IEBAIC0gKGlkKWluaXRXaXRoQ29kZXI6KE5TQ29kZXIgKilkZWNvZGVyCiAg
ICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCi0gICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdElu
V3JhcHBlcjxBUEk6OkZyYW1lSGFuZGxlPihzZWxmLCBmcmFtZUlELnVuc2lnbmVkTG9uZ0xvbmdW
YWx1ZSwgZmFsc2UpOworICAgIEFQSTo6T2JqZWN0Ojpjb25zdHJ1Y3RJbldyYXBwZXI8QVBJOjpG
cmFtZUhhbmRsZT4oc2VsZiwgV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKGZyYW1lSUQu
dW5zaWduZWRMb25nTG9uZ1ZhbHVlKSwgZmFsc2UpOwogCiAgICAgcmV0dXJuIHNlbGY7CiB9CiAK
IC0gKHZvaWQpZW5jb2RlV2l0aENvZGVyOihOU0NvZGVyICopY29kZXIKIHsKLSAgICBbY29kZXIg
ZW5jb2RlT2JqZWN0OkAoX2ZyYW1lSGFuZGxlLT5mcmFtZUlEKCkpIGZvcktleTpAImZyYW1lSUQi
XTsKKyAgICBbY29kZXIgZW5jb2RlT2JqZWN0OkAoW3NlbGYgX2ZyYW1lSURdKSBmb3JLZXk6QCJm
cmFtZUlEIl07CiB9CiAKICNwcmFnbWEgbWFyayBXS09iamVjdCBwcm90b2NvbCBpbXBsZW1lbnRh
dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0
aGVudGljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggOWRlYjc2ZmYxMzJjNmNiNWZkZjVl
YmY1MjIyMzRmNmQ0NDNlZjk0ZC4uMzhhNWJmZjZhZmQyNTcxZDUyZGNlNGMwOTgwNGFhNzU0NGFi
ZTRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0
aGVudGljYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCkBAIC0xMDgsNyArMTA4LDcgQEAgVmVj
dG9yPHVpbnQ2NF90PiBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmNvYWxlc2NlQ2hhbGxlbmdlc01h
dGNoaW5nKHVpbnQ2NF90IGNoYWwKICAgICByZXR1cm4gY2hhbGxlbmdlc1RvQ29hbGVzY2U7CiB9
CiAKLXZvaWQgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UsIENoYWxsZW5n
ZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIEF1dGhlbnRpY2F0
aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgQ2hhbGxlbmdlQ29tcGxldGlvbkhh
bmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQocGFnZUlEKTsKICAgICBB
U1NFUlQoZnJhbWVJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1
dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oCmluZGV4IDg2ZTc0NGMxMDhkZjRj
YmNmNWQwNDc2MDlhY2Y5NmM2ODIzZDZiMTYuLjQwMzZlYWI3N2ZkOWNlMTU1NTMwZmI2YTRjYzU2
MTY4M2Q3ZWQ5MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1
dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oCkBAIC0yOSw2ICsyOSw3IEBACiAj
aW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vz
c1N1cHBsZW1lbnQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTYxLDcgKzYyLDcgQEAgcHVibGljOgogCiAg
ICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CiAKLSAgICB2b2lkIGRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBD
aGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxs
ZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKElQQzo6TWVzc2FnZVNlbmRlciYgZG93bmxvYWQsIGNvbnN0IFdlYkNvcmU6
OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJik7
CiAKICAgICB2b2lkIGNvbXBsZXRlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UodWludDY0X3QgY2hh
bGxlbmdlSUQsIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24sIFdlYkNvcmU6OkNy
ZWRlbnRpYWwmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9GcmFtZUluZm9E
YXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuY3BwCmluZGV4IDk0
NDIzNzQ1NjU4MTZmNGU4ODA0MGZmMDg0ZTBjMWEzYmU1MzFmZjQuLjNlOWQ3MmVhZDUzYzU4MzJj
NDMzMTczNGI3MDc0MWZkYjM0YTIxMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0ZyYW1lSW5mb0RhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0Rh
dGEuY3BwCkBAIC00OSw4ICs0OSwxMiBAQCBib29sIEZyYW1lSW5mb0RhdGE6OmRlY29kZShJUEM6
OkRlY29kZXImIGRlY29kZXIsIEZyYW1lSW5mb0RhdGEmIHJlc3VsdCkKICAgICBpZiAoIXNlY3Vy
aXR5T3JpZ2luKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmVzdWx0LnNlY3VyaXR5T3Jp
Z2luID0gV1RGTW92ZSgqc2VjdXJpdHlPcmlnaW4pOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cmVzdWx0LmZyYW1lSUQpKQorICAgIAorICAgIE9wdGlvbmFsPE9wdGlvbmFsPEZyYW1lSWRlbnRp
Zmllcj4+IGZyYW1lSUQ7CisgICAgZGVjb2RlciA+PiBmcmFtZUlEOworICAgIGlmICghZnJhbWVJ
RCkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJlc3VsdC5mcmFtZUlEID0gV1RGTW92ZSgq
ZnJhbWVJRCk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5m
b0RhdGEuaAppbmRleCBhODI4MzY4NmYxNmFiM2NkMzUyNDljZTcwNWQzZjJiOGU3YmIzYzY2Li41
Mzg3MTZlYjIxZWI1NDBhNDE3NzljN2U2YjhmZmQ0MzUyZmJjMTNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9GcmFtZUluZm9EYXRhLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvRnJhbWVJbmZvRGF0YS5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisj
aW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+
CiAKQEAgLTQyLDcgKzQzLDcgQEAgc3RydWN0IEZyYW1lSW5mb0RhdGEgewogICAgIGJvb2wgaXNN
YWluRnJhbWUgeyBmYWxzZSB9OwogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0
OwogICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBzZWN1cml0eU9yaWdpbjsKLSAgICB1
aW50NjRfdCBmcmFtZUlEIHsgMCB9OworICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRp
Zmllcj4gZnJhbWVJRDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElGcmFtZUluZm8uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SUZyYW1lSW5mby5jcHAKaW5kZXggOTZiMTNkMTc4NTQ0NWMzOTczM2IyZjA0OGE2MGYyMDIxNTA4
YzhjOC4uODI5NzI4YjkxZDYxYWEyNjA0NzVlMmExYzkxZDI0MjBlOTc4NjBmYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUZyYW1lSW5mby5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUZyYW1lSW5mby5jcHAKQEAgLTU1LDcgKzU1LDcg
QEAgRnJhbWVJbmZvOjpGcmFtZUluZm8oY29uc3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhJiBmcmFt
ZUluZm9EYXRhLCBXZWJLaXQ6OldlYlBhZ2UKICAgICA6IG1faXNNYWluRnJhbWUgeyBmcmFtZUlu
Zm9EYXRhLmlzTWFpbkZyYW1lIH0KICAgICAsIG1fcmVxdWVzdCB7IGZyYW1lSW5mb0RhdGEucmVx
dWVzdCB9CiAgICAgLCBtX3NlY3VyaXR5T3JpZ2luIHsgU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShm
cmFtZUluZm9EYXRhLnNlY3VyaXR5T3JpZ2luLnNlY3VyaXR5T3JpZ2luKCkpIH0KLSAgICAsIG1f
aGFuZGxlIHsgQVBJOjpGcmFtZUhhbmRsZTo6Y3JlYXRlKGZyYW1lSW5mb0RhdGEuZnJhbWVJRCkg
fQorICAgICwgbV9oYW5kbGUgeyBBUEk6OkZyYW1lSGFuZGxlOjpjcmVhdGUoZnJhbWVJbmZvRGF0
YS5mcmFtZUlEID8gKmZyYW1lSW5mb0RhdGEuZnJhbWVJRCA6IFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllcnsgfSkgfQogICAgICwgbV9wYWdlIHsgbWFrZVJlZlB0cihwYWdlKSB9CiB7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lSGFuZGxlUmVmLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVIYW5kbGVSZWYuY3BwCmlu
ZGV4IGIzOWZjYTFiZTU3ZjBkMjc0ZDg0NTdmMDQzZjUwZWFiNjJmMjNjNTguLmU4NzNmYzQ2NTFk
NTI2OTM4OTM2OWZjNjBhNzgwMjY1NDIwNWRkN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVIYW5kbGVSZWYuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVIYW5kbGVSZWYuY3BwCkBAIC0zOCw1ICszOCw1IEBAIFdL
VHlwZUlEIFdLRnJhbWVIYW5kbGVHZXRUeXBlSUQoKQogCiB1aW50NjRfdCBXS0ZyYW1lSGFuZGxl
R2V0RnJhbWVJRChXS0ZyYW1lSGFuZGxlUmVmIGZyYW1lSGFuZGxlUmVmKQogewotICAgIHJldHVy
biB0b0ltcGwoZnJhbWVIYW5kbGVSZWYpLT5mcmFtZUlEKCk7CisgICAgcmV0dXJuIHRvSW1wbChm
cmFtZUhhbmRsZVJlZiktPmZyYW1lSUQoKS50b1VJbnQ2NCgpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMDM5MWExOTkyZTM1MzJk
YmU1ZjIxZGI2OTFkZDgxMDhhYWUyYTY2Yy4uMDk1MWU5NDQzN2JjZTQ2NjVkNjE1YmQwNDBkMjZk
ZjIwYjY0ZGYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tCkBAIC02NjIxLDcgKzY2MjEsNyBAQCAtIChOU1ByaW50T3BlcmF0aW9uICopX3By
aW50T3BlcmF0aW9uV2l0aFByaW50SW5mbzooTlNQcmludEluZm8gKilwcmludEluZm8KIAogLSAo
TlNQcmludE9wZXJhdGlvbiAqKV9wcmludE9wZXJhdGlvbldpdGhQcmludEluZm86KE5TUHJpbnRJ
bmZvICopcHJpbnRJbmZvIGZvckZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lSGFuZGxlCiB7
Ci0gICAgaWYgKGF1dG8qIHdlYkZyYW1lUHJveHkgPSBfcGFnZS0+cHJvY2VzcygpLndlYkZyYW1l
KGZyYW1lSGFuZGxlLl9mcmFtZUlEKSkKKyAgICBpZiAoYXV0byogd2ViRnJhbWVQcm94eSA9IF9w
YWdlLT5wcm9jZXNzKCkud2ViRnJhbWUoV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKGZy
YW1lSGFuZGxlLl9mcmFtZUlEKSkpCiAgICAgICAgIHJldHVybiBfaW1wbC0+cHJpbnRPcGVyYXRp
b25XaXRoUHJpbnRJbmZvKHByaW50SW5mbywgKndlYkZyYW1lUHJveHkpOwogICAgIHJldHVybiBu
aWw7CiB9CkBAIC03MTE0LDcgKzcxMTQsNyBAQCAtICh2b2lkKV9jb21wbGV0ZUltbWVkaWF0ZUFj
dGlvbkFuaW1hdGlvbgogCiAtIChCT09MKV9jYW5DaGFuZ2VGcmFtZUxheW91dDooX1dLRnJhbWVI
YW5kbGUgKilmcmFtZUhhbmRsZQogewotICAgIGlmIChhdXRvKiB3ZWJGcmFtZVByb3h5ID0gX3Bh
Z2UtPnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUhhbmRsZS5fZnJhbWVJRCkpCisgICAgaWYgKGF1
dG8qIHdlYkZyYW1lUHJveHkgPSBfcGFnZS0+cHJvY2VzcygpLndlYkZyYW1lKFdlYkNvcmU6OmZy
YW1lSWRlbnRpZmllckZyb21JRChmcmFtZUhhbmRsZS5fZnJhbWVJRCkpKQogICAgICAgICByZXR1
cm4gX2ltcGwtPmNhbkNoYW5nZUZyYW1lTGF5b3V0KCp3ZWJGcmFtZVByb3h5KTsKICAgICByZXR1
cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLSW5zcGVjdG9yLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S0luc3BlY3Rvci5tbQppbmRleCBjNDk5YjE4ZmE5Mzg4YTQ1ODQzMTQ3NzA4ZDNkMjk2ZGQ1MzI5
MGE0Li4zZDE1ZWMyZWVhNzkxMWIyYTM5ZDY0MDg3OTM2YmY0ZWE2MzQxM2FhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW0KQEAgLTMw
LDYgKzMwLDcgQEAKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgogI2ltcG9ydCAiX1dLRnJh
bWVIYW5kbGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLSW5zcGVjdG9ySW50ZXJuYWwuaCIKKyNp
bXBvcnQgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRy
Lmg+CiAKIEBpbXBsZW1lbnRhdGlvbiBfV0tJbnNwZWN0b3IKQEAgLTk5LDcgKzEwMCw3IEBAIC0g
KHZvaWQpc2hvd1Jlc291cmNlcwogLSAodm9pZClzaG93TWFpblJlc291cmNlRm9yRnJhbWU6KF9X
S0ZyYW1lSGFuZGxlICopZnJhbWUKIHsKICAgICBpZiAoYXV0byogcGFnZSA9IF9pbnNwZWN0b3It
Pmluc3BlY3RlZFBhZ2UoKSkKLSAgICAgICAgX2luc3BlY3Rvci0+c2hvd01haW5SZXNvdXJjZUZv
ckZyYW1lKHBhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZS5fZnJhbWVJRCkpOworICAgICAg
ICBfaW5zcGVjdG9yLT5zaG93TWFpblJlc291cmNlRm9yRnJhbWUocGFnZS0+cHJvY2VzcygpLndl
YkZyYW1lKFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRChmcmFtZS5fZnJhbWVJRCkpKTsK
IH0KIAogLSAodm9pZClhdHRhY2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmNwcAppbmRleCA3
YWNjNjhiYWVmZWFiMDczYmY2NjBmNmMwYmNlNWVmYjk3YjVhZTYyLi5kODc0OGVlYTdmYzZkYWUx
NTQyNmFkYWVhOTY5Yjc0YmRlZTYzZGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3Bw
CkBAIC0zODIsNyArMzgyLDcgQEAgdm9pZCBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXI6OnRyYW5z
aXRpb25JbnB1dFNvdXJjZVRvU3RhdGUoU2ltdWxhdGVkSW5wdXRTb3VyY2UKICAgICB9CiB9CiAK
LXZvaWQgU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyOjpydW4odWludDY0X3QgZnJhbWVJRCwgVmVj
dG9yPFNpbXVsYXRlZElucHV0S2V5RnJhbWU+JiYga2V5RnJhbWVzLCBIYXNoU2V0PFJlZjxTaW11
bGF0ZWRJbnB1dFNvdXJjZT4+JiBpbnB1dFNvdXJjZXMsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFu
ZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXI6
OnJ1bihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgVmVjdG9yPFNpbXVsYXRlZElu
cHV0S2V5RnJhbWU+JiYga2V5RnJhbWVzLCBIYXNoU2V0PFJlZjxTaW11bGF0ZWRJbnB1dFNvdXJj
ZT4+JiBpbnB1dFNvdXJjZXMsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIEFTU0VSVCghaXNBY3RpdmUoKSk7CiAgICAgaWYgKGlzQWN0aXZl
KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2lt
dWxhdGVkSW5wdXREaXNwYXRjaGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0
aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5oCmluZGV4IDdmNDE0MWNlMGEzOWU1NjA3M2M3
ZWM4YTk2NTYwY2JjMzQ4YWRmYTYuLmIwODkxYThmMGI2NzUyOWNiOWIzOTg2Yjg3OTUzMDcxMmE0
YWFkNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2lt
dWxhdGVkSW5wdXREaXNwYXRjaGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0
b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaApAQCAtMjgsNiArMjgsNyBAQAogI2lm
IEVOQUJMRShXRUJEUklWRVJfQUNUSU9OU19BUEkpCiAKICNpbmNsdWRlICJXZWJFdmVudC5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBs
ZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYv
T3B0aW9uYWwuaD4KQEAgLTEzMiw3ICsxMzMsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdFQkRS
SVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpCiAgICAgICAgIHZpcnR1YWwgdm9pZCBzaW11bGF0
ZUtleWJvYXJkSW50ZXJhY3Rpb24oV2ViUGFnZVByb3h5JiwgS2V5Ym9hcmRJbnRlcmFjdGlvbiwg
V1RGOjpWYXJpYW50PFZpcnR1YWxLZXksIENoYXJLZXk+JiYsIEF1dG9tYXRpb25Db21wbGV0aW9u
SGFuZGxlciYmKSA9IDA7CiAjZW5kaWYKLSAgICAgICAgdmlydHVhbCB2b2lkIHZpZXdwb3J0SW5W
aWV3Q2VudGVyUG9pbnRPZkVsZW1lbnQoV2ViUGFnZVByb3h5JiwgdWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBGdW5jdGlvbjx2b2lkIChPcHRpb25hbDxXZWJDb3Jl
OjpJbnRQb2ludD4sIE9wdGlvbmFsPEF1dG9tYXRpb25Db21tYW5kRXJyb3I+KT4mJikgPSAwOwor
ICAgICAgICB2aXJ0dWFsIHZvaWQgdmlld3BvcnRJblZpZXdDZW50ZXJQb2ludE9mRWxlbWVudChX
ZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbm9k
ZUhhbmRsZSwgRnVuY3Rpb248dm9pZCAoT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBPcHRp
b25hbDxBdXRvbWF0aW9uQ29tbWFuZEVycm9yPik+JiYpID0gMDsKICAgICB9OwogCiAgICAgc3Rh
dGljIFJlZjxTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXI+IGNyZWF0ZShXZWJQYWdlUHJveHkmIHBh
Z2UsIFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlcjo6Q2xpZW50JiBjbGllbnQpCkBAIC0xNDIsNyAr
MTQzLDcgQEAgcHVibGljOgogCiAgICAgflNpbXVsYXRlZElucHV0RGlzcGF0Y2hlcigpOwogCi0g
ICAgdm9pZCBydW4odWludDY0X3QgZnJhbWVJRCwgVmVjdG9yPFNpbXVsYXRlZElucHV0S2V5RnJh
bWU+JiYga2V5RnJhbWVzLCBIYXNoU2V0PFJlZjxTaW11bGF0ZWRJbnB1dFNvdXJjZT4+JiBpbnB1
dFNvdXJjZXMsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciYmKTsKKyAgICB2b2lkIHJ1bihX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFZlY3RvcjxTaW11bGF0ZWRJbnB1dEtleUZyYW1lPiYm
IGtleUZyYW1lcywgSGFzaFNldDxSZWY8U2ltdWxhdGVkSW5wdXRTb3VyY2U+PiYgaW5wdXRTb3Vy
Y2VzLCBBdXRvbWF0aW9uQ29tcGxldGlvbkhhbmRsZXImJik7CiAgICAgdm9pZCBjYW5jZWwoKTsK
IAogICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdDsKQEAgLTE2NSw3ICsxNjYsNyBAQCBwcml2YXRl
OgogICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdlOwogICAgIFNpbXVsYXRlZElucHV0RGlzcGF0Y2hl
cjo6Q2xpZW50JiBtX2NsaWVudDsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBtX2ZyYW1lSUQ7
CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBtX2ZyYW1lSUQ7CiAgICAg
QXV0b21hdGlvbkNvbXBsZXRpb25IYW5kbGVyIG1fcnVuQ29tcGxldGlvbkhhbmRsZXI7CiAgICAg
QXV0b21hdGlvbkNvbXBsZXRpb25IYW5kbGVyIG1fa2V5RnJhbWVUcmFuc2l0aW9uQ29tcGxldGlv
bkhhbmRsZXI7CiAgICAgUnVuTG9vcDo6VGltZXI8U2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyPiBt
X2tleUZyYW1lVHJhbnNpdGlvbkR1cmF0aW9uVGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCmlu
ZGV4IGNjZTVjNDgxN2E4MDQ5MTdjZGMxOTljMWIwMTYwZTI1NmU5YmUyOTcuLjY4YmRhZGM4Mjcx
NzQzNzIzNzQ0ZWQ1YzkyOGYxMGEwZGY5ZjJjZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCkBA
IC0yMDIsMTAgKzIwMiwxMCBAQCBTdHJpbmcgV2ViQXV0b21hdGlvblNlc3Npb246OmhhbmRsZUZv
cldlYlBhZ2VQcm94eShjb25zdCBXZWJQYWdlUHJveHkmIHdlYlBhZ2VQcgogICAgIHJldHVybiBo
YW5kbGU7CiB9CiAKLU9wdGlvbmFsPHVpbnQ2NF90PiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2Vi
RnJhbWVJREZvckhhbmRsZShjb25zdCBTdHJpbmcmIGhhbmRsZSkKK09wdGlvbmFsPEZyYW1lSWRl
bnRpZmllcj4gV2ViQXV0b21hdGlvblNlc3Npb246OndlYkZyYW1lSURGb3JIYW5kbGUoY29uc3Qg
U3RyaW5nJiBoYW5kbGUpCiB7CiAgICAgaWYgKGhhbmRsZS5pc0VtcHR5KCkpCi0gICAgICAgIHJl
dHVybiAwOworICAgICAgICByZXR1cm4gRnJhbWVJZGVudGlmaWVyIHsgfTsgLy8gVGhpcyBpcyBl
eHBsaWNpdGx5IHplcm87IHNlZSB3ZWJraXQub3JnL2IvMTU5Nzc3LgogCiAgICAgYXV0byBpdGVy
ID0gbV9oYW5kbGVXZWJGcmFtZU1hcC5maW5kKGhhbmRsZSk7CiAgICAgaWYgKGl0ZXIgPT0gbV9o
YW5kbGVXZWJGcmFtZU1hcC5lbmQoKSkKQEAgLTIxNCw3ICsyMTQsNyBAQCBPcHRpb25hbDx1aW50
NjRfdD4gV2ViQXV0b21hdGlvblNlc3Npb246OndlYkZyYW1lSURGb3JIYW5kbGUoY29uc3QgU3Ry
aW5nJiBoYW5kbAogICAgIHJldHVybiBpdGVyLT52YWx1ZTsKIH0KIAotU3RyaW5nIFdlYkF1dG9t
YXRpb25TZXNzaW9uOjpoYW5kbGVGb3JXZWJGcmFtZUlEKHVpbnQ2NF90IGZyYW1lSUQpCitTdHJp
bmcgV2ViQXV0b21hdGlvblNlc3Npb246OmhhbmRsZUZvcldlYkZyYW1lSUQoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQpCiB7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICByZXR1cm4gZW1wdHlT
dHJpbmcoKTsKQEAgLTM2Miw3ICszNjIsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpz
d2l0Y2hUb0Jyb3dzaW5nQ29udGV4dChjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dAogICAg
IGlmICghcGFnZSkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoV2lu
ZG93Tm90Rm91bmQpOwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQgPSB3ZWJGcmFt
ZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5kbGUgPyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6
IGVtcHR5U3RyaW5nKCkpOworICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUo
b3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpvcHRpb25hbEZyYW1lSGFuZGxlIDogZW1wdHlTdHJpbmco
KSk7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5F
RF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIApAQCAtNDU5LDcgKzQ1OSw3IEBAIHZvaWQgV2ViQXV0
b21hdGlvblNlc3Npb246OndhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZShjb25zdCBTdHJpbmcm
IGJyb3dzaW5nQ29uCiAgICAgICAgICYmIHBhZ2UtPnBhZ2VMb2FkU3RhdGUoKS5pc0xvYWRpbmco
KSAmJiBtX2NsaWVudC0+aXNTaG93aW5nSmF2YVNjcmlwdERpYWxvZ09uUGFnZSgqdGhpcywgKnBh
Z2UpOwogCiAgICAgaWYgKG9wdGlvbmFsRnJhbWVIYW5kbGUgJiYgIW9wdGlvbmFsRnJhbWVIYW5k
bGUtPmlzRW1wdHkoKSkgewotICAgICAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCA9IHdl
YkZyYW1lSURGb3JIYW5kbGUoKm9wdGlvbmFsRnJhbWVIYW5kbGUpOworICAgICAgICBhdXRvIGZy
YW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKCpvcHRpb25hbEZyYW1lSGFuZGxlKTsKICAgICAg
ICAgaWYgKCFmcmFtZUlEKQogICAgICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURf
RVJST1IoRnJhbWVOb3RGb3VuZCk7CiAgICAgICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gcGFn
ZS0+cHJvY2VzcygpLndlYkZyYW1lKGZyYW1lSUQudmFsdWUoKSk7CkBAIC01MzcsNyArNTM3LDcg
QEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVzcG9uZFRvUGVuZGluZ1BhZ2VOYXZpZ2F0
aW9uQ2FsbGJhY2tzV2l0aFRpbWVvdXQoSGEKICAgICB9CiB9CiAKLXN0YXRpYyBXZWJQYWdlUHJv
eHkqIGZpbmRQYWdlRm9yRnJhbWVJRChjb25zdCBXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2ws
IHVpbnQ2NF90IGZyYW1lSUQpCitzdGF0aWMgV2ViUGFnZVByb3h5KiBmaW5kUGFnZUZvckZyYW1l
SUQoY29uc3QgV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCkKIHsKICAgICBmb3IgKGF1dG8mIHByb2Nlc3MgOiBwcm9jZXNzUG9vbC5wcm9jZXNzZXMo
KSkgewogICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBwcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlE
KSkKQEAgLTU0Niw3ICs1NDYsNyBAQCBzdGF0aWMgV2ViUGFnZVByb3h5KiBmaW5kUGFnZUZvckZy
YW1lSUQoY29uc3QgV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCB1aW50NgogICAgIHJldHVy
biBudWxscHRyOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNwb25kVG9QZW5k
aW5nRnJhbWVOYXZpZ2F0aW9uQ2FsbGJhY2tzV2l0aFRpbWVvdXQoSGFzaE1hcDx1aW50NjRfdCwg
UmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+JiBtYXAp
Cit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNwb25kVG9QZW5kaW5nRnJhbWVOYXZpZ2F0
aW9uQ2FsbGJhY2tzV2l0aFRpbWVvdXQoSGFzaE1hcDxGcmFtZUlkZW50aWZpZXIsIFJlZlB0cjxJ
bnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiYgbWFwKQogewogICAg
IEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcgdGltZW91dEVycm9yID0gU1RSSU5HX0ZPUl9QUkVERUZJ
TkVEX0VSUk9SX05BTUUoVGltZW91dCk7CiAgICAgZm9yIChhdXRvIGlkIDogY29weVRvVmVjdG9y
KG1hcC5rZXlzKCkpKSB7CkBAIC05MjQsNyArOTI0LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvbjo6ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oY29uc3QgU3RyaW5nJiBicm93c2luZ0Nv
bnQKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VS
Uk9SKFdpbmRvd05vdEZvdW5kKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEID0g
d2ViRnJhbWVJREZvckhhbmRsZShvcHRpb25hbEZyYW1lSGFuZGxlID8gKm9wdGlvbmFsRnJhbWVI
YW5kbGUgOiBlbXB0eVN0cmluZygpKTsKKyAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9y
SGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5kbGUgPyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5
U3RyaW5nKCkpOwogICAgIGlmICghZnJhbWVJRCkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BS
RURFRklORURfRVJST1IoRnJhbWVOb3RGb3VuZCk7CiAKQEAgLTk2NywxMSArOTY3LDExIEBAIHZv
aWQgV2ViQXV0b21hdGlvblNlc3Npb246OnJlc29sdmVDaGlsZEZyYW1lSGFuZGxlKGNvbnN0IFN0
cmluZyYgYnJvd3NpbmdDb250ZXh0CiAgICAgaWYgKCFwYWdlKQogICAgICAgICBBU1lOQ19GQUlM
X1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5kb3dOb3RGb3VuZCk7CiAKLSAgICBPcHRpb25hbDx1
aW50NjRfdD4gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUob3B0aW9uYWxGcmFtZUhhbmRs
ZSA/ICpvcHRpb25hbEZyYW1lSGFuZGxlIDogZW1wdHlTdHJpbmcoKSk7CisgICAgYXV0byBmcmFt
ZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShvcHRpb25hbEZyYW1lSGFuZGxlID8gKm9wdGlvbmFs
RnJhbWVIYW5kbGUgOiBlbXB0eVN0cmluZygpKTsKICAgICBpZiAoIWZyYW1lSUQpCiAgICAgICAg
IEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKEZyYW1lTm90Rm91bmQpOwogCi0gICAg
V1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4g
Y29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBjYWxsYmFjayA9IGNhbGxiYWNrLmNvcHlSZWYoKV0oT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5
cGUsIHVpbnQ2NF90IGZyYW1lSUQpIG11dGFibGUgeworICAgIFdURjo6Q29tcGxldGlvbkhhbmRs
ZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBGcmFtZUlkZW50aWZpZXIpPiBjb21wbGV0aW9uSGFu
ZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhbGxiYWNrID0g
Y2FsbGJhY2suY29weVJlZigpXShPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQpIG11dGFibGUgewogICAgICAgICBpZiAoZXJyb3JUeXBlKSB7CiAgICAg
ICAgICAgICBjYWxsYmFjay0+c2VuZEZhaWx1cmUoU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VSUk9S
X01FU1NBR0UoKmVycm9yVHlwZSkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTAwNCwxMSAr
MTAwNCwxMSBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZlUGFyZW50RnJhbWVI
YW5kbGUoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleAogICAgIGlmICghcGFnZSkKICAgICAg
ICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwogCi0g
ICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKGZyYW1l
SGFuZGxlKTsKKyAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKGZyYW1lSGFu
ZGxlKTsKICAgICBpZiAoIWZyYW1lSUQpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJ
TkVEX0VSUk9SKEZyYW1lTm90Rm91bmQpOwogCi0gICAgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxsYmFjayA9IGNhbGxiYWNrLmNv
cHlSZWYoKV0oT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIHVpbnQ2NF90IGZyYW1lSUQpIG11
dGFibGUgeworICAgIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+
LCBGcmFtZUlkZW50aWZpZXIpPiBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyksIGNhbGxiYWNrID0gY2FsbGJhY2suY29weVJlZigpXShPcHRp
b25hbDxTdHJpbmc+IGVycm9yVHlwZSwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIG11dGFibGUg
ewogICAgICAgICBpZiAoZXJyb3JUeXBlKSB7CiAgICAgICAgICAgICBjYWxsYmFjay0+c2VuZEZh
aWx1cmUoU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VSUk9SX01FU1NBR0UoKmVycm9yVHlwZSkpOwog
ICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTAzNSw3ICsxMDM1LDcgQEAgdm9pZCBXZWJBdXRvbWF0
aW9uU2Vzc2lvbjo6Y29tcHV0ZUVsZW1lbnRMYXlvdXQoY29uc3QgU3RyaW5nJiBicm93c2luZ0Nv
bnRleHRIYW4KICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJ
TkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFt
ZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShmcmFtZUhhbmRsZSk7CisgICAgYXV0byBmcmFtZUlE
ID0gd2ViRnJhbWVJREZvckhhbmRsZShmcmFtZUhhbmRsZSk7CiAgICAgaWYgKCFmcmFtZUlEKQog
ICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsK
IApAQCAtMTA4Nyw3ICsxMDg3LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2VsZWN0
T3B0aW9uRWxlbWVudChjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmQKICAgICBpZiAo
IXBhZ2UpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05v
dEZvdW5kKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEID0gd2ViRnJhbWVJREZv
ckhhbmRsZShmcmFtZUhhbmRsZSk7CisgICAgYXV0byBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhh
bmRsZShmcmFtZUhhbmRsZSk7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICBBU1lOQ19GQUlM
X1dJVEhfUFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIApAQCAtMTI3MSw3ICsxMjcx
LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Z2V0QWxsQ29va2llcyhjb25zdCBTdHJp
bmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgUmUKICAgICB9OwogCiAgICAgLy8gQWx3YXlzIHNl
bmQgdGhlIG1haW4gZnJhbWUgSUQgYXMgMCBzbyBpdCBpcyByZXNvbHZlZCBvbiB0aGUgV2ViUHJv
Y2VzcyBzaWRlLiBUaGlzIGF2b2lkcyBhIHJhY2Ugd2hlbiBwYWdlLT5tYWluRnJhbWUoKSBpcyBu
dWxsIHN0aWxsLgotICAgIGNvbnN0IHVpbnQ2NF90IG1haW5GcmFtZUlEID0gMDsKKyAgICBjb25z
dCBGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQ7CiAgICAgcGFnZS0+cHJvY2VzcygpLnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6R2V0Q29v
a2llc0ZvckZyYW1lKHBhZ2UtPnBhZ2VJRCgpLCBtYWluRnJhbWVJRCksIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKIH0KIApAQCAtMTI5MSw3ICsxMjkxLDcgQEAgdm9pZCBXZWJBdXRvbWF0
aW9uU2Vzc2lvbjo6ZGVsZXRlU2luZ2xlQ29va2llKGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250
ZXh0SGFuZGwKICAgICB9OwogCiAgICAgLy8gQWx3YXlzIHNlbmQgdGhlIG1haW4gZnJhbWUgSUQg
YXMgMCBzbyBpdCBpcyByZXNvbHZlZCBvbiB0aGUgV2ViUHJvY2VzcyBzaWRlLiBUaGlzIGF2b2lk
cyBhIHJhY2Ugd2hlbiBwYWdlLT5tYWluRnJhbWUoKSBpcyBudWxsIHN0aWxsLgotICAgIGNvbnN0
IHVpbnQ2NF90IG1haW5GcmFtZUlEID0gMDsKKyAgICBjb25zdCBGcmFtZUlkZW50aWZpZXIgbWFp
bkZyYW1lSUQ7CiAgICAgcGFnZS0+cHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6RGVsZXRlQ29va2llKHBhZ2UtPnBhZ2VJRCgp
LCBtYWluRnJhbWVJRCwgY29va2llTmFtZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
IH0KIApAQCAtMTQ1Nyw3ICsxNDU3LDcgQEAgU2ltdWxhdGVkSW5wdXRTb3VyY2UqIFdlYkF1dG9t
YXRpb25TZXNzaW9uOjppbnB1dFNvdXJjZUZvclR5cGUoU2ltdWxhdGVkSW5wdXRTb3UKIH0KIAog
Ly8gTUFSSzogU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyOjpDbGllbnQgQVBJCi12b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uOjp2aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVtZW50KFdlYlBh
Z2VQcm94eSYgcGFnZSwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxl
LCBGdW5jdGlvbjx2b2lkIChPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIE9wdGlvbmFsPEF1
dG9tYXRpb25Db21tYW5kRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0
b21hdGlvblNlc3Npb246OnZpZXdwb3J0SW5WaWV3Q2VudGVyUG9pbnRPZkVsZW1lbnQoV2ViUGFn
ZVByb3h5JiBwYWdlLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBub2Rl
SGFuZGxlLCBGdW5jdGlvbjx2b2lkIChPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIE9wdGlv
bmFsPEF1dG9tYXRpb25Db21tYW5kRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6
SW50UmVjdCwgT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBib29sKT4gZGlkQ29tcHV0ZUVs
ZW1lbnRMYXlvdXRIYW5kbGVyID0gW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcildKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBXZWJDb3JlOjpJbnRSZWN0
LCBPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4gaW5WaWV3Q2VudGVyUG9pbnQsIGJvb2wpIG11
dGFibGUgewogICAgICAgICBpZiAoZXJyb3JUeXBlKSB7CkBAIC0xOTc2LDcgKzE5NzYsNyBAQCB2
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjp0YWtlU2NyZWVuc2hvdChjb25zdCBTdHJpbmcmIGhh
bmRsZSwgY29uc3QgU3RyaW5nKiBvcAogICAgIGlmICghcGFnZSkKICAgICAgICAgQVNZTkNfRkFJ
TF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwogCi0gICAgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5k
bGUgPyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCkpOworICAgIGF1dG8gZnJh
bWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUob3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpvcHRpb25h
bEZyYW1lSGFuZGxlIDogZW1wdHlTdHJpbmcoKSk7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAg
ICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9u
U2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0
aW9uU2Vzc2lvbi5oCmluZGV4IGYzOWMwNjFiNTc4OTJhOTI0OGZkMDlkZmZjZmE3YjhjNTBhMDc1
MzcuLjEyMjJjMjg0MjJiZjk2YzZjYzRiMWE1ZGZjYTQyMjcwZmQwMjNhYTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25T
ZXNzaW9uLmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIK
ICNpbmNsdWRlICJTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaCIKICNpbmNsdWRlICJXZWJFdmVu
dC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5o
PgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC0xNTIsNyArMTUzLDcgQEAgcHVibGljOgog
I2lmIEVOQUJMRShXRUJEUklWRVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKQogICAgIHZvaWQgc2lt
dWxhdGVLZXlib2FyZEludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYsIEtleWJvYXJkSW50ZXJhY3Rp
b24sIFdURjo6VmFyaWFudDxWaXJ0dWFsS2V5LCBDaGFyS2V5PiYmLCBBdXRvbWF0aW9uQ29tcGxl
dGlvbkhhbmRsZXImJikgZmluYWw7CiAjZW5kaWYKLSAgICB2b2lkIHZpZXdwb3J0SW5WaWV3Q2Vu
dGVyUG9pbnRPZkVsZW1lbnQoV2ViUGFnZVByb3h5JiwgdWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
U3RyaW5nJiBub2RlSGFuZGxlLCBGdW5jdGlvbjx2b2lkIChPcHRpb25hbDxXZWJDb3JlOjpJbnRQ
b2ludD4sIE9wdGlvbmFsPEF1dG9tYXRpb25Db21tYW5kRXJyb3I+KT4mJikgZmluYWw7CisgICAg
dm9pZCB2aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVtZW50KFdlYlBhZ2VQcm94eSYsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBGdW5jdGlv
bjx2b2lkIChPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIE9wdGlvbmFsPEF1dG9tYXRpb25D
b21tYW5kRXJyb3I+KT4mJikgZmluYWw7CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCRFJJVkVSX0FD
VElPTlNfQVBJKQogCkBAIC0yMjAsMTQgKzIyMSwxNCBAQCBwcml2YXRlOgogICAgIFJlZjxJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpCcm93c2luZ0NvbnRleHQ+IGJ1aWxkQnJvd3Np
bmdDb250ZXh0Rm9yUGFnZShXZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpGbG9hdFJlY3Qgd2luZG93
RnJhbWUpOwogICAgIHZvaWQgZ2V0TmV4dENvbnRleHQoUmVmPFdlYkF1dG9tYXRpb25TZXNzaW9u
PiYmLCBWZWN0b3I8UmVmPFdlYlBhZ2VQcm94eT4+JiYsIFJlZjxKU09OOjpBcnJheU9mPEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkJyb3dzaW5nQ29udGV4dD4+LCBSZWY8V2ViQXV0
b21hdGlvblNlc3Npb246OkdldEJyb3dzaW5nQ29udGV4dHNDYWxsYmFjaz4mJik7CiAKLSAgICBP
cHRpb25hbDx1aW50NjRfdD4gd2ViRnJhbWVJREZvckhhbmRsZShjb25zdCBTdHJpbmcmKTsKLSAg
ICBTdHJpbmcgaGFuZGxlRm9yV2ViRnJhbWVJRCh1aW50NjRfdCBmcmFtZUlEKTsKKyAgICBPcHRp
b25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IHdlYkZyYW1lSURGb3JIYW5kbGUoY29uc3Qg
U3RyaW5nJik7CisgICAgU3RyaW5nIGhhbmRsZUZvcldlYkZyYW1lSUQoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyKTsKICAgICBTdHJpbmcgaGFuZGxlRm9yV2ViRnJhbWVQcm94eShjb25zdCBXZWJG
cmFtZVByb3h5Jik7CiAKICAgICB2b2lkIHdhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9uUGFn
ZShXZWJQYWdlUHJveHkmLCBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpQYWdlTG9h
ZFN0cmF0ZWd5LCBTZWNvbmRzLCBSZWY8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2Fs
bGJhY2tCYXNlPiYmKTsKICAgICB2b2lkIHdhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9uRnJh
bWUoV2ViRnJhbWVQcm94eSYsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlBhZ2VM
b2FkU3RyYXRlZ3ksIFNlY29uZHMsIFJlZjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpD
YWxsYmFja0Jhc2U+JiYpOwogICAgIHZvaWQgcmVzcG9uZFRvUGVuZGluZ1BhZ2VOYXZpZ2F0aW9u
Q2FsbGJhY2tzV2l0aFRpbWVvdXQoSGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgUmVm
UHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+Jik7Ci0gICAg
dm9pZCByZXNwb25kVG9QZW5kaW5nRnJhbWVOYXZpZ2F0aW9uQ2FsbGJhY2tzV2l0aFRpbWVvdXQo
SGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNh
bGxiYWNrQmFzZT4+Jik7CisgICAgdm9pZCByZXNwb25kVG9QZW5kaW5nRnJhbWVOYXZpZ2F0aW9u
Q2FsbGJhY2tzV2l0aFRpbWVvdXQoSGFzaE1hcDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJl
ZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiYpOwogICAg
IHZvaWQgbG9hZFRpbWVyRmlyZWQoKTsKIAogICAgIHZvaWQgZXhpdEZ1bGxzY3JlZW5XaW5kb3dG
b3JQYWdlKFdlYlBhZ2VQcm94eSYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
QEAgLTI4NCwxMyArMjg1LDEzIEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgU3RyaW5nPiBtX3dlYlBhZ2VIYW5kbGVNYXA7CiAgICAgSGFzaE1hcDxTdHJp
bmcsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBtX2hhbmRsZVdlYlBhZ2VNYXA7CiAKLSAgICBI
YXNoTWFwPHVpbnQ2NF90LCBTdHJpbmc+IG1fd2ViRnJhbWVIYW5kbGVNYXA7Ci0gICAgSGFzaE1h
cDxTdHJpbmcsIHVpbnQ2NF90PiBtX2hhbmRsZVdlYkZyYW1lTWFwOworICAgIEhhc2hNYXA8V2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBTdHJpbmc+IG1fd2ViRnJhbWVIYW5kbGVNYXA7CisgICAg
SGFzaE1hcDxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gbV9oYW5kbGVXZWJGcmFt
ZU1hcDsKIAogICAgIEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFJlZlB0cjxJbnNw
ZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiBtX3BlbmRpbmdOb3JtYWxO
YXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJQYWdlOwogICAgIEhhc2hNYXA8
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRj
aGVyOjpDYWxsYmFja0Jhc2U+PiBtX3BlbmRpbmdFYWdlck5hdmlnYXRpb25JbkJyb3dzaW5nQ29u
dGV4dENhbGxiYWNrc1BlclBhZ2U7Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEluc3Bl
Y3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGluZ05vcm1hbE5h
dmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlckZyYW1lOwotICAgIEhhc2hNYXA8
dWludDY0X3QsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jh
c2U+PiBtX3BlbmRpbmdFYWdlck5hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1Bl
ckZyYW1lOworICAgIEhhc2hNYXA8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWZQdHI8SW5z
cGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4gbV9wZW5kaW5nTm9ybWFs
TmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyRnJhbWU7CisgICAgSGFzaE1h
cDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNw
YXRjaGVyOjpDYWxsYmFja0Jhc2U+PiBtX3BlbmRpbmdFYWdlck5hdmlnYXRpb25JbkJyb3dzaW5n
Q29udGV4dENhbGxiYWNrc1BlckZyYW1lOwogICAgIEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+
PiBtX3BlbmRpbmdJbnNwZWN0b3JDYWxsYmFja3NQZXJQYWdlOwogI2lmIEVOQUJMRShXRUJEUklW
RVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKQogICAgIEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIEZ1bmN0aW9uPHZvaWQoT3B0aW9uYWw8QXV0b21hdGlvbkNvbW1hbmRFcnJvcj4pPj4g
bV9wZW5kaW5nS2V5Ym9hcmRFdmVudHNGbHVzaGVkQ2FsbGJhY2tzUGVyUGFnZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCmluZGV4IGE1MWEyMjM2MjM4NDE1
MWFiMTFkNDg5NDM2OWY4YTE4NTgwMDY3ZGEuLjMwMmY2ODIyODJiY2M3ZWUzOGQzZjY3MjdkNmQy
M2Y4NGIyODlkYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJ
RGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5tbQpAQCAtMTAzMiw3ICsxMDMyLDcgQEAgdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6Y2hl
Y2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYlBhZ2VQcm94eSYgcGFnZSwKICAgICBV
UkwgcmVxdWVzdEZyYW1lVVJMIHsgVVJMKCksIGZyYW1lLnVybCgpIH07CiAgICAgVVJMIG1haW5G
cmFtZVVSTCB7IFVSTCgpLCBtYWluRnJhbWUtPnVybCgpIH07CiAKLSAgICBbKGlkIDxXS1VJRGVs
ZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IGNo
ZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1lVVJM
Om1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6ZnJhbWUuZnJhbWVJRCgpIGRlY2lzaW9uSGFu
ZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOworICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZh
dGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgY2hlY2tVc2VyTWVk
aWFQZXJtaXNzaW9uRm9yVVJMOnJlcXVlc3RGcmFtZVVSTCBtYWluRnJhbWVVUkw6bWFpbkZyYW1l
VVJMIGZyYW1lSWRlbnRpZmllcjpmcmFtZS5mcmFtZUlEKCkudG9VSW50NjQoKSBkZWNpc2lvbkhh
bmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKIH0KIAogdm9pZCBVSURlbGVnYXRlOjpVSUNs
aWVudDo6bWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1JlbG9hZEZyYW1lRXJyb3JSZWNvdmVyeUF0dGVtcHRl
ci5tbQppbmRleCA4NGQyMGM0Y2U4YjFmMDAxN2UxYmE3N2I5ZDBkZjRmMTAxMzhhOTAwLi45YzQw
OTJlZmQ0MzZkMDIyNDBiODA2YTJjMjQwZjY0MzZkMmVkYjVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1JlbG9hZEZyYW1lRXJyb3JSZWNvdmVyeUF0dGVtcHRl
ci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1JlbG9hZEZyYW1lRXJy
b3JSZWNvdmVyeUF0dGVtcHRlci5tbQpAQCAtMzIsNiArMzIsNyBAQAogI2ltcG9ydCAiV2ViRnJh
bWVQcm94eS5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNz
UHJveHkuaCIKKyNpbXBvcnQgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW1wb3J0IDx3
dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KIApAQCAtNjIsOCAr
NjMsNyBAQCAtIChCT09MKWF0dGVtcHRSZWNvdmVyeQogICAgIGlmICghd2ViVmlldykKICAgICAg
ICAgcmV0dXJuIE5POwogCi0gICAgdWludDY0X3QgZnJhbWVJRCA9IFtfZnJhbWVIYW5kbGUgX2Zy
YW1lSURdOwotICAgIFdlYktpdDo6V2ViRnJhbWVQcm94eSogd2ViRnJhbWVQcm94eSA9IHdlYlZp
ZXctPl9wYWdlLT5wcm9jZXNzKCkud2ViRnJhbWUoZnJhbWVJRCk7CisgICAgV2ViS2l0OjpXZWJG
cmFtZVByb3h5KiB3ZWJGcmFtZVByb3h5ID0gd2ViVmlldy0+X3BhZ2UtPnByb2Nlc3MoKS53ZWJG
cmFtZShXZWJDb3JlOjpmcmFtZUlkZW50aWZpZXJGcm9tSUQoW19mcmFtZUhhbmRsZSBfZnJhbWVJ
RF0pKTsKICAgICBpZiAoIXdlYkZyYW1lUHJveHkpCiAgICAgICAgIHJldHVybiBOTzsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQpp
bmRleCBhMWFmOThkMjEwOTNlNWFlZWU4YjNkNDgwYjgxNjFmZTI2ZTllYTUxLi5kOTYxMzkxOGY3
NWZhNWU4ZGY1ODM0ZjI1MjQ0MzhlMDZlOTg2Yjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQpAQCAtMTAxLDEyICsxMDEsMTIg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmJlZ2luU2FmZUJyb3dzaW5nQ2hlY2soY29uc3QgVVJMJiB1
cmwsIGJvb2wgZm9yTWFpbkZyYW1lTmF2aWcKIH0KIAogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRF
UklORykKLXZvaWQgV2ViUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJh
bWUoY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiB1bmJsb2NrSGFu
ZGxlciwgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpjb250ZW50RmlsdGVy
RGlkQmxvY2tMb2FkRm9yRnJhbWUoY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tI
YW5kbGVyJiB1bmJsb2NrSGFuZGxlciwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAg
Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVm
KCksIHVuYmxvY2tIYW5kbGVyLCBmcmFtZUlEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmNv
bnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmIHByb2Nlc3MsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYg
dW5ibG9ja0hhbmRsZXIsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6Y29u
dGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYgcHJvY2VzcywgY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiB1
bmJsb2NrSGFuZGxlciwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgaWYgKFdlYkZy
YW1lUHJveHkqIGZyYW1lID0gcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCkpCiAgICAgICAgIGZy
YW1lLT5jb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkKHVuYmxvY2tIYW5kbGVyKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
Y3BwCmluZGV4IDk0ZmFmNmI5ZGUyNjIwMWQ4NGQyNmZmODM5MzNmODIyOWMwNWQ2YjkuLjkxZWNl
MWYwZGFmZmUzZWE2M2FkYmMwZDkxZWFjNGQxODExMTMwOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAt
MzEyLDcgKzMxMiw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29uc3QgSVBDOjpBdHRhCiAjZW5kaWYKIH0KIAotdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uo
UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSYmIGNvcmVDaGFsbGVuZ2UsIHVpbnQ2NF90IGNoYWxsZW5nZUlEKQor
dm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29y
ZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmJiBjb3JlQ2hhbGxlbmdlLCB1aW50NjRfdCBjaGFs
bGVuZ2VJRCkKIHsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgaWYgKGF1dG8qIHNl
cnZpY2VXb3JrZXJQcm9jZXNzUHJveHkgPSBtX3Byb2Nlc3NQb29sLnNlcnZpY2VXb3JrZXJQcm9j
ZXNzUHJveHlGcm9tUGFnZUlEKHBhZ2VJRCkpIHsKQEAgLTczNyw3ICs3MzcsNyBAQCB2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OnNldEdyYW5kZmF0aGVyZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBjb25zdCBSZWdpcwogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29y
a1Byb2Nlc3M6OlNldEdyYW5kZmF0aGVyZWQoc2Vzc2lvbklELCByZXNvdXJjZURvbWFpbiwgaXNH
cmFuZGZhdGhlcmVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShQYWdlSWRlbnRp
ZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBz
dWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oUGFnZUlkZW50
aWZpZXIgcGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVE
b21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHBh
Z2VJRCk7CiAgICAgaWYgKCFwYWdlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IDQzMzU0NWMwZTMzZmFhZWVk
OWRlYmIzNGY2YjIwY2ZjYWU1ZTk1YzguLjQwZjgxZGU5YjQ3ZjE5MjIxOTAyNmE2ZThhMDdiMmE1
ZTJkNmE5OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC04Miw3ICs4Miw2IEBAIHB1YmxpYzoKICAgICB1c2lu
ZyBOYXZpZ2F0ZWRUb0RvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwogICAgIHVz
aW5nIERvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcyA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluOwogICAgIHVzaW5nIE9wZW5lckRvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
OwotICAgIHVzaW5nIEZyYW1lSUQgPSB1aW50NjRfdDsKIAogICAgIGV4cGxpY2l0IE5ldHdvcmtQ
cm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmKTsKICAgICB+TmV0d29ya1Byb2Nlc3NQcm94eSgp
OwpAQCAtMTMwLDcgKzEyOSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFByZXZhbGVudFJlc291
cmNlRm9yRGVidWdNb2RlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRWZXJ5UHJldmFsZW50
UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRy
aWVzKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+
IGRvbWFpbnMpPiYmKTsKLSAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgRnJhbWVJRCwgY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25z
dCBUb3BGcmFtZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAg
IHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3Qg
VG9wRnJhbWVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2
b2lkIHJlc2V0UGFyYW1ldGVyc1RvRGVmYXVsdFZhbHVlcyhQQUw6OlNlc3Npb25JRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNjaGVkdWxlQ2xlYXJJbk1lbW9yeUFu
ZFBlcnNpc3RlbnQoUEFMOjpTZXNzaW9uSUQsIFNob3VsZEdyYW5kZmF0aGVyU3RhdGlzdGljcywg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNjaGVkdWxlQ2xlYXJJbk1l
bW9yeUFuZFBlcnNpc3RlbnQoUEFMOjpTZXNzaW9uSUQsIE9wdGlvbmFsPFdhbGxUaW1lPiBtb2Rp
ZmllZFNpbmNlLCBTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3MsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CkBAIC0yMTMsNyArMjEyLDcgQEAgcHJpdmF0ZToKICAgICAvLyBNZXNzYWdl
IGhhbmRsZXJzCiAgICAgdm9pZCBkaWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAgICAgdm9pZCBkaWRDcmVhdGVOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25zdCBJUEM6OkF0dGFjaG1lbnQmKTsKLSAgICB2
b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2Um
JiwgdWludDY0X3QgY2hhbGxlbmdlSUQpOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYsIHVpbnQ2NF90IGNoYWxs
ZW5nZUlEKTsKICAgICB2b2lkIGRpZEZldGNoV2Vic2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJ
RCwgY29uc3QgV2Vic2l0ZURhdGEmKTsKICAgICB2b2lkIGRpZERlbGV0ZVdlYnNpdGVEYXRhKHVp
bnQ2NF90IGNhbGxiYWNrSUQpOwogICAgIHZvaWQgZGlkRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmln
aW5zKHVpbnQ2NF90IGNhbGxiYWNrSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmlu
ZGV4IDExZDhjNWRlZTFkYmE4MWY4ZjYzZjdkOTQ4ZWY2NjE2MTk4MWQxMzQuLmJmYWY5ZjA0OTZl
NTZhOWI5MzFlZjZmZjc3NTFjM2FjZjVkMTM5YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2Fn
ZXMuaW4KQEAgLTIzLDcgKzIzLDcgQEAKIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkg
TGVnYWN5UmVjZWl2ZXIgewogICAgIERpZENyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSWRlbnRpZmllcikKIAotICAgIERpZFJlY2Vp
dmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQs
IHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGNoYWxs
ZW5nZSwgdWludDY0X3QgY2hhbGxlbmdlSUQpCisgICAgRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGNoYWxs
ZW5nZSwgdWludDY0X3QgY2hhbGxlbmdlSUQpCiAKICAgICBEaWRGZXRjaFdlYnNpdGVEYXRhKHVp
bnQ2NF90IGNhbGxiYWNrSUQsIHN0cnVjdCBXZWJLaXQ6OldlYnNpdGVEYXRhIHdlYnNpdGVEYXRh
KQogICAgIERpZERlbGV0ZVdlYnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpCkBAIC00OCw3
ICs0OCw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIg
ewogICAgIE5vdGlmeVdlYnNpdGVEYXRhRGVsZXRpb25Gb3JSZWdpc3RyYWJsZURvbWFpbnNGaW5p
c2hlZCgpCiAgICAgTm90aWZ5V2Vic2l0ZURhdGFTY2FuRm9yUmVnaXN0cmFibGVEb21haW5zRmlu
aXNoZWQoKQogICAgIE5vdGlmeVJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlGaW5pc2hl
ZCh1bnNpZ25lZCB0b3RhbFByZXZhbGVudFJlc291cmNlcywgdW5zaWduZWQgdG90YWxQcmV2YWxl
bnRSZXNvdXJjZXNXaXRoVXNlckludGVyYWN0aW9uLCB1bnNpZ25lZCB0b3AzU3ViZnJhbWVVbmRl
clRvcEZyYW1lT3JpZ2lucykKLSAgICBSZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4g
dG9wRnJhbWVEb21haW4pIC0+IChib29sIHVzZXJEaWRHcmFudEFjY2VzcykgQXN5bmMKKyAgICBS
ZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1l
RG9tYWluKSAtPiAoYm9vbCB1c2VyRGlkR3JhbnRBY2Nlc3MpIEFzeW5jCiAgICAgRGVsZXRlV2Vi
c2l0ZURhdGFJblVJUHJvY2Vzc0ZvclJlZ2lzdHJhYmxlRG9tYWlucyhQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBP
cHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMsIFZl
Y3RvcjxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gZG9tYWlucykgLT4gKEhhc2hTZXQ8V2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4+IGRvbWFpbnNXaXRoTWF0Y2hpbmdEYXRhUmVjb3Jkcykg
QXN5bmMKICAgICBEaWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2
YWxlbnRSZXNvdXJjZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAppbmRl
eCA2NjZmYmQzZGExMGZiNWQ1OWFmMjEwNTI3YTNjMTU0NWMxNDgxM2UyLi5kN2YwYzNjOTUwMjc0
ZGU4ZTBhOTVjYjg1YWRjMjc2NTU4ZjcyZDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAgdm9pZCBQ
cm92aXNpb25hbFBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbShBUEk6Ok5hdmlnYXRpb24m
IG5hdmlnYXRpb24sIFdlYkIKICAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5z
dGFydCgpOwogfQogCi1pbmxpbmUgYm9vbCBQcm92aXNpb25hbFBhZ2VQcm94eTo6dmFsaWRhdGVJ
bnB1dCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBPcHRpb25hbDx1aW50NjRfdD4mIG5hdmlnYXRp
b25JRCkKK2lubGluZSBib29sIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojp2YWxpZGF0ZUlucHV0KEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBPcHRpb25hbDx1aW50NjRfdD4mIG5hdmlnYXRp
b25JRCkKIHsKICAgICAvLyBJZiB0aGUgcHJldmlvdXMgcHJvdmlzaW9uYWwgbG9hZCB1c2VkIGFu
IGV4aXN0aW5nIHByb2Nlc3MsIHdlIG1heSByZWNlaXZlIGxlZnRvdmVyIElQQyBmb3IgYSBwcmV2
aW91cyBuYXZpZ2F0aW9uLCB3aGljaCB3ZSBuZWVkIHRvIGlnbm9yZS4KICAgICBpZiAoIW1fbWFp
bkZyYW1lIHx8IG1fbWFpbkZyYW1lLT5mcmFtZUlEKCkgIT0gZnJhbWVJRCkKQEAgLTE4NSw5ICsx
ODUsOSBAQCBpbmxpbmUgYm9vbCBQcm92aXNpb25hbFBhZ2VQcm94eTo6dmFsaWRhdGVJbnB1dCh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBPcHRpb25hbAogICAgIHJldHVybiAhbmF2aWdhdGlvbklE
IHx8ICEqbmF2aWdhdGlvbklEIHx8ICpuYXZpZ2F0aW9uSUQgPT0gbV9uYXZpZ2F0aW9uSUQ7CiB9
CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRf
dCBmcmFtZUlEKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1l
KEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
UHJvY2Vzc1N3YXBwaW5nLCAiZGlkQ3JlYXRlTWFpbkZyYW1lOiBwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wYWdlLnBhZ2VJRCgpLnRvVUludDY0KCksIGZyYW1l
SUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2Vzc1N3YXBwaW5nLCAiZGlkQ3Jl
YXRlTWFpbkZyYW1lOiBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwg
bV9wYWdlLnBhZ2VJRCgpLnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAgICAgQVNT
RVJUKCFtX21haW5GcmFtZSk7CiAKICAgICBtX21haW5GcmFtZSA9IFdlYkZyYW1lUHJveHk6OmNy
ZWF0ZShtX3BhZ2UsIGZyYW1lSUQpOwpAQCAtMjEyLDcgKzIxMiw3IEBAIHZvaWQgUHJvdmlzaW9u
YWxQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRfdCBmcmFtZUlEKQogICAgIH0K
IH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0
KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9u
VVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6
ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBj
b25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCkKIHsKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCkpCiAgICAgICAgIHJldHVybjsK
QEAgLTIyMCwxMiArMjIwLDEyIEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZv
cm1DbGllbnRSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluCiAgICAgbV9wYWdl
LmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBzb3Vy
Y2VVUkxTdHJpbmcsIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBmcmFtZUlEKTsKIH0KIAotdm9pZCBQ
cm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCwgVVJMJiYgdW5y
ZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgUHJvdmlzaW9uYWxQ
YWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYgdXJsLCBVUkwmJiB1bnJlYWNo
YWJsZVVSTCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIGlmICghdmFsaWRhdGVJ
bnB1dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgImRpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWU6IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IG5hdmlnYXRpb25JRCA9ICUiIFBSSXU2NCwgbV9wYWdlLnBhZ2VJRCgpLnRvVUludDY0KCksIGZy
YW1lSUQsIG5hdmlnYXRpb25JRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNz
U3dhcHBpbmcsICJkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiBwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9uSUQgPSAlIiBQUkl1NjQs
IG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCksIG5hdmlnYXRp
b25JRCk7CiAgICAgQVNTRVJUKG1fcHJvdmlzaW9uYWxMb2FkVVJMLmlzTnVsbCgpKTsKICAgICBt
X3Byb3Zpc2lvbmFsTG9hZFVSTCA9IHVybDsKIApAQCAtMjQwLDEyICsyNDAsMTIgQEAgdm9pZCBQ
cm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCB1aW4KICAgICBtX3BhZ2UuZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JG
cmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQsIFdU
Rk1vdmUodXJsKSwgV1RGTW92ZSh1bnJlYWNoYWJsZVVSTCksIHVzZXJEYXRhKTsKIH0KIAotdm9p
ZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zp
c2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgV2ViQ29yZTo6
V2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYg
dXNlckRhdGEpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yJiBlcnJvciwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2Fk
aW5nLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0
KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJFTEVBU0Vf
TE9HX0VSUk9SX0lGX0FMTE9XRUQoUHJvY2Vzc1N3YXBwaW5nLCAiZGlkRmFpbFByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lOiBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAi
LCBuYXZpZ2F0aW9uSUQgPSAlIiBQUkl1NjQsIG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBm
cmFtZUlELCBuYXZpZ2F0aW9uSUQpOworICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQo
UHJvY2Vzc1N3YXBwaW5nLCAiZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiBwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9uSUQgPSAlIiBQ
Ukl1NjQsIG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCksIG5h
dmlnYXRpb25JRCk7CiAgICAgQVNTRVJUKCFtX3Byb3Zpc2lvbmFsTG9hZFVSTC5pc051bGwoKSk7
CiAgICAgbV9wcm92aXNpb25hbExvYWRVUkwgPSB7IH07CiAKQEAgLTI1NiwxMiArMjU2LDEyIEBA
IHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBjb25zCiAgICAgbV9wYWdlLmRpZEZhaWxQcm92aXNpb25hbExv
YWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCBuYXZpZ2F0aW9uSUQsIHByb3Zpc2lvbmFsVVJMLCBlcnJvciwgd2lsbENvbnRp
bnVlTG9hZGluZywgdXNlckRhdGEpOyAvLyBNYXkgZGVsZXRlIHx0aGlzfC4KIH0KIAotdm9pZCBQ
cm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBm
cmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29u
c3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFp
bnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBm
b3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQg
UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBl
LCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRU
eXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9v
bCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNv
bnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRh
KQogewogICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGlu
ZywgImRpZENvbW1pdExvYWRGb3JGcmFtZTogcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEID0gJSIgUFJJdTY0LCBtX3BhZ2UucGFnZUlEKCku
dG9VSW50NjQoKSwgZnJhbWVJRCwgbmF2aWdhdGlvbklEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKFByb2Nlc3NTd2FwcGluZywgImRpZENvbW1pdExvYWRGb3JGcmFtZTogcGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEID0gJSIgUFJJ
dTY0LCBtX3BhZ2UucGFnZUlEKCkudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpLCBuYXZp
Z2F0aW9uSUQpOwogICAgIG1fcHJvdmlzaW9uYWxMb2FkVVJMID0geyB9OwogICAgIG1fcHJvY2Vz
cy0+cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSwgbV9wYWdlLnBhZ2VJRCgpKTsKIApAQCAtMjY5LDcgKzI2OSw3IEBAIHZv
aWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCBuYXZpCiAgICAgbV9wYWdlLmNvbW1pdFByb3Zpc2lvbmFsUGFnZShm
cmFtZUlELCBuYXZpZ2F0aW9uSUQsIG1pbWVUeXBlLCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92
aWRlciwgZnJhbWVMb2FkVHlwZSwgY2VydGlmaWNhdGVJbmZvLCBjb250YWluc1BsdWdpbkRvY3Vt
ZW50LCBmb3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIHVzZXJEYXRhKTsgLy8gV2lsbCBkZWxldGUg
fHRoaXN8LgogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWROYXZpZ2F0ZVdpdGhO
YXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiBzdG9yZSwgdWludDY0
X3QgZnJhbWVJRCkKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZE5hdmlnYXRlV2l0aE5h
dmlnYXRpb25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmIHN0b3JlLCBGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCkpCiAg
ICAgICAgIHJldHVybjsKQEAgLTI3Nyw3ICsyNzcsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVBy
b3h5OjpkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0
YQogICAgIG1fcGFnZS5kaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YVNoYXJlZChtX3Byb2Nl
c3MuY29weVJlZigpLCBzdG9yZSwgZnJhbWVJRCk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdl
UHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVBy
b3h5OjpkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCkKIHsKICAgICBpZiAoIXZhbGlk
YXRlSW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjg1
LDcgKzI4NSw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lv
bmFsVVJMRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWluCiAgICAgbV9wYWdlLmRpZENoYW5n
ZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJ
RCwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKHVybCkpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFn
ZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmModWludDY0X3QgZnJh
bWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwg
V2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCit2b2lkIFByb3Zpc2lv
bmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAog
ICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0
aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsCiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYg
cmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQogewpAQCAtMjk2LDcgKzI5Niw3IEBAIHZvaWQgUHJv
dmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyh1
aW50NjRfdCBmcmFtZUlECiAgICAgICAgIFdURk1vdmUoZnJhbWVJbmZvRGF0YSksIG9yaWdpbmF0
aW5nUGFnZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVx
dWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB1c2VyRGF0YSwgbGlzdGVuZXJJ
RCk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYg
ZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50
aWZpZXIsCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIg
aWRlbnRpZmllciwKICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0
cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7
CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCkBAIC0zMDUs
NyArMzA1LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ28KICAgICBtX3BhZ2UuZGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2VTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVz
dCwgY2FuU2hvd01JTUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0ZSwgbGlzdGVuZXJJRCwgdXNlckRh
dGEpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVk
aXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGlu
YXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVBy
b3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJp
bmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIEZyYW1lSWRlbnRpZmllciBm
cmFtZUlEKQogewogICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlEKSkKICAgICAgICAgcmV0
dXJuOwpAQCAtMzEzLDcgKzMxMyw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBl
cmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluCiAgICAgbV9w
YWdlLmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdFNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBz
b3VyY2VVUkxTdHJpbmcsIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBmcmFtZUlEKTsKIH0KIAotdm9p
ZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBVc2VyRGF0YSYgdXNl
ckRhdGEpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJl
Y3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBj
b25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1l
SUQsIG5hdmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKQEAgLTMzMSw3ICszMzEsNyBAQCB2
b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpiYWNrRm9yd2FyZEdvVG9JdGVtKGNvbnN0IFdlYkNv
cmU6OkJhY2tGb3J3YXJkSXRlbUlkZQogICAgIG1fcGFnZS5iYWNrRm9yd2FyZEdvVG9JdGVtU2hh
cmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGlkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvblN5bmModWludDY0X3QgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCit2b2lkIFByb3Zpc2lvbmFsUGFn
ZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlk
ZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0
YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELAogICAgIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHks
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLAogICAgIGNvbnN0
IFVzZXJEYXRhJiB1c2VyRGF0YSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQpAQCAtMzY2LDcg
KzM2Niw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OnJlZ2lzdGVyV2ViUHJvY2Vzc0Fj
Y2Vzc2liaWxpdHlUb2tlbihjb25zdCBJUEM6OkRhdGFSCiAjZW5kaWYKIAogI2lmIEVOQUJMRShD
T05URU5UX0ZJTFRFUklORykKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmNvbnRlbnRGaWx0
ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9j
a0hhbmRsZXImIHVuYmxvY2tIYW5kbGVyLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBQcm92aXNp
b25hbFBhZ2VQcm94eTo6Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKGNvbnN0IFdl
YkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYgdW5ibG9ja0hhbmRsZXIsIEZyYW1l
SWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIG1fcGFnZS5jb250ZW50RmlsdGVyRGlkQmxvY2tM
b2FkRm9yRnJhbWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgdW5ibG9ja0hhbmRsZXIsIGZy
YW1lSUQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9u
YWxQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVBy
b3h5LmgKaW5kZXggMzMzMjE2YTJjYzc4NTY2NzE2MzI0YWIwNmZmMWIzYjk2MDgwYzBiZS4uZGUz
ZWU2ODdmYTdkODE3NTBiNThmZWRhNTg0NTgzZmQxZjFlMmQ2NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCkBAIC05MiwyMyArOTIsMjMgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpIGZpbmFsOwogICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+
JikgZmluYWw7CiAKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3lu
Yyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRp
b25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiwKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0
YSYmLAogICAgICAgICBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRp
bmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJl
cXVlc3RCb2R5LAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RS
ZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCB1aW50NjRfdCBsaXN0ZW5lcklEKTsKLSAgICB2b2lk
IGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwKKyAg
ICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmLAogICAgICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29s
IGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0
X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZENoYW5nZVByb3Zp
c2lvbmFsVVJMRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBVUkwmJik7Ci0gICAgdm9pZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVp
bnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2
b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25EYXRh
U3RvcmUmLCB1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZFBlcmZvcm1DbGllbnRSZWRp
cmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5h
dGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRDcmVhdGVNYWlu
RnJhbWUodWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYs
IFVSTCYmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkQ29t
bWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRl
ciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZv
JiwgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNl
Y3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmKTsK
LSAgICB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4s
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcs
IGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZy
YW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwm
Jik7CisgICAgdm9pZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQ
cm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFVzZXJEYXRh
Jik7CisgICAgdm9pZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZp
Z2F0aW9uRGF0YVN0b3JlJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRp
ZFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29u
c3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
KTsKKyAgICB2b2lkIGRpZENyZWF0ZU1haW5GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIp
OworICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYsIFVSTCYmIHVucmVhY2hh
YmxlVVJMLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvckZyYW1l
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBT
dHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50
MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mLCBib29s
IGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29u
dGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZv
aWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2lu
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5n
LCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgc3RhcnRVUkxTY2hlbWVUYXNrKFVSTFNjaGVt
ZVRhc2tQYXJhbWV0ZXJzJiYpOwogICAgIHZvaWQgYmFja0ZvcndhcmRHb1RvSXRlbShjb25zdCBX
ZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJik+JiYpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmModWludDY0X3QgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFt
ZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAor
ICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0
aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKICAgICAg
ICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVz
ZXJEYXRhJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmKTsKICNpZiBVU0UoUVVJQ0tfTE9PSykKQEAgLTEx
OCwxMSArMTE4LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWdpc3RlcldlYlByb2Nlc3NBY2Nl
c3NpYmlsaXR5VG9rZW4oY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7CiAjZW5kaWYKICNpZiBF
TkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCi0gICAgdm9pZCBjb250ZW50RmlsdGVyRGlkQmxvY2tM
b2FkRm9yRnJhbWUoY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiwg
dWludDY0X3QgZnJhbWVJRCk7CisgICAgdm9pZCBjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9y
RnJhbWUoY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiwgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyKTsKICNlbmRpZgogCiAgICAgdm9pZCBpbml0aWFsaXplV2ViUGFn
ZSgpOwotICAgIGJvb2wgdmFsaWRhdGVJbnB1dCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBPcHRp
b25hbDx1aW50NjRfdD4mIG5hdmlnYXRpb25JRCA9IFdURjo6bnVsbG9wdCk7CisgICAgYm9vbCB2
YWxpZGF0ZUlucHV0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgT3B0aW9uYWw8dWlu
dDY0X3Q+JiBuYXZpZ2F0aW9uSUQgPSBXVEY6Om51bGxvcHQpOwogCiAgICAgV2ViUGFnZVByb3h5
JiBtX3BhZ2U7CiAgICAgUmVmPFdlYlByb2Nlc3NQcm94eT4gbV9wcm9jZXNzOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcApp
bmRleCBiMmY3NzI5ZmQzOTM1ZjcyZTFiYzkxMTVhMzBhMThmNjRlMzlmZDI1Li5mNzhhN2MzODZj
ODk1OTAxMTU2YjU2OGFhZjk4YmFiMjNiMDgwNmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcApAQCAtOTAsNyArOTAs
NyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OnVwZGF0ZVByZWZlcmVuY2VzU3Rv
cmUoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uOjpVcGRhdGVQcmVmZXJlbmNlc1N0b3JlIHsgc3RvcmUgfSwg
MCk7CiB9CiAKLXZvaWQgU2VydmljZVdvcmtlclByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJ
RCwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYgY2hhbGxlbmdlKQordm9pZCBT
ZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUmVmPEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYgY2hhbGxlbmdlKQogewogICAgIFVOVVNFRF9Q
QVJBTShwYWdlSUQpOwogICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaAppbmRleCBlOTM2
NWFmYWM0ZjQ3ZDdmZDc0N2Y5ODk4M2FkOTk5MGU4YWI5NzU1Li43ZDg4NzYwNWVlYTBiNjQ3OWQ2
OTc2OTFhYmI1NTI4MDdkZTIxODQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoK
IAogICAgIHN0YXRpYyBib29sIGhhc1JlZ2lzdGVyZWRTZXJ2aWNlV29ya2Vycyhjb25zdCBTdHJp
bmcmIHNlcnZpY2VXb3JrZXJEaXJlY3RvcnkpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1l
SUQsIFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4m
Jik7CiAKICAgICB2b2lkIHN0YXJ0KGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmLCBPcHRpb25h
bDxQQUw6OlNlc3Npb25JRD4gaW5pdGlhbFNlc3Npb25JRCk7CiAgICAgdm9pZCBzZXRVc2VyQWdl
bnQoY29uc3QgU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
dXNwZW5kZWRQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVk
UGFnZVByb3h5LmNwcAppbmRleCBmNmQzYjUzNmRmOGFhYjE5N2Q5MTFlZDE0ZDJlYTQwZmVmZjJl
MWRkLi5jNjRkN2VmMTliZDBkZTcxMTY5Njk5OTJjMDc2NzFlNjFkODI4M2VkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHAKQEAgLTc4LDcgKzc4
LDcgQEAgc3RhdGljIGNvbnN0IEhhc2hTZXQ8SVBDOjpTdHJpbmdSZWZlcmVuY2U+JiBtZXNzYWdl
TmFtZXNUb0lnbm9yZVdoaWxlU3VzcGVuZGVkKCkKIH0KICNlbmRpZgogCi1TdXNwZW5kZWRQYWdl
UHJveHk6OlN1c3BlbmRlZFBhZ2VQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYgcHJvY2VzcywgdWludDY0X3QgbWFpbkZyYW1lSUQsIFNob3VsZERlbGF5Q2xv
c2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSBzaG91bGREZWxheUNs
b3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpCitTdXNwZW5kZWRQ
YWdlUHJveHk6OlN1c3BlbmRlZFBhZ2VQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIFJlZjxXZWJQ
cm9jZXNzUHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlELCBTaG91
bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUgc2hv
dWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKQog
ICAgIDogbV9wYWdlKHBhZ2UpCiAgICAgLCBtX3Byb2Nlc3MoV1RGTW92ZShwcm9jZXNzKSkKICAg
ICAsIG1fbWFpbkZyYW1lSUQobWFpbkZyYW1lSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1N1c3BlbmRlZFBhZ2VQcm94eS5oCmluZGV4IDBkYWQwNTRiMjcyYTgxOWQ2ZTBiMDZjNzdjZWQ4
MTJhMjYzZDEzNDAuLjkxNjUzY2M3OGVhMDA4NjYwYjE0ZTMzNTA1NTNhYTg5ZTczZDE5MTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oCkBAIC0yOSw2
ICsyOSw3IEBACiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxlci5oIgogI2luY2x1ZGUgIldlYkJh
Y2tGb3J3YXJkTGlzdEl0ZW0uaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCkBAIC00MiwxMiArNDMsMTIgQEAg
ZW51bSBjbGFzcyBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ01vZGUgOiBib29sIHsgTm8KIGNsYXNzIFN1c3BlbmRlZFBhZ2VQcm94eSBmaW5hbDog
cHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3VzcGVu
ZGVkUGFnZVByb3h5PiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0g
ICAgU3VzcGVuZGVkUGFnZVByb3h5KFdlYlBhZ2VQcm94eSYsIFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYsIHVpbnQ2NF90IG1haW5GcmFtZUlELCBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5n
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOworICAgIFN1c3BlbmRlZFBhZ2VQcm94eShXZWJQ
YWdlUHJveHkmLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgbWFpbkZyYW1lSUQsIFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nTW9kZSk7CiAgICAgflN1c3BlbmRlZFBhZ2VQcm94eSgpOwogCiAgICAgV2Vi
UGFnZVByb3h5JiBwYWdlKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlOyB9CiAgICAgV2ViUHJvY2Vz
c1Byb3h5JiBwcm9jZXNzKCkgeyByZXR1cm4gbV9wcm9jZXNzLmdldCgpOyB9Ci0gICAgdWludDY0
X3QgbWFpbkZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX21haW5GcmFtZUlEOyB9CisgICAgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9tYWlu
RnJhbWVJRDsgfQogCiAgICAgYm9vbCBwYWdlSXNDbG9zZWRPckNsb3NpbmcoKSBjb25zdDsKIApA
QCAtNzQsNyArNzUsNyBAQCBwcml2YXRlOgogCiAgICAgV2ViUGFnZVByb3h5JiBtX3BhZ2U7CiAg
ICAgUmVmPFdlYlByb2Nlc3NQcm94eT4gbV9wcm9jZXNzOwotICAgIHVpbnQ2NF90IG1fbWFpbkZy
YW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fbWFpbkZyYW1lSUQ7CiAgICAg
Ym9vbCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsKICAgICBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVu
dGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUgbV9zaG91bGREZWxheUNsb3NpbmdVbnRp
bEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUgeyBTaG91bGREZWxheUNsb3NpbmdV
bnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGU6Ok5vIH07CiAgICAgYm9vbCBt
X3Nob3VsZENsb3NlV2hlbkVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUgeyBmYWxz
ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvbkNoZWNrUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvbkNoZWNrUHJveHkuY3BwCmluZGV4IGFiNzkyNDAyOWUwZWYzYTNiYmFiNzRjYmFjMDBj
Mjk3ZmE5NmEzY2EuLjRmYTZmZGY2MDhkNmMzN2VmZWNiMGE1ZTA2YzJjZmRlNTBlYjU4NGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVj
a1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uQ2hlY2tQcm94eS5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5
OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSh1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0
aW9uSGFuZGxlciYmIGhhbmRsZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExl
dmVsRG9jdW1lbnRPcmlnaW4pCitVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eTo6VXNlck1l
ZGlhUGVybWlzc2lvbkNoZWNrUHJveHkoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRp
b25IYW5kbGVyJiYgaGFuZGxlciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJN
ZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbikKICAgICA6IG1fZnJhbWVJRChmcmFtZUlEKQogICAgICwgbV9jb21w
bGV0aW9uSGFuZGxlcihXVEZNb3ZlKGhhbmRsZXIpKQogICAgICwgbV91c2VyTWVkaWFEb2N1bWVu
dFNlY3VyaXR5T3JpZ2luKFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1By
b3h5LmgKaW5kZXggZGMzNDA5ODE3MTRjNzI3OTNjMDEwNWQ3ODMzOTFiN2ZhOTQ1OTE4Zi4uZTgw
YjUxOTE4NDFmZGIyNDY3NTUxMDk3MjUwOTY2ZTkwYjdlMmEzMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oCkBA
IC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9N
ZWRpYUNvbnN0cmFpbnRzLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC00MSw3ICs0Miw3IEBAIHB1YmxpYzoK
ICAgICBlbnVtIGNsYXNzIFBlcm1pc3Npb25JbmZvIHsgRXJyb3IsIFVua25vd24sIEdyYW50ZWQg
fTsKICAgICB1c2luZyBDb21wbGV0aW9uSGFuZGxlciA9IFdURjo6Q29tcGxldGlvbkhhbmRsZXI8
dm9pZChQZXJtaXNzaW9uSW5mbyk+OwogCi0gICAgc3RhdGljIFJlZjxVc2VyTWVkaWFQZXJtaXNz
aW9uQ2hlY2tQcm94eT4gY3JlYXRlKHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVy
JiYgaGFuZGxlciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbikKKyAgICBzdGF0aWMgUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5PiBj
cmVhdGUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVy
JiYgaGFuZGxlciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbikKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFVzZXJNZWRpYVBl
cm1pc3Npb25DaGVja1Byb3h5KGZyYW1lSUQsIFdURk1vdmUoaGFuZGxlciksIFdURk1vdmUodXNl
ck1lZGlhRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsRG9jdW1lbnRPcmlnaW4pKSk7
CiAgICAgfQpAQCAtNTAsMTcgKzUxLDE3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFVzZXJNZWRp
YUFjY2Vzc0luZm8oYm9vbCk7CiAgICAgdm9pZCBpbnZhbGlkYXRlKCkgeyBjb21wbGV0ZShQZXJt
aXNzaW9uSW5mbzo6RXJyb3IpOyB9CiAKLSAgICB1aW50NjRfdCBmcmFtZUlEKCkgY29uc3QgeyBy
ZXR1cm4gbV9mcmFtZUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQo
KSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KICAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
biYgdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIHsgcmV0dXJuIG1fdXNlck1lZGlh
RG9jdW1lbnRTZWN1cml0eU9yaWdpbi5nZXQoKTsgfQogICAgIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luJiB0b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSB7IHJldHVybiBtX3RvcExldmVs
RG9jdW1lbnRTZWN1cml0eU9yaWdpbi5nZXQoKTsgfQogICAgIAogcHJpdmF0ZToKLSAgICBVc2Vy
TWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSh1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFu
ZGxlciYmLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luKTsKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyJiYsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
PiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pOwogICAgIH5Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hl
Y2tQcm94eSgpOwogCiAgICAgdm9pZCBjb21wbGV0ZShQZXJtaXNzaW9uSW5mbyk7CiAgICAgCi0g
ICAgdWludDY0X3QgbV9mcmFtZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX2Zy
YW1lSUQ7CiAgICAgQ29tcGxldGlvbkhhbmRsZXIgbV9jb21wbGV0aW9uSGFuZGxlcjsKICAgICBS
ZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG1fdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9y
aWdpbjsKICAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG1fdG9wTGV2ZWxEb2N1bWVu
dFNlY3VyaXR5T3JpZ2luOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4
IGQzNDAzNzZmZjI5MDdiODcyOTM1NjQ2NDI4OWQ0MzQ5NmQ0MDA5OTEuLmRiNGNkYTExMTYxZDIy
MjgyOTg0ZmVlOWFlYWQ0MGE0ZWVjMWE0OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5jcHAKQEAgLTI0MCw5ICsyNDAsOSBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5OjpmaW5pc2hHcmFudGluZ1JlcXVlc3QoVXNlck1lZGlhUGVybQogICAg
IHByb2Nlc3NOZXh0VXNlck1lZGlhUmVxdWVzdElmTmVlZGVkKCk7CiB9CiAKLXZvaWQgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlc2V0QWNjZXNzKHVpbnQ2NF90IGZy
YW1lSUQpCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXNl
dEFjY2VzcyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKLSAgICBBTFdBWVNfTE9HKExPR0lE
RU5USUZJRVIsIGZyYW1lSUQpOworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgZnJhbWVJ
RC5sb2dnaW5nU3RyaW5nKCkpOwogICAgIG1fZ3JhbnRlZFJlcXVlc3RzLnJlbW92ZUFsbE1hdGNo
aW5nKFtmcmFtZUlEXShjb25zdCBhdXRvJiBncmFudGVkUmVxdWVzdCkgewogICAgICAgICByZXR1
cm4gZ3JhbnRlZFJlcXVlc3QtPm1haW5GcmFtZUlEKCkgPT0gZnJhbWVJRDsKICAgICB9KTsKQEAg
LTI1MSw3ICsyNTEsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5OjpyZXNldEFjY2Vzcyh1aW50NjRfdCBmcmFtZUlEKQogICAgIG1faGFzRmlsdGVyZWREZXZp
Y2VMaXN0ID0gZmFsc2U7CiB9CiAKLWNvbnN0IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkqIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzZWFyY2hGb3JHcmFu
dGVkUmVxdWVzdCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50
T3JpZ2luLCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbykgY29uc3QKK2NvbnN0IFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkqIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5OjpzZWFyY2hGb3JHcmFudGVkUmVxdWVzdChGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25z
dCBTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlv
LCBib29sIG5lZWRzVmlkZW8pIGNvbnN0CiB7CiAgICAgaWYgKG1fcGFnZS5pc01lZGlhU3RyZWFt
Q2FwdHVyZU11dGVkKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMjgyLDcgKzI4Miw3
IEBAIGNvbnN0IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkqIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLWJv
b2wgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc1JlcXVlc3REZW5p
ZWQodWludDY0X3QgbWFpbkZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFE
b2N1bWVudE9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmln
aW4sIGJvb2wgbmVlZHNBdWRpbywgYm9vbCBuZWVkc1ZpZGVvLCBib29sIG5lZWRzU2NyZWVuQ2Fw
dHVyZSkKK2Jvb2wgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc1Jl
cXVlc3REZW5pZWQoRnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlELCBjb25zdCBTZWN1cml0eU9y
aWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BM
ZXZlbERvY3VtZW50T3JpZ2luLCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbywgYm9v
bCBuZWVkc1NjcmVlbkNhcHR1cmUpCiB7CiAgICAgZm9yIChjb25zdCBhdXRvJiBkZW5pZWRSZXF1
ZXN0IDogbV9kZW5pZWRSZXF1ZXN0cykgewogICAgICAgICBpZiAoIWRlbmllZFJlcXVlc3QudXNl
ck1lZGlhRG9jdW1lbnRPcmlnaW4tPmlzU2FtZVNjaGVtZUhvc3RQb3J0KHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luKSkKQEAgLTM0Niw3ICszNDYsNyBAQCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6UmVxdWVzdEFjdGlvbiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdAog
fQogI2VuZGlmCiAKLXZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6
OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQs
IHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIE1l
ZGlhU3RyZWFtUmVxdWVzdCYmIHVzZXJSZXF1ZXN0KQordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1
aW50NjRfdCB1c2VyTWVkaWFJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxTZWN1cml0
eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYm
IHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIE1lZGlhU3RyZWFtUmVxdWVzdCYmIHVzZXJSZXF1ZXN0
KQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgaWYgKCFtX3BhZ2UuaGFzUnVubmlu
Z1Byb2Nlc3MoKSkKQEAgLTUyMSw3ICs1MjEsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5Ojpwcm9jZXNzVXNlck1lZGlhUGVybWlzc2lvblZhbGlkUmVxdQog
ICAgIG1fcGFnZS51aUNsaWVudCgpLmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0KG1fcGFnZSwgKndlYkZyYW1lLCBXVEZNb3ZlKHVzZXJNZWRpYU9yaWdpbiksIFdURk1v
dmUodG9wTGV2ZWxPcmlnaW4pLCAqbV9jdXJyZW50VXNlck1lZGlhUmVxdWVzdCk7CiB9CiAKLXZv
aWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmdldFVzZXJNZWRpYVBl
cm1pc3Npb25JbmZvKHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1l
bnRPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUGVybWlzc2lvbkluZm8pPiYmIGhhbmRs
ZXIpCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpnZXRVc2Vy
TWVkaWFQZXJtaXNzaW9uSW5mbyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUmVmPFNlY3VyaXR5
T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYg
dG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQZXJtaXNzaW9u
SW5mbyk+JiYgaGFuZGxlcikKIHsKICAgICBhdXRvKiB3ZWJGcmFtZSA9IG1fcGFnZS5wcm9jZXNz
KCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCF3ZWJGcmFtZSB8fCAhU2VjdXJpdHlPcmln
aW46OmNyZWF0ZUZyb21TdHJpbmcobV9wYWdlLnBhZ2VMb2FkU3RhdGUoKS5hY3RpdmVVUkwoKSkt
PmlzU2FtZVNjaGVtZUhvc3RQb3J0KHRvcExldmVsRG9jdW1lbnRPcmlnaW4uZ2V0KCkpKSB7CkBA
IC01NDUsNyArNTQ1LDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6Z2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8odWludDY0X3QKICAgICBtX3BhZ2UudWlD
bGllbnQoKS5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4obV9wYWdlLCAqd2ViRnJh
bWUsIHVzZXJNZWRpYU9yaWdpbi5nZXQoKSwgdG9wTGV2ZWxPcmlnaW4uZ2V0KCksIHJlcXVlc3Qu
Z2V0KCkpOwogfQogCi1ib29sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
Ojp3YXNHcmFudGVkVmlkZW9PckF1ZGlvQWNjZXNzKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNl
Y3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmln
aW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pCitib29sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5Ojp3YXNHcmFudGVkVmlkZW9PckF1ZGlvQWNjZXNzKEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmln
aW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKQogewogICAg
IGZvciAoY29uc3QgYXV0byYgZ3JhbnRlZFJlcXVlc3QgOiBtX2dyYW50ZWRSZXF1ZXN0cykgewog
ICAgICAgICBpZiAoZ3JhbnRlZFJlcXVlc3QtPnJlcXVpcmVzRGlzcGxheUNhcHR1cmUoKSkKQEAg
LTYwNCw3ICs2MDQsNyBAQCBWZWN0b3I8Q2FwdHVyZURldmljZT4gVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHk6OmNvbXB1dGVGaWx0ZXJlZERldgogfQogI2VuZGlmCiAKLXZv
aWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmVudW1lcmF0ZU1lZGlh
RGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBS
ZWY8U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxTZWN1cml0
eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKQordm9pZCBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWlu
dDY0X3QgdXNlck1lZGlhSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8U2VjdXJpdHlP
cmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0
b3BMZXZlbERvY3VtZW50T3JpZ2luKQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAg
QUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCB1c2VyTWVkaWFJRCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuaAppbmRleCBmNTA1ZTI4MGM0NDI5MGE4MDNkYmRiNjhjOThlZWE2MzBiMWM5
YmI2Li5iYmJhNDRhYzgyYmQyODA3NWJkZGZiYjQ1NDQ0Y2E1NjlhY2NmYjk3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmgKQEAgLTYwLDE1ICs2MCwxNSBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIGludmFsaWRhdGVQZW5kaW5nUmVxdWVzdHMoKTsKIAotICAgIHZvaWQgcmVxdWVzdFVz
ZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3Qg
ZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmICB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRP
cmlnaW4sIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKKyAgICB2b2lkIHJlcXVlc3RV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmICB1c2VyTWVk
aWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVs
RG9jdW1lbnRPcmlnaW4sIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKIAotICAgIHZv
aWQgcmVzZXRBY2Nlc3ModWludDY0X3QgbWFpbkZyYW1lSUQpOworICAgIHZvaWQgcmVzZXRBY2Nl
c3MoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlEKTsKICAgICB2b2lkIHZpZXdJ
c0JlY29taW5nVmlzaWJsZSgpOwogCiAgICAgdm9pZCBncmFudFJlcXVlc3QoVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eSYpOwogICAgIHZvaWQgZGVueVJlcXVlc3QoVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eSYsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVz
ZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbiwgY29uc3QgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWlu
dCA9IHsgfSk7CiAKLSAgICB2b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2
NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKTsKKyAgICB2b2lkIGVudW1lcmF0ZU1lZGlh
RGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9y
aWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmln
aW4pOwogCiAgICAgdm9pZCBzdG9wQ2FwdHVyZSgpOwogICAgIHZvaWQgc2NoZWR1bGVOZXh0UmVq
ZWN0aW9uKCk7CkBAIC05NSwxOSArOTUsMTkgQEAgcHJpdmF0ZToKICAgICBXVEZMb2dDaGFubmVs
JiBsb2dDaGFubmVsKCkgY29uc3QgZmluYWw7CiAjZW5kaWYKIAotICAgIFJlZjxVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGVQZXJtaXNzaW9uUmVxdWVzdCh1aW50NjRfdCB1
c2VyTWVkaWFJRCwgdWludDY0X3QgbWFpbkZyYW1lSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3Qm
Jik7CisgICAgUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZVBlcm1p
c3Npb25SZXF1ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgbWFpbkZyYW1lSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVjdG9yPFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmlj
ZT4mJiB2aWRlb0RldmljZXMsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKICNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQogICAgIHZvaWQgZmluaXNoR3JhbnRpbmdSZXF1ZXN0KFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKTsKIAotICAgIGNvbnN0IFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkqIHNlYXJjaEZvckdyYW50ZWRSZXF1ZXN0KHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
biwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4s
IGJvb2wgbmVlZHNBdWRpbywgYm9vbCBuZWVkc1ZpZGVvKSBjb25zdDsKLSAgICBib29sIHdhc1Jl
cXVlc3REZW5pZWQodWludDY0X3QgbWFpbkZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGJvb2wgbmVlZHNBdWRpbywgYm9vbCBuZWVk
c1ZpZGVvLCBib29sIG5lZWRzU2NyZWVuQ2FwdHVyZSk7CisgICAgY29uc3QgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eSogc2VhcmNoRm9yR3JhbnRlZFJlcXVlc3QoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9j
dW1lbnRPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luLCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbykgY29uc3Q7CisgICAg
Ym9vbCB3YXNSZXF1ZXN0RGVuaWVkKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJ
RCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwg
Ym9vbCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8sIGJvb2wgbmVlZHNTY3JlZW5DYXB0dXJl
KTsKIAogICAgIHVzaW5nIFBlcm1pc3Npb25JbmZvID0gVXNlck1lZGlhUGVybWlzc2lvbkNoZWNr
UHJveHk6OlBlcm1pc3Npb25JbmZvOwotICAgIHZvaWQgZ2V0VXNlck1lZGlhUGVybWlzc2lvbklu
Zm8odWludDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJN
ZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQZXJtaXNzaW9uSW5mbyk+
JiYpOworICAgIHZvaWQgZ2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8oV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1l
bnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50
T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBlcm1pc3Npb25JbmZvKT4mJik7CiAKICAg
ICBSZXF1ZXN0QWN0aW9uIGdldFJlcXVlc3RBY3Rpb24oY29uc3QgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eSYpOwogCi0gICAgYm9vbCB3YXNHcmFudGVkVmlkZW9PckF1ZGlvQWNjZXNz
KHVpbnQ2NF90LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1l
bnRPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50
T3JpZ2luKTsKKyAgICBib29sIHdhc0dyYW50ZWRWaWRlb09yQXVkaW9BY2Nlc3MoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlh
RG9jdW1lbnRPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERv
Y3VtZW50T3JpZ2luKTsKIAogICAgIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiBjb21w
dXRlRmlsdGVyZWREZXZpY2VMaXN0KGJvb2wgcmV2ZWFsSWRzQW5kTGFiZWxzLCBjb25zdCBTdHJp
bmcmIGRldmljZUlESGFzaFNhbHQpOwogCkBAIC0xMzQsNyArMTM0LDcgQEAgcHJpdmF0ZToKICAg
ICBWZWN0b3I8UmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+PiBtX2dyYW50ZWRS
ZXF1ZXN0czsKIAogICAgIHN0cnVjdCBEZW5pZWRSZXF1ZXN0IHsKLSAgICAgICAgdWludDY0X3Qg
bWFpbkZyYW1lSUQ7CisgICAgICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJ
RDsKICAgICAgICAgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbjsKICAgICAgICAgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiB0b3BMZXZlbERv
Y3VtZW50T3JpZ2luOwogICAgICAgICBib29sIGlzQXVkaW9EZW5pZWQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuY3BwCmluZGV4IDRmMDI4NDA2YmE0YTc3NTE2NDcwNjQ3NjcxZjNhOTUwODhhZmY0YWIuLjk2
NmZkYWQ1Y2YwZGQwOWI5OGZmNTU2MTAzZTIwNmFhMTE3NWM5NjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuY3BwCkBAIC0zMCw3ICszMCw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCi1Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5JiBtYW5hZ2VyLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgbWFpbkZyYW1l
SUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExl
dmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlv
RGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBX
ZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJiByZXF1ZXN0KQorVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgdWludDY0X3QgdXNlck1lZGlh
SUQsIEZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwg
UmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZl
Y3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJl
cXVlc3QmJiByZXF1ZXN0KQogICAgIDogbV9tYW5hZ2VyKCZtYW5hZ2VyKQogICAgICwgbV91c2Vy
TWVkaWFJRCh1c2VyTWVkaWFJRCkKICAgICAsIG1fbWFpbkZyYW1lSUQobWFpbkZyYW1lSUQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5LmgKaW5kZXggNTQ0ZjYxMTZlZGI2NjJhOGZhOTYzMWJjM2FmOGI3MGRlZGM1
ODI3Zi4uYmE0ZTBhMzQ3MTYwMzFiMThmMDg1Y2ZkMDFhNzM1MTc3OGEwMzA1OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuaApAQCAtMjEsNiArMjEsNyBAQAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9DYXB0dXJlRGV2aWNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFt
ZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU3RyZWFtUmVxdWVzdC5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
QEAgLTM1LDcgKzM2LDcgQEAgY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk7CiAKIGNsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkgOiBwdWJsaWMg
QVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eT4gY3JlYXRlKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiBt
YW5hZ2VyLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgbWFpbkZyYW1lSUQsIHVpbnQ2
NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1
bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1l
bnRPcmlnaW4sIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywg
VmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3JlOjpN
ZWRpYVN0cmVhbVJlcXVlc3QmJiByZXF1ZXN0KQorICAgIHN0YXRpYyBSZWY8VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRlKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5JiBtYW5hZ2VyLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIG1haW5GcmFtZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
UmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBS
ZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVj
dG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29y
ZTo6Q2FwdHVyZURldmljZT4mJiB2aWRlb0RldmljZXMsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVx
dWVzdCYmIHJlcXVlc3QpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KG1hbmFnZXIsIHVzZXJNZWRpYUlELCBtYWluRnJh
bWVJRCwgZnJhbWVJRCwgV1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiksIFdURk1vdmUo
dG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIFdURk1vdmUoYXVkaW9EZXZpY2VzKSwgV1RGTW92ZSh2
aWRlb0RldmljZXMpLCBXVEZNb3ZlKHJlcXVlc3QpKSk7CiAgICAgfQpAQCAtNjUsOCArNjYsOCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRIYXNQZXJzaXN0ZW50QWNjZXNzKCkgeyBtX2hhc1BlcnNp
c3RlbnRBY2Nlc3MgPSB0cnVlOyB9CiAKICAgICB1aW50NjRfdCB1c2VyTWVkaWFJRCgpIGNvbnN0
IHsgcmV0dXJuIG1fdXNlck1lZGlhSUQ7IH0KLSAgICB1aW50NjRfdCBtYWluRnJhbWVJRCgpIGNv
bnN0IHsgcmV0dXJuIG1fbWFpbkZyYW1lSUQ7IH0KLSAgICB1aW50NjRfdCBmcmFtZUlEKCkgY29u
c3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1h
aW5GcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJhbWVJRDsgfQorICAgIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9CiAK
ICAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3Jp
Z2luKCkgeyByZXR1cm4gbV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4uZ2V0KCk7IH0K
ICAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9y
aWdpbigpIHsgcmV0dXJuIG1fdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbi5nZXQoKTsg
fQpAQCAtODQsMTIgKzg1LDEyIEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
IHZpZGVvRGV2aWNlKCkgY29uc3QgeyByZXR1cm4gbV9lbGlnaWJsZVZpZGVvRGV2aWNlcy5pc0Vt
cHR5KCkgPyBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIHsgfSA6IG1fZWxpZ2libGVWaWRlb0Rldmlj
ZXNbMF07IH0KIAogcHJpdmF0ZToKLSAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiwgdWludDY0X3QgdXNlck1l
ZGlhSUQsIHVpbnQ2NF90IG1haW5GcmFtZUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0b3I8V2ViQ29y
ZTo6Q2FwdHVyZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYpOwor
ICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkmLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIG1haW5GcmFtZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZjxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJik7
CiAKICAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSogbV9tYW5hZ2Vy
OwogICAgIHVpbnQ2NF90IG1fdXNlck1lZGlhSUQ7Ci0gICAgdWludDY0X3QgbV9tYWluRnJhbWVJ
RDsKLSAgICB1aW50NjRfdCBtX2ZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IG1fbWFpbkZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fZnJhbWVJRDsK
ICAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG1fdXNlck1lZGlhRG9jdW1lbnRTZWN1
cml0eU9yaWdpbjsKICAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG1fdG9wTGV2ZWxE
b2N1bWVudFNlY3VyaXR5T3JpZ2luOwogICAgIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
PiBtX2VsaWdpYmxlVmlkZW9EZXZpY2VzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFt
ZVByb3h5LmNwcAppbmRleCAwNzE0YjQxZWI2Nzc2OGQ5ZTBjOWQ0MTJlMjBlODk4ZjgxZTczZGQ4
Li5lZTMzNzEwODE3MDdlYTM2ZDM1MGVmZTJjYzVhMDNjMWQxOTFkYTRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcApAQCAtNDUsOSArNDUsOCBAQCB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogY2xhc3MgV2ViUGFnZVByb3h5OwogCi1XZWJGcmFtZVByb3h5
OjpXZWJGcmFtZVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgdWludDY0X3QgZnJhbWVJRCkKK1dl
YkZyYW1lUHJveHk6OldlYkZyYW1lUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCkKICAgICA6IG1fcGFnZShtYWtlV2Vha1B0cihwYWdlKSkKLSAgICAsIG1f
aXNGcmFtZVNldChmYWxzZSkKICAgICAsIG1fZnJhbWVJRChmcmFtZUlEKQogewogICAgIFdlYlBy
b2Nlc3NQb29sOjpzdGF0aXN0aWNzKCkud2tGcmFtZUNvdW50Kys7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJGcmFtZVByb3h5LmgKaW5kZXggNDQ2MDBmMWMyNzI5MGU1ZTRjMTY4ZWE4Y2QzY2Mz
OTYzNmZkYmJlMS4uY2NkYTYzNzgwMDJkNTVhYjE1N2E2ZjE1MzdjNWVmNzlkYjQ1YzI1MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaApAQCAtNTksMTQgKzU5LDE0IEBA
IHN0cnVjdCBXZWJzaXRlUG9saWNpZXNEYXRhOwogCiBjbGFzcyBXZWJGcmFtZVByb3h5IDogcHVi
bGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6RnJhbWU+IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmPFdlYkZyYW1lUHJveHk+IGNyZWF0ZShXZWJQYWdlUHJveHkmIHBhZ2Us
IHVpbnQ2NF90IGZyYW1lSUQpCisgICAgc3RhdGljIFJlZjxXZWJGcmFtZVByb3h5PiBjcmVhdGUo
V2ViUGFnZVByb3h5JiBwYWdlLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKICAg
ICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkZyYW1lUHJveHkocGFnZSwgZnJh
bWVJRCkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgfldlYkZyYW1lUHJveHkoKTsKIAotICAgIHVp
bnQ2NF90IGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KKyAgICBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQog
ICAgIFdlYlBhZ2VQcm94eSogcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZS5nZXQoKTsgfQog
CiAgICAgdm9pZCB3ZWJQcm9jZXNzV2lsbFNodXREb3duKCk7CkBAIC0xMzAsNyArMTMwLDcgQEAg
cHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgV2ViRnJhbWVQcm94eShXZWJQYWdlUHJv
eHkmLCB1aW50NjRfdCBmcmFtZUlEKTsKKyAgICBXZWJGcmFtZVByb3h5KFdlYlBhZ2VQcm94eSYs
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAKICAgICBXZWFrUHRyPFdlYlBhZ2VQcm94eT4g
bV9wYWdlOwogCkBAIC0xMzgsMTEgKzEzOCwxMSBAQCBwcml2YXRlOgogCiAgICAgU3RyaW5nIG1f
TUlNRVR5cGU7CiAgICAgU3RyaW5nIG1fdGl0bGU7Ci0gICAgYm9vbCBtX2lzRnJhbWVTZXQ7Cisg
ICAgYm9vbCBtX2lzRnJhbWVTZXQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9jb250YWluc1BsdWdp
bkRvY3VtZW50IHsgZmFsc2UgfTsKICAgICBSZWZQdHI8V2ViQ2VydGlmaWNhdGVJbmZvPiBtX2Nl
cnRpZmljYXRlSW5mbzsKICAgICBSZWZQdHI8V2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5PiBt
X2FjdGl2ZUxpc3RlbmVyOwotICAgIHVpbnQ2NF90IG1fZnJhbWVJRDsKKyAgICBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgbV9mcmFtZUlEOwogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykK
ICAgICBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIgbV9jb250ZW50RmlsdGVy
VW5ibG9ja0hhbmRsZXI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCmluZGV4IDMyNjMxYzQ1MGViMjZkNzU0NTQ2OGI3MjZjMTVhNDQ5ODVjOTk4YTkuLmQy
ZjlhODg3MDU3YjBkY2Q3OTQ3OGIxMGI3MDA3M2M2ZDg2YzdiYjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNzQzLDcgKzc0Myw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpsYXVuY2hQcm9jZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZWdpc3RyYWJs
ZURvbWFpbikKICAgICBmaW5pc2hBdHRhY2hpbmdUb1dlYlByb2Nlc3MoSXNQcm9jZXNzU3dhcDo6
Tm8pOwogfQogCi1ib29sIFdlYlBhZ2VQcm94eTo6c3VzcGVuZEN1cnJlbnRQYWdlSWZQb3NzaWJs
ZShBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIE9wdGlvbmFsPHVpbnQ2NF90PiBtYWluRnJh
bWVJRCwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5
Q2xpZW50LCBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ01vZGUgc2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdNb2RlKQorYm9vbCBXZWJQYWdlUHJveHk6OnN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2li
bGUoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+
IG1haW5GcmFtZUlELCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVx
dWVzdGVkQnlDbGllbnQsIFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nTW9kZSBzaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ01vZGUpCiB7CiAgICAgbV9sYXN0U3VzcGVuZGVkUGFnZSA9IG51bGxwdHI7
CiAKQEAgLTI5MzEsMTIgKzI5MzEsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkUG9s
aWN5RGVjaXNpb24oUG9saWN5QWN0aW9uIGFjdGlvbiwgQVBJOjpOYXZpZ2F0aW9uKgogICAgIHNl
bmRlci0+c2VuZChhY3Rpb24sIG5hdmlnYXRpb24gPyBuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQo
KSA6IDAsIGRvd25sb2FkSUQsIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7CiB9CiAKLXZvaWQg
V2ViUGFnZVByb3h5Ojpjb21taXRQcm92aXNpb25hbFBhZ2UodWludDY0X3QgZnJhbWVJRCwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFz
Q3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJD
b3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdp
bkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhh
c0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdl
UHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFz
Q3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJD
b3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdp
bkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhh
c0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIEFTU0VS
VChtX3Byb3Zpc2lvbmFsUGFnZSk7CiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5n
LCAiY29tbWl0UHJvdmlzaW9uYWxQYWdlOiBwcmV2aW91c1BJRCA9ICVpLCBuZXdQSUQgPSAlaSwg
cGFnZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcHJv
dmlzaW9uYWxQYWdlLT5wcm9jZXNzKCkucHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9V
SW50NjQoKSk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gbWFpbkZyYW1lSURJblByZXZpb3Vz
UHJvY2VzcyA9IG1fbWFpbkZyYW1lID8gbWFrZU9wdGlvbmFsKG1fbWFpbkZyYW1lLT5mcmFtZUlE
KCkpIDogV1RGOjpudWxsb3B0OworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gbWFpbkZy
YW1lSURJblByZXZpb3VzUHJvY2VzcyA9IG1fbWFpbkZyYW1lID8gbWFrZU9wdGlvbmFsKG1fbWFp
bkZyYW1lLT5mcmFtZUlEKCkpIDogV1RGOjpudWxsb3B0OwogCiAgICAgQVNTRVJUKG1fcHJvY2Vz
cy5wdHIoKSAhPSAmbV9wcm92aXNpb25hbFBhZ2UtPnByb2Nlc3MoKSk7CiAKQEAgLTM2NzIsNyAr
MzY3Miw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3Jp
cHRXb3JsZChjb25zdCBTdHJpbmcmIHNjcmlwdCwgYm9vCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpSdW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3JsZChzY3Jp
cHQsIGZvcmNlVXNlckdlc3R1cmUsIHdvcmxkTmFtZSwgY2FsbGJhY2tJRCksIG1fcGFnZUlEKTsK
IH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRJbkZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIFdURjo6
RnVuY3Rpb248dm9pZChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSosIGJvb2wgaGFkRXhjZXB0
aW9uLCBjb25zdCBFeGNlcHRpb25EZXRhaWxzJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2Fs
bGJhY2tGdW5jdGlvbikKK3ZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0SW5GcmFtZShG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VV
c2VyR2VzdHVyZSwgV1RGOjpGdW5jdGlvbjx2b2lkKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVl
KiwgYm9vbCBoYWRFeGNlcHRpb24sIGNvbnN0IEV4Y2VwdGlvbkRldGFpbHMmLCBDYWxsYmFja0Jh
c2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQogewogICAgIEFTU0VSVChtYWluRnJhbWUo
KS0+ZnJhbWVJRCgpICE9IGZyYW1lSUQpOwogICAgIGF1dG8gY2FsbGJhY2tJRCA9IG1fY2FsbGJh
Y2tzLnB1dChXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBtX3Byb2Nlc3MtPnRocm90dGxlcigp
LmJhY2tncm91bmRBY3Rpdml0eVRva2VuKCkpOwpAQCAtMzg3OCw3ICszODc4LDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKCkKICAgICBtX3Byb2Nlc3MtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OlByZWZlcmVuY2VzRGlkQ2hhbmdlKHByZWZlcmVuY2VzU3RvcmUo
KSksIG1fcGFnZUlELCBwcmludGluZ1NlbmRPcHRpb25zKG1faXNQZXJmb3JtaW5nRE9NUHJpbnRP
cGVyYXRpb24pKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSh1
aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZShG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICAvLyBUaGUgRGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvblN5bmMgSVBDIGlzIHN5bmNocm9ub3VzIGFuZCBtYXkgdGhlcmVmb3JlIGdl
dCBwcm9jZXNzZWQgYmVmb3JlIHRoZSBEaWRDcmVhdGVNYWluRnJhbWUgb25lLgogICAgIC8vIFdo
ZW4gdGhpcyBoYXBwZW5zLCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYygpIGNh
bGxzIGRpZENyZWF0ZU1haW5GcmFtZSgpIGFuZCB3ZSBuZWVkIHRvIGlnbm9yZSB0aGUgRGlkQ3Jl
YXRlTWFpbkZyYW1lCkBAIC0zODk3LDcgKzM4OTcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
Q3JlYXRlTWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCiAgICAgbV9wcm9jZXNzLT5mcmFtZUNy
ZWF0ZWQoZnJhbWVJRCwgKm1fbWFpbkZyYW1lKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZENyZWF0ZVN1YmZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
Q3JlYXRlU3ViZnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgUGFnZUNsaWVu
dFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtMzkxNyw3ICszOTE3LDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0ZVN1YmZyYW1lKHVpbnQ2NF90IGZyYW1lSUQp
CiAgICAgbV9wcm9jZXNzLT5mcmFtZUNyZWF0ZWQoZnJhbWVJRCwgc3ViRnJhbWUuZ2V0KCkpOwog
fQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRlV2luZG93KHVpbnQ2NF90IGZyYW1lSUQs
IEdsb2JhbFdpbmRvd0lkZW50aWZpZXImJiB3aW5kb3dJZGVudGlmaWVyKQordm9pZCBXZWJQYWdl
UHJveHk6OmRpZENyZWF0ZVdpbmRvdyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgR2xvYmFsV2lu
ZG93SWRlbnRpZmllciYmIHdpbmRvd0lkZW50aWZpZXIpCiB7CiB9CiAKQEAgLTM5ODEsMTIgKzM5
ODEsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZERlc3Ryb3lOYXZpZ2F0aW9uKHVpbnQ2NF90
IG5hdmlnYXRpb25JRCkKICAgICBtX25hdmlnYXRpb25TdGF0ZS0+ZGlkRGVzdHJveU5hdmlnYXRp
b24obmF2aWdhdGlvbklEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBVUkwmJiB1cmwsIFVSTCYmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRh
dGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmws
IFVSTCYmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAg
ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigp
LCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUodXJsKSwgV1RGTW92ZSh1bnJlYWNoYWJs
ZVVSTCksIHVzZXJEYXRhKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCB1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCwgVVJMJiYg
dW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgVVJMJiYgdXJsLCBVUkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEm
IHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGll
bnQoKSk7CiAKQEAgLTQwMDUsOCArNDAwNSw4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRTdGFy
dFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYKICAg
ICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkgJiYgbmF2aWdhdGlvbklEKQogICAgICAgICBuYXZp
Z2F0aW9uID0gbmF2aWdhdGlvblN0YXRlKCkubmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQpOwogCi0g
ICAgTE9HKExvYWRpbmcsICJXZWJQYWdlUHJveHkgJSIgUFJJdTY0ICIgaW4gcHJvY2VzcyBwaWQg
JWkgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSB0byBmcmFtZUlEICUiIFBSSXU2NCAi
LCBuYXZpZ2F0aW9uSUQgJSIgUFJJdTY0ICIsIHVybCAlcyIsIG1fcGFnZUlELnRvVUludDY0KCks
IHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgdXJs
LnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9h
ZGluZywgImRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgcHJvY2Vzcy0+cHJvY2Vzc0lk
ZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgTE9HKExvYWRp
bmcsICJXZWJQYWdlUHJveHkgJSIgUFJJdTY0ICIgaW4gcHJvY2VzcyBwaWQgJWkgZGlkU3RhcnRQ
cm92aXNpb25hbExvYWRGb3JGcmFtZSB0byBmcmFtZUlEICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9u
SUQgJSIgUFJJdTY0ICIsIHVybCAlcyIsIG1fcGFnZUlELnRvVUludDY0KCksIHByb2Nlc3MtPnBy
b2Nlc3NJZGVudGlmaWVyKCksIGZyYW1lSUQudG9VSW50NjQoKSwgbmF2aWdhdGlvbklELCB1cmwu
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2Fk
aW5nLCAiZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBwcm9jZXNzLT5wcm9jZXNzSWRl
bnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCkpOwogCiAg
ICAgYXV0byB0cmFuc2FjdGlvbiA9IG1fcGFnZUxvYWRTdGF0ZS50cmFuc2FjdGlvbigpOwogCkBA
IC00MDMxLDcgKzQwMzEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25h
bExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmCiAgICAgICAgIG1fbmF2
aWdhdGlvbkNsaWVudC0+ZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb24oKnRoaXMsIG5hdmln
YXRpb24uZ2V0KCksIHByb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEu
b2JqZWN0KCkpLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEV4cGxpY2l0T3Bl
bkZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFVSTCYmIHVybCkKK3ZvaWQgV2ViUGFnZVByb3h5
OjpkaWRFeHBsaWNpdE9wZW5Gb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgVVJMJiYg
dXJsKQogewogICAgIGF1dG8qIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsK
ICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwpAQCAtNDA1MCwxNSArNDA1MCwx
NSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRXhwbGljaXRPcGVuRm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgVVJMJiYgdXJsKQogICAgIG1fcGFnZUxvYWRTdGF0ZS5jb21taXRDaGFuZ2VzKCk7
CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92
aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkK
K3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25h
bExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEp
CiB7CiAgICAgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgbmF2aWdhdGlvbklELCBXVEZN
b3ZlKHJlcXVlc3QpLCB1c2VyRGF0YSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNl
aXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vzcywg
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgUmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewotICAgIExPRyhM
b2FkaW5nLCAiV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNp
b25hbExvYWRGb3JGcmFtZSB0byBmcmFtZUlEICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9uSUQgJSIg
UFJJdTY0ICIsIHVybCAlcyIsIGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgcmVxdWVzdC51cmwoKS5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRp
bmcsICJkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZTog
d2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBw
cm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlE
KTsKKyAgICBMT0coTG9hZGluZywgIldlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGly
ZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUgdG8gZnJhbWVJRCAlIiBQUkl1NjQgIiwgbmF2
aWdhdGlvbklEICUiIFBSSXU2NCAiLCB1cmwgJXMiLCBmcmFtZUlELnRvVUludDY0KCksIG5hdmln
YXRpb25JRCwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQ
cm92aXNpb25hbExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0LCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3Bh
Z2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCkpOwogCiAgICAgUGFnZUNsaWVudFBy
b3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDA4NSw5ICs0MDg1LDkgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lU2hhcmVkKFJlZjwKICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRS
ZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbE5hdmlnYXRpb24oKnRoaXMsIG5hdmln
YXRpb24uZ2V0KCksIHByb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEu
b2JqZWN0KCkpLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OndpbGxQZXJmb3JtQ2xp
ZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHVybCwg
ZG91YmxlIGRlbGF5LCBXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0KQordm9pZCBXZWJQYWdl
UHJveHk6OndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1cmwsIGRvdWJsZSBkZWxheSwgV2ViQ29yZTo6TG9ja0Jh
Y2tGb3J3YXJkTGlzdCkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJ3
aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRp
ZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKExvYWRpbmcsICJ3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWU6IHdl
YlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9w
cm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlE
LnRvVUludDY0KCkpOwogCiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNs
aWVudCgpKTsKIApAQCAtNDA5OCw5ICs0MDk4LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OndpbGxQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHIK
ICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT53aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KCp0
aGlzLCB1cmwsIGRlbGF5KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZENhbmNlbENsaWVu
dFJlZGlyZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQog
ewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZENhbmNlbENsaWVudFJl
ZGlyZWN0Rm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50
b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcs
ICJkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50
aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAg
IFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQxMTEs
MTIgKzQxMTEsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENhbmNlbENsaWVudFJlZGlyZWN0
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCkKICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5k
aWRDYW5jZWxDbGllbnRSZWRpcmVjdCgqdGhpcyk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgVVJMJiYgdXJsKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZVBy
b3Zpc2lvbmFsVVJMRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgVVJMJiYgdXJsKQogewogICAgIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9y
RnJhbWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgbmF2aWdhdGlvbklELCBX
VEZNb3ZlKHVybCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9u
YWxVUkxGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2
NF90IGZyYW1lSUQsIHVpbnQ2NF90LCBVUkwmJiB1cmwpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
Q2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
IHByb2Nlc3MsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCwgVVJMJiYgdXJsKQog
ewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAg
LTQxMzUsNyArNDEzNSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92aXNpb25h
bFVSTEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYKICAgICBmcmFtZS0+ZGlk
UmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKHVybCk7CiB9CiAKLXZvaWQg
V2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFJl
c291cmNlRXJyb3ImIGVycm9yLCBXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250aW51ZUxvYWRp
bmcsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWls
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNl
Y3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBSZXNvdXJjZUVycm9yJiBl
cnJvciwgV2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2Vy
RGF0YSYgdXNlckRhdGEpCiB7CiAgICAgaWYgKG1fcHJvdmlzaW9uYWxQYWdlICYmIG1fcHJvdmlz
aW9uYWxQYWdlLT5uYXZpZ2F0aW9uSUQoKSA9PSBuYXZpZ2F0aW9uSUQpIHsKICAgICAgICAgLy8g
VGhlIGxvYWQgZGlkIG5vdCBmYWlsLCBpdCBpcyBtZXJlbHkgaGFwcGVuaW5nIGluIGEgbmV3IHBy
b3Zpc2lvbmFsIHByb2Nlc3MuCkBAIC00MTQ1LDEwICs0MTQ1LDEwIEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgU2VjdXJpCiAgICAgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJv
Y2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIG5hdmlnYXRpb25J
RCwgcHJvdmlzaW9uYWxVUkwsIGVycm9yLCB3aWxsQ29udGludWVMb2FkaW5nLCB1c2VyRGF0YSk7
CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVT
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCB1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgUmVzb3VyY2VF
cnJvciYgZXJyb3IsIFdpbGxDb250aW51ZUxvYWRpbmcgd2lsbENvbnRpbnVlTG9hZGluZywgY29u
c3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNp
b25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNp
b25hbFVSTCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFdpbGxDb250aW51ZUxvYWRpbmcg
d2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIExP
RyhMb2FkaW5nLCAiKExvYWRpbmcpIFdlYlBhZ2VQcm94eSAlIiBQUkl1NjQgIiBpbiB3ZWIgcHJv
Y2VzcyBwaWQgJWkgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lIHRvIHByb3Zpc2lvbmFs
VVJMICVzIiwgbV9wYWdlSUQudG9VSW50NjQoKSwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIo
KSwgcHJvdmlzaW9uYWxVUkwudXRmOCgpLmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRChQcm9jZXNzLCAiZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAl
aSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgZG9tYWluID0g
JXMsIGNvZGUgPSAlZCIsIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRv
VUludDY0KCksIGZyYW1lSUQsIGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCksIGVycm9yLmVy
cm9yQ29kZSgpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3MsICJkaWRGYWls
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBkb21haW4gPSAlcywgY29kZSA9ICVkIiwgcHJvY2Vz
cy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJ
bnQ2NCgpLCBlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJvci5lcnJvckNvZGUoKSk7
CiAKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBA
IC00MjI0LDExICs0MjI0LDExIEBAIHN0YXRpYyBPcHRpb25TZXQ8Q3Jvc3NTaXRlTmF2aWdhdGlv
bkRhdGFUcmFuc2Zlcjo6RmxhZz4gY2hlY2tJZk5hdmlnYXRpb25Db250YWluCiB9CiAjZW5kaWYK
IAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wg
ZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IG9wYXF1ZUZyYW1lTG9hZFR5
cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBib29s
IGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPEhhc0luc2VjdXJlQ29udGVudD4gaGFz
SW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXND
dXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IG9wYXF1ZUZyYW1lTG9hZFR5cGUsIGNvbnN0
IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBib29sIGNvbnRhaW5z
UGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPEhhc0luc2VjdXJlQ29udGVudD4gaGFzSW5zZWN1cmVD
b250ZW50LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgTE9HKExvYWRpbmcsICIo
TG9hZGluZykgV2ViUGFnZVByb3h5ICUiIFBSSXU2NCAiIGRpZENvbW1pdExvYWRGb3JGcmFtZSBp
biBuYXZpZ2F0aW9uICUiIFBSSXU2NCwgbV9wYWdlSUQudG9VSW50NjQoKSwgbmF2aWdhdGlvbklE
KTsKICAgICBMT0coQmFja0ZvcndhcmQsICIoQmFjay9Gb3J3YXJkKSBBZnRlciBsb2FkIGNvbW1p
dCwgYmFjay9mb3J3YXJkIGxpc3QgaXMgbm93OiVzIiwgbV9iYWNrRm9yd2FyZExpc3QtPmxvZ2dp
bmdTdHJpbmcoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkQ29t
bWl0TG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQu
dG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5n
LCAiZGlkQ29tbWl0TG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwg
bV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAgIFBhZ2VDbGll
bnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQzMzgsOSArNDMzOCw5
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklECiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdl
UHJveHk6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsK
LSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRGaW5pc2hEb2N1bWVudExv
YWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUlu
dDY0KCksIGZyYW1lSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRp
ZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIo
KSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAgIFBhZ2VD
bGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQzNjEsMTAgKzQz
NjEsMTAgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmkKICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xp
ZW50LT5kaWRGaW5pc2hEb2N1bWVudExvYWQoKnRoaXMsIG5hdmlnYXRpb24uZ2V0KCksIG1fcHJv
Y2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkp
OwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRh
KQordm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRh
dGEpCiB7CiAgICAgTE9HKExvYWRpbmcsICJXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRGb3JG
cmFtZSAtIFdlYlBhZ2VQcm94eSAlcCB3aXRoIG5hdmlnYXRpb25JRCAlIiBQUkl1NjQgIiBkaWRG
aW5pc2hMb2FkIiwgdGhpcywgbmF2aWdhdGlvbklEKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKExvYWRpbmcsICJkaWRGaW5pc2hMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRl
bnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRGaW5pc2hMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVp
LCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5w
cm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0
KCkpOwogCiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsK
IApAQCAtNDQwNyw5ICs0NDA3LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQKICAgICBtX2lz
TG9hZGluZ0FsdGVybmF0ZUhUTUxTdHJpbmdGb3JGYWlsaW5nUHJvdmlzaW9uYWxMb2FkID0gZmFs
c2U7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJy
b3IsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWls
TG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEp
CiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkRmFpbExvYWRGb3JG
cmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIsIGRvbWFpbiA9ICVzLCBjb2RlID0gJWQiLCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlm
aWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQsIGVycm9yLmRvbWFpbigpLnV0Zjgo
KS5kYXRhKCksIGVycm9yLmVycm9yQ29kZSgpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KExvYWRpbmcsICJkaWRGYWlsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgZG9tYWluID0gJXMsIGNvZGUgPSAlZCIs
IG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJh
bWVJRC50b1VJbnQ2NCgpLCBlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJvci5lcnJv
ckNvZGUoKSk7CiAKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50
KCkpOwogCkBAIC00NDQ5LDkgKzQ0NDksOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbExv
YWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsCiAgICAg
fQogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMyX3Qgb3Bh
cXVlU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUsIFVSTCYmIHVybCwgY29uc3QgVXNlckRhdGEm
IHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25G
b3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCB1
aW50MzJfdCBvcGFxdWVTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgVVJMJiYgdXJsLCBjb25z
dCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2Fk
aW5nLCAiZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vz
c0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZy
YW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwg
ZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9y
KHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQ0ODgsNyArNDQ4OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWlu
dDY0X3QKICAgICAgICAgcGFnZUNsaWVudCgpLmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JN
YWluRnJhbWUobmF2aWdhdGlvblR5cGUpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hh
bmdlTWFpbkRvY3VtZW50KHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
Q2hhbmdlTWFpbkRvY3VtZW50KEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCiAgICAgaWYgKG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyKQpAQCAtNDUwNyw3ICs0NTA3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnZpZXdJc0JlY29t
aW5nVmlzaWJsZSgpCiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVU
aXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0
IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlVGl0bGVG
b3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29u
c3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVj
dG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQ1MjksMTEgKzQ1MjksMTEgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0
cmluZyYgdGl0bGUKICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmlyc3RMYXlv
dXRGb3JGcmFtZSh1aW50NjRfdCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQ
YWdlUHJveHk6OmRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyLCBjb25zdCBV
c2VyRGF0YSYgdXNlckRhdGEpCiB7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdFZp
c3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVc2Vy
RGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmlyc3RWaXN1YWxseU5vbkVt
cHR5TGF5b3V0Rm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRh
JiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xp
ZW50KCkpOwogCkBAIC00NTY0LDcgKzQ1NjQsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVh
Y2hMYXlvdXRNaWxlc3RvbmUoT3B0aW9uU2V0PFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZT4gbAog
ICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+cmVuZGVyaW5nUHJvZ3Jlc3NEaWRDaGFuZ2UoKnRoaXMs
IGxheW91dE1pbGVzdG9uZXMpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGlzcGxheUlu
c2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJiB1
c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9y
RnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkK
IHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBA
IC00NTc4LDcgKzQ1NzgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGlzcGxheUluc2VjdXJl
Q29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZQogICAgIG1fbmF2aWdh
dGlvbkNsaWVudC0+ZGlkRGlzcGxheUluc2VjdXJlQ29udGVudCgqdGhpcywgbV9wcm9jZXNzLT50
cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9iamVjdCgpKS5nZXQoKSk7CiB9CiAK
LXZvaWQgV2ViUGFnZVByb3h5OjpkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3Rl
Y3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00NTkyLDcgKzQ1OTIsNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgVXNlckRhdAogICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkUnVuSW5zZWN1cmVDb250ZW50
KCp0aGlzLCBtX3Byb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2Jq
ZWN0KCkpLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZERldGVjdFhTU0ZvckZy
YW1lKHVpbnQ2NF90LCBjb25zdCBVc2VyRGF0YSYpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGV0
ZWN0WFNTRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyLCBjb25zdCBVc2VyRGF0YSYpCiB7CiB9CiAK
QEAgLTQ2MDEsNyArNDYwMSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjptYWluRnJhbWVQbHVnaW5I
YW5kbGVzUGFnZVNjYWxlR2VzdHVyZURpZENoYW5nZShib29sIG1haW5GcmFtCiAgICAgbV9tYWlu
RnJhbWVQbHVnaW5IYW5kbGVzUGFnZVNjYWxlR2VzdHVyZSA9IG1haW5GcmFtZVBsdWdpbkhhbmRs
ZXNQYWdlU2NhbGVHZXN0dXJlOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZnJhbWVEaWRCZWNv
bWVGcmFtZVNldCh1aW50NjRfdCBmcmFtZUlELCBib29sIHZhbHVlKQordm9pZCBXZWJQYWdlUHJv
eHk6OmZyYW1lRGlkQmVjb21lRnJhbWVTZXQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wg
dmFsdWUpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgp
KTsKIApAQCAtNDYyMCw3ICs0NjIwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmJlZ2luU2FmZUJy
b3dzaW5nQ2hlY2soY29uc3QgVVJMJiwgYm9vbCwgV2ViRnJhbWVQb2xpY3lMaXN0ZW4KIH0KICNl
bmRpZgogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bkFzeW5jKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZy
YW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbkFzeW5jKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZp
ZXIgaWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELAogICAgIE5hdmlnYXRpb25BY3Rp
b25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9E
YXRhLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LAogICAgIElQQzo6Rm9ybURhdGFSZWZlcmVuY2Um
JiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9u
c2UsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKIHsKQEAg
LTQ2MjgsNyArNDYyOCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uQXN5bmModWludDY0X3QgZnJhbWVJRCwgV2ViQ29yCiAgICAgICAgIFdURk1v
dmUoZnJhbWVJbmZvRGF0YSksIG9yaWdpbmF0aW5nUGFnZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdU
Rk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVxdWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVz
cG9uc2UpLCB1c2VyRGF0YSwgbGlzdGVuZXJJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiBwcm9jZXNzLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLAordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
IHByb2Nlc3MsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLAogICAgIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rp
b25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9E
YXRhLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQs
CiAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2Um
JiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9u
c2UsCiAgICAgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQpA
QCAtNDc2OSw3ICs0NzY5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXMKICAgICAgICAgYmVn
aW5TYWZlQnJvd3NpbmdDaGVjayhyZXF1ZXN0LnVybCgpLCBmcmFtZS5pc01haW5GcmFtZSgpLCBs
aXN0ZW5lcik7CiAKICAgICBBUEk6Ok5hdmlnYXRpb24qIG1haW5GcmFtZU5hdmlnYXRpb24gPSBm
cmFtZS5pc01haW5GcmFtZSgpID8gbmF2aWdhdGlvbi5nZXQoKSA6IG51bGxwdHI7Ci0gICAgV2Vi
RnJhbWVQcm94eSogb3JpZ2luYXRpbmdGcmFtZSA9IHByb2Nlc3MtPndlYkZyYW1lKG9yaWdpbmF0
aW5nRnJhbWVJbmZvRGF0YS5mcmFtZUlEKTsKKyAgICBXZWJGcmFtZVByb3h5KiBvcmlnaW5hdGlu
Z0ZyYW1lID0gb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLmZyYW1lSUQgPyBwcm9jZXNzLT53ZWJG
cmFtZSgqb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLmZyYW1lSUQpIDogbnVsbHB0cjsKIAogI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgaWYgKGF1dG8qIHJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZSA9IHdlYnNpdGVEYXRhU3RvcmUoKS5yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzKCkpCkBAIC00ODU4LDcgKzQ4NTgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9nRnJh
bWVOYXZpZ2F0aW9uKGNvbnN0IFdlYkZyYW1lUHJveHkmIGZyYW1lLCBjb25zdCBVUkwmIHBhZwog
fQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uU3luYyh1aW50NjRfdCBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50
aWZpZXIgaWRlbnRpZmllciwKK3ZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uU3luYyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFt
ZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9s
aWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9E
YXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5n
UGFnZUlELAogICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1
ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVm
ZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVj
dFJlc3BvbnNlLAogICAgIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBs
eSYmIHJlcGx5KQpAQCAtNDg3Niw3ICs0ODc2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXMK
ICAgICAgICAgV1RGTW92ZShmcmFtZUluZm9EYXRhKSwgb3JpZ2luYXRpbmdQYWdlSUQsIG9yaWdp
bmFsUmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZXF1ZXN0Qm9keSksIFdURk1v
dmUocmVkaXJlY3RSZXNwb25zZSksIHVzZXJEYXRhLCBXVEZNb3ZlKHJlcGx5KSk7CiB9CiAKLXZv
aWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJl
ZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wg
aXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlP
cmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAordm9pZCBXZWJQYWdlUHJv
eHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wgaXNNYWlu
RnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4s
IFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAogICAgIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJ
bmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBvcmlnaW5h
dGluZ1BhZ2VJRCwKICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFs
UmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgSVBDOjpGb3JtRGF0
YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVk
aXJlY3RSZXNwb25zZSwKICAgICBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVk
UmVwbHkmJiByZXBseSkKQEAgLTQ4OTMsNyArNDg5Myw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1By
b3h5CiAgICAgc2VuZGVyLT5zZW5kKFBvbGljeUFjdGlvbjo6VXNlLCBuYXZpZ2F0aW9uSUQsIERv
d25sb2FkSUQoKSwgV1RGOjpudWxsb3B0KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lk
ZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0
eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBp
ZGVudGlmaWVyLAordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0Fj
dGlvbihGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBm
cmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKICAg
ICBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBSZXNvdXJjZVJl
cXVlc3QmJiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVu
ZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0
b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CkBAIC00OTMxLDEzICs0OTMxLDEzIEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24odWludDY0X3QgZnJh
bWVJRCwgY29uc3QgU2VjdXJpCiAgICAgICAgIAogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmln
aW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRp
ZmllciwKK3ZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5
T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKICAgICB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcm
IGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYg
dXNlckRhdGEpCiB7CiAgICAgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQobV9wcm9jZXNz
LmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0eU9yaWdpbiwgaWRlbnRpZmllciwgbmF2
aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd01JTUVUeXBlLCBkb3dubG9hZEF0
dHJpYnV0ZSwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6
ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9j
ZXNzLCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAordm9pZCBXZWJQ
YWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3Jp
Z2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50
aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dN
SU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVu
ZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0
b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CkBAIC00OTcxLDcgKzQ5NzEsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiBwcm9jZXNzLAogICAgIH0KIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnVuYWJsZVRv
SW1wbGVtZW50UG9saWN5KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVy
cm9yLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6dW5hYmxl
VG9JbXBsZW1lbnRQb2xpY3koRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFJlc291cmNl
RXJyb3ImIGVycm9yLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgUGFnZUNsaWVu
dFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDk4NSw3ICs0OTg1LDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OnVuYWJsZVRvSW1wbGVtZW50UG9saWN5KHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFJlc291cmNlRXJyb3IKIAogLy8gRm9ybUNsaWVudAogCi12b2lkIFdlYlBh
Z2VQcm94eTo6d2lsbFN1Ym1pdEZvcm0odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qgc291cmNl
RnJhbWVJRCwgY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+JiB0ZXh0Rmll
bGRWYWx1ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkK
K3ZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0Rm9ybShGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgRnJhbWVJZGVudGlmaWVyIHNvdXJjZUZyYW1lSUQsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8
U3RyaW5nLCBTdHJpbmc+PiYgdGV4dEZpZWxkVmFsdWVzLCB1aW50NjRfdCBsaXN0ZW5lcklELCBj
b25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBt
X3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNz
LCBmcmFtZSk7CkBAIC01MDAzLDEyICs1MDAzLDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb250
ZW50UnVsZUxpc3ROb3RpZmljYXRpb24oVVJMJiYgdXJsLCBDb250ZW50UnVsZUxpc3RSZXN1bHRz
CiAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5jb250ZW50UnVsZUxpc3ROb3RpZmljYXRpb24oKnRo
aXMsIFdURk1vdmUodXJsKSwgV1RGTW92ZShyZXN1bHRzKSk7CiB9CiAgICAgCi12b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdhdGlv
bkRhdGFTdG9yZSYgc3RvcmUsIHVpbnQ2NF90IGZyYW1lSUQpIAordm9pZCBXZWJQYWdlUHJveHk6
OmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3Rv
cmUmIHN0b3JlLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBkaWROYXZpZ2F0ZVdp
dGhOYXZpZ2F0aW9uRGF0YVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBzdG9yZSwgZnJhbWVJ
RCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0
YVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIGNvbnN0IFdlYk5hdmlnYXRp
b25EYXRhU3RvcmUmIHN0b3JlLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6
OmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYgcHJvY2VzcywgY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYgc3RvcmUsIEZyYW1lSWRl
bnRpZmllciBmcmFtZUlEKQogewogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywg
ImRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkOiB3ZWJQSUQgPSAlaSwgcGFnZUlE
ID0gJSIgUFJJdTY0LCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJ
bnQ2NCgpKTsKIApAQCAtNTAyMywxNCArNTAyMywxNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
TmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBw
cgogICAgIHByb2Nlc3MtPnByb2Nlc3NQb29sKCkuaGlzdG9yeUNsaWVudCgpLmRpZE5hdmlnYXRl
V2l0aE5hdmlnYXRpb25EYXRhKHByb2Nlc3MtPnByb2Nlc3NQb29sKCksICp0aGlzLCBzdG9yZSwg
KmZyYW1lKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVj
dChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlv
blVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJm
b3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0
cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewog
ICAgIGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBz
b3VyY2VVUkxTdHJpbmcsIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBmcmFtZUlEKTsKIH0KIAotdm9p
ZCBXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJv
Y2Vzc1Byb3h5PiYmIHByb2Nlc3MsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25z
dCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBX
ZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmIHByb2Nlc3MsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBT
dHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsK
LSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRQZXJmb3JtQ2xpZW50UmVk
aXJlY3RTaGFyZWQ6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9
ICUiIFBSSXU2NCwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50
NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlk
UGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCks
IG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAKICAgICBQYWdlQ2xp
ZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC01MDUwLDEyICs1MDUw
LDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQo
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzCiAgICAgcHJvY2Vzcy0+cHJvY2Vzc1Bvb2wo
KS5oaXN0b3J5Q2xpZW50KCkuZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KHByb2Nlc3MtPnByb2Nl
c3NQb29sKCksICp0aGlzLCBzb3VyY2VVUkxTdHJpbmcsIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCAq
ZnJhbWUpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0
KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9u
VVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFBlcmZv
cm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3Ry
aW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAg
ICAgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0U2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIHNv
dXJjZVVSTFN0cmluZywgZGVzdGluYXRpb25VUkxTdHJpbmcsIGZyYW1lSUQpOwogfQogCi12b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYgcHJvY2VzcywgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0
IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYgcHJvY2VzcywgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0
cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewog
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZFBlcmZvcm1TZXJ2ZXJSZWRp
cmVjdDogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCwgcHJvY2Vzcy0+cHJvY2Vzc0lk
ZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSk7CiAKQEAgLTUwNzYsNyArNTA3Niw3IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzCiAgICAgcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5oaXN0
b3J5Q2xpZW50KCkuZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KHByb2Nlc3MtPnByb2Nlc3NQb29s
KCksICp0aGlzLCBzb3VyY2VVUkxTdHJpbmcsIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCAqZnJhbWUp
OwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkVXBkYXRlSGlzdG9yeVRpdGxlKGNvbnN0IFN0
cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgdXJsLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBX
ZWJQYWdlUHJveHk6OmRpZFVwZGF0ZUhpc3RvcnlUaXRsZShjb25zdCBTdHJpbmcmIHRpdGxlLCBj
b25zdCBTdHJpbmcmIHVybCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgUGFnZUNs
aWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNTEwNyw4ICs1MTA3
LDEwIEBAIHN0YXRpYyB2b2lkIHRyeVNPQXV0aG9yaXphdGlvbihSZWY8QVBJOjpOYXZpZ2F0aW9u
QWN0aW9uPiYmIG5hdmlnYXRpb25BY3Rpb24sIFdlCiAKIHZvaWQgV2ViUGFnZVByb3h5OjpjcmVh
dGVOZXdQYWdlKGNvbnN0IEZyYW1lSW5mb0RhdGEmIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBSZXNvdXJjZVJlcXVl
c3QmJiByZXF1ZXN0LCBXaW5kb3dGZWF0dXJlcyYmIHdpbmRvd0ZlYXR1cmVzLCBOYXZpZ2F0aW9u
QWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpDcmVhdGVOZXdQYWdlOjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsKLSAgICBNRVNTQUdFX0NI
RUNLKG1fcHJvY2VzcywgbV9wcm9jZXNzLT53ZWJGcmFtZShvcmlnaW5hdGluZ0ZyYW1lSW5mb0Rh
dGEuZnJhbWVJRCkpOwotICAgIGF1dG8gb3JpZ2luYXRpbmdGcmFtZUluZm8gPSBBUEk6OkZyYW1l
SW5mbzo6Y3JlYXRlKG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgb3JpZ2luYXRpbmdQYWdlSUQg
PyBtX3Byb2Nlc3MtPndlYlBhZ2UoKm9yaWdpbmF0aW5nUGFnZUlEKSA6IG51bGxwdHIpOworICAg
IE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEuZnJhbWVJ
RCk7CisgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIG1fcHJvY2Vzcy0+d2ViRnJhbWUoKm9y
aWdpbmF0aW5nRnJhbWVJbmZvRGF0YS5mcmFtZUlEKSk7CisKKyAgICBhdXRvIG9yaWdpbmF0aW5n
RnJhbWVJbmZvID0gQVBJOjpGcmFtZUluZm86OmNyZWF0ZShvcmlnaW5hdGluZ0ZyYW1lSW5mb0Rh
dGEsIG1fcHJvY2Vzcy0+d2ViUGFnZSgqb3JpZ2luYXRpbmdQYWdlSUQpKTsKICAgICBhdXRvIG1h
aW5GcmFtZVVSTCA9IG1fbWFpbkZyYW1lID8gbV9tYWluRnJhbWUtPnVybCgpIDogVVJMKCk7CiAg
ICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyksIG1haW5GcmFtZVVSTCwgcmVxdWVzdCwgcmVwbHkgPSBXVEZNb3ZlKHJlcGx5KV0g
KFJlZlB0cjxXZWJQYWdlUHJveHk+IG5ld1BhZ2UpIG11dGFibGUgewogICAgICAgICBpZiAoIW5l
d1BhZ2UpIHsKQEAgLTUxNzgsNyArNTE4MCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjbG9zZVBh
Z2UoYm9vbCBzdG9wUmVzcG9uc2l2ZW5lc3NUaW1lcikKICAgICBtX3VpQ2xpZW50LT5jbG9zZSh0
aGlzKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRBbGVydCh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRB
bGVydDo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit2b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNj
cmlwdEFsZXJ0KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRh
dGEmIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydDo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7CiAg
ICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwog
ICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBmcmFtZSk7CkBAIC01MTk3LDcgKzUxOTksNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEFsZXJ0KHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YQogICAgIG1fdWlDbGllbnQtPnJ1bkphdmFTY3JpcHRB
bGVydCh0aGlzLCBtZXNzYWdlLCBmcmFtZSwgc2VjdXJpdHlPcmlnaW4sIFdURk1vdmUocmVwbHkp
KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRDb25maXJtKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENv
bmZpcm06OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQordm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFT
Y3JpcHRDb25maXJtKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdp
bkRhdGEmIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRDb25maXJtOjpEZWxheWVkUmVwbHkmJiByZXBseSkK
IHsKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJ
RCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKQEAgLTUyMTcsNyArNTIx
OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0Q29uZmlybSh1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhCiAgICAgbV91aUNsaWVudC0+cnVuSmF2YVNj
cmlwdENvbmZpcm0odGhpcywgbWVzc2FnZSwgZnJhbWUsIHNlY3VyaXR5T3JpZ2luLCBXVEZNb3Zl
KHJlcGx5KSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0UHJvbXB0KHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4s
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OkRlbGF5ZWRSZXBseSYmIHJl
cGx5KQordm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4sIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OkRlbGF5ZWRSZXBseSYmIHJlcGx5
KQogewogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFt
ZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwpAQCAtNTM3Niw3ICs1
Mzc4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJvb3RWaWV3VG9BY2Nlc3NpYmlsaXR5U2NyZWVu
KGNvbnN0IEludFJlY3QmIHZpZXdSZWN0LCBDb21wbGUKICAgICBjb21wbGV0aW9uSGFuZGxlcihw
YWdlQ2xpZW50KCkucm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3JlZW4odmlld1JlY3QpKTsKIH0K
IAotdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbDo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit2b2lkIFdlYlBhZ2VQcm94eTo6
cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25z
dCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDo6
RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7CiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3By
b2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBm
cmFtZSk7CkBAIC01NDE2LDcgKzU0MTgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cGFnZURpZFNj
cm9sbCgpCiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJ1bk9wZW5QYW5lbCh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmln
aW4sIGNvbnN0IEZpbGVDaG9vc2VyU2V0dGluZ3MmIHNldHRpbmdzKQordm9pZCBXZWJQYWdlUHJv
eHk6OnJ1bk9wZW5QYW5lbChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlP
cmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBjb25zdCBGaWxlQ2hvb3NlclNldHRpbmdz
JiBzZXR0aW5ncykKIHsKICAgICBpZiAobV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcikgewogICAg
ICAgICBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyLT5pbnZhbGlkYXRlKCk7CkBAIC01NDU1LDcg
KzU0NTcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd1NoYXJlU2hlZXQoY29uc3QgU2hhcmVE
YXRhV2l0aFBhcnNlZFVSTCYgc2hhcmVEYXRhLCBTaGFyZQogICAgIHBhZ2VDbGllbnQoKS5zaG93
U2hhcmVTaGVldChzaGFyZURhdGEsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KICAg
ICAKLXZvaWQgV2ViUGFnZVByb3h5OjpwcmludEZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpwcmludEZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFtX2lzUGVyZm9y
bWluZ0RPTVByaW50T3BlcmF0aW9uKTsKICAgICBtX2lzUGVyZm9ybWluZ0RPTVByaW50T3BlcmF0
aW9uID0gdHJ1ZTsKQEAgLTY3NjksMjcgKzY3NzEsMjcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnBy
aW50RmluaXNoZWRDYWxsYmFjayhjb25zdCBSZXNvdXJjZUVycm9yJiBwcmludEVycm9yLCBDYWxs
YmEKIH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2VQcm94eTo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCh1
aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmZvY3VzZWRGcmFtZUNoYW5nZWQo
Y29uc3QgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiYgZnJhbWVJRCkKIHsKICAgICBpZiAoIWZy
YW1lSUQpIHsKICAgICAgICAgbV9mb2N1c2VkRnJhbWUgPSBudWxscHRyOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZy
YW1lKGZyYW1lSUQpOworICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJG
cmFtZSgqZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKIAog
ICAgIG1fZm9jdXNlZEZyYW1lID0gZnJhbWU7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpmcmFt
ZVNldExhcmdlc3RGcmFtZUNoYW5nZWQodWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpmcmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQoY29uc3QgT3B0aW9uYWw8RnJhbWVJZGVu
dGlmaWVyPiYgZnJhbWVJRCkKIHsKICAgICBpZiAoIWZyYW1lSUQpIHsKICAgICAgICAgbV9mcmFt
ZVNldExhcmdlc3RGcmFtZSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7Cisg
ICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKCpmcmFtZUlEKTsK
ICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwogCiAgICAgbV9mcmFtZVNldExh
cmdlc3RGcmFtZSA9IGZyYW1lOwpAQCAtNzM0NSwyNiArNzM0NywyNiBAQCBXZWFrUHRyPFNlY0tl
eVByb3h5U3RvcmU+IFdlYlBhZ2VQcm94eTo6c2VjS2V5UHJveHlTdG9yZShjb25zdCBXZWJDb3Jl
OjpBdXRoZW50aQogICAgIHJldHVybiBudWxscHRyOwogfQogICAgIAotdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5KHVpbnQ2NF90LCBSZWY8
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkK
K3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94
eShGcmFtZUlkZW50aWZpZXIsIFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmIGF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKQogewogICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkUmVj
ZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCp0aGlzLCBhdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpleGNlZWRlZERhdGFiYXNlUXVvdGEo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3Qg
Y3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJl
bnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpFeGNlZWRlZERhdGFiYXNlUXVvdGE6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQordm9p
ZCBXZWJQYWdlUHJveHk6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFi
YXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3Rh
LCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVz
YWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFeGNl
ZWRlZERhdGFiYXNlUXVvdGE6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQogewogICAgIHJlcXVlc3RT
dG9yYWdlU3BhY2UoZnJhbWVJRCwgb3JpZ2luSWRlbnRpZmllciwgZGF0YWJhc2VOYW1lLCBkaXNw
bGF5TmFtZSwgY3VycmVudFF1b3RhLCBjdXJyZW50T3JpZ2luVXNhZ2UsIGN1cnJlbnREYXRhYmFz
ZVVzYWdlLCBleHBlY3RlZFVzYWdlLCBbcmVwbHkgPSBXVEZNb3ZlKHJlcGx5KV0oYXV0byBxdW90
YSkgbXV0YWJsZSB7CiAgICAgICAgIHJlcGx5KHF1b3RhKTsKICAgICB9KTsKIH0KIAotdm9pZCBX
ZWJQYWdlUHJveHk6OnJlcXVlc3RTdG9yYWdlU3BhY2UodWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
U3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29u
c3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBj
dXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRf
dCBleHBlY3RlZFVzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0U3RvcmFnZVNwYWNlKEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50
NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3Qg
Y3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQodWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoU3RvcmFnZSwgInJlcXVlc3RTdG9yYWdlU3BhY2UgZm9yIGZyYW1l
ICUiIFBSSXU2NCAiLCBjdXJyZW50IHF1b3RhICUiIFBSSXU2NCAiIGN1cnJlbnQgdXNhZ2UgJSIg
UFJJdTY0ICIgZXhwZWN0ZWQgdXNhZ2UgJSIgUFJJdTY0LCBmcmFtZUlELCBjdXJyZW50UXVvdGEs
IGN1cnJlbnREYXRhYmFzZVVzYWdlLCBleHBlY3RlZFVzYWdlKTsKKyAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKFN0b3JhZ2UsICJyZXF1ZXN0U3RvcmFnZVNwYWNlIGZvciBmcmFtZSAlIiBQUkl1
NjQgIiwgY3VycmVudCBxdW90YSAlIiBQUkl1NjQgIiBjdXJyZW50IHVzYWdlICUiIFBSSXU2NCAi
IGV4cGVjdGVkIHVzYWdlICUiIFBSSXU2NCwgZnJhbWVJRC50b1VJbnQ2NCgpLCBjdXJyZW50UXVv
dGEsIGN1cnJlbnREYXRhYmFzZVVzYWdlLCBleHBlY3RlZFVzYWdlKTsKIAogICAgIFN0b3JhZ2VS
ZXF1ZXN0czo6c2luZ2xldG9uKCkucHJvY2Vzc09yQXBwZW5kKFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyksIHBhZ2VVUkwgPSBjdXJyZW50VVJMKCksIGZyYW1lSUQsIG9yaWdp
bklkZW50aWZpZXIsIGRhdGFiYXNlTmFtZSwgZGlzcGxheU5hbWUsIGN1cnJlbnRRdW90YSwgY3Vy
cmVudE9yaWdpblVzYWdlLCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgZXhwZWN0ZWRVc2FnZSwgY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsK
ICAgICAgICAgdGhpcy0+bWFrZVN0b3JhZ2VTcGFjZVJlcXVlc3QoZnJhbWVJRCwgb3JpZ2luSWRl
bnRpZmllciwgZGF0YWJhc2VOYW1lLCBkaXNwbGF5TmFtZSwgY3VycmVudFF1b3RhLCBjdXJyZW50
T3JpZ2luVXNhZ2UsIGN1cnJlbnREYXRhYmFzZVVzYWdlLCBleHBlY3RlZFVzYWdlLCBbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGZyYW1lSUQsIHBhZ2VVUkwg
PSBXVEZNb3ZlKHBhZ2VVUkwpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpLCBjdXJyZW50UXVvdGFdKGF1dG8gcXVvdGEpIG11dGFibGUgewogCi0gICAgICAg
ICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFN0b3JhZ2UsICJyZXF1ZXN0U3RvcmFnZVNwYWNl
IHJlc3BvbnNlIGZvciBmcmFtZSAlIiBQUkl1NjQgIiwgcXVvdGEgJSIgUFJJdTY0LCBmcmFtZUlE
LCBxdW90YSk7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFN0b3JhZ2UsICJy
ZXF1ZXN0U3RvcmFnZVNwYWNlIHJlc3BvbnNlIGZvciBmcmFtZSAlIiBQUkl1NjQgIiwgcXVvdGEg
JSIgUFJJdTY0LCBmcmFtZUlELnRvVUludDY0KCksIHF1b3RhKTsKIAogICAgICAgICAgICAgaWYg
KHF1b3RhIDw9IGN1cnJlbnRRdW90YSAmJiB0aGlzLT5jdXJyZW50VVJMKCkgPT0gcGFnZVVSTCkg
ewogICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoU3RvcmFnZSwgInN0b3Jh
Z2Ugc3BhY2UgaW5jcmVhc2UgZGVuaWVkIik7CkBAIC03Mzc2LDcgKzczNzgsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6cmVxdWVzdFN0b3JhZ2VTcGFjZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBT
dHJpbmcmIG9yaWdpbklkZQogICAgIH0pOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6bWFrZVN0
b3JhZ2VTcGFjZVJlcXVlc3QodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5J
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNw
bGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNh
Z2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdl
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3ZvaWQgV2ViUGFnZVByb3h5OjptYWtlU3RvcmFnZVNwYWNlUmVxdWVzdChGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVu
dFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRh
YmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAobV9pc1F1b3RhSW5j
cmVhc2VEZW5pZWQpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY3VycmVudFF1b3RhKTsK
QEAgLTc0MDIsNyArNzQwNCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWFjaGVkQXBwbGljYXRp
b25DYWNoZU9yaWdpblF1b3RhKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpCiAgICAgbV91aUNs
aWVudC0+cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh0aGlzLCBzZWN1cml0eU9y
aWdpbi5nZXQoKSwgY3VycmVudFF1b3RhLCB0b3RhbEJ5dGVzTmVlZGVkLCBXVEZNb3ZlKHJlcGx5
KSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9u
Rm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5n
IG9yaWdpbklkZW50aWZpZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEdlb2xvY2F0aW9u
UGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKIHsKICAgICBXZWJGcmFtZVByb3h5
KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVD
SyhtX3Byb2Nlc3MsIGZyYW1lKTsKQEAgLTc0NDYsNyArNzQ0OCw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpzZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkT3ZlcnJpZGUoT3B0aW9uYWw8Ym9vbD4g
ZW5hYmxlZCkKIH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRp
YVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiAgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW5EYXRhLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9j
dW1lbnRPcmlnaW5EYXRhLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJiByZXF1ZXN0KQor
dm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWlu
dDY0X3QgdXNlck1lZGlhSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmICB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRhdGEsIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEs
IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmIHJlcXVlc3QpCiB7CiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgbV9wcm9jZXNzLT53ZWJG
cmFtZShmcmFtZUlEKSk7CkBAIC03NDYxLDcgKzc0NjMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwg
dWludAogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjplbnVtZXJhdGVNZWRpYURldmlj
ZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRhdGEs
IGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdp
bkRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUo
dWludDY0X3QgdXNlck1lZGlhSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luRGF0YSwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0
YSkKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1l
ID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTc0OTMsNyArNzQ5NSw3IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpjbGVhclVzZXJNZWRpYVN0YXRlKCkKIH0KIAogI2lmIEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pCi12b2lkIFdlYlBhZ2VQcm94eTo6c2hvdWxkQWxsb3dEZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmJiBvcmlnaW5EYXRhLCBib29sIG1heVByb21wdCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpzaG91bGRBbGxvd0RldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmJiBvcmlnaW5EYXRhLCBib29sIG1heVByb21wdCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRl
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1f
cHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3Ms
IGZyYW1lKTsKQEAgLTg3MzYsNyArODczOCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkU3lu
Y2hyb25vdXNVUkxTY2hlbWVUYXNrKFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYgcGFyYW1lCiB9
CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotdm9pZCBXZWJQYWdlUHJv
eHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
c3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwg
dWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZp
cm0oY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIG1f
dWlDbGllbnQtPnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSgqdGhpcywgbV9wcm9jZXNzLT53
ZWJGcmFtZShmcmFtZUlEKSwgc3ViRnJhbWVEb21haW4sIHRvcEZyYW1lRG9tYWluLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCmluZGV4IGI0MzgzY2FmODhmMzcyNzJjZjk0NzdiNjQwMzljZTllZjVjOTQ5YTEuLjIwNzY5
NTkxYWMxZTMyMmY1MWNkY2Y1MjBlNWFjZWViMmUzZjljYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMDE4LDcgKzEwMTgsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBydW5KYXZhU2NyaXB0SW5NYWluRnJhbWUoY29uc3QgU3RyaW5nJiwgYm9vbCwgV1RGOjpGdW5j
dGlvbjx2b2lkIChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSosIGJvb2wgaGFkRXhjZXB0aW9u
LCBjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+
JiYgY2FsbGJhY2tGdW5jdGlvbik7CiAgICAgdm9pZCBydW5KYXZhU2NyaXB0SW5NYWluRnJhbWVT
Y3JpcHRXb3JsZChjb25zdCBTdHJpbmcmLCBib29sLCBjb25zdCBPcHRpb25hbDxTdHJpbmc+JiB3
b3JsZE5hbWUsIFdURjo6RnVuY3Rpb248dm9pZChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSos
IGJvb2wgaGFkRXhjZXB0aW9uLCBjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzJiwgQ2Fs
bGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbik7CiAgICAgLy8gRm9yIHN1YiBm
cmFtZXMuCi0gICAgdm9pZCBydW5KYXZhU2NyaXB0SW5GcmFtZSh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBTdHJpbmcmIHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBXVEY6OkZ1bmN0aW9u
PHZvaWQoQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqLCBib29sIGhhZEV4Y2VwdGlvbiwgY29u
c3QgV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNh
bGxiYWNrRnVuY3Rpb24pOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluRnJhbWUoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0
dXJlLCBXVEY6OkZ1bmN0aW9uPHZvaWQoQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqLCBib29s
IGhhZEV4Y2VwdGlvbiwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyYsIENhbGxiYWNr
QmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pOwogICAgIHZvaWQgZm9yY2VSZXBhaW50
KFJlZlB0cjxWb2lkQ2FsbGJhY2s+JiYpOwogCiAgICAgZmxvYXQgaGVhZGVySGVpZ2h0KFdlYkZy
YW1lUHJveHkmKTsKQEAgLTExNjEsNyArMTE2MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRyYXdS
ZWN0VG9JbWFnZShXZWJGcmFtZVByb3h5KiwgY29uc3QgUHJpbnRJbmZvJiwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBSZWY8SW1hZ2VDYWxsYmFjaz4m
Jik7CiAgICAgdm9pZCBkcmF3UGFnZXNUb1BERihXZWJGcmFtZVByb3h5KiwgY29uc3QgUHJpbnRJ
bmZvJiwgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBSZWY8RGF0YUNhbGxiYWNrPiYm
KTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHVpbnQzMl90IGNvbXB1dGVQYWdlc0Zv
clByaW50aW5nQW5kRHJhd1RvUERGKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYs
IERyYXdUb1BERkNhbGxiYWNrOjpDYWxsYmFja0Z1bmN0aW9uJiYpOworICAgIHVpbnQzMl90IGNv
bXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgY29uc3QgUHJpbnRJbmZvJiwgRHJhd1RvUERGQ2FsbGJhY2s6OkNhbGxiYWNrRnVuY3Rpb24m
Jik7CiAgICAgdm9pZCBkcmF3VG9QREZDYWxsYmFjayhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2Um
IHBkZkRhdGEsIFdlYktpdDo6Q2FsbGJhY2tJRCk7CiAjZW5kaWYKICNlbGlmIFBMQVRGT1JNKEdU
SykKQEAgLTEyNTIsNyArMTI1Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFZpZXdwb3J0U2l6
ZUZvckNTU1ZpZXdwb3J0VW5pdHMoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogICAgIFdlYkNv
cmU6OkludFNpemUgdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpIGNvbnN0IHsgcmV0
dXJuIG1fdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cy52YWx1ZU9yKFdlYkNvcmU6Oklu
dFNpemUoKSk7IH0KIAotICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
UHJveHkodWludDY0X3QgZnJhbWVJRCwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+
JiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4m
Jik7CiAKICAgICBTcGVsbERvY3VtZW50VGFnIHNwZWxsRG9jdW1lbnRUYWcoKTsKIApAQCAtMTQ1
MiwxMiArMTQ1MiwxMiBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpCi0gICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oY29u
c3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgcmVxdWVzdFN0b3Jh
Z2VBY2Nlc3NDb25maXJtKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFt
ZURvbWFpbiwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWlu
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYpOwogICAgIHZvaWQgZGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXJGcm9t
UHJldmFsZW50UmVzb3VyY2UoKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRB
VElPTikKLSAgICB2b2lkIHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nl
c3ModWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIGJvb2wg
bWF5UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRldmljZU9yaWVudGF0
aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmKTsKKyAgICB2b2lkIHNob3VsZEFsbG93RGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgYm9vbCBtYXlQcm9tcHQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25T
dGF0ZSk+JiYpOwogI2VuZGlmCiAKICAgICBzdGF0aWMgV2ViUGFnZVByb3h5KiBub25FcGhlbWVy
YWxXZWJQYWdlUHJveHkoKTsKQEAgLTE0OTgsMzMgKzE0OTgsMzMgQEAgcHVibGljOgogI2VuZGlm
CiAKICAgICBQcm92aXNpb25hbFBhZ2VQcm94eSogcHJvdmlzaW9uYWxQYWdlUHJveHkoKSBjb25z
dCB7IHJldHVybiBtX3Byb3Zpc2lvbmFsUGFnZS5nZXQoKTsgfQotICAgIHZvaWQgY29tbWl0UHJv
dmlzaW9uYWxQYWdlKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwg
dWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiwg
Ym9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3Vy
ZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmKTsKKyAg
ICB2b2lkIGNvbW1pdFByb3Zpc2lvbmFsUGFnZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhh
c0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2Vi
Q29yZTo6Q2VydGlmaWNhdGVJbmZvJiwgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRp
b25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVu
dCwgY29uc3QgVXNlckRhdGEmKTsKIAogICAgIC8vIExvZ2ljIHNoYXJlZCBiZXR3ZWVuIHRoZSBX
ZWJQYWdlUHJveHkgYW5kIHRoZSBQcm92aXNpb25hbFBhZ2VQcm94eS4KLSAgICB2b2lkIGRpZFN0
YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
dWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiwgVVJMJiYgdW5y
ZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3QgZnJh
bWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3Jp
Z2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkws
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2Fk
aW5nLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0
Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
dWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmJiwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJS
ZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0X3Qg
ZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0
cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQg
ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiwgY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAg
IHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYm
KTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lk
ZW50aWZpZXIsCisgICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBVUkwmJiwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJE
YXRhJik7CisgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJE
YXRhJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExv
YWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiYsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RT
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJp
bmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcik7CisgICAgdm9pZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0
cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7Cisg
ICAgdm9pZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YVNoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmLCBjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFy
ZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25Bc3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJp
dHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwKICAgICAgICAgdWludDY0
X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYs
IE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYmLAogICAgICAgICBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVz
dEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25z
dCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2lu
LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsCisgICAgdm9pZCBkZWNpZGVQb2xpY3lG
b3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0
eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLAogICAgICAgICB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3Ry
aW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRh
dGEmKTsKICAgICB2b2lkIHN0YXJ0VVJMU2NoZW1lVGFza1NoYXJlZChSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmLCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmKTsKICAgICB2b2lkIGxvYWREYXRhV2l0
aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgQVBJOjpOYXZpZ2F0aW9u
JiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29u
c3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCog
dXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0aW9uYWw8
V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiA9IFdURjo6bnVsbG9wdCwgV2ViQ29yZTo6U2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeSA9IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3k6OlNob3VsZE5vdEFsbG93KTsKICAgICB2b2lkIGxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25T
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgQVBJOjpOYXZpZ2F0aW9uJiwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ks
IEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmID0gV1RGOjpudWxsb3B0KTsKICAg
ICB2b2lkIGJhY2tGb3J3YXJkR29Ub0l0ZW1TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
Y29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYpPiYmKTsKLSAgICB2b2lkIGRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYsIHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKKyAgICB2b2lkIGRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAogICAgICAgICBGcmFtZUluZm9E
YXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJ
RCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJv
ZHksCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNl
LCBjb25zdCBVc2VyRGF0YSYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVkUmVwbHkmJik7CiAjaWYgVVNFKFFVSUNLX0xP
T0spCiAgICAgdm9pZCBkaWRSZXF1ZXN0UGFzc3dvcmRGb3JRdWlja0xvb2tEb2N1bWVudEluTWFp
bkZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgZmlsZU5h
bWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQotICAgIHZvaWQgY29u
dGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYsIHVpbnQ2NF90
IGZyYW1lSUQpOworICAgIHZvaWQgY29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJV
bmJsb2NrSGFuZGxlciYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAjZW5kaWYKIAogICAg
IHZvaWQgZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0
IFN0cmluZyYpPiYmKTsKQEAgLTE1NjEsNyArMTU2MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRl
OwogICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CiAKLSAg
ICB2b2lkIHJlcXVlc3RTdG9yYWdlU3BhY2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5n
JiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3Ry
aW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50
T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBl
Y3RlZFVzYWdlLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmKTsKKyAg
ICB2b2lkIHJlcXVlc3RTdG9yYWdlU3BhY2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBj
b25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90
IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2
NF90IGV4cGVjdGVkVXNhZ2UsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+
JiYpOwogCiAgICAgVVJMIGN1cnJlbnRSZXNvdXJjZURpcmVjdG9yeVVSTCgpIGNvbnN0OwogCkBA
IC0xNTgxLDcgKzE1ODEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlVGhyb3R0bGVTdGF0
ZSgpOwogICAgIHZvaWQgdXBkYXRlSGlkZGVuUGFnZVRocm90dGxpbmdBdXRvSW5jcmVhc2VzKCk7
CiAKLSAgICBib29sIHN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUoQVBJOjpOYXZpZ2F0aW9u
JiwgT3B0aW9uYWw8dWludDY0X3Q+IG1haW5GcmFtZUlELCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5
Q2xpZW50LCBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ01vZGUpOworICAgIGJvb2wgc3VzcGVuZEN1cnJlbnRQYWdlSWZQb3NzaWJsZShBUEk6Ok5h
dmlnYXRpb24mLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IG1haW5GcmFtZUlE
LCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVu
dGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOwogCiAgICAgZW51bSBjbGFzcyBSZXNl
dFN0YXRlUmVhc29uIHsKICAgICAgICAgUGFnZUludmFsaWRhdGVkLApAQCAtMTYxMCwzMiArMTYx
MCwzMiBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFBvaW50ZXJVbmxvY2soKTsKICNlbmRp
ZgogCi0gICAgdm9pZCBkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJRCk7Ci0gICAg
dm9pZCBkaWRDcmVhdGVTdWJmcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZENy
ZWF0ZVdpbmRvdyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlm
aWVyJiYpOwotCi0gICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYsIFVSTCYmIHVucmVhY2hh
YmxlVVJMLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGly
ZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVXNlckRhdGEm
KTsKLSAgICB2b2lkIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBTdHJpbmcmIHVybCwgZG91YmxlIGRlbGF5LCBXZWJDb3JlOjpMb2NrQmFj
a0ZvcndhcmRMaXN0KTsKLSAgICB2b2lkIGRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOwotICAg
IHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZywgY29u
c3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJv
b2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUs
IGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYsIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1
bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNl
Y3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRGaW5pc2hEb2N1bWVu
dExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNv
bnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRGaW5pc2hMb2FkRm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZv
aWQgZGlkRmFpbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0YSYpOwot
ICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMyX3Qgc2FtZURvY3VtZW50TmF2aWdhdGlv
blR5cGUsIFVSTCYmLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkQ2hhbmdlTWFpbkRv
Y3VtZW50KHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkRXhwbGljaXRPcGVuRm9yRnJh
bWUodWludDY0X3QgZnJhbWVJRCwgVVJMJiYpOwotCi0gICAgdm9pZCBkaWRSZWNlaXZlVGl0bGVG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmLCBjb25zdCBVc2VyRGF0YSYp
OwotICAgIHZvaWQgZGlkRmlyc3RMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZERp
c3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVc2Vy
RGF0YSYpOwotICAgIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZERldGVjdFhTU0ZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRDcmVhdGVN
YWluRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZENyZWF0ZVN1
YmZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRDcmVhdGVXaW5k
b3coV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlm
aWVyJiYpOworCisgICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiwgVVJMJiYg
dW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU2Vy
dmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYs
IGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9y
RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVybCwgZG91Ymxl
IGRlbGF5LCBXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0KTsKKyAgICB2b2lkIGRpZENhbmNl
bENsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2
b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKKyAgICB2b2lkIGRpZEZhaWxQcm92
aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRh
dGEmKTsKKyAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9v
bCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwg
Y29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiwgYm9vbCBjb250YWluc1BsdWdpbkRvY3Vt
ZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2Vj
dXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZEZpbmlzaERvY3VtZW50
TG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBVc2Vy
RGF0YSYpOworICAgIHZvaWQgZGlkRmFpbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciYsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9u
Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IHVpbnQzMl90IHNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLCBVUkwmJiwgY29uc3QgVXNlckRh
dGEmKTsKKyAgICB2b2lkIGRpZENoYW5nZU1haW5Eb2N1bWVudChXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIpOworICAgIHZvaWQgZGlkRXhwbGljaXRPcGVuRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBVUkwmJik7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgY29uc3QgVXNlckRhdGEmKTsK
KyAgICB2b2lkIGRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5
b3V0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBVc2VyRGF0YSYpOwor
ICAgIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZFJ1bkluc2VjdXJlQ29u
dGVudEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgVXNlckRhdGEmKTsK
KyAgICB2b2lkIGRpZERldGVjdFhTU0ZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
Y29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIG1haW5GcmFtZVBsdWdpbkhhbmRsZXNQYWdlU2Nh
bGVHZXN0dXJlRGlkQ2hhbmdlKGJvb2wpOwotICAgIHZvaWQgZnJhbWVEaWRCZWNvbWVGcmFtZVNl
dCh1aW50NjRfdCBmcmFtZUlELCBib29sKTsKKyAgICB2b2lkIGZyYW1lRGlkQmVjb21lRnJhbWVT
ZXQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBib29sKTsKICAgICB2b2lkIGRpZFN0YXJ0UHJv
Z3Jlc3MoKTsKICAgICB2b2lkIGRpZENoYW5nZVByb2dyZXNzKGRvdWJsZSk7CiAgICAgdm9pZCBk
aWRGaW5pc2hQcm9ncmVzcygpOwpAQCAtMTY0OCwzNyArMTY0OCwzNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmLCBXZWJGcmFtZVByb3h5JiwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAgRnJhbWVJ
bmZvRGF0YSYmLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQ
YWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVl
c3RCb2R5LAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNw
b25zZSwgY29uc3QgVXNlckRhdGEmLCBSZWY8UG9saWN5RGVjaXNpb25TZW5kZXI+JiYpOwotICAg
IHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKHVpbnQ2NF90IGZyYW1l
SUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lk
ZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwK
KyAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQ
b2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFj
dGlvbkRhdGEmJiwKICAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBD
OjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAogICAgICAgICBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCB1aW50NjRf
dCBsaXN0ZW5lcklEKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25T
eW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKKyAgICB2b2lkIGRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBp
c01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9u
RGF0YSYmLAogICAgICAgICBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZv
cm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVk
UmVwbHkmJik7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24odWludDY0
X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAorICAgIHZvaWQg
ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAogICAgICAgICBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmJiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVy
SUQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwKKyAgICB2
b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsCiAgICAgICAgIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNh
blNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3Qg
bGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIHVuYWJsZVRvSW1wbGVtZW50
UG9saWN5KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBj
b25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgdW5hYmxlVG9JbXBsZW1lbnRQb2xpY3koV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3Qg
VXNlckRhdGEmKTsKICAgICB2b2lkIGJlZ2luU2FmZUJyb3dzaW5nQ2hlY2soY29uc3QgVVJMJiwg
Ym9vbCwgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5Jik7CiAKICAgICBXZWJDb250ZW50TW9k
ZSBlZmZlY3RpdmVDb250ZW50TW9kZUFmdGVyQWRqdXN0aW5nUG9saWNpZXMoQVBJOjpXZWJzaXRl
UG9saWNpZXMmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKIAotICAgIHZvaWQg
d2lsbFN1Ym1pdEZvcm0odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qgc291cmNlRnJhbWVJRCwg
Y29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+JiB0ZXh0RmllbGRWYWx1ZXMs
IHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCB3aWxsU3Vi
bWl0Rm9ybShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBzb3VyY2VGcmFtZUlELCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4m
IHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsK
IAogICAgIHZvaWQgY29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uKFVSTCYmLCBXZWJDb3JlOjpD
b250ZW50UnVsZUxpc3RSZXN1bHRzJiYpOwogCiAgICAgLy8gSGlzdG9yeSBjbGllbnQKLSAgICB2
b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25EYXRh
U3RvcmUmLCB1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZFBlcmZvcm1DbGllbnRSZWRp
cmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5h
dGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRQZXJmb3JtU2Vy
dmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYg
ZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkVXBk
YXRlSGlzdG9yeVRpdGxlKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgdXJsLCB1
aW50NjRfdCBmcmFtZUlEKTsKKyAgICB2b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRh
KGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIp
OworICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNl
VVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0
IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3Ry
aW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkVXBkYXRlSGlzdG9y
eVRpdGxlKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgdXJsLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIpOwogCiAgICAgLy8gVUkgY2xpZW50CiAgICAgdm9pZCBjcmVhdGVOZXdQ
YWdlKGNvbnN0IEZyYW1lSW5mb0RhdGEmLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmll
cj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3Jl
OjpXaW5kb3dGZWF0dXJlcyYmLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlOjpEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBzaG93
UGFnZSgpOwotICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYsIE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydDo6RGVsYXllZFJlcGx5JiYpOwotICAg
IHZvaWQgcnVuSmF2YVNjcmlwdENvbmZpcm0odWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6UnVuSmF2YVNjcmlwdENvbmZpcm06OkRlbGF5ZWRSZXBseSYmKTsKLSAgICB2b2lkIHJ1
bkphdmFTY3JpcHRQcm9tcHQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdDo6RGVsYXllZFJlcGx5JiYpOworICAgIHZv
aWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6UnVuSmF2YVNjcmlwdEFsZXJ0OjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBy
dW5KYXZhU2NyaXB0Q29uZmlybShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYsIE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OlJ1bkphdmFTY3JpcHRDb25maXJtOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBy
dW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdDo6RGVsYXllZFJlcGx5JiYp
OwogICAgIHZvaWQgc2V0U3RhdHVzVGV4dChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIG1vdXNl
RGlkTW92ZU92ZXJFbGVtZW50KFdlYkhpdFRlc3RSZXN1bHREYXRhJiYsIHVpbnQzMl90IG1vZGlm
aWVycywgVXNlckRhdGEmJik7CiAKQEAgLTE3MDEsMjEgKzE3MDEsMjEgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHJvb3RWaWV3VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld1JlY3Qs
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJvb3RWaWV3VG9TY3JlZW46OkRlbGF5ZWRSZXBseSYm
KTsKICAgICB2b2lkIGFjY2Vzc2liaWxpdHlTY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBzY3JlZW5Qb2ludCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpJ
bnRQb2ludCk+JiYpOwogICAgIHZvaWQgcm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3JlZW4oY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld1JlY3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vi
Q29yZTo6SW50UmVjdCk+JiYpOwotICAgIHZvaWQgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuQmVmb3JlVW5s
b2FkQ29uZmlybVBhbmVsOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBydW5CZWZvcmVVbmxv
YWRDb25maXJtUGFuZWwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDo6RGVsYXllZFJlcGx5JiYpOwog
ICAgIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdw
b3J0QXR0cmlidXRlcyYpOwogICAgIHZvaWQgcGFnZURpZFNjcm9sbCgpOwotICAgIHZvaWQgcnVu
T3BlblBhbmVsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYsIGNvbnN0IFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MmKTsKKyAgICB2b2lkIHJ1
bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYsIGNvbnN0IFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MmKTsKICAg
ICB2b2lkIHNob3dTaGFyZVNoZWV0KGNvbnN0IFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRV
UkwmLCBTaGFyZVNoZWV0Q2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBwcmludEZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBleGNlZWRl
ZERhdGFiYXNlUXVvdGEodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5
TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2Us
IHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFeGNlZWRlZERhdGFiYXNlUXVvdGE6OkRlbGF5ZWRSZXBs
eSYmKTsKKyAgICB2b2lkIHByaW50RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3Rh
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwg
dWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2
NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpFeGNlZWRlZERhdGFiYXNlUXVvdGE6OkRlbGF5ZWRSZXBseSYmKTsK
ICAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoY29uc3QgU3RyaW5n
JiBvcmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFs
Qnl0ZXNOZWVkZWQsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlYWNoZWRBcHBsaWNhdGlvbkNh
Y2hlT3JpZ2luUXVvdGE6OkRlbGF5ZWRSZXBseSYmKTsKLSAgICB2b2lkIHJlcXVlc3RHZW9sb2Nh
dGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCB1aW50NjRfdCBm
cmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcik7CisgICAgdm9pZCByZXF1ZXN0R2VvbG9j
YXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcik7CiAKICNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQogICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
JiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKTsKICNlbmRpZgotICAgIHZvaWQg
cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwg
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlh
U3RyZWFtUmVxdWVzdCYmKTsKLSAgICB2b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1l
KHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luRGF0YSwgY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YSk7Cisg
ICAgdm9pZCByZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJN
ZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVy
LCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJik7CisgICAgdm9pZCBlbnVtZXJhdGVNZWRp
YURldmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luRGF0YSwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luRGF0YSk7CiAgICAgdm9pZCBiZWdpbk1vbml0b3JpbmdDYXB0dXJlRGV2
aWNlcygpOwogCiAgICAgdm9pZCBydW5Nb2RhbCgpOwpAQCAtMTg5NSw4ICsxODk1LDggQEAgcHJp
dmF0ZToKICAgICB2b2lkIHByaW50RmluaXNoZWRDYWxsYmFjayhjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yJiwgQ2FsbGJhY2tJRCk7CiAjZW5kaWYKIAotICAgIHZvaWQgZm9jdXNlZEZyYW1l
Q2hhbmdlZCh1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGZyYW1lU2V0TGFyZ2VzdEZyYW1l
Q2hhbmdlZCh1aW50NjRfdCBmcmFtZUlEKTsKKyAgICB2b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQo
Y29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiYpOworICAgIHZvaWQgZnJh
bWVTZXRMYXJnZXN0RnJhbWVDaGFuZ2VkKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcj4mKTsKIAogICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0b21Db250
ZW50UHJvdmlkZXIoY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSwgY29uc3QgSVBDOjpE
YXRhUmVmZXJlbmNlJik7CiAKQEAgLTE5OTcsNyArMTk5Nyw3IEBAIHByaXZhdGU6CiAjZW5kaWYK
IAogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKLSAgICB2b2lkIGNvbnRlbnRGaWx0ZXJE
aWRCbG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hh
bmRsZXImLCB1aW50NjRfdCBmcmFtZUlEKTsKKyAgICB2b2lkIGNvbnRlbnRGaWx0ZXJEaWRCbG9j
a0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIm
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogI2VuZGlmCiAKICAgICB2b2lkIHRyeVJlbG9h
ZEFmdGVyUHJvY2Vzc1Rlcm1pbmF0aW9uKCk7CkBAIC0yMTEwLDcgKzIxMTAsNyBAQCBwcml2YXRl
OgogICAgIHN0YXRpYyBib29sIGlzSW5IYXJkd2FyZUtleWJvYXJkTW9kZSgpOwogI2VuZGlmCiAK
LSAgICB2b2lkIG1ha2VTdG9yYWdlU3BhY2VSZXF1ZXN0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNv
bnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3Qg
Y3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0
X3QgZXhwZWN0ZWRVc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYpOwor
ICAgIHZvaWQgbWFrZVN0b3JhZ2VTcGFjZVJlcXVlc3QoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VO
YW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVp
bnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2Us
IHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3Qp
PiYmKTsKIAogICAgIFdlYWtQdHI8UGFnZUNsaWVudD4gbV9wYWdlQ2xpZW50OwogICAgIFJlZjxB
UEk6OlBhZ2VDb25maWd1cmF0aW9uPiBtX2NvbmZpZ3VyYXRpb247CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZWNhZDk1ZTQ2YjU0
M2FjOTE1MDQwZTYwZWY0MDRiZWQ2NDI2NzE2MS4uMTU4OTE5ZTMxNjAxMWQ2OTk0MGRkOWIxZTJm
N2NjYzMxZWE0ZTQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgpAQCAtMjUsOSArMjUsOSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJv
eHkgewogICAgIENyZWF0ZU5ld1BhZ2Uoc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmln
aW5hdGluZ0ZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBv
cmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHN0cnVj
dCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyB3aW5kb3dGZWF0dXJlcywgc3RydWN0IFdlYktpdDo6
TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEpIC0+IChPcHRpb25hbDxX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gbmV3UGFnZUlELCBPcHRpb25hbDxXZWJLaXQ6OldlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnM+IG5ld1BhZ2VQYXJhbWV0ZXJzKSBTeW5jaHJvbm91cwogICAg
IFNob3dQYWdlKCkKICAgICBDbG9zZVBhZ2UoYm9vbCBzdG9wUmVzcG9uc2l2ZW5lc3NUaW1lcikK
LSAgICBSdW5KYXZhU2NyaXB0QWxlcnQodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSkg
LT4gKCkgU3luY2hyb25vdXMKLSAgICBSdW5KYXZhU2NyaXB0Q29uZmlybSh1aW50NjRfdCBmcmFt
ZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmln
aW4sIFN0cmluZyBtZXNzYWdlKSAtPiAoYm9vbCByZXN1bHQpIFN5bmNocm9ub3VzCi0gICAgUnVu
SmF2YVNjcmlwdFByb21wdCh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFN0cmluZyBtZXNzYWdlLCBTdHJpbmcg
ZGVmYXVsdFZhbHVlKSAtPiAoU3RyaW5nIHJlc3VsdCkgU3luY2hyb25vdXMKKyAgICBSdW5KYXZh
U2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3Nh
Z2UpIC0+ICgpIFN5bmNocm9ub3VzCisgICAgUnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3NhZ2UpIC0+IChib29sIHJlc3VsdCkg
U3luY2hyb25vdXMKKyAgICBSdW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVmYXVsdFZhbHVlKSAtPiAoU3Ry
aW5nIHJlc3VsdCkgU3luY2hyb25vdXMKICAgICBNb3VzZURpZE1vdmVPdmVyRWxlbWVudChzdHJ1
Y3QgV2ViS2l0OjpXZWJIaXRUZXN0UmVzdWx0RGF0YSBoaXRUZXN0UmVzdWx0RGF0YSwgdWludDMy
X3QgbW9kaWZpZXJzLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQogCiAjaWYgRU5BQkxFKE5F
VFNDQVBFX1BMVUdJTl9BUEkpCkBAIC00Nyw4ICs0Nyw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQ
cm94eSB7CiAgICAgU2V0VG9vbFRpcChTdHJpbmcgdG9vbFRpcCkKICAgICBTZXRGb2N1cyhib29s
IGZvY3VzZWQpCiAgICAgVGFrZUZvY3VzKHVpbnQzMl90IGRpcmVjdGlvbikKLSAgICBGb2N1c2Vk
RnJhbWVDaGFuZ2VkKHVpbnQ2NF90IGZyYW1lSUQpCi0gICAgRnJhbWVTZXRMYXJnZXN0RnJhbWVD
aGFuZ2VkKHVpbnQ2NF90IGZyYW1lSUQpCisgICAgRm9jdXNlZEZyYW1lQ2hhbmdlZChPcHRpb25h
bDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQpCisgICAgRnJhbWVTZXRMYXJnZXN0
RnJhbWVDaGFuZ2VkKE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCkK
ICAgICBTZXRSZW5kZXJUcmVlU2l6ZSh1aW50NjRfdCB0cmVlU2l6ZSkKICAgICBTZXRUb29sYmFy
c0FyZVZpc2libGUoYm9vbCB0b29sYmFyc0FyZVZpc2libGUpCiAgICAgR2V0VG9vbGJhcnNBcmVW
aXNpYmxlKCkgLT4gKGJvb2wgdG9vbGJhcnNBcmVWaXNpYmxlKSBTeW5jaHJvbm91cwpAQCAtNjks
MTEgKzY5LDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgSGlkZVZhbGlkYXRp
b25NZXNzYWdlKCkKICNlbmRpZgogCi0gICAgUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKHVp
bnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3NhZ2UpIC0+IChib29sIHNob3VsZENsb3NlKSBTeW5j
aHJvbm91cworICAgIFJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFt
ZVNlY3VyaXR5T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSkgLT4gKGJvb2wgc2hvdWxkQ2xvc2UpIFN5
bmNocm9ub3VzCiAgICAgUGFnZURpZFNjcm9sbCgpCi0gICAgUnVuT3BlblBhbmVsKHVpbnQ2NF90
IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0
eU9yaWdpbiwgc3RydWN0IFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MgcGFyYW1ldGVycykK
KyAgICBSdW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVj
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgc3RydWN0
IFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MgcGFyYW1ldGVycykKICAgICBTaG93U2hhcmVT
aGVldChzdHJ1Y3QgV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCBzaGFyZURhdGEsIHVp
bnQ2NF90IGNhbGxiYWNrSUQpCi0gICAgUHJpbnRGcmFtZSh1aW50NjRfdCBmcmFtZUlEKSAtPiAo
KSBTeW5jaHJvbm91cworICAgIFByaW50RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQpIC0+ICgpIFN5bmNocm9ub3VzCiAgICAgUnVuTW9kYWwoKQogICAgIE5vdGlmeVNjcm9s
bGVyVGh1bWJJc1Zpc2libGVJblJlY3QoV2ViQ29yZTo6SW50UmVjdCBzY3JvbGxlclRodW1iKQog
ICAgIFJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2UoaW50MzJfdCBuZXdTdHlsZSkK
QEAgLTEwMywxMSArMTAzLDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjZW5kaWYK
IAogICAgICMgUG9saWN5IG1lc3NhZ2VzCi0gICAgRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UodWlu
dDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNl
Y3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBib29sIGNhblNo
b3dNSU1FVHlwZSwgU3RyaW5nIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklE
LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb25Bc3luYyh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0
IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVj
dCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25h
bDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEs
IHVpbnQ2NF90IGxpc3RlbmVySUQpCi0gICAgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
blN5bmModWludDY0X3QgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgc3RydWN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25E
YXRhLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0
YSwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRh
IHVzZXJEYXRhKSAtPiAoV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNr
SWRlbnRpZmllciwgZW51bTp1aW50OF90IFdlYkNvcmU6OlBvbGljeUFjdGlvbiBwb2xpY3lBY3Rp
b24sIHVpbnQ2NF90IG5ld05hdmlnYXRpb25JRCwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2Fk
SUQsIE9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0YT4gd2Vic2l0ZVBvbGljaWVz
KSBTeW5jaHJvbm91cwotICAgIERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRf
dCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJp
dHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50
aWZpZXIsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rp
b25EYXRhLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIGZyYW1lTmFt
ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBV
bmFibGVUb0ltcGxlbWVudFBvbGljeSh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yIGVycm9yLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERlY2lkZVBvbGlj
eUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBv
bGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBTdHJpbmcgZG93bmxv
YWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRh
dGEpCisgICAgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
IGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xp
Y3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6
TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6
OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBJ
UEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlIHJlZGlyZWN0UmVzcG9uc2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEsIHVpbnQ2NF90
IGxpc3RlbmVySUQpCisgICAgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIHN0cnVjdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9u
QWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1l
SW5mb0RhdGEsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1Bh
Z2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJv
ZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpV
c2VyRGF0YSB1c2VyRGF0YSkgLT4gKFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xp
Y3lDaGVja0lkZW50aWZpZXIsIGVudW06dWludDhfdCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9s
aWN5QWN0aW9uLCB1aW50NjRfdCBuZXdOYXZpZ2F0aW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBk
b3dubG9hZElELCBPcHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQ
b2xpY2llcykgU3luY2hyb25vdXMKKyAgICBEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24o
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFj
dGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0LCBTdHJpbmcgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVz
ZXJEYXRhIHVzZXJEYXRhKQorICAgIFVuYWJsZVRvSW1wbGVtZW50UG9saWN5KFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBXZWJL
aXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQogCiAgICAgIyBQcm9ncmVzcyBtZXNzYWdlcwogICAgIERp
ZENoYW5nZVByb2dyZXNzKGRvdWJsZSB2YWx1ZSkKQEAgLTExNyw1MSArMTE3LDUxIEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgU2V0TmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcyhi
b29sIG5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3MpCiAKICAgICAjIEZyYW1lIGxpZmV0aW1lIG1l
c3NhZ2VzCi0gICAgRGlkQ3JlYXRlTWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCi0gICAgRGlk
Q3JlYXRlU3ViZnJhbWUodWludDY0X3QgZnJhbWVJRCkKKyAgICBEaWRDcmVhdGVNYWluRnJhbWUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCisgICAgRGlkQ3JlYXRlU3ViZnJhbWUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAKLSAgICBEaWRDcmVhdGVXaW5kb3co
dWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXIg
d2luZG93SWRlbnRpZmllcikKKyAgICBEaWRDcmVhdGVXaW5kb3coV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlmaWVyIHdp
bmRvd0lkZW50aWZpZXIpCiAKICAgICAjIEZyYW1lIGxvYWQgbWVzc2FnZXMKLSAgICBEaWRTdGFy
dFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgVVJMIHVybCwgVVJMIHVucmVhY2hhYmxlVVJMLCBXZWJLaXQ6OlVzZXJEYXRhIHVz
ZXJEYXRhKQotICAgIERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAg
V2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFN0cmlu
ZyB1cmwsIGRvdWJsZSBkZWxheSwgZW51bTpib29sIFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExp
c3QgbG9ja0JhY2tGb3J3YXJkTGlzdCkKLSAgICBEaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQpCi0gICAgRGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCB1cmwpCi0gICAg
RGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBTdHJpbmcgcHJvdmlzaW9uYWxVUkwsIFdlYkNvcmU6OlJlc291cmNlRXJy
b3IgZXJyb3IsIGVudW06Ym9vbCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250
aW51ZUxvYWRpbmcsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlkQ29tbWl0TG9h
ZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgU3RyaW5n
IG1pbWVUeXBlLCBib29sIGhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgbG9hZFR5
cGUsIFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFp
bnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBm
b3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAg
RGlkRmFpbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6VXNlckRhdGEgdXNlckRh
dGEpCi0gICAgRGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERp
ZEZpbmlzaExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlkRmlyc3RMYXlvdXRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZEZp
cnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktp
dDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFt
ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBVUkwgdXJsLCBVUkwgdW5yZWFjaGFibGVVUkwsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEp
CisgICAgRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYktpdDo6VXNlckRhdGEgdXNlckRh
dGEpCisgICAgV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgdXJsLCBkb3VibGUgZGVsYXksIGVudW06Ym9vbCBX
ZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QpCisgICAgRGlk
Q2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCkKKyAgICBEaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCB1cmwpCisgICAg
RGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlP
cmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgU3RyaW5nIHByb3Zpc2lvbmFsVVJMLCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBlbnVtOmJvb2wgV2ViQ29yZTo6V2lsbENvbnRpbnVl
TG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQor
ICAgIERpZENvbW1pdExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBTdHJpbmcgbWltZVR5cGUsIGJvb2wgaGFzQ3VzdG9t
Q29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBsb2FkVHlwZSwgV2ViQ29yZTo6Q2VydGlmaWNhdGVJ
bmZvIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25h
bDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwg
V2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWRGYWlsTG9hZEZvckZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNv
cmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAg
RGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkK
KyAgICBEaWRGaW5pc2hMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAg
ICBEaWRGaXJzdExheW91dEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZEZpcnN0VmlzdWFsbHlOb25FbXB0
eUxheW91dEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJLaXQ6
OlVzZXJEYXRhIHVzZXJEYXRhKQogICAgIERpZFJlYWNoTGF5b3V0TWlsZXN0b25lKE9wdGlvblNl
dDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+IGxheW91dE1pbGVzdG9uZXMpCi0gICAgRGlkUmVj
ZWl2ZVRpdGxlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHRpdGxlLCBXZWJLaXQ6
OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZFJ1
bkluc2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6VXNlckRh
dGEgdXNlckRhdGEpCi0gICAgRGlkRGV0ZWN0WFNTRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
V2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9u
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50MzJf
dCB0eXBlLCBVUkwgdXJsLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZENoYW5n
ZU1haW5Eb2N1bWVudCh1aW50NjRfdCBmcmFtZUlEKQotICAgIERpZEV4cGxpY2l0T3BlbkZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIFVSTCB1cmwpCisgICAgRGlkUmVjZWl2ZVRpdGxlRm9yRnJh
bWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyB0aXRsZSwgV2ViS2l0
OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJh
bWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYktpdDo6VXNlckRhdGEgdXNl
ckRhdGEpCisgICAgRGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkRGV0
ZWN0WFNTRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYktpdDo6
VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1l
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IHVpbnQzMl90IHR5cGUsIFVSTCB1cmwsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAg
RGlkQ2hhbmdlTWFpbkRvY3VtZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQor
ICAgIERpZEV4cGxpY2l0T3BlbkZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBVUkwgdXJsKQogICAgIERpZERlc3Ryb3lOYXZpZ2F0aW9uKHVpbnQ2NF90IG5hdmlnYXRp
b25JRCkKIAogICAgIEhhc0luc2VjdXJlQ29udGVudCgpIC0+IChlbnVtOmJvb2wgV2ViQ29yZTo6
SGFzSW5zZWN1cmVDb250ZW50IGhhc0luc2VjdXJlQ29udGVudCkgU3luY2hyb25vdXMKIAogICAg
IE1haW5GcmFtZVBsdWdpbkhhbmRsZXNQYWdlU2NhbGVHZXN0dXJlRGlkQ2hhbmdlKGJvb2wgbWFp
bkZyYW1lUGx1Z2luSGFuZGxlc1BhZ2VTY2FsZUdlc3R1cmUpCiAKLSAgICBGcmFtZURpZEJlY29t
ZUZyYW1lU2V0KHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgdmFsdWUpCisgICAgRnJhbWVEaWRCZWNv
bWVGcmFtZVNldChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCB2YWx1ZSkK
IAogICAgICMgSGlzdG9yeSBjbGllbnQgbWVzc2FnZXMuCi0gICAgRGlkTmF2aWdhdGVXaXRoTmF2
aWdhdGlvbkRhdGEoc3RydWN0IFdlYktpdDo6V2ViTmF2aWdhdGlvbkRhdGFTdG9yZSBzdG9yZSwg
dWludDY0X3QgZnJhbWVJRCkKLSAgICBEaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoU3RyaW5nIHNv
dXJjZVVSTFN0cmluZywgU3RyaW5nIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFt
ZUlEKQotICAgIERpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChTdHJpbmcgc291cmNlVVJMU3RyaW5n
LCBTdHJpbmcgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpCi0gICAgRGlk
VXBkYXRlSGlzdG9yeVRpdGxlKFN0cmluZyB0aXRsZSwgU3RyaW5nIHVybCwgdWludDY0X3QgZnJh
bWVJRCkKKyAgICBEaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShzdHJ1Y3QgV2ViS2l0OjpX
ZWJOYXZpZ2F0aW9uRGF0YVN0b3JlIHN0b3JlLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCkKKyAgICBEaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoU3RyaW5nIHNvdXJjZVVSTFN0cmlu
ZywgU3RyaW5nIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCkKKyAgICBEaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoU3RyaW5nIHNvdXJjZVVSTFN0
cmluZywgU3RyaW5nIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCkKKyAgICBEaWRVcGRhdGVIaXN0b3J5VGl0bGUoU3RyaW5nIHRpdGxlLCBTdHJp
bmcgdXJsLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIAogICAgICMgQ3VzdG9t
IHJlcHJlc2VudGF0aW9ucwogICAgIERpZEZpbmlzaExvYWRpbmdEYXRhRm9yQ3VzdG9tQ29udGVu
dFByb3ZpZGVyKFN0cmluZyBzdWdnZXN0ZWRGaWxlbmFtZSwgSVBDOjpEYXRhUmVmZXJlbmNlIGRh
dGEpCiAKICAgICAjIEZvcm1zIG1lc3NhZ2VzCi0gICAgV2lsbFN1Ym1pdEZvcm0odWludDY0X3Qg
ZnJhbWVJRCwgdWludDY0X3Qgc291cmNlRnJhbWVJRCwgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcs
IFN0cmluZz4+IHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpV
c2VyRGF0YSB1c2VyRGF0YSkKKyAgICBXaWxsU3VibWl0Rm9ybShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIHNvdXJjZUZyYW1lSUQsIFZl
Y3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXh0RmllbGRWYWx1ZXMsIHVpbnQ2NF90
IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAKICAgICAjIENhbGxiYWNr
IG1lc3NhZ2VzCiAgICAgVm9pZENhbGxiYWNrKFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lE
KQpAQCAtMjc1LDE4ICsyNzUsMTggQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRp
ZgogCiAgICAgIyBEYXRhYmFzZSBtZXNzYWdlcwotICAgIEV4Y2VlZGVkRGF0YWJhc2VRdW90YSh1
aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllciwgU3RyaW5nIGRhdGFiYXNl
TmFtZSwgU3RyaW5nIGRhdGFiYXNlRGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwg
dWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2Fn
ZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSkgLT4gKHVpbnQ2NF90IG5ld1F1b3RhKSBTeW5jaHJv
bm91cworICAgIEV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIsIFN0cmluZyBkYXRhYmFzZU5hbWUsIFN0
cmluZyBkYXRhYmFzZURpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90
IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2
NF90IGV4cGVjdGVkVXNhZ2UpIC0+ICh1aW50NjRfdCBuZXdRdW90YSkgU3luY2hyb25vdXMKIAog
ICAgICMgQXBwbGljYXRpb24gY2FjaGUgbWVzc2FnZXMKICAgICBSZWFjaGVkQXBwbGljYXRpb25D
YWNoZU9yaWdpblF1b3RhKFN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCBjdXJyZW50
UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQpIC0+ICh1aW50NjRfdCBuZXdRdW90YSkg
U3luY2hyb25vdXMKIAogICAgICMgR2VvbG9jYXRpb24gbWVzc2FnZXMKLSAgICBSZXF1ZXN0R2Vv
bG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgdWludDY0
X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCisgICAgUmVxdWVzdEdlb2xvY2F0
aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKICAgICAKICNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgICMgTWVkaWFTdGVhbSBtZXNzYWdlcwotICAgIFJl
cXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVp
bnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6
TWVkaWFTdHJlYW1SZXF1ZXN0IHJlcXVlc3QpCi0gICAgRW51bWVyYXRlTWVkaWFEZXZpY2VzRm9y
RnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVy
LCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcExldmVsRG9jdW1lbnRPcmln
aW5JZGVudGlmaWVyKQorICAgIFJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWlu
dDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1
Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRl
bnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCBy
ZXF1ZXN0KQorICAgIEVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJN
ZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklk
ZW50aWZpZXIpCiAgICAgQmVnaW5Nb25pdG9yaW5nQ2FwdHVyZURldmljZXMoKQogI2VuZGlmCiAK
QEAgLTQ3Myw3ICs0NzMsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCi0gICAgQ29udGVudEZpbHRlckRpZEJsb2Nr
TG9hZEZvckZyYW1lKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciB1bmJsb2Nr
SGFuZGxlciwgdWludDY0X3QgZnJhbWVJRCkKKyAgICBDb250ZW50RmlsdGVyRGlkQmxvY2tMb2Fk
Rm9yRnJhbWUoV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyIHVuYmxvY2tIYW5k
bGVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKICNlbmRpZgogCiAgICAgSXNQ
bGF5aW5nTWVkaWFEaWRDaGFuZ2UodW5zaWduZWQgc3RhdGUsIHVpbnQ2NF90IHNvdXJjZUVsZW1l
bnRJRCkKQEAgLTUzOSw3ICs1MzksNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAg
IExvYWRTeW5jaHJvbm91c1VSTFNjaGVtZVRhc2soc3RydWN0IFdlYktpdDo6VVJMU2NoZW1lVGFz
a1BhcmFtZXRlcnMgcGFyYW1ldGVycykgLT4gKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVz
cG9uc2UsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFZlY3RvcjxjaGFyPiBkYXRhKSBT
eW5jaHJvbm91cwogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSAgICBTaG91bGRB
bGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKHVpbnQ2NF90IGZyYW1lSUQsIHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luLCBib29sIG1heVByb21wdCkg
LT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlz
c2lvblN0YXRlIHBlcm1pc3Npb25TdGF0ZSkgQXN5bmMKKyAgICBTaG91bGRBbGxvd0RldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbiwgYm9vbCBtYXlQcm9t
cHQpIC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBl
cm1pc3Npb25TdGF0ZSBwZXJtaXNzaW9uU3RhdGUpIEFzeW5jCiAjZW5kaWYKIAogI2lmIEVOQUJM
RShBVFRBQ0hNRU5UX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcAppbmRleCBlMTY5MTM3ZjUzODlkMzBiYjhiMTFiM2E4ZTFmNTBjYTQzYWEwNmVk
Li45NWI1ODYzOWYzYzQwY2M2MzAwYTQ0ZjJjMDQ0OWVmZmVmOGFkMTM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTgyNywyNSArODI3LDI1IEBA
IHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVy
KiBsYXVuY2hlciwgSVBDOjpDb25uZWN0CiAjZW5kaWYKIH0KIAotV2ViRnJhbWVQcm94eSogV2Vi
UHJvY2Vzc1Byb3h5Ojp3ZWJGcmFtZSh1aW50NjRfdCBmcmFtZUlEKSBjb25zdAorV2ViRnJhbWVQ
cm94eSogV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkg
Y29uc3QKIHsKICAgICBpZiAoIVdlYkZyYW1lUHJveHlNYXA6OmlzVmFsaWRLZXkoZnJhbWVJRCkp
Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHJldHVy
biBtX2ZyYW1lTWFwLmdldChmcmFtZUlEKTsKIH0KIAotYm9vbCBXZWJQcm9jZXNzUHJveHk6OmNh
bkNyZWF0ZUZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpIGNvbnN0Citib29sIFdlYlByb2Nlc3NQcm94
eTo6Y2FuQ3JlYXRlRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIFdlYkZyYW1lUHJveHlNYXA6OmlzVmFsaWRLZXkoZnJhbWVJRCkgJiYgIW1fZnJhbWVN
YXAuY29udGFpbnMoZnJhbWVJRCk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpmcmFtZUNy
ZWF0ZWQodWludDY0X3QgZnJhbWVJRCwgV2ViRnJhbWVQcm94eSYgZnJhbWVQcm94eSkKK3ZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpmcmFtZUNyZWF0ZWQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdl
YkZyYW1lUHJveHkmIGZyYW1lUHJveHkpCiB7CiAgICAgbV9mcmFtZU1hcC5zZXQoZnJhbWVJRCwg
JmZyYW1lUHJveHkpOwogfQogCi12b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRGVzdHJveUZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRGVzdHJveUZyYW1l
KEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIC8vIElmIHRoZSBwYWdlIGlzIGNsb3Nl
ZCBiZWZvcmUgaXQgaGFzIGhhZCB0aGUgY2hhbmNlIHRvIHNlbmQgdGhlIERpZENyZWF0ZU1haW5G
cmFtZSBtZXNzYWdlCiAgICAgLy8gYmFjayB0byB0aGUgVUlQcm9jZXNzLCB0aGVuIHRoZSBmcmFt
ZURlc3Ryb3llZCBtZXNzYWdlIHdpbGwgc3RpbGwgYmUgcmVjZWl2ZWQgYmVjYXVzZSBpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCAzMDA5NmRkMzA4NTQ4
Yjg5MDQ5YzgzNTEwZWVhNzFiYjA1OTc2ZmZjLi4xOGY0ODgwYTBiYjJkNGQ4M2QyZmI2YzU5N2M4
N2M3Y2RkNmVjODk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIlZpc2libGVXZWJQYWdlQ291bnRlci5oIgog
I2luY2x1ZGUgIldlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9NZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvTWVzc2FnZVBvcnRJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
YWdlSWRlbnRpZmllci5oPgpAQCAtOTcsNyArOTgsNyBAQCBlbnVtIGNsYXNzIEFsbG93UHJvY2Vz
c0NhY2hpbmcgeyBObywgWWVzIH07CiAKIGNsYXNzIFdlYlByb2Nlc3NQcm94eSA6IHB1YmxpYyBB
dXhpbGlhcnlQcm9jZXNzUHJveHksIHB1YmxpYyBSZXNwb25zaXZlbmVzc1RpbWVyOjpDbGllbnQs
IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxXZWJQcm9jZXNzUHJveHk+LCBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8V2ViUHJvY2Vzc1Byb3h5PiwgcHJpdmF0ZSBQcm9jZXNzVGhyb3R0bGVyQ2xp
ZW50IHsKIHB1YmxpYzoKLSAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJG
cmFtZVByb3h5Pj4gV2ViRnJhbWVQcm94eU1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8V2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBSZWZQdHI8V2ViRnJhbWVQcm94eT4+IFdlYkZyYW1lUHJveHlN
YXA7CiAgICAgdHlwZWRlZiBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJQYWdl
UHJveHkqPiBXZWJQYWdlUHJveHlNYXA7CiAgICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBS
ZWZQdHI8QVBJOjpVc2VySW5pdGlhdGVkQWN0aW9uPj4gVXNlckluaXRpYXRlZEFjdGlvbk1hcDsK
IApAQCAtMTY0LDkgKzE2NSw5IEBAIHB1YmxpYzoKICAgICBSZXNwb25zaXZlbmVzc1RpbWVyJiBy
ZXNwb25zaXZlbmVzc1RpbWVyKCkgeyByZXR1cm4gbV9yZXNwb25zaXZlbmVzc1RpbWVyOyB9CiAg
ICAgYm9vbCBpc1Jlc3BvbnNpdmUoKSBjb25zdDsKIAotICAgIFdlYkZyYW1lUHJveHkqIHdlYkZy
YW1lKHVpbnQ2NF90KSBjb25zdDsKLSAgICBib29sIGNhbkNyZWF0ZUZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQpIGNvbnN0OwotICAgIHZvaWQgZnJhbWVDcmVhdGVkKHVpbnQ2NF90LCBXZWJGcmFtZVBy
b3h5Jik7CisgICAgV2ViRnJhbWVQcm94eSogd2ViRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyKSBjb25zdDsKKyAgICBib29sIGNhbkNyZWF0ZUZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllcikgY29uc3Q7CisgICAgdm9pZCBmcmFtZUNyZWF0ZWQoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBXZWJGcmFtZVByb3h5Jik7CiAgICAgdm9pZCBkaXNjb25uZWN0RnJhbWVzRnJvbVBhZ2Uo
V2ViUGFnZVByb3h5Kik7IC8vIEluY2x1ZGluZyBtYWluIGZyYW1lLgogICAgIHNpemVfdCBmcmFt
ZUNvdW50SW5QYWdlKFdlYlBhZ2VQcm94eSopIGNvbnN0OyAvLyBJbmNsdWRpbmcgbWFpbiBmcmFt
ZS4KIApAQCAtMzM1LDcgKzMzNiw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgLy8gSVBD
IG1lc3NhZ2UgaGFuZGxlcnMuCiAgICAgdm9pZCB1cGRhdGVCYWNrRm9yd2FyZEl0ZW0oY29uc3Qg
QmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlJik7Ci0gICAgdm9pZCBkaWREZXN0cm95RnJhbWUodWlu
dDY0X3QpOworICAgIHZvaWQgZGlkRGVzdHJveUZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
cik7CiAgICAgdm9pZCBkaWREZXN0cm95VXNlckdlc3R1cmVUb2tlbih1aW50NjRfdCk7CiAKICAg
ICBib29sIGNhbkJlQWRkZWRUb1dlYlByb2Nlc3NDYWNoZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGYz
ZDVlOTMxZTZkZWU5MDJhNGFjNWU1ZmM1YjEwZGQ0NjE1YjE1ZDAuLjMyYmFmZWE5ZTEwOTU4YzI1
Y2QxOTRkYTE4NDUzNmFkMDkzZjc1MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTIyLDcgKzIyLDcgQEAKIAogbWVz
c2FnZXMgLT4gV2ViUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBVcGRhdGVCYWNr
Rm9yd2FyZEl0ZW0oc3RydWN0IFdlYktpdDo6QmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlIGJhY2tG
b3J3YXJkTGlzdEl0ZW1TdGF0ZSkKLSAgICBEaWREZXN0cm95RnJhbWUodWludDY0X3QgZnJhbWVJ
RCkgCisgICAgRGlkRGVzdHJveUZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
KSAKIAogICAgIERpZERlc3Ryb3lVc2VyR2VzdHVyZVRva2VuKHVpbnQ2NF90IHVzZXJHZXN0dXJl
VG9rZW5JRCkgCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcu
bW0KaW5kZXggNjgxMWU4N2E0YTQyMTAwNWJkOTRhN2FjMjE2NTQzZWNjMDBhNzdmYy4uYzI5OTIx
NDU4YWYwMWZkOTdhNDAwOTJjNzEzZjY3YzQxZmY3N2U3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KQEAgLTcwMSw5ICs3MDEsOSBAQCAtIChOU1VJ
bnRlZ2VyKV93a19wYWdlQ291bnRGb3JQcmludEZvcm1hdHRlcjooX1dLV2ViVmlld1ByaW50Rm9y
bWF0dGVyICopcHJpbnRGbwogICAgIGlmIChfaXNQcmludGluZ1RvUERGKQogICAgICAgICByZXR1
cm4gMDsKIAotICAgIHVpbnQ2NF90IGZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQ7CiAgICAgaWYgKF9XS0ZyYW1lSGFuZGxlICpoYW5kbGUgPSBwcmludEZvcm1h
dHRlci5mcmFtZVRvUHJpbnQpCi0gICAgICAgIGZyYW1lSUQgPSBoYW5kbGUuX2ZyYW1lSUQ7Cisg
ICAgICAgIGZyYW1lSUQgPSBXZWJDb3JlOjpmcmFtZUlkZW50aWZpZXJGcm9tSUQoaGFuZGxlLl9m
cmFtZUlEKTsKICAgICBlbHNlIGlmIChhdXRvIG1haW5GcmFtZSA9IF9wYWdlLT5tYWluRnJhbWUo
KSkKICAgICAgICAgZnJhbWVJRCA9IG1haW5GcmFtZS0+ZnJhbWVJRCgpOwogICAgIGVsc2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IGIw
MjgyNDg5MjAwM2EwNDk4OTI5ZTcwNmE1OTA0NTlhNGY4NzFhY2QuLjgyZDM1NDIxN2I3MDY0MjAx
ZTNkN2IwNzZlNWIwNTliOTYwMTFjZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtMTA2Niw3ICsxMDY2LDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmhhbmRsZVNtYXJ0TWFnbmlmaWNhdGlvbkluZm9ybWF0aW9uRm9yUG90ZW50aWFsVGFw
KHVpbnQ2NF90IHIKICAgICBwYWdlQ2xpZW50KCkuaGFuZGxlU21hcnRNYWduaWZpY2F0aW9uSW5m
b3JtYXRpb25Gb3JQb3RlbnRpYWxUYXAocmVxdWVzdElELCByZW5kZXJSZWN0LCBmaXRFbnRpcmVS
ZWN0LCB2aWV3cG9ydE1pbmltdW1TY2FsZSwgdmlld3BvcnRNYXhpbXVtU2NhbGUpOwogfQogCi11
aW50MzJfdCBXZWJQYWdlUHJveHk6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERG
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBEcmF3VG9QREZD
YWxsYmFjazo6Q2FsbGJhY2tGdW5jdGlvbiYmIGNhbGxiYWNrKQordWludDMyX3QgV2ViUGFnZVBy
b3h5Ojpjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERihGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIERyYXdUb1BERkNhbGxiYWNrOjpD
YWxsYmFja0Z1bmN0aW9uJiYgY2FsbGJhY2spCiB7CiAgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2Vz
cygpKSB7CiAgICAgICAgIGNhbGxiYWNrKElQQzo6RGF0YVJlZmVyZW5jZSgpLCBDYWxsYmFja0Jh
c2U6OkVycm9yOjpPd25lcldhc0ludmFsaWRhdGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eS5jcHAKaW5kZXggZTYzNTNjY2RkNTRhZGZhNWFhNTkwNWI4OTczMDM0YmMxY2U5NTZmMi4u
N2Y1N2ZmODBhY2QyYjk1MTE1OTEwZjU5NTk0ZDFkZmNmNDM2ZDNjMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21h
dGlvblNlc3Npb25Qcm94eS5jcHAKQEAgLTE0Myw3ICsxNDMsNyBAQCBzdGF0aWMgSlNWYWx1ZVJl
ZiBldmFsdWF0ZUphdmFTY3JpcHRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmpl
Y3RSZWYgZgogICAgIGlmICghYXV0b21hdGlvblNlc3Npb25Qcm94eSkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogCi0gICAgdWludDY0X3QgZnJhbWVJRCA9
IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbik7CisgICAg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQgPSBXZWJDb3JlOjpmcmFtZUlkZW50aWZp
ZXJGcm9tSUQoSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9u
KSk7CiAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBh
cmd1bWVudHNbMV0sIGV4Y2VwdGlvbik7CiAgICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZihKU1Zh
bHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIGFyZ3VtZW50c1syXSwgZXhjZXB0aW9uKSk7CiAKQEAg
LTIyMCw3ICsyMjAsNyBAQCBXZWJDb3JlOjpFbGVtZW50KiBXZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5OjplbGVtZW50Rm9yTm9kZUhhbmRsZShXZWJGcmFtZSYgZnJhbQogCiB2b2lkIFdlYkF1dG9t
YXRpb25TZXNzaW9uUHJveHk6OmRpZENsZWFyV2luZG93T2JqZWN0Rm9yRnJhbWUoV2ViRnJhbWUm
IGZyYW1lKQogewotICAgIHVpbnQ2NF90IGZyYW1lSUQgPSBmcmFtZS5mcmFtZUlEKCk7CisgICAg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQgPSBmcmFtZS5mcmFtZUlEKCk7CiAgICAg
aWYgKEpTT2JqZWN0UmVmIHNjcmlwdE9iamVjdCA9IG1fd2ViRnJhbWVTY3JpcHRPYmplY3RNYXAu
dGFrZShmcmFtZUlEKSkKICAgICAgICAgSlNWYWx1ZVVucHJvdGVjdChmcmFtZS5qc0NvbnRleHQo
KSwgc2NyaXB0T2JqZWN0KTsKIApAQCAtMjMyLDcgKzIzMiw3IEBAIHZvaWQgV2ViQXV0b21hdGlv
blNlc3Npb25Qcm94eTo6ZGlkQ2xlYXJXaW5kb3dPYmplY3RGb3JGcmFtZShXZWJGcmFtZSYgZnJh
bWUpCiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpEaWRFdmFsdWF0ZUph
dmFTY3JpcHRGdW5jdGlvbihjYWxsYmFja0lELCBlcnJvck1lc3NhZ2UsIGVycm9yVHlwZSksIDAp
OwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmV2YWx1YXRlSmF2YVNjcmlw
dEZ1bmN0aW9uKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgU3RyaW5nJiBmdW5jdGlvbiwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRzLCBib29s
IGV4cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJndW1lbnQsIGludCBjYWxsYmFja1RpbWVvdXQsIHVp
bnQ2NF90IGNhbGxiYWNrSUQpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmV2YWx1
YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgZnVuY3Rpb24sIFZl
Y3RvcjxTdHJpbmc+IGFyZ3VtZW50cywgYm9vbCBleHBlY3RzSW1wbGljaXRDYWxsYmFja0FyZ3Vt
ZW50LCBpbnQgY2FsbGJhY2tUaW1lb3V0LCB1aW50NjRfdCBjYWxsYmFja0lEKQogewogICAgIFdl
YlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAg
ICAgaWYgKCFwYWdlKSB7CkBAIC0yNjMsNyArMjYzLDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvblByb3h5OjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRp
ZmkKICAgICAgICAgdG9KU1ZhbHVlKGNvbnRleHQsIGZ1bmN0aW9uKSwKICAgICAgICAgdG9KU0Fy
cmF5KGNvbnRleHQsIGFyZ3VtZW50cywgdG9KU1ZhbHVlLCAmZXhjZXB0aW9uKSwKICAgICAgICAg
SlNWYWx1ZU1ha2VCb29sZWFuKGNvbnRleHQsIGV4cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJndW1l
bnQpLAotICAgICAgICBKU1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCBmcmFtZUlEKSwKKyAgICAg
ICAgSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgZnJhbWVJRC50b1VJbnQ2NCgpKSwKICAgICAg
ICAgSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgY2FsbGJhY2tJRCksCiAgICAgICAgIEpTT2Jq
ZWN0TWFrZUZ1bmN0aW9uV2l0aENhbGxiYWNrKGNvbnRleHQsIG51bGxwdHIsIGV2YWx1YXRlSmF2
YVNjcmlwdENhbGxiYWNrKSwKICAgICAgICAgSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgY2Fs
bGJhY2tUaW1lb3V0KQpAQCAtMzAwLDcgKzMwMCw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b25Qcm94eTo6ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6UGFnZUlkZW50aWZp
CiAgICAgZGlkRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oZnJhbWVJRCwgY2FsbGJhY2tJRCwg
ZXhjZXB0aW9uTWVzc2FnZSwgZXJyb3JUeXBlKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvblByb3h5OjpkaWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbih1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBTdHJpbmcmIHJlc3VsdCwgY29uc3QgU3RyaW5n
JiBlcnJvclR5cGUpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZEV2YWx1YXRl
SmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50
NjRfdCBjYWxsYmFja0lELCBjb25zdCBTdHJpbmcmIHJlc3VsdCwgY29uc3QgU3RyaW5nJiBlcnJv
clR5cGUpCiB7CiAgICAgYXV0byBmaW5kUmVzdWx0ID0gbV93ZWJGcmFtZVBlbmRpbmdFdmFsdWF0
ZUphdmFTY3JpcHRDYWxsYmFja3NNYXAuZmluZChmcmFtZUlEKTsKICAgICBpZiAoZmluZFJlc3Vs
dCAhPSBtX3dlYkZyYW1lUGVuZGluZ0V2YWx1YXRlSmF2YVNjcmlwdENhbGxiYWNrc01hcC5lbmQo
KSkgewpAQCAtMzEzLDEyICszMTMsMTMgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5
OjpkaWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbih1aW50NjRfdCBmcmFtZUlELAogICAgIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpEaWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlv
bihjYWxsYmFja0lELCByZXN1bHQsIGVycm9yVHlwZSksIDApOwogfQogCi12b2lkIFdlYkF1dG9t
YXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGluYWwoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBvcmRpbmFs
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKKy8vIEZJWE1FOiBUaGVzZSBjYWxsYmFja3Mgc2hvdWxkIHRha2Ug
T3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPi4KK3ZvaWQgV2ViQXV0b21hdGlvblNl
c3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoT3JkaW5hbChXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50MzJf
dCBvcmRpbmFsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUGFn
ZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBp
ZiAoIXBhZ2UpIHsKICAgICAgICAgU3RyaW5nIHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlID0gSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVl
KEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkVycm9yTWVzc2FnZTo6V2luZG93Tm90
Rm91bmQpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9yVHlw
ZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBl
LCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0zMjYsMzcgKzMyNywzNyBAQCB2
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGlu
YWwoV2ViQ29yZTo6UGFnZUlkZW50aQogCiAgICAgV2ViRnJhbWUqIGZyYW1lID0gZnJhbWVJRCA/
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpIDogcGFnZS0+bWFpbldl
YkZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihm
cmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJh
bWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAg
IFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWUgPSBmcmFtZS0+Y29yZUZyYW1lKCk7CiAgICAgaWYg
KCFjb3JlRnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVy
cm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJv
clR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBXZWJDb3JlOjpGcmFt
ZSogY29yZUNoaWxkRnJhbWUgPSBjb3JlRnJhbWUtPnRyZWUoKS5zY29wZWRDaGlsZChvcmRpbmFs
KTsKICAgICBpZiAoIWNvcmVDaGlsZEZyYW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihm
cmFtZU5vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAg
ICAgV2ViRnJhbWUqIGNoaWxkRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqY29yZUNo
aWxkRnJhbWUpOwogICAgIGlmICghY2hpbGRGcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVsbG9wdCwgY2hpbGRGcmFtZS0+ZnJhbWVJ
RCgpKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRG
cmFtZVdpdGhOb2RlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0
X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhh
bmRsZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG5vZGVIYW5kbGUsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAgIGlmICghcGFnZSkgewogICAgICAgICBTdHJpbmcg
d2luZG93Tm90Rm91bmRFcnJvclR5cGUgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
SGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6RXJyb3JNZXNzYWdlOjpXaW5kb3dOb3RGb3VuZCk7Ci0gICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIod2luZG93Tm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKQEAgLTM2NCwzNyArMzY1LDM3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhhbmRsZShXZWJDb3JlOjpQYWdlSWRlCiAKICAg
ICBXZWJGcmFtZSogZnJhbWUgPSBmcmFtZUlEID8gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2Vi
RnJhbWUoZnJhbWVJRCkgOiBwYWdlLT5tYWluV2ViRnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKSB7
Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgV2ViQ29yZTo6RWxlbWVudCogY29yZUVsZW1l
bnQgPSBlbGVtZW50Rm9yTm9kZUhhbmRsZSgqZnJhbWUsIG5vZGVIYW5kbGUpOwogICAgIGlmICgh
aXM8V2ViQ29yZTo6SFRNTEZyYW1lRWxlbWVudEJhc2U+KGNvcmVFbGVtZW50KSkgewotICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAogICAgIFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWVGcm9tRWxlbWVu
dCA9IGRvd25jYXN0PFdlYkNvcmU6OkhUTUxGcmFtZUVsZW1lbnRCYXNlPigqY29yZUVsZW1lbnQp
LmNvbnRlbnRGcmFtZSgpOwogICAgIGlmICghY29yZUZyYW1lRnJvbUVsZW1lbnQpIHsKLSAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKICAgICBXZWJGcmFtZSogZnJhbWVGcm9tRWxlbWVudCA9IFdlYkZy
YW1lOjpmcm9tQ29yZUZyYW1lKCpjb3JlRnJhbWVGcm9tRWxlbWVudCk7CiAgICAgaWYgKCFmcmFt
ZUZyb21FbGVtZW50KSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRF
cnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJy
b3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgY29tcGxldGlvbkhh
bmRsZXIoV1RGOjpudWxsb3B0LCBmcmFtZUZyb21FbGVtZW50LT5mcmFtZUlEKCkpOwogfQogCi12
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUo
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBT
dHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWlu
dDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlBhZ2UqIHBhZ2Ug
PSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAgICAgaWYgKCFwYWdl
KSB7CiAgICAgICAgIFN0cmluZyB3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSA9IEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1ZShJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OldpbmRvd05vdEZvdW5kKTsK
LSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIod2luZG93Tm90Rm91bmRFcnJvclR5cGUsIDApOwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNDAyLDM3ICs0MDMsMzcgQEAgdm9pZCBXZWJB
dXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWUKIAogICAgIFdlYkZyYW1lKiBmcmFtZSA9IGZyYW1lSUQgPyBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSA6IHBhZ2UtPm1haW5XZWJGcmFtZSgp
OwogICAgIGlmICghZnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RG
b3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91
bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBXZWJDb3Jl
OjpGcmFtZSogY29yZUZyYW1lID0gZnJhbWUtPmNvcmVGcmFtZSgpOwogICAgIGlmICghY29yZUZy
YW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUs
IDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCB7
IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVD
aGlsZEZyYW1lID0gY29yZUZyYW1lLT50cmVlKCkuc2NvcGVkQ2hpbGQobmFtZSk7CiAgICAgaWYg
KCFjb3JlQ2hpbGRGcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZv
dW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3Vu
ZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFdlYkZyYW1l
KiBjaGlsZEZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmNvcmVDaGlsZEZyYW1lKTsK
ICAgICBpZiAoIWNoaWxkRnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVO
b3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90
Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBjb21w
bGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQsIGNoaWxkRnJhbWUtPmZyYW1lSUQoKSk7CiB9CiAK
LXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZVBhcmVudEZyYW1lKFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCB1aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVQYXJlbnRGcmFtZShX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUGFnZSog
cGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAo
IXBhZ2UpIHsKICAgICAgICAgU3RyaW5nIHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlID0gSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVlKElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkVycm9yTWVzc2FnZTo6V2luZG93Tm90Rm91
bmQpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSwg
MCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlLCB7
IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC00NDAsMjAgKzQ0MSwyMCBAQCB2b2lk
IFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVQYXJlbnRGcmFtZShXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSQogCiAgICAgV2ViRnJhbWUqIGZyYW1lID0gZnJhbWVJRCA/IFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpIDogcGFnZS0+bWFpbldlYkZy
YW1lKCk7CiAgICAgaWYgKCFmcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFt
ZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVO
b3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFdl
YkZyYW1lKiBwYXJlbnRGcmFtZSA9IGZyYW1lLT5wYXJlbnRGcmFtZSgpOwogICAgIGlmICghcGFy
ZW50RnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9y
VHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5
cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBjb21wbGV0aW9uSGFuZGxl
cihXVEY6Om51bGxvcHQsIHBhcmVudEZyYW1lLT5mcmFtZUlEKCkpOwogfQogCi12b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OmZvY3VzRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
cGFnZUlELCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5
Ojpmb2N1c0ZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpCkBAIC01MjgsNyAr
NTI5LDcgQEAgc3RhdGljIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udmVydFBvaW50RnJvbUZyYW1l
Q2xpZW50VG9Sb290VmlldyhXZWJDb3JlOjpGcmFtZVYKICAgICByZXR1cm4gY2xpZW50UG9pbnQ7
CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Y29tcHV0ZUVsZW1lbnRMYXlv
dXQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJp
bmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBDb29yZGluYXRlU3lz
dGVtIGNvb3JkaW5hdGVTeXN0ZW0sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3Ry
aW5nPiwgV2ViQ29yZTo6SW50UmVjdCwgT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBib29s
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6
Y29tcHV0ZUVsZW1lbnRMYXlvdXQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Ny
b2xsSW50b1ZpZXdJZk5lZWRlZCwgQ29vcmRpbmF0ZVN5c3RlbSBjb29yZGluYXRlU3lzdGVtLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkludFJlY3Qs
IE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiwgYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2Uo
cGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsKQEAgLTYzNiw3ICs2MzcsNyBAQCB2b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OmNvbXB1dGVFbGVtZW50TGF5b3V0KFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIHBhZwogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVsbG9wdCwgcmVzdWx0
RWxlbWVudEJvdW5kcywgcmVzdWx0SW5WaWV3Q2VudGVyUG9pbnQsIGlzT2JzY3VyZWQpOwogfQog
Ci12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnNlbGVjdE9wdGlvbkVsZW1lbnQoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9k
ZUhhbmRsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6c2VsZWN0T3B0
aW9uRWxlbWVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQ
YWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAg
IGlmICghcGFnZSkgewpAQCAtNzA0LDcgKzcwNSw3IEBAIHN0YXRpYyBXZWJDb3JlOjpJbnRSZWN0
IHNuYXBzaG90UmVjdEZvclNjcmVlbnNob3QoV2ViUGFnZSYgcGFnZSwgV2ViQ29yZTo6RWxlbWVu
CiAgICAgcmV0dXJuIHsgfTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojp0
YWtlU2NyZWVuc2hvdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGJv
b2wgY2xpcFRvVmlld3BvcnQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit2b2lkIFdlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHk6OnRha2VTY3JlZW5zaG90KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxl
LCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGJvb2wgY2xpcFRvVmlld3BvcnQsIHVpbnQ2
NF90IGNhbGxiYWNrSUQpCiB7CiAgICAgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaGFuZGxlOwog
CkBAIC03NTIsNyArNzUzLDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojp0YWtl
U2NyZWVuc2hvdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHUKICAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6RGlkVGFrZVNjcmVlbnNob3QoY2FsbGJhY2tJRCwgaGFu
ZGxlLCB7IH0pLCAwKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpnZXRD
b29raWVzRm9yRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBm
cmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFZlY3RvcjxX
ZWJDb3JlOjpDb29raWU+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0b21hdGlv
blNlc3Npb25Qcm94eTo6Z2V0Q29va2llc0ZvckZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4pPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAgICAgaWYgKCFwYWdlKSB7CkBAIC03NzcsNyArNzc4
LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpnZXRDb29raWVzRm9yRnJhbWUo
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUkKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEY6
Om51bGxvcHQsIGZvdW5kQ29va2llcyk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eTo6ZGVsZXRlQ29va2llKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0
X3QgZnJhbWVJRCwgU3RyaW5nIGNvb2tpZU5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0
aW9uYWw8U3RyaW5nPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkF1dG9tYXRpb25T
ZXNzaW9uUHJveHk6OmRlbGV0ZUNvb2tpZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQs
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgY29va2llTmFtZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFn
ZShwYWdlSUQpOwogICAgIGlmICghcGFnZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5o
CmluZGV4IDExNjc2NDUyNzdkYmMxOTMwYTVhN2E1OTdkY2JjMmRmM2VjZjU1YzkuLjVlMWIwZmNm
ZjBmYzg1OThiOGM3OTc3MGE2OGIxODFlNzhmNjM5MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lv
blByb3h5LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5j
bHVkZSAiQ29vcmRpbmF0ZVN5c3RlbS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQmFz
ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CkBAIC01MSw3ICs1Miw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlkQ2xlYXJXaW5kb3dPYmpl
Y3RGb3JGcmFtZShXZWJGcmFtZSYpOwogCi0gICAgdm9pZCBkaWRFdmFsdWF0ZUphdmFTY3JpcHRG
dW5jdGlvbih1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBTdHJp
bmcmIHJlc3VsdCwgY29uc3QgU3RyaW5nJiBlcnJvclR5cGUpOworICAgIHZvaWQgZGlkRXZhbHVh
dGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBj
YWxsYmFja0lELCBjb25zdCBTdHJpbmcmIHJlc3VsdCwgY29uc3QgU3RyaW5nJiBlcnJvclR5cGUp
OwogCiBwcml2YXRlOgogICAgIEpTT2JqZWN0UmVmIHNjcmlwdE9iamVjdEZvckZyYW1lKFdlYkZy
YW1lJik7CkBAIC02MSwyMiArNjIsMjIgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwogCiAgICAg
Ly8gQ2FsbGVkIGJ5IFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkgbWVzc2FnZXMKLSAgICB2b2lk
IGV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIGZ1bmN0aW9uLCBWZWN0b3I8U3RyaW5nPiBhcmd1
bWVudHMsIGJvb2wgZXhwZWN0c0ltcGxpY2l0Q2FsbGJhY2tBcmd1bWVudCwgaW50IGNhbGxiYWNr
VGltZW91dCwgdWludDY0X3QgY2FsbGJhY2tJRCk7Ci0gICAgdm9pZCByZXNvbHZlQ2hpbGRGcmFt
ZVdpdGhPcmRpbmFsKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCB1
aW50MzJfdCBvcmRpbmFsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4s
IHVpbnQ2NF90KT4mJik7Ci0gICAgdm9pZCByZXNvbHZlQ2hpbGRGcmFtZVdpdGhOb2RlSGFuZGxl
KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcm
IG5vZGVIYW5kbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWlu
dDY0X3QpPiYmKTsKLSAgICB2b2lkIHJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCB1aW50NjRfdCk+JiYpOwotICAg
IHZvaWQgcmVzb2x2ZVBhcmVudEZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRf
dCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2
NF90KT4mJik7Ci0gICAgdm9pZCBmb2N1c0ZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1
aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGNvbXB1dGVFbGVtZW50TGF5b3V0KFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9v
bCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBDb29yZGluYXRlU3lzdGVtLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkludFJlY3QsIE9wdGlvbmFsPFdl
YkNvcmU6OkludFBvaW50PiwgYm9vbCk+JiYpOwotICAgIHZvaWQgc2VsZWN0T3B0aW9uRWxlbWVu
dChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVI
YW5kbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+JiYpOwotICAg
IHZvaWQgdGFrZVNjcmVlbnNob3QoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZy
YW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGJv
b2wgY2xpcFRvVmlld3BvcnQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwotICAgIHZvaWQgZ2V0Q29v
a2llc0ZvckZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFZlY3RvcjxXZWJDb3JlOjpD
b29raWU+KT4mJik7Ci0gICAgdm9pZCBkZWxldGVDb29raWUoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBjb29raWVOYW1lLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKE9wdGlvbmFsPFN0cmluZz4pPiYmKTsKKyAgICB2b2lkIGV2YWx1YXRlSmF2YVNjcmlw
dEZ1bmN0aW9uKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgZnVuY3Rpb24sIFZlY3RvcjxTdHJpbmc+IGFyZ3VtZW50cywgYm9v
bCBleHBlY3RzSW1wbGljaXRDYWxsYmFja0FyZ3VtZW50LCBpbnQgY2FsbGJhY2tUaW1lb3V0LCB1
aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIHJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGlu
YWwoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWlu
dDMyX3Qgb3JkaW5hbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpPiYmKTsKKyAgICB2b2lkIHJlc29sdmVDaGlsZEZyYW1l
V2l0aE5vZGVIYW5kbGUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik+JiYpOworICAgIHZv
aWQgcmVzb2x2ZUNoaWxkRnJhbWVXaXRoTmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKT4mJik7
CisgICAgdm9pZCByZXNvbHZlUGFyZW50RnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxT
dHJpbmc+LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpPiYmKTsKKyAgICB2b2lkIGZvY3VzRnJh
bWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7Cisg
ICAgdm9pZCBjb21wdXRlRWxlbWVudExheW91dChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRv
Vmlld0lmTmVlZGVkLCBDb29yZGluYXRlU3lzdGVtLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9w
dGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkludFJlY3QsIE9wdGlvbmFsPFdlYkNvcmU6OkludFBv
aW50PiwgYm9vbCk+JiYpOworICAgIHZvaWQgc2VsZWN0T3B0aW9uRWxlbWVudChXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBTdHJpbmcgbm9kZUhhbmRs
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJik7CisgICAgdm9p
ZCB0YWtlU2NyZWVuc2hvdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVk
LCBib29sIGNsaXBUb1ZpZXdwb3J0LCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIGdl
dENvb2tpZXNGb3JGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFZlY3Rv
cjxXZWJDb3JlOjpDb29raWU+KT4mJik7CisgICAgdm9pZCBkZWxldGVDb29raWUoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgU3RyaW5nIGNvb2tpZU5h
bWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+JiYpOwogCiAgICAg
U3RyaW5nIG1fc2Vzc2lvbklkZW50aWZpZXI7CiAKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBKU09i
amVjdFJlZj4gbV93ZWJGcmFtZVNjcmlwdE9iamVjdE1hcDsKLSAgICBIYXNoTWFwPHVpbnQ2NF90
LCBWZWN0b3I8dWludDY0X3Q+PiBtX3dlYkZyYW1lUGVuZGluZ0V2YWx1YXRlSmF2YVNjcmlwdENh
bGxiYWNrc01hcDsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgSlNPYmpl
Y3RSZWY+IG1fd2ViRnJhbWVTY3JpcHRPYmplY3RNYXA7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIFZlY3Rvcjx1aW50NjRfdD4+IG1fd2ViRnJhbWVQZW5kaW5nRXZhbHVh
dGVKYXZhU2NyaXB0Q2FsbGJhY2tzTWFwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1
dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgppbmRleCBkNzJm
ODlkMjYzNTljZjAxY2NmZDUzMWU5NmUwMWY0NDQwOWFhZjU4Li5mMjc2NDliOWI3MzEwYmE1OTEz
YjBkNmZmZmUxN2YyMjRlYzVmNjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9u
UHJveHkubWVzc2FnZXMuaW4KQEAgLTIxLDIxICsyMSwyMSBAQAogIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBt
ZXNzYWdlcyAtPiBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5IHsKLSAgICBFdmFsdWF0ZUphdmFT
Y3JpcHRGdW5jdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFN0cmluZyBmdW5jdGlvbiwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRzLCBib29sIGV4
cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJndW1lbnQsIGludCBjYWxsYmFja1RpbWVvdXQsIHVpbnQ2
NF90IGNhbGxiYWNrSUQpCisgICAgRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
U3RyaW5nIGZ1bmN0aW9uLCBWZWN0b3I8U3RyaW5nPiBhcmd1bWVudHMsIGJvb2wgZXhwZWN0c0lt
cGxpY2l0Q2FsbGJhY2tBcmd1bWVudCwgaW50IGNhbGxiYWNrVGltZW91dCwgdWludDY0X3QgY2Fs
bGJhY2tJRCkKIAotICAgIFJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGluYWwoV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBvcmRpbmFsKSAt
PiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIHVpbnQ2NF90IGZyYW1lSUQpIEFzeW5jCi0g
ICAgUmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhhbmRsZShXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlKSAtPiAoT3B0aW9u
YWw8U3RyaW5nPiBlcnJvclR5cGUsIHVpbnQ2NF90IGZyYW1lSUQpIEFzeW5jCi0gICAgUmVzb2x2
ZUNoaWxkRnJhbWVXaXRoTmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2
NF90IGZyYW1lSUQsIFN0cmluZyBuYW1lKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUs
IHVpbnQ2NF90IGZyYW1lSUQpIEFzeW5jCi0gICAgUmVzb2x2ZVBhcmVudEZyYW1lKFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCkgLT4gKE9wdGlvbmFsPFN0
cmluZz4gZXJyb3JUeXBlLCB1aW50NjRfdCBmcmFtZUlEKSBBc3luYworICAgIFJlc29sdmVDaGls
ZEZyYW1lV2l0aE9yZGluYWwoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDMyX3Qgb3JkaW5hbCkgLT4gKE9wdGlvbmFs
PFN0cmluZz4gZXJyb3JUeXBlLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkgQXN5
bmMKKyAgICBSZXNvbHZlQ2hpbGRGcmFtZVdpdGhOb2RlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBu
b2RlSGFuZGxlKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlEKSBBc3luYworICAgIFJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUo
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgU3RyaW5nIG5hbWUpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIEFzeW5jCisgICAgUmVzb2x2ZVBhcmVudEZy
YW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQpIEFzeW5jCiAKLSAgICBGb2N1c0ZyYW1lKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCkKKyAgICBGb2N1c0ZyYW1lKFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQpCiAKLSAgICBDb21wdXRlRWxlbWVudExheW91dChXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9s
bEludG9WaWV3SWZOZWVkZWQsIGVudW06dWludDhfdCBXZWJLaXQ6OkNvb3JkaW5hdGVTeXN0ZW0g
Y29vcmRpbmF0ZVN5c3RlbSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBXZWJDb3Jl
OjpJbnRSZWN0IHJlY3QsIE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiBpblZpZXdDZW50ZXJQ
b2ludCwgYm9vbCBpc09ic2N1cmVkKSBBc3luYworICAgIENvbXB1dGVFbGVtZW50TGF5b3V0KFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGVu
dW06dWludDhfdCBXZWJLaXQ6OkNvb3JkaW5hdGVTeXN0ZW0gY29vcmRpbmF0ZVN5c3RlbSkgLT4g
KE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBXZWJDb3JlOjpJbnRSZWN0IHJlY3QsIE9wdGlv
bmFsPFdlYkNvcmU6OkludFBvaW50PiBpblZpZXdDZW50ZXJQb2ludCwgYm9vbCBpc09ic2N1cmVk
KSBBc3luYwogCi0gICAgU2VsZWN0T3B0aW9uRWxlbWVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlKSAtPiAoT3B0aW9u
YWw8U3RyaW5nPiBlcnJvclR5cGUpIEFzeW5jCisgICAgU2VsZWN0T3B0aW9uRWxlbWVudChXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBTdHJpbmcgbm9kZUhhbmRsZSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlKSBB
c3luYwogCi0gICAgVGFrZVNjcmVlbnNob3QoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
LCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmll
d0lmTmVlZGVkLCBib29sIGNsaXBUb1ZpZXdwb3J0LCB1aW50NjRfdCBjYWxsYmFja0lEKQorICAg
IFRha2VTY3JlZW5zaG90KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbElu
dG9WaWV3SWZOZWVkZWQsIGJvb2wgY2xpcFRvVmlld3BvcnQsIHVpbnQ2NF90IGNhbGxiYWNrSUQp
CiAKLSAgICBHZXRDb29raWVzRm9yRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
LCB1aW50NjRfdCBmcmFtZUlEKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIFZlY3Rv
cjxXZWJDb3JlOjpDb29raWU+IGNvb2tpZXMpIEFzeW5jCi0gICAgRGVsZXRlQ29va2llKFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIGNvb2tp
ZU5hbWUpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSkgQXN5bmMKKyAgICBHZXRDb29r
aWVzRm9yRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBWZWN0
b3I8V2ViQ29yZTo6Q29va2llPiBjb29raWVzKSBBc3luYworICAgIERlbGV0ZUNvb2tpZShXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBTdHJpbmcgY29va2llTmFtZSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlKSBB
c3luYwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJh
bWUubW0KaW5kZXggMDk5NzYzNzJmMDczNzU3ZWVkYjE3NDkzZDczMWZhMGEzZDQ2NjhjNi4uMjU3
M2U2ZDQ4NTllNWUwY2ZlNGE2N2Y1ZjRmM2JiYTZiMzBmZTg2NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQ
bHVnSW5GcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tCkBAIC00OCw3ICs0OCw3IEBA
IEBpbXBsZW1lbnRhdGlvbiBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZSB7CiAKICsgKGluc3RhbmNl
dHlwZSlsb29rVXBGcmFtZUZyb21IYW5kbGU6KF9XS0ZyYW1lSGFuZGxlICopaGFuZGxlCiB7Ci0g
ICAgcmV0dXJuIHdyYXBwZXIoV2ViS2l0OjpXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFt
ZShoYW5kbGUuX2ZyYW1lSUQpKTsKKyAgICByZXR1cm4gd3JhcHBlcihXZWJLaXQ6OldlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRCho
YW5kbGUuX2ZyYW1lSUQpKSk7CiB9CiAKIC0gKHZvaWQpZGVhbGxvYwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4
IGM0OGNkZDg1Nzk0ZDkyMTY5OTUyMGMyZDgzOGE1YjY3MGYzYjJmZjEuLjVkZmM0MjU3ODg0YmMy
OTJhNGRhZThjNDQ1ZTkyYjczMjdhOTZjYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAgLTE1OSw3ICsxNTks
NyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXIm
IHJlc291cmNlTG9hZGVyLCBDYWNoZWRSZXNvdQogCiAgICAgV2ViUmVzb3VyY2VMb2FkZXI6OlRy
YWNraW5nUGFyYW1ldGVycyB0cmFja2luZ1BhcmFtZXRlcnM7CiAgICAgdHJhY2tpbmdQYXJhbWV0
ZXJzLnBhZ2VJRCA9IGZyYW1lTG9hZGVyQ2xpZW50LnBhZ2VJRCgpLnZhbHVlT3IoUGFnZUlkZW50
aWZpZXIgeyB9KTsKLSAgICB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCA9IGZyYW1lTG9hZGVy
Q2xpZW50LmZyYW1lSUQoKS52YWx1ZU9yKDApOworICAgIHRyYWNraW5nUGFyYW1ldGVycy5mcmFt
ZUlEID0gZnJhbWVMb2FkZXJDbGllbnQuZnJhbWVJRCgpLnZhbHVlT3IoRnJhbWVJZGVudGlmaWVy
IHsgfSk7CiAgICAgdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQgPSBpZGVudGlmaWVyOwog
ICAgIGF1dG8gc2Vzc2lvbklEID0gZnJhbWVMb2FkZXJDbGllbnQuc2Vzc2lvbklEKCk7CiAKQEAg
LTE2OCw3ICsxNjgsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQoUmVz
b3VyY2VMb2FkZXImIHJlc291cmNlTG9hZGVyLCBDYWNoZWRSZXNvdQogICAgIC8vIHRoZW4gd2Ug
c2hvdWxkIHJlbWVtYmVyIHRoZSBSZXNvdXJjZUxvYWRlciBpbiBvdXIgcmVjb3JkcyBidXQgbm90
IHNjaGVkdWxlIGl0IGluIHRoZSBOZXR3b3JrUHJvY2Vzcy4KICAgICBpZiAocmVzb3VyY2VMb2Fk
ZXIuZG9jdW1lbnRMb2FkZXIoKS0+c2NoZWR1bGVBcmNoaXZlTG9hZChyZXNvdXJjZUxvYWRlciwg
cmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpKSkgewogICAgICAgICBMT0coTmV0d29ya1NjaGVkdWxp
bmcsICIoV2ViUHJvY2VzcykgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZCwgdXJsICcl
cycgd2lsbCBiZSBoYW5kbGVkIGFzIGFuIGFyY2hpdmUgcmVzb3VyY2UuIiwgcmVzb3VyY2VMb2Fk
ZXIudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGhhbmRs
ZWQgYXMgYW4gYXJjaGl2ZSByZXNvdXJjZSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJl
c291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQo
KSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIGlkZW50aWZpZXIpOworICAgICAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2ls
bCBiZSBoYW5kbGVkIGFzIGFuIGFyY2hpdmUgcmVzb3VyY2UgKGZyYW1lID0gJXAsIHBhZ2VJRCA9
ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1
NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlE
LnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIGlkZW50
aWZpZXIpOwogICAgICAgICBtX3dlYlJlc291cmNlTG9hZGVycy5zZXQoaWRlbnRpZmllciwgV2Vi
UmVzb3VyY2VMb2FkZXI6OmNyZWF0ZShyZXNvdXJjZUxvYWRlciwgdHJhY2tpbmdQYXJhbWV0ZXJz
KSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xNzYsMTQgKzE3NiwxNCBAQCB2b2lkIFdl
YkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTG9h
ZGVyLCBDYWNoZWRSZXNvdQogCiAgICAgaWYgKHJlc291cmNlTG9hZGVyLmRvY3VtZW50TG9hZGVy
KCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCkubWF5YmVMb2FkUmVzb3VyY2UocmVzb3VyY2VMb2Fk
ZXIsIHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKSwgcmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnVy
bCgpKSkgewogICAgICAgICBMT0coTmV0d29ya1NjaGVkdWxpbmcsICIoV2ViUHJvY2VzcykgV2Vi
TG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZCwgdXJsICclcycgd2lsbCBiZSBsb2FkZWQgZnJv
bSBhcHBsaWNhdGlvbiBjYWNoZS4iLCByZXNvdXJjZUxvYWRlci51cmwoKS5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpKTsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRl
ciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgbG9hZGVkIGZyb20gYXBwbGljYXRpb24gY2Fj
aGUgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0
cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5m
cmFtZUlELCBpZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNv
dXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgbG9hZGVkIGZyb20gYXBwbGlj
YXRpb24gY2FjaGUgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5m
cmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFy
YW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIGlkZW50aWZpZXIpOwogICAgICAgICBtX3dlYlJl
c291cmNlTG9hZGVycy5zZXQoaWRlbnRpZmllciwgV2ViUmVzb3VyY2VMb2FkZXI6OmNyZWF0ZShy
ZXNvdXJjZUxvYWRlciwgdHJhY2tpbmdQYXJhbWV0ZXJzKSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKICAgICBpZiAocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnVybCgpLnByb3RvY29sSXNE
YXRhKCkpIHsKICAgICAgICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5nLCAiKFdlYlByb2Nlc3MpIFdl
YkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQsIHVybCAnJXMnIHdpbGwgYmUgbG9hZGVkIGFz
IGRhdGEuIiwgcmVzb3VyY2VMb2FkZXIudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0g
ICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxv
YWQ6IFVSTCB3aWxsIGJlIGxvYWRlZCBhcyBkYXRhIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIp
IiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJ
bnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7CisgICAgICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVS
TCB3aWxsIGJlIGxvYWRlZCBhcyBkYXRhIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVz
b3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgp
LCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsKICAg
ICAgICAgc3RhcnRMb2NhbExvYWQocmVzb3VyY2VMb2FkZXIpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtMTkxLDcgKzE5MSw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxl
TG9hZChSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMb2FkZXIsIENhY2hlZFJlc291CiAjaWYgVVNF
KFFVSUNLX0xPT0spCiAgICAgaWYgKGlzUXVpY2tMb29rUHJldmlld1VSTChyZXNvdXJjZUxvYWRl
ci5yZXF1ZXN0KCkudXJsKCkpKSB7CiAgICAgICAgIExPRyhOZXR3b3JrU2NoZWR1bGluZywgIihX
ZWJQcm9jZXNzKSBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkLCB1cmwgJyVzJyB3aWxs
IGJlIGhhbmRsZWQgYXMgYSBRdWlja0xvb2sgcmVzb3VyY2UuIiwgcmVzb3VyY2VMb2FkZXIudXJs
KCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGhhbmRsZWQgYXMg
YSBRdWlja0xvb2sgcmVzb3VyY2UgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJj
ZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRy
YWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBpZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUg
aGFuZGxlZCBhcyBhIFF1aWNrTG9vayByZXNvdXJjZSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAi
KSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9V
SW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmll
cik7CiAgICAgICAgIHN0YXJ0TG9jYWxMb2FkKHJlc291cmNlTG9hZGVyKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KQEAgLTIwMiw3ICsyMDIsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpz
Y2hlZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTG9hZGVyLCBDYWNoZWRSZXNvdQog
ICAgIC8vIGh0dHBzOi8vYmxvZ3MuZ25vbWUub3JnL2FsZXhsLzIwMTIvMDEvMjYvcmVzb3VyY2Vz
LWluLWdsaWIvCiAgICAgaWYgKHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS51cmwoKS5wcm90b2Nv
bElzKCJyZXNvdXJjZSIpKSB7CiAgICAgICAgIExPRyhOZXR3b3JrU2NoZWR1bGluZywgIihXZWJQ
cm9jZXNzKSBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkLCB1cmwgJyVzJyB3aWxsIGJl
IGhhbmRsZWQgYXMgYSBHUmVzb3VyY2UuIiwgcmVzb3VyY2VMb2FkZXIudXJsKCkuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VM
b2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGhhbmRsZWQgYXMgYSBHUmVzb3VyY2Ug
KGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFj
a2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFt
ZUlELCBpZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJj
ZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgaGFuZGxlZCBhcyBhIEdSZXNvdXJj
ZSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQg
IiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRy
YWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZy
YW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmllcik7CiAgICAgICAgIHN0YXJ0TG9jYWxMb2FkKHJl
c291cmNlTG9hZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTIxMiwxMSArMjEyLDEx
IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciYg
cmVzb3VyY2VMb2FkZXIsIENhY2hlZFJlc291CiAgICAgV2ViU2VydmljZVdvcmtlclByb3ZpZGVy
OjpzaW5nbGV0b24oKS5oYW5kbGVGZXRjaChyZXNvdXJjZUxvYWRlciwgc2Vzc2lvbklELCBzaG91
bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBbdGhpcywgdHJhY2tpbmdQYXJh
bWV0ZXJzLCBpZGVudGlmaWVyLCBzZXNzaW9uSUQsIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBT
VG9IVFRQUmVkaXJlY3QsIG1heGltdW1CdWZmZXJpbmdUaW1lID0gbWF4aW11bUJ1ZmZlcmluZ1Rp
bWUocmVzb3VyY2UpLCByZXNvdXJjZUxvYWRlciA9IG1ha2VSZWYocmVzb3VyY2VMb2FkZXIpXSAo
U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpSZXN1bHQgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAg
ICAgaWYgKHJlc3VsdCAhPSBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OlJlc3VsdDo6VW5oYW5k
bGVkKSB7CiAgICAgICAgICAgICBMT0coTmV0d29ya1NjaGVkdWxpbmcsICIoV2ViUHJvY2Vzcykg
V2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZCwgdXJsICclcycgd2lsbCBiZSBzY2hlZHVs
ZWQgdGhyb3VnaCBTZXJ2aWNlV29ya2VyIGhhbmRsZSBmZXRjaCBhbGdvcml0aG0iLCByZXNvdXJj
ZUxvYWRlci0+dXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKLSAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIuZ2V0KCksICJzY2hlZHVsZUxvYWQ6
IFVSTCB3aWxsIGJlIHNjaGVkdWxlZCB0aHJvdWdoIFNlcnZpY2VXb3JrZXIgaGFuZGxlIGZldGNo
IGFsZ29yaXRobSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAl
IiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLT5m
cmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFy
YW1ldGVycy5mcmFtZUlELCBpZGVudGlmaWVyKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQocmVzb3VyY2VMb2FkZXIuZ2V0KCksICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJl
IHNjaGVkdWxlZCB0aHJvdWdoIFNlcnZpY2VXb3JrZXIgaGFuZGxlIGZldGNoIGFsZ29yaXRobSAo
ZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwg
cmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLT5mcmFtZSgpLCB0cmFj
a2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFt
ZUlELnRvVUludDY0KCksIGlkZW50aWZpZXIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAgICAgICAgIGlmIChyZXNvdXJjZUxvYWRlci0+b3B0aW9ucygpLnNlcnZpY2VXb3JrZXJz
TW9kZSA9PSBTZXJ2aWNlV29ya2Vyc01vZGU6Ok9ubHkpIHsKLSAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIuZ2V0KCksICJzY2hlZHVsZUxvYWQ6
IHVuYWJsZSB0byBzY2hlZHVsZSBVUkwgdGhyb3VnaCBTZXJ2aWNlV29ya2VyIGhhbmRsZSBmZXRj
aCBhbGdvcml0aG0gKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci0+
ZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1Bh
cmFtZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUl9JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLmdldCgpLCAic2NoZWR1bGVMb2FkOiB1bmFi
bGUgdG8gc2NoZWR1bGUgVVJMIHRocm91Z2ggU2VydmljZVdvcmtlciBoYW5kbGUgZmV0Y2ggYWxn
b3JpdGhtIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXItPmZyYW1l
KCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0
ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmllcik7CiAgICAgICAgICAgICBjYWxsT25N
YWluVGhyZWFkKFtyZXNvdXJjZUxvYWRlciA9IFdURk1vdmUocmVzb3VyY2VMb2FkZXIpXSB7CiAg
ICAgICAgICAgICAgICAgYXV0byBlcnJvciA9IGludGVybmFsRXJyb3IocmVzb3VyY2VMb2FkZXIt
PnJlcXVlc3QoKS51cmwoKSk7CiAgICAgICAgICAgICAgICAgZXJyb3Iuc2V0VHlwZShSZXNvdXJj
ZUVycm9yOjpUeXBlOjpDYW5jZWxsYXRpb24pOwpAQCAtMjI4LDEzICsyMjgsMTMgQEAgdm9pZCBX
ZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxv
YWRlciwgQ2FjaGVkUmVzb3UKICAgICAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53
ZWJMb2FkZXJTdHJhdGVneSgpLnRyeUxvYWRpbmdVc2luZ1VSTFNjaGVtZUhhbmRsZXIocmVzb3Vy
Y2VMb2FkZXIpKQogICAgICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViTG9hZGVy
U3RyYXRlZ3koKS5zY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MocmVzb3VyY2VMb2FkZXIu
Z2V0KCksIHJlc291cmNlTG9hZGVyLT5yZXF1ZXN0KCksIHRyYWNraW5nUGFyYW1ldGVycywgc2Vz
c2lvbklELCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBtYXhpbXVt
QnVmZmVyaW5nVGltZSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQocmVzb3VyY2VMb2FkZXIuZ2V0KCksICJzY2hlZHVsZUxvYWQ6IFVSTCBub3QgaGFu
ZGxlZCBieSBhbnkgaGFuZGxlcnMgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJj
ZUxvYWRlci0+ZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0
cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7CisgICAgICAgICAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLmdldCgpLCAic2NoZWR1bGVMb2FkOiBV
Ukwgbm90IGhhbmRsZWQgYnkgYW55IGhhbmRsZXJzIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIp
IiwgcmVzb3VyY2VMb2FkZXItPmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9V
SW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmll
cik7CiAgICAgfSk7CiAjZWxzZQogICAgIGlmICghdHJ5TG9hZGluZ1VzaW5nVVJMU2NoZW1lSGFu
ZGxlcihyZXNvdXJjZUxvYWRlcikpCiAgICAgICAgIHNjaGVkdWxlTG9hZEZyb21OZXR3b3JrUHJv
Y2VzcyhyZXNvdXJjZUxvYWRlciwgcmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLCB0cmFja2luZ1Bh
cmFtZXRlcnMsIHNlc3Npb25JRCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRp
cmVjdCwgbWF4aW11bUJ1ZmZlcmluZ1RpbWUocmVzb3VyY2UpKTsKICAgICBlbHNlCi0gICAgICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVS
TCBub3QgaGFuZGxlZCBieSBhbnkgaGFuZGxlcnMgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiki
LCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUlu
dDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBpZGVudGlmaWVyKTsKKyAgICAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJM
IG5vdCBoYW5kbGVkIGJ5IGFueSBoYW5kbGVycyAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIs
IHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50
NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmllcik7
CiAjZW5kaWYKIH0KIApAQCAtMzI1LDcgKzMyNSw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6
OnNjaGVkdWxlTG9hZEZyb21OZXR3b3JrUHJvY2VzcyhSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VM
CiAgICAgaWYgKGxvYWRQYXJhbWV0ZXJzLm9wdGlvbnMubW9kZSAhPSBGZXRjaE9wdGlvbnM6Ok1v
ZGU6Ok5hdmlnYXRlKSB7CiAgICAgICAgIEFTU0VSVChsb2FkUGFyYW1ldGVycy5zb3VyY2VPcmln
aW4pOwogICAgICAgICBpZiAoIWxvYWRQYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbikgewotICAgICAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVk
dWxlTG9hZDogbm8gc291cmNlT3JpZ2luIChmcmFtZSA9ICVwLCBwcmlvcml0eSA9ICVkLCBwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIg
UFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgc3RhdGljX2Nhc3Q8aW50PihyZXNv
dXJjZUxvYWRlci5yZXF1ZXN0KCkucHJpb3JpdHkoKSksIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJ
RC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlELCBsb2FkUGFyYW1ldGVycy5p
ZGVudGlmaWVyKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQocmVz
b3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IG5vIHNvdXJjZU9yaWdpbiAoZnJhbWUgPSAlcCwg
cHJpb3JpdHkgPSAlZCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQg
IiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHN0
YXRpY19jYXN0PGludD4ocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnByaW9yaXR5KCkpLCBsb2Fk
UGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJ
RC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyKTsKICAgICAgICAgICAgIHNj
aGVkdWxlSW50ZXJuYWxseUZhaWxlZExvYWQocmVzb3VyY2VMb2FkZXIpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CkBAIC0zNDgsOSArMzQ4LDkgQEAgdm9pZCBXZWJMb2FkZXJTdHJh
dGVneTo6c2NoZWR1bGVMb2FkRnJvbU5ldHdvcmtQcm9jZXNzKFJlc291cmNlTG9hZGVyJiByZXNv
dXJjZUwKIAogICAgIEFTU0VSVCgobG9hZFBhcmFtZXRlcnMud2ViUGFnZUlEICYmIGxvYWRQYXJh
bWV0ZXJzLndlYkZyYW1lSUQpIHx8IGxvYWRQYXJhbWV0ZXJzLmNsaWVudENyZWRlbnRpYWxQb2xp
Y3kgPT0gQ2xpZW50Q3JlZGVudGlhbFBvbGljeTo6Q2Fubm90QXNrQ2xpZW50Rm9yQ3JlZGVudGlh
bHMpOwogCi0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVk
dWxlTG9hZDogUmVzb3VyY2UgaXMgYmVpbmcgc2NoZWR1bGVkIHdpdGggdGhlIE5ldHdvcmtQcm9j
ZXNzIChmcmFtZSA9ICVwLCBwcmlvcml0eSA9ICVkLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VM
b2FkZXIuZnJhbWUoKSwgc3RhdGljX2Nhc3Q8aW50PihyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCku
cHJpb3JpdHkoKSksIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBsb2FkUGFy
YW1ldGVycy53ZWJGcmFtZUlELCBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyKTsKKyAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBSZXNvdXJj
ZSBpcyBiZWluZyBzY2hlZHVsZWQgd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3MgKGZyYW1lID0gJXAs
IHByaW9yaXR5ID0gJWQsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCBz
dGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS5wcmlvcml0eSgpKSwgbG9h
ZFBhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1l
SUQudG9VSW50NjQoKSwgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllcik7CiAgICAgaWYgKCFXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25u
ZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlNj
aGVkdWxlUmVzb3VyY2VMb2FkKGxvYWRQYXJhbWV0ZXJzKSwgMCkpIHsKLSAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1JfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVW5h
YmxlIHRvIHNjaGVkdWxlIHJlc291cmNlIHdpdGggdGhlIE5ldHdvcmtQcm9jZXNzIChmcmFtZSA9
ICVwLCBwcmlvcml0eSA9ICVkLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUo
KSwgc3RhdGljX2Nhc3Q8aW50PihyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkucHJpb3JpdHkoKSks
IGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVycy53ZWJG
cmFtZUlELCBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0df
RVJST1JfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVW5hYmxlIHRv
IHNjaGVkdWxlIHJlc291cmNlIHdpdGggdGhlIE5ldHdvcmtQcm9jZXNzIChmcmFtZSA9ICVwLCBw
cmlvcml0eSA9ICVkLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAi
LCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgc3Rh
dGljX2Nhc3Q8aW50PihyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkucHJpb3JpdHkoKSksIGxvYWRQ
YXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlE
LnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIpOwogICAgICAgICAvLyBXZSBw
cm9iYWJseSBmYWlsZWQgdG8gc2NoZWR1bGUgdGhpcyBsb2FkIHdpdGggdGhlIE5ldHdvcmtQcm9j
ZXNzIGJlY2F1c2UgaXQgaGFkIGNyYXNoZWQuCiAgICAgICAgIC8vIFRoaXMgbG9hZCB3aWxsIG5l
dmVyIHN1Y2NlZWQgc28gd2Ugd2lsbCBzY2hlZHVsZSBpdCB0byBmYWlsIGFzeW5jaHJvbm91c2x5
LgogICAgICAgICBzY2hlZHVsZUludGVybmFsbHlGYWlsZWRMb2FkKHJlc291cmNlTG9hZGVyKTsK
QEAgLTUyMCwxOCArNTIwLDE4IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNvdXJj
ZVN5bmNocm9ub3VzbHkoRnJhbWVMb2FkZXImIGZyYW1lTG9hZGVyLCB1bnNpCiAgICAgV2ViUGFn
ZSogd2ViUGFnZSA9IHdlYkZyYW1lID8gd2ViRnJhbWUtPnBhZ2UoKSA6IG51bGxwdHI7CiAKICAg
ICBhdXRvIHBhZ2VJRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5wYWdlSUQoKSA6IFBhZ2VJZGVudGlm
aWVyIHsgfTsKLSAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZSA/IHdlYkZyYW1lLT5mcmFtZUlE
KCkgOiAwOworICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZyYW1lID8gd2ViRnJhbWUtPmZyYW1lSUQo
KSA6IEZyYW1lSWRlbnRpZmllciB7IH07CiAgICAgYXV0byBzZXNzaW9uSUQgPSB3ZWJQYWdlID8g
d2ViUGFnZS0+c2Vzc2lvbklEKCkgOiBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgp
OwogCiAgICAgYXV0byogZG9jdW1lbnQgPSBmcmFtZUxvYWRlci5mcmFtZSgpLmRvY3VtZW50KCk7
CiAgICAgaWYgKCFkb2N1bWVudCkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExP
V0VEKHNlc3Npb25JRCwgImxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6IG5vIGRvY3VtZW50IChw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JWx1KSIsIHBhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELCByZXNvdXJjZUxvYWRJZGVudGlmaWVy
KTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChzZXNzaW9uSUQsICJsb2Fk
UmVzb3VyY2VTeW5jaHJvbm91c2x5OiBubyBkb2N1bWVudCAocGFnZUlEID0gJSIgUFJJdTY0ICIs
IGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICVsdSkiLCBwYWdlSUQudG9VSW50
NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpLCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKTsKICAgICAg
ICAgZXJyb3IgPSBpbnRlcm5hbEVycm9yKHJlcXVlc3QudXJsKCkpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCiAgICAgaWYgKGF1dG8gc3luY0xvYWRSZXN1bHQgPSB0cnlMb2FkaW5nU3luY2hy
b25vdXNseVVzaW5nVVJMU2NoZW1lSGFuZGxlcihmcmFtZUxvYWRlciwgcmVzb3VyY2VMb2FkSWRl
bnRpZmllciwgcmVxdWVzdCkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dF
RChzZXNzaW9uSUQsICJsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiBmYWlsZWQgY2FsbGluZyB0
cnlMb2FkaW5nU3luY2hyb25vdXNseVVzaW5nVVJMU2NoZW1lSGFuZGxlciAocGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICVsdSwgZXJyb3Ig
PSAlZCkiLCBwYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCwgcmVzb3VyY2VMb2FkSWRlbnRpZmll
ciwgc3luY0xvYWRSZXN1bHQtPmVycm9yLmVycm9yQ29kZSgpKTsKKyAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1JfSUZfQUxMT1dFRChzZXNzaW9uSUQsICJsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5
OiBmYWlsZWQgY2FsbGluZyB0cnlMb2FkaW5nU3luY2hyb25vdXNseVVzaW5nVVJMU2NoZW1lSGFu
ZGxlciAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3Vy
Y2VJRCA9ICVsdSwgZXJyb3IgPSAlZCkiLCBwYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJ
bnQ2NCgpLCByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBzeW5jTG9hZFJlc3VsdC0+ZXJyb3IuZXJy
b3JDb2RlKCkpOwogICAgICAgICBlcnJvciA9IFdURk1vdmUoc3luY0xvYWRSZXN1bHQtPmVycm9y
KTsKICAgICAgICAgcmVzcG9uc2UgPSBXVEZNb3ZlKHN5bmNMb2FkUmVzdWx0LT5yZXNwb25zZSk7
CiAgICAgICAgIGRhdGEgPSBXVEZNb3ZlKHN5bmNMb2FkUmVzdWx0LT5kYXRhKTsKQEAgLTU2OSw3
ICs1NjksNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91
c2x5KEZyYW1lTG9hZGVyJiBmcmFtZUxvYWRlciwgdW5zaQogICAgICAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzUG9vbDo6U2V0V2ViUHJvY2Vzc0hhc1VwbG9hZHMgeyBQcm9jZXNzOjppZGVudGlmaWVy
KCkgfSwgMCk7CiAKICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6TmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlBlcmZvcm1TeW5jaHJvbm91c0xvYWQobG9hZFBh
cmFtZXRlcnMpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlBlcmZv
cm1TeW5jaHJvbm91c0xvYWQ6OlJlcGx5KGVycm9yLCByZXNwb25zZSwgZGF0YSksIDApKSB7Ci0g
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoc2Vzc2lvbklELCAibG9hZFJlc291
cmNlU3luY2hyb25vdXNseTogZmFpbGVkIHNlbmRpbmcgc3luY2hyb25vdXMgbmV0d29yayBwcm9j
ZXNzIG1lc3NhZ2UgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IHJlc291cmNlSUQgPSAlbHUpIiwgcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQsIHJlc291cmNl
TG9hZElkZW50aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHNl
c3Npb25JRCwgImxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6IGZhaWxlZCBzZW5kaW5nIHN5bmNo
cm9ub3VzIG5ldHdvcmsgcHJvY2VzcyBtZXNzYWdlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJWx1KSIsIHBhZ2VJRC50b1VJbnQ2NCgp
LCBmcmFtZUlELnRvVUludDY0KCksIHJlc291cmNlTG9hZElkZW50aWZpZXIpOwogICAgICAgICBp
ZiAoYXV0byogcGFnZSA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5jb3JlUGFnZSgpIDogbnVsbHB0cikK
ICAgICAgICAgICAgIHBhZ2UtPmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3Rp
Y01lc3NhZ2UoV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjppbnRlcm5hbEVycm9yS2V5
KCksIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6c3luY2hyb25vdXNNZXNzYWdlRmFp
bGVkS2V5KCksIFdlYkNvcmU6OlNob3VsZFNhbXBsZTo6Tm8pOwogICAgICAgICByZXNwb25zZSA9
IFJlc291cmNlUmVzcG9uc2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcAppbmRleCA4OGJkNTNiZjFmOGZiNzM2ZWIx
NzNlZjY0ZjFlMzAzZDFiYjEwMGMxLi5mYTUzOTI1ZWI2OGYwNDJmZWM3OWJmMzg4NjBiMjc2MDMy
NWZiNTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJS
ZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC04OCwxNiArODgsMTYgQEAgdm9pZCBXZWJSZXNvdXJj
ZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHByb3Bvc2VkUmVxdWVz
dCwgUmVzb3UKICAgICBSZWY8V2ViUmVzb3VyY2VMb2FkZXI+IHByb3RlY3RlZFRoaXMoKnRoaXMp
OwogCiAgICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6Ondp
bGxTZW5kUmVxdWVzdCB0byAnJXMnIiwgcHJvcG9zZWRSZXF1ZXN0LnVybCgpLnN0cmluZygpLmxh
dGluMSgpLmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgid2lsbFNlbmRSZXF1
ZXN0OiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3Vy
Y2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2
NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5y
ZXNvdXJjZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3aWxsU2VuZFJlcXVlc3Q6
IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlE
ID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCks
IG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFt
ZXRlcnMucmVzb3VyY2VJRCk7CiAKICAgICBpZiAobV9jb3JlTG9hZGVyLT5kb2N1bWVudExvYWRl
cigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLm1heWJlTG9hZEZhbGxiYWNrRm9yUmVkaXJlY3Qo
bV9jb3JlTG9hZGVyLmdldCgpLCBwcm9wb3NlZFJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpKSB7
Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIndpbGxTZW5kUmVxdWVzdDogZXhpdGlu
ZyBlYXJseSBiZWNhdXNlIG1heWJlTG9hZEZhbGxiYWNrRm9yUmVkaXJlY3QgcmV0dXJuZWQgZmFs
c2UgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNl
SUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQo
KSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVz
b3VyY2VJRCk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIndpbGxTZW5kUmVxdWVz
dDogZXhpdGluZyBlYXJseSBiZWNhdXNlIG1heWJlTG9hZEZhbGxiYWNrRm9yUmVkaXJlY3QgcmV0
dXJuZWQgZmFsc2UgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQu
dG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3Ry
YWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIG1fY29yZUxvYWRlci0+d2lsbFNlbmRSZXF1ZXN0KFdURk1vdmUocHJvcG9zZWRSZXF1ZXN0
KSwgcmVkaXJlY3RSZXNwb25zZSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3Rl
Y3RlZFRoaXMpXShSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KSB7CiAgICAgICAgIGlmICghbV9j
b3JlTG9hZGVyIHx8ICFtX2NvcmVMb2FkZXItPmlkZW50aWZpZXIoKSkgewotICAgICAgICAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgid2lsbFNlbmRSZXF1ZXN0OiBleGl0aW5nIGVhcmx5IGJl
Y2F1c2Ugbm8gY29yZWxvYWRlciBvciBpZGVudGlmaWVyIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFj
a2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZy
YW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOworICAgICAgICAgICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRCgid2lsbFNlbmRSZXF1ZXN0OiBleGl0aW5nIGVhcmx5IGJlY2F1
c2Ugbm8gY29yZWxvYWRlciBvciBpZGVudGlmaWVyIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2lu
Z1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1l
SUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtMTEzLDEyICsxMTMsMTIgQEAgdm9pZCBXZWJS
ZXNvdXJjZUxvYWRlcjo6ZGlkU2VuZERhdGEodWludDY0X3QgYnl0ZXNTZW50LCB1aW50NjRfdCB0
b3RhbEJ5dGVzVG9CZVMKIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25z
ZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgYm9vbCBuZWVkc0NvbnRpbnVlRGlk
UmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSkKIHsKICAgICBMT0coTmV0d29yaywgIihXZWJQcm9jZXNz
KSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlIGZvciAnJXMnLiBTdGF0dXMg
JWQuIiwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCksIHJlc3Bv
bnNlLmh0dHBTdGF0dXNDb2RlKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJl
Y2VpdmVSZXNwb25zZTogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgc3RhdHVzID0gJWQpIiwgbV90cmFja2luZ1Bh
cmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQs
IG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQsIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2Rl
KCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZTogKHBh
Z2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAl
IiBQUkl1NjQgIiwgc3RhdHVzID0gJWQpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRv
VUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFj
a2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSk7CiAK
ICAgICBSZWY8V2ViUmVzb3VyY2VMb2FkZXI+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwogCiAgICAg
aWYgKG1fY29yZUxvYWRlci0+ZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3Qo
KS5tYXliZUxvYWRGYWxsYmFja0ZvclJlc3BvbnNlKG1fY29yZUxvYWRlci5nZXQoKSwgcmVzcG9u
c2UpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25z
ZTogbm90IGNvbnRpbnVpbmcgbG9hZCBiZWNhdXNlIHRoZSBjb250ZW50IGlzIGFscmVhZHkgY2Fj
aGVkIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJj
ZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0
KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJl
c291cmNlSUQpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVz
cG9uc2U6IG5vdCBjb250aW51aW5nIGxvYWQgYmVjYXVzZSB0aGUgY29udGVudCBpcyBhbHJlYWR5
IGNhY2hlZCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJ
bnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tp
bmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0x
MzUsNyArMTM1LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNl
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib28KICAgICAgICAgICAgIGlmICht
X2NvcmVMb2FkZXIgJiYgbV9jb3JlTG9hZGVyLT5pZGVudGlmaWVyKCkpCiAgICAgICAgICAgICAg
ICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpDb250aW51ZURpZFJlY2Vp
dmVSZXNwb25zZSgpKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6IG5vdCBjb250aW51aW5nIGxvYWQg
YmVjYXVzZSBubyBjb3JlTG9hZGVyIG9yIG5vIElEIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2lu
Z1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1l
SUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOworICAgICAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZTogbm90IGNvbnRpbnVpbmcg
bG9hZCBiZWNhdXNlIG5vIGNvcmVMb2FkZXIgb3Igbm8gSUQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3Ry
YWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMu
ZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKICAg
ICAgICAgfTsKICAgICB9CiAKQEAgLTE0OCw3ICsxNDgsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9h
ZGVyOjpkaWRSZWNlaXZlRGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGludDY0
X3QgZQogICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIW1faXNQcm9jZXNzaW5nTmV0d29ya1Jlc3Bv
bnNlLCAiTmV0d29yayBwcm9jZXNzIHNob3VsZCBub3Qgc2VuZCBkYXRhIHVudGlsIHdlJ3ZlIHZh
bGlkYXRlZCB0aGUgcmVzcG9uc2UiKTsKIAogICAgIGlmICghbV9udW1CeXRlc1JlY2VpdmVkKSB7
Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVEYXRhOiBTdGFydGVk
IHJlY2VpdmluZyBkYXRhIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2
NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFn
ZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQ
YXJhbWV0ZXJzLnJlc291cmNlSUQpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJk
aWRSZWNlaXZlRGF0YTogU3RhcnRlZCByZWNlaXZpbmcgZGF0YSAocGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1f
dHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVy
cy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwog
ICAgIH0KICAgICBtX251bUJ5dGVzUmVjZWl2ZWQgKz0gZGF0YS5zaXplKCk7CiAKQEAgLTE1OCw3
ICsxNTgsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShjb25zdCBJ
UEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGludDY0X3QgZQogdm9pZCBXZWJSZXNvdXJjZUxvYWRl
cjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkKGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29y
a0xvYWRNZXRyaWNzKQogewogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291
cmNlTG9hZGVyOjpkaWRGaW5pc2hSZXNvdXJjZUxvYWQgZm9yICclcyciLCBtX2NvcmVMb2FkZXIt
PnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRCgiZGlkRmluaXNoUmVzb3VyY2VMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBsZW5ndGggPSAlemQp
IiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJh
bWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQsIG1fbnVtQnl0
ZXNSZWNlaXZlZCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkRmluaXNoUmVzb3Vy
Y2VMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBsZW5ndGggPSAlemQpIiwgbV90cmFja2luZ1BhcmFtZXRl
cnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50
NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCwgbV9udW1CeXRlc1JlY2VpdmVk
KTsKIAogICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIW1faXNQcm9jZXNzaW5nTmV0d29ya1Jlc3Bv
bnNlLCAiTG9hZCBzaG91bGQgbm90IGJlIGFibGUgdG8gZmluaXNoIGJlZm9yZSB3ZSd2ZSB2YWxp
ZGF0ZWQgdGhlIHJlc3BvbnNlIik7CiAgICAgbV9jb3JlTG9hZGVyLT5kaWRGaW5pc2hMb2FkaW5n
KG5ldHdvcmtMb2FkTWV0cmljcyk7CkBAIC0xNjcsNyArMTY3LDcgQEAgdm9pZCBXZWJSZXNvdXJj
ZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkKGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYg
bmV0d29ya0wKIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxSZXNvdXJjZUxvYWQoY29u
c3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7CiAgICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2Vz
cykgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxSZXNvdXJjZUxvYWQgZm9yICclcyciLCBtX2Nv
cmVMb2FkZXItPnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgiZGlkRmFpbFJlc291cmNlTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3Ry
YWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMu
ZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgiZGlkRmFpbFJlc291cmNlTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3Ry
YWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMu
ZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKIAog
ICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIW1faXNQcm9jZXNzaW5nTmV0d29ya1Jlc3BvbnNlLCAi
TG9hZCBzaG91bGQgbm90IGJlIGFibGUgdG8gZmluaXNoIGJlZm9yZSB3ZSd2ZSB2YWxpZGF0ZWQg
dGhlIHJlc3BvbnNlIik7CiAKQEAgLTE3OSw3ICsxNzksNyBAQCB2b2lkIFdlYlJlc291cmNlTG9h
ZGVyOjpkaWRGYWlsUmVzb3VyY2VMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogdm9p
ZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgpCiB7
CiAgICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEJs
b2NrQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgZm9yICclcyciLCBtX2NvcmVMb2FkZXItPnVybCgp
LnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgi
ZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNr
aW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJh
bWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgiZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTogKHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQg
IikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1Bh
cmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJj
ZUlEKTsKIAogICAgIG1fY29yZUxvYWRlci0+ZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSgpOwogfQpAQCAtMTg3LDcgKzE4Nyw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEJs
b2NrQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKQogdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6c3Rv
cExvYWRpbmdBZnRlclhGcmFtZU9wdGlvbnNPckNvbnRlbnRTZWN1cml0eVBvbGljeURlbmllZChj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBMT0coTmV0d29yaywgIihX
ZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6c3RvcExvYWRpbmdBZnRlclhGcmFtZU9wdGlv
bnNPckNvbnRlbnRTZWN1cml0eVBvbGljeURlbmllZCBmb3IgJyVzJyIsIG1fY29yZUxvYWRlci0+
dXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKCJzdG9wTG9hZGluZ0FmdGVyWEZyYW1lT3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5
RGVuaWVkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJ
bnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVy
cy5yZXNvdXJjZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdG9wTG9hZGluZ0Fm
dGVyWEZyYW1lT3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVkOiAocGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2
NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5n
UGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291
cmNlSUQpOwogCiAgICAgbV9jb3JlTG9hZGVyLT5kb2N1bWVudExvYWRlcigpLT5zdG9wTG9hZGlu
Z0FmdGVyWEZyYW1lT3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVkKG1fY29yZUxv
YWRlci0+aWRlbnRpZmllcigpLCByZXNwb25zZSk7CiB9CkBAIC0xOTYsMTMgKzE5NiwxMyBAQCB2
b2lkIFdlYlJlc291cmNlTG9hZGVyOjpzdG9wTG9hZGluZ0FmdGVyWEZyYW1lT3B0aW9uc09yQ29u
dGVudFNlY3VyaXR5UG9saWN5RGVuaQogdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2
ZVJlc291cmNlKGNvbnN0IFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUmIGhhbmRsZSkKIHsKICAg
ICBMT0coTmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2
ZVJlc291cmNlIGZvciAnJXMnIiwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEo
KS5kYXRhKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNvdXJj
ZTogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNl
SUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQo
KSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVz
b3VyY2VJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc291cmNl
OiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJ
RCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgp
LCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJh
bWV0ZXJzLnJlc291cmNlSUQpOwogCiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyID0g
aGFuZGxlLnRyeVdyYXBJblNoYXJlZEJ1ZmZlcigpOwogCiAgICAgaWYgKCFidWZmZXIpIHsKICAg
ICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gY3JlYXRlIGJ1ZmZlciBmcm9tIFNoYXJlYWJsZVJl
c291cmNlIHNlbnQgZnJvbSB0aGUgbmV0d29yayBwcm9jZXNzLiIpOwotICAgICAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzb3VyY2U6IFVuYWJsZSB0byBjcmVhdGUgU2hh
cmVkQnVmZmVyIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBy
ZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRv
VUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0
ZXJzLnJlc291cmNlSUQpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNl
aXZlUmVzb3VyY2U6IFVuYWJsZSB0byBjcmVhdGUgU2hhcmVkQnVmZmVyIChwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIp
IiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJh
bWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJ
RCk7CiAgICAgICAgIGlmIChhdXRvKiBmcmFtZSA9IG1fY29yZUxvYWRlci0+ZnJhbWUoKSkgewog
ICAgICAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSBmcmFtZS0+cGFnZSgpKQogICAgICAgICAgICAg
ICAgIHBhZ2UtPmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2Uo
V2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjppbnRlcm5hbEVycm9yS2V5KCksIFdlYkNv
cmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6Y3JlYXRlU2hhcmVkQnVmZmVyRmFpbGVkS2V5KCks
IFdlYkNvcmU6OlNob3VsZFNhbXBsZTo6Tm8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKaW5kZXggNTg2NTQzNzE4ZTVlODM4
OGI4YjQxYWIwMjAzN2FjNzZlNzg2OTM3Yy4uOWMxMTQ3ZGEwNTE1M2RkN2FjNDRhZjMxNTgxZTIy
MWI2OWJlOTI0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJSZXNvdXJjZUxvYWRlci5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQ29ubmVj
dGlvbi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKICNpbmNsdWRlICJTaGFyZWFibGVS
ZXNvdXJjZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtNTIsNyArNTMsNyBAQCBjbGFzcyBXZWJSZXNv
dXJjZUxvYWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlJlc291cmNlTG9hZGVyPiwgcHVibGlj
IElQQzo6TWVzcwogcHVibGljOgogICAgIHN0cnVjdCBUcmFja2luZ1BhcmFtZXRlcnMgewogICAg
ICAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQ7Ci0gICAgICAgIHVpbnQ2NF90IGZy
YW1lSUQgeyAwIH07CisgICAgICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEOwog
ICAgICAgICBSZXNvdXJjZUxvYWRJZGVudGlmaWVyIHJlc291cmNlSUQgeyAwIH07CiAgICAgfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCmluZGV4IDZmYzA5YzRmNjViMjQ1
YjYwYmY0ZDRmNTk3YTlmOTBhZDRkMGFhZjkuLjQ5ZDIwYzdjNDljMDJhYTk1OWFhNGFlNGQ5ZWVj
OGZlODNjNWZlN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKQEAgLTcz
LDcgKzczLDcgQEAgc3RhdGljIGNvbnN0IFNlY29uZHMgc3luY1dvcmtlclRlcm1pbmF0aW9uVGlt
ZW91dCB7IDEwMF9tcyB9OyAvLyBPbmx5IHVzZWQgYnkgbGEKIAogY2xhc3MgU2VydmljZVdvcmtl
ckZyYW1lTG9hZGVyQ2xpZW50IGZpbmFsIDogcHVibGljIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQg
ewogcHVibGljOgotICAgIFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudChXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFN0cmluZyYgdXNlckFnZW50KQorICAgIFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudChX
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCkKICAgICAgICAgOiBtX2Nvbm5lY3Rp
b24oY29ubmVjdGlvbikKICAgICAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgICAg
ICwgbV9wYWdlSUQocGFnZUlEKQpAQCAtOTYsMTMgKzk2LDEzIEBAIHByaXZhdGU6CiAKICAgICBQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Nlc3Npb25J
RDsgfQogICAgIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX3BhZ2VJRDsgfQotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFt
ZUlEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9mcmFtZUlEOyB9CisgICAgT3B0aW9uYWw8V2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9m
cmFtZUlEOyB9CiAgICAgU3RyaW5nIHVzZXJBZ2VudChjb25zdCBVUkwmKSBmaW5hbCB7IHJldHVy
biBtX3VzZXJBZ2VudDsgfQogCiAgICAgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24mIG1f
Y29ubmVjdGlvbjsKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKLSAgICBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciBtX3BhZ2VJRDsKLSAgICB1aW50NjRfdCBtX2ZyYW1lSUQgeyAwIH07
CisgICAgUGFnZUlkZW50aWZpZXIgbV9wYWdlSUQ7CisgICAgRnJhbWVJZGVudGlmaWVyIG1fZnJh
bWVJRDsKICAgICBTdHJpbmcgbV91c2VyQWdlbnQ7CiB9OwogCkBAIC0xNTMsNyArMTUzLDggQEAg
dm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6aW5zdGFsbFNlcnZpY2VXb3JrZXIo
Y29uc3QgU2VydmljZVdvcmtlckNvbnQKIAogICAgIC8vIEZJWE1FOiBUaGlzIG1ldGhvZCBzaG91
bGQgYmUgbW92ZWQgZGlyZWN0bHkgdG8gV2ViQ29yZTo6U1dDb250ZXh0TWFuYWdlcjo6Q29ubmVj
dGlvbgogICAgIC8vIElmIGl0IHdlcmVuJ3QgZm9yIFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNs
aWVudCdzIGRlcGVuZGVuY2Ugb24gV2ViRG9jdW1lbnRMb2FkZXIsIHRoaXMgY291bGQgYWxyZWFk
eSBoYXBwZW4uCi0gICAgYXV0byBmcmFtZUxvYWRlckNsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8
U2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50PigqdGhpcywgc2Vzc2lvbklELCBtX3BhZ2VJ
RCwgKyttX3ByZXZpb3VzU2VydmljZVdvcmtlcklELCBlZmZlY3RpdmVVc2VyQWdlbnQpOworICAg
IC8vIEZJWE1FOiBXZWlyZCB0byBwYXNzIG1fcHJldmlvdXNTZXJ2aWNlV29ya2VySUQgYXMgYSBG
cmFtZUlkZW50aWZpZXIuCisgICAgYXV0byBmcmFtZUxvYWRlckNsaWVudCA9IHN0ZDo6bWFrZV91
bmlxdWU8U2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50PigqdGhpcywgc2Vzc2lvbklELCBt
X3BhZ2VJRCwgZnJhbWVJZGVudGlmaWVyRnJvbUlEKCsrbV9wcmV2aW91c1NlcnZpY2VXb3JrZXJJ
RCksIGVmZmVjdGl2ZVVzZXJBZ2VudCk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24ubG9hZGVyQ2xp
ZW50Rm9yTWFpbkZyYW1lID0gZnJhbWVMb2FkZXJDbGllbnQuZ2V0KCk7CiAgICAgbV9sb2FkZXJz
LmFkZChXVEZNb3ZlKGZyYW1lTG9hZGVyQ2xpZW50KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
aW5kZXggM2M4NzJmNWFkZjM5YmVhY2QzYTcwNjY3YjI2ODlkMzhjOWIxMTEyZS4uZmNkMDk4ZTQ4
NDBhNThhMmI1YTIxOTdlYjUyOTFlMGE0ZjQ4MjlmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
QEAgLTI2NSw3ICsyNjUsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Zm9jdXNlZEZyYW1lQ2hh
bmdlZChGcmFtZSogZnJhbWUpCiB7CiAgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gZnJhbWUgPyBX
ZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpIDogbnVsbHB0cjsKIAotICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6Rm9jdXNlZEZyYW1lQ2hhbmdlZCh3ZWJGcmFtZSA/IHdlYkZyYW1lLT5m
cmFtZUlEKCkgOiAwKSwgbV9wYWdlLnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkZvY3VzZWRGcmFtZUNoYW5nZWQod2ViRnJhbWUgPyBtYWtlT3B0aW9uYWwod2ViRnJhbWUt
PmZyYW1lSUQoKSkgOiBXVEY6Om51bGxvcHQpLCBtX3BhZ2UucGFnZUlEKCkpOwogfQogCiBQYWdl
KiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSYgZnJhbWUsIGNvbnN0IEZyYW1l
TG9hZFJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiB3aW5kb3dGZWF0dXJl
cywgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGlvbkFjdGlvbikKQEAgLTYyNSw3ICs2
MjUsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSYg
ZnJhbWUsIGNvbnN0IEludFNpemUmIHNpemUpIGNvbgogICAgICAgICBXZWJGcmFtZSogbGFyZ2Vz
dEZyYW1lID0gZmluZExhcmdlc3RGcmFtZUluRnJhbWVTZXQobV9wYWdlKTsKICAgICAgICAgaWYg
KGxhcmdlc3RGcmFtZSAhPSBtX2NhY2hlZEZyYW1lU2V0TGFyZ2VzdEZyYW1lLmdldCgpKSB7CiAg
ICAgICAgICAgICBtX2NhY2hlZEZyYW1lU2V0TGFyZ2VzdEZyYW1lID0gbGFyZ2VzdEZyYW1lOwot
ICAgICAgICAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RnJhbWVTZXRM
YXJnZXN0RnJhbWVDaGFuZ2VkKGxhcmdlc3RGcmFtZSA/IGxhcmdlc3RGcmFtZS0+ZnJhbWVJRCgp
IDogMCkpOworICAgICAgICAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
RnJhbWVTZXRMYXJnZXN0RnJhbWVDaGFuZ2VkKGxhcmdlc3RGcmFtZSA/IG1ha2VPcHRpb25hbChs
YXJnZXN0RnJhbWUtPmZyYW1lSUQoKSkgOiBXVEY6Om51bGxvcHQpKTsKICAgICAgICAgfQogICAg
IH0KIApAQCAtMTMxNiwxMiArMTMxNiwxMiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZGlkSW52
YWxpZGF0ZURvY3VtZW50TWFya2VyUmVjdHMoKQogfQogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xP
QURfU1RBVElTVElDUykKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpoYXNTdG9yYWdlQWNjZXNzKFJl
Z2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluJiYgdG9w
RnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJDaHJvbWVD
bGllbnQ6Omhhc1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFp
biwgUmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIG1fcGFnZS5oYXNTdG9yYWdlQWNjZXNzKFdURk1vdmUo
c3ViRnJhbWVEb21haW4pLCBXVEZNb3ZlKHRvcEZyYW1lRG9tYWluKSwgZnJhbWVJRCwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cmVxdWVz
dFN0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgUmVnaXN0
cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0
b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdl
YkNocm9tZUNsaWVudDo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBz
dWJGcmFtZURvbWFpbiwgUmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIG1fcGFnZS5yZXF1ZXN0U3RvcmFnZUFjY2VzcyhX
VEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0b3BGcmFtZURvbWFpbiksIGZyYW1lSUQs
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBj
ZWQzNmE2YzI1YjdlNGY4MzQ0YTU4OTk0MDA2NzkxZjdjYzkyNzZmLi4yZGM2NjIyYzFiN2YxYzVh
OTVhMmNjZDc5YjMyMDliYjU4NzJhNjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0zNjcsOCAr
MzY3LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZEludmFsaWRhdGVEb2N1bWVudE1hcmtlclJl
Y3RzKCkgZmluYWw7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAg
IHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZy
YW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCB1
aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKLSAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNj
ZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29y
ZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93bik+JiYpIGZpbmFsOworICAgIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiYmIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZp
bmFsOworICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4mJiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BG
cmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NX
YXNHcmFudGVkLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKSBmaW5h
bDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDY1NzM5YmI4YWE5NmRmZThjMmIwZTI2YzE3MWE5Zjli
NzZiNzM0MDkuLjcwOTgwZWU1YjViOGQ3MDM3ZTQ1YjNmMmFmM2UyYmIxZmEwMzk0YTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTIwLDcgKzEyMCw3IEBAIE9wdGlvbmFs
PFBhZ2VJZGVudGlmaWVyPiBXZWJGcmFtZUxvYWRlckNsaWVudDo6cGFnZUlEKCkgY29uc3QKICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQogCi1PcHRpb25hbDx1aW50NjRfdD4gV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmZyYW1lSUQoKSBjb25zdAorT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6ZnJhbWVJRCgpIGNvbnN0CiB7CiAgICAgaWYgKG1fZnJhbWUp
CiAgICAgICAgIHJldHVybiBtX2ZyYW1lLT5mcmFtZUlEKCk7CkBAIC01NDYsNyArNTQ2LDcgQEAg
dm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2Fk
KGNvbnN0IFJlc291cmNlRXJyb3ImIGUKICAgICBpZiAoIXdlYlBhZ2UpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIFJFTEVBU0VfTE9HKE5ldHdvcmssICIlcCAtIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiKSIsIHRoaXMsIHdlYlBhZ2UtPnBhZ2VJRCgpLnRvVUludDY0
KCksIG1fZnJhbWUtPmZyYW1lSUQoKSk7CisgICAgUkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0g
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZDogKHBh
Z2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIpIiwgdGhpcywgd2ViUGFn
ZS0+cGFnZUlEKCkudG9VSW50NjQoKSwgbV9mcmFtZS0+ZnJhbWVJRCgpLnRvVUludDY0KCkpOwog
CiAgICAgUmVmUHRyPEFQSTo6T2JqZWN0PiB1c2VyRGF0YTsKIApAQCAtNTgyLDcgKzU4Miw3IEBA
IHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWQoY29uc3QgUmVz
b3VyY2VFcnJvciYgZXJyb3IpCiAgICAgaWYgKCF3ZWJQYWdlKQogICAgICAgICByZXR1cm47CiAK
LSAgICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hEaWRGYWlsTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIpIiwgdGhpcywgd2ViUGFnZS0+cGFnZUlEKCkudG9VSW50NjQoKSwgbV9mcmFtZS0+ZnJh
bWVJRCgpKTsKKyAgICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBXZWJGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0ICIpIiwgdGhpcywgd2ViUGFnZS0+cGFnZUlEKCkudG9VSW50NjQoKSwgbV9m
cmFtZS0+ZnJhbWVJRCgpLnRvVUludDY0KCkpOwogCiAgICAgUmVmUHRyPEFQSTo6T2JqZWN0PiB1
c2VyRGF0YTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBjOGZiMmFmMjEyNTY2
YzY0Njg2MDc3YTBjODlhZjgxMDUzOTBhNjgwLi42NDFiOGMwNjYzNDEzODBjMDcwMjgyMGI4Nzg5
ZGQxODVlOGJiMDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtNTIsNyArNTIs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhcHBseVRvRG9jdW1lbnRMb2FkZXIoV2Vic2l0ZVBvbGlj
aWVzRGF0YSYmKTsKIAogICAgIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdl
SUQoKSBjb25zdCBmaW5hbDsKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCgpIGNvbnN0
IGZpbmFsOworICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCgp
IGNvbnN0IGZpbmFsOwogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IGZpbmFs
OwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuY3BwCmluZGV4IDczOGJlOTJi
OTJkYzczZDJkZjY3N2VlMzRlYzEzMDgxYTYwZjFhMWMuLmY2YzU1N2Q1ZjBmZDIwMWRiYjUwNTEx
NDdlYmMyNzBhNWI0NWNmM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkNvb2tpZUphci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViQ29va2llSmFyLmNwcApAQCAtNTAsNyArNTAsNyBAQCBXZWJDb29raWVKYXI6Oldl
YkNvb2tpZUphcigpCiAKIFN0cmluZyBXZWJDb29raWVKYXI6OmNvb2tpZXMoV2ViQ29yZTo6RG9j
dW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCkgY29uc3QKIHsKLSAgICBPcHRpb25hbDx1
aW50NjRfdD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQ7
CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKICAgICBpZiAoYXV0byogZnJh
bWUgPSBkb2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGZyYW1lSUQgPSBmcmFtZS0+bG9hZGVy
KCkuY2xpZW50KCkuZnJhbWVJRCgpOwpAQCAtNjcsNyArNjcsNyBAQCBTdHJpbmcgV2ViQ29va2ll
SmFyOjpjb29raWVzKFdlYkNvcmU6OkRvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwp
IGNvbnN0CiAKIHZvaWQgV2ViQ29va2llSmFyOjpzZXRDb29raWVzKFdlYkNvcmU6OkRvY3VtZW50
JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKQog
ewotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFsPEZyYW1lSWRl
bnRpZmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEOwog
ICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKICAgICAgICAgZnJhbWVJ
RCA9IGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CkBAIC04NSw3ICs4NSw3IEBA
IGJvb2wgV2ViQ29va2llSmFyOjpjb29raWVzRW5hYmxlZChjb25zdCBXZWJDb3JlOjpEb2N1bWVu
dCYgZG9jdW1lbnQpIGNvbnN0CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3RkOjpwYWlyPFN0
cmluZywgV2ViQ29yZTo6U2VjdXJlQ29va2llc0FjY2Vzc2VkPiBXZWJDb29raWVKYXI6OmNvb2tp
ZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQs
IGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiBzYW1l
U2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0
aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tp
ZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CitzdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb3Jl
OjpTZWN1cmVDb29raWVzQWNjZXNzZWQ+IFdlYkNvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRl
ckZpZWxkVmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgY29uc3QgVVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29u
c3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8
UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5j
bHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CiB7CiAgICAgU3RyaW5nIGNvb2tpZVN0cmluZzsKICAg
ICBib29sIHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCA9IGZhbHNlOwpAQCAtOTYsNyArOTYsNyBAQCBz
dGQ6OnBhaXI8U3RyaW5nLCBXZWJDb3JlOjpTZWN1cmVDb29raWVzQWNjZXNzZWQ+IFdlYkNvb2tp
ZUphcjo6Y29va2llUmVxdWVzdEhlYQogCiBib29sIFdlYkNvb2tpZUphcjo6Z2V0UmF3Q29va2ll
cyhjb25zdCBXZWJDb3JlOjpEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBWZWN0
b3I8V2ViQ29yZTo6Q29va2llPiYgcmF3Q29va2llcykgY29uc3QKIHsKLSAgICBPcHRpb25hbDx1
aW50NjRfdD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQ7
CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKICAgICBpZiAoYXV0byogZnJh
bWUgPSBkb2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGZyYW1lSUQgPSBmcmFtZS0+bG9hZGVy
KCkuY2xpZW50KCkuZnJhbWVJRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJDb29raWVKYXIuaAppbmRleCA1NTliZDBlNTBiYmVjMzVmZmIyNTZiOTEyYjdiNDZk
YTk5NGIyZDQ4Li41ZGNhY2RkOTY4ZTZhNGIwNjI3Yzc4N2M2ZGExYTUxNTQ3MWJmODhkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuaApAQCAt
MzYsNyArMzYsNyBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGNvb2tpZXMoV2ViQ29yZTo6RG9jdW1l
bnQmLCBjb25zdCBVUkwmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHNldENvb2tpZXMoV2ViQ29y
ZTo6RG9jdW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0cmluZykgZmlu
YWw7CiAgICAgYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBXZWJDb3JlOjpEb2N1bWVudCYpIGNv
bnN0IGZpbmFsOwotICAgIHN0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvcmU6OlNlY3VyZUNvb2tpZXNB
Y2Nlc3NlZD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgUEFMOjpTZXNzaW9u
SUQmLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYs
IGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcj4sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdCBm
aW5hbDsKKyAgICBzdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb3JlOjpTZWN1cmVDb29raWVzQWNjZXNz
ZWQ+IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwg
Y29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25z
dCBVUkwmLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcj4sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25z
dCBmaW5hbDsKICAgICBib29sIGdldFJhd0Nvb2tpZXMoY29uc3QgV2ViQ29yZTo6RG9jdW1lbnQm
LCBjb25zdCBVUkwmLCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYpIGNvbnN0IGZpbmFsOwogICAg
IHZvaWQgZGVsZXRlQ29va2llKGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50JiwgY29uc3QgVVJMJiwg
Y29uc3QgU3RyaW5nJiBjb29raWVOYW1lKSBmaW5hbDsKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKaW5kZXggNjBjZmQ4ZDJhMTc1NGE3
YWNlZDU4ZDYxZGYxN2JlNGMxNDMxMzY5NC4uZjBlYmZlZGJiMmU5NTNhZDBmYzA3ZjlmODE2NjA5
ZGI5NzM1YjY2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZy
YW1lLmNwcApAQCAtOTUsMTIgKzk1LDYgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIERF
RklORV9ERUJVR19PTkxZX0dMT0JBTChXVEY6OlJlZkNvdW50ZWRMZWFrQ291bnRlciwgd2ViRnJh
bWVDb3VudGVyLCAoIldlYkZyYW1lIikpOwogCi1zdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVGcmFt
ZUlEKCkKLXsKLSAgICBzdGF0aWMgdWludDY0X3QgdW5pcXVlRnJhbWVJRCA9IDE7Ci0gICAgcmV0
dXJuIHVuaXF1ZUZyYW1lSUQrKzsKLX0KLQogc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlTGlzdGVu
ZXJJRCgpCiB7CiAgICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZUxpc3RlbmVySUQgPSAxOwpAQCAt
MTQ4LDcgKzE0Miw3IEBAIFJlZjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZShzdGQ6OnVuaXF1
ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+IGZyYW1lTG9hZGVyCiAKIFdlYkZyYW1lOjpXZWJG
cmFtZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+IGZyYW1lTG9hZGVyQ2xp
ZW50KQogICAgIDogbV9mcmFtZUxvYWRlckNsaWVudChXVEZNb3ZlKGZyYW1lTG9hZGVyQ2xpZW50
KSkKLSAgICAsIG1fZnJhbWVJRChnZW5lcmF0ZUZyYW1lSUQoKSkKKyAgICAsIG1fZnJhbWVJRChG
cmFtZUlkZW50aWZpZXI6OmdlbmVyYXRlKCkpCiB7CiAgICAgbV9mcmFtZUxvYWRlckNsaWVudC0+
c2V0V2ViRnJhbWUodGhpcyk7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRkV2ViRnJh
bWUobV9mcmFtZUlELCB0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJGcmFtZS5oCmluZGV4IDcxYjM4ZjYxYWIxOTUwNTViNDQ3ZTg3YmZmZjdlOTY0MDZkZWVhOWMu
LjFlYzUwNzU0MjU3Zjg2NmViMmFlOGVjNGNiMGM2ZDFmZmU4NjU2ZWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaApAQCAtODAsNyArODAsNyBAQCBwdWJs
aWM6CiAgICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29y
ZUZyYW1lOyB9CiAKICAgICBGcmFtZUluZm9EYXRhIGluZm8oKSBjb25zdDsKLSAgICB1aW50NjRf
dCBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9CisgICAgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KIAogICAg
IGVudW0gY2xhc3MgRm9yTmF2aWdhdGlvbkFjdGlvbiB7IE5vLCBZZXMgfTsKICAgICB1aW50NjRf
dCBzZXRVcFBvbGljeUxpc3RlbmVyKFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2Vi
Q29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmLCBGb3JOYXZpZ2F0aW9uQWN0aW9uKTsKQEAgLTE4
Nyw3ICsxODcsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJGcmFtZUxvYWRl
ckNsaWVudD4gbV9mcmFtZUxvYWRlckNsaWVudDsKICAgICBMb2FkTGlzdGVuZXIqIG1fbG9hZExp
c3RlbmVyIHsgbnVsbHB0ciB9OwogICAgIAotICAgIHVpbnQ2NF90IG1fZnJhbWVJRCB7IDAgfTsK
KyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbV9mcmFtZUlEOwogCiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKICAgICB1aW50NjRfdCBtX2ZpcnN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JREFm
dGVyRGlkQ29tbWl0TG9hZCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCmluZGV4IGYyOGRlNTY4ZWM1MTVhNTFjMzhlMDljYWFj
NDRlYTc3ZjIxZDNkYmUuLjFmMDE2YWVhZGE5OTZmOTYzZGQ1ZTRlZmI5NmQwY2FmZTYwYWQ2MTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rv
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9y
LmNwcApAQCAtMjA5LDcgKzIwOSw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yOjpzaG93UmVzb3VyY2Vz
KCkKICAgICB9KTsKIH0KIAotdm9pZCBXZWJJbnNwZWN0b3I6OnNob3dNYWluUmVzb3VyY2VGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlkZW50aWZpZXIpCit2b2lkIFdlYkluc3BlY3Rvcjo6c2hvd01h
aW5SZXNvdXJjZUZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlkZW50aWZp
ZXIpCiB7CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2Vi
RnJhbWUoZnJhbWVJZGVudGlmaWVyKTsKICAgICBpZiAoIWZyYW1lKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuaAppbmRleCA0ODllNDFjMDc0ZmMz
NjNiMzgwMTE2MTdiNGM3NTgyNGRmNTlkNDdiLi4yNmI4OWU1MjI3Nzk3OGQ1M2EzM2ZlM2M3MTE1
ZWFlYmJiMzgyOTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJJbnNwZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJJbnNwZWN0b3IuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgog
I2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5
YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC02MCw3ICs2MSw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNob3dDb25zb2xlKCk7CiAgICAgdm9pZCBzaG93UmVzb3Vy
Y2VzKCk7CiAKLSAgICB2b2lkIHNob3dNYWluUmVzb3VyY2VGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlkZW50aWZpZXIpOworICAgIHZvaWQgc2hvd01haW5SZXNvdXJjZUZvckZyYW1lKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcik7CiAKICAgICB2b2lkIHNldEF0dGFjaGVkKGJvb2wgYXR0YWNoZWQp
IHsgbV9hdHRhY2hlZCA9IGF0dGFjaGVkOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbgppbmRleCBiNmYz
YzAxYjI0MjIyNmEyMGZiNDljNTQyMjAzYTZkY2RlMjIxZTY5Li5kYWY3NGI1ZTZiMDQzMGI2YjBj
YTNiZTI2MGY1ZmZhYmVjZDY1NDg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLm1lc3NhZ2VzLmluCkBAIC0yOSw3ICsyOSw3
IEBAIG1lc3NhZ2VzIC0+IFdlYkluc3BlY3RvciB7CiAgICAgU2hvd0NvbnNvbGUoKQogICAgIFNo
b3dSZXNvdXJjZXMoKQogCi0gICAgU2hvd01haW5SZXNvdXJjZUZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSWRlbnRpZmllcikKKyAgICBTaG93TWFpblJlc291cmNlRm9yRnJhbWUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSWRlbnRpZmllcikKIAogICAgIE9wZW5Jbk5ld1RhYihTdHJpbmcg
dXJsKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmlu
ZGV4IDEzMzY1NzBkOTNhYTUxMTA2OTc4NTYxMTcwMjYwODkzYjhhM2NkYjQuLjAxZmYxYTRmNDU3
ZTUzOTM1NjE0MzI0YTA5NDg4NDAzYTc1MDU1YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xNDk3LDcgKzE0OTcsNyBAQCB2b2lkIFdlYlBh
Z2U6OnN1c3BlbmRGb3JQcm9jZXNzU3dhcCgpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpEaWRTdXNwZW5kQWZ0ZXJQcm9jZXNzU3dhcCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjps
b2FkVVJMSW5GcmFtZShVUkwmJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIHVpbnQ2NF90
IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2U6OmxvYWRVUkxJbkZyYW1lKFVSTCYmIHVybCwgY29uc3Qg
U3RyaW5nJiByZWZlcnJlciwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgV2ViRnJh
bWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAg
ICAgaWYgKCFmcmFtZSkKQEAgLTE1MDYsNyArMTUwNiw3IEBAIHZvaWQgV2ViUGFnZTo6bG9hZFVS
TEluRnJhbWUoVVJMJiYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCB1aW50NjRfdCBmcmFt
ZUlECiAgICAgZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5sb2FkKEZyYW1lTG9hZFJlcXVl
c3QoKmZyYW1lLT5jb3JlRnJhbWUoKSwgUmVzb3VyY2VSZXF1ZXN0KHVybCwgcmVmZXJyZXIpLCBT
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdykpOwogfQogCi12b2lk
IFdlYlBhZ2U6OmxvYWREYXRhSW5GcmFtZShJUEM6OkRhdGFSZWZlcmVuY2UmJiBkYXRhLCBTdHJp
bmcmJiBNSU1FVHlwZSwgU3RyaW5nJiYgZW5jb2RpbmdOYW1lLCBVUkwmJiBiYXNlVVJMLCB1aW50
NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlOjpsb2FkRGF0YUluRnJhbWUoSVBDOjpEYXRhUmVm
ZXJlbmNlJiYgZGF0YSwgU3RyaW5nJiYgTUlNRVR5cGUsIFN0cmluZyYmIGVuY29kaW5nTmFtZSwg
VVJMJiYgYmFzZVVSTCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgV2ViRnJhbWUq
IGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAg
aWYgKCFmcmFtZSkKQEAgLTE2MTQsNyArMTYxNCw3IEBAIHZvaWQgV2ViUGFnZTo6bmF2aWdhdGVU
b1BERkxpbmtXaXRoU2ltdWxhdGVkQ2xpY2soY29uc3QgU3RyaW5nJiB1cmwsIEludFBvaW50IGRv
CiAgICAgbWFpbkZyYW1lLT5sb2FkZXIoKS51cmxTZWxlY3RlZChtYWluRnJhbWVEb2N1bWVudC0+
Y29tcGxldGVVUkwodXJsKSwgZW1wdHlTdHJpbmcoKSwgbW91c2VFdmVudC5wdHIoKSwgTG9ja0hp
c3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgU2hvdWxkU2VuZFJlZmVycmVyOjpO
ZXZlclNlbmRSZWZlcnJlciwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90
QWxsb3cpOwogfQogCi12b2lkIFdlYlBhZ2U6OnN0b3BMb2FkaW5nRnJhbWUodWludDY0X3QgZnJh
bWVJRCkKK3ZvaWQgV2ViUGFnZTo6c3RvcExvYWRpbmdGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCkKIHsKICAgICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53
ZWJGcmFtZShmcmFtZUlEKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtMzIzNCw3ICszMjM0LDcgQEAg
dm9pZCBXZWJQYWdlOjpzZXRTZXNzaW9uSUQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAg
IG1fcGFnZS0+c2V0U2Vzc2lvbklEKHNlc3Npb25JRCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZGlk
UmVjZWl2ZVBvbGljeURlY2lzaW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVy
SUQsIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBQb2xpY3lBY3Rpb24gcG9saWN5
QWN0aW9uLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IERvd25sb2FkSUQmIGRvd25sb2Fk
SUQsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzKQordm9p
ZCBXZWJQYWdlOjpkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24oRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVy
LCBQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0
IERvd25sb2FkSUQmIGRvd25sb2FkSUQsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYg
d2Vic2l0ZVBvbGljaWVzKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlmICghZnJhbWUpCkBAIC0zMjQyLDcg
KzMyNDIsNyBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbih1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBsaXN0ZW5lcklELCBQbwogICAgIGZyYW1lLT5kaWRSZWNlaXZl
UG9saWN5RGVjaXNpb24obGlzdGVuZXJJRCwgaWRlbnRpZmllciwgcG9saWN5QWN0aW9uLCBuYXZp
Z2F0aW9uSUQsIGRvd25sb2FkSUQsIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7CiB9CiAKLXZv
aWQgV2ViUGFnZTo6Y29udGludWVXaWxsU3VibWl0Rm9ybSh1aW50NjRfdCBmcmFtZUlELCB1aW50
NjRfdCBsaXN0ZW5lcklEKQordm9pZCBXZWJQYWdlOjpjb250aW51ZVdpbGxTdWJtaXRGb3JtKEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBsaXN0ZW5lcklEKQogewogICAgIFdlYkZy
YW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwog
ICAgIGlmICghZnJhbWUpCkBAIC0zMzg0LDcgKzMzODQsNyBAQCB2b2lkIFdlYlBhZ2U6OnJ1bkph
dmFTY3JpcHRJbk1haW5GcmFtZVNjcmlwdFdvcmxkKGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib29s
IGZvcgogICAgIHJ1bkphdmFTY3JpcHQobWFpbldlYkZyYW1lKCksIHNjcmlwdCwgZm9yY2VVc2Vy
R2VzdHVyZSwgd29ybGROYW1lLCBjYWxsYmFja0lEKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpydW5K
YXZhU2NyaXB0SW5GcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHNjcmlwdCwg
Ym9vbCBmb3JjZVVzZXJHZXN0dXJlLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYlBh
Z2U6OnJ1bkphdmFTY3JpcHRJbkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBT
dHJpbmcmIHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBDYWxsYmFja0lEIGNhbGxiYWNr
SUQpCiB7CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2Vi
RnJhbWUoZnJhbWVJRCk7CiAgICAgQVNTRVJUKG1haW5XZWJGcmFtZSgpICE9IGZyYW1lKTsKQEAg
LTM0NDUsNyArMzQ0NSw3IEBAIHZvaWQgV2ViUGFnZTo6Z2V0U2VsZWN0aW9uT3JDb250ZW50c0Fz
U3RyaW5nKENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OlN0cmluZ0NhbGxiYWNrKHJlc3VsdFN0cmluZywgY2FsbGJhY2tJRCkpOwogfQogCi12
b2lkIFdlYlBhZ2U6OmdldFNvdXJjZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENhbGxiYWNr
SUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6Z2V0U291cmNlRm9yRnJhbWUoRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBTdHJpbmcgcmVz
dWx0U3RyaW5nOwogICAgIGlmIChXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS53ZWJGcmFtZShmcmFtZUlEKSkKQEAgLTM0NTQsNyArMzQ1NCw3IEBAIHZvaWQgV2ViUGFn
ZTo6Z2V0U291cmNlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ2FsbGJhY2tJRCBjYWxsYmFj
a0lEKQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3RyaW5nQ2FsbGJhY2socmVz
dWx0U3RyaW5nLCBjYWxsYmFja0lEKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6Z2V0TWFpblJlc291
cmNlRGF0YU9mRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQor
dm9pZCBXZWJQYWdlOjpnZXRNYWluUmVzb3VyY2VEYXRhT2ZGcmFtZShGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIFJlZlB0cjxTaGFyZWRCdWZm
ZXI+IGJ1ZmZlcjsKICAgICBpZiAoV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkud2ViRnJhbWUoZnJhbWVJRCkpIHsKQEAgLTM0ODUsNyArMzQ4NSw3IEBAIHN0YXRpYyBS
ZWZQdHI8U2hhcmVkQnVmZmVyPiByZXNvdXJjZURhdGFGb3JGcmFtZShGcmFtZSogZnJhbWUsIGNv
bnN0IFVSTCYgcmVzb3VyCiAgICAgcmV0dXJuICZzdWJyZXNvdXJjZS0+ZGF0YSgpOwogfQogCi12
b2lkIFdlYlBhZ2U6OmdldFJlc291cmNlRGF0YUZyb21GcmFtZSh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBTdHJpbmcmIHJlc291cmNlVVJMU3RyaW5nLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2
b2lkIFdlYlBhZ2U6OmdldFJlc291cmNlRGF0YUZyb21GcmFtZShGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgY29uc3QgU3RyaW5nJiByZXNvdXJjZVVSTFN0cmluZywgQ2FsbGJhY2tJRCBjYWxsYmFj
a0lEKQogewogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlcjsKICAgICBpZiAoYXV0byog
ZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSkgewpAQCAt
MzQ5OSw3ICszNDk5LDcgQEAgdm9pZCBXZWJQYWdlOjpnZXRSZXNvdXJjZURhdGFGcm9tRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiByZXNvdXJjZVUKICAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkRhdGFDYWxsYmFjayhkYXRhUmVmZXJlbmNlLCBjYWxsYmFja0lE
KSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6Z2V0V2ViQXJjaGl2ZU9mRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdlOjpnZXRXZWJBcmNoaXZl
T2ZGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQog
ewogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IGRhdGE7CkBA
IC0zODAyLDEzICszODAyLDEzIEBAIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyKiBXZWJQYWdlOjpmdWxs
U2NyZWVuTWFuYWdlcigpCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdlOjphZGRDb25zb2xlTWVz
c2FnZSh1aW50NjRfdCBmcmFtZUlELCBNZXNzYWdlU291cmNlIG1lc3NhZ2VTb3VyY2UsIE1lc3Nh
Z2VMZXZlbCBtZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdWludDY0X3QgcmVx
dWVzdElEKQordm9pZCBXZWJQYWdlOjphZGRDb25zb2xlTWVzc2FnZShGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgTWVzc2FnZVNvdXJjZSBtZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwgbWVzc2Fn
ZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVpbnQ2NF90IHJlcXVlc3RJRCkKIHsKICAg
ICBpZiAoYXV0byogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFt
ZUlEKSkKICAgICAgICAgZnJhbWUtPmFkZENvbnNvbGVNZXNzYWdlKG1lc3NhZ2VTb3VyY2UsIG1l
c3NhZ2VMZXZlbCwgbWVzc2FnZSwgcmVxdWVzdElEKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpzZW5k
Q1NQVmlvbGF0aW9uUmVwb3J0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVSTCYgcmVwb3J0VVJM
LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVwb3J0RGF0YSkKK3ZvaWQgV2ViUGFnZTo6c2Vu
ZENTUFZpb2xhdGlvblJlcG9ydChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgVVJMJiBy
ZXBvcnRVUkwsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXBvcnREYXRhKQogewogICAgIGF1
dG8gcmVwb3J0ID0gcmVwb3J0RGF0YS50YWtlRGF0YSgpOwogICAgIGlmICghcmVwb3J0KQpAQCAt
MzgxNyw3ICszODE3LDcgQEAgdm9pZCBXZWJQYWdlOjpzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBJUEMKICAgICAgICAgUGluZ0xv
YWRlcjo6c2VuZFZpb2xhdGlvblJlcG9ydCgqZnJhbWUtPmNvcmVGcmFtZSgpLCByZXBvcnRVUkws
IHJlcG9ydC5yZWxlYXNlTm9uTnVsbCgpLCBWaW9sYXRpb25SZXBvcnRUeXBlOjpDb250ZW50U2Vj
dXJpdHlQb2xpY3kpOwogfQogCi12b2lkIFdlYlBhZ2U6OmVucXVldWVTZWN1cml0eVBvbGljeVZp
b2xhdGlvbkV2ZW50KHVpbnQ2NF90IGZyYW1lSUQsIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnQ6OkluaXQmJiBldmVudEluaXQpCit2b2lkIFdlYlBhZ2U6OmVucXVldWVTZWN1cml0eVBvbGlj
eVZpb2xhdGlvbkV2ZW50KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTZWN1cml0eVBvbGljeVZp
b2xhdGlvbkV2ZW50OjpJbml0JiYgZXZlbnRJbml0KQogewogICAgIGF1dG8qIGZyYW1lID0gV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCFmcmFtZSkK
QEAgLTQ2ODAsNyArNDY4MCw3IEBAIHZvaWQgV2ViUGFnZTo6ZWZmZWN0aXZlQXBwZWFyYW5jZURp
ZENoYW5nZShib29sIHVzZURhcmtBcHBlYXJhbmNlLCBib29sIHVzZUVsZXZhCiB9CiAjZW5kaWYK
IAotdm9pZCBXZWJQYWdlOjpiZWdpblByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFBy
aW50SW5mbyYgcHJpbnRJbmZvKQordm9pZCBXZWJQYWdlOjpiZWdpblByaW50aW5nKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbykKIHsKICAgICBXZWJG
cmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsK
ICAgICBpZiAoIWZyYW1lKQpAQCAtNDcyNCw3ICs0NzI0LDcgQEAgdm9pZCBXZWJQYWdlOjplbmRQ
cmludGluZygpCiAgICAgfQogfQogCi12b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50
aW5nKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBDYWxsYmFj
a0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nKEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgQ2FsbGJh
Y2tJRCBjYWxsYmFja0lEKQogewogICAgIFZlY3RvcjxJbnRSZWN0PiByZXN1bHRQYWdlUmVjdHM7
CiAgICAgZG91YmxlIHJlc3VsdFRvdGFsU2NhbGVGYWN0b3JGb3JQcmludGluZyA9IDE7CkBAIC00
NzMzLDcgKzQ3MzMsNyBAQCB2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nKHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbgogICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6Q29tcHV0ZWRQYWdlc0NhbGxiYWNrKHJlc3VsdFBhZ2VSZWN0cywg
cmVzdWx0VG90YWxTY2FsZUZhY3RvckZvclByaW50aW5nLCBjb21wdXRlZFBhZ2VNYXJnaW4sIGNh
bGxiYWNrSUQpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZ0lt
cGwodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIFZlY3RvcjxX
ZWJDb3JlOjpJbnRSZWN0PiYgcmVzdWx0UGFnZVJlY3RzLCBkb3VibGUmIHJlc3VsdFRvdGFsU2Nh
bGVGYWN0b3JGb3JQcmludGluZywgRmxvYXRCb3hFeHRlbnQmIGNvbXB1dGVkUGFnZU1hcmdpbikK
K3ZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdJbXBsKEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgVmVjdG9yPFdlYkNvcmU6Oklu
dFJlY3Q+JiByZXN1bHRQYWdlUmVjdHMsIGRvdWJsZSYgcmVzdWx0VG90YWxTY2FsZUZhY3RvckZv
clByaW50aW5nLCBGbG9hdEJveEV4dGVudCYgY29tcHV0ZWRQYWdlTWFyZ2luKQogewogICAgIEFT
U0VSVChyZXN1bHRQYWdlUmVjdHMuaXNFbXB0eSgpKTsKIApAQCAtNDc1Niw3ICs0NzU2LDcgQEAg
dm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZ0ltcGwodWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgUHJpbnRJbmZvJiBwcmkKIH0KIAogI2lmIFBMQVRGT1JNKENPQ09BKQotdm9pZCBX
ZWJQYWdlOjpkcmF3UmVjdFRvSW1hZ2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZv
JiBwcmludEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFNpemUm
IGltYWdlU2l6ZSwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdlOjpkcmF3UmVj
dFRvSW1hZ2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJ
bmZvLCBjb25zdCBJbnRSZWN0JiByZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBpbWFnZVNp
emUsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBGcmFtZSogY29yZUZy
YW1lID0gZnJhbWUgPyBmcmFtZS0+Y29yZUZyYW1lKCkgOiAwOwpAQCAtNDgwNiwxNCArNDgwNiwx
NCBAQCB2b2lkIFdlYlBhZ2U6OmRyYXdSZWN0VG9JbWFnZSh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBQcmludEluZm8mIHByaW50SW5mbywgY29ucwogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6SW1hZ2VDYWxsYmFjayhoYW5kbGUsIGNhbGxiYWNrSUQpKTsKIH0KIAotdm9pZCBXZWJQ
YWdlOjpkcmF3UGFnZXNUb1BERih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHBy
aW50SW5mbywgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBDYWxsYmFja0lEIGNhbGxi
YWNrSUQpCit2b2lkIFdlYlBhZ2U6OmRyYXdQYWdlc1RvUERGKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90
IGNvdW50LCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgUmV0YWluUHRyPENGTXV0YWJs
ZURhdGFSZWY+IHBkZlBhZ2VEYXRhOwogICAgIGRyYXdQYWdlc1RvUERGSW1wbChmcmFtZUlELCBw
cmludEluZm8sIGZpcnN0LCBjb3VudCwgcGRmUGFnZURhdGEpOwogICAgIHNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6RGF0YUNhbGxiYWNrKHsgQ0ZEYXRhR2V0Qnl0ZVB0cihwZGZQYWdlRGF0
YS5nZXQoKSksIHN0YXRpY19jYXN0PHNpemVfdD4oQ0ZEYXRhR2V0TGVuZ3RoKHBkZlBhZ2VEYXRh
LmdldCgpKSkgfSwgY2FsbGJhY2tJRCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OmRyYXdQYWdlc1Rv
UERGSW1wbCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgdWlu
dDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBSZXRhaW5QdHI8Q0ZNdXRhYmxlRGF0YVJlZj4m
IHBkZlBhZ2VEYXRhKQordm9pZCBXZWJQYWdlOjpkcmF3UGFnZXNUb1BERkltcGwoRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCB1aW50MzJfdCBmaXJz
dCwgdWludDMyX3QgY291bnQsIFJldGFpblB0cjxDRk11dGFibGVEYXRhUmVmPiYgcGRmUGFnZURh
dGEpCiB7CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2Vi
RnJhbWUoZnJhbWVJRCk7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGZyYW1lID8gZnJhbWUtPmNv
cmVGcmFtZSgpIDogMDsKQEAgLTQ4NjQsNyArNDg2NCw3IEBAIHZvaWQgV2ViUGFnZTo6ZHJhd1Bh
Z2VzVG9QREZJbXBsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZv
LCB1CiB9CiAKICNlbGlmIFBMQVRGT1JNKEdUSykKLXZvaWQgV2ViUGFnZTo6ZHJhd1BhZ2VzRm9y
UHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIENh
bGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6ZHJhd1BhZ2VzRm9yUHJpbnRpbmco
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBDYWxs
YmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgYmVnaW5QcmludGluZyhmcmFtZUlELCBwcmludElu
Zm8pOwogICAgIGlmIChtX3ByaW50Q29udGV4dCAmJiBtX3ByaW50T3BlcmF0aW9uKSB7CkBAIC02
NTAyLDcgKzY1MDIsNyBAQCB2b2lkIFdlYlBhZ2U6OnNldElzU3VzcGVuZGVkKGJvb2wgc3VzcGVu
ZGVkKQogICAgIHN1c3BlbmRGb3JQcm9jZXNzU3dhcCgpOwogfQogCi12b2lkIFdlYlBhZ2U6OmZy
YW1lQmVjYW1lUmVtb3RlKHVpbnQ2NF90IGZyYW1lSUQsIEdsb2JhbEZyYW1lSWRlbnRpZmllciYm
IHJlbW90ZUZyYW1lSWRlbnRpZmllciwgR2xvYmFsV2luZG93SWRlbnRpZmllciYmIHJlbW90ZVdp
bmRvd0lkZW50aWZpZXIpCit2b2lkIFdlYlBhZ2U6OmZyYW1lQmVjYW1lUmVtb3RlKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBHbG9iYWxGcmFtZUlkZW50aWZpZXImJiByZW1vdGVGcmFtZUlkZW50
aWZpZXIsIEdsb2JhbFdpbmRvd0lkZW50aWZpZXImJiByZW1vdGVXaW5kb3dJZGVudGlmaWVyKQog
ewogICAgIFJlZlB0cjxXZWJGcmFtZT4gZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53
ZWJGcmFtZShmcmFtZUlEKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtNjUzNCwxMiArNjUzNCwxMiBA
QCB2b2lkIFdlYlBhZ2U6OmZyYW1lQmVjYW1lUmVtb3RlKHVpbnQ2NF90IGZyYW1lSUQsIEdsb2Jh
bEZyYW1lSWRlbnRpZmllciYmIHJlbW90ZQogfQogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURf
U1RBVElTVElDUykKLXZvaWQgV2ViUGFnZTo6aGFzU3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURv
bWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWlu
LCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlOjpoYXNTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxl
RG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21h
aW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVu
c3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpIYXNTdG9yYWdl
QWNjZXNzKHNlc3Npb25JRCgpLCBXVEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0b3BG
cmFtZURvbWFpbiksIGZyYW1lSUQsIG1fcGFnZUlEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwogfQogCi12b2lkIFdlYlBhZ2U6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxl
RG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21h
aW4sIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3Rv
cmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93
bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2U6OnJlcXVlc3RTdG9yYWdlQWNj
ZXNzKFJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWlu
JiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBXZWJDb3JlOjpTdG9y
YWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNv
bm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpSZXF1ZXN0U3RvcmFnZUFjY2VzcyhzZXNzaW9uSUQoKSwgV1RGTW92ZShz
dWJGcmFtZURvbWFpbiksIFdURk1vdmUodG9wRnJhbWVEb21haW4pLCBmcmFtZUlELCBtX3BhZ2VJ
RCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KQEAgLTY1NTUsNyArNjU1NSw3IEBA
IHZvaWQgV2ViUGFnZTo6d2FzTG9hZGVkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxlbnRSZXNv
dXJjZSgpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi12b2lkIFdl
YlBhZ2U6OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ModWludDY0
X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgb3JpZ2luLCBib29sIG1h
eVByb21wdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9u
UGVybWlzc2lvblN0YXRlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZTo6c2hv
dWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgb3JpZ2luLCBib29sIG1heVBy
b21wdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVy
bWlzc2lvblN0YXRlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBzZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlv
bkFuZE1vdGlvbkFjY2VzcyhmcmFtZUlELCBXVEZNb3ZlKG9yaWdpbiksIG1heVByb21wdCksIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA3MDk5MjcwMTQyNDNjMTEyOGZmNmZhYzllNGVhOTJkZDY1
MTIyYzZmLi4xZDk3MWY0YTMzODYxMWU5NDA5YjM0ZjFlODFkZWU1MGM3NjJmY2JkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0zNDYsOSArMzQ2LDkg
QEAgcHVibGljOgogICAgIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyKiBmdWxsU2NyZWVuTWFuYWdlcigp
OwogI2VuZGlmCiAKLSAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKHVpbnQ2NF90IGZyYW1lSUQs
IE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiwgdWludDY0X3QgcmVx
dWVzdElEID0gMCk7Ci0gICAgdm9pZCBzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYpOwot
ICAgIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQodWludDY0X3QgZnJh
bWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmKTsKKyAg
ICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgTWVzc2Fn
ZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmLCB1aW50NjRfdCByZXF1ZXN0SUQg
PSAwKTsKKyAgICB2b2lkIHNlbmRDU1BWaW9sYXRpb25SZXBvcnQoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmKTsK
KyAgICB2b2lkIGVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5p
dCYmKTsKIAogICAgIC8vIC0tIENhbGxlZCBieSB0aGUgRHJhd2luZ0FyZWEuCiAgICAgLy8gRklY
TUU6IFdlIGNvdWxkIGdlbmVyaWNpemUgdGhlc2UgaW50byBhIERyYXdpbmdBcmVhIGNsaWVudCBp
bnRlcmZhY2UuIFdvdWxkIHRoYXQgYmUgYmVuZWZpY2lhbD8KQEAgLTUyMiw3ICs1MjIsNyBAQCBw
dWJsaWM6CiAgICAgV2ViQ29yZTo6Q29sb3IgdW5kZXJsYXlDb2xvcigpIGNvbnN0IHsgcmV0dXJu
IG1fdW5kZXJsYXlDb2xvcjsgfQogCiAgICAgdm9pZCBzdG9wTG9hZGluZygpOwotICAgIHZvaWQg
c3RvcExvYWRpbmdGcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsKKyAgICB2b2lkIHN0b3BMb2FkaW5n
RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICAgICBib29sIGRlZmVyc0xvYWRpbmco
KSBjb25zdDsKICAgICB2b2lkIHNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlckxvYWRpbmcpOwog
CkBAIC03NjksNyArNzY5LDcgQEAgcHVibGljOgogICAgIHZvaWQgY29uZmlybUNvbXBvc2l0aW9u
KGNvbnN0IFN0cmluZyYgdGV4dCwgaW50NjRfdCBzZWxlY3Rpb25TdGFydCwgaW50NjRfdCBzZWxl
Y3Rpb25MZW5ndGgpOwogICAgIHZvaWQgY2FuY2VsQ29tcG9zaXRpb24oKTsKIAotICAgIHZvaWQg
Y29sbGFwc2VTZWxlY3Rpb25JbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpOworICAgIHZvaWQgY29s
bGFwc2VTZWxlY3Rpb25JbkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAgICAgdm9p
ZCBzaG93RW1vamlQaWNrZXIoV2ViQ29yZTo6RnJhbWUmKTsKIAogICAgIHZvaWQgZ2V0Q2VudGVy
Rm9yWm9vbUdlc3R1cmUoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNlbnRlckluVmlld0Nvb3Jk
aW5hdGVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkludFBvaW50JiYpPiYmKTsK
QEAgLTg2MiwyMyArODYyLDIzIEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpEcmFnU291cmNlQWN0
aW9uIGFsbG93ZWREcmFnU291cmNlQWN0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dlZERy
YWdTb3VyY2VBY3Rpb25zOyB9CiAjZW5kaWYKIAotICAgIHZvaWQgYmVnaW5QcmludGluZyh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mKTsKKyAgICB2b2lkIGJlZ2luUHJpbnRpbmco
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mKTsKICAgICB2b2lkIGVu
ZFByaW50aW5nKCk7Ci0gICAgdm9pZCBjb21wdXRlUGFnZXNGb3JQcmludGluZyh1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBQcmludEluZm8mLCBDYWxsYmFja0lEKTsKLSAgICB2b2lkIGNvbXB1dGVQ
YWdlc0ZvclByaW50aW5nSW1wbCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mLCBW
ZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4mIHBhZ2VSZWN0cywgZG91YmxlJiB0b3RhbFNjYWxlRmFj
dG9yLCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgY29tcHV0ZWRNYXJnaW4pOworICAgIHZvaWQg
Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQ
cmludEluZm8mLCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5n
SW1wbChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYsIFZlY3RvcjxX
ZWJDb3JlOjpJbnRSZWN0PiYgcGFnZVJlY3RzLCBkb3VibGUmIHRvdGFsU2NhbGVGYWN0b3IsIFdl
YkNvcmU6OkZsb2F0Qm94RXh0ZW50JiBjb21wdXRlZE1hcmdpbik7CiAKICNpZiBQTEFURk9STShD
T0NPQSkKLSAgICB2b2lkIGRyYXdSZWN0VG9JbWFnZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQ
cmludEluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYsIENhbGxiYWNrSUQpOwotICAgIHZvaWQgZHJhd1BhZ2VzVG9QREYodWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgUHJpbnRJbmZvJiwgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBDYWxs
YmFja0lEKTsKLSAgICB2b2lkIGRyYXdQYWdlc1RvUERGSW1wbCh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBQcmludEluZm8mLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIFJldGFpblB0
cjxDRk11dGFibGVEYXRhUmVmPiYgcGRmUGFnZURhdGEpOworICAgIHZvaWQgZHJhd1JlY3RUb0lt
YWdlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBDYWxsYmFja0lEKTsKKyAg
ICB2b2lkIGRyYXdQYWdlc1RvUERGKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJp
bnRJbmZvJiwgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBDYWxsYmFja0lEKTsKKyAg
ICB2b2lkIGRyYXdQYWdlc1RvUERGSW1wbChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0
IFByaW50SW5mbyYsIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgUmV0YWluUHRyPENG
TXV0YWJsZURhdGFSZWY+JiBwZGZQYWdlRGF0YSk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCi0gICAgdm9pZCBjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERih1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mLCBDYWxsYmFja0lELCBNZXNzYWdlczo6
V2ViUGFnZTo6Q29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREY6OkRlbGF5ZWRSZXBs
eSYmKTsKKyAgICB2b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgQ2FsbGJhY2tJRCwgTWVzc2Fn
ZXM6OldlYlBhZ2U6OkNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGOjpEZWxheWVk
UmVwbHkmJik7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykKLSAgICB2b2lkIGRyYXdQYWdl
c0ZvclByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIENhbGxiYWNr
SUQpOworICAgIHZvaWQgZHJhd1BhZ2VzRm9yUHJpbnRpbmcoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBjb25zdCBQcmludEluZm8mLCBDYWxsYmFja0lEKTsKICAgICB2b2lkIGRpZEZpbmlzaFBy
aW50T3BlcmF0aW9uKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBDYWxsYmFja0lEKTsK
ICNlbmRpZgogCkBAIC0xMTMxLDEzICsxMTMxLDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIGZsdXNo
UGVuZGluZ0VkaXRvclN0YXRlVXBkYXRlKCk7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9T
VEFUSVNUSUNTKQotICAgIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHRv
cEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKTsKLSAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYg
dG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
V2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQ
cm9tcHRXYXNTaG93bik+JiYpOworICAgIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiYmIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3Mo
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVk
LCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKTsKICAgICB2b2lkIHdh
c0xvYWRlZFdpdGhEYXRhVHJhbnNmZXJGcm9tUHJldmFsZW50UmVzb3VyY2UoKTsKICNlbmRpZgog
CiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSAgICB2b2lkIHNob3VsZEFsbG93RGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ModWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiYsIGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYm
KTsKKyAgICB2b2lkIHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3Mo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwg
Ym9vbCBtYXlQcm9tcHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RGV2aWNlT3Jp
ZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+JiYpOwogI2VuZGlmCiAKICAgICB2b2lk
IHNob3dTaGFyZVNoZWV0KFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKTsKQEAgLTEzNTYsOCArMTM1Niw4IEBA
IHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wgc2Nyb2xsKFdlYkNvcmU6OlBhZ2UqLCBXZWJDb3Jl
OjpTY3JvbGxEaXJlY3Rpb24sIFdlYkNvcmU6OlNjcm9sbEdyYW51bGFyaXR5KTsKICAgICBzdGF0
aWMgYm9vbCBsb2dpY2FsU2Nyb2xsKFdlYkNvcmU6OlBhZ2UqLCBXZWJDb3JlOjpTY3JvbGxMb2dp
Y2FsRGlyZWN0aW9uLCBXZWJDb3JlOjpTY3JvbGxHcmFudWxhcml0eSk7CiAKLSAgICB2b2lkIGxv
YWRVUkxJbkZyYW1lKFVSTCYmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCB1aW50NjRfdCBmcmFt
ZUlEKTsKLSAgICB2b2lkIGxvYWREYXRhSW5GcmFtZShJUEM6OkRhdGFSZWZlcmVuY2UmJiwgU3Ry
aW5nJiYgTUlNRVR5cGUsIFN0cmluZyYmIGVuY29kaW5nTmFtZSwgVVJMJiYgYmFzZVVSTCwgdWlu
dDY0X3QgZnJhbWVJRCk7CisgICAgdm9pZCBsb2FkVVJMSW5GcmFtZShVUkwmJiwgY29uc3QgU3Ry
aW5nJiByZWZlcnJlciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGxvYWRE
YXRhSW5GcmFtZShJUEM6OkRhdGFSZWZlcmVuY2UmJiwgU3RyaW5nJiYgTUlNRVR5cGUsIFN0cmlu
ZyYmIGVuY29kaW5nTmFtZSwgVVJMJiYgYmFzZVVSTCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
KTsKIAogICAgIGVudW0gY2xhc3MgV2FzUmVzdG9yZWRCeUFQSVJlcXVlc3QgeyBObywgWWVzIH07
CiAgICAgdm9pZCByZXN0b3JlU2Vzc2lvbkludGVybmFsKGNvbnN0IFZlY3RvcjxCYWNrRm9yd2Fy
ZExpc3RJdGVtU3RhdGU+JiwgV2FzUmVzdG9yZWRCeUFQSVJlcXVlc3QsIFdlYkJhY2tGb3J3YXJk
TGlzdFByb3h5OjpPdmVyd3JpdGVFeGlzdGluZ0l0ZW0pOwpAQCAtMTM4OSwxNiArMTM4OSwxNiBA
QCBwcml2YXRlOgogI2lmIEVOQUJMRShNSFRNTCkKICAgICB2b2lkIGdldENvbnRlbnRzQXNNSFRN
TERhdGEoQ2FsbGJhY2tJRCk7CiAjZW5kaWYKLSAgICB2b2lkIGdldE1haW5SZXNvdXJjZURhdGFP
ZkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENhbGxiYWNrSUQpOwotICAgIHZvaWQgZ2V0UmVzb3Vy
Y2VEYXRhRnJvbUZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VV
UkwsIENhbGxiYWNrSUQpOworICAgIHZvaWQgZ2V0TWFpblJlc291cmNlRGF0YU9mRnJhbWUoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIGdldFJlc291cmNl
RGF0YUZyb21GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgcmVz
b3VyY2VVUkwsIENhbGxiYWNrSUQpOwogICAgIHZvaWQgZ2V0UmVuZGVyVHJlZUV4dGVybmFsUmVw
cmVzZW50YXRpb24oQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBnZXRTZWxlY3Rpb25PckNvbnRlbnRz
QXNTdHJpbmcoQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBnZXRTZWxlY3Rpb25Bc1dlYkFyY2hpdmVE
YXRhKENhbGxiYWNrSUQpOwotICAgIHZvaWQgZ2V0U291cmNlRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBnZXRXZWJBcmNoaXZlT2ZGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIGdldFNvdXJjZUZvckZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBnZXRXZWJBcmNoaXZl
T2ZGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENhbGxiYWNrSUQpOwogICAgIHZvaWQg
cnVuSmF2YVNjcmlwdChXZWJGcmFtZSosIGNvbnN0IFN0cmluZyYsIGJvb2wgZm9yY2VVc2VyR2Vz
dHVyZSwgY29uc3QgT3B0aW9uYWw8U3RyaW5nPiYgd29ybGROYW1lLCBDYWxsYmFja0lEKTsKICAg
ICB2b2lkIHJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZVNjcmlwdFdvcmxkKGNvbnN0IFN0cmluZyYs
IGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgY29uc3QgT3B0aW9uYWw8U3RyaW5nPiYgd29ybGROYW1l
LCBDYWxsYmFja0lEKTsKLSAgICB2b2lkIHJ1bkphdmFTY3JpcHRJbkZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFN0cmluZyYsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgQ2FsbGJhY2tJRCk7
CisgICAgdm9pZCBydW5KYXZhU2NyaXB0SW5GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgQ2FsbGJhY2tJRCk7CiAgICAg
dm9pZCBmb3JjZVJlcGFpbnQoQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCB0YWtlU25hcHNob3QoV2Vi
Q29yZTo6SW50UmVjdCBzbmFwc2hvdFJlY3QsIFdlYkNvcmU6OkludFNpemUgYml0bWFwU2l6ZSwg
dWludDMyX3Qgb3B0aW9ucywgQ2FsbGJhY2tJRCk7CiAKQEAgLTE0MTIsOCArMTQxMiw4IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBwYXJlbnRQcm9jZXNzSGFzU2VydmljZVdvcmtlckVudGl0bGVtZW50
KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogI2VuZGlmCiAKLSAgICB2b2lkIGRpZFJlY2VpdmVQ
b2xpY3lEZWNpc2lvbih1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBjb25zdCBEb3dubG9hZElEJiwgT3B0aW9uYWw8V2Vic2l0ZVBvbGlj
aWVzRGF0YT4mJik7Ci0gICAgdm9pZCBjb250aW51ZVdpbGxTdWJtaXRGb3JtKHVpbnQ2NF90IGZy
YW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQpOworICAgIHZvaWQgZGlkUmVjZWl2ZVBvbGljeURl
Y2lzaW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24sIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgY29uc3QgRG93bmxvYWRJRCYsIE9wdGlvbmFsPFdlYnNpdGVQb2xp
Y2llc0RhdGE+JiYpOworICAgIHZvaWQgY29udGludWVXaWxsU3VibWl0Rm9ybShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwogICAgIHZvaWQgc2V0VXNlckFn
ZW50KGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgc2V0Q3VzdG9tVGV4dEVuY29kaW5nTmFtZShj
b25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHN1c3BlbmRBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0
aW9ucygpOwpAQCAtMTQzMSw3ICsxNDMxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHdpbmRvd0Fu
ZFZpZXdGcmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgd2luZG93RnJhbWVJ
blNjcmVlbkNvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHdpbmRvd0ZyYW1l
SW5VbmZsaXBwZWRTY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB2
aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBh
Y2Nlc3NpYmlsaXR5Vmlld0Nvb3JkaW5hdGVzKTsKIAogICAgIFJldGFpblB0cjxQREZEb2N1bWVu
dD4gcGRmRG9jdW1lbnRGb3JQcmludGluZ0ZyYW1lKFdlYkNvcmU6OkZyYW1lKik7Ci0gICAgdm9p
ZCBjb21wdXRlUGFnZXNGb3JQcmludGluZ1BERkRvY3VtZW50KHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFByaW50SW5mbyYsIFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiYgcmVzdWx0UGFnZVJlY3Rz
KTsKKyAgICB2b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERGRG9jdW1lbnQoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mLCBWZWN0b3I8V2ViQ29yZTo6SW50UmVj
dD4mIHJlc3VsdFBhZ2VSZWN0cyk7CiAgICAgdm9pZCBkcmF3UERGRG9jdW1lbnQoQ0dDb250ZXh0
UmVmLCBQREZEb2N1bWVudCAqLCBjb25zdCBQcmludEluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0Jik7CiAgICAgdm9pZCBkcmF3UGFnZXNUb1BERkZyb21QREZEb2N1bWVudChDR0NvbnRleHRS
ZWYsIFBERkRvY3VtZW50ICosIGNvbnN0IFByaW50SW5mbyYsIHVpbnQzMl90IGZpcnN0LCB1aW50
MzJfdCBjb3VudCk7CiAjZW5kaWYKQEAgLTE1ODQsNyArMTU4NCw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCB2b2ljZXNEaWRDaGFuZ2UoKTsKICNlbmRpZgogCi0gICAgdm9pZCBmcmFtZUJlY2FtZVJl
bW90ZSh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpHbG9iYWxGcmFtZUlkZW50aWZpZXImJiBy
ZW1vdGVGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXImJiBy
ZW1vdGVXaW5kb3dJZGVudGlmaWVyKTsKKyAgICB2b2lkIGZyYW1lQmVjYW1lUmVtb3RlKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6R2xvYmFsRnJhbWVJZGVudGlmaWVyJiYgcmVt
b3RlRnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlmaWVyJiYgcmVt
b3RlV2luZG93SWRlbnRpZmllcik7CiAKICAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lSGFuZGxl
cih1aW50NjRfdCBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNjaGVtZSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmlu
ZGV4IGE1MmUyNTFkMjVkYTZkODg3MWIyNzJkNzE0MjI5MTMyOWM1ZjI0MzguLmJhN2Y2NGJmZGNi
Y2NmOGFiMmMzM2Y2YzI3OGI0NmQxNTE4ODhmMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMjcsOSArMjcsOSBA
QCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIFNldEJhY2tncm91
bmRDb2xvcihPcHRpb25hbDxXZWJDb3JlOjpDb2xvcj4gY29sb3IpCiAKLSAgICBBZGRDb25zb2xl
TWVzc2FnZSh1aW50NjRfdCBmcmFtZUlELCBlbnVtOnVpbnQ4X3QgSlNDOjpNZXNzYWdlU291cmNl
IG1lc3NhZ2VTb3VyY2UsIGVudW06dWludDhfdCBKU0M6Ok1lc3NhZ2VMZXZlbCBtZXNzYWdlTGV2
ZWwsIFN0cmluZyBtZXNzYWdlLCB1aW50NjRfdCByZXF1ZXN0SUQpCi0gICAgU2VuZENTUFZpb2xh
dGlvblJlcG9ydCh1aW50NjRfdCBmcmFtZUlELCBVUkwgcmVwb3J0VVJMLCBJUEM6OkZvcm1EYXRh
UmVmZXJlbmNlIHJlcG9ydERhdGEpCi0gICAgRW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnQodWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25F
dmVudDo6SW5pdCBldmVudEluaXQpCisgICAgQWRkQ29uc29sZU1lc3NhZ2UoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIGVudW06dWludDhfdCBKU0M6Ok1lc3NhZ2VTb3VyY2UgbWVz
c2FnZVNvdXJjZSwgZW51bTp1aW50OF90IEpTQzo6TWVzc2FnZUxldmVsIG1lc3NhZ2VMZXZlbCwg
U3RyaW5nIG1lc3NhZ2UsIHVpbnQ2NF90IHJlcXVlc3RJRCkKKyAgICBTZW5kQ1NQVmlvbGF0aW9u
UmVwb3J0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBVUkwgcmVwb3J0VVJMLCBJ
UEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcG9ydERhdGEpCisgICAgRW5xdWV1ZVNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNv
cmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQgZXZlbnRJbml0KQogCiAgICAg
VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KCkg
LT4gKGJvb2wgaGFuZGxlZCkgU3luY2hyb25vdXMKIApAQCAtMTYyLDggKzE2Miw4IEBAIEdlbmVy
YXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGlj
RWRpdGluZ0NvbW1hbmRUeXBlCiAgICAgR29Ub0JhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIHN0cnVjdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyIGJhY2tG
b3J3YXJkSXRlbUlELCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6RnJhbWVMb2FkVHlwZSBiYWNrRm9y
d2FyZFR5cGUsIGVudW06Ym9vbCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQg
c2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBPcHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xp
Y2llc0RhdGE+IHdlYnNpdGVQb2xpY2llcykKICAgICBUcnlSZXN0b3JlU2Nyb2xsUG9zaXRpb24o
KQogCi0gICAgTG9hZFVSTEluRnJhbWUoVVJMIHVybCwgU3RyaW5nIHJlZmVycmVyLCB1aW50NjRf
dCBmcmFtZUlEKQotICAgIExvYWREYXRhSW5GcmFtZShJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSwg
U3RyaW5nIE1JTUVUeXBlLCBTdHJpbmcgZW5jb2RpbmdOYW1lLCBVUkwgYmFzZVVSTCwgdWludDY0
X3QgZnJhbWVJRCkKKyAgICBMb2FkVVJMSW5GcmFtZShVUkwgdXJsLCBTdHJpbmcgcmVmZXJyZXIs
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQorICAgIExvYWREYXRhSW5GcmFtZShJ
UEM6OkRhdGFSZWZlcmVuY2UgZGF0YSwgU3RyaW5nIE1JTUVUeXBlLCBTdHJpbmcgZW5jb2RpbmdO
YW1lLCBVUkwgYmFzZVVSTCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAgICAg
TG9hZFJlcXVlc3Qoc3RydWN0IFdlYktpdDo6TG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnMp
CiAgICAgTG9hZERhdGEoc3RydWN0IFdlYktpdDo6TG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRl
cnMpCiAgICAgTG9hZEFsdGVybmF0ZUhUTUwoc3RydWN0IFdlYktpdDo6TG9hZFBhcmFtZXRlcnMg
bG9hZFBhcmFtZXRlcnMpCkBAIC0xNzMsNyArMTczLDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0
aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5
cGUKICAgICBSZWxvYWQodWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50MzJfdCByZWxvYWRPcHRp
b25zLCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFu
ZGxlKQogICAgIFN0b3BMb2FkaW5nKCkKIAotICAgIFN0b3BMb2FkaW5nRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCkKKyAgICBTdG9wTG9hZGluZ0ZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlEKQogICAgIAogICAgIFJlc3RvcmVTZXNzaW9uKFZlY3RvcjxXZWJLaXQ6OkJhY2tGb3J3
YXJkTGlzdEl0ZW1TdGF0ZT4gaXRlbVN0YXRlcykKICAgICBVcGRhdGVCYWNrRm9yd2FyZExpc3RG
b3JSZWF0dGFjaChWZWN0b3I8V2ViS2l0OjpCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGU+IGl0ZW1T
dGF0ZXMpCkBAIC0xODIsOCArMTgyLDggQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFu
ZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBE
aWRSZW1vdmVCYWNrRm9yd2FyZEl0ZW0oc3RydWN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlk
ZW50aWZpZXIgYmFja0ZvcndhcmRJdGVtSUQpCiAKICAgICBVcGRhdGVXZWJzaXRlUG9saWNpZXMo
c3RydWN0IFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0YSB3ZWJzaXRlUG9saWNpZXMpCi0gICAg
RGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGxpc3Rl
bmVySUQsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZp
ZXIsIGVudW06dWludDhfdCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBPcHRpb25h
bDxXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQb2xpY2llcykKLSAgICBDb250
aW51ZVdpbGxTdWJtaXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQp
CisgICAgRGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZp
ZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UG9saWN5QWN0
aW9uIHBvbGljeUFjdGlvbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJLaXQ6OkRvd25sb2Fk
SUQgZG93bmxvYWRJRCwgT3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJz
aXRlUG9saWNpZXMpCisgICAgQ29udGludWVXaWxsU3VibWl0Rm9ybShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCkKIAogICAgIENsZWFyU2VsZWN0
aW9uKCkKICAgICBSZXN0b3JlU2VsZWN0aW9uSW5Gb2N1c2VkRWRpdGFibGVFbGVtZW50KCkKQEAg
LTE5NiwxNSArMTk2LDE1IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1
aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAjaWYgRU5BQkxFKE1I
VE1MKQogICAgIEdldENvbnRlbnRzQXNNSFRNTERhdGEoV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxi
YWNrSUQpCiAjZW5kaWYKLSAgICBHZXRNYWluUmVzb3VyY2VEYXRhT2ZGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKLSAgICBHZXRSZXNvdXJjZURh
dGFGcm9tRnJhbWUodWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHJlc291cmNlVVJMLCBXZWJLaXQ6
OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBHZXRNYWluUmVzb3VyY2VEYXRhT2ZGcmFtZShX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxi
YWNrSUQpCisgICAgR2V0UmVzb3VyY2VEYXRhRnJvbUZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBTdHJpbmcgcmVzb3VyY2VVUkwsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxs
YmFja0lEKQogICAgIEdldFJlbmRlclRyZWVFeHRlcm5hbFJlcHJlc2VudGF0aW9uKFdlYktpdDo6
Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIEdldFNlbGVjdGlvbk9yQ29udGVudHNBc1N0cmlu
ZyhXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBHZXRTZWxlY3Rpb25Bc1dlYkFy
Y2hpdmVEYXRhKFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIEdldFNvdXJjZUZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQot
ICAgIEdldFdlYkFyY2hpdmVPZkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6Q2FsbGJh
Y2tJRCBjYWxsYmFja0lEKQorICAgIEdldFNvdXJjZUZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBHZXRX
ZWJBcmNoaXZlT2ZGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViS2l0
OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgUnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lU2Ny
aXB0V29ybGQoU3RyaW5nIHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBPcHRpb25hbDxT
dHJpbmc+IHdvcmxkTmFtZSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCi0gICAgUnVu
SmF2YVNjcmlwdEluRnJhbWUodWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHNjcmlwdCwgYm9vbCBm
b3JjZVVzZXJHZXN0dXJlLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBSdW5K
YXZhU2NyaXB0SW5GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5n
IHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJh
Y2tJRCkKICAgICBGb3JjZVJlcGFpbnQoV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAK
ICAgICBTZWxlY3RBbGwoKQpAQCAtMzgwLDE4ICszODAsMTggQEAgR2VuZXJhdGVTeW50aGV0aWNF
ZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFu
ZFR5cGUKICAgICBEaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2
NF90IG5vdGlmaWNhdGlvbklELCBib29sIGFsbG93ZWQpCiAKICAgICAjIFByaW50aW5nLgotICAg
IEJlZ2luUHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZv
IHByaW50SW5mbykKKyAgICBCZWdpblByaW50aW5nKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvKQogICAgIEVuZFByaW50
aW5nKCkKLSAgICBDb21wdXRlUGFnZXNGb3JQcmludGluZyh1aW50NjRfdCBmcmFtZUlELCBzdHJ1
Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJh
Y2tJRCkKKyAgICBDb21wdXRlUGFnZXNGb3JQcmludGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2ViS2l0OjpD
YWxsYmFja0lEIGNhbGxiYWNrSUQpCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgRHJhd1JlY3RU
b0ltYWdlKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludElu
Zm8sIFdlYkNvcmU6OkludFJlY3QgcmVjdCwgV2ViQ29yZTo6SW50U2l6ZSBpbWFnZVNpemUsIFdl
YktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIERyYXdQYWdlc1RvUERGKHVpbnQ2NF90
IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIHVpbnQzMl90IGZp
cnN0LCB1aW50MzJfdCBjb3VudCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCisgICAg
RHJhd1JlY3RUb0ltYWdlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3Qg
V2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCBXZWJDb3JlOjpJbnRSZWN0IHJlY3QsIFdlYkNv
cmU6OkludFNpemUgaW1hZ2VTaXplLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAg
ICBEcmF3UGFnZXNUb1BERihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0
IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNv
dW50LCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQotICAgIENvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKHVpbnQ2NF90IGZy
YW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIFdlYktpdDo6Q2FsbGJh
Y2tJRCBjYWxsYmFja0lEKSAtPiAodWludDMyX3QgcGFnZUNvdW50KSBTeW5jaHJvbm91cworICAg
IENvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCBXZWJLaXQ6
OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkgLT4gKHVpbnQzMl90IHBhZ2VDb3VudCkgU3luY2hyb25v
dXMKICNlbmRpZgogI2VuZGlmCiAjaWYgUExBVEZPUk0oR1RLKQotICAgIERyYXdQYWdlc0ZvclBy
aW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludElu
Zm8sIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIERyYXdQYWdlc0ZvclByaW50
aW5nKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmlu
dEluZm8gcHJpbnRJbmZvLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICNlbmRpZgog
CiAgICAgIyBNZWRpYQpAQCAtNDEzLDcgKzQxMyw3IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGlu
Z0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBl
CiAgICAgQ29uZmlybUNvbXBvc2l0aW9uKFN0cmluZyB0ZXh0LCBpbnQ2NF90IHNlbGVjdGlvblN0
YXJ0LCBpbnQ2NF90IHNlbGVjdGlvbkxlbmd0aCkKICAgICBDYW5jZWxDb21wb3NpdGlvbigpCiAK
LSAgICBDb2xsYXBzZVNlbGVjdGlvbkluRnJhbWUodWludDY0X3QgZnJhbWVJRCkKKyAgICBDb2xs
YXBzZVNlbGVjdGlvbkluRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAK
ICAgICBHZXRDZW50ZXJGb3Jab29tR2VzdHVyZShXZWJDb3JlOjpJbnRQb2ludCBjZW50ZXJJblZp
ZXdDb29yZGluYXRlcykgLT4gKFdlYkNvcmU6OkludFBvaW50IGNlbnRlcikgU3luY2hyb25vdXMK
ICNlbmRpZgpAQCAtNTM2LDcgKzUzNiw3IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1h
bmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAgICAg
RGlkUmVjZWl2ZVBhc3N3b3JkRm9yUXVpY2tMb29rRG9jdW1lbnQoU3RyaW5nIHBhc3N3b3JkKQog
I2VuZGlmCiAKLSAgICBGcmFtZUJlY2FtZVJlbW90ZSh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3Qg
V2ViQ29yZTo6R2xvYmFsRnJhbWVJZGVudGlmaWVyIHJlbW90ZUZyYW1lSWRlbnRpZmllciwgc3Ry
dWN0IFdlYkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXIgcmVtb3RlV2luZG93SWRlbnRpZmll
cikKKyAgICBGcmFtZUJlY2FtZVJlbW90ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgc3RydWN0IFdlYkNvcmU6Okdsb2JhbEZyYW1lSWRlbnRpZmllciByZW1vdGVGcmFtZUlkZW50
aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlmaWVyIHJlbW90ZVdpbmRv
d0lkZW50aWZpZXIpCiAKICAgICBSZWdpc3RlclVSTFNjaGVtZUhhbmRsZXIodWludDY0X3QgaWRl
bnRpZmllciwgU3RyaW5nIHNjaGVtZSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCBlNGM2NDI3MWNjZjg5M2IzNTliOTQ1
NzljOGIyZDE3OTFkZGE5Y2I5Li4yZGIwZWI2YmJhYTQ1NzhiZjZhNjk1Y2U0MDAyZDc3MzY1MTZi
ZDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2Vi
UGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2Vi
UGFnZUlPUy5tbQpAQCAtNTUxLDcgKzU1MSw3IEBAIHZvaWQgV2ViUGFnZTo6YWNjZXB0c0ZpcnN0
TW91c2UoaW50LCBjb25zdCBXZWJLaXQ6OldlYk1vdXNlRXZlbnQmLCBDb21wbGV0aW9uSGFuCiAg
ICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwogfQogCi12b2lkIFdlYlBhZ2U6OmNvbXB1dGVQ
YWdlc0ZvclByaW50aW5nUERGRG9jdW1lbnQodWludDY0X3QsIGNvbnN0IFByaW50SW5mbyYsIFZl
Y3RvcjxJbnRSZWN0PiYpCit2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERG
RG9jdW1lbnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mLCBWZWN0
b3I8SW50UmVjdD4mKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkBAIC0zNzM5LDcgKzM3
MzksNyBAQCB2b2lkIFdlYlBhZ2U6OmRpc3BhdGNoQXN5bmNocm9ub3VzVG91Y2hFdmVudHMoY29u
c3QgVmVjdG9yPFdlYlRvdWNoRXZlbnQsIDE+JiBxdQogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFn
ZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIENhbGxiYWNrSUQgY2FsbGJhY2tJRCwgTWVzc2Fn
ZXM6OldlYlBhZ2U6OkNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGOjpEZWxheWVk
UmVwbHkmJiByZXBseSkKK3ZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmRE
cmF3VG9QREYoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5m
byYgcHJpbnRJbmZvLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQsIE1lc3NhZ2VzOjpXZWJQYWdlOjpD
b21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERjo6RGVsYXllZFJlcGx5JiYgcmVwbHkp
CiB7CiAgICAgaWYgKHByaW50SW5mby5zbmFwc2hvdEZpcnN0UGFnZSkgewogICAgICAgICByZXBs
eSgxKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9X
ZWJQYWdlTWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBh
Z2VNYWMubW0KaW5kZXggNDMxZGZhMTdhY2EwNWI2MGVmZTlhZTA0MDNhNDA4ODBlMjgxOGQ4MC4u
ZmUyNDE3YjBhN2Q1ODM2M2M1NGJiODZkYTU3ODk4ZDExZmJlMzUzOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KQEAgLTY3MCw3
ICs2NzAsNyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZUhlYWRlckFuZEZvb3RlckxheWVyc0ZvckRl
dmljZVNjYWxlQ2hhbmdlKGZsb2F0IHNjYWxlRmFjdG9yKQogICAgICAgICBtX2Zvb3RlckJhbm5l
ci0+ZGlkQ2hhbmdlRGV2aWNlU2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IpOwogfQogCi12b2lkIFdl
YlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERGRG9jdW1lbnQodWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIFZlY3RvcjxJbnRSZWN0PiYgcmVzdWx0UGFn
ZVJlY3RzKQordm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZ1BERkRvY3VtZW50
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50
SW5mbywgVmVjdG9yPEludFJlY3Q+JiByZXN1bHRQYWdlUmVjdHMpCiB7CiAgICAgQVNTRVJUKHJl
c3VsdFBhZ2VSZWN0cy5pc0VtcHR5KCkpOwogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwCmluZGV4IGEyZGExMmM2MDIyOTM3M2NmODc4OTJiODNkYWE1NzczNTAw
YTc3ZjIuLjU2NWZjYWFlZDEzMDllNzg2NTY0YzBiZmVhYjhiOWUxYmY1NDA3NTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTc2OCwxNyArNzY4LDE3IEBAIHZv
aWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBJUEM6OkRlY29kZXImIGRlCiAgICAgTE9HX0VSUk9SKCJVbmhhbmRsZWQgd2ViIHByb2Nl
c3MgbWVzc2FnZSAnJXM6JXMnIiwgZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkudG9TdHJp
bmcoKS5kYXRhKCksIGRlY29kZXIubWVzc2FnZU5hbWUoKS50b1N0cmluZygpLmRhdGEoKSk7CiB9
CiAKLVdlYkZyYW1lKiBXZWJQcm9jZXNzOjp3ZWJGcmFtZSh1aW50NjRfdCBmcmFtZUlEKSBjb25z
dAorV2ViRnJhbWUqIFdlYlByb2Nlc3M6OndlYkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
KSBjb25zdAogewogICAgIHJldHVybiBtX2ZyYW1lTWFwLmdldChmcmFtZUlEKTsKIH0KIAotdm9p
ZCBXZWJQcm9jZXNzOjphZGRXZWJGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJGcmFtZSogZnJh
bWUpCit2b2lkIFdlYlByb2Nlc3M6OmFkZFdlYkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBXZWJGcmFtZSogZnJhbWUpCiB7CiAgICAgbV9mcmFtZU1hcC5zZXQoZnJhbWVJRCwgZnJhbWUp
OwogfQogCi12b2lkIFdlYlByb2Nlc3M6OnJlbW92ZVdlYkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQp
Cit2b2lkIFdlYlByb2Nlc3M6OnJlbW92ZVdlYkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
KQogewogICAgIG1fZnJhbWVNYXAucmVtb3ZlKGZyYW1lSUQpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaAppbmRleCBkNGMwMWJhYjFmOTNkYTkwODViMGYyMTk0Y2QzMjdkNDcx
ODY1MGIyLi4zY2IyYzQ5Njk0OTk4ODdiMzJiNTNiM2E2NmQwYmJmNjg1YTMyMThkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRl
ICJXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRDaGFubmVs
TWFuYWdlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRp
Zmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaXN0cmFibGVEb21haW4uaD4KICNpZiBQTEFU
Rk9STShNQUMpCkBAIC0xNzIsOSArMTczLDkgQEAgcHVibGljOgogCiAgICAgYm9vbCBmdWxsS2V5
Ym9hcmRBY2Nlc3NFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9mdWxsS2V5Ym9hcmRBY2Nlc3NF
bmFibGVkOyB9CiAKLSAgICBXZWJGcmFtZSogd2ViRnJhbWUodWludDY0X3QpIGNvbnN0OwotICAg
IHZvaWQgYWRkV2ViRnJhbWUodWludDY0X3QsIFdlYkZyYW1lKik7Ci0gICAgdm9pZCByZW1vdmVX
ZWJGcmFtZSh1aW50NjRfdCk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcikgY29uc3Q7CisgICAgdm9pZCBhZGRXZWJGcmFtZShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIFdlYkZyYW1lKik7CisgICAgdm9pZCByZW1vdmVXZWJGcmFtZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIpOwogCiAgICAgV2ViUGFnZUdyb3VwUHJveHkqIHdlYlBhZ2VHcm91cChX
ZWJDb3JlOjpQYWdlR3JvdXAqKTsKICAgICBXZWJQYWdlR3JvdXBQcm94eSogd2ViUGFnZUdyb3Vw
KHVpbnQ2NF90IHBhZ2VHcm91cElEKTsKQEAgLTQ4OSw3ICs0OTAsNyBAQCBwcml2YXRlOgogCiAg
ICAgYm9vbCBtX2Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQgeyBmYWxzZSB9OwogCi0gICAgSGFz
aE1hcDx1aW50NjRfdCwgV2ViRnJhbWUqPiBtX2ZyYW1lTWFwOworICAgIEhhc2hNYXA8V2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJGcmFtZSo+IG1fZnJhbWVNYXA7CiAKICAgICB0eXBlZGVm
IEhhc2hNYXA8Y29uc3QgY2hhciosIHN0ZDo6dW5pcXVlX3B0cjxXZWJQcm9jZXNzU3VwcGxlbWVu
dD4sIFB0ckhhc2g8Y29uc3QgY2hhcio+PiBXZWJQcm9jZXNzU3VwcGxlbWVudE1hcDsKICAgICBX
ZWJQcm9jZXNzU3VwcGxlbWVudE1hcCBtX3N1cHBsZW1lbnRzOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmgKaW5kZXggYjE0MDNkMDU2MzkzYjM5N2QwMTdkMDkzZGU1ZmUwNGNkY2NhOGNjZC4uZDYw
NjMwZmUwY2FhZGY0M2E4Yjc0NDlkMmQ1NDkwZWRiMDhlNmFjNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oCkBAIC02NCw3ICs2NCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBoYXNXZWJWaWV3
KCkgY29uc3QgZmluYWw7IC8vIG1haW5seSBmb3IgYXNzZXJ0aW9ucwogCiAgICAgT3B0aW9uYWw8
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCgpIGNvbnN0IGZpbmFsOwotICAgIE9wdGlv
bmFsPHVpbnQ2NF90PiBmcmFtZUlEKCkgY29uc3QgZmluYWw7CisgICAgT3B0aW9uYWw8V2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKCkgY29uc3QgZmluYWw7CiAgICAgUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIG1ha2VSZXByZXNlbnRh
dGlvbihXZWJDb3JlOjpEb2N1bWVudExvYWRlciopIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5tbQppbmRleCAzZGQ1MGU3YjNiOWNmOTkzMzQ5YzlhYmI0Y2I0OTc4MzdlZWMzNTNlLi5i
N2E2NWU5OTM0ZmZmMDg4MGI3NTY4Y2EwMGU5NjJlMDE1YWU0MjEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbQpAQCAtMjE0LDcgKzIxNCw3IEBAIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVy
PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6cGFnZUlEKCkgY29uc3QKICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwogfQogCi1PcHRpb25hbDx1aW50NjRfdD4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZy
YW1lSUQoKSBjb25zdAorT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBXZWJGcmFtZUxvYWRlckNs
aWVudDo6ZnJhbWVJRCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376309</attachid>
            <date>2019-08-14 14:34:36 -0700</date>
            <delta_ts>2019-08-14 15:11:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199986-20190814143435.patch</filename>
            <type>text/plain</type>
            <size>444021</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmE3MDY4NjA3ZWFlOTVj
NTA0YWRlOThlNGIyZDQ4NzlmMjY2NDRmOS4uOTM1OGNjMTBmYjk5ZjFkMTE2ZmEyNDUwMzVhM2Ri
MDgzMjEwYTc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE5LTA4LTE0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBPYmplY3RJ
ZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+IGZvciBmcmFtZUlEcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5OTg2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBzdHJvbmdseS10eXBl
ZCBGcmFtZUlkZW50aWZpZXIgaW5zdGVhZCBvZiB1aW50NjRfdCBhcyBmcmFtZSBpZGVudGlmaWVy
cyBldmVyeXdoZXJlLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGxvYWRlci9Db29raWVKYXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q29va2llSmFyOjpjb29raWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tpZUphcjo6
c2V0Q29va2llcyk6CisgICAgICAgIChXZWJDb3JlOjpDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tpZUphcjo6Z2V0
UmF3Q29va2llcyBjb25zdCk6CisgICAgICAgICogbG9hZGVyL0Nvb2tpZUphci5oOgorICAgICAg
ICAqIGxvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3Bw
OgorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
OjpOYXZpZ2F0aW9uQWN0aW9uOjpSZXF1ZXN0ZXI6OmZyYW1lSUQgY29uc3QpOgorICAgICAgICAq
IHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9HbG9iYWxGcmFtZUlkZW50aWZp
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Okdsb2JhbEZyYW1lSWRlbnRpZmllcjo6ZGVjb2RlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Nvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzaG91bGRCbG9ja0Nv
b2tpZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpo
YXNTdG9yYWdlQWNjZXNzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6Z3JhbnRTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW06CisgICAgICAg
IChXZWJDb3JlOjpjb29raWVzRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZXNGb3JT
ZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2ll
c0ZvckRPTSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzIGNvbnN0KToK
KwogMjAxOS0wOC0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAg
ICAgVXBkYXRlIFdvcmtlcjo6bm90aWZ5RmluaXNoZWQgdG8gbm90IHVzZSBlbXB0eVNlc3Npb25J
RApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA1NGI3OTc3NmIwNTc1YjFhODgzY2Y2OTc4ZmFjZDBhMTU1Y2NhOWM1Li40
NTg3MjQyZjU2N2Q0YzBiMmVlZjgwYmIxOTJmYWJiZjE1ODIwMjk3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDM0OSBAQAorMjAxOS0wOC0xNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KKworICAgICAgICBVc2UgT2JqZWN0SWRlbnRpZmllcjxGcmFtZUlkZW50aWZpZXJUeXBl
PiBmb3IgZnJhbWVJRHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5OTk4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVzZSB0aGUgc3Ryb25nbHktdHlwZWQgRnJhbWVJZGVudGlmaWVyIGluc3RlYWQgb2Yg
dWludDY0X3QgYXMgZnJhbWUgaWRlbnRpZmllcnMgZXZlcnl3aGVyZS4KKworICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFudFN0b3JhZ2VB
Y2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAg
ICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmdyYW50U3RvcmFn
ZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsSGFzU3Rv
cmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEdy
YW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTSk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJv
bURPTSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpj
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXRSYXdDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpoYXNT
dG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtMb2FkQ2hlY2tlcjo6TmV0d29ya0xvYWRDaGVja2VyKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRy
eSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnROZXR3b3Jr
TG9hZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y29udmVydFRv
RG93bmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmFib3J0
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVz
cG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2Vp
dmVCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZp
bmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRp
ZEZhaWxMb2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpj
b250aW51ZVdpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OmVzY2FwZUlERm9ySlNP
Tik6CisgICAgICAgIChXZWJLaXQ6OmxvZ0Jsb2NrZWRDb29raWVJbmZvcm1hdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uSW50ZXJuYWwpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24pOgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNoYXJlZC9BUEkv
QVBJRnJhbWVIYW5kbGUuY3BwOgorICAgICAgICAoQVBJOjpGcmFtZUhhbmRsZTo6Y3JlYXRlKToK
KyAgICAgICAgKEFQSTo6RnJhbWVIYW5kbGU6OmNyZWF0ZUF1dG9jb252ZXJ0aW5nKToKKyAgICAg
ICAgKEFQSTo6RnJhbWVIYW5kbGU6OkZyYW1lSGFuZGxlKToKKyAgICAgICAgKEFQSTo6RnJhbWVI
YW5kbGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5oOgor
ICAgICAgICAoQVBJOjpGcmFtZUhhbmRsZTo6ZnJhbWVJRCBjb25zdCk6CisgICAgICAgICogU2hh
cmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5tbToKKyAgICAgICAgKC1bX1dLRnJhbWVIYW5k
bGUgaGFzaF0pOgorICAgICAgICAoLVtfV0tGcmFtZUhhbmRsZSBfZnJhbWVJRF0pOgorICAgICAg
ICAoLVtfV0tGcmFtZUhhbmRsZSBpbml0V2l0aENvZGVyOl0pOgorICAgICAgICAoLVtfV0tGcmFt
ZUhhbmRsZSBlbmNvZGVXaXRoQ29kZXI6XSk6CisgICAgICAgICogU2hhcmVkL0F1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRp
Y2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAg
ICAgKiBTaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmg6CisgICAg
ICAgICogU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tGcmFtZUhhbmRsZVJlZi5jcHA6CisgICAgICAgIChXS0ZyYW1lSGFuZGxlR2V0RnJhbWVJRCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgt
W1dLV2ViVmlldyBfcHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvOmZvckZyYW1lOl0pOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX2NhbkNoYW5nZUZyYW1lTGF5b3V0Ol0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tOgorICAgICAgICAoLVtfV0tJbnNwZWN0
b3Igc2hvd01haW5SZXNvdXJjZUZvckZyYW1lOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRv
bWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNp
bXVsYXRlZElucHV0RGlzcGF0Y2hlcjo6cnVuKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21h
dGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0
b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dG9tYXRpb25TZXNzaW9uOjp3ZWJGcmFtZUlERm9ySGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQXV0b21hdGlvblNlc3Npb246OmhhbmRsZUZvcldlYkZyYW1lSUQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c3dpdGNoVG9Ccm93c2luZ0NvbnRleHQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2FpdEZvck5hdmlnYXRpb25Ub0Nv
bXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6ZmluZFBhZ2VGb3JGcmFtZUlEKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnJlc3BvbmRUb1BlbmRpbmdGcmFtZU5hdmln
YXRpb25DYWxsYmFja3NXaXRoVGltZW91dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRp
b25TZXNzaW9uOjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZlQ2hpbGRGcmFtZUhhbmRsZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZlUGFyZW50RnJhbWVIYW5kbGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Y29tcHV0ZUVsZW1lbnRM
YXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2VsZWN0T3B0
aW9uRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpnZXRB
bGxDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OmRlbGV0
ZVNpbmdsZUNvb2tpZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjp2
aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
QXV0b21hdGlvblNlc3Npb246OnRha2VTY3JlZW5zaG90KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVu
dDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW06CisgICAgICAg
ICgtW1dLUmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyIGF0dGVtcHRSZWNvdmVyeV0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9j
a0xvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6
OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSk6CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAg
ICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UHJvdmlzaW9uYWxQYWdlUHJveHk6OnZhbGlkYXRlSW5wdXQpOgorICAgICAgICAoV2ViS2l0OjpQ
cm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZEZh
aWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFs
UGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQcm92
aXNpb25hbFBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEpOgorICAgICAg
ICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxG
b3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNp
b25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0
OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9u
YWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xv
YWRGb3JGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJv
Y2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlN1c3BlbmRlZFBhZ2VQcm94eTo6U3VzcGVuZGVkUGFnZVByb3h5
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25D
aGVja1Byb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNr
UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5
OjpmcmFtZUlEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVzZXRBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6c2VhcmNoRm9yR3JhbnRl
ZFJlcXVlc3QgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6d2FzUmVxdWVzdERlbmllZCk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVy
bWlzc2lvbkZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OmdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKToKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc0dyYW50
ZWRWaWRlb09yQXVkaW9BY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6bWFpbkZyYW1lSUQgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpmcmFtZUlEIGNvbnN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkZyYW1lUHJveHk6OldlYkZyYW1lUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJGcmFtZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6OmZyYW1lSUQgY29uc3QpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGlkQ3JlYXRlU3ViZnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmRpZENyZWF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkU3Rh
cnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6ZGlkRXhwbGljaXRPcGVuRm9yRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZl
U2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1l
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDYW5jZWxDbGllbnRSZWRpcmVj
dEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92
aXNpb25hbFVSTEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRD
aGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZEZvckZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZyYW1l
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENoYW5nZU1h
aW5Eb2N1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRp
dGxlRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZpcnN0TGF5
b3V0Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZpcnN0Vmlz
dWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFtZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZnJhbWVEaWRCZWNvbWVGcmFtZVNldCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5j
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uQXN5bmNTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNw
b25zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2VTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnVuYWJsZVRvSW1w
bGVtZW50UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0
Rm9ybSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2
aWdhdGlvbkRhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZE5hdmlnYXRl
V2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFVwZGF0ZUhpc3RvcnlUaXRsZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEFsZXJ0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0Q29uZmlybSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdFByb21wdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpydW5PcGVuUGFuZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnByaW50RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZvY3Vz
ZWRGcmFtZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZyYW1lU2V0
TGFyZ2VzdEZyYW1lQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cmVxdWVzdFN0b3JhZ2VTcGFjZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6bWFrZVN0b3JhZ2VTcGFjZVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2Vz
Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNob3VsZEFsbG93RGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6d2ViRnJhbWUgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUHJveHk6OmNhbkNyZWF0ZUZyYW1lIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpmcmFtZUNyZWF0ZWQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUHJveHk6OmRpZERlc3Ryb3lGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IF93a19wYWdlQ291bnRGb3JQcmludEZvcm1hdHRlcjpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojpjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpldmFsdWF0ZUphdmFTY3JpcHRDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZENsZWFyV2luZG93
T2JqZWN0Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5OjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJh
bWVXaXRoT3JkaW5hbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZVBhcmVudEZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Zm9jdXNG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmNvbXB1
dGVFbGVtZW50TGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eTo6c2VsZWN0T3B0aW9uRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHk6OnRha2VTY3JlZW5zaG90KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eTo6Z2V0Q29va2llc0ZvckZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZGVsZXRlQ29va2llKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dL
V2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tOgorICAgICAgICAoK1tXS1dlYlByb2Nlc3NQbHVnSW5G
cmFtZSBsb29rVXBGcmFtZUZyb21IYW5kbGU6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3Ry
YXRlZ3k6OnNjaGVkdWxlTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5
OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJM
b2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJS
ZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxSZXNvdXJjZUxvYWQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVyOjpzdG9wTG9hZGluZ0FmdGVyWEZyYW1l
T3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNvdXJjZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omluc3RhbGxTZXJ2aWNlV29ya2VyKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZCBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6aGFzU3RvcmFnZUFjY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cmVxdWVzdFN0b3JhZ2VBY2Nl
c3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlE
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGlkRmFpbFByb3Zpc2lvbmFsTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkNvb2tpZUphci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6
Y29va2llcyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6c2V0Q29va2ll
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZp
ZWxkVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVKYXI6OmdldFJhd0Nv
b2tpZXMgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJGcmFtZTo6V2ViRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpnZW5lcmF0ZUZy
YW1lSUQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6ZnJhbWVJRCBjb25zdCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
Ykluc3BlY3Rvcjo6c2hvd01haW5SZXNvdXJjZUZvckZyYW1lKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxvYWRVUkxJbkZyYW1lKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9hZERhdGFJbkZyYW1lKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6c3RvcExvYWRpbmdGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmNvbnRpbnVlV2lsbFN1Ym1pdEZvcm0pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpydW5K
YXZhU2NyaXB0SW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldFNvdXJjZUZv
ckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0TWFpblJlc291cmNlRGF0YU9m
RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRSZXNvdXJjZURhdGFGcm9tRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRXZWJBcmNoaXZlT2ZGcmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmFkZENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6c2VuZENTUFZpb2xhdGlvblJlcG9ydCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6YmVnaW5QcmludGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
ZHJhd1JlY3RUb0ltYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZHJhd1BhZ2VzVG9Q
REYpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmF3UGFnZXNUb1BERkltcGwpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmF3UGFnZXNGb3JQcmludGluZyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmZyYW1lQmVjYW1lUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVl
c3RTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2hvdWxkQWxsb3dE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERG
RG9jdW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmlu
dGluZ0FuZERyYXdUb1BERik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQ
YWdlTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmlu
dGluZ1BERkRvY3VtZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp3ZWJGcmFtZSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmFkZFdlYkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6cmVtb3ZlV2ViRnJhbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
OgorCiAyMDE5LTA4LTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgdXNlIG9mIGVtcHR5U2Vzc2lvbklEIGZyb20gTmV0d29ya0xvYWRQYXJhbWV0
ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggODllZTNjYmU0NzY3YWVlNjU1MjE2
Njk1NjBlY2RlOGVkMTA2YTI3ZS4uODMwYTc4MjViOTFkZmQxNmU3Y2Y3MTkyN2Q3MTM4ODkxYjA3
NDYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5
LTA4LTE0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAg
IFVzZSBPYmplY3RJZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+IGZvciBmcmFtZUlEcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5OTg2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBz
dHJvbmdseS10eXBlZCBGcmFtZUlkZW50aWZpZXIgaW5zdGVhZCBvZiB1aW50NjRfdCBhcyBmcmFt
ZSBpZGVudGlmaWVycyBldmVyeXdoZXJlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlEIGNv
bnN0KToKKwogMjAxOS0wOC0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6YmxvYlNpemUgc2hvdWxkIHRha2UgYSBT
ZXNzaW9uSUQgYXMgcGFyYW1ldGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9PYmplY3RJ
ZGVudGlmaWVyLmggYi9Tb3VyY2UvV1RGL3d0Zi9PYmplY3RJZGVudGlmaWVyLmgKaW5kZXggYjNi
Y2FkZDlkZDE5NWFiMzBiMThjZjFkYWQzMzUyMzExOTI1MjZmOC4uNjdjYzk2NGZmZDA2Y2ZlNDFh
ZWZmMjRmYjc3OWVlYWY4NTA2MzQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvT2JqZWN0
SWRlbnRpZmllci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL09iamVjdElkZW50aWZpZXIuaApAQCAt
NTksNyArNTksNyBAQCBwdWJsaWM6CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKLSAgICAgICAgQVNTRVJU
KGlzVmFsaWRJZGVudGlmaWVyKG1faWRlbnRpZmllcikpOworICAgICAgICBSRUxFQVNFX0FTU0VS
VChpc1ZhbGlkSWRlbnRpZmllcihtX2lkZW50aWZpZXIpKTsgLy8gRklYTUU6IFNob3VsZCBiZSBh
IGRlYnVnIEFTU0VSVCgpLgogICAgICAgICBlbmNvZGVyIDw8IG1faWRlbnRpZmllcjsKICAgICB9
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPE9iamVjdElk
ZW50aWZpZXI+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQpAQCAtNjgsNyArNjgsNyBAQCBwdWJs
aWM6CiAgICAgICAgIGRlY29kZXIgPj4gaWRlbnRpZmllcjsKICAgICAgICAgaWYgKCFpZGVudGlm
aWVyKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAgICAgQVNTRVJUKGlz
VmFsaWRJZGVudGlmaWVyKCppZGVudGlmaWVyKSk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGlz
VmFsaWRJZGVudGlmaWVyKCppZGVudGlmaWVyKSk7IC8vIEZJWE1FOiBTaG91bGQgYmUgYSBkZWJ1
ZyBBU1NFUlQoKS4KICAgICAgICAgcmV0dXJuIE9iamVjdElkZW50aWZpZXIgeyAqaWRlbnRpZmll
ciB9OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBi
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggOGMzOWUyOGM3NGViMWQ1NTE0YTU0
MTYwNzg4ZWNjMjJlYjdlZGM1NS4uNmUzOWJlNDE4YWQ4ZTEwMDliZGEzZGIwYWYxMGE0YmIzNGFm
ZmNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC03NzcsNiArNzc3LDcgQEAgc2V0KFdlYkNvcmVf
UFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2UvRm9jdXNEaXJlY3Rpb24uaAogICAg
IHBhZ2UvRnJhbWUuaAogICAgIHBhZ2UvRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmgKKyAgICBw
YWdlL0ZyYW1lSWRlbnRpZmllci5oCiAgICAgcGFnZS9GcmFtZVNuYXBzaG90dGluZy5oCiAgICAg
cGFnZS9GcmFtZVRyZWUuaAogICAgIHBhZ2UvRnJhbWVWaWV3LmgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiN2JlNzQ5M2ZiMzQ3
ZTdhZWM1ZDExN2NjNWNjNjlhOGExZWZjMWUzLi40OTU3YmFiYzk3YjE3MTA0YTQ0NTM1ZTQzODNm
ZGZhOGIxMjc0MjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0yODAsNiArMjgwLDcgQEAKIAkJMEYwM0MwNzQxODg0Njk1RTAw
QTVGOENBIC8qIFN5c3RlbU1lbW9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEYwM0MwNzMxODg0Njk1RTAwQTVGOENBIC8qIFN5c3RlbU1lbW9yeS5o
ICovOyB9OwogCQkwRjAzQzA3NTE4ODQ4MDU1MDBBNUY4Q0EgLyogSW5zcGVjdG9yT3ZlcmxheS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M1MjJENEEx
NUI0NzhCMjAwOUI3Qzk1IC8qIEluc3BlY3Rvck92ZXJsYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjA5OUQwOTE3Qjk2OEExMDBGRjg0Qjkg
LyogV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjA5OUQwNzE3Qjk2OEExMDBGRjg0QjkgLyogV2ViQ29y
ZVR5cGVkQXJyYXlDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJMEYxMTc4MTgyMkUzQzQ3RjAwOEJENTcwIC8qIEZyYW1lSWRlbnRp
Zmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYx
MTc4MTYyMkUzQzQ3RTAwOEJENTcwIC8qIEZyYW1lSWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMTFBNTRGMEYzOTIzMzEwMEMz
Nzg4NCAvKiBSZW5kZXJTZWxlY3Rpb25JbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjExQTU0RTBGMzkyMzMxMDBDMzc4ODQgLyogUmVuZGVyU2Vs
ZWN0aW9uSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTBGMTMxNjNFMTZFRDBDQzgwMDM1Q0MwNCAvKiBQbGF0Zm9ybUNBRmlsdGVycy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxMzE2M0QxNkVE
MENDODAwMzVDQzA0IC8qIFBsYXRmb3JtQ0FGaWx0ZXJzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYxNURBOEEwRjNBQUVFNzAwMDBDRTQ3IC8q
IENTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE1REE4OTBGM0FBRUU3MDAwMENFNDcgLyogQ1NTQW5p
bWF0aW9uQ29udHJvbGxlclByaXZhdGUuaCAqLzsgfTsKQEAgLTU1NzgsNiArNTU3OSw3IEBACiAJ
CTBGMDNDMDczMTg4NDY5NUUwMEE1RjhDQSAvKiBTeXN0ZW1NZW1vcnkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU3lzdGVtTWVtb3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGMDk5RDA2MTdCOTY4QTEwMEZGODRCOSAvKiBXZWJDb3JlVHlwZWRBcnJheUNv
bnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29y
ZVR5cGVkQXJyYXlDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEYwOTlEMDcxN0I5NjhBMTAwRkY4NEI5IC8qIFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlVHlwZWRBcnJheUNvbnRy
b2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYxMTc4MTYyMkUzQzQ3RTAw
OEJENTcwIC8qIEZyYW1lSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBGcmFtZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYx
MUE1NEUwRjM5MjMzMTAwQzM3ODg0IC8qIFJlbmRlclNlbGVjdGlvbkluZm8uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU2VsZWN0aW9uSW5mby5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRjEzMTYzRDE2RUQwQ0M4MDAzNUNDMDQgLyogUGxhdGZvcm1D
QUZpbHRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1DQUZp
bHRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxMzE2M0YxNkVEMENERTAw
MzVDQzA0IC8qIFBsYXRmb3JtQ0FGaWx0ZXJzQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBQbGF0Zm9ybUNBRmlsdGVyc0NvY29hLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjAyMDQsNiArMjAyMDYsNyBAQAogCQkJCTY1QkYwMjJBMDk3
NDgxNjMwMEM0MzE5NiAvKiBGcmFtZS5oICovLAogCQkJCTk3NEE4NjIwMTRCN0FEQkIwMDNGREM3
NiAvKiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwICovLAogCQkJCTk3NEE4NjIxMTRCN0FE
QkIwMDNGREM3NiAvKiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCAqLywKKwkJCQkwRjExNzgx
NjIyRTNDNDdFMDA4QkQ1NzAgLyogRnJhbWVJZGVudGlmaWVyLmggKi8sCiAJCQkJQzRDRDYyOTgx
ODM4Mzc2NjAwN0VCQUYxIC8qIEZyYW1lU25hcHNob3R0aW5nLmNwcCAqLywKIAkJCQlDNENENjI5
OTE4MzgzNzY2MDA3RUJBRjEgLyogRnJhbWVTbmFwc2hvdHRpbmcuaCAqLywKIAkJCQk2NUEyMTQ4
MjA5N0EzRjUzMDBCOTA1MEEgLyogRnJhbWVUcmVlLmNwcCAqLywKQEAgLTI5MjU1LDYgKzI5MjU4
LDcgQEAKIAkJCQlBODUzMTIzRDExRDA0NzFCMDBENEQwNzcgLyogRnJhZ21lbnRTY3JpcHRpbmdQ
ZXJtaXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NUJGMDIyRjA5NzQ4MTYzMDBDNDMxOTYg
LyogRnJhbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NEE4NjIzMTRCN0FEQkIwMDNGREM3NiAv
KiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMTE3ODE4
MjJFM0M0N0YwMDhCRDU3MCAvKiBGcmFtZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTY1NkQzNzNDMEFEQkE1REUwMEE0NTU0RCAvKiBGcmFtZUxvYWRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNjU2RDM3M0UwQURCQTVERTAwQTQ1NTREIC8qIEZyYW1lTG9hZGVyQ2xpZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlEMDAwRUJBMzExQkRBRkQ0MDBDNDc3MjYgLyogRnJhbWVMb2FkZXJT
dGF0ZU1hY2hpbmUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0Nvb2tpZUphci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmNw
cAppbmRleCA2OTYzMDMzMGI1ZDc5MzBkN2Q3YWFmMWRkYjRhODlkZmI2MGRkZGNjLi42ZDAzNjJl
OTc2NDE4OGI2MDg0Y2JhYThjYzE0MmQ0ZDM5MWY1YTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvQ29va2llSmFyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29v
a2llSmFyLmNwcApAQCAtNzEsNyArNzEsNyBAQCBTdHJpbmcgQ29va2llSmFyOjpjb29raWVzKERv
Y3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwpIGNvbnN0CiAKICAgICBhdXRvIGluY2x1
ZGVTZWN1cmVDb29raWVzID0gc2hvdWxkSW5jbHVkZVNlY3VyZUNvb2tpZXMoZG9jdW1lbnQsIHVy
bCk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxGcmFt
ZUlkZW50aWZpZXI+IGZyYW1lSUQ7CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJ
RDsKICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGZy
YW1lSUQgPSBmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuZnJhbWVJRCgpOwpAQCAtOTQsNyArOTQs
NyBAQCBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eSBDb29raWVKYXI6OmNvb2tpZVJlcXVl
c3RIZWFkZXJGaWVsZFByb3h5KGNvbnN0IERvYwogewogICAgIFRyYWNlU2NvcGUgc2NvcGUoRmV0
Y2hDb29raWVzU3RhcnQsIEZldGNoQ29va2llc0VuZCk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQ7CiAgICAg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKICAgICBpZiAoYXV0byogZnJhbWUgPSBk
b2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGZyYW1lSUQgPSBmcmFtZS0+bG9hZGVyKCkuY2xp
ZW50KCkuZnJhbWVJRCgpOwpAQCAtMTA2LDcgKzEwNiw3IEBAIENvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFByb3h5IENvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkoY29uc3Qg
RG9jCiAKIHZvaWQgQ29va2llSmFyOjpzZXRDb29raWVzKERvY3VtZW50JiBkb2N1bWVudCwgY29u
c3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKQogewotICAgIE9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJ
RDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEOwogICAgIGlmIChhdXRvKiBm
cmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKICAgICAgICAgZnJhbWVJRCA9IGZyYW1lLT5sb2Fk
ZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CkBAIC0xMjgsNyArMTI4LDcgQEAgYm9vbCBDb29raWVK
YXI6OmNvb2tpZXNFbmFibGVkKGNvbnN0IERvY3VtZW50JikgY29uc3QKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIFNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gQ29va2ll
SmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBQQUw6OlNlc3Npb25JRCYs
IGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8s
IGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFn
ZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNv
b2tpZXMpIGNvbnN0CitzdGQ6OnBhaXI8U3RyaW5nLCBTZWN1cmVDb29raWVzQWNjZXNzZWQ+IENv
b2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgUEFMOjpTZXNzaW9u
SUQmLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJ
bmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBP
cHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNs
dWRlU2VjdXJlQ29va2llcykgY29uc3QKIHsKICAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG1fc3Rv
cmFnZVNlc3Npb25Qcm92aWRlci0+c3RvcmFnZVNlc3Npb24oKSkgewogICAgICAgICBzdGQ6OnBh
aXI8U3RyaW5nLCBib29sPiByZXN1bHQgPSBzZXNzaW9uLT5jb29raWVSZXF1ZXN0SGVhZGVyRmll
bGRWYWx1ZShmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlELCBp
bmNsdWRlU2VjdXJlQ29va2llcyk7CkBAIC0xNDEsNyArMTQxLDcgQEAgc3RkOjpwYWlyPFN0cmlu
ZywgU2VjdXJlQ29va2llc0FjY2Vzc2VkPiBDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHUKIAogU3RyaW5nIENvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFs
dWUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCkgY29uc3QKIHsKLSAgICBPcHRp
b25hbDx1aW50NjRfdD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZy
YW1lSUQ7CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKICAgICBpZiAoYXV0
byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGZyYW1lSUQgPSBmcmFtZS0+
bG9hZGVyKCkuY2xpZW50KCkuZnJhbWVJRCgpOwpAQCAtMTU2LDcgKzE1Niw3IEBAIFN0cmluZyBD
b29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKERvY3VtZW50JiBkb2N1bWVu
dCwgY29uc3QgVVJMJiB1CiAKIGJvb2wgQ29va2llSmFyOjpnZXRSYXdDb29raWVzKGNvbnN0IERv
Y3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwsIFZlY3RvcjxDb29raWU+JiBjb29raWVz
KSBjb25zdAogewotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFs
PEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
cGFnZUlEOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKICAgICAg
ICAgZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvQ29va2llSmFyLmgKaW5kZXggMjgxZjg0YzQ5MDA1MjY3ZWEwNTRkNTFkNzY4YTllYjcz
MmNiYzIzOS4uODA4N2I4Y2Q1YjdjZjRmNTY5M2UyZjdlOTVkOGVmNmExNzk4NDZhOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Db29raWVKYXIuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UK
IAorI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVy
LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KQEAgLTU5LDcgKzYwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRDb29r
aWVzKERvY3VtZW50JiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpOwog
CiAgICAgdmlydHVhbCBib29sIGNvb2tpZXNFbmFibGVkKGNvbnN0IERvY3VtZW50JikgY29uc3Q7
Ci0gICAgdmlydHVhbCBzdGQ6OnBhaXI8U3RyaW5nLCBTZWN1cmVDb29raWVzQWNjZXNzZWQ+IGNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2Vj
dXJlQ29va2llcykgY29uc3Q7CisgICAgdmlydHVhbCBzdGQ6OnBhaXI8U3RyaW5nLCBTZWN1cmVD
b29raWVzQWNjZXNzZWQ+IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFBBTDo6
U2Vzc2lvbklEJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBj
b25zdCBVUkwmLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxQYWdlSWRlbnRp
Zmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0
UmF3Q29va2llcyhjb25zdCBEb2N1bWVudCYsIGNvbnN0IFVSTCYsIFZlY3RvcjxDb29raWU+Jikg
Y29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBEb2N1bWVudCYsIGNv
bnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDFmN2EyOWM0YjMwMWEzNjU4
MjJlNDIzM2I0MTVkZDFjMDAxOTEzMmQuLmU1OWQxNzBkZjBiYTA4YTJjNGY2MDNmZGNmYTgzNTdk
ZmY4OWJkYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9h
ZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJD
bGllbnQuaApAQCAtMzIsNyArMzIsNyBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBFbXB0eUZyYW1l
TG9hZGVyQ2xpZW50IDogcHVibGljIEZyYW1lTG9hZGVyQ2xpZW50IHsKIAogICAgIHZvaWQgZnJh
bWVMb2FkZXJEZXN0cm95ZWQoKSBvdmVycmlkZSB7IH0KIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90
PiBmcmFtZUlEKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gV1RGOjpudWxsb3B0OyB9CisgICAg
T3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gV1RGOjpudWxsb3B0OyB9CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFdURjo6bnVsbG9wdDsgfQogICAgIFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCgpIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDA3NDg3NjExOGRjNjkxYWE3YzhhZGE5N2I3OTcxMzcz
M2EyOGE2OTUuLmVkODQ3Y2IwNDc4NTI1ZTUyMTBmMWNjODViN2ZlYzUzY2U3MjIyZWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0yOSw2ICsyOSw3IEBA
CiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiRnJhbWVJZGVudGlmaWVyLmgiCiAjaW5jbHVk
ZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIkxheW91dE1pbGVzdG9uZS5oIgogI2lu
Y2x1ZGUgIkxpbmtJY29uLmgiCkBAIC0xMjgsNyArMTI5LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBtYWtlUmVwcmVzZW50YXRpb24oRG9jdW1lbnRMb2FkZXIqKSA9IDA7CiAKICAgICB2
aXJ0dWFsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQoKSBjb25zdCA9IDA7Ci0gICAg
dmlydHVhbCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0
dWFsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCgpIGNvbnN0ID0gMDsKICAgICB2
aXJ0dWFsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0ID0gMDsKIAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdh
dGlvbkFjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5j
cHAKaW5kZXggNjJiYTJkZDJmNzcwYTQwNmUxNWM5MDM5NWU0MTdjNDJjMjhmNTIwZS4uYmQ3Mzhl
MDg5NTdlMmZkODRkYTA1NWFiNDUzZTFhNDNlMGIyODhkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcApAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBOYXZpZ2F0aW9uQWN0aW9uOjpSZXF1ZXN0ZXI6OlJlcXVlc3Rlcihjb25zdCBEb2N1
bWVudCYgZG9jdW1lbnQpCiAgICAgOiBtX3VybCB7IFVSTCB7IGRvY3VtZW50LnVybCgpIH0gfQog
ICAgICwgbV9vcmlnaW4geyBtYWtlUmVmUHRyKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkpIH0K
LSAgICAsIG1fcGFnZUlEQW5kRnJhbWVJRFBhaXIgeyBkb2N1bWVudC5mcmFtZSgpID8gc3RkOjpt
YWtlX3BhaXIoZG9jdW1lbnQuZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkucGFnZUlEKCkudmFs
dWVPcihQYWdlSWRlbnRpZmllciB7IH0pLCBkb2N1bWVudC5mcmFtZSgpLT5sb2FkZXIoKS5jbGll
bnQoKS5mcmFtZUlEKCkudmFsdWVPcigwKSkgOiBzdGQ6Om1ha2VfcGFpcjxQYWdlSWRlbnRpZmll
ciwgdWludDY0X3Q+KHsgfSwgMCkgfQorICAgICwgbV9wYWdlSURBbmRGcmFtZUlEUGFpciB7IGRv
Y3VtZW50LmZyYW1lKCkgPyBzdGQ6Om1ha2VfcGFpcihkb2N1bWVudC5mcmFtZSgpLT5sb2FkZXIo
KS5jbGllbnQoKS5wYWdlSUQoKS52YWx1ZU9yKFBhZ2VJZGVudGlmaWVyIHsgfSksIGRvY3VtZW50
LmZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKS52YWx1ZU9yKEZyYW1lSWRlbnRp
ZmllciB7IH0pKSA6IHN0ZDo6bWFrZV9wYWlyPFBhZ2VJZGVudGlmaWVyLCBGcmFtZUlkZW50aWZp
ZXI+KHsgfSwgeyB9KSB9CiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9OYXZpZ2F0aW9uQWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFj
dGlvbi5oCmluZGV4IDM1Yzk2MWFhMTU0N2I4ZWEwYzRiOTA0MDcwM2M4NWQzZWE4ZTdlNTcuLjBh
MDIxZDRmYzc5ZDk2YjNmMmE4OGJhZTQwNDU2MTkxMDRjZTkwYjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAi
QWRDbGlja0F0dHJpYnV0aW9uLmgiCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRJdGVtSWRlbnRpZmll
ci5oIgorI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVy
VHlwZXMuaCIKICNpbmNsdWRlICJMYXlvdXRQb2ludC5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlm
aWVyLmgiCkBAIC02NCw3ICs2NSw3IEBAIHB1YmxpYzoKICAgICBOYXZpZ2F0aW9uQWN0aW9uKE5h
dmlnYXRpb25BY3Rpb24mJik7CiAgICAgTmF2aWdhdGlvbkFjdGlvbiYgb3BlcmF0b3I9KE5hdmln
YXRpb25BY3Rpb24mJik7CiAKLSAgICB1c2luZyBQYWdlSURBbmRGcmFtZUlEUGFpciA9IHN0ZDo6
cGFpcjxQYWdlSWRlbnRpZmllciwgdWludDY0X3QgLyogZnJhbWVJRCAqLz47CisgICAgdXNpbmcg
UGFnZUlEQW5kRnJhbWVJRFBhaXIgPSBzdGQ6OnBhaXI8UGFnZUlkZW50aWZpZXIsIEZyYW1lSWRl
bnRpZmllcj47IC8vIEZJWE1FOiBVc2UgR2xvYmFsRnJhbWVJZGVudGlmaWVyLgogICAgIGNsYXNz
IFJlcXVlc3RlciB7CiAgICAgcHVibGljOgogICAgICAgICBSZXF1ZXN0ZXIoY29uc3QgRG9jdW1l
bnQmKTsKQEAgLTcyLDcgKzczLDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBVUkwmIHVybCgp
IGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9CiAgICAgICAgIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBz
ZWN1cml0eU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuICptX29yaWdpbjsgfQogICAgICAgICBQYWdl
SWRlbnRpZmllciBwYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VJREFuZEZyYW1lSURQYWly
LmZpcnN0OyB9Ci0gICAgICAgIHVpbnQ2NF90IGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX3Bh
Z2VJREFuZEZyYW1lSURQYWlyLnNlY29uZDsgfQorICAgICAgICBGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUlEQW5kRnJhbWVJRFBhaXIuc2Vjb25kOyB9CiAg
ICAgcHJpdmF0ZToKICAgICAgICAgVVJMIG1fdXJsOwogICAgICAgICBSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+IG1fb3JpZ2luOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVD
bGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggYzI1YTAy
NGJjMDYzYzU4ZjNiMjhiZDc5Y2JiMDMzODQ0MjZjOGM1ZS4uZThhNWRlMzNlZDE3OTI2YzlhYTg1
NmIwODE2YjRlZWNmODJjOTRmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0z
MCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRGlzcGxheVJlZnJlc2hNb25pdG9yLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnRTdG9yYWdlQWNjZXNzLmgiCiAjaW5jbHVkZSAiRm9jdXNEaXJlY3Rpb24uaCIK
KyNpbmNsdWRlICJGcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgog
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIK
QEAgLTQ4Niw4ICs0ODcsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBSZWZQdHI8SWNvbj4gY3Jl
YXRlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiAvKiBmaWxlbmFtZXMgKi8pID0g
MDsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgdmlydHVhbCB2
b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiAvKnN1YkZyYW1lRG9tYWlu
Ki8sIFJlZ2lzdHJhYmxlRG9tYWluJiYgLyp0b3BGcmFtZURvbWFpbiovLCB1aW50NjRfdCAvKmZy
YW1lSUQqLywgUGFnZUlkZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiAv
KnN1YkZyYW1lRG9tYWluKi8sIFJlZ2lzdHJhYmxlRG9tYWluJiYgLyp0b3BGcmFtZURvbWFpbiov
LCB1aW50NjRfdCAvKmZyYW1lSUQqLywgUGFnZUlkZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhh
bmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdh
c1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihTdG9yYWdl
QWNjZXNzV2FzR3JhbnRlZDo6Tm8sIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bjo6Tm8pOyB9
CisgICAgdmlydHVhbCB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiAv
KnN1YkZyYW1lRG9tYWluKi8sIFJlZ2lzdHJhYmxlRG9tYWluJiYgLyp0b3BGcmFtZURvbWFpbiov
LCBGcmFtZUlkZW50aWZpZXIsIFBhZ2VJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoZmFs
c2UpOyB9CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxl
RG9tYWluJiYgLypzdWJGcmFtZURvbWFpbiovLCBSZWdpc3RyYWJsZURvbWFpbiYmIC8qdG9wRnJh
bWVEb21haW4qLywgRnJhbWVJZGVudGlmaWVyLCBQYWdlSWRlbnRpZmllciwgV1RGOjpDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJv
bXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKFN0
b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOjpObywgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpO
byk7IH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lSWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1ZDQ5NjdhYjFiNDU0MjM1OGU4
NjcyNDA1Y2I2NmI3ZDc4ZDcyMjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lSWRlbnRpZmllci5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworZW51bSBGcmFtZUlkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIEZyYW1l
SWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8RnJhbWVJZGVudGlmaWVyVHlwZT47CisKK2lu
bGluZSBGcmFtZUlkZW50aWZpZXIgZnJhbWVJZGVudGlmaWVyRnJvbUlEKHVpbnQ2NF90IGZyYW1l
SUQpCit7CisgICAgcmV0dXJuIG1ha2VPYmplY3RJZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5
cGU+KGZyYW1lSUQpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ds
b2JhbEZyYW1lSWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9HbG9iYWxGcmFtZUlk
ZW50aWZpZXIuaAppbmRleCAwZDdiM2RiZjcyZjgxZTRmZDYyYTczZmVkMjU4MWNlYWVlMTY3YjRh
Li43MDkzNDY3YjEyZjg1NjYxYThmN2ZhZGYwMmIzNTc3OTk0ZWI2YTAzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0dsb2JhbEZyYW1lSWRlbnRpZmllci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvR2xvYmFsRnJhbWVJZGVudGlmaWVyLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAog
I3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJGcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJQ
YWdlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogCkBAIC0zMyw3ICsz
NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIEZyYW1lIGlkZW50aWZpZXIgdGhhdCBpcyB1
bmlxdWUgYWNyb3NzIGFsbCBXZWJDb250ZW50IHByb2Nlc3Nlcy4KIHN0cnVjdCBHbG9iYWxGcmFt
ZUlkZW50aWZpZXIgewogICAgIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRDsKLSAgICB1aW50NjRfdCBm
cmFtZUlEOworICAgIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEOwogCiAgICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNs
YXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxHbG9iYWxGcmFtZUlkZW50aWZpZXI+IGRlY29k
ZShEZWNvZGVyJik7CkBAIC01Myw3ICs1NCw3IEBAIE9wdGlvbmFsPEdsb2JhbEZyYW1lSWRlbnRp
Zmllcj4gR2xvYmFsRnJhbWVJZGVudGlmaWVyOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAg
ICBpZiAoIXBhZ2VJRCkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIE9wdGlv
bmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJh
bWVJRDsKICAgICBkZWNvZGVyID4+IGZyYW1lSUQ7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9Db29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9Db29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eS5oCmluZGV4
IGEzMzAxOWY5ZDViMmFlZDI2MDc0NjY5NDAxZmQ3MzIyZjAyZDUxNTcuLmM2ODZjODFiNTM3MWE2
N2NkZDhhZTA5YjRhMTAxMzJhNTJkNWIyZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Nvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5
LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQ29va2llSmFy
LmgiCisjaW5jbHVkZSAiRnJhbWVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50aWZp
ZXIuaCIKICNpbmNsdWRlICJTYW1lU2l0ZUluZm8uaCIKICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklE
Lmg+CkBAIC0zOCw3ICszOSw3IEBAIHN0cnVjdCBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94
eSB7CiAgICAgVVJMIGZpcnN0UGFydHk7CiAgICAgU2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbzsK
ICAgICBVUkwgdXJsOwotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlv
bmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmll
cj4gcGFnZUlEOwogICAgIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVz
IHsgSW5jbHVkZVNlY3VyZUNvb2tpZXM6Ok5vIH07CiAKQEAgLTc4LDggKzc5LDkgQEAgT3B0aW9u
YWw8Q29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHk+IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVs
ZFByb3h5OjpkZWNvZGUoRGUKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHVybCkpCiAgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRDsK
LSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGZyYW1lSUQpKQorICAgIE9wdGlvbmFsPE9wdGlvbmFs
PEZyYW1lSWRlbnRpZmllcj4+IGZyYW1lSUQ7CisgICAgZGVjb2RlciA+PiBmcmFtZUlEOworICAg
IGlmICghZnJhbWVJRCkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAogICAgIE9wdGlv
bmFsPE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPj4gcGFnZUlEOwpAQCAtOTEsNyArOTMsNyBAQCBP
cHRpb25hbDxDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eT4gQ29va2llUmVxdWVzdEhlYWRl
ckZpZWxkUHJveHk6OmRlY29kZShEZQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5jbHVkZVNl
Y3VyZUNvb2tpZXMpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgcmV0dXJu
IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5IHsgKnNlc3Npb25JRCwgV1RGTW92ZShmaXJz
dFBhcnR5KSwgV1RGTW92ZShzYW1lU2l0ZUluZm8pLCBXVEZNb3ZlKHVybCksIGZyYW1lSUQsICpw
YWdlSUQsIGluY2x1ZGVTZWN1cmVDb29raWVzIH07CisgICAgcmV0dXJuIENvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFByb3h5IHsgKnNlc3Npb25JRCwgV1RGTW92ZShmaXJzdFBhcnR5KSwgV1RGTW92
ZShzYW1lU2l0ZUluZm8pLCBXVEZNb3ZlKHVybCksICpmcmFtZUlELCAqcGFnZUlELCBpbmNsdWRl
U2VjdXJlQ29va2llcyB9OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lv
bi5jcHAKaW5kZXggZTcxOTA3ZDk3N2RmNTkyNzNmNDkxOWM1NjUxYWYxNzM2ZmIxYTY3Zi4uZjRi
MDlhOGQ1ZTFhZDk0ODRlZDdiMzJlYjU2ZTM5NmY3NWRhYzkwZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNw
cApAQCAtNzksMTIgKzc5LDEyIEBAIGJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzaG91bGRC
bG9ja1RoaXJkUGFydHlDb29raWVzQnV0S2VlcEZpcnN0UGFydHlDb29raWVzCiAgICAgcmV0dXJu
IG1fcmVnaXN0cmFibGVEb21haW5zVG9CbG9ja0J1dEtlZXBDb29raWVzRm9yLmNvbnRhaW5zKHJl
Z2lzdHJhYmxlRG9tYWluKTsKIH0KIAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNob3Vs
ZEJsb2NrQ29va2llcyhjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIE9wdGlvbmFsPHVp
bnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEKSBjb25zdAor
Ym9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNob3VsZEJsb2NrQ29va2llcyhjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkgY29uc3QKIHsKICAgICByZXR1cm4gc2hv
dWxkQmxvY2tDb29raWVzKHJlcXVlc3QuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgcmVxdWVzdC51
cmwoKSwgZnJhbWVJRCwgcGFnZUlEKTsKIH0KICAgICAKLWJvb2wgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5Rm9yQ29va2llcywg
Y29uc3QgVVJMJiByZXNvdXJjZSwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFs
PFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQpIGNvbnN0Citib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6c2hvdWxkQmxvY2tDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eUZvckNvb2tpZXMsIGNv
bnN0IFVSTCYgcmVzb3VyY2UsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0
aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkgY29uc3QKIHsKICAgICBSZWdpc3RyYWJsZURv
bWFpbiBmaXJzdFBhcnR5RG9tYWluIHsgZmlyc3RQYXJ0eUZvckNvb2tpZXMgfTsKICAgICBpZiAo
Zmlyc3RQYXJ0eURvbWFpbi5pc0VtcHR5KCkpCkBAIC0xMzYsNyArMTM2LDcgQEAgdm9pZCBOZXR3
b3JrU3RvcmFnZVNlc3Npb246OnJlbW92ZVByZXZhbGVudERvbWFpbnMoY29uc3QgVmVjdG9yPFJl
Z2lzdHJhYmxlRG9tYWkKICAgICB9CiB9CiAKLWJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpo
YXNTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPHVpbnQ2
NF90PiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQpIGNvbnN0Citib29sIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
cmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWlu
LCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCkgY29uc3QKIHsKICAgICBpZiAoZnJhbWVJRCkgewogICAgICAgICBhdXRvIGZyYW1lc0dyYW50
ZWRJdGVyYXRvciA9IG1fZnJhbWVzR3JhbnRlZFN0b3JhZ2VBY2Nlc3MuZmluZChwYWdlSUQpOwpA
QCAtMTY5LDcgKzE2OSw3IEBAIFZlY3RvcjxTdHJpbmc+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
Z2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoKSBjb25zdAogICAgIHJldHVybiBlbnRyaWVzOwog
fQogICAgIAotdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdyYW50U3RvcmFnZUFjY2Vzcyhj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgUGFn
ZUlkZW50aWZpZXIgcGFnZUlEKQordm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdyYW50U3Rv
cmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50
aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKIHsKICAgICBpZiAoIWZyYW1l
SUQpIHsKICAgICAgICAgaWYgKGZpcnN0UGFydHlEb21haW4uaXNFbXB0eSgpKQpAQCAtMTkxLDcg
KzE5MSw3IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpncmFudFN0b3JhZ2VBY2Nlc3Mo
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlCiAKICAgICBhdXRvIHBhZ2VzR3JhbnRl
ZEl0ZXJhdG9yID0gbV9mcmFtZXNHcmFudGVkU3RvcmFnZUFjY2Vzcy5maW5kKHBhZ2VJRCk7CiAg
ICAgaWYgKHBhZ2VzR3JhbnRlZEl0ZXJhdG9yID09IG1fZnJhbWVzR3JhbnRlZFN0b3JhZ2VBY2Nl
c3MuZW5kKCkpIHsKLSAgICAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVnaXN0cmFibGVEb21haW4s
IERlZmF1bHRIYXNoPHVpbnQ2NF90Pjo6SGFzaCwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFz
aFRyYWl0czx1aW50NjRfdD4+IGVudHJ5OworICAgICAgICBIYXNoTWFwPEZyYW1lSWRlbnRpZmll
ciwgUmVnaXN0cmFibGVEb21haW4+IGVudHJ5OwogICAgICAgICBlbnRyeS5hZGQoZnJhbWVJRC52
YWx1ZSgpLCByZXNvdXJjZURvbWFpbik7CiAgICAgICAgIG1fZnJhbWVzR3JhbnRlZFN0b3JhZ2VB
Y2Nlc3MuYWRkKHBhZ2VJRCwgZW50cnkpOwogICAgIH0gZWxzZSB7CkBAIC0yMDMsNyArMjAzLDcg
QEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2UKICAgICB9CiB9CiAKLXZvaWQgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpyZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
UGFnZUlkZW50aWZpZXIgcGFnZUlEKQordm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnJlbW92
ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50
aWZpZXIgcGFnZUlEKQogewogICAgIGF1dG8gaXRlcmF0aW9uID0gbV9mcmFtZXNHcmFudGVkU3Rv
cmFnZUFjY2Vzcy5maW5kKHBhZ2VJRCk7CiAgICAgaWYgKGl0ZXJhdGlvbiA9PSBtX2ZyYW1lc0dy
YW50ZWRTdG9yYWdlQWNjZXNzLmVuZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKaW5kZXggYzhlZjhmN2JhYjc1
ZmQ5OTc5YjI4MmY1ZjVhODcwMmVmODBjODhiMy4uOGRkZjU1YjRhMWZjYTVjNTRhNDk5MGEzYTM3
YzA1OTI2NjhmZTAwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21h
IG9uY2UKIAogI2luY2x1ZGUgIkNyZWRlbnRpYWxTdG9yYWdlLmgiCisjaW5jbHVkZSAiRnJhbWVJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJSZWdp
c3RyYWJsZURvbWFpbi5oIgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KQEAgLTEyMyw3ICsx
MjQsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjb29raWVzRW5hYmxlZCgp
IGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29va2llKGNvbnN0IENvb2tpZSYp
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29va2llcyhjb25zdCBWZWN0b3I8Q29va2ll
PiYsIGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgbWFpbkRvY3VtZW50VVJMKTsKLSAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQs
IE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJikgY29uc3Q7CisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmll
cj4sIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVDb29raWUoY29uc3QgQ29va2llJik7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBkZWxldGVDb29raWUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJikg
Y29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVBbGxDb29raWVzKCk7CkBAIC0x
MzIsMjYgKzEzMywyNiBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVD
b29raWVzRm9ySG9zdG5hbWVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjb29raWVIb3N0TmFtZXMs
IEluY2x1ZGVIdHRwT25seUNvb2tpZXMpOwogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxDb29r
aWU+IGdldEFsbENvb2tpZXMoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8Q29va2llPiBn
ZXRDb29raWVzKGNvbnN0IFVSTCYpOwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgZ2V0UmF3Q29v
a2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVS
TCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4s
IFZlY3RvcjxDb29raWU+JikgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBnZXRSYXdD
b29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3Qg
VVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+
LCBWZWN0b3I8Q29va2llPiYpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZmx1c2hD
b29raWVTdG9yZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2V0SG9zdG5hbWVzV2l0aENv
b2tpZXMoSGFzaFNldDxTdHJpbmc+JiBob3N0bmFtZXMpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0
ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZXNGb3JET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJh
bWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29u
c3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llUmVx
dWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0
ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8
UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7CisgICAgV0VCQ09S
RV9FWFBPUlQgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvckRPTShjb25zdCBVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZy
YW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNv
b2tpZXMpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+
IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llUmVxdWVzdEhl
YWRlckZpZWxkVmFsdWUoY29uc3QgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkmKSBjb25z
dDsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgT3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPikgY29uc3Q7
Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgVVJMJiBm
aXJzdFBhcnR5Rm9yQ29va2llcywgY29uc3QgVVJMJiByZXNvdXJjZSwgT3B0aW9uYWw8dWludDY0
X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPikgY29uc3Q7CisgICAgV0VCQ09S
RV9FWFBPUlQgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jiwg
T3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+KSBjb25z
dDsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNob3VsZEJsb2NrQ29va2llcyhjb25zdCBVUkwm
IGZpcnN0UGFydHlGb3JDb29raWVzLCBjb25zdCBVUkwmIHJlc291cmNlLCBPcHRpb25hbDxGcmFt
ZUlkZW50aWZpZXI+LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4pIGNvbnN0OwogICAgIFdFQkNP
UkVfRVhQT1JUIGJvb2wgc2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2hvdWxkQmxvY2tU
aGlyZFBhcnR5Q29va2llc0J1dEtlZXBGaXJzdFBhcnR5Q29va2llc0Zvcihjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UHJldmFsZW50
RG9tYWluc1RvQmxvY2tBbmREZWxldGVDb29raWVzRm9yKGNvbnN0IFZlY3RvcjxSZWdpc3RyYWJs
ZURvbWFpbj4mKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFByZXZhbGVudERvbWFpbnNU
b0Jsb2NrQnV0S2VlcENvb2tpZXNGb3IoY29uc3QgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiYp
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMo
T3B0aW9uYWw8U2Vjb25kcz4pOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlUHJldmFs
ZW50RG9tYWlucyhjb25zdCBWZWN0b3I8UmVnaXN0cmFibGVEb21haW4+JiBkb21haW5zKTsKLSAg
ICBXRUJDT1JFX0VYUE9SVCBib29sIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0
eURvbWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyKSBjb25z
dDsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmly
c3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgUGFnZUlkZW50aWZpZXIp
IGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxTdHJpbmc+IGdldEFsbFN0b3JhZ2VB
Y2Nlc3NFbnRyaWVzKCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBncmFudFN0b3Jh
Z2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQsIFBhZ2VJZGVudGlmaWVyKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVN0
b3JhZ2VBY2Nlc3NGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllcik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQ
YXJ0eURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgUGFnZUlkZW50aWZpZXIpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKEZyYW1l
SWRlbnRpZmllciwgUGFnZUlkZW50aWZpZXIpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xl
YXJQYWdlU3BlY2lmaWNEYXRhRm9yUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQYWdlSWRlbnRpZmll
cik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVBbGxTdG9yYWdlQWNjZXNzKCk7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291
cmNlcyhTZWNvbmRzKTsKQEAgLTE4NSw3ICsxODYsNyBAQCBwcml2YXRlOgogICAgIE9wdGlvbmFs
PFNlY29uZHM+IGNsaWVudFNpZGVDb29raWVDYXAoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZp
cnN0UGFydHksIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPikgY29uc3Q7CiAgICAgSGFzaFNldDxS
ZWdpc3RyYWJsZURvbWFpbj4gbV9yZWdpc3RyYWJsZURvbWFpbnNUb0Jsb2NrQW5kRGVsZXRlQ29v
a2llc0ZvcjsKICAgICBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiBtX3JlZ2lzdHJhYmxlRG9t
YWluc1RvQmxvY2tCdXRLZWVwQ29va2llc0ZvcjsKLSAgICBIYXNoTWFwPFBhZ2VJZGVudGlmaWVy
LCBIYXNoTWFwPHVpbnQ2NF90LCBSZWdpc3RyYWJsZURvbWFpbiwgRGVmYXVsdEhhc2g8dWludDY0
X3Q+OjpIYXNoLCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPHVpbnQ2NF90Pj4+
IG1fZnJhbWVzR3JhbnRlZFN0b3JhZ2VBY2Nlc3M7CisgICAgSGFzaE1hcDxQYWdlSWRlbnRpZmll
ciwgSGFzaE1hcDxGcmFtZUlkZW50aWZpZXIsIFJlZ2lzdHJhYmxlRG9tYWluPj4gbV9mcmFtZXNH
cmFudGVkU3RvcmFnZUFjY2VzczsKICAgICBIYXNoTWFwPFBhZ2VJZGVudGlmaWVyLCBIYXNoTWFw
PFJlZ2lzdHJhYmxlRG9tYWluLCBSZWdpc3RyYWJsZURvbWFpbj4+IG1fcGFnZXNHcmFudGVkU3Rv
cmFnZUFjY2VzczsKICAgICBPcHRpb25hbDxTZWNvbmRzPiBtX2NhY2hlTWF4QWdlQ2FwRm9yUHJl
dmFsZW50UmVzb3VyY2VzIHsgfTsKICAgICBPcHRpb25hbDxTZWNvbmRzPiBtX2FnZUNhcEZvckNs
aWVudFNpZGVDb29raWVzIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlLmNwcAppbmRleCBkYmEwZjEzZjQ3OWEzMzI2YmU4
NWQ2NjkzOWU1MGM2M2MxM2I2MWEwLi5iMDNmMmQyMTg4NjUxNGMyOGViMDkzNzQ4MWJjMGE5MzUz
ZDBjZDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NvY2tl
dFN0cmVhbUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9T
b2NrZXRTdHJlYW1IYW5kbGUuY3BwCkBAIC02MSw3ICs2MSw3IEBAIHZvaWQgU29ja2V0U3RyZWFt
SGFuZGxlOjpzZW5kSGFuZHNoYWtlKENTdHJpbmcmJiBoYW5kc2hha2UsIE9wdGlvbmFsPENvb2tp
ZVJlcXVlCiB7CiAgICAgaWYgKG1fc3RhdGUgPT0gQ29ubmVjdGluZyB8fCBtX3N0YXRlID09IENs
b3NpbmcpCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSwgZmFsc2UpOwot
ICAgIHBsYXRmb3JtU2VuZEhhbmRzaGFrZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3Qq
PihoYW5kc2hha2UuZGF0YSgpKSwgaGFuZHNoYWtlLmxlbmd0aCgpLCBoZWFkZXJGaWVsZFByb3h5
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgcGxhdGZvcm1TZW5kSGFuZHNoYWtl
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGhhbmRzaGFrZS5kYXRhKCkpLCBoYW5k
c2hha2UubGVuZ3RoKCksIFdURk1vdmUoaGVhZGVyRmllbGRQcm94eSksIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBTb2NrZXRTdHJlYW1IYW5kbGU6OmNsb3NlKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nv
Y29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tCmluZGV4IDg0YjczYjgzNDRiMGNhYjVh
OTA0OGI0ODVlZmIxNzZkNWQzNDA1ODEuLjg1ZjRjNjJlM2JmNzRjMGRlNTQzNWYyZjAwYmU5ODRk
ODJlYWVmNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29j
b2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbQpAQCAtMjk0
LDcgKzI5NCw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gZmlsdGVyQ29va2llcyhOU0Fy
cmF5ICp1bmZpbHRlcmVkQ29va2llcywgT3B0aW9uYWw8U2VjCiAgICAgcmV0dXJuIGZpbHRlcmVk
Q29va2llczsKIH0KIAotc3RhdGljIE5TQXJyYXkgKmNvb2tpZXNGb3JVUkwoY29uc3QgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0
X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQpCitzdGF0aWMgTlNB
cnJheSAqY29va2llc0ZvclVSTChjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24s
IGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8s
IGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlv
bmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQpCiB7CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURf
U1RBVElTVElDUykKICAgICBpZiAoc2Vzc2lvbi5zaG91bGRCbG9ja0Nvb2tpZXMoZmlyc3RQYXJ0
eSwgdXJsLCBmcmFtZUlELCBwYWdlSUQpKQpAQCAtMzA3LDcgKzMwNyw3IEBAIHN0YXRpYyBOU0Fy
cmF5ICpjb29raWVzRm9yVVJMKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwg
Y29uc3QgVVJMJiBmCiB9CiAKIGVudW0gSW5jbHVkZUhUVFBPbmx5T3JOb3QgeyBEb05vdEluY2x1
ZGVIVFRQT25seSwgSW5jbHVkZUhUVFBPbmx5IH07Ci1zdGF0aWMgc3RkOjpwYWlyPFN0cmluZywg
Ym9vbD4gY29va2llc0ZvclNlc3Npb24oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNz
aW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJ
bmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFs
PFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVIVFRQT25seU9yTm90IGluY2x1ZGVIVFRQ
T25seSwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpCitzdGF0aWMg
c3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvclNlc3Npb24oY29uc3QgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVT
aXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVu
dGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRl
SFRUUE9ubHlPck5vdCBpbmNsdWRlSFRUUE9ubHksIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1
ZGVTZWN1cmVDb29raWVzKQogewogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nl
c3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsKIApAQCAtMzYzLDEyICszNjMsMTIg
QEAgc3RhdGljIHZvaWQgZGVsZXRlQWxsSFRUUENvb2tpZXMoQ0ZIVFRQQ29va2llU3RvcmFnZVJl
ZiBjb29raWVTdG9yYWdlKQogICAgIENGSFRUUENvb2tpZVN0b3JhZ2VEZWxldGVBbGxDb29raWVz
KGNvb2tpZVN0b3JhZ2UpOwogfQogCi1zdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmNvb2tpZXNGb3JET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBT
YW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2
NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2Vj
dXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKK3N0ZDo6cGFpcjxTdHJpbmcs
IGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVy
bCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRp
Zmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykg
Y29uc3QKIHsKICAgICByZXR1cm4gY29va2llc0ZvclNlc3Npb24oKnRoaXMsIGZpcnN0UGFydHks
IHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIERvTm90SW5jbHVkZUhUVFBPbmx5
LCBpbmNsdWRlU2VjdXJlQ29va2llcyk7CiB9CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3Qg
VVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRp
Zmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykg
Y29uc3QKK3N0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29v
a2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBT
YW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1l
SWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5j
bHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIGNvb2tpZXNGb3JTZXNzaW9uKCp0aGlzLCBmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVy
bCwgZnJhbWVJRCwgcGFnZUlELCBJbmNsdWRlSFRUUE9ubHksIGluY2x1ZGVTZWN1cmVDb29raWVz
KTsKIH0KQEAgLTM3OCw3ICszNzgsNyBAQCBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbgogICAgIHJl
dHVybiBjb29raWVzRm9yU2Vzc2lvbigqdGhpcywgaGVhZGVyRmllbGRQcm94eS5maXJzdFBhcnR5
LCBoZWFkZXJGaWVsZFByb3h5LnNhbWVTaXRlSW5mbywgaGVhZGVyRmllbGRQcm94eS51cmwsIGhl
YWRlckZpZWxkUHJveHkuZnJhbWVJRCwgaGVhZGVyRmllbGRQcm94eS5wYWdlSUQsIEluY2x1ZGVI
VFRQT25seSwgaGVhZGVyRmllbGRQcm94eS5pbmNsdWRlU2VjdXJlQ29va2llcyk7CiB9CiAKLXZv
aWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVy
bCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBw
YWdlSUQsIGNvbnN0IFN0cmluZyYgY29va2llU3RyKSBjb25zdAordm9pZCBOZXR3b3JrU3RvcmFn
ZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
U2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFt
ZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGNv
bnN0IFN0cmluZyYgY29va2llU3RyKSBjb25zdAogewogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJp
dmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsKIApAQCAtNDQz
LDcgKzQ0Myw3IEBAIGJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVzRW5hYmxlZCgp
IGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6Z2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5m
byYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1l
SUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFZlY3RvcjxDb29raWU+JiByYXdD
b29raWVzKSBjb25zdAorYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldFJhd0Nvb2tpZXMo
Y29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywg
Y29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgVmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNv
bnN0CiB7CiAgICAgcmF3Q29va2llcy5jbGVhcigpOwogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9Db29raWVKYXJDdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9Db29raWVKYXJDdXJsLmNwcAppbmRleCAzOTRjMzQ2MjY2NDlkNWRlYTg2OWUwOTViZTBkOWZh
ZTdiMWE1ZWNiLi43MTk4YWRmMGI0MmZlZDBjYjQxODM0MGJlMTc5YzNmOTdjOTk1MWE5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3Vy
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUph
ckN1cmwuY3BwCkBAIC01OSw3ICs1OSw3IEBAIHN0YXRpYyBTdHJpbmcgY29va2llc0ZvclNlc3Np
b24oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmCiAgICAg
cmV0dXJuIGNvb2tpZXMudG9TdHJpbmcoKTsKIH0KIAotdm9pZCBDb29raWVKYXJDdXJsOjpzZXRD
b29raWVzRnJvbURPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9w
dGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIGNvbnN0
IFN0cmluZyYgdmFsdWUpIGNvbnN0Cit2b2lkIENvb2tpZUphckN1cmw6OnNldENvb2tpZXNGcm9t
RE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJh
bWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIGNvbnN0IFN0
cmluZyYgdmFsdWUpIGNvbnN0CiB7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwogCkBAIC04
Miw3ICs4Miw3IEBAIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IENvb2tpZUphckN1cmw6OmNvb2tp
ZXNGb3JET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uCiAgICAgcmV0dXJuIHsgY29va2ll
c0ZvclNlc3Npb24oc2Vzc2lvbiwgZmlyc3RQYXJ0eSwgdXJsLCBmYWxzZSksIGZhbHNlIH07CiB9
CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IENvb2tpZUphckN1cmw6OmNvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHVlKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29u
c3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwg
T3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdl
SUQsIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAorc3RkOjpwYWlyPFN0cmluZywgYm9vbD4g
Q29va2llSmFyQ3VybDo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZy
YW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29r
aWVzKSBjb25zdAogewogICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKICAgICBVTlVTRURfUEFS
QU0ocGFnZUlEKTsKQEAgLTExMiw3ICsxMTIsNyBAQCBib29sIENvb2tpZUphckN1cmw6OmNvb2tp
ZXNFbmFibGVkKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbikgY29uc3QKICAg
ICByZXR1cm4gc2Vzc2lvbi5jb29raWVEYXRhYmFzZSgpLmlzRW5hYmxlZCgpOwogfQogCi1ib29s
IENvb2tpZUphckN1cmw6OmdldFJhd0Nvb2tpZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNv
bnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+IHBhZ2VJRCwgVmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0Citib29s
IENvb2tpZUphckN1cmw6OmdldFJhd0Nvb2tpZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNv
bnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFs
PFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFZlY3RvcjxDb29raWU+JiByYXdDb29raWVzKSBjb25z
dAogewogICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKICAgICBVTlVTRURfUEFSQU0ocGFnZUlE
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29r
aWVKYXJDdXJsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2ll
SmFyQ3VybC5oCmluZGV4IDI0YTA1YTIyN2FlMDZhYmExMTQzMTUyYThmYWM4NDgyOWUwMWY0MTAu
LmU2MmJjNGEwN2U4MmUzZWNmN2NmMmY2OGE0MWU0YTJhZGE3MGZiOTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJDdXJsLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuaApAQCAt
MjQsNiArMjQsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmll
ci5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgpAQCAtNDIsMTUgKzQzLDE1IEBAIGVudW0gY2xh
c3MgQ29va2llQWNjZXB0UG9saWN5OwogCiBjbGFzcyBDb29raWVKYXJDdXJsIHsKIHB1YmxpYzoK
LSAgICBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yRE9NKGNvbnN0IE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZv
JiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0OwotICAgIHZvaWQgc2V0Q29v
a2llc0Zyb21ET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBjb25zdCBTdHJpbmcmKSBjb25z
dDsKKyAgICBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yRE9NKGNvbnN0IE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJ
bmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKKyAgICB2
b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIGNv
bnN0IFN0cmluZyYpIGNvbnN0OwogICAgIHZvaWQgc2V0Q29va2llc0Zyb21IVFRQUmVzcG9uc2Uo
Y29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBVUkwmLCBjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICB2b2lkIHNldENvb2tpZUFjY2VwdFBv
bGljeShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBDb29raWVBY2NlcHRQb2xpY3kpIGNv
bnN0OwogICAgIENvb2tpZUFjY2VwdFBvbGljeSBjb29raWVBY2NlcHRQb2xpY3koY29uc3QgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uJikgY29uc3Q7CiAgICAgYm9vbCBjb29raWVzRW5hYmxlZChjb25z
dCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mKSBjb25zdDsKLSAgICBzdGQ6OnBhaXI8U3RyaW5nLCBi
b29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBOZXR3b3JrU3RvcmFnZVNl
c3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0
IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmll
cj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKKyAgICBzdGQ6OnBhaXI8U3RyaW5nLCBi
b29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBOZXR3b3JrU3RvcmFnZVNl
c3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0
IFVSTCYsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7CiAgICAgc3RkOjpwYWlyPFN0
cmluZywgYm9vbD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uJiwgY29uc3QgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkmKSBjb25z
dDsKLSAgICBib29sIGdldFJhd0Nvb2tpZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwg
Y29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBP
cHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBWZWN0
b3I8Q29va2llPiYpIGNvbnN0OworICAgIGJvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5m
byYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+LCBWZWN0b3I8Q29va2llPiYpIGNvbnN0OwogICAgIHZvaWQgZGVs
ZXRlQ29va2llKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYsIGNvbnN0
IFN0cmluZyYpIGNvbnN0OwogICAgIHZvaWQgZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoY29uc3Qg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgSGFzaFNldDxTdHJpbmc+JiBob3N0bmFtZXMpIGNvbnN0
OwogICAgIHZvaWQgZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lcyhjb25zdCBOZXR3b3JrU3RvcmFn
ZVNlc3Npb24mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgY29va2llSG9zdE5hbWVzKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3Jr
U3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAppbmRleCBlNGM4YjBmMTNlNmQwODlh
NTg5MmFhN2FlMGE5YjgyMTU4NWJiOWE0Li5lOTYxYzI4ODNiODYzMDEwNWRhN2Q3ODA3ZjNmYmJl
MjYxYTIwNjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCkBAIC0yNjAs
NyArMjYwLDcgQEAgc3RhdGljIGlubGluZSBib29sIGh0dHBPbmx5Q29va2llRXhpc3RzKGNvbnN0
IEdTTGlzdCogY29va2llcywgY29uc3QgZ2NoYXIqIG5hbWUKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVzRnJvbURPTShjb25zdCBV
UkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRp
b25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QKK3ZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpz
ZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5m
byYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9w
dGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGNvbnN0IFN0cmluZyYgdmFsdWUpIGNvbnN0
CiB7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwogICAgIFVOVVNFRF9QQVJBTShwYWdlSUQp
OwpAQCAtNDEzLDcgKzQxMyw3IEBAIFZlY3RvcjxDb29raWU+IE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6Z2V0Q29va2llcyhjb25zdCBVUkwmIHVybCkKICAgICByZXR1cm4gY29va2llczsKIH0KIAot
Ym9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWlu
dDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFZlY3RvcjxD
b29raWU+JiByYXdDb29raWVzKSBjb25zdAorYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246Omdl
dFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBj
b25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25h
bDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBWZWN0b3I8Q29va2llPiYgcmF3Q29va2llcykgY29u
c3QKIHsKICAgICBVTlVTRURfUEFSQU0oZmlyc3RQYXJ0eSk7CiAgICAgVU5VU0VEX1BBUkFNKGZy
YW1lSUQpOwpAQCAtNDgzLDcgKzQ4Myw3IEBAIHN0YXRpYyBzdGQ6OnBhaXI8U3RyaW5nLCBib29s
PiBjb29raWVzRm9yU2Vzc2lvbihjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlCiAgICAg
cmV0dXJuIHsgU3RyaW5nOjpmcm9tVVRGOChjb29raWVIZWFkZXIuZ2V0KCkpLCBkaWRBY2Nlc3NT
ZWN1cmVDb29raWVzIH07CiB9CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5j
bHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CitzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmNvb2tpZXNGb3JET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVy
PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJl
Q29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKIHsKICAgICBVTlVTRURfUEFSQU0o
Zmlyc3RQYXJ0eSk7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwpAQCAtNDkxLDcgKzQ5MSw3
IEBAIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2ll
c0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFyCiAgICAgcmV0dXJuIGNvb2tpZXNGb3JTZXNzaW9u
KCp0aGlzLCB1cmwsIGZhbHNlLCBpbmNsdWRlU2VjdXJlQ29va2llcyk7CiB9CiAKLXN0ZDo6cGFp
cjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llUmVxdWVzdEhlYWRl
ckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBj
b25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29r
aWVzKSBjb25zdAorc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Ojpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZp
ZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1
cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAogewogICAgIFVOVVNFRF9QQVJB
TShmaXJzdFBhcnR5KTsKICAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAppbmRleCA2ODdk
MGIwNDYxYWZkZTdjMDcyOThjNmM5ZWZmZDI2MTk0YmY0N2FjLi43NjNiNDc1OWU0MzNmODcxMzBi
Mzk0MDA2MjM0MGIyNjg0OGVhOGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKQEAgLTcxNiw3ICs3MTYsNyBAQCB2b2lkIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzeW5jU3RvcmFnZUltbWVkaWF0ZWx5
KCkKICAgICBtX2RhdGFiYXNlLnJ1blZhY3V1bUNvbW1hbmQoKTsKIH0KIAotdm9pZCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJG
cmFtZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFt
ZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJRD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9p
ZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyhj
b25zdCBTdWJGcmFtZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFRvcEZyYW1lRG9tYWlu
JiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBQYWdl
SWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTc0
Myw3ICs3NDMsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpo
YXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJgogICAgIH0pOwogfQogCi12b2lk
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vz
cyhTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZy
YW1lRG9tYWluLCBGcmFtZUlEIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlcXVlc3RTdG9y
YWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWlu
JiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAK
QEAgLTgwNCw3ICs4MDQsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyKERvbWFpbgogICAgIGdyYW50U3Rv
cmFnZUFjY2Vzc0ludGVybmFsKFdURk1vdmUoZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzKSwg
V1RGTW92ZShvcGVuZXJEb21haW4pLCBXVEY6Om51bGxvcHQsIG9wZW5lclBhZ2VJRCwgU3RvcmFn
ZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpObywgW10oU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpIHsg
fSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW50
U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURv
bWFpbiYmIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBw
YWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93biwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFudFN0
b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21h
aW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtODE4
LDcgKzgxOCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omdy
YW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1CiAgICAgZ3JhbnRTdG9yYWdlQWNj
ZXNzSW50ZXJuYWwoV1RGTW92ZShzdWJGcmFtZURvbWFpbiksIFdURk1vdmUodG9wRnJhbWVEb21h
aW4pLCBmcmFtZUlELCBwYWdlSUQsIHByb21wdFdhc1Nob3duLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21h
aW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPEZyYW1lSUQ+IGZy
YW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3du
IHByb21wdFdhc1Nob3duTm93T3JFYXJsaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3Jh
Z2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFN1
YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVE
b21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIg
cGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd25Ob3dPckVh
cmxpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5o
CmluZGV4IDNjOGQyYjFmMTY1NDkzYzkzY2E1ZDgyYmMwMjcyZjkxM2I3YTA3ZmEuLmQyNTZiZTIx
Y2ZmN2IxZjcwNTU2NDAzMWE1NzVmNWU1ZDIzMzBlZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oCkBAIC05MSw5ICs5MSw5IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgY2FsY3VsYXRlQW5kU3VibWl0VGVsZW1ldHJ5KCkgY29uc3Qgb3Zl
cnJpZGU7CiAKLSAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4m
LCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPEZyYW1lSUQ+LCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURv
bWFpbiYmLCBGcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBncmFu
dFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgRnJhbWVJ
RCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2Fz
R3JhbnRlZCk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBT
dWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8V2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nl
c3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChT
dG9yYWdlQWNjZXNzU3RhdHVzKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBncmFudFN0b3JhZ2VB
Y2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vz
c1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VB
Y2Nlc3NXYXNHcmFudGVkKT4mJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGxvZ0ZyYW1lTmF2aWdh
dGlvbihjb25zdCBOYXZpZ2F0ZWRUb0RvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgY29u
c3QgTmF2aWdhdGVkRnJvbURvbWFpbiYsIGJvb2wgaXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFt
ZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb24oY29uc3QgVG9wRnJhbWVE
b21haW4mKSBvdmVycmlkZTsKQEAgLTE1Myw3ICsxNTMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
c2V0UHJldmFsZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBSZXNvdXJjZUxv
YWRQcmV2YWxlbmNlKTsKICAgICB1bnNpZ25lZCByZWN1cnNpdmVseUZpbmROb25QcmV2YWxlbnRE
b21haW5zVGhhdFJlZGlyZWN0ZWRUb1RoaXNEb21haW4odW5zaWduZWQgcHJpbWFyeURvbWFpbklE
LCBTdGRTZXQ8dW5zaWduZWQ+JiBub25QcmV2YWxlbnRSZWRpcmVjdGlvblNvdXJjZXMsIHVuc2ln
bmVkIG51bWJlck9mUmVjdXJzaXZlQ2FsbHMpOwogICAgIHZvaWQgc2V0RG9tYWluc0FzUHJldmFs
ZW50KFN0ZFNldDx1bnNpZ25lZD4mJik7Ci0gICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3NJbnRl
cm5hbChTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBPcHRpb25hbDxGcmFtZUlE
PiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2Fz
R3JhbnRlZCk+JiYpOworICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoU3ViRnJh
bWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQ
cm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNj
ZXNzV2FzR3JhbnRlZCk+JiYpOwogICAgIHZvaWQgbWFya0FzUHJldmFsZW50SWZIYXNSZWRpcmVj
dGVkVG9QcmV2YWxlbnQoKTsKICAgICBWZWN0b3I8UmVnaXN0cmFibGVEb21haW4+IGVuc3VyZVBy
ZXZhbGVudFJlc291cmNlc0ZvckRlYnVnTW9kZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVtb3Zl
RGF0YVJlY29yZHMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzTWVtb3J5U3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAKaW5kZXggZTIzOWZjYzgw
M2U4ZDc0NDU2MTIxOGQ2NzIxN2Y3MWVkNDFiMTg3Zi4uZjZlZTkyZjliNjhkMzJmMDdlNTIxNWQz
MDM1NDk5NTE0NGY3YTgzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NNZW1vcnlTdG9yZS5jcHAKQEAgLTIxMSw3ICsyMTEsNyBAQCB2b2lkIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6c3luY1N0b3JhZ2VJbW1lZGlhdGVseSgpCiAgICAgICAg
IG1fcGVyc2lzdGVudFN0b3JhZ2UtPnNjaGVkdWxlT3JXcml0ZU1lbW9yeVN0b3JlKFJlc291cmNl
TG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZTo6Rm9yY2VJbW1lZGlhdGVXcml0ZTo6WWVz
KTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6Omhhc1N0b3Jh
Z2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBUb3BG
cmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPEZyYW1lSUQ+IGZyYW1lSUQsIFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpo
YXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29u
c3QgVG9wRnJhbWVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZp
ZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6Omlz
TWFpbigpKTsKIApAQCAtMjM1LDcgKzIzNSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c01lbW9yeVN0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiBzCiAg
ICAgfSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpyZXF1
ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFt
ZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlEIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3Jl
OjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBU
b3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
UGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nl
c3NTdGF0dXMpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6
aXNNYWluKCkpOwogCkBAIC0yODgsNyArMjg4LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzTWVtb3J5U3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoRG9tYWluSW4K
ICAgICBncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChXVEZNb3ZlKGRvbWFpbkluTmVlZE9mU3Rv
cmFnZUFjY2VzcyksIFdURk1vdmUob3BlbmVyRG9tYWluKSwgV1RGOjpudWxsb3B0LCBvcGVuZXJQ
YWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bjo6Tm8sIFtdKFN0b3JhZ2VBY2Nlc3NX
YXNHcmFudGVkKSB7IH0pOwogfQogCi12b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4s
IFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1No
b3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3Jl
OjpncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9w
RnJhbWVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdh
c1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsK
IApAQCAtMzAwLDcgKzMwMCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0
b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiBzdWJGCiAgICAgZ3JhbnRT
dG9yYWdlQWNjZXNzSW50ZXJuYWwoV1RGTW92ZShzdWJGcmFtZURvbWFpbiksIFdURk1vdmUodG9w
RnJhbWVEb21haW4pLCBmcmFtZUlELCBwYWdlSUQsIHByb21wdFdhc1Nob3duLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9y
eVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChTdWJGcmFtZURvbWFpbiYmIHN1YkZy
YW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDxGcmFt
ZUlEPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93biBwcm9tcHRXYXNTaG93bk5vd09yRWFybGllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJu
YWwoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21haW4mJiB0b3BG
cmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBQYWdlSWRlbnRp
ZmllciBwYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93bk5v
d09yRWFybGllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRl
ZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4o
KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUu
aAppbmRleCA1YWY2N2ExNmYwNjE2ZGE5ZmEwYzA5MzMxNWFjYmMzNWRhYTViMTE5Li5hNGE3Yjg4
ZTJkZmIwMDM0NmJkYzI3MWZlYjdlNWIyNGJhODIwOTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9y
eVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCkBAIC05Nyw5ICs5Nyw5IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgY2FsY3VsYXRlQW5kU3VibWl0VGVsZW1ldHJ5KCkgY29uc3Qgb3ZlcnJp
ZGU7CiAKLSAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBj
b25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPEZyYW1lSUQ+LCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgb3ZlcnJpZGU7Ci0gICAg
dm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFp
biYmLCBGcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBncmFudFN0
b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgRnJhbWVJRCwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNT
aG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3Jh
bnRlZCk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJG
cmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3Mo
U3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9y
YWdlQWNjZXNzU3RhdHVzKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nl
c3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1By
b21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nl
c3NXYXNHcmFudGVkKT4mJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGxvZ0ZyYW1lTmF2aWdhdGlv
bihjb25zdCBOYXZpZ2F0ZWRUb0RvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgY29uc3Qg
TmF2aWdhdGVkRnJvbURvbWFpbiYsIGJvb2wgaXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFtZSkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb24oY29uc3QgVG9wRnJhbWVEb21h
aW4mKSBvdmVycmlkZTsKQEAgLTEyMyw3ICsxMjMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgaW5j
cmVtZW50UmVjb3Jkc0RlbGV0ZWRDb3VudEZvckRvbWFpbnMoSGFzaFNldDxSZWdpc3RyYWJsZURv
bWFpbj4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZShSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzJiwgUmVzb3VyY2VMb2FkUHJldmFsZW5jZSk7CiAgICAgdW5zaWduZWQg
cmVjdXJzaXZlbHlHZXRBbGxEb21haW5zVGhhdEhhdmVSZWRpcmVjdGVkVG9UaGlzRG9tYWluKGNv
bnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3MmLCBIYXNoU2V0PFJlZGlyZWN0ZWRUb0RvbWFpbj4m
LCB1bnNpZ25lZCBudW1iZXJPZlJlY3Vyc2l2ZUNhbGxzKSBjb25zdDsKLSAgICB2b2lkIGdyYW50
U3RvcmFnZUFjY2Vzc0ludGVybmFsKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYs
IE9wdGlvbmFsPEZyYW1lSUQ+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3Rv
cmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6
OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJik7CisgICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nl
c3NJbnRlcm5hbChTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBPcHRpb25hbDxX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29y
ZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJik7CiAgICAgdm9pZCBtYXJrQXNQcmV2
YWxlbnRJZkhhc1JlZGlyZWN0ZWRUb1ByZXZhbGVudChSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJik7
CiAgICAgYm9vbCBpc1ByZXZhbGVudER1ZVRvRGVidWdNb2RlKFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MmKTsKICAgICBWZWN0b3I8UmVnaXN0cmFibGVEb21haW4+IGVuc3VyZVByZXZhbGVudFJlc291
cmNlc0ZvckRlYnVnTW9kZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5oCmluZGV4IDcwYWNiZGNlOTZmNjVjZjgzYTk0NjM3ZDNmYjhkMWU5YjI2NTUz
ZGQuLjIwOTQ1ZGEwOThhNjgwYTBhNGU5OTc3ZmQ3NTI0NzBmNjc4ZDk5NWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2lu
Y2x1ZGUgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NDbGFzc2lmaWVyLmgiCiAjaW5jbHVkZSAiV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlk
ZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KQEAgLTkwLDcgKzkxLDYg
QEAgcHVibGljOgogICAgIHVzaW5nIE5hdmlnYXRlZFRvRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW47CiAgICAgdXNpbmcgRG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzID0gV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNpbmcgT3BlbmVyRG9tYWluID0gV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW47Ci0gICAgdXNpbmcgRnJhbWVJRCA9IHVpbnQ2NF90OwogICAg
IAogICAgIHZpcnR1YWwgflJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSgpOwogCkBAIC0xNTks
OSArMTU5LDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNEZWJ1Z01vZGVFbmFibGVkKCkgY29uc3Qg
eyByZXR1cm4gbV9kZWJ1Z01vZGVFbmFibGVkOyB9OwogICAgIHZvaWQgc2V0UHJldmFsZW50UmVz
b3VyY2VGb3JEZWJ1Z01vZGUoY29uc3QgUmVnaXN0cmFibGVEb21haW4mKTsKIAotICAgIHZpcnR1
YWwgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9w
RnJhbWVEb21haW4mLCBPcHRpb25hbDxGcmFtZUlEPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwg
RnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZ3JhbnRTdG9y
YWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIEZyYW1lSUQsIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hv
d24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50
ZWQpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3Vi
RnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllcj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTdG9yYWdlQWNj
ZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ3JhbnRTdG9y
YWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VB
Y2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9y
YWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBsb2dGcmFt
ZU5hdmlnYXRpb24oY29uc3QgTmF2aWdhdGVkVG9Eb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFp
biYsIGNvbnN0IE5hdmlnYXRlZEZyb21Eb21haW4mLCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNN
YWluRnJhbWUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbG9nVXNlckludGVyYWN0aW9uKGNvbnN0
IFRvcEZyYW1lRG9tYWluJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlLmNwcAppbmRleCA4YzIxMTU3Y2M3ZjY5MTdiYTk3MDg5ZTM2ZjE2OWQ4NmNm
OGI4YWIwLi42NzVmMGRhZjU5Y2U5YjRmODg3Yjc5NGJjODkyZWM0NGE4Mzc1NmYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcApAQCAtMjgwLDcg
KzI4MCw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXNvdXJjZUxv
YWRTdGF0aXN0aWNzVXBkYXRlZChWZWN0b3I8V2ViQ29yCiAgICAgfSk7CiB9CiAKLXZvaWQgV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRv
cEZyYW1lRG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIg
cGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3Mo
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJ
RCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChzdWJGcmFtZURvbWFpbiAhPSB0b3BG
cmFtZURvbWFpbik7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTMwMSw3ICsz
MDEsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFj
Y2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcwogICAgIH0pOwogfQogCi1ib29sIFdlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIGZpcnN0UGFydHlEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCkKK2Jvb2wgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpoYXNTdG9yYWdlQWNj
ZXNzRm9yRnJhbWUoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNN
YWluKCkpOwogCkBAIC0zMTQsNyArMzE0LDcgQEAgYm9vbCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25zdCBSZWdpc3RyYWJsZUQKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpjYWxsSGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcihjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5
RG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCBoYXNBY2Nlc3MpPiYmIGNhbGxiYWNrKQordm9pZCBXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5k
bGVyKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBoYXNBY2Nl
c3MpPiYmIGNhbGxiYWNrKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKQEAg
LTMyOCw3ICszMjgsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2Fs
bEhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29uc3QgUgogICAgIGNhbGxiYWNrKGZh
bHNlKTsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlcXVlc3RT
dG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vz
c1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3Jh
Z2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFj
Y2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtMzkxLDcg
KzM5MSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXF1ZXN0U3Rv
cmFnZUFjY2Vzc1VuZGVyT3BlbmVyKFJlZ2lzdHJhYmxlCiAgICAgfSk7CiB9CiAKLXZvaWQgV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
dG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwg
U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2Fz
U2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3Vi
RnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vz
c1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0
b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAg
cG9zdFRhc2soW3RoaXMsIHN1YkZyYW1lRG9tYWluID0gc3ViRnJhbWVEb21haW4uaXNvbGF0ZWRD
b3B5KCksIHRvcEZyYW1lRG9tYWluID0gdG9wRnJhbWVEb21haW4uaXNvbGF0ZWRDb3B5KCksIGZy
YW1lSUQsIHBhZ2VJRCwgcHJvbXB0V2FzU2hvd24sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CkBAIC00MTAsNyArNDEwLDcgQEAgdm9p
ZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYKICAgICB9KTsKIH0KIAotU3RvcmFnZUFjY2Vzc1dhc0dyYW50
ZWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCkKK1N0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlE
b21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIg
cGFnZUlEKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTQyNyw3ICs0
MjcsNyBAQCBTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdAogICAgIHJldHVybiBpc1N0b3JhZ2VHcmFu
dGVkID8gU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQ6OlllcyA6IFN0b3JhZ2VBY2Nlc3NXYXNHcmFu
dGVkOjpObzsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxH
cmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFt
ZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBPcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsR3JhbnRTdG9yYWdlQWNj
ZXNzSGFuZGxlcihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlm
aWVyPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUu
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuaAppbmRleCAwMjNkYzI3N2NmNTA1NDdiZjk2ODllY2NhNDg0NGQw
ZTY0YWIxMzJmLi45ZGExYjZiYjUyMTUyMWEwMTI0MjM0Y2Q0MzI3MTE1NmY4Y2UwYjVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCkBAIC0zMCw2ICsz
MCw3IEBACiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBY2Nlc3NT
dGF0dXMuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVR5cGUuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWluLmg+CiAjaW5jbHVkZSA8d3RmL0Nv
bXBsZXRpb25IYW5kbGVyLmg+CkBAIC04OSw3ICs5MCw2IEBAIHB1YmxpYzoKICAgICB1c2luZyBO
YXZpZ2F0ZWRUb0RvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwogICAgIHVzaW5n
IERvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcyA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
OwogICAgIHVzaW5nIE9wZW5lckRvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwot
ICAgIHVzaW5nIEZyYW1lSUQgPSB1aW50NjRfdDsKICAgICB1c2luZyBTdG9yYWdlQWNjZXNzV2Fz
R3JhbnRlZCA9IFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOwogICAgIHVzaW5nIFN0
b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biA9IFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93bjsKIApAQCAtMTExLDcgKzExMSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNob3Vs
ZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGJvb2wsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRTaG91bGRTdWJtaXRUZWxlbWV0cnko
Ym9vbCk7CiAKLSAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFp
biYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgRnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChT
dG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJik7
CisgICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25z
dCBUb3BGcmFtZURvbWFpbiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1No
b3duKT4mJik7CiAKICAgICB2b2lkIGFwcGxpY2F0aW9uV2lsbFRlcm1pbmF0ZSgpOwogCkBAIC0x
MjUsMTEgKzEyNSwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhclVzZXJJbnRlcmFjdGlvbihj
b25zdCBUb3BGcmFtZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAg
dm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvclJlZ2lzdHJhYmxlRG9tYWlucyhPcHRpb25TZXQ8V2Vi
c2l0ZURhdGFUeXBlPiwgSGFzaE1hcDxSZWdpc3RyYWJsZURvbWFpbiwgV2Vic2l0ZURhdGFUb1Jl
bW92ZT4mJiwgYm9vbCBzaG91bGROb3RpZnlQYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNv
bnN0IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+Jik+JiYpOwogICAgIHZvaWQgcmVnaXN0cmFi
bGVEb21haW5zV2l0aFdlYnNpdGVEYXRhKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBib29s
IHNob3VsZE5vdGlmeVBhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzaFNldDxSZWdpc3Ry
YWJsZURvbWFpbj4mJik+JiYpOwotICAgIFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIGdyYW50U3Rv
cmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwg
T3B0aW9uYWw8RnJhbWVJRD4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKKyAgICBTdG9yYWdl
QWNjZXNzV2FzR3JhbnRlZCBncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4m
LCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
cj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKICAgICB2b2lkIGhhc0hhZFVzZXJJbnRlcmFj
dGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpOwotICAgIHZvaWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYs
IGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8RnJhbWVJRD4sIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKLSAgICBib29sIGhh
c1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZy
YW1lRG9tYWluJiwgRnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwotICAgIHZvaWQg
cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFt
ZURvbWFpbiYsIEZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2Fz
U2hvd24pPiYmKTsKKyAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21h
aW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRp
Zmllcj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKTsKKyAgICBib29sIGhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25zdCBTdWJGcmFt
ZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vz
cyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1No
b3duKT4mJik7CiAgICAgdm9pZCBzZXRMYXN0U2Vlbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYs
IFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRQcmV2
YWxlbnRSZXNvdXJjZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRWZXJ5UHJldmFsZW50UmVzb3VyY2UoY29uc3QgUmVn
aXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpAQCAtMTcyLDEx
ICsxNzIsMTEgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1
Z01vZGUoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwogCiAgICAgdm9pZCBsb2dUZXN0aW5nRXZlbnQoY29uc3QgU3RyaW5nJik7Ci0gICAgdm9p
ZCBjYWxsR3JhbnRTdG9yYWdlQWNjZXNzSGFuZGxlcihjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNv
bnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8RnJhbWVJRD4sIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4m
Jik7CisgICAgdm9pZCBjYWxsR3JhbnRTdG9yYWdlQWNjZXNzSGFuZGxlcihjb25zdCBTdWJGcmFt
ZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKTsKICAgICB2b2lkIHJlbW92ZUFsbFN0b3Jh
Z2VBY2Nlc3MoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGNhbGxVcGRh
dGVQcmV2YWxlbnREb21haW5zVG9CbG9ja0Nvb2tpZXNGb3JIYW5kbGVyKGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluc1RvQmxvY2tDb29raWVzRm9yJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKICAgICB2b2lkIGNhbGxSZW1vdmVEb21haW5zSGFuZGxlcihjb25zdCBWZWN0b3I8UmVnaXN0
cmFibGVEb21haW4+Jik7Ci0gICAgdm9pZCBjYWxsSGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFu
ZGxlcihjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgRnJhbWVJ
RCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYpOworICAgIHZvaWQgY2FsbEhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29uc3Qg
U3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYpOwogCiAgICAgdm9pZCBkaWRDcmVhdGVOZXR3b3JrUHJvY2VzcygpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0
Q2hlY2tlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZs
aWdodENoZWNrZXIuaAppbmRleCA3OTMwMWIyMGNjY2FmZWI1MjEwZDc1YWQ1NzQxZmQyZDkyZThh
Y2FkLi4yY2JmNGM2ZWUyYjNjYzUwYjUxMTdjZjI2ZjMxM2IxNTJjNzM5MGZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGln
aHRDaGVja2VyLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgICAgICBTdHJpbmcgdXNl
ckFnZW50OwogICAgICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7CiAgICAgICAgIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRDsKLSAgICAgICAgdWludDY0X3QgZnJhbWVJRDsKKyAg
ICAgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQ7CiAgICAgICAgIFdlYkNvcmU6
OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5OwogICAgIH07
CiAgICAgdXNpbmcgQ29tcGxldGlvbkNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYpPjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5k
ZXggMWYxMDA0ZTFiNWJjZDM5ZDhiMTIyZGY4YzZkYTQ4ZDEzN2M0YmU2MS4uMGMyYzk3NmZlZTIw
ZDMyOWI0MDdlMDRkYjk2MmZiNjc5OWFmNDMxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKQEAgLTUyNSw3ICs1MjUsNyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Ojpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoUEFMOjpTZXNzaQogICAgIGxvYWRl
ci0+Y29udmVydFRvRG93bmxvYWQoZG93bmxvYWRJRCwgcmVxdWVzdCwgcmVzcG9uc2UpOwogfQog
Ci12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRm9yRE9NKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0
ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBm
cmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29v
a2llcyBpbmNsdWRlU2VjdXJlQ29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcg
Y29va2llU3RyaW5nLCBib29sIHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRm9yRE9N
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBT
YW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1l
SWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5j
bHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8mIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9
IHN0b3JhZ2VTZXNzaW9uKG5ldHdvcmtQcm9jZXNzKCksIHNlc3Npb25JRCk7CiAgICAgYXV0byBy
ZXN1bHQgPSBuZXR3b3JrU3RvcmFnZVNlc3Npb24uY29va2llc0ZvckRPTShmaXJzdFBhcnR5LCBz
YW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlELCBpbmNsdWRlU2VjdXJlQ29va2llcyk7
CkBAIC01MzgsNyArNTM4LDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
Y29va2llc0ZvckRPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnMKICAgICBjb21wbGV0
aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdC5maXJzdCksIHJlc3VsdC5zZWNvbmQpOwogfQogCi12
b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJvbURPTShQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNp
dGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4g
ZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBj
b29raWVTdHJpbmcpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29r
aWVzRnJvbURPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0
eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRp
b25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiBwYWdlSUQsIGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKQogewogICAgIGF1dG8m
IG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IHN0b3JhZ2VTZXNzaW9uKG5ldHdvcmtQcm9jZXNzKCks
IHNlc3Npb25JRCk7CiAgICAgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLnNldENvb2tpZXNGcm9tRE9N
KGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIGNvb2tpZVN0
cmluZyk7CkBAIC01NTUsMTMgKzU1NSwxMyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpjb29raWVzRW5hYmxlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbQogICAg
IGNvbXBsZXRpb25IYW5kbGVyKHN0b3JhZ2VTZXNzaW9uKG5ldHdvcmtQcm9jZXNzKCksIHNlc3Np
b25JRCkuY29va2llc0VuYWJsZWQoKSk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVT
aXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRl
U2VjdXJlQ29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcsIGJvb2wpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29v
a2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25z
dCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25z
dCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQ
YWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJl
Q29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcsIGJvb2wpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIGF1dG8gcmVzdWx0ID0gc3RvcmFnZVNlc3Npb24obmV0d29ya1By
b2Nlc3MoKSwgc2Vzc2lvbklEKS5jb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShmaXJzdFBh
cnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlELCBpbmNsdWRlU2VjdXJlQ29v
a2llcyk7CiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQuZmlyc3QpLCByZXN1
bHQuc2Vjb25kKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Z2V0
UmF3Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0
eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRp
b25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYmKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmdldFJh
d0Nvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFn
ZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IHJlc3Vs
dDsKICAgICBzdG9yYWdlU2Vzc2lvbihuZXR3b3JrUHJvY2VzcygpLCBzZXNzaW9uSUQpLmdldFJh
d0Nvb2tpZXMoZmlyc3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwg
cmVzdWx0KTsKQEAgLTY3MCw3ICs2NzAsNyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjplbnN1cmVMZWdhY3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkKIH0KIAogI2lmIEVO
QUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpyZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQpCit2b2lkIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlk
ZW50aWZpZXIgcGFnZUlEKQogewogICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IG5ldHdv
cmtQcm9jZXNzKCkuc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSkKICAgICAgICAgc3RvcmFnZVNl
c3Npb24tPnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShmcmFtZUlELCBwYWdlSUQpOwpAQCAt
NzI4LDcgKzcyOCw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlc291
cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVkKFZlY3RvcjxXZWJDb3JlCiAgICAgICAgIHJlc291cmNl
TG9hZFN0YXRpc3RpY3MtPnJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVkKFdURk1vdmUoc3Rh
dGlzdGljcykpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpoYXNT
dG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVE
b21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6Omhhc1N0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSBuZXR3
b3JrUHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKICAgICAgICAgaWYgKGF1
dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBuZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2Fk
U3RhdGlzdGljcygpKSB7CkBAIC03NDAsNyArNzQwLDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6aGFzU3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGMKICAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlk
ZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VB
Y2Nlc3NXYXNHcmFudGVkIHdhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93biBwcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIHdhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3Jh
Z2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gbmV0d29ya1Byb2Nlc3MoKS5u
ZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CiAgICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDkyODY3MzNjNGI3Yzc1MTJjMjljNTMyNDM4
MjFkMGVlMWVjNzEzMDkuLjI1NTA4NGY5MjMxZmVhODMwODAwOThkMzU5MzA1N2ExYmQ5MDdjNTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJO
ZXR3b3JrUlRDUHJvdmlkZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkTWFwLmgi
CiAjaW5jbHVkZSAiV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya0xvYWRJbmZv
cm1hdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CkBAIC0xNzQsMTEgKzE3NSwxMSBAQCBwcml2
YXRlOgogICAgIHZvaWQgc3RhcnREb3dubG9hZChQQUw6OlNlc3Npb25JRCwgRG93bmxvYWRJRCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRO
YW1lID0geyB9KTsKICAgICB2b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChQ
QUw6OlNlc3Npb25JRCwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIERvd25s
b2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmKTsKIAotICAgIHZvaWQgY29va2llc0ZvckRPTShQQUw6OlNlc3Npb25J
RCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBj
b25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6
UGFnZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcywgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChTdHJpbmcgY29va2llU3RyaW5nLCBib29sIHNlY3VyZUNvb2tpZXNBY2Nl
c3NlZCk+JiYpOwotICAgIHZvaWQgc2V0Q29va2llc0Zyb21ET00oUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3Qg
VVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBjb29raWVzRm9yRE9NKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRl
SW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIE9w
dGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNv
b2tpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBz
ZWN1cmVDb29raWVzQWNjZXNzZWQpPiYmKTsKKyAgICB2b2lkIHNldENvb2tpZXNGcm9tRE9NKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVT
aXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4s
IE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJik7CiAgICAg
dm9pZCBjb29raWVzRW5hYmxlZChQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJik7Ci0gICAgdm9pZCBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6
OlNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0
ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcywg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcgY29va2llU3RyaW5nLCBib29sIHNlY3VyZUNv
b2tpZXNBY2Nlc3NlZCk+JiYpOwotICAgIHZvaWQgZ2V0UmF3Q29va2llcyhQQUw6OlNlc3Npb25J
RCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBj
b25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6
UGFnZUlkZW50aWZpZXI+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpD
b29raWU+JiYpPiYmKTsKKyAgICB2b2lkIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVT
aXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4s
IE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgV2ViQ29yZTo6SW5jbHVkZVNlY3Vy
ZUNvb2tpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9v
bCBzZWN1cmVDb29raWVzQWNjZXNzZWQpPiYmKTsKKyAgICB2b2lkIGdldFJhd0Nvb2tpZXMoUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNp
dGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwg
T3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYpPiYmKTsKICAgICB2b2lkIGRlbGV0ZUNvb2tpZShQ
QUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1lKTsKIAog
ICAgIHZvaWQgcmVnaXN0ZXJGaWxlQmxvYlVSTChQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwg
Y29uc3QgU3RyaW5nJiBwYXRoLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiwgY29uc3QgU3Ry
aW5nJiBjb250ZW50VHlwZSk7CkBAIC0yMTgsNyArMjE5LDcgQEAgcHJpdmF0ZToKICAgICBDYWNo
ZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uJiBjYWNoZVN0b3JhZ2VDb25uZWN0aW9uKCk7CiAKICNp
ZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIHZvaWQgcmVtb3ZlU3RvcmFn
ZUFjY2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lvbklELCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcik7CisgICAgdm9pZCByZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUo
UEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIpOwogICAgIHZvaWQgY2xlYXJQYWdlU3BlY2lmaWNEYXRhRm9yUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcyhQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogCiAg
ICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJik7CkBAIC0yMjYsOCArMjI3LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGxvZ1N1
YnJlc291cmNlTG9hZGluZyhQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHRhcmdldERvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBX
YWxsVGltZSBsYXN0U2Vlbik7CiAgICAgdm9pZCBsb2dTdWJyZXNvdXJjZVJlZGlyZWN0KFBBTDo6
U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc291cmNlRG9tYWluLCBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgdGFyZ2V0RG9tYWluKTsKICAgICB2b2lkIHJlc291cmNlTG9hZFN0
YXRpc3RpY3NVcGRhdGVkKFZlY3RvcjxXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPiYm
KTsKLSAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRv
cEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCByZXF1ZXN0U3RvcmFn
ZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1l
RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90
IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNz
UHJvbXB0V2FzU2hvd24pPiYmKTsKKyAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNz
aW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KTsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNz
V2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJik7CiAg
ICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyKFBBTDo6U2Vzc2lvbklELCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2Vzcywg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgb3BlbmVyUGFnZUlELCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiYmIG9wZW5lckRvbWFpbik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggNGIxMTg5YjM5Y2NlYmM4ZmIyMjZmOGZlZTAzNDI4
YzZjODVhZDdhMy4uOTlhYmQwNzhmYjE0YzlmMzBiZTljODc2MDNhMTNkOTFiZDc5YTljZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0zNCwxMSArMzQs
MTEgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVj
ZWl2ZXIgewogICAgIFN0YXJ0RG93bmxvYWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJL
aXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QsIFN0cmluZyBzdWdnZXN0ZWROYW1lKQogICAgIENvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9E
b3dubG9hZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxv
YWRJZGVudGlmaWVyLCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2Up
CiAKLSAgICBDb29raWVzRm9yRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZpcnN0
UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJs
LCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRCwgZW51bTpib29sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGlu
Y2x1ZGVTZWN1cmVDb29raWVzKSAtPiAoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBkaWRBY2Nl
c3NTZWN1cmVDb29raWVzKSBTeW5jaHJvbm91cwotICAgIFNldENvb2tpZXNGcm9tRE9NKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1l
U2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgU3RyaW5nIGNvb2tp
ZVN0cmluZykKKyAgICBDb29raWVzRm9yRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJM
IGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBV
UkwgdXJsLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlv
bmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpJ
bmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgLT4gKFN0cmluZyBjb29r
aWVTdHJpbmcsIGJvb2wgZGlkQWNjZXNzU2VjdXJlQ29va2llcykgU3luY2hyb25vdXMKKyAgICBT
ZXRDb29raWVzRnJvbURPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5
LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0
aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBTdHJpbmcgY29va2llU3RyaW5nKQogICAgIENvb2tp
ZXNFbmFibGVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKGJvb2wgZW5hYmxlZCkgU3lu
Y2hyb25vdXMKLSAgICBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZv
IHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlv
bmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpJ
bmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgLT4gKFN0cmluZyBjb29r
aWVTdHJpbmcsIGJvb2wgZGlkQWNjZXNzU2VjdXJlQ29va2llcykgU3luY2hyb25vdXMKLSAgICBH
ZXRSYXdDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZpcnN0UGFydHksIHN0
cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBh
Z2VJRCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IGNvb2tpZXMpIFN5bmNocm9ub3VzCisg
ICAgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUlu
Zm8sIFVSTCB1cmwsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwg
T3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgZW51bTpib29sIFdlYkNv
cmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSAtPiAoU3RyaW5n
IGNvb2tpZVN0cmluZywgYm9vbCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzKSBTeW5jaHJvbm91cwor
ICAgIEdldFJhd0Nvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgZmlyc3RQYXJ0
eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9w
dGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IGNv
b2tpZXMpIFN5bmNocm9ub3VzCiAgICAgRGVsZXRlQ29va2llKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgVVJMIHVybCwgU3RyaW5nIGNvb2tpZU5hbWUpCiAKICAgICBSZWdpc3RlckZpbGVCbG9i
VVJMKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIHVybCwgU3RyaW5nIHBhdGgsIFdlYktp
dDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGV4dGVuc2lvbkhhbmRsZSwgU3RyaW5nIGNvbnRl
bnRUeXBlKQpAQCAtNTgsMTUgKzU4LDE1IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBFbnN1cmVMZWdhY3lQcml2YXRlQnJv
d3NpbmdTZXNzaW9uKCkKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0g
ICAgUmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
dWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKTsKKyAgICBS
ZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFn
ZUlEKTsKICAgICBDbGVhclBhZ2VTcGVjaWZpY0RhdGFGb3JSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
KTsKICAgICBMb2dVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW4pCiAgICAgTG9nV2ViU29ja2V0TG9hZGluZyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRhcmdl
dERvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4sIFdhbGxU
aW1lIGxhc3RTZWVuKQogICAgIExvZ1N1YnJlc291cmNlTG9hZGluZyhQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRhcmdldERvbWFpbiwgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4sIFdhbGxUaW1lIGxhc3RTZWVuKQog
ICAgIExvZ1N1YnJlc291cmNlUmVkaXJlY3QoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzb3VyY2VEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluIHRhcmdldERvbWFpbikKICAgICBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVXBkYXRlZChW
ZWN0b3I8V2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4gc3RhdGlzdGljcykKLSAgICBI
YXNTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4gc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRv
cEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBw
YWdlSUQpIC0+IChib29sIGhhc1N0b3JhZ2VBY2Nlc3MpIEFzeW5jCi0gICAgUmVxdWVzdFN0b3Jh
Z2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVE
b21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkg
LT4gKGVudW06Ym9vbCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCB3YXNHcmFudGVk
LCBlbnVtOmJvb2wgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdh
c1Nob3duKSBBc3luYworICAgIEhhc1N0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpIC0+IChib29sIGhhc1N0
b3JhZ2VBY2Nlc3MpIEFzeW5jCisgICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpIC0+IChl
bnVtOmJvb2wgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgd2FzR3JhbnRlZCwgZW51
bTpib29sIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93
bikgQXN5bmMKICAgICBSZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluSW5OZWVkT2ZT
dG9yYWdlQWNjZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBvcGVuZXJQYWdlSUQsIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIG9wZW5lckRvbWFpbikKICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAKaW5kZXgg
NDA5NzE0ZDY2NzI2YTg0NzRhZmYyOWExNjA4MTdmMjQ3OTY3YjAxNi4uMTE3NmY1MzdhODU4MDli
NGJhZTFjZTc2OGI1NjUzNWIxNWQ1ZWJiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcApAQCAtNDgsNyArNDgsNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgaXNTYW1lT3JpZ2luKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTZWN1cml0
eU9yaWdpbiogb3JpZ2luKQogICAgIHJldHVybiB1cmwucHJvdG9jb2xJc0RhdGEoKSB8fCB1cmwu
cHJvdG9jb2xJc0Jsb2IoKSB8fCAhb3JpZ2luIHx8IG9yaWdpbi0+Y2FuUmVxdWVzdCh1cmwpOwog
fQogCi1OZXR3b3JrTG9hZENoZWNrZXI6Ok5ldHdvcmtMb2FkQ2hlY2tlcihOZXR3b3JrUHJvY2Vz
cyYgbmV0d29ya1Byb2Nlc3MsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMsIFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBIVFRQ
SGVhZGVyTWFwJiYgb3JpZ2luYWxSZXF1ZXN0SGVhZGVycywgVVJMJiYgdXJsLCBSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+JiYgc291cmNlT3JpZ2luLCBQcmVmbGlnaHRQb2xpY3kgcHJlZmxpZ2h0UG9s
aWN5LCBTdHJpbmcmJiByZWZlcnJlciwgYm9vbCBpc0hUVFBTVXBncmFkZUVuYWJsZWQsIGJvb2wg
c2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzLCBMb2FkVHlwZSByZXF1ZXN0TG9h
ZFR5cGUpCitOZXR3b3JrTG9hZENoZWNrZXI6Ok5ldHdvcmtMb2FkQ2hlY2tlcihOZXR3b3JrUHJv
Y2VzcyYgbmV0d29ya1Byb2Nlc3MsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMsIFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgSFRUUEhlYWRlck1hcCYmIG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMsIFVSTCYmIHVybCwg
UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiYmIHNvdXJjZU9yaWdpbiwgUHJlZmxpZ2h0UG9saWN5IHBy
ZWZsaWdodFBvbGljeSwgU3RyaW5nJiYgcmVmZXJyZXIsIGJvb2wgaXNIVFRQU1VwZ3JhZGVFbmFi
bGVkLCBib29sIHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcywgTG9hZFR5cGUg
cmVxdWVzdExvYWRUeXBlKQogICAgIDogbV9vcHRpb25zKFdURk1vdmUob3B0aW9ucykpCiAgICAg
LCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgLCBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQ
cm9jZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZENoZWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRD
aGVja2VyLmgKaW5kZXggMDc3MDY0NjcwZmNiYjlhYzk0MmY4ZDg2MTgxMDQ5NTlmMDBlMDU3OC4u
ZWM5NGUxNDY5NTMzZDdkOTg3ODE2YmIyNmIxN2RmYjIzYjk0M2ZjMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oCkBAIC0yOSw2ICsy
OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9GZXRjaE9wdGlvbnMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1l
SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya0xvYWRJbmZvcm1hdGlvbi5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1Jlc291cmNlRXJyb3IuaD4KQEAgLTU1LDcgKzU2LDcgQEAgY2xhc3MgTmV0d29ya0xvYWRDaGVj
a2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPE5ldHdvcmtMb2FkQ2hlY2tlcj4gewogcHVibGlj
OgogICAgIGVudW0gY2xhc3MgTG9hZFR5cGUgOiBib29sIHsgTWFpbkZyYW1lLCBPdGhlciB9Owog
Ci0gICAgTmV0d29ya0xvYWRDaGVja2VyKE5ldHdvcmtQcm9jZXNzJiwgV2ViQ29yZTo6RmV0Y2hP
cHRpb25zJiYsIFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0
X3QgZnJhbWVJRCwgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYmLCBVUkwmJiwgUmVmUHRyPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luPiYmLCBXZWJDb3JlOjpQcmVmbGlnaHRQb2xpY3ksIFN0cmluZyYm
IHJlZmVycmVyLCBib29sIGlzSFRUUFNVcGdyYWRlRW5hYmxlZCA9IGZhbHNlLCBib29sIHNob3Vs
ZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyA9IGZhbHNlLCBMb2FkVHlwZSByZXF1ZXN0
TG9hZFR5cGUgPSBMb2FkVHlwZTo6T3RoZXIpOworICAgIE5ldHdvcmtMb2FkQ2hlY2tlcihOZXR3
b3JrUHJvY2VzcyYsIFdlYkNvcmU6OkZldGNoT3B0aW9ucyYmLCBQQUw6OlNlc3Npb25JRCwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6
SFRUUEhlYWRlck1hcCYmLCBVUkwmJiwgUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYm
LCBXZWJDb3JlOjpQcmVmbGlnaHRQb2xpY3ksIFN0cmluZyYmIHJlZmVycmVyLCBib29sIGlzSFRU
UFNVcGdyYWRlRW5hYmxlZCA9IGZhbHNlLCBib29sIHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtM
b2FkTWV0cmljcyA9IGZhbHNlLCBMb2FkVHlwZSByZXF1ZXN0TG9hZFR5cGUgPSBMb2FkVHlwZTo6
T3RoZXIpOwogICAgIH5OZXR3b3JrTG9hZENoZWNrZXIoKTsKIAogICAgIHN0cnVjdCBSZWRpcmVj
dGlvblRyaXBsZXQgewpAQCAtMTI3LDcgKzEyOCw3IEBAIHByaXZhdGU6CiAgICAgUEFMOjpTZXNz
aW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgUmVmPE5ldHdvcmtQcm9jZXNzPiBtX25ldHdvcmtQcm9j
ZXNzOwogICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIG1fcGFnZUlEOwotICAgIHVpbnQ2NF90
IG1fZnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbV9mcmFtZUlEOwogICAg
IFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAgbV9vcmlnaW5hbFJlcXVlc3RIZWFkZXJzOyAvLyBOZWVk
ZWQgZm9yIENPUlMgY2hlY2tzLgogICAgIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAgbV9maXJzdFJl
cXVlc3RIZWFkZXJzOyAvLyBOZWVkZWQgZm9yIENPUlMgY2hlY2tzLgogICAgIFVSTCBtX3VybDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJh
bWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1l
dGVycy5oCmluZGV4IGM0M2U1ZGNkNzUwMTFhNTU5MWU2ZTY4MjcyNGMxYTY5NTY1ZWNmMTcuLmI4
ZjdkMTM5ZTMxZWM1YzgyNzEzNWUzNzMwYjdiMGQ5ZWYwYTQ2MWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaApAQCAtMjcs
NiArMjcsNyBAQAogCiAjaW5jbHVkZSAiTmV0d29ya0FjdGl2aXR5VHJhY2tlci5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvQmxvYkRhdGFGaWxlUmVmZXJlbmNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9G
cmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1Jlc291cmNlUmVxdWVzdC5oPgpAQCAtNDYsNyArNDcsNyBAQCBwdWJsaWM6CiAKICAgICBQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2Vi
UGFnZUlEOwotICAgIHVpbnQ2NF90IHdlYkZyYW1lSUQgeyAwIH07CisgICAgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIHdlYkZyYW1lSUQ7CiAgICAgV1RGOjpQcm9jZXNzSUQgcGFyZW50UElEIHsg
MCB9OwogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0OwogICAgIFdlYkNvcmU6
OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBjb250ZW50U25pZmZpbmdQb2xpY3kgeyBXZWJDb3JlOjpD
b250ZW50U25pZmZpbmdQb2xpY3k6OlNuaWZmQ29udGVudCB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IGE5MmI3MjQxZWIyOThlYTY2YzVh
OGEyODQ3NGY0MDNlNTdlNDVjMzkuLmMyMzYzZGQxMTM1ZjdlMmJmYTAzMjllZGYyNjJhMjViZWUy
MmIzYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmgKQEAgLTEzNyw3ICsxMzcsNiBAQCBwdWJsaWM6CiAgICAgdXNpbmcgTmF2aWdhdGVkVG9Eb21h
aW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKICAgICB1c2luZyBEb21haW5Jbk5lZWRP
ZlN0b3JhZ2VBY2Nlc3MgPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKICAgICB1c2luZyBP
cGVuZXJEb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKLSAgICB1c2luZyBGcmFt
ZUlEID0gdWludDY0X3Q7CiAKICAgICBOZXR3b3JrUHJvY2VzcyhBdXhpbGlhcnlQcm9jZXNzSW5p
dGlhbGl6YXRpb25QYXJhbWV0ZXJzJiYpOwogICAgIH5OZXR3b3JrUHJvY2VzcygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIu
Y3BwCmluZGV4IDQ3ODJlZjE1ZjNkZWVlNWFmNGVhZWYwNWNkZjYwMzZhZTdlNmQyZmIuLmVjNmE4
MGM4NDg5ZGVmMzJkNzg5Yjc0YmVjMTI3MzU3YmVjNTU4MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTE4
MCwxOCArMTgwLDE4IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydCgpCiAKICAg
ICAgICAgICAgIFdURjo6c3dpdGNoT24ocmVzdWx0LAogICAgICAgICAgICAgICAgIFt0aGlzXSAo
UmVzb3VyY2VFcnJvciYgZXJyb3IpIHsKLSAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgic3RhcnQ6IGVycm9yIGNoZWNraW5nIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJl
c291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCwgcGFyZW50UElEID0gJWQsIGVycm9yLmRv
bWFpbiA9ICV7cHVibGljfXMsIGVycm9yLmNvZGUgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFn
ZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRl
bnRpZmllciwgdGhpcy0+aXNNYWluUmVzb3VyY2UoKSwgdGhpcy0+aXNTeW5jaHJvbm91cygpLCBt
X3BhcmFtZXRlcnMucGFyZW50UElELCBlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJv
ci5lcnJvckNvZGUoKSk7CisgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoInN0YXJ0OiBlcnJvciBjaGVja2luZyAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9
ICVkLCBpc1N5bmNocm9ub3VzID0gJWQsIHBhcmVudFBJRCA9ICVkLCBlcnJvci5kb21haW4gPSAl
e3B1YmxpY31zLCBlcnJvci5jb2RlID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJ
bnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMu
aWRlbnRpZmllciwgdGhpcy0+aXNNYWluUmVzb3VyY2UoKSwgdGhpcy0+aXNTeW5jaHJvbm91cygp
LCBtX3BhcmFtZXRlcnMucGFyZW50UElELCBlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBl
cnJvci5lcnJvckNvZGUoKSk7CiAgICAgICAgICAgICAgICAgICAgIGlmICghZXJyb3IuaXNDYW5j
ZWxsYXRpb24oKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMtPmRpZEZhaWxMb2FkaW5n
KGVycm9yKTsKICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgIFt0aGlzXSAoTmV0
d29ya0xvYWRDaGVja2VyOjpSZWRpcmVjdGlvblRyaXBsZXQmIHRyaXBsZXQpIHsKICAgICAgICAg
ICAgICAgICAgICAgdGhpcy0+bV9pc1dhaXRpbmdDb250aW51ZVdpbGxTZW5kUmVxdWVzdEZvckNh
Y2hlZFJlZGlyZWN0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgdGhpcy0+d2lsbFNlbmRS
ZWRpcmVjdGVkUmVxdWVzdChXVEZNb3ZlKHRyaXBsZXQucmVxdWVzdCksIFdURk1vdmUodHJpcGxl
dC5yZWRpcmVjdFJlcXVlc3QpLCBXVEZNb3ZlKHRyaXBsZXQucmVkaXJlY3RSZXNwb25zZSkpOwot
ICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydDogc3ludGhl
dGljIHJlZGlyZWN0IHNlbnQgYmVjYXVzZSByZXF1ZXN0IFVSTCB3YXMgbW9kaWZpZWQgKHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQ
Ukl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkLCBwYXJlbnRQ
SUQgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVy
cy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgdGhpcy0+aXNNYWluUmVzb3Vy
Y2UoKSwgdGhpcy0+aXNTeW5jaHJvbm91cygpLCBtX3BhcmFtZXRlcnMucGFyZW50UElEKTsKKyAg
ICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6IHN5bnRoZXRp
YyByZWRpcmVjdCBzZW50IGJlY2F1c2UgcmVxdWVzdCBVUkwgd2FzIG1vZGlmaWVkIChwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJ
dTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCwgcGFyZW50UElE
ID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMu
d2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgdGhpcy0+aXNN
YWluUmVzb3VyY2UoKSwgdGhpcy0+aXNTeW5jaHJvbm91cygpLCBtX3BhcmFtZXRlcnMucGFyZW50
UElEKTsKICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgIFt0aGlzXSAoUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0KSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLT5jYW5V
c2VDYWNoZShyZXF1ZXN0KSkgewotICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgic3RhcnQ6IENoZWNraW5nIGNhY2hlIGZvciByZXNvdXJjZSAocGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2
NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQsIHBhcmVudFBJRCA9
ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndl
YkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCB0aGlzLT5pc01haW5SZXNvdXJjZSgp
LCB0aGlzLT5pc1N5bmNocm9ub3VzKCksIG1fcGFyYW1ldGVycy5wYXJlbnRQSUQpOworICAgICAg
ICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6IENoZWNraW5n
IGNhY2hlIGZvciByZXNvdXJjZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQ
Ukl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBp
c1N5bmNocm9ub3VzID0gJWQsIHBhcmVudFBJRCA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdl
SUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJh
bWV0ZXJzLmlkZW50aWZpZXIsIHRoaXMtPmlzTWFpblJlc291cmNlKCksIHRoaXMtPmlzU3luY2hy
b25vdXMoKSwgbV9wYXJhbWV0ZXJzLnBhcmVudFBJRCk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICB0aGlzLT5yZXRyaWV2ZUNhY2hlRW50cnkocmVxdWVzdCk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTIwNCw3ICsyMDQsNyBAQCB2
b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQoKQogICAgIH0KICAgICAvLyBGSVhNRTog
UmVtb3ZlIHRoYXQgY29kZSBwYXRoIG9uY2UgbV9uZXR3b3JrTG9hZENoZWNrZXIgaXMgdXNlZCBm
b3IgYWxsIG5ldHdvcmsgbG9hZHMuCiAgICAgaWYgKGNhblVzZUNhY2hlKG9yaWdpbmFsUmVxdWVz
dCgpKSkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydDogQ2hlY2tpbmcg
Y2FjaGUgZm9yIHJlc291cmNlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlz
U3luY2hyb25vdXMgPSAlZCwgcGFyZW50UElEID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJ
RC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50
aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSwgbV9wYXJhbWV0ZXJzLnBh
cmVudFBJRCk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0OiBDaGVja2lu
ZyBjYWNoZSBmb3IgcmVzb3VyY2UgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwg
aXNTeW5jaHJvbm91cyA9ICVkLCBwYXJlbnRQSUQgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFn
ZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFy
YW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCksIG1f
cGFyYW1ldGVycy5wYXJlbnRQSUQpOwogICAgICAgICByZXRyaWV2ZUNhY2hlRW50cnkob3JpZ2lu
YWxSZXF1ZXN0KCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjQ0LDcgKzI0NCw3IEBA
IHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpyZXRyaWV2ZUNhY2hlRW50cnkoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogICAgICAgICBsb2dTbG93Q2FjaGVSZXRyaWV2ZUlmTmVl
ZGVkKGluZm8pOwogCiAgICAgICAgIGlmICghZW50cnkpIHsKLSAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogUmVzb3VyY2Ugbm90IGluIGNhY2hl
IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlE
ID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCki
LCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFt
ZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJv
bm91cygpKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2Fj
aGVFbnRyeTogUmVzb3VyY2Ugbm90IGluIGNhY2hlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291
cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRv
VUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVy
cy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOwogICAgICAg
ICAgICAgc3RhcnROZXR3b3JrTG9hZChXVEZNb3ZlKHJlcXVlc3QpLCBGaXJzdExvYWQ6Olllcyk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lk
IE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6cmV0cmlldmVDYWNoZUVudHJ5SW50ZXJuYWwoc3RkOjp1
bmlxdWVfcHRyPE5ldHdvcmtDYQogewogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCiAgICAgaWYgKGVudHJ5LT5oYXNSZWFjaGVkUHJldmFsZW50UmVzb3VyY2VBZ2VDYXAoKSkg
ewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJl
c291cmNlIGhhcyByZWFjaGVkIHByZXZhbGVudCByZXNvdXJjZSBhZ2UgY2FwIChwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0
ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRl
cnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFt
ZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKKyAg
ICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNoZUVudHJ5OiBSZXNvdXJj
ZSBoYXMgcmVhY2hlZCBwcmV2YWxlbnQgcmVzb3VyY2UgYWdlIGNhcCAocGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBp
c01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndl
YlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBt
X3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygp
KTsKICAgICAgICAgbV9jYWNoZUVudHJ5Rm9yTWF4QWdlQ2FwVmFsaWRhdGlvbiA9IFdURk1vdmUo
ZW50cnkpOwogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmV2YWxpZGF0aW9uUmVxdWVzdCA9IG9y
aWdpbmFsUmVxdWVzdCgpOwogICAgICAgICBzdGFydE5ldHdvcmtMb2FkKFdURk1vdmUocmV2YWxp
ZGF0aW9uUmVxdWVzdCksIEZpcnN0TG9hZDo6WWVzKTsKQEAgLTI2NCwyOCArMjY0LDI4IEBAIHZv
aWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpyZXRyaWV2ZUNhY2hlRW50cnlJbnRlcm5hbChzdGQ6
OnVuaXF1ZV9wdHI8TmV0d29ya0NhCiAgICAgfQogI2VuZGlmCiAgICAgaWYgKGVudHJ5LT5yZWRp
cmVjdFJlcXVlc3QoKSkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2
ZUNhY2hlRW50cnk6IEhhbmRsaW5nIHJlZGlyZWN0IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291
cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRv
VUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmll
ciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKKyAgICAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNoZUVudHJ5OiBIYW5kbGluZyByZWRpcmVjdCAocGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUi
IFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9w
YXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50
b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNT
eW5jaHJvbm91cygpKTsKICAgICAgICAgZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3RGb3JDYWNoZUVu
dHJ5KFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoZW50cnkpKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICBpZiAobV9wYXJhbWV0ZXJzLm5lZWRzQ2VydGlmaWNhdGVJbmZvICYmICFlbnRy
eS0+cmVzcG9uc2UoKS5jZXJ0aWZpY2F0ZUluZm8oKSkgewotICAgICAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJlc291cmNlIGRvZXMgbm90IGhhdmUgcmVx
dWlyZWQgY2VydGlmaWNhdGUgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNT
eW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9w
YXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNv
dXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJlc291cmNlIGRvZXMgbm90IGhhdmUgcmVxdWlyZWQgY2Vy
dGlmaWNhdGUgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJl
c291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91
cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJz
LndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJl
c291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CiAgICAgICAgIHN0YXJ0TmV0d29ya0xvYWQoV1RG
TW92ZShyZXF1ZXN0KSwgRmlyc3RMb2FkOjpZZXMpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIGlmIChlbnRyeS0+bmVlZHNWYWxpZGF0aW9uKCkgfHwgcmVxdWVzdC5jYWNoZVBvbGljeSgp
ID09IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdENhY2hlUG9saWN5OjpSZWZyZXNoQW55Q2FjaGVE
YXRhKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRy
eTogVmFsaWRhdGluZyBjYWNoZSBlbnRyeSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9
ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2
NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlz
TWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogVmFsaWRhdGluZyBjYWNoZSBlbnRyeSAocGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUi
IFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9w
YXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50
b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNT
eW5jaHJvbm91cygpKTsKICAgICAgICAgdmFsaWRhdGVDYWNoZUVudHJ5KFdURk1vdmUoZW50cnkp
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJy
ZXRyaWV2ZUNhY2hlRW50cnk6IFJldHJpZXZlZCByZXNvdXJjZSBmcm9tIGNhY2hlIChwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJ
dTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFt
ZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3Bh
cmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsK
KyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJldHJpZXZl
ZCByZXNvdXJjZSBmcm9tIGNhY2hlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQs
IGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCks
IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlm
aWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOwogICAgIGRpZFJldHJpZXZl
Q2FjaGVFbnRyeShXVEZNb3ZlKGVudHJ5KSk7CiB9CiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9h
ZGVyOjpzdGFydE5ldHdvcmtMb2FkKFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEZpcnN0TG9h
ZCBsb2FkKQogewogICAgIGlmIChsb2FkID09IEZpcnN0TG9hZDo6WWVzKSB7Ci0gICAgICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0TmV0d29ya0xvYWQ6IChwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlz
TWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2Vi
UGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMu
aWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKKyAgICAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnROZXR3b3JrTG9hZDogKHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwg
aXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53
ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwg
bV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMo
KSk7CiAKICAgICAgICAgY29uc3VtZVNhbmRib3hFeHRlbnNpb25zKCk7CiAKQEAgLTMwOCw3ICsz
MDgsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnROZXR3b3JrTG9hZChSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBGaXJzdExvYQogICAgIH0KICAgICBpZiAoIW5ldHdvcmtT
ZXNzaW9uKSB7CiAgICAgICAgIFdURkxvZ0Fsd2F5cygiQXR0ZW1wdGVkIHRvIGNyZWF0ZSBhIE5l
dHdvcmtMb2FkIHdpdGggYSBzZXNzaW9uIChpZD0lIiBQUkl1NjQgIikgdGhhdCBkb2VzIG5vdCBl
eGlzdC4iLCBwYXJhbWV0ZXJzLnNlc3Npb25JRC5zZXNzaW9uSUQoKSk7Ci0gICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoInN0YXJ0TmV0d29ya0xvYWQ6IEF0dGVtcHRlZCB0byBj
cmVhdGUgYSBOZXR3b3JrTG9hZCB3aXRoIGEgc2Vzc2lvbiB0aGF0IGRvZXMgbm90IGV4aXN0IChw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JSIgUFJJdTY0ICIsIHNlc3Npb25JRD0lIiBQUkl1NjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFn
ZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRl
bnRpZmllciwgcGFyYW1ldGVycy5zZXNzaW9uSUQuc2Vzc2lvbklEKCkpOworICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKCJzdGFydE5ldHdvcmtMb2FkOiBBdHRlbXB0ZWQgdG8g
Y3JlYXRlIGEgTmV0d29ya0xvYWQgd2l0aCBhIHNlc3Npb24gdGhhdCBkb2VzIG5vdCBleGlzdCAo
cGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9
ICUiIFBSSXU2NCAiLCBzZXNzaW9uSUQ9JSIgUFJJdTY0ICIpIiwgbV9wYXJhbWV0ZXJzLndlYlBh
Z2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3Bh
cmFtZXRlcnMuaWRlbnRpZmllciwgcGFyYW1ldGVycy5zZXNzaW9uSUQuc2Vzc2lvbklEKCkpOwog
ICAgICAgICBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtQcm9jZXNzKCkubG9nRGlhZ25vc3RpY01lc3Nh
Z2UobV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlz
OjppbnRlcm5hbEVycm9yS2V5KCksIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6aW52
YWxpZFNlc3Npb25JREtleSgpLCBXZWJDb3JlOjpTaG91bGRTYW1wbGU6Ok5vKTsKICAgICAgICAg
ZGlkRmFpbExvYWRpbmcoaW50ZXJuYWxFcnJvcihyZXF1ZXN0LnVybCgpKSk7CiAgICAgICAgIHJl
dHVybjsKQEAgLTMyMCw3ICszMjAsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3Rh
cnROZXR3b3JrTG9hZChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBGaXJzdExvYQogICAgIHBh
cmFtZXRlcnMucmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCk7CiAgICAgbV9uZXR3b3JrTG9hZCA9
IHN0ZDo6bWFrZV91bmlxdWU8TmV0d29ya0xvYWQ+KCp0aGlzLCAmbmV0d29ya1Nlc3Npb24tPmJs
b2JSZWdpc3RyeSgpLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCAqbmV0d29ya1Nlc3Npb24pOwogCi0g
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnROZXR3b3JrTG9hZDogKHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQg
IiwgZGVzY3JpcHRpb24gPSAle3B1YmxpY31zKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9V
SW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVy
LCBtX25ldHdvcmtMb2FkLT5kZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpOworICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0TmV0d29ya0xvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGRlc2Ny
aXB0aW9uID0gJXtwdWJsaWN9cykiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCks
IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlm
aWVyLCBtX25ldHdvcmtMb2FkLT5kZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpOwogfQogCiB2
b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y2xlYW51cChMb2FkUmVzdWx0IHJlc3VsdCkKQEAg
LTM0NCw3ICszNDQsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y2xlYW51cChMb2Fk
UmVzdWx0IHJlc3VsdCkKIAogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnZlcnRUb0Rv
d25sb2FkKERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKLSAgICBSRUxFQVNFX0xP
RyhMb2FkaW5nLCAiQ29udmVydGluZyBOZXR3b3JrUmVzb3VyY2VMb2FkZXIgJXAgdG8gZG93bmxv
YWQgJSIgUFJJdTY0ICIgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCB0aGlzLCBkb3dubG9hZElELmRvd25sb2Fk
SUQoKSwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2Vi
RnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIpOworICAgIFJFTEVBU0VfTE9HKExvYWRp
bmcsICJDb252ZXJ0aW5nIE5ldHdvcmtSZXNvdXJjZUxvYWRlciAlcCB0byBkb3dubG9hZCAlIiBQ
Ukl1NjQgIiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHRoaXMsIGRvd25sb2FkSUQuZG93bmxvYWRJRCgpLCBt
X3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlE
LnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyKTsKICAgICAKICAgICAvLyBUaGlz
IGNhbiBoYXBwZW4gaWYgdGhlIHJlc291cmNlIGNhbWUgZnJvbSB0aGUgZGlzayBjYWNoZS4KICAg
ICBpZiAoIW1fbmV0d29ya0xvYWQpIHsKQEAgLTM2Miw3ICszNjIsNyBAQCB2b2lkIE5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6YWJvcnQoKQogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAK
ICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJhYm9ydDogQ2FuY2VsaW5nIHJlc291cmNlIGxv
YWQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNl
SUQgPSAlIiBQUkl1NjQgIikiLAotICAgICAgICBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUlu
dDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7
CisgICAgICAgIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJz
LndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIpOwogCiAgICAg
aWYgKG1fcGFyYW1ldGVycy5vcHRpb25zLmtlZXBBbGl2ZSAmJiBtX3Jlc3BvbnNlLmlzTnVsbCgp
ICYmICFtX2lzS2VwdEFsaXZlKSB7CiAgICAgICAgIG1faXNLZXB0QWxpdmUgPSB0cnVlOwpAQCAt
NDQ3LDcgKzQ0Nyw3IEBAIGJvb2wgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzaG91bGRJbnRlcnJ1
cHRMb2FkRm9yQ1NQRnJhbWVBbmNlc3RvcnNPclhGcmFtZU9wdGlvCiAKIHZvaWQgTmV0d29ya1Jl
c291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZSYmIHJlY2Vp
dmVkUmVzcG9uc2UsIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6IChw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JSIgUFJJdTY0ICIsIGh0dHBTdGF0dXNDb2RlID0gJWQsIGxlbmd0aCA9ICUiIFBSSWQ2NCAiKSIs
IG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1l
SUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCByZWNlaXZlZFJlc3BvbnNlLmh0dHBTdGF0dXND
b2RlKCksIHJlY2VpdmVkUmVzcG9uc2UuZXhwZWN0ZWRDb250ZW50TGVuZ3RoKCkpOworICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZTogKHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwg
aHR0cFN0YXR1c0NvZGUgPSAlZCwgbGVuZ3RoID0gJSIgUFJJZDY0ICIpIiwgbV9wYXJhbWV0ZXJz
LndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgp
LCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgcmVjZWl2ZWRSZXNwb25zZS5odHRwU3RhdHVzQ29k
ZSgpLCByZWNlaXZlZFJlc3BvbnNlLmV4cGVjdGVkQ29udGVudExlbmd0aCgpKTsKIAogICAgIG1f
cmVzcG9uc2UgPSBXVEZNb3ZlKHJlY2VpdmVkUmVzcG9uc2UpOwogCkBAIC01MjcsNyArNTI3LDcg
QEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJj
ZVJlc3BvbnNlJiYgcmVjZWl2ZWRSZXNwb24KIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpk
aWRSZWNlaXZlQnVmZmVyKFJlZjxTaGFyZWRCdWZmZXI+JiYgYnVmZmVyLCBpbnQgcmVwb3J0ZWRF
bmNvZGVkRGF0YUxlbmd0aCkKIHsKICAgICBpZiAoIW1fbnVtQnl0ZXNSZWNlaXZlZCkKLSAgICAg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZUJ1ZmZlcjogU3RhcnRlZCByZWNl
aXZpbmcgZGF0YSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwg
cmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50
NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyKTsK
KyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZUJ1ZmZlcjogU3RhcnRl
ZCByZWNlaXZpbmcgZGF0YSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQu
dG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0
ZXJzLmlkZW50aWZpZXIpOwogICAgIG1fbnVtQnl0ZXNSZWNlaXZlZCArPSBidWZmZXItPnNpemUo
KTsKIAogICAgIEFTU0VSVCghbV9jYWNoZUVudHJ5Rm9yVmFsaWRhdGlvbik7CkBAIC01NTYsNyAr
NTU2LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVCdWZmZXIoUmVm
PFNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIsIGludCByZXAKIAogdm9pZCBOZXR3b3JrUmVzb3VyY2VM
b2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3Jr
TG9hZE1ldHJpY3MpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkRmluaXNoTG9h
ZGluZzogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIiwgbGVuZ3RoID0gJXpkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdl
SUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVu
dGlmaWVyLCBtX251bUJ5dGVzUmVjZWl2ZWQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
ImRpZEZpbmlzaExvYWRpbmc6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGxlbmd0aCA9ICV6ZCkiLCBtX3BhcmFt
ZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUlu
dDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBtX251bUJ5dGVzUmVjZWl2ZWQpOwogCiAg
ICAgaWYgKHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcygpKQogICAgICAgICBt
X2Nvbm5lY3Rpb24tPmFkZE5ldHdvcmtMb2FkSW5mb3JtYXRpb25NZXRyaWNzKGlkZW50aWZpZXIo
KSwgbmV0d29ya0xvYWRNZXRyaWNzKTsKQEAgLTU5MSw3ICs1OTEsNyBAQCB2b2lkIE5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3Mm
IG5ldHdvcmtMbwogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbExvYWRpbmco
Y29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RCgiZGlkRmFpbExvYWRpbmc6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzVGltZW91dCA9ICVkLCBpc0NhbmNl
bGxhdGlvbiA9ICVkLCBpc0FjY2Vzc0NvbnRyb2wgPSAlZCwgZXJyQ29kZSA9ICVkKSIsIG1fcGFy
YW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1f
cGFyYW1ldGVycy5pZGVudGlmaWVyLCBlcnJvci5pc1RpbWVvdXQoKSwgZXJyb3IuaXNDYW5jZWxs
YXRpb24oKSwgZXJyb3IuaXNBY2Nlc3NDb250cm9sKCksIGVycm9yLmVycm9yQ29kZSgpKTsKKyAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRGYWlsTG9hZGluZzogKHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwg
aXNUaW1lb3V0ID0gJWQsIGlzQ2FuY2VsbGF0aW9uID0gJWQsIGlzQWNjZXNzQ29udHJvbCA9ICVk
LCBlcnJDb2RlID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Bh
cmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwg
ZXJyb3IuaXNUaW1lb3V0KCksIGVycm9yLmlzQ2FuY2VsbGF0aW9uKCksIGVycm9yLmlzQWNjZXNz
Q29udHJvbCgpLCBlcnJvci5lcnJvckNvZGUoKSk7CiAKICAgICBpZiAoc2hvdWxkQ2FwdHVyZUV4
dHJhTmV0d29ya0xvYWRNZXRyaWNzKCkpCiAgICAgICAgIG1fY29ubmVjdGlvbi0+cmVtb3ZlTmV0
d29ya0xvYWRJbmZvcm1hdGlvbihpZGVudGlmaWVyKCkpOwpAQCAtNzU2LDcgKzc1Niw3IEBAIHZv
aWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjb250aW51ZVdpbGxTZW5kUmVxdWVzdChSZXNvdXJj
ZVJlcXVlc3QmJiBuZXdSZXF1ZXN0CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKCJjb250aW51ZVdpbGxTZW5kUmVxdWVzdDogKHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBt
X3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlE
LCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgi
Y29udGludWVXaWxsU2VuZFJlcXVlc3Q6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9
ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV9wYXJhbWV0ZXJzLndl
YlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBt
X3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CiAKICAgICBtX2lzQWxsb3dlZFRvQXNrVXNlckZvckNy
ZWRlbnRpYWxzID0gaXNBbGxvd2VkVG9Bc2tVc2VyRm9yQ3JlZGVudGlhbHM7CiAKQEAgLTEwMTEs
MTIgKzEwMTEsMTcgQEAgc3RhdGljIFN0cmluZyBlc2NhcGVGb3JKU09OKFN0cmluZyBzKQogc3Rh
dGljIFN0cmluZyBlc2NhcGVJREZvckpTT04oY29uc3QgT3B0aW9uYWw8dWludDY0X3Q+JiB2YWx1
ZSkKIHsKICAgICByZXR1cm4gdmFsdWUgPyBTdHJpbmc6Om51bWJlcih2YWx1ZS52YWx1ZSgpKSA6
IFN0cmluZygiTm9uZSJfcyk7Ci19OworfQorCitzdGF0aWMgU3RyaW5nIGVzY2FwZUlERm9ySlNP
Tihjb25zdCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+JiB2YWx1ZSkKK3sKKyAgICByZXR1cm4g
dmFsdWUgPyBTdHJpbmc6Om51bWJlcih2YWx1ZS0+dG9VSW50NjQoKSkgOiBTdHJpbmcoIk5vbmUi
X3MpOworfQogCiBzdGF0aWMgU3RyaW5nIGVzY2FwZUlERm9ySlNPTihjb25zdCBPcHRpb25hbDxQ
YWdlSWRlbnRpZmllcj4mIHZhbHVlKQogewogICAgIHJldHVybiB2YWx1ZSA/IFN0cmluZzo6bnVt
YmVyKHZhbHVlLT50b1VJbnQ2NCgpKSA6IFN0cmluZygiTm9uZSJfcyk7Ci19OworfQogCiB2b2lk
IE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6bG9nQ29va2llSW5mb3JtYXRpb24oKSBjb25zdAogewpA
QCAtMTAyOCw3ICsxMDMzLDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmxvZ0Nvb2tp
ZUluZm9ybWF0aW9uKCkgY29uc3QKICAgICBsb2dDb29raWVJbmZvcm1hdGlvbihtX2Nvbm5lY3Rp
b24sICJOZXR3b3JrUmVzb3VyY2VMb2FkZXIiLCByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQq
Pih0aGlzKSwgKm5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgb3JpZ2luYWxSZXF1ZXN0KCkuZmlyc3RQ
YXJ0eUZvckNvb2tpZXMoKSwgU2FtZVNpdGVJbmZvOjpjcmVhdGUob3JpZ2luYWxSZXF1ZXN0KCkp
LCBvcmlnaW5hbFJlcXVlc3QoKS51cmwoKSwgb3JpZ2luYWxSZXF1ZXN0KCkuaHR0cFJlZmVycmVy
KCksIGZyYW1lSUQoKSwgcGFnZUlEKCksIGlkZW50aWZpZXIoKSk7CiB9CiAKLXN0YXRpYyB2b2lk
IGxvZ0Jsb2NrZWRDb29raWVJbmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyYgY29ubmVjdGlvbiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2Jq
ZWN0LCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIG5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVT
aXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIE9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBPcHRp
b25hbDx1aW50NjRfdD4gaWRlbnRpZmllcikKK3N0YXRpYyB2b2lkIGxvZ0Jsb2NrZWRDb29raWVJ
bmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgY29u
c3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBjb25zdCBXZWJDb3Jl
OjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgY29uc3QgVVJM
JiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJM
JiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4g
ZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgT3B0aW9uYWw8dWludDY0
X3Q+IGlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2hv
dWxkTG9nQ29va2llSW5mb3JtYXRpb24oY29ubmVjdGlvbiwgbmV0d29ya1N0b3JhZ2VTZXNzaW9u
LnNlc3Npb25JRCgpKSk7CiAKQEAgLTEwNTUsNyArMTA2MCw3IEBAIHN0YXRpYyB2b2lkIGxvZ0Js
b2NrZWRDb29raWVJbmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29u
bmVjdGlvCiAjdW5kZWYgTE9DQUxfTE9HX0lGX0FMTE9XRUQKIH0KIAotc3RhdGljIHZvaWQgbG9n
Q29va2llSW5mb3JtYXRpb25JbnRlcm5hbChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYg
Y29ubmVjdGlvbiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0
LCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIG5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8m
IHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIE9w
dGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlE
LCBPcHRpb25hbDx1aW50NjRfdD4gaWRlbnRpZmllcikKK3N0YXRpYyB2b2lkIGxvZ0Nvb2tpZUlu
Zm9ybWF0aW9uSW50ZXJuYWwoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rp
b24sIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29uc3Qg
V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24sIGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiBzYW1lU2l0
ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBPcHRpb25hbDxG
cmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQs
IE9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyKQogewogICAgIEFTU0VSVChOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OnNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKGNvbm5lY3Rpb24sIG5ldHdv
cmtTdG9yYWdlU2Vzc2lvbi5zZXNzaW9uSUQoKSkpOwogCkBAIC0xMTE2LDcgKzExMjEsNyBAQCBz
dGF0aWMgdm9pZCBsb2dDb29raWVJbmZvcm1hdGlvbkludGVybmFsKE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzJiBjb25uZWN0aQogI3VuZGVmIExPQ0FMX0xPR19JRl9BTExPV0VECiB9CiAK
LXZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpsb2dDb29raWVJbmZvcm1hdGlvbihOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgY29uc3QgU3RyaW5nJiBsYWJlbCwg
Y29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIG5l
dHdvcmtTdG9yYWdlU2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0
ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJy
ZXIsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
cGFnZUlELCBPcHRpb25hbDx1aW50NjRfdD4gaWRlbnRpZmllcikKK3ZvaWQgTmV0d29ya1Jlc291
cmNlTG9hZGVyOjpsb2dDb29raWVJbmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYgY29ubmVjdGlvbiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2Vk
T2JqZWN0LCBjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIG5ldHdvcmtTdG9yYWdlU2Vzc2lv
biwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5m
bywgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIE9wdGlvbmFsPEZyYW1l
SWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgT3B0
aW9uYWw8dWludDY0X3Q+IGlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKHNob3VsZExvZ0Nvb2tp
ZUluZm9ybWF0aW9uKGNvbm5lY3Rpb24sIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5zZXNzaW9uSUQo
KSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuaAppbmRleCA2MmM2NWNkZGZmN2NhMGIyMGExYzE5MDk5YjlmNzE1ZmFlNDU0
YThlLi43NDkyZGYzMmY3OTk2ZTA5MDNiZTkwZGEwMDVlOWIxNDZkYTE1ZmJjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgK
QEAgLTg1LDcgKzg1LDcgQEAgcHVibGljOgogICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkgY29uc3QgeyByZXR1cm4gbV9jb25uZWN0aW9u
OyB9CiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9wYXJh
bWV0ZXJzLnNlc3Npb25JRDsgfQogICAgIFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmll
cigpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyOyB9Ci0gICAgdWludDY0
X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlEOyB9Cisg
ICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX3Bh
cmFtZXRlcnMud2ViRnJhbWVJRDsgfQogICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQ7IH0KIAogICAgIHN0cnVj
dCBTeW5jaHJvbm91c0xvYWREYXRhOwpAQCAtMTEyLDcgKzExMiw3IEBAIHB1YmxpYzoKIAogI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpICYmICFSRUxFQVNFX0xPR19ESVNBQkxF
RAogICAgIHN0YXRpYyBib29sIHNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzJiwgY29uc3QgUEFMOjpTZXNzaW9uSUQmKTsKLSAgICBzdGF0aWMg
dm9pZCBsb2dDb29raWVJbmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYs
IGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29uc3QgV2Vi
Q29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHJlZmVy
cmVyLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXI+LCBPcHRpb25hbDx1aW50NjRfdD4gaWRlbnRpZmllcik7CisgICAgc3RhdGljIHZv
aWQgbG9nQ29va2llSW5mb3JtYXRpb24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBj
b25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2b2lkKiBsb2dnZWRPYmplY3QsIGNvbnN0IFdlYkNv
cmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
V2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiByZWZlcnJl
ciwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8V2ViQ29yZTo6
UGFnZUlkZW50aWZpZXI+LCBPcHRpb25hbDx1aW50NjRfdD4gaWRlbnRpZmllcik7CiAjZW5kaWYK
IAogICAgIHZvaWQgZGlzYWJsZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzQ2FwdHVyZSgpIHsgbV9z
aG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MgPSBmYWxzZTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmgKaW5kZXggZDk0
ZmM3MzgwZjE5YTVmNWY1Yjc4ZWEzOWVmMWQ2NWE5MjExZWU0Zi4uODVkMTAwY2E2YzdjMDVmYjhj
M2QxMmQwM2E0NDAyODExMDM5NWVmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAi
TmV0d29ya0NhY2hlRW50cnkuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVTdG9yYWdlLmgiCiAj
aW5jbHVkZSAiU2hhcmVhYmxlUmVzb3VyY2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRl
bnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhh
bmRsZXIuaD4KQEAgLTg1LDcgKzg2LDcgQEAgZW51bSBjbGFzcyBVc2VEZWNpc2lvbiB7CiAgICAg
Tm9EdWVUb0V4cGlyZWRSZWRpcmVjdAogfTsKIAotdXNpbmcgR2xvYmFsRnJhbWVJRCA9IHN0ZDo6
cGFpcjxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgLyp3ZWJGcmFtZUlEKi8+Owor
dXNpbmcgR2xvYmFsRnJhbWVJRCA9IHN0ZDo6cGFpcjxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPjsgLy8gRklYTUU6IFVzZSBHbG9iYWxGcmFtZUlkZW50
aWZpZXIuCiAKIGVudW0gY2xhc3MgQ2FjaGVPcHRpb24gOiB1aW50OF90IHsKICAgICAvLyBJbiB0
ZXN0aW5nIG1vZGUgd2UgdHJ5IHRvIGVsaW1pbmF0ZSBzb3VyY2VzIG9mIHJhbmRvbW5lc3MuIENh
Y2hlIGRvZXMgbm90IHNocmluayBhbmQgdGhlcmUgYXJlIG5vIHJlYWQgdGltZW91dHMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFz
a0NvY29hLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRh
VGFza0NvY29hLmgKaW5kZXggMjc5MzU3NTM1YmUxZTg0YTEzZDMxZmY3ZmMzMmVjODJlNjllZGI4
Zi4uNDNhZDZmMWRlNDFjNTE2MWRkOWRiM2I2OWFmOTFjYTNmN2FiMjQzMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNr
Q29jb2EuaApAQCAtNDIsNyArNDIsNyBAQCBjbGFzcyBOZXR3b3JrU2Vzc2lvbkNvY29hOwogY2xh
c3MgTmV0d29ya0RhdGFUYXNrQ29jb2EgZmluYWwgOiBwdWJsaWMgTmV0d29ya0RhdGFUYXNrIHsK
ICAgICBmcmllbmQgY2xhc3MgTmV0d29ya1Nlc3Npb25Db2NvYTsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPE5ldHdvcmtEYXRhVGFzaz4gY3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBO
ZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBw
YWdlSUQsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxz
UG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZm
LCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50RW5j
b2RpbmdTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0
LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lzRm9y
TWFpbkZyYW1lTmF2aWdhdGlvbiwgYm9vbCBkYXRhVGFza0lzRm9yTWFpblJlc291cmNlTmF2aWdh
dGlvbkZvckFueUZyYW1lLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBuZXR3b3Jr
QWN0aXZpdHlUcmFja2VyKQorICAgIHN0YXRpYyBSZWY8TmV0d29ya0RhdGFUYXNrPiBjcmVhdGUo
TmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6
OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3Jl
OjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBXZWJDb3JlOjpDb250
ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgYm9v
bCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25s
eSBzaG91bGRQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdh
dGlvbiwgYm9vbCBkYXRhVGFza0lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1l
LCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBuZXR3b3JrQWN0aXZpdHlUcmFja2Vy
KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya0RhdGFUYXNrQ29j
b2Eoc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0LCBmcmFtZUlELCBwYWdlSUQsIHN0b3JlZENyZWRl
bnRpYWxzUG9saWN5LCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENvbnRlbnRFbmNvZGluZ1Nu
aWZmLCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBzaG91bGRQcmVj
b25uZWN0T25seSwgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24sIGRhdGFUYXNrSXNG
b3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIG5ldHdvcmtBY3Rpdml0eVRyYWNr
ZXIpKTsKICAgICB9CkBAIC02OSwxMyArNjksMTMgQEAgcHVibGljOgogCiAgICAgV2ViQ29yZTo6
TmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3JrTG9hZE1ldHJpY3MoKSB7IHJldHVybiBtX25ldHdv
cmtMb2FkTWV0cmljczsgfQogCi0gICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJu
IG1fZnJhbWVJRDsgfTsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNv
bnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfTsKICAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBw
YWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VJRDsgfTsKIAogICAgIFN0cmluZyBkZXNjcmlw
dGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIE5ldHdvcmtEYXRhVGFza0Nv
Y29hKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50
U25pZmZpbmdQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5LCBi
b29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RP
bmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBib29sIGRhdGFUYXNr
SXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIE9wdGlvbmFsPE5ldHdvcmtB
Y3Rpdml0eVRyYWNrZXI+KTsKKyAgICBOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lv
biYsIE5ldHdvcmtEYXRhVGFza0NsaWVudCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdl
YkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQ
b2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5LCBib29sIHNob3Vs
ZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5LCBib29s
IGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBib29sIGRhdGFUYXNrSXNGb3JNYWlu
UmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRy
YWNrZXI+KTsKIAogICAgIGJvb2wgdHJ5UGFzc3dvcmRCYXNlZEF1dGhlbnRpY2F0aW9uKGNvbnN0
IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgQ2hhbGxlbmdlQ29tcGxldGlvbkhh
bmRsZXImKTsKICAgICB2b2lkIGFwcGx5U25pZmZpbmdQb2xpY2llc0FuZEJpbmRSZXF1ZXN0VG9J
bmZlcmZhY2VJZk5lZWRlZChfX3N0cm9uZyBOU1VSTFJlcXVlc3QqJiwgYm9vbCBzaG91bGRDb250
ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpOwpAQCAtOTIsNyArOTIs
NyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBtX3NhbmRib3hFeHRl
bnNpb247CiAgICAgUmV0YWluUHRyPE5TVVJMU2Vzc2lvbkRhdGFUYXNrPiBtX3Rhc2s7CiAgICAg
V2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzIG1fbmV0d29ya0xvYWRNZXRyaWNzOwotICAgIHVp
bnQ2NF90IG1fZnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbV9mcmFtZUlE
OwogICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIG1fcGFnZUlEOwogCiAjaWYgRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCmluZGV4IDQyZTdhY2U0
MjRiMmFiOGJiMDBhMzdjOTYzZWE5N2Q0NDEzMTVhZTAuLmMyZTdiMzY4NTRlNzM5NWNiNjkzMGQ2
ZTI1NzQ4YzRiYWQ2MDEyMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQpAQCAtMTcwLDcgKzE3MCw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBjb21wdXRlSXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKE5l
dHdvcmtTZXNzaW9uJiBzZXNzaW9uKQogICAgIHJldHVybiBzZXNzaW9uLnNlc3Npb25JRCgpLmlz
QWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpOwogfQogCi1OZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0
d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFz
a0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3RX
aXRoQ3JlZGVudGlhbHMsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25p
ZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRF
bmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJl
Y3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNG
b3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBib29sIGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZp
Z2F0aW9uRm9yQW55RnJhbWUsIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+IG5ldHdv
cmtBY3Rpdml0eVRyYWNrZXIpCitOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNr
Q29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xp
ZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3RXaXRoQ3JlZGVudGlh
bHMsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciBwYWdlSUQsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRl
bnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVu
dFNuaWZmLCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250
ZW50RW5jb2RpbmdTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJl
ZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFz
a0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgYm9vbCBkYXRhVGFza0lzRm9yTWFpblJlc291cmNl
TmF2aWdhdGlvbkZvckFueUZyYW1lLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBu
ZXR3b3JrQWN0aXZpdHlUcmFja2VyKQogICAgIDogTmV0d29ya0RhdGFUYXNrKHNlc3Npb24sIGNs
aWVudCwgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNo
b3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIGRhdGFUYXNrSXNGb3JNYWlu
RnJhbWVOYXZpZ2F0aW9uKQogICAgICwgbV9mcmFtZUlEKGZyYW1lSUQpCiAgICAgLCBtX3BhZ2VJ
RChwYWdlSUQpCkBAIC0yNTYsNyArMjU2LDcgQEAgTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdv
cmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVQKICAg
ICBpZiAoc2hvdWxkQmxvY2tDb29raWVzKSB7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAg
ICAgICAgIGlmIChtX3Nlc3Npb24tPnNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKCkpCi0gICAg
ICAgICAgICBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29y
aywgIiVwIC0gTmV0d29ya0RhdGFUYXNrQ29jb2E6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uOiBwYWdl
SUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwgdGFza0lEID0gJWx1OiBCbG9ja2luZyBjb29raWVz
IGZvciBVUkwgJXMiLCB0aGlzLCBwYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCwgKHVuc2lnbmVk
IGxvbmcpW21fdGFzayB0YXNrSWRlbnRpZmllcl0sIG5zUmVxdWVzdC5VUkwuYWJzb2x1dGVTdHJp
bmcuVVRGOFN0cmluZyk7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9n
Z2luZ0FsbG93ZWQoKSwgTmV0d29yaywgIiVwIC0gTmV0d29ya0RhdGFUYXNrQ29jb2E6OmxvZ0Nv
b2tpZUluZm9ybWF0aW9uOiBwYWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwgdGFza0lEID0g
JWx1OiBCbG9ja2luZyBjb29raWVzIGZvciBVUkwgJXMiLCB0aGlzLCBwYWdlSUQudG9VSW50NjQo
KSwgZnJhbWVJRC50b1VJbnQ2NCgpLCAodW5zaWduZWQgbG9uZylbbV90YXNrIHRhc2tJZGVudGlm
aWVyXSwgbnNSZXF1ZXN0LlVSTC5hYnNvbHV0ZVN0cmluZy5VVEY4U3RyaW5nKTsKICNlbHNlCiAg
ICAgICAgIExPRyhOZXR3b3JrU2Vzc2lvbiwgIiVsbHUgQmxvY2tpbmcgY29va2llcyBmb3IgVVJM
ICVzIiwgW21fdGFzayB0YXNrSWRlbnRpZmllcl0sIG5zUmVxdWVzdC5VUkwuYWJzb2x1dGVTdHJp
bmcuVVRGOFN0cmluZyk7CiAjZW5kaWYKQEAgLTM5MCw3ICszOTAsNyBAQCB2b2lkIE5ldHdvcmtE
YXRhVGFza0NvY29hOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbihXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJgogICAgIH0KICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBpZiAobV9z
ZXNzaW9uLT5zaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbigpKQotICAgICAgICBSRUxFQVNFX0xP
R19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29yaywgIiVwIC0gTmV0d29ya0Rh
dGFUYXNrQ29jb2E6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uOjpsb2dDb29raWVJbmZvcm1h
dGlvbjogcGFnZUlEID0gJWxsdSwgZnJhbWVJRCA9ICVsbHUsIHRhc2tJRCA9ICVsdTogJXMgY29v
a2llcyBmb3IgcmVkaXJlY3QgVVJMICVzIiwgdGhpcywgbV9wYWdlSUQudG9VSW50NjQoKSwgbV9m
cmFtZUlELCAodW5zaWduZWQgbG9uZylbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgKG1faGFzQmVl
blNldFRvVXNlU3RhdGVsZXNzQ29va2llU3RvcmFnZSA/ICJCbG9ja2luZyIgOiAiTm90IGJsb2Nr
aW5nIiksIHJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIFJF
TEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3b3JrLCAiJXAgLSBO
ZXR3b3JrRGF0YVRhc2tDb2NvYTo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb246OmxvZ0Nvb2tp
ZUluZm9ybWF0aW9uOiBwYWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwgdGFza0lEID0gJWx1
OiAlcyBjb29raWVzIGZvciByZWRpcmVjdCBVUkwgJXMiLCB0aGlzLCBtX3BhZ2VJRC50b1VJbnQ2
NCgpLCBtX2ZyYW1lSUQudG9VSW50NjQoKSwgKHVuc2lnbmVkIGxvbmcpW21fdGFzayB0YXNrSWRl
bnRpZmllcl0sIChtX2hhc0JlZW5TZXRUb1VzZVN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2UgPyAiQmxv
Y2tpbmciIDogIk5vdCBibG9ja2luZyIpLCByZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOwogI2Vsc2UKICAgICBMT0coTmV0d29ya1Nlc3Npb24sICIlbGx1ICVzIGNvb2tpZXMg
Zm9yIHJlZGlyZWN0IFVSTCAlcyIsIFttX3Rhc2sgdGFza0lkZW50aWZpZXJdLCAobV9oYXNCZWVu
U2V0VG9Vc2VTdGF0ZWxlc3NDb29raWVTdG9yYWdlID8gIkJsb2NraW5nIiA6ICJOb3QgYmxvY2tp
bmciKSwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggZjBlYzhkYzFiNzE2OWJj
Y2E1NWE2NTQ5MTJlZDJmZWY1MzcwZGYxMC4uYzAxZTg5NTllODA3ZmY2MjRlZjg1NzdlYjM1NTY1
ZTQyZDkzYTNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBA
IC0yMDUsNiArMjA1LDcgQEAgZGVmIGZvcndhcmRfZGVjbGFyYXRpb25zX2FuZF9oZWFkZXJzKHJl
Y2VpdmVyKToKICAgICAgICAgJ1N0cmluZycsCiAgICAgICAgICdXZWJDb3JlOjpEb2N1bWVudElk
ZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyJywKKyAgICAgICAg
J1dlYkNvcmU6OkZyYW1lSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpQb2ludGVySUQnLAogICAgICAgICAnV2ViQ29yZTo6
UHJvY2Vzc0lkZW50aWZpZXInLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJ
L0FQSUZyYW1lSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElGcmFtZUhh
bmRsZS5jcHAKaW5kZXggNzk2NDZhYzZlNTljNDFkNGRmNzA5MDFkYmE3ZTI2NzUzMzZkNTI0YS4u
NDA4MDEzODg1NDhhMTgxMWFiNTllNWNiMjQ1YTExNTIxMTQyYmVmYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuY3BwCkBAIC0zMSwxNyArMzEsMTcgQEAKIAog
bmFtZXNwYWNlIEFQSSB7CiAKLVJlZjxGcmFtZUhhbmRsZT4gRnJhbWVIYW5kbGU6OmNyZWF0ZSh1
aW50NjRfdCBmcmFtZUlEKQorUmVmPEZyYW1lSGFuZGxlPiBGcmFtZUhhbmRsZTo6Y3JlYXRlKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEZyYW1lSGFuZGxlKGZyYW1lSUQsIGZhbHNlKSk7CiB9CiAKLVJlZjxGcmFtZUhhbmRsZT4g
RnJhbWVIYW5kbGU6OmNyZWF0ZUF1dG9jb252ZXJ0aW5nKHVpbnQ2NF90IGZyYW1lSUQpCitSZWY8
RnJhbWVIYW5kbGU+IEZyYW1lSGFuZGxlOjpjcmVhdGVBdXRvY29udmVydGluZyhXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGcmFt
ZUhhbmRsZShmcmFtZUlELCB0cnVlKSk7CiB9CiAKLUZyYW1lSGFuZGxlOjpGcmFtZUhhbmRsZSh1
aW50NjRfdCBmcmFtZUlELCBib29sIGlzQXV0b2NvbnZlcnRpbmcpCitGcmFtZUhhbmRsZTo6RnJh
bWVIYW5kbGUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wgaXNBdXRvY29u
dmVydGluZykKICAgICA6IG1fZnJhbWVJRChmcmFtZUlEKQogICAgICwgbV9pc0F1dG9jb252ZXJ0
aW5nKGlzQXV0b2NvbnZlcnRpbmcpCiB7CkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgRnJhbWVIYW5k
bGU6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAKIGJvb2wgRnJhbWVIYW5k
bGU6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFJlZlB0cjxPYmplY3Q+JiByZXN1bHQp
CiB7Ci0gICAgdWludDY0X3QgZnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGZyYW1lSUQpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElGcmFt
ZUhhbmRsZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmgKaW5k
ZXggYjEwZTgwOGE0YjE5YWQzMTNkOGI0NTVjMjNiOWQ4Mzk5Y2MzODU1MC4uMWM2NGE0YWQxZTgw
MmEwNDY3Mjk4MWJjYmY4YTc2MDE2NDI1ZmZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJ
L0FQSUZyYW1lSGFuZGxlLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgQVBJRnJhbWVIYW5k
bGVfaAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlk
ZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKIG5hbWVzcGFjZSBJUEMgewpAQCAt
MzgsMjAgKzM5LDIwIEBAIG5hbWVzcGFjZSBBUEkgewogCiBjbGFzcyBGcmFtZUhhbmRsZSA6IHB1
YmxpYyBPYmplY3RJbXBsPE9iamVjdDo6VHlwZTo6RnJhbWVIYW5kbGU+IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPEZyYW1lSGFuZGxlPiBjcmVhdGUodWludDY0X3QgZnJhbWVJRCk7Ci0gICAg
c3RhdGljIFJlZjxGcmFtZUhhbmRsZT4gY3JlYXRlQXV0b2NvbnZlcnRpbmcodWludDY0X3QgZnJh
bWVJRCk7CisgICAgc3RhdGljIFJlZjxGcmFtZUhhbmRsZT4gY3JlYXRlKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcik7CisgICAgc3RhdGljIFJlZjxGcmFtZUhhbmRsZT4gY3JlYXRlQXV0b2NvbnZl
cnRpbmcoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKIAotICAgIGV4cGxpY2l0IEZyYW1lSGFu
ZGxlKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNBdXRvY29udmVydGluZyk7CisgICAgZXhwbGlj
aXQgRnJhbWVIYW5kbGUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBib29sIGlzQXV0b2NvbnZl
cnRpbmcpOwogICAgIHZpcnR1YWwgfkZyYW1lSGFuZGxlKCk7CiAKLSAgICB1aW50NjRfdCBmcmFt
ZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KICAgICBib29sIGlz
QXV0b2NvbnZlcnRpbmcoKSBjb25zdCB7IHJldHVybiBtX2lzQXV0b2NvbnZlcnRpbmc7IH0KIAog
ICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRl
Y29kZShJUEM6OkRlY29kZXImLCBSZWZQdHI8T2JqZWN0PiYpOwogCiBwcml2YXRlOgotICAgIGNv
bnN0IHVpbnQ2NF90IG1fZnJhbWVJRDsKKyAgICBjb25zdCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgbV9mcmFtZUlEOwogICAgIGNvbnN0IGJvb2wgbV9pc0F1dG9jb252ZXJ0aW5nOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS0ZyYW1lSGFuZGxl
Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS0ZyYW1lSGFuZGxlLm1tCmlu
ZGV4IGE0MWE2MTNhN2QzNzFkN2FlMmE3M2U0MDU4MjdiMGFiZDczNTcwNzAuLmVkY2IzOGU2MzVh
N2JmMDkyN2IxMTBjYzdkNGNmOTc2NmFiNWQwODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5kbGUubW0KQEAgLTI2LDYgKzI2LDggQEAKICNpbXBv
cnQgImNvbmZpZy5oIgogI2ltcG9ydCAiX1dLRnJhbWVIYW5kbGVJbnRlcm5hbC5oIgogCisjaW1w
b3J0IDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgorCiBAaW1wbGVtZW50YXRpb24gX1dLRnJh
bWVIYW5kbGUgewogICAgIEFQSTo6T2JqZWN0U3RvcmFnZTxBUEk6OkZyYW1lSGFuZGxlPiBfZnJh
bWVIYW5kbGU7CiB9CkBAIC01MCwxMiArNTIsMTIgQEAgLSAoQk9PTClpc0VxdWFsOihpZClvYmpl
Y3QKIAogLSAoTlNVSW50ZWdlciloYXNoCiB7Ci0gICAgcmV0dXJuIF9mcmFtZUhhbmRsZS0+ZnJh
bWVJRCgpOworICAgIHJldHVybiBfZnJhbWVIYW5kbGUtPmZyYW1lSUQoKS50b1VJbnQ2NCgpOwog
fQogCiAtICh1aW50NjRfdClfZnJhbWVJRAogewotICAgIHJldHVybiBfZnJhbWVIYW5kbGUtPmZy
YW1lSUQoKTsKKyAgICByZXR1cm4gX2ZyYW1lSGFuZGxlLT5mcmFtZUlEKCkudG9VSW50NjQoKTsK
IH0KIAogI3ByYWdtYSBtYXJrIE5TQ29weWluZyBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbgpAQCAt
ODMsMTQgKzg1LDE0IEBAIC0gKGlkKWluaXRXaXRoQ29kZXI6KE5TQ29kZXIgKilkZWNvZGVyCiAg
ICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCi0gICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdElu
V3JhcHBlcjxBUEk6OkZyYW1lSGFuZGxlPihzZWxmLCBmcmFtZUlELnVuc2lnbmVkTG9uZ0xvbmdW
YWx1ZSwgZmFsc2UpOworICAgIEFQSTo6T2JqZWN0Ojpjb25zdHJ1Y3RJbldyYXBwZXI8QVBJOjpG
cmFtZUhhbmRsZT4oc2VsZiwgV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKGZyYW1lSUQu
dW5zaWduZWRMb25nTG9uZ1ZhbHVlKSwgZmFsc2UpOwogCiAgICAgcmV0dXJuIHNlbGY7CiB9CiAK
IC0gKHZvaWQpZW5jb2RlV2l0aENvZGVyOihOU0NvZGVyICopY29kZXIKIHsKLSAgICBbY29kZXIg
ZW5jb2RlT2JqZWN0OkAoX2ZyYW1lSGFuZGxlLT5mcmFtZUlEKCkpIGZvcktleTpAImZyYW1lSUQi
XTsKKyAgICBbY29kZXIgZW5jb2RlT2JqZWN0OkAoW3NlbGYgX2ZyYW1lSURdKSBmb3JLZXk6QCJm
cmFtZUlEIl07CiB9CiAKICNwcmFnbWEgbWFyayBXS09iamVjdCBwcm90b2NvbCBpbXBsZW1lbnRh
dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0
aGVudGljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggOWRlYjc2ZmYxMzJjNmNiNWZkZjVl
YmY1MjIyMzRmNmQ0NDNlZjk0ZC4uMzhhNWJmZjZhZmQyNTcxZDUyZGNlNGMwOTgwNGFhNzU0NGFi
ZTRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0
aGVudGljYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCkBAIC0xMDgsNyArMTA4LDcgQEAgVmVj
dG9yPHVpbnQ2NF90PiBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmNvYWxlc2NlQ2hhbGxlbmdlc01h
dGNoaW5nKHVpbnQ2NF90IGNoYWwKICAgICByZXR1cm4gY2hhbGxlbmdlc1RvQ29hbGVzY2U7CiB9
CiAKLXZvaWQgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UsIENoYWxsZW5n
ZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIEF1dGhlbnRpY2F0
aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgQ2hhbGxlbmdlQ29tcGxldGlvbkhh
bmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQocGFnZUlEKTsKICAgICBB
U1NFUlQoZnJhbWVJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1
dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oCmluZGV4IDg2ZTc0NGMxMDhkZjRj
YmNmNWQwNDc2MDlhY2Y5NmM2ODIzZDZiMTYuLjQwMzZlYWI3N2ZkOWNlMTU1NTMwZmI2YTRjYzU2
MTY4M2Q3ZWQ5MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1
dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oCkBAIC0yOSw2ICsyOSw3IEBACiAj
aW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vz
c1N1cHBsZW1lbnQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTYxLDcgKzYyLDcgQEAgcHVibGljOgogCiAg
ICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CiAKLSAgICB2b2lkIGRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBD
aGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxs
ZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKElQQzo6TWVzc2FnZVNlbmRlciYgZG93bmxvYWQsIGNvbnN0IFdlYkNvcmU6
OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJik7
CiAKICAgICB2b2lkIGNvbXBsZXRlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UodWludDY0X3QgY2hh
bGxlbmdlSUQsIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24sIFdlYkNvcmU6OkNy
ZWRlbnRpYWwmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9GcmFtZUluZm9E
YXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuY3BwCmluZGV4IDk0
NDIzNzQ1NjU4MTZmNGU4ODA0MGZmMDg0ZTBjMWEzYmU1MzFmZjQuLjNlOWQ3MmVhZDUzYzU4MzJj
NDMzMTczNGI3MDc0MWZkYjM0YTIxMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0ZyYW1lSW5mb0RhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0Rh
dGEuY3BwCkBAIC00OSw4ICs0OSwxMiBAQCBib29sIEZyYW1lSW5mb0RhdGE6OmRlY29kZShJUEM6
OkRlY29kZXImIGRlY29kZXIsIEZyYW1lSW5mb0RhdGEmIHJlc3VsdCkKICAgICBpZiAoIXNlY3Vy
aXR5T3JpZ2luKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmVzdWx0LnNlY3VyaXR5T3Jp
Z2luID0gV1RGTW92ZSgqc2VjdXJpdHlPcmlnaW4pOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cmVzdWx0LmZyYW1lSUQpKQorICAgIAorICAgIE9wdGlvbmFsPE9wdGlvbmFsPEZyYW1lSWRlbnRp
Zmllcj4+IGZyYW1lSUQ7CisgICAgZGVjb2RlciA+PiBmcmFtZUlEOworICAgIGlmICghZnJhbWVJ
RCkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJlc3VsdC5mcmFtZUlEID0gV1RGTW92ZSgq
ZnJhbWVJRCk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5m
b0RhdGEuaAppbmRleCBhODI4MzY4NmYxNmFiM2NkMzUyNDljZTcwNWQzZjJiOGU3YmIzYzY2Li41
Mzg3MTZlYjIxZWI1NDBhNDE3NzljN2U2YjhmZmQ0MzUyZmJjMTNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9GcmFtZUluZm9EYXRhLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvRnJhbWVJbmZvRGF0YS5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisj
aW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+
CiAKQEAgLTQyLDcgKzQzLDcgQEAgc3RydWN0IEZyYW1lSW5mb0RhdGEgewogICAgIGJvb2wgaXNN
YWluRnJhbWUgeyBmYWxzZSB9OwogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0
OwogICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBzZWN1cml0eU9yaWdpbjsKLSAgICB1
aW50NjRfdCBmcmFtZUlEIHsgMCB9OworICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRp
Zmllcj4gZnJhbWVJRDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElGcmFtZUluZm8uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SUZyYW1lSW5mby5jcHAKaW5kZXggOTZiMTNkMTc4NTQ0NWMzOTczM2IyZjA0OGE2MGYyMDIxNTA4
YzhjOC4uODI5NzI4YjkxZDYxYWEyNjA0NzVlMmExYzkxZDI0MjBlOTc4NjBmYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUZyYW1lSW5mby5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUZyYW1lSW5mby5jcHAKQEAgLTU1LDcgKzU1LDcg
QEAgRnJhbWVJbmZvOjpGcmFtZUluZm8oY29uc3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhJiBmcmFt
ZUluZm9EYXRhLCBXZWJLaXQ6OldlYlBhZ2UKICAgICA6IG1faXNNYWluRnJhbWUgeyBmcmFtZUlu
Zm9EYXRhLmlzTWFpbkZyYW1lIH0KICAgICAsIG1fcmVxdWVzdCB7IGZyYW1lSW5mb0RhdGEucmVx
dWVzdCB9CiAgICAgLCBtX3NlY3VyaXR5T3JpZ2luIHsgU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShm
cmFtZUluZm9EYXRhLnNlY3VyaXR5T3JpZ2luLnNlY3VyaXR5T3JpZ2luKCkpIH0KLSAgICAsIG1f
aGFuZGxlIHsgQVBJOjpGcmFtZUhhbmRsZTo6Y3JlYXRlKGZyYW1lSW5mb0RhdGEuZnJhbWVJRCkg
fQorICAgICwgbV9oYW5kbGUgeyBBUEk6OkZyYW1lSGFuZGxlOjpjcmVhdGUoZnJhbWVJbmZvRGF0
YS5mcmFtZUlEID8gKmZyYW1lSW5mb0RhdGEuZnJhbWVJRCA6IFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllcnsgfSkgfQogICAgICwgbV9wYWdlIHsgbWFrZVJlZlB0cihwYWdlKSB9CiB7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lSGFuZGxlUmVmLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVIYW5kbGVSZWYuY3BwCmlu
ZGV4IGIzOWZjYTFiZTU3ZjBkMjc0ZDg0NTdmMDQzZjUwZWFiNjJmMjNjNTguLmU4NzNmYzQ2NTFk
NTI2OTM4OTM2OWZjNjBhNzgwMjY1NDIwNWRkN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVIYW5kbGVSZWYuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVIYW5kbGVSZWYuY3BwCkBAIC0zOCw1ICszOCw1IEBAIFdL
VHlwZUlEIFdLRnJhbWVIYW5kbGVHZXRUeXBlSUQoKQogCiB1aW50NjRfdCBXS0ZyYW1lSGFuZGxl
R2V0RnJhbWVJRChXS0ZyYW1lSGFuZGxlUmVmIGZyYW1lSGFuZGxlUmVmKQogewotICAgIHJldHVy
biB0b0ltcGwoZnJhbWVIYW5kbGVSZWYpLT5mcmFtZUlEKCk7CisgICAgcmV0dXJuIHRvSW1wbChm
cmFtZUhhbmRsZVJlZiktPmZyYW1lSUQoKS50b1VJbnQ2NCgpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMDM5MWExOTkyZTM1MzJk
YmU1ZjIxZGI2OTFkZDgxMDhhYWUyYTY2Yy4uMDk1MWU5NDQzN2JjZTQ2NjVkNjE1YmQwNDBkMjZk
ZjIwYjY0ZGYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tCkBAIC02NjIxLDcgKzY2MjEsNyBAQCAtIChOU1ByaW50T3BlcmF0aW9uICopX3By
aW50T3BlcmF0aW9uV2l0aFByaW50SW5mbzooTlNQcmludEluZm8gKilwcmludEluZm8KIAogLSAo
TlNQcmludE9wZXJhdGlvbiAqKV9wcmludE9wZXJhdGlvbldpdGhQcmludEluZm86KE5TUHJpbnRJ
bmZvICopcHJpbnRJbmZvIGZvckZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lSGFuZGxlCiB7
Ci0gICAgaWYgKGF1dG8qIHdlYkZyYW1lUHJveHkgPSBfcGFnZS0+cHJvY2VzcygpLndlYkZyYW1l
KGZyYW1lSGFuZGxlLl9mcmFtZUlEKSkKKyAgICBpZiAoYXV0byogd2ViRnJhbWVQcm94eSA9IF9w
YWdlLT5wcm9jZXNzKCkud2ViRnJhbWUoV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKGZy
YW1lSGFuZGxlLl9mcmFtZUlEKSkpCiAgICAgICAgIHJldHVybiBfaW1wbC0+cHJpbnRPcGVyYXRp
b25XaXRoUHJpbnRJbmZvKHByaW50SW5mbywgKndlYkZyYW1lUHJveHkpOwogICAgIHJldHVybiBu
aWw7CiB9CkBAIC03MTE0LDcgKzcxMTQsNyBAQCAtICh2b2lkKV9jb21wbGV0ZUltbWVkaWF0ZUFj
dGlvbkFuaW1hdGlvbgogCiAtIChCT09MKV9jYW5DaGFuZ2VGcmFtZUxheW91dDooX1dLRnJhbWVI
YW5kbGUgKilmcmFtZUhhbmRsZQogewotICAgIGlmIChhdXRvKiB3ZWJGcmFtZVByb3h5ID0gX3Bh
Z2UtPnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUhhbmRsZS5fZnJhbWVJRCkpCisgICAgaWYgKGF1
dG8qIHdlYkZyYW1lUHJveHkgPSBfcGFnZS0+cHJvY2VzcygpLndlYkZyYW1lKFdlYkNvcmU6OmZy
YW1lSWRlbnRpZmllckZyb21JRChmcmFtZUhhbmRsZS5fZnJhbWVJRCkpKQogICAgICAgICByZXR1
cm4gX2ltcGwtPmNhbkNoYW5nZUZyYW1lTGF5b3V0KCp3ZWJGcmFtZVByb3h5KTsKICAgICByZXR1
cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLSW5zcGVjdG9yLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S0luc3BlY3Rvci5tbQppbmRleCBjNDk5YjE4ZmE5Mzg4YTQ1ODQzMTQ3NzA4ZDNkMjk2ZGQ1MzI5
MGE0Li4zZDE1ZWMyZWVhNzkxMWIyYTM5ZDY0MDg3OTM2YmY0ZWE2MzQxM2FhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW0KQEAgLTMw
LDYgKzMwLDcgQEAKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgogI2ltcG9ydCAiX1dLRnJh
bWVIYW5kbGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLSW5zcGVjdG9ySW50ZXJuYWwuaCIKKyNp
bXBvcnQgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRy
Lmg+CiAKIEBpbXBsZW1lbnRhdGlvbiBfV0tJbnNwZWN0b3IKQEAgLTk5LDcgKzEwMCw3IEBAIC0g
KHZvaWQpc2hvd1Jlc291cmNlcwogLSAodm9pZClzaG93TWFpblJlc291cmNlRm9yRnJhbWU6KF9X
S0ZyYW1lSGFuZGxlICopZnJhbWUKIHsKICAgICBpZiAoYXV0byogcGFnZSA9IF9pbnNwZWN0b3It
Pmluc3BlY3RlZFBhZ2UoKSkKLSAgICAgICAgX2luc3BlY3Rvci0+c2hvd01haW5SZXNvdXJjZUZv
ckZyYW1lKHBhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZS5fZnJhbWVJRCkpOworICAgICAg
ICBfaW5zcGVjdG9yLT5zaG93TWFpblJlc291cmNlRm9yRnJhbWUocGFnZS0+cHJvY2VzcygpLndl
YkZyYW1lKFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRChmcmFtZS5fZnJhbWVJRCkpKTsK
IH0KIAogLSAodm9pZClhdHRhY2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmNwcAppbmRleCA3
YWNjNjhiYWVmZWFiMDczYmY2NjBmNmMwYmNlNWVmYjk3YjVhZTYyLi5kODc0OGVlYTdmYzZkYWUx
NTQyNmFkYWVhOTY5Yjc0YmRlZTYzZGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3Bw
CkBAIC0zODIsNyArMzgyLDcgQEAgdm9pZCBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXI6OnRyYW5z
aXRpb25JbnB1dFNvdXJjZVRvU3RhdGUoU2ltdWxhdGVkSW5wdXRTb3VyY2UKICAgICB9CiB9CiAK
LXZvaWQgU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyOjpydW4odWludDY0X3QgZnJhbWVJRCwgVmVj
dG9yPFNpbXVsYXRlZElucHV0S2V5RnJhbWU+JiYga2V5RnJhbWVzLCBIYXNoU2V0PFJlZjxTaW11
bGF0ZWRJbnB1dFNvdXJjZT4+JiBpbnB1dFNvdXJjZXMsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFu
ZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXI6
OnJ1bihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgVmVjdG9yPFNpbXVsYXRlZElu
cHV0S2V5RnJhbWU+JiYga2V5RnJhbWVzLCBIYXNoU2V0PFJlZjxTaW11bGF0ZWRJbnB1dFNvdXJj
ZT4+JiBpbnB1dFNvdXJjZXMsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIEFTU0VSVCghaXNBY3RpdmUoKSk7CiAgICAgaWYgKGlzQWN0aXZl
KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2lt
dWxhdGVkSW5wdXREaXNwYXRjaGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0
aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5oCmluZGV4IDdmNDE0MWNlMGEzOWU1NjA3M2M3
ZWM4YTk2NTYwY2JjMzQ4YWRmYTYuLmIwODkxYThmMGI2NzUyOWNiOWIzOTg2Yjg3OTUzMDcxMmE0
YWFkNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2lt
dWxhdGVkSW5wdXREaXNwYXRjaGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0
b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaApAQCAtMjgsNiArMjgsNyBAQAogI2lm
IEVOQUJMRShXRUJEUklWRVJfQUNUSU9OU19BUEkpCiAKICNpbmNsdWRlICJXZWJFdmVudC5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBs
ZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYv
T3B0aW9uYWwuaD4KQEAgLTEzMiw3ICsxMzMsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdFQkRS
SVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpCiAgICAgICAgIHZpcnR1YWwgdm9pZCBzaW11bGF0
ZUtleWJvYXJkSW50ZXJhY3Rpb24oV2ViUGFnZVByb3h5JiwgS2V5Ym9hcmRJbnRlcmFjdGlvbiwg
V1RGOjpWYXJpYW50PFZpcnR1YWxLZXksIENoYXJLZXk+JiYsIEF1dG9tYXRpb25Db21wbGV0aW9u
SGFuZGxlciYmKSA9IDA7CiAjZW5kaWYKLSAgICAgICAgdmlydHVhbCB2b2lkIHZpZXdwb3J0SW5W
aWV3Q2VudGVyUG9pbnRPZkVsZW1lbnQoV2ViUGFnZVByb3h5JiwgdWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBGdW5jdGlvbjx2b2lkIChPcHRpb25hbDxXZWJDb3Jl
OjpJbnRQb2ludD4sIE9wdGlvbmFsPEF1dG9tYXRpb25Db21tYW5kRXJyb3I+KT4mJikgPSAwOwor
ICAgICAgICB2aXJ0dWFsIHZvaWQgdmlld3BvcnRJblZpZXdDZW50ZXJQb2ludE9mRWxlbWVudChX
ZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbm9k
ZUhhbmRsZSwgRnVuY3Rpb248dm9pZCAoT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBPcHRp
b25hbDxBdXRvbWF0aW9uQ29tbWFuZEVycm9yPik+JiYpID0gMDsKICAgICB9OwogCiAgICAgc3Rh
dGljIFJlZjxTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXI+IGNyZWF0ZShXZWJQYWdlUHJveHkmIHBh
Z2UsIFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlcjo6Q2xpZW50JiBjbGllbnQpCkBAIC0xNDIsNyAr
MTQzLDcgQEAgcHVibGljOgogCiAgICAgflNpbXVsYXRlZElucHV0RGlzcGF0Y2hlcigpOwogCi0g
ICAgdm9pZCBydW4odWludDY0X3QgZnJhbWVJRCwgVmVjdG9yPFNpbXVsYXRlZElucHV0S2V5RnJh
bWU+JiYga2V5RnJhbWVzLCBIYXNoU2V0PFJlZjxTaW11bGF0ZWRJbnB1dFNvdXJjZT4+JiBpbnB1
dFNvdXJjZXMsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciYmKTsKKyAgICB2b2lkIHJ1bihX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFZlY3RvcjxTaW11bGF0ZWRJbnB1dEtleUZyYW1lPiYm
IGtleUZyYW1lcywgSGFzaFNldDxSZWY8U2ltdWxhdGVkSW5wdXRTb3VyY2U+PiYgaW5wdXRTb3Vy
Y2VzLCBBdXRvbWF0aW9uQ29tcGxldGlvbkhhbmRsZXImJik7CiAgICAgdm9pZCBjYW5jZWwoKTsK
IAogICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdDsKQEAgLTE2NSw3ICsxNjYsNyBAQCBwcml2YXRl
OgogICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdlOwogICAgIFNpbXVsYXRlZElucHV0RGlzcGF0Y2hl
cjo6Q2xpZW50JiBtX2NsaWVudDsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBtX2ZyYW1lSUQ7
CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBtX2ZyYW1lSUQ7CiAgICAg
QXV0b21hdGlvbkNvbXBsZXRpb25IYW5kbGVyIG1fcnVuQ29tcGxldGlvbkhhbmRsZXI7CiAgICAg
QXV0b21hdGlvbkNvbXBsZXRpb25IYW5kbGVyIG1fa2V5RnJhbWVUcmFuc2l0aW9uQ29tcGxldGlv
bkhhbmRsZXI7CiAgICAgUnVuTG9vcDo6VGltZXI8U2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyPiBt
X2tleUZyYW1lVHJhbnNpdGlvbkR1cmF0aW9uVGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCmlu
ZGV4IGNjZTVjNDgxN2E4MDQ5MTdjZGMxOTljMWIwMTYwZTI1NmU5YmUyOTcuLjY4YmRhZGM4Mjcx
NzQzNzIzNzQ0ZWQ1YzkyOGYxMGEwZGY5ZjJjZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCkBA
IC0yMDIsMTAgKzIwMiwxMCBAQCBTdHJpbmcgV2ViQXV0b21hdGlvblNlc3Npb246OmhhbmRsZUZv
cldlYlBhZ2VQcm94eShjb25zdCBXZWJQYWdlUHJveHkmIHdlYlBhZ2VQcgogICAgIHJldHVybiBo
YW5kbGU7CiB9CiAKLU9wdGlvbmFsPHVpbnQ2NF90PiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2Vi
RnJhbWVJREZvckhhbmRsZShjb25zdCBTdHJpbmcmIGhhbmRsZSkKK09wdGlvbmFsPEZyYW1lSWRl
bnRpZmllcj4gV2ViQXV0b21hdGlvblNlc3Npb246OndlYkZyYW1lSURGb3JIYW5kbGUoY29uc3Qg
U3RyaW5nJiBoYW5kbGUpCiB7CiAgICAgaWYgKGhhbmRsZS5pc0VtcHR5KCkpCi0gICAgICAgIHJl
dHVybiAwOworICAgICAgICByZXR1cm4gRnJhbWVJZGVudGlmaWVyIHsgfTsgLy8gVGhpcyBpcyBl
eHBsaWNpdGx5IHplcm87IHNlZSB3ZWJraXQub3JnL2IvMTU5Nzc3LgogCiAgICAgYXV0byBpdGVy
ID0gbV9oYW5kbGVXZWJGcmFtZU1hcC5maW5kKGhhbmRsZSk7CiAgICAgaWYgKGl0ZXIgPT0gbV9o
YW5kbGVXZWJGcmFtZU1hcC5lbmQoKSkKQEAgLTIxNCw3ICsyMTQsNyBAQCBPcHRpb25hbDx1aW50
NjRfdD4gV2ViQXV0b21hdGlvblNlc3Npb246OndlYkZyYW1lSURGb3JIYW5kbGUoY29uc3QgU3Ry
aW5nJiBoYW5kbAogICAgIHJldHVybiBpdGVyLT52YWx1ZTsKIH0KIAotU3RyaW5nIFdlYkF1dG9t
YXRpb25TZXNzaW9uOjpoYW5kbGVGb3JXZWJGcmFtZUlEKHVpbnQ2NF90IGZyYW1lSUQpCitTdHJp
bmcgV2ViQXV0b21hdGlvblNlc3Npb246OmhhbmRsZUZvcldlYkZyYW1lSUQoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQpCiB7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICByZXR1cm4gZW1wdHlT
dHJpbmcoKTsKQEAgLTM2Miw3ICszNjIsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpz
d2l0Y2hUb0Jyb3dzaW5nQ29udGV4dChjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dAogICAg
IGlmICghcGFnZSkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoV2lu
ZG93Tm90Rm91bmQpOwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQgPSB3ZWJGcmFt
ZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5kbGUgPyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6
IGVtcHR5U3RyaW5nKCkpOworICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUo
b3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpvcHRpb25hbEZyYW1lSGFuZGxlIDogZW1wdHlTdHJpbmco
KSk7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5F
RF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIApAQCAtNDU5LDcgKzQ1OSw3IEBAIHZvaWQgV2ViQXV0
b21hdGlvblNlc3Npb246OndhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZShjb25zdCBTdHJpbmcm
IGJyb3dzaW5nQ29uCiAgICAgICAgICYmIHBhZ2UtPnBhZ2VMb2FkU3RhdGUoKS5pc0xvYWRpbmco
KSAmJiBtX2NsaWVudC0+aXNTaG93aW5nSmF2YVNjcmlwdERpYWxvZ09uUGFnZSgqdGhpcywgKnBh
Z2UpOwogCiAgICAgaWYgKG9wdGlvbmFsRnJhbWVIYW5kbGUgJiYgIW9wdGlvbmFsRnJhbWVIYW5k
bGUtPmlzRW1wdHkoKSkgewotICAgICAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCA9IHdl
YkZyYW1lSURGb3JIYW5kbGUoKm9wdGlvbmFsRnJhbWVIYW5kbGUpOworICAgICAgICBhdXRvIGZy
YW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKCpvcHRpb25hbEZyYW1lSGFuZGxlKTsKICAgICAg
ICAgaWYgKCFmcmFtZUlEKQogICAgICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURf
RVJST1IoRnJhbWVOb3RGb3VuZCk7CiAgICAgICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gcGFn
ZS0+cHJvY2VzcygpLndlYkZyYW1lKGZyYW1lSUQudmFsdWUoKSk7CkBAIC01MzcsNyArNTM3LDcg
QEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVzcG9uZFRvUGVuZGluZ1BhZ2VOYXZpZ2F0
aW9uQ2FsbGJhY2tzV2l0aFRpbWVvdXQoSGEKICAgICB9CiB9CiAKLXN0YXRpYyBXZWJQYWdlUHJv
eHkqIGZpbmRQYWdlRm9yRnJhbWVJRChjb25zdCBXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2ws
IHVpbnQ2NF90IGZyYW1lSUQpCitzdGF0aWMgV2ViUGFnZVByb3h5KiBmaW5kUGFnZUZvckZyYW1l
SUQoY29uc3QgV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCkKIHsKICAgICBmb3IgKGF1dG8mIHByb2Nlc3MgOiBwcm9jZXNzUG9vbC5wcm9jZXNzZXMo
KSkgewogICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBwcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlE
KSkKQEAgLTU0Niw3ICs1NDYsNyBAQCBzdGF0aWMgV2ViUGFnZVByb3h5KiBmaW5kUGFnZUZvckZy
YW1lSUQoY29uc3QgV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCB1aW50NgogICAgIHJldHVy
biBudWxscHRyOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNwb25kVG9QZW5k
aW5nRnJhbWVOYXZpZ2F0aW9uQ2FsbGJhY2tzV2l0aFRpbWVvdXQoSGFzaE1hcDx1aW50NjRfdCwg
UmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+JiBtYXAp
Cit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNwb25kVG9QZW5kaW5nRnJhbWVOYXZpZ2F0
aW9uQ2FsbGJhY2tzV2l0aFRpbWVvdXQoSGFzaE1hcDxGcmFtZUlkZW50aWZpZXIsIFJlZlB0cjxJ
bnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiYgbWFwKQogewogICAg
IEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcgdGltZW91dEVycm9yID0gU1RSSU5HX0ZPUl9QUkVERUZJ
TkVEX0VSUk9SX05BTUUoVGltZW91dCk7CiAgICAgZm9yIChhdXRvIGlkIDogY29weVRvVmVjdG9y
KG1hcC5rZXlzKCkpKSB7CkBAIC05MjQsNyArOTI0LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvbjo6ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oY29uc3QgU3RyaW5nJiBicm93c2luZ0Nv
bnQKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VS
Uk9SKFdpbmRvd05vdEZvdW5kKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEID0g
d2ViRnJhbWVJREZvckhhbmRsZShvcHRpb25hbEZyYW1lSGFuZGxlID8gKm9wdGlvbmFsRnJhbWVI
YW5kbGUgOiBlbXB0eVN0cmluZygpKTsKKyAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9y
SGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5kbGUgPyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5
U3RyaW5nKCkpOwogICAgIGlmICghZnJhbWVJRCkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BS
RURFRklORURfRVJST1IoRnJhbWVOb3RGb3VuZCk7CiAKQEAgLTk2NywxMSArOTY3LDExIEBAIHZv
aWQgV2ViQXV0b21hdGlvblNlc3Npb246OnJlc29sdmVDaGlsZEZyYW1lSGFuZGxlKGNvbnN0IFN0
cmluZyYgYnJvd3NpbmdDb250ZXh0CiAgICAgaWYgKCFwYWdlKQogICAgICAgICBBU1lOQ19GQUlM
X1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5kb3dOb3RGb3VuZCk7CiAKLSAgICBPcHRpb25hbDx1
aW50NjRfdD4gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUob3B0aW9uYWxGcmFtZUhhbmRs
ZSA/ICpvcHRpb25hbEZyYW1lSGFuZGxlIDogZW1wdHlTdHJpbmcoKSk7CisgICAgYXV0byBmcmFt
ZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShvcHRpb25hbEZyYW1lSGFuZGxlID8gKm9wdGlvbmFs
RnJhbWVIYW5kbGUgOiBlbXB0eVN0cmluZygpKTsKICAgICBpZiAoIWZyYW1lSUQpCiAgICAgICAg
IEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKEZyYW1lTm90Rm91bmQpOwogCi0gICAg
V1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4g
Y29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBjYWxsYmFjayA9IGNhbGxiYWNrLmNvcHlSZWYoKV0oT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5
cGUsIHVpbnQ2NF90IGZyYW1lSUQpIG11dGFibGUgeworICAgIFdURjo6Q29tcGxldGlvbkhhbmRs
ZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBGcmFtZUlkZW50aWZpZXIpPiBjb21wbGV0aW9uSGFu
ZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhbGxiYWNrID0g
Y2FsbGJhY2suY29weVJlZigpXShPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQpIG11dGFibGUgewogICAgICAgICBpZiAoZXJyb3JUeXBlKSB7CiAgICAg
ICAgICAgICBjYWxsYmFjay0+c2VuZEZhaWx1cmUoU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VSUk9S
X01FU1NBR0UoKmVycm9yVHlwZSkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTAwNCwxMSAr
MTAwNCwxMSBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZlUGFyZW50RnJhbWVI
YW5kbGUoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleAogICAgIGlmICghcGFnZSkKICAgICAg
ICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwogCi0g
ICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKGZyYW1l
SGFuZGxlKTsKKyAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKGZyYW1lSGFu
ZGxlKTsKICAgICBpZiAoIWZyYW1lSUQpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJ
TkVEX0VSUk9SKEZyYW1lTm90Rm91bmQpOwogCi0gICAgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxsYmFjayA9IGNhbGxiYWNrLmNv
cHlSZWYoKV0oT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIHVpbnQ2NF90IGZyYW1lSUQpIG11
dGFibGUgeworICAgIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+
LCBGcmFtZUlkZW50aWZpZXIpPiBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyksIGNhbGxiYWNrID0gY2FsbGJhY2suY29weVJlZigpXShPcHRp
b25hbDxTdHJpbmc+IGVycm9yVHlwZSwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIG11dGFibGUg
ewogICAgICAgICBpZiAoZXJyb3JUeXBlKSB7CiAgICAgICAgICAgICBjYWxsYmFjay0+c2VuZEZh
aWx1cmUoU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VSUk9SX01FU1NBR0UoKmVycm9yVHlwZSkpOwog
ICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTAzNSw3ICsxMDM1LDcgQEAgdm9pZCBXZWJBdXRvbWF0
aW9uU2Vzc2lvbjo6Y29tcHV0ZUVsZW1lbnRMYXlvdXQoY29uc3QgU3RyaW5nJiBicm93c2luZ0Nv
bnRleHRIYW4KICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJ
TkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFt
ZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShmcmFtZUhhbmRsZSk7CisgICAgYXV0byBmcmFtZUlE
ID0gd2ViRnJhbWVJREZvckhhbmRsZShmcmFtZUhhbmRsZSk7CiAgICAgaWYgKCFmcmFtZUlEKQog
ICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsK
IApAQCAtMTA4Nyw3ICsxMDg3LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2VsZWN0
T3B0aW9uRWxlbWVudChjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmQKICAgICBpZiAo
IXBhZ2UpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05v
dEZvdW5kKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEID0gd2ViRnJhbWVJREZv
ckhhbmRsZShmcmFtZUhhbmRsZSk7CisgICAgYXV0byBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhh
bmRsZShmcmFtZUhhbmRsZSk7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICBBU1lOQ19GQUlM
X1dJVEhfUFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIApAQCAtMTI3MSw3ICsxMjcx
LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Z2V0QWxsQ29va2llcyhjb25zdCBTdHJp
bmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgUmUKICAgICB9OwogCiAgICAgLy8gQWx3YXlzIHNl
bmQgdGhlIG1haW4gZnJhbWUgSUQgYXMgMCBzbyBpdCBpcyByZXNvbHZlZCBvbiB0aGUgV2ViUHJv
Y2VzcyBzaWRlLiBUaGlzIGF2b2lkcyBhIHJhY2Ugd2hlbiBwYWdlLT5tYWluRnJhbWUoKSBpcyBu
dWxsIHN0aWxsLgotICAgIGNvbnN0IHVpbnQ2NF90IG1haW5GcmFtZUlEID0gMDsKKyAgICBjb25z
dCBGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQ7CiAgICAgcGFnZS0+cHJvY2VzcygpLnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6R2V0Q29v
a2llc0ZvckZyYW1lKHBhZ2UtPnBhZ2VJRCgpLCBtYWluRnJhbWVJRCksIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKIH0KIApAQCAtMTI5MSw3ICsxMjkxLDcgQEAgdm9pZCBXZWJBdXRvbWF0
aW9uU2Vzc2lvbjo6ZGVsZXRlU2luZ2xlQ29va2llKGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250
ZXh0SGFuZGwKICAgICB9OwogCiAgICAgLy8gQWx3YXlzIHNlbmQgdGhlIG1haW4gZnJhbWUgSUQg
YXMgMCBzbyBpdCBpcyByZXNvbHZlZCBvbiB0aGUgV2ViUHJvY2VzcyBzaWRlLiBUaGlzIGF2b2lk
cyBhIHJhY2Ugd2hlbiBwYWdlLT5tYWluRnJhbWUoKSBpcyBudWxsIHN0aWxsLgotICAgIGNvbnN0
IHVpbnQ2NF90IG1haW5GcmFtZUlEID0gMDsKKyAgICBjb25zdCBGcmFtZUlkZW50aWZpZXIgbWFp
bkZyYW1lSUQ7CiAgICAgcGFnZS0+cHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6RGVsZXRlQ29va2llKHBhZ2UtPnBhZ2VJRCgp
LCBtYWluRnJhbWVJRCwgY29va2llTmFtZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
IH0KIApAQCAtMTQ1Nyw3ICsxNDU3LDcgQEAgU2ltdWxhdGVkSW5wdXRTb3VyY2UqIFdlYkF1dG9t
YXRpb25TZXNzaW9uOjppbnB1dFNvdXJjZUZvclR5cGUoU2ltdWxhdGVkSW5wdXRTb3UKIH0KIAog
Ly8gTUFSSzogU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyOjpDbGllbnQgQVBJCi12b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uOjp2aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVtZW50KFdlYlBh
Z2VQcm94eSYgcGFnZSwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxl
LCBGdW5jdGlvbjx2b2lkIChPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIE9wdGlvbmFsPEF1
dG9tYXRpb25Db21tYW5kRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0
b21hdGlvblNlc3Npb246OnZpZXdwb3J0SW5WaWV3Q2VudGVyUG9pbnRPZkVsZW1lbnQoV2ViUGFn
ZVByb3h5JiBwYWdlLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBub2Rl
SGFuZGxlLCBGdW5jdGlvbjx2b2lkIChPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIE9wdGlv
bmFsPEF1dG9tYXRpb25Db21tYW5kRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6
SW50UmVjdCwgT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBib29sKT4gZGlkQ29tcHV0ZUVs
ZW1lbnRMYXlvdXRIYW5kbGVyID0gW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcildKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBXZWJDb3JlOjpJbnRSZWN0
LCBPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4gaW5WaWV3Q2VudGVyUG9pbnQsIGJvb2wpIG11
dGFibGUgewogICAgICAgICBpZiAoZXJyb3JUeXBlKSB7CkBAIC0xOTc2LDcgKzE5NzYsNyBAQCB2
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjp0YWtlU2NyZWVuc2hvdChjb25zdCBTdHJpbmcmIGhh
bmRsZSwgY29uc3QgU3RyaW5nKiBvcAogICAgIGlmICghcGFnZSkKICAgICAgICAgQVNZTkNfRkFJ
TF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwogCi0gICAgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5k
bGUgPyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCkpOworICAgIGF1dG8gZnJh
bWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUob3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpvcHRpb25h
bEZyYW1lSGFuZGxlIDogZW1wdHlTdHJpbmcoKSk7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAg
ICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9u
U2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0
aW9uU2Vzc2lvbi5oCmluZGV4IGYzOWMwNjFiNTc4OTJhOTI0OGZkMDlkZmZjZmE3YjhjNTBhMDc1
MzcuLjEyMjJjMjg0MjJiZjk2YzZjYzRiMWE1ZGZjYTQyMjcwZmQwMjNhYTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25T
ZXNzaW9uLmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIK
ICNpbmNsdWRlICJTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaCIKICNpbmNsdWRlICJXZWJFdmVu
dC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5o
PgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC0xNTIsNyArMTUzLDcgQEAgcHVibGljOgog
I2lmIEVOQUJMRShXRUJEUklWRVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKQogICAgIHZvaWQgc2lt
dWxhdGVLZXlib2FyZEludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYsIEtleWJvYXJkSW50ZXJhY3Rp
b24sIFdURjo6VmFyaWFudDxWaXJ0dWFsS2V5LCBDaGFyS2V5PiYmLCBBdXRvbWF0aW9uQ29tcGxl
dGlvbkhhbmRsZXImJikgZmluYWw7CiAjZW5kaWYKLSAgICB2b2lkIHZpZXdwb3J0SW5WaWV3Q2Vu
dGVyUG9pbnRPZkVsZW1lbnQoV2ViUGFnZVByb3h5JiwgdWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
U3RyaW5nJiBub2RlSGFuZGxlLCBGdW5jdGlvbjx2b2lkIChPcHRpb25hbDxXZWJDb3JlOjpJbnRQ
b2ludD4sIE9wdGlvbmFsPEF1dG9tYXRpb25Db21tYW5kRXJyb3I+KT4mJikgZmluYWw7CisgICAg
dm9pZCB2aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVtZW50KFdlYlBhZ2VQcm94eSYsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBGdW5jdGlv
bjx2b2lkIChPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIE9wdGlvbmFsPEF1dG9tYXRpb25D
b21tYW5kRXJyb3I+KT4mJikgZmluYWw7CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCRFJJVkVSX0FD
VElPTlNfQVBJKQogCkBAIC0yMjAsMTQgKzIyMSwxNCBAQCBwcml2YXRlOgogICAgIFJlZjxJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpCcm93c2luZ0NvbnRleHQ+IGJ1aWxkQnJvd3Np
bmdDb250ZXh0Rm9yUGFnZShXZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpGbG9hdFJlY3Qgd2luZG93
RnJhbWUpOwogICAgIHZvaWQgZ2V0TmV4dENvbnRleHQoUmVmPFdlYkF1dG9tYXRpb25TZXNzaW9u
PiYmLCBWZWN0b3I8UmVmPFdlYlBhZ2VQcm94eT4+JiYsIFJlZjxKU09OOjpBcnJheU9mPEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkJyb3dzaW5nQ29udGV4dD4+LCBSZWY8V2ViQXV0
b21hdGlvblNlc3Npb246OkdldEJyb3dzaW5nQ29udGV4dHNDYWxsYmFjaz4mJik7CiAKLSAgICBP
cHRpb25hbDx1aW50NjRfdD4gd2ViRnJhbWVJREZvckhhbmRsZShjb25zdCBTdHJpbmcmKTsKLSAg
ICBTdHJpbmcgaGFuZGxlRm9yV2ViRnJhbWVJRCh1aW50NjRfdCBmcmFtZUlEKTsKKyAgICBPcHRp
b25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IHdlYkZyYW1lSURGb3JIYW5kbGUoY29uc3Qg
U3RyaW5nJik7CisgICAgU3RyaW5nIGhhbmRsZUZvcldlYkZyYW1lSUQoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyKTsKICAgICBTdHJpbmcgaGFuZGxlRm9yV2ViRnJhbWVQcm94eShjb25zdCBXZWJG
cmFtZVByb3h5Jik7CiAKICAgICB2b2lkIHdhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9uUGFn
ZShXZWJQYWdlUHJveHkmLCBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpQYWdlTG9h
ZFN0cmF0ZWd5LCBTZWNvbmRzLCBSZWY8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2Fs
bGJhY2tCYXNlPiYmKTsKICAgICB2b2lkIHdhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9uRnJh
bWUoV2ViRnJhbWVQcm94eSYsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlBhZ2VM
b2FkU3RyYXRlZ3ksIFNlY29uZHMsIFJlZjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpD
YWxsYmFja0Jhc2U+JiYpOwogICAgIHZvaWQgcmVzcG9uZFRvUGVuZGluZ1BhZ2VOYXZpZ2F0aW9u
Q2FsbGJhY2tzV2l0aFRpbWVvdXQoSGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgUmVm
UHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+Jik7Ci0gICAg
dm9pZCByZXNwb25kVG9QZW5kaW5nRnJhbWVOYXZpZ2F0aW9uQ2FsbGJhY2tzV2l0aFRpbWVvdXQo
SGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNh
bGxiYWNrQmFzZT4+Jik7CisgICAgdm9pZCByZXNwb25kVG9QZW5kaW5nRnJhbWVOYXZpZ2F0aW9u
Q2FsbGJhY2tzV2l0aFRpbWVvdXQoSGFzaE1hcDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJl
ZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiYpOwogICAg
IHZvaWQgbG9hZFRpbWVyRmlyZWQoKTsKIAogICAgIHZvaWQgZXhpdEZ1bGxzY3JlZW5XaW5kb3dG
b3JQYWdlKFdlYlBhZ2VQcm94eSYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
QEAgLTI4NCwxMyArMjg1LDEzIEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgU3RyaW5nPiBtX3dlYlBhZ2VIYW5kbGVNYXA7CiAgICAgSGFzaE1hcDxTdHJp
bmcsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBtX2hhbmRsZVdlYlBhZ2VNYXA7CiAKLSAgICBI
YXNoTWFwPHVpbnQ2NF90LCBTdHJpbmc+IG1fd2ViRnJhbWVIYW5kbGVNYXA7Ci0gICAgSGFzaE1h
cDxTdHJpbmcsIHVpbnQ2NF90PiBtX2hhbmRsZVdlYkZyYW1lTWFwOworICAgIEhhc2hNYXA8V2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBTdHJpbmc+IG1fd2ViRnJhbWVIYW5kbGVNYXA7CisgICAg
SGFzaE1hcDxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gbV9oYW5kbGVXZWJGcmFt
ZU1hcDsKIAogICAgIEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFJlZlB0cjxJbnNw
ZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiBtX3BlbmRpbmdOb3JtYWxO
YXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJQYWdlOwogICAgIEhhc2hNYXA8
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRj
aGVyOjpDYWxsYmFja0Jhc2U+PiBtX3BlbmRpbmdFYWdlck5hdmlnYXRpb25JbkJyb3dzaW5nQ29u
dGV4dENhbGxiYWNrc1BlclBhZ2U7Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEluc3Bl
Y3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGluZ05vcm1hbE5h
dmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlckZyYW1lOwotICAgIEhhc2hNYXA8
dWludDY0X3QsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jh
c2U+PiBtX3BlbmRpbmdFYWdlck5hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1Bl
ckZyYW1lOworICAgIEhhc2hNYXA8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWZQdHI8SW5z
cGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4gbV9wZW5kaW5nTm9ybWFs
TmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyRnJhbWU7CisgICAgSGFzaE1h
cDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNw
YXRjaGVyOjpDYWxsYmFja0Jhc2U+PiBtX3BlbmRpbmdFYWdlck5hdmlnYXRpb25JbkJyb3dzaW5n
Q29udGV4dENhbGxiYWNrc1BlckZyYW1lOwogICAgIEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+
PiBtX3BlbmRpbmdJbnNwZWN0b3JDYWxsYmFja3NQZXJQYWdlOwogI2lmIEVOQUJMRShXRUJEUklW
RVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKQogICAgIEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIEZ1bmN0aW9uPHZvaWQoT3B0aW9uYWw8QXV0b21hdGlvbkNvbW1hbmRFcnJvcj4pPj4g
bV9wZW5kaW5nS2V5Ym9hcmRFdmVudHNGbHVzaGVkQ2FsbGJhY2tzUGVyUGFnZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCmluZGV4IGE1MWEyMjM2MjM4NDE1
MWFiMTFkNDg5NDM2OWY4YTE4NTgwMDY3ZGEuLjMwMmY2ODIyODJiY2M3ZWUzOGQzZjY3MjdkNmQy
M2Y4NGIyODlkYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJ
RGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5tbQpAQCAtMTAzMiw3ICsxMDMyLDcgQEAgdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6Y2hl
Y2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYlBhZ2VQcm94eSYgcGFnZSwKICAgICBV
UkwgcmVxdWVzdEZyYW1lVVJMIHsgVVJMKCksIGZyYW1lLnVybCgpIH07CiAgICAgVVJMIG1haW5G
cmFtZVVSTCB7IFVSTCgpLCBtYWluRnJhbWUtPnVybCgpIH07CiAKLSAgICBbKGlkIDxXS1VJRGVs
ZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IGNo
ZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1lVVJM
Om1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6ZnJhbWUuZnJhbWVJRCgpIGRlY2lzaW9uSGFu
ZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOworICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZh
dGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgY2hlY2tVc2VyTWVk
aWFQZXJtaXNzaW9uRm9yVVJMOnJlcXVlc3RGcmFtZVVSTCBtYWluRnJhbWVVUkw6bWFpbkZyYW1l
VVJMIGZyYW1lSWRlbnRpZmllcjpmcmFtZS5mcmFtZUlEKCkudG9VSW50NjQoKSBkZWNpc2lvbkhh
bmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKIH0KIAogdm9pZCBVSURlbGVnYXRlOjpVSUNs
aWVudDo6bWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1JlbG9hZEZyYW1lRXJyb3JSZWNvdmVyeUF0dGVtcHRl
ci5tbQppbmRleCA4NGQyMGM0Y2U4YjFmMDAxN2UxYmE3N2I5ZDBkZjRmMTAxMzhhOTAwLi45YzQw
OTJlZmQ0MzZkMDIyNDBiODA2YTJjMjQwZjY0MzZkMmVkYjVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1JlbG9hZEZyYW1lRXJyb3JSZWNvdmVyeUF0dGVtcHRl
ci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1JlbG9hZEZyYW1lRXJy
b3JSZWNvdmVyeUF0dGVtcHRlci5tbQpAQCAtMzIsNiArMzIsNyBAQAogI2ltcG9ydCAiV2ViRnJh
bWVQcm94eS5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNz
UHJveHkuaCIKKyNpbXBvcnQgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW1wb3J0IDx3
dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KIApAQCAtNjIsOCAr
NjMsNyBAQCAtIChCT09MKWF0dGVtcHRSZWNvdmVyeQogICAgIGlmICghd2ViVmlldykKICAgICAg
ICAgcmV0dXJuIE5POwogCi0gICAgdWludDY0X3QgZnJhbWVJRCA9IFtfZnJhbWVIYW5kbGUgX2Zy
YW1lSURdOwotICAgIFdlYktpdDo6V2ViRnJhbWVQcm94eSogd2ViRnJhbWVQcm94eSA9IHdlYlZp
ZXctPl9wYWdlLT5wcm9jZXNzKCkud2ViRnJhbWUoZnJhbWVJRCk7CisgICAgV2ViS2l0OjpXZWJG
cmFtZVByb3h5KiB3ZWJGcmFtZVByb3h5ID0gd2ViVmlldy0+X3BhZ2UtPnByb2Nlc3MoKS53ZWJG
cmFtZShXZWJDb3JlOjpmcmFtZUlkZW50aWZpZXJGcm9tSUQoW19mcmFtZUhhbmRsZSBfZnJhbWVJ
RF0pKTsKICAgICBpZiAoIXdlYkZyYW1lUHJveHkpCiAgICAgICAgIHJldHVybiBOTzsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQpp
bmRleCBhMWFmOThkMjEwOTNlNWFlZWU4YjNkNDgwYjgxNjFmZTI2ZTllYTUxLi5kOTYxMzkxOGY3
NWZhNWU4ZGY1ODM0ZjI1MjQ0MzhlMDZlOTg2Yjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQpAQCAtMTAxLDEyICsxMDEsMTIg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmJlZ2luU2FmZUJyb3dzaW5nQ2hlY2soY29uc3QgVVJMJiB1
cmwsIGJvb2wgZm9yTWFpbkZyYW1lTmF2aWcKIH0KIAogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRF
UklORykKLXZvaWQgV2ViUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJh
bWUoY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiB1bmJsb2NrSGFu
ZGxlciwgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpjb250ZW50RmlsdGVy
RGlkQmxvY2tMb2FkRm9yRnJhbWUoY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tI
YW5kbGVyJiB1bmJsb2NrSGFuZGxlciwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAg
Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVm
KCksIHVuYmxvY2tIYW5kbGVyLCBmcmFtZUlEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmNv
bnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmIHByb2Nlc3MsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYg
dW5ibG9ja0hhbmRsZXIsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6Y29u
dGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYgcHJvY2VzcywgY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiB1
bmJsb2NrSGFuZGxlciwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgaWYgKFdlYkZy
YW1lUHJveHkqIGZyYW1lID0gcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCkpCiAgICAgICAgIGZy
YW1lLT5jb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkKHVuYmxvY2tIYW5kbGVyKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
Y3BwCmluZGV4IDk0ZmFmNmI5ZGUyNjIwMWQ4NGQyNmZmODM5MzNmODIyOWMwNWQ2YjkuLjkxZWNl
MWYwZGFmZmUzZWE2M2FkYmMwZDkxZWFjNGQxODExMTMwOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAt
MzEyLDcgKzMxMiw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29uc3QgSVBDOjpBdHRhCiAjZW5kaWYKIH0KIAotdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uo
UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSYmIGNvcmVDaGFsbGVuZ2UsIHVpbnQ2NF90IGNoYWxsZW5nZUlEKQor
dm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29y
ZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmJiBjb3JlQ2hhbGxlbmdlLCB1aW50NjRfdCBjaGFs
bGVuZ2VJRCkKIHsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgaWYgKGF1dG8qIHNl
cnZpY2VXb3JrZXJQcm9jZXNzUHJveHkgPSBtX3Byb2Nlc3NQb29sLnNlcnZpY2VXb3JrZXJQcm9j
ZXNzUHJveHlGcm9tUGFnZUlEKHBhZ2VJRCkpIHsKQEAgLTczNyw3ICs3MzcsNyBAQCB2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OnNldEdyYW5kZmF0aGVyZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBjb25zdCBSZWdpcwogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29y
a1Byb2Nlc3M6OlNldEdyYW5kZmF0aGVyZWQoc2Vzc2lvbklELCByZXNvdXJjZURvbWFpbiwgaXNH
cmFuZGZhdGhlcmVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShQYWdlSWRlbnRp
ZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBz
dWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oUGFnZUlkZW50
aWZpZXIgcGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVE
b21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHBh
Z2VJRCk7CiAgICAgaWYgKCFwYWdlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IDQzMzU0NWMwZTMzZmFhZWVk
OWRlYmIzNGY2YjIwY2ZjYWU1ZTk1YzguLjQwZjgxZGU5YjQ3ZjE5MjIxOTAyNmE2ZThhMDdiMmE1
ZTJkNmE5OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC04Miw3ICs4Miw2IEBAIHB1YmxpYzoKICAgICB1c2lu
ZyBOYXZpZ2F0ZWRUb0RvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwogICAgIHVz
aW5nIERvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcyA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluOwogICAgIHVzaW5nIE9wZW5lckRvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
OwotICAgIHVzaW5nIEZyYW1lSUQgPSB1aW50NjRfdDsKIAogICAgIGV4cGxpY2l0IE5ldHdvcmtQ
cm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmKTsKICAgICB+TmV0d29ya1Byb2Nlc3NQcm94eSgp
OwpAQCAtMTMwLDcgKzEyOSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFByZXZhbGVudFJlc291
cmNlRm9yRGVidWdNb2RlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRWZXJ5UHJldmFsZW50
UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRy
aWVzKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+
IGRvbWFpbnMpPiYmKTsKLSAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgRnJhbWVJRCwgY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25z
dCBUb3BGcmFtZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAg
IHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3Qg
VG9wRnJhbWVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2
b2lkIHJlc2V0UGFyYW1ldGVyc1RvRGVmYXVsdFZhbHVlcyhQQUw6OlNlc3Npb25JRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNjaGVkdWxlQ2xlYXJJbk1lbW9yeUFu
ZFBlcnNpc3RlbnQoUEFMOjpTZXNzaW9uSUQsIFNob3VsZEdyYW5kZmF0aGVyU3RhdGlzdGljcywg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNjaGVkdWxlQ2xlYXJJbk1l
bW9yeUFuZFBlcnNpc3RlbnQoUEFMOjpTZXNzaW9uSUQsIE9wdGlvbmFsPFdhbGxUaW1lPiBtb2Rp
ZmllZFNpbmNlLCBTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3MsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CkBAIC0yMTMsNyArMjEyLDcgQEAgcHJpdmF0ZToKICAgICAvLyBNZXNzYWdl
IGhhbmRsZXJzCiAgICAgdm9pZCBkaWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAgICAgdm9pZCBkaWRDcmVhdGVOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25zdCBJUEM6OkF0dGFjaG1lbnQmKTsKLSAgICB2
b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2Um
JiwgdWludDY0X3QgY2hhbGxlbmdlSUQpOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYsIHVpbnQ2NF90IGNoYWxs
ZW5nZUlEKTsKICAgICB2b2lkIGRpZEZldGNoV2Vic2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJ
RCwgY29uc3QgV2Vic2l0ZURhdGEmKTsKICAgICB2b2lkIGRpZERlbGV0ZVdlYnNpdGVEYXRhKHVp
bnQ2NF90IGNhbGxiYWNrSUQpOwogICAgIHZvaWQgZGlkRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmln
aW5zKHVpbnQ2NF90IGNhbGxiYWNrSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmlu
ZGV4IDExZDhjNWRlZTFkYmE4MWY4ZjYzZjdkOTQ4ZWY2NjE2MTk4MWQxMzQuLmJmYWY5ZjA0OTZl
NTZhOWI5MzFlZjZmZjc3NTFjM2FjZjVkMTM5YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2Fn
ZXMuaW4KQEAgLTIzLDcgKzIzLDcgQEAKIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkg
TGVnYWN5UmVjZWl2ZXIgewogICAgIERpZENyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSWRlbnRpZmllcikKIAotICAgIERpZFJlY2Vp
dmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQs
IHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGNoYWxs
ZW5nZSwgdWludDY0X3QgY2hhbGxlbmdlSUQpCisgICAgRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGNoYWxs
ZW5nZSwgdWludDY0X3QgY2hhbGxlbmdlSUQpCiAKICAgICBEaWRGZXRjaFdlYnNpdGVEYXRhKHVp
bnQ2NF90IGNhbGxiYWNrSUQsIHN0cnVjdCBXZWJLaXQ6OldlYnNpdGVEYXRhIHdlYnNpdGVEYXRh
KQogICAgIERpZERlbGV0ZVdlYnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpCkBAIC00OCw3
ICs0OCw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIg
ewogICAgIE5vdGlmeVdlYnNpdGVEYXRhRGVsZXRpb25Gb3JSZWdpc3RyYWJsZURvbWFpbnNGaW5p
c2hlZCgpCiAgICAgTm90aWZ5V2Vic2l0ZURhdGFTY2FuRm9yUmVnaXN0cmFibGVEb21haW5zRmlu
aXNoZWQoKQogICAgIE5vdGlmeVJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlGaW5pc2hl
ZCh1bnNpZ25lZCB0b3RhbFByZXZhbGVudFJlc291cmNlcywgdW5zaWduZWQgdG90YWxQcmV2YWxl
bnRSZXNvdXJjZXNXaXRoVXNlckludGVyYWN0aW9uLCB1bnNpZ25lZCB0b3AzU3ViZnJhbWVVbmRl
clRvcEZyYW1lT3JpZ2lucykKLSAgICBSZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4g
dG9wRnJhbWVEb21haW4pIC0+IChib29sIHVzZXJEaWRHcmFudEFjY2VzcykgQXN5bmMKKyAgICBS
ZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1l
RG9tYWluKSAtPiAoYm9vbCB1c2VyRGlkR3JhbnRBY2Nlc3MpIEFzeW5jCiAgICAgRGVsZXRlV2Vi
c2l0ZURhdGFJblVJUHJvY2Vzc0ZvclJlZ2lzdHJhYmxlRG9tYWlucyhQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBP
cHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMsIFZl
Y3RvcjxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gZG9tYWlucykgLT4gKEhhc2hTZXQ8V2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4+IGRvbWFpbnNXaXRoTWF0Y2hpbmdEYXRhUmVjb3Jkcykg
QXN5bmMKICAgICBEaWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2
YWxlbnRSZXNvdXJjZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAppbmRl
eCA2NjZmYmQzZGExMGZiNWQ1OWFmMjEwNTI3YTNjMTU0NWMxNDgxM2UyLi5kN2YwYzNjOTUwMjc0
ZGU4ZTBhOTVjYjg1YWRjMjc2NTU4ZjcyZDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAgdm9pZCBQ
cm92aXNpb25hbFBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbShBUEk6Ok5hdmlnYXRpb24m
IG5hdmlnYXRpb24sIFdlYkIKICAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5z
dGFydCgpOwogfQogCi1pbmxpbmUgYm9vbCBQcm92aXNpb25hbFBhZ2VQcm94eTo6dmFsaWRhdGVJ
bnB1dCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBPcHRpb25hbDx1aW50NjRfdD4mIG5hdmlnYXRp
b25JRCkKK2lubGluZSBib29sIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojp2YWxpZGF0ZUlucHV0KEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBPcHRpb25hbDx1aW50NjRfdD4mIG5hdmlnYXRp
b25JRCkKIHsKICAgICAvLyBJZiB0aGUgcHJldmlvdXMgcHJvdmlzaW9uYWwgbG9hZCB1c2VkIGFu
IGV4aXN0aW5nIHByb2Nlc3MsIHdlIG1heSByZWNlaXZlIGxlZnRvdmVyIElQQyBmb3IgYSBwcmV2
aW91cyBuYXZpZ2F0aW9uLCB3aGljaCB3ZSBuZWVkIHRvIGlnbm9yZS4KICAgICBpZiAoIW1fbWFp
bkZyYW1lIHx8IG1fbWFpbkZyYW1lLT5mcmFtZUlEKCkgIT0gZnJhbWVJRCkKQEAgLTE4NSw5ICsx
ODUsOSBAQCBpbmxpbmUgYm9vbCBQcm92aXNpb25hbFBhZ2VQcm94eTo6dmFsaWRhdGVJbnB1dCh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBPcHRpb25hbAogICAgIHJldHVybiAhbmF2aWdhdGlvbklE
IHx8ICEqbmF2aWdhdGlvbklEIHx8ICpuYXZpZ2F0aW9uSUQgPT0gbV9uYXZpZ2F0aW9uSUQ7CiB9
CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRf
dCBmcmFtZUlEKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1l
KEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
UHJvY2Vzc1N3YXBwaW5nLCAiZGlkQ3JlYXRlTWFpbkZyYW1lOiBwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wYWdlLnBhZ2VJRCgpLnRvVUludDY0KCksIGZyYW1l
SUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2Vzc1N3YXBwaW5nLCAiZGlkQ3Jl
YXRlTWFpbkZyYW1lOiBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwg
bV9wYWdlLnBhZ2VJRCgpLnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAgICAgQVNT
RVJUKCFtX21haW5GcmFtZSk7CiAKICAgICBtX21haW5GcmFtZSA9IFdlYkZyYW1lUHJveHk6OmNy
ZWF0ZShtX3BhZ2UsIGZyYW1lSUQpOwpAQCAtMjEyLDcgKzIxMiw3IEBAIHZvaWQgUHJvdmlzaW9u
YWxQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRfdCBmcmFtZUlEKQogICAgIH0K
IH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0
KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9u
VVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6
ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBj
b25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCkKIHsKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCkpCiAgICAgICAgIHJldHVybjsK
QEAgLTIyMCwxMiArMjIwLDEyIEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZv
cm1DbGllbnRSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluCiAgICAgbV9wYWdl
LmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBzb3Vy
Y2VVUkxTdHJpbmcsIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBmcmFtZUlEKTsKIH0KIAotdm9pZCBQ
cm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCwgVVJMJiYgdW5y
ZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgUHJvdmlzaW9uYWxQ
YWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYgdXJsLCBVUkwmJiB1bnJlYWNo
YWJsZVVSTCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIGlmICghdmFsaWRhdGVJ
bnB1dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgImRpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWU6IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IG5hdmlnYXRpb25JRCA9ICUiIFBSSXU2NCwgbV9wYWdlLnBhZ2VJRCgpLnRvVUludDY0KCksIGZy
YW1lSUQsIG5hdmlnYXRpb25JRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNz
U3dhcHBpbmcsICJkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiBwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9uSUQgPSAlIiBQUkl1NjQs
IG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCksIG5hdmlnYXRp
b25JRCk7CiAgICAgQVNTRVJUKG1fcHJvdmlzaW9uYWxMb2FkVVJMLmlzTnVsbCgpKTsKICAgICBt
X3Byb3Zpc2lvbmFsTG9hZFVSTCA9IHVybDsKIApAQCAtMjQwLDEyICsyNDAsMTIgQEAgdm9pZCBQ
cm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCB1aW4KICAgICBtX3BhZ2UuZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JG
cmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQsIFdU
Rk1vdmUodXJsKSwgV1RGTW92ZSh1bnJlYWNoYWJsZVVSTCksIHVzZXJEYXRhKTsKIH0KIAotdm9p
ZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zp
c2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgV2ViQ29yZTo6
V2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYg
dXNlckRhdGEpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yJiBlcnJvciwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2Fk
aW5nLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0
KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJFTEVBU0Vf
TE9HX0VSUk9SX0lGX0FMTE9XRUQoUHJvY2Vzc1N3YXBwaW5nLCAiZGlkRmFpbFByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lOiBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAi
LCBuYXZpZ2F0aW9uSUQgPSAlIiBQUkl1NjQsIG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBm
cmFtZUlELCBuYXZpZ2F0aW9uSUQpOworICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQo
UHJvY2Vzc1N3YXBwaW5nLCAiZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiBwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9uSUQgPSAlIiBQ
Ukl1NjQsIG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCksIG5h
dmlnYXRpb25JRCk7CiAgICAgQVNTRVJUKCFtX3Byb3Zpc2lvbmFsTG9hZFVSTC5pc051bGwoKSk7
CiAgICAgbV9wcm92aXNpb25hbExvYWRVUkwgPSB7IH07CiAKQEAgLTI1NiwxMiArMjU2LDEyIEBA
IHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBjb25zCiAgICAgbV9wYWdlLmRpZEZhaWxQcm92aXNpb25hbExv
YWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCBuYXZpZ2F0aW9uSUQsIHByb3Zpc2lvbmFsVVJMLCBlcnJvciwgd2lsbENvbnRp
bnVlTG9hZGluZywgdXNlckRhdGEpOyAvLyBNYXkgZGVsZXRlIHx0aGlzfC4KIH0KIAotdm9pZCBQ
cm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBm
cmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29u
c3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFp
bnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBm
b3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQg
UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBl
LCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRU
eXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9v
bCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNv
bnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRh
KQogewogICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGlu
ZywgImRpZENvbW1pdExvYWRGb3JGcmFtZTogcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEID0gJSIgUFJJdTY0LCBtX3BhZ2UucGFnZUlEKCku
dG9VSW50NjQoKSwgZnJhbWVJRCwgbmF2aWdhdGlvbklEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKFByb2Nlc3NTd2FwcGluZywgImRpZENvbW1pdExvYWRGb3JGcmFtZTogcGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEID0gJSIgUFJJ
dTY0LCBtX3BhZ2UucGFnZUlEKCkudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpLCBuYXZp
Z2F0aW9uSUQpOwogICAgIG1fcHJvdmlzaW9uYWxMb2FkVVJMID0geyB9OwogICAgIG1fcHJvY2Vz
cy0+cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSwgbV9wYWdlLnBhZ2VJRCgpKTsKIApAQCAtMjY5LDcgKzI2OSw3IEBAIHZv
aWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCBuYXZpCiAgICAgbV9wYWdlLmNvbW1pdFByb3Zpc2lvbmFsUGFnZShm
cmFtZUlELCBuYXZpZ2F0aW9uSUQsIG1pbWVUeXBlLCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92
aWRlciwgZnJhbWVMb2FkVHlwZSwgY2VydGlmaWNhdGVJbmZvLCBjb250YWluc1BsdWdpbkRvY3Vt
ZW50LCBmb3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIHVzZXJEYXRhKTsgLy8gV2lsbCBkZWxldGUg
fHRoaXN8LgogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWROYXZpZ2F0ZVdpdGhO
YXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiBzdG9yZSwgdWludDY0
X3QgZnJhbWVJRCkKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZE5hdmlnYXRlV2l0aE5h
dmlnYXRpb25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmIHN0b3JlLCBGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCkpCiAg
ICAgICAgIHJldHVybjsKQEAgLTI3Nyw3ICsyNzcsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVBy
b3h5OjpkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0
YQogICAgIG1fcGFnZS5kaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YVNoYXJlZChtX3Byb2Nl
c3MuY29weVJlZigpLCBzdG9yZSwgZnJhbWVJRCk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdl
UHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVBy
b3h5OjpkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCkKIHsKICAgICBpZiAoIXZhbGlk
YXRlSW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjg1
LDcgKzI4NSw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lv
bmFsVVJMRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWluCiAgICAgbV9wYWdlLmRpZENoYW5n
ZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJ
RCwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKHVybCkpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFn
ZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmModWludDY0X3QgZnJh
bWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwg
V2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCit2b2lkIFByb3Zpc2lv
bmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAog
ICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0
aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsCiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYg
cmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQogewpAQCAtMjk2LDcgKzI5Niw3IEBAIHZvaWQgUHJv
dmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyh1
aW50NjRfdCBmcmFtZUlECiAgICAgICAgIFdURk1vdmUoZnJhbWVJbmZvRGF0YSksIG9yaWdpbmF0
aW5nUGFnZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVx
dWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB1c2VyRGF0YSwgbGlzdGVuZXJJ
RCk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYg
ZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50
aWZpZXIsCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIg
aWRlbnRpZmllciwKICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0
cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7
CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCkBAIC0zMDUs
NyArMzA1LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ28KICAgICBtX3BhZ2UuZGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2VTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVz
dCwgY2FuU2hvd01JTUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0ZSwgbGlzdGVuZXJJRCwgdXNlckRh
dGEpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVk
aXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGlu
YXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVBy
b3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJp
bmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIEZyYW1lSWRlbnRpZmllciBm
cmFtZUlEKQogewogICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlEKSkKICAgICAgICAgcmV0
dXJuOwpAQCAtMzEzLDcgKzMxMyw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBl
cmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluCiAgICAgbV9w
YWdlLmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdFNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBz
b3VyY2VVUkxTdHJpbmcsIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBmcmFtZUlEKTsKIH0KIAotdm9p
ZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBVc2VyRGF0YSYgdXNl
ckRhdGEpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJl
Y3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBj
b25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1l
SUQsIG5hdmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKQEAgLTMzMSw3ICszMzEsNyBAQCB2
b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpiYWNrRm9yd2FyZEdvVG9JdGVtKGNvbnN0IFdlYkNv
cmU6OkJhY2tGb3J3YXJkSXRlbUlkZQogICAgIG1fcGFnZS5iYWNrRm9yd2FyZEdvVG9JdGVtU2hh
cmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGlkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvblN5bmModWludDY0X3QgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCit2b2lkIFByb3Zpc2lvbmFsUGFn
ZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlk
ZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0
YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELAogICAgIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHks
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLAogICAgIGNvbnN0
IFVzZXJEYXRhJiB1c2VyRGF0YSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQpAQCAtMzY2LDcg
KzM2Niw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OnJlZ2lzdGVyV2ViUHJvY2Vzc0Fj
Y2Vzc2liaWxpdHlUb2tlbihjb25zdCBJUEM6OkRhdGFSCiAjZW5kaWYKIAogI2lmIEVOQUJMRShD
T05URU5UX0ZJTFRFUklORykKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmNvbnRlbnRGaWx0
ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9j
a0hhbmRsZXImIHVuYmxvY2tIYW5kbGVyLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBQcm92aXNp
b25hbFBhZ2VQcm94eTo6Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKGNvbnN0IFdl
YkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYgdW5ibG9ja0hhbmRsZXIsIEZyYW1l
SWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIG1fcGFnZS5jb250ZW50RmlsdGVyRGlkQmxvY2tM
b2FkRm9yRnJhbWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgdW5ibG9ja0hhbmRsZXIsIGZy
YW1lSUQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9u
YWxQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVBy
b3h5LmgKaW5kZXggMzMzMjE2YTJjYzc4NTY2NzE2MzI0YWIwNmZmMWIzYjk2MDgwYzBiZS4uZGUz
ZWU2ODdmYTdkODE3NTBiNThmZWRhNTg0NTgzZmQxZjFlMmQ2NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCkBAIC05MiwyMyArOTIsMjMgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpIGZpbmFsOwogICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+
JikgZmluYWw7CiAKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3lu
Yyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRp
b25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiwKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0
YSYmLAogICAgICAgICBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRp
bmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJl
cXVlc3RCb2R5LAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RS
ZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCB1aW50NjRfdCBsaXN0ZW5lcklEKTsKLSAgICB2b2lk
IGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwKKyAg
ICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmLAogICAgICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29s
IGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0
X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZENoYW5nZVByb3Zp
c2lvbmFsVVJMRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBVUkwmJik7Ci0gICAgdm9pZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVp
bnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2
b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25EYXRh
U3RvcmUmLCB1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZFBlcmZvcm1DbGllbnRSZWRp
cmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5h
dGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRDcmVhdGVNYWlu
RnJhbWUodWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYs
IFVSTCYmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkQ29t
bWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRl
ciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZv
JiwgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNl
Y3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmKTsK
LSAgICB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4s
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcs
IGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZy
YW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwm
Jik7CisgICAgdm9pZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQ
cm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFVzZXJEYXRh
Jik7CisgICAgdm9pZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZp
Z2F0aW9uRGF0YVN0b3JlJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRp
ZFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29u
c3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
KTsKKyAgICB2b2lkIGRpZENyZWF0ZU1haW5GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIp
OworICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYsIFVSTCYmIHVucmVhY2hh
YmxlVVJMLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvckZyYW1l
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBT
dHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50
MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mLCBib29s
IGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29u
dGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZv
aWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2lu
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5n
LCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgc3RhcnRVUkxTY2hlbWVUYXNrKFVSTFNjaGVt
ZVRhc2tQYXJhbWV0ZXJzJiYpOwogICAgIHZvaWQgYmFja0ZvcndhcmRHb1RvSXRlbShjb25zdCBX
ZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJik+JiYpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmModWludDY0X3QgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFt
ZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAor
ICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0
aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKICAgICAg
ICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVz
ZXJEYXRhJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmKTsKICNpZiBVU0UoUVVJQ0tfTE9PSykKQEAgLTEx
OCwxMSArMTE4LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWdpc3RlcldlYlByb2Nlc3NBY2Nl
c3NpYmlsaXR5VG9rZW4oY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7CiAjZW5kaWYKICNpZiBF
TkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCi0gICAgdm9pZCBjb250ZW50RmlsdGVyRGlkQmxvY2tM
b2FkRm9yRnJhbWUoY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiwg
dWludDY0X3QgZnJhbWVJRCk7CisgICAgdm9pZCBjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9y
RnJhbWUoY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiwgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyKTsKICNlbmRpZgogCiAgICAgdm9pZCBpbml0aWFsaXplV2ViUGFn
ZSgpOwotICAgIGJvb2wgdmFsaWRhdGVJbnB1dCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBPcHRp
b25hbDx1aW50NjRfdD4mIG5hdmlnYXRpb25JRCA9IFdURjo6bnVsbG9wdCk7CisgICAgYm9vbCB2
YWxpZGF0ZUlucHV0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgT3B0aW9uYWw8dWlu
dDY0X3Q+JiBuYXZpZ2F0aW9uSUQgPSBXVEY6Om51bGxvcHQpOwogCiAgICAgV2ViUGFnZVByb3h5
JiBtX3BhZ2U7CiAgICAgUmVmPFdlYlByb2Nlc3NQcm94eT4gbV9wcm9jZXNzOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcApp
bmRleCBiMmY3NzI5ZmQzOTM1ZjcyZTFiYzkxMTVhMzBhMThmNjRlMzlmZDI1Li5mNzhhN2MzODZj
ODk1OTAxMTU2YjU2OGFhZjk4YmFiMjNiMDgwNmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcApAQCAtOTAsNyArOTAs
NyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OnVwZGF0ZVByZWZlcmVuY2VzU3Rv
cmUoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uOjpVcGRhdGVQcmVmZXJlbmNlc1N0b3JlIHsgc3RvcmUgfSwg
MCk7CiB9CiAKLXZvaWQgU2VydmljZVdvcmtlclByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJ
RCwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYgY2hhbGxlbmdlKQordm9pZCBT
ZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUmVmPEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYgY2hhbGxlbmdlKQogewogICAgIFVOVVNFRF9Q
QVJBTShwYWdlSUQpOwogICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaAppbmRleCBlOTM2
NWFmYWM0ZjQ3ZDdmZDc0N2Y5ODk4M2FkOTk5MGU4YWI5NzU1Li43ZDg4NzYwNWVlYTBiNjQ3OWQ2
OTc2OTFhYmI1NTI4MDdkZTIxODQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoK
IAogICAgIHN0YXRpYyBib29sIGhhc1JlZ2lzdGVyZWRTZXJ2aWNlV29ya2Vycyhjb25zdCBTdHJp
bmcmIHNlcnZpY2VXb3JrZXJEaXJlY3RvcnkpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1l
SUQsIFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4m
Jik7CiAKICAgICB2b2lkIHN0YXJ0KGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmLCBPcHRpb25h
bDxQQUw6OlNlc3Npb25JRD4gaW5pdGlhbFNlc3Npb25JRCk7CiAgICAgdm9pZCBzZXRVc2VyQWdl
bnQoY29uc3QgU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
dXNwZW5kZWRQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVk
UGFnZVByb3h5LmNwcAppbmRleCBmNmQzYjUzNmRmOGFhYjE5N2Q5MTFlZDE0ZDJlYTQwZmVmZjJl
MWRkLi5jNjRkN2VmMTliZDBkZTcxMTY5Njk5OTJjMDc2NzFlNjFkODI4M2VkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHAKQEAgLTc4LDcgKzc4
LDcgQEAgc3RhdGljIGNvbnN0IEhhc2hTZXQ8SVBDOjpTdHJpbmdSZWZlcmVuY2U+JiBtZXNzYWdl
TmFtZXNUb0lnbm9yZVdoaWxlU3VzcGVuZGVkKCkKIH0KICNlbmRpZgogCi1TdXNwZW5kZWRQYWdl
UHJveHk6OlN1c3BlbmRlZFBhZ2VQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYgcHJvY2VzcywgdWludDY0X3QgbWFpbkZyYW1lSUQsIFNob3VsZERlbGF5Q2xv
c2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSBzaG91bGREZWxheUNs
b3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpCitTdXNwZW5kZWRQ
YWdlUHJveHk6OlN1c3BlbmRlZFBhZ2VQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIFJlZjxXZWJQ
cm9jZXNzUHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlELCBTaG91
bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUgc2hv
dWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKQog
ICAgIDogbV9wYWdlKHBhZ2UpCiAgICAgLCBtX3Byb2Nlc3MoV1RGTW92ZShwcm9jZXNzKSkKICAg
ICAsIG1fbWFpbkZyYW1lSUQobWFpbkZyYW1lSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1N1c3BlbmRlZFBhZ2VQcm94eS5oCmluZGV4IDBkYWQwNTRiMjcyYTgxOWQ2ZTBiMDZjNzdjZWQ4
MTJhMjYzZDEzNDAuLjkxNjUzY2M3OGVhMDA4NjYwYjE0ZTMzNTA1NTNhYTg5ZTczZDE5MTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oCkBAIC0yOSw2
ICsyOSw3IEBACiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxlci5oIgogI2luY2x1ZGUgIldlYkJh
Y2tGb3J3YXJkTGlzdEl0ZW0uaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCkBAIC00MiwxMiArNDMsMTIgQEAg
ZW51bSBjbGFzcyBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ01vZGUgOiBib29sIHsgTm8KIGNsYXNzIFN1c3BlbmRlZFBhZ2VQcm94eSBmaW5hbDog
cHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3VzcGVu
ZGVkUGFnZVByb3h5PiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0g
ICAgU3VzcGVuZGVkUGFnZVByb3h5KFdlYlBhZ2VQcm94eSYsIFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYsIHVpbnQ2NF90IG1haW5GcmFtZUlELCBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5n
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOworICAgIFN1c3BlbmRlZFBhZ2VQcm94eShXZWJQ
YWdlUHJveHkmLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgbWFpbkZyYW1lSUQsIFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nTW9kZSk7CiAgICAgflN1c3BlbmRlZFBhZ2VQcm94eSgpOwogCiAgICAgV2Vi
UGFnZVByb3h5JiBwYWdlKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlOyB9CiAgICAgV2ViUHJvY2Vz
c1Byb3h5JiBwcm9jZXNzKCkgeyByZXR1cm4gbV9wcm9jZXNzLmdldCgpOyB9Ci0gICAgdWludDY0
X3QgbWFpbkZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX21haW5GcmFtZUlEOyB9CisgICAgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9tYWlu
RnJhbWVJRDsgfQogCiAgICAgYm9vbCBwYWdlSXNDbG9zZWRPckNsb3NpbmcoKSBjb25zdDsKIApA
QCAtNzQsNyArNzUsNyBAQCBwcml2YXRlOgogCiAgICAgV2ViUGFnZVByb3h5JiBtX3BhZ2U7CiAg
ICAgUmVmPFdlYlByb2Nlc3NQcm94eT4gbV9wcm9jZXNzOwotICAgIHVpbnQ2NF90IG1fbWFpbkZy
YW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fbWFpbkZyYW1lSUQ7CiAgICAg
Ym9vbCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsKICAgICBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVu
dGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUgbV9zaG91bGREZWxheUNsb3NpbmdVbnRp
bEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUgeyBTaG91bGREZWxheUNsb3NpbmdV
bnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGU6Ok5vIH07CiAgICAgYm9vbCBt
X3Nob3VsZENsb3NlV2hlbkVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUgeyBmYWxz
ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvbkNoZWNrUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvbkNoZWNrUHJveHkuY3BwCmluZGV4IGFiNzkyNDAyOWUwZWYzYTNiYmFiNzRjYmFjMDBj
Mjk3ZmE5NmEzY2EuLjRmYTZmZGY2MDhkNmMzN2VmZWNiMGE1ZTA2YzJjZmRlNTBlYjU4NGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVj
a1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uQ2hlY2tQcm94eS5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5
OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSh1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0
aW9uSGFuZGxlciYmIGhhbmRsZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExl
dmVsRG9jdW1lbnRPcmlnaW4pCitVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eTo6VXNlck1l
ZGlhUGVybWlzc2lvbkNoZWNrUHJveHkoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRp
b25IYW5kbGVyJiYgaGFuZGxlciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJN
ZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbikKICAgICA6IG1fZnJhbWVJRChmcmFtZUlEKQogICAgICwgbV9jb21w
bGV0aW9uSGFuZGxlcihXVEZNb3ZlKGhhbmRsZXIpKQogICAgICwgbV91c2VyTWVkaWFEb2N1bWVu
dFNlY3VyaXR5T3JpZ2luKFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1By
b3h5LmgKaW5kZXggZGMzNDA5ODE3MTRjNzI3OTNjMDEwNWQ3ODMzOTFiN2ZhOTQ1OTE4Zi4uZTgw
YjUxOTE4NDFmZGIyNDY3NTUxMDk3MjUwOTY2ZTkwYjdlMmEzMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oCkBA
IC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9N
ZWRpYUNvbnN0cmFpbnRzLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC00MSw3ICs0Miw3IEBAIHB1YmxpYzoK
ICAgICBlbnVtIGNsYXNzIFBlcm1pc3Npb25JbmZvIHsgRXJyb3IsIFVua25vd24sIEdyYW50ZWQg
fTsKICAgICB1c2luZyBDb21wbGV0aW9uSGFuZGxlciA9IFdURjo6Q29tcGxldGlvbkhhbmRsZXI8
dm9pZChQZXJtaXNzaW9uSW5mbyk+OwogCi0gICAgc3RhdGljIFJlZjxVc2VyTWVkaWFQZXJtaXNz
aW9uQ2hlY2tQcm94eT4gY3JlYXRlKHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVy
JiYgaGFuZGxlciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbikKKyAgICBzdGF0aWMgUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5PiBj
cmVhdGUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVy
JiYgaGFuZGxlciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbikKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFVzZXJNZWRpYVBl
cm1pc3Npb25DaGVja1Byb3h5KGZyYW1lSUQsIFdURk1vdmUoaGFuZGxlciksIFdURk1vdmUodXNl
ck1lZGlhRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsRG9jdW1lbnRPcmlnaW4pKSk7
CiAgICAgfQpAQCAtNTAsMTcgKzUxLDE3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFVzZXJNZWRp
YUFjY2Vzc0luZm8oYm9vbCk7CiAgICAgdm9pZCBpbnZhbGlkYXRlKCkgeyBjb21wbGV0ZShQZXJt
aXNzaW9uSW5mbzo6RXJyb3IpOyB9CiAKLSAgICB1aW50NjRfdCBmcmFtZUlEKCkgY29uc3QgeyBy
ZXR1cm4gbV9mcmFtZUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQo
KSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KICAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
biYgdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIHsgcmV0dXJuIG1fdXNlck1lZGlh
RG9jdW1lbnRTZWN1cml0eU9yaWdpbi5nZXQoKTsgfQogICAgIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luJiB0b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSB7IHJldHVybiBtX3RvcExldmVs
RG9jdW1lbnRTZWN1cml0eU9yaWdpbi5nZXQoKTsgfQogICAgIAogcHJpdmF0ZToKLSAgICBVc2Vy
TWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSh1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFu
ZGxlciYmLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luKTsKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyJiYsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
PiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pOwogICAgIH5Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hl
Y2tQcm94eSgpOwogCiAgICAgdm9pZCBjb21wbGV0ZShQZXJtaXNzaW9uSW5mbyk7CiAgICAgCi0g
ICAgdWludDY0X3QgbV9mcmFtZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX2Zy
YW1lSUQ7CiAgICAgQ29tcGxldGlvbkhhbmRsZXIgbV9jb21wbGV0aW9uSGFuZGxlcjsKICAgICBS
ZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG1fdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9y
aWdpbjsKICAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG1fdG9wTGV2ZWxEb2N1bWVu
dFNlY3VyaXR5T3JpZ2luOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4
IGQzNDAzNzZmZjI5MDdiODcyOTM1NjQ2NDI4OWQ0MzQ5NmQ0MDA5OTEuLmRiNGNkYTExMTYxZDIy
MjgyOTg0ZmVlOWFlYWQ0MGE0ZWVjMWE0OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5jcHAKQEAgLTI0MCw5ICsyNDAsOSBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5OjpmaW5pc2hHcmFudGluZ1JlcXVlc3QoVXNlck1lZGlhUGVybQogICAg
IHByb2Nlc3NOZXh0VXNlck1lZGlhUmVxdWVzdElmTmVlZGVkKCk7CiB9CiAKLXZvaWQgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlc2V0QWNjZXNzKHVpbnQ2NF90IGZy
YW1lSUQpCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXNl
dEFjY2VzcyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKLSAgICBBTFdBWVNfTE9HKExPR0lE
RU5USUZJRVIsIGZyYW1lSUQpOworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgZnJhbWVJ
RC5sb2dnaW5nU3RyaW5nKCkpOwogICAgIG1fZ3JhbnRlZFJlcXVlc3RzLnJlbW92ZUFsbE1hdGNo
aW5nKFtmcmFtZUlEXShjb25zdCBhdXRvJiBncmFudGVkUmVxdWVzdCkgewogICAgICAgICByZXR1
cm4gZ3JhbnRlZFJlcXVlc3QtPm1haW5GcmFtZUlEKCkgPT0gZnJhbWVJRDsKICAgICB9KTsKQEAg
LTI1MSw3ICsyNTEsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5OjpyZXNldEFjY2Vzcyh1aW50NjRfdCBmcmFtZUlEKQogICAgIG1faGFzRmlsdGVyZWREZXZp
Y2VMaXN0ID0gZmFsc2U7CiB9CiAKLWNvbnN0IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkqIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzZWFyY2hGb3JHcmFu
dGVkUmVxdWVzdCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50
T3JpZ2luLCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbykgY29uc3QKK2NvbnN0IFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkqIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5OjpzZWFyY2hGb3JHcmFudGVkUmVxdWVzdChGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25z
dCBTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlv
LCBib29sIG5lZWRzVmlkZW8pIGNvbnN0CiB7CiAgICAgaWYgKG1fcGFnZS5pc01lZGlhU3RyZWFt
Q2FwdHVyZU11dGVkKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMjgyLDcgKzI4Miw3
IEBAIGNvbnN0IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkqIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLWJv
b2wgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc1JlcXVlc3REZW5p
ZWQodWludDY0X3QgbWFpbkZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFE
b2N1bWVudE9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmln
aW4sIGJvb2wgbmVlZHNBdWRpbywgYm9vbCBuZWVkc1ZpZGVvLCBib29sIG5lZWRzU2NyZWVuQ2Fw
dHVyZSkKK2Jvb2wgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc1Jl
cXVlc3REZW5pZWQoRnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlELCBjb25zdCBTZWN1cml0eU9y
aWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BM
ZXZlbERvY3VtZW50T3JpZ2luLCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbywgYm9v
bCBuZWVkc1NjcmVlbkNhcHR1cmUpCiB7CiAgICAgZm9yIChjb25zdCBhdXRvJiBkZW5pZWRSZXF1
ZXN0IDogbV9kZW5pZWRSZXF1ZXN0cykgewogICAgICAgICBpZiAoIWRlbmllZFJlcXVlc3QudXNl
ck1lZGlhRG9jdW1lbnRPcmlnaW4tPmlzU2FtZVNjaGVtZUhvc3RQb3J0KHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luKSkKQEAgLTM0Niw3ICszNDYsNyBAQCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6UmVxdWVzdEFjdGlvbiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdAog
fQogI2VuZGlmCiAKLXZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6
OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQs
IHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIE1l
ZGlhU3RyZWFtUmVxdWVzdCYmIHVzZXJSZXF1ZXN0KQordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1
aW50NjRfdCB1c2VyTWVkaWFJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxTZWN1cml0
eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYm
IHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIE1lZGlhU3RyZWFtUmVxdWVzdCYmIHVzZXJSZXF1ZXN0
KQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgaWYgKCFtX3BhZ2UuaGFzUnVubmlu
Z1Byb2Nlc3MoKSkKQEAgLTUyMSw3ICs1MjEsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5Ojpwcm9jZXNzVXNlck1lZGlhUGVybWlzc2lvblZhbGlkUmVxdQog
ICAgIG1fcGFnZS51aUNsaWVudCgpLmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0KG1fcGFnZSwgKndlYkZyYW1lLCBXVEZNb3ZlKHVzZXJNZWRpYU9yaWdpbiksIFdURk1v
dmUodG9wTGV2ZWxPcmlnaW4pLCAqbV9jdXJyZW50VXNlck1lZGlhUmVxdWVzdCk7CiB9CiAKLXZv
aWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmdldFVzZXJNZWRpYVBl
cm1pc3Npb25JbmZvKHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1l
bnRPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUGVybWlzc2lvbkluZm8pPiYmIGhhbmRs
ZXIpCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpnZXRVc2Vy
TWVkaWFQZXJtaXNzaW9uSW5mbyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUmVmPFNlY3VyaXR5
T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYg
dG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQZXJtaXNzaW9u
SW5mbyk+JiYgaGFuZGxlcikKIHsKICAgICBhdXRvKiB3ZWJGcmFtZSA9IG1fcGFnZS5wcm9jZXNz
KCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCF3ZWJGcmFtZSB8fCAhU2VjdXJpdHlPcmln
aW46OmNyZWF0ZUZyb21TdHJpbmcobV9wYWdlLnBhZ2VMb2FkU3RhdGUoKS5hY3RpdmVVUkwoKSkt
PmlzU2FtZVNjaGVtZUhvc3RQb3J0KHRvcExldmVsRG9jdW1lbnRPcmlnaW4uZ2V0KCkpKSB7CkBA
IC01NDUsNyArNTQ1LDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6Z2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8odWludDY0X3QKICAgICBtX3BhZ2UudWlD
bGllbnQoKS5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4obV9wYWdlLCAqd2ViRnJh
bWUsIHVzZXJNZWRpYU9yaWdpbi5nZXQoKSwgdG9wTGV2ZWxPcmlnaW4uZ2V0KCksIHJlcXVlc3Qu
Z2V0KCkpOwogfQogCi1ib29sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
Ojp3YXNHcmFudGVkVmlkZW9PckF1ZGlvQWNjZXNzKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNl
Y3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmln
aW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pCitib29sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5Ojp3YXNHcmFudGVkVmlkZW9PckF1ZGlvQWNjZXNzKEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmln
aW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKQogewogICAg
IGZvciAoY29uc3QgYXV0byYgZ3JhbnRlZFJlcXVlc3QgOiBtX2dyYW50ZWRSZXF1ZXN0cykgewog
ICAgICAgICBpZiAoZ3JhbnRlZFJlcXVlc3QtPnJlcXVpcmVzRGlzcGxheUNhcHR1cmUoKSkKQEAg
LTYwNCw3ICs2MDQsNyBAQCBWZWN0b3I8Q2FwdHVyZURldmljZT4gVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHk6OmNvbXB1dGVGaWx0ZXJlZERldgogfQogI2VuZGlmCiAKLXZv
aWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmVudW1lcmF0ZU1lZGlh
RGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBS
ZWY8U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxTZWN1cml0
eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKQordm9pZCBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWlu
dDY0X3QgdXNlck1lZGlhSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8U2VjdXJpdHlP
cmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0
b3BMZXZlbERvY3VtZW50T3JpZ2luKQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAg
QUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCB1c2VyTWVkaWFJRCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuaAppbmRleCBmNTA1ZTI4MGM0NDI5MGE4MDNkYmRiNjhjOThlZWE2MzBiMWM5
YmI2Li5iYmJhNDRhYzgyYmQyODA3NWJkZGZiYjQ1NDQ0Y2E1NjlhY2NmYjk3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmgKQEAgLTYwLDE1ICs2MCwxNSBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIGludmFsaWRhdGVQZW5kaW5nUmVxdWVzdHMoKTsKIAotICAgIHZvaWQgcmVxdWVzdFVz
ZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3Qg
ZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmICB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRP
cmlnaW4sIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKKyAgICB2b2lkIHJlcXVlc3RV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmICB1c2VyTWVk
aWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVs
RG9jdW1lbnRPcmlnaW4sIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKIAotICAgIHZv
aWQgcmVzZXRBY2Nlc3ModWludDY0X3QgbWFpbkZyYW1lSUQpOworICAgIHZvaWQgcmVzZXRBY2Nl
c3MoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlEKTsKICAgICB2b2lkIHZpZXdJ
c0JlY29taW5nVmlzaWJsZSgpOwogCiAgICAgdm9pZCBncmFudFJlcXVlc3QoVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eSYpOwogICAgIHZvaWQgZGVueVJlcXVlc3QoVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eSYsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVz
ZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbiwgY29uc3QgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWlu
dCA9IHsgfSk7CiAKLSAgICB2b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2
NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKTsKKyAgICB2b2lkIGVudW1lcmF0ZU1lZGlh
RGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9y
aWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmln
aW4pOwogCiAgICAgdm9pZCBzdG9wQ2FwdHVyZSgpOwogICAgIHZvaWQgc2NoZWR1bGVOZXh0UmVq
ZWN0aW9uKCk7CkBAIC05NSwxOSArOTUsMTkgQEAgcHJpdmF0ZToKICAgICBXVEZMb2dDaGFubmVs
JiBsb2dDaGFubmVsKCkgY29uc3QgZmluYWw7CiAjZW5kaWYKIAotICAgIFJlZjxVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGVQZXJtaXNzaW9uUmVxdWVzdCh1aW50NjRfdCB1
c2VyTWVkaWFJRCwgdWludDY0X3QgbWFpbkZyYW1lSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3Qm
Jik7CisgICAgUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZVBlcm1p
c3Npb25SZXF1ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgbWFpbkZyYW1lSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVjdG9yPFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmlj
ZT4mJiB2aWRlb0RldmljZXMsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKICNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQogICAgIHZvaWQgZmluaXNoR3JhbnRpbmdSZXF1ZXN0KFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKTsKIAotICAgIGNvbnN0IFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkqIHNlYXJjaEZvckdyYW50ZWRSZXF1ZXN0KHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
biwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4s
IGJvb2wgbmVlZHNBdWRpbywgYm9vbCBuZWVkc1ZpZGVvKSBjb25zdDsKLSAgICBib29sIHdhc1Jl
cXVlc3REZW5pZWQodWludDY0X3QgbWFpbkZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGJvb2wgbmVlZHNBdWRpbywgYm9vbCBuZWVk
c1ZpZGVvLCBib29sIG5lZWRzU2NyZWVuQ2FwdHVyZSk7CisgICAgY29uc3QgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eSogc2VhcmNoRm9yR3JhbnRlZFJlcXVlc3QoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9j
dW1lbnRPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luLCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbykgY29uc3Q7CisgICAg
Ym9vbCB3YXNSZXF1ZXN0RGVuaWVkKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJ
RCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwg
Ym9vbCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8sIGJvb2wgbmVlZHNTY3JlZW5DYXB0dXJl
KTsKIAogICAgIHVzaW5nIFBlcm1pc3Npb25JbmZvID0gVXNlck1lZGlhUGVybWlzc2lvbkNoZWNr
UHJveHk6OlBlcm1pc3Npb25JbmZvOwotICAgIHZvaWQgZ2V0VXNlck1lZGlhUGVybWlzc2lvbklu
Zm8odWludDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJN
ZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQZXJtaXNzaW9uSW5mbyk+
JiYpOworICAgIHZvaWQgZ2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8oV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1l
bnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50
T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBlcm1pc3Npb25JbmZvKT4mJik7CiAKICAg
ICBSZXF1ZXN0QWN0aW9uIGdldFJlcXVlc3RBY3Rpb24oY29uc3QgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eSYpOwogCi0gICAgYm9vbCB3YXNHcmFudGVkVmlkZW9PckF1ZGlvQWNjZXNz
KHVpbnQ2NF90LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1l
bnRPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50
T3JpZ2luKTsKKyAgICBib29sIHdhc0dyYW50ZWRWaWRlb09yQXVkaW9BY2Nlc3MoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlh
RG9jdW1lbnRPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERv
Y3VtZW50T3JpZ2luKTsKIAogICAgIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiBjb21w
dXRlRmlsdGVyZWREZXZpY2VMaXN0KGJvb2wgcmV2ZWFsSWRzQW5kTGFiZWxzLCBjb25zdCBTdHJp
bmcmIGRldmljZUlESGFzaFNhbHQpOwogCkBAIC0xMzQsNyArMTM0LDcgQEAgcHJpdmF0ZToKICAg
ICBWZWN0b3I8UmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+PiBtX2dyYW50ZWRS
ZXF1ZXN0czsKIAogICAgIHN0cnVjdCBEZW5pZWRSZXF1ZXN0IHsKLSAgICAgICAgdWludDY0X3Qg
bWFpbkZyYW1lSUQ7CisgICAgICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJ
RDsKICAgICAgICAgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbjsKICAgICAgICAgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiB0b3BMZXZlbERv
Y3VtZW50T3JpZ2luOwogICAgICAgICBib29sIGlzQXVkaW9EZW5pZWQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuY3BwCmluZGV4IDRmMDI4NDA2YmE0YTc3NTE2NDcwNjQ3NjcxZjNhOTUwODhhZmY0YWIuLjk2
NmZkYWQ1Y2YwZGQwOWI5OGZmNTU2MTAzZTIwNmFhMTE3NWM5NjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuY3BwCkBAIC0zMCw3ICszMCw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCi1Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5JiBtYW5hZ2VyLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgbWFpbkZyYW1l
SUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExl
dmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlv
RGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBX
ZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJiByZXF1ZXN0KQorVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgdWludDY0X3QgdXNlck1lZGlh
SUQsIEZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwg
UmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZl
Y3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJl
cXVlc3QmJiByZXF1ZXN0KQogICAgIDogbV9tYW5hZ2VyKCZtYW5hZ2VyKQogICAgICwgbV91c2Vy
TWVkaWFJRCh1c2VyTWVkaWFJRCkKICAgICAsIG1fbWFpbkZyYW1lSUQobWFpbkZyYW1lSUQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5LmgKaW5kZXggNTQ0ZjYxMTZlZGI2NjJhOGZhOTYzMWJjM2FmOGI3MGRlZGM1
ODI3Zi4uYmE0ZTBhMzQ3MTYwMzFiMThmMDg1Y2ZkMDFhNzM1MTc3OGEwMzA1OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuaApAQCAtMjEsNiArMjEsNyBAQAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9DYXB0dXJlRGV2aWNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFt
ZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU3RyZWFtUmVxdWVzdC5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
QEAgLTM1LDcgKzM2LDcgQEAgY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk7CiAKIGNsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkgOiBwdWJsaWMg
QVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eT4gY3JlYXRlKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiBt
YW5hZ2VyLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgbWFpbkZyYW1lSUQsIHVpbnQ2
NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1
bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1l
bnRPcmlnaW4sIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywg
VmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3JlOjpN
ZWRpYVN0cmVhbVJlcXVlc3QmJiByZXF1ZXN0KQorICAgIHN0YXRpYyBSZWY8VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRlKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5JiBtYW5hZ2VyLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIG1haW5GcmFtZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
UmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBS
ZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVj
dG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29y
ZTo6Q2FwdHVyZURldmljZT4mJiB2aWRlb0RldmljZXMsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVx
dWVzdCYmIHJlcXVlc3QpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KG1hbmFnZXIsIHVzZXJNZWRpYUlELCBtYWluRnJh
bWVJRCwgZnJhbWVJRCwgV1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiksIFdURk1vdmUo
dG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIFdURk1vdmUoYXVkaW9EZXZpY2VzKSwgV1RGTW92ZSh2
aWRlb0RldmljZXMpLCBXVEZNb3ZlKHJlcXVlc3QpKSk7CiAgICAgfQpAQCAtNjUsOCArNjYsOCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRIYXNQZXJzaXN0ZW50QWNjZXNzKCkgeyBtX2hhc1BlcnNp
c3RlbnRBY2Nlc3MgPSB0cnVlOyB9CiAKICAgICB1aW50NjRfdCB1c2VyTWVkaWFJRCgpIGNvbnN0
IHsgcmV0dXJuIG1fdXNlck1lZGlhSUQ7IH0KLSAgICB1aW50NjRfdCBtYWluRnJhbWVJRCgpIGNv
bnN0IHsgcmV0dXJuIG1fbWFpbkZyYW1lSUQ7IH0KLSAgICB1aW50NjRfdCBmcmFtZUlEKCkgY29u
c3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1h
aW5GcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJhbWVJRDsgfQorICAgIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9CiAK
ICAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3Jp
Z2luKCkgeyByZXR1cm4gbV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4uZ2V0KCk7IH0K
ICAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9y
aWdpbigpIHsgcmV0dXJuIG1fdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbi5nZXQoKTsg
fQpAQCAtODQsMTIgKzg1LDEyIEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
IHZpZGVvRGV2aWNlKCkgY29uc3QgeyByZXR1cm4gbV9lbGlnaWJsZVZpZGVvRGV2aWNlcy5pc0Vt
cHR5KCkgPyBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIHsgfSA6IG1fZWxpZ2libGVWaWRlb0Rldmlj
ZXNbMF07IH0KIAogcHJpdmF0ZToKLSAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiwgdWludDY0X3QgdXNlck1l
ZGlhSUQsIHVpbnQ2NF90IG1haW5GcmFtZUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0b3I8V2ViQ29y
ZTo6Q2FwdHVyZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYpOwor
ICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkmLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIG1haW5GcmFtZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZjxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJik7
CiAKICAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSogbV9tYW5hZ2Vy
OwogICAgIHVpbnQ2NF90IG1fdXNlck1lZGlhSUQ7Ci0gICAgdWludDY0X3QgbV9tYWluRnJhbWVJ
RDsKLSAgICB1aW50NjRfdCBtX2ZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IG1fbWFpbkZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fZnJhbWVJRDsK
ICAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG1fdXNlck1lZGlhRG9jdW1lbnRTZWN1
cml0eU9yaWdpbjsKICAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG1fdG9wTGV2ZWxE
b2N1bWVudFNlY3VyaXR5T3JpZ2luOwogICAgIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
PiBtX2VsaWdpYmxlVmlkZW9EZXZpY2VzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFt
ZVByb3h5LmNwcAppbmRleCAwNzE0YjQxZWI2Nzc2OGQ5ZTBjOWQ0MTJlMjBlODk4ZjgxZTczZGQ4
Li5lZTMzNzEwODE3MDdlYTM2ZDM1MGVmZTJjYzVhMDNjMWQxOTFkYTRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcApAQCAtNDUsOSArNDUsOCBAQCB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogY2xhc3MgV2ViUGFnZVByb3h5OwogCi1XZWJGcmFtZVByb3h5
OjpXZWJGcmFtZVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgdWludDY0X3QgZnJhbWVJRCkKK1dl
YkZyYW1lUHJveHk6OldlYkZyYW1lUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCkKICAgICA6IG1fcGFnZShtYWtlV2Vha1B0cihwYWdlKSkKLSAgICAsIG1f
aXNGcmFtZVNldChmYWxzZSkKICAgICAsIG1fZnJhbWVJRChmcmFtZUlEKQogewogICAgIFdlYlBy
b2Nlc3NQb29sOjpzdGF0aXN0aWNzKCkud2tGcmFtZUNvdW50Kys7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJGcmFtZVByb3h5LmgKaW5kZXggNDQ2MDBmMWMyNzI5MGU1ZTRjMTY4ZWE4Y2QzY2Mz
OTYzNmZkYmJlMS4uY2NkYTYzNzgwMDJkNTVhYjE1N2E2ZjE1MzdjNWVmNzlkYjQ1YzI1MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaApAQCAtNTksMTQgKzU5LDE0IEBA
IHN0cnVjdCBXZWJzaXRlUG9saWNpZXNEYXRhOwogCiBjbGFzcyBXZWJGcmFtZVByb3h5IDogcHVi
bGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6RnJhbWU+IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmPFdlYkZyYW1lUHJveHk+IGNyZWF0ZShXZWJQYWdlUHJveHkmIHBhZ2Us
IHVpbnQ2NF90IGZyYW1lSUQpCisgICAgc3RhdGljIFJlZjxXZWJGcmFtZVByb3h5PiBjcmVhdGUo
V2ViUGFnZVByb3h5JiBwYWdlLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKICAg
ICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkZyYW1lUHJveHkocGFnZSwgZnJh
bWVJRCkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgfldlYkZyYW1lUHJveHkoKTsKIAotICAgIHVp
bnQ2NF90IGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KKyAgICBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQog
ICAgIFdlYlBhZ2VQcm94eSogcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZS5nZXQoKTsgfQog
CiAgICAgdm9pZCB3ZWJQcm9jZXNzV2lsbFNodXREb3duKCk7CkBAIC0xMzAsNyArMTMwLDcgQEAg
cHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgV2ViRnJhbWVQcm94eShXZWJQYWdlUHJv
eHkmLCB1aW50NjRfdCBmcmFtZUlEKTsKKyAgICBXZWJGcmFtZVByb3h5KFdlYlBhZ2VQcm94eSYs
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAKICAgICBXZWFrUHRyPFdlYlBhZ2VQcm94eT4g
bV9wYWdlOwogCkBAIC0xMzgsMTEgKzEzOCwxMSBAQCBwcml2YXRlOgogCiAgICAgU3RyaW5nIG1f
TUlNRVR5cGU7CiAgICAgU3RyaW5nIG1fdGl0bGU7Ci0gICAgYm9vbCBtX2lzRnJhbWVTZXQ7Cisg
ICAgYm9vbCBtX2lzRnJhbWVTZXQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9jb250YWluc1BsdWdp
bkRvY3VtZW50IHsgZmFsc2UgfTsKICAgICBSZWZQdHI8V2ViQ2VydGlmaWNhdGVJbmZvPiBtX2Nl
cnRpZmljYXRlSW5mbzsKICAgICBSZWZQdHI8V2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5PiBt
X2FjdGl2ZUxpc3RlbmVyOwotICAgIHVpbnQ2NF90IG1fZnJhbWVJRDsKKyAgICBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgbV9mcmFtZUlEOwogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykK
ICAgICBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIgbV9jb250ZW50RmlsdGVy
VW5ibG9ja0hhbmRsZXI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCmluZGV4IDMyNjMxYzQ1MGViMjZkNzU0NTQ2OGI3MjZjMTVhNDQ5ODVjOTk4YTkuLmQy
ZjlhODg3MDU3YjBkY2Q3OTQ3OGIxMGI3MDA3M2M2ZDg2YzdiYjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNzQzLDcgKzc0Myw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpsYXVuY2hQcm9jZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZWdpc3RyYWJs
ZURvbWFpbikKICAgICBmaW5pc2hBdHRhY2hpbmdUb1dlYlByb2Nlc3MoSXNQcm9jZXNzU3dhcDo6
Tm8pOwogfQogCi1ib29sIFdlYlBhZ2VQcm94eTo6c3VzcGVuZEN1cnJlbnRQYWdlSWZQb3NzaWJs
ZShBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIE9wdGlvbmFsPHVpbnQ2NF90PiBtYWluRnJh
bWVJRCwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5
Q2xpZW50LCBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ01vZGUgc2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdNb2RlKQorYm9vbCBXZWJQYWdlUHJveHk6OnN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2li
bGUoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+
IG1haW5GcmFtZUlELCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVx
dWVzdGVkQnlDbGllbnQsIFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nTW9kZSBzaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ01vZGUpCiB7CiAgICAgbV9sYXN0U3VzcGVuZGVkUGFnZSA9IG51bGxwdHI7
CiAKQEAgLTI5MzEsMTIgKzI5MzEsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkUG9s
aWN5RGVjaXNpb24oUG9saWN5QWN0aW9uIGFjdGlvbiwgQVBJOjpOYXZpZ2F0aW9uKgogICAgIHNl
bmRlci0+c2VuZChhY3Rpb24sIG5hdmlnYXRpb24gPyBuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQo
KSA6IDAsIGRvd25sb2FkSUQsIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7CiB9CiAKLXZvaWQg
V2ViUGFnZVByb3h5Ojpjb21taXRQcm92aXNpb25hbFBhZ2UodWludDY0X3QgZnJhbWVJRCwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFz
Q3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJD
b3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdp
bkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhh
c0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdl
UHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFz
Q3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJD
b3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdp
bkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhh
c0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIEFTU0VS
VChtX3Byb3Zpc2lvbmFsUGFnZSk7CiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5n
LCAiY29tbWl0UHJvdmlzaW9uYWxQYWdlOiBwcmV2aW91c1BJRCA9ICVpLCBuZXdQSUQgPSAlaSwg
cGFnZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcHJv
dmlzaW9uYWxQYWdlLT5wcm9jZXNzKCkucHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9V
SW50NjQoKSk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gbWFpbkZyYW1lSURJblByZXZpb3Vz
UHJvY2VzcyA9IG1fbWFpbkZyYW1lID8gbWFrZU9wdGlvbmFsKG1fbWFpbkZyYW1lLT5mcmFtZUlE
KCkpIDogV1RGOjpudWxsb3B0OworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gbWFpbkZy
YW1lSURJblByZXZpb3VzUHJvY2VzcyA9IG1fbWFpbkZyYW1lID8gbWFrZU9wdGlvbmFsKG1fbWFp
bkZyYW1lLT5mcmFtZUlEKCkpIDogV1RGOjpudWxsb3B0OwogCiAgICAgQVNTRVJUKG1fcHJvY2Vz
cy5wdHIoKSAhPSAmbV9wcm92aXNpb25hbFBhZ2UtPnByb2Nlc3MoKSk7CiAKQEAgLTM2NzIsNyAr
MzY3Miw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3Jp
cHRXb3JsZChjb25zdCBTdHJpbmcmIHNjcmlwdCwgYm9vCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpSdW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3JsZChzY3Jp
cHQsIGZvcmNlVXNlckdlc3R1cmUsIHdvcmxkTmFtZSwgY2FsbGJhY2tJRCksIG1fcGFnZUlEKTsK
IH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRJbkZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIFdURjo6
RnVuY3Rpb248dm9pZChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSosIGJvb2wgaGFkRXhjZXB0
aW9uLCBjb25zdCBFeGNlcHRpb25EZXRhaWxzJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2Fs
bGJhY2tGdW5jdGlvbikKK3ZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0SW5GcmFtZShG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VV
c2VyR2VzdHVyZSwgV1RGOjpGdW5jdGlvbjx2b2lkKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVl
KiwgYm9vbCBoYWRFeGNlcHRpb24sIGNvbnN0IEV4Y2VwdGlvbkRldGFpbHMmLCBDYWxsYmFja0Jh
c2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQogewogICAgIEFTU0VSVChtYWluRnJhbWUo
KS0+ZnJhbWVJRCgpICE9IGZyYW1lSUQpOwogICAgIGF1dG8gY2FsbGJhY2tJRCA9IG1fY2FsbGJh
Y2tzLnB1dChXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBtX3Byb2Nlc3MtPnRocm90dGxlcigp
LmJhY2tncm91bmRBY3Rpdml0eVRva2VuKCkpOwpAQCAtMzg3OCw3ICszODc4LDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKCkKICAgICBtX3Byb2Nlc3MtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OlByZWZlcmVuY2VzRGlkQ2hhbmdlKHByZWZlcmVuY2VzU3RvcmUo
KSksIG1fcGFnZUlELCBwcmludGluZ1NlbmRPcHRpb25zKG1faXNQZXJmb3JtaW5nRE9NUHJpbnRP
cGVyYXRpb24pKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSh1
aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZShG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICAvLyBUaGUgRGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvblN5bmMgSVBDIGlzIHN5bmNocm9ub3VzIGFuZCBtYXkgdGhlcmVmb3JlIGdl
dCBwcm9jZXNzZWQgYmVmb3JlIHRoZSBEaWRDcmVhdGVNYWluRnJhbWUgb25lLgogICAgIC8vIFdo
ZW4gdGhpcyBoYXBwZW5zLCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYygpIGNh
bGxzIGRpZENyZWF0ZU1haW5GcmFtZSgpIGFuZCB3ZSBuZWVkIHRvIGlnbm9yZSB0aGUgRGlkQ3Jl
YXRlTWFpbkZyYW1lCkBAIC0zODk3LDcgKzM4OTcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
Q3JlYXRlTWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCiAgICAgbV9wcm9jZXNzLT5mcmFtZUNy
ZWF0ZWQoZnJhbWVJRCwgKm1fbWFpbkZyYW1lKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZENyZWF0ZVN1YmZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
Q3JlYXRlU3ViZnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgUGFnZUNsaWVu
dFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtMzkxNyw3ICszOTE3LDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0ZVN1YmZyYW1lKHVpbnQ2NF90IGZyYW1lSUQp
CiAgICAgbV9wcm9jZXNzLT5mcmFtZUNyZWF0ZWQoZnJhbWVJRCwgc3ViRnJhbWUuZ2V0KCkpOwog
fQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRlV2luZG93KHVpbnQ2NF90IGZyYW1lSUQs
IEdsb2JhbFdpbmRvd0lkZW50aWZpZXImJiB3aW5kb3dJZGVudGlmaWVyKQordm9pZCBXZWJQYWdl
UHJveHk6OmRpZENyZWF0ZVdpbmRvdyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgR2xvYmFsV2lu
ZG93SWRlbnRpZmllciYmIHdpbmRvd0lkZW50aWZpZXIpCiB7CiB9CiAKQEAgLTM5ODEsMTIgKzM5
ODEsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZERlc3Ryb3lOYXZpZ2F0aW9uKHVpbnQ2NF90
IG5hdmlnYXRpb25JRCkKICAgICBtX25hdmlnYXRpb25TdGF0ZS0+ZGlkRGVzdHJveU5hdmlnYXRp
b24obmF2aWdhdGlvbklEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBVUkwmJiB1cmwsIFVSTCYmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRh
dGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmws
IFVSTCYmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAg
ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigp
LCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUodXJsKSwgV1RGTW92ZSh1bnJlYWNoYWJs
ZVVSTCksIHVzZXJEYXRhKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCB1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCwgVVJMJiYg
dW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgVVJMJiYgdXJsLCBVUkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEm
IHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGll
bnQoKSk7CiAKQEAgLTQwMDUsOCArNDAwNSw4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRTdGFy
dFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYKICAg
ICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkgJiYgbmF2aWdhdGlvbklEKQogICAgICAgICBuYXZp
Z2F0aW9uID0gbmF2aWdhdGlvblN0YXRlKCkubmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQpOwogCi0g
ICAgTE9HKExvYWRpbmcsICJXZWJQYWdlUHJveHkgJSIgUFJJdTY0ICIgaW4gcHJvY2VzcyBwaWQg
JWkgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSB0byBmcmFtZUlEICUiIFBSSXU2NCAi
LCBuYXZpZ2F0aW9uSUQgJSIgUFJJdTY0ICIsIHVybCAlcyIsIG1fcGFnZUlELnRvVUludDY0KCks
IHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgdXJs
LnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9h
ZGluZywgImRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgcHJvY2Vzcy0+cHJvY2Vzc0lk
ZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgTE9HKExvYWRp
bmcsICJXZWJQYWdlUHJveHkgJSIgUFJJdTY0ICIgaW4gcHJvY2VzcyBwaWQgJWkgZGlkU3RhcnRQ
cm92aXNpb25hbExvYWRGb3JGcmFtZSB0byBmcmFtZUlEICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9u
SUQgJSIgUFJJdTY0ICIsIHVybCAlcyIsIG1fcGFnZUlELnRvVUludDY0KCksIHByb2Nlc3MtPnBy
b2Nlc3NJZGVudGlmaWVyKCksIGZyYW1lSUQudG9VSW50NjQoKSwgbmF2aWdhdGlvbklELCB1cmwu
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2Fk
aW5nLCAiZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBwcm9jZXNzLT5wcm9jZXNzSWRl
bnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCkpOwogCiAg
ICAgYXV0byB0cmFuc2FjdGlvbiA9IG1fcGFnZUxvYWRTdGF0ZS50cmFuc2FjdGlvbigpOwogCkBA
IC00MDMxLDcgKzQwMzEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25h
bExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmCiAgICAgICAgIG1fbmF2
aWdhdGlvbkNsaWVudC0+ZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb24oKnRoaXMsIG5hdmln
YXRpb24uZ2V0KCksIHByb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEu
b2JqZWN0KCkpLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEV4cGxpY2l0T3Bl
bkZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFVSTCYmIHVybCkKK3ZvaWQgV2ViUGFnZVByb3h5
OjpkaWRFeHBsaWNpdE9wZW5Gb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgVVJMJiYg
dXJsKQogewogICAgIGF1dG8qIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsK
ICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwpAQCAtNDA1MCwxNSArNDA1MCwx
NSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRXhwbGljaXRPcGVuRm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgVVJMJiYgdXJsKQogICAgIG1fcGFnZUxvYWRTdGF0ZS5jb21taXRDaGFuZ2VzKCk7
CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92
aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkK
K3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25h
bExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEp
CiB7CiAgICAgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgbmF2aWdhdGlvbklELCBXVEZN
b3ZlKHJlcXVlc3QpLCB1c2VyRGF0YSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNl
aXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vzcywg
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgUmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewotICAgIExPRyhM
b2FkaW5nLCAiV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNp
b25hbExvYWRGb3JGcmFtZSB0byBmcmFtZUlEICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9uSUQgJSIg
UFJJdTY0ICIsIHVybCAlcyIsIGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgcmVxdWVzdC51cmwoKS5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRp
bmcsICJkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZTog
d2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBw
cm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlE
KTsKKyAgICBMT0coTG9hZGluZywgIldlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGly
ZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUgdG8gZnJhbWVJRCAlIiBQUkl1NjQgIiwgbmF2
aWdhdGlvbklEICUiIFBSSXU2NCAiLCB1cmwgJXMiLCBmcmFtZUlELnRvVUludDY0KCksIG5hdmln
YXRpb25JRCwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQ
cm92aXNpb25hbExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0LCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3Bh
Z2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCkpOwogCiAgICAgUGFnZUNsaWVudFBy
b3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDA4NSw5ICs0MDg1LDkgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lU2hhcmVkKFJlZjwKICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRS
ZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbE5hdmlnYXRpb24oKnRoaXMsIG5hdmln
YXRpb24uZ2V0KCksIHByb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEu
b2JqZWN0KCkpLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OndpbGxQZXJmb3JtQ2xp
ZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHVybCwg
ZG91YmxlIGRlbGF5LCBXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0KQordm9pZCBXZWJQYWdl
UHJveHk6OndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1cmwsIGRvdWJsZSBkZWxheSwgV2ViQ29yZTo6TG9ja0Jh
Y2tGb3J3YXJkTGlzdCkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJ3
aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRp
ZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKExvYWRpbmcsICJ3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWU6IHdl
YlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9w
cm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlE
LnRvVUludDY0KCkpOwogCiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNs
aWVudCgpKTsKIApAQCAtNDA5OCw5ICs0MDk4LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OndpbGxQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHIK
ICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT53aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KCp0
aGlzLCB1cmwsIGRlbGF5KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZENhbmNlbENsaWVu
dFJlZGlyZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQog
ewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZENhbmNlbENsaWVudFJl
ZGlyZWN0Rm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50
b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcs
ICJkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50
aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAg
IFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQxMTEs
MTIgKzQxMTEsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENhbmNlbENsaWVudFJlZGlyZWN0
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCkKICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5k
aWRDYW5jZWxDbGllbnRSZWRpcmVjdCgqdGhpcyk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgVVJMJiYgdXJsKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZVBy
b3Zpc2lvbmFsVVJMRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgVVJMJiYgdXJsKQogewogICAgIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9y
RnJhbWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgbmF2aWdhdGlvbklELCBX
VEZNb3ZlKHVybCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9u
YWxVUkxGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2
NF90IGZyYW1lSUQsIHVpbnQ2NF90LCBVUkwmJiB1cmwpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
Q2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
IHByb2Nlc3MsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCwgVVJMJiYgdXJsKQog
ewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAg
LTQxMzUsNyArNDEzNSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92aXNpb25h
bFVSTEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYKICAgICBmcmFtZS0+ZGlk
UmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKHVybCk7CiB9CiAKLXZvaWQg
V2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFJl
c291cmNlRXJyb3ImIGVycm9yLCBXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250aW51ZUxvYWRp
bmcsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWls
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNl
Y3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBSZXNvdXJjZUVycm9yJiBl
cnJvciwgV2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2Vy
RGF0YSYgdXNlckRhdGEpCiB7CiAgICAgaWYgKG1fcHJvdmlzaW9uYWxQYWdlICYmIG1fcHJvdmlz
aW9uYWxQYWdlLT5uYXZpZ2F0aW9uSUQoKSA9PSBuYXZpZ2F0aW9uSUQpIHsKICAgICAgICAgLy8g
VGhlIGxvYWQgZGlkIG5vdCBmYWlsLCBpdCBpcyBtZXJlbHkgaGFwcGVuaW5nIGluIGEgbmV3IHBy
b3Zpc2lvbmFsIHByb2Nlc3MuCkBAIC00MTQ1LDEwICs0MTQ1LDEwIEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgU2VjdXJpCiAgICAgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJv
Y2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIG5hdmlnYXRpb25J
RCwgcHJvdmlzaW9uYWxVUkwsIGVycm9yLCB3aWxsQ29udGludWVMb2FkaW5nLCB1c2VyRGF0YSk7
CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVT
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCB1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgUmVzb3VyY2VF
cnJvciYgZXJyb3IsIFdpbGxDb250aW51ZUxvYWRpbmcgd2lsbENvbnRpbnVlTG9hZGluZywgY29u
c3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNp
b25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNp
b25hbFVSTCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFdpbGxDb250aW51ZUxvYWRpbmcg
d2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIExP
RyhMb2FkaW5nLCAiKExvYWRpbmcpIFdlYlBhZ2VQcm94eSAlIiBQUkl1NjQgIiBpbiB3ZWIgcHJv
Y2VzcyBwaWQgJWkgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lIHRvIHByb3Zpc2lvbmFs
VVJMICVzIiwgbV9wYWdlSUQudG9VSW50NjQoKSwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIo
KSwgcHJvdmlzaW9uYWxVUkwudXRmOCgpLmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRChQcm9jZXNzLCAiZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAl
aSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgZG9tYWluID0g
JXMsIGNvZGUgPSAlZCIsIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRv
VUludDY0KCksIGZyYW1lSUQsIGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCksIGVycm9yLmVy
cm9yQ29kZSgpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3MsICJkaWRGYWls
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBkb21haW4gPSAlcywgY29kZSA9ICVkIiwgcHJvY2Vz
cy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJ
bnQ2NCgpLCBlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJvci5lcnJvckNvZGUoKSk7
CiAKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBA
IC00MjI0LDExICs0MjI0LDExIEBAIHN0YXRpYyBPcHRpb25TZXQ8Q3Jvc3NTaXRlTmF2aWdhdGlv
bkRhdGFUcmFuc2Zlcjo6RmxhZz4gY2hlY2tJZk5hdmlnYXRpb25Db250YWluCiB9CiAjZW5kaWYK
IAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wg
ZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IG9wYXF1ZUZyYW1lTG9hZFR5
cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBib29s
IGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPEhhc0luc2VjdXJlQ29udGVudD4gaGFz
SW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXND
dXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IG9wYXF1ZUZyYW1lTG9hZFR5cGUsIGNvbnN0
IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBib29sIGNvbnRhaW5z
UGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPEhhc0luc2VjdXJlQ29udGVudD4gaGFzSW5zZWN1cmVD
b250ZW50LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgTE9HKExvYWRpbmcsICIo
TG9hZGluZykgV2ViUGFnZVByb3h5ICUiIFBSSXU2NCAiIGRpZENvbW1pdExvYWRGb3JGcmFtZSBp
biBuYXZpZ2F0aW9uICUiIFBSSXU2NCwgbV9wYWdlSUQudG9VSW50NjQoKSwgbmF2aWdhdGlvbklE
KTsKICAgICBMT0coQmFja0ZvcndhcmQsICIoQmFjay9Gb3J3YXJkKSBBZnRlciBsb2FkIGNvbW1p
dCwgYmFjay9mb3J3YXJkIGxpc3QgaXMgbm93OiVzIiwgbV9iYWNrRm9yd2FyZExpc3QtPmxvZ2dp
bmdTdHJpbmcoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkQ29t
bWl0TG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQu
dG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5n
LCAiZGlkQ29tbWl0TG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwg
bV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAgIFBhZ2VDbGll
bnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQzMzgsOSArNDMzOCw5
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklECiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdl
UHJveHk6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsK
LSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRGaW5pc2hEb2N1bWVudExv
YWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUlu
dDY0KCksIGZyYW1lSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRp
ZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIo
KSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAgIFBhZ2VD
bGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQzNjEsMTAgKzQz
NjEsMTAgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmkKICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xp
ZW50LT5kaWRGaW5pc2hEb2N1bWVudExvYWQoKnRoaXMsIG5hdmlnYXRpb24uZ2V0KCksIG1fcHJv
Y2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkp
OwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRh
KQordm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRh
dGEpCiB7CiAgICAgTE9HKExvYWRpbmcsICJXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRGb3JG
cmFtZSAtIFdlYlBhZ2VQcm94eSAlcCB3aXRoIG5hdmlnYXRpb25JRCAlIiBQUkl1NjQgIiBkaWRG
aW5pc2hMb2FkIiwgdGhpcywgbmF2aWdhdGlvbklEKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKExvYWRpbmcsICJkaWRGaW5pc2hMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRl
bnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRGaW5pc2hMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVp
LCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5w
cm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0
KCkpOwogCiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsK
IApAQCAtNDQwNyw5ICs0NDA3LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQKICAgICBtX2lz
TG9hZGluZ0FsdGVybmF0ZUhUTUxTdHJpbmdGb3JGYWlsaW5nUHJvdmlzaW9uYWxMb2FkID0gZmFs
c2U7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJy
b3IsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWls
TG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEp
CiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkRmFpbExvYWRGb3JG
cmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIsIGRvbWFpbiA9ICVzLCBjb2RlID0gJWQiLCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlm
aWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQsIGVycm9yLmRvbWFpbigpLnV0Zjgo
KS5kYXRhKCksIGVycm9yLmVycm9yQ29kZSgpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KExvYWRpbmcsICJkaWRGYWlsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgZG9tYWluID0gJXMsIGNvZGUgPSAlZCIs
IG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJh
bWVJRC50b1VJbnQ2NCgpLCBlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJvci5lcnJv
ckNvZGUoKSk7CiAKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50
KCkpOwogCkBAIC00NDQ5LDkgKzQ0NDksOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbExv
YWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsCiAgICAg
fQogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMyX3Qgb3Bh
cXVlU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUsIFVSTCYmIHVybCwgY29uc3QgVXNlckRhdGEm
IHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25G
b3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCB1
aW50MzJfdCBvcGFxdWVTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgVVJMJiYgdXJsLCBjb25z
dCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2Fk
aW5nLCAiZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vz
c0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZy
YW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwg
ZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9y
KHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQ0ODgsNyArNDQ4OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWlu
dDY0X3QKICAgICAgICAgcGFnZUNsaWVudCgpLmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JN
YWluRnJhbWUobmF2aWdhdGlvblR5cGUpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hh
bmdlTWFpbkRvY3VtZW50KHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
Q2hhbmdlTWFpbkRvY3VtZW50KEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCiAgICAgaWYgKG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyKQpAQCAtNDUwNyw3ICs0NTA3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnZpZXdJc0JlY29t
aW5nVmlzaWJsZSgpCiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVU
aXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0
IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlVGl0bGVG
b3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29u
c3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVj
dG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQ1MjksMTEgKzQ1MjksMTEgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0
cmluZyYgdGl0bGUKICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmlyc3RMYXlv
dXRGb3JGcmFtZSh1aW50NjRfdCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQ
YWdlUHJveHk6OmRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyLCBjb25zdCBV
c2VyRGF0YSYgdXNlckRhdGEpCiB7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdFZp
c3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVc2Vy
RGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmlyc3RWaXN1YWxseU5vbkVt
cHR5TGF5b3V0Rm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRh
JiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xp
ZW50KCkpOwogCkBAIC00NTY0LDcgKzQ1NjQsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVh
Y2hMYXlvdXRNaWxlc3RvbmUoT3B0aW9uU2V0PFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZT4gbAog
ICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+cmVuZGVyaW5nUHJvZ3Jlc3NEaWRDaGFuZ2UoKnRoaXMs
IGxheW91dE1pbGVzdG9uZXMpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGlzcGxheUlu
c2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJiB1
c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9y
RnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkK
IHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBA
IC00NTc4LDcgKzQ1NzgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGlzcGxheUluc2VjdXJl
Q29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZQogICAgIG1fbmF2aWdh
dGlvbkNsaWVudC0+ZGlkRGlzcGxheUluc2VjdXJlQ29udGVudCgqdGhpcywgbV9wcm9jZXNzLT50
cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9iamVjdCgpKS5nZXQoKSk7CiB9CiAK
LXZvaWQgV2ViUGFnZVByb3h5OjpkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3Rl
Y3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00NTkyLDcgKzQ1OTIsNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgVXNlckRhdAogICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkUnVuSW5zZWN1cmVDb250ZW50
KCp0aGlzLCBtX3Byb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2Jq
ZWN0KCkpLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZERldGVjdFhTU0ZvckZy
YW1lKHVpbnQ2NF90LCBjb25zdCBVc2VyRGF0YSYpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGV0
ZWN0WFNTRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyLCBjb25zdCBVc2VyRGF0YSYpCiB7CiB9CiAK
QEAgLTQ2MDEsNyArNDYwMSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjptYWluRnJhbWVQbHVnaW5I
YW5kbGVzUGFnZVNjYWxlR2VzdHVyZURpZENoYW5nZShib29sIG1haW5GcmFtCiAgICAgbV9tYWlu
RnJhbWVQbHVnaW5IYW5kbGVzUGFnZVNjYWxlR2VzdHVyZSA9IG1haW5GcmFtZVBsdWdpbkhhbmRs
ZXNQYWdlU2NhbGVHZXN0dXJlOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZnJhbWVEaWRCZWNv
bWVGcmFtZVNldCh1aW50NjRfdCBmcmFtZUlELCBib29sIHZhbHVlKQordm9pZCBXZWJQYWdlUHJv
eHk6OmZyYW1lRGlkQmVjb21lRnJhbWVTZXQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wg
dmFsdWUpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgp
KTsKIApAQCAtNDYyMCw3ICs0NjIwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmJlZ2luU2FmZUJy
b3dzaW5nQ2hlY2soY29uc3QgVVJMJiwgYm9vbCwgV2ViRnJhbWVQb2xpY3lMaXN0ZW4KIH0KICNl
bmRpZgogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bkFzeW5jKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZy
YW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbkFzeW5jKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZp
ZXIgaWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELAogICAgIE5hdmlnYXRpb25BY3Rp
b25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9E
YXRhLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LAogICAgIElQQzo6Rm9ybURhdGFSZWZlcmVuY2Um
JiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9u
c2UsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKIHsKQEAg
LTQ2MjgsNyArNDYyOCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uQXN5bmModWludDY0X3QgZnJhbWVJRCwgV2ViQ29yCiAgICAgICAgIFdURk1v
dmUoZnJhbWVJbmZvRGF0YSksIG9yaWdpbmF0aW5nUGFnZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdU
Rk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVxdWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVz
cG9uc2UpLCB1c2VyRGF0YSwgbGlzdGVuZXJJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiBwcm9jZXNzLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLAordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
IHByb2Nlc3MsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLAogICAgIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rp
b25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9E
YXRhLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQs
CiAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2Um
JiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9u
c2UsCiAgICAgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQpA
QCAtNDc2OSw3ICs0NzY5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXMKICAgICAgICAgYmVn
aW5TYWZlQnJvd3NpbmdDaGVjayhyZXF1ZXN0LnVybCgpLCBmcmFtZS5pc01haW5GcmFtZSgpLCBs
aXN0ZW5lcik7CiAKICAgICBBUEk6Ok5hdmlnYXRpb24qIG1haW5GcmFtZU5hdmlnYXRpb24gPSBm
cmFtZS5pc01haW5GcmFtZSgpID8gbmF2aWdhdGlvbi5nZXQoKSA6IG51bGxwdHI7Ci0gICAgV2Vi
RnJhbWVQcm94eSogb3JpZ2luYXRpbmdGcmFtZSA9IHByb2Nlc3MtPndlYkZyYW1lKG9yaWdpbmF0
aW5nRnJhbWVJbmZvRGF0YS5mcmFtZUlEKTsKKyAgICBXZWJGcmFtZVByb3h5KiBvcmlnaW5hdGlu
Z0ZyYW1lID0gb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLmZyYW1lSUQgPyBwcm9jZXNzLT53ZWJG
cmFtZSgqb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLmZyYW1lSUQpIDogbnVsbHB0cjsKIAogI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgaWYgKGF1dG8qIHJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZSA9IHdlYnNpdGVEYXRhU3RvcmUoKS5yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzKCkpCkBAIC00ODU4LDcgKzQ4NTgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9nRnJh
bWVOYXZpZ2F0aW9uKGNvbnN0IFdlYkZyYW1lUHJveHkmIGZyYW1lLCBjb25zdCBVUkwmIHBhZwog
fQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uU3luYyh1aW50NjRfdCBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50
aWZpZXIgaWRlbnRpZmllciwKK3ZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uU3luYyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFt
ZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9s
aWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9E
YXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5n
UGFnZUlELAogICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1
ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVm
ZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVj
dFJlc3BvbnNlLAogICAgIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBs
eSYmIHJlcGx5KQpAQCAtNDg3Niw3ICs0ODc2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXMK
ICAgICAgICAgV1RGTW92ZShmcmFtZUluZm9EYXRhKSwgb3JpZ2luYXRpbmdQYWdlSUQsIG9yaWdp
bmFsUmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZXF1ZXN0Qm9keSksIFdURk1v
dmUocmVkaXJlY3RSZXNwb25zZSksIHVzZXJEYXRhLCBXVEZNb3ZlKHJlcGx5KSk7CiB9CiAKLXZv
aWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJl
ZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wg
aXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlP
cmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAordm9pZCBXZWJQYWdlUHJv
eHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wgaXNNYWlu
RnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4s
IFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAogICAgIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJ
bmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBvcmlnaW5h
dGluZ1BhZ2VJRCwKICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFs
UmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgSVBDOjpGb3JtRGF0
YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVk
aXJlY3RSZXNwb25zZSwKICAgICBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVk
UmVwbHkmJiByZXBseSkKQEAgLTQ4OTMsNyArNDg5Myw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1By
b3h5CiAgICAgc2VuZGVyLT5zZW5kKFBvbGljeUFjdGlvbjo6VXNlLCBuYXZpZ2F0aW9uSUQsIERv
d25sb2FkSUQoKSwgV1RGOjpudWxsb3B0KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lk
ZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0
eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBp
ZGVudGlmaWVyLAordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0Fj
dGlvbihGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBm
cmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKICAg
ICBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBSZXNvdXJjZVJl
cXVlc3QmJiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVu
ZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0
b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CkBAIC00OTMxLDEzICs0OTMxLDEzIEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24odWludDY0X3QgZnJh
bWVJRCwgY29uc3QgU2VjdXJpCiAgICAgICAgIAogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmln
aW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRp
ZmllciwKK3ZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5
T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKICAgICB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcm
IGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYg
dXNlckRhdGEpCiB7CiAgICAgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQobV9wcm9jZXNz
LmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0eU9yaWdpbiwgaWRlbnRpZmllciwgbmF2
aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd01JTUVUeXBlLCBkb3dubG9hZEF0
dHJpYnV0ZSwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6
ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9j
ZXNzLCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAordm9pZCBXZWJQ
YWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3Jp
Z2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50
aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dN
SU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVu
ZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0
b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CkBAIC00OTcxLDcgKzQ5NzEsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiBwcm9jZXNzLAogICAgIH0KIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnVuYWJsZVRv
SW1wbGVtZW50UG9saWN5KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVy
cm9yLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6dW5hYmxl
VG9JbXBsZW1lbnRQb2xpY3koRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFJlc291cmNl
RXJyb3ImIGVycm9yLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgUGFnZUNsaWVu
dFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDk4NSw3ICs0OTg1LDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OnVuYWJsZVRvSW1wbGVtZW50UG9saWN5KHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFJlc291cmNlRXJyb3IKIAogLy8gRm9ybUNsaWVudAogCi12b2lkIFdlYlBh
Z2VQcm94eTo6d2lsbFN1Ym1pdEZvcm0odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qgc291cmNl
RnJhbWVJRCwgY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+JiB0ZXh0Rmll
bGRWYWx1ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkK
K3ZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0Rm9ybShGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgRnJhbWVJZGVudGlmaWVyIHNvdXJjZUZyYW1lSUQsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8
U3RyaW5nLCBTdHJpbmc+PiYgdGV4dEZpZWxkVmFsdWVzLCB1aW50NjRfdCBsaXN0ZW5lcklELCBj
b25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBt
X3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNz
LCBmcmFtZSk7CkBAIC01MDAzLDEyICs1MDAzLDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb250
ZW50UnVsZUxpc3ROb3RpZmljYXRpb24oVVJMJiYgdXJsLCBDb250ZW50UnVsZUxpc3RSZXN1bHRz
CiAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5jb250ZW50UnVsZUxpc3ROb3RpZmljYXRpb24oKnRo
aXMsIFdURk1vdmUodXJsKSwgV1RGTW92ZShyZXN1bHRzKSk7CiB9CiAgICAgCi12b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdhdGlv
bkRhdGFTdG9yZSYgc3RvcmUsIHVpbnQ2NF90IGZyYW1lSUQpIAordm9pZCBXZWJQYWdlUHJveHk6
OmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3Rv
cmUmIHN0b3JlLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBkaWROYXZpZ2F0ZVdp
dGhOYXZpZ2F0aW9uRGF0YVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBzdG9yZSwgZnJhbWVJ
RCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0
YVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIGNvbnN0IFdlYk5hdmlnYXRp
b25EYXRhU3RvcmUmIHN0b3JlLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6
OmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYgcHJvY2VzcywgY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYgc3RvcmUsIEZyYW1lSWRl
bnRpZmllciBmcmFtZUlEKQogewogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywg
ImRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkOiB3ZWJQSUQgPSAlaSwgcGFnZUlE
ID0gJSIgUFJJdTY0LCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJ
bnQ2NCgpKTsKIApAQCAtNTAyMywxNCArNTAyMywxNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
TmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBw
cgogICAgIHByb2Nlc3MtPnByb2Nlc3NQb29sKCkuaGlzdG9yeUNsaWVudCgpLmRpZE5hdmlnYXRl
V2l0aE5hdmlnYXRpb25EYXRhKHByb2Nlc3MtPnByb2Nlc3NQb29sKCksICp0aGlzLCBzdG9yZSwg
KmZyYW1lKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVj
dChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlv
blVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJm
b3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0
cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewog
ICAgIGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBz
b3VyY2VVUkxTdHJpbmcsIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBmcmFtZUlEKTsKIH0KIAotdm9p
ZCBXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJv
Y2Vzc1Byb3h5PiYmIHByb2Nlc3MsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25z
dCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBX
ZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmIHByb2Nlc3MsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBT
dHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsK
LSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRQZXJmb3JtQ2xpZW50UmVk
aXJlY3RTaGFyZWQ6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9
ICUiIFBSSXU2NCwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50
NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlk
UGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCks
IG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAKICAgICBQYWdlQ2xp
ZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC01MDUwLDEyICs1MDUw
LDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQo
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzCiAgICAgcHJvY2Vzcy0+cHJvY2Vzc1Bvb2wo
KS5oaXN0b3J5Q2xpZW50KCkuZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KHByb2Nlc3MtPnByb2Nl
c3NQb29sKCksICp0aGlzLCBzb3VyY2VVUkxTdHJpbmcsIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCAq
ZnJhbWUpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0
KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9u
VVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFBlcmZv
cm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3Ry
aW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAg
ICAgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0U2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIHNv
dXJjZVVSTFN0cmluZywgZGVzdGluYXRpb25VUkxTdHJpbmcsIGZyYW1lSUQpOwogfQogCi12b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYgcHJvY2VzcywgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0
IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYgcHJvY2VzcywgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0
cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewog
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZFBlcmZvcm1TZXJ2ZXJSZWRp
cmVjdDogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCwgcHJvY2Vzcy0+cHJvY2Vzc0lk
ZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSk7CiAKQEAgLTUwNzYsNyArNTA3Niw3IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzCiAgICAgcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5oaXN0
b3J5Q2xpZW50KCkuZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KHByb2Nlc3MtPnByb2Nlc3NQb29s
KCksICp0aGlzLCBzb3VyY2VVUkxTdHJpbmcsIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCAqZnJhbWUp
OwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkVXBkYXRlSGlzdG9yeVRpdGxlKGNvbnN0IFN0
cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgdXJsLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBX
ZWJQYWdlUHJveHk6OmRpZFVwZGF0ZUhpc3RvcnlUaXRsZShjb25zdCBTdHJpbmcmIHRpdGxlLCBj
b25zdCBTdHJpbmcmIHVybCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgUGFnZUNs
aWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNTEwNyw4ICs1MTA3
LDEwIEBAIHN0YXRpYyB2b2lkIHRyeVNPQXV0aG9yaXphdGlvbihSZWY8QVBJOjpOYXZpZ2F0aW9u
QWN0aW9uPiYmIG5hdmlnYXRpb25BY3Rpb24sIFdlCiAKIHZvaWQgV2ViUGFnZVByb3h5OjpjcmVh
dGVOZXdQYWdlKGNvbnN0IEZyYW1lSW5mb0RhdGEmIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBSZXNvdXJjZVJlcXVl
c3QmJiByZXF1ZXN0LCBXaW5kb3dGZWF0dXJlcyYmIHdpbmRvd0ZlYXR1cmVzLCBOYXZpZ2F0aW9u
QWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpDcmVhdGVOZXdQYWdlOjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsKLSAgICBNRVNTQUdFX0NI
RUNLKG1fcHJvY2VzcywgbV9wcm9jZXNzLT53ZWJGcmFtZShvcmlnaW5hdGluZ0ZyYW1lSW5mb0Rh
dGEuZnJhbWVJRCkpOwotICAgIGF1dG8gb3JpZ2luYXRpbmdGcmFtZUluZm8gPSBBUEk6OkZyYW1l
SW5mbzo6Y3JlYXRlKG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgb3JpZ2luYXRpbmdQYWdlSUQg
PyBtX3Byb2Nlc3MtPndlYlBhZ2UoKm9yaWdpbmF0aW5nUGFnZUlEKSA6IG51bGxwdHIpOworICAg
IE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEuZnJhbWVJ
RCk7CisgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIG1fcHJvY2Vzcy0+d2ViRnJhbWUoKm9y
aWdpbmF0aW5nRnJhbWVJbmZvRGF0YS5mcmFtZUlEKSk7CisKKyAgICBhdXRvIG9yaWdpbmF0aW5n
RnJhbWVJbmZvID0gQVBJOjpGcmFtZUluZm86OmNyZWF0ZShvcmlnaW5hdGluZ0ZyYW1lSW5mb0Rh
dGEsIG1fcHJvY2Vzcy0+d2ViUGFnZSgqb3JpZ2luYXRpbmdQYWdlSUQpKTsKICAgICBhdXRvIG1h
aW5GcmFtZVVSTCA9IG1fbWFpbkZyYW1lID8gbV9tYWluRnJhbWUtPnVybCgpIDogVVJMKCk7CiAg
ICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyksIG1haW5GcmFtZVVSTCwgcmVxdWVzdCwgcmVwbHkgPSBXVEZNb3ZlKHJlcGx5KV0g
KFJlZlB0cjxXZWJQYWdlUHJveHk+IG5ld1BhZ2UpIG11dGFibGUgewogICAgICAgICBpZiAoIW5l
d1BhZ2UpIHsKQEAgLTUxNzgsNyArNTE4MCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjbG9zZVBh
Z2UoYm9vbCBzdG9wUmVzcG9uc2l2ZW5lc3NUaW1lcikKICAgICBtX3VpQ2xpZW50LT5jbG9zZSh0
aGlzKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRBbGVydCh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRB
bGVydDo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit2b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNj
cmlwdEFsZXJ0KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRh
dGEmIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydDo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7CiAg
ICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwog
ICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBmcmFtZSk7CkBAIC01MTk3LDcgKzUxOTksNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEFsZXJ0KHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YQogICAgIG1fdWlDbGllbnQtPnJ1bkphdmFTY3JpcHRB
bGVydCh0aGlzLCBtZXNzYWdlLCBmcmFtZSwgc2VjdXJpdHlPcmlnaW4sIFdURk1vdmUocmVwbHkp
KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRDb25maXJtKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENv
bmZpcm06OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQordm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFT
Y3JpcHRDb25maXJtKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdp
bkRhdGEmIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRDb25maXJtOjpEZWxheWVkUmVwbHkmJiByZXBseSkK
IHsKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJ
RCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKQEAgLTUyMTcsNyArNTIx
OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0Q29uZmlybSh1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhCiAgICAgbV91aUNsaWVudC0+cnVuSmF2YVNj
cmlwdENvbmZpcm0odGhpcywgbWVzc2FnZSwgZnJhbWUsIHNlY3VyaXR5T3JpZ2luLCBXVEZNb3Zl
KHJlcGx5KSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0UHJvbXB0KHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4s
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OkRlbGF5ZWRSZXBseSYmIHJl
cGx5KQordm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4sIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OkRlbGF5ZWRSZXBseSYmIHJlcGx5
KQogewogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFt
ZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwpAQCAtNTM3Niw3ICs1
Mzc4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJvb3RWaWV3VG9BY2Nlc3NpYmlsaXR5U2NyZWVu
KGNvbnN0IEludFJlY3QmIHZpZXdSZWN0LCBDb21wbGUKICAgICBjb21wbGV0aW9uSGFuZGxlcihw
YWdlQ2xpZW50KCkucm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3JlZW4odmlld1JlY3QpKTsKIH0K
IAotdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbDo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit2b2lkIFdlYlBhZ2VQcm94eTo6
cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25z
dCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDo6
RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7CiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3By
b2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBm
cmFtZSk7CkBAIC01NDE2LDcgKzU0MTgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cGFnZURpZFNj
cm9sbCgpCiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJ1bk9wZW5QYW5lbCh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmln
aW4sIGNvbnN0IEZpbGVDaG9vc2VyU2V0dGluZ3MmIHNldHRpbmdzKQordm9pZCBXZWJQYWdlUHJv
eHk6OnJ1bk9wZW5QYW5lbChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlP
cmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBjb25zdCBGaWxlQ2hvb3NlclNldHRpbmdz
JiBzZXR0aW5ncykKIHsKICAgICBpZiAobV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcikgewogICAg
ICAgICBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyLT5pbnZhbGlkYXRlKCk7CkBAIC01NDU1LDcg
KzU0NTcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd1NoYXJlU2hlZXQoY29uc3QgU2hhcmVE
YXRhV2l0aFBhcnNlZFVSTCYgc2hhcmVEYXRhLCBTaGFyZQogICAgIHBhZ2VDbGllbnQoKS5zaG93
U2hhcmVTaGVldChzaGFyZURhdGEsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KICAg
ICAKLXZvaWQgV2ViUGFnZVByb3h5OjpwcmludEZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpwcmludEZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFtX2lzUGVyZm9y
bWluZ0RPTVByaW50T3BlcmF0aW9uKTsKICAgICBtX2lzUGVyZm9ybWluZ0RPTVByaW50T3BlcmF0
aW9uID0gdHJ1ZTsKQEAgLTY3NjksMjcgKzY3NzEsMjcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnBy
aW50RmluaXNoZWRDYWxsYmFjayhjb25zdCBSZXNvdXJjZUVycm9yJiBwcmludEVycm9yLCBDYWxs
YmEKIH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2VQcm94eTo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCh1
aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmZvY3VzZWRGcmFtZUNoYW5nZWQo
Y29uc3QgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiYgZnJhbWVJRCkKIHsKICAgICBpZiAoIWZy
YW1lSUQpIHsKICAgICAgICAgbV9mb2N1c2VkRnJhbWUgPSBudWxscHRyOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZy
YW1lKGZyYW1lSUQpOworICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJG
cmFtZSgqZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKIAog
ICAgIG1fZm9jdXNlZEZyYW1lID0gZnJhbWU7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpmcmFt
ZVNldExhcmdlc3RGcmFtZUNoYW5nZWQodWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpmcmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQoY29uc3QgT3B0aW9uYWw8RnJhbWVJZGVu
dGlmaWVyPiYgZnJhbWVJRCkKIHsKICAgICBpZiAoIWZyYW1lSUQpIHsKICAgICAgICAgbV9mcmFt
ZVNldExhcmdlc3RGcmFtZSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7Cisg
ICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKCpmcmFtZUlEKTsK
ICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwogCiAgICAgbV9mcmFtZVNldExh
cmdlc3RGcmFtZSA9IGZyYW1lOwpAQCAtNzM0NSwyNiArNzM0NywyNiBAQCBXZWFrUHRyPFNlY0tl
eVByb3h5U3RvcmU+IFdlYlBhZ2VQcm94eTo6c2VjS2V5UHJveHlTdG9yZShjb25zdCBXZWJDb3Jl
OjpBdXRoZW50aQogICAgIHJldHVybiBudWxscHRyOwogfQogICAgIAotdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5KHVpbnQ2NF90LCBSZWY8
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkK
K3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94
eShGcmFtZUlkZW50aWZpZXIsIFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmIGF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKQogewogICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkUmVj
ZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCp0aGlzLCBhdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpleGNlZWRlZERhdGFiYXNlUXVvdGEo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3Qg
Y3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJl
bnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpFeGNlZWRlZERhdGFiYXNlUXVvdGE6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQordm9p
ZCBXZWJQYWdlUHJveHk6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFi
YXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3Rh
LCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVz
YWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFeGNl
ZWRlZERhdGFiYXNlUXVvdGE6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQogewogICAgIHJlcXVlc3RT
dG9yYWdlU3BhY2UoZnJhbWVJRCwgb3JpZ2luSWRlbnRpZmllciwgZGF0YWJhc2VOYW1lLCBkaXNw
bGF5TmFtZSwgY3VycmVudFF1b3RhLCBjdXJyZW50T3JpZ2luVXNhZ2UsIGN1cnJlbnREYXRhYmFz
ZVVzYWdlLCBleHBlY3RlZFVzYWdlLCBbcmVwbHkgPSBXVEZNb3ZlKHJlcGx5KV0oYXV0byBxdW90
YSkgbXV0YWJsZSB7CiAgICAgICAgIHJlcGx5KHF1b3RhKTsKICAgICB9KTsKIH0KIAotdm9pZCBX
ZWJQYWdlUHJveHk6OnJlcXVlc3RTdG9yYWdlU3BhY2UodWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
U3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29u
c3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBj
dXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRf
dCBleHBlY3RlZFVzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0U3RvcmFnZVNwYWNlKEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50
NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3Qg
Y3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQodWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoU3RvcmFnZSwgInJlcXVlc3RTdG9yYWdlU3BhY2UgZm9yIGZyYW1l
ICUiIFBSSXU2NCAiLCBjdXJyZW50IHF1b3RhICUiIFBSSXU2NCAiIGN1cnJlbnQgdXNhZ2UgJSIg
UFJJdTY0ICIgZXhwZWN0ZWQgdXNhZ2UgJSIgUFJJdTY0LCBmcmFtZUlELCBjdXJyZW50UXVvdGEs
IGN1cnJlbnREYXRhYmFzZVVzYWdlLCBleHBlY3RlZFVzYWdlKTsKKyAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKFN0b3JhZ2UsICJyZXF1ZXN0U3RvcmFnZVNwYWNlIGZvciBmcmFtZSAlIiBQUkl1
NjQgIiwgY3VycmVudCBxdW90YSAlIiBQUkl1NjQgIiBjdXJyZW50IHVzYWdlICUiIFBSSXU2NCAi
IGV4cGVjdGVkIHVzYWdlICUiIFBSSXU2NCwgZnJhbWVJRC50b1VJbnQ2NCgpLCBjdXJyZW50UXVv
dGEsIGN1cnJlbnREYXRhYmFzZVVzYWdlLCBleHBlY3RlZFVzYWdlKTsKIAogICAgIFN0b3JhZ2VS
ZXF1ZXN0czo6c2luZ2xldG9uKCkucHJvY2Vzc09yQXBwZW5kKFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyksIHBhZ2VVUkwgPSBjdXJyZW50VVJMKCksIGZyYW1lSUQsIG9yaWdp
bklkZW50aWZpZXIsIGRhdGFiYXNlTmFtZSwgZGlzcGxheU5hbWUsIGN1cnJlbnRRdW90YSwgY3Vy
cmVudE9yaWdpblVzYWdlLCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgZXhwZWN0ZWRVc2FnZSwgY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsK
ICAgICAgICAgdGhpcy0+bWFrZVN0b3JhZ2VTcGFjZVJlcXVlc3QoZnJhbWVJRCwgb3JpZ2luSWRl
bnRpZmllciwgZGF0YWJhc2VOYW1lLCBkaXNwbGF5TmFtZSwgY3VycmVudFF1b3RhLCBjdXJyZW50
T3JpZ2luVXNhZ2UsIGN1cnJlbnREYXRhYmFzZVVzYWdlLCBleHBlY3RlZFVzYWdlLCBbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGZyYW1lSUQsIHBhZ2VVUkwg
PSBXVEZNb3ZlKHBhZ2VVUkwpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpLCBjdXJyZW50UXVvdGFdKGF1dG8gcXVvdGEpIG11dGFibGUgewogCi0gICAgICAg
ICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFN0b3JhZ2UsICJyZXF1ZXN0U3RvcmFnZVNwYWNl
IHJlc3BvbnNlIGZvciBmcmFtZSAlIiBQUkl1NjQgIiwgcXVvdGEgJSIgUFJJdTY0LCBmcmFtZUlE
LCBxdW90YSk7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFN0b3JhZ2UsICJy
ZXF1ZXN0U3RvcmFnZVNwYWNlIHJlc3BvbnNlIGZvciBmcmFtZSAlIiBQUkl1NjQgIiwgcXVvdGEg
JSIgUFJJdTY0LCBmcmFtZUlELnRvVUludDY0KCksIHF1b3RhKTsKIAogICAgICAgICAgICAgaWYg
KHF1b3RhIDw9IGN1cnJlbnRRdW90YSAmJiB0aGlzLT5jdXJyZW50VVJMKCkgPT0gcGFnZVVSTCkg
ewogICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoU3RvcmFnZSwgInN0b3Jh
Z2Ugc3BhY2UgaW5jcmVhc2UgZGVuaWVkIik7CkBAIC03Mzc2LDcgKzczNzgsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6cmVxdWVzdFN0b3JhZ2VTcGFjZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBT
dHJpbmcmIG9yaWdpbklkZQogICAgIH0pOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6bWFrZVN0
b3JhZ2VTcGFjZVJlcXVlc3QodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5J
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNw
bGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNh
Z2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdl
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3ZvaWQgV2ViUGFnZVByb3h5OjptYWtlU3RvcmFnZVNwYWNlUmVxdWVzdChGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVu
dFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRh
YmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAobV9pc1F1b3RhSW5j
cmVhc2VEZW5pZWQpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY3VycmVudFF1b3RhKTsK
QEAgLTc0MDIsNyArNzQwNCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWFjaGVkQXBwbGljYXRp
b25DYWNoZU9yaWdpblF1b3RhKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpCiAgICAgbV91aUNs
aWVudC0+cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh0aGlzLCBzZWN1cml0eU9y
aWdpbi5nZXQoKSwgY3VycmVudFF1b3RhLCB0b3RhbEJ5dGVzTmVlZGVkLCBXVEZNb3ZlKHJlcGx5
KSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9u
Rm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5n
IG9yaWdpbklkZW50aWZpZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEdlb2xvY2F0aW9u
UGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKIHsKICAgICBXZWJGcmFtZVByb3h5
KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVD
SyhtX3Byb2Nlc3MsIGZyYW1lKTsKQEAgLTc0NDYsNyArNzQ0OCw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpzZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkT3ZlcnJpZGUoT3B0aW9uYWw8Ym9vbD4g
ZW5hYmxlZCkKIH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRp
YVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiAgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW5EYXRhLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9j
dW1lbnRPcmlnaW5EYXRhLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJiByZXF1ZXN0KQor
dm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWlu
dDY0X3QgdXNlck1lZGlhSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmICB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRhdGEsIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEs
IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmIHJlcXVlc3QpCiB7CiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgbV9wcm9jZXNzLT53ZWJG
cmFtZShmcmFtZUlEKSk7CkBAIC03NDYxLDcgKzc0NjMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwg
dWludAogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjplbnVtZXJhdGVNZWRpYURldmlj
ZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRhdGEs
IGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdp
bkRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUo
dWludDY0X3QgdXNlck1lZGlhSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luRGF0YSwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0
YSkKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1l
ID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTc0OTMsNyArNzQ5NSw3IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpjbGVhclVzZXJNZWRpYVN0YXRlKCkKIH0KIAogI2lmIEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pCi12b2lkIFdlYlBhZ2VQcm94eTo6c2hvdWxkQWxsb3dEZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmJiBvcmlnaW5EYXRhLCBib29sIG1heVByb21wdCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpzaG91bGRBbGxvd0RldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmJiBvcmlnaW5EYXRhLCBib29sIG1heVByb21wdCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRl
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1f
cHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3Ms
IGZyYW1lKTsKQEAgLTg3MzYsNyArODczOCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkU3lu
Y2hyb25vdXNVUkxTY2hlbWVUYXNrKFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYgcGFyYW1lCiB9
CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotdm9pZCBXZWJQYWdlUHJv
eHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
c3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwg
dWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZp
cm0oY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIG1f
dWlDbGllbnQtPnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSgqdGhpcywgbV9wcm9jZXNzLT53
ZWJGcmFtZShmcmFtZUlEKSwgc3ViRnJhbWVEb21haW4sIHRvcEZyYW1lRG9tYWluLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCmluZGV4IGI0MzgzY2FmODhmMzcyNzJjZjk0NzdiNjQwMzljZTllZjVjOTQ5YTEuLjIwNzY5
NTkxYWMxZTMyMmY1MWNkY2Y1MjBlNWFjZWViMmUzZjljYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMDE4LDcgKzEwMTgsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBydW5KYXZhU2NyaXB0SW5NYWluRnJhbWUoY29uc3QgU3RyaW5nJiwgYm9vbCwgV1RGOjpGdW5j
dGlvbjx2b2lkIChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSosIGJvb2wgaGFkRXhjZXB0aW9u
LCBjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+
JiYgY2FsbGJhY2tGdW5jdGlvbik7CiAgICAgdm9pZCBydW5KYXZhU2NyaXB0SW5NYWluRnJhbWVT
Y3JpcHRXb3JsZChjb25zdCBTdHJpbmcmLCBib29sLCBjb25zdCBPcHRpb25hbDxTdHJpbmc+JiB3
b3JsZE5hbWUsIFdURjo6RnVuY3Rpb248dm9pZChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSos
IGJvb2wgaGFkRXhjZXB0aW9uLCBjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzJiwgQ2Fs
bGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbik7CiAgICAgLy8gRm9yIHN1YiBm
cmFtZXMuCi0gICAgdm9pZCBydW5KYXZhU2NyaXB0SW5GcmFtZSh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBTdHJpbmcmIHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBXVEY6OkZ1bmN0aW9u
PHZvaWQoQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqLCBib29sIGhhZEV4Y2VwdGlvbiwgY29u
c3QgV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNh
bGxiYWNrRnVuY3Rpb24pOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluRnJhbWUoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0
dXJlLCBXVEY6OkZ1bmN0aW9uPHZvaWQoQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqLCBib29s
IGhhZEV4Y2VwdGlvbiwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyYsIENhbGxiYWNr
QmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pOwogICAgIHZvaWQgZm9yY2VSZXBhaW50
KFJlZlB0cjxWb2lkQ2FsbGJhY2s+JiYpOwogCiAgICAgZmxvYXQgaGVhZGVySGVpZ2h0KFdlYkZy
YW1lUHJveHkmKTsKQEAgLTExNjEsNyArMTE2MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRyYXdS
ZWN0VG9JbWFnZShXZWJGcmFtZVByb3h5KiwgY29uc3QgUHJpbnRJbmZvJiwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBSZWY8SW1hZ2VDYWxsYmFjaz4m
Jik7CiAgICAgdm9pZCBkcmF3UGFnZXNUb1BERihXZWJGcmFtZVByb3h5KiwgY29uc3QgUHJpbnRJ
bmZvJiwgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBSZWY8RGF0YUNhbGxiYWNrPiYm
KTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHVpbnQzMl90IGNvbXB1dGVQYWdlc0Zv
clByaW50aW5nQW5kRHJhd1RvUERGKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYs
IERyYXdUb1BERkNhbGxiYWNrOjpDYWxsYmFja0Z1bmN0aW9uJiYpOworICAgIHVpbnQzMl90IGNv
bXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgY29uc3QgUHJpbnRJbmZvJiwgRHJhd1RvUERGQ2FsbGJhY2s6OkNhbGxiYWNrRnVuY3Rpb24m
Jik7CiAgICAgdm9pZCBkcmF3VG9QREZDYWxsYmFjayhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2Um
IHBkZkRhdGEsIFdlYktpdDo6Q2FsbGJhY2tJRCk7CiAjZW5kaWYKICNlbGlmIFBMQVRGT1JNKEdU
SykKQEAgLTEyNTIsNyArMTI1Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFZpZXdwb3J0U2l6
ZUZvckNTU1ZpZXdwb3J0VW5pdHMoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogICAgIFdlYkNv
cmU6OkludFNpemUgdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpIGNvbnN0IHsgcmV0
dXJuIG1fdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cy52YWx1ZU9yKFdlYkNvcmU6Oklu
dFNpemUoKSk7IH0KIAotICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
UHJveHkodWludDY0X3QgZnJhbWVJRCwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+
JiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4m
Jik7CiAKICAgICBTcGVsbERvY3VtZW50VGFnIHNwZWxsRG9jdW1lbnRUYWcoKTsKIApAQCAtMTQ1
MiwxMiArMTQ1MiwxMiBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpCi0gICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oY29u
c3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgcmVxdWVzdFN0b3Jh
Z2VBY2Nlc3NDb25maXJtKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFt
ZURvbWFpbiwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWlu
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYpOwogICAgIHZvaWQgZGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXJGcm9t
UHJldmFsZW50UmVzb3VyY2UoKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRB
VElPTikKLSAgICB2b2lkIHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nl
c3ModWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIGJvb2wg
bWF5UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRldmljZU9yaWVudGF0
aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmKTsKKyAgICB2b2lkIHNob3VsZEFsbG93RGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgYm9vbCBtYXlQcm9tcHQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25T
dGF0ZSk+JiYpOwogI2VuZGlmCiAKICAgICBzdGF0aWMgV2ViUGFnZVByb3h5KiBub25FcGhlbWVy
YWxXZWJQYWdlUHJveHkoKTsKQEAgLTE0OTgsMzMgKzE0OTgsMzMgQEAgcHVibGljOgogI2VuZGlm
CiAKICAgICBQcm92aXNpb25hbFBhZ2VQcm94eSogcHJvdmlzaW9uYWxQYWdlUHJveHkoKSBjb25z
dCB7IHJldHVybiBtX3Byb3Zpc2lvbmFsUGFnZS5nZXQoKTsgfQotICAgIHZvaWQgY29tbWl0UHJv
dmlzaW9uYWxQYWdlKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwg
dWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiwg
Ym9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3Vy
ZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmKTsKKyAg
ICB2b2lkIGNvbW1pdFByb3Zpc2lvbmFsUGFnZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhh
c0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2Vi
Q29yZTo6Q2VydGlmaWNhdGVJbmZvJiwgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRp
b25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVu
dCwgY29uc3QgVXNlckRhdGEmKTsKIAogICAgIC8vIExvZ2ljIHNoYXJlZCBiZXR3ZWVuIHRoZSBX
ZWJQYWdlUHJveHkgYW5kIHRoZSBQcm92aXNpb25hbFBhZ2VQcm94eS4KLSAgICB2b2lkIGRpZFN0
YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
dWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiwgVVJMJiYgdW5y
ZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3QgZnJh
bWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3Jp
Z2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkws
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2Fk
aW5nLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0
Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
dWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmJiwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJS
ZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0X3Qg
ZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0
cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQg
ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiwgY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAg
IHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYm
KTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lk
ZW50aWZpZXIsCisgICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBVUkwmJiwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJE
YXRhJik7CisgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJE
YXRhJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExv
YWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiYsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RT
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJp
bmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcik7CisgICAgdm9pZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0
cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7Cisg
ICAgdm9pZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YVNoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmLCBjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFy
ZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25Bc3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJp
dHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwKICAgICAgICAgdWludDY0
X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYs
IE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYmLAogICAgICAgICBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVz
dEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25z
dCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2lu
LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsCisgICAgdm9pZCBkZWNpZGVQb2xpY3lG
b3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0
eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLAogICAgICAgICB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3Ry
aW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRh
dGEmKTsKICAgICB2b2lkIHN0YXJ0VVJMU2NoZW1lVGFza1NoYXJlZChSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmLCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmKTsKICAgICB2b2lkIGxvYWREYXRhV2l0
aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgQVBJOjpOYXZpZ2F0aW9u
JiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29u
c3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCog
dXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0aW9uYWw8
V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiA9IFdURjo6bnVsbG9wdCwgV2ViQ29yZTo6U2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeSA9IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3k6OlNob3VsZE5vdEFsbG93KTsKICAgICB2b2lkIGxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25T
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgQVBJOjpOYXZpZ2F0aW9uJiwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ks
IEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmID0gV1RGOjpudWxsb3B0KTsKICAg
ICB2b2lkIGJhY2tGb3J3YXJkR29Ub0l0ZW1TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
Y29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYpPiYmKTsKLSAgICB2b2lkIGRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYsIHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKKyAgICB2b2lkIGRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAogICAgICAgICBGcmFtZUluZm9E
YXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJ
RCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJv
ZHksCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNl
LCBjb25zdCBVc2VyRGF0YSYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVkUmVwbHkmJik7CiAjaWYgVVNFKFFVSUNLX0xP
T0spCiAgICAgdm9pZCBkaWRSZXF1ZXN0UGFzc3dvcmRGb3JRdWlja0xvb2tEb2N1bWVudEluTWFp
bkZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgZmlsZU5h
bWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQotICAgIHZvaWQgY29u
dGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYsIHVpbnQ2NF90
IGZyYW1lSUQpOworICAgIHZvaWQgY29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJV
bmJsb2NrSGFuZGxlciYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAjZW5kaWYKIAogICAg
IHZvaWQgZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0
IFN0cmluZyYpPiYmKTsKQEAgLTE1NjEsNyArMTU2MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRl
OwogICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CiAKLSAg
ICB2b2lkIHJlcXVlc3RTdG9yYWdlU3BhY2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5n
JiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3Ry
aW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50
T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBl
Y3RlZFVzYWdlLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmKTsKKyAg
ICB2b2lkIHJlcXVlc3RTdG9yYWdlU3BhY2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBj
b25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90
IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2
NF90IGV4cGVjdGVkVXNhZ2UsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+
JiYpOwogCiAgICAgVVJMIGN1cnJlbnRSZXNvdXJjZURpcmVjdG9yeVVSTCgpIGNvbnN0OwogCkBA
IC0xNTgxLDcgKzE1ODEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlVGhyb3R0bGVTdGF0
ZSgpOwogICAgIHZvaWQgdXBkYXRlSGlkZGVuUGFnZVRocm90dGxpbmdBdXRvSW5jcmVhc2VzKCk7
CiAKLSAgICBib29sIHN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUoQVBJOjpOYXZpZ2F0aW9u
JiwgT3B0aW9uYWw8dWludDY0X3Q+IG1haW5GcmFtZUlELCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5
Q2xpZW50LCBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ01vZGUpOworICAgIGJvb2wgc3VzcGVuZEN1cnJlbnRQYWdlSWZQb3NzaWJsZShBUEk6Ok5h
dmlnYXRpb24mLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IG1haW5GcmFtZUlE
LCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVu
dGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOwogCiAgICAgZW51bSBjbGFzcyBSZXNl
dFN0YXRlUmVhc29uIHsKICAgICAgICAgUGFnZUludmFsaWRhdGVkLApAQCAtMTYxMCwzMiArMTYx
MCwzMiBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFBvaW50ZXJVbmxvY2soKTsKICNlbmRp
ZgogCi0gICAgdm9pZCBkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJRCk7Ci0gICAg
dm9pZCBkaWRDcmVhdGVTdWJmcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZENy
ZWF0ZVdpbmRvdyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlm
aWVyJiYpOwotCi0gICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYsIFVSTCYmIHVucmVhY2hh
YmxlVVJMLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGly
ZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVXNlckRhdGEm
KTsKLSAgICB2b2lkIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBTdHJpbmcmIHVybCwgZG91YmxlIGRlbGF5LCBXZWJDb3JlOjpMb2NrQmFj
a0ZvcndhcmRMaXN0KTsKLSAgICB2b2lkIGRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOwotICAg
IHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZywgY29u
c3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJv
b2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUs
IGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYsIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1
bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNl
Y3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRGaW5pc2hEb2N1bWVu
dExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNv
bnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRGaW5pc2hMb2FkRm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZv
aWQgZGlkRmFpbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0YSYpOwot
ICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMyX3Qgc2FtZURvY3VtZW50TmF2aWdhdGlv
blR5cGUsIFVSTCYmLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkQ2hhbmdlTWFpbkRv
Y3VtZW50KHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkRXhwbGljaXRPcGVuRm9yRnJh
bWUodWludDY0X3QgZnJhbWVJRCwgVVJMJiYpOwotCi0gICAgdm9pZCBkaWRSZWNlaXZlVGl0bGVG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmLCBjb25zdCBVc2VyRGF0YSYp
OwotICAgIHZvaWQgZGlkRmlyc3RMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZERp
c3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVc2Vy
RGF0YSYpOwotICAgIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZERldGVjdFhTU0ZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRDcmVhdGVN
YWluRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZENyZWF0ZVN1
YmZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRDcmVhdGVXaW5k
b3coV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlm
aWVyJiYpOworCisgICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiwgVVJMJiYg
dW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU2Vy
dmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYs
IGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9y
RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVybCwgZG91Ymxl
IGRlbGF5LCBXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0KTsKKyAgICB2b2lkIGRpZENhbmNl
bENsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2
b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKKyAgICB2b2lkIGRpZEZhaWxQcm92
aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRh
dGEmKTsKKyAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9v
bCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwg
Y29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiwgYm9vbCBjb250YWluc1BsdWdpbkRvY3Vt
ZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2Vj
dXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZEZpbmlzaERvY3VtZW50
TG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBVc2Vy
RGF0YSYpOworICAgIHZvaWQgZGlkRmFpbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciYsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9u
Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IHVpbnQzMl90IHNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLCBVUkwmJiwgY29uc3QgVXNlckRh
dGEmKTsKKyAgICB2b2lkIGRpZENoYW5nZU1haW5Eb2N1bWVudChXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIpOworICAgIHZvaWQgZGlkRXhwbGljaXRPcGVuRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBVUkwmJik7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgY29uc3QgVXNlckRhdGEmKTsK
KyAgICB2b2lkIGRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5
b3V0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBVc2VyRGF0YSYpOwor
ICAgIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZFJ1bkluc2VjdXJlQ29u
dGVudEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgVXNlckRhdGEmKTsK
KyAgICB2b2lkIGRpZERldGVjdFhTU0ZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
Y29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIG1haW5GcmFtZVBsdWdpbkhhbmRsZXNQYWdlU2Nh
bGVHZXN0dXJlRGlkQ2hhbmdlKGJvb2wpOwotICAgIHZvaWQgZnJhbWVEaWRCZWNvbWVGcmFtZVNl
dCh1aW50NjRfdCBmcmFtZUlELCBib29sKTsKKyAgICB2b2lkIGZyYW1lRGlkQmVjb21lRnJhbWVT
ZXQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBib29sKTsKICAgICB2b2lkIGRpZFN0YXJ0UHJv
Z3Jlc3MoKTsKICAgICB2b2lkIGRpZENoYW5nZVByb2dyZXNzKGRvdWJsZSk7CiAgICAgdm9pZCBk
aWRGaW5pc2hQcm9ncmVzcygpOwpAQCAtMTY0OCwzNyArMTY0OCwzNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmLCBXZWJGcmFtZVByb3h5JiwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAgRnJhbWVJ
bmZvRGF0YSYmLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQ
YWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVl
c3RCb2R5LAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNw
b25zZSwgY29uc3QgVXNlckRhdGEmLCBSZWY8UG9saWN5RGVjaXNpb25TZW5kZXI+JiYpOwotICAg
IHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKHVpbnQ2NF90IGZyYW1l
SUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lk
ZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwK
KyAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQ
b2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFj
dGlvbkRhdGEmJiwKICAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBD
OjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAogICAgICAgICBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCB1aW50NjRf
dCBsaXN0ZW5lcklEKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25T
eW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKKyAgICB2b2lkIGRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBp
c01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9u
RGF0YSYmLAogICAgICAgICBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZv
cm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVk
UmVwbHkmJik7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24odWludDY0
X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAorICAgIHZvaWQg
ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAogICAgICAgICBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmJiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVy
SUQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwKKyAgICB2
b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsCiAgICAgICAgIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNh
blNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3Qg
bGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIHVuYWJsZVRvSW1wbGVtZW50
UG9saWN5KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBj
b25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgdW5hYmxlVG9JbXBsZW1lbnRQb2xpY3koV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3Qg
VXNlckRhdGEmKTsKICAgICB2b2lkIGJlZ2luU2FmZUJyb3dzaW5nQ2hlY2soY29uc3QgVVJMJiwg
Ym9vbCwgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5Jik7CiAKICAgICBXZWJDb250ZW50TW9k
ZSBlZmZlY3RpdmVDb250ZW50TW9kZUFmdGVyQWRqdXN0aW5nUG9saWNpZXMoQVBJOjpXZWJzaXRl
UG9saWNpZXMmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKIAotICAgIHZvaWQg
d2lsbFN1Ym1pdEZvcm0odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qgc291cmNlRnJhbWVJRCwg
Y29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+JiB0ZXh0RmllbGRWYWx1ZXMs
IHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCB3aWxsU3Vi
bWl0Rm9ybShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBzb3VyY2VGcmFtZUlELCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4m
IHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsK
IAogICAgIHZvaWQgY29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uKFVSTCYmLCBXZWJDb3JlOjpD
b250ZW50UnVsZUxpc3RSZXN1bHRzJiYpOwogCiAgICAgLy8gSGlzdG9yeSBjbGllbnQKLSAgICB2
b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25EYXRh
U3RvcmUmLCB1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZFBlcmZvcm1DbGllbnRSZWRp
cmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5h
dGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRQZXJmb3JtU2Vy
dmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYg
ZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkVXBk
YXRlSGlzdG9yeVRpdGxlKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgdXJsLCB1
aW50NjRfdCBmcmFtZUlEKTsKKyAgICB2b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRh
KGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIp
OworICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNl
VVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0
IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3Ry
aW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkVXBkYXRlSGlzdG9y
eVRpdGxlKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgdXJsLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIpOwogCiAgICAgLy8gVUkgY2xpZW50CiAgICAgdm9pZCBjcmVhdGVOZXdQ
YWdlKGNvbnN0IEZyYW1lSW5mb0RhdGEmLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmll
cj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3Jl
OjpXaW5kb3dGZWF0dXJlcyYmLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlOjpEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBzaG93
UGFnZSgpOwotICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYsIE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydDo6RGVsYXllZFJlcGx5JiYpOwotICAg
IHZvaWQgcnVuSmF2YVNjcmlwdENvbmZpcm0odWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6UnVuSmF2YVNjcmlwdENvbmZpcm06OkRlbGF5ZWRSZXBseSYmKTsKLSAgICB2b2lkIHJ1
bkphdmFTY3JpcHRQcm9tcHQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdDo6RGVsYXllZFJlcGx5JiYpOworICAgIHZv
aWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6UnVuSmF2YVNjcmlwdEFsZXJ0OjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBy
dW5KYXZhU2NyaXB0Q29uZmlybShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYsIE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OlJ1bkphdmFTY3JpcHRDb25maXJtOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBy
dW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdDo6RGVsYXllZFJlcGx5JiYp
OwogICAgIHZvaWQgc2V0U3RhdHVzVGV4dChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIG1vdXNl
RGlkTW92ZU92ZXJFbGVtZW50KFdlYkhpdFRlc3RSZXN1bHREYXRhJiYsIHVpbnQzMl90IG1vZGlm
aWVycywgVXNlckRhdGEmJik7CiAKQEAgLTE3MDEsMjEgKzE3MDEsMjEgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHJvb3RWaWV3VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld1JlY3Qs
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJvb3RWaWV3VG9TY3JlZW46OkRlbGF5ZWRSZXBseSYm
KTsKICAgICB2b2lkIGFjY2Vzc2liaWxpdHlTY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBzY3JlZW5Qb2ludCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpJ
bnRQb2ludCk+JiYpOwogICAgIHZvaWQgcm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3JlZW4oY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld1JlY3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vi
Q29yZTo6SW50UmVjdCk+JiYpOwotICAgIHZvaWQgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuQmVmb3JlVW5s
b2FkQ29uZmlybVBhbmVsOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBydW5CZWZvcmVVbmxv
YWRDb25maXJtUGFuZWwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDo6RGVsYXllZFJlcGx5JiYpOwog
ICAgIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdw
b3J0QXR0cmlidXRlcyYpOwogICAgIHZvaWQgcGFnZURpZFNjcm9sbCgpOwotICAgIHZvaWQgcnVu
T3BlblBhbmVsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYsIGNvbnN0IFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MmKTsKKyAgICB2b2lkIHJ1
bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYsIGNvbnN0IFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MmKTsKICAg
ICB2b2lkIHNob3dTaGFyZVNoZWV0KGNvbnN0IFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRV
UkwmLCBTaGFyZVNoZWV0Q2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBwcmludEZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBleGNlZWRl
ZERhdGFiYXNlUXVvdGEodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5
TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2Us
IHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFeGNlZWRlZERhdGFiYXNlUXVvdGE6OkRlbGF5ZWRSZXBs
eSYmKTsKKyAgICB2b2lkIHByaW50RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3Rh
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwg
dWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2
NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpFeGNlZWRlZERhdGFiYXNlUXVvdGE6OkRlbGF5ZWRSZXBseSYmKTsK
ICAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoY29uc3QgU3RyaW5n
JiBvcmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFs
Qnl0ZXNOZWVkZWQsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlYWNoZWRBcHBsaWNhdGlvbkNh
Y2hlT3JpZ2luUXVvdGE6OkRlbGF5ZWRSZXBseSYmKTsKLSAgICB2b2lkIHJlcXVlc3RHZW9sb2Nh
dGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCB1aW50NjRfdCBm
cmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcik7CisgICAgdm9pZCByZXF1ZXN0R2VvbG9j
YXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcik7CiAKICNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQogICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
JiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKTsKICNlbmRpZgotICAgIHZvaWQg
cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwg
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlh
U3RyZWFtUmVxdWVzdCYmKTsKLSAgICB2b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1l
KHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luRGF0YSwgY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YSk7Cisg
ICAgdm9pZCByZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJN
ZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVy
LCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJik7CisgICAgdm9pZCBlbnVtZXJhdGVNZWRp
YURldmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luRGF0YSwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luRGF0YSk7CiAgICAgdm9pZCBiZWdpbk1vbml0b3JpbmdDYXB0dXJlRGV2
aWNlcygpOwogCiAgICAgdm9pZCBydW5Nb2RhbCgpOwpAQCAtMTg5NSw4ICsxODk1LDggQEAgcHJp
dmF0ZToKICAgICB2b2lkIHByaW50RmluaXNoZWRDYWxsYmFjayhjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yJiwgQ2FsbGJhY2tJRCk7CiAjZW5kaWYKIAotICAgIHZvaWQgZm9jdXNlZEZyYW1l
Q2hhbmdlZCh1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGZyYW1lU2V0TGFyZ2VzdEZyYW1l
Q2hhbmdlZCh1aW50NjRfdCBmcmFtZUlEKTsKKyAgICB2b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQo
Y29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiYpOworICAgIHZvaWQgZnJh
bWVTZXRMYXJnZXN0RnJhbWVDaGFuZ2VkKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcj4mKTsKIAogICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0b21Db250
ZW50UHJvdmlkZXIoY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSwgY29uc3QgSVBDOjpE
YXRhUmVmZXJlbmNlJik7CiAKQEAgLTE5OTcsNyArMTk5Nyw3IEBAIHByaXZhdGU6CiAjZW5kaWYK
IAogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKLSAgICB2b2lkIGNvbnRlbnRGaWx0ZXJE
aWRCbG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hh
bmRsZXImLCB1aW50NjRfdCBmcmFtZUlEKTsKKyAgICB2b2lkIGNvbnRlbnRGaWx0ZXJEaWRCbG9j
a0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIm
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogI2VuZGlmCiAKICAgICB2b2lkIHRyeVJlbG9h
ZEFmdGVyUHJvY2Vzc1Rlcm1pbmF0aW9uKCk7CkBAIC0yMTEwLDcgKzIxMTAsNyBAQCBwcml2YXRl
OgogICAgIHN0YXRpYyBib29sIGlzSW5IYXJkd2FyZUtleWJvYXJkTW9kZSgpOwogI2VuZGlmCiAK
LSAgICB2b2lkIG1ha2VTdG9yYWdlU3BhY2VSZXF1ZXN0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNv
bnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3Qg
Y3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0
X3QgZXhwZWN0ZWRVc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYpOwor
ICAgIHZvaWQgbWFrZVN0b3JhZ2VTcGFjZVJlcXVlc3QoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VO
YW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVp
bnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2Us
IHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3Qp
PiYmKTsKIAogICAgIFdlYWtQdHI8UGFnZUNsaWVudD4gbV9wYWdlQ2xpZW50OwogICAgIFJlZjxB
UEk6OlBhZ2VDb25maWd1cmF0aW9uPiBtX2NvbmZpZ3VyYXRpb247CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZWNhZDk1ZTQ2YjU0
M2FjOTE1MDQwZTYwZWY0MDRiZWQ2NDI2NzE2MS4uMTU4OTE5ZTMxNjAxMWQ2OTk0MGRkOWIxZTJm
N2NjYzMxZWE0ZTQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgpAQCAtMjUsOSArMjUsOSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJv
eHkgewogICAgIENyZWF0ZU5ld1BhZ2Uoc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmln
aW5hdGluZ0ZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBv
cmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHN0cnVj
dCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyB3aW5kb3dGZWF0dXJlcywgc3RydWN0IFdlYktpdDo6
TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEpIC0+IChPcHRpb25hbDxX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gbmV3UGFnZUlELCBPcHRpb25hbDxXZWJLaXQ6OldlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnM+IG5ld1BhZ2VQYXJhbWV0ZXJzKSBTeW5jaHJvbm91cwogICAg
IFNob3dQYWdlKCkKICAgICBDbG9zZVBhZ2UoYm9vbCBzdG9wUmVzcG9uc2l2ZW5lc3NUaW1lcikK
LSAgICBSdW5KYXZhU2NyaXB0QWxlcnQodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSkg
LT4gKCkgU3luY2hyb25vdXMKLSAgICBSdW5KYXZhU2NyaXB0Q29uZmlybSh1aW50NjRfdCBmcmFt
ZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmln
aW4sIFN0cmluZyBtZXNzYWdlKSAtPiAoYm9vbCByZXN1bHQpIFN5bmNocm9ub3VzCi0gICAgUnVu
SmF2YVNjcmlwdFByb21wdCh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFN0cmluZyBtZXNzYWdlLCBTdHJpbmcg
ZGVmYXVsdFZhbHVlKSAtPiAoU3RyaW5nIHJlc3VsdCkgU3luY2hyb25vdXMKKyAgICBSdW5KYXZh
U2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3Nh
Z2UpIC0+ICgpIFN5bmNocm9ub3VzCisgICAgUnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3NhZ2UpIC0+IChib29sIHJlc3VsdCkg
U3luY2hyb25vdXMKKyAgICBSdW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVmYXVsdFZhbHVlKSAtPiAoU3Ry
aW5nIHJlc3VsdCkgU3luY2hyb25vdXMKICAgICBNb3VzZURpZE1vdmVPdmVyRWxlbWVudChzdHJ1
Y3QgV2ViS2l0OjpXZWJIaXRUZXN0UmVzdWx0RGF0YSBoaXRUZXN0UmVzdWx0RGF0YSwgdWludDMy
X3QgbW9kaWZpZXJzLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQogCiAjaWYgRU5BQkxFKE5F
VFNDQVBFX1BMVUdJTl9BUEkpCkBAIC00Nyw4ICs0Nyw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQ
cm94eSB7CiAgICAgU2V0VG9vbFRpcChTdHJpbmcgdG9vbFRpcCkKICAgICBTZXRGb2N1cyhib29s
IGZvY3VzZWQpCiAgICAgVGFrZUZvY3VzKHVpbnQzMl90IGRpcmVjdGlvbikKLSAgICBGb2N1c2Vk
RnJhbWVDaGFuZ2VkKHVpbnQ2NF90IGZyYW1lSUQpCi0gICAgRnJhbWVTZXRMYXJnZXN0RnJhbWVD
aGFuZ2VkKHVpbnQ2NF90IGZyYW1lSUQpCisgICAgRm9jdXNlZEZyYW1lQ2hhbmdlZChPcHRpb25h
bDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQpCisgICAgRnJhbWVTZXRMYXJnZXN0
RnJhbWVDaGFuZ2VkKE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCkK
ICAgICBTZXRSZW5kZXJUcmVlU2l6ZSh1aW50NjRfdCB0cmVlU2l6ZSkKICAgICBTZXRUb29sYmFy
c0FyZVZpc2libGUoYm9vbCB0b29sYmFyc0FyZVZpc2libGUpCiAgICAgR2V0VG9vbGJhcnNBcmVW
aXNpYmxlKCkgLT4gKGJvb2wgdG9vbGJhcnNBcmVWaXNpYmxlKSBTeW5jaHJvbm91cwpAQCAtNjks
MTEgKzY5LDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgSGlkZVZhbGlkYXRp
b25NZXNzYWdlKCkKICNlbmRpZgogCi0gICAgUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKHVp
bnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3NhZ2UpIC0+IChib29sIHNob3VsZENsb3NlKSBTeW5j
aHJvbm91cworICAgIFJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFt
ZVNlY3VyaXR5T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSkgLT4gKGJvb2wgc2hvdWxkQ2xvc2UpIFN5
bmNocm9ub3VzCiAgICAgUGFnZURpZFNjcm9sbCgpCi0gICAgUnVuT3BlblBhbmVsKHVpbnQ2NF90
IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0
eU9yaWdpbiwgc3RydWN0IFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MgcGFyYW1ldGVycykK
KyAgICBSdW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVj
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgc3RydWN0
IFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MgcGFyYW1ldGVycykKICAgICBTaG93U2hhcmVT
aGVldChzdHJ1Y3QgV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCBzaGFyZURhdGEsIHVp
bnQ2NF90IGNhbGxiYWNrSUQpCi0gICAgUHJpbnRGcmFtZSh1aW50NjRfdCBmcmFtZUlEKSAtPiAo
KSBTeW5jaHJvbm91cworICAgIFByaW50RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQpIC0+ICgpIFN5bmNocm9ub3VzCiAgICAgUnVuTW9kYWwoKQogICAgIE5vdGlmeVNjcm9s
bGVyVGh1bWJJc1Zpc2libGVJblJlY3QoV2ViQ29yZTo6SW50UmVjdCBzY3JvbGxlclRodW1iKQog
ICAgIFJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2UoaW50MzJfdCBuZXdTdHlsZSkK
QEAgLTEwMywxMSArMTAzLDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjZW5kaWYK
IAogICAgICMgUG9saWN5IG1lc3NhZ2VzCi0gICAgRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UodWlu
dDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNl
Y3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBib29sIGNhblNo
b3dNSU1FVHlwZSwgU3RyaW5nIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklE
LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb25Bc3luYyh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0
IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVj
dCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25h
bDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEs
IHVpbnQ2NF90IGxpc3RlbmVySUQpCi0gICAgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
blN5bmModWludDY0X3QgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgc3RydWN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25E
YXRhLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0
YSwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRh
IHVzZXJEYXRhKSAtPiAoV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNr
SWRlbnRpZmllciwgZW51bTp1aW50OF90IFdlYkNvcmU6OlBvbGljeUFjdGlvbiBwb2xpY3lBY3Rp
b24sIHVpbnQ2NF90IG5ld05hdmlnYXRpb25JRCwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2Fk
SUQsIE9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0YT4gd2Vic2l0ZVBvbGljaWVz
KSBTeW5jaHJvbm91cwotICAgIERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRf
dCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJp
dHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50
aWZpZXIsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rp
b25EYXRhLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIGZyYW1lTmFt
ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBV
bmFibGVUb0ltcGxlbWVudFBvbGljeSh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yIGVycm9yLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERlY2lkZVBvbGlj
eUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBv
bGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBTdHJpbmcgZG93bmxv
YWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRh
dGEpCisgICAgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
IGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xp
Y3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6
TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6
OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBJ
UEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlIHJlZGlyZWN0UmVzcG9uc2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEsIHVpbnQ2NF90
IGxpc3RlbmVySUQpCisgICAgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIHN0cnVjdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9u
QWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1l
SW5mb0RhdGEsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1Bh
Z2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJv
ZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpV
c2VyRGF0YSB1c2VyRGF0YSkgLT4gKFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xp
Y3lDaGVja0lkZW50aWZpZXIsIGVudW06dWludDhfdCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9s
aWN5QWN0aW9uLCB1aW50NjRfdCBuZXdOYXZpZ2F0aW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBk
b3dubG9hZElELCBPcHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQ
b2xpY2llcykgU3luY2hyb25vdXMKKyAgICBEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24o
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFj
dGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0LCBTdHJpbmcgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVz
ZXJEYXRhIHVzZXJEYXRhKQorICAgIFVuYWJsZVRvSW1wbGVtZW50UG9saWN5KFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBXZWJL
aXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQogCiAgICAgIyBQcm9ncmVzcyBtZXNzYWdlcwogICAgIERp
ZENoYW5nZVByb2dyZXNzKGRvdWJsZSB2YWx1ZSkKQEAgLTExNyw1MSArMTE3LDUxIEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgU2V0TmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcyhi
b29sIG5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3MpCiAKICAgICAjIEZyYW1lIGxpZmV0aW1lIG1l
c3NhZ2VzCi0gICAgRGlkQ3JlYXRlTWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCi0gICAgRGlk
Q3JlYXRlU3ViZnJhbWUodWludDY0X3QgZnJhbWVJRCkKKyAgICBEaWRDcmVhdGVNYWluRnJhbWUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCisgICAgRGlkQ3JlYXRlU3ViZnJhbWUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAKLSAgICBEaWRDcmVhdGVXaW5kb3co
dWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXIg
d2luZG93SWRlbnRpZmllcikKKyAgICBEaWRDcmVhdGVXaW5kb3coV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlmaWVyIHdp
bmRvd0lkZW50aWZpZXIpCiAKICAgICAjIEZyYW1lIGxvYWQgbWVzc2FnZXMKLSAgICBEaWRTdGFy
dFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgVVJMIHVybCwgVVJMIHVucmVhY2hhYmxlVVJMLCBXZWJLaXQ6OlVzZXJEYXRhIHVz
ZXJEYXRhKQotICAgIERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAg
V2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFN0cmlu
ZyB1cmwsIGRvdWJsZSBkZWxheSwgZW51bTpib29sIFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExp
c3QgbG9ja0JhY2tGb3J3YXJkTGlzdCkKLSAgICBEaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQpCi0gICAgRGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCB1cmwpCi0gICAg
RGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBTdHJpbmcgcHJvdmlzaW9uYWxVUkwsIFdlYkNvcmU6OlJlc291cmNlRXJy
b3IgZXJyb3IsIGVudW06Ym9vbCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250
aW51ZUxvYWRpbmcsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlkQ29tbWl0TG9h
ZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgU3RyaW5n
IG1pbWVUeXBlLCBib29sIGhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgbG9hZFR5
cGUsIFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFp
bnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBm
b3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAg
RGlkRmFpbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6VXNlckRhdGEgdXNlckRh
dGEpCi0gICAgRGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERp
ZEZpbmlzaExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlkRmlyc3RMYXlvdXRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZEZp
cnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktp
dDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFt
ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBVUkwgdXJsLCBVUkwgdW5yZWFjaGFibGVVUkwsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEp
CisgICAgRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYktpdDo6VXNlckRhdGEgdXNlckRh
dGEpCisgICAgV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgdXJsLCBkb3VibGUgZGVsYXksIGVudW06Ym9vbCBX
ZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QpCisgICAgRGlk
Q2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCkKKyAgICBEaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCB1cmwpCisgICAg
RGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlP
cmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgU3RyaW5nIHByb3Zpc2lvbmFsVVJMLCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBlbnVtOmJvb2wgV2ViQ29yZTo6V2lsbENvbnRpbnVl
TG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQor
ICAgIERpZENvbW1pdExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBTdHJpbmcgbWltZVR5cGUsIGJvb2wgaGFzQ3VzdG9t
Q29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBsb2FkVHlwZSwgV2ViQ29yZTo6Q2VydGlmaWNhdGVJ
bmZvIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25h
bDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwg
V2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWRGYWlsTG9hZEZvckZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNv
cmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAg
RGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkK
KyAgICBEaWRGaW5pc2hMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAg
ICBEaWRGaXJzdExheW91dEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZEZpcnN0VmlzdWFsbHlOb25FbXB0
eUxheW91dEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJLaXQ6
OlVzZXJEYXRhIHVzZXJEYXRhKQogICAgIERpZFJlYWNoTGF5b3V0TWlsZXN0b25lKE9wdGlvblNl
dDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+IGxheW91dE1pbGVzdG9uZXMpCi0gICAgRGlkUmVj
ZWl2ZVRpdGxlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHRpdGxlLCBXZWJLaXQ6
OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZFJ1
bkluc2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6VXNlckRh
dGEgdXNlckRhdGEpCi0gICAgRGlkRGV0ZWN0WFNTRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
V2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9u
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50MzJf
dCB0eXBlLCBVUkwgdXJsLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZENoYW5n
ZU1haW5Eb2N1bWVudCh1aW50NjRfdCBmcmFtZUlEKQotICAgIERpZEV4cGxpY2l0T3BlbkZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIFVSTCB1cmwpCisgICAgRGlkUmVjZWl2ZVRpdGxlRm9yRnJh
bWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyB0aXRsZSwgV2ViS2l0
OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJh
bWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYktpdDo6VXNlckRhdGEgdXNl
ckRhdGEpCisgICAgRGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkRGV0
ZWN0WFNTRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYktpdDo6
VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1l
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IHVpbnQzMl90IHR5cGUsIFVSTCB1cmwsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAg
RGlkQ2hhbmdlTWFpbkRvY3VtZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQor
ICAgIERpZEV4cGxpY2l0T3BlbkZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBVUkwgdXJsKQogICAgIERpZERlc3Ryb3lOYXZpZ2F0aW9uKHVpbnQ2NF90IG5hdmlnYXRp
b25JRCkKIAogICAgIEhhc0luc2VjdXJlQ29udGVudCgpIC0+IChlbnVtOmJvb2wgV2ViQ29yZTo6
SGFzSW5zZWN1cmVDb250ZW50IGhhc0luc2VjdXJlQ29udGVudCkgU3luY2hyb25vdXMKIAogICAg
IE1haW5GcmFtZVBsdWdpbkhhbmRsZXNQYWdlU2NhbGVHZXN0dXJlRGlkQ2hhbmdlKGJvb2wgbWFp
bkZyYW1lUGx1Z2luSGFuZGxlc1BhZ2VTY2FsZUdlc3R1cmUpCiAKLSAgICBGcmFtZURpZEJlY29t
ZUZyYW1lU2V0KHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgdmFsdWUpCisgICAgRnJhbWVEaWRCZWNv
bWVGcmFtZVNldChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCB2YWx1ZSkK
IAogICAgICMgSGlzdG9yeSBjbGllbnQgbWVzc2FnZXMuCi0gICAgRGlkTmF2aWdhdGVXaXRoTmF2
aWdhdGlvbkRhdGEoc3RydWN0IFdlYktpdDo6V2ViTmF2aWdhdGlvbkRhdGFTdG9yZSBzdG9yZSwg
dWludDY0X3QgZnJhbWVJRCkKLSAgICBEaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoU3RyaW5nIHNv
dXJjZVVSTFN0cmluZywgU3RyaW5nIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFt
ZUlEKQotICAgIERpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChTdHJpbmcgc291cmNlVVJMU3RyaW5n
LCBTdHJpbmcgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpCi0gICAgRGlk
VXBkYXRlSGlzdG9yeVRpdGxlKFN0cmluZyB0aXRsZSwgU3RyaW5nIHVybCwgdWludDY0X3QgZnJh
bWVJRCkKKyAgICBEaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShzdHJ1Y3QgV2ViS2l0OjpX
ZWJOYXZpZ2F0aW9uRGF0YVN0b3JlIHN0b3JlLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCkKKyAgICBEaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoU3RyaW5nIHNvdXJjZVVSTFN0cmlu
ZywgU3RyaW5nIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCkKKyAgICBEaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoU3RyaW5nIHNvdXJjZVVSTFN0
cmluZywgU3RyaW5nIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCkKKyAgICBEaWRVcGRhdGVIaXN0b3J5VGl0bGUoU3RyaW5nIHRpdGxlLCBTdHJp
bmcgdXJsLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIAogICAgICMgQ3VzdG9t
IHJlcHJlc2VudGF0aW9ucwogICAgIERpZEZpbmlzaExvYWRpbmdEYXRhRm9yQ3VzdG9tQ29udGVu
dFByb3ZpZGVyKFN0cmluZyBzdWdnZXN0ZWRGaWxlbmFtZSwgSVBDOjpEYXRhUmVmZXJlbmNlIGRh
dGEpCiAKICAgICAjIEZvcm1zIG1lc3NhZ2VzCi0gICAgV2lsbFN1Ym1pdEZvcm0odWludDY0X3Qg
ZnJhbWVJRCwgdWludDY0X3Qgc291cmNlRnJhbWVJRCwgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcs
IFN0cmluZz4+IHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpV
c2VyRGF0YSB1c2VyRGF0YSkKKyAgICBXaWxsU3VibWl0Rm9ybShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIHNvdXJjZUZyYW1lSUQsIFZl
Y3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXh0RmllbGRWYWx1ZXMsIHVpbnQ2NF90
IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAKICAgICAjIENhbGxiYWNr
IG1lc3NhZ2VzCiAgICAgVm9pZENhbGxiYWNrKFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lE
KQpAQCAtMjc1LDE4ICsyNzUsMTggQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRp
ZgogCiAgICAgIyBEYXRhYmFzZSBtZXNzYWdlcwotICAgIEV4Y2VlZGVkRGF0YWJhc2VRdW90YSh1
aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllciwgU3RyaW5nIGRhdGFiYXNl
TmFtZSwgU3RyaW5nIGRhdGFiYXNlRGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwg
dWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2Fn
ZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSkgLT4gKHVpbnQ2NF90IG5ld1F1b3RhKSBTeW5jaHJv
bm91cworICAgIEV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIsIFN0cmluZyBkYXRhYmFzZU5hbWUsIFN0
cmluZyBkYXRhYmFzZURpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90
IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2
NF90IGV4cGVjdGVkVXNhZ2UpIC0+ICh1aW50NjRfdCBuZXdRdW90YSkgU3luY2hyb25vdXMKIAog
ICAgICMgQXBwbGljYXRpb24gY2FjaGUgbWVzc2FnZXMKICAgICBSZWFjaGVkQXBwbGljYXRpb25D
YWNoZU9yaWdpblF1b3RhKFN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCBjdXJyZW50
UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQpIC0+ICh1aW50NjRfdCBuZXdRdW90YSkg
U3luY2hyb25vdXMKIAogICAgICMgR2VvbG9jYXRpb24gbWVzc2FnZXMKLSAgICBSZXF1ZXN0R2Vv
bG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgdWludDY0
X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCisgICAgUmVxdWVzdEdlb2xvY2F0
aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKICAgICAKICNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgICMgTWVkaWFTdGVhbSBtZXNzYWdlcwotICAgIFJl
cXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVp
bnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6
TWVkaWFTdHJlYW1SZXF1ZXN0IHJlcXVlc3QpCi0gICAgRW51bWVyYXRlTWVkaWFEZXZpY2VzRm9y
RnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVy
LCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcExldmVsRG9jdW1lbnRPcmln
aW5JZGVudGlmaWVyKQorICAgIFJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWlu
dDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1
Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRl
bnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCBy
ZXF1ZXN0KQorICAgIEVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJN
ZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklk
ZW50aWZpZXIpCiAgICAgQmVnaW5Nb25pdG9yaW5nQ2FwdHVyZURldmljZXMoKQogI2VuZGlmCiAK
QEAgLTQ3Myw3ICs0NzMsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCi0gICAgQ29udGVudEZpbHRlckRpZEJsb2Nr
TG9hZEZvckZyYW1lKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciB1bmJsb2Nr
SGFuZGxlciwgdWludDY0X3QgZnJhbWVJRCkKKyAgICBDb250ZW50RmlsdGVyRGlkQmxvY2tMb2Fk
Rm9yRnJhbWUoV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyIHVuYmxvY2tIYW5k
bGVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKICNlbmRpZgogCiAgICAgSXNQ
bGF5aW5nTWVkaWFEaWRDaGFuZ2UodW5zaWduZWQgc3RhdGUsIHVpbnQ2NF90IHNvdXJjZUVsZW1l
bnRJRCkKQEAgLTUzOSw3ICs1MzksNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAg
IExvYWRTeW5jaHJvbm91c1VSTFNjaGVtZVRhc2soc3RydWN0IFdlYktpdDo6VVJMU2NoZW1lVGFz
a1BhcmFtZXRlcnMgcGFyYW1ldGVycykgLT4gKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVz
cG9uc2UsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFZlY3RvcjxjaGFyPiBkYXRhKSBT
eW5jaHJvbm91cwogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSAgICBTaG91bGRB
bGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKHVpbnQ2NF90IGZyYW1lSUQsIHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luLCBib29sIG1heVByb21wdCkg
LT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlz
c2lvblN0YXRlIHBlcm1pc3Npb25TdGF0ZSkgQXN5bmMKKyAgICBTaG91bGRBbGxvd0RldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbiwgYm9vbCBtYXlQcm9t
cHQpIC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBl
cm1pc3Npb25TdGF0ZSBwZXJtaXNzaW9uU3RhdGUpIEFzeW5jCiAjZW5kaWYKIAogI2lmIEVOQUJM
RShBVFRBQ0hNRU5UX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcAppbmRleCBlMTY5MTM3ZjUzODlkMzBiYjhiMTFiM2E4ZTFmNTBjYTQzYWEwNmVk
Li45NWI1ODYzOWYzYzQwY2M2MzAwYTQ0ZjJjMDQ0OWVmZmVmOGFkMTM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTgyNywyNSArODI3LDI1IEBA
IHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVy
KiBsYXVuY2hlciwgSVBDOjpDb25uZWN0CiAjZW5kaWYKIH0KIAotV2ViRnJhbWVQcm94eSogV2Vi
UHJvY2Vzc1Byb3h5Ojp3ZWJGcmFtZSh1aW50NjRfdCBmcmFtZUlEKSBjb25zdAorV2ViRnJhbWVQ
cm94eSogV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkg
Y29uc3QKIHsKICAgICBpZiAoIVdlYkZyYW1lUHJveHlNYXA6OmlzVmFsaWRLZXkoZnJhbWVJRCkp
Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHJldHVy
biBtX2ZyYW1lTWFwLmdldChmcmFtZUlEKTsKIH0KIAotYm9vbCBXZWJQcm9jZXNzUHJveHk6OmNh
bkNyZWF0ZUZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpIGNvbnN0Citib29sIFdlYlByb2Nlc3NQcm94
eTo6Y2FuQ3JlYXRlRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIFdlYkZyYW1lUHJveHlNYXA6OmlzVmFsaWRLZXkoZnJhbWVJRCkgJiYgIW1fZnJhbWVN
YXAuY29udGFpbnMoZnJhbWVJRCk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpmcmFtZUNy
ZWF0ZWQodWludDY0X3QgZnJhbWVJRCwgV2ViRnJhbWVQcm94eSYgZnJhbWVQcm94eSkKK3ZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpmcmFtZUNyZWF0ZWQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdl
YkZyYW1lUHJveHkmIGZyYW1lUHJveHkpCiB7CiAgICAgbV9mcmFtZU1hcC5zZXQoZnJhbWVJRCwg
JmZyYW1lUHJveHkpOwogfQogCi12b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRGVzdHJveUZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRGVzdHJveUZyYW1l
KEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIC8vIElmIHRoZSBwYWdlIGlzIGNsb3Nl
ZCBiZWZvcmUgaXQgaGFzIGhhZCB0aGUgY2hhbmNlIHRvIHNlbmQgdGhlIERpZENyZWF0ZU1haW5G
cmFtZSBtZXNzYWdlCiAgICAgLy8gYmFjayB0byB0aGUgVUlQcm9jZXNzLCB0aGVuIHRoZSBmcmFt
ZURlc3Ryb3llZCBtZXNzYWdlIHdpbGwgc3RpbGwgYmUgcmVjZWl2ZWQgYmVjYXVzZSBpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCAzMDA5NmRkMzA4NTQ4
Yjg5MDQ5YzgzNTEwZWVhNzFiYjA1OTc2ZmZjLi4xOGY0ODgwYTBiYjJkNGQ4M2QyZmI2YzU5N2M4
N2M3Y2RkNmVjODk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIlZpc2libGVXZWJQYWdlQ291bnRlci5oIgog
I2luY2x1ZGUgIldlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9NZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvTWVzc2FnZVBvcnRJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
YWdlSWRlbnRpZmllci5oPgpAQCAtOTcsNyArOTgsNyBAQCBlbnVtIGNsYXNzIEFsbG93UHJvY2Vz
c0NhY2hpbmcgeyBObywgWWVzIH07CiAKIGNsYXNzIFdlYlByb2Nlc3NQcm94eSA6IHB1YmxpYyBB
dXhpbGlhcnlQcm9jZXNzUHJveHksIHB1YmxpYyBSZXNwb25zaXZlbmVzc1RpbWVyOjpDbGllbnQs
IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxXZWJQcm9jZXNzUHJveHk+LCBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8V2ViUHJvY2Vzc1Byb3h5PiwgcHJpdmF0ZSBQcm9jZXNzVGhyb3R0bGVyQ2xp
ZW50IHsKIHB1YmxpYzoKLSAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJG
cmFtZVByb3h5Pj4gV2ViRnJhbWVQcm94eU1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8V2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBSZWZQdHI8V2ViRnJhbWVQcm94eT4+IFdlYkZyYW1lUHJveHlN
YXA7CiAgICAgdHlwZWRlZiBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJQYWdl
UHJveHkqPiBXZWJQYWdlUHJveHlNYXA7CiAgICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBS
ZWZQdHI8QVBJOjpVc2VySW5pdGlhdGVkQWN0aW9uPj4gVXNlckluaXRpYXRlZEFjdGlvbk1hcDsK
IApAQCAtMTY0LDkgKzE2NSw5IEBAIHB1YmxpYzoKICAgICBSZXNwb25zaXZlbmVzc1RpbWVyJiBy
ZXNwb25zaXZlbmVzc1RpbWVyKCkgeyByZXR1cm4gbV9yZXNwb25zaXZlbmVzc1RpbWVyOyB9CiAg
ICAgYm9vbCBpc1Jlc3BvbnNpdmUoKSBjb25zdDsKIAotICAgIFdlYkZyYW1lUHJveHkqIHdlYkZy
YW1lKHVpbnQ2NF90KSBjb25zdDsKLSAgICBib29sIGNhbkNyZWF0ZUZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQpIGNvbnN0OwotICAgIHZvaWQgZnJhbWVDcmVhdGVkKHVpbnQ2NF90LCBXZWJGcmFtZVBy
b3h5Jik7CisgICAgV2ViRnJhbWVQcm94eSogd2ViRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyKSBjb25zdDsKKyAgICBib29sIGNhbkNyZWF0ZUZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllcikgY29uc3Q7CisgICAgdm9pZCBmcmFtZUNyZWF0ZWQoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBXZWJGcmFtZVByb3h5Jik7CiAgICAgdm9pZCBkaXNjb25uZWN0RnJhbWVzRnJvbVBhZ2Uo
V2ViUGFnZVByb3h5Kik7IC8vIEluY2x1ZGluZyBtYWluIGZyYW1lLgogICAgIHNpemVfdCBmcmFt
ZUNvdW50SW5QYWdlKFdlYlBhZ2VQcm94eSopIGNvbnN0OyAvLyBJbmNsdWRpbmcgbWFpbiBmcmFt
ZS4KIApAQCAtMzM1LDcgKzMzNiw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgLy8gSVBD
IG1lc3NhZ2UgaGFuZGxlcnMuCiAgICAgdm9pZCB1cGRhdGVCYWNrRm9yd2FyZEl0ZW0oY29uc3Qg
QmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlJik7Ci0gICAgdm9pZCBkaWREZXN0cm95RnJhbWUodWlu
dDY0X3QpOworICAgIHZvaWQgZGlkRGVzdHJveUZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
cik7CiAgICAgdm9pZCBkaWREZXN0cm95VXNlckdlc3R1cmVUb2tlbih1aW50NjRfdCk7CiAKICAg
ICBib29sIGNhbkJlQWRkZWRUb1dlYlByb2Nlc3NDYWNoZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGYz
ZDVlOTMxZTZkZWU5MDJhNGFjNWU1ZmM1YjEwZGQ0NjE1YjE1ZDAuLjMyYmFmZWE5ZTEwOTU4YzI1
Y2QxOTRkYTE4NDUzNmFkMDkzZjc1MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTIyLDcgKzIyLDcgQEAKIAogbWVz
c2FnZXMgLT4gV2ViUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBVcGRhdGVCYWNr
Rm9yd2FyZEl0ZW0oc3RydWN0IFdlYktpdDo6QmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlIGJhY2tG
b3J3YXJkTGlzdEl0ZW1TdGF0ZSkKLSAgICBEaWREZXN0cm95RnJhbWUodWludDY0X3QgZnJhbWVJ
RCkgCisgICAgRGlkRGVzdHJveUZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
KSAKIAogICAgIERpZERlc3Ryb3lVc2VyR2VzdHVyZVRva2VuKHVpbnQ2NF90IHVzZXJHZXN0dXJl
VG9rZW5JRCkgCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcu
bW0KaW5kZXggNjgxMWU4N2E0YTQyMTAwNWJkOTRhN2FjMjE2NTQzZWNjMDBhNzdmYy4uYzI5OTIx
NDU4YWYwMWZkOTdhNDAwOTJjNzEzZjY3YzQxZmY3N2U3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KQEAgLTcwMSw5ICs3MDEsOSBAQCAtIChOU1VJ
bnRlZ2VyKV93a19wYWdlQ291bnRGb3JQcmludEZvcm1hdHRlcjooX1dLV2ViVmlld1ByaW50Rm9y
bWF0dGVyICopcHJpbnRGbwogICAgIGlmIChfaXNQcmludGluZ1RvUERGKQogICAgICAgICByZXR1
cm4gMDsKIAotICAgIHVpbnQ2NF90IGZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQ7CiAgICAgaWYgKF9XS0ZyYW1lSGFuZGxlICpoYW5kbGUgPSBwcmludEZvcm1h
dHRlci5mcmFtZVRvUHJpbnQpCi0gICAgICAgIGZyYW1lSUQgPSBoYW5kbGUuX2ZyYW1lSUQ7Cisg
ICAgICAgIGZyYW1lSUQgPSBXZWJDb3JlOjpmcmFtZUlkZW50aWZpZXJGcm9tSUQoaGFuZGxlLl9m
cmFtZUlEKTsKICAgICBlbHNlIGlmIChhdXRvIG1haW5GcmFtZSA9IF9wYWdlLT5tYWluRnJhbWUo
KSkKICAgICAgICAgZnJhbWVJRCA9IG1haW5GcmFtZS0+ZnJhbWVJRCgpOwogICAgIGVsc2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IGIw
MjgyNDg5MjAwM2EwNDk4OTI5ZTcwNmE1OTA0NTlhNGY4NzFhY2QuLjgyZDM1NDIxN2I3MDY0MjAx
ZTNkN2IwNzZlNWIwNTliOTYwMTFjZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtMTA2Niw3ICsxMDY2LDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmhhbmRsZVNtYXJ0TWFnbmlmaWNhdGlvbkluZm9ybWF0aW9uRm9yUG90ZW50aWFsVGFw
KHVpbnQ2NF90IHIKICAgICBwYWdlQ2xpZW50KCkuaGFuZGxlU21hcnRNYWduaWZpY2F0aW9uSW5m
b3JtYXRpb25Gb3JQb3RlbnRpYWxUYXAocmVxdWVzdElELCByZW5kZXJSZWN0LCBmaXRFbnRpcmVS
ZWN0LCB2aWV3cG9ydE1pbmltdW1TY2FsZSwgdmlld3BvcnRNYXhpbXVtU2NhbGUpOwogfQogCi11
aW50MzJfdCBXZWJQYWdlUHJveHk6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERG
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBEcmF3VG9QREZD
YWxsYmFjazo6Q2FsbGJhY2tGdW5jdGlvbiYmIGNhbGxiYWNrKQordWludDMyX3QgV2ViUGFnZVBy
b3h5Ojpjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERihGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIERyYXdUb1BERkNhbGxiYWNrOjpD
YWxsYmFja0Z1bmN0aW9uJiYgY2FsbGJhY2spCiB7CiAgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2Vz
cygpKSB7CiAgICAgICAgIGNhbGxiYWNrKElQQzo6RGF0YVJlZmVyZW5jZSgpLCBDYWxsYmFja0Jh
c2U6OkVycm9yOjpPd25lcldhc0ludmFsaWRhdGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eS5jcHAKaW5kZXggZTYzNTNjY2RkNTRhZGZhNWFhNTkwNWI4OTczMDM0YmMxY2U5NTZmMi4u
N2Y1N2ZmODBhY2QyYjk1MTE1OTEwZjU5NTk0ZDFkZmNmNDM2ZDNjMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21h
dGlvblNlc3Npb25Qcm94eS5jcHAKQEAgLTE0Myw3ICsxNDMsNyBAQCBzdGF0aWMgSlNWYWx1ZVJl
ZiBldmFsdWF0ZUphdmFTY3JpcHRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmpl
Y3RSZWYgZgogICAgIGlmICghYXV0b21hdGlvblNlc3Npb25Qcm94eSkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogCi0gICAgdWludDY0X3QgZnJhbWVJRCA9
IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbik7CisgICAg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQgPSBXZWJDb3JlOjpmcmFtZUlkZW50aWZp
ZXJGcm9tSUQoSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9u
KSk7CiAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBh
cmd1bWVudHNbMV0sIGV4Y2VwdGlvbik7CiAgICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZihKU1Zh
bHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIGFyZ3VtZW50c1syXSwgZXhjZXB0aW9uKSk7CiAKQEAg
LTIyMCw3ICsyMjAsNyBAQCBXZWJDb3JlOjpFbGVtZW50KiBXZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5OjplbGVtZW50Rm9yTm9kZUhhbmRsZShXZWJGcmFtZSYgZnJhbQogCiB2b2lkIFdlYkF1dG9t
YXRpb25TZXNzaW9uUHJveHk6OmRpZENsZWFyV2luZG93T2JqZWN0Rm9yRnJhbWUoV2ViRnJhbWUm
IGZyYW1lKQogewotICAgIHVpbnQ2NF90IGZyYW1lSUQgPSBmcmFtZS5mcmFtZUlEKCk7CisgICAg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQgPSBmcmFtZS5mcmFtZUlEKCk7CiAgICAg
aWYgKEpTT2JqZWN0UmVmIHNjcmlwdE9iamVjdCA9IG1fd2ViRnJhbWVTY3JpcHRPYmplY3RNYXAu
dGFrZShmcmFtZUlEKSkKICAgICAgICAgSlNWYWx1ZVVucHJvdGVjdChmcmFtZS5qc0NvbnRleHQo
KSwgc2NyaXB0T2JqZWN0KTsKIApAQCAtMjMyLDcgKzIzMiw3IEBAIHZvaWQgV2ViQXV0b21hdGlv
blNlc3Npb25Qcm94eTo6ZGlkQ2xlYXJXaW5kb3dPYmplY3RGb3JGcmFtZShXZWJGcmFtZSYgZnJh
bWUpCiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpEaWRFdmFsdWF0ZUph
dmFTY3JpcHRGdW5jdGlvbihjYWxsYmFja0lELCBlcnJvck1lc3NhZ2UsIGVycm9yVHlwZSksIDAp
OwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmV2YWx1YXRlSmF2YVNjcmlw
dEZ1bmN0aW9uKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgU3RyaW5nJiBmdW5jdGlvbiwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRzLCBib29s
IGV4cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJndW1lbnQsIGludCBjYWxsYmFja1RpbWVvdXQsIHVp
bnQ2NF90IGNhbGxiYWNrSUQpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmV2YWx1
YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgZnVuY3Rpb24sIFZl
Y3RvcjxTdHJpbmc+IGFyZ3VtZW50cywgYm9vbCBleHBlY3RzSW1wbGljaXRDYWxsYmFja0FyZ3Vt
ZW50LCBpbnQgY2FsbGJhY2tUaW1lb3V0LCB1aW50NjRfdCBjYWxsYmFja0lEKQogewogICAgIFdl
YlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAg
ICAgaWYgKCFwYWdlKSB7CkBAIC0yNjMsNyArMjYzLDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvblByb3h5OjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRp
ZmkKICAgICAgICAgdG9KU1ZhbHVlKGNvbnRleHQsIGZ1bmN0aW9uKSwKICAgICAgICAgdG9KU0Fy
cmF5KGNvbnRleHQsIGFyZ3VtZW50cywgdG9KU1ZhbHVlLCAmZXhjZXB0aW9uKSwKICAgICAgICAg
SlNWYWx1ZU1ha2VCb29sZWFuKGNvbnRleHQsIGV4cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJndW1l
bnQpLAotICAgICAgICBKU1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCBmcmFtZUlEKSwKKyAgICAg
ICAgSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgZnJhbWVJRC50b1VJbnQ2NCgpKSwKICAgICAg
ICAgSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgY2FsbGJhY2tJRCksCiAgICAgICAgIEpTT2Jq
ZWN0TWFrZUZ1bmN0aW9uV2l0aENhbGxiYWNrKGNvbnRleHQsIG51bGxwdHIsIGV2YWx1YXRlSmF2
YVNjcmlwdENhbGxiYWNrKSwKICAgICAgICAgSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgY2Fs
bGJhY2tUaW1lb3V0KQpAQCAtMzAwLDcgKzMwMCw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b25Qcm94eTo6ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6UGFnZUlkZW50aWZp
CiAgICAgZGlkRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oZnJhbWVJRCwgY2FsbGJhY2tJRCwg
ZXhjZXB0aW9uTWVzc2FnZSwgZXJyb3JUeXBlKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvblByb3h5OjpkaWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbih1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBTdHJpbmcmIHJlc3VsdCwgY29uc3QgU3RyaW5n
JiBlcnJvclR5cGUpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZEV2YWx1YXRl
SmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50
NjRfdCBjYWxsYmFja0lELCBjb25zdCBTdHJpbmcmIHJlc3VsdCwgY29uc3QgU3RyaW5nJiBlcnJv
clR5cGUpCiB7CiAgICAgYXV0byBmaW5kUmVzdWx0ID0gbV93ZWJGcmFtZVBlbmRpbmdFdmFsdWF0
ZUphdmFTY3JpcHRDYWxsYmFja3NNYXAuZmluZChmcmFtZUlEKTsKICAgICBpZiAoZmluZFJlc3Vs
dCAhPSBtX3dlYkZyYW1lUGVuZGluZ0V2YWx1YXRlSmF2YVNjcmlwdENhbGxiYWNrc01hcC5lbmQo
KSkgewpAQCAtMzEzLDEyICszMTMsMTMgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5
OjpkaWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbih1aW50NjRfdCBmcmFtZUlELAogICAgIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpEaWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlv
bihjYWxsYmFja0lELCByZXN1bHQsIGVycm9yVHlwZSksIDApOwogfQogCi12b2lkIFdlYkF1dG9t
YXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGluYWwoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBvcmRpbmFs
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKKy8vIEZJWE1FOiBUaGVzZSBjYWxsYmFja3Mgc2hvdWxkIHRha2Ug
T3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPi4KK3ZvaWQgV2ViQXV0b21hdGlvblNl
c3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoT3JkaW5hbChXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50MzJf
dCBvcmRpbmFsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUGFn
ZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBp
ZiAoIXBhZ2UpIHsKICAgICAgICAgU3RyaW5nIHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlID0gSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVl
KEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkVycm9yTWVzc2FnZTo6V2luZG93Tm90
Rm91bmQpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9yVHlw
ZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBl
LCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0zMjYsMzcgKzMyNywzNyBAQCB2
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGlu
YWwoV2ViQ29yZTo6UGFnZUlkZW50aQogCiAgICAgV2ViRnJhbWUqIGZyYW1lID0gZnJhbWVJRCA/
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpIDogcGFnZS0+bWFpbldl
YkZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihm
cmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJh
bWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAg
IFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWUgPSBmcmFtZS0+Y29yZUZyYW1lKCk7CiAgICAgaWYg
KCFjb3JlRnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVy
cm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJv
clR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBXZWJDb3JlOjpGcmFt
ZSogY29yZUNoaWxkRnJhbWUgPSBjb3JlRnJhbWUtPnRyZWUoKS5zY29wZWRDaGlsZChvcmRpbmFs
KTsKICAgICBpZiAoIWNvcmVDaGlsZEZyYW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihm
cmFtZU5vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAg
ICAgV2ViRnJhbWUqIGNoaWxkRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqY29yZUNo
aWxkRnJhbWUpOwogICAgIGlmICghY2hpbGRGcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVsbG9wdCwgY2hpbGRGcmFtZS0+ZnJhbWVJ
RCgpKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRG
cmFtZVdpdGhOb2RlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0
X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhh
bmRsZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG5vZGVIYW5kbGUsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAgIGlmICghcGFnZSkgewogICAgICAgICBTdHJpbmcg
d2luZG93Tm90Rm91bmRFcnJvclR5cGUgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
SGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6RXJyb3JNZXNzYWdlOjpXaW5kb3dOb3RGb3VuZCk7Ci0gICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIod2luZG93Tm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKQEAgLTM2NCwzNyArMzY1LDM3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhhbmRsZShXZWJDb3JlOjpQYWdlSWRlCiAKICAg
ICBXZWJGcmFtZSogZnJhbWUgPSBmcmFtZUlEID8gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2Vi
RnJhbWUoZnJhbWVJRCkgOiBwYWdlLT5tYWluV2ViRnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKSB7
Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgV2ViQ29yZTo6RWxlbWVudCogY29yZUVsZW1l
bnQgPSBlbGVtZW50Rm9yTm9kZUhhbmRsZSgqZnJhbWUsIG5vZGVIYW5kbGUpOwogICAgIGlmICgh
aXM8V2ViQ29yZTo6SFRNTEZyYW1lRWxlbWVudEJhc2U+KGNvcmVFbGVtZW50KSkgewotICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAogICAgIFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWVGcm9tRWxlbWVu
dCA9IGRvd25jYXN0PFdlYkNvcmU6OkhUTUxGcmFtZUVsZW1lbnRCYXNlPigqY29yZUVsZW1lbnQp
LmNvbnRlbnRGcmFtZSgpOwogICAgIGlmICghY29yZUZyYW1lRnJvbUVsZW1lbnQpIHsKLSAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKICAgICBXZWJGcmFtZSogZnJhbWVGcm9tRWxlbWVudCA9IFdlYkZy
YW1lOjpmcm9tQ29yZUZyYW1lKCpjb3JlRnJhbWVGcm9tRWxlbWVudCk7CiAgICAgaWYgKCFmcmFt
ZUZyb21FbGVtZW50KSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRF
cnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJy
b3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgY29tcGxldGlvbkhh
bmRsZXIoV1RGOjpudWxsb3B0LCBmcmFtZUZyb21FbGVtZW50LT5mcmFtZUlEKCkpOwogfQogCi12
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUo
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBT
dHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWlu
dDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlBhZ2UqIHBhZ2Ug
PSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAgICAgaWYgKCFwYWdl
KSB7CiAgICAgICAgIFN0cmluZyB3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSA9IEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1ZShJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OldpbmRvd05vdEZvdW5kKTsK
LSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIod2luZG93Tm90Rm91bmRFcnJvclR5cGUsIDApOwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNDAyLDM3ICs0MDMsMzcgQEAgdm9pZCBXZWJB
dXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWUKIAogICAgIFdlYkZyYW1lKiBmcmFtZSA9IGZyYW1lSUQgPyBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSA6IHBhZ2UtPm1haW5XZWJGcmFtZSgp
OwogICAgIGlmICghZnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RG
b3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91
bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBXZWJDb3Jl
OjpGcmFtZSogY29yZUZyYW1lID0gZnJhbWUtPmNvcmVGcmFtZSgpOwogICAgIGlmICghY29yZUZy
YW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUs
IDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCB7
IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVD
aGlsZEZyYW1lID0gY29yZUZyYW1lLT50cmVlKCkuc2NvcGVkQ2hpbGQobmFtZSk7CiAgICAgaWYg
KCFjb3JlQ2hpbGRGcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZv
dW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3Vu
ZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFdlYkZyYW1l
KiBjaGlsZEZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmNvcmVDaGlsZEZyYW1lKTsK
ICAgICBpZiAoIWNoaWxkRnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVO
b3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90
Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBjb21w
bGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQsIGNoaWxkRnJhbWUtPmZyYW1lSUQoKSk7CiB9CiAK
LXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZVBhcmVudEZyYW1lKFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCB1aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVQYXJlbnRGcmFtZShX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUGFnZSog
cGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAo
IXBhZ2UpIHsKICAgICAgICAgU3RyaW5nIHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlID0gSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVlKElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkVycm9yTWVzc2FnZTo6V2luZG93Tm90Rm91
bmQpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSwg
MCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlLCB7
IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC00NDAsMjAgKzQ0MSwyMCBAQCB2b2lk
IFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVQYXJlbnRGcmFtZShXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSQogCiAgICAgV2ViRnJhbWUqIGZyYW1lID0gZnJhbWVJRCA/IFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpIDogcGFnZS0+bWFpbldlYkZy
YW1lKCk7CiAgICAgaWYgKCFmcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFt
ZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVO
b3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFdl
YkZyYW1lKiBwYXJlbnRGcmFtZSA9IGZyYW1lLT5wYXJlbnRGcmFtZSgpOwogICAgIGlmICghcGFy
ZW50RnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9y
VHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5
cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBjb21wbGV0aW9uSGFuZGxl
cihXVEY6Om51bGxvcHQsIHBhcmVudEZyYW1lLT5mcmFtZUlEKCkpOwogfQogCi12b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OmZvY3VzRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
cGFnZUlELCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5
Ojpmb2N1c0ZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpCkBAIC01MjgsNyAr
NTI5LDcgQEAgc3RhdGljIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udmVydFBvaW50RnJvbUZyYW1l
Q2xpZW50VG9Sb290VmlldyhXZWJDb3JlOjpGcmFtZVYKICAgICByZXR1cm4gY2xpZW50UG9pbnQ7
CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Y29tcHV0ZUVsZW1lbnRMYXlv
dXQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJp
bmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBDb29yZGluYXRlU3lz
dGVtIGNvb3JkaW5hdGVTeXN0ZW0sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3Ry
aW5nPiwgV2ViQ29yZTo6SW50UmVjdCwgT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBib29s
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6
Y29tcHV0ZUVsZW1lbnRMYXlvdXQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Ny
b2xsSW50b1ZpZXdJZk5lZWRlZCwgQ29vcmRpbmF0ZVN5c3RlbSBjb29yZGluYXRlU3lzdGVtLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkludFJlY3Qs
IE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiwgYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2Uo
cGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsKQEAgLTYzNiw3ICs2MzcsNyBAQCB2b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OmNvbXB1dGVFbGVtZW50TGF5b3V0KFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIHBhZwogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVsbG9wdCwgcmVzdWx0
RWxlbWVudEJvdW5kcywgcmVzdWx0SW5WaWV3Q2VudGVyUG9pbnQsIGlzT2JzY3VyZWQpOwogfQog
Ci12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnNlbGVjdE9wdGlvbkVsZW1lbnQoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9k
ZUhhbmRsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6c2VsZWN0T3B0
aW9uRWxlbWVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQ
YWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAg
IGlmICghcGFnZSkgewpAQCAtNzA0LDcgKzcwNSw3IEBAIHN0YXRpYyBXZWJDb3JlOjpJbnRSZWN0
IHNuYXBzaG90UmVjdEZvclNjcmVlbnNob3QoV2ViUGFnZSYgcGFnZSwgV2ViQ29yZTo6RWxlbWVu
CiAgICAgcmV0dXJuIHsgfTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojp0
YWtlU2NyZWVuc2hvdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGJv
b2wgY2xpcFRvVmlld3BvcnQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit2b2lkIFdlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHk6OnRha2VTY3JlZW5zaG90KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxl
LCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGJvb2wgY2xpcFRvVmlld3BvcnQsIHVpbnQ2
NF90IGNhbGxiYWNrSUQpCiB7CiAgICAgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaGFuZGxlOwog
CkBAIC03NTIsNyArNzUzLDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojp0YWtl
U2NyZWVuc2hvdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHUKICAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6RGlkVGFrZVNjcmVlbnNob3QoY2FsbGJhY2tJRCwgaGFu
ZGxlLCB7IH0pLCAwKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpnZXRD
b29raWVzRm9yRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBm
cmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFZlY3RvcjxX
ZWJDb3JlOjpDb29raWU+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0b21hdGlv
blNlc3Npb25Qcm94eTo6Z2V0Q29va2llc0ZvckZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4pPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAgICAgaWYgKCFwYWdlKSB7CkBAIC03NzcsNyArNzc4
LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpnZXRDb29raWVzRm9yRnJhbWUo
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUkKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEY6
Om51bGxvcHQsIGZvdW5kQ29va2llcyk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eTo6ZGVsZXRlQ29va2llKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0
X3QgZnJhbWVJRCwgU3RyaW5nIGNvb2tpZU5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0
aW9uYWw8U3RyaW5nPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkF1dG9tYXRpb25T
ZXNzaW9uUHJveHk6OmRlbGV0ZUNvb2tpZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQs
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgY29va2llTmFtZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFn
ZShwYWdlSUQpOwogICAgIGlmICghcGFnZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5o
CmluZGV4IDExNjc2NDUyNzdkYmMxOTMwYTVhN2E1OTdkY2JjMmRmM2VjZjU1YzkuLjVlMWIwZmNm
ZjBmYzg1OThiOGM3OTc3MGE2OGIxODFlNzhmNjM5MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lv
blByb3h5LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5j
bHVkZSAiQ29vcmRpbmF0ZVN5c3RlbS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQmFz
ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CkBAIC01MSw3ICs1Miw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlkQ2xlYXJXaW5kb3dPYmpl
Y3RGb3JGcmFtZShXZWJGcmFtZSYpOwogCi0gICAgdm9pZCBkaWRFdmFsdWF0ZUphdmFTY3JpcHRG
dW5jdGlvbih1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBTdHJp
bmcmIHJlc3VsdCwgY29uc3QgU3RyaW5nJiBlcnJvclR5cGUpOworICAgIHZvaWQgZGlkRXZhbHVh
dGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBj
YWxsYmFja0lELCBjb25zdCBTdHJpbmcmIHJlc3VsdCwgY29uc3QgU3RyaW5nJiBlcnJvclR5cGUp
OwogCiBwcml2YXRlOgogICAgIEpTT2JqZWN0UmVmIHNjcmlwdE9iamVjdEZvckZyYW1lKFdlYkZy
YW1lJik7CkBAIC02MSwyMiArNjIsMjIgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwogCiAgICAg
Ly8gQ2FsbGVkIGJ5IFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkgbWVzc2FnZXMKLSAgICB2b2lk
IGV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIGZ1bmN0aW9uLCBWZWN0b3I8U3RyaW5nPiBhcmd1
bWVudHMsIGJvb2wgZXhwZWN0c0ltcGxpY2l0Q2FsbGJhY2tBcmd1bWVudCwgaW50IGNhbGxiYWNr
VGltZW91dCwgdWludDY0X3QgY2FsbGJhY2tJRCk7Ci0gICAgdm9pZCByZXNvbHZlQ2hpbGRGcmFt
ZVdpdGhPcmRpbmFsKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCB1
aW50MzJfdCBvcmRpbmFsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4s
IHVpbnQ2NF90KT4mJik7Ci0gICAgdm9pZCByZXNvbHZlQ2hpbGRGcmFtZVdpdGhOb2RlSGFuZGxl
KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcm
IG5vZGVIYW5kbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWlu
dDY0X3QpPiYmKTsKLSAgICB2b2lkIHJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCB1aW50NjRfdCk+JiYpOwotICAg
IHZvaWQgcmVzb2x2ZVBhcmVudEZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRf
dCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2
NF90KT4mJik7Ci0gICAgdm9pZCBmb2N1c0ZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1
aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGNvbXB1dGVFbGVtZW50TGF5b3V0KFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9v
bCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBDb29yZGluYXRlU3lzdGVtLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkludFJlY3QsIE9wdGlvbmFsPFdl
YkNvcmU6OkludFBvaW50PiwgYm9vbCk+JiYpOwotICAgIHZvaWQgc2VsZWN0T3B0aW9uRWxlbWVu
dChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVI
YW5kbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+JiYpOwotICAg
IHZvaWQgdGFrZVNjcmVlbnNob3QoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZy
YW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGJv
b2wgY2xpcFRvVmlld3BvcnQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwotICAgIHZvaWQgZ2V0Q29v
a2llc0ZvckZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFZlY3RvcjxXZWJDb3JlOjpD
b29raWU+KT4mJik7Ci0gICAgdm9pZCBkZWxldGVDb29raWUoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBjb29raWVOYW1lLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKE9wdGlvbmFsPFN0cmluZz4pPiYmKTsKKyAgICB2b2lkIGV2YWx1YXRlSmF2YVNjcmlw
dEZ1bmN0aW9uKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgZnVuY3Rpb24sIFZlY3RvcjxTdHJpbmc+IGFyZ3VtZW50cywgYm9v
bCBleHBlY3RzSW1wbGljaXRDYWxsYmFja0FyZ3VtZW50LCBpbnQgY2FsbGJhY2tUaW1lb3V0LCB1
aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIHJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGlu
YWwoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWlu
dDMyX3Qgb3JkaW5hbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpPiYmKTsKKyAgICB2b2lkIHJlc29sdmVDaGlsZEZyYW1l
V2l0aE5vZGVIYW5kbGUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik+JiYpOworICAgIHZv
aWQgcmVzb2x2ZUNoaWxkRnJhbWVXaXRoTmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKT4mJik7
CisgICAgdm9pZCByZXNvbHZlUGFyZW50RnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxT
dHJpbmc+LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpPiYmKTsKKyAgICB2b2lkIGZvY3VzRnJh
bWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7Cisg
ICAgdm9pZCBjb21wdXRlRWxlbWVudExheW91dChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRv
Vmlld0lmTmVlZGVkLCBDb29yZGluYXRlU3lzdGVtLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9w
dGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkludFJlY3QsIE9wdGlvbmFsPFdlYkNvcmU6OkludFBv
aW50PiwgYm9vbCk+JiYpOworICAgIHZvaWQgc2VsZWN0T3B0aW9uRWxlbWVudChXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBTdHJpbmcgbm9kZUhhbmRs
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJik7CisgICAgdm9p
ZCB0YWtlU2NyZWVuc2hvdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVk
LCBib29sIGNsaXBUb1ZpZXdwb3J0LCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIGdl
dENvb2tpZXNGb3JGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFZlY3Rv
cjxXZWJDb3JlOjpDb29raWU+KT4mJik7CisgICAgdm9pZCBkZWxldGVDb29raWUoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgU3RyaW5nIGNvb2tpZU5h
bWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+JiYpOwogCiAgICAg
U3RyaW5nIG1fc2Vzc2lvbklkZW50aWZpZXI7CiAKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBKU09i
amVjdFJlZj4gbV93ZWJGcmFtZVNjcmlwdE9iamVjdE1hcDsKLSAgICBIYXNoTWFwPHVpbnQ2NF90
LCBWZWN0b3I8dWludDY0X3Q+PiBtX3dlYkZyYW1lUGVuZGluZ0V2YWx1YXRlSmF2YVNjcmlwdENh
bGxiYWNrc01hcDsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgSlNPYmpl
Y3RSZWY+IG1fd2ViRnJhbWVTY3JpcHRPYmplY3RNYXA7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIFZlY3Rvcjx1aW50NjRfdD4+IG1fd2ViRnJhbWVQZW5kaW5nRXZhbHVh
dGVKYXZhU2NyaXB0Q2FsbGJhY2tzTWFwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1
dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgppbmRleCBkNzJm
ODlkMjYzNTljZjAxY2NmZDUzMWU5NmUwMWY0NDQwOWFhZjU4Li5mMjc2NDliOWI3MzEwYmE1OTEz
YjBkNmZmZmUxN2YyMjRlYzVmNjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9u
UHJveHkubWVzc2FnZXMuaW4KQEAgLTIxLDIxICsyMSwyMSBAQAogIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBt
ZXNzYWdlcyAtPiBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5IHsKLSAgICBFdmFsdWF0ZUphdmFT
Y3JpcHRGdW5jdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFN0cmluZyBmdW5jdGlvbiwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRzLCBib29sIGV4
cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJndW1lbnQsIGludCBjYWxsYmFja1RpbWVvdXQsIHVpbnQ2
NF90IGNhbGxiYWNrSUQpCisgICAgRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
U3RyaW5nIGZ1bmN0aW9uLCBWZWN0b3I8U3RyaW5nPiBhcmd1bWVudHMsIGJvb2wgZXhwZWN0c0lt
cGxpY2l0Q2FsbGJhY2tBcmd1bWVudCwgaW50IGNhbGxiYWNrVGltZW91dCwgdWludDY0X3QgY2Fs
bGJhY2tJRCkKIAotICAgIFJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGluYWwoV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBvcmRpbmFsKSAt
PiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIHVpbnQ2NF90IGZyYW1lSUQpIEFzeW5jCi0g
ICAgUmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhhbmRsZShXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlKSAtPiAoT3B0aW9u
YWw8U3RyaW5nPiBlcnJvclR5cGUsIHVpbnQ2NF90IGZyYW1lSUQpIEFzeW5jCi0gICAgUmVzb2x2
ZUNoaWxkRnJhbWVXaXRoTmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2
NF90IGZyYW1lSUQsIFN0cmluZyBuYW1lKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUs
IHVpbnQ2NF90IGZyYW1lSUQpIEFzeW5jCi0gICAgUmVzb2x2ZVBhcmVudEZyYW1lKFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCkgLT4gKE9wdGlvbmFsPFN0
cmluZz4gZXJyb3JUeXBlLCB1aW50NjRfdCBmcmFtZUlEKSBBc3luYworICAgIFJlc29sdmVDaGls
ZEZyYW1lV2l0aE9yZGluYWwoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDMyX3Qgb3JkaW5hbCkgLT4gKE9wdGlvbmFs
PFN0cmluZz4gZXJyb3JUeXBlLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkgQXN5
bmMKKyAgICBSZXNvbHZlQ2hpbGRGcmFtZVdpdGhOb2RlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBu
b2RlSGFuZGxlKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlEKSBBc3luYworICAgIFJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUo
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgU3RyaW5nIG5hbWUpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIEFzeW5jCisgICAgUmVzb2x2ZVBhcmVudEZy
YW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQpIEFzeW5jCiAKLSAgICBGb2N1c0ZyYW1lKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCkKKyAgICBGb2N1c0ZyYW1lKFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQpCiAKLSAgICBDb21wdXRlRWxlbWVudExheW91dChXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9s
bEludG9WaWV3SWZOZWVkZWQsIGVudW06dWludDhfdCBXZWJLaXQ6OkNvb3JkaW5hdGVTeXN0ZW0g
Y29vcmRpbmF0ZVN5c3RlbSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBXZWJDb3Jl
OjpJbnRSZWN0IHJlY3QsIE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiBpblZpZXdDZW50ZXJQ
b2ludCwgYm9vbCBpc09ic2N1cmVkKSBBc3luYworICAgIENvbXB1dGVFbGVtZW50TGF5b3V0KFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGVu
dW06dWludDhfdCBXZWJLaXQ6OkNvb3JkaW5hdGVTeXN0ZW0gY29vcmRpbmF0ZVN5c3RlbSkgLT4g
KE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBXZWJDb3JlOjpJbnRSZWN0IHJlY3QsIE9wdGlv
bmFsPFdlYkNvcmU6OkludFBvaW50PiBpblZpZXdDZW50ZXJQb2ludCwgYm9vbCBpc09ic2N1cmVk
KSBBc3luYwogCi0gICAgU2VsZWN0T3B0aW9uRWxlbWVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlKSAtPiAoT3B0aW9u
YWw8U3RyaW5nPiBlcnJvclR5cGUpIEFzeW5jCisgICAgU2VsZWN0T3B0aW9uRWxlbWVudChXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBTdHJpbmcgbm9kZUhhbmRsZSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlKSBB
c3luYwogCi0gICAgVGFrZVNjcmVlbnNob3QoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
LCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmll
d0lmTmVlZGVkLCBib29sIGNsaXBUb1ZpZXdwb3J0LCB1aW50NjRfdCBjYWxsYmFja0lEKQorICAg
IFRha2VTY3JlZW5zaG90KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbElu
dG9WaWV3SWZOZWVkZWQsIGJvb2wgY2xpcFRvVmlld3BvcnQsIHVpbnQ2NF90IGNhbGxiYWNrSUQp
CiAKLSAgICBHZXRDb29raWVzRm9yRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
LCB1aW50NjRfdCBmcmFtZUlEKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIFZlY3Rv
cjxXZWJDb3JlOjpDb29raWU+IGNvb2tpZXMpIEFzeW5jCi0gICAgRGVsZXRlQ29va2llKFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIGNvb2tp
ZU5hbWUpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSkgQXN5bmMKKyAgICBHZXRDb29r
aWVzRm9yRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBWZWN0
b3I8V2ViQ29yZTo6Q29va2llPiBjb29raWVzKSBBc3luYworICAgIERlbGV0ZUNvb2tpZShXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBTdHJpbmcgY29va2llTmFtZSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlKSBB
c3luYwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJh
bWUubW0KaW5kZXggMDk5NzYzNzJmMDczNzU3ZWVkYjE3NDkzZDczMWZhMGEzZDQ2NjhjNi4uMjU3
M2U2ZDQ4NTllNWUwY2ZlNGE2N2Y1ZjRmM2JiYTZiMzBmZTg2NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQ
bHVnSW5GcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tCkBAIC00OCw3ICs0OCw3IEBA
IEBpbXBsZW1lbnRhdGlvbiBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZSB7CiAKICsgKGluc3RhbmNl
dHlwZSlsb29rVXBGcmFtZUZyb21IYW5kbGU6KF9XS0ZyYW1lSGFuZGxlICopaGFuZGxlCiB7Ci0g
ICAgcmV0dXJuIHdyYXBwZXIoV2ViS2l0OjpXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFt
ZShoYW5kbGUuX2ZyYW1lSUQpKTsKKyAgICByZXR1cm4gd3JhcHBlcihXZWJLaXQ6OldlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRCho
YW5kbGUuX2ZyYW1lSUQpKSk7CiB9CiAKIC0gKHZvaWQpZGVhbGxvYwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdEZyYW1l
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9X
ZWJLaXRGcmFtZS5jcHAKaW5kZXggZGE2NzlkYjFiNDgyZjJiOWZmODc4YzQ0YzBjOTA4ZGNmOTdl
NzRjYy4uYTRmNTJiMmU1MGZhMmMzN2ExODI5YzllNGUyNmY0ODY5MGU3NTVjZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktp
dEZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2dsaWIvV2ViS2l0RnJhbWUuY3BwCkBAIC03NCw3ICs3NCw3IEBAIGd1aW50NjQgd2Via2l0
X2ZyYW1lX2dldF9pZChXZWJLaXRGcmFtZSogZnJhbWUpCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwoV0VCS0lUX0lTX0ZSQU1FKGZyYW1lKSwgMCk7CiAKLSAgICByZXR1cm4gZnJhbWUtPnBy
aXYtPndlYkZyYW1lLT5mcmFtZUlEKCk7CisgICAgcmV0dXJuIGZyYW1lLT5wcml2LT53ZWJGcmFt
ZS0+ZnJhbWVJRCgpLnRvVUludDY0KCk7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IGM0OGNk
ZDg1Nzk0ZDkyMTY5OTUyMGMyZDgzOGE1YjY3MGYzYjJmZjEuLjVkZmM0MjU3ODg0YmMyOTJhNGRh
ZThjNDQ1ZTkyYjczMjdhOTZjYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAgLTE1OSw3ICsxNTksNyBAQCB2
b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXImIHJlc291
cmNlTG9hZGVyLCBDYWNoZWRSZXNvdQogCiAgICAgV2ViUmVzb3VyY2VMb2FkZXI6OlRyYWNraW5n
UGFyYW1ldGVycyB0cmFja2luZ1BhcmFtZXRlcnM7CiAgICAgdHJhY2tpbmdQYXJhbWV0ZXJzLnBh
Z2VJRCA9IGZyYW1lTG9hZGVyQ2xpZW50LnBhZ2VJRCgpLnZhbHVlT3IoUGFnZUlkZW50aWZpZXIg
eyB9KTsKLSAgICB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCA9IGZyYW1lTG9hZGVyQ2xpZW50
LmZyYW1lSUQoKS52YWx1ZU9yKDApOworICAgIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlEID0g
ZnJhbWVMb2FkZXJDbGllbnQuZnJhbWVJRCgpLnZhbHVlT3IoRnJhbWVJZGVudGlmaWVyIHsgfSk7
CiAgICAgdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQgPSBpZGVudGlmaWVyOwogICAgIGF1
dG8gc2Vzc2lvbklEID0gZnJhbWVMb2FkZXJDbGllbnQuc2Vzc2lvbklEKCk7CiAKQEAgLTE2OCw3
ICsxNjgsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQoUmVzb3VyY2VM
b2FkZXImIHJlc291cmNlTG9hZGVyLCBDYWNoZWRSZXNvdQogICAgIC8vIHRoZW4gd2Ugc2hvdWxk
IHJlbWVtYmVyIHRoZSBSZXNvdXJjZUxvYWRlciBpbiBvdXIgcmVjb3JkcyBidXQgbm90IHNjaGVk
dWxlIGl0IGluIHRoZSBOZXR3b3JrUHJvY2Vzcy4KICAgICBpZiAocmVzb3VyY2VMb2FkZXIuZG9j
dW1lbnRMb2FkZXIoKS0+c2NoZWR1bGVBcmNoaXZlTG9hZChyZXNvdXJjZUxvYWRlciwgcmVzb3Vy
Y2VMb2FkZXIucmVxdWVzdCgpKSkgewogICAgICAgICBMT0coTmV0d29ya1NjaGVkdWxpbmcsICIo
V2ViUHJvY2VzcykgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZCwgdXJsICclcycgd2ls
bCBiZSBoYW5kbGVkIGFzIGFuIGFyY2hpdmUgcmVzb3VyY2UuIiwgcmVzb3VyY2VMb2FkZXIudXJs
KCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGhhbmRsZWQgYXMg
YW4gYXJjaGl2ZSByZXNvdXJjZSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZy
YW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNl
TG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJh
Y2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIGlkZW50aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBo
YW5kbGVkIGFzIGFuIGFyY2hpdmUgcmVzb3VyY2UgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiki
LCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUlu
dDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIGlkZW50aWZpZXIp
OwogICAgICAgICBtX3dlYlJlc291cmNlTG9hZGVycy5zZXQoaWRlbnRpZmllciwgV2ViUmVzb3Vy
Y2VMb2FkZXI6OmNyZWF0ZShyZXNvdXJjZUxvYWRlciwgdHJhY2tpbmdQYXJhbWV0ZXJzKSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xNzYsMTQgKzE3NiwxNCBAQCB2b2lkIFdlYkxvYWRl
clN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTG9hZGVyLCBD
YWNoZWRSZXNvdQogCiAgICAgaWYgKHJlc291cmNlTG9hZGVyLmRvY3VtZW50TG9hZGVyKCktPmFw
cGxpY2F0aW9uQ2FjaGVIb3N0KCkubWF5YmVMb2FkUmVzb3VyY2UocmVzb3VyY2VMb2FkZXIsIHJl
c291cmNlTG9hZGVyLnJlcXVlc3QoKSwgcmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnVybCgpKSkg
ewogICAgICAgICBMT0coTmV0d29ya1NjaGVkdWxpbmcsICIoV2ViUHJvY2VzcykgV2ViTG9hZGVy
U3RyYXRlZ3k6OnNjaGVkdWxlTG9hZCwgdXJsICclcycgd2lsbCBiZSBsb2FkZWQgZnJvbSBhcHBs
aWNhdGlvbiBjYWNoZS4iLCByZXNvdXJjZUxvYWRlci51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0
YSgpKTsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNj
aGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgbG9hZGVkIGZyb20gYXBwbGljYXRpb24gY2FjaGUgKGZy
YW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJl
c291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2lu
Z1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlE
LCBpZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxv
YWRlciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgbG9hZGVkIGZyb20gYXBwbGljYXRpb24g
Y2FjaGUgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgp
LCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVy
cy5mcmFtZUlELnRvVUludDY0KCksIGlkZW50aWZpZXIpOwogICAgICAgICBtX3dlYlJlc291cmNl
TG9hZGVycy5zZXQoaWRlbnRpZmllciwgV2ViUmVzb3VyY2VMb2FkZXI6OmNyZWF0ZShyZXNvdXJj
ZUxvYWRlciwgdHJhY2tpbmdQYXJhbWV0ZXJzKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
ICAgICBpZiAocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnVybCgpLnByb3RvY29sSXNEYXRhKCkp
IHsKICAgICAgICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5nLCAiKFdlYlByb2Nlc3MpIFdlYkxvYWRl
clN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQsIHVybCAnJXMnIHdpbGwgYmUgbG9hZGVkIGFzIGRhdGEu
IiwgcmVzb3VyY2VMb2FkZXIudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVS
TCB3aWxsIGJlIGxvYWRlZCBhcyBkYXRhIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVz
b3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgp
LCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7CisgICAgICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxs
IGJlIGxvYWRlZCBhcyBkYXRhIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VM
b2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFj
a2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsKICAgICAgICAg
c3RhcnRMb2NhbExvYWQocmVzb3VyY2VMb2FkZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQpA
QCAtMTkxLDcgKzE5MSw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZChS
ZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMb2FkZXIsIENhY2hlZFJlc291CiAjaWYgVVNFKFFVSUNL
X0xPT0spCiAgICAgaWYgKGlzUXVpY2tMb29rUHJldmlld1VSTChyZXNvdXJjZUxvYWRlci5yZXF1
ZXN0KCkudXJsKCkpKSB7CiAgICAgICAgIExPRyhOZXR3b3JrU2NoZWR1bGluZywgIihXZWJQcm9j
ZXNzKSBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkLCB1cmwgJyVzJyB3aWxsIGJlIGhh
bmRsZWQgYXMgYSBRdWlja0xvb2sgcmVzb3VyY2UuIiwgcmVzb3VyY2VMb2FkZXIudXJsKCkuc3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVz
b3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGhhbmRsZWQgYXMgYSBRdWlj
a0xvb2sgcmVzb3VyY2UgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRl
ci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5n
UGFyYW1ldGVycy5mcmFtZUlELCBpZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgaGFuZGxl
ZCBhcyBhIFF1aWNrTG9vayByZXNvdXJjZSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJl
c291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQo
KSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmllcik7CiAg
ICAgICAgIHN0YXJ0TG9jYWxMb2FkKHJlc291cmNlTG9hZGVyKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KQEAgLTIwMiw3ICsyMDIsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVs
ZUxvYWQoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTG9hZGVyLCBDYWNoZWRSZXNvdQogICAgIC8v
IGh0dHBzOi8vYmxvZ3MuZ25vbWUub3JnL2FsZXhsLzIwMTIvMDEvMjYvcmVzb3VyY2VzLWluLWds
aWIvCiAgICAgaWYgKHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS51cmwoKS5wcm90b2NvbElzKCJy
ZXNvdXJjZSIpKSB7CiAgICAgICAgIExPRyhOZXR3b3JrU2NoZWR1bGluZywgIihXZWJQcm9jZXNz
KSBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkLCB1cmwgJyVzJyB3aWxsIGJlIGhhbmRs
ZWQgYXMgYSBHUmVzb3VyY2UuIiwgcmVzb3VyY2VMb2FkZXIudXJsKCkuc3RyaW5nKCkudXRmOCgp
LmRhdGEoKSk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIs
ICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGhhbmRsZWQgYXMgYSBHUmVzb3VyY2UgKGZyYW1l
ID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1Bh
cmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBp
ZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRl
ciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgaGFuZGxlZCBhcyBhIEdSZXNvdXJjZSAoZnJh
bWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5n
UGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQu
dG9VSW50NjQoKSwgaWRlbnRpZmllcik7CiAgICAgICAgIHN0YXJ0TG9jYWxMb2FkKHJlc291cmNl
TG9hZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTIxMiwxMSArMjEyLDExIEBAIHZv
aWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciYgcmVzb3Vy
Y2VMb2FkZXIsIENhY2hlZFJlc291CiAgICAgV2ViU2VydmljZVdvcmtlclByb3ZpZGVyOjpzaW5n
bGV0b24oKS5oYW5kbGVGZXRjaChyZXNvdXJjZUxvYWRlciwgc2Vzc2lvbklELCBzaG91bGRDbGVh
clJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBbdGhpcywgdHJhY2tpbmdQYXJhbWV0ZXJz
LCBpZGVudGlmaWVyLCBzZXNzaW9uSUQsIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QsIG1heGltdW1CdWZmZXJpbmdUaW1lID0gbWF4aW11bUJ1ZmZlcmluZ1RpbWUocmVz
b3VyY2UpLCByZXNvdXJjZUxvYWRlciA9IG1ha2VSZWYocmVzb3VyY2VMb2FkZXIpXSAoU2Vydmlj
ZVdvcmtlckNsaWVudEZldGNoOjpSZXN1bHQgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYg
KHJlc3VsdCAhPSBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OlJlc3VsdDo6VW5oYW5kbGVkKSB7
CiAgICAgICAgICAgICBMT0coTmV0d29ya1NjaGVkdWxpbmcsICIoV2ViUHJvY2VzcykgV2ViTG9h
ZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZCwgdXJsICclcycgd2lsbCBiZSBzY2hlZHVsZWQgdGhy
b3VnaCBTZXJ2aWNlV29ya2VyIGhhbmRsZSBmZXRjaCBhbGdvcml0aG0iLCByZXNvdXJjZUxvYWRl
ci0+dXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKLSAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIuZ2V0KCksICJzY2hlZHVsZUxvYWQ6IFVSTCB3
aWxsIGJlIHNjaGVkdWxlZCB0aHJvdWdoIFNlcnZpY2VXb3JrZXIgaGFuZGxlIGZldGNoIGFsZ29y
aXRobSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLT5mcmFtZSgp
LCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVy
cy5mcmFtZUlELCBpZGVudGlmaWVyKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQocmVzb3VyY2VMb2FkZXIuZ2V0KCksICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIHNjaGVk
dWxlZCB0aHJvdWdoIFNlcnZpY2VXb3JrZXIgaGFuZGxlIGZldGNoIGFsZ29yaXRobSAoZnJhbWUg
PSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3Vy
Y2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLT5mcmFtZSgpLCB0cmFja2luZ1Bh
cmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRv
VUludDY0KCksIGlkZW50aWZpZXIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAg
ICAgICAgIGlmIChyZXNvdXJjZUxvYWRlci0+b3B0aW9ucygpLnNlcnZpY2VXb3JrZXJzTW9kZSA9
PSBTZXJ2aWNlV29ya2Vyc01vZGU6Ok9ubHkpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIuZ2V0KCksICJzY2hlZHVsZUxvYWQ6IHVuYWJs
ZSB0byBzY2hlZHVsZSBVUkwgdGhyb3VnaCBTZXJ2aWNlV29ya2VyIGhhbmRsZSBmZXRjaCBhbGdv
cml0aG0gKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci0+ZnJhbWUo
KSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRl
cnMuZnJhbWVJRCwgaWRlbnRpZmllcik7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9J
Rl9BTExPV0VEKHJlc291cmNlTG9hZGVyLmdldCgpLCAic2NoZWR1bGVMb2FkOiB1bmFibGUgdG8g
c2NoZWR1bGUgVVJMIHRocm91Z2ggU2VydmljZVdvcmtlciBoYW5kbGUgZmV0Y2ggYWxnb3JpdGht
IChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAi
LCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXItPmZyYW1lKCksIHRy
YWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZy
YW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmllcik7CiAgICAgICAgICAgICBjYWxsT25NYWluVGhy
ZWFkKFtyZXNvdXJjZUxvYWRlciA9IFdURk1vdmUocmVzb3VyY2VMb2FkZXIpXSB7CiAgICAgICAg
ICAgICAgICAgYXV0byBlcnJvciA9IGludGVybmFsRXJyb3IocmVzb3VyY2VMb2FkZXItPnJlcXVl
c3QoKS51cmwoKSk7CiAgICAgICAgICAgICAgICAgZXJyb3Iuc2V0VHlwZShSZXNvdXJjZUVycm9y
OjpUeXBlOjpDYW5jZWxsYXRpb24pOwpAQCAtMjI4LDEzICsyMjgsMTMgQEAgdm9pZCBXZWJMb2Fk
ZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlciwg
Q2FjaGVkUmVzb3UKICAgICAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJMb2Fk
ZXJTdHJhdGVneSgpLnRyeUxvYWRpbmdVc2luZ1VSTFNjaGVtZUhhbmRsZXIocmVzb3VyY2VMb2Fk
ZXIpKQogICAgICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViTG9hZGVyU3RyYXRl
Z3koKS5zY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MocmVzb3VyY2VMb2FkZXIuZ2V0KCks
IHJlc291cmNlTG9hZGVyLT5yZXF1ZXN0KCksIHRyYWNraW5nUGFyYW1ldGVycywgc2Vzc2lvbklE
LCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBtYXhpbXVtQnVmZmVy
aW5nVGltZSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQocmVzb3VyY2VMb2FkZXIuZ2V0KCksICJzY2hlZHVsZUxvYWQ6IFVSTCBub3QgaGFuZGxlZCBi
eSBhbnkgaGFuZGxlcnMgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRl
ci0+ZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2lu
Z1BhcmFtZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7CisgICAgICAgICAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLmdldCgpLCAic2NoZWR1bGVMb2FkOiBVUkwgbm90
IGhhbmRsZWQgYnkgYW55IGhhbmRsZXJzIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVz
b3VyY2VMb2FkZXItPmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQo
KSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmllcik7CiAg
ICAgfSk7CiAjZWxzZQogICAgIGlmICghdHJ5TG9hZGluZ1VzaW5nVVJMU2NoZW1lSGFuZGxlcihy
ZXNvdXJjZUxvYWRlcikpCiAgICAgICAgIHNjaGVkdWxlTG9hZEZyb21OZXR3b3JrUHJvY2Vzcyhy
ZXNvdXJjZUxvYWRlciwgcmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLCB0cmFja2luZ1BhcmFtZXRl
cnMsIHNlc3Npb25JRCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwg
bWF4aW11bUJ1ZmZlcmluZ1RpbWUocmVzb3VyY2UpKTsKICAgICBlbHNlCi0gICAgICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCBub3Qg
aGFuZGxlZCBieSBhbnkgaGFuZGxlcnMgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNv
dXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCks
IHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBpZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIG5vdCBo
YW5kbGVkIGJ5IGFueSBoYW5kbGVycyAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIs
IGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291
cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwg
dHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmllcik7CiAjZW5k
aWYKIH0KIApAQCAtMzI1LDcgKzMyNSw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVk
dWxlTG9hZEZyb21OZXR3b3JrUHJvY2VzcyhSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMCiAgICAg
aWYgKGxvYWRQYXJhbWV0ZXJzLm9wdGlvbnMubW9kZSAhPSBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5h
dmlnYXRlKSB7CiAgICAgICAgIEFTU0VSVChsb2FkUGFyYW1ldGVycy5zb3VyY2VPcmlnaW4pOwog
ICAgICAgICBpZiAoIWxvYWRQYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbikgewotICAgICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9h
ZDogbm8gc291cmNlT3JpZ2luIChmcmFtZSA9ICVwLCBwcmlvcml0eSA9ICVkLCBwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0
ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgc3RhdGljX2Nhc3Q8aW50PihyZXNvdXJjZUxv
YWRlci5yZXF1ZXN0KCkucHJpb3JpdHkoKSksIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJ
bnQ2NCgpLCBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlELCBsb2FkUGFyYW1ldGVycy5pZGVudGlm
aWVyKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQocmVzb3VyY2VM
b2FkZXIsICJzY2hlZHVsZUxvYWQ6IG5vIHNvdXJjZU9yaWdpbiAoZnJhbWUgPSAlcCwgcHJpb3Jp
dHkgPSAlZCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHN0YXRpY19j
YXN0PGludD4ocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnByaW9yaXR5KCkpLCBsb2FkUGFyYW1l
dGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJ
bnQ2NCgpLCBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyKTsKICAgICAgICAgICAgIHNjaGVkdWxl
SW50ZXJuYWxseUZhaWxlZExvYWQocmVzb3VyY2VMb2FkZXIpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CkBAIC0zNDgsOSArMzQ4LDkgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6
c2NoZWR1bGVMb2FkRnJvbU5ldHdvcmtQcm9jZXNzKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUwK
IAogICAgIEFTU0VSVCgobG9hZFBhcmFtZXRlcnMud2ViUGFnZUlEICYmIGxvYWRQYXJhbWV0ZXJz
LndlYkZyYW1lSUQpIHx8IGxvYWRQYXJhbWV0ZXJzLmNsaWVudENyZWRlbnRpYWxQb2xpY3kgPT0g
Q2xpZW50Q3JlZGVudGlhbFBvbGljeTo6Q2Fubm90QXNrQ2xpZW50Rm9yQ3JlZGVudGlhbHMpOwog
Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9h
ZDogUmVzb3VyY2UgaXMgYmVpbmcgc2NoZWR1bGVkIHdpdGggdGhlIE5ldHdvcmtQcm9jZXNzIChm
cmFtZSA9ICVwLCBwcmlvcml0eSA9ICVkLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9
ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIu
ZnJhbWUoKSwgc3RhdGljX2Nhc3Q8aW50PihyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkucHJpb3Jp
dHkoKSksIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVy
cy53ZWJGcmFtZUlELCBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyKTsKKyAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBSZXNvdXJjZSBpcyBi
ZWluZyBzY2hlZHVsZWQgd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3MgKGZyYW1lID0gJXAsIHByaW9y
aXR5ID0gJWQsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJl
c291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCBzdGF0aWNf
Y2FzdDxpbnQ+KHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS5wcmlvcml0eSgpKSwgbG9hZFBhcmFt
ZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9V
SW50NjQoKSwgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllcik7CiAgICAgaWYgKCFXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9u
KCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlNjaGVkdWxl
UmVzb3VyY2VMb2FkKGxvYWRQYXJhbWV0ZXJzKSwgMCkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0df
RVJST1JfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVW5hYmxlIHRv
IHNjaGVkdWxlIHJlc291cmNlIHdpdGggdGhlIE5ldHdvcmtQcm9jZXNzIChmcmFtZSA9ICVwLCBw
cmlvcml0eSA9ICVkLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAi
LCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgc3Rh
dGljX2Nhc3Q8aW50PihyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkucHJpb3JpdHkoKSksIGxvYWRQ
YXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlE
LCBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Jf
SUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVW5hYmxlIHRvIHNjaGVk
dWxlIHJlc291cmNlIHdpdGggdGhlIE5ldHdvcmtQcm9jZXNzIChmcmFtZSA9ICVwLCBwcmlvcml0
eSA9ICVkLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNv
dXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgc3RhdGljX2Nh
c3Q8aW50PihyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkucHJpb3JpdHkoKSksIGxvYWRQYXJhbWV0
ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUlu
dDY0KCksIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIpOwogICAgICAgICAvLyBXZSBwcm9iYWJs
eSBmYWlsZWQgdG8gc2NoZWR1bGUgdGhpcyBsb2FkIHdpdGggdGhlIE5ldHdvcmtQcm9jZXNzIGJl
Y2F1c2UgaXQgaGFkIGNyYXNoZWQuCiAgICAgICAgIC8vIFRoaXMgbG9hZCB3aWxsIG5ldmVyIHN1
Y2NlZWQgc28gd2Ugd2lsbCBzY2hlZHVsZSBpdCB0byBmYWlsIGFzeW5jaHJvbm91c2x5LgogICAg
ICAgICBzY2hlZHVsZUludGVybmFsbHlGYWlsZWRMb2FkKHJlc291cmNlTG9hZGVyKTsKQEAgLTUy
MCwxOCArNTIwLDE4IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNvdXJjZVN5bmNo
cm9ub3VzbHkoRnJhbWVMb2FkZXImIGZyYW1lTG9hZGVyLCB1bnNpCiAgICAgV2ViUGFnZSogd2Vi
UGFnZSA9IHdlYkZyYW1lID8gd2ViRnJhbWUtPnBhZ2UoKSA6IG51bGxwdHI7CiAKICAgICBhdXRv
IHBhZ2VJRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5wYWdlSUQoKSA6IFBhZ2VJZGVudGlmaWVyIHsg
fTsKLSAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZSA/IHdlYkZyYW1lLT5mcmFtZUlEKCkgOiAw
OworICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZyYW1lID8gd2ViRnJhbWUtPmZyYW1lSUQoKSA6IEZy
YW1lSWRlbnRpZmllciB7IH07CiAgICAgYXV0byBzZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2ViUGFn
ZS0+c2Vzc2lvbklEKCkgOiBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOwogCiAg
ICAgYXV0byogZG9jdW1lbnQgPSBmcmFtZUxvYWRlci5mcmFtZSgpLmRvY3VtZW50KCk7CiAgICAg
aWYgKCFkb2N1bWVudCkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHNl
c3Npb25JRCwgImxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6IG5vIGRvY3VtZW50IChwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJWx1KSIs
IHBhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKTsKKyAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChzZXNzaW9uSUQsICJsb2FkUmVzb3Vy
Y2VTeW5jaHJvbm91c2x5OiBubyBkb2N1bWVudCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICVsdSkiLCBwYWdlSUQudG9VSW50NjQoKSwg
ZnJhbWVJRC50b1VJbnQ2NCgpLCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKTsKICAgICAgICAgZXJy
b3IgPSBpbnRlcm5hbEVycm9yKHJlcXVlc3QudXJsKCkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCiAgICAgaWYgKGF1dG8gc3luY0xvYWRSZXN1bHQgPSB0cnlMb2FkaW5nU3luY2hyb25vdXNs
eVVzaW5nVVJMU2NoZW1lSGFuZGxlcihmcmFtZUxvYWRlciwgcmVzb3VyY2VMb2FkSWRlbnRpZmll
ciwgcmVxdWVzdCkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChzZXNz
aW9uSUQsICJsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiBmYWlsZWQgY2FsbGluZyB0cnlMb2Fk
aW5nU3luY2hyb25vdXNseVVzaW5nVVJMU2NoZW1lSGFuZGxlciAocGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICVsdSwgZXJyb3IgPSAlZCki
LCBwYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCwgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgc3lu
Y0xvYWRSZXN1bHQtPmVycm9yLmVycm9yQ29kZSgpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1JfSUZfQUxMT1dFRChzZXNzaW9uSUQsICJsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiBmYWls
ZWQgY2FsbGluZyB0cnlMb2FkaW5nU3luY2hyb25vdXNseVVzaW5nVVJMU2NoZW1lSGFuZGxlciAo
cGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9
ICVsdSwgZXJyb3IgPSAlZCkiLCBwYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgp
LCByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBzeW5jTG9hZFJlc3VsdC0+ZXJyb3IuZXJyb3JDb2Rl
KCkpOwogICAgICAgICBlcnJvciA9IFdURk1vdmUoc3luY0xvYWRSZXN1bHQtPmVycm9yKTsKICAg
ICAgICAgcmVzcG9uc2UgPSBXVEZNb3ZlKHN5bmNMb2FkUmVzdWx0LT5yZXNwb25zZSk7CiAgICAg
ICAgIGRhdGEgPSBXVEZNb3ZlKHN5bmNMb2FkUmVzdWx0LT5kYXRhKTsKQEAgLTU2OSw3ICs1Njks
NyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KEZy
YW1lTG9hZGVyJiBmcmFtZUxvYWRlciwgdW5zaQogICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNz
UG9vbDo6U2V0V2ViUHJvY2Vzc0hhc1VwbG9hZHMgeyBQcm9jZXNzOjppZGVudGlmaWVyKCkgfSwg
MCk7CiAKICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlBlcmZvcm1TeW5jaHJvbm91c0xvYWQobG9hZFBhcmFtZXRl
cnMpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlBlcmZvcm1TeW5j
aHJvbm91c0xvYWQ6OlJlcGx5KGVycm9yLCByZXNwb25zZSwgZGF0YSksIDApKSB7Ci0gICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoc2Vzc2lvbklELCAibG9hZFJlc291cmNlU3lu
Y2hyb25vdXNseTogZmFpbGVkIHNlbmRpbmcgc3luY2hyb25vdXMgbmV0d29yayBwcm9jZXNzIG1l
c3NhZ2UgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlbHUpIiwgcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQsIHJlc291cmNlTG9hZElk
ZW50aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHNlc3Npb25J
RCwgImxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6IGZhaWxlZCBzZW5kaW5nIHN5bmNocm9ub3Vz
IG5ldHdvcmsgcHJvY2VzcyBtZXNzYWdlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9
ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJWx1KSIsIHBhZ2VJRC50b1VJbnQ2NCgpLCBmcmFt
ZUlELnRvVUludDY0KCksIHJlc291cmNlTG9hZElkZW50aWZpZXIpOwogICAgICAgICBpZiAoYXV0
byogcGFnZSA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5jb3JlUGFnZSgpIDogbnVsbHB0cikKICAgICAg
ICAgICAgIHBhZ2UtPmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3Nh
Z2UoV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjppbnRlcm5hbEVycm9yS2V5KCksIFdl
YkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6c3luY2hyb25vdXNNZXNzYWdlRmFpbGVkS2V5
KCksIFdlYkNvcmU6OlNob3VsZFNhbXBsZTo6Tm8pOwogICAgICAgICByZXNwb25zZSA9IFJlc291
cmNlUmVzcG9uc2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcAppbmRleCA4OGJkNTNiZjFmOGZiNzM2ZWIxNzNlZjY0
ZjFlMzAzZDFiYjEwMGMxLi5mYTUzOTI1ZWI2OGYwNDJmZWM3OWJmMzg4NjBiMjc2MDMyNWZiNTFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJj
ZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVz
b3VyY2VMb2FkZXIuY3BwCkBAIC04OCwxNiArODgsMTYgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRl
cjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHByb3Bvc2VkUmVxdWVzdCwgUmVz
b3UKICAgICBSZWY8V2ViUmVzb3VyY2VMb2FkZXI+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwogCiAg
ICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5k
UmVxdWVzdCB0byAnJXMnIiwgcHJvcG9zZWRSZXF1ZXN0LnVybCgpLnN0cmluZygpLmxhdGluMSgp
LmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgid2lsbFNlbmRSZXF1ZXN0OiAo
cGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9
ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBt
X3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJj
ZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3aWxsU2VuZFJlcXVlc3Q6IChwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIg
UFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJh
Y2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMu
cmVzb3VyY2VJRCk7CiAKICAgICBpZiAobV9jb3JlTG9hZGVyLT5kb2N1bWVudExvYWRlcigpLT5h
cHBsaWNhdGlvbkNhY2hlSG9zdCgpLm1heWJlTG9hZEZhbGxiYWNrRm9yUmVkaXJlY3QobV9jb3Jl
TG9hZGVyLmdldCgpLCBwcm9wb3NlZFJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpKSB7Ci0gICAg
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIndpbGxTZW5kUmVxdWVzdDogZXhpdGluZyBlYXJs
eSBiZWNhdXNlIG1heWJlTG9hZEZhbGxiYWNrRm9yUmVkaXJlY3QgcmV0dXJuZWQgZmFsc2UgKHBh
Z2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAl
IiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90
cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJ
RCk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIndpbGxTZW5kUmVxdWVzdDogZXhp
dGluZyBlYXJseSBiZWNhdXNlIG1heWJlTG9hZEZhbGxiYWNrRm9yUmVkaXJlY3QgcmV0dXJuZWQg
ZmFsc2UgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50
NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5n
UGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIG1f
Y29yZUxvYWRlci0+d2lsbFNlbmRSZXF1ZXN0KFdURk1vdmUocHJvcG9zZWRSZXF1ZXN0KSwgcmVk
aXJlY3RSZXNwb25zZSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRo
aXMpXShSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KSB7CiAgICAgICAgIGlmICghbV9jb3JlTG9h
ZGVyIHx8ICFtX2NvcmVMb2FkZXItPmlkZW50aWZpZXIoKSkgewotICAgICAgICAgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgid2lsbFNlbmRSZXF1ZXN0OiBleGl0aW5nIGVhcmx5IGJlY2F1c2Ug
bm8gY29yZWxvYWRlciBvciBpZGVudGlmaWVyIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1Bh
cmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQs
IG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOworICAgICAgICAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgid2lsbFNlbmRSZXF1ZXN0OiBleGl0aW5nIGVhcmx5IGJlY2F1c2Ugbm8g
Y29yZWxvYWRlciBvciBpZGVudGlmaWVyIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9
ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFt
ZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9V
SW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KIApAQCAtMTEzLDEyICsxMTMsMTIgQEAgdm9pZCBXZWJSZXNvdXJj
ZUxvYWRlcjo6ZGlkU2VuZERhdGEodWludDY0X3QgYnl0ZXNTZW50LCB1aW50NjRfdCB0b3RhbEJ5
dGVzVG9CZVMKIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2
ZVJlc3BvbnNlTWVzc2FnZSkKIHsKICAgICBMT0coTmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJS
ZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlIGZvciAnJXMnLiBTdGF0dXMgJWQuIiwg
bV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCksIHJlc3BvbnNlLmh0
dHBTdGF0dXNDb2RlKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVS
ZXNwb25zZTogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJl
c291cmNlSUQgPSAlIiBQUkl1NjQgIiwgc3RhdHVzID0gJWQpIiwgbV90cmFja2luZ1BhcmFtZXRl
cnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJh
Y2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQsIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkpOwor
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZTogKHBhZ2VJRCA9
ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1
NjQgIiwgc3RhdHVzID0gJWQpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0
KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1Bh
cmFtZXRlcnMucmVzb3VyY2VJRCwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSk7CiAKICAgICBS
ZWY8V2ViUmVzb3VyY2VMb2FkZXI+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwogCiAgICAgaWYgKG1f
Y29yZUxvYWRlci0+ZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS5tYXli
ZUxvYWRGYWxsYmFja0ZvclJlc3BvbnNlKG1fY29yZUxvYWRlci5nZXQoKSwgcmVzcG9uc2UpKSB7
Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZTogbm90
IGNvbnRpbnVpbmcgbG9hZCBiZWNhdXNlIHRoZSBjb250ZW50IGlzIGFscmVhZHkgY2FjaGVkIChw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1f
dHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNl
SUQpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6
IG5vdCBjb250aW51aW5nIGxvYWQgYmVjYXVzZSB0aGUgY29udGVudCBpcyBhbHJlYWR5IGNhY2hl
ZCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJ
RCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgp
LCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJh
bWV0ZXJzLnJlc291cmNlSUQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMzUsNyAr
MTM1LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib28KICAgICAgICAgICAgIGlmIChtX2NvcmVM
b2FkZXIgJiYgbV9jb3JlTG9hZGVyLT5pZGVudGlmaWVyKCkpCiAgICAgICAgICAgICAgICAgc2Vu
ZChNZXNzYWdlczo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpDb250aW51ZURpZFJlY2VpdmVSZXNw
b25zZSgpKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6IG5vdCBjb250aW51aW5nIGxvYWQgYmVjYXVz
ZSBubyBjb3JlTG9hZGVyIG9yIG5vIElEIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9
ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFt
ZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1f
dHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOworICAgICAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZTogbm90IGNvbnRpbnVpbmcgbG9hZCBi
ZWNhdXNlIG5vIGNvcmVMb2FkZXIgb3Igbm8gSUQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5n
UGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJ
RC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKICAgICAgICAg
fTsKICAgICB9CiAKQEAgLTE0OCw3ICsxNDgsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpk
aWRSZWNlaXZlRGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGludDY0X3QgZQog
ICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIW1faXNQcm9jZXNzaW5nTmV0d29ya1Jlc3BvbnNlLCAi
TmV0d29yayBwcm9jZXNzIHNob3VsZCBub3Qgc2VuZCBkYXRhIHVudGlsIHdlJ3ZlIHZhbGlkYXRl
ZCB0aGUgcmVzcG9uc2UiKTsKIAogICAgIGlmICghbV9udW1CeXRlc1JlY2VpdmVkKSB7Ci0gICAg
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVEYXRhOiBTdGFydGVkIHJlY2Vp
dmluZyBkYXRhIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBy
ZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRv
VUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0
ZXJzLnJlc291cmNlSUQpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNl
aXZlRGF0YTogU3RhcnRlZCByZWNlaXZpbmcgZGF0YSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZy
YW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tp
bmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFt
ZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwogICAgIH0K
ICAgICBtX251bUJ5dGVzUmVjZWl2ZWQgKz0gZGF0YS5zaXplKCk7CiAKQEAgLTE1OCw3ICsxNTgs
NyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShjb25zdCBJUEM6OkRh
dGFSZWZlcmVuY2UmIGRhdGEsIGludDY0X3QgZQogdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlk
RmluaXNoUmVzb3VyY2VMb2FkKGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRN
ZXRyaWNzKQogewogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9h
ZGVyOjpkaWRGaW5pc2hSZXNvdXJjZUxvYWQgZm9yICclcyciLCBtX2NvcmVMb2FkZXItPnVybCgp
LnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgi
ZGlkRmluaXNoUmVzb3VyY2VMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAl
IiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBsZW5ndGggPSAlemQpIiwgbV90
cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJz
LmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQsIG1fbnVtQnl0ZXNSZWNl
aXZlZCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkRmluaXNoUmVzb3VyY2VMb2Fk
OiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJ
RCA9ICUiIFBSSXU2NCAiLCBsZW5ndGggPSAlemQpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFn
ZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwg
bV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCwgbV9udW1CeXRlc1JlY2VpdmVkKTsKIAog
ICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIW1faXNQcm9jZXNzaW5nTmV0d29ya1Jlc3BvbnNlLCAi
TG9hZCBzaG91bGQgbm90IGJlIGFibGUgdG8gZmluaXNoIGJlZm9yZSB3ZSd2ZSB2YWxpZGF0ZWQg
dGhlIHJlc3BvbnNlIik7CiAgICAgbV9jb3JlTG9hZGVyLT5kaWRGaW5pc2hMb2FkaW5nKG5ldHdv
cmtMb2FkTWV0cmljcyk7CkBAIC0xNjcsNyArMTY3LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRl
cjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkKGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29y
a0wKIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxSZXNvdXJjZUxvYWQoY29uc3QgUmVz
b3VyY2VFcnJvciYgZXJyb3IpCiB7CiAgICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2Vi
UmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxSZXNvdXJjZUxvYWQgZm9yICclcyciLCBtX2NvcmVMb2Fk
ZXItPnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgiZGlkRmFpbFJlc291cmNlTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5n
UGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJ
RCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgiZGlkRmFpbFJlc291cmNlTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5n
UGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJ
RC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKIAogICAgIEFT
U0VSVF9XSVRIX01FU1NBR0UoIW1faXNQcm9jZXNzaW5nTmV0d29ya1Jlc3BvbnNlLCAiTG9hZCBz
aG91bGQgbm90IGJlIGFibGUgdG8gZmluaXNoIGJlZm9yZSB3ZSd2ZSB2YWxpZGF0ZWQgdGhlIHJl
c3BvbnNlIik7CiAKQEAgLTE3OSw3ICsxNzksNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpk
aWRGYWlsUmVzb3VyY2VMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogdm9pZCBXZWJS
ZXNvdXJjZUxvYWRlcjo6ZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgpCiB7CiAgICAg
TE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEJsb2NrQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UgZm9yICclcyciLCBtX2NvcmVMb2FkZXItPnVybCgpLnN0cmlu
ZygpLmxhdGluMSgpLmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkQmxv
Y2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFy
YW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwg
bV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRCgiZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTogKHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBt
X3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRl
cnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsK
IAogICAgIG1fY29yZUxvYWRlci0+ZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgpOwog
fQpAQCAtMTg3LDcgKzE4Nyw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEJsb2NrQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UoKQogdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6c3RvcExvYWRp
bmdBZnRlclhGcmFtZU9wdGlvbnNPckNvbnRlbnRTZWN1cml0eVBvbGljeURlbmllZChjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBMT0coTmV0d29yaywgIihXZWJQcm9j
ZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6c3RvcExvYWRpbmdBZnRlclhGcmFtZU9wdGlvbnNPckNv
bnRlbnRTZWN1cml0eVBvbGljeURlbmllZCBmb3IgJyVzJyIsIG1fY29yZUxvYWRlci0+dXJsKCku
c3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJz
dG9wTG9hZGluZ0FmdGVyWEZyYW1lT3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVk
OiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJ
RCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgp
LCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNv
dXJjZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdG9wTG9hZGluZ0FmdGVyWEZy
YW1lT3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVkOiAocGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIs
IG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1l
dGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQp
OwogCiAgICAgbV9jb3JlTG9hZGVyLT5kb2N1bWVudExvYWRlcigpLT5zdG9wTG9hZGluZ0FmdGVy
WEZyYW1lT3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVkKG1fY29yZUxvYWRlci0+
aWRlbnRpZmllcigpLCByZXNwb25zZSk7CiB9CkBAIC0xOTYsMTMgKzE5NiwxMyBAQCB2b2lkIFdl
YlJlc291cmNlTG9hZGVyOjpzdG9wTG9hZGluZ0FmdGVyWEZyYW1lT3B0aW9uc09yQ29udGVudFNl
Y3VyaXR5UG9saWN5RGVuaQogdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc291
cmNlKGNvbnN0IFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUmIGhhbmRsZSkKIHsKICAgICBMT0co
TmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc291
cmNlIGZvciAnJXMnIiwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRh
KCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNvdXJjZTogKHBh
Z2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAl
IiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90
cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJ
RCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc291cmNlOiAocGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUi
IFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Ry
YWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJz
LnJlc291cmNlSUQpOwogCiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyID0gaGFuZGxl
LnRyeVdyYXBJblNoYXJlZEJ1ZmZlcigpOwogCiAgICAgaWYgKCFidWZmZXIpIHsKICAgICAgICAg
TE9HX0VSUk9SKCJVbmFibGUgdG8gY3JlYXRlIGJ1ZmZlciBmcm9tIFNoYXJlYWJsZVJlc291cmNl
IHNlbnQgZnJvbSB0aGUgbmV0d29yayBwcm9jZXNzLiIpOwotICAgICAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzb3VyY2U6IFVuYWJsZSB0byBjcmVhdGUgU2hhcmVkQnVm
ZmVyIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJj
ZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0
KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJl
c291cmNlSUQpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVz
b3VyY2U6IFVuYWJsZSB0byBjcmVhdGUgU2hhcmVkQnVmZmVyIChwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90
cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJz
LmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CiAg
ICAgICAgIGlmIChhdXRvKiBmcmFtZSA9IG1fY29yZUxvYWRlci0+ZnJhbWUoKSkgewogICAgICAg
ICAgICAgaWYgKGF1dG8qIHBhZ2UgPSBmcmFtZS0+cGFnZSgpKQogICAgICAgICAgICAgICAgIHBh
Z2UtPmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2UoV2ViQ29y
ZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjppbnRlcm5hbEVycm9yS2V5KCksIFdlYkNvcmU6OkRp
YWdub3N0aWNMb2dnaW5nS2V5czo6Y3JlYXRlU2hhcmVkQnVmZmVyRmFpbGVkS2V5KCksIFdlYkNv
cmU6OlNob3VsZFNhbXBsZTo6Tm8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKaW5kZXggNTg2NTQzNzE4ZTVlODM4OGI4YjQx
YWIwMjAzN2FjNzZlNzg2OTM3Yy4uOWMxMTQ3ZGEwNTE1M2RkN2FjNDRhZjMxNTgxZTIyMWI2OWJl
OTI0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVz
b3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJS
ZXNvdXJjZUxvYWRlci5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5o
IgogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKICNpbmNsdWRlICJTaGFyZWFibGVSZXNvdXJj
ZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtNTIsNyArNTMsNyBAQCBjbGFzcyBXZWJSZXNvdXJjZUxv
YWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlJlc291cmNlTG9hZGVyPiwgcHVibGljIElQQzo6
TWVzcwogcHVibGljOgogICAgIHN0cnVjdCBUcmFja2luZ1BhcmFtZXRlcnMgewogICAgICAgICBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQ7Ci0gICAgICAgIHVpbnQ2NF90IGZyYW1lSUQg
eyAwIH07CisgICAgICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEOwogICAgICAg
ICBSZXNvdXJjZUxvYWRJZGVudGlmaWVyIHJlc291cmNlSUQgeyAwIH07CiAgICAgfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCmluZGV4IDZmYzA5YzRmNjViMjQ1YjYwYmY0
ZDRmNTk3YTlmOTBhZDRkMGFhZjkuLjQ5ZDIwYzdjNDljMDJhYTk1OWFhNGFlNGQ5ZWVjOGZlODNj
NWZlN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKQEAgLTczLDcgKzcz
LDcgQEAgc3RhdGljIGNvbnN0IFNlY29uZHMgc3luY1dvcmtlclRlcm1pbmF0aW9uVGltZW91dCB7
IDEwMF9tcyB9OyAvLyBPbmx5IHVzZWQgYnkgbGEKIAogY2xhc3MgU2VydmljZVdvcmtlckZyYW1l
TG9hZGVyQ2xpZW50IGZpbmFsIDogcHVibGljIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgewogcHVi
bGljOgotICAgIFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudChXZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmlu
ZyYgdXNlckFnZW50KQorICAgIFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudChXZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCkKICAgICAgICAgOiBtX2Nvbm5lY3Rpb24oY29u
bmVjdGlvbikKICAgICAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgICAgICwgbV9w
YWdlSUQocGFnZUlEKQpAQCAtOTYsMTMgKzk2LDEzIEBAIHByaXZhdGU6CiAKICAgICBQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQog
ICAgIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX3BhZ2VJRDsgfQotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV9mcmFtZUlEOyB9CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9mcmFtZUlE
OyB9CiAgICAgU3RyaW5nIHVzZXJBZ2VudChjb25zdCBVUkwmKSBmaW5hbCB7IHJldHVybiBtX3Vz
ZXJBZ2VudDsgfQogCiAgICAgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24mIG1fY29ubmVj
dGlvbjsKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKLSAgICBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciBtX3BhZ2VJRDsKLSAgICB1aW50NjRfdCBtX2ZyYW1lSUQgeyAwIH07CisgICAg
UGFnZUlkZW50aWZpZXIgbV9wYWdlSUQ7CisgICAgRnJhbWVJZGVudGlmaWVyIG1fZnJhbWVJRDsK
ICAgICBTdHJpbmcgbV91c2VyQWdlbnQ7CiB9OwogCkBAIC0xNTMsNyArMTUzLDggQEAgdm9pZCBX
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6aW5zdGFsbFNlcnZpY2VXb3JrZXIoY29uc3Qg
U2VydmljZVdvcmtlckNvbnQKIAogICAgIC8vIEZJWE1FOiBUaGlzIG1ldGhvZCBzaG91bGQgYmUg
bW92ZWQgZGlyZWN0bHkgdG8gV2ViQ29yZTo6U1dDb250ZXh0TWFuYWdlcjo6Q29ubmVjdGlvbgog
ICAgIC8vIElmIGl0IHdlcmVuJ3QgZm9yIFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudCdz
IGRlcGVuZGVuY2Ugb24gV2ViRG9jdW1lbnRMb2FkZXIsIHRoaXMgY291bGQgYWxyZWFkeSBoYXBw
ZW4uCi0gICAgYXV0byBmcmFtZUxvYWRlckNsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8U2Vydmlj
ZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50PigqdGhpcywgc2Vzc2lvbklELCBtX3BhZ2VJRCwgKytt
X3ByZXZpb3VzU2VydmljZVdvcmtlcklELCBlZmZlY3RpdmVVc2VyQWdlbnQpOworICAgIC8vIEZJ
WE1FOiBXZWlyZCB0byBwYXNzIG1fcHJldmlvdXNTZXJ2aWNlV29ya2VySUQgYXMgYSBGcmFtZUlk
ZW50aWZpZXIuCisgICAgYXV0byBmcmFtZUxvYWRlckNsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8
U2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50PigqdGhpcywgc2Vzc2lvbklELCBtX3BhZ2VJ
RCwgZnJhbWVJZGVudGlmaWVyRnJvbUlEKCsrbV9wcmV2aW91c1NlcnZpY2VXb3JrZXJJRCksIGVm
ZmVjdGl2ZVVzZXJBZ2VudCk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24ubG9hZGVyQ2xpZW50Rm9y
TWFpbkZyYW1lID0gZnJhbWVMb2FkZXJDbGllbnQuZ2V0KCk7CiAgICAgbV9sb2FkZXJzLmFkZChX
VEZNb3ZlKGZyYW1lTG9hZGVyQ2xpZW50KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXgg
M2M4NzJmNWFkZjM5YmVhY2QzYTcwNjY3YjI2ODlkMzhjOWIxMTEyZS4uZmNkMDk4ZTQ4NDBhNThh
MmI1YTIxOTdlYjUyOTFlMGE0ZjQ4MjlmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTI2
NSw3ICsyNjUsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Zm9jdXNlZEZyYW1lQ2hhbmdlZChG
cmFtZSogZnJhbWUpCiB7CiAgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gZnJhbWUgPyBXZWJGcmFt
ZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpIDogbnVsbHB0cjsKIAotICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6Rm9jdXNlZEZyYW1lQ2hhbmdlZCh3ZWJGcmFtZSA/IHdlYkZyYW1lLT5mcmFtZUlE
KCkgOiAwKSwgbV9wYWdlLnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5w
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkZv
Y3VzZWRGcmFtZUNoYW5nZWQod2ViRnJhbWUgPyBtYWtlT3B0aW9uYWwod2ViRnJhbWUtPmZyYW1l
SUQoKSkgOiBXVEY6Om51bGxvcHQpLCBtX3BhZ2UucGFnZUlEKCkpOwogfQogCiBQYWdlKiBXZWJD
aHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSYgZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiB3aW5kb3dGZWF0dXJlcywgY29u
c3QgTmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGlvbkFjdGlvbikKQEAgLTYyNSw3ICs2MjUsNyBA
QCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSYgZnJhbWUs
IGNvbnN0IEludFNpemUmIHNpemUpIGNvbgogICAgICAgICBXZWJGcmFtZSogbGFyZ2VzdEZyYW1l
ID0gZmluZExhcmdlc3RGcmFtZUluRnJhbWVTZXQobV9wYWdlKTsKICAgICAgICAgaWYgKGxhcmdl
c3RGcmFtZSAhPSBtX2NhY2hlZEZyYW1lU2V0TGFyZ2VzdEZyYW1lLmdldCgpKSB7CiAgICAgICAg
ICAgICBtX2NhY2hlZEZyYW1lU2V0TGFyZ2VzdEZyYW1lID0gbGFyZ2VzdEZyYW1lOwotICAgICAg
ICAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RnJhbWVTZXRMYXJnZXN0
RnJhbWVDaGFuZ2VkKGxhcmdlc3RGcmFtZSA/IGxhcmdlc3RGcmFtZS0+ZnJhbWVJRCgpIDogMCkp
OworICAgICAgICAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RnJhbWVT
ZXRMYXJnZXN0RnJhbWVDaGFuZ2VkKGxhcmdlc3RGcmFtZSA/IG1ha2VPcHRpb25hbChsYXJnZXN0
RnJhbWUtPmZyYW1lSUQoKSkgOiBXVEY6Om51bGxvcHQpKTsKICAgICAgICAgfQogICAgIH0KIApA
QCAtMTMxNiwxMiArMTMxNiwxMiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZGlkSW52YWxpZGF0
ZURvY3VtZW50TWFya2VyUmVjdHMoKQogfQogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpoYXNTdG9yYWdlQWNjZXNzKFJlZ2lzdHJh
YmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVE
b21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6
Omhhc1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgUmVn
aXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IFBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIG1fcGFnZS5oYXNTdG9yYWdlQWNjZXNzKFdURk1vdmUoc3ViRnJh
bWVEb21haW4pLCBXVEZNb3ZlKHRvcEZyYW1lRG9tYWluKSwgZnJhbWVJRCwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cmVxdWVzdFN0b3Jh
Z2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgUmVnaXN0cmFibGVE
b21haW4mJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VB
Y2Nlc3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkNocm9t
ZUNsaWVudDo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFt
ZURvbWFpbiwgUmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3Jh
Z2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIG1fcGFnZS5yZXF1ZXN0U3RvcmFnZUFjY2VzcyhXVEZNb3Zl
KHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0b3BGcmFtZURvbWFpbiksIGZyYW1lSUQsIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBjZWQzNmE2
YzI1YjdlNGY4MzQ0YTU4OTk0MDA2NzkxZjdjYzkyNzZmLi4yZGM2NjIyYzFiN2YxYzVhOTVhMmNj
ZDc5YjMyMDliYjU4NzJhNjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0zNjcsOCArMzY3LDgg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZEludmFsaWRhdGVEb2N1bWVudE1hcmtlclJlY3RzKCkg
ZmluYWw7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIHZvaWQg
aGFzU3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9t
YWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCB1aW50NjRf
dCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKLSAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3Rv
cmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93
bik+JiYpIGZpbmFsOworICAgIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYm
IHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwor
ICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4m
JiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURv
bWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
V1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFu
dGVkLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKSBmaW5hbDsKICNl
bmRpZgogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCmluZGV4IDY1NzM5YmI4YWE5NmRmZThjMmIwZTI2YzE3MWE5ZjliNzZiNzM0
MDkuLjcwOTgwZWU1YjViOGQ3MDM3ZTQ1YjNmMmFmM2UyYmIxZmEwMzk0YTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTIwLDcgKzEyMCw3IEBAIE9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPiBXZWJGcmFtZUxvYWRlckNsaWVudDo6cGFnZUlEKCkgY29uc3QKICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwogfQogCi1PcHRpb25hbDx1aW50NjRfdD4gV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmZyYW1lSUQoKSBjb25zdAorT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZnJhbWVJRCgpIGNvbnN0CiB7CiAgICAgaWYgKG1fZnJhbWUpCiAgICAg
ICAgIHJldHVybiBtX2ZyYW1lLT5mcmFtZUlEKCk7CkBAIC01NDYsNyArNTQ2LDcgQEAgdm9pZCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNvbnN0
IFJlc291cmNlRXJyb3ImIGUKICAgICBpZiAoIXdlYlBhZ2UpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIFJFTEVBU0VfTE9HKE5ldHdvcmssICIlcCAtIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCAiKSIsIHRoaXMsIHdlYlBhZ2UtPnBhZ2VJRCgpLnRvVUludDY0KCksIG1f
ZnJhbWUtPmZyYW1lSUQoKSk7CisgICAgUkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0gV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZDogKHBhZ2VJRCA9
ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIpIiwgdGhpcywgd2ViUGFnZS0+cGFn
ZUlEKCkudG9VSW50NjQoKSwgbV9mcmFtZS0+ZnJhbWVJRCgpLnRvVUludDY0KCkpOwogCiAgICAg
UmVmUHRyPEFQSTo6T2JqZWN0PiB1c2VyRGF0YTsKIApAQCAtNTgyLDcgKzU4Miw3IEBAIHZvaWQg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWQoY29uc3QgUmVzb3VyY2VF
cnJvciYgZXJyb3IpCiAgICAgaWYgKCF3ZWJQYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBS
RUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
aWRGYWlsTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIp
IiwgdGhpcywgd2ViUGFnZS0+cGFnZUlEKCkudG9VSW50NjQoKSwgbV9mcmFtZS0+ZnJhbWVJRCgp
KTsKKyAgICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEaWRGYWlsTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0ICIpIiwgdGhpcywgd2ViUGFnZS0+cGFnZUlEKCkudG9VSW50NjQoKSwgbV9mcmFtZS0+
ZnJhbWVJRCgpLnRvVUludDY0KCkpOwogCiAgICAgUmVmUHRyPEFQSTo6T2JqZWN0PiB1c2VyRGF0
YTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBjOGZiMmFmMjEyNTY2YzY0Njg2
MDc3YTBjODlhZjgxMDUzOTBhNjgwLi42NDFiOGMwNjYzNDEzODBjMDcwMjgyMGI4Nzg5ZGQxODVl
OGJiMDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtNTIsNyArNTIsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBhcHBseVRvRG9jdW1lbnRMb2FkZXIoV2Vic2l0ZVBvbGljaWVzRGF0
YSYmKTsKIAogICAgIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQoKSBj
b25zdCBmaW5hbDsKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCgpIGNvbnN0IGZpbmFs
OworICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCgpIGNvbnN0
IGZpbmFsOwogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IGZpbmFsOwogCiAj
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuY3BwCmluZGV4IDczOGJlOTJiOTJkYzcz
ZDJkZjY3N2VlMzRlYzEzMDgxYTYwZjFhMWMuLmY2YzU1N2Q1ZjBmZDIwMWRiYjUwNTExNDdlYmMy
NzBhNWI0NWNmM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkNvb2tpZUphci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViQ29va2llSmFyLmNwcApAQCAtNTAsNyArNTAsNyBAQCBXZWJDb29raWVKYXI6OldlYkNvb2tp
ZUphcigpCiAKIFN0cmluZyBXZWJDb29raWVKYXI6OmNvb2tpZXMoV2ViQ29yZTo6RG9jdW1lbnQm
IGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCkgY29uc3QKIHsKLSAgICBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQ7CiAgICAg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKICAgICBpZiAoYXV0byogZnJhbWUgPSBk
b2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGZyYW1lSUQgPSBmcmFtZS0+bG9hZGVyKCkuY2xp
ZW50KCkuZnJhbWVJRCgpOwpAQCAtNjcsNyArNjcsNyBAQCBTdHJpbmcgV2ViQ29va2llSmFyOjpj
b29raWVzKFdlYkNvcmU6OkRvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwpIGNvbnN0
CiAKIHZvaWQgV2ViQ29va2llSmFyOjpzZXRDb29raWVzKFdlYkNvcmU6OkRvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKQogewotICAg
IE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmll
cj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEOwogICAgIGlm
IChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKICAgICAgICAgZnJhbWVJRCA9IGZy
YW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CkBAIC04NSw3ICs4NSw3IEBAIGJvb2wg
V2ViQ29va2llSmFyOjpjb29raWVzRW5hYmxlZChjb25zdCBXZWJDb3JlOjpEb2N1bWVudCYgZG9j
dW1lbnQpIGNvbnN0CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3RkOjpwYWlyPFN0cmluZywg
V2ViQ29yZTo6U2VjdXJlQ29va2llc0FjY2Vzc2VkPiBXZWJDb29raWVKYXI6OmNvb2tpZVJlcXVl
c3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQsIGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUlu
Zm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8
UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5j
bHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CitzdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb3JlOjpTZWN1
cmVDb29raWVzQWNjZXNzZWQ+IFdlYkNvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxk
VmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJM
JiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+IHBhZ2VJRCwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNl
Y3VyZUNvb2tpZXMpIGNvbnN0CiB7CiAgICAgU3RyaW5nIGNvb2tpZVN0cmluZzsKICAgICBib29s
IHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCA9IGZhbHNlOwpAQCAtOTYsNyArOTYsNyBAQCBzdGQ6OnBh
aXI8U3RyaW5nLCBXZWJDb3JlOjpTZWN1cmVDb29raWVzQWNjZXNzZWQ+IFdlYkNvb2tpZUphcjo6
Y29va2llUmVxdWVzdEhlYQogCiBib29sIFdlYkNvb2tpZUphcjo6Z2V0UmF3Q29va2llcyhjb25z
dCBXZWJDb3JlOjpEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBWZWN0b3I8V2Vi
Q29yZTo6Q29va2llPiYgcmF3Q29va2llcykgY29uc3QKIHsKLSAgICBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQ7CiAgICAg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKICAgICBpZiAoYXV0byogZnJhbWUgPSBk
b2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGZyYW1lSUQgPSBmcmFtZS0+bG9hZGVyKCkuY2xp
ZW50KCkuZnJhbWVJRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViQ29va2llSmFyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJDb29raWVKYXIuaAppbmRleCA1NTliZDBlNTBiYmVjMzVmZmIyNTZiOTEyYjdiNDZkYTk5NGIy
ZDQ4Li41ZGNhY2RkOTY4ZTZhNGIwNjI3Yzc4N2M2ZGExYTUxNTQ3MWJmODhkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuaApAQCAtMzYsNyAr
MzYsNyBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGNvb2tpZXMoV2ViQ29yZTo6RG9jdW1lbnQmLCBj
b25zdCBVUkwmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHNldENvb2tpZXMoV2ViQ29yZTo6RG9j
dW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0cmluZykgZmluYWw7CiAg
ICAgYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBXZWJDb3JlOjpEb2N1bWVudCYpIGNvbnN0IGZp
bmFsOwotICAgIHN0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvcmU6OlNlY3VyZUNvb2tpZXNBY2Nlc3Nl
ZD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBj
b25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0
IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdl
SWRlbnRpZmllcj4sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdCBmaW5hbDsK
KyAgICBzdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb3JlOjpTZWN1cmVDb29raWVzQWNjZXNzZWQ+IGNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwm
LCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllcj4sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdCBmaW5h
bDsKICAgICBib29sIGdldFJhd0Nvb2tpZXMoY29uc3QgV2ViQ29yZTo6RG9jdW1lbnQmLCBjb25z
dCBVUkwmLCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQg
ZGVsZXRlQ29va2llKGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50JiwgY29uc3QgVVJMJiwgY29uc3Qg
U3RyaW5nJiBjb29raWVOYW1lKSBmaW5hbDsKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKaW5kZXggNjBjZmQ4ZDJhMTc1NGE3YWNlZDU4
ZDYxZGYxN2JlNGMxNDMxMzY5NC4uZjBlYmZlZGJiMmU5NTNhZDBmYzA3ZjlmODE2NjA5ZGI5NzM1
YjY2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJh
bWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNw
cApAQCAtOTUsMTIgKzk1LDYgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIERFRklORV9E
RUJVR19PTkxZX0dMT0JBTChXVEY6OlJlZkNvdW50ZWRMZWFrQ291bnRlciwgd2ViRnJhbWVDb3Vu
dGVyLCAoIldlYkZyYW1lIikpOwogCi1zdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVGcmFtZUlEKCkK
LXsKLSAgICBzdGF0aWMgdWludDY0X3QgdW5pcXVlRnJhbWVJRCA9IDE7Ci0gICAgcmV0dXJuIHVu
aXF1ZUZyYW1lSUQrKzsKLX0KLQogc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlTGlzdGVuZXJJRCgp
CiB7CiAgICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZUxpc3RlbmVySUQgPSAxOwpAQCAtMTQ4LDcg
KzE0Miw3IEBAIFJlZjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8
V2ViRnJhbWVMb2FkZXJDbGllbnQ+IGZyYW1lTG9hZGVyCiAKIFdlYkZyYW1lOjpXZWJGcmFtZShz
dGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+IGZyYW1lTG9hZGVyQ2xpZW50KQog
ICAgIDogbV9mcmFtZUxvYWRlckNsaWVudChXVEZNb3ZlKGZyYW1lTG9hZGVyQ2xpZW50KSkKLSAg
ICAsIG1fZnJhbWVJRChnZW5lcmF0ZUZyYW1lSUQoKSkKKyAgICAsIG1fZnJhbWVJRChGcmFtZUlk
ZW50aWZpZXI6OmdlbmVyYXRlKCkpCiB7CiAgICAgbV9mcmFtZUxvYWRlckNsaWVudC0+c2V0V2Vi
RnJhbWUodGhpcyk7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRkV2ViRnJhbWUobV9m
cmFtZUlELCB0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFt
ZS5oCmluZGV4IDcxYjM4ZjYxYWIxOTUwNTViNDQ3ZTg3YmZmZjdlOTY0MDZkZWVhOWMuLjFlYzUw
NzU0MjU3Zjg2NmViMmFlOGVjNGNiMGM2ZDFmZmU4NjU2ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaApAQCAtODAsNyArODAsNyBAQCBwdWJsaWM6CiAg
ICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29yZUZyYW1l
OyB9CiAKICAgICBGcmFtZUluZm9EYXRhIGluZm8oKSBjb25zdDsKLSAgICB1aW50NjRfdCBmcmFt
ZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KIAogICAgIGVudW0g
Y2xhc3MgRm9yTmF2aWdhdGlvbkFjdGlvbiB7IE5vLCBZZXMgfTsKICAgICB1aW50NjRfdCBzZXRV
cFBvbGljeUxpc3RlbmVyKFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6
RnJhbWVQb2xpY3lGdW5jdGlvbiYmLCBGb3JOYXZpZ2F0aW9uQWN0aW9uKTsKQEAgLTE4Nyw3ICsx
ODcsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJGcmFtZUxvYWRlckNsaWVu
dD4gbV9mcmFtZUxvYWRlckNsaWVudDsKICAgICBMb2FkTGlzdGVuZXIqIG1fbG9hZExpc3RlbmVy
IHsgbnVsbHB0ciB9OwogICAgIAotICAgIHVpbnQ2NF90IG1fZnJhbWVJRCB7IDAgfTsKKyAgICBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbV9mcmFtZUlEOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKICAgICB1aW50NjRfdCBtX2ZpcnN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JREFmdGVyRGlk
Q29tbWl0TG9hZCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJJbnNwZWN0b3IuY3BwCmluZGV4IGYyOGRlNTY4ZWM1MTVhNTFjMzhlMDljYWFjNDRlYTc3
ZjIxZDNkYmUuLjFmMDE2YWVhZGE5OTZmOTYzZGQ1ZTRlZmI5NmQwY2FmZTYwYWQ2MTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcApA
QCAtMjA5LDcgKzIwOSw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yOjpzaG93UmVzb3VyY2VzKCkKICAg
ICB9KTsKIH0KIAotdm9pZCBXZWJJbnNwZWN0b3I6OnNob3dNYWluUmVzb3VyY2VGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlkZW50aWZpZXIpCit2b2lkIFdlYkluc3BlY3Rvcjo6c2hvd01haW5SZXNv
dXJjZUZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlkZW50aWZpZXIpCiB7
CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUo
ZnJhbWVJZGVudGlmaWVyKTsKICAgICBpZiAoIWZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuaAppbmRleCA0ODllNDFjMDc0ZmMzNjNiMzgw
MTE2MTdiNGM3NTgyNGRmNTlkNDdiLi4yNmI4OWU1MjI3Nzk3OGQ1M2EzM2ZlM2M3MTE1ZWFlYmJi
MzgyOTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJ
bnNwZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNw
ZWN0b3IuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1
ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC02MCw3ICs2MSw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNob3dDb25zb2xlKCk7CiAgICAgdm9pZCBzaG93UmVzb3VyY2VzKCk7
CiAKLSAgICB2b2lkIHNob3dNYWluUmVzb3VyY2VGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlkZW50
aWZpZXIpOworICAgIHZvaWQgc2hvd01haW5SZXNvdXJjZUZvckZyYW1lKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcik7CiAKICAgICB2b2lkIHNldEF0dGFjaGVkKGJvb2wgYXR0YWNoZWQpIHsgbV9h
dHRhY2hlZCA9IGF0dGFjaGVkOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbgppbmRleCBiNmYzYzAxYjI0
MjIyNmEyMGZiNDljNTQyMjAzYTZkY2RlMjIxZTY5Li5kYWY3NGI1ZTZiMDQzMGI2YjBjYTNiZTI2
MGY1ZmZhYmVjZDY1NDg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJJbnNwZWN0b3IubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLm1lc3NhZ2VzLmluCkBAIC0yOSw3ICsyOSw3IEBAIG1l
c3NhZ2VzIC0+IFdlYkluc3BlY3RvciB7CiAgICAgU2hvd0NvbnNvbGUoKQogICAgIFNob3dSZXNv
dXJjZXMoKQogCi0gICAgU2hvd01haW5SZXNvdXJjZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSWRl
bnRpZmllcikKKyAgICBTaG93TWFpblJlc291cmNlRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSWRlbnRpZmllcikKIAogICAgIE9wZW5Jbk5ld1RhYihTdHJpbmcgdXJsKQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDEz
MzY1NzBkOTNhYTUxMTA2OTc4NTYxMTcwMjYwODkzYjhhM2NkYjQuLjAxZmYxYTRmNDU3ZTUzOTM1
NjE0MzI0YTA5NDg4NDAzYTc1MDU1YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xNDk3LDcgKzE0OTcsNyBAQCB2b2lkIFdlYlBhZ2U6OnN1
c3BlbmRGb3JQcm9jZXNzU3dhcCgpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpE
aWRTdXNwZW5kQWZ0ZXJQcm9jZXNzU3dhcCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpsb2FkVVJM
SW5GcmFtZShVUkwmJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIHVpbnQ2NF90IGZyYW1l
SUQpCit2b2lkIFdlYlBhZ2U6OmxvYWRVUkxJbkZyYW1lKFVSTCYmIHVybCwgY29uc3QgU3RyaW5n
JiByZWZlcnJlciwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgV2ViRnJhbWUqIGZy
YW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYg
KCFmcmFtZSkKQEAgLTE1MDYsNyArMTUwNiw3IEBAIHZvaWQgV2ViUGFnZTo6bG9hZFVSTEluRnJh
bWUoVVJMJiYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCB1aW50NjRfdCBmcmFtZUlECiAg
ICAgZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5sb2FkKEZyYW1lTG9hZFJlcXVlc3QoKmZy
YW1lLT5jb3JlRnJhbWUoKSwgUmVzb3VyY2VSZXF1ZXN0KHVybCwgcmVmZXJyZXIpLCBTaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdykpOwogfQogCi12b2lkIFdlYlBh
Z2U6OmxvYWREYXRhSW5GcmFtZShJUEM6OkRhdGFSZWZlcmVuY2UmJiBkYXRhLCBTdHJpbmcmJiBN
SU1FVHlwZSwgU3RyaW5nJiYgZW5jb2RpbmdOYW1lLCBVUkwmJiBiYXNlVVJMLCB1aW50NjRfdCBm
cmFtZUlEKQordm9pZCBXZWJQYWdlOjpsb2FkRGF0YUluRnJhbWUoSVBDOjpEYXRhUmVmZXJlbmNl
JiYgZGF0YSwgU3RyaW5nJiYgTUlNRVR5cGUsIFN0cmluZyYmIGVuY29kaW5nTmFtZSwgVVJMJiYg
YmFzZVVSTCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgV2ViRnJhbWUqIGZyYW1l
ID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCFm
cmFtZSkKQEAgLTE2MTQsNyArMTYxNCw3IEBAIHZvaWQgV2ViUGFnZTo6bmF2aWdhdGVUb1BERkxp
bmtXaXRoU2ltdWxhdGVkQ2xpY2soY29uc3QgU3RyaW5nJiB1cmwsIEludFBvaW50IGRvCiAgICAg
bWFpbkZyYW1lLT5sb2FkZXIoKS51cmxTZWxlY3RlZChtYWluRnJhbWVEb2N1bWVudC0+Y29tcGxl
dGVVUkwodXJsKSwgZW1wdHlTdHJpbmcoKSwgbW91c2VFdmVudC5wdHIoKSwgTG9ja0hpc3Rvcnk6
Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgU2hvdWxkU2VuZFJlZmVycmVyOjpOZXZlclNl
bmRSZWZlcnJlciwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cp
OwogfQogCi12b2lkIFdlYlBhZ2U6OnN0b3BMb2FkaW5nRnJhbWUodWludDY0X3QgZnJhbWVJRCkK
K3ZvaWQgV2ViUGFnZTo6c3RvcExvYWRpbmdGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkK
IHsKICAgICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFt
ZShmcmFtZUlEKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtMzIzNCw3ICszMjM0LDcgQEAgdm9pZCBX
ZWJQYWdlOjpzZXRTZXNzaW9uSUQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIG1fcGFn
ZS0+c2V0U2Vzc2lvbklEKHNlc3Npb25JRCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2
ZVBvbGljeURlY2lzaW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFBv
bGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9u
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IERvd25sb2FkSUQmIGRvd25sb2FkSUQsIE9w
dGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzKQordm9pZCBXZWJQ
YWdlOjpkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVp
bnQ2NF90IGxpc3RlbmVySUQsIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBQb2xp
Y3lBY3Rpb24gcG9saWN5QWN0aW9uLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IERvd25s
b2FkSUQmIGRvd25sb2FkSUQsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0
ZVBvbGljaWVzKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlmICghZnJhbWUpCkBAIC0zMjQyLDcgKzMyNDIs
NyBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbih1aW50NjRfdCBmcmFt
ZUlELCB1aW50NjRfdCBsaXN0ZW5lcklELCBQbwogICAgIGZyYW1lLT5kaWRSZWNlaXZlUG9saWN5
RGVjaXNpb24obGlzdGVuZXJJRCwgaWRlbnRpZmllciwgcG9saWN5QWN0aW9uLCBuYXZpZ2F0aW9u
SUQsIGRvd25sb2FkSUQsIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7CiB9CiAKLXZvaWQgV2Vi
UGFnZTo6Y29udGludWVXaWxsU3VibWl0Rm9ybSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBs
aXN0ZW5lcklEKQordm9pZCBXZWJQYWdlOjpjb250aW51ZVdpbGxTdWJtaXRGb3JtKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBsaXN0ZW5lcklEKQogewogICAgIFdlYkZyYW1lKiBm
cmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlm
ICghZnJhbWUpCkBAIC0zMzg0LDcgKzMzODQsNyBAQCB2b2lkIFdlYlBhZ2U6OnJ1bkphdmFTY3Jp
cHRJbk1haW5GcmFtZVNjcmlwdFdvcmxkKGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib29sIGZvcgog
ICAgIHJ1bkphdmFTY3JpcHQobWFpbldlYkZyYW1lKCksIHNjcmlwdCwgZm9yY2VVc2VyR2VzdHVy
ZSwgd29ybGROYW1lLCBjYWxsYmFja0lEKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpydW5KYXZhU2Ny
aXB0SW5GcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHNjcmlwdCwgYm9vbCBm
b3JjZVVzZXJHZXN0dXJlLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYlBhZ2U6OnJ1
bkphdmFTY3JpcHRJbkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcm
IHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7
CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUo
ZnJhbWVJRCk7CiAgICAgQVNTRVJUKG1haW5XZWJGcmFtZSgpICE9IGZyYW1lKTsKQEAgLTM0NDUs
NyArMzQ0NSw3IEBAIHZvaWQgV2ViUGFnZTo6Z2V0U2VsZWN0aW9uT3JDb250ZW50c0FzU3RyaW5n
KENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlN0cmluZ0NhbGxiYWNrKHJlc3VsdFN0cmluZywgY2FsbGJhY2tJRCkpOwogfQogCi12b2lkIFdl
YlBhZ2U6OmdldFNvdXJjZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENhbGxiYWNrSUQgY2Fs
bGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6Z2V0U291cmNlRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBTdHJpbmcgcmVzdWx0U3Ry
aW5nOwogICAgIGlmIChXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53
ZWJGcmFtZShmcmFtZUlEKSkKQEAgLTM0NTQsNyArMzQ1NCw3IEBAIHZvaWQgV2ViUGFnZTo6Z2V0
U291cmNlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQog
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3RyaW5nQ2FsbGJhY2socmVzdWx0U3Ry
aW5nLCBjYWxsYmFja0lEKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6Z2V0TWFpblJlc291cmNlRGF0
YU9mRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBX
ZWJQYWdlOjpnZXRNYWluUmVzb3VyY2VEYXRhT2ZGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1
ZmZlcjsKICAgICBpZiAoV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
d2ViRnJhbWUoZnJhbWVJRCkpIHsKQEAgLTM0ODUsNyArMzQ4NSw3IEBAIHN0YXRpYyBSZWZQdHI8
U2hhcmVkQnVmZmVyPiByZXNvdXJjZURhdGFGb3JGcmFtZShGcmFtZSogZnJhbWUsIGNvbnN0IFVS
TCYgcmVzb3VyCiAgICAgcmV0dXJuICZzdWJyZXNvdXJjZS0+ZGF0YSgpOwogfQogCi12b2lkIFdl
YlBhZ2U6OmdldFJlc291cmNlRGF0YUZyb21GcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBT
dHJpbmcmIHJlc291cmNlVVJMU3RyaW5nLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdl
YlBhZ2U6OmdldFJlc291cmNlRGF0YUZyb21GcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
Y29uc3QgU3RyaW5nJiByZXNvdXJjZVVSTFN0cmluZywgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQog
ewogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlcjsKICAgICBpZiAoYXV0byogZnJhbWUg
PSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSkgewpAQCAtMzQ5OSw3
ICszNDk5LDcgQEAgdm9pZCBXZWJQYWdlOjpnZXRSZXNvdXJjZURhdGFGcm9tRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiByZXNvdXJjZVUKICAgICBzZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkRhdGFDYWxsYmFjayhkYXRhUmVmZXJlbmNlLCBjYWxsYmFja0lEKSk7CiB9
CiAKLXZvaWQgV2ViUGFnZTo6Z2V0V2ViQXJjaGl2ZU9mRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdlOjpnZXRXZWJBcmNoaXZlT2ZGcmFt
ZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogI2lm
IFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IGRhdGE7CkBAIC0zODAy
LDEzICszODAyLDEzIEBAIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyKiBXZWJQYWdlOjpmdWxsU2NyZWVu
TWFuYWdlcigpCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdlOjphZGRDb25zb2xlTWVzc2FnZSh1
aW50NjRfdCBmcmFtZUlELCBNZXNzYWdlU291cmNlIG1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZl
bCBtZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdWludDY0X3QgcmVxdWVzdElE
KQordm9pZCBXZWJQYWdlOjphZGRDb25zb2xlTWVzc2FnZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgTWVzc2FnZVNvdXJjZSBtZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwgbWVzc2FnZUxldmVs
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVpbnQ2NF90IHJlcXVlc3RJRCkKIHsKICAgICBpZiAo
YXV0byogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSkK
ICAgICAgICAgZnJhbWUtPmFkZENvbnNvbGVNZXNzYWdlKG1lc3NhZ2VTb3VyY2UsIG1lc3NhZ2VM
ZXZlbCwgbWVzc2FnZSwgcmVxdWVzdElEKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpzZW5kQ1NQVmlv
bGF0aW9uUmVwb3J0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBJUEM6
OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVwb3J0RGF0YSkKK3ZvaWQgV2ViUGFnZTo6c2VuZENTUFZp
b2xhdGlvblJlcG9ydChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgVVJMJiByZXBvcnRV
UkwsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXBvcnREYXRhKQogewogICAgIGF1dG8gcmVw
b3J0ID0gcmVwb3J0RGF0YS50YWtlRGF0YSgpOwogICAgIGlmICghcmVwb3J0KQpAQCAtMzgxNyw3
ICszODE3LDcgQEAgdm9pZCBXZWJQYWdlOjpzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBJUEMKICAgICAgICAgUGluZ0xvYWRlcjo6
c2VuZFZpb2xhdGlvblJlcG9ydCgqZnJhbWUtPmNvcmVGcmFtZSgpLCByZXBvcnRVUkwsIHJlcG9y
dC5yZWxlYXNlTm9uTnVsbCgpLCBWaW9sYXRpb25SZXBvcnRUeXBlOjpDb250ZW50U2VjdXJpdHlQ
b2xpY3kpOwogfQogCi12b2lkIFdlYlBhZ2U6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlv
bkV2ZW50KHVpbnQ2NF90IGZyYW1lSUQsIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6Oklu
aXQmJiBldmVudEluaXQpCit2b2lkIFdlYlBhZ2U6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xh
dGlvbkV2ZW50KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTZWN1cml0eVBvbGljeVZpb2xhdGlv
bkV2ZW50OjpJbml0JiYgZXZlbnRJbml0KQogewogICAgIGF1dG8qIGZyYW1lID0gV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCFmcmFtZSkKQEAgLTQ2
ODAsNyArNDY4MCw3IEBAIHZvaWQgV2ViUGFnZTo6ZWZmZWN0aXZlQXBwZWFyYW5jZURpZENoYW5n
ZShib29sIHVzZURhcmtBcHBlYXJhbmNlLCBib29sIHVzZUVsZXZhCiB9CiAjZW5kaWYKIAotdm9p
ZCBXZWJQYWdlOjpiZWdpblByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5m
byYgcHJpbnRJbmZvKQordm9pZCBXZWJQYWdlOjpiZWdpblByaW50aW5nKEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbykKIHsKICAgICBXZWJGcmFtZSog
ZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBp
ZiAoIWZyYW1lKQpAQCAtNDcyNCw3ICs0NzI0LDcgQEAgdm9pZCBXZWJQYWdlOjplbmRQcmludGlu
ZygpCiAgICAgfQogfQogCi12b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nKHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBDYWxsYmFja0lEIGNh
bGxiYWNrSUQpCit2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgQ2FsbGJhY2tJRCBj
YWxsYmFja0lEKQogewogICAgIFZlY3RvcjxJbnRSZWN0PiByZXN1bHRQYWdlUmVjdHM7CiAgICAg
ZG91YmxlIHJlc3VsdFRvdGFsU2NhbGVGYWN0b3JGb3JQcmludGluZyA9IDE7CkBAIC00NzMzLDcg
KzQ3MzMsNyBAQCB2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbgogICAgIHNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6Q29tcHV0ZWRQYWdlc0NhbGxiYWNrKHJlc3VsdFBhZ2VSZWN0cywgcmVzdWx0
VG90YWxTY2FsZUZhY3RvckZvclByaW50aW5nLCBjb21wdXRlZFBhZ2VNYXJnaW4sIGNhbGxiYWNr
SUQpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZ0ltcGwodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIFZlY3RvcjxXZWJDb3Jl
OjpJbnRSZWN0PiYgcmVzdWx0UGFnZVJlY3RzLCBkb3VibGUmIHJlc3VsdFRvdGFsU2NhbGVGYWN0
b3JGb3JQcmludGluZywgRmxvYXRCb3hFeHRlbnQmIGNvbXB1dGVkUGFnZU1hcmdpbikKK3ZvaWQg
V2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdJbXBsKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+
JiByZXN1bHRQYWdlUmVjdHMsIGRvdWJsZSYgcmVzdWx0VG90YWxTY2FsZUZhY3RvckZvclByaW50
aW5nLCBGbG9hdEJveEV4dGVudCYgY29tcHV0ZWRQYWdlTWFyZ2luKQogewogICAgIEFTU0VSVChy
ZXN1bHRQYWdlUmVjdHMuaXNFbXB0eSgpKTsKIApAQCAtNDc1Niw3ICs0NzU2LDcgQEAgdm9pZCBX
ZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZ0ltcGwodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgUHJpbnRJbmZvJiBwcmkKIH0KIAogI2lmIFBMQVRGT1JNKENPQ09BKQotdm9pZCBXZWJQYWdl
OjpkcmF3UmVjdFRvSW1hZ2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmlu
dEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGltYWdl
U2l6ZSwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdlOjpkcmF3UmVjdFRvSW1h
Z2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBj
b25zdCBJbnRSZWN0JiByZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBpbWFnZVNpemUsIENh
bGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBGcmFtZSogY29yZUZyYW1lID0g
ZnJhbWUgPyBmcmFtZS0+Y29yZUZyYW1lKCkgOiAwOwpAQCAtNDgwNiwxNCArNDgwNiwxNCBAQCB2
b2lkIFdlYlBhZ2U6OmRyYXdSZWN0VG9JbWFnZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmlu
dEluZm8mIHByaW50SW5mbywgY29ucwogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
SW1hZ2VDYWxsYmFjayhoYW5kbGUsIGNhbGxiYWNrSUQpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpk
cmF3UGFnZXNUb1BERih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5m
bywgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBDYWxsYmFja0lEIGNhbGxiYWNrSUQp
Cit2b2lkIFdlYlBhZ2U6OmRyYXdQYWdlc1RvUERGKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBj
b25zdCBQcmludEluZm8mIHByaW50SW5mbywgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50
LCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgUmV0YWluUHRyPENGTXV0YWJsZURhdGFS
ZWY+IHBkZlBhZ2VEYXRhOwogICAgIGRyYXdQYWdlc1RvUERGSW1wbChmcmFtZUlELCBwcmludElu
Zm8sIGZpcnN0LCBjb3VudCwgcGRmUGFnZURhdGEpOwogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6RGF0YUNhbGxiYWNrKHsgQ0ZEYXRhR2V0Qnl0ZVB0cihwZGZQYWdlRGF0YS5nZXQo
KSksIHN0YXRpY19jYXN0PHNpemVfdD4oQ0ZEYXRhR2V0TGVuZ3RoKHBkZlBhZ2VEYXRhLmdldCgp
KSkgfSwgY2FsbGJhY2tJRCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OmRyYXdQYWdlc1RvUERGSW1w
bCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgdWludDMyX3Qg
Zmlyc3QsIHVpbnQzMl90IGNvdW50LCBSZXRhaW5QdHI8Q0ZNdXRhYmxlRGF0YVJlZj4mIHBkZlBh
Z2VEYXRhKQordm9pZCBXZWJQYWdlOjpkcmF3UGFnZXNUb1BERkltcGwoRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCB1aW50MzJfdCBmaXJzdCwgdWlu
dDMyX3QgY291bnQsIFJldGFpblB0cjxDRk11dGFibGVEYXRhUmVmPiYgcGRmUGFnZURhdGEpCiB7
CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUo
ZnJhbWVJRCk7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGZyYW1lID8gZnJhbWUtPmNvcmVGcmFt
ZSgpIDogMDsKQEAgLTQ4NjQsNyArNDg2NCw3IEBAIHZvaWQgV2ViUGFnZTo6ZHJhd1BhZ2VzVG9Q
REZJbXBsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCB1CiB9
CiAKICNlbGlmIFBMQVRGT1JNKEdUSykKLXZvaWQgV2ViUGFnZTo6ZHJhd1BhZ2VzRm9yUHJpbnRp
bmcodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIENhbGxiYWNr
SUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6ZHJhd1BhZ2VzRm9yUHJpbnRpbmcoRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBDYWxsYmFja0lE
IGNhbGxiYWNrSUQpCiB7CiAgICAgYmVnaW5QcmludGluZyhmcmFtZUlELCBwcmludEluZm8pOwog
ICAgIGlmIChtX3ByaW50Q29udGV4dCAmJiBtX3ByaW50T3BlcmF0aW9uKSB7CkBAIC02NTAyLDcg
KzY1MDIsNyBAQCB2b2lkIFdlYlBhZ2U6OnNldElzU3VzcGVuZGVkKGJvb2wgc3VzcGVuZGVkKQog
ICAgIHN1c3BlbmRGb3JQcm9jZXNzU3dhcCgpOwogfQogCi12b2lkIFdlYlBhZ2U6OmZyYW1lQmVj
YW1lUmVtb3RlKHVpbnQ2NF90IGZyYW1lSUQsIEdsb2JhbEZyYW1lSWRlbnRpZmllciYmIHJlbW90
ZUZyYW1lSWRlbnRpZmllciwgR2xvYmFsV2luZG93SWRlbnRpZmllciYmIHJlbW90ZVdpbmRvd0lk
ZW50aWZpZXIpCit2b2lkIFdlYlBhZ2U6OmZyYW1lQmVjYW1lUmVtb3RlKEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBHbG9iYWxGcmFtZUlkZW50aWZpZXImJiByZW1vdGVGcmFtZUlkZW50aWZpZXIs
IEdsb2JhbFdpbmRvd0lkZW50aWZpZXImJiByZW1vdGVXaW5kb3dJZGVudGlmaWVyKQogewogICAg
IFJlZlB0cjxXZWJGcmFtZT4gZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFt
ZShmcmFtZUlEKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtNjUzNCwxMiArNjUzNCwxMiBAQCB2b2lk
IFdlYlBhZ2U6OmZyYW1lQmVjYW1lUmVtb3RlKHVpbnQ2NF90IGZyYW1lSUQsIEdsb2JhbEZyYW1l
SWRlbnRpZmllciYmIHJlbW90ZQogfQogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykKLXZvaWQgV2ViUGFnZTo6aGFzU3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYm
IHN1YkZyYW1lRG9tYWluLCBSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCB1aW50
NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQordm9pZCBXZWJQYWdlOjpoYXNTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWlu
JiYgc3ViRnJhbWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpIYXNTdG9yYWdlQWNjZXNz
KHNlc3Npb25JRCgpLCBXVEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0b3BGcmFtZURv
bWFpbiksIGZyYW1lSUQsIG1fcGFnZUlEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwog
fQogCi12b2lkIFdlYlBhZ2U6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWlu
JiYgc3ViRnJhbWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIHVp
bnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFj
Y2Vzc1dhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2U6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFJl
Z2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluJiYgdG9w
RnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBXZWJDb3JlOjpTdG9yYWdlQWNj
ZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rp
b24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpSZXF1ZXN0U3RvcmFnZUFjY2VzcyhzZXNzaW9uSUQoKSwgV1RGTW92ZShzdWJGcmFt
ZURvbWFpbiksIFdURk1vdmUodG9wRnJhbWVEb21haW4pLCBmcmFtZUlELCBtX3BhZ2VJRCksIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KQEAgLTY1NTUsNyArNjU1NSw3IEBAIHZvaWQg
V2ViUGFnZTo6d2FzTG9hZGVkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxlbnRSZXNvdXJjZSgp
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi12b2lkIFdlYlBhZ2U6
OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ModWludDY0X3QgZnJh
bWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgb3JpZ2luLCBib29sIG1heVByb21w
dCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlz
c2lvblN0YXRlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZTo6c2hvdWxkQWxs
b3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgb3JpZ2luLCBib29sIG1heVByb21wdCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lv
blN0YXRlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBzZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1v
dGlvbkFjY2VzcyhmcmFtZUlELCBXVEZNb3ZlKG9yaWdpbiksIG1heVByb21wdCksIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAppbmRleCA3MDk5MjcwMTQyNDNjMTEyOGZmNmZhYzllNGVhOTJkZDY1MTIyYzZm
Li4xZDk3MWY0YTMzODYxMWU5NDA5YjM0ZjFlODFkZWU1MGM3NjJmY2JkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0zNDYsOSArMzQ2LDkgQEAgcHVi
bGljOgogICAgIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyKiBmdWxsU2NyZWVuTWFuYWdlcigpOwogI2Vu
ZGlmCiAKLSAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKHVpbnQ2NF90IGZyYW1lSUQsIE1lc3Nh
Z2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiwgdWludDY0X3QgcmVxdWVzdElE
ID0gMCk7Ci0gICAgdm9pZCBzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYpOwotICAgIHZv
aWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQodWludDY0X3QgZnJhbWVJRCwg
V2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmKTsKKyAgICB2b2lk
IGFkZENvbnNvbGVNZXNzYWdlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgTWVzc2FnZVNvdXJj
ZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmLCB1aW50NjRfdCByZXF1ZXN0SUQgPSAwKTsK
KyAgICB2b2lkIHNlbmRDU1BWaW9sYXRpb25SZXBvcnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmKTsKKyAgICB2
b2lkIGVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmKTsK
IAogICAgIC8vIC0tIENhbGxlZCBieSB0aGUgRHJhd2luZ0FyZWEuCiAgICAgLy8gRklYTUU6IFdl
IGNvdWxkIGdlbmVyaWNpemUgdGhlc2UgaW50byBhIERyYXdpbmdBcmVhIGNsaWVudCBpbnRlcmZh
Y2UuIFdvdWxkIHRoYXQgYmUgYmVuZWZpY2lhbD8KQEAgLTUyMiw3ICs1MjIsNyBAQCBwdWJsaWM6
CiAgICAgV2ViQ29yZTo6Q29sb3IgdW5kZXJsYXlDb2xvcigpIGNvbnN0IHsgcmV0dXJuIG1fdW5k
ZXJsYXlDb2xvcjsgfQogCiAgICAgdm9pZCBzdG9wTG9hZGluZygpOwotICAgIHZvaWQgc3RvcExv
YWRpbmdGcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsKKyAgICB2b2lkIHN0b3BMb2FkaW5nRnJhbWUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICAgICBib29sIGRlZmVyc0xvYWRpbmcoKSBjb25z
dDsKICAgICB2b2lkIHNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlckxvYWRpbmcpOwogCkBAIC03
NjksNyArNzY5LDcgQEAgcHVibGljOgogICAgIHZvaWQgY29uZmlybUNvbXBvc2l0aW9uKGNvbnN0
IFN0cmluZyYgdGV4dCwgaW50NjRfdCBzZWxlY3Rpb25TdGFydCwgaW50NjRfdCBzZWxlY3Rpb25M
ZW5ndGgpOwogICAgIHZvaWQgY2FuY2VsQ29tcG9zaXRpb24oKTsKIAotICAgIHZvaWQgY29sbGFw
c2VTZWxlY3Rpb25JbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpOworICAgIHZvaWQgY29sbGFwc2VT
ZWxlY3Rpb25JbkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAgICAgdm9pZCBzaG93
RW1vamlQaWNrZXIoV2ViQ29yZTo6RnJhbWUmKTsKIAogICAgIHZvaWQgZ2V0Q2VudGVyRm9yWm9v
bUdlc3R1cmUoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNlbnRlckluVmlld0Nvb3JkaW5hdGVz
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkludFBvaW50JiYpPiYmKTsKQEAgLTg2
MiwyMyArODYyLDIzIEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uIGFs
bG93ZWREcmFnU291cmNlQWN0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dlZERyYWdTb3Vy
Y2VBY3Rpb25zOyB9CiAjZW5kaWYKIAotICAgIHZvaWQgYmVnaW5QcmludGluZyh1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBQcmludEluZm8mKTsKKyAgICB2b2lkIGJlZ2luUHJpbnRpbmcoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mKTsKICAgICB2b2lkIGVuZFByaW50
aW5nKCk7Ci0gICAgdm9pZCBjb21wdXRlUGFnZXNGb3JQcmludGluZyh1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBQcmludEluZm8mLCBDYWxsYmFja0lEKTsKLSAgICB2b2lkIGNvbXB1dGVQYWdlc0Zv
clByaW50aW5nSW1wbCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mLCBWZWN0b3I8
V2ViQ29yZTo6SW50UmVjdD4mIHBhZ2VSZWN0cywgZG91YmxlJiB0b3RhbFNjYWxlRmFjdG9yLCBX
ZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgY29tcHV0ZWRNYXJnaW4pOworICAgIHZvaWQgY29tcHV0
ZVBhZ2VzRm9yUHJpbnRpbmcoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmludElu
Zm8mLCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nSW1wbChX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYsIFZlY3RvcjxXZWJDb3Jl
OjpJbnRSZWN0PiYgcGFnZVJlY3RzLCBkb3VibGUmIHRvdGFsU2NhbGVGYWN0b3IsIFdlYkNvcmU6
OkZsb2F0Qm94RXh0ZW50JiBjb21wdXRlZE1hcmdpbik7CiAKICNpZiBQTEFURk9STShDT0NPQSkK
LSAgICB2b2lkIGRyYXdSZWN0VG9JbWFnZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludElu
Zm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIENh
bGxiYWNrSUQpOwotICAgIHZvaWQgZHJhd1BhZ2VzVG9QREYodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgUHJpbnRJbmZvJiwgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBDYWxsYmFja0lE
KTsKLSAgICB2b2lkIGRyYXdQYWdlc1RvUERGSW1wbCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQ
cmludEluZm8mLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIFJldGFpblB0cjxDRk11
dGFibGVEYXRhUmVmPiYgcGRmUGFnZURhdGEpOworICAgIHZvaWQgZHJhd1JlY3RUb0ltYWdlKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBDYWxsYmFja0lEKTsKKyAgICB2b2lk
IGRyYXdQYWdlc1RvUERGKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZv
JiwgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBDYWxsYmFja0lEKTsKKyAgICB2b2lk
IGRyYXdQYWdlc1RvUERGSW1wbChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50
SW5mbyYsIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgUmV0YWluUHRyPENGTXV0YWJs
ZURhdGFSZWY+JiBwZGZQYWdlRGF0YSk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCi0gICAgdm9pZCBjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERih1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mLCBDYWxsYmFja0lELCBNZXNzYWdlczo6V2ViUGFn
ZTo6Q29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREY6OkRlbGF5ZWRSZXBseSYmKTsK
KyAgICB2b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgQ2FsbGJhY2tJRCwgTWVzc2FnZXM6Oldl
YlBhZ2U6OkNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGOjpEZWxheWVkUmVwbHkm
Jik7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykKLSAgICB2b2lkIGRyYXdQYWdlc0ZvclBy
aW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIENhbGxiYWNrSUQpOwor
ICAgIHZvaWQgZHJhd1BhZ2VzRm9yUHJpbnRpbmcoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBj
b25zdCBQcmludEluZm8mLCBDYWxsYmFja0lEKTsKICAgICB2b2lkIGRpZEZpbmlzaFByaW50T3Bl
cmF0aW9uKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBDYWxsYmFja0lEKTsKICNlbmRp
ZgogCkBAIC0xMTMxLDEzICsxMTMxLDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIGZsdXNoUGVuZGlu
Z0VkaXRvclN0YXRlVXBkYXRlKCk7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKQotICAgIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biYmIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1l
RG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KTsKLSAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluJiYgc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJh
bWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29y
ZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93bik+JiYpOworICAgIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYm
IHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBXZWJD
b3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKTsKICAgICB2b2lkIHdhc0xvYWRl
ZFdpdGhEYXRhVHJhbnNmZXJGcm9tUHJldmFsZW50UmVzb3VyY2UoKTsKICNlbmRpZgogCiAjaWYg
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSAgICB2b2lkIHNob3VsZEFsbG93RGV2aWNlT3Jp
ZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ModWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiYsIGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmKTsKKyAg
ICB2b2lkIHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgYm9vbCBt
YXlQcm9tcHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRp
b25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+JiYpOwogI2VuZGlmCiAKICAgICB2b2lkIHNob3dT
aGFyZVNoZWV0KFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKTsKQEAgLTEzNTYsOCArMTM1Niw4IEBAIHByaXZh
dGU6CiAgICAgc3RhdGljIGJvb2wgc2Nyb2xsKFdlYkNvcmU6OlBhZ2UqLCBXZWJDb3JlOjpTY3Jv
bGxEaXJlY3Rpb24sIFdlYkNvcmU6OlNjcm9sbEdyYW51bGFyaXR5KTsKICAgICBzdGF0aWMgYm9v
bCBsb2dpY2FsU2Nyb2xsKFdlYkNvcmU6OlBhZ2UqLCBXZWJDb3JlOjpTY3JvbGxMb2dpY2FsRGly
ZWN0aW9uLCBXZWJDb3JlOjpTY3JvbGxHcmFudWxhcml0eSk7CiAKLSAgICB2b2lkIGxvYWRVUkxJ
bkZyYW1lKFVSTCYmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCB1aW50NjRfdCBmcmFtZUlEKTsK
LSAgICB2b2lkIGxvYWREYXRhSW5GcmFtZShJUEM6OkRhdGFSZWZlcmVuY2UmJiwgU3RyaW5nJiYg
TUlNRVR5cGUsIFN0cmluZyYmIGVuY29kaW5nTmFtZSwgVVJMJiYgYmFzZVVSTCwgdWludDY0X3Qg
ZnJhbWVJRCk7CisgICAgdm9pZCBsb2FkVVJMSW5GcmFtZShVUkwmJiwgY29uc3QgU3RyaW5nJiBy
ZWZlcnJlciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGxvYWREYXRhSW5G
cmFtZShJUEM6OkRhdGFSZWZlcmVuY2UmJiwgU3RyaW5nJiYgTUlNRVR5cGUsIFN0cmluZyYmIGVu
Y29kaW5nTmFtZSwgVVJMJiYgYmFzZVVSTCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKIAog
ICAgIGVudW0gY2xhc3MgV2FzUmVzdG9yZWRCeUFQSVJlcXVlc3QgeyBObywgWWVzIH07CiAgICAg
dm9pZCByZXN0b3JlU2Vzc2lvbkludGVybmFsKGNvbnN0IFZlY3RvcjxCYWNrRm9yd2FyZExpc3RJ
dGVtU3RhdGU+JiwgV2FzUmVzdG9yZWRCeUFQSVJlcXVlc3QsIFdlYkJhY2tGb3J3YXJkTGlzdFBy
b3h5OjpPdmVyd3JpdGVFeGlzdGluZ0l0ZW0pOwpAQCAtMTM4OSwxNiArMTM4OSwxNiBAQCBwcml2
YXRlOgogI2lmIEVOQUJMRShNSFRNTCkKICAgICB2b2lkIGdldENvbnRlbnRzQXNNSFRNTERhdGEo
Q2FsbGJhY2tJRCk7CiAjZW5kaWYKLSAgICB2b2lkIGdldE1haW5SZXNvdXJjZURhdGFPZkZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIENhbGxiYWNrSUQpOwotICAgIHZvaWQgZ2V0UmVzb3VyY2VEYXRh
RnJvbUZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VVUkwsIENh
bGxiYWNrSUQpOworICAgIHZvaWQgZ2V0TWFpblJlc291cmNlRGF0YU9mRnJhbWUoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIGdldFJlc291cmNlRGF0YUZy
b21GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VV
UkwsIENhbGxiYWNrSUQpOwogICAgIHZvaWQgZ2V0UmVuZGVyVHJlZUV4dGVybmFsUmVwcmVzZW50
YXRpb24oQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBnZXRTZWxlY3Rpb25PckNvbnRlbnRzQXNTdHJp
bmcoQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBnZXRTZWxlY3Rpb25Bc1dlYkFyY2hpdmVEYXRhKENh
bGxiYWNrSUQpOwotICAgIHZvaWQgZ2V0U291cmNlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
Q2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBnZXRXZWJBcmNoaXZlT2ZGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIGdldFNvdXJjZUZvckZyYW1lKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBnZXRXZWJBcmNoaXZlT2ZGcmFt
ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENhbGxiYWNrSUQpOwogICAgIHZvaWQgcnVuSmF2
YVNjcmlwdChXZWJGcmFtZSosIGNvbnN0IFN0cmluZyYsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwg
Y29uc3QgT3B0aW9uYWw8U3RyaW5nPiYgd29ybGROYW1lLCBDYWxsYmFja0lEKTsKICAgICB2b2lk
IHJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZVNjcmlwdFdvcmxkKGNvbnN0IFN0cmluZyYsIGJvb2wg
Zm9yY2VVc2VyR2VzdHVyZSwgY29uc3QgT3B0aW9uYWw8U3RyaW5nPiYgd29ybGROYW1lLCBDYWxs
YmFja0lEKTsKLSAgICB2b2lkIHJ1bkphdmFTY3JpcHRJbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFN0cmluZyYsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgQ2FsbGJhY2tJRCk7CisgICAg
dm9pZCBydW5KYXZhU2NyaXB0SW5GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBm
b3JjZVJlcGFpbnQoQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCB0YWtlU25hcHNob3QoV2ViQ29yZTo6
SW50UmVjdCBzbmFwc2hvdFJlY3QsIFdlYkNvcmU6OkludFNpemUgYml0bWFwU2l6ZSwgdWludDMy
X3Qgb3B0aW9ucywgQ2FsbGJhY2tJRCk7CiAKQEAgLTE0MTIsOCArMTQxMiw4IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBwYXJlbnRQcm9jZXNzSGFzU2VydmljZVdvcmtlckVudGl0bGVtZW50KCkgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQogI2VuZGlmCiAKLSAgICB2b2lkIGRpZFJlY2VpdmVQb2xpY3lE
ZWNpc2lvbih1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJDb3JlOjpQ
b2xpY3lDaGVja0lkZW50aWZpZXIsIFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBjb25zdCBEb3dubG9hZElEJiwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0
YT4mJik7Ci0gICAgdm9pZCBjb250aW51ZVdpbGxTdWJtaXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQs
IHVpbnQ2NF90IGxpc3RlbmVySUQpOworICAgIHZvaWQgZGlkUmVjZWl2ZVBvbGljeURlY2lzaW9u
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24sIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgY29uc3QgRG93bmxvYWRJRCYsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0Rh
dGE+JiYpOworICAgIHZvaWQgY29udGludWVXaWxsU3VibWl0Rm9ybShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwogICAgIHZvaWQgc2V0VXNlckFnZW50KGNv
bnN0IFN0cmluZyYpOwogICAgIHZvaWQgc2V0Q3VzdG9tVGV4dEVuY29kaW5nTmFtZShjb25zdCBT
dHJpbmcmKTsKICAgICB2b2lkIHN1c3BlbmRBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9ucygp
OwpAQCAtMTQzMSw3ICsxNDMxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHdpbmRvd0FuZFZpZXdG
cmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgd2luZG93RnJhbWVJblNjcmVl
bkNvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHdpbmRvd0ZyYW1lSW5VbmZs
aXBwZWRTY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB2aWV3RnJh
bWVJbldpbmRvd0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBhY2Nlc3Np
YmlsaXR5Vmlld0Nvb3JkaW5hdGVzKTsKIAogICAgIFJldGFpblB0cjxQREZEb2N1bWVudD4gcGRm
RG9jdW1lbnRGb3JQcmludGluZ0ZyYW1lKFdlYkNvcmU6OkZyYW1lKik7Ci0gICAgdm9pZCBjb21w
dXRlUGFnZXNGb3JQcmludGluZ1BERkRvY3VtZW50KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFBy
aW50SW5mbyYsIFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiYgcmVzdWx0UGFnZVJlY3RzKTsKKyAg
ICB2b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERGRG9jdW1lbnQoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mLCBWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4mIHJl
c3VsdFBhZ2VSZWN0cyk7CiAgICAgdm9pZCBkcmF3UERGRG9jdW1lbnQoQ0dDb250ZXh0UmVmLCBQ
REZEb2N1bWVudCAqLCBjb25zdCBQcmludEluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7
CiAgICAgdm9pZCBkcmF3UGFnZXNUb1BERkZyb21QREZEb2N1bWVudChDR0NvbnRleHRSZWYsIFBE
RkRvY3VtZW50ICosIGNvbnN0IFByaW50SW5mbyYsIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBj
b3VudCk7CiAjZW5kaWYKQEAgLTE1ODQsNyArMTU4NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB2
b2ljZXNEaWRDaGFuZ2UoKTsKICNlbmRpZgogCi0gICAgdm9pZCBmcmFtZUJlY2FtZVJlbW90ZSh1
aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpHbG9iYWxGcmFtZUlkZW50aWZpZXImJiByZW1vdGVG
cmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXImJiByZW1vdGVX
aW5kb3dJZGVudGlmaWVyKTsKKyAgICB2b2lkIGZyYW1lQmVjYW1lUmVtb3RlKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgV2ViQ29yZTo6R2xvYmFsRnJhbWVJZGVudGlmaWVyJiYgcmVtb3RlRnJh
bWVJZGVudGlmaWVyLCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlmaWVyJiYgcmVtb3RlV2lu
ZG93SWRlbnRpZmllcik7CiAKICAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lSGFuZGxlcih1aW50
NjRfdCBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNjaGVtZSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IGE1
MmUyNTFkMjVkYTZkODg3MWIyNzJkNzE0MjI5MTMyOWM1ZjI0MzguLmJhN2Y2NGJmZGNiY2NmOGFi
MmMzM2Y2YzI3OGI0NmQxNTE4ODhmMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMjcsOSArMjcsOSBAQCBtZXNz
YWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIFNldEJhY2tncm91bmRDb2xv
cihPcHRpb25hbDxXZWJDb3JlOjpDb2xvcj4gY29sb3IpCiAKLSAgICBBZGRDb25zb2xlTWVzc2Fn
ZSh1aW50NjRfdCBmcmFtZUlELCBlbnVtOnVpbnQ4X3QgSlNDOjpNZXNzYWdlU291cmNlIG1lc3Nh
Z2VTb3VyY2UsIGVudW06dWludDhfdCBKU0M6Ok1lc3NhZ2VMZXZlbCBtZXNzYWdlTGV2ZWwsIFN0
cmluZyBtZXNzYWdlLCB1aW50NjRfdCByZXF1ZXN0SUQpCi0gICAgU2VuZENTUFZpb2xhdGlvblJl
cG9ydCh1aW50NjRfdCBmcmFtZUlELCBVUkwgcmVwb3J0VVJMLCBJUEM6OkZvcm1EYXRhUmVmZXJl
bmNlIHJlcG9ydERhdGEpCi0gICAgRW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQo
dWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6
SW5pdCBldmVudEluaXQpCisgICAgQWRkQ29uc29sZU1lc3NhZ2UoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIGVudW06dWludDhfdCBKU0M6Ok1lc3NhZ2VTb3VyY2UgbWVzc2FnZVNv
dXJjZSwgZW51bTp1aW50OF90IEpTQzo6TWVzc2FnZUxldmVsIG1lc3NhZ2VMZXZlbCwgU3RyaW5n
IG1lc3NhZ2UsIHVpbnQ2NF90IHJlcXVlc3RJRCkKKyAgICBTZW5kQ1NQVmlvbGF0aW9uUmVwb3J0
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBVUkwgcmVwb3J0VVJMLCBJUEM6OkZv
cm1EYXRhUmVmZXJlbmNlIHJlcG9ydERhdGEpCisgICAgRW5xdWV1ZVNlY3VyaXR5UG9saWN5Vmlv
bGF0aW9uRXZlbnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlNl
Y3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQgZXZlbnRJbml0KQogCiAgICAgVGVzdFBy
b2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KCkgLT4gKGJv
b2wgaGFuZGxlZCkgU3luY2hyb25vdXMKIApAQCAtMTYyLDggKzE2Miw4IEBAIEdlbmVyYXRlU3lu
dGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGlu
Z0NvbW1hbmRUeXBlCiAgICAgR29Ub0JhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIHN0cnVjdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyIGJhY2tGb3J3YXJk
SXRlbUlELCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6RnJhbWVMb2FkVHlwZSBiYWNrRm9yd2FyZFR5
cGUsIGVudW06Ym9vbCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBPcHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0Rh
dGE+IHdlYnNpdGVQb2xpY2llcykKICAgICBUcnlSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQogCi0g
ICAgTG9hZFVSTEluRnJhbWUoVVJMIHVybCwgU3RyaW5nIHJlZmVycmVyLCB1aW50NjRfdCBmcmFt
ZUlEKQotICAgIExvYWREYXRhSW5GcmFtZShJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSwgU3RyaW5n
IE1JTUVUeXBlLCBTdHJpbmcgZW5jb2RpbmdOYW1lLCBVUkwgYmFzZVVSTCwgdWludDY0X3QgZnJh
bWVJRCkKKyAgICBMb2FkVVJMSW5GcmFtZShVUkwgdXJsLCBTdHJpbmcgcmVmZXJyZXIsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQorICAgIExvYWREYXRhSW5GcmFtZShJUEM6OkRh
dGFSZWZlcmVuY2UgZGF0YSwgU3RyaW5nIE1JTUVUeXBlLCBTdHJpbmcgZW5jb2RpbmdOYW1lLCBV
UkwgYmFzZVVSTCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAgICAgTG9hZFJl
cXVlc3Qoc3RydWN0IFdlYktpdDo6TG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnMpCiAgICAg
TG9hZERhdGEoc3RydWN0IFdlYktpdDo6TG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnMpCiAg
ICAgTG9hZEFsdGVybmF0ZUhUTUwoc3RydWN0IFdlYktpdDo6TG9hZFBhcmFtZXRlcnMgbG9hZFBh
cmFtZXRlcnMpCkBAIC0xNzMsNyArMTczLDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29t
bWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAg
ICBSZWxvYWQodWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50MzJfdCByZWxvYWRPcHRpb25zLCBX
ZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKQog
ICAgIFN0b3BMb2FkaW5nKCkKIAotICAgIFN0b3BMb2FkaW5nRnJhbWUodWludDY0X3QgZnJhbWVJ
RCkKKyAgICBTdG9wTG9hZGluZ0ZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
KQogICAgIAogICAgIFJlc3RvcmVTZXNzaW9uKFZlY3RvcjxXZWJLaXQ6OkJhY2tGb3J3YXJkTGlz
dEl0ZW1TdGF0ZT4gaXRlbVN0YXRlcykKICAgICBVcGRhdGVCYWNrRm9yd2FyZExpc3RGb3JSZWF0
dGFjaChWZWN0b3I8V2ViS2l0OjpCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGU+IGl0ZW1TdGF0ZXMp
CkBAIC0xODIsOCArMTgyLDggQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVt
OnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBEaWRSZW1v
dmVCYWNrRm9yd2FyZEl0ZW0oc3RydWN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZp
ZXIgYmFja0ZvcndhcmRJdGVtSUQpCiAKICAgICBVcGRhdGVXZWJzaXRlUG9saWNpZXMoc3RydWN0
IFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0YSB3ZWJzaXRlUG9saWNpZXMpCi0gICAgRGlkUmVj
ZWl2ZVBvbGljeURlY2lzaW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQs
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIGVu
dW06dWludDhfdCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBPcHRpb25hbDxXZWJL
aXQ6OldlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQb2xpY2llcykKLSAgICBDb250aW51ZVdp
bGxTdWJtaXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQpCisgICAg
RGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9s
aWN5Q2hlY2tJZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UG9saWN5QWN0aW9uIHBv
bGljeUFjdGlvbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93
bmxvYWRJRCwgT3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9s
aWNpZXMpCisgICAgQ29udGludWVXaWxsU3VibWl0Rm9ybShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCkKIAogICAgIENsZWFyU2VsZWN0aW9uKCkK
ICAgICBSZXN0b3JlU2VsZWN0aW9uSW5Gb2N1c2VkRWRpdGFibGVFbGVtZW50KCkKQEAgLTE5Niwx
NSArMTk2LDE1IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90
IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAjaWYgRU5BQkxFKE1IVE1MKQog
ICAgIEdldENvbnRlbnRzQXNNSFRNTERhdGEoV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQp
CiAjZW5kaWYKLSAgICBHZXRNYWluUmVzb3VyY2VEYXRhT2ZGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKLSAgICBHZXRSZXNvdXJjZURhdGFGcm9t
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHJlc291cmNlVVJMLCBXZWJLaXQ6OkNhbGxi
YWNrSUQgY2FsbGJhY2tJRCkKKyAgICBHZXRNYWluUmVzb3VyY2VEYXRhT2ZGcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQp
CisgICAgR2V0UmVzb3VyY2VEYXRhRnJvbUZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBTdHJpbmcgcmVzb3VyY2VVUkwsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lE
KQogICAgIEdldFJlbmRlclRyZWVFeHRlcm5hbFJlcHJlc2VudGF0aW9uKFdlYktpdDo6Q2FsbGJh
Y2tJRCBjYWxsYmFja0lEKQogICAgIEdldFNlbGVjdGlvbk9yQ29udGVudHNBc1N0cmluZyhXZWJL
aXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBHZXRTZWxlY3Rpb25Bc1dlYkFyY2hpdmVE
YXRhKFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIEdldFNvdXJjZUZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIEdl
dFdlYkFyY2hpdmVPZkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6Q2FsbGJhY2tJRCBj
YWxsYmFja0lEKQorICAgIEdldFNvdXJjZUZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBHZXRXZWJBcmNo
aXZlT2ZGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViS2l0OjpDYWxs
YmFja0lEIGNhbGxiYWNrSUQpCiAgICAgUnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lU2NyaXB0V29y
bGQoU3RyaW5nIHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBPcHRpb25hbDxTdHJpbmc+
IHdvcmxkTmFtZSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCi0gICAgUnVuSmF2YVNj
cmlwdEluRnJhbWUodWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHNjcmlwdCwgYm9vbCBmb3JjZVVz
ZXJHZXN0dXJlLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBSdW5KYXZhU2Ny
aXB0SW5GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIHNjcmlw
dCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkK
ICAgICBGb3JjZVJlcGFpbnQoV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAKICAgICBT
ZWxlY3RBbGwoKQpAQCAtMzgwLDE4ICszODAsMTggQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5n
Q29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUK
ICAgICBEaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5v
dGlmaWNhdGlvbklELCBib29sIGFsbG93ZWQpCiAKICAgICAjIFByaW50aW5nLgotICAgIEJlZ2lu
UHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50
SW5mbykKKyAgICBCZWdpblByaW50aW5nKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvKQogICAgIEVuZFByaW50aW5nKCkK
LSAgICBDb21wdXRlUGFnZXNGb3JQcmludGluZyh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2Vi
S2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkK
KyAgICBDb21wdXRlUGFnZXNGb3JQcmludGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2ViS2l0OjpDYWxsYmFj
a0lEIGNhbGxiYWNrSUQpCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgRHJhd1JlY3RUb0ltYWdl
KHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIFdl
YkNvcmU6OkludFJlY3QgcmVjdCwgV2ViQ29yZTo6SW50U2l6ZSBpbWFnZVNpemUsIFdlYktpdDo6
Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIERyYXdQYWdlc1RvUERGKHVpbnQ2NF90IGZyYW1l
SUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIHVpbnQzMl90IGZpcnN0LCB1
aW50MzJfdCBjb3VudCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCisgICAgRHJhd1Jl
Y3RUb0ltYWdlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0
OjpQcmludEluZm8gcHJpbnRJbmZvLCBXZWJDb3JlOjpJbnRSZWN0IHJlY3QsIFdlYkNvcmU6Oklu
dFNpemUgaW1hZ2VTaXplLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBEcmF3
UGFnZXNUb1BERihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktp
dDo6UHJpbnRJbmZvIHByaW50SW5mbywgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBX
ZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQot
ICAgIENvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKHVpbnQ2NF90IGZyYW1lSUQs
IHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIFdlYktpdDo6Q2FsbGJhY2tJRCBj
YWxsYmFja0lEKSAtPiAodWludDMyX3QgcGFnZUNvdW50KSBTeW5jaHJvbm91cworICAgIENvbXB1
dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCBXZWJLaXQ6OkNhbGxi
YWNrSUQgY2FsbGJhY2tJRCkgLT4gKHVpbnQzMl90IHBhZ2VDb3VudCkgU3luY2hyb25vdXMKICNl
bmRpZgogI2VuZGlmCiAjaWYgUExBVEZPUk0oR1RLKQotICAgIERyYXdQYWdlc0ZvclByaW50aW5n
KHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIFdl
YktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIERyYXdQYWdlc0ZvclByaW50aW5nKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8g
cHJpbnRJbmZvLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICNlbmRpZgogCiAgICAg
IyBNZWRpYQpAQCAtNDEzLDcgKzQxMyw3IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1h
bmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAgICAg
Q29uZmlybUNvbXBvc2l0aW9uKFN0cmluZyB0ZXh0LCBpbnQ2NF90IHNlbGVjdGlvblN0YXJ0LCBp
bnQ2NF90IHNlbGVjdGlvbkxlbmd0aCkKICAgICBDYW5jZWxDb21wb3NpdGlvbigpCiAKLSAgICBD
b2xsYXBzZVNlbGVjdGlvbkluRnJhbWUodWludDY0X3QgZnJhbWVJRCkKKyAgICBDb2xsYXBzZVNl
bGVjdGlvbkluRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAKICAgICBH
ZXRDZW50ZXJGb3Jab29tR2VzdHVyZShXZWJDb3JlOjpJbnRQb2ludCBjZW50ZXJJblZpZXdDb29y
ZGluYXRlcykgLT4gKFdlYkNvcmU6OkludFBvaW50IGNlbnRlcikgU3luY2hyb25vdXMKICNlbmRp
ZgpAQCAtNTM2LDcgKzUzNiw3IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51
bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAgICAgRGlkUmVj
ZWl2ZVBhc3N3b3JkRm9yUXVpY2tMb29rRG9jdW1lbnQoU3RyaW5nIHBhc3N3b3JkKQogI2VuZGlm
CiAKLSAgICBGcmFtZUJlY2FtZVJlbW90ZSh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29y
ZTo6R2xvYmFsRnJhbWVJZGVudGlmaWVyIHJlbW90ZUZyYW1lSWRlbnRpZmllciwgc3RydWN0IFdl
YkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXIgcmVtb3RlV2luZG93SWRlbnRpZmllcikKKyAg
ICBGcmFtZUJlY2FtZVJlbW90ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3Ry
dWN0IFdlYkNvcmU6Okdsb2JhbEZyYW1lSWRlbnRpZmllciByZW1vdGVGcmFtZUlkZW50aWZpZXIs
IHN0cnVjdCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlmaWVyIHJlbW90ZVdpbmRvd0lkZW50
aWZpZXIpCiAKICAgICBSZWdpc3RlclVSTFNjaGVtZUhhbmRsZXIodWludDY0X3QgaWRlbnRpZmll
ciwgU3RyaW5nIHNjaGVtZSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCBlNGM2NDI3MWNjZjg5M2IzNTliOTQ1NzljOGIy
ZDE3OTFkZGE5Y2I5Li4yZGIwZWI2YmJhYTQ1NzhiZjZhNjk1Y2U0MDAyZDc3MzY1MTZiZDQ1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbQpAQCAtNTUxLDcgKzU1MSw3IEBAIHZvaWQgV2ViUGFnZTo6YWNjZXB0c0ZpcnN0TW91c2Uo
aW50LCBjb25zdCBXZWJLaXQ6OldlYk1vdXNlRXZlbnQmLCBDb21wbGV0aW9uSGFuCiAgICAgY29t
cGxldGlvbkhhbmRsZXIoZmFsc2UpOwogfQogCi12b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0Zv
clByaW50aW5nUERGRG9jdW1lbnQodWludDY0X3QsIGNvbnN0IFByaW50SW5mbyYsIFZlY3RvcjxJ
bnRSZWN0PiYpCit2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERGRG9jdW1l
bnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mLCBWZWN0b3I8SW50
UmVjdD4mKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkBAIC0zNzM5LDcgKzM3MzksNyBA
QCB2b2lkIFdlYlBhZ2U6OmRpc3BhdGNoQXN5bmNocm9ub3VzVG91Y2hFdmVudHMoY29uc3QgVmVj
dG9yPFdlYlRvdWNoRXZlbnQsIDE+JiBxdQogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZTo6Y29t
cHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYodWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
UHJpbnRJbmZvJiBwcmludEluZm8sIENhbGxiYWNrSUQgY2FsbGJhY2tJRCwgTWVzc2FnZXM6Oldl
YlBhZ2U6OkNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGOjpEZWxheWVkUmVwbHkm
JiByZXBseSkKK3ZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9Q
REYoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJp
bnRJbmZvLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQsIE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21wdXRl
UGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERjo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7CiAg
ICAgaWYgKHByaW50SW5mby5zbmFwc2hvdEZpcnN0UGFnZSkgewogICAgICAgICByZXBseSgxKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdl
TWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMu
bW0KaW5kZXggNDMxZGZhMTdhY2EwNWI2MGVmZTlhZTA0MDNhNDA4ODBlMjgxOGQ4MC4uZmUyNDE3
YjBhN2Q1ODM2M2M1NGJiODZkYTU3ODk4ZDExZmJlMzUzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KQEAgLTY3MCw3ICs2NzAs
NyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZUhlYWRlckFuZEZvb3RlckxheWVyc0ZvckRldmljZVNj
YWxlQ2hhbmdlKGZsb2F0IHNjYWxlRmFjdG9yKQogICAgICAgICBtX2Zvb3RlckJhbm5lci0+ZGlk
Q2hhbmdlRGV2aWNlU2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IpOwogfQogCi12b2lkIFdlYlBhZ2U6
OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERGRG9jdW1lbnQodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgUHJpbnRJbmZvJiBwcmludEluZm8sIFZlY3RvcjxJbnRSZWN0PiYgcmVzdWx0UGFnZVJlY3Rz
KQordm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZ1BERkRvY3VtZW50KFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywg
VmVjdG9yPEludFJlY3Q+JiByZXN1bHRQYWdlUmVjdHMpCiB7CiAgICAgQVNTRVJUKHJlc3VsdFBh
Z2VSZWN0cy5pc0VtcHR5KCkpOwogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCmluZGV4IGEyZGExMmM2MDIyOTM3M2NmODc4OTJiODNkYWE1NzczNTAwYTc3ZjIu
LjU2NWZjYWFlZDEzMDllNzg2NTY0YzBiZmVhYjhiOWUxYmY1NDA3NTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTc2OCwxNyArNzY4LDE3IEBAIHZvaWQgV2Vi
UHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJ
UEM6OkRlY29kZXImIGRlCiAgICAgTE9HX0VSUk9SKCJVbmhhbmRsZWQgd2ViIHByb2Nlc3MgbWVz
c2FnZSAnJXM6JXMnIiwgZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkudG9TdHJpbmcoKS5k
YXRhKCksIGRlY29kZXIubWVzc2FnZU5hbWUoKS50b1N0cmluZygpLmRhdGEoKSk7CiB9CiAKLVdl
YkZyYW1lKiBXZWJQcm9jZXNzOjp3ZWJGcmFtZSh1aW50NjRfdCBmcmFtZUlEKSBjb25zdAorV2Vi
RnJhbWUqIFdlYlByb2Nlc3M6OndlYkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSBjb25z
dAogewogICAgIHJldHVybiBtX2ZyYW1lTWFwLmdldChmcmFtZUlEKTsKIH0KIAotdm9pZCBXZWJQ
cm9jZXNzOjphZGRXZWJGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJGcmFtZSogZnJhbWUpCit2
b2lkIFdlYlByb2Nlc3M6OmFkZFdlYkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJG
cmFtZSogZnJhbWUpCiB7CiAgICAgbV9mcmFtZU1hcC5zZXQoZnJhbWVJRCwgZnJhbWUpOwogfQog
Ci12b2lkIFdlYlByb2Nlc3M6OnJlbW92ZVdlYkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lk
IFdlYlByb2Nlc3M6OnJlbW92ZVdlYkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewog
ICAgIG1fZnJhbWVNYXAucmVtb3ZlKGZyYW1lSUQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaAppbmRleCBkNGMwMWJhYjFmOTNkYTkwODViMGYyMTk0Y2QzMjdkNDcxODY1MGIy
Li4zY2IyYzQ5Njk0OTk4ODdiMzJiNTNiM2E2NmQwYmJmNjg1YTMyMThkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJXZWJT
UUxpdGVEYXRhYmFzZVRyYWNrZXIuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRDaGFubmVsTWFuYWdl
ci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaXN0cmFibGVEb21haW4uaD4KICNpZiBQTEFURk9STShN
QUMpCkBAIC0xNzIsOSArMTczLDkgQEAgcHVibGljOgogCiAgICAgYm9vbCBmdWxsS2V5Ym9hcmRB
Y2Nlc3NFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9mdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVk
OyB9CiAKLSAgICBXZWJGcmFtZSogd2ViRnJhbWUodWludDY0X3QpIGNvbnN0OwotICAgIHZvaWQg
YWRkV2ViRnJhbWUodWludDY0X3QsIFdlYkZyYW1lKik7Ci0gICAgdm9pZCByZW1vdmVXZWJGcmFt
ZSh1aW50NjRfdCk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllcikgY29uc3Q7CisgICAgdm9pZCBhZGRXZWJGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIFdlYkZyYW1lKik7CisgICAgdm9pZCByZW1vdmVXZWJGcmFtZShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIpOwogCiAgICAgV2ViUGFnZUdyb3VwUHJveHkqIHdlYlBhZ2VHcm91cChXZWJDb3Jl
OjpQYWdlR3JvdXAqKTsKICAgICBXZWJQYWdlR3JvdXBQcm94eSogd2ViUGFnZUdyb3VwKHVpbnQ2
NF90IHBhZ2VHcm91cElEKTsKQEAgLTQ4OSw3ICs0OTAsNyBAQCBwcml2YXRlOgogCiAgICAgYm9v
bCBtX2Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQgeyBmYWxzZSB9OwogCi0gICAgSGFzaE1hcDx1
aW50NjRfdCwgV2ViRnJhbWUqPiBtX2ZyYW1lTWFwOworICAgIEhhc2hNYXA8V2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBXZWJGcmFtZSo+IG1fZnJhbWVNYXA7CiAKICAgICB0eXBlZGVmIEhhc2hN
YXA8Y29uc3QgY2hhciosIHN0ZDo6dW5pcXVlX3B0cjxXZWJQcm9jZXNzU3VwcGxlbWVudD4sIFB0
ckhhc2g8Y29uc3QgY2hhcio+PiBXZWJQcm9jZXNzU3VwcGxlbWVudE1hcDsKICAgICBXZWJQcm9j
ZXNzU3VwcGxlbWVudE1hcCBtX3N1cHBsZW1lbnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgK
aW5kZXggYjE0MDNkMDU2MzkzYjM5N2QwMTdkMDkzZGU1ZmUwNGNkY2NhOGNjZC4uZDYwNjMwZmUw
Y2FhZGY0M2E4Yjc0NDlkMmQ1NDkwZWRiMDhlNmFjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oCkBAIC02NCw3ICs2NCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBoYXNXZWJWaWV3KCkgY29u
c3QgZmluYWw7IC8vIG1haW5seSBmb3IgYXNzZXJ0aW9ucwogCiAgICAgT3B0aW9uYWw8V2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCgpIGNvbnN0IGZpbmFsOwotICAgIE9wdGlvbmFsPHVp
bnQ2NF90PiBmcmFtZUlEKCkgY29uc3QgZmluYWw7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyPiBmcmFtZUlEKCkgY29uc3QgZmluYWw7CiAgICAgUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIG1ha2VSZXByZXNlbnRhdGlvbihX
ZWJDb3JlOjpEb2N1bWVudExvYWRlciopIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5t
bQppbmRleCAzZGQ1MGU3YjNiOWNmOTkzMzQ5YzlhYmI0Y2I0OTc4MzdlZWMzNTNlLi5iN2E2NWU5
OTM0ZmZmMDg4MGI3NTY4Y2EwMGU5NjJlMDE1YWU0MjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5tbQpAQCAtMjE0LDcgKzIxNCw3IEBAIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBXZWJG
cmFtZUxvYWRlckNsaWVudDo6cGFnZUlEKCkgY29uc3QKICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OwogfQogCi1PcHRpb25hbDx1aW50NjRfdD4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZyYW1lSUQo
KSBjb25zdAorT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZnJhbWVJRCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376318</attachid>
            <date>2019-08-14 15:11:14 -0700</date>
            <delta_ts>2019-08-14 15:36:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199986-20190814151113.patch</filename>
            <type>text/plain</type>
            <size>444722</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmE3MDY4NjA3ZWFlOTVj
NTA0YWRlOThlNGIyZDQ4NzlmMjY2NDRmOS4uOTM1OGNjMTBmYjk5ZjFkMTE2ZmEyNDUwMzVhM2Ri
MDgzMjEwYTc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE5LTA4LTE0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBPYmplY3RJ
ZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+IGZvciBmcmFtZUlEcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5OTg2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBzdHJvbmdseS10eXBl
ZCBGcmFtZUlkZW50aWZpZXIgaW5zdGVhZCBvZiB1aW50NjRfdCBhcyBmcmFtZSBpZGVudGlmaWVy
cyBldmVyeXdoZXJlLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGxvYWRlci9Db29raWVKYXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q29va2llSmFyOjpjb29raWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tpZUphcjo6
c2V0Q29va2llcyk6CisgICAgICAgIChXZWJDb3JlOjpDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tpZUphcjo6Z2V0
UmF3Q29va2llcyBjb25zdCk6CisgICAgICAgICogbG9hZGVyL0Nvb2tpZUphci5oOgorICAgICAg
ICAqIGxvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3Bw
OgorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
OjpOYXZpZ2F0aW9uQWN0aW9uOjpSZXF1ZXN0ZXI6OmZyYW1lSUQgY29uc3QpOgorICAgICAgICAq
IHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9HbG9iYWxGcmFtZUlkZW50aWZp
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Okdsb2JhbEZyYW1lSWRlbnRpZmllcjo6ZGVjb2RlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Nvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzaG91bGRCbG9ja0Nv
b2tpZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpo
YXNTdG9yYWdlQWNjZXNzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6Z3JhbnRTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW06CisgICAgICAg
IChXZWJDb3JlOjpjb29raWVzRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZXNGb3JT
ZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2ll
c0ZvckRPTSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzIGNvbnN0KToK
KwogMjAxOS0wOC0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAg
ICAgVXBkYXRlIFdvcmtlcjo6bm90aWZ5RmluaXNoZWQgdG8gbm90IHVzZSBlbXB0eVNlc3Npb25J
RApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA1NGI3OTc3NmIwNTc1YjFhODgzY2Y2OTc4ZmFjZDBhMTU1Y2NhOWM1Li40
NTg3MjQyZjU2N2Q0YzBiMmVlZjgwYmIxOTJmYWJiZjE1ODIwMjk3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDM0OSBAQAorMjAxOS0wOC0xNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KKworICAgICAgICBVc2UgT2JqZWN0SWRlbnRpZmllcjxGcmFtZUlkZW50aWZpZXJUeXBl
PiBmb3IgZnJhbWVJRHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5OTk4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVzZSB0aGUgc3Ryb25nbHktdHlwZWQgRnJhbWVJZGVudGlmaWVyIGluc3RlYWQgb2Yg
dWludDY0X3QgYXMgZnJhbWUgaWRlbnRpZmllcnMgZXZlcnl3aGVyZS4KKworICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFudFN0b3JhZ2VB
Y2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAg
ICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmdyYW50U3RvcmFn
ZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsSGFzU3Rv
cmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEdy
YW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTSk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJv
bURPTSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpj
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXRSYXdDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpoYXNT
dG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtMb2FkQ2hlY2tlcjo6TmV0d29ya0xvYWRDaGVja2VyKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRy
eSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnROZXR3b3Jr
TG9hZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y29udmVydFRv
RG93bmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmFib3J0
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVz
cG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2Vp
dmVCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZp
bmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRp
ZEZhaWxMb2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpj
b250aW51ZVdpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OmVzY2FwZUlERm9ySlNP
Tik6CisgICAgICAgIChXZWJLaXQ6OmxvZ0Jsb2NrZWRDb29raWVJbmZvcm1hdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uSW50ZXJuYWwpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24pOgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNoYXJlZC9BUEkv
QVBJRnJhbWVIYW5kbGUuY3BwOgorICAgICAgICAoQVBJOjpGcmFtZUhhbmRsZTo6Y3JlYXRlKToK
KyAgICAgICAgKEFQSTo6RnJhbWVIYW5kbGU6OmNyZWF0ZUF1dG9jb252ZXJ0aW5nKToKKyAgICAg
ICAgKEFQSTo6RnJhbWVIYW5kbGU6OkZyYW1lSGFuZGxlKToKKyAgICAgICAgKEFQSTo6RnJhbWVI
YW5kbGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5oOgor
ICAgICAgICAoQVBJOjpGcmFtZUhhbmRsZTo6ZnJhbWVJRCBjb25zdCk6CisgICAgICAgICogU2hh
cmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5tbToKKyAgICAgICAgKC1bX1dLRnJhbWVIYW5k
bGUgaGFzaF0pOgorICAgICAgICAoLVtfV0tGcmFtZUhhbmRsZSBfZnJhbWVJRF0pOgorICAgICAg
ICAoLVtfV0tGcmFtZUhhbmRsZSBpbml0V2l0aENvZGVyOl0pOgorICAgICAgICAoLVtfV0tGcmFt
ZUhhbmRsZSBlbmNvZGVXaXRoQ29kZXI6XSk6CisgICAgICAgICogU2hhcmVkL0F1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRp
Y2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAg
ICAgKiBTaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmg6CisgICAg
ICAgICogU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tGcmFtZUhhbmRsZVJlZi5jcHA6CisgICAgICAgIChXS0ZyYW1lSGFuZGxlR2V0RnJhbWVJRCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgt
W1dLV2ViVmlldyBfcHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvOmZvckZyYW1lOl0pOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX2NhbkNoYW5nZUZyYW1lTGF5b3V0Ol0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tOgorICAgICAgICAoLVtfV0tJbnNwZWN0
b3Igc2hvd01haW5SZXNvdXJjZUZvckZyYW1lOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRv
bWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNp
bXVsYXRlZElucHV0RGlzcGF0Y2hlcjo6cnVuKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21h
dGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0
b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dG9tYXRpb25TZXNzaW9uOjp3ZWJGcmFtZUlERm9ySGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQXV0b21hdGlvblNlc3Npb246OmhhbmRsZUZvcldlYkZyYW1lSUQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c3dpdGNoVG9Ccm93c2luZ0NvbnRleHQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2FpdEZvck5hdmlnYXRpb25Ub0Nv
bXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6ZmluZFBhZ2VGb3JGcmFtZUlEKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnJlc3BvbmRUb1BlbmRpbmdGcmFtZU5hdmln
YXRpb25DYWxsYmFja3NXaXRoVGltZW91dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRp
b25TZXNzaW9uOjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZlQ2hpbGRGcmFtZUhhbmRsZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZlUGFyZW50RnJhbWVIYW5kbGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Y29tcHV0ZUVsZW1lbnRM
YXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2VsZWN0T3B0
aW9uRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpnZXRB
bGxDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OmRlbGV0
ZVNpbmdsZUNvb2tpZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjp2
aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
QXV0b21hdGlvblNlc3Npb246OnRha2VTY3JlZW5zaG90KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVu
dDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW06CisgICAgICAg
ICgtW1dLUmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyIGF0dGVtcHRSZWNvdmVyeV0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9j
a0xvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6
OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSk6CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAg
ICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UHJvdmlzaW9uYWxQYWdlUHJveHk6OnZhbGlkYXRlSW5wdXQpOgorICAgICAgICAoV2ViS2l0OjpQ
cm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZEZh
aWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFs
UGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQcm92
aXNpb25hbFBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEpOgorICAgICAg
ICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxG
b3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNp
b25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0
OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9u
YWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xv
YWRGb3JGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJv
Y2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlN1c3BlbmRlZFBhZ2VQcm94eTo6U3VzcGVuZGVkUGFnZVByb3h5
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25D
aGVja1Byb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNr
UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5
OjpmcmFtZUlEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVzZXRBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6c2VhcmNoRm9yR3JhbnRl
ZFJlcXVlc3QgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6d2FzUmVxdWVzdERlbmllZCk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVy
bWlzc2lvbkZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OmdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKToKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc0dyYW50
ZWRWaWRlb09yQXVkaW9BY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6bWFpbkZyYW1lSUQgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpmcmFtZUlEIGNvbnN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkZyYW1lUHJveHk6OldlYkZyYW1lUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJGcmFtZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6OmZyYW1lSUQgY29uc3QpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGlkQ3JlYXRlU3ViZnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmRpZENyZWF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkU3Rh
cnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6ZGlkRXhwbGljaXRPcGVuRm9yRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZl
U2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1l
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDYW5jZWxDbGllbnRSZWRpcmVj
dEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92
aXNpb25hbFVSTEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRD
aGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZEZvckZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZyYW1l
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENoYW5nZU1h
aW5Eb2N1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRp
dGxlRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZpcnN0TGF5
b3V0Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZpcnN0Vmlz
dWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFtZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZnJhbWVEaWRCZWNvbWVGcmFtZVNldCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5j
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uQXN5bmNTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNw
b25zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2VTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnVuYWJsZVRvSW1w
bGVtZW50UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0
Rm9ybSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2
aWdhdGlvbkRhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZE5hdmlnYXRl
V2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFVwZGF0ZUhpc3RvcnlUaXRsZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEFsZXJ0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0Q29uZmlybSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdFByb21wdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpydW5PcGVuUGFuZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnByaW50RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZvY3Vz
ZWRGcmFtZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZyYW1lU2V0
TGFyZ2VzdEZyYW1lQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cmVxdWVzdFN0b3JhZ2VTcGFjZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6bWFrZVN0b3JhZ2VTcGFjZVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2Vz
Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNob3VsZEFsbG93RGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6d2ViRnJhbWUgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUHJveHk6OmNhbkNyZWF0ZUZyYW1lIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpmcmFtZUNyZWF0ZWQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUHJveHk6OmRpZERlc3Ryb3lGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IF93a19wYWdlQ291bnRGb3JQcmludEZvcm1hdHRlcjpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojpjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpldmFsdWF0ZUphdmFTY3JpcHRDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZENsZWFyV2luZG93
T2JqZWN0Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5OjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJh
bWVXaXRoT3JkaW5hbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZVBhcmVudEZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Zm9jdXNG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmNvbXB1
dGVFbGVtZW50TGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eTo6c2VsZWN0T3B0aW9uRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHk6OnRha2VTY3JlZW5zaG90KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eTo6Z2V0Q29va2llc0ZvckZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZGVsZXRlQ29va2llKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dL
V2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tOgorICAgICAgICAoK1tXS1dlYlByb2Nlc3NQbHVnSW5G
cmFtZSBsb29rVXBGcmFtZUZyb21IYW5kbGU6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3Ry
YXRlZ3k6OnNjaGVkdWxlTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5
OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJM
b2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJS
ZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxSZXNvdXJjZUxvYWQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVyOjpzdG9wTG9hZGluZ0FmdGVyWEZyYW1l
T3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNvdXJjZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omluc3RhbGxTZXJ2aWNlV29ya2VyKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZCBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6aGFzU3RvcmFnZUFjY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cmVxdWVzdFN0b3JhZ2VBY2Nl
c3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlE
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGlkRmFpbFByb3Zpc2lvbmFsTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkNvb2tpZUphci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6
Y29va2llcyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6c2V0Q29va2ll
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZp
ZWxkVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVKYXI6OmdldFJhd0Nv
b2tpZXMgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJGcmFtZTo6V2ViRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpnZW5lcmF0ZUZy
YW1lSUQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6ZnJhbWVJRCBjb25zdCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
Ykluc3BlY3Rvcjo6c2hvd01haW5SZXNvdXJjZUZvckZyYW1lKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxvYWRVUkxJbkZyYW1lKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9hZERhdGFJbkZyYW1lKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6c3RvcExvYWRpbmdGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmNvbnRpbnVlV2lsbFN1Ym1pdEZvcm0pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpydW5K
YXZhU2NyaXB0SW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldFNvdXJjZUZv
ckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0TWFpblJlc291cmNlRGF0YU9m
RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRSZXNvdXJjZURhdGFGcm9tRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRXZWJBcmNoaXZlT2ZGcmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmFkZENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6c2VuZENTUFZpb2xhdGlvblJlcG9ydCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6YmVnaW5QcmludGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
ZHJhd1JlY3RUb0ltYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZHJhd1BhZ2VzVG9Q
REYpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmF3UGFnZXNUb1BERkltcGwpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmF3UGFnZXNGb3JQcmludGluZyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmZyYW1lQmVjYW1lUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVl
c3RTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2hvdWxkQWxsb3dE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERG
RG9jdW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmlu
dGluZ0FuZERyYXdUb1BERik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQ
YWdlTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmlu
dGluZ1BERkRvY3VtZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp3ZWJGcmFtZSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmFkZFdlYkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6cmVtb3ZlV2ViRnJhbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
OgorCiAyMDE5LTA4LTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgdXNlIG9mIGVtcHR5U2Vzc2lvbklEIGZyb20gTmV0d29ya0xvYWRQYXJhbWV0
ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggODllZTNjYmU0NzY3YWVlNjU1MjE2
Njk1NjBlY2RlOGVkMTA2YTI3ZS4uODMwYTc4MjViOTFkZmQxNmU3Y2Y3MTkyN2Q3MTM4ODkxYjA3
NDYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5
LTA4LTE0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAg
IFVzZSBPYmplY3RJZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+IGZvciBmcmFtZUlEcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5OTg2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBz
dHJvbmdseS10eXBlZCBGcmFtZUlkZW50aWZpZXIgaW5zdGVhZCBvZiB1aW50NjRfdCBhcyBmcmFt
ZSBpZGVudGlmaWVycyBldmVyeXdoZXJlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlEIGNv
bnN0KToKKwogMjAxOS0wOC0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6YmxvYlNpemUgc2hvdWxkIHRha2UgYSBT
ZXNzaW9uSUQgYXMgcGFyYW1ldGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9PYmplY3RJ
ZGVudGlmaWVyLmggYi9Tb3VyY2UvV1RGL3d0Zi9PYmplY3RJZGVudGlmaWVyLmgKaW5kZXggYjNi
Y2FkZDlkZDE5NWFiMzBiMThjZjFkYWQzMzUyMzExOTI1MjZmOC4uNjdjYzk2NGZmZDA2Y2ZlNDFh
ZWZmMjRmYjc3OWVlYWY4NTA2MzQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvT2JqZWN0
SWRlbnRpZmllci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL09iamVjdElkZW50aWZpZXIuaApAQCAt
NTksNyArNTksNyBAQCBwdWJsaWM6CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKLSAgICAgICAgQVNTRVJU
KGlzVmFsaWRJZGVudGlmaWVyKG1faWRlbnRpZmllcikpOworICAgICAgICBSRUxFQVNFX0FTU0VS
VChpc1ZhbGlkSWRlbnRpZmllcihtX2lkZW50aWZpZXIpKTsgLy8gRklYTUU6IFNob3VsZCBiZSBh
IGRlYnVnIEFTU0VSVCgpLgogICAgICAgICBlbmNvZGVyIDw8IG1faWRlbnRpZmllcjsKICAgICB9
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPE9iamVjdElk
ZW50aWZpZXI+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQpAQCAtNjgsNyArNjgsNyBAQCBwdWJs
aWM6CiAgICAgICAgIGRlY29kZXIgPj4gaWRlbnRpZmllcjsKICAgICAgICAgaWYgKCFpZGVudGlm
aWVyKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAgICAgQVNTRVJUKGlz
VmFsaWRJZGVudGlmaWVyKCppZGVudGlmaWVyKSk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGlz
VmFsaWRJZGVudGlmaWVyKCppZGVudGlmaWVyKSk7IC8vIEZJWE1FOiBTaG91bGQgYmUgYSBkZWJ1
ZyBBU1NFUlQoKS4KICAgICAgICAgcmV0dXJuIE9iamVjdElkZW50aWZpZXIgeyAqaWRlbnRpZmll
ciB9OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBi
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggOGMzOWUyOGM3NGViMWQ1NTE0YTU0
MTYwNzg4ZWNjMjJlYjdlZGM1NS4uNmUzOWJlNDE4YWQ4ZTEwMDliZGEzZGIwYWYxMGE0YmIzNGFm
ZmNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC03NzcsNiArNzc3LDcgQEAgc2V0KFdlYkNvcmVf
UFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2UvRm9jdXNEaXJlY3Rpb24uaAogICAg
IHBhZ2UvRnJhbWUuaAogICAgIHBhZ2UvRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmgKKyAgICBw
YWdlL0ZyYW1lSWRlbnRpZmllci5oCiAgICAgcGFnZS9GcmFtZVNuYXBzaG90dGluZy5oCiAgICAg
cGFnZS9GcmFtZVRyZWUuaAogICAgIHBhZ2UvRnJhbWVWaWV3LmgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiN2JlNzQ5M2ZiMzQ3
ZTdhZWM1ZDExN2NjNWNjNjlhOGExZWZjMWUzLi40OTU3YmFiYzk3YjE3MTA0YTQ0NTM1ZTQzODNm
ZGZhOGIxMjc0MjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0yODAsNiArMjgwLDcgQEAKIAkJMEYwM0MwNzQxODg0Njk1RTAw
QTVGOENBIC8qIFN5c3RlbU1lbW9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEYwM0MwNzMxODg0Njk1RTAwQTVGOENBIC8qIFN5c3RlbU1lbW9yeS5o
ICovOyB9OwogCQkwRjAzQzA3NTE4ODQ4MDU1MDBBNUY4Q0EgLyogSW5zcGVjdG9yT3ZlcmxheS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M1MjJENEEx
NUI0NzhCMjAwOUI3Qzk1IC8qIEluc3BlY3Rvck92ZXJsYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjA5OUQwOTE3Qjk2OEExMDBGRjg0Qjkg
LyogV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjA5OUQwNzE3Qjk2OEExMDBGRjg0QjkgLyogV2ViQ29y
ZVR5cGVkQXJyYXlDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJMEYxMTc4MTgyMkUzQzQ3RjAwOEJENTcwIC8qIEZyYW1lSWRlbnRp
Zmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYx
MTc4MTYyMkUzQzQ3RTAwOEJENTcwIC8qIEZyYW1lSWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMTFBNTRGMEYzOTIzMzEwMEMz
Nzg4NCAvKiBSZW5kZXJTZWxlY3Rpb25JbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjExQTU0RTBGMzkyMzMxMDBDMzc4ODQgLyogUmVuZGVyU2Vs
ZWN0aW9uSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTBGMTMxNjNFMTZFRDBDQzgwMDM1Q0MwNCAvKiBQbGF0Zm9ybUNBRmlsdGVycy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxMzE2M0QxNkVE
MENDODAwMzVDQzA0IC8qIFBsYXRmb3JtQ0FGaWx0ZXJzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYxNURBOEEwRjNBQUVFNzAwMDBDRTQ3IC8q
IENTU0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE1REE4OTBGM0FBRUU3MDAwMENFNDcgLyogQ1NTQW5p
bWF0aW9uQ29udHJvbGxlclByaXZhdGUuaCAqLzsgfTsKQEAgLTU1NzgsNiArNTU3OSw3IEBACiAJ
CTBGMDNDMDczMTg4NDY5NUUwMEE1RjhDQSAvKiBTeXN0ZW1NZW1vcnkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU3lzdGVtTWVtb3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGMDk5RDA2MTdCOTY4QTEwMEZGODRCOSAvKiBXZWJDb3JlVHlwZWRBcnJheUNv
bnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29y
ZVR5cGVkQXJyYXlDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEYwOTlEMDcxN0I5NjhBMTAwRkY4NEI5IC8qIFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlVHlwZWRBcnJheUNvbnRy
b2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYxMTc4MTYyMkUzQzQ3RTAw
OEJENTcwIC8qIEZyYW1lSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBGcmFtZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYx
MUE1NEUwRjM5MjMzMTAwQzM3ODg0IC8qIFJlbmRlclNlbGVjdGlvbkluZm8uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyU2VsZWN0aW9uSW5mby5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRjEzMTYzRDE2RUQwQ0M4MDAzNUNDMDQgLyogUGxhdGZvcm1D
QUZpbHRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1DQUZp
bHRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxMzE2M0YxNkVEMENERTAw
MzVDQzA0IC8qIFBsYXRmb3JtQ0FGaWx0ZXJzQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBQbGF0Zm9ybUNBRmlsdGVyc0NvY29hLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjAyMDQsNiArMjAyMDYsNyBAQAogCQkJCTY1QkYwMjJBMDk3
NDgxNjMwMEM0MzE5NiAvKiBGcmFtZS5oICovLAogCQkJCTk3NEE4NjIwMTRCN0FEQkIwMDNGREM3
NiAvKiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwICovLAogCQkJCTk3NEE4NjIxMTRCN0FE
QkIwMDNGREM3NiAvKiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCAqLywKKwkJCQkwRjExNzgx
NjIyRTNDNDdFMDA4QkQ1NzAgLyogRnJhbWVJZGVudGlmaWVyLmggKi8sCiAJCQkJQzRDRDYyOTgx
ODM4Mzc2NjAwN0VCQUYxIC8qIEZyYW1lU25hcHNob3R0aW5nLmNwcCAqLywKIAkJCQlDNENENjI5
OTE4MzgzNzY2MDA3RUJBRjEgLyogRnJhbWVTbmFwc2hvdHRpbmcuaCAqLywKIAkJCQk2NUEyMTQ4
MjA5N0EzRjUzMDBCOTA1MEEgLyogRnJhbWVUcmVlLmNwcCAqLywKQEAgLTI5MjU1LDYgKzI5MjU4
LDcgQEAKIAkJCQlBODUzMTIzRDExRDA0NzFCMDBENEQwNzcgLyogRnJhZ21lbnRTY3JpcHRpbmdQ
ZXJtaXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NUJGMDIyRjA5NzQ4MTYzMDBDNDMxOTYg
LyogRnJhbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NEE4NjIzMTRCN0FEQkIwMDNGREM3NiAv
KiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMTE3ODE4
MjJFM0M0N0YwMDhCRDU3MCAvKiBGcmFtZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTY1NkQzNzNDMEFEQkE1REUwMEE0NTU0RCAvKiBGcmFtZUxvYWRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNjU2RDM3M0UwQURCQTVERTAwQTQ1NTREIC8qIEZyYW1lTG9hZGVyQ2xpZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlEMDAwRUJBMzExQkRBRkQ0MDBDNDc3MjYgLyogRnJhbWVMb2FkZXJT
dGF0ZU1hY2hpbmUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0Nvb2tpZUphci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmNw
cAppbmRleCA2OTYzMDMzMGI1ZDc5MzBkN2Q3YWFmMWRkYjRhODlkZmI2MGRkZGNjLi42ZDAzNjJl
OTc2NDE4OGI2MDg0Y2JhYThjYzE0MmQ0ZDM5MWY1YTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvQ29va2llSmFyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29v
a2llSmFyLmNwcApAQCAtNzEsNyArNzEsNyBAQCBTdHJpbmcgQ29va2llSmFyOjpjb29raWVzKERv
Y3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwpIGNvbnN0CiAKICAgICBhdXRvIGluY2x1
ZGVTZWN1cmVDb29raWVzID0gc2hvdWxkSW5jbHVkZVNlY3VyZUNvb2tpZXMoZG9jdW1lbnQsIHVy
bCk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxGcmFt
ZUlkZW50aWZpZXI+IGZyYW1lSUQ7CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJ
RDsKICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGZy
YW1lSUQgPSBmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuZnJhbWVJRCgpOwpAQCAtOTQsNyArOTQs
NyBAQCBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eSBDb29raWVKYXI6OmNvb2tpZVJlcXVl
c3RIZWFkZXJGaWVsZFByb3h5KGNvbnN0IERvYwogewogICAgIFRyYWNlU2NvcGUgc2NvcGUoRmV0
Y2hDb29raWVzU3RhcnQsIEZldGNoQ29va2llc0VuZCk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQ7CiAgICAg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKICAgICBpZiAoYXV0byogZnJhbWUgPSBk
b2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGZyYW1lSUQgPSBmcmFtZS0+bG9hZGVyKCkuY2xp
ZW50KCkuZnJhbWVJRCgpOwpAQCAtMTA2LDcgKzEwNiw3IEBAIENvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFByb3h5IENvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkoY29uc3Qg
RG9jCiAKIHZvaWQgQ29va2llSmFyOjpzZXRDb29raWVzKERvY3VtZW50JiBkb2N1bWVudCwgY29u
c3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKQogewotICAgIE9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJ
RDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEOwogICAgIGlmIChhdXRvKiBm
cmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKICAgICAgICAgZnJhbWVJRCA9IGZyYW1lLT5sb2Fk
ZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CkBAIC0xMjgsNyArMTI4LDcgQEAgYm9vbCBDb29raWVK
YXI6OmNvb2tpZXNFbmFibGVkKGNvbnN0IERvY3VtZW50JikgY29uc3QKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIFNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gQ29va2ll
SmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBQQUw6OlNlc3Npb25JRCYs
IGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8s
IGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFn
ZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNv
b2tpZXMpIGNvbnN0CitzdGQ6OnBhaXI8U3RyaW5nLCBTZWN1cmVDb29raWVzQWNjZXNzZWQ+IENv
b2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgUEFMOjpTZXNzaW9u
SUQmLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJ
bmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBP
cHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNs
dWRlU2VjdXJlQ29va2llcykgY29uc3QKIHsKICAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG1fc3Rv
cmFnZVNlc3Npb25Qcm92aWRlci0+c3RvcmFnZVNlc3Npb24oKSkgewogICAgICAgICBzdGQ6OnBh
aXI8U3RyaW5nLCBib29sPiByZXN1bHQgPSBzZXNzaW9uLT5jb29raWVSZXF1ZXN0SGVhZGVyRmll
bGRWYWx1ZShmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlELCBp
bmNsdWRlU2VjdXJlQ29va2llcyk7CkBAIC0xNDEsNyArMTQxLDcgQEAgc3RkOjpwYWlyPFN0cmlu
ZywgU2VjdXJlQ29va2llc0FjY2Vzc2VkPiBDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHUKIAogU3RyaW5nIENvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFs
dWUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCkgY29uc3QKIHsKLSAgICBPcHRp
b25hbDx1aW50NjRfdD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZy
YW1lSUQ7CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKICAgICBpZiAoYXV0
byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGZyYW1lSUQgPSBmcmFtZS0+
bG9hZGVyKCkuY2xpZW50KCkuZnJhbWVJRCgpOwpAQCAtMTU2LDcgKzE1Niw3IEBAIFN0cmluZyBD
b29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKERvY3VtZW50JiBkb2N1bWVu
dCwgY29uc3QgVVJMJiB1CiAKIGJvb2wgQ29va2llSmFyOjpnZXRSYXdDb29raWVzKGNvbnN0IERv
Y3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwsIFZlY3RvcjxDb29raWU+JiBjb29raWVz
KSBjb25zdAogewotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFs
PEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
cGFnZUlEOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKICAgICAg
ICAgZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvQ29va2llSmFyLmgKaW5kZXggMjgxZjg0YzQ5MDA1MjY3ZWEwNTRkNTFkNzY4YTllYjcz
MmNiYzIzOS4uODA4N2I4Y2Q1YjdjZjRmNTY5M2UyZjdlOTVkOGVmNmExNzk4NDZhOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Db29raWVKYXIuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UK
IAorI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVy
LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KQEAgLTU5LDcgKzYwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRDb29r
aWVzKERvY3VtZW50JiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpOwog
CiAgICAgdmlydHVhbCBib29sIGNvb2tpZXNFbmFibGVkKGNvbnN0IERvY3VtZW50JikgY29uc3Q7
Ci0gICAgdmlydHVhbCBzdGQ6OnBhaXI8U3RyaW5nLCBTZWN1cmVDb29raWVzQWNjZXNzZWQ+IGNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2Vj
dXJlQ29va2llcykgY29uc3Q7CisgICAgdmlydHVhbCBzdGQ6OnBhaXI8U3RyaW5nLCBTZWN1cmVD
b29raWVzQWNjZXNzZWQ+IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFBBTDo6
U2Vzc2lvbklEJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBj
b25zdCBVUkwmLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxQYWdlSWRlbnRp
Zmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0
UmF3Q29va2llcyhjb25zdCBEb2N1bWVudCYsIGNvbnN0IFVSTCYsIFZlY3RvcjxDb29raWU+Jikg
Y29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBEb2N1bWVudCYsIGNv
bnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDFmN2EyOWM0YjMwMWEzNjU4
MjJlNDIzM2I0MTVkZDFjMDAxOTEzMmQuLmU1OWQxNzBkZjBiYTA4YTJjNGY2MDNmZGNmYTgzNTdk
ZmY4OWJkYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9h
ZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJD
bGllbnQuaApAQCAtMzIsNyArMzIsNyBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBFbXB0eUZyYW1l
TG9hZGVyQ2xpZW50IDogcHVibGljIEZyYW1lTG9hZGVyQ2xpZW50IHsKIAogICAgIHZvaWQgZnJh
bWVMb2FkZXJEZXN0cm95ZWQoKSBvdmVycmlkZSB7IH0KIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90
PiBmcmFtZUlEKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gV1RGOjpudWxsb3B0OyB9CisgICAg
T3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gV1RGOjpudWxsb3B0OyB9CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFdURjo6bnVsbG9wdDsgfQogICAgIFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCgpIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDA3NDg3NjExOGRjNjkxYWE3YzhhZGE5N2I3OTcxMzcz
M2EyOGE2OTUuLmVkODQ3Y2IwNDc4NTI1ZTUyMTBmMWNjODViN2ZlYzUzY2U3MjIyZWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0yOSw2ICsyOSw3IEBA
CiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiRnJhbWVJZGVudGlmaWVyLmgiCiAjaW5jbHVk
ZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIkxheW91dE1pbGVzdG9uZS5oIgogI2lu
Y2x1ZGUgIkxpbmtJY29uLmgiCkBAIC0xMjgsNyArMTI5LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBtYWtlUmVwcmVzZW50YXRpb24oRG9jdW1lbnRMb2FkZXIqKSA9IDA7CiAKICAgICB2
aXJ0dWFsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQoKSBjb25zdCA9IDA7Ci0gICAg
dmlydHVhbCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0
dWFsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCgpIGNvbnN0ID0gMDsKICAgICB2
aXJ0dWFsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0ID0gMDsKIAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdh
dGlvbkFjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5j
cHAKaW5kZXggNjJiYTJkZDJmNzcwYTQwNmUxNWM5MDM5NWU0MTdjNDJjMjhmNTIwZS4uYmQ3Mzhl
MDg5NTdlMmZkODRkYTA1NWFiNDUzZTFhNDNlMGIyODhkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcApAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBOYXZpZ2F0aW9uQWN0aW9uOjpSZXF1ZXN0ZXI6OlJlcXVlc3Rlcihjb25zdCBEb2N1
bWVudCYgZG9jdW1lbnQpCiAgICAgOiBtX3VybCB7IFVSTCB7IGRvY3VtZW50LnVybCgpIH0gfQog
ICAgICwgbV9vcmlnaW4geyBtYWtlUmVmUHRyKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkpIH0K
LSAgICAsIG1fcGFnZUlEQW5kRnJhbWVJRFBhaXIgeyBkb2N1bWVudC5mcmFtZSgpID8gc3RkOjpt
YWtlX3BhaXIoZG9jdW1lbnQuZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkucGFnZUlEKCkudmFs
dWVPcihQYWdlSWRlbnRpZmllciB7IH0pLCBkb2N1bWVudC5mcmFtZSgpLT5sb2FkZXIoKS5jbGll
bnQoKS5mcmFtZUlEKCkudmFsdWVPcigwKSkgOiBzdGQ6Om1ha2VfcGFpcjxQYWdlSWRlbnRpZmll
ciwgdWludDY0X3Q+KHsgfSwgMCkgfQorICAgICwgbV9wYWdlSURBbmRGcmFtZUlEUGFpciB7IGRv
Y3VtZW50LmZyYW1lKCkgPyBzdGQ6Om1ha2VfcGFpcihkb2N1bWVudC5mcmFtZSgpLT5sb2FkZXIo
KS5jbGllbnQoKS5wYWdlSUQoKS52YWx1ZU9yKFBhZ2VJZGVudGlmaWVyIHsgfSksIGRvY3VtZW50
LmZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKS52YWx1ZU9yKEZyYW1lSWRlbnRp
ZmllciB7IH0pKSA6IHN0ZDo6bWFrZV9wYWlyPFBhZ2VJZGVudGlmaWVyLCBGcmFtZUlkZW50aWZp
ZXI+KHsgfSwgeyB9KSB9CiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9OYXZpZ2F0aW9uQWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFj
dGlvbi5oCmluZGV4IDM1Yzk2MWFhMTU0N2I4ZWEwYzRiOTA0MDcwM2M4NWQzZWE4ZTdlNTcuLjBh
MDIxZDRmYzc5ZDk2YjNmMmE4OGJhZTQwNDU2MTkxMDRjZTkwYjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAi
QWRDbGlja0F0dHJpYnV0aW9uLmgiCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRJdGVtSWRlbnRpZmll
ci5oIgorI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVy
VHlwZXMuaCIKICNpbmNsdWRlICJMYXlvdXRQb2ludC5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlm
aWVyLmgiCkBAIC02NCw3ICs2NSw3IEBAIHB1YmxpYzoKICAgICBOYXZpZ2F0aW9uQWN0aW9uKE5h
dmlnYXRpb25BY3Rpb24mJik7CiAgICAgTmF2aWdhdGlvbkFjdGlvbiYgb3BlcmF0b3I9KE5hdmln
YXRpb25BY3Rpb24mJik7CiAKLSAgICB1c2luZyBQYWdlSURBbmRGcmFtZUlEUGFpciA9IHN0ZDo6
cGFpcjxQYWdlSWRlbnRpZmllciwgdWludDY0X3QgLyogZnJhbWVJRCAqLz47CisgICAgdXNpbmcg
UGFnZUlEQW5kRnJhbWVJRFBhaXIgPSBzdGQ6OnBhaXI8UGFnZUlkZW50aWZpZXIsIEZyYW1lSWRl
bnRpZmllcj47IC8vIEZJWE1FOiBVc2UgR2xvYmFsRnJhbWVJZGVudGlmaWVyLgogICAgIGNsYXNz
IFJlcXVlc3RlciB7CiAgICAgcHVibGljOgogICAgICAgICBSZXF1ZXN0ZXIoY29uc3QgRG9jdW1l
bnQmKTsKQEAgLTcyLDcgKzczLDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBVUkwmIHVybCgp
IGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9CiAgICAgICAgIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBz
ZWN1cml0eU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuICptX29yaWdpbjsgfQogICAgICAgICBQYWdl
SWRlbnRpZmllciBwYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VJREFuZEZyYW1lSURQYWly
LmZpcnN0OyB9Ci0gICAgICAgIHVpbnQ2NF90IGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX3Bh
Z2VJREFuZEZyYW1lSURQYWlyLnNlY29uZDsgfQorICAgICAgICBGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUlEQW5kRnJhbWVJRFBhaXIuc2Vjb25kOyB9CiAg
ICAgcHJpdmF0ZToKICAgICAgICAgVVJMIG1fdXJsOwogICAgICAgICBSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+IG1fb3JpZ2luOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVD
bGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggYzI1YTAy
NGJjMDYzYzU4ZjNiMjhiZDc5Y2JiMDMzODQ0MjZjOGM1ZS4uZThhNWRlMzNlZDE3OTI2YzlhYTg1
NmIwODE2YjRlZWNmODJjOTRmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0z
MCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRGlzcGxheVJlZnJlc2hNb25pdG9yLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnRTdG9yYWdlQWNjZXNzLmgiCiAjaW5jbHVkZSAiRm9jdXNEaXJlY3Rpb24uaCIK
KyNpbmNsdWRlICJGcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgog
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIK
QEAgLTQ4Niw4ICs0ODcsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBSZWZQdHI8SWNvbj4gY3Jl
YXRlSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiAvKiBmaWxlbmFtZXMgKi8pID0g
MDsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgdmlydHVhbCB2
b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiAvKnN1YkZyYW1lRG9tYWlu
Ki8sIFJlZ2lzdHJhYmxlRG9tYWluJiYgLyp0b3BGcmFtZURvbWFpbiovLCB1aW50NjRfdCAvKmZy
YW1lSUQqLywgUGFnZUlkZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiAv
KnN1YkZyYW1lRG9tYWluKi8sIFJlZ2lzdHJhYmxlRG9tYWluJiYgLyp0b3BGcmFtZURvbWFpbiov
LCB1aW50NjRfdCAvKmZyYW1lSUQqLywgUGFnZUlkZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhh
bmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdh
c1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihTdG9yYWdl
QWNjZXNzV2FzR3JhbnRlZDo6Tm8sIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bjo6Tm8pOyB9
CisgICAgdmlydHVhbCB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiAv
KnN1YkZyYW1lRG9tYWluKi8sIFJlZ2lzdHJhYmxlRG9tYWluJiYgLyp0b3BGcmFtZURvbWFpbiov
LCBGcmFtZUlkZW50aWZpZXIsIFBhZ2VJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoZmFs
c2UpOyB9CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxl
RG9tYWluJiYgLypzdWJGcmFtZURvbWFpbiovLCBSZWdpc3RyYWJsZURvbWFpbiYmIC8qdG9wRnJh
bWVEb21haW4qLywgRnJhbWVJZGVudGlmaWVyLCBQYWdlSWRlbnRpZmllciwgV1RGOjpDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJv
bXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKFN0
b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOjpObywgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpO
byk7IH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lSWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1ZDQ5NjdhYjFiNDU0MjM1OGU4
NjcyNDA1Y2I2NmI3ZDc4ZDcyMjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lSWRlbnRpZmllci5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworZW51bSBGcmFtZUlkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIEZyYW1l
SWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8RnJhbWVJZGVudGlmaWVyVHlwZT47CisKK2lu
bGluZSBGcmFtZUlkZW50aWZpZXIgZnJhbWVJZGVudGlmaWVyRnJvbUlEKHVpbnQ2NF90IGZyYW1l
SUQpCit7CisgICAgcmV0dXJuIG1ha2VPYmplY3RJZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5
cGU+KGZyYW1lSUQpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ds
b2JhbEZyYW1lSWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9HbG9iYWxGcmFtZUlk
ZW50aWZpZXIuaAppbmRleCAwZDdiM2RiZjcyZjgxZTRmZDYyYTczZmVkMjU4MWNlYWVlMTY3YjRh
Li43MDkzNDY3YjEyZjg1NjYxYThmN2ZhZGYwMmIzNTc3OTk0ZWI2YTAzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0dsb2JhbEZyYW1lSWRlbnRpZmllci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvR2xvYmFsRnJhbWVJZGVudGlmaWVyLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAog
I3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJGcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJQ
YWdlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogCkBAIC0zMyw3ICsz
NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIEZyYW1lIGlkZW50aWZpZXIgdGhhdCBpcyB1
bmlxdWUgYWNyb3NzIGFsbCBXZWJDb250ZW50IHByb2Nlc3Nlcy4KIHN0cnVjdCBHbG9iYWxGcmFt
ZUlkZW50aWZpZXIgewogICAgIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRDsKLSAgICB1aW50NjRfdCBm
cmFtZUlEOworICAgIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEOwogCiAgICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNs
YXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxHbG9iYWxGcmFtZUlkZW50aWZpZXI+IGRlY29k
ZShEZWNvZGVyJik7CkBAIC01Myw3ICs1NCw3IEBAIE9wdGlvbmFsPEdsb2JhbEZyYW1lSWRlbnRp
Zmllcj4gR2xvYmFsRnJhbWVJZGVudGlmaWVyOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAg
ICBpZiAoIXBhZ2VJRCkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIE9wdGlv
bmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJh
bWVJRDsKICAgICBkZWNvZGVyID4+IGZyYW1lSUQ7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9Db29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9Db29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eS5oCmluZGV4
IGEzMzAxOWY5ZDViMmFlZDI2MDc0NjY5NDAxZmQ3MzIyZjAyZDUxNTcuLmM2ODZjODFiNTM3MWE2
N2NkZDhhZTA5YjRhMTAxMzJhNTJkNWIyZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Nvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5
LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQ29va2llSmFy
LmgiCisjaW5jbHVkZSAiRnJhbWVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50aWZp
ZXIuaCIKICNpbmNsdWRlICJTYW1lU2l0ZUluZm8uaCIKICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklE
Lmg+CkBAIC0zOCw3ICszOSw3IEBAIHN0cnVjdCBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94
eSB7CiAgICAgVVJMIGZpcnN0UGFydHk7CiAgICAgU2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbzsK
ICAgICBVUkwgdXJsOwotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlv
bmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmll
cj4gcGFnZUlEOwogICAgIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVz
IHsgSW5jbHVkZVNlY3VyZUNvb2tpZXM6Ok5vIH07CiAKQEAgLTc4LDggKzc5LDkgQEAgT3B0aW9u
YWw8Q29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHk+IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVs
ZFByb3h5OjpkZWNvZGUoRGUKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHVybCkpCiAgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRDsK
LSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGZyYW1lSUQpKQorICAgIE9wdGlvbmFsPE9wdGlvbmFs
PEZyYW1lSWRlbnRpZmllcj4+IGZyYW1lSUQ7CisgICAgZGVjb2RlciA+PiBmcmFtZUlEOworICAg
IGlmICghZnJhbWVJRCkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAogICAgIE9wdGlv
bmFsPE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPj4gcGFnZUlEOwpAQCAtOTEsNyArOTMsNyBAQCBP
cHRpb25hbDxDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eT4gQ29va2llUmVxdWVzdEhlYWRl
ckZpZWxkUHJveHk6OmRlY29kZShEZQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5jbHVkZVNl
Y3VyZUNvb2tpZXMpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgcmV0dXJu
IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5IHsgKnNlc3Npb25JRCwgV1RGTW92ZShmaXJz
dFBhcnR5KSwgV1RGTW92ZShzYW1lU2l0ZUluZm8pLCBXVEZNb3ZlKHVybCksIGZyYW1lSUQsICpw
YWdlSUQsIGluY2x1ZGVTZWN1cmVDb29raWVzIH07CisgICAgcmV0dXJuIENvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFByb3h5IHsgKnNlc3Npb25JRCwgV1RGTW92ZShmaXJzdFBhcnR5KSwgV1RGTW92
ZShzYW1lU2l0ZUluZm8pLCBXVEZNb3ZlKHVybCksICpmcmFtZUlELCAqcGFnZUlELCBpbmNsdWRl
U2VjdXJlQ29va2llcyB9OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lv
bi5jcHAKaW5kZXggZTcxOTA3ZDk3N2RmNTkyNzNmNDkxOWM1NjUxYWYxNzM2ZmIxYTY3Zi4uZjRi
MDlhOGQ1ZTFhZDk0ODRlZDdiMzJlYjU2ZTM5NmY3NWRhYzkwZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNw
cApAQCAtNzksMTIgKzc5LDEyIEBAIGJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzaG91bGRC
bG9ja1RoaXJkUGFydHlDb29raWVzQnV0S2VlcEZpcnN0UGFydHlDb29raWVzCiAgICAgcmV0dXJu
IG1fcmVnaXN0cmFibGVEb21haW5zVG9CbG9ja0J1dEtlZXBDb29raWVzRm9yLmNvbnRhaW5zKHJl
Z2lzdHJhYmxlRG9tYWluKTsKIH0KIAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNob3Vs
ZEJsb2NrQ29va2llcyhjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIE9wdGlvbmFsPHVp
bnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEKSBjb25zdAor
Ym9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNob3VsZEJsb2NrQ29va2llcyhjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkgY29uc3QKIHsKICAgICByZXR1cm4gc2hv
dWxkQmxvY2tDb29raWVzKHJlcXVlc3QuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgcmVxdWVzdC51
cmwoKSwgZnJhbWVJRCwgcGFnZUlEKTsKIH0KICAgICAKLWJvb2wgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5Rm9yQ29va2llcywg
Y29uc3QgVVJMJiByZXNvdXJjZSwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFs
PFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQpIGNvbnN0Citib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6c2hvdWxkQmxvY2tDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eUZvckNvb2tpZXMsIGNv
bnN0IFVSTCYgcmVzb3VyY2UsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0
aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkgY29uc3QKIHsKICAgICBSZWdpc3RyYWJsZURv
bWFpbiBmaXJzdFBhcnR5RG9tYWluIHsgZmlyc3RQYXJ0eUZvckNvb2tpZXMgfTsKICAgICBpZiAo
Zmlyc3RQYXJ0eURvbWFpbi5pc0VtcHR5KCkpCkBAIC0xMzYsNyArMTM2LDcgQEAgdm9pZCBOZXR3
b3JrU3RvcmFnZVNlc3Npb246OnJlbW92ZVByZXZhbGVudERvbWFpbnMoY29uc3QgVmVjdG9yPFJl
Z2lzdHJhYmxlRG9tYWkKICAgICB9CiB9CiAKLWJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpo
YXNTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPHVpbnQ2
NF90PiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQpIGNvbnN0Citib29sIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
cmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWlu
LCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCkgY29uc3QKIHsKICAgICBpZiAoZnJhbWVJRCkgewogICAgICAgICBhdXRvIGZyYW1lc0dyYW50
ZWRJdGVyYXRvciA9IG1fZnJhbWVzR3JhbnRlZFN0b3JhZ2VBY2Nlc3MuZmluZChwYWdlSUQpOwpA
QCAtMTY5LDcgKzE2OSw3IEBAIFZlY3RvcjxTdHJpbmc+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
Z2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoKSBjb25zdAogICAgIHJldHVybiBlbnRyaWVzOwog
fQogICAgIAotdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdyYW50U3RvcmFnZUFjY2Vzcyhj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgUGFn
ZUlkZW50aWZpZXIgcGFnZUlEKQordm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdyYW50U3Rv
cmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50
aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKIHsKICAgICBpZiAoIWZyYW1l
SUQpIHsKICAgICAgICAgaWYgKGZpcnN0UGFydHlEb21haW4uaXNFbXB0eSgpKQpAQCAtMTkxLDcg
KzE5MSw3IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpncmFudFN0b3JhZ2VBY2Nlc3Mo
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlCiAKICAgICBhdXRvIHBhZ2VzR3JhbnRl
ZEl0ZXJhdG9yID0gbV9mcmFtZXNHcmFudGVkU3RvcmFnZUFjY2Vzcy5maW5kKHBhZ2VJRCk7CiAg
ICAgaWYgKHBhZ2VzR3JhbnRlZEl0ZXJhdG9yID09IG1fZnJhbWVzR3JhbnRlZFN0b3JhZ2VBY2Nl
c3MuZW5kKCkpIHsKLSAgICAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVnaXN0cmFibGVEb21haW4s
IERlZmF1bHRIYXNoPHVpbnQ2NF90Pjo6SGFzaCwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFz
aFRyYWl0czx1aW50NjRfdD4+IGVudHJ5OworICAgICAgICBIYXNoTWFwPEZyYW1lSWRlbnRpZmll
ciwgUmVnaXN0cmFibGVEb21haW4+IGVudHJ5OwogICAgICAgICBlbnRyeS5hZGQoZnJhbWVJRC52
YWx1ZSgpLCByZXNvdXJjZURvbWFpbik7CiAgICAgICAgIG1fZnJhbWVzR3JhbnRlZFN0b3JhZ2VB
Y2Nlc3MuYWRkKHBhZ2VJRCwgZW50cnkpOwogICAgIH0gZWxzZSB7CkBAIC0yMDMsNyArMjAzLDcg
QEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2UKICAgICB9CiB9CiAKLXZvaWQgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpyZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
UGFnZUlkZW50aWZpZXIgcGFnZUlEKQordm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnJlbW92
ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50
aWZpZXIgcGFnZUlEKQogewogICAgIGF1dG8gaXRlcmF0aW9uID0gbV9mcmFtZXNHcmFudGVkU3Rv
cmFnZUFjY2Vzcy5maW5kKHBhZ2VJRCk7CiAgICAgaWYgKGl0ZXJhdGlvbiA9PSBtX2ZyYW1lc0dy
YW50ZWRTdG9yYWdlQWNjZXNzLmVuZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKaW5kZXggYzhlZjhmN2JhYjc1
ZmQ5OTc5YjI4MmY1ZjVhODcwMmVmODBjODhiMy4uOGRkZjU1YjRhMWZjYTVjNTRhNDk5MGEzYTM3
YzA1OTI2NjhmZTAwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21h
IG9uY2UKIAogI2luY2x1ZGUgIkNyZWRlbnRpYWxTdG9yYWdlLmgiCisjaW5jbHVkZSAiRnJhbWVJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJSZWdp
c3RyYWJsZURvbWFpbi5oIgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KQEAgLTEyMyw3ICsx
MjQsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjb29raWVzRW5hYmxlZCgp
IGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29va2llKGNvbnN0IENvb2tpZSYp
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29va2llcyhjb25zdCBWZWN0b3I8Q29va2ll
PiYsIGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYgbWFpbkRvY3VtZW50VVJMKTsKLSAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQs
IE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJikgY29uc3Q7CisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmll
cj4sIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVDb29raWUoY29uc3QgQ29va2llJik7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBkZWxldGVDb29raWUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJikg
Y29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVBbGxDb29raWVzKCk7CkBAIC0x
MzIsMjYgKzEzMywyNiBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVD
b29raWVzRm9ySG9zdG5hbWVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjb29raWVIb3N0TmFtZXMs
IEluY2x1ZGVIdHRwT25seUNvb2tpZXMpOwogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxDb29r
aWU+IGdldEFsbENvb2tpZXMoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8Q29va2llPiBn
ZXRDb29raWVzKGNvbnN0IFVSTCYpOwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgZ2V0UmF3Q29v
a2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVS
TCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4s
IFZlY3RvcjxDb29raWU+JikgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBnZXRSYXdD
b29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3Qg
VVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+
LCBWZWN0b3I8Q29va2llPiYpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZmx1c2hD
b29raWVTdG9yZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2V0SG9zdG5hbWVzV2l0aENv
b2tpZXMoSGFzaFNldDxTdHJpbmc+JiBob3N0bmFtZXMpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0
ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZXNGb3JET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJh
bWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29u
c3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llUmVx
dWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0
ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8
UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7CisgICAgV0VCQ09S
RV9FWFBPUlQgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvckRPTShjb25zdCBVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZy
YW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNv
b2tpZXMpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+
IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llUmVxdWVzdEhl
YWRlckZpZWxkVmFsdWUoY29uc3QgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkmKSBjb25z
dDsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgT3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPikgY29uc3Q7
Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgVVJMJiBm
aXJzdFBhcnR5Rm9yQ29va2llcywgY29uc3QgVVJMJiByZXNvdXJjZSwgT3B0aW9uYWw8dWludDY0
X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPikgY29uc3Q7CisgICAgV0VCQ09S
RV9FWFBPUlQgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jiwg
T3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+KSBjb25z
dDsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNob3VsZEJsb2NrQ29va2llcyhjb25zdCBVUkwm
IGZpcnN0UGFydHlGb3JDb29raWVzLCBjb25zdCBVUkwmIHJlc291cmNlLCBPcHRpb25hbDxGcmFt
ZUlkZW50aWZpZXI+LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4pIGNvbnN0OwogICAgIFdFQkNP
UkVfRVhQT1JUIGJvb2wgc2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2hvdWxkQmxvY2tU
aGlyZFBhcnR5Q29va2llc0J1dEtlZXBGaXJzdFBhcnR5Q29va2llc0Zvcihjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UHJldmFsZW50
RG9tYWluc1RvQmxvY2tBbmREZWxldGVDb29raWVzRm9yKGNvbnN0IFZlY3RvcjxSZWdpc3RyYWJs
ZURvbWFpbj4mKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFByZXZhbGVudERvbWFpbnNU
b0Jsb2NrQnV0S2VlcENvb2tpZXNGb3IoY29uc3QgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiYp
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMo
T3B0aW9uYWw8U2Vjb25kcz4pOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlUHJldmFs
ZW50RG9tYWlucyhjb25zdCBWZWN0b3I8UmVnaXN0cmFibGVEb21haW4+JiBkb21haW5zKTsKLSAg
ICBXRUJDT1JFX0VYUE9SVCBib29sIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0
eURvbWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyKSBjb25z
dDsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmly
c3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgUGFnZUlkZW50aWZpZXIp
IGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxTdHJpbmc+IGdldEFsbFN0b3JhZ2VB
Y2Nlc3NFbnRyaWVzKCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBncmFudFN0b3Jh
Z2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQsIFBhZ2VJZGVudGlmaWVyKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVN0
b3JhZ2VBY2Nlc3NGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllcik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQ
YXJ0eURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgUGFnZUlkZW50aWZpZXIpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKEZyYW1l
SWRlbnRpZmllciwgUGFnZUlkZW50aWZpZXIpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xl
YXJQYWdlU3BlY2lmaWNEYXRhRm9yUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQYWdlSWRlbnRpZmll
cik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVBbGxTdG9yYWdlQWNjZXNzKCk7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291
cmNlcyhTZWNvbmRzKTsKQEAgLTE4NSw3ICsxODYsNyBAQCBwcml2YXRlOgogICAgIE9wdGlvbmFs
PFNlY29uZHM+IGNsaWVudFNpZGVDb29raWVDYXAoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZp
cnN0UGFydHksIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPikgY29uc3Q7CiAgICAgSGFzaFNldDxS
ZWdpc3RyYWJsZURvbWFpbj4gbV9yZWdpc3RyYWJsZURvbWFpbnNUb0Jsb2NrQW5kRGVsZXRlQ29v
a2llc0ZvcjsKICAgICBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiBtX3JlZ2lzdHJhYmxlRG9t
YWluc1RvQmxvY2tCdXRLZWVwQ29va2llc0ZvcjsKLSAgICBIYXNoTWFwPFBhZ2VJZGVudGlmaWVy
LCBIYXNoTWFwPHVpbnQ2NF90LCBSZWdpc3RyYWJsZURvbWFpbiwgRGVmYXVsdEhhc2g8dWludDY0
X3Q+OjpIYXNoLCBXVEY6OlVuc2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPHVpbnQ2NF90Pj4+
IG1fZnJhbWVzR3JhbnRlZFN0b3JhZ2VBY2Nlc3M7CisgICAgSGFzaE1hcDxQYWdlSWRlbnRpZmll
ciwgSGFzaE1hcDxGcmFtZUlkZW50aWZpZXIsIFJlZ2lzdHJhYmxlRG9tYWluPj4gbV9mcmFtZXNH
cmFudGVkU3RvcmFnZUFjY2VzczsKICAgICBIYXNoTWFwPFBhZ2VJZGVudGlmaWVyLCBIYXNoTWFw
PFJlZ2lzdHJhYmxlRG9tYWluLCBSZWdpc3RyYWJsZURvbWFpbj4+IG1fcGFnZXNHcmFudGVkU3Rv
cmFnZUFjY2VzczsKICAgICBPcHRpb25hbDxTZWNvbmRzPiBtX2NhY2hlTWF4QWdlQ2FwRm9yUHJl
dmFsZW50UmVzb3VyY2VzIHsgfTsKICAgICBPcHRpb25hbDxTZWNvbmRzPiBtX2FnZUNhcEZvckNs
aWVudFNpZGVDb29raWVzIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlLmNwcAppbmRleCBkYmEwZjEzZjQ3OWEzMzI2YmU4
NWQ2NjkzOWU1MGM2M2MxM2I2MWEwLi5iMDNmMmQyMTg4NjUxNGMyOGViMDkzNzQ4MWJjMGE5MzUz
ZDBjZDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NvY2tl
dFN0cmVhbUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9T
b2NrZXRTdHJlYW1IYW5kbGUuY3BwCkBAIC02MSw3ICs2MSw3IEBAIHZvaWQgU29ja2V0U3RyZWFt
SGFuZGxlOjpzZW5kSGFuZHNoYWtlKENTdHJpbmcmJiBoYW5kc2hha2UsIE9wdGlvbmFsPENvb2tp
ZVJlcXVlCiB7CiAgICAgaWYgKG1fc3RhdGUgPT0gQ29ubmVjdGluZyB8fCBtX3N0YXRlID09IENs
b3NpbmcpCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSwgZmFsc2UpOwot
ICAgIHBsYXRmb3JtU2VuZEhhbmRzaGFrZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3Qq
PihoYW5kc2hha2UuZGF0YSgpKSwgaGFuZHNoYWtlLmxlbmd0aCgpLCBoZWFkZXJGaWVsZFByb3h5
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgcGxhdGZvcm1TZW5kSGFuZHNoYWtl
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGhhbmRzaGFrZS5kYXRhKCkpLCBoYW5k
c2hha2UubGVuZ3RoKCksIFdURk1vdmUoaGVhZGVyRmllbGRQcm94eSksIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBTb2NrZXRTdHJlYW1IYW5kbGU6OmNsb3NlKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nv
Y29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tCmluZGV4IDg0YjczYjgzNDRiMGNhYjVh
OTA0OGI0ODVlZmIxNzZkNWQzNDA1ODEuLjg1ZjRjNjJlM2JmNzRjMGRlNTQzNWYyZjAwYmU5ODRk
ODJlYWVmNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29j
b2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbQpAQCAtMjk0
LDcgKzI5NCw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gZmlsdGVyQ29va2llcyhOU0Fy
cmF5ICp1bmZpbHRlcmVkQ29va2llcywgT3B0aW9uYWw8U2VjCiAgICAgcmV0dXJuIGZpbHRlcmVk
Q29va2llczsKIH0KIAotc3RhdGljIE5TQXJyYXkgKmNvb2tpZXNGb3JVUkwoY29uc3QgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0
X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQpCitzdGF0aWMgTlNB
cnJheSAqY29va2llc0ZvclVSTChjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24s
IGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8s
IGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlv
bmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQpCiB7CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURf
U1RBVElTVElDUykKICAgICBpZiAoc2Vzc2lvbi5zaG91bGRCbG9ja0Nvb2tpZXMoZmlyc3RQYXJ0
eSwgdXJsLCBmcmFtZUlELCBwYWdlSUQpKQpAQCAtMzA3LDcgKzMwNyw3IEBAIHN0YXRpYyBOU0Fy
cmF5ICpjb29raWVzRm9yVVJMKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwg
Y29uc3QgVVJMJiBmCiB9CiAKIGVudW0gSW5jbHVkZUhUVFBPbmx5T3JOb3QgeyBEb05vdEluY2x1
ZGVIVFRQT25seSwgSW5jbHVkZUhUVFBPbmx5IH07Ci1zdGF0aWMgc3RkOjpwYWlyPFN0cmluZywg
Ym9vbD4gY29va2llc0ZvclNlc3Npb24oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNz
aW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJ
bmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFs
PFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVIVFRQT25seU9yTm90IGluY2x1ZGVIVFRQ
T25seSwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpCitzdGF0aWMg
c3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvclNlc3Npb24oY29uc3QgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVT
aXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVu
dGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRl
SFRUUE9ubHlPck5vdCBpbmNsdWRlSFRUUE9ubHksIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1
ZGVTZWN1cmVDb29raWVzKQogewogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nl
c3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsKIApAQCAtMzYzLDEyICszNjMsMTIg
QEAgc3RhdGljIHZvaWQgZGVsZXRlQWxsSFRUUENvb2tpZXMoQ0ZIVFRQQ29va2llU3RvcmFnZVJl
ZiBjb29raWVTdG9yYWdlKQogICAgIENGSFRUUENvb2tpZVN0b3JhZ2VEZWxldGVBbGxDb29raWVz
KGNvb2tpZVN0b3JhZ2UpOwogfQogCi1zdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmNvb2tpZXNGb3JET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBT
YW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2
NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2Vj
dXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKK3N0ZDo6cGFpcjxTdHJpbmcs
IGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVy
bCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRp
Zmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykg
Y29uc3QKIHsKICAgICByZXR1cm4gY29va2llc0ZvclNlc3Npb24oKnRoaXMsIGZpcnN0UGFydHks
IHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIERvTm90SW5jbHVkZUhUVFBPbmx5
LCBpbmNsdWRlU2VjdXJlQ29va2llcyk7CiB9CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3Qg
VVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRp
Zmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykg
Y29uc3QKK3N0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29v
a2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBT
YW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1l
SWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5j
bHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIGNvb2tpZXNGb3JTZXNzaW9uKCp0aGlzLCBmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVy
bCwgZnJhbWVJRCwgcGFnZUlELCBJbmNsdWRlSFRUUE9ubHksIGluY2x1ZGVTZWN1cmVDb29raWVz
KTsKIH0KQEAgLTM3OCw3ICszNzgsNyBAQCBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbgogICAgIHJl
dHVybiBjb29raWVzRm9yU2Vzc2lvbigqdGhpcywgaGVhZGVyRmllbGRQcm94eS5maXJzdFBhcnR5
LCBoZWFkZXJGaWVsZFByb3h5LnNhbWVTaXRlSW5mbywgaGVhZGVyRmllbGRQcm94eS51cmwsIGhl
YWRlckZpZWxkUHJveHkuZnJhbWVJRCwgaGVhZGVyRmllbGRQcm94eS5wYWdlSUQsIEluY2x1ZGVI
VFRQT25seSwgaGVhZGVyRmllbGRQcm94eS5pbmNsdWRlU2VjdXJlQ29va2llcyk7CiB9CiAKLXZv
aWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVy
bCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBw
YWdlSUQsIGNvbnN0IFN0cmluZyYgY29va2llU3RyKSBjb25zdAordm9pZCBOZXR3b3JrU3RvcmFn
ZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
U2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFt
ZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGNv
bnN0IFN0cmluZyYgY29va2llU3RyKSBjb25zdAogewogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJp
dmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsKIApAQCAtNDQz
LDcgKzQ0Myw3IEBAIGJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVzRW5hYmxlZCgp
IGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6Z2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5m
byYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1l
SUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFZlY3RvcjxDb29raWU+JiByYXdD
b29raWVzKSBjb25zdAorYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldFJhd0Nvb2tpZXMo
Y29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywg
Y29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgVmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNv
bnN0CiB7CiAgICAgcmF3Q29va2llcy5jbGVhcigpOwogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9Db29raWVKYXJDdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9Db29raWVKYXJDdXJsLmNwcAppbmRleCAzOTRjMzQ2MjY2NDlkNWRlYTg2OWUwOTViZTBkOWZh
ZTdiMWE1ZWNiLi43MTk4YWRmMGI0MmZlZDBjYjQxODM0MGJlMTc5YzNmOTdjOTk1MWE5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3Vy
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUph
ckN1cmwuY3BwCkBAIC01OSw3ICs1OSw3IEBAIHN0YXRpYyBTdHJpbmcgY29va2llc0ZvclNlc3Np
b24oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmCiAgICAg
cmV0dXJuIGNvb2tpZXMudG9TdHJpbmcoKTsKIH0KIAotdm9pZCBDb29raWVKYXJDdXJsOjpzZXRD
b29raWVzRnJvbURPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9w
dGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIGNvbnN0
IFN0cmluZyYgdmFsdWUpIGNvbnN0Cit2b2lkIENvb2tpZUphckN1cmw6OnNldENvb2tpZXNGcm9t
RE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJh
bWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIGNvbnN0IFN0
cmluZyYgdmFsdWUpIGNvbnN0CiB7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwogCkBAIC04
Miw3ICs4Miw3IEBAIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IENvb2tpZUphckN1cmw6OmNvb2tp
ZXNGb3JET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uCiAgICAgcmV0dXJuIHsgY29va2ll
c0ZvclNlc3Npb24oc2Vzc2lvbiwgZmlyc3RQYXJ0eSwgdXJsLCBmYWxzZSksIGZhbHNlIH07CiB9
CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IENvb2tpZUphckN1cmw6OmNvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHVlKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29u
c3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwg
T3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdl
SUQsIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAorc3RkOjpwYWlyPFN0cmluZywgYm9vbD4g
Q29va2llSmFyQ3VybDo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZy
YW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29r
aWVzKSBjb25zdAogewogICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKICAgICBVTlVTRURfUEFS
QU0ocGFnZUlEKTsKQEAgLTExMiw3ICsxMTIsNyBAQCBib29sIENvb2tpZUphckN1cmw6OmNvb2tp
ZXNFbmFibGVkKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbikgY29uc3QKICAg
ICByZXR1cm4gc2Vzc2lvbi5jb29raWVEYXRhYmFzZSgpLmlzRW5hYmxlZCgpOwogfQogCi1ib29s
IENvb2tpZUphckN1cmw6OmdldFJhd0Nvb2tpZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNv
bnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+IHBhZ2VJRCwgVmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0Citib29s
IENvb2tpZUphckN1cmw6OmdldFJhd0Nvb2tpZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNv
bnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFs
PFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFZlY3RvcjxDb29raWU+JiByYXdDb29raWVzKSBjb25z
dAogewogICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKICAgICBVTlVTRURfUEFSQU0ocGFnZUlE
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29r
aWVKYXJDdXJsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2ll
SmFyQ3VybC5oCmluZGV4IDI0YTA1YTIyN2FlMDZhYmExMTQzMTUyYThmYWM4NDgyOWUwMWY0MTAu
LmU2MmJjNGEwN2U4MmUzZWNmN2NmMmY2OGE0MWU0YTJhZGE3MGZiOTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJDdXJsLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuaApAQCAt
MjQsNiArMjQsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmll
ci5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgpAQCAtNDIsMTUgKzQzLDE1IEBAIGVudW0gY2xh
c3MgQ29va2llQWNjZXB0UG9saWN5OwogCiBjbGFzcyBDb29raWVKYXJDdXJsIHsKIHB1YmxpYzoK
LSAgICBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yRE9NKGNvbnN0IE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZv
JiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0OwotICAgIHZvaWQgc2V0Q29v
a2llc0Zyb21ET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBjb25zdCBTdHJpbmcmKSBjb25z
dDsKKyAgICBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yRE9NKGNvbnN0IE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJ
bmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKKyAgICB2
b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIGNv
bnN0IFN0cmluZyYpIGNvbnN0OwogICAgIHZvaWQgc2V0Q29va2llc0Zyb21IVFRQUmVzcG9uc2Uo
Y29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBVUkwmLCBjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICB2b2lkIHNldENvb2tpZUFjY2VwdFBv
bGljeShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBDb29raWVBY2NlcHRQb2xpY3kpIGNv
bnN0OwogICAgIENvb2tpZUFjY2VwdFBvbGljeSBjb29raWVBY2NlcHRQb2xpY3koY29uc3QgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uJikgY29uc3Q7CiAgICAgYm9vbCBjb29raWVzRW5hYmxlZChjb25z
dCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mKSBjb25zdDsKLSAgICBzdGQ6OnBhaXI8U3RyaW5nLCBi
b29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBOZXR3b3JrU3RvcmFnZVNl
c3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0
IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmll
cj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKKyAgICBzdGQ6OnBhaXI8U3RyaW5nLCBi
b29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBOZXR3b3JrU3RvcmFnZVNl
c3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0
IFVSTCYsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7CiAgICAgc3RkOjpwYWlyPFN0
cmluZywgYm9vbD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uJiwgY29uc3QgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkmKSBjb25z
dDsKLSAgICBib29sIGdldFJhd0Nvb2tpZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwg
Y29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBP
cHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBWZWN0
b3I8Q29va2llPiYpIGNvbnN0OworICAgIGJvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5m
byYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+LCBWZWN0b3I8Q29va2llPiYpIGNvbnN0OwogICAgIHZvaWQgZGVs
ZXRlQ29va2llKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYsIGNvbnN0
IFN0cmluZyYpIGNvbnN0OwogICAgIHZvaWQgZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoY29uc3Qg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgSGFzaFNldDxTdHJpbmc+JiBob3N0bmFtZXMpIGNvbnN0
OwogICAgIHZvaWQgZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lcyhjb25zdCBOZXR3b3JrU3RvcmFn
ZVNlc3Npb24mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgY29va2llSG9zdE5hbWVzKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3Jr
U3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAppbmRleCBlNGM4YjBmMTNlNmQwODlh
NTg5MmFhN2FlMGE5YjgyMTU4NWJiOWE0Li5lOTYxYzI4ODNiODYzMDEwNWRhN2Q3ODA3ZjNmYmJl
MjYxYTIwNjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCkBAIC0yNjAs
NyArMjYwLDcgQEAgc3RhdGljIGlubGluZSBib29sIGh0dHBPbmx5Q29va2llRXhpc3RzKGNvbnN0
IEdTTGlzdCogY29va2llcywgY29uc3QgZ2NoYXIqIG5hbWUKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVzRnJvbURPTShjb25zdCBV
UkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRp
b25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QKK3ZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpz
ZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5m
byYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9w
dGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGNvbnN0IFN0cmluZyYgdmFsdWUpIGNvbnN0
CiB7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwogICAgIFVOVVNFRF9QQVJBTShwYWdlSUQp
OwpAQCAtNDEzLDcgKzQxMyw3IEBAIFZlY3RvcjxDb29raWU+IE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6Z2V0Q29va2llcyhjb25zdCBVUkwmIHVybCkKICAgICByZXR1cm4gY29va2llczsKIH0KIAot
Ym9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWlu
dDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFZlY3RvcjxD
b29raWU+JiByYXdDb29raWVzKSBjb25zdAorYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246Omdl
dFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBj
b25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25h
bDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBWZWN0b3I8Q29va2llPiYgcmF3Q29va2llcykgY29u
c3QKIHsKICAgICBVTlVTRURfUEFSQU0oZmlyc3RQYXJ0eSk7CiAgICAgVU5VU0VEX1BBUkFNKGZy
YW1lSUQpOwpAQCAtNDgzLDcgKzQ4Myw3IEBAIHN0YXRpYyBzdGQ6OnBhaXI8U3RyaW5nLCBib29s
PiBjb29raWVzRm9yU2Vzc2lvbihjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlCiAgICAg
cmV0dXJuIHsgU3RyaW5nOjpmcm9tVVRGOChjb29raWVIZWFkZXIuZ2V0KCkpLCBkaWRBY2Nlc3NT
ZWN1cmVDb29raWVzIH07CiB9CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5j
bHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CitzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmNvb2tpZXNGb3JET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVy
PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJl
Q29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKIHsKICAgICBVTlVTRURfUEFSQU0o
Zmlyc3RQYXJ0eSk7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwpAQCAtNDkxLDcgKzQ5MSw3
IEBAIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2ll
c0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFyCiAgICAgcmV0dXJuIGNvb2tpZXNGb3JTZXNzaW9u
KCp0aGlzLCB1cmwsIGZhbHNlLCBpbmNsdWRlU2VjdXJlQ29va2llcyk7CiB9CiAKLXN0ZDo6cGFp
cjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llUmVxdWVzdEhlYWRl
ckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBj
b25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29r
aWVzKSBjb25zdAorc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Ojpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZp
ZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1
cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAogewogICAgIFVOVVNFRF9QQVJB
TShmaXJzdFBhcnR5KTsKICAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAppbmRleCA2ODdk
MGIwNDYxYWZkZTdjMDcyOThjNmM5ZWZmZDI2MTk0YmY0N2FjLi43NjNiNDc1OWU0MzNmODcxMzBi
Mzk0MDA2MjM0MGIyNjg0OGVhOGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKQEAgLTcxNiw3ICs3MTYsNyBAQCB2b2lkIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpzeW5jU3RvcmFnZUltbWVkaWF0ZWx5
KCkKICAgICBtX2RhdGFiYXNlLnJ1blZhY3V1bUNvbW1hbmQoKTsKIH0KIAotdm9pZCBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJG
cmFtZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFt
ZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJRD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9p
ZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyhj
b25zdCBTdWJGcmFtZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFRvcEZyYW1lRG9tYWlu
JiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBQYWdl
SWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTc0
Myw3ICs3NDMsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpo
YXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJgogICAgIH0pOwogfQogCi12b2lk
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vz
cyhTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZy
YW1lRG9tYWluLCBGcmFtZUlEIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlcXVlc3RTdG9y
YWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWlu
JiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAK
QEAgLTgwNCw3ICs4MDQsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyKERvbWFpbgogICAgIGdyYW50U3Rv
cmFnZUFjY2Vzc0ludGVybmFsKFdURk1vdmUoZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzKSwg
V1RGTW92ZShvcGVuZXJEb21haW4pLCBXVEY6Om51bGxvcHQsIG9wZW5lclBhZ2VJRCwgU3RvcmFn
ZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpObywgW10oU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpIHsg
fSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW50
U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURv
bWFpbiYmIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBw
YWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93biwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFudFN0
b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21h
aW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtODE4
LDcgKzgxOCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omdy
YW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1CiAgICAgZ3JhbnRTdG9yYWdlQWNj
ZXNzSW50ZXJuYWwoV1RGTW92ZShzdWJGcmFtZURvbWFpbiksIFdURk1vdmUodG9wRnJhbWVEb21h
aW4pLCBmcmFtZUlELCBwYWdlSUQsIHByb21wdFdhc1Nob3duLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21h
aW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPEZyYW1lSUQ+IGZy
YW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3du
IHByb21wdFdhc1Nob3duTm93T3JFYXJsaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3Jh
Z2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFN1
YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVE
b21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIg
cGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd25Ob3dPckVh
cmxpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5o
CmluZGV4IDNjOGQyYjFmMTY1NDkzYzkzY2E1ZDgyYmMwMjcyZjkxM2I3YTA3ZmEuLmQyNTZiZTIx
Y2ZmN2IxZjcwNTU2NDAzMWE1NzVmNWU1ZDIzMzBlZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oCkBAIC05MSw5ICs5MSw5IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgY2FsY3VsYXRlQW5kU3VibWl0VGVsZW1ldHJ5KCkgY29uc3Qgb3Zl
cnJpZGU7CiAKLSAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4m
LCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPEZyYW1lSUQ+LCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURv
bWFpbiYmLCBGcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBncmFu
dFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgRnJhbWVJ
RCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2Fz
R3JhbnRlZCk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBT
dWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8V2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nl
c3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChT
dG9yYWdlQWNjZXNzU3RhdHVzKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBncmFudFN0b3JhZ2VB
Y2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vz
c1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VB
Y2Nlc3NXYXNHcmFudGVkKT4mJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGxvZ0ZyYW1lTmF2aWdh
dGlvbihjb25zdCBOYXZpZ2F0ZWRUb0RvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgY29u
c3QgTmF2aWdhdGVkRnJvbURvbWFpbiYsIGJvb2wgaXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFt
ZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb24oY29uc3QgVG9wRnJhbWVE
b21haW4mKSBvdmVycmlkZTsKQEAgLTE1Myw3ICsxNTMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
c2V0UHJldmFsZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBSZXNvdXJjZUxv
YWRQcmV2YWxlbmNlKTsKICAgICB1bnNpZ25lZCByZWN1cnNpdmVseUZpbmROb25QcmV2YWxlbnRE
b21haW5zVGhhdFJlZGlyZWN0ZWRUb1RoaXNEb21haW4odW5zaWduZWQgcHJpbWFyeURvbWFpbklE
LCBTdGRTZXQ8dW5zaWduZWQ+JiBub25QcmV2YWxlbnRSZWRpcmVjdGlvblNvdXJjZXMsIHVuc2ln
bmVkIG51bWJlck9mUmVjdXJzaXZlQ2FsbHMpOwogICAgIHZvaWQgc2V0RG9tYWluc0FzUHJldmFs
ZW50KFN0ZFNldDx1bnNpZ25lZD4mJik7Ci0gICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3NJbnRl
cm5hbChTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBPcHRpb25hbDxGcmFtZUlE
PiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2Fz
R3JhbnRlZCk+JiYpOworICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoU3ViRnJh
bWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQ
cm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNj
ZXNzV2FzR3JhbnRlZCk+JiYpOwogICAgIHZvaWQgbWFya0FzUHJldmFsZW50SWZIYXNSZWRpcmVj
dGVkVG9QcmV2YWxlbnQoKTsKICAgICBWZWN0b3I8UmVnaXN0cmFibGVEb21haW4+IGVuc3VyZVBy
ZXZhbGVudFJlc291cmNlc0ZvckRlYnVnTW9kZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVtb3Zl
RGF0YVJlY29yZHMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzTWVtb3J5U3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAKaW5kZXggZTIzOWZjYzgw
M2U4ZDc0NDU2MTIxOGQ2NzIxN2Y3MWVkNDFiMTg3Zi4uZjZlZTkyZjliNjhkMzJmMDdlNTIxNWQz
MDM1NDk5NTE0NGY3YTgzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NNZW1vcnlTdG9yZS5jcHAKQEAgLTIxMSw3ICsyMTEsNyBAQCB2b2lkIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6c3luY1N0b3JhZ2VJbW1lZGlhdGVseSgpCiAgICAgICAg
IG1fcGVyc2lzdGVudFN0b3JhZ2UtPnNjaGVkdWxlT3JXcml0ZU1lbW9yeVN0b3JlKFJlc291cmNl
TG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3RvcmFnZTo6Rm9yY2VJbW1lZGlhdGVXcml0ZTo6WWVz
KTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6Omhhc1N0b3Jh
Z2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBUb3BG
cmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPEZyYW1lSUQ+IGZyYW1lSUQsIFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpo
YXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29u
c3QgVG9wRnJhbWVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZp
ZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6Omlz
TWFpbigpKTsKIApAQCAtMjM1LDcgKzIzNSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c01lbW9yeVN0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiBzCiAg
ICAgfSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpyZXF1
ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFt
ZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlEIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3Jl
OjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBU
b3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
UGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nl
c3NTdGF0dXMpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6
aXNNYWluKCkpOwogCkBAIC0yODgsNyArMjg4LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzTWVtb3J5U3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoRG9tYWluSW4K
ICAgICBncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChXVEZNb3ZlKGRvbWFpbkluTmVlZE9mU3Rv
cmFnZUFjY2VzcyksIFdURk1vdmUob3BlbmVyRG9tYWluKSwgV1RGOjpudWxsb3B0LCBvcGVuZXJQ
YWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bjo6Tm8sIFtdKFN0b3JhZ2VBY2Nlc3NX
YXNHcmFudGVkKSB7IH0pOwogfQogCi12b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4s
IFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1No
b3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3Jl
OjpncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9w
RnJhbWVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdh
c1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsK
IApAQCAtMzAwLDcgKzMwMCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0
b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiBzdWJGCiAgICAgZ3JhbnRT
dG9yYWdlQWNjZXNzSW50ZXJuYWwoV1RGTW92ZShzdWJGcmFtZURvbWFpbiksIFdURk1vdmUodG9w
RnJhbWVEb21haW4pLCBmcmFtZUlELCBwYWdlSUQsIHByb21wdFdhc1Nob3duLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9y
eVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChTdWJGcmFtZURvbWFpbiYmIHN1YkZy
YW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDxGcmFt
ZUlEPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93biBwcm9tcHRXYXNTaG93bk5vd09yRWFybGllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJu
YWwoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21haW4mJiB0b3BG
cmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBQYWdlSWRlbnRp
ZmllciBwYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93bk5v
d09yRWFybGllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRl
ZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4o
KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUu
aAppbmRleCA1YWY2N2ExNmYwNjE2ZGE5ZmEwYzA5MzMxNWFjYmMzNWRhYTViMTE5Li5hNGE3Yjg4
ZTJkZmIwMDM0NmJkYzI3MWZlYjdlNWIyNGJhODIwOTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9y
eVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCkBAIC05Nyw5ICs5Nyw5IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgY2FsY3VsYXRlQW5kU3VibWl0VGVsZW1ldHJ5KCkgY29uc3Qgb3ZlcnJp
ZGU7CiAKLSAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBj
b25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPEZyYW1lSUQ+LCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgb3ZlcnJpZGU7Ci0gICAg
dm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFp
biYmLCBGcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBncmFudFN0
b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgRnJhbWVJRCwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNT
aG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3Jh
bnRlZCk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJG
cmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3Mo
U3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9y
YWdlQWNjZXNzU3RhdHVzKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nl
c3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1By
b21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nl
c3NXYXNHcmFudGVkKT4mJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGxvZ0ZyYW1lTmF2aWdhdGlv
bihjb25zdCBOYXZpZ2F0ZWRUb0RvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgY29uc3Qg
TmF2aWdhdGVkRnJvbURvbWFpbiYsIGJvb2wgaXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFtZSkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb24oY29uc3QgVG9wRnJhbWVEb21h
aW4mKSBvdmVycmlkZTsKQEAgLTEyMyw3ICsxMjMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgaW5j
cmVtZW50UmVjb3Jkc0RlbGV0ZWRDb3VudEZvckRvbWFpbnMoSGFzaFNldDxSZWdpc3RyYWJsZURv
bWFpbj4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZShSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzJiwgUmVzb3VyY2VMb2FkUHJldmFsZW5jZSk7CiAgICAgdW5zaWduZWQg
cmVjdXJzaXZlbHlHZXRBbGxEb21haW5zVGhhdEhhdmVSZWRpcmVjdGVkVG9UaGlzRG9tYWluKGNv
bnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3MmLCBIYXNoU2V0PFJlZGlyZWN0ZWRUb0RvbWFpbj4m
LCB1bnNpZ25lZCBudW1iZXJPZlJlY3Vyc2l2ZUNhbGxzKSBjb25zdDsKLSAgICB2b2lkIGdyYW50
U3RvcmFnZUFjY2Vzc0ludGVybmFsKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYs
IE9wdGlvbmFsPEZyYW1lSUQ+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3Rv
cmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6
OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJik7CisgICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nl
c3NJbnRlcm5hbChTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBPcHRpb25hbDxX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29y
ZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJik7CiAgICAgdm9pZCBtYXJrQXNQcmV2
YWxlbnRJZkhhc1JlZGlyZWN0ZWRUb1ByZXZhbGVudChSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJik7
CiAgICAgYm9vbCBpc1ByZXZhbGVudER1ZVRvRGVidWdNb2RlKFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MmKTsKICAgICBWZWN0b3I8UmVnaXN0cmFibGVEb21haW4+IGVuc3VyZVByZXZhbGVudFJlc291
cmNlc0ZvckRlYnVnTW9kZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5oCmluZGV4IDcwYWNiZGNlOTZmNjVjZjgzYTk0NjM3ZDNmYjhkMWU5YjI2NTUz
ZGQuLjIwOTQ1ZGEwOThhNjgwYTBhNGU5OTc3ZmQ3NTI0NzBmNjc4ZDk5NWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2lu
Y2x1ZGUgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NDbGFzc2lmaWVyLmgiCiAjaW5jbHVkZSAiV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlk
ZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KQEAgLTkwLDcgKzkxLDYg
QEAgcHVibGljOgogICAgIHVzaW5nIE5hdmlnYXRlZFRvRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW47CiAgICAgdXNpbmcgRG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzID0gV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNpbmcgT3BlbmVyRG9tYWluID0gV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW47Ci0gICAgdXNpbmcgRnJhbWVJRCA9IHVpbnQ2NF90OwogICAg
IAogICAgIHZpcnR1YWwgflJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSgpOwogCkBAIC0xNTks
OSArMTU5LDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNEZWJ1Z01vZGVFbmFibGVkKCkgY29uc3Qg
eyByZXR1cm4gbV9kZWJ1Z01vZGVFbmFibGVkOyB9OwogICAgIHZvaWQgc2V0UHJldmFsZW50UmVz
b3VyY2VGb3JEZWJ1Z01vZGUoY29uc3QgUmVnaXN0cmFibGVEb21haW4mKTsKIAotICAgIHZpcnR1
YWwgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9w
RnJhbWVEb21haW4mLCBPcHRpb25hbDxGcmFtZUlEPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwg
RnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZ3JhbnRTdG9y
YWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIEZyYW1lSUQsIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hv
d24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50
ZWQpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3Vi
RnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllcj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTdG9yYWdlQWNj
ZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ3JhbnRTdG9y
YWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VB
Y2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9y
YWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBsb2dGcmFt
ZU5hdmlnYXRpb24oY29uc3QgTmF2aWdhdGVkVG9Eb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFp
biYsIGNvbnN0IE5hdmlnYXRlZEZyb21Eb21haW4mLCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNN
YWluRnJhbWUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbG9nVXNlckludGVyYWN0aW9uKGNvbnN0
IFRvcEZyYW1lRG9tYWluJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlLmNwcAppbmRleCA4YzIxMTU3Y2M3ZjY5MTdiYTk3MDg5ZTM2ZjE2OWQ4NmNm
OGI4YWIwLi42NzVmMGRhZjU5Y2U5YjRmODg3Yjc5NGJjODkyZWM0NGE4Mzc1NmYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcApAQCAtMjgwLDcg
KzI4MCw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXNvdXJjZUxv
YWRTdGF0aXN0aWNzVXBkYXRlZChWZWN0b3I8V2ViQ29yCiAgICAgfSk7CiB9CiAKLXZvaWQgV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRv
cEZyYW1lRG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIg
cGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3Mo
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJ
RCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChzdWJGcmFtZURvbWFpbiAhPSB0b3BG
cmFtZURvbWFpbik7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTMwMSw3ICsz
MDEsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFj
Y2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcwogICAgIH0pOwogfQogCi1ib29sIFdlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIGZpcnN0UGFydHlEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCkKK2Jvb2wgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpoYXNTdG9yYWdlQWNj
ZXNzRm9yRnJhbWUoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNN
YWluKCkpOwogCkBAIC0zMTQsNyArMzE0LDcgQEAgYm9vbCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25zdCBSZWdpc3RyYWJsZUQKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpjYWxsSGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcihjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5
RG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCBoYXNBY2Nlc3MpPiYmIGNhbGxiYWNrKQordm9pZCBXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5k
bGVyKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBoYXNBY2Nl
c3MpPiYmIGNhbGxiYWNrKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKQEAg
LTMyOCw3ICszMjgsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2Fs
bEhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29uc3QgUgogICAgIGNhbGxiYWNrKGZh
bHNlKTsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlcXVlc3RT
dG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vz
c1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3Jh
Z2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFj
Y2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtMzkxLDcg
KzM5MSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXF1ZXN0U3Rv
cmFnZUFjY2Vzc1VuZGVyT3BlbmVyKFJlZ2lzdHJhYmxlCiAgICAgfSk7CiB9CiAKLXZvaWQgV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
dG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwg
U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2Fz
U2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3Vi
RnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vz
c1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0
b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAg
cG9zdFRhc2soW3RoaXMsIHN1YkZyYW1lRG9tYWluID0gc3ViRnJhbWVEb21haW4uaXNvbGF0ZWRD
b3B5KCksIHRvcEZyYW1lRG9tYWluID0gdG9wRnJhbWVEb21haW4uaXNvbGF0ZWRDb3B5KCksIGZy
YW1lSUQsIHBhZ2VJRCwgcHJvbXB0V2FzU2hvd24sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CkBAIC00MTAsNyArNDEwLDcgQEAgdm9p
ZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYKICAgICB9KTsKIH0KIAotU3RvcmFnZUFjY2Vzc1dhc0dyYW50
ZWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCkKK1N0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlE
b21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIg
cGFnZUlEKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTQyNyw3ICs0
MjcsNyBAQCBTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdAogICAgIHJldHVybiBpc1N0b3JhZ2VHcmFu
dGVkID8gU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQ6OlllcyA6IFN0b3JhZ2VBY2Nlc3NXYXNHcmFu
dGVkOjpObzsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxH
cmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFt
ZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBPcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsR3JhbnRTdG9yYWdlQWNj
ZXNzSGFuZGxlcihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlm
aWVyPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUu
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuaAppbmRleCAwMjNkYzI3N2NmNTA1NDdiZjk2ODllY2NhNDg0NGQw
ZTY0YWIxMzJmLi45ZGExYjZiYjUyMTUyMWEwMTI0MjM0Y2Q0MzI3MTE1NmY4Y2UwYjVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCkBAIC0zMCw2ICsz
MCw3IEBACiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBY2Nlc3NT
dGF0dXMuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVR5cGUuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWluLmg+CiAjaW5jbHVkZSA8d3RmL0Nv
bXBsZXRpb25IYW5kbGVyLmg+CkBAIC04OSw3ICs5MCw2IEBAIHB1YmxpYzoKICAgICB1c2luZyBO
YXZpZ2F0ZWRUb0RvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwogICAgIHVzaW5n
IERvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcyA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
OwogICAgIHVzaW5nIE9wZW5lckRvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwot
ICAgIHVzaW5nIEZyYW1lSUQgPSB1aW50NjRfdDsKICAgICB1c2luZyBTdG9yYWdlQWNjZXNzV2Fz
R3JhbnRlZCA9IFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOwogICAgIHVzaW5nIFN0
b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biA9IFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93bjsKIApAQCAtMTExLDcgKzExMSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNob3Vs
ZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGJvb2wsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRTaG91bGRTdWJtaXRUZWxlbWV0cnko
Ym9vbCk7CiAKLSAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFp
biYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgRnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChT
dG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJik7
CisgICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25z
dCBUb3BGcmFtZURvbWFpbiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1No
b3duKT4mJik7CiAKICAgICB2b2lkIGFwcGxpY2F0aW9uV2lsbFRlcm1pbmF0ZSgpOwogCkBAIC0x
MjUsMTEgKzEyNSwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhclVzZXJJbnRlcmFjdGlvbihj
b25zdCBUb3BGcmFtZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAg
dm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvclJlZ2lzdHJhYmxlRG9tYWlucyhPcHRpb25TZXQ8V2Vi
c2l0ZURhdGFUeXBlPiwgSGFzaE1hcDxSZWdpc3RyYWJsZURvbWFpbiwgV2Vic2l0ZURhdGFUb1Jl
bW92ZT4mJiwgYm9vbCBzaG91bGROb3RpZnlQYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNv
bnN0IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+Jik+JiYpOwogICAgIHZvaWQgcmVnaXN0cmFi
bGVEb21haW5zV2l0aFdlYnNpdGVEYXRhKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBib29s
IHNob3VsZE5vdGlmeVBhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzaFNldDxSZWdpc3Ry
YWJsZURvbWFpbj4mJik+JiYpOwotICAgIFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIGdyYW50U3Rv
cmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwg
T3B0aW9uYWw8RnJhbWVJRD4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKKyAgICBTdG9yYWdl
QWNjZXNzV2FzR3JhbnRlZCBncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4m
LCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
cj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKICAgICB2b2lkIGhhc0hhZFVzZXJJbnRlcmFj
dGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpOwotICAgIHZvaWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYs
IGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8RnJhbWVJRD4sIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKLSAgICBib29sIGhh
c1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZy
YW1lRG9tYWluJiwgRnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwotICAgIHZvaWQg
cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFt
ZURvbWFpbiYsIEZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2Fz
U2hvd24pPiYmKTsKKyAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21h
aW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRp
Zmllcj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKTsKKyAgICBib29sIGhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25zdCBTdWJGcmFt
ZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vz
cyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1No
b3duKT4mJik7CiAgICAgdm9pZCBzZXRMYXN0U2Vlbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYs
IFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRQcmV2
YWxlbnRSZXNvdXJjZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRWZXJ5UHJldmFsZW50UmVzb3VyY2UoY29uc3QgUmVn
aXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpAQCAtMTcyLDEx
ICsxNzIsMTEgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1
Z01vZGUoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwogCiAgICAgdm9pZCBsb2dUZXN0aW5nRXZlbnQoY29uc3QgU3RyaW5nJik7Ci0gICAgdm9p
ZCBjYWxsR3JhbnRTdG9yYWdlQWNjZXNzSGFuZGxlcihjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNv
bnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8RnJhbWVJRD4sIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4m
Jik7CisgICAgdm9pZCBjYWxsR3JhbnRTdG9yYWdlQWNjZXNzSGFuZGxlcihjb25zdCBTdWJGcmFt
ZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKTsKICAgICB2b2lkIHJlbW92ZUFsbFN0b3Jh
Z2VBY2Nlc3MoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGNhbGxVcGRh
dGVQcmV2YWxlbnREb21haW5zVG9CbG9ja0Nvb2tpZXNGb3JIYW5kbGVyKGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluc1RvQmxvY2tDb29raWVzRm9yJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKICAgICB2b2lkIGNhbGxSZW1vdmVEb21haW5zSGFuZGxlcihjb25zdCBWZWN0b3I8UmVnaXN0
cmFibGVEb21haW4+Jik7Ci0gICAgdm9pZCBjYWxsSGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFu
ZGxlcihjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgRnJhbWVJ
RCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYpOworICAgIHZvaWQgY2FsbEhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29uc3Qg
U3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYpOwogCiAgICAgdm9pZCBkaWRDcmVhdGVOZXR3b3JrUHJvY2VzcygpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0
Q2hlY2tlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZs
aWdodENoZWNrZXIuaAppbmRleCA3OTMwMWIyMGNjY2FmZWI1MjEwZDc1YWQ1NzQxZmQyZDkyZThh
Y2FkLi4yY2JmNGM2ZWUyYjNjYzUwYjUxMTdjZjI2ZjMxM2IxNTJjNzM5MGZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGln
aHRDaGVja2VyLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgICAgICBTdHJpbmcgdXNl
ckFnZW50OwogICAgICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7CiAgICAgICAgIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRDsKLSAgICAgICAgdWludDY0X3QgZnJhbWVJRDsKKyAg
ICAgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQ7CiAgICAgICAgIFdlYkNvcmU6
OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5OwogICAgIH07
CiAgICAgdXNpbmcgQ29tcGxldGlvbkNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYpPjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5k
ZXggMWYxMDA0ZTFiNWJjZDM5ZDhiMTIyZGY4YzZkYTQ4ZDEzN2M0YmU2MS4uMGMyYzk3NmZlZTIw
ZDMyOWI0MDdlMDRkYjk2MmZiNjc5OWFmNDMxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKQEAgLTUyNSw3ICs1MjUsNyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Ojpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoUEFMOjpTZXNzaQogICAgIGxvYWRl
ci0+Y29udmVydFRvRG93bmxvYWQoZG93bmxvYWRJRCwgcmVxdWVzdCwgcmVzcG9uc2UpOwogfQog
Ci12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRm9yRE9NKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0
ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBm
cmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29v
a2llcyBpbmNsdWRlU2VjdXJlQ29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcg
Y29va2llU3RyaW5nLCBib29sIHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRm9yRE9N
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBT
YW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1l
SWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5j
bHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8mIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9
IHN0b3JhZ2VTZXNzaW9uKG5ldHdvcmtQcm9jZXNzKCksIHNlc3Npb25JRCk7CiAgICAgYXV0byBy
ZXN1bHQgPSBuZXR3b3JrU3RvcmFnZVNlc3Npb24uY29va2llc0ZvckRPTShmaXJzdFBhcnR5LCBz
YW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlELCBpbmNsdWRlU2VjdXJlQ29va2llcyk7
CkBAIC01MzgsNyArNTM4LDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
Y29va2llc0ZvckRPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnMKICAgICBjb21wbGV0
aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdC5maXJzdCksIHJlc3VsdC5zZWNvbmQpOwogfQogCi12
b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJvbURPTShQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNp
dGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4g
ZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBj
b29raWVTdHJpbmcpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29r
aWVzRnJvbURPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0
eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRp
b25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiBwYWdlSUQsIGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKQogewogICAgIGF1dG8m
IG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IHN0b3JhZ2VTZXNzaW9uKG5ldHdvcmtQcm9jZXNzKCks
IHNlc3Npb25JRCk7CiAgICAgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLnNldENvb2tpZXNGcm9tRE9N
KGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIGNvb2tpZVN0
cmluZyk7CkBAIC01NTUsMTMgKzU1NSwxMyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpjb29raWVzRW5hYmxlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbQogICAg
IGNvbXBsZXRpb25IYW5kbGVyKHN0b3JhZ2VTZXNzaW9uKG5ldHdvcmtQcm9jZXNzKCksIHNlc3Np
b25JRCkuY29va2llc0VuYWJsZWQoKSk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVT
aXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRl
U2VjdXJlQ29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcsIGJvb2wpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29v
a2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25z
dCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25z
dCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQ
YWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJl
Q29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcsIGJvb2wpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIGF1dG8gcmVzdWx0ID0gc3RvcmFnZVNlc3Npb24obmV0d29ya1By
b2Nlc3MoKSwgc2Vzc2lvbklEKS5jb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShmaXJzdFBh
cnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlELCBpbmNsdWRlU2VjdXJlQ29v
a2llcyk7CiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQuZmlyc3QpLCByZXN1
bHQuc2Vjb25kKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Z2V0
UmF3Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0
eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRp
b25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYmKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmdldFJh
d0Nvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFn
ZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IHJlc3Vs
dDsKICAgICBzdG9yYWdlU2Vzc2lvbihuZXR3b3JrUHJvY2VzcygpLCBzZXNzaW9uSUQpLmdldFJh
d0Nvb2tpZXMoZmlyc3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwg
cmVzdWx0KTsKQEAgLTY3MCw3ICs2NzAsNyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjplbnN1cmVMZWdhY3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkKIH0KIAogI2lmIEVO
QUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpyZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQpCit2b2lkIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlk
ZW50aWZpZXIgcGFnZUlEKQogewogICAgIGlmIChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IG5ldHdv
cmtQcm9jZXNzKCkuc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSkKICAgICAgICAgc3RvcmFnZVNl
c3Npb24tPnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShmcmFtZUlELCBwYWdlSUQpOwpAQCAt
NzI4LDcgKzcyOCw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlc291
cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVkKFZlY3RvcjxXZWJDb3JlCiAgICAgICAgIHJlc291cmNl
TG9hZFN0YXRpc3RpY3MtPnJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVkKFdURk1vdmUoc3Rh
dGlzdGljcykpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpoYXNT
dG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVE
b21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6Omhhc1N0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSBuZXR3
b3JrUHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKICAgICAgICAgaWYgKGF1
dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBuZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2Fk
U3RhdGlzdGljcygpKSB7CkBAIC03NDAsNyArNzQwLDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6aGFzU3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGMKICAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlk
ZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VB
Y2Nlc3NXYXNHcmFudGVkIHdhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93biBwcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIHdhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3Jh
Z2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gbmV0d29ya1Byb2Nlc3MoKS5u
ZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CiAgICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDkyODY3MzNjNGI3Yzc1MTJjMjljNTMyNDM4
MjFkMGVlMWVjNzEzMDkuLjI1NTA4NGY5MjMxZmVhODMwODAwOThkMzU5MzA1N2ExYmQ5MDdjNTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJO
ZXR3b3JrUlRDUHJvdmlkZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkTWFwLmgi
CiAjaW5jbHVkZSAiV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya0xvYWRJbmZv
cm1hdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CkBAIC0xNzQsMTEgKzE3NSwxMSBAQCBwcml2
YXRlOgogICAgIHZvaWQgc3RhcnREb3dubG9hZChQQUw6OlNlc3Npb25JRCwgRG93bmxvYWRJRCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRO
YW1lID0geyB9KTsKICAgICB2b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChQ
QUw6OlNlc3Npb25JRCwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIERvd25s
b2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmKTsKIAotICAgIHZvaWQgY29va2llc0ZvckRPTShQQUw6OlNlc3Npb25J
RCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBj
b25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6
UGFnZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcywgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChTdHJpbmcgY29va2llU3RyaW5nLCBib29sIHNlY3VyZUNvb2tpZXNBY2Nl
c3NlZCk+JiYpOwotICAgIHZvaWQgc2V0Q29va2llc0Zyb21ET00oUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3Qg
VVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBjb29raWVzRm9yRE9NKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRl
SW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIE9w
dGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNv
b2tpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBz
ZWN1cmVDb29raWVzQWNjZXNzZWQpPiYmKTsKKyAgICB2b2lkIHNldENvb2tpZXNGcm9tRE9NKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVT
aXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4s
IE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJik7CiAgICAg
dm9pZCBjb29raWVzRW5hYmxlZChQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJik7Ci0gICAgdm9pZCBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6
OlNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0
ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcywg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcgY29va2llU3RyaW5nLCBib29sIHNlY3VyZUNv
b2tpZXNBY2Nlc3NlZCk+JiYpOwotICAgIHZvaWQgZ2V0UmF3Q29va2llcyhQQUw6OlNlc3Npb25J
RCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBj
b25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6
UGFnZUlkZW50aWZpZXI+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpD
b29raWU+JiYpPiYmKTsKKyAgICB2b2lkIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVT
aXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4s
IE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgV2ViQ29yZTo6SW5jbHVkZVNlY3Vy
ZUNvb2tpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9v
bCBzZWN1cmVDb29raWVzQWNjZXNzZWQpPiYmKTsKKyAgICB2b2lkIGdldFJhd0Nvb2tpZXMoUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNp
dGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwg
T3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYpPiYmKTsKICAgICB2b2lkIGRlbGV0ZUNvb2tpZShQ
QUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1lKTsKIAog
ICAgIHZvaWQgcmVnaXN0ZXJGaWxlQmxvYlVSTChQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwg
Y29uc3QgU3RyaW5nJiBwYXRoLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiwgY29uc3QgU3Ry
aW5nJiBjb250ZW50VHlwZSk7CkBAIC0yMTgsNyArMjE5LDcgQEAgcHJpdmF0ZToKICAgICBDYWNo
ZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uJiBjYWNoZVN0b3JhZ2VDb25uZWN0aW9uKCk7CiAKICNp
ZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIHZvaWQgcmVtb3ZlU3RvcmFn
ZUFjY2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lvbklELCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcik7CisgICAgdm9pZCByZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUo
UEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIpOwogICAgIHZvaWQgY2xlYXJQYWdlU3BlY2lmaWNEYXRhRm9yUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcyhQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogCiAg
ICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJik7CkBAIC0yMjYsOCArMjI3LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGxvZ1N1
YnJlc291cmNlTG9hZGluZyhQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHRhcmdldERvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBX
YWxsVGltZSBsYXN0U2Vlbik7CiAgICAgdm9pZCBsb2dTdWJyZXNvdXJjZVJlZGlyZWN0KFBBTDo6
U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc291cmNlRG9tYWluLCBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgdGFyZ2V0RG9tYWluKTsKICAgICB2b2lkIHJlc291cmNlTG9hZFN0
YXRpc3RpY3NVcGRhdGVkKFZlY3RvcjxXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPiYm
KTsKLSAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRv
cEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCByZXF1ZXN0U3RvcmFn
ZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1l
RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90
IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNz
UHJvbXB0V2FzU2hvd24pPiYmKTsKKyAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNz
aW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KTsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNz
V2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJik7CiAg
ICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyKFBBTDo6U2Vzc2lvbklELCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2Vzcywg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgb3BlbmVyUGFnZUlELCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiYmIG9wZW5lckRvbWFpbik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggNGIxMTg5YjM5Y2NlYmM4ZmIyMjZmOGZlZTAzNDI4
YzZjODVhZDdhMy4uOTlhYmQwNzhmYjE0YzlmMzBiZTljODc2MDNhMTNkOTFiZDc5YTljZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0zNCwxMSArMzQs
MTEgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVj
ZWl2ZXIgewogICAgIFN0YXJ0RG93bmxvYWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJL
aXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QsIFN0cmluZyBzdWdnZXN0ZWROYW1lKQogICAgIENvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9E
b3dubG9hZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxv
YWRJZGVudGlmaWVyLCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2Up
CiAKLSAgICBDb29raWVzRm9yRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZpcnN0
UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJs
LCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRCwgZW51bTpib29sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGlu
Y2x1ZGVTZWN1cmVDb29raWVzKSAtPiAoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBkaWRBY2Nl
c3NTZWN1cmVDb29raWVzKSBTeW5jaHJvbm91cwotICAgIFNldENvb2tpZXNGcm9tRE9NKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1l
U2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgU3RyaW5nIGNvb2tp
ZVN0cmluZykKKyAgICBDb29raWVzRm9yRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJM
IGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBV
UkwgdXJsLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlv
bmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpJ
bmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgLT4gKFN0cmluZyBjb29r
aWVTdHJpbmcsIGJvb2wgZGlkQWNjZXNzU2VjdXJlQ29va2llcykgU3luY2hyb25vdXMKKyAgICBT
ZXRDb29raWVzRnJvbURPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5
LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0
aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBTdHJpbmcgY29va2llU3RyaW5nKQogICAgIENvb2tp
ZXNFbmFibGVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKGJvb2wgZW5hYmxlZCkgU3lu
Y2hyb25vdXMKLSAgICBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZv
IHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlv
bmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpJ
bmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgLT4gKFN0cmluZyBjb29r
aWVTdHJpbmcsIGJvb2wgZGlkQWNjZXNzU2VjdXJlQ29va2llcykgU3luY2hyb25vdXMKLSAgICBH
ZXRSYXdDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZpcnN0UGFydHksIHN0
cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBh
Z2VJRCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IGNvb2tpZXMpIFN5bmNocm9ub3VzCisg
ICAgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUlu
Zm8sIFVSTCB1cmwsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwg
T3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgZW51bTpib29sIFdlYkNv
cmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSAtPiAoU3RyaW5n
IGNvb2tpZVN0cmluZywgYm9vbCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzKSBTeW5jaHJvbm91cwor
ICAgIEdldFJhd0Nvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgZmlyc3RQYXJ0
eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9w
dGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IGNv
b2tpZXMpIFN5bmNocm9ub3VzCiAgICAgRGVsZXRlQ29va2llKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgVVJMIHVybCwgU3RyaW5nIGNvb2tpZU5hbWUpCiAKICAgICBSZWdpc3RlckZpbGVCbG9i
VVJMKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIHVybCwgU3RyaW5nIHBhdGgsIFdlYktp
dDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGV4dGVuc2lvbkhhbmRsZSwgU3RyaW5nIGNvbnRl
bnRUeXBlKQpAQCAtNTgsMTUgKzU4LDE1IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBFbnN1cmVMZWdhY3lQcml2YXRlQnJv
d3NpbmdTZXNzaW9uKCkKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0g
ICAgUmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
dWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKTsKKyAgICBS
ZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFn
ZUlEKTsKICAgICBDbGVhclBhZ2VTcGVjaWZpY0RhdGFGb3JSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
KTsKICAgICBMb2dVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW4pCiAgICAgTG9nV2ViU29ja2V0TG9hZGluZyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRhcmdl
dERvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4sIFdhbGxU
aW1lIGxhc3RTZWVuKQogICAgIExvZ1N1YnJlc291cmNlTG9hZGluZyhQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRhcmdldERvbWFpbiwgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4sIFdhbGxUaW1lIGxhc3RTZWVuKQog
ICAgIExvZ1N1YnJlc291cmNlUmVkaXJlY3QoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzb3VyY2VEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluIHRhcmdldERvbWFpbikKICAgICBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVXBkYXRlZChW
ZWN0b3I8V2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4gc3RhdGlzdGljcykKLSAgICBI
YXNTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4gc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRv
cEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBw
YWdlSUQpIC0+IChib29sIGhhc1N0b3JhZ2VBY2Nlc3MpIEFzeW5jCi0gICAgUmVxdWVzdFN0b3Jh
Z2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVE
b21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkg
LT4gKGVudW06Ym9vbCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCB3YXNHcmFudGVk
LCBlbnVtOmJvb2wgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdh
c1Nob3duKSBBc3luYworICAgIEhhc1N0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpIC0+IChib29sIGhhc1N0
b3JhZ2VBY2Nlc3MpIEFzeW5jCisgICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpIC0+IChl
bnVtOmJvb2wgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgd2FzR3JhbnRlZCwgZW51
bTpib29sIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93
bikgQXN5bmMKICAgICBSZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluSW5OZWVkT2ZT
dG9yYWdlQWNjZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBvcGVuZXJQYWdlSUQsIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIG9wZW5lckRvbWFpbikKICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAKaW5kZXgg
NDA5NzE0ZDY2NzI2YTg0NzRhZmYyOWExNjA4MTdmMjQ3OTY3YjAxNi4uMTE3NmY1MzdhODU4MDli
NGJhZTFjZTc2OGI1NjUzNWIxNWQ1ZWJiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcApAQCAtNDgsNyArNDgsNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgaXNTYW1lT3JpZ2luKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTZWN1cml0
eU9yaWdpbiogb3JpZ2luKQogICAgIHJldHVybiB1cmwucHJvdG9jb2xJc0RhdGEoKSB8fCB1cmwu
cHJvdG9jb2xJc0Jsb2IoKSB8fCAhb3JpZ2luIHx8IG9yaWdpbi0+Y2FuUmVxdWVzdCh1cmwpOwog
fQogCi1OZXR3b3JrTG9hZENoZWNrZXI6Ok5ldHdvcmtMb2FkQ2hlY2tlcihOZXR3b3JrUHJvY2Vz
cyYgbmV0d29ya1Byb2Nlc3MsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMsIFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBIVFRQ
SGVhZGVyTWFwJiYgb3JpZ2luYWxSZXF1ZXN0SGVhZGVycywgVVJMJiYgdXJsLCBSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+JiYgc291cmNlT3JpZ2luLCBQcmVmbGlnaHRQb2xpY3kgcHJlZmxpZ2h0UG9s
aWN5LCBTdHJpbmcmJiByZWZlcnJlciwgYm9vbCBpc0hUVFBTVXBncmFkZUVuYWJsZWQsIGJvb2wg
c2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzLCBMb2FkVHlwZSByZXF1ZXN0TG9h
ZFR5cGUpCitOZXR3b3JrTG9hZENoZWNrZXI6Ok5ldHdvcmtMb2FkQ2hlY2tlcihOZXR3b3JrUHJv
Y2VzcyYgbmV0d29ya1Byb2Nlc3MsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMsIFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgSFRUUEhlYWRlck1hcCYmIG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMsIFVSTCYmIHVybCwg
UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiYmIHNvdXJjZU9yaWdpbiwgUHJlZmxpZ2h0UG9saWN5IHBy
ZWZsaWdodFBvbGljeSwgU3RyaW5nJiYgcmVmZXJyZXIsIGJvb2wgaXNIVFRQU1VwZ3JhZGVFbmFi
bGVkLCBib29sIHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcywgTG9hZFR5cGUg
cmVxdWVzdExvYWRUeXBlKQogICAgIDogbV9vcHRpb25zKFdURk1vdmUob3B0aW9ucykpCiAgICAg
LCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgLCBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQ
cm9jZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZENoZWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRD
aGVja2VyLmgKaW5kZXggMDc3MDY0NjcwZmNiYjlhYzk0MmY4ZDg2MTgxMDQ5NTlmMDBlMDU3OC4u
ZWM5NGUxNDY5NTMzZDdkOTg3ODE2YmIyNmIxN2RmYjIzYjk0M2ZjMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oCkBAIC0yOSw2ICsy
OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9GZXRjaE9wdGlvbnMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1l
SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya0xvYWRJbmZvcm1hdGlvbi5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1Jlc291cmNlRXJyb3IuaD4KQEAgLTU1LDcgKzU2LDcgQEAgY2xhc3MgTmV0d29ya0xvYWRDaGVj
a2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRyPE5ldHdvcmtMb2FkQ2hlY2tlcj4gewogcHVibGlj
OgogICAgIGVudW0gY2xhc3MgTG9hZFR5cGUgOiBib29sIHsgTWFpbkZyYW1lLCBPdGhlciB9Owog
Ci0gICAgTmV0d29ya0xvYWRDaGVja2VyKE5ldHdvcmtQcm9jZXNzJiwgV2ViQ29yZTo6RmV0Y2hP
cHRpb25zJiYsIFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0
X3QgZnJhbWVJRCwgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYmLCBVUkwmJiwgUmVmUHRyPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luPiYmLCBXZWJDb3JlOjpQcmVmbGlnaHRQb2xpY3ksIFN0cmluZyYm
IHJlZmVycmVyLCBib29sIGlzSFRUUFNVcGdyYWRlRW5hYmxlZCA9IGZhbHNlLCBib29sIHNob3Vs
ZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyA9IGZhbHNlLCBMb2FkVHlwZSByZXF1ZXN0
TG9hZFR5cGUgPSBMb2FkVHlwZTo6T3RoZXIpOworICAgIE5ldHdvcmtMb2FkQ2hlY2tlcihOZXR3
b3JrUHJvY2VzcyYsIFdlYkNvcmU6OkZldGNoT3B0aW9ucyYmLCBQQUw6OlNlc3Npb25JRCwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6
SFRUUEhlYWRlck1hcCYmLCBVUkwmJiwgUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYm
LCBXZWJDb3JlOjpQcmVmbGlnaHRQb2xpY3ksIFN0cmluZyYmIHJlZmVycmVyLCBib29sIGlzSFRU
UFNVcGdyYWRlRW5hYmxlZCA9IGZhbHNlLCBib29sIHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtM
b2FkTWV0cmljcyA9IGZhbHNlLCBMb2FkVHlwZSByZXF1ZXN0TG9hZFR5cGUgPSBMb2FkVHlwZTo6
T3RoZXIpOwogICAgIH5OZXR3b3JrTG9hZENoZWNrZXIoKTsKIAogICAgIHN0cnVjdCBSZWRpcmVj
dGlvblRyaXBsZXQgewpAQCAtMTI3LDcgKzEyOCw3IEBAIHByaXZhdGU6CiAgICAgUEFMOjpTZXNz
aW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgUmVmPE5ldHdvcmtQcm9jZXNzPiBtX25ldHdvcmtQcm9j
ZXNzOwogICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIG1fcGFnZUlEOwotICAgIHVpbnQ2NF90
IG1fZnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbV9mcmFtZUlEOwogICAg
IFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAgbV9vcmlnaW5hbFJlcXVlc3RIZWFkZXJzOyAvLyBOZWVk
ZWQgZm9yIENPUlMgY2hlY2tzLgogICAgIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAgbV9maXJzdFJl
cXVlc3RIZWFkZXJzOyAvLyBOZWVkZWQgZm9yIENPUlMgY2hlY2tzLgogICAgIFVSTCBtX3VybDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJh
bWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1l
dGVycy5oCmluZGV4IGM0M2U1ZGNkNzUwMTFhNTU5MWU2ZTY4MjcyNGMxYTY5NTY1ZWNmMTcuLmI4
ZjdkMTM5ZTMxZWM1YzgyNzEzNWUzNzMwYjdiMGQ5ZWYwYTQ2MWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaApAQCAtMjcs
NiArMjcsNyBAQAogCiAjaW5jbHVkZSAiTmV0d29ya0FjdGl2aXR5VHJhY2tlci5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvQmxvYkRhdGFGaWxlUmVmZXJlbmNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9G
cmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1Jlc291cmNlUmVxdWVzdC5oPgpAQCAtNDYsNyArNDcsNyBAQCBwdWJsaWM6CiAKICAgICBQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2Vi
UGFnZUlEOwotICAgIHVpbnQ2NF90IHdlYkZyYW1lSUQgeyAwIH07CisgICAgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIHdlYkZyYW1lSUQ7CiAgICAgV1RGOjpQcm9jZXNzSUQgcGFyZW50UElEIHsg
MCB9OwogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0OwogICAgIFdlYkNvcmU6
OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBjb250ZW50U25pZmZpbmdQb2xpY3kgeyBXZWJDb3JlOjpD
b250ZW50U25pZmZpbmdQb2xpY3k6OlNuaWZmQ29udGVudCB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IGE5MmI3MjQxZWIyOThlYTY2YzVh
OGEyODQ3NGY0MDNlNTdlNDVjMzkuLmMyMzYzZGQxMTM1ZjdlMmJmYTAzMjllZGYyNjJhMjViZWUy
MmIzYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmgKQEAgLTEzNyw3ICsxMzcsNiBAQCBwdWJsaWM6CiAgICAgdXNpbmcgTmF2aWdhdGVkVG9Eb21h
aW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKICAgICB1c2luZyBEb21haW5Jbk5lZWRP
ZlN0b3JhZ2VBY2Nlc3MgPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKICAgICB1c2luZyBP
cGVuZXJEb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKLSAgICB1c2luZyBGcmFt
ZUlEID0gdWludDY0X3Q7CiAKICAgICBOZXR3b3JrUHJvY2VzcyhBdXhpbGlhcnlQcm9jZXNzSW5p
dGlhbGl6YXRpb25QYXJhbWV0ZXJzJiYpOwogICAgIH5OZXR3b3JrUHJvY2VzcygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIu
Y3BwCmluZGV4IDQ3ODJlZjE1ZjNkZWVlNWFmNGVhZWYwNWNkZjYwMzZhZTdlNmQyZmIuLmVjNmE4
MGM4NDg5ZGVmMzJkNzg5Yjc0YmVjMTI3MzU3YmVjNTU4MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTE4
MCwxOCArMTgwLDE4IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydCgpCiAKICAg
ICAgICAgICAgIFdURjo6c3dpdGNoT24ocmVzdWx0LAogICAgICAgICAgICAgICAgIFt0aGlzXSAo
UmVzb3VyY2VFcnJvciYgZXJyb3IpIHsKLSAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgic3RhcnQ6IGVycm9yIGNoZWNraW5nIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJl
c291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCwgcGFyZW50UElEID0gJWQsIGVycm9yLmRv
bWFpbiA9ICV7cHVibGljfXMsIGVycm9yLmNvZGUgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFn
ZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRl
bnRpZmllciwgdGhpcy0+aXNNYWluUmVzb3VyY2UoKSwgdGhpcy0+aXNTeW5jaHJvbm91cygpLCBt
X3BhcmFtZXRlcnMucGFyZW50UElELCBlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJv
ci5lcnJvckNvZGUoKSk7CisgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoInN0YXJ0OiBlcnJvciBjaGVja2luZyAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9
ICVkLCBpc1N5bmNocm9ub3VzID0gJWQsIHBhcmVudFBJRCA9ICVkLCBlcnJvci5kb21haW4gPSAl
e3B1YmxpY31zLCBlcnJvci5jb2RlID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJ
bnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMu
aWRlbnRpZmllciwgdGhpcy0+aXNNYWluUmVzb3VyY2UoKSwgdGhpcy0+aXNTeW5jaHJvbm91cygp
LCBtX3BhcmFtZXRlcnMucGFyZW50UElELCBlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBl
cnJvci5lcnJvckNvZGUoKSk7CiAgICAgICAgICAgICAgICAgICAgIGlmICghZXJyb3IuaXNDYW5j
ZWxsYXRpb24oKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMtPmRpZEZhaWxMb2FkaW5n
KGVycm9yKTsKICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgIFt0aGlzXSAoTmV0
d29ya0xvYWRDaGVja2VyOjpSZWRpcmVjdGlvblRyaXBsZXQmIHRyaXBsZXQpIHsKICAgICAgICAg
ICAgICAgICAgICAgdGhpcy0+bV9pc1dhaXRpbmdDb250aW51ZVdpbGxTZW5kUmVxdWVzdEZvckNh
Y2hlZFJlZGlyZWN0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgdGhpcy0+d2lsbFNlbmRS
ZWRpcmVjdGVkUmVxdWVzdChXVEZNb3ZlKHRyaXBsZXQucmVxdWVzdCksIFdURk1vdmUodHJpcGxl
dC5yZWRpcmVjdFJlcXVlc3QpLCBXVEZNb3ZlKHRyaXBsZXQucmVkaXJlY3RSZXNwb25zZSkpOwot
ICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydDogc3ludGhl
dGljIHJlZGlyZWN0IHNlbnQgYmVjYXVzZSByZXF1ZXN0IFVSTCB3YXMgbW9kaWZpZWQgKHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQ
Ukl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkLCBwYXJlbnRQ
SUQgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVy
cy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgdGhpcy0+aXNNYWluUmVzb3Vy
Y2UoKSwgdGhpcy0+aXNTeW5jaHJvbm91cygpLCBtX3BhcmFtZXRlcnMucGFyZW50UElEKTsKKyAg
ICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6IHN5bnRoZXRp
YyByZWRpcmVjdCBzZW50IGJlY2F1c2UgcmVxdWVzdCBVUkwgd2FzIG1vZGlmaWVkIChwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJ
dTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCwgcGFyZW50UElE
ID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMu
d2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgdGhpcy0+aXNN
YWluUmVzb3VyY2UoKSwgdGhpcy0+aXNTeW5jaHJvbm91cygpLCBtX3BhcmFtZXRlcnMucGFyZW50
UElEKTsKICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgIFt0aGlzXSAoUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0KSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLT5jYW5V
c2VDYWNoZShyZXF1ZXN0KSkgewotICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgic3RhcnQ6IENoZWNraW5nIGNhY2hlIGZvciByZXNvdXJjZSAocGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2
NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQsIHBhcmVudFBJRCA9
ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndl
YkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCB0aGlzLT5pc01haW5SZXNvdXJjZSgp
LCB0aGlzLT5pc1N5bmNocm9ub3VzKCksIG1fcGFyYW1ldGVycy5wYXJlbnRQSUQpOworICAgICAg
ICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6IENoZWNraW5n
IGNhY2hlIGZvciByZXNvdXJjZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQ
Ukl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBp
c1N5bmNocm9ub3VzID0gJWQsIHBhcmVudFBJRCA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdl
SUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJh
bWV0ZXJzLmlkZW50aWZpZXIsIHRoaXMtPmlzTWFpblJlc291cmNlKCksIHRoaXMtPmlzU3luY2hy
b25vdXMoKSwgbV9wYXJhbWV0ZXJzLnBhcmVudFBJRCk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICB0aGlzLT5yZXRyaWV2ZUNhY2hlRW50cnkocmVxdWVzdCk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTIwNCw3ICsyMDQsNyBAQCB2
b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQoKQogICAgIH0KICAgICAvLyBGSVhNRTog
UmVtb3ZlIHRoYXQgY29kZSBwYXRoIG9uY2UgbV9uZXR3b3JrTG9hZENoZWNrZXIgaXMgdXNlZCBm
b3IgYWxsIG5ldHdvcmsgbG9hZHMuCiAgICAgaWYgKGNhblVzZUNhY2hlKG9yaWdpbmFsUmVxdWVz
dCgpKSkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydDogQ2hlY2tpbmcg
Y2FjaGUgZm9yIHJlc291cmNlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlz
U3luY2hyb25vdXMgPSAlZCwgcGFyZW50UElEID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJ
RC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50
aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSwgbV9wYXJhbWV0ZXJzLnBh
cmVudFBJRCk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0OiBDaGVja2lu
ZyBjYWNoZSBmb3IgcmVzb3VyY2UgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwg
aXNTeW5jaHJvbm91cyA9ICVkLCBwYXJlbnRQSUQgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFn
ZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFy
YW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCksIG1f
cGFyYW1ldGVycy5wYXJlbnRQSUQpOwogICAgICAgICByZXRyaWV2ZUNhY2hlRW50cnkob3JpZ2lu
YWxSZXF1ZXN0KCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjQ0LDcgKzI0NCw3IEBA
IHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpyZXRyaWV2ZUNhY2hlRW50cnkoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogICAgICAgICBsb2dTbG93Q2FjaGVSZXRyaWV2ZUlmTmVl
ZGVkKGluZm8pOwogCiAgICAgICAgIGlmICghZW50cnkpIHsKLSAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogUmVzb3VyY2Ugbm90IGluIGNhY2hl
IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlE
ID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCki
LCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFt
ZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJv
bm91cygpKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2Fj
aGVFbnRyeTogUmVzb3VyY2Ugbm90IGluIGNhY2hlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291
cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRv
VUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVy
cy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOwogICAgICAg
ICAgICAgc3RhcnROZXR3b3JrTG9hZChXVEZNb3ZlKHJlcXVlc3QpLCBGaXJzdExvYWQ6Olllcyk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lk
IE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6cmV0cmlldmVDYWNoZUVudHJ5SW50ZXJuYWwoc3RkOjp1
bmlxdWVfcHRyPE5ldHdvcmtDYQogewogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCiAgICAgaWYgKGVudHJ5LT5oYXNSZWFjaGVkUHJldmFsZW50UmVzb3VyY2VBZ2VDYXAoKSkg
ewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJl
c291cmNlIGhhcyByZWFjaGVkIHByZXZhbGVudCByZXNvdXJjZSBhZ2UgY2FwIChwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0
ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRl
cnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFt
ZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKKyAg
ICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNoZUVudHJ5OiBSZXNvdXJj
ZSBoYXMgcmVhY2hlZCBwcmV2YWxlbnQgcmVzb3VyY2UgYWdlIGNhcCAocGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBp
c01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndl
YlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBt
X3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygp
KTsKICAgICAgICAgbV9jYWNoZUVudHJ5Rm9yTWF4QWdlQ2FwVmFsaWRhdGlvbiA9IFdURk1vdmUo
ZW50cnkpOwogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmV2YWxpZGF0aW9uUmVxdWVzdCA9IG9y
aWdpbmFsUmVxdWVzdCgpOwogICAgICAgICBzdGFydE5ldHdvcmtMb2FkKFdURk1vdmUocmV2YWxp
ZGF0aW9uUmVxdWVzdCksIEZpcnN0TG9hZDo6WWVzKTsKQEAgLTI2NCwyOCArMjY0LDI4IEBAIHZv
aWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpyZXRyaWV2ZUNhY2hlRW50cnlJbnRlcm5hbChzdGQ6
OnVuaXF1ZV9wdHI8TmV0d29ya0NhCiAgICAgfQogI2VuZGlmCiAgICAgaWYgKGVudHJ5LT5yZWRp
cmVjdFJlcXVlc3QoKSkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2
ZUNhY2hlRW50cnk6IEhhbmRsaW5nIHJlZGlyZWN0IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291
cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRv
VUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmll
ciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKKyAgICAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNoZUVudHJ5OiBIYW5kbGluZyByZWRpcmVjdCAocGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUi
IFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9w
YXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50
b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNT
eW5jaHJvbm91cygpKTsKICAgICAgICAgZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3RGb3JDYWNoZUVu
dHJ5KFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoZW50cnkpKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICBpZiAobV9wYXJhbWV0ZXJzLm5lZWRzQ2VydGlmaWNhdGVJbmZvICYmICFlbnRy
eS0+cmVzcG9uc2UoKS5jZXJ0aWZpY2F0ZUluZm8oKSkgewotICAgICAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJlc291cmNlIGRvZXMgbm90IGhhdmUgcmVx
dWlyZWQgY2VydGlmaWNhdGUgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNT
eW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9w
YXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNv
dXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJlc291cmNlIGRvZXMgbm90IGhhdmUgcmVxdWlyZWQgY2Vy
dGlmaWNhdGUgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJl
c291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91
cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJz
LndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJl
c291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CiAgICAgICAgIHN0YXJ0TmV0d29ya0xvYWQoV1RG
TW92ZShyZXF1ZXN0KSwgRmlyc3RMb2FkOjpZZXMpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIGlmIChlbnRyeS0+bmVlZHNWYWxpZGF0aW9uKCkgfHwgcmVxdWVzdC5jYWNoZVBvbGljeSgp
ID09IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdENhY2hlUG9saWN5OjpSZWZyZXNoQW55Q2FjaGVE
YXRhKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRy
eTogVmFsaWRhdGluZyBjYWNoZSBlbnRyeSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9
ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2
NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlz
TWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogVmFsaWRhdGluZyBjYWNoZSBlbnRyeSAocGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUi
IFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9w
YXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50
b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNT
eW5jaHJvbm91cygpKTsKICAgICAgICAgdmFsaWRhdGVDYWNoZUVudHJ5KFdURk1vdmUoZW50cnkp
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJy
ZXRyaWV2ZUNhY2hlRW50cnk6IFJldHJpZXZlZCByZXNvdXJjZSBmcm9tIGNhY2hlIChwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJ
dTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFt
ZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3Bh
cmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsK
KyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJldHJpZXZl
ZCByZXNvdXJjZSBmcm9tIGNhY2hlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQs
IGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCks
IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlm
aWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOwogICAgIGRpZFJldHJpZXZl
Q2FjaGVFbnRyeShXVEZNb3ZlKGVudHJ5KSk7CiB9CiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9h
ZGVyOjpzdGFydE5ldHdvcmtMb2FkKFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEZpcnN0TG9h
ZCBsb2FkKQogewogICAgIGlmIChsb2FkID09IEZpcnN0TG9hZDo6WWVzKSB7Ci0gICAgICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0TmV0d29ya0xvYWQ6IChwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlz
TWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2Vi
UGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMu
aWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKKyAgICAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnROZXR3b3JrTG9hZDogKHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwg
aXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53
ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwg
bV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMo
KSk7CiAKICAgICAgICAgY29uc3VtZVNhbmRib3hFeHRlbnNpb25zKCk7CiAKQEAgLTMwOCw3ICsz
MDgsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnROZXR3b3JrTG9hZChSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBGaXJzdExvYQogICAgIH0KICAgICBpZiAoIW5ldHdvcmtT
ZXNzaW9uKSB7CiAgICAgICAgIFdURkxvZ0Fsd2F5cygiQXR0ZW1wdGVkIHRvIGNyZWF0ZSBhIE5l
dHdvcmtMb2FkIHdpdGggYSBzZXNzaW9uIChpZD0lIiBQUkl1NjQgIikgdGhhdCBkb2VzIG5vdCBl
eGlzdC4iLCBwYXJhbWV0ZXJzLnNlc3Npb25JRC5zZXNzaW9uSUQoKSk7Ci0gICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoInN0YXJ0TmV0d29ya0xvYWQ6IEF0dGVtcHRlZCB0byBj
cmVhdGUgYSBOZXR3b3JrTG9hZCB3aXRoIGEgc2Vzc2lvbiB0aGF0IGRvZXMgbm90IGV4aXN0IChw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JSIgUFJJdTY0ICIsIHNlc3Npb25JRD0lIiBQUkl1NjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFn
ZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRl
bnRpZmllciwgcGFyYW1ldGVycy5zZXNzaW9uSUQuc2Vzc2lvbklEKCkpOworICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKCJzdGFydE5ldHdvcmtMb2FkOiBBdHRlbXB0ZWQgdG8g
Y3JlYXRlIGEgTmV0d29ya0xvYWQgd2l0aCBhIHNlc3Npb24gdGhhdCBkb2VzIG5vdCBleGlzdCAo
cGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9
ICUiIFBSSXU2NCAiLCBzZXNzaW9uSUQ9JSIgUFJJdTY0ICIpIiwgbV9wYXJhbWV0ZXJzLndlYlBh
Z2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3Bh
cmFtZXRlcnMuaWRlbnRpZmllciwgcGFyYW1ldGVycy5zZXNzaW9uSUQuc2Vzc2lvbklEKCkpOwog
ICAgICAgICBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtQcm9jZXNzKCkubG9nRGlhZ25vc3RpY01lc3Nh
Z2UobV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlz
OjppbnRlcm5hbEVycm9yS2V5KCksIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6aW52
YWxpZFNlc3Npb25JREtleSgpLCBXZWJDb3JlOjpTaG91bGRTYW1wbGU6Ok5vKTsKICAgICAgICAg
ZGlkRmFpbExvYWRpbmcoaW50ZXJuYWxFcnJvcihyZXF1ZXN0LnVybCgpKSk7CiAgICAgICAgIHJl
dHVybjsKQEAgLTMyMCw3ICszMjAsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3Rh
cnROZXR3b3JrTG9hZChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBGaXJzdExvYQogICAgIHBh
cmFtZXRlcnMucmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCk7CiAgICAgbV9uZXR3b3JrTG9hZCA9
IHN0ZDo6bWFrZV91bmlxdWU8TmV0d29ya0xvYWQ+KCp0aGlzLCAmbmV0d29ya1Nlc3Npb24tPmJs
b2JSZWdpc3RyeSgpLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCAqbmV0d29ya1Nlc3Npb24pOwogCi0g
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnROZXR3b3JrTG9hZDogKHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQg
IiwgZGVzY3JpcHRpb24gPSAle3B1YmxpY31zKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9V
SW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVy
LCBtX25ldHdvcmtMb2FkLT5kZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpOworICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0TmV0d29ya0xvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGRlc2Ny
aXB0aW9uID0gJXtwdWJsaWN9cykiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCks
IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlm
aWVyLCBtX25ldHdvcmtMb2FkLT5kZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpOwogfQogCiB2
b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y2xlYW51cChMb2FkUmVzdWx0IHJlc3VsdCkKQEAg
LTM0NCw3ICszNDQsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y2xlYW51cChMb2Fk
UmVzdWx0IHJlc3VsdCkKIAogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnZlcnRUb0Rv
d25sb2FkKERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKLSAgICBSRUxFQVNFX0xP
RyhMb2FkaW5nLCAiQ29udmVydGluZyBOZXR3b3JrUmVzb3VyY2VMb2FkZXIgJXAgdG8gZG93bmxv
YWQgJSIgUFJJdTY0ICIgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCB0aGlzLCBkb3dubG9hZElELmRvd25sb2Fk
SUQoKSwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2Vi
RnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIpOworICAgIFJFTEVBU0VfTE9HKExvYWRp
bmcsICJDb252ZXJ0aW5nIE5ldHdvcmtSZXNvdXJjZUxvYWRlciAlcCB0byBkb3dubG9hZCAlIiBQ
Ukl1NjQgIiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHRoaXMsIGRvd25sb2FkSUQuZG93bmxvYWRJRCgpLCBt
X3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlE
LnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyKTsKICAgICAKICAgICAvLyBUaGlz
IGNhbiBoYXBwZW4gaWYgdGhlIHJlc291cmNlIGNhbWUgZnJvbSB0aGUgZGlzayBjYWNoZS4KICAg
ICBpZiAoIW1fbmV0d29ya0xvYWQpIHsKQEAgLTM2Miw3ICszNjIsNyBAQCB2b2lkIE5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6YWJvcnQoKQogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAK
ICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJhYm9ydDogQ2FuY2VsaW5nIHJlc291cmNlIGxv
YWQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNl
SUQgPSAlIiBQUkl1NjQgIikiLAotICAgICAgICBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUlu
dDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7
CisgICAgICAgIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJz
LndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIpOwogCiAgICAg
aWYgKG1fcGFyYW1ldGVycy5vcHRpb25zLmtlZXBBbGl2ZSAmJiBtX3Jlc3BvbnNlLmlzTnVsbCgp
ICYmICFtX2lzS2VwdEFsaXZlKSB7CiAgICAgICAgIG1faXNLZXB0QWxpdmUgPSB0cnVlOwpAQCAt
NDQ3LDcgKzQ0Nyw3IEBAIGJvb2wgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzaG91bGRJbnRlcnJ1
cHRMb2FkRm9yQ1NQRnJhbWVBbmNlc3RvcnNPclhGcmFtZU9wdGlvCiAKIHZvaWQgTmV0d29ya1Jl
c291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZSYmIHJlY2Vp
dmVkUmVzcG9uc2UsIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6IChw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JSIgUFJJdTY0ICIsIGh0dHBTdGF0dXNDb2RlID0gJWQsIGxlbmd0aCA9ICUiIFBSSWQ2NCAiKSIs
IG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1l
SUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCByZWNlaXZlZFJlc3BvbnNlLmh0dHBTdGF0dXND
b2RlKCksIHJlY2VpdmVkUmVzcG9uc2UuZXhwZWN0ZWRDb250ZW50TGVuZ3RoKCkpOworICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZTogKHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwg
aHR0cFN0YXR1c0NvZGUgPSAlZCwgbGVuZ3RoID0gJSIgUFJJZDY0ICIpIiwgbV9wYXJhbWV0ZXJz
LndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgp
LCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgcmVjZWl2ZWRSZXNwb25zZS5odHRwU3RhdHVzQ29k
ZSgpLCByZWNlaXZlZFJlc3BvbnNlLmV4cGVjdGVkQ29udGVudExlbmd0aCgpKTsKIAogICAgIG1f
cmVzcG9uc2UgPSBXVEZNb3ZlKHJlY2VpdmVkUmVzcG9uc2UpOwogCkBAIC01MjcsNyArNTI3LDcg
QEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJj
ZVJlc3BvbnNlJiYgcmVjZWl2ZWRSZXNwb24KIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpk
aWRSZWNlaXZlQnVmZmVyKFJlZjxTaGFyZWRCdWZmZXI+JiYgYnVmZmVyLCBpbnQgcmVwb3J0ZWRF
bmNvZGVkRGF0YUxlbmd0aCkKIHsKICAgICBpZiAoIW1fbnVtQnl0ZXNSZWNlaXZlZCkKLSAgICAg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZUJ1ZmZlcjogU3RhcnRlZCByZWNl
aXZpbmcgZGF0YSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwg
cmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50
NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyKTsK
KyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZUJ1ZmZlcjogU3RhcnRl
ZCByZWNlaXZpbmcgZGF0YSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQu
dG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0
ZXJzLmlkZW50aWZpZXIpOwogICAgIG1fbnVtQnl0ZXNSZWNlaXZlZCArPSBidWZmZXItPnNpemUo
KTsKIAogICAgIEFTU0VSVCghbV9jYWNoZUVudHJ5Rm9yVmFsaWRhdGlvbik7CkBAIC01NTYsNyAr
NTU2LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVCdWZmZXIoUmVm
PFNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIsIGludCByZXAKIAogdm9pZCBOZXR3b3JrUmVzb3VyY2VM
b2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3Jr
TG9hZE1ldHJpY3MpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkRmluaXNoTG9h
ZGluZzogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIiwgbGVuZ3RoID0gJXpkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdl
SUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVu
dGlmaWVyLCBtX251bUJ5dGVzUmVjZWl2ZWQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
ImRpZEZpbmlzaExvYWRpbmc6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGxlbmd0aCA9ICV6ZCkiLCBtX3BhcmFt
ZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUlu
dDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBtX251bUJ5dGVzUmVjZWl2ZWQpOwogCiAg
ICAgaWYgKHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcygpKQogICAgICAgICBt
X2Nvbm5lY3Rpb24tPmFkZE5ldHdvcmtMb2FkSW5mb3JtYXRpb25NZXRyaWNzKGlkZW50aWZpZXIo
KSwgbmV0d29ya0xvYWRNZXRyaWNzKTsKQEAgLTU5MSw3ICs1OTEsNyBAQCB2b2lkIE5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3Mm
IG5ldHdvcmtMbwogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbExvYWRpbmco
Y29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RCgiZGlkRmFpbExvYWRpbmc6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzVGltZW91dCA9ICVkLCBpc0NhbmNl
bGxhdGlvbiA9ICVkLCBpc0FjY2Vzc0NvbnRyb2wgPSAlZCwgZXJyQ29kZSA9ICVkKSIsIG1fcGFy
YW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1f
cGFyYW1ldGVycy5pZGVudGlmaWVyLCBlcnJvci5pc1RpbWVvdXQoKSwgZXJyb3IuaXNDYW5jZWxs
YXRpb24oKSwgZXJyb3IuaXNBY2Nlc3NDb250cm9sKCksIGVycm9yLmVycm9yQ29kZSgpKTsKKyAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRGYWlsTG9hZGluZzogKHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwg
aXNUaW1lb3V0ID0gJWQsIGlzQ2FuY2VsbGF0aW9uID0gJWQsIGlzQWNjZXNzQ29udHJvbCA9ICVk
LCBlcnJDb2RlID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Bh
cmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwg
ZXJyb3IuaXNUaW1lb3V0KCksIGVycm9yLmlzQ2FuY2VsbGF0aW9uKCksIGVycm9yLmlzQWNjZXNz
Q29udHJvbCgpLCBlcnJvci5lcnJvckNvZGUoKSk7CiAKICAgICBpZiAoc2hvdWxkQ2FwdHVyZUV4
dHJhTmV0d29ya0xvYWRNZXRyaWNzKCkpCiAgICAgICAgIG1fY29ubmVjdGlvbi0+cmVtb3ZlTmV0
d29ya0xvYWRJbmZvcm1hdGlvbihpZGVudGlmaWVyKCkpOwpAQCAtNzU2LDcgKzc1Niw3IEBAIHZv
aWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjb250aW51ZVdpbGxTZW5kUmVxdWVzdChSZXNvdXJj
ZVJlcXVlc3QmJiBuZXdSZXF1ZXN0CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKCJjb250aW51ZVdpbGxTZW5kUmVxdWVzdDogKHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBt
X3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlE
LCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgi
Y29udGludWVXaWxsU2VuZFJlcXVlc3Q6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9
ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV9wYXJhbWV0ZXJzLndl
YlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBt
X3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CiAKICAgICBtX2lzQWxsb3dlZFRvQXNrVXNlckZvckNy
ZWRlbnRpYWxzID0gaXNBbGxvd2VkVG9Bc2tVc2VyRm9yQ3JlZGVudGlhbHM7CiAKQEAgLTEwMTEs
MTIgKzEwMTEsMTcgQEAgc3RhdGljIFN0cmluZyBlc2NhcGVGb3JKU09OKFN0cmluZyBzKQogc3Rh
dGljIFN0cmluZyBlc2NhcGVJREZvckpTT04oY29uc3QgT3B0aW9uYWw8dWludDY0X3Q+JiB2YWx1
ZSkKIHsKICAgICByZXR1cm4gdmFsdWUgPyBTdHJpbmc6Om51bWJlcih2YWx1ZS52YWx1ZSgpKSA6
IFN0cmluZygiTm9uZSJfcyk7Ci19OworfQorCitzdGF0aWMgU3RyaW5nIGVzY2FwZUlERm9ySlNP
Tihjb25zdCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+JiB2YWx1ZSkKK3sKKyAgICByZXR1cm4g
dmFsdWUgPyBTdHJpbmc6Om51bWJlcih2YWx1ZS0+dG9VSW50NjQoKSkgOiBTdHJpbmcoIk5vbmUi
X3MpOworfQogCiBzdGF0aWMgU3RyaW5nIGVzY2FwZUlERm9ySlNPTihjb25zdCBPcHRpb25hbDxQ
YWdlSWRlbnRpZmllcj4mIHZhbHVlKQogewogICAgIHJldHVybiB2YWx1ZSA/IFN0cmluZzo6bnVt
YmVyKHZhbHVlLT50b1VJbnQ2NCgpKSA6IFN0cmluZygiTm9uZSJfcyk7Ci19OworfQogCiB2b2lk
IE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6bG9nQ29va2llSW5mb3JtYXRpb24oKSBjb25zdAogewpA
QCAtMTAyOCw3ICsxMDMzLDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmxvZ0Nvb2tp
ZUluZm9ybWF0aW9uKCkgY29uc3QKICAgICBsb2dDb29raWVJbmZvcm1hdGlvbihtX2Nvbm5lY3Rp
b24sICJOZXR3b3JrUmVzb3VyY2VMb2FkZXIiLCByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQq
Pih0aGlzKSwgKm5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgb3JpZ2luYWxSZXF1ZXN0KCkuZmlyc3RQ
YXJ0eUZvckNvb2tpZXMoKSwgU2FtZVNpdGVJbmZvOjpjcmVhdGUob3JpZ2luYWxSZXF1ZXN0KCkp
LCBvcmlnaW5hbFJlcXVlc3QoKS51cmwoKSwgb3JpZ2luYWxSZXF1ZXN0KCkuaHR0cFJlZmVycmVy
KCksIGZyYW1lSUQoKSwgcGFnZUlEKCksIGlkZW50aWZpZXIoKSk7CiB9CiAKLXN0YXRpYyB2b2lk
IGxvZ0Jsb2NrZWRDb29raWVJbmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyYgY29ubmVjdGlvbiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2Jq
ZWN0LCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIG5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVT
aXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIE9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBPcHRp
b25hbDx1aW50NjRfdD4gaWRlbnRpZmllcikKK3N0YXRpYyB2b2lkIGxvZ0Jsb2NrZWRDb29raWVJ
bmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgY29u
c3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBjb25zdCBXZWJDb3Jl
OjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgY29uc3QgVVJM
JiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJM
JiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4g
ZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgT3B0aW9uYWw8dWludDY0
X3Q+IGlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2hv
dWxkTG9nQ29va2llSW5mb3JtYXRpb24oY29ubmVjdGlvbiwgbmV0d29ya1N0b3JhZ2VTZXNzaW9u
LnNlc3Npb25JRCgpKSk7CiAKQEAgLTEwNTUsNyArMTA2MCw3IEBAIHN0YXRpYyB2b2lkIGxvZ0Js
b2NrZWRDb29raWVJbmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29u
bmVjdGlvCiAjdW5kZWYgTE9DQUxfTE9HX0lGX0FMTE9XRUQKIH0KIAotc3RhdGljIHZvaWQgbG9n
Q29va2llSW5mb3JtYXRpb25JbnRlcm5hbChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYg
Y29ubmVjdGlvbiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0
LCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIG5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8m
IHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIE9w
dGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlE
LCBPcHRpb25hbDx1aW50NjRfdD4gaWRlbnRpZmllcikKK3N0YXRpYyB2b2lkIGxvZ0Nvb2tpZUlu
Zm9ybWF0aW9uSW50ZXJuYWwoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rp
b24sIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29uc3Qg
V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24sIGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiBzYW1lU2l0
ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBPcHRpb25hbDxG
cmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQs
IE9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyKQogewogICAgIEFTU0VSVChOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OnNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKGNvbm5lY3Rpb24sIG5ldHdv
cmtTdG9yYWdlU2Vzc2lvbi5zZXNzaW9uSUQoKSkpOwogCkBAIC0xMTE2LDcgKzExMjEsNyBAQCBz
dGF0aWMgdm9pZCBsb2dDb29raWVJbmZvcm1hdGlvbkludGVybmFsKE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzJiBjb25uZWN0aQogI3VuZGVmIExPQ0FMX0xPR19JRl9BTExPV0VECiB9CiAK
LXZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpsb2dDb29raWVJbmZvcm1hdGlvbihOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgY29uc3QgU3RyaW5nJiBsYWJlbCwg
Y29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIG5l
dHdvcmtTdG9yYWdlU2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0
ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJy
ZXIsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
cGFnZUlELCBPcHRpb25hbDx1aW50NjRfdD4gaWRlbnRpZmllcikKK3ZvaWQgTmV0d29ya1Jlc291
cmNlTG9hZGVyOjpsb2dDb29raWVJbmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYgY29ubmVjdGlvbiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2Vk
T2JqZWN0LCBjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIG5ldHdvcmtTdG9yYWdlU2Vzc2lv
biwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5m
bywgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIE9wdGlvbmFsPEZyYW1l
SWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgT3B0
aW9uYWw8dWludDY0X3Q+IGlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKHNob3VsZExvZ0Nvb2tp
ZUluZm9ybWF0aW9uKGNvbm5lY3Rpb24sIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5zZXNzaW9uSUQo
KSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkZXIuaAppbmRleCA2MmM2NWNkZGZmN2NhMGIyMGExYzE5MDk5YjlmNzE1ZmFlNDU0
YThlLi43NDkyZGYzMmY3OTk2ZTA5MDNiZTkwZGEwMDVlOWIxNDZkYTE1ZmJjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgK
QEAgLTg1LDcgKzg1LDcgQEAgcHVibGljOgogICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkgY29uc3QgeyByZXR1cm4gbV9jb25uZWN0aW9u
OyB9CiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9wYXJh
bWV0ZXJzLnNlc3Npb25JRDsgfQogICAgIFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmll
cigpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyOyB9Ci0gICAgdWludDY0
X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlEOyB9Cisg
ICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX3Bh
cmFtZXRlcnMud2ViRnJhbWVJRDsgfQogICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQ7IH0KIAogICAgIHN0cnVj
dCBTeW5jaHJvbm91c0xvYWREYXRhOwpAQCAtMTEyLDcgKzExMiw3IEBAIHB1YmxpYzoKIAogI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpICYmICFSRUxFQVNFX0xPR19ESVNBQkxF
RAogICAgIHN0YXRpYyBib29sIHNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzJiwgY29uc3QgUEFMOjpTZXNzaW9uSUQmKTsKLSAgICBzdGF0aWMg
dm9pZCBsb2dDb29raWVJbmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYs
IGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29uc3QgV2Vi
Q29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHJlZmVy
cmVyLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXI+LCBPcHRpb25hbDx1aW50NjRfdD4gaWRlbnRpZmllcik7CisgICAgc3RhdGljIHZv
aWQgbG9nQ29va2llSW5mb3JtYXRpb24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBj
b25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2b2lkKiBsb2dnZWRPYmplY3QsIGNvbnN0IFdlYkNv
cmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
V2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiByZWZlcnJl
ciwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8V2ViQ29yZTo6
UGFnZUlkZW50aWZpZXI+LCBPcHRpb25hbDx1aW50NjRfdD4gaWRlbnRpZmllcik7CiAjZW5kaWYK
IAogICAgIHZvaWQgZGlzYWJsZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzQ2FwdHVyZSgpIHsgbV9z
aG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MgPSBmYWxzZTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmgKaW5kZXggZDk0
ZmM3MzgwZjE5YTVmNWY1Yjc4ZWEzOWVmMWQ2NWE5MjExZWU0Zi4uODVkMTAwY2E2YzdjMDVmYjhj
M2QxMmQwM2E0NDAyODExMDM5NWVmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAi
TmV0d29ya0NhY2hlRW50cnkuaCIKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVTdG9yYWdlLmgiCiAj
aW5jbHVkZSAiU2hhcmVhYmxlUmVzb3VyY2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRl
bnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhh
bmRsZXIuaD4KQEAgLTg1LDcgKzg2LDcgQEAgZW51bSBjbGFzcyBVc2VEZWNpc2lvbiB7CiAgICAg
Tm9EdWVUb0V4cGlyZWRSZWRpcmVjdAogfTsKIAotdXNpbmcgR2xvYmFsRnJhbWVJRCA9IHN0ZDo6
cGFpcjxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgLyp3ZWJGcmFtZUlEKi8+Owor
dXNpbmcgR2xvYmFsRnJhbWVJRCA9IHN0ZDo6cGFpcjxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPjsgLy8gRklYTUU6IFVzZSBHbG9iYWxGcmFtZUlkZW50
aWZpZXIuCiAKIGVudW0gY2xhc3MgQ2FjaGVPcHRpb24gOiB1aW50OF90IHsKICAgICAvLyBJbiB0
ZXN0aW5nIG1vZGUgd2UgdHJ5IHRvIGVsaW1pbmF0ZSBzb3VyY2VzIG9mIHJhbmRvbW5lc3MuIENh
Y2hlIGRvZXMgbm90IHNocmluayBhbmQgdGhlcmUgYXJlIG5vIHJlYWQgdGltZW91dHMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFz
a0NvY29hLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRh
VGFza0NvY29hLmgKaW5kZXggMjc5MzU3NTM1YmUxZTg0YTEzZDMxZmY3ZmMzMmVjODJlNjllZGI4
Zi4uNDNhZDZmMWRlNDFjNTE2MWRkOWRiM2I2OWFmOTFjYTNmN2FiMjQzMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNr
Q29jb2EuaApAQCAtNDIsNyArNDIsNyBAQCBjbGFzcyBOZXR3b3JrU2Vzc2lvbkNvY29hOwogY2xh
c3MgTmV0d29ya0RhdGFUYXNrQ29jb2EgZmluYWwgOiBwdWJsaWMgTmV0d29ya0RhdGFUYXNrIHsK
ICAgICBmcmllbmQgY2xhc3MgTmV0d29ya1Nlc3Npb25Db2NvYTsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPE5ldHdvcmtEYXRhVGFzaz4gY3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBO
ZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBw
YWdlSUQsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxz
UG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZm
LCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50RW5j
b2RpbmdTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0
LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lzRm9y
TWFpbkZyYW1lTmF2aWdhdGlvbiwgYm9vbCBkYXRhVGFza0lzRm9yTWFpblJlc291cmNlTmF2aWdh
dGlvbkZvckFueUZyYW1lLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBuZXR3b3Jr
QWN0aXZpdHlUcmFja2VyKQorICAgIHN0YXRpYyBSZWY8TmV0d29ya0RhdGFUYXNrPiBjcmVhdGUo
TmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6
OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3Jl
OjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBXZWJDb3JlOjpDb250
ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgYm9v
bCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25s
eSBzaG91bGRQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdh
dGlvbiwgYm9vbCBkYXRhVGFza0lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1l
LCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBuZXR3b3JrQWN0aXZpdHlUcmFja2Vy
KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya0RhdGFUYXNrQ29j
b2Eoc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0LCBmcmFtZUlELCBwYWdlSUQsIHN0b3JlZENyZWRl
bnRpYWxzUG9saWN5LCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENvbnRlbnRFbmNvZGluZ1Nu
aWZmLCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBzaG91bGRQcmVj
b25uZWN0T25seSwgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24sIGRhdGFUYXNrSXNG
b3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIG5ldHdvcmtBY3Rpdml0eVRyYWNr
ZXIpKTsKICAgICB9CkBAIC02OSwxMyArNjksMTMgQEAgcHVibGljOgogCiAgICAgV2ViQ29yZTo6
TmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3JrTG9hZE1ldHJpY3MoKSB7IHJldHVybiBtX25ldHdv
cmtMb2FkTWV0cmljczsgfQogCi0gICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJu
IG1fZnJhbWVJRDsgfTsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNv
bnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfTsKICAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBw
YWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VJRDsgfTsKIAogICAgIFN0cmluZyBkZXNjcmlw
dGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIE5ldHdvcmtEYXRhVGFza0Nv
Y29hKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50
U25pZmZpbmdQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5LCBi
b29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RP
bmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBib29sIGRhdGFUYXNr
SXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIE9wdGlvbmFsPE5ldHdvcmtB
Y3Rpdml0eVRyYWNrZXI+KTsKKyAgICBOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lv
biYsIE5ldHdvcmtEYXRhVGFza0NsaWVudCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdl
YkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQ
b2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5LCBib29sIHNob3Vs
ZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5LCBib29s
IGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBib29sIGRhdGFUYXNrSXNGb3JNYWlu
UmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRy
YWNrZXI+KTsKIAogICAgIGJvb2wgdHJ5UGFzc3dvcmRCYXNlZEF1dGhlbnRpY2F0aW9uKGNvbnN0
IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgQ2hhbGxlbmdlQ29tcGxldGlvbkhh
bmRsZXImKTsKICAgICB2b2lkIGFwcGx5U25pZmZpbmdQb2xpY2llc0FuZEJpbmRSZXF1ZXN0VG9J
bmZlcmZhY2VJZk5lZWRlZChfX3N0cm9uZyBOU1VSTFJlcXVlc3QqJiwgYm9vbCBzaG91bGRDb250
ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYpOwpAQCAtOTIsNyArOTIs
NyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBtX3NhbmRib3hFeHRl
bnNpb247CiAgICAgUmV0YWluUHRyPE5TVVJMU2Vzc2lvbkRhdGFUYXNrPiBtX3Rhc2s7CiAgICAg
V2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzIG1fbmV0d29ya0xvYWRNZXRyaWNzOwotICAgIHVp
bnQ2NF90IG1fZnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbV9mcmFtZUlE
OwogICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIG1fcGFnZUlEOwogCiAjaWYgRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCmluZGV4IDQyZTdhY2U0
MjRiMmFiOGJiMDBhMzdjOTYzZWE5N2Q0NDEzMTVhZTAuLmMyZTdiMzY4NTRlNzM5NWNiNjkzMGQ2
ZTI1NzQ4YzRiYWQ2MDEyMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQpAQCAtMTcwLDcgKzE3MCw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBjb21wdXRlSXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKE5l
dHdvcmtTZXNzaW9uJiBzZXNzaW9uKQogICAgIHJldHVybiBzZXNzaW9uLnNlc3Npb25JRCgpLmlz
QWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpOwogfQogCi1OZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0
d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFz
a0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3RX
aXRoQ3JlZGVudGlhbHMsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25p
ZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRF
bmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJl
Y3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNG
b3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBib29sIGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZp
Z2F0aW9uRm9yQW55RnJhbWUsIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+IG5ldHdv
cmtBY3Rpdml0eVRyYWNrZXIpCitOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNr
Q29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xp
ZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3RXaXRoQ3JlZGVudGlh
bHMsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciBwYWdlSUQsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRl
bnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVu
dFNuaWZmLCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250
ZW50RW5jb2RpbmdTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJl
ZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFz
a0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgYm9vbCBkYXRhVGFza0lzRm9yTWFpblJlc291cmNl
TmF2aWdhdGlvbkZvckFueUZyYW1lLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBu
ZXR3b3JrQWN0aXZpdHlUcmFja2VyKQogICAgIDogTmV0d29ya0RhdGFUYXNrKHNlc3Npb24sIGNs
aWVudCwgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNo
b3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIGRhdGFUYXNrSXNGb3JNYWlu
RnJhbWVOYXZpZ2F0aW9uKQogICAgICwgbV9mcmFtZUlEKGZyYW1lSUQpCiAgICAgLCBtX3BhZ2VJ
RChwYWdlSUQpCkBAIC0yNTYsNyArMjU2LDcgQEAgTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdv
cmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVQKICAg
ICBpZiAoc2hvdWxkQmxvY2tDb29raWVzKSB7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAg
ICAgICAgIGlmIChtX3Nlc3Npb24tPnNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKCkpCi0gICAg
ICAgICAgICBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29y
aywgIiVwIC0gTmV0d29ya0RhdGFUYXNrQ29jb2E6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uOiBwYWdl
SUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwgdGFza0lEID0gJWx1OiBCbG9ja2luZyBjb29raWVz
IGZvciBVUkwgJXMiLCB0aGlzLCBwYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCwgKHVuc2lnbmVk
IGxvbmcpW21fdGFzayB0YXNrSWRlbnRpZmllcl0sIG5zUmVxdWVzdC5VUkwuYWJzb2x1dGVTdHJp
bmcuVVRGOFN0cmluZyk7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9n
Z2luZ0FsbG93ZWQoKSwgTmV0d29yaywgIiVwIC0gTmV0d29ya0RhdGFUYXNrQ29jb2E6OmxvZ0Nv
b2tpZUluZm9ybWF0aW9uOiBwYWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwgdGFza0lEID0g
JWx1OiBCbG9ja2luZyBjb29raWVzIGZvciBVUkwgJXMiLCB0aGlzLCBwYWdlSUQudG9VSW50NjQo
KSwgZnJhbWVJRC50b1VJbnQ2NCgpLCAodW5zaWduZWQgbG9uZylbbV90YXNrIHRhc2tJZGVudGlm
aWVyXSwgbnNSZXF1ZXN0LlVSTC5hYnNvbHV0ZVN0cmluZy5VVEY4U3RyaW5nKTsKICNlbHNlCiAg
ICAgICAgIExPRyhOZXR3b3JrU2Vzc2lvbiwgIiVsbHUgQmxvY2tpbmcgY29va2llcyBmb3IgVVJM
ICVzIiwgW21fdGFzayB0YXNrSWRlbnRpZmllcl0sIG5zUmVxdWVzdC5VUkwuYWJzb2x1dGVTdHJp
bmcuVVRGOFN0cmluZyk7CiAjZW5kaWYKQEAgLTM5MCw3ICszOTAsNyBAQCB2b2lkIE5ldHdvcmtE
YXRhVGFza0NvY29hOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbihXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJgogICAgIH0KICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBpZiAobV9z
ZXNzaW9uLT5zaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbigpKQotICAgICAgICBSRUxFQVNFX0xP
R19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29yaywgIiVwIC0gTmV0d29ya0Rh
dGFUYXNrQ29jb2E6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uOjpsb2dDb29raWVJbmZvcm1h
dGlvbjogcGFnZUlEID0gJWxsdSwgZnJhbWVJRCA9ICVsbHUsIHRhc2tJRCA9ICVsdTogJXMgY29v
a2llcyBmb3IgcmVkaXJlY3QgVVJMICVzIiwgdGhpcywgbV9wYWdlSUQudG9VSW50NjQoKSwgbV9m
cmFtZUlELCAodW5zaWduZWQgbG9uZylbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgKG1faGFzQmVl
blNldFRvVXNlU3RhdGVsZXNzQ29va2llU3RvcmFnZSA/ICJCbG9ja2luZyIgOiAiTm90IGJsb2Nr
aW5nIiksIHJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIFJF
TEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3b3JrLCAiJXAgLSBO
ZXR3b3JrRGF0YVRhc2tDb2NvYTo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb246OmxvZ0Nvb2tp
ZUluZm9ybWF0aW9uOiBwYWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwgdGFza0lEID0gJWx1
OiAlcyBjb29raWVzIGZvciByZWRpcmVjdCBVUkwgJXMiLCB0aGlzLCBtX3BhZ2VJRC50b1VJbnQ2
NCgpLCBtX2ZyYW1lSUQudG9VSW50NjQoKSwgKHVuc2lnbmVkIGxvbmcpW21fdGFzayB0YXNrSWRl
bnRpZmllcl0sIChtX2hhc0JlZW5TZXRUb1VzZVN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2UgPyAiQmxv
Y2tpbmciIDogIk5vdCBibG9ja2luZyIpLCByZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOwogI2Vsc2UKICAgICBMT0coTmV0d29ya1Nlc3Npb24sICIlbGx1ICVzIGNvb2tpZXMg
Zm9yIHJlZGlyZWN0IFVSTCAlcyIsIFttX3Rhc2sgdGFza0lkZW50aWZpZXJdLCAobV9oYXNCZWVu
U2V0VG9Vc2VTdGF0ZWxlc3NDb29raWVTdG9yYWdlID8gIkJsb2NraW5nIiA6ICJOb3QgYmxvY2tp
bmciKSwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggZjBlYzhkYzFiNzE2OWJj
Y2E1NWE2NTQ5MTJlZDJmZWY1MzcwZGYxMC4uYzAxZTg5NTllODA3ZmY2MjRlZjg1NzdlYjM1NTY1
ZTQyZDkzYTNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBA
IC0yMDUsNiArMjA1LDcgQEAgZGVmIGZvcndhcmRfZGVjbGFyYXRpb25zX2FuZF9oZWFkZXJzKHJl
Y2VpdmVyKToKICAgICAgICAgJ1N0cmluZycsCiAgICAgICAgICdXZWJDb3JlOjpEb2N1bWVudElk
ZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyJywKKyAgICAgICAg
J1dlYkNvcmU6OkZyYW1lSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpQb2ludGVySUQnLAogICAgICAgICAnV2ViQ29yZTo6
UHJvY2Vzc0lkZW50aWZpZXInLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJ
L0FQSUZyYW1lSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElGcmFtZUhh
bmRsZS5jcHAKaW5kZXggNzk2NDZhYzZlNTljNDFkNGRmNzA5MDFkYmE3ZTI2NzUzMzZkNTI0YS4u
NDA4MDEzODg1NDhhMTgxMWFiNTllNWNiMjQ1YTExNTIxMTQyYmVmYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuY3BwCkBAIC0zMSwxNyArMzEsMTcgQEAKIAog
bmFtZXNwYWNlIEFQSSB7CiAKLVJlZjxGcmFtZUhhbmRsZT4gRnJhbWVIYW5kbGU6OmNyZWF0ZSh1
aW50NjRfdCBmcmFtZUlEKQorUmVmPEZyYW1lSGFuZGxlPiBGcmFtZUhhbmRsZTo6Y3JlYXRlKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEZyYW1lSGFuZGxlKGZyYW1lSUQsIGZhbHNlKSk7CiB9CiAKLVJlZjxGcmFtZUhhbmRsZT4g
RnJhbWVIYW5kbGU6OmNyZWF0ZUF1dG9jb252ZXJ0aW5nKHVpbnQ2NF90IGZyYW1lSUQpCitSZWY8
RnJhbWVIYW5kbGU+IEZyYW1lSGFuZGxlOjpjcmVhdGVBdXRvY29udmVydGluZyhXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGcmFt
ZUhhbmRsZShmcmFtZUlELCB0cnVlKSk7CiB9CiAKLUZyYW1lSGFuZGxlOjpGcmFtZUhhbmRsZSh1
aW50NjRfdCBmcmFtZUlELCBib29sIGlzQXV0b2NvbnZlcnRpbmcpCitGcmFtZUhhbmRsZTo6RnJh
bWVIYW5kbGUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wgaXNBdXRvY29u
dmVydGluZykKICAgICA6IG1fZnJhbWVJRChmcmFtZUlEKQogICAgICwgbV9pc0F1dG9jb252ZXJ0
aW5nKGlzQXV0b2NvbnZlcnRpbmcpCiB7CkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgRnJhbWVIYW5k
bGU6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAKIGJvb2wgRnJhbWVIYW5k
bGU6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFJlZlB0cjxPYmplY3Q+JiByZXN1bHQp
CiB7Ci0gICAgdWludDY0X3QgZnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGZyYW1lSUQpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElGcmFt
ZUhhbmRsZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmgKaW5k
ZXggYjEwZTgwOGE0YjE5YWQzMTNkOGI0NTVjMjNiOWQ4Mzk5Y2MzODU1MC4uMWM2NGE0YWQxZTgw
MmEwNDY3Mjk4MWJjYmY4YTc2MDE2NDI1ZmZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJ
L0FQSUZyYW1lSGFuZGxlLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgQVBJRnJhbWVIYW5k
bGVfaAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlk
ZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKIG5hbWVzcGFjZSBJUEMgewpAQCAt
MzgsMjAgKzM5LDIwIEBAIG5hbWVzcGFjZSBBUEkgewogCiBjbGFzcyBGcmFtZUhhbmRsZSA6IHB1
YmxpYyBPYmplY3RJbXBsPE9iamVjdDo6VHlwZTo6RnJhbWVIYW5kbGU+IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPEZyYW1lSGFuZGxlPiBjcmVhdGUodWludDY0X3QgZnJhbWVJRCk7Ci0gICAg
c3RhdGljIFJlZjxGcmFtZUhhbmRsZT4gY3JlYXRlQXV0b2NvbnZlcnRpbmcodWludDY0X3QgZnJh
bWVJRCk7CisgICAgc3RhdGljIFJlZjxGcmFtZUhhbmRsZT4gY3JlYXRlKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcik7CisgICAgc3RhdGljIFJlZjxGcmFtZUhhbmRsZT4gY3JlYXRlQXV0b2NvbnZl
cnRpbmcoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKIAotICAgIGV4cGxpY2l0IEZyYW1lSGFu
ZGxlKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNBdXRvY29udmVydGluZyk7CisgICAgZXhwbGlj
aXQgRnJhbWVIYW5kbGUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBib29sIGlzQXV0b2NvbnZl
cnRpbmcpOwogICAgIHZpcnR1YWwgfkZyYW1lSGFuZGxlKCk7CiAKLSAgICB1aW50NjRfdCBmcmFt
ZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KICAgICBib29sIGlz
QXV0b2NvbnZlcnRpbmcoKSBjb25zdCB7IHJldHVybiBtX2lzQXV0b2NvbnZlcnRpbmc7IH0KIAog
ICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRl
Y29kZShJUEM6OkRlY29kZXImLCBSZWZQdHI8T2JqZWN0PiYpOwogCiBwcml2YXRlOgotICAgIGNv
bnN0IHVpbnQ2NF90IG1fZnJhbWVJRDsKKyAgICBjb25zdCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgbV9mcmFtZUlEOwogICAgIGNvbnN0IGJvb2wgbV9pc0F1dG9jb252ZXJ0aW5nOwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS0ZyYW1lSGFuZGxl
Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS0ZyYW1lSGFuZGxlLm1tCmlu
ZGV4IGE0MWE2MTNhN2QzNzFkN2FlMmE3M2U0MDU4MjdiMGFiZDczNTcwNzAuLmVkY2IzOGU2MzVh
N2JmMDkyN2IxMTBjYzdkNGNmOTc2NmFiNWQwODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5kbGUubW0KQEAgLTI2LDYgKzI2LDggQEAKICNpbXBv
cnQgImNvbmZpZy5oIgogI2ltcG9ydCAiX1dLRnJhbWVIYW5kbGVJbnRlcm5hbC5oIgogCisjaW1w
b3J0IDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgorCiBAaW1wbGVtZW50YXRpb24gX1dLRnJh
bWVIYW5kbGUgewogICAgIEFQSTo6T2JqZWN0U3RvcmFnZTxBUEk6OkZyYW1lSGFuZGxlPiBfZnJh
bWVIYW5kbGU7CiB9CkBAIC01MCwxMiArNTIsMTIgQEAgLSAoQk9PTClpc0VxdWFsOihpZClvYmpl
Y3QKIAogLSAoTlNVSW50ZWdlciloYXNoCiB7Ci0gICAgcmV0dXJuIF9mcmFtZUhhbmRsZS0+ZnJh
bWVJRCgpOworICAgIHJldHVybiBfZnJhbWVIYW5kbGUtPmZyYW1lSUQoKS50b1VJbnQ2NCgpOwog
fQogCiAtICh1aW50NjRfdClfZnJhbWVJRAogewotICAgIHJldHVybiBfZnJhbWVIYW5kbGUtPmZy
YW1lSUQoKTsKKyAgICByZXR1cm4gX2ZyYW1lSGFuZGxlLT5mcmFtZUlEKCkudG9VSW50NjQoKTsK
IH0KIAogI3ByYWdtYSBtYXJrIE5TQ29weWluZyBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbgpAQCAt
ODMsMTQgKzg1LDE0IEBAIC0gKGlkKWluaXRXaXRoQ29kZXI6KE5TQ29kZXIgKilkZWNvZGVyCiAg
ICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCi0gICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdElu
V3JhcHBlcjxBUEk6OkZyYW1lSGFuZGxlPihzZWxmLCBmcmFtZUlELnVuc2lnbmVkTG9uZ0xvbmdW
YWx1ZSwgZmFsc2UpOworICAgIEFQSTo6T2JqZWN0Ojpjb25zdHJ1Y3RJbldyYXBwZXI8QVBJOjpG
cmFtZUhhbmRsZT4oc2VsZiwgV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKGZyYW1lSUQu
dW5zaWduZWRMb25nTG9uZ1ZhbHVlKSwgZmFsc2UpOwogCiAgICAgcmV0dXJuIHNlbGY7CiB9CiAK
IC0gKHZvaWQpZW5jb2RlV2l0aENvZGVyOihOU0NvZGVyICopY29kZXIKIHsKLSAgICBbY29kZXIg
ZW5jb2RlT2JqZWN0OkAoX2ZyYW1lSGFuZGxlLT5mcmFtZUlEKCkpIGZvcktleTpAImZyYW1lSUQi
XTsKKyAgICBbY29kZXIgZW5jb2RlT2JqZWN0OkAoW3NlbGYgX2ZyYW1lSURdKSBmb3JLZXk6QCJm
cmFtZUlEIl07CiB9CiAKICNwcmFnbWEgbWFyayBXS09iamVjdCBwcm90b2NvbCBpbXBsZW1lbnRh
dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0
aGVudGljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggOWRlYjc2ZmYxMzJjNmNiNWZkZjVl
YmY1MjIyMzRmNmQ0NDNlZjk0ZC4uMzhhNWJmZjZhZmQyNTcxZDUyZGNlNGMwOTgwNGFhNzU0NGFi
ZTRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0
aGVudGljYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCkBAIC0xMDgsNyArMTA4LDcgQEAgVmVj
dG9yPHVpbnQ2NF90PiBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmNvYWxlc2NlQ2hhbGxlbmdlc01h
dGNoaW5nKHVpbnQ2NF90IGNoYWwKICAgICByZXR1cm4gY2hhbGxlbmdlc1RvQ29hbGVzY2U7CiB9
CiAKLXZvaWQgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UsIENoYWxsZW5n
ZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIEF1dGhlbnRpY2F0
aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgQ2hhbGxlbmdlQ29tcGxldGlvbkhh
bmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQocGFnZUlEKTsKICAgICBB
U1NFUlQoZnJhbWVJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1
dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oCmluZGV4IDg2ZTc0NGMxMDhkZjRj
YmNmNWQwNDc2MDlhY2Y5NmM2ODIzZDZiMTYuLjQwMzZlYWI3N2ZkOWNlMTU1NTMwZmI2YTRjYzU2
MTY4M2Q3ZWQ5MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1
dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oCkBAIC0yOSw2ICsyOSw3IEBACiAj
aW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vz
c1N1cHBsZW1lbnQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTYxLDcgKzYyLDcgQEAgcHVibGljOgogCiAg
ICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CiAKLSAgICB2b2lkIGRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBD
aGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxs
ZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKElQQzo6TWVzc2FnZVNlbmRlciYgZG93bmxvYWQsIGNvbnN0IFdlYkNvcmU6
OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJik7
CiAKICAgICB2b2lkIGNvbXBsZXRlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UodWludDY0X3QgY2hh
bGxlbmdlSUQsIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb24sIFdlYkNvcmU6OkNy
ZWRlbnRpYWwmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9GcmFtZUluZm9E
YXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuY3BwCmluZGV4IDk0
NDIzNzQ1NjU4MTZmNGU4ODA0MGZmMDg0ZTBjMWEzYmU1MzFmZjQuLjNlOWQ3MmVhZDUzYzU4MzJj
NDMzMTczNGI3MDc0MWZkYjM0YTIxMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0ZyYW1lSW5mb0RhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0Rh
dGEuY3BwCkBAIC00OSw4ICs0OSwxMiBAQCBib29sIEZyYW1lSW5mb0RhdGE6OmRlY29kZShJUEM6
OkRlY29kZXImIGRlY29kZXIsIEZyYW1lSW5mb0RhdGEmIHJlc3VsdCkKICAgICBpZiAoIXNlY3Vy
aXR5T3JpZ2luKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmVzdWx0LnNlY3VyaXR5T3Jp
Z2luID0gV1RGTW92ZSgqc2VjdXJpdHlPcmlnaW4pOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cmVzdWx0LmZyYW1lSUQpKQorICAgIAorICAgIE9wdGlvbmFsPE9wdGlvbmFsPEZyYW1lSWRlbnRp
Zmllcj4+IGZyYW1lSUQ7CisgICAgZGVjb2RlciA+PiBmcmFtZUlEOworICAgIGlmICghZnJhbWVJ
RCkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJlc3VsdC5mcmFtZUlEID0gV1RGTW92ZSgq
ZnJhbWVJRCk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5m
b0RhdGEuaAppbmRleCBhODI4MzY4NmYxNmFiM2NkMzUyNDljZTcwNWQzZjJiOGU3YmIzYzY2Li41
Mzg3MTZlYjIxZWI1NDBhNDE3NzljN2U2YjhmZmQ0MzUyZmJjMTNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9GcmFtZUluZm9EYXRhLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvRnJhbWVJbmZvRGF0YS5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisj
aW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+
CiAKQEAgLTQyLDcgKzQzLDcgQEAgc3RydWN0IEZyYW1lSW5mb0RhdGEgewogICAgIGJvb2wgaXNN
YWluRnJhbWUgeyBmYWxzZSB9OwogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0
OwogICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBzZWN1cml0eU9yaWdpbjsKLSAgICB1
aW50NjRfdCBmcmFtZUlEIHsgMCB9OworICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRp
Zmllcj4gZnJhbWVJRDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElGcmFtZUluZm8uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SUZyYW1lSW5mby5jcHAKaW5kZXggOTZiMTNkMTc4NTQ0NWMzOTczM2IyZjA0OGE2MGYyMDIxNTA4
YzhjOC4uODI5NzI4YjkxZDYxYWEyNjA0NzVlMmExYzkxZDI0MjBlOTc4NjBmYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUZyYW1lSW5mby5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUZyYW1lSW5mby5jcHAKQEAgLTU1LDcgKzU1LDcg
QEAgRnJhbWVJbmZvOjpGcmFtZUluZm8oY29uc3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhJiBmcmFt
ZUluZm9EYXRhLCBXZWJLaXQ6OldlYlBhZ2UKICAgICA6IG1faXNNYWluRnJhbWUgeyBmcmFtZUlu
Zm9EYXRhLmlzTWFpbkZyYW1lIH0KICAgICAsIG1fcmVxdWVzdCB7IGZyYW1lSW5mb0RhdGEucmVx
dWVzdCB9CiAgICAgLCBtX3NlY3VyaXR5T3JpZ2luIHsgU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShm
cmFtZUluZm9EYXRhLnNlY3VyaXR5T3JpZ2luLnNlY3VyaXR5T3JpZ2luKCkpIH0KLSAgICAsIG1f
aGFuZGxlIHsgQVBJOjpGcmFtZUhhbmRsZTo6Y3JlYXRlKGZyYW1lSW5mb0RhdGEuZnJhbWVJRCkg
fQorICAgICwgbV9oYW5kbGUgeyBBUEk6OkZyYW1lSGFuZGxlOjpjcmVhdGUoZnJhbWVJbmZvRGF0
YS5mcmFtZUlEID8gKmZyYW1lSW5mb0RhdGEuZnJhbWVJRCA6IFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllcnsgfSkgfQogICAgICwgbV9wYWdlIHsgbWFrZVJlZlB0cihwYWdlKSB9CiB7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lSGFuZGxlUmVmLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVIYW5kbGVSZWYuY3BwCmlu
ZGV4IGIzOWZjYTFiZTU3ZjBkMjc0ZDg0NTdmMDQzZjUwZWFiNjJmMjNjNTguLmU4NzNmYzQ2NTFk
NTI2OTM4OTM2OWZjNjBhNzgwMjY1NDIwNWRkN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVIYW5kbGVSZWYuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVIYW5kbGVSZWYuY3BwCkBAIC0zOCw1ICszOCw1IEBAIFdL
VHlwZUlEIFdLRnJhbWVIYW5kbGVHZXRUeXBlSUQoKQogCiB1aW50NjRfdCBXS0ZyYW1lSGFuZGxl
R2V0RnJhbWVJRChXS0ZyYW1lSGFuZGxlUmVmIGZyYW1lSGFuZGxlUmVmKQogewotICAgIHJldHVy
biB0b0ltcGwoZnJhbWVIYW5kbGVSZWYpLT5mcmFtZUlEKCk7CisgICAgcmV0dXJuIHRvSW1wbChm
cmFtZUhhbmRsZVJlZiktPmZyYW1lSUQoKS50b1VJbnQ2NCgpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMDM5MWExOTkyZTM1MzJk
YmU1ZjIxZGI2OTFkZDgxMDhhYWUyYTY2Yy4uMDk1MWU5NDQzN2JjZTQ2NjVkNjE1YmQwNDBkMjZk
ZjIwYjY0ZGYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tCkBAIC02NjIxLDcgKzY2MjEsNyBAQCAtIChOU1ByaW50T3BlcmF0aW9uICopX3By
aW50T3BlcmF0aW9uV2l0aFByaW50SW5mbzooTlNQcmludEluZm8gKilwcmludEluZm8KIAogLSAo
TlNQcmludE9wZXJhdGlvbiAqKV9wcmludE9wZXJhdGlvbldpdGhQcmludEluZm86KE5TUHJpbnRJ
bmZvICopcHJpbnRJbmZvIGZvckZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lSGFuZGxlCiB7
Ci0gICAgaWYgKGF1dG8qIHdlYkZyYW1lUHJveHkgPSBfcGFnZS0+cHJvY2VzcygpLndlYkZyYW1l
KGZyYW1lSGFuZGxlLl9mcmFtZUlEKSkKKyAgICBpZiAoYXV0byogd2ViRnJhbWVQcm94eSA9IF9w
YWdlLT5wcm9jZXNzKCkud2ViRnJhbWUoV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKGZy
YW1lSGFuZGxlLl9mcmFtZUlEKSkpCiAgICAgICAgIHJldHVybiBfaW1wbC0+cHJpbnRPcGVyYXRp
b25XaXRoUHJpbnRJbmZvKHByaW50SW5mbywgKndlYkZyYW1lUHJveHkpOwogICAgIHJldHVybiBu
aWw7CiB9CkBAIC03MTE0LDcgKzcxMTQsNyBAQCAtICh2b2lkKV9jb21wbGV0ZUltbWVkaWF0ZUFj
dGlvbkFuaW1hdGlvbgogCiAtIChCT09MKV9jYW5DaGFuZ2VGcmFtZUxheW91dDooX1dLRnJhbWVI
YW5kbGUgKilmcmFtZUhhbmRsZQogewotICAgIGlmIChhdXRvKiB3ZWJGcmFtZVByb3h5ID0gX3Bh
Z2UtPnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUhhbmRsZS5fZnJhbWVJRCkpCisgICAgaWYgKGF1
dG8qIHdlYkZyYW1lUHJveHkgPSBfcGFnZS0+cHJvY2VzcygpLndlYkZyYW1lKFdlYkNvcmU6OmZy
YW1lSWRlbnRpZmllckZyb21JRChmcmFtZUhhbmRsZS5fZnJhbWVJRCkpKQogICAgICAgICByZXR1
cm4gX2ltcGwtPmNhbkNoYW5nZUZyYW1lTGF5b3V0KCp3ZWJGcmFtZVByb3h5KTsKICAgICByZXR1
cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLSW5zcGVjdG9yLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S0luc3BlY3Rvci5tbQppbmRleCBjNDk5YjE4ZmE5Mzg4YTQ1ODQzMTQ3NzA4ZDNkMjk2ZGQ1MzI5
MGE0Li4zZDE1ZWMyZWVhNzkxMWIyYTM5ZDY0MDg3OTM2YmY0ZWE2MzQxM2FhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW0KQEAgLTMw
LDYgKzMwLDcgQEAKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgogI2ltcG9ydCAiX1dLRnJh
bWVIYW5kbGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLSW5zcGVjdG9ySW50ZXJuYWwuaCIKKyNp
bXBvcnQgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRy
Lmg+CiAKIEBpbXBsZW1lbnRhdGlvbiBfV0tJbnNwZWN0b3IKQEAgLTk5LDcgKzEwMCw3IEBAIC0g
KHZvaWQpc2hvd1Jlc291cmNlcwogLSAodm9pZClzaG93TWFpblJlc291cmNlRm9yRnJhbWU6KF9X
S0ZyYW1lSGFuZGxlICopZnJhbWUKIHsKICAgICBpZiAoYXV0byogcGFnZSA9IF9pbnNwZWN0b3It
Pmluc3BlY3RlZFBhZ2UoKSkKLSAgICAgICAgX2luc3BlY3Rvci0+c2hvd01haW5SZXNvdXJjZUZv
ckZyYW1lKHBhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZS5fZnJhbWVJRCkpOworICAgICAg
ICBfaW5zcGVjdG9yLT5zaG93TWFpblJlc291cmNlRm9yRnJhbWUocGFnZS0+cHJvY2VzcygpLndl
YkZyYW1lKFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRChmcmFtZS5fZnJhbWVJRCkpKTsK
IH0KIAogLSAodm9pZClhdHRhY2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmNwcAppbmRleCA3
YWNjNjhiYWVmZWFiMDczYmY2NjBmNmMwYmNlNWVmYjk3YjVhZTYyLi5kODc0OGVlYTdmYzZkYWUx
NTQyNmFkYWVhOTY5Yjc0YmRlZTYzZGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3Bw
CkBAIC0zODIsNyArMzgyLDcgQEAgdm9pZCBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXI6OnRyYW5z
aXRpb25JbnB1dFNvdXJjZVRvU3RhdGUoU2ltdWxhdGVkSW5wdXRTb3VyY2UKICAgICB9CiB9CiAK
LXZvaWQgU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyOjpydW4odWludDY0X3QgZnJhbWVJRCwgVmVj
dG9yPFNpbXVsYXRlZElucHV0S2V5RnJhbWU+JiYga2V5RnJhbWVzLCBIYXNoU2V0PFJlZjxTaW11
bGF0ZWRJbnB1dFNvdXJjZT4+JiBpbnB1dFNvdXJjZXMsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFu
ZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXI6
OnJ1bihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgVmVjdG9yPFNpbXVsYXRlZElu
cHV0S2V5RnJhbWU+JiYga2V5RnJhbWVzLCBIYXNoU2V0PFJlZjxTaW11bGF0ZWRJbnB1dFNvdXJj
ZT4+JiBpbnB1dFNvdXJjZXMsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIEFTU0VSVCghaXNBY3RpdmUoKSk7CiAgICAgaWYgKGlzQWN0aXZl
KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2lt
dWxhdGVkSW5wdXREaXNwYXRjaGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0
aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5oCmluZGV4IDdmNDE0MWNlMGEzOWU1NjA3M2M3
ZWM4YTk2NTYwY2JjMzQ4YWRmYTYuLmIwODkxYThmMGI2NzUyOWNiOWIzOTg2Yjg3OTUzMDcxMmE0
YWFkNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2lt
dWxhdGVkSW5wdXREaXNwYXRjaGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0
b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaApAQCAtMjgsNiArMjgsNyBAQAogI2lm
IEVOQUJMRShXRUJEUklWRVJfQUNUSU9OU19BUEkpCiAKICNpbmNsdWRlICJXZWJFdmVudC5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBs
ZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYv
T3B0aW9uYWwuaD4KQEAgLTEzMiw3ICsxMzMsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdFQkRS
SVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpCiAgICAgICAgIHZpcnR1YWwgdm9pZCBzaW11bGF0
ZUtleWJvYXJkSW50ZXJhY3Rpb24oV2ViUGFnZVByb3h5JiwgS2V5Ym9hcmRJbnRlcmFjdGlvbiwg
V1RGOjpWYXJpYW50PFZpcnR1YWxLZXksIENoYXJLZXk+JiYsIEF1dG9tYXRpb25Db21wbGV0aW9u
SGFuZGxlciYmKSA9IDA7CiAjZW5kaWYKLSAgICAgICAgdmlydHVhbCB2b2lkIHZpZXdwb3J0SW5W
aWV3Q2VudGVyUG9pbnRPZkVsZW1lbnQoV2ViUGFnZVByb3h5JiwgdWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBGdW5jdGlvbjx2b2lkIChPcHRpb25hbDxXZWJDb3Jl
OjpJbnRQb2ludD4sIE9wdGlvbmFsPEF1dG9tYXRpb25Db21tYW5kRXJyb3I+KT4mJikgPSAwOwor
ICAgICAgICB2aXJ0dWFsIHZvaWQgdmlld3BvcnRJblZpZXdDZW50ZXJQb2ludE9mRWxlbWVudChX
ZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbm9k
ZUhhbmRsZSwgRnVuY3Rpb248dm9pZCAoT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBPcHRp
b25hbDxBdXRvbWF0aW9uQ29tbWFuZEVycm9yPik+JiYpID0gMDsKICAgICB9OwogCiAgICAgc3Rh
dGljIFJlZjxTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXI+IGNyZWF0ZShXZWJQYWdlUHJveHkmIHBh
Z2UsIFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlcjo6Q2xpZW50JiBjbGllbnQpCkBAIC0xNDIsNyAr
MTQzLDcgQEAgcHVibGljOgogCiAgICAgflNpbXVsYXRlZElucHV0RGlzcGF0Y2hlcigpOwogCi0g
ICAgdm9pZCBydW4odWludDY0X3QgZnJhbWVJRCwgVmVjdG9yPFNpbXVsYXRlZElucHV0S2V5RnJh
bWU+JiYga2V5RnJhbWVzLCBIYXNoU2V0PFJlZjxTaW11bGF0ZWRJbnB1dFNvdXJjZT4+JiBpbnB1
dFNvdXJjZXMsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciYmKTsKKyAgICB2b2lkIHJ1bihX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFZlY3RvcjxTaW11bGF0ZWRJbnB1dEtleUZyYW1lPiYm
IGtleUZyYW1lcywgSGFzaFNldDxSZWY8U2ltdWxhdGVkSW5wdXRTb3VyY2U+PiYgaW5wdXRTb3Vy
Y2VzLCBBdXRvbWF0aW9uQ29tcGxldGlvbkhhbmRsZXImJik7CiAgICAgdm9pZCBjYW5jZWwoKTsK
IAogICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdDsKQEAgLTE2NSw3ICsxNjYsNyBAQCBwcml2YXRl
OgogICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdlOwogICAgIFNpbXVsYXRlZElucHV0RGlzcGF0Y2hl
cjo6Q2xpZW50JiBtX2NsaWVudDsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBtX2ZyYW1lSUQ7
CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBtX2ZyYW1lSUQ7CiAgICAg
QXV0b21hdGlvbkNvbXBsZXRpb25IYW5kbGVyIG1fcnVuQ29tcGxldGlvbkhhbmRsZXI7CiAgICAg
QXV0b21hdGlvbkNvbXBsZXRpb25IYW5kbGVyIG1fa2V5RnJhbWVUcmFuc2l0aW9uQ29tcGxldGlv
bkhhbmRsZXI7CiAgICAgUnVuTG9vcDo6VGltZXI8U2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyPiBt
X2tleUZyYW1lVHJhbnNpdGlvbkR1cmF0aW9uVGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCmlu
ZGV4IGNjZTVjNDgxN2E4MDQ5MTdjZGMxOTljMWIwMTYwZTI1NmU5YmUyOTcuLjY4YmRhZGM4Mjcx
NzQzNzIzNzQ0ZWQ1YzkyOGYxMGEwZGY5ZjJjZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCkBA
IC0yMDIsMTAgKzIwMiwxMCBAQCBTdHJpbmcgV2ViQXV0b21hdGlvblNlc3Npb246OmhhbmRsZUZv
cldlYlBhZ2VQcm94eShjb25zdCBXZWJQYWdlUHJveHkmIHdlYlBhZ2VQcgogICAgIHJldHVybiBo
YW5kbGU7CiB9CiAKLU9wdGlvbmFsPHVpbnQ2NF90PiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2Vi
RnJhbWVJREZvckhhbmRsZShjb25zdCBTdHJpbmcmIGhhbmRsZSkKK09wdGlvbmFsPEZyYW1lSWRl
bnRpZmllcj4gV2ViQXV0b21hdGlvblNlc3Npb246OndlYkZyYW1lSURGb3JIYW5kbGUoY29uc3Qg
U3RyaW5nJiBoYW5kbGUpCiB7CiAgICAgaWYgKGhhbmRsZS5pc0VtcHR5KCkpCi0gICAgICAgIHJl
dHVybiAwOworICAgICAgICByZXR1cm4gRnJhbWVJZGVudGlmaWVyIHsgfTsgLy8gVGhpcyBpcyBl
eHBsaWNpdGx5IHplcm87IHNlZSB3ZWJraXQub3JnL2IvMTU5Nzc3LgogCiAgICAgYXV0byBpdGVy
ID0gbV9oYW5kbGVXZWJGcmFtZU1hcC5maW5kKGhhbmRsZSk7CiAgICAgaWYgKGl0ZXIgPT0gbV9o
YW5kbGVXZWJGcmFtZU1hcC5lbmQoKSkKQEAgLTIxNCw3ICsyMTQsNyBAQCBPcHRpb25hbDx1aW50
NjRfdD4gV2ViQXV0b21hdGlvblNlc3Npb246OndlYkZyYW1lSURGb3JIYW5kbGUoY29uc3QgU3Ry
aW5nJiBoYW5kbAogICAgIHJldHVybiBpdGVyLT52YWx1ZTsKIH0KIAotU3RyaW5nIFdlYkF1dG9t
YXRpb25TZXNzaW9uOjpoYW5kbGVGb3JXZWJGcmFtZUlEKHVpbnQ2NF90IGZyYW1lSUQpCitTdHJp
bmcgV2ViQXV0b21hdGlvblNlc3Npb246OmhhbmRsZUZvcldlYkZyYW1lSUQoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQpCiB7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICByZXR1cm4gZW1wdHlT
dHJpbmcoKTsKQEAgLTM2Miw3ICszNjIsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpz
d2l0Y2hUb0Jyb3dzaW5nQ29udGV4dChjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dAogICAg
IGlmICghcGFnZSkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoV2lu
ZG93Tm90Rm91bmQpOwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQgPSB3ZWJGcmFt
ZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5kbGUgPyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6
IGVtcHR5U3RyaW5nKCkpOworICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUo
b3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpvcHRpb25hbEZyYW1lSGFuZGxlIDogZW1wdHlTdHJpbmco
KSk7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5F
RF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIApAQCAtNDU5LDcgKzQ1OSw3IEBAIHZvaWQgV2ViQXV0
b21hdGlvblNlc3Npb246OndhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZShjb25zdCBTdHJpbmcm
IGJyb3dzaW5nQ29uCiAgICAgICAgICYmIHBhZ2UtPnBhZ2VMb2FkU3RhdGUoKS5pc0xvYWRpbmco
KSAmJiBtX2NsaWVudC0+aXNTaG93aW5nSmF2YVNjcmlwdERpYWxvZ09uUGFnZSgqdGhpcywgKnBh
Z2UpOwogCiAgICAgaWYgKG9wdGlvbmFsRnJhbWVIYW5kbGUgJiYgIW9wdGlvbmFsRnJhbWVIYW5k
bGUtPmlzRW1wdHkoKSkgewotICAgICAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCA9IHdl
YkZyYW1lSURGb3JIYW5kbGUoKm9wdGlvbmFsRnJhbWVIYW5kbGUpOworICAgICAgICBhdXRvIGZy
YW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKCpvcHRpb25hbEZyYW1lSGFuZGxlKTsKICAgICAg
ICAgaWYgKCFmcmFtZUlEKQogICAgICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURf
RVJST1IoRnJhbWVOb3RGb3VuZCk7CiAgICAgICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gcGFn
ZS0+cHJvY2VzcygpLndlYkZyYW1lKGZyYW1lSUQudmFsdWUoKSk7CkBAIC01MzcsNyArNTM3LDcg
QEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVzcG9uZFRvUGVuZGluZ1BhZ2VOYXZpZ2F0
aW9uQ2FsbGJhY2tzV2l0aFRpbWVvdXQoSGEKICAgICB9CiB9CiAKLXN0YXRpYyBXZWJQYWdlUHJv
eHkqIGZpbmRQYWdlRm9yRnJhbWVJRChjb25zdCBXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2ws
IHVpbnQ2NF90IGZyYW1lSUQpCitzdGF0aWMgV2ViUGFnZVByb3h5KiBmaW5kUGFnZUZvckZyYW1l
SUQoY29uc3QgV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCkKIHsKICAgICBmb3IgKGF1dG8mIHByb2Nlc3MgOiBwcm9jZXNzUG9vbC5wcm9jZXNzZXMo
KSkgewogICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBwcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlE
KSkKQEAgLTU0Niw3ICs1NDYsNyBAQCBzdGF0aWMgV2ViUGFnZVByb3h5KiBmaW5kUGFnZUZvckZy
YW1lSUQoY29uc3QgV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCB1aW50NgogICAgIHJldHVy
biBudWxscHRyOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNwb25kVG9QZW5k
aW5nRnJhbWVOYXZpZ2F0aW9uQ2FsbGJhY2tzV2l0aFRpbWVvdXQoSGFzaE1hcDx1aW50NjRfdCwg
UmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+JiBtYXAp
Cit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNwb25kVG9QZW5kaW5nRnJhbWVOYXZpZ2F0
aW9uQ2FsbGJhY2tzV2l0aFRpbWVvdXQoSGFzaE1hcDxGcmFtZUlkZW50aWZpZXIsIFJlZlB0cjxJ
bnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiYgbWFwKQogewogICAg
IEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcgdGltZW91dEVycm9yID0gU1RSSU5HX0ZPUl9QUkVERUZJ
TkVEX0VSUk9SX05BTUUoVGltZW91dCk7CiAgICAgZm9yIChhdXRvIGlkIDogY29weVRvVmVjdG9y
KG1hcC5rZXlzKCkpKSB7CkBAIC05MjQsNyArOTI0LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvbjo6ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oY29uc3QgU3RyaW5nJiBicm93c2luZ0Nv
bnQKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VS
Uk9SKFdpbmRvd05vdEZvdW5kKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEID0g
d2ViRnJhbWVJREZvckhhbmRsZShvcHRpb25hbEZyYW1lSGFuZGxlID8gKm9wdGlvbmFsRnJhbWVI
YW5kbGUgOiBlbXB0eVN0cmluZygpKTsKKyAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9y
SGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5kbGUgPyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5
U3RyaW5nKCkpOwogICAgIGlmICghZnJhbWVJRCkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BS
RURFRklORURfRVJST1IoRnJhbWVOb3RGb3VuZCk7CiAKQEAgLTk2NywxMSArOTY3LDExIEBAIHZv
aWQgV2ViQXV0b21hdGlvblNlc3Npb246OnJlc29sdmVDaGlsZEZyYW1lSGFuZGxlKGNvbnN0IFN0
cmluZyYgYnJvd3NpbmdDb250ZXh0CiAgICAgaWYgKCFwYWdlKQogICAgICAgICBBU1lOQ19GQUlM
X1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5kb3dOb3RGb3VuZCk7CiAKLSAgICBPcHRpb25hbDx1
aW50NjRfdD4gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUob3B0aW9uYWxGcmFtZUhhbmRs
ZSA/ICpvcHRpb25hbEZyYW1lSGFuZGxlIDogZW1wdHlTdHJpbmcoKSk7CisgICAgYXV0byBmcmFt
ZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShvcHRpb25hbEZyYW1lSGFuZGxlID8gKm9wdGlvbmFs
RnJhbWVIYW5kbGUgOiBlbXB0eVN0cmluZygpKTsKICAgICBpZiAoIWZyYW1lSUQpCiAgICAgICAg
IEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKEZyYW1lTm90Rm91bmQpOwogCi0gICAg
V1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4g
Y29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBjYWxsYmFjayA9IGNhbGxiYWNrLmNvcHlSZWYoKV0oT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5
cGUsIHVpbnQ2NF90IGZyYW1lSUQpIG11dGFibGUgeworICAgIFdURjo6Q29tcGxldGlvbkhhbmRs
ZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBGcmFtZUlkZW50aWZpZXIpPiBjb21wbGV0aW9uSGFu
ZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhbGxiYWNrID0g
Y2FsbGJhY2suY29weVJlZigpXShPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQpIG11dGFibGUgewogICAgICAgICBpZiAoZXJyb3JUeXBlKSB7CiAgICAg
ICAgICAgICBjYWxsYmFjay0+c2VuZEZhaWx1cmUoU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VSUk9S
X01FU1NBR0UoKmVycm9yVHlwZSkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTAwNCwxMSAr
MTAwNCwxMSBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZlUGFyZW50RnJhbWVI
YW5kbGUoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleAogICAgIGlmICghcGFnZSkKICAgICAg
ICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwogCi0g
ICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKGZyYW1l
SGFuZGxlKTsKKyAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKGZyYW1lSGFu
ZGxlKTsKICAgICBpZiAoIWZyYW1lSUQpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJ
TkVEX0VSUk9SKEZyYW1lTm90Rm91bmQpOwogCi0gICAgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxsYmFjayA9IGNhbGxiYWNrLmNv
cHlSZWYoKV0oT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIHVpbnQ2NF90IGZyYW1lSUQpIG11
dGFibGUgeworICAgIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+
LCBGcmFtZUlkZW50aWZpZXIpPiBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyksIGNhbGxiYWNrID0gY2FsbGJhY2suY29weVJlZigpXShPcHRp
b25hbDxTdHJpbmc+IGVycm9yVHlwZSwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIG11dGFibGUg
ewogICAgICAgICBpZiAoZXJyb3JUeXBlKSB7CiAgICAgICAgICAgICBjYWxsYmFjay0+c2VuZEZh
aWx1cmUoU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VSUk9SX01FU1NBR0UoKmVycm9yVHlwZSkpOwog
ICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTAzNSw3ICsxMDM1LDcgQEAgdm9pZCBXZWJBdXRvbWF0
aW9uU2Vzc2lvbjo6Y29tcHV0ZUVsZW1lbnRMYXlvdXQoY29uc3QgU3RyaW5nJiBicm93c2luZ0Nv
bnRleHRIYW4KICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJ
TkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFt
ZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShmcmFtZUhhbmRsZSk7CisgICAgYXV0byBmcmFtZUlE
ID0gd2ViRnJhbWVJREZvckhhbmRsZShmcmFtZUhhbmRsZSk7CiAgICAgaWYgKCFmcmFtZUlEKQog
ICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsK
IApAQCAtMTA4Nyw3ICsxMDg3LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2VsZWN0
T3B0aW9uRWxlbWVudChjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmQKICAgICBpZiAo
IXBhZ2UpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05v
dEZvdW5kKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEID0gd2ViRnJhbWVJREZv
ckhhbmRsZShmcmFtZUhhbmRsZSk7CisgICAgYXV0byBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhh
bmRsZShmcmFtZUhhbmRsZSk7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICBBU1lOQ19GQUlM
X1dJVEhfUFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIApAQCAtMTI3MSw3ICsxMjcx
LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Z2V0QWxsQ29va2llcyhjb25zdCBTdHJp
bmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgUmUKICAgICB9OwogCiAgICAgLy8gQWx3YXlzIHNl
bmQgdGhlIG1haW4gZnJhbWUgSUQgYXMgMCBzbyBpdCBpcyByZXNvbHZlZCBvbiB0aGUgV2ViUHJv
Y2VzcyBzaWRlLiBUaGlzIGF2b2lkcyBhIHJhY2Ugd2hlbiBwYWdlLT5tYWluRnJhbWUoKSBpcyBu
dWxsIHN0aWxsLgotICAgIGNvbnN0IHVpbnQ2NF90IG1haW5GcmFtZUlEID0gMDsKKyAgICBjb25z
dCBGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQ7CiAgICAgcGFnZS0+cHJvY2VzcygpLnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6R2V0Q29v
a2llc0ZvckZyYW1lKHBhZ2UtPnBhZ2VJRCgpLCBtYWluRnJhbWVJRCksIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKIH0KIApAQCAtMTI5MSw3ICsxMjkxLDcgQEAgdm9pZCBXZWJBdXRvbWF0
aW9uU2Vzc2lvbjo6ZGVsZXRlU2luZ2xlQ29va2llKGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250
ZXh0SGFuZGwKICAgICB9OwogCiAgICAgLy8gQWx3YXlzIHNlbmQgdGhlIG1haW4gZnJhbWUgSUQg
YXMgMCBzbyBpdCBpcyByZXNvbHZlZCBvbiB0aGUgV2ViUHJvY2VzcyBzaWRlLiBUaGlzIGF2b2lk
cyBhIHJhY2Ugd2hlbiBwYWdlLT5tYWluRnJhbWUoKSBpcyBudWxsIHN0aWxsLgotICAgIGNvbnN0
IHVpbnQ2NF90IG1haW5GcmFtZUlEID0gMDsKKyAgICBjb25zdCBGcmFtZUlkZW50aWZpZXIgbWFp
bkZyYW1lSUQ7CiAgICAgcGFnZS0+cHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6RGVsZXRlQ29va2llKHBhZ2UtPnBhZ2VJRCgp
LCBtYWluRnJhbWVJRCwgY29va2llTmFtZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
IH0KIApAQCAtMTQ1Nyw3ICsxNDU3LDcgQEAgU2ltdWxhdGVkSW5wdXRTb3VyY2UqIFdlYkF1dG9t
YXRpb25TZXNzaW9uOjppbnB1dFNvdXJjZUZvclR5cGUoU2ltdWxhdGVkSW5wdXRTb3UKIH0KIAog
Ly8gTUFSSzogU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyOjpDbGllbnQgQVBJCi12b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uOjp2aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVtZW50KFdlYlBh
Z2VQcm94eSYgcGFnZSwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxl
LCBGdW5jdGlvbjx2b2lkIChPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIE9wdGlvbmFsPEF1
dG9tYXRpb25Db21tYW5kRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0
b21hdGlvblNlc3Npb246OnZpZXdwb3J0SW5WaWV3Q2VudGVyUG9pbnRPZkVsZW1lbnQoV2ViUGFn
ZVByb3h5JiBwYWdlLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBub2Rl
SGFuZGxlLCBGdW5jdGlvbjx2b2lkIChPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIE9wdGlv
bmFsPEF1dG9tYXRpb25Db21tYW5kRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6
SW50UmVjdCwgT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBib29sKT4gZGlkQ29tcHV0ZUVs
ZW1lbnRMYXlvdXRIYW5kbGVyID0gW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcildKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBXZWJDb3JlOjpJbnRSZWN0
LCBPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4gaW5WaWV3Q2VudGVyUG9pbnQsIGJvb2wpIG11
dGFibGUgewogICAgICAgICBpZiAoZXJyb3JUeXBlKSB7CkBAIC0xOTc2LDcgKzE5NzYsNyBAQCB2
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjp0YWtlU2NyZWVuc2hvdChjb25zdCBTdHJpbmcmIGhh
bmRsZSwgY29uc3QgU3RyaW5nKiBvcAogICAgIGlmICghcGFnZSkKICAgICAgICAgQVNZTkNfRkFJ
TF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwogCi0gICAgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5k
bGUgPyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCkpOworICAgIGF1dG8gZnJh
bWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUob3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpvcHRpb25h
bEZyYW1lSGFuZGxlIDogZW1wdHlTdHJpbmcoKSk7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAg
ICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9u
U2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0
aW9uU2Vzc2lvbi5oCmluZGV4IGYzOWMwNjFiNTc4OTJhOTI0OGZkMDlkZmZjZmE3YjhjNTBhMDc1
MzcuLjEyMjJjMjg0MjJiZjk2YzZjYzRiMWE1ZGZjYTQyMjcwZmQwMjNhYTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25T
ZXNzaW9uLmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIK
ICNpbmNsdWRlICJTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaCIKICNpbmNsdWRlICJXZWJFdmVu
dC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5o
PgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC0xNTIsNyArMTUzLDcgQEAgcHVibGljOgog
I2lmIEVOQUJMRShXRUJEUklWRVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKQogICAgIHZvaWQgc2lt
dWxhdGVLZXlib2FyZEludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYsIEtleWJvYXJkSW50ZXJhY3Rp
b24sIFdURjo6VmFyaWFudDxWaXJ0dWFsS2V5LCBDaGFyS2V5PiYmLCBBdXRvbWF0aW9uQ29tcGxl
dGlvbkhhbmRsZXImJikgZmluYWw7CiAjZW5kaWYKLSAgICB2b2lkIHZpZXdwb3J0SW5WaWV3Q2Vu
dGVyUG9pbnRPZkVsZW1lbnQoV2ViUGFnZVByb3h5JiwgdWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
U3RyaW5nJiBub2RlSGFuZGxlLCBGdW5jdGlvbjx2b2lkIChPcHRpb25hbDxXZWJDb3JlOjpJbnRQ
b2ludD4sIE9wdGlvbmFsPEF1dG9tYXRpb25Db21tYW5kRXJyb3I+KT4mJikgZmluYWw7CisgICAg
dm9pZCB2aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVtZW50KFdlYlBhZ2VQcm94eSYsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBGdW5jdGlv
bjx2b2lkIChPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIE9wdGlvbmFsPEF1dG9tYXRpb25D
b21tYW5kRXJyb3I+KT4mJikgZmluYWw7CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCRFJJVkVSX0FD
VElPTlNfQVBJKQogCkBAIC0yMjAsMTQgKzIyMSwxNCBAQCBwcml2YXRlOgogICAgIFJlZjxJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpCcm93c2luZ0NvbnRleHQ+IGJ1aWxkQnJvd3Np
bmdDb250ZXh0Rm9yUGFnZShXZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpGbG9hdFJlY3Qgd2luZG93
RnJhbWUpOwogICAgIHZvaWQgZ2V0TmV4dENvbnRleHQoUmVmPFdlYkF1dG9tYXRpb25TZXNzaW9u
PiYmLCBWZWN0b3I8UmVmPFdlYlBhZ2VQcm94eT4+JiYsIFJlZjxKU09OOjpBcnJheU9mPEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkJyb3dzaW5nQ29udGV4dD4+LCBSZWY8V2ViQXV0
b21hdGlvblNlc3Npb246OkdldEJyb3dzaW5nQ29udGV4dHNDYWxsYmFjaz4mJik7CiAKLSAgICBP
cHRpb25hbDx1aW50NjRfdD4gd2ViRnJhbWVJREZvckhhbmRsZShjb25zdCBTdHJpbmcmKTsKLSAg
ICBTdHJpbmcgaGFuZGxlRm9yV2ViRnJhbWVJRCh1aW50NjRfdCBmcmFtZUlEKTsKKyAgICBPcHRp
b25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IHdlYkZyYW1lSURGb3JIYW5kbGUoY29uc3Qg
U3RyaW5nJik7CisgICAgU3RyaW5nIGhhbmRsZUZvcldlYkZyYW1lSUQoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyKTsKICAgICBTdHJpbmcgaGFuZGxlRm9yV2ViRnJhbWVQcm94eShjb25zdCBXZWJG
cmFtZVByb3h5Jik7CiAKICAgICB2b2lkIHdhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9uUGFn
ZShXZWJQYWdlUHJveHkmLCBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpQYWdlTG9h
ZFN0cmF0ZWd5LCBTZWNvbmRzLCBSZWY8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2Fs
bGJhY2tCYXNlPiYmKTsKICAgICB2b2lkIHdhaXRGb3JOYXZpZ2F0aW9uVG9Db21wbGV0ZU9uRnJh
bWUoV2ViRnJhbWVQcm94eSYsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlBhZ2VM
b2FkU3RyYXRlZ3ksIFNlY29uZHMsIFJlZjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpD
YWxsYmFja0Jhc2U+JiYpOwogICAgIHZvaWQgcmVzcG9uZFRvUGVuZGluZ1BhZ2VOYXZpZ2F0aW9u
Q2FsbGJhY2tzV2l0aFRpbWVvdXQoSGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgUmVm
UHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+Jik7Ci0gICAg
dm9pZCByZXNwb25kVG9QZW5kaW5nRnJhbWVOYXZpZ2F0aW9uQ2FsbGJhY2tzV2l0aFRpbWVvdXQo
SGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNh
bGxiYWNrQmFzZT4+Jik7CisgICAgdm9pZCByZXNwb25kVG9QZW5kaW5nRnJhbWVOYXZpZ2F0aW9u
Q2FsbGJhY2tzV2l0aFRpbWVvdXQoSGFzaE1hcDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJl
ZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiYpOwogICAg
IHZvaWQgbG9hZFRpbWVyRmlyZWQoKTsKIAogICAgIHZvaWQgZXhpdEZ1bGxzY3JlZW5XaW5kb3dG
b3JQYWdlKFdlYlBhZ2VQcm94eSYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
QEAgLTI4NCwxMyArMjg1LDEzIEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgU3RyaW5nPiBtX3dlYlBhZ2VIYW5kbGVNYXA7CiAgICAgSGFzaE1hcDxTdHJp
bmcsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBtX2hhbmRsZVdlYlBhZ2VNYXA7CiAKLSAgICBI
YXNoTWFwPHVpbnQ2NF90LCBTdHJpbmc+IG1fd2ViRnJhbWVIYW5kbGVNYXA7Ci0gICAgSGFzaE1h
cDxTdHJpbmcsIHVpbnQ2NF90PiBtX2hhbmRsZVdlYkZyYW1lTWFwOworICAgIEhhc2hNYXA8V2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBTdHJpbmc+IG1fd2ViRnJhbWVIYW5kbGVNYXA7CisgICAg
SGFzaE1hcDxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gbV9oYW5kbGVXZWJGcmFt
ZU1hcDsKIAogICAgIEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFJlZlB0cjxJbnNw
ZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiBtX3BlbmRpbmdOb3JtYWxO
YXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJQYWdlOwogICAgIEhhc2hNYXA8
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRj
aGVyOjpDYWxsYmFja0Jhc2U+PiBtX3BlbmRpbmdFYWdlck5hdmlnYXRpb25JbkJyb3dzaW5nQ29u
dGV4dENhbGxiYWNrc1BlclBhZ2U7Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEluc3Bl
Y3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGluZ05vcm1hbE5h
dmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlckZyYW1lOwotICAgIEhhc2hNYXA8
dWludDY0X3QsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jh
c2U+PiBtX3BlbmRpbmdFYWdlck5hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1Bl
ckZyYW1lOworICAgIEhhc2hNYXA8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWZQdHI8SW5z
cGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4gbV9wZW5kaW5nTm9ybWFs
TmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyRnJhbWU7CisgICAgSGFzaE1h
cDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNw
YXRjaGVyOjpDYWxsYmFja0Jhc2U+PiBtX3BlbmRpbmdFYWdlck5hdmlnYXRpb25JbkJyb3dzaW5n
Q29udGV4dENhbGxiYWNrc1BlckZyYW1lOwogICAgIEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+
PiBtX3BlbmRpbmdJbnNwZWN0b3JDYWxsYmFja3NQZXJQYWdlOwogI2lmIEVOQUJMRShXRUJEUklW
RVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKQogICAgIEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIEZ1bmN0aW9uPHZvaWQoT3B0aW9uYWw8QXV0b21hdGlvbkNvbW1hbmRFcnJvcj4pPj4g
bV9wZW5kaW5nS2V5Ym9hcmRFdmVudHNGbHVzaGVkQ2FsbGJhY2tzUGVyUGFnZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCmluZGV4IGE1MWEyMjM2MjM4NDE1
MWFiMTFkNDg5NDM2OWY4YTE4NTgwMDY3ZGEuLjMwMmY2ODIyODJiY2M3ZWUzOGQzZjY3MjdkNmQy
M2Y4NGIyODlkYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJ
RGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5tbQpAQCAtMTAzMiw3ICsxMDMyLDcgQEAgdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6Y2hl
Y2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYlBhZ2VQcm94eSYgcGFnZSwKICAgICBV
UkwgcmVxdWVzdEZyYW1lVVJMIHsgVVJMKCksIGZyYW1lLnVybCgpIH07CiAgICAgVVJMIG1haW5G
cmFtZVVSTCB7IFVSTCgpLCBtYWluRnJhbWUtPnVybCgpIH07CiAKLSAgICBbKGlkIDxXS1VJRGVs
ZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IGNo
ZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1lVVJM
Om1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6ZnJhbWUuZnJhbWVJRCgpIGRlY2lzaW9uSGFu
ZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOworICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZh
dGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgY2hlY2tVc2VyTWVk
aWFQZXJtaXNzaW9uRm9yVVJMOnJlcXVlc3RGcmFtZVVSTCBtYWluRnJhbWVVUkw6bWFpbkZyYW1l
VVJMIGZyYW1lSWRlbnRpZmllcjpmcmFtZS5mcmFtZUlEKCkudG9VSW50NjQoKSBkZWNpc2lvbkhh
bmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKIH0KIAogdm9pZCBVSURlbGVnYXRlOjpVSUNs
aWVudDo6bWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1JlbG9hZEZyYW1lRXJyb3JSZWNvdmVyeUF0dGVtcHRl
ci5tbQppbmRleCA4NGQyMGM0Y2U4YjFmMDAxN2UxYmE3N2I5ZDBkZjRmMTAxMzhhOTAwLi45YzQw
OTJlZmQ0MzZkMDIyNDBiODA2YTJjMjQwZjY0MzZkMmVkYjVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1JlbG9hZEZyYW1lRXJyb3JSZWNvdmVyeUF0dGVtcHRl
ci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1JlbG9hZEZyYW1lRXJy
b3JSZWNvdmVyeUF0dGVtcHRlci5tbQpAQCAtMzIsNiArMzIsNyBAQAogI2ltcG9ydCAiV2ViRnJh
bWVQcm94eS5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNz
UHJveHkuaCIKKyNpbXBvcnQgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW1wb3J0IDx3
dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KIApAQCAtNjIsOCAr
NjMsNyBAQCAtIChCT09MKWF0dGVtcHRSZWNvdmVyeQogICAgIGlmICghd2ViVmlldykKICAgICAg
ICAgcmV0dXJuIE5POwogCi0gICAgdWludDY0X3QgZnJhbWVJRCA9IFtfZnJhbWVIYW5kbGUgX2Zy
YW1lSURdOwotICAgIFdlYktpdDo6V2ViRnJhbWVQcm94eSogd2ViRnJhbWVQcm94eSA9IHdlYlZp
ZXctPl9wYWdlLT5wcm9jZXNzKCkud2ViRnJhbWUoZnJhbWVJRCk7CisgICAgV2ViS2l0OjpXZWJG
cmFtZVByb3h5KiB3ZWJGcmFtZVByb3h5ID0gd2ViVmlldy0+X3BhZ2UtPnByb2Nlc3MoKS53ZWJG
cmFtZShXZWJDb3JlOjpmcmFtZUlkZW50aWZpZXJGcm9tSUQoW19mcmFtZUhhbmRsZSBfZnJhbWVJ
RF0pKTsKICAgICBpZiAoIXdlYkZyYW1lUHJveHkpCiAgICAgICAgIHJldHVybiBOTzsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQpp
bmRleCBhMWFmOThkMjEwOTNlNWFlZWU4YjNkNDgwYjgxNjFmZTI2ZTllYTUxLi5kOTYxMzkxOGY3
NWZhNWU4ZGY1ODM0ZjI1MjQ0MzhlMDZlOTg2Yjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQpAQCAtMTAxLDEyICsxMDEsMTIg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmJlZ2luU2FmZUJyb3dzaW5nQ2hlY2soY29uc3QgVVJMJiB1
cmwsIGJvb2wgZm9yTWFpbkZyYW1lTmF2aWcKIH0KIAogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRF
UklORykKLXZvaWQgV2ViUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJh
bWUoY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiB1bmJsb2NrSGFu
ZGxlciwgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpjb250ZW50RmlsdGVy
RGlkQmxvY2tMb2FkRm9yRnJhbWUoY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tI
YW5kbGVyJiB1bmJsb2NrSGFuZGxlciwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAg
Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVm
KCksIHVuYmxvY2tIYW5kbGVyLCBmcmFtZUlEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmNv
bnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmIHByb2Nlc3MsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYg
dW5ibG9ja0hhbmRsZXIsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6Y29u
dGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYgcHJvY2VzcywgY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiB1
bmJsb2NrSGFuZGxlciwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgaWYgKFdlYkZy
YW1lUHJveHkqIGZyYW1lID0gcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCkpCiAgICAgICAgIGZy
YW1lLT5jb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkKHVuYmxvY2tIYW5kbGVyKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
Y3BwCmluZGV4IDk0ZmFmNmI5ZGUyNjIwMWQ4NGQyNmZmODM5MzNmODIyOWMwNWQ2YjkuLjkxZWNl
MWYwZGFmZmUzZWE2M2FkYmMwZDkxZWFjNGQxODExMTMwOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAt
MzEyLDcgKzMxMiw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29uc3QgSVBDOjpBdHRhCiAjZW5kaWYKIH0KIAotdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uo
UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSYmIGNvcmVDaGFsbGVuZ2UsIHVpbnQ2NF90IGNoYWxsZW5nZUlEKQor
dm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29y
ZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmJiBjb3JlQ2hhbGxlbmdlLCB1aW50NjRfdCBjaGFs
bGVuZ2VJRCkKIHsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgaWYgKGF1dG8qIHNl
cnZpY2VXb3JrZXJQcm9jZXNzUHJveHkgPSBtX3Byb2Nlc3NQb29sLnNlcnZpY2VXb3JrZXJQcm9j
ZXNzUHJveHlGcm9tUGFnZUlEKHBhZ2VJRCkpIHsKQEAgLTczNyw3ICs3MzcsNyBAQCB2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OnNldEdyYW5kZmF0aGVyZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBjb25zdCBSZWdpcwogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29y
a1Byb2Nlc3M6OlNldEdyYW5kZmF0aGVyZWQoc2Vzc2lvbklELCByZXNvdXJjZURvbWFpbiwgaXNH
cmFuZGZhdGhlcmVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShQYWdlSWRlbnRp
ZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBz
dWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oUGFnZUlkZW50
aWZpZXIgcGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVE
b21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJQYWdlKHBh
Z2VJRCk7CiAgICAgaWYgKCFwYWdlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IDQzMzU0NWMwZTMzZmFhZWVk
OWRlYmIzNGY2YjIwY2ZjYWU1ZTk1YzguLjQwZjgxZGU5YjQ3ZjE5MjIxOTAyNmE2ZThhMDdiMmE1
ZTJkNmE5OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC04Miw3ICs4Miw2IEBAIHB1YmxpYzoKICAgICB1c2lu
ZyBOYXZpZ2F0ZWRUb0RvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwogICAgIHVz
aW5nIERvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcyA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluOwogICAgIHVzaW5nIE9wZW5lckRvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
OwotICAgIHVzaW5nIEZyYW1lSUQgPSB1aW50NjRfdDsKIAogICAgIGV4cGxpY2l0IE5ldHdvcmtQ
cm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmKTsKICAgICB+TmV0d29ya1Byb2Nlc3NQcm94eSgp
OwpAQCAtMTMwLDcgKzEyOSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFByZXZhbGVudFJlc291
cmNlRm9yRGVidWdNb2RlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRWZXJ5UHJldmFsZW50
UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRy
aWVzKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+
IGRvbWFpbnMpPiYmKTsKLSAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgRnJhbWVJRCwgY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25z
dCBUb3BGcmFtZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAg
IHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3Qg
VG9wRnJhbWVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2
b2lkIHJlc2V0UGFyYW1ldGVyc1RvRGVmYXVsdFZhbHVlcyhQQUw6OlNlc3Npb25JRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNjaGVkdWxlQ2xlYXJJbk1lbW9yeUFu
ZFBlcnNpc3RlbnQoUEFMOjpTZXNzaW9uSUQsIFNob3VsZEdyYW5kZmF0aGVyU3RhdGlzdGljcywg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNjaGVkdWxlQ2xlYXJJbk1l
bW9yeUFuZFBlcnNpc3RlbnQoUEFMOjpTZXNzaW9uSUQsIE9wdGlvbmFsPFdhbGxUaW1lPiBtb2Rp
ZmllZFNpbmNlLCBTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3MsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CkBAIC0yMTMsNyArMjEyLDcgQEAgcHJpdmF0ZToKICAgICAvLyBNZXNzYWdl
IGhhbmRsZXJzCiAgICAgdm9pZCBkaWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAgICAgdm9pZCBkaWRDcmVhdGVOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25zdCBJUEM6OkF0dGFjaG1lbnQmKTsKLSAgICB2
b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2Um
JiwgdWludDY0X3QgY2hhbGxlbmdlSUQpOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYsIHVpbnQ2NF90IGNoYWxs
ZW5nZUlEKTsKICAgICB2b2lkIGRpZEZldGNoV2Vic2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJ
RCwgY29uc3QgV2Vic2l0ZURhdGEmKTsKICAgICB2b2lkIGRpZERlbGV0ZVdlYnNpdGVEYXRhKHVp
bnQ2NF90IGNhbGxiYWNrSUQpOwogICAgIHZvaWQgZGlkRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmln
aW5zKHVpbnQ2NF90IGNhbGxiYWNrSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmlu
ZGV4IDExZDhjNWRlZTFkYmE4MWY4ZjYzZjdkOTQ4ZWY2NjE2MTk4MWQxMzQuLmJmYWY5ZjA0OTZl
NTZhOWI5MzFlZjZmZjc3NTFjM2FjZjVkMTM5YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2Fn
ZXMuaW4KQEAgLTIzLDcgKzIzLDcgQEAKIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkg
TGVnYWN5UmVjZWl2ZXIgewogICAgIERpZENyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSWRlbnRpZmllcikKIAotICAgIERpZFJlY2Vp
dmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQs
IHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGNoYWxs
ZW5nZSwgdWludDY0X3QgY2hhbGxlbmdlSUQpCisgICAgRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGNoYWxs
ZW5nZSwgdWludDY0X3QgY2hhbGxlbmdlSUQpCiAKICAgICBEaWRGZXRjaFdlYnNpdGVEYXRhKHVp
bnQ2NF90IGNhbGxiYWNrSUQsIHN0cnVjdCBXZWJLaXQ6OldlYnNpdGVEYXRhIHdlYnNpdGVEYXRh
KQogICAgIERpZERlbGV0ZVdlYnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpCkBAIC00OCw3
ICs0OCw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIg
ewogICAgIE5vdGlmeVdlYnNpdGVEYXRhRGVsZXRpb25Gb3JSZWdpc3RyYWJsZURvbWFpbnNGaW5p
c2hlZCgpCiAgICAgTm90aWZ5V2Vic2l0ZURhdGFTY2FuRm9yUmVnaXN0cmFibGVEb21haW5zRmlu
aXNoZWQoKQogICAgIE5vdGlmeVJlc291cmNlTG9hZFN0YXRpc3RpY3NUZWxlbWV0cnlGaW5pc2hl
ZCh1bnNpZ25lZCB0b3RhbFByZXZhbGVudFJlc291cmNlcywgdW5zaWduZWQgdG90YWxQcmV2YWxl
bnRSZXNvdXJjZXNXaXRoVXNlckludGVyYWN0aW9uLCB1bnNpZ25lZCB0b3AzU3ViZnJhbWVVbmRl
clRvcEZyYW1lT3JpZ2lucykKLSAgICBSZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4g
dG9wRnJhbWVEb21haW4pIC0+IChib29sIHVzZXJEaWRHcmFudEFjY2VzcykgQXN5bmMKKyAgICBS
ZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1l
RG9tYWluKSAtPiAoYm9vbCB1c2VyRGlkR3JhbnRBY2Nlc3MpIEFzeW5jCiAgICAgRGVsZXRlV2Vi
c2l0ZURhdGFJblVJUHJvY2Vzc0ZvclJlZ2lzdHJhYmxlRG9tYWlucyhQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBP
cHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMsIFZl
Y3RvcjxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gZG9tYWlucykgLT4gKEhhc2hTZXQ8V2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4+IGRvbWFpbnNXaXRoTWF0Y2hpbmdEYXRhUmVjb3Jkcykg
QXN5bmMKICAgICBEaWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2
YWxlbnRSZXNvdXJjZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAppbmRl
eCA2NjZmYmQzZGExMGZiNWQ1OWFmMjEwNTI3YTNjMTU0NWMxNDgxM2UyLi5kN2YwYzNjOTUwMjc0
ZGU4ZTBhOTVjYjg1YWRjMjc2NTU4ZjcyZDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAgdm9pZCBQ
cm92aXNpb25hbFBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbShBUEk6Ok5hdmlnYXRpb24m
IG5hdmlnYXRpb24sIFdlYkIKICAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5z
dGFydCgpOwogfQogCi1pbmxpbmUgYm9vbCBQcm92aXNpb25hbFBhZ2VQcm94eTo6dmFsaWRhdGVJ
bnB1dCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBPcHRpb25hbDx1aW50NjRfdD4mIG5hdmlnYXRp
b25JRCkKK2lubGluZSBib29sIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojp2YWxpZGF0ZUlucHV0KEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBPcHRpb25hbDx1aW50NjRfdD4mIG5hdmlnYXRp
b25JRCkKIHsKICAgICAvLyBJZiB0aGUgcHJldmlvdXMgcHJvdmlzaW9uYWwgbG9hZCB1c2VkIGFu
IGV4aXN0aW5nIHByb2Nlc3MsIHdlIG1heSByZWNlaXZlIGxlZnRvdmVyIElQQyBmb3IgYSBwcmV2
aW91cyBuYXZpZ2F0aW9uLCB3aGljaCB3ZSBuZWVkIHRvIGlnbm9yZS4KICAgICBpZiAoIW1fbWFp
bkZyYW1lIHx8IG1fbWFpbkZyYW1lLT5mcmFtZUlEKCkgIT0gZnJhbWVJRCkKQEAgLTE4NSw5ICsx
ODUsOSBAQCBpbmxpbmUgYm9vbCBQcm92aXNpb25hbFBhZ2VQcm94eTo6dmFsaWRhdGVJbnB1dCh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBPcHRpb25hbAogICAgIHJldHVybiAhbmF2aWdhdGlvbklE
IHx8ICEqbmF2aWdhdGlvbklEIHx8ICpuYXZpZ2F0aW9uSUQgPT0gbV9uYXZpZ2F0aW9uSUQ7CiB9
CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRf
dCBmcmFtZUlEKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1l
KEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
UHJvY2Vzc1N3YXBwaW5nLCAiZGlkQ3JlYXRlTWFpbkZyYW1lOiBwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wYWdlLnBhZ2VJRCgpLnRvVUludDY0KCksIGZyYW1l
SUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2Vzc1N3YXBwaW5nLCAiZGlkQ3Jl
YXRlTWFpbkZyYW1lOiBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwg
bV9wYWdlLnBhZ2VJRCgpLnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAgICAgQVNT
RVJUKCFtX21haW5GcmFtZSk7CiAKICAgICBtX21haW5GcmFtZSA9IFdlYkZyYW1lUHJveHk6OmNy
ZWF0ZShtX3BhZ2UsIGZyYW1lSUQpOwpAQCAtMjEyLDcgKzIxMiw3IEBAIHZvaWQgUHJvdmlzaW9u
YWxQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRfdCBmcmFtZUlEKQogICAgIH0K
IH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0
KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9u
VVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6
ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBj
b25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCkKIHsKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCkpCiAgICAgICAgIHJldHVybjsK
QEAgLTIyMCwxMiArMjIwLDEyIEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZv
cm1DbGllbnRSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluCiAgICAgbV9wYWdl
LmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBzb3Vy
Y2VVUkxTdHJpbmcsIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBmcmFtZUlEKTsKIH0KIAotdm9pZCBQ
cm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCwgVVJMJiYgdW5y
ZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgUHJvdmlzaW9uYWxQ
YWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYgdXJsLCBVUkwmJiB1bnJlYWNo
YWJsZVVSTCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIGlmICghdmFsaWRhdGVJ
bnB1dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgImRpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWU6IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IG5hdmlnYXRpb25JRCA9ICUiIFBSSXU2NCwgbV9wYWdlLnBhZ2VJRCgpLnRvVUludDY0KCksIGZy
YW1lSUQsIG5hdmlnYXRpb25JRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNz
U3dhcHBpbmcsICJkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiBwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9uSUQgPSAlIiBQUkl1NjQs
IG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCksIG5hdmlnYXRp
b25JRCk7CiAgICAgQVNTRVJUKG1fcHJvdmlzaW9uYWxMb2FkVVJMLmlzTnVsbCgpKTsKICAgICBt
X3Byb3Zpc2lvbmFsTG9hZFVSTCA9IHVybDsKIApAQCAtMjQwLDEyICsyNDAsMTIgQEAgdm9pZCBQ
cm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCB1aW4KICAgICBtX3BhZ2UuZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JG
cmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQsIFdU
Rk1vdmUodXJsKSwgV1RGTW92ZSh1bnJlYWNoYWJsZVVSTCksIHVzZXJEYXRhKTsKIH0KIAotdm9p
ZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zp
c2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgV2ViQ29yZTo6
V2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYg
dXNlckRhdGEpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yJiBlcnJvciwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2Fk
aW5nLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0
KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJFTEVBU0Vf
TE9HX0VSUk9SX0lGX0FMTE9XRUQoUHJvY2Vzc1N3YXBwaW5nLCAiZGlkRmFpbFByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lOiBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAi
LCBuYXZpZ2F0aW9uSUQgPSAlIiBQUkl1NjQsIG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBm
cmFtZUlELCBuYXZpZ2F0aW9uSUQpOworICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQo
UHJvY2Vzc1N3YXBwaW5nLCAiZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiBwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9uSUQgPSAlIiBQ
Ukl1NjQsIG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCksIG5h
dmlnYXRpb25JRCk7CiAgICAgQVNTRVJUKCFtX3Byb3Zpc2lvbmFsTG9hZFVSTC5pc051bGwoKSk7
CiAgICAgbV9wcm92aXNpb25hbExvYWRVUkwgPSB7IH07CiAKQEAgLTI1NiwxMiArMjU2LDEyIEBA
IHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBjb25zCiAgICAgbV9wYWdlLmRpZEZhaWxQcm92aXNpb25hbExv
YWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCBuYXZpZ2F0aW9uSUQsIHByb3Zpc2lvbmFsVVJMLCBlcnJvciwgd2lsbENvbnRp
bnVlTG9hZGluZywgdXNlckRhdGEpOyAvLyBNYXkgZGVsZXRlIHx0aGlzfC4KIH0KIAotdm9pZCBQ
cm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBm
cmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29u
c3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFp
bnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBm
b3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQg
UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBl
LCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRU
eXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9v
bCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNv
bnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRh
KQogewogICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGlu
ZywgImRpZENvbW1pdExvYWRGb3JGcmFtZTogcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEID0gJSIgUFJJdTY0LCBtX3BhZ2UucGFnZUlEKCku
dG9VSW50NjQoKSwgZnJhbWVJRCwgbmF2aWdhdGlvbklEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKFByb2Nlc3NTd2FwcGluZywgImRpZENvbW1pdExvYWRGb3JGcmFtZTogcGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEID0gJSIgUFJJ
dTY0LCBtX3BhZ2UucGFnZUlEKCkudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpLCBuYXZp
Z2F0aW9uSUQpOwogICAgIG1fcHJvdmlzaW9uYWxMb2FkVVJMID0geyB9OwogICAgIG1fcHJvY2Vz
cy0+cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSwgbV9wYWdlLnBhZ2VJRCgpKTsKIApAQCAtMjY5LDcgKzI2OSw3IEBAIHZv
aWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCBuYXZpCiAgICAgbV9wYWdlLmNvbW1pdFByb3Zpc2lvbmFsUGFnZShm
cmFtZUlELCBuYXZpZ2F0aW9uSUQsIG1pbWVUeXBlLCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92
aWRlciwgZnJhbWVMb2FkVHlwZSwgY2VydGlmaWNhdGVJbmZvLCBjb250YWluc1BsdWdpbkRvY3Vt
ZW50LCBmb3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIHVzZXJEYXRhKTsgLy8gV2lsbCBkZWxldGUg
fHRoaXN8LgogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWROYXZpZ2F0ZVdpdGhO
YXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiBzdG9yZSwgdWludDY0
X3QgZnJhbWVJRCkKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZE5hdmlnYXRlV2l0aE5h
dmlnYXRpb25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmIHN0b3JlLCBGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCkpCiAg
ICAgICAgIHJldHVybjsKQEAgLTI3Nyw3ICsyNzcsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVBy
b3h5OjpkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0
YQogICAgIG1fcGFnZS5kaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YVNoYXJlZChtX3Byb2Nl
c3MuY29weVJlZigpLCBzdG9yZSwgZnJhbWVJRCk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdl
UHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVBy
b3h5OjpkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCkKIHsKICAgICBpZiAoIXZhbGlk
YXRlSW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjg1
LDcgKzI4NSw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lv
bmFsVVJMRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWluCiAgICAgbV9wYWdlLmRpZENoYW5n
ZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJ
RCwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKHVybCkpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFn
ZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmModWludDY0X3QgZnJh
bWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwg
V2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCit2b2lkIFByb3Zpc2lv
bmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAog
ICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0
aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsCiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYg
cmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQogewpAQCAtMjk2LDcgKzI5Niw3IEBAIHZvaWQgUHJv
dmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyh1
aW50NjRfdCBmcmFtZUlECiAgICAgICAgIFdURk1vdmUoZnJhbWVJbmZvRGF0YSksIG9yaWdpbmF0
aW5nUGFnZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVx
dWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB1c2VyRGF0YSwgbGlzdGVuZXJJ
RCk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYg
ZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50
aWZpZXIsCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIg
aWRlbnRpZmllciwKICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0
cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7
CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCkBAIC0zMDUs
NyArMzA1LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ28KICAgICBtX3BhZ2UuZGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2VTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVz
dCwgY2FuU2hvd01JTUVUeXBlLCBkb3dubG9hZEF0dHJpYnV0ZSwgbGlzdGVuZXJJRCwgdXNlckRh
dGEpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVk
aXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGlu
YXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVBy
b3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJp
bmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIEZyYW1lSWRlbnRpZmllciBm
cmFtZUlEKQogewogICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlEKSkKICAgICAgICAgcmV0
dXJuOwpAQCAtMzEzLDcgKzMxMyw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBl
cmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluCiAgICAgbV9w
YWdlLmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdFNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBz
b3VyY2VVUkxTdHJpbmcsIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBmcmFtZUlEKTsKIH0KIAotdm9p
ZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBVc2VyRGF0YSYgdXNl
ckRhdGEpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJl
Y3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBj
b25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1l
SUQsIG5hdmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKQEAgLTMzMSw3ICszMzEsNyBAQCB2
b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpiYWNrRm9yd2FyZEdvVG9JdGVtKGNvbnN0IFdlYkNv
cmU6OkJhY2tGb3J3YXJkSXRlbUlkZQogICAgIG1fcGFnZS5iYWNrRm9yd2FyZEdvVG9JdGVtU2hh
cmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGlkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvblN5bmModWludDY0X3QgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCit2b2lkIFByb3Zpc2lvbmFsUGFn
ZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlk
ZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0
YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELAogICAgIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHks
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLAogICAgIGNvbnN0
IFVzZXJEYXRhJiB1c2VyRGF0YSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQpAQCAtMzY2LDcg
KzM2Niw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OnJlZ2lzdGVyV2ViUHJvY2Vzc0Fj
Y2Vzc2liaWxpdHlUb2tlbihjb25zdCBJUEM6OkRhdGFSCiAjZW5kaWYKIAogI2lmIEVOQUJMRShD
T05URU5UX0ZJTFRFUklORykKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmNvbnRlbnRGaWx0
ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9j
a0hhbmRsZXImIHVuYmxvY2tIYW5kbGVyLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBQcm92aXNp
b25hbFBhZ2VQcm94eTo6Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKGNvbnN0IFdl
YkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYgdW5ibG9ja0hhbmRsZXIsIEZyYW1l
SWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIG1fcGFnZS5jb250ZW50RmlsdGVyRGlkQmxvY2tM
b2FkRm9yRnJhbWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgdW5ibG9ja0hhbmRsZXIsIGZy
YW1lSUQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9u
YWxQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVBy
b3h5LmgKaW5kZXggMzMzMjE2YTJjYzc4NTY2NzE2MzI0YWIwNmZmMWIzYjk2MDgwYzBiZS4uZGUz
ZWU2ODdmYTdkODE3NTBiNThmZWRhNTg0NTgzZmQxZjFlMmQ2NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCkBAIC05MiwyMyArOTIsMjMgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpIGZpbmFsOwogICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+
JikgZmluYWw7CiAKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3lu
Yyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRp
b25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiwKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0
YSYmLAogICAgICAgICBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRp
bmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJl
cXVlc3RCb2R5LAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RS
ZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCB1aW50NjRfdCBsaXN0ZW5lcklEKTsKLSAgICB2b2lk
IGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwKKyAg
ICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmLAogICAgICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29s
IGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0
X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZENoYW5nZVByb3Zp
c2lvbmFsVVJMRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBVUkwmJik7Ci0gICAgdm9pZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVp
bnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2
b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25EYXRh
U3RvcmUmLCB1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZFBlcmZvcm1DbGllbnRSZWRp
cmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5h
dGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRDcmVhdGVNYWlu
RnJhbWUodWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYs
IFVSTCYmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkQ29t
bWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRl
ciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZv
JiwgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNl
Y3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmKTsK
LSAgICB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4s
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcs
IGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZy
YW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwm
Jik7CisgICAgdm9pZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQ
cm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFVzZXJEYXRh
Jik7CisgICAgdm9pZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZp
Z2F0aW9uRGF0YVN0b3JlJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRp
ZFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29u
c3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
KTsKKyAgICB2b2lkIGRpZENyZWF0ZU1haW5GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIp
OworICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYsIFVSTCYmIHVucmVhY2hh
YmxlVVJMLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvckZyYW1l
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBT
dHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50
MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mLCBib29s
IGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29u
dGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZv
aWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2lu
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5n
LCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgc3RhcnRVUkxTY2hlbWVUYXNrKFVSTFNjaGVt
ZVRhc2tQYXJhbWV0ZXJzJiYpOwogICAgIHZvaWQgYmFja0ZvcndhcmRHb1RvSXRlbShjb25zdCBX
ZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJik+JiYpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmModWludDY0X3QgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFt
ZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAor
ICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0
aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKICAgICAg
ICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVz
ZXJEYXRhJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmKTsKICNpZiBVU0UoUVVJQ0tfTE9PSykKQEAgLTEx
OCwxMSArMTE4LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWdpc3RlcldlYlByb2Nlc3NBY2Nl
c3NpYmlsaXR5VG9rZW4oY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7CiAjZW5kaWYKICNpZiBF
TkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCi0gICAgdm9pZCBjb250ZW50RmlsdGVyRGlkQmxvY2tM
b2FkRm9yRnJhbWUoY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiwg
dWludDY0X3QgZnJhbWVJRCk7CisgICAgdm9pZCBjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9y
RnJhbWUoY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiwgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyKTsKICNlbmRpZgogCiAgICAgdm9pZCBpbml0aWFsaXplV2ViUGFn
ZSgpOwotICAgIGJvb2wgdmFsaWRhdGVJbnB1dCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBPcHRp
b25hbDx1aW50NjRfdD4mIG5hdmlnYXRpb25JRCA9IFdURjo6bnVsbG9wdCk7CisgICAgYm9vbCB2
YWxpZGF0ZUlucHV0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgT3B0aW9uYWw8dWlu
dDY0X3Q+JiBuYXZpZ2F0aW9uSUQgPSBXVEY6Om51bGxvcHQpOwogCiAgICAgV2ViUGFnZVByb3h5
JiBtX3BhZ2U7CiAgICAgUmVmPFdlYlByb2Nlc3NQcm94eT4gbV9wcm9jZXNzOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcApp
bmRleCBiMmY3NzI5ZmQzOTM1ZjcyZTFiYzkxMTVhMzBhMThmNjRlMzlmZDI1Li5mNzhhN2MzODZj
ODk1OTAxMTU2YjU2OGFhZjk4YmFiMjNiMDgwNmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcApAQCAtOTAsNyArOTAs
NyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OnVwZGF0ZVByZWZlcmVuY2VzU3Rv
cmUoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uOjpVcGRhdGVQcmVmZXJlbmNlc1N0b3JlIHsgc3RvcmUgfSwg
MCk7CiB9CiAKLXZvaWQgU2VydmljZVdvcmtlclByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJ
RCwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYgY2hhbGxlbmdlKQordm9pZCBT
ZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUmVmPEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYgY2hhbGxlbmdlKQogewogICAgIFVOVVNFRF9Q
QVJBTShwYWdlSUQpOwogICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaAppbmRleCBlOTM2
NWFmYWM0ZjQ3ZDdmZDc0N2Y5ODk4M2FkOTk5MGU4YWI5NzU1Li43ZDg4NzYwNWVlYTBiNjQ3OWQ2
OTc2OTFhYmI1NTI4MDdkZTIxODQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoK
IAogICAgIHN0YXRpYyBib29sIGhhc1JlZ2lzdGVyZWRTZXJ2aWNlV29ya2Vycyhjb25zdCBTdHJp
bmcmIHNlcnZpY2VXb3JrZXJEaXJlY3RvcnkpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1l
SUQsIFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4m
Jik7CiAKICAgICB2b2lkIHN0YXJ0KGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmLCBPcHRpb25h
bDxQQUw6OlNlc3Npb25JRD4gaW5pdGlhbFNlc3Npb25JRCk7CiAgICAgdm9pZCBzZXRVc2VyQWdl
bnQoY29uc3QgU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
dXNwZW5kZWRQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVk
UGFnZVByb3h5LmNwcAppbmRleCBmNmQzYjUzNmRmOGFhYjE5N2Q5MTFlZDE0ZDJlYTQwZmVmZjJl
MWRkLi5jNjRkN2VmMTliZDBkZTcxMTY5Njk5OTJjMDc2NzFlNjFkODI4M2VkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHAKQEAgLTc4LDcgKzc4
LDcgQEAgc3RhdGljIGNvbnN0IEhhc2hTZXQ8SVBDOjpTdHJpbmdSZWZlcmVuY2U+JiBtZXNzYWdl
TmFtZXNUb0lnbm9yZVdoaWxlU3VzcGVuZGVkKCkKIH0KICNlbmRpZgogCi1TdXNwZW5kZWRQYWdl
UHJveHk6OlN1c3BlbmRlZFBhZ2VQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYgcHJvY2VzcywgdWludDY0X3QgbWFpbkZyYW1lSUQsIFNob3VsZERlbGF5Q2xv
c2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSBzaG91bGREZWxheUNs
b3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpCitTdXNwZW5kZWRQ
YWdlUHJveHk6OlN1c3BlbmRlZFBhZ2VQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIFJlZjxXZWJQ
cm9jZXNzUHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlELCBTaG91
bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUgc2hv
dWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKQog
ICAgIDogbV9wYWdlKHBhZ2UpCiAgICAgLCBtX3Byb2Nlc3MoV1RGTW92ZShwcm9jZXNzKSkKICAg
ICAsIG1fbWFpbkZyYW1lSUQobWFpbkZyYW1lSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1N1c3BlbmRlZFBhZ2VQcm94eS5oCmluZGV4IDBkYWQwNTRiMjcyYTgxOWQ2ZTBiMDZjNzdjZWQ4
MTJhMjYzZDEzNDAuLjkxNjUzY2M3OGVhMDA4NjYwYjE0ZTMzNTA1NTNhYTg5ZTczZDE5MTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oCkBAIC0yOSw2
ICsyOSw3IEBACiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90dGxlci5oIgogI2luY2x1ZGUgIldlYkJh
Y2tGb3J3YXJkTGlzdEl0ZW0uaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCkBAIC00MiwxMiArNDMsMTIgQEAg
ZW51bSBjbGFzcyBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ01vZGUgOiBib29sIHsgTm8KIGNsYXNzIFN1c3BlbmRlZFBhZ2VQcm94eSBmaW5hbDog
cHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U3VzcGVu
ZGVkUGFnZVByb3h5PiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0g
ICAgU3VzcGVuZGVkUGFnZVByb3h5KFdlYlBhZ2VQcm94eSYsIFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYsIHVpbnQ2NF90IG1haW5GcmFtZUlELCBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5n
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOworICAgIFN1c3BlbmRlZFBhZ2VQcm94eShXZWJQ
YWdlUHJveHkmLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgbWFpbkZyYW1lSUQsIFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nTW9kZSk7CiAgICAgflN1c3BlbmRlZFBhZ2VQcm94eSgpOwogCiAgICAgV2Vi
UGFnZVByb3h5JiBwYWdlKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlOyB9CiAgICAgV2ViUHJvY2Vz
c1Byb3h5JiBwcm9jZXNzKCkgeyByZXR1cm4gbV9wcm9jZXNzLmdldCgpOyB9Ci0gICAgdWludDY0
X3QgbWFpbkZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX21haW5GcmFtZUlEOyB9CisgICAgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9tYWlu
RnJhbWVJRDsgfQogCiAgICAgYm9vbCBwYWdlSXNDbG9zZWRPckNsb3NpbmcoKSBjb25zdDsKIApA
QCAtNzQsNyArNzUsNyBAQCBwcml2YXRlOgogCiAgICAgV2ViUGFnZVByb3h5JiBtX3BhZ2U7CiAg
ICAgUmVmPFdlYlByb2Nlc3NQcm94eT4gbV9wcm9jZXNzOwotICAgIHVpbnQ2NF90IG1fbWFpbkZy
YW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fbWFpbkZyYW1lSUQ7CiAgICAg
Ym9vbCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsKICAgICBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVu
dGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUgbV9zaG91bGREZWxheUNsb3NpbmdVbnRp
bEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUgeyBTaG91bGREZWxheUNsb3NpbmdV
bnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGU6Ok5vIH07CiAgICAgYm9vbCBt
X3Nob3VsZENsb3NlV2hlbkVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUgeyBmYWxz
ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvbkNoZWNrUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvbkNoZWNrUHJveHkuY3BwCmluZGV4IGFiNzkyNDAyOWUwZWYzYTNiYmFiNzRjYmFjMDBj
Mjk3ZmE5NmEzY2EuLjRmYTZmZGY2MDhkNmMzN2VmZWNiMGE1ZTA2YzJjZmRlNTBlYjU4NGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVj
a1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uQ2hlY2tQcm94eS5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5
OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSh1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0
aW9uSGFuZGxlciYmIGhhbmRsZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExl
dmVsRG9jdW1lbnRPcmlnaW4pCitVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eTo6VXNlck1l
ZGlhUGVybWlzc2lvbkNoZWNrUHJveHkoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRp
b25IYW5kbGVyJiYgaGFuZGxlciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJN
ZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbikKICAgICA6IG1fZnJhbWVJRChmcmFtZUlEKQogICAgICwgbV9jb21w
bGV0aW9uSGFuZGxlcihXVEZNb3ZlKGhhbmRsZXIpKQogICAgICwgbV91c2VyTWVkaWFEb2N1bWVu
dFNlY3VyaXR5T3JpZ2luKFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1By
b3h5LmgKaW5kZXggZGMzNDA5ODE3MTRjNzI3OTNjMDEwNWQ3ODMzOTFiN2ZhOTQ1OTE4Zi4uZTgw
YjUxOTE4NDFmZGIyNDY3NTUxMDk3MjUwOTY2ZTkwYjdlMmEzMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oCkBA
IC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9N
ZWRpYUNvbnN0cmFpbnRzLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC00MSw3ICs0Miw3IEBAIHB1YmxpYzoK
ICAgICBlbnVtIGNsYXNzIFBlcm1pc3Npb25JbmZvIHsgRXJyb3IsIFVua25vd24sIEdyYW50ZWQg
fTsKICAgICB1c2luZyBDb21wbGV0aW9uSGFuZGxlciA9IFdURjo6Q29tcGxldGlvbkhhbmRsZXI8
dm9pZChQZXJtaXNzaW9uSW5mbyk+OwogCi0gICAgc3RhdGljIFJlZjxVc2VyTWVkaWFQZXJtaXNz
aW9uQ2hlY2tQcm94eT4gY3JlYXRlKHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVy
JiYgaGFuZGxlciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbikKKyAgICBzdGF0aWMgUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5PiBj
cmVhdGUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVy
JiYgaGFuZGxlciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbikKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFVzZXJNZWRpYVBl
cm1pc3Npb25DaGVja1Byb3h5KGZyYW1lSUQsIFdURk1vdmUoaGFuZGxlciksIFdURk1vdmUodXNl
ck1lZGlhRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsRG9jdW1lbnRPcmlnaW4pKSk7
CiAgICAgfQpAQCAtNTAsMTcgKzUxLDE3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFVzZXJNZWRp
YUFjY2Vzc0luZm8oYm9vbCk7CiAgICAgdm9pZCBpbnZhbGlkYXRlKCkgeyBjb21wbGV0ZShQZXJt
aXNzaW9uSW5mbzo6RXJyb3IpOyB9CiAKLSAgICB1aW50NjRfdCBmcmFtZUlEKCkgY29uc3QgeyBy
ZXR1cm4gbV9mcmFtZUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQo
KSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KICAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
biYgdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIHsgcmV0dXJuIG1fdXNlck1lZGlh
RG9jdW1lbnRTZWN1cml0eU9yaWdpbi5nZXQoKTsgfQogICAgIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luJiB0b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSB7IHJldHVybiBtX3RvcExldmVs
RG9jdW1lbnRTZWN1cml0eU9yaWdpbi5nZXQoKTsgfQogICAgIAogcHJpdmF0ZToKLSAgICBVc2Vy
TWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSh1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFu
ZGxlciYmLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luKTsKKyAgICBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyJiYsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
PiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pOwogICAgIH5Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hl
Y2tQcm94eSgpOwogCiAgICAgdm9pZCBjb21wbGV0ZShQZXJtaXNzaW9uSW5mbyk7CiAgICAgCi0g
ICAgdWludDY0X3QgbV9mcmFtZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX2Zy
YW1lSUQ7CiAgICAgQ29tcGxldGlvbkhhbmRsZXIgbV9jb21wbGV0aW9uSGFuZGxlcjsKICAgICBS
ZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG1fdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9y
aWdpbjsKICAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG1fdG9wTGV2ZWxEb2N1bWVu
dFNlY3VyaXR5T3JpZ2luOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4
IGQzNDAzNzZmZjI5MDdiODcyOTM1NjQ2NDI4OWQ0MzQ5NmQ0MDA5OTEuLmRiNGNkYTExMTYxZDIy
MjgyOTg0ZmVlOWFlYWQ0MGE0ZWVjMWE0OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5jcHAKQEAgLTI0MCw5ICsyNDAsOSBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5OjpmaW5pc2hHcmFudGluZ1JlcXVlc3QoVXNlck1lZGlhUGVybQogICAg
IHByb2Nlc3NOZXh0VXNlck1lZGlhUmVxdWVzdElmTmVlZGVkKCk7CiB9CiAKLXZvaWQgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlc2V0QWNjZXNzKHVpbnQ2NF90IGZy
YW1lSUQpCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXNl
dEFjY2VzcyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKLSAgICBBTFdBWVNfTE9HKExPR0lE
RU5USUZJRVIsIGZyYW1lSUQpOworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgZnJhbWVJ
RC5sb2dnaW5nU3RyaW5nKCkpOwogICAgIG1fZ3JhbnRlZFJlcXVlc3RzLnJlbW92ZUFsbE1hdGNo
aW5nKFtmcmFtZUlEXShjb25zdCBhdXRvJiBncmFudGVkUmVxdWVzdCkgewogICAgICAgICByZXR1
cm4gZ3JhbnRlZFJlcXVlc3QtPm1haW5GcmFtZUlEKCkgPT0gZnJhbWVJRDsKICAgICB9KTsKQEAg
LTI1MSw3ICsyNTEsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5OjpyZXNldEFjY2Vzcyh1aW50NjRfdCBmcmFtZUlEKQogICAgIG1faGFzRmlsdGVyZWREZXZp
Y2VMaXN0ID0gZmFsc2U7CiB9CiAKLWNvbnN0IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkqIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzZWFyY2hGb3JHcmFu
dGVkUmVxdWVzdCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50
T3JpZ2luLCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbykgY29uc3QKK2NvbnN0IFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkqIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5OjpzZWFyY2hGb3JHcmFudGVkUmVxdWVzdChGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25z
dCBTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlv
LCBib29sIG5lZWRzVmlkZW8pIGNvbnN0CiB7CiAgICAgaWYgKG1fcGFnZS5pc01lZGlhU3RyZWFt
Q2FwdHVyZU11dGVkKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMjgyLDcgKzI4Miw3
IEBAIGNvbnN0IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkqIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLWJv
b2wgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc1JlcXVlc3REZW5p
ZWQodWludDY0X3QgbWFpbkZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFE
b2N1bWVudE9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmln
aW4sIGJvb2wgbmVlZHNBdWRpbywgYm9vbCBuZWVkc1ZpZGVvLCBib29sIG5lZWRzU2NyZWVuQ2Fw
dHVyZSkKK2Jvb2wgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc1Jl
cXVlc3REZW5pZWQoRnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlELCBjb25zdCBTZWN1cml0eU9y
aWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BM
ZXZlbERvY3VtZW50T3JpZ2luLCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbywgYm9v
bCBuZWVkc1NjcmVlbkNhcHR1cmUpCiB7CiAgICAgZm9yIChjb25zdCBhdXRvJiBkZW5pZWRSZXF1
ZXN0IDogbV9kZW5pZWRSZXF1ZXN0cykgewogICAgICAgICBpZiAoIWRlbmllZFJlcXVlc3QudXNl
ck1lZGlhRG9jdW1lbnRPcmlnaW4tPmlzU2FtZVNjaGVtZUhvc3RQb3J0KHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luKSkKQEAgLTM0Niw3ICszNDYsNyBAQCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6UmVxdWVzdEFjdGlvbiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdAog
fQogI2VuZGlmCiAKLXZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6
OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQs
IHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIE1l
ZGlhU3RyZWFtUmVxdWVzdCYmIHVzZXJSZXF1ZXN0KQordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1
aW50NjRfdCB1c2VyTWVkaWFJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxTZWN1cml0
eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYm
IHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIE1lZGlhU3RyZWFtUmVxdWVzdCYmIHVzZXJSZXF1ZXN0
KQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgaWYgKCFtX3BhZ2UuaGFzUnVubmlu
Z1Byb2Nlc3MoKSkKQEAgLTUyMSw3ICs1MjEsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5Ojpwcm9jZXNzVXNlck1lZGlhUGVybWlzc2lvblZhbGlkUmVxdQog
ICAgIG1fcGFnZS51aUNsaWVudCgpLmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0KG1fcGFnZSwgKndlYkZyYW1lLCBXVEZNb3ZlKHVzZXJNZWRpYU9yaWdpbiksIFdURk1v
dmUodG9wTGV2ZWxPcmlnaW4pLCAqbV9jdXJyZW50VXNlck1lZGlhUmVxdWVzdCk7CiB9CiAKLXZv
aWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmdldFVzZXJNZWRpYVBl
cm1pc3Npb25JbmZvKHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1l
bnRPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUGVybWlzc2lvbkluZm8pPiYmIGhhbmRs
ZXIpCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpnZXRVc2Vy
TWVkaWFQZXJtaXNzaW9uSW5mbyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUmVmPFNlY3VyaXR5
T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYg
dG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQZXJtaXNzaW9u
SW5mbyk+JiYgaGFuZGxlcikKIHsKICAgICBhdXRvKiB3ZWJGcmFtZSA9IG1fcGFnZS5wcm9jZXNz
KCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCF3ZWJGcmFtZSB8fCAhU2VjdXJpdHlPcmln
aW46OmNyZWF0ZUZyb21TdHJpbmcobV9wYWdlLnBhZ2VMb2FkU3RhdGUoKS5hY3RpdmVVUkwoKSkt
PmlzU2FtZVNjaGVtZUhvc3RQb3J0KHRvcExldmVsRG9jdW1lbnRPcmlnaW4uZ2V0KCkpKSB7CkBA
IC01NDUsNyArNTQ1LDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6Z2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8odWludDY0X3QKICAgICBtX3BhZ2UudWlD
bGllbnQoKS5jaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4obV9wYWdlLCAqd2ViRnJh
bWUsIHVzZXJNZWRpYU9yaWdpbi5nZXQoKSwgdG9wTGV2ZWxPcmlnaW4uZ2V0KCksIHJlcXVlc3Qu
Z2V0KCkpOwogfQogCi1ib29sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
Ojp3YXNHcmFudGVkVmlkZW9PckF1ZGlvQWNjZXNzKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNl
Y3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmln
aW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pCitib29sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5Ojp3YXNHcmFudGVkVmlkZW9PckF1ZGlvQWNjZXNzKEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmln
aW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKQogewogICAg
IGZvciAoY29uc3QgYXV0byYgZ3JhbnRlZFJlcXVlc3QgOiBtX2dyYW50ZWRSZXF1ZXN0cykgewog
ICAgICAgICBpZiAoZ3JhbnRlZFJlcXVlc3QtPnJlcXVpcmVzRGlzcGxheUNhcHR1cmUoKSkKQEAg
LTYwNCw3ICs2MDQsNyBAQCBWZWN0b3I8Q2FwdHVyZURldmljZT4gVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHk6OmNvbXB1dGVGaWx0ZXJlZERldgogfQogI2VuZGlmCiAKLXZv
aWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmVudW1lcmF0ZU1lZGlh
RGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBS
ZWY8U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxTZWN1cml0
eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKQordm9pZCBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWlu
dDY0X3QgdXNlck1lZGlhSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8U2VjdXJpdHlP
cmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0
b3BMZXZlbERvY3VtZW50T3JpZ2luKQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAg
QUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCB1c2VyTWVkaWFJRCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuaAppbmRleCBmNTA1ZTI4MGM0NDI5MGE4MDNkYmRiNjhjOThlZWE2MzBiMWM5
YmI2Li5iYmJhNDRhYzgyYmQyODA3NWJkZGZiYjQ1NDQ0Y2E1NjlhY2NmYjk3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmgKQEAgLTYwLDE1ICs2MCwxNSBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIGludmFsaWRhdGVQZW5kaW5nUmVxdWVzdHMoKTsKIAotICAgIHZvaWQgcmVxdWVzdFVz
ZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3Qg
ZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmICB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRP
cmlnaW4sIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKKyAgICB2b2lkIHJlcXVlc3RV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmICB1c2VyTWVk
aWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVs
RG9jdW1lbnRPcmlnaW4sIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKIAotICAgIHZv
aWQgcmVzZXRBY2Nlc3ModWludDY0X3QgbWFpbkZyYW1lSUQpOworICAgIHZvaWQgcmVzZXRBY2Nl
c3MoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlEKTsKICAgICB2b2lkIHZpZXdJ
c0JlY29taW5nVmlzaWJsZSgpOwogCiAgICAgdm9pZCBncmFudFJlcXVlc3QoVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eSYpOwogICAgIHZvaWQgZGVueVJlcXVlc3QoVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eSYsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVz
ZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbiwgY29uc3QgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWlu
dCA9IHsgfSk7CiAKLSAgICB2b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2
NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKTsKKyAgICB2b2lkIGVudW1lcmF0ZU1lZGlh
RGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9y
aWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmln
aW4pOwogCiAgICAgdm9pZCBzdG9wQ2FwdHVyZSgpOwogICAgIHZvaWQgc2NoZWR1bGVOZXh0UmVq
ZWN0aW9uKCk7CkBAIC05NSwxOSArOTUsMTkgQEAgcHJpdmF0ZToKICAgICBXVEZMb2dDaGFubmVs
JiBsb2dDaGFubmVsKCkgY29uc3QgZmluYWw7CiAjZW5kaWYKIAotICAgIFJlZjxVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGVQZXJtaXNzaW9uUmVxdWVzdCh1aW50NjRfdCB1
c2VyTWVkaWFJRCwgdWludDY0X3QgbWFpbkZyYW1lSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3Qm
Jik7CisgICAgUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZVBlcm1p
c3Npb25SZXF1ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgbWFpbkZyYW1lSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVjdG9yPFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmlj
ZT4mJiB2aWRlb0RldmljZXMsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKICNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQogICAgIHZvaWQgZmluaXNoR3JhbnRpbmdSZXF1ZXN0KFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKTsKIAotICAgIGNvbnN0IFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkqIHNlYXJjaEZvckdyYW50ZWRSZXF1ZXN0KHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
biwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4s
IGJvb2wgbmVlZHNBdWRpbywgYm9vbCBuZWVkc1ZpZGVvKSBjb25zdDsKLSAgICBib29sIHdhc1Jl
cXVlc3REZW5pZWQodWludDY0X3QgbWFpbkZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGJvb2wgbmVlZHNBdWRpbywgYm9vbCBuZWVk
c1ZpZGVvLCBib29sIG5lZWRzU2NyZWVuQ2FwdHVyZSk7CisgICAgY29uc3QgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eSogc2VhcmNoRm9yR3JhbnRlZFJlcXVlc3QoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9j
dW1lbnRPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luLCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbykgY29uc3Q7CisgICAg
Ym9vbCB3YXNSZXF1ZXN0RGVuaWVkKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJ
RCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwg
Ym9vbCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8sIGJvb2wgbmVlZHNTY3JlZW5DYXB0dXJl
KTsKIAogICAgIHVzaW5nIFBlcm1pc3Npb25JbmZvID0gVXNlck1lZGlhUGVybWlzc2lvbkNoZWNr
UHJveHk6OlBlcm1pc3Npb25JbmZvOwotICAgIHZvaWQgZ2V0VXNlck1lZGlhUGVybWlzc2lvbklu
Zm8odWludDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJN
ZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQZXJtaXNzaW9uSW5mbyk+
JiYpOworICAgIHZvaWQgZ2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8oV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1l
bnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50
T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBlcm1pc3Npb25JbmZvKT4mJik7CiAKICAg
ICBSZXF1ZXN0QWN0aW9uIGdldFJlcXVlc3RBY3Rpb24oY29uc3QgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eSYpOwogCi0gICAgYm9vbCB3YXNHcmFudGVkVmlkZW9PckF1ZGlvQWNjZXNz
KHVpbnQ2NF90LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1l
bnRPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50
T3JpZ2luKTsKKyAgICBib29sIHdhc0dyYW50ZWRWaWRlb09yQXVkaW9BY2Nlc3MoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlh
RG9jdW1lbnRPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERv
Y3VtZW50T3JpZ2luKTsKIAogICAgIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiBjb21w
dXRlRmlsdGVyZWREZXZpY2VMaXN0KGJvb2wgcmV2ZWFsSWRzQW5kTGFiZWxzLCBjb25zdCBTdHJp
bmcmIGRldmljZUlESGFzaFNhbHQpOwogCkBAIC0xMzQsNyArMTM0LDcgQEAgcHJpdmF0ZToKICAg
ICBWZWN0b3I8UmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+PiBtX2dyYW50ZWRS
ZXF1ZXN0czsKIAogICAgIHN0cnVjdCBEZW5pZWRSZXF1ZXN0IHsKLSAgICAgICAgdWludDY0X3Qg
bWFpbkZyYW1lSUQ7CisgICAgICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJ
RDsKICAgICAgICAgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbjsKICAgICAgICAgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiB0b3BMZXZlbERv
Y3VtZW50T3JpZ2luOwogICAgICAgICBib29sIGlzQXVkaW9EZW5pZWQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuY3BwCmluZGV4IDRmMDI4NDA2YmE0YTc3NTE2NDcwNjQ3NjcxZjNhOTUwODhhZmY0YWIuLjk2
NmZkYWQ1Y2YwZGQwOWI5OGZmNTU2MTAzZTIwNmFhMTE3NWM5NjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuY3BwCkBAIC0zMCw3ICszMCw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCi1Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5JiBtYW5hZ2VyLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgbWFpbkZyYW1l
SUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExl
dmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlv
RGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBX
ZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJiByZXF1ZXN0KQorVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgdWludDY0X3QgdXNlck1lZGlh
SUQsIEZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwg
UmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZl
Y3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJl
cXVlc3QmJiByZXF1ZXN0KQogICAgIDogbV9tYW5hZ2VyKCZtYW5hZ2VyKQogICAgICwgbV91c2Vy
TWVkaWFJRCh1c2VyTWVkaWFJRCkKICAgICAsIG1fbWFpbkZyYW1lSUQobWFpbkZyYW1lSUQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5LmgKaW5kZXggNTQ0ZjYxMTZlZGI2NjJhOGZhOTYzMWJjM2FmOGI3MGRlZGM1
ODI3Zi4uYmE0ZTBhMzQ3MTYwMzFiMThmMDg1Y2ZkMDFhNzM1MTc3OGEwMzA1OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuaApAQCAtMjEsNiArMjEsNyBAQAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9DYXB0dXJlRGV2aWNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFt
ZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU3RyZWFtUmVxdWVzdC5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
QEAgLTM1LDcgKzM2LDcgQEAgY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk7CiAKIGNsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkgOiBwdWJsaWMg
QVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eT4gY3JlYXRlKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiBt
YW5hZ2VyLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgbWFpbkZyYW1lSUQsIHVpbnQ2
NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1
bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1l
bnRPcmlnaW4sIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywg
VmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3JlOjpN
ZWRpYVN0cmVhbVJlcXVlc3QmJiByZXF1ZXN0KQorICAgIHN0YXRpYyBSZWY8VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRlKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5JiBtYW5hZ2VyLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIG1haW5GcmFtZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
UmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBS
ZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVj
dG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29y
ZTo6Q2FwdHVyZURldmljZT4mJiB2aWRlb0RldmljZXMsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVx
dWVzdCYmIHJlcXVlc3QpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KG1hbmFnZXIsIHVzZXJNZWRpYUlELCBtYWluRnJh
bWVJRCwgZnJhbWVJRCwgV1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiksIFdURk1vdmUo
dG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIFdURk1vdmUoYXVkaW9EZXZpY2VzKSwgV1RGTW92ZSh2
aWRlb0RldmljZXMpLCBXVEZNb3ZlKHJlcXVlc3QpKSk7CiAgICAgfQpAQCAtNjUsOCArNjYsOCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRIYXNQZXJzaXN0ZW50QWNjZXNzKCkgeyBtX2hhc1BlcnNp
c3RlbnRBY2Nlc3MgPSB0cnVlOyB9CiAKICAgICB1aW50NjRfdCB1c2VyTWVkaWFJRCgpIGNvbnN0
IHsgcmV0dXJuIG1fdXNlck1lZGlhSUQ7IH0KLSAgICB1aW50NjRfdCBtYWluRnJhbWVJRCgpIGNv
bnN0IHsgcmV0dXJuIG1fbWFpbkZyYW1lSUQ7IH0KLSAgICB1aW50NjRfdCBmcmFtZUlEKCkgY29u
c3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1h
aW5GcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJhbWVJRDsgfQorICAgIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9CiAK
ICAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3Jp
Z2luKCkgeyByZXR1cm4gbV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4uZ2V0KCk7IH0K
ICAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9y
aWdpbigpIHsgcmV0dXJuIG1fdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbi5nZXQoKTsg
fQpAQCAtODQsMTIgKzg1LDEyIEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
IHZpZGVvRGV2aWNlKCkgY29uc3QgeyByZXR1cm4gbV9lbGlnaWJsZVZpZGVvRGV2aWNlcy5pc0Vt
cHR5KCkgPyBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIHsgfSA6IG1fZWxpZ2libGVWaWRlb0Rldmlj
ZXNbMF07IH0KIAogcHJpdmF0ZToKLSAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiwgdWludDY0X3QgdXNlck1l
ZGlhSUQsIHVpbnQ2NF90IG1haW5GcmFtZUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0b3I8V2ViQ29y
ZTo6Q2FwdHVyZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYpOwor
ICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkmLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIG1haW5GcmFtZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZjxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJik7
CiAKICAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSogbV9tYW5hZ2Vy
OwogICAgIHVpbnQ2NF90IG1fdXNlck1lZGlhSUQ7Ci0gICAgdWludDY0X3QgbV9tYWluRnJhbWVJ
RDsKLSAgICB1aW50NjRfdCBtX2ZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IG1fbWFpbkZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fZnJhbWVJRDsK
ICAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG1fdXNlck1lZGlhRG9jdW1lbnRTZWN1
cml0eU9yaWdpbjsKICAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG1fdG9wTGV2ZWxE
b2N1bWVudFNlY3VyaXR5T3JpZ2luOwogICAgIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
PiBtX2VsaWdpYmxlVmlkZW9EZXZpY2VzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFt
ZVByb3h5LmNwcAppbmRleCAwNzE0YjQxZWI2Nzc2OGQ5ZTBjOWQ0MTJlMjBlODk4ZjgxZTczZGQ4
Li5lZTMzNzEwODE3MDdlYTM2ZDM1MGVmZTJjYzVhMDNjMWQxOTFkYTRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcApAQCAtNDUsOSArNDUsOCBAQCB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogY2xhc3MgV2ViUGFnZVByb3h5OwogCi1XZWJGcmFtZVByb3h5
OjpXZWJGcmFtZVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgdWludDY0X3QgZnJhbWVJRCkKK1dl
YkZyYW1lUHJveHk6OldlYkZyYW1lUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCkKICAgICA6IG1fcGFnZShtYWtlV2Vha1B0cihwYWdlKSkKLSAgICAsIG1f
aXNGcmFtZVNldChmYWxzZSkKICAgICAsIG1fZnJhbWVJRChmcmFtZUlEKQogewogICAgIFdlYlBy
b2Nlc3NQb29sOjpzdGF0aXN0aWNzKCkud2tGcmFtZUNvdW50Kys7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJGcmFtZVByb3h5LmgKaW5kZXggNDQ2MDBmMWMyNzI5MGU1ZTRjMTY4ZWE4Y2QzY2Mz
OTYzNmZkYmJlMS4uY2NkYTYzNzgwMDJkNTVhYjE1N2E2ZjE1MzdjNWVmNzlkYjQ1YzI1MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaApAQCAtNTksMTQgKzU5LDE0IEBA
IHN0cnVjdCBXZWJzaXRlUG9saWNpZXNEYXRhOwogCiBjbGFzcyBXZWJGcmFtZVByb3h5IDogcHVi
bGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6RnJhbWU+IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmPFdlYkZyYW1lUHJveHk+IGNyZWF0ZShXZWJQYWdlUHJveHkmIHBhZ2Us
IHVpbnQ2NF90IGZyYW1lSUQpCisgICAgc3RhdGljIFJlZjxXZWJGcmFtZVByb3h5PiBjcmVhdGUo
V2ViUGFnZVByb3h5JiBwYWdlLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKICAg
ICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkZyYW1lUHJveHkocGFnZSwgZnJh
bWVJRCkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgfldlYkZyYW1lUHJveHkoKTsKIAotICAgIHVp
bnQ2NF90IGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KKyAgICBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQog
ICAgIFdlYlBhZ2VQcm94eSogcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZS5nZXQoKTsgfQog
CiAgICAgdm9pZCB3ZWJQcm9jZXNzV2lsbFNodXREb3duKCk7CkBAIC0xMzAsNyArMTMwLDcgQEAg
cHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgV2ViRnJhbWVQcm94eShXZWJQYWdlUHJv
eHkmLCB1aW50NjRfdCBmcmFtZUlEKTsKKyAgICBXZWJGcmFtZVByb3h5KFdlYlBhZ2VQcm94eSYs
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAKICAgICBXZWFrUHRyPFdlYlBhZ2VQcm94eT4g
bV9wYWdlOwogCkBAIC0xMzgsMTEgKzEzOCwxMSBAQCBwcml2YXRlOgogCiAgICAgU3RyaW5nIG1f
TUlNRVR5cGU7CiAgICAgU3RyaW5nIG1fdGl0bGU7Ci0gICAgYm9vbCBtX2lzRnJhbWVTZXQ7Cisg
ICAgYm9vbCBtX2lzRnJhbWVTZXQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9jb250YWluc1BsdWdp
bkRvY3VtZW50IHsgZmFsc2UgfTsKICAgICBSZWZQdHI8V2ViQ2VydGlmaWNhdGVJbmZvPiBtX2Nl
cnRpZmljYXRlSW5mbzsKICAgICBSZWZQdHI8V2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5PiBt
X2FjdGl2ZUxpc3RlbmVyOwotICAgIHVpbnQ2NF90IG1fZnJhbWVJRDsKKyAgICBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgbV9mcmFtZUlEOwogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykK
ICAgICBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIgbV9jb250ZW50RmlsdGVy
VW5ibG9ja0hhbmRsZXI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCmluZGV4IDMyNjMxYzQ1MGViMjZkNzU0NTQ2OGI3MjZjMTVhNDQ5ODVjOTk4YTkuLmQy
ZjlhODg3MDU3YjBkY2Q3OTQ3OGIxMGI3MDA3M2M2ZDg2YzdiYjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNzQzLDcgKzc0Myw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpsYXVuY2hQcm9jZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZWdpc3RyYWJs
ZURvbWFpbikKICAgICBmaW5pc2hBdHRhY2hpbmdUb1dlYlByb2Nlc3MoSXNQcm9jZXNzU3dhcDo6
Tm8pOwogfQogCi1ib29sIFdlYlBhZ2VQcm94eTo6c3VzcGVuZEN1cnJlbnRQYWdlSWZQb3NzaWJs
ZShBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIE9wdGlvbmFsPHVpbnQ2NF90PiBtYWluRnJh
bWVJRCwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5
Q2xpZW50LCBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ01vZGUgc2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdNb2RlKQorYm9vbCBXZWJQYWdlUHJveHk6OnN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2li
bGUoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+
IG1haW5GcmFtZUlELCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVx
dWVzdGVkQnlDbGllbnQsIFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nTW9kZSBzaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ01vZGUpCiB7CiAgICAgbV9sYXN0U3VzcGVuZGVkUGFnZSA9IG51bGxwdHI7
CiAKQEAgLTI5MzEsMTIgKzI5MzEsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkUG9s
aWN5RGVjaXNpb24oUG9saWN5QWN0aW9uIGFjdGlvbiwgQVBJOjpOYXZpZ2F0aW9uKgogICAgIHNl
bmRlci0+c2VuZChhY3Rpb24sIG5hdmlnYXRpb24gPyBuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQo
KSA6IDAsIGRvd25sb2FkSUQsIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7CiB9CiAKLXZvaWQg
V2ViUGFnZVByb3h5Ojpjb21taXRQcm92aXNpb25hbFBhZ2UodWludDY0X3QgZnJhbWVJRCwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFz
Q3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJD
b3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdp
bkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhh
c0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdl
UHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFz
Q3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJD
b3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdp
bkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhh
c0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIEFTU0VS
VChtX3Byb3Zpc2lvbmFsUGFnZSk7CiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5n
LCAiY29tbWl0UHJvdmlzaW9uYWxQYWdlOiBwcmV2aW91c1BJRCA9ICVpLCBuZXdQSUQgPSAlaSwg
cGFnZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcHJv
dmlzaW9uYWxQYWdlLT5wcm9jZXNzKCkucHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9V
SW50NjQoKSk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gbWFpbkZyYW1lSURJblByZXZpb3Vz
UHJvY2VzcyA9IG1fbWFpbkZyYW1lID8gbWFrZU9wdGlvbmFsKG1fbWFpbkZyYW1lLT5mcmFtZUlE
KCkpIDogV1RGOjpudWxsb3B0OworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gbWFpbkZy
YW1lSURJblByZXZpb3VzUHJvY2VzcyA9IG1fbWFpbkZyYW1lID8gbWFrZU9wdGlvbmFsKG1fbWFp
bkZyYW1lLT5mcmFtZUlEKCkpIDogV1RGOjpudWxsb3B0OwogCiAgICAgQVNTRVJUKG1fcHJvY2Vz
cy5wdHIoKSAhPSAmbV9wcm92aXNpb25hbFBhZ2UtPnByb2Nlc3MoKSk7CiAKQEAgLTM2NzIsNyAr
MzY3Miw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3Jp
cHRXb3JsZChjb25zdCBTdHJpbmcmIHNjcmlwdCwgYm9vCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpSdW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3JsZChzY3Jp
cHQsIGZvcmNlVXNlckdlc3R1cmUsIHdvcmxkTmFtZSwgY2FsbGJhY2tJRCksIG1fcGFnZUlEKTsK
IH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRJbkZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIFdURjo6
RnVuY3Rpb248dm9pZChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSosIGJvb2wgaGFkRXhjZXB0
aW9uLCBjb25zdCBFeGNlcHRpb25EZXRhaWxzJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2Fs
bGJhY2tGdW5jdGlvbikKK3ZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0SW5GcmFtZShG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VV
c2VyR2VzdHVyZSwgV1RGOjpGdW5jdGlvbjx2b2lkKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVl
KiwgYm9vbCBoYWRFeGNlcHRpb24sIGNvbnN0IEV4Y2VwdGlvbkRldGFpbHMmLCBDYWxsYmFja0Jh
c2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQogewogICAgIEFTU0VSVChtYWluRnJhbWUo
KS0+ZnJhbWVJRCgpICE9IGZyYW1lSUQpOwogICAgIGF1dG8gY2FsbGJhY2tJRCA9IG1fY2FsbGJh
Y2tzLnB1dChXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBtX3Byb2Nlc3MtPnRocm90dGxlcigp
LmJhY2tncm91bmRBY3Rpdml0eVRva2VuKCkpOwpAQCAtMzg3OCw3ICszODc4LDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKCkKICAgICBtX3Byb2Nlc3MtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OlByZWZlcmVuY2VzRGlkQ2hhbmdlKHByZWZlcmVuY2VzU3RvcmUo
KSksIG1fcGFnZUlELCBwcmludGluZ1NlbmRPcHRpb25zKG1faXNQZXJmb3JtaW5nRE9NUHJpbnRP
cGVyYXRpb24pKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSh1
aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZShG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICAvLyBUaGUgRGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvblN5bmMgSVBDIGlzIHN5bmNocm9ub3VzIGFuZCBtYXkgdGhlcmVmb3JlIGdl
dCBwcm9jZXNzZWQgYmVmb3JlIHRoZSBEaWRDcmVhdGVNYWluRnJhbWUgb25lLgogICAgIC8vIFdo
ZW4gdGhpcyBoYXBwZW5zLCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYygpIGNh
bGxzIGRpZENyZWF0ZU1haW5GcmFtZSgpIGFuZCB3ZSBuZWVkIHRvIGlnbm9yZSB0aGUgRGlkQ3Jl
YXRlTWFpbkZyYW1lCkBAIC0zODk3LDcgKzM4OTcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
Q3JlYXRlTWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCiAgICAgbV9wcm9jZXNzLT5mcmFtZUNy
ZWF0ZWQoZnJhbWVJRCwgKm1fbWFpbkZyYW1lKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZENyZWF0ZVN1YmZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
Q3JlYXRlU3ViZnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgUGFnZUNsaWVu
dFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtMzkxNyw3ICszOTE3LDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0ZVN1YmZyYW1lKHVpbnQ2NF90IGZyYW1lSUQp
CiAgICAgbV9wcm9jZXNzLT5mcmFtZUNyZWF0ZWQoZnJhbWVJRCwgc3ViRnJhbWUuZ2V0KCkpOwog
fQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRlV2luZG93KHVpbnQ2NF90IGZyYW1lSUQs
IEdsb2JhbFdpbmRvd0lkZW50aWZpZXImJiB3aW5kb3dJZGVudGlmaWVyKQordm9pZCBXZWJQYWdl
UHJveHk6OmRpZENyZWF0ZVdpbmRvdyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgR2xvYmFsV2lu
ZG93SWRlbnRpZmllciYmIHdpbmRvd0lkZW50aWZpZXIpCiB7CiB9CiAKQEAgLTM5ODEsMTIgKzM5
ODEsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZERlc3Ryb3lOYXZpZ2F0aW9uKHVpbnQ2NF90
IG5hdmlnYXRpb25JRCkKICAgICBtX25hdmlnYXRpb25TdGF0ZS0+ZGlkRGVzdHJveU5hdmlnYXRp
b24obmF2aWdhdGlvbklEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBVUkwmJiB1cmwsIFVSTCYmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRh
dGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmws
IFVSTCYmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAg
ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigp
LCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUodXJsKSwgV1RGTW92ZSh1bnJlYWNoYWJs
ZVVSTCksIHVzZXJEYXRhKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCB1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCwgVVJMJiYg
dW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgVVJMJiYgdXJsLCBVUkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEm
IHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGll
bnQoKSk7CiAKQEAgLTQwMDUsOCArNDAwNSw4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRTdGFy
dFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYKICAg
ICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkgJiYgbmF2aWdhdGlvbklEKQogICAgICAgICBuYXZp
Z2F0aW9uID0gbmF2aWdhdGlvblN0YXRlKCkubmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQpOwogCi0g
ICAgTE9HKExvYWRpbmcsICJXZWJQYWdlUHJveHkgJSIgUFJJdTY0ICIgaW4gcHJvY2VzcyBwaWQg
JWkgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSB0byBmcmFtZUlEICUiIFBSSXU2NCAi
LCBuYXZpZ2F0aW9uSUQgJSIgUFJJdTY0ICIsIHVybCAlcyIsIG1fcGFnZUlELnRvVUludDY0KCks
IHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgdXJs
LnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9h
ZGluZywgImRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgcHJvY2Vzcy0+cHJvY2Vzc0lk
ZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgTE9HKExvYWRp
bmcsICJXZWJQYWdlUHJveHkgJSIgUFJJdTY0ICIgaW4gcHJvY2VzcyBwaWQgJWkgZGlkU3RhcnRQ
cm92aXNpb25hbExvYWRGb3JGcmFtZSB0byBmcmFtZUlEICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9u
SUQgJSIgUFJJdTY0ICIsIHVybCAlcyIsIG1fcGFnZUlELnRvVUludDY0KCksIHByb2Nlc3MtPnBy
b2Nlc3NJZGVudGlmaWVyKCksIGZyYW1lSUQudG9VSW50NjQoKSwgbmF2aWdhdGlvbklELCB1cmwu
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2Fk
aW5nLCAiZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBwcm9jZXNzLT5wcm9jZXNzSWRl
bnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCkpOwogCiAg
ICAgYXV0byB0cmFuc2FjdGlvbiA9IG1fcGFnZUxvYWRTdGF0ZS50cmFuc2FjdGlvbigpOwogCkBA
IC00MDMxLDcgKzQwMzEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25h
bExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmCiAgICAgICAgIG1fbmF2
aWdhdGlvbkNsaWVudC0+ZGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb24oKnRoaXMsIG5hdmln
YXRpb24uZ2V0KCksIHByb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEu
b2JqZWN0KCkpLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEV4cGxpY2l0T3Bl
bkZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFVSTCYmIHVybCkKK3ZvaWQgV2ViUGFnZVByb3h5
OjpkaWRFeHBsaWNpdE9wZW5Gb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgVVJMJiYg
dXJsKQogewogICAgIGF1dG8qIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsK
ICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwpAQCAtNDA1MCwxNSArNDA1MCwx
NSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRXhwbGljaXRPcGVuRm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgVVJMJiYgdXJsKQogICAgIG1fcGFnZUxvYWRTdGF0ZS5jb21taXRDaGFuZ2VzKCk7
CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92
aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkK
K3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25h
bExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEp
CiB7CiAgICAgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgbmF2aWdhdGlvbklELCBXVEZN
b3ZlKHJlcXVlc3QpLCB1c2VyRGF0YSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNl
aXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vzcywg
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgUmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewotICAgIExPRyhM
b2FkaW5nLCAiV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNp
b25hbExvYWRGb3JGcmFtZSB0byBmcmFtZUlEICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9uSUQgJSIg
UFJJdTY0ICIsIHVybCAlcyIsIGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgcmVxdWVzdC51cmwoKS5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRp
bmcsICJkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZTog
d2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBw
cm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlE
KTsKKyAgICBMT0coTG9hZGluZywgIldlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGly
ZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUgdG8gZnJhbWVJRCAlIiBQUkl1NjQgIiwgbmF2
aWdhdGlvbklEICUiIFBSSXU2NCAiLCB1cmwgJXMiLCBmcmFtZUlELnRvVUludDY0KCksIG5hdmln
YXRpb25JRCwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQ
cm92aXNpb25hbExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0LCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3Bh
Z2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCkpOwogCiAgICAgUGFnZUNsaWVudFBy
b3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDA4NSw5ICs0MDg1LDkgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lU2hhcmVkKFJlZjwKICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRS
ZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbE5hdmlnYXRpb24oKnRoaXMsIG5hdmln
YXRpb24uZ2V0KCksIHByb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEu
b2JqZWN0KCkpLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OndpbGxQZXJmb3JtQ2xp
ZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHVybCwg
ZG91YmxlIGRlbGF5LCBXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0KQordm9pZCBXZWJQYWdl
UHJveHk6OndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1cmwsIGRvdWJsZSBkZWxheSwgV2ViQ29yZTo6TG9ja0Jh
Y2tGb3J3YXJkTGlzdCkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJ3
aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRp
ZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKExvYWRpbmcsICJ3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWU6IHdl
YlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9w
cm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlE
LnRvVUludDY0KCkpOwogCiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNs
aWVudCgpKTsKIApAQCAtNDA5OCw5ICs0MDk4LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OndpbGxQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHIK
ICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT53aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KCp0
aGlzLCB1cmwsIGRlbGF5KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZENhbmNlbENsaWVu
dFJlZGlyZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQog
ewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZENhbmNlbENsaWVudFJl
ZGlyZWN0Rm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50
b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcs
ICJkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50
aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAg
IFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQxMTEs
MTIgKzQxMTEsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENhbmNlbENsaWVudFJlZGlyZWN0
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCkKICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5k
aWRDYW5jZWxDbGllbnRSZWRpcmVjdCgqdGhpcyk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgVVJMJiYgdXJsKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZVBy
b3Zpc2lvbmFsVVJMRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgVVJMJiYgdXJsKQogewogICAgIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9y
RnJhbWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgbmF2aWdhdGlvbklELCBX
VEZNb3ZlKHVybCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9u
YWxVUkxGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2
NF90IGZyYW1lSUQsIHVpbnQ2NF90LCBVUkwmJiB1cmwpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
Q2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
IHByb2Nlc3MsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCwgVVJMJiYgdXJsKQog
ewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAg
LTQxMzUsNyArNDEzNSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92aXNpb25h
bFVSTEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYKICAgICBmcmFtZS0+ZGlk
UmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKHVybCk7CiB9CiAKLXZvaWQg
V2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFJl
c291cmNlRXJyb3ImIGVycm9yLCBXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250aW51ZUxvYWRp
bmcsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWls
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNl
Y3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBSZXNvdXJjZUVycm9yJiBl
cnJvciwgV2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2Vy
RGF0YSYgdXNlckRhdGEpCiB7CiAgICAgaWYgKG1fcHJvdmlzaW9uYWxQYWdlICYmIG1fcHJvdmlz
aW9uYWxQYWdlLT5uYXZpZ2F0aW9uSUQoKSA9PSBuYXZpZ2F0aW9uSUQpIHsKICAgICAgICAgLy8g
VGhlIGxvYWQgZGlkIG5vdCBmYWlsLCBpdCBpcyBtZXJlbHkgaGFwcGVuaW5nIGluIGEgbmV3IHBy
b3Zpc2lvbmFsIHByb2Nlc3MuCkBAIC00MTQ1LDEwICs0MTQ1LDEwIEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgU2VjdXJpCiAgICAgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJv
Y2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIG5hdmlnYXRpb25J
RCwgcHJvdmlzaW9uYWxVUkwsIGVycm9yLCB3aWxsQ29udGludWVMb2FkaW5nLCB1c2VyRGF0YSk7
CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVT
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCB1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgUmVzb3VyY2VF
cnJvciYgZXJyb3IsIFdpbGxDb250aW51ZUxvYWRpbmcgd2lsbENvbnRpbnVlTG9hZGluZywgY29u
c3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNp
b25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNp
b25hbFVSTCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFdpbGxDb250aW51ZUxvYWRpbmcg
d2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIExP
RyhMb2FkaW5nLCAiKExvYWRpbmcpIFdlYlBhZ2VQcm94eSAlIiBQUkl1NjQgIiBpbiB3ZWIgcHJv
Y2VzcyBwaWQgJWkgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lIHRvIHByb3Zpc2lvbmFs
VVJMICVzIiwgbV9wYWdlSUQudG9VSW50NjQoKSwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIo
KSwgcHJvdmlzaW9uYWxVUkwudXRmOCgpLmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRChQcm9jZXNzLCAiZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAl
aSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgZG9tYWluID0g
JXMsIGNvZGUgPSAlZCIsIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRv
VUludDY0KCksIGZyYW1lSUQsIGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCksIGVycm9yLmVy
cm9yQ29kZSgpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3MsICJkaWRGYWls
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBkb21haW4gPSAlcywgY29kZSA9ICVkIiwgcHJvY2Vz
cy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJ
bnQ2NCgpLCBlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJvci5lcnJvckNvZGUoKSk7
CiAKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBA
IC00MjI0LDExICs0MjI0LDExIEBAIHN0YXRpYyBPcHRpb25TZXQ8Q3Jvc3NTaXRlTmF2aWdhdGlv
bkRhdGFUcmFuc2Zlcjo6RmxhZz4gY2hlY2tJZk5hdmlnYXRpb25Db250YWluCiB9CiAjZW5kaWYK
IAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wg
ZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IG9wYXF1ZUZyYW1lTG9hZFR5
cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBib29s
IGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPEhhc0luc2VjdXJlQ29udGVudD4gaGFz
SW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXND
dXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IG9wYXF1ZUZyYW1lTG9hZFR5cGUsIGNvbnN0
IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBib29sIGNvbnRhaW5z
UGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPEhhc0luc2VjdXJlQ29udGVudD4gaGFzSW5zZWN1cmVD
b250ZW50LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgTE9HKExvYWRpbmcsICIo
TG9hZGluZykgV2ViUGFnZVByb3h5ICUiIFBSSXU2NCAiIGRpZENvbW1pdExvYWRGb3JGcmFtZSBp
biBuYXZpZ2F0aW9uICUiIFBSSXU2NCwgbV9wYWdlSUQudG9VSW50NjQoKSwgbmF2aWdhdGlvbklE
KTsKICAgICBMT0coQmFja0ZvcndhcmQsICIoQmFjay9Gb3J3YXJkKSBBZnRlciBsb2FkIGNvbW1p
dCwgYmFjay9mb3J3YXJkIGxpc3QgaXMgbm93OiVzIiwgbV9iYWNrRm9yd2FyZExpc3QtPmxvZ2dp
bmdTdHJpbmcoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkQ29t
bWl0TG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQu
dG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5n
LCAiZGlkQ29tbWl0TG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwg
bV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAgIFBhZ2VDbGll
bnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQzMzgsOSArNDMzOCw5
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklECiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdl
UHJveHk6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsK
LSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRGaW5pc2hEb2N1bWVudExv
YWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUlu
dDY0KCksIGZyYW1lSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRp
ZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIo
KSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAgIFBhZ2VD
bGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQzNjEsMTAgKzQz
NjEsMTAgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmkKICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xp
ZW50LT5kaWRGaW5pc2hEb2N1bWVudExvYWQoKnRoaXMsIG5hdmlnYXRpb24uZ2V0KCksIG1fcHJv
Y2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkp
OwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRh
KQordm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRh
dGEpCiB7CiAgICAgTE9HKExvYWRpbmcsICJXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRGb3JG
cmFtZSAtIFdlYlBhZ2VQcm94eSAlcCB3aXRoIG5hdmlnYXRpb25JRCAlIiBQUkl1NjQgIiBkaWRG
aW5pc2hMb2FkIiwgdGhpcywgbmF2aWdhdGlvbklEKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKExvYWRpbmcsICJkaWRGaW5pc2hMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRl
bnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRGaW5pc2hMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVp
LCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5w
cm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0
KCkpOwogCiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsK
IApAQCAtNDQwNyw5ICs0NDA3LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQKICAgICBtX2lz
TG9hZGluZ0FsdGVybmF0ZUhUTUxTdHJpbmdGb3JGYWlsaW5nUHJvdmlzaW9uYWxMb2FkID0gZmFs
c2U7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJy
b3IsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWls
TG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEp
CiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkRmFpbExvYWRGb3JG
cmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIsIGRvbWFpbiA9ICVzLCBjb2RlID0gJWQiLCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlm
aWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQsIGVycm9yLmRvbWFpbigpLnV0Zjgo
KS5kYXRhKCksIGVycm9yLmVycm9yQ29kZSgpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KExvYWRpbmcsICJkaWRGYWlsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgZG9tYWluID0gJXMsIGNvZGUgPSAlZCIs
IG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJh
bWVJRC50b1VJbnQ2NCgpLCBlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJvci5lcnJv
ckNvZGUoKSk7CiAKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50
KCkpOwogCkBAIC00NDQ5LDkgKzQ0NDksOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbExv
YWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsCiAgICAg
fQogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMyX3Qgb3Bh
cXVlU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUsIFVSTCYmIHVybCwgY29uc3QgVXNlckRhdGEm
IHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25G
b3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCB1
aW50MzJfdCBvcGFxdWVTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgVVJMJiYgdXJsLCBjb25z
dCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2Fk
aW5nLCAiZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vz
c0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZy
YW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwg
ZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9y
KHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQ0ODgsNyArNDQ4OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWlu
dDY0X3QKICAgICAgICAgcGFnZUNsaWVudCgpLmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JN
YWluRnJhbWUobmF2aWdhdGlvblR5cGUpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hh
bmdlTWFpbkRvY3VtZW50KHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
Q2hhbmdlTWFpbkRvY3VtZW50KEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCiAgICAgaWYgKG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyKQpAQCAtNDUwNyw3ICs0NTA3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnZpZXdJc0JlY29t
aW5nVmlzaWJsZSgpCiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVU
aXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0
IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlVGl0bGVG
b3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29u
c3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVj
dG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQ1MjksMTEgKzQ1MjksMTEgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0
cmluZyYgdGl0bGUKICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmlyc3RMYXlv
dXRGb3JGcmFtZSh1aW50NjRfdCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQ
YWdlUHJveHk6OmRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyLCBjb25zdCBV
c2VyRGF0YSYgdXNlckRhdGEpCiB7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdFZp
c3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVc2Vy
RGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmlyc3RWaXN1YWxseU5vbkVt
cHR5TGF5b3V0Rm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRh
JiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xp
ZW50KCkpOwogCkBAIC00NTY0LDcgKzQ1NjQsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVh
Y2hMYXlvdXRNaWxlc3RvbmUoT3B0aW9uU2V0PFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZT4gbAog
ICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+cmVuZGVyaW5nUHJvZ3Jlc3NEaWRDaGFuZ2UoKnRoaXMs
IGxheW91dE1pbGVzdG9uZXMpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGlzcGxheUlu
c2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJiB1
c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9y
RnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkK
IHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBA
IC00NTc4LDcgKzQ1NzgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGlzcGxheUluc2VjdXJl
Q29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZQogICAgIG1fbmF2aWdh
dGlvbkNsaWVudC0+ZGlkRGlzcGxheUluc2VjdXJlQ29udGVudCgqdGhpcywgbV9wcm9jZXNzLT50
cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9iamVjdCgpKS5nZXQoKSk7CiB9CiAK
LXZvaWQgV2ViUGFnZVByb3h5OjpkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3Rl
Y3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00NTkyLDcgKzQ1OTIsNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgVXNlckRhdAogICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkUnVuSW5zZWN1cmVDb250ZW50
KCp0aGlzLCBtX3Byb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2Jq
ZWN0KCkpLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZERldGVjdFhTU0ZvckZy
YW1lKHVpbnQ2NF90LCBjb25zdCBVc2VyRGF0YSYpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGV0
ZWN0WFNTRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyLCBjb25zdCBVc2VyRGF0YSYpCiB7CiB9CiAK
QEAgLTQ2MDEsNyArNDYwMSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjptYWluRnJhbWVQbHVnaW5I
YW5kbGVzUGFnZVNjYWxlR2VzdHVyZURpZENoYW5nZShib29sIG1haW5GcmFtCiAgICAgbV9tYWlu
RnJhbWVQbHVnaW5IYW5kbGVzUGFnZVNjYWxlR2VzdHVyZSA9IG1haW5GcmFtZVBsdWdpbkhhbmRs
ZXNQYWdlU2NhbGVHZXN0dXJlOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZnJhbWVEaWRCZWNv
bWVGcmFtZVNldCh1aW50NjRfdCBmcmFtZUlELCBib29sIHZhbHVlKQordm9pZCBXZWJQYWdlUHJv
eHk6OmZyYW1lRGlkQmVjb21lRnJhbWVTZXQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wg
dmFsdWUpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgp
KTsKIApAQCAtNDYyMCw3ICs0NjIwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmJlZ2luU2FmZUJy
b3dzaW5nQ2hlY2soY29uc3QgVVJMJiwgYm9vbCwgV2ViRnJhbWVQb2xpY3lMaXN0ZW4KIH0KICNl
bmRpZgogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bkFzeW5jKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZy
YW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbkFzeW5jKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZp
ZXIgaWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELAogICAgIE5hdmlnYXRpb25BY3Rp
b25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9E
YXRhLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LAogICAgIElQQzo6Rm9ybURhdGFSZWZlcmVuY2Um
JiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9u
c2UsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKIHsKQEAg
LTQ2MjgsNyArNDYyOCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uQXN5bmModWludDY0X3QgZnJhbWVJRCwgV2ViQ29yCiAgICAgICAgIFdURk1v
dmUoZnJhbWVJbmZvRGF0YSksIG9yaWdpbmF0aW5nUGFnZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdU
Rk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVxdWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVz
cG9uc2UpLCB1c2VyRGF0YSwgbGlzdGVuZXJJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiBwcm9jZXNzLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLAordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
IHByb2Nlc3MsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLAogICAgIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rp
b25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9E
YXRhLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQs
CiAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2Um
JiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9u
c2UsCiAgICAgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQpA
QCAtNDc2OSw3ICs0NzY5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXMKICAgICAgICAgYmVn
aW5TYWZlQnJvd3NpbmdDaGVjayhyZXF1ZXN0LnVybCgpLCBmcmFtZS5pc01haW5GcmFtZSgpLCBs
aXN0ZW5lcik7CiAKICAgICBBUEk6Ok5hdmlnYXRpb24qIG1haW5GcmFtZU5hdmlnYXRpb24gPSBm
cmFtZS5pc01haW5GcmFtZSgpID8gbmF2aWdhdGlvbi5nZXQoKSA6IG51bGxwdHI7Ci0gICAgV2Vi
RnJhbWVQcm94eSogb3JpZ2luYXRpbmdGcmFtZSA9IHByb2Nlc3MtPndlYkZyYW1lKG9yaWdpbmF0
aW5nRnJhbWVJbmZvRGF0YS5mcmFtZUlEKTsKKyAgICBXZWJGcmFtZVByb3h5KiBvcmlnaW5hdGlu
Z0ZyYW1lID0gb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLmZyYW1lSUQgPyBwcm9jZXNzLT53ZWJG
cmFtZSgqb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLmZyYW1lSUQpIDogbnVsbHB0cjsKIAogI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgaWYgKGF1dG8qIHJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZSA9IHdlYnNpdGVEYXRhU3RvcmUoKS5yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzKCkpCkBAIC00ODU4LDcgKzQ4NTgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9nRnJh
bWVOYXZpZ2F0aW9uKGNvbnN0IFdlYkZyYW1lUHJveHkmIGZyYW1lLCBjb25zdCBVUkwmIHBhZwog
fQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uU3luYyh1aW50NjRfdCBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50
aWZpZXIgaWRlbnRpZmllciwKK3ZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uU3luYyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFt
ZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9s
aWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9E
YXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5n
UGFnZUlELAogICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1
ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVm
ZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVj
dFJlc3BvbnNlLAogICAgIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBs
eSYmIHJlcGx5KQpAQCAtNDg3Niw3ICs0ODc2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXMK
ICAgICAgICAgV1RGTW92ZShmcmFtZUluZm9EYXRhKSwgb3JpZ2luYXRpbmdQYWdlSUQsIG9yaWdp
bmFsUmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZXF1ZXN0Qm9keSksIFdURk1v
dmUocmVkaXJlY3RSZXNwb25zZSksIHVzZXJEYXRhLCBXVEZNb3ZlKHJlcGx5KSk7CiB9CiAKLXZv
aWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJl
ZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wg
aXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlP
cmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAordm9pZCBXZWJQYWdlUHJv
eHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wgaXNNYWlu
RnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4s
IFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAogICAgIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJ
bmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBvcmlnaW5h
dGluZ1BhZ2VJRCwKICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFs
UmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgSVBDOjpGb3JtRGF0
YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVk
aXJlY3RSZXNwb25zZSwKICAgICBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVk
UmVwbHkmJiByZXBseSkKQEAgLTQ4OTMsNyArNDg5Myw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1By
b3h5CiAgICAgc2VuZGVyLT5zZW5kKFBvbGljeUFjdGlvbjo6VXNlLCBuYXZpZ2F0aW9uSUQsIERv
d25sb2FkSUQoKSwgV1RGOjpudWxsb3B0KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lk
ZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0
eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBp
ZGVudGlmaWVyLAordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0Fj
dGlvbihGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBm
cmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKICAg
ICBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBSZXNvdXJjZVJl
cXVlc3QmJiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVu
ZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0
b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CkBAIC00OTMxLDEzICs0OTMxLDEzIEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24odWludDY0X3QgZnJh
bWVJRCwgY29uc3QgU2VjdXJpCiAgICAgICAgIAogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmln
aW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRp
ZmllciwKK3ZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5
T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKICAgICB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcm
IGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYg
dXNlckRhdGEpCiB7CiAgICAgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQobV9wcm9jZXNz
LmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0eU9yaWdpbiwgaWRlbnRpZmllciwgbmF2
aWdhdGlvbklELCByZXNwb25zZSwgcmVxdWVzdCwgY2FuU2hvd01JTUVUeXBlLCBkb3dubG9hZEF0
dHJpYnV0ZSwgbGlzdGVuZXJJRCwgdXNlckRhdGEpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6
ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9j
ZXNzLCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAordm9pZCBXZWJQ
YWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3Jp
Z2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50
aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dN
SU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVu
ZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0
b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CkBAIC00OTcxLDcgKzQ5NzEsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiBwcm9jZXNzLAogICAgIH0KIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnVuYWJsZVRv
SW1wbGVtZW50UG9saWN5KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVy
cm9yLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6dW5hYmxl
VG9JbXBsZW1lbnRQb2xpY3koRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFJlc291cmNl
RXJyb3ImIGVycm9yLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgUGFnZUNsaWVu
dFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDk4NSw3ICs0OTg1LDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OnVuYWJsZVRvSW1wbGVtZW50UG9saWN5KHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFJlc291cmNlRXJyb3IKIAogLy8gRm9ybUNsaWVudAogCi12b2lkIFdlYlBh
Z2VQcm94eTo6d2lsbFN1Ym1pdEZvcm0odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qgc291cmNl
RnJhbWVJRCwgY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+JiB0ZXh0Rmll
bGRWYWx1ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkK
K3ZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0Rm9ybShGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgRnJhbWVJZGVudGlmaWVyIHNvdXJjZUZyYW1lSUQsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8
U3RyaW5nLCBTdHJpbmc+PiYgdGV4dEZpZWxkVmFsdWVzLCB1aW50NjRfdCBsaXN0ZW5lcklELCBj
b25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBt
X3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNz
LCBmcmFtZSk7CkBAIC01MDAzLDEyICs1MDAzLDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb250
ZW50UnVsZUxpc3ROb3RpZmljYXRpb24oVVJMJiYgdXJsLCBDb250ZW50UnVsZUxpc3RSZXN1bHRz
CiAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5jb250ZW50UnVsZUxpc3ROb3RpZmljYXRpb24oKnRo
aXMsIFdURk1vdmUodXJsKSwgV1RGTW92ZShyZXN1bHRzKSk7CiB9CiAgICAgCi12b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdhdGlv
bkRhdGFTdG9yZSYgc3RvcmUsIHVpbnQ2NF90IGZyYW1lSUQpIAordm9pZCBXZWJQYWdlUHJveHk6
OmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3Rv
cmUmIHN0b3JlLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBkaWROYXZpZ2F0ZVdp
dGhOYXZpZ2F0aW9uRGF0YVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBzdG9yZSwgZnJhbWVJ
RCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0
YVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIGNvbnN0IFdlYk5hdmlnYXRp
b25EYXRhU3RvcmUmIHN0b3JlLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6
OmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYgcHJvY2VzcywgY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYgc3RvcmUsIEZyYW1lSWRl
bnRpZmllciBmcmFtZUlEKQogewogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywg
ImRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkOiB3ZWJQSUQgPSAlaSwgcGFnZUlE
ID0gJSIgUFJJdTY0LCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJ
bnQ2NCgpKTsKIApAQCAtNTAyMywxNCArNTAyMywxNCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
TmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBw
cgogICAgIHByb2Nlc3MtPnByb2Nlc3NQb29sKCkuaGlzdG9yeUNsaWVudCgpLmRpZE5hdmlnYXRl
V2l0aE5hdmlnYXRpb25EYXRhKHByb2Nlc3MtPnByb2Nlc3NQb29sKCksICp0aGlzLCBzdG9yZSwg
KmZyYW1lKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVj
dChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlv
blVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJm
b3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0
cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewog
ICAgIGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBz
b3VyY2VVUkxTdHJpbmcsIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBmcmFtZUlEKTsKIH0KIAotdm9p
ZCBXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJv
Y2Vzc1Byb3h5PiYmIHByb2Nlc3MsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25z
dCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBX
ZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmIHByb2Nlc3MsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBT
dHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsK
LSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRQZXJmb3JtQ2xpZW50UmVk
aXJlY3RTaGFyZWQ6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9
ICUiIFBSSXU2NCwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50
NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlk
UGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCks
IG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAKICAgICBQYWdlQ2xp
ZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC01MDUwLDEyICs1MDUw
LDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQo
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzCiAgICAgcHJvY2Vzcy0+cHJvY2Vzc1Bvb2wo
KS5oaXN0b3J5Q2xpZW50KCkuZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KHByb2Nlc3MtPnByb2Nl
c3NQb29sKCksICp0aGlzLCBzb3VyY2VVUkxTdHJpbmcsIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCAq
ZnJhbWUpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0
KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9u
VVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFBlcmZv
cm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3Ry
aW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAg
ICAgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0U2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIHNv
dXJjZVVSTFN0cmluZywgZGVzdGluYXRpb25VUkxTdHJpbmcsIGZyYW1lSUQpOwogfQogCi12b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYgcHJvY2VzcywgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0
IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYgcHJvY2VzcywgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0
cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewog
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZFBlcmZvcm1TZXJ2ZXJSZWRp
cmVjdDogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCwgcHJvY2Vzcy0+cHJvY2Vzc0lk
ZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSk7CiAKQEAgLTUwNzYsNyArNTA3Niw3IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzCiAgICAgcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5oaXN0
b3J5Q2xpZW50KCkuZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KHByb2Nlc3MtPnByb2Nlc3NQb29s
KCksICp0aGlzLCBzb3VyY2VVUkxTdHJpbmcsIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCAqZnJhbWUp
OwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkVXBkYXRlSGlzdG9yeVRpdGxlKGNvbnN0IFN0
cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgdXJsLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBX
ZWJQYWdlUHJveHk6OmRpZFVwZGF0ZUhpc3RvcnlUaXRsZShjb25zdCBTdHJpbmcmIHRpdGxlLCBj
b25zdCBTdHJpbmcmIHVybCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgUGFnZUNs
aWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNTEwNyw4ICs1MTA3
LDEwIEBAIHN0YXRpYyB2b2lkIHRyeVNPQXV0aG9yaXphdGlvbihSZWY8QVBJOjpOYXZpZ2F0aW9u
QWN0aW9uPiYmIG5hdmlnYXRpb25BY3Rpb24sIFdlCiAKIHZvaWQgV2ViUGFnZVByb3h5OjpjcmVh
dGVOZXdQYWdlKGNvbnN0IEZyYW1lSW5mb0RhdGEmIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBSZXNvdXJjZVJlcXVl
c3QmJiByZXF1ZXN0LCBXaW5kb3dGZWF0dXJlcyYmIHdpbmRvd0ZlYXR1cmVzLCBOYXZpZ2F0aW9u
QWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpDcmVhdGVOZXdQYWdlOjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsKLSAgICBNRVNTQUdFX0NI
RUNLKG1fcHJvY2VzcywgbV9wcm9jZXNzLT53ZWJGcmFtZShvcmlnaW5hdGluZ0ZyYW1lSW5mb0Rh
dGEuZnJhbWVJRCkpOwotICAgIGF1dG8gb3JpZ2luYXRpbmdGcmFtZUluZm8gPSBBUEk6OkZyYW1l
SW5mbzo6Y3JlYXRlKG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgb3JpZ2luYXRpbmdQYWdlSUQg
PyBtX3Byb2Nlc3MtPndlYlBhZ2UoKm9yaWdpbmF0aW5nUGFnZUlEKSA6IG51bGxwdHIpOworICAg
IE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEuZnJhbWVJ
RCk7CisgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIG1fcHJvY2Vzcy0+d2ViRnJhbWUoKm9y
aWdpbmF0aW5nRnJhbWVJbmZvRGF0YS5mcmFtZUlEKSk7CisKKyAgICBhdXRvIG9yaWdpbmF0aW5n
RnJhbWVJbmZvID0gQVBJOjpGcmFtZUluZm86OmNyZWF0ZShvcmlnaW5hdGluZ0ZyYW1lSW5mb0Rh
dGEsIG1fcHJvY2Vzcy0+d2ViUGFnZSgqb3JpZ2luYXRpbmdQYWdlSUQpKTsKICAgICBhdXRvIG1h
aW5GcmFtZVVSTCA9IG1fbWFpbkZyYW1lID8gbV9tYWluRnJhbWUtPnVybCgpIDogVVJMKCk7CiAg
ICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyksIG1haW5GcmFtZVVSTCwgcmVxdWVzdCwgcmVwbHkgPSBXVEZNb3ZlKHJlcGx5KV0g
KFJlZlB0cjxXZWJQYWdlUHJveHk+IG5ld1BhZ2UpIG11dGFibGUgewogICAgICAgICBpZiAoIW5l
d1BhZ2UpIHsKQEAgLTUxNzgsNyArNTE4MCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjbG9zZVBh
Z2UoYm9vbCBzdG9wUmVzcG9uc2l2ZW5lc3NUaW1lcikKICAgICBtX3VpQ2xpZW50LT5jbG9zZSh0
aGlzKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRBbGVydCh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRB
bGVydDo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit2b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNj
cmlwdEFsZXJ0KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRh
dGEmIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydDo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7CiAg
ICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwog
ICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBmcmFtZSk7CkBAIC01MTk3LDcgKzUxOTksNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEFsZXJ0KHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YQogICAgIG1fdWlDbGllbnQtPnJ1bkphdmFTY3JpcHRB
bGVydCh0aGlzLCBtZXNzYWdlLCBmcmFtZSwgc2VjdXJpdHlPcmlnaW4sIFdURk1vdmUocmVwbHkp
KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRDb25maXJtKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENv
bmZpcm06OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQordm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFT
Y3JpcHRDb25maXJtKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdp
bkRhdGEmIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRDb25maXJtOjpEZWxheWVkUmVwbHkmJiByZXBseSkK
IHsKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJ
RCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKQEAgLTUyMTcsNyArNTIx
OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0Q29uZmlybSh1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhCiAgICAgbV91aUNsaWVudC0+cnVuSmF2YVNj
cmlwdENvbmZpcm0odGhpcywgbWVzc2FnZSwgZnJhbWUsIHNlY3VyaXR5T3JpZ2luLCBXVEZNb3Zl
KHJlcGx5KSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0UHJvbXB0KHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4s
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OkRlbGF5ZWRSZXBseSYmIHJl
cGx5KQordm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4sIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OkRlbGF5ZWRSZXBseSYmIHJlcGx5
KQogewogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFt
ZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwpAQCAtNTM3Niw3ICs1
Mzc4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJvb3RWaWV3VG9BY2Nlc3NpYmlsaXR5U2NyZWVu
KGNvbnN0IEludFJlY3QmIHZpZXdSZWN0LCBDb21wbGUKICAgICBjb21wbGV0aW9uSGFuZGxlcihw
YWdlQ2xpZW50KCkucm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3JlZW4odmlld1JlY3QpKTsKIH0K
IAotdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbDo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit2b2lkIFdlYlBhZ2VQcm94eTo6
cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25z
dCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDo6
RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7CiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3By
b2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBm
cmFtZSk7CkBAIC01NDE2LDcgKzU0MTgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cGFnZURpZFNj
cm9sbCgpCiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJ1bk9wZW5QYW5lbCh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmln
aW4sIGNvbnN0IEZpbGVDaG9vc2VyU2V0dGluZ3MmIHNldHRpbmdzKQordm9pZCBXZWJQYWdlUHJv
eHk6OnJ1bk9wZW5QYW5lbChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlP
cmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBjb25zdCBGaWxlQ2hvb3NlclNldHRpbmdz
JiBzZXR0aW5ncykKIHsKICAgICBpZiAobV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lcikgewogICAg
ICAgICBtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyLT5pbnZhbGlkYXRlKCk7CkBAIC01NDU1LDcg
KzU0NTcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd1NoYXJlU2hlZXQoY29uc3QgU2hhcmVE
YXRhV2l0aFBhcnNlZFVSTCYgc2hhcmVEYXRhLCBTaGFyZQogICAgIHBhZ2VDbGllbnQoKS5zaG93
U2hhcmVTaGVldChzaGFyZURhdGEsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KICAg
ICAKLXZvaWQgV2ViUGFnZVByb3h5OjpwcmludEZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpwcmludEZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFtX2lzUGVyZm9y
bWluZ0RPTVByaW50T3BlcmF0aW9uKTsKICAgICBtX2lzUGVyZm9ybWluZ0RPTVByaW50T3BlcmF0
aW9uID0gdHJ1ZTsKQEAgLTY3NjksMjcgKzY3NzEsMjcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnBy
aW50RmluaXNoZWRDYWxsYmFjayhjb25zdCBSZXNvdXJjZUVycm9yJiBwcmludEVycm9yLCBDYWxs
YmEKIH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2VQcm94eTo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCh1
aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmZvY3VzZWRGcmFtZUNoYW5nZWQo
Y29uc3QgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiYgZnJhbWVJRCkKIHsKICAgICBpZiAoIWZy
YW1lSUQpIHsKICAgICAgICAgbV9mb2N1c2VkRnJhbWUgPSBudWxscHRyOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZy
YW1lKGZyYW1lSUQpOworICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJG
cmFtZSgqZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKIAog
ICAgIG1fZm9jdXNlZEZyYW1lID0gZnJhbWU7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpmcmFt
ZVNldExhcmdlc3RGcmFtZUNoYW5nZWQodWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpmcmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQoY29uc3QgT3B0aW9uYWw8RnJhbWVJZGVu
dGlmaWVyPiYgZnJhbWVJRCkKIHsKICAgICBpZiAoIWZyYW1lSUQpIHsKICAgICAgICAgbV9mcmFt
ZVNldExhcmdlc3RGcmFtZSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7Cisg
ICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKCpmcmFtZUlEKTsK
ICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwogCiAgICAgbV9mcmFtZVNldExh
cmdlc3RGcmFtZSA9IGZyYW1lOwpAQCAtNzM0NSwyNiArNzM0NywyNiBAQCBXZWFrUHRyPFNlY0tl
eVByb3h5U3RvcmU+IFdlYlBhZ2VQcm94eTo6c2VjS2V5UHJveHlTdG9yZShjb25zdCBXZWJDb3Jl
OjpBdXRoZW50aQogICAgIHJldHVybiBudWxscHRyOwogfQogICAgIAotdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5KHVpbnQ2NF90LCBSZWY8
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkK
K3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94
eShGcmFtZUlkZW50aWZpZXIsIFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmIGF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKQogewogICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkUmVj
ZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCp0aGlzLCBhdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpleGNlZWRlZERhdGFiYXNlUXVvdGEo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3Qg
Y3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJl
bnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpFeGNlZWRlZERhdGFiYXNlUXVvdGE6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQordm9p
ZCBXZWJQYWdlUHJveHk6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFi
YXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3Rh
LCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVz
YWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFeGNl
ZWRlZERhdGFiYXNlUXVvdGE6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQogewogICAgIHJlcXVlc3RT
dG9yYWdlU3BhY2UoZnJhbWVJRCwgb3JpZ2luSWRlbnRpZmllciwgZGF0YWJhc2VOYW1lLCBkaXNw
bGF5TmFtZSwgY3VycmVudFF1b3RhLCBjdXJyZW50T3JpZ2luVXNhZ2UsIGN1cnJlbnREYXRhYmFz
ZVVzYWdlLCBleHBlY3RlZFVzYWdlLCBbcmVwbHkgPSBXVEZNb3ZlKHJlcGx5KV0oYXV0byBxdW90
YSkgbXV0YWJsZSB7CiAgICAgICAgIHJlcGx5KHF1b3RhKTsKICAgICB9KTsKIH0KIAotdm9pZCBX
ZWJQYWdlUHJveHk6OnJlcXVlc3RTdG9yYWdlU3BhY2UodWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
U3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29u
c3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBj
dXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRf
dCBleHBlY3RlZFVzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0U3RvcmFnZVNwYWNlKEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50
NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3Qg
Y3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQodWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoU3RvcmFnZSwgInJlcXVlc3RTdG9yYWdlU3BhY2UgZm9yIGZyYW1l
ICUiIFBSSXU2NCAiLCBjdXJyZW50IHF1b3RhICUiIFBSSXU2NCAiIGN1cnJlbnQgdXNhZ2UgJSIg
UFJJdTY0ICIgZXhwZWN0ZWQgdXNhZ2UgJSIgUFJJdTY0LCBmcmFtZUlELCBjdXJyZW50UXVvdGEs
IGN1cnJlbnREYXRhYmFzZVVzYWdlLCBleHBlY3RlZFVzYWdlKTsKKyAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKFN0b3JhZ2UsICJyZXF1ZXN0U3RvcmFnZVNwYWNlIGZvciBmcmFtZSAlIiBQUkl1
NjQgIiwgY3VycmVudCBxdW90YSAlIiBQUkl1NjQgIiBjdXJyZW50IHVzYWdlICUiIFBSSXU2NCAi
IGV4cGVjdGVkIHVzYWdlICUiIFBSSXU2NCwgZnJhbWVJRC50b1VJbnQ2NCgpLCBjdXJyZW50UXVv
dGEsIGN1cnJlbnREYXRhYmFzZVVzYWdlLCBleHBlY3RlZFVzYWdlKTsKIAogICAgIFN0b3JhZ2VS
ZXF1ZXN0czo6c2luZ2xldG9uKCkucHJvY2Vzc09yQXBwZW5kKFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyksIHBhZ2VVUkwgPSBjdXJyZW50VVJMKCksIGZyYW1lSUQsIG9yaWdp
bklkZW50aWZpZXIsIGRhdGFiYXNlTmFtZSwgZGlzcGxheU5hbWUsIGN1cnJlbnRRdW90YSwgY3Vy
cmVudE9yaWdpblVzYWdlLCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgZXhwZWN0ZWRVc2FnZSwgY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsK
ICAgICAgICAgdGhpcy0+bWFrZVN0b3JhZ2VTcGFjZVJlcXVlc3QoZnJhbWVJRCwgb3JpZ2luSWRl
bnRpZmllciwgZGF0YWJhc2VOYW1lLCBkaXNwbGF5TmFtZSwgY3VycmVudFF1b3RhLCBjdXJyZW50
T3JpZ2luVXNhZ2UsIGN1cnJlbnREYXRhYmFzZVVzYWdlLCBleHBlY3RlZFVzYWdlLCBbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGZyYW1lSUQsIHBhZ2VVUkwg
PSBXVEZNb3ZlKHBhZ2VVUkwpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpLCBjdXJyZW50UXVvdGFdKGF1dG8gcXVvdGEpIG11dGFibGUgewogCi0gICAgICAg
ICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFN0b3JhZ2UsICJyZXF1ZXN0U3RvcmFnZVNwYWNl
IHJlc3BvbnNlIGZvciBmcmFtZSAlIiBQUkl1NjQgIiwgcXVvdGEgJSIgUFJJdTY0LCBmcmFtZUlE
LCBxdW90YSk7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFN0b3JhZ2UsICJy
ZXF1ZXN0U3RvcmFnZVNwYWNlIHJlc3BvbnNlIGZvciBmcmFtZSAlIiBQUkl1NjQgIiwgcXVvdGEg
JSIgUFJJdTY0LCBmcmFtZUlELnRvVUludDY0KCksIHF1b3RhKTsKIAogICAgICAgICAgICAgaWYg
KHF1b3RhIDw9IGN1cnJlbnRRdW90YSAmJiB0aGlzLT5jdXJyZW50VVJMKCkgPT0gcGFnZVVSTCkg
ewogICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoU3RvcmFnZSwgInN0b3Jh
Z2Ugc3BhY2UgaW5jcmVhc2UgZGVuaWVkIik7CkBAIC03Mzc2LDcgKzczNzgsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6cmVxdWVzdFN0b3JhZ2VTcGFjZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBT
dHJpbmcmIG9yaWdpbklkZQogICAgIH0pOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6bWFrZVN0
b3JhZ2VTcGFjZVJlcXVlc3QodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5J
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNw
bGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNh
Z2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdl
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3ZvaWQgV2ViUGFnZVByb3h5OjptYWtlU3RvcmFnZVNwYWNlUmVxdWVzdChGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVu
dFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRh
YmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAobV9pc1F1b3RhSW5j
cmVhc2VEZW5pZWQpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY3VycmVudFF1b3RhKTsK
QEAgLTc0MDIsNyArNzQwNCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWFjaGVkQXBwbGljYXRp
b25DYWNoZU9yaWdpblF1b3RhKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpCiAgICAgbV91aUNs
aWVudC0+cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh0aGlzLCBzZWN1cml0eU9y
aWdpbi5nZXQoKSwgY3VycmVudFF1b3RhLCB0b3RhbEJ5dGVzTmVlZGVkLCBXVEZNb3ZlKHJlcGx5
KSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9u
Rm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5n
IG9yaWdpbklkZW50aWZpZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEdlb2xvY2F0aW9u
UGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKIHsKICAgICBXZWJGcmFtZVByb3h5
KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVD
SyhtX3Byb2Nlc3MsIGZyYW1lKTsKQEAgLTc0NDYsNyArNzQ0OCw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpzZXRNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkT3ZlcnJpZGUoT3B0aW9uYWw8Ym9vbD4g
ZW5hYmxlZCkKIH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRp
YVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiAgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW5EYXRhLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9j
dW1lbnRPcmlnaW5EYXRhLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJiByZXF1ZXN0KQor
dm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWlu
dDY0X3QgdXNlck1lZGlhSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmICB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRhdGEsIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEs
IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmIHJlcXVlc3QpCiB7CiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgbV9wcm9jZXNzLT53ZWJG
cmFtZShmcmFtZUlEKSk7CkBAIC03NDYxLDcgKzc0NjMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwg
dWludAogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjplbnVtZXJhdGVNZWRpYURldmlj
ZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRhdGEs
IGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdp
bkRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUo
dWludDY0X3QgdXNlck1lZGlhSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luRGF0YSwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0
YSkKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1l
ID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKQEAgLTc0OTMsNyArNzQ5NSw3IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpjbGVhclVzZXJNZWRpYVN0YXRlKCkKIH0KIAogI2lmIEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pCi12b2lkIFdlYlBhZ2VQcm94eTo6c2hvdWxkQWxsb3dEZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmJiBvcmlnaW5EYXRhLCBib29sIG1heVByb21wdCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpzaG91bGRBbGxvd0RldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmJiBvcmlnaW5EYXRhLCBib29sIG1heVByb21wdCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRl
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1f
cHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3Ms
IGZyYW1lKTsKQEAgLTg3MzYsNyArODczOCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkU3lu
Y2hyb25vdXNVUkxTY2hlbWVUYXNrKFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYgcGFyYW1lCiB9
CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotdm9pZCBXZWJQYWdlUHJv
eHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
c3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwg
dWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZp
cm0oY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIG1f
dWlDbGllbnQtPnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSgqdGhpcywgbV9wcm9jZXNzLT53
ZWJGcmFtZShmcmFtZUlEKSwgc3ViRnJhbWVEb21haW4sIHRvcEZyYW1lRG9tYWluLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCmluZGV4IGI0MzgzY2FmODhmMzcyNzJjZjk0NzdiNjQwMzljZTllZjVjOTQ5YTEuLjIwNzY5
NTkxYWMxZTMyMmY1MWNkY2Y1MjBlNWFjZWViMmUzZjljYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMDE4LDcgKzEwMTgsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBydW5KYXZhU2NyaXB0SW5NYWluRnJhbWUoY29uc3QgU3RyaW5nJiwgYm9vbCwgV1RGOjpGdW5j
dGlvbjx2b2lkIChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSosIGJvb2wgaGFkRXhjZXB0aW9u
LCBjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+
JiYgY2FsbGJhY2tGdW5jdGlvbik7CiAgICAgdm9pZCBydW5KYXZhU2NyaXB0SW5NYWluRnJhbWVT
Y3JpcHRXb3JsZChjb25zdCBTdHJpbmcmLCBib29sLCBjb25zdCBPcHRpb25hbDxTdHJpbmc+JiB3
b3JsZE5hbWUsIFdURjo6RnVuY3Rpb248dm9pZChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSos
IGJvb2wgaGFkRXhjZXB0aW9uLCBjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzJiwgQ2Fs
bGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbik7CiAgICAgLy8gRm9yIHN1YiBm
cmFtZXMuCi0gICAgdm9pZCBydW5KYXZhU2NyaXB0SW5GcmFtZSh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBTdHJpbmcmIHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBXVEY6OkZ1bmN0aW9u
PHZvaWQoQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqLCBib29sIGhhZEV4Y2VwdGlvbiwgY29u
c3QgV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNh
bGxiYWNrRnVuY3Rpb24pOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluRnJhbWUoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0
dXJlLCBXVEY6OkZ1bmN0aW9uPHZvaWQoQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqLCBib29s
IGhhZEV4Y2VwdGlvbiwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyYsIENhbGxiYWNr
QmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pOwogICAgIHZvaWQgZm9yY2VSZXBhaW50
KFJlZlB0cjxWb2lkQ2FsbGJhY2s+JiYpOwogCiAgICAgZmxvYXQgaGVhZGVySGVpZ2h0KFdlYkZy
YW1lUHJveHkmKTsKQEAgLTExNjEsNyArMTE2MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRyYXdS
ZWN0VG9JbWFnZShXZWJGcmFtZVByb3h5KiwgY29uc3QgUHJpbnRJbmZvJiwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBSZWY8SW1hZ2VDYWxsYmFjaz4m
Jik7CiAgICAgdm9pZCBkcmF3UGFnZXNUb1BERihXZWJGcmFtZVByb3h5KiwgY29uc3QgUHJpbnRJ
bmZvJiwgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBSZWY8RGF0YUNhbGxiYWNrPiYm
KTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHVpbnQzMl90IGNvbXB1dGVQYWdlc0Zv
clByaW50aW5nQW5kRHJhd1RvUERGKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYs
IERyYXdUb1BERkNhbGxiYWNrOjpDYWxsYmFja0Z1bmN0aW9uJiYpOworICAgIHVpbnQzMl90IGNv
bXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgY29uc3QgUHJpbnRJbmZvJiwgRHJhd1RvUERGQ2FsbGJhY2s6OkNhbGxiYWNrRnVuY3Rpb24m
Jik7CiAgICAgdm9pZCBkcmF3VG9QREZDYWxsYmFjayhjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2Um
IHBkZkRhdGEsIFdlYktpdDo6Q2FsbGJhY2tJRCk7CiAjZW5kaWYKICNlbGlmIFBMQVRGT1JNKEdU
SykKQEAgLTEyNTIsNyArMTI1Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFZpZXdwb3J0U2l6
ZUZvckNTU1ZpZXdwb3J0VW5pdHMoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogICAgIFdlYkNv
cmU6OkludFNpemUgdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpIGNvbnN0IHsgcmV0
dXJuIG1fdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cy52YWx1ZU9yKFdlYkNvcmU6Oklu
dFNpemUoKSk7IH0KIAotICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
UHJveHkodWludDY0X3QgZnJhbWVJRCwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+
JiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4m
Jik7CiAKICAgICBTcGVsbERvY3VtZW50VGFnIHNwZWxsRG9jdW1lbnRUYWcoKTsKIApAQCAtMTQ1
MiwxMiArMTQ1MiwxMiBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpCi0gICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oY29u
c3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgcmVxdWVzdFN0b3Jh
Z2VBY2Nlc3NDb25maXJtKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFt
ZURvbWFpbiwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWlu
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYpOwogICAgIHZvaWQgZGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXJGcm9t
UHJldmFsZW50UmVzb3VyY2UoKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRB
VElPTikKLSAgICB2b2lkIHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nl
c3ModWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIGJvb2wg
bWF5UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkRldmljZU9yaWVudGF0
aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmKTsKKyAgICB2b2lkIHNob3VsZEFsbG93RGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgYm9vbCBtYXlQcm9tcHQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25T
dGF0ZSk+JiYpOwogI2VuZGlmCiAKICAgICBzdGF0aWMgV2ViUGFnZVByb3h5KiBub25FcGhlbWVy
YWxXZWJQYWdlUHJveHkoKTsKQEAgLTE0OTgsMzMgKzE0OTgsMzMgQEAgcHVibGljOgogI2VuZGlm
CiAKICAgICBQcm92aXNpb25hbFBhZ2VQcm94eSogcHJvdmlzaW9uYWxQYWdlUHJveHkoKSBjb25z
dCB7IHJldHVybiBtX3Byb3Zpc2lvbmFsUGFnZS5nZXQoKTsgfQotICAgIHZvaWQgY29tbWl0UHJv
dmlzaW9uYWxQYWdlKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwg
dWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiwg
Ym9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3Vy
ZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmKTsKKyAg
ICB2b2lkIGNvbW1pdFByb3Zpc2lvbmFsUGFnZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhh
c0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2Vi
Q29yZTo6Q2VydGlmaWNhdGVJbmZvJiwgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRp
b25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVu
dCwgY29uc3QgVXNlckRhdGEmKTsKIAogICAgIC8vIExvZ2ljIHNoYXJlZCBiZXR3ZWVuIHRoZSBX
ZWJQYWdlUHJveHkgYW5kIHRoZSBQcm92aXNpb25hbFBhZ2VQcm94eS4KLSAgICB2b2lkIGRpZFN0
YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
dWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiwgVVJMJiYgdW5y
ZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3QgZnJh
bWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3Jp
Z2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkws
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2Fk
aW5nLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0
Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
dWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmJiwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJS
ZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0X3Qg
ZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0
cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQg
ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiwgY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAg
IHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYm
KTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lk
ZW50aWZpZXIsCisgICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBVUkwmJiwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJE
YXRhJik7CisgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJE
YXRhJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExv
YWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiYsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RT
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJp
bmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcik7CisgICAgdm9pZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0
cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7Cisg
ICAgdm9pZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YVNoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmLCBjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFy
ZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25Bc3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJp
dHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwKICAgICAgICAgdWludDY0
X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYs
IE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYmLAogICAgICAgICBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVz
dEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25z
dCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2lu
LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsCisgICAgdm9pZCBkZWNpZGVQb2xpY3lG
b3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0
eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLAogICAgICAgICB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3Ry
aW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRh
dGEmKTsKICAgICB2b2lkIHN0YXJ0VVJMU2NoZW1lVGFza1NoYXJlZChSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmLCBVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmKTsKICAgICB2b2lkIGxvYWREYXRhV2l0
aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgQVBJOjpOYXZpZ2F0aW9u
JiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29u
c3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCog
dXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0aW9uYWw8
V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiA9IFdURjo6bnVsbG9wdCwgV2ViQ29yZTo6U2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeSA9IFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3k6OlNob3VsZE5vdEFsbG93KTsKICAgICB2b2lkIGxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25T
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgQVBJOjpOYXZpZ2F0aW9uJiwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ks
IEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmID0gV1RGOjpudWxsb3B0KTsKICAg
ICB2b2lkIGJhY2tGb3J3YXJkR29Ub0l0ZW1TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
Y29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYpPiYmKTsKLSAgICB2b2lkIGRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYsIHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKKyAgICB2b2lkIGRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAogICAgICAgICBGcmFtZUluZm9E
YXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJ
RCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJv
ZHksCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNl
LCBjb25zdCBVc2VyRGF0YSYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVkUmVwbHkmJik7CiAjaWYgVVNFKFFVSUNLX0xP
T0spCiAgICAgdm9pZCBkaWRSZXF1ZXN0UGFzc3dvcmRGb3JRdWlja0xvb2tEb2N1bWVudEluTWFp
bkZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgZmlsZU5h
bWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQotICAgIHZvaWQgY29u
dGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYsIHVpbnQ2NF90
IGZyYW1lSUQpOworICAgIHZvaWQgY29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJV
bmJsb2NrSGFuZGxlciYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAjZW5kaWYKIAogICAg
IHZvaWQgZHVtcEFkQ2xpY2tBdHRyaWJ1dGlvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0
IFN0cmluZyYpPiYmKTsKQEAgLTE1NjEsNyArMTU2MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRl
OwogICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CiAKLSAg
ICB2b2lkIHJlcXVlc3RTdG9yYWdlU3BhY2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5n
JiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3Ry
aW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50
T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBl
Y3RlZFVzYWdlLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmKTsKKyAg
ICB2b2lkIHJlcXVlc3RTdG9yYWdlU3BhY2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBj
b25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90
IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2
NF90IGV4cGVjdGVkVXNhZ2UsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+
JiYpOwogCiAgICAgVVJMIGN1cnJlbnRSZXNvdXJjZURpcmVjdG9yeVVSTCgpIGNvbnN0OwogCkBA
IC0xNTgxLDcgKzE1ODEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlVGhyb3R0bGVTdGF0
ZSgpOwogICAgIHZvaWQgdXBkYXRlSGlkZGVuUGFnZVRocm90dGxpbmdBdXRvSW5jcmVhc2VzKCk7
CiAKLSAgICBib29sIHN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUoQVBJOjpOYXZpZ2F0aW9u
JiwgT3B0aW9uYWw8dWludDY0X3Q+IG1haW5GcmFtZUlELCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5
Q2xpZW50LCBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ01vZGUpOworICAgIGJvb2wgc3VzcGVuZEN1cnJlbnRQYWdlSWZQb3NzaWJsZShBUEk6Ok5h
dmlnYXRpb24mLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IG1haW5GcmFtZUlE
LCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVu
dGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOwogCiAgICAgZW51bSBjbGFzcyBSZXNl
dFN0YXRlUmVhc29uIHsKICAgICAgICAgUGFnZUludmFsaWRhdGVkLApAQCAtMTYxMCwzMiArMTYx
MCwzMiBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFBvaW50ZXJVbmxvY2soKTsKICNlbmRp
ZgogCi0gICAgdm9pZCBkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJRCk7Ci0gICAg
dm9pZCBkaWRDcmVhdGVTdWJmcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZENy
ZWF0ZVdpbmRvdyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlm
aWVyJiYpOwotCi0gICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYsIFVSTCYmIHVucmVhY2hh
YmxlVVJMLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGly
ZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVXNlckRhdGEm
KTsKLSAgICB2b2lkIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBTdHJpbmcmIHVybCwgZG91YmxlIGRlbGF5LCBXZWJDb3JlOjpMb2NrQmFj
a0ZvcndhcmRMaXN0KTsKLSAgICB2b2lkIGRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOwotICAg
IHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZywgY29u
c3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJv
b2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUs
IGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYsIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1
bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNl
Y3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRGaW5pc2hEb2N1bWVu
dExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNv
bnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRGaW5pc2hMb2FkRm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZv
aWQgZGlkRmFpbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0YSYpOwot
ICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMyX3Qgc2FtZURvY3VtZW50TmF2aWdhdGlv
blR5cGUsIFVSTCYmLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkQ2hhbmdlTWFpbkRv
Y3VtZW50KHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkRXhwbGljaXRPcGVuRm9yRnJh
bWUodWludDY0X3QgZnJhbWVJRCwgVVJMJiYpOwotCi0gICAgdm9pZCBkaWRSZWNlaXZlVGl0bGVG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmLCBjb25zdCBVc2VyRGF0YSYp
OwotICAgIHZvaWQgZGlkRmlyc3RMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZERp
c3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVc2Vy
RGF0YSYpOwotICAgIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZERldGVjdFhTU0ZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRDcmVhdGVN
YWluRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZENyZWF0ZVN1
YmZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRDcmVhdGVXaW5k
b3coV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlm
aWVyJiYpOworCisgICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiwgVVJMJiYg
dW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU2Vy
dmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYs
IGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9y
RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHVybCwgZG91Ymxl
IGRlbGF5LCBXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0KTsKKyAgICB2b2lkIGRpZENhbmNl
bENsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2
b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKKyAgICB2b2lkIGRpZEZhaWxQcm92
aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRh
dGEmKTsKKyAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9v
bCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwg
Y29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiwgYm9vbCBjb250YWluc1BsdWdpbkRvY3Vt
ZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2Vj
dXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZEZpbmlzaERvY3VtZW50
TG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBVc2Vy
RGF0YSYpOworICAgIHZvaWQgZGlkRmFpbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciYsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9u
Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IHVpbnQzMl90IHNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLCBVUkwmJiwgY29uc3QgVXNlckRh
dGEmKTsKKyAgICB2b2lkIGRpZENoYW5nZU1haW5Eb2N1bWVudChXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIpOworICAgIHZvaWQgZGlkRXhwbGljaXRPcGVuRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBVUkwmJik7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgY29uc3QgVXNlckRhdGEmKTsK
KyAgICB2b2lkIGRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5
b3V0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBVc2VyRGF0YSYpOwor
ICAgIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZFJ1bkluc2VjdXJlQ29u
dGVudEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgVXNlckRhdGEmKTsK
KyAgICB2b2lkIGRpZERldGVjdFhTU0ZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
Y29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIG1haW5GcmFtZVBsdWdpbkhhbmRsZXNQYWdlU2Nh
bGVHZXN0dXJlRGlkQ2hhbmdlKGJvb2wpOwotICAgIHZvaWQgZnJhbWVEaWRCZWNvbWVGcmFtZVNl
dCh1aW50NjRfdCBmcmFtZUlELCBib29sKTsKKyAgICB2b2lkIGZyYW1lRGlkQmVjb21lRnJhbWVT
ZXQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBib29sKTsKICAgICB2b2lkIGRpZFN0YXJ0UHJv
Z3Jlc3MoKTsKICAgICB2b2lkIGRpZENoYW5nZVByb2dyZXNzKGRvdWJsZSk7CiAgICAgdm9pZCBk
aWRGaW5pc2hQcm9ncmVzcygpOwpAQCAtMTY0OCwzNyArMTY0OCwzNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmLCBXZWJGcmFtZVByb3h5JiwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAgRnJhbWVJ
bmZvRGF0YSYmLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQ
YWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVl
c3RCb2R5LAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNw
b25zZSwgY29uc3QgVXNlckRhdGEmLCBSZWY8UG9saWN5RGVjaXNpb25TZW5kZXI+JiYpOwotICAg
IHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKHVpbnQ2NF90IGZyYW1l
SUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lk
ZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwK
KyAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQ
b2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFj
dGlvbkRhdGEmJiwKICAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBD
OjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAogICAgICAgICBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCB1aW50NjRf
dCBsaXN0ZW5lcklEKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25T
eW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKKyAgICB2b2lkIGRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBp
c01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9u
RGF0YSYmLAogICAgICAgICBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZv
cm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVk
UmVwbHkmJik7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24odWludDY0
X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAorICAgIHZvaWQg
ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAogICAgICAgICBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmJiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVy
SUQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwKKyAgICB2
b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsCiAgICAgICAgIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBib29sIGNh
blNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3Qg
bGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIHVuYWJsZVRvSW1wbGVtZW50
UG9saWN5KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBj
b25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgdW5hYmxlVG9JbXBsZW1lbnRQb2xpY3koV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3Qg
VXNlckRhdGEmKTsKICAgICB2b2lkIGJlZ2luU2FmZUJyb3dzaW5nQ2hlY2soY29uc3QgVVJMJiwg
Ym9vbCwgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5Jik7CiAKICAgICBXZWJDb250ZW50TW9k
ZSBlZmZlY3RpdmVDb250ZW50TW9kZUFmdGVyQWRqdXN0aW5nUG9saWNpZXMoQVBJOjpXZWJzaXRl
UG9saWNpZXMmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKIAotICAgIHZvaWQg
d2lsbFN1Ym1pdEZvcm0odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qgc291cmNlRnJhbWVJRCwg
Y29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+JiB0ZXh0RmllbGRWYWx1ZXMs
IHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCB3aWxsU3Vi
bWl0Rm9ybShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBzb3VyY2VGcmFtZUlELCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4m
IHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsK
IAogICAgIHZvaWQgY29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uKFVSTCYmLCBXZWJDb3JlOjpD
b250ZW50UnVsZUxpc3RSZXN1bHRzJiYpOwogCiAgICAgLy8gSGlzdG9yeSBjbGllbnQKLSAgICB2
b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25EYXRh
U3RvcmUmLCB1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZFBlcmZvcm1DbGllbnRSZWRp
cmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5h
dGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRQZXJmb3JtU2Vy
dmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYg
ZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkVXBk
YXRlSGlzdG9yeVRpdGxlKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgdXJsLCB1
aW50NjRfdCBmcmFtZUlEKTsKKyAgICB2b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRh
KGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIp
OworICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNl
VVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0
IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3Ry
aW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkVXBkYXRlSGlzdG9y
eVRpdGxlKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgdXJsLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIpOwogCiAgICAgLy8gVUkgY2xpZW50CiAgICAgdm9pZCBjcmVhdGVOZXdQ
YWdlKGNvbnN0IEZyYW1lSW5mb0RhdGEmLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmll
cj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3Jl
OjpXaW5kb3dGZWF0dXJlcyYmLCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlOjpEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBzaG93
UGFnZSgpOwotICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYsIE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydDo6RGVsYXllZFJlcGx5JiYpOwotICAg
IHZvaWQgcnVuSmF2YVNjcmlwdENvbmZpcm0odWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6UnVuSmF2YVNjcmlwdENvbmZpcm06OkRlbGF5ZWRSZXBseSYmKTsKLSAgICB2b2lkIHJ1
bkphdmFTY3JpcHRQcm9tcHQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdDo6RGVsYXllZFJlcGx5JiYpOworICAgIHZv
aWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6UnVuSmF2YVNjcmlwdEFsZXJ0OjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBy
dW5KYXZhU2NyaXB0Q29uZmlybShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYsIE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OlJ1bkphdmFTY3JpcHRDb25maXJtOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBy
dW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdDo6RGVsYXllZFJlcGx5JiYp
OwogICAgIHZvaWQgc2V0U3RhdHVzVGV4dChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIG1vdXNl
RGlkTW92ZU92ZXJFbGVtZW50KFdlYkhpdFRlc3RSZXN1bHREYXRhJiYsIHVpbnQzMl90IG1vZGlm
aWVycywgVXNlckRhdGEmJik7CiAKQEAgLTE3MDEsMjEgKzE3MDEsMjEgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHJvb3RWaWV3VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld1JlY3Qs
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJvb3RWaWV3VG9TY3JlZW46OkRlbGF5ZWRSZXBseSYm
KTsKICAgICB2b2lkIGFjY2Vzc2liaWxpdHlTY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBzY3JlZW5Qb2ludCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpJ
bnRQb2ludCk+JiYpOwogICAgIHZvaWQgcm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3JlZW4oY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgdmlld1JlY3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vi
Q29yZTo6SW50UmVjdCk+JiYpOwotICAgIHZvaWQgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuQmVmb3JlVW5s
b2FkQ29uZmlybVBhbmVsOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBydW5CZWZvcmVVbmxv
YWRDb25maXJtUGFuZWwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDo6RGVsYXllZFJlcGx5JiYpOwog
ICAgIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdw
b3J0QXR0cmlidXRlcyYpOwogICAgIHZvaWQgcGFnZURpZFNjcm9sbCgpOwotICAgIHZvaWQgcnVu
T3BlblBhbmVsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYsIGNvbnN0IFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MmKTsKKyAgICB2b2lkIHJ1
bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYsIGNvbnN0IFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MmKTsKICAg
ICB2b2lkIHNob3dTaGFyZVNoZWV0KGNvbnN0IFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRV
UkwmLCBTaGFyZVNoZWV0Q2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBwcmludEZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBleGNlZWRl
ZERhdGFiYXNlUXVvdGEodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5
TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2Us
IHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFeGNlZWRlZERhdGFiYXNlUXVvdGE6OkRlbGF5ZWRSZXBs
eSYmKTsKKyAgICB2b2lkIHByaW50RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3Rh
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwg
dWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2
NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpFeGNlZWRlZERhdGFiYXNlUXVvdGE6OkRlbGF5ZWRSZXBseSYmKTsK
ICAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoY29uc3QgU3RyaW5n
JiBvcmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFs
Qnl0ZXNOZWVkZWQsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlYWNoZWRBcHBsaWNhdGlvbkNh
Y2hlT3JpZ2luUXVvdGE6OkRlbGF5ZWRSZXBseSYmKTsKLSAgICB2b2lkIHJlcXVlc3RHZW9sb2Nh
dGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCB1aW50NjRfdCBm
cmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcik7CisgICAgdm9pZCByZXF1ZXN0R2VvbG9j
YXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcik7CiAKICNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQogICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
JiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKTsKICNlbmRpZgotICAgIHZvaWQg
cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwg
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlh
U3RyZWFtUmVxdWVzdCYmKTsKLSAgICB2b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1l
KHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luRGF0YSwgY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YSk7Cisg
ICAgdm9pZCByZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJN
ZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVy
LCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJik7CisgICAgdm9pZCBlbnVtZXJhdGVNZWRp
YURldmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luRGF0YSwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luRGF0YSk7CiAgICAgdm9pZCBiZWdpbk1vbml0b3JpbmdDYXB0dXJlRGV2
aWNlcygpOwogCiAgICAgdm9pZCBydW5Nb2RhbCgpOwpAQCAtMTg5NSw4ICsxODk1LDggQEAgcHJp
dmF0ZToKICAgICB2b2lkIHByaW50RmluaXNoZWRDYWxsYmFjayhjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yJiwgQ2FsbGJhY2tJRCk7CiAjZW5kaWYKIAotICAgIHZvaWQgZm9jdXNlZEZyYW1l
Q2hhbmdlZCh1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGZyYW1lU2V0TGFyZ2VzdEZyYW1l
Q2hhbmdlZCh1aW50NjRfdCBmcmFtZUlEKTsKKyAgICB2b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQo
Y29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiYpOworICAgIHZvaWQgZnJh
bWVTZXRMYXJnZXN0RnJhbWVDaGFuZ2VkKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcj4mKTsKIAogICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0b21Db250
ZW50UHJvdmlkZXIoY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSwgY29uc3QgSVBDOjpE
YXRhUmVmZXJlbmNlJik7CiAKQEAgLTE5OTcsNyArMTk5Nyw3IEBAIHByaXZhdGU6CiAjZW5kaWYK
IAogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKLSAgICB2b2lkIGNvbnRlbnRGaWx0ZXJE
aWRCbG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hh
bmRsZXImLCB1aW50NjRfdCBmcmFtZUlEKTsKKyAgICB2b2lkIGNvbnRlbnRGaWx0ZXJEaWRCbG9j
a0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIm
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogI2VuZGlmCiAKICAgICB2b2lkIHRyeVJlbG9h
ZEFmdGVyUHJvY2Vzc1Rlcm1pbmF0aW9uKCk7CkBAIC0yMTEwLDcgKzIxMTAsNyBAQCBwcml2YXRl
OgogICAgIHN0YXRpYyBib29sIGlzSW5IYXJkd2FyZUtleWJvYXJkTW9kZSgpOwogI2VuZGlmCiAK
LSAgICB2b2lkIG1ha2VTdG9yYWdlU3BhY2VSZXF1ZXN0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNv
bnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3Qg
Y3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0
X3QgZXhwZWN0ZWRVc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYpOwor
ICAgIHZvaWQgbWFrZVN0b3JhZ2VTcGFjZVJlcXVlc3QoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VO
YW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVp
bnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2Us
IHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3Qp
PiYmKTsKIAogICAgIFdlYWtQdHI8UGFnZUNsaWVudD4gbV9wYWdlQ2xpZW50OwogICAgIFJlZjxB
UEk6OlBhZ2VDb25maWd1cmF0aW9uPiBtX2NvbmZpZ3VyYXRpb247CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZWNhZDk1ZTQ2YjU0
M2FjOTE1MDQwZTYwZWY0MDRiZWQ2NDI2NzE2MS4uMTU4OTE5ZTMxNjAxMWQ2OTk0MGRkOWIxZTJm
N2NjYzMxZWE0ZTQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgpAQCAtMjUsOSArMjUsOSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJv
eHkgewogICAgIENyZWF0ZU5ld1BhZ2Uoc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmln
aW5hdGluZ0ZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBv
cmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHN0cnVj
dCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyB3aW5kb3dGZWF0dXJlcywgc3RydWN0IFdlYktpdDo6
TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEpIC0+IChPcHRpb25hbDxX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gbmV3UGFnZUlELCBPcHRpb25hbDxXZWJLaXQ6OldlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnM+IG5ld1BhZ2VQYXJhbWV0ZXJzKSBTeW5jaHJvbm91cwogICAg
IFNob3dQYWdlKCkKICAgICBDbG9zZVBhZ2UoYm9vbCBzdG9wUmVzcG9uc2l2ZW5lc3NUaW1lcikK
LSAgICBSdW5KYXZhU2NyaXB0QWxlcnQodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSkg
LT4gKCkgU3luY2hyb25vdXMKLSAgICBSdW5KYXZhU2NyaXB0Q29uZmlybSh1aW50NjRfdCBmcmFt
ZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmln
aW4sIFN0cmluZyBtZXNzYWdlKSAtPiAoYm9vbCByZXN1bHQpIFN5bmNocm9ub3VzCi0gICAgUnVu
SmF2YVNjcmlwdFByb21wdCh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFN0cmluZyBtZXNzYWdlLCBTdHJpbmcg
ZGVmYXVsdFZhbHVlKSAtPiAoU3RyaW5nIHJlc3VsdCkgU3luY2hyb25vdXMKKyAgICBSdW5KYXZh
U2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3Nh
Z2UpIC0+ICgpIFN5bmNocm9ub3VzCisgICAgUnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3NhZ2UpIC0+IChib29sIHJlc3VsdCkg
U3luY2hyb25vdXMKKyAgICBSdW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVmYXVsdFZhbHVlKSAtPiAoU3Ry
aW5nIHJlc3VsdCkgU3luY2hyb25vdXMKICAgICBNb3VzZURpZE1vdmVPdmVyRWxlbWVudChzdHJ1
Y3QgV2ViS2l0OjpXZWJIaXRUZXN0UmVzdWx0RGF0YSBoaXRUZXN0UmVzdWx0RGF0YSwgdWludDMy
X3QgbW9kaWZpZXJzLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQogCiAjaWYgRU5BQkxFKE5F
VFNDQVBFX1BMVUdJTl9BUEkpCkBAIC00Nyw4ICs0Nyw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQ
cm94eSB7CiAgICAgU2V0VG9vbFRpcChTdHJpbmcgdG9vbFRpcCkKICAgICBTZXRGb2N1cyhib29s
IGZvY3VzZWQpCiAgICAgVGFrZUZvY3VzKHVpbnQzMl90IGRpcmVjdGlvbikKLSAgICBGb2N1c2Vk
RnJhbWVDaGFuZ2VkKHVpbnQ2NF90IGZyYW1lSUQpCi0gICAgRnJhbWVTZXRMYXJnZXN0RnJhbWVD
aGFuZ2VkKHVpbnQ2NF90IGZyYW1lSUQpCisgICAgRm9jdXNlZEZyYW1lQ2hhbmdlZChPcHRpb25h
bDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQpCisgICAgRnJhbWVTZXRMYXJnZXN0
RnJhbWVDaGFuZ2VkKE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCkK
ICAgICBTZXRSZW5kZXJUcmVlU2l6ZSh1aW50NjRfdCB0cmVlU2l6ZSkKICAgICBTZXRUb29sYmFy
c0FyZVZpc2libGUoYm9vbCB0b29sYmFyc0FyZVZpc2libGUpCiAgICAgR2V0VG9vbGJhcnNBcmVW
aXNpYmxlKCkgLT4gKGJvb2wgdG9vbGJhcnNBcmVWaXNpYmxlKSBTeW5jaHJvbm91cwpAQCAtNjks
MTEgKzY5LDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgSGlkZVZhbGlkYXRp
b25NZXNzYWdlKCkKICNlbmRpZgogCi0gICAgUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKHVp
bnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3NhZ2UpIC0+IChib29sIHNob3VsZENsb3NlKSBTeW5j
aHJvbm91cworICAgIFJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFt
ZVNlY3VyaXR5T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSkgLT4gKGJvb2wgc2hvdWxkQ2xvc2UpIFN5
bmNocm9ub3VzCiAgICAgUGFnZURpZFNjcm9sbCgpCi0gICAgUnVuT3BlblBhbmVsKHVpbnQ2NF90
IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0
eU9yaWdpbiwgc3RydWN0IFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MgcGFyYW1ldGVycykK
KyAgICBSdW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVj
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgc3RydWN0
IFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MgcGFyYW1ldGVycykKICAgICBTaG93U2hhcmVT
aGVldChzdHJ1Y3QgV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCBzaGFyZURhdGEsIHVp
bnQ2NF90IGNhbGxiYWNrSUQpCi0gICAgUHJpbnRGcmFtZSh1aW50NjRfdCBmcmFtZUlEKSAtPiAo
KSBTeW5jaHJvbm91cworICAgIFByaW50RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQpIC0+ICgpIFN5bmNocm9ub3VzCiAgICAgUnVuTW9kYWwoKQogICAgIE5vdGlmeVNjcm9s
bGVyVGh1bWJJc1Zpc2libGVJblJlY3QoV2ViQ29yZTo6SW50UmVjdCBzY3JvbGxlclRodW1iKQog
ICAgIFJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2UoaW50MzJfdCBuZXdTdHlsZSkK
QEAgLTEwMywxMSArMTAzLDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjZW5kaWYK
IAogICAgICMgUG9saWN5IG1lc3NhZ2VzCi0gICAgRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UodWlu
dDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNl
Y3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBib29sIGNhblNo
b3dNSU1FVHlwZSwgU3RyaW5nIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklE
LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb25Bc3luYyh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0
IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVj
dCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25h
bDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEs
IHVpbnQ2NF90IGxpc3RlbmVySUQpCi0gICAgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
blN5bmModWludDY0X3QgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgc3RydWN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25E
YXRhLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0
YSwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRh
IHVzZXJEYXRhKSAtPiAoV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNr
SWRlbnRpZmllciwgZW51bTp1aW50OF90IFdlYkNvcmU6OlBvbGljeUFjdGlvbiBwb2xpY3lBY3Rp
b24sIHVpbnQ2NF90IG5ld05hdmlnYXRpb25JRCwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2Fk
SUQsIE9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0YT4gd2Vic2l0ZVBvbGljaWVz
KSBTeW5jaHJvbm91cwotICAgIERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRf
dCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJp
dHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50
aWZpZXIsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rp
b25EYXRhLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIGZyYW1lTmFt
ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBV
bmFibGVUb0ltcGxlbWVudFBvbGljeSh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yIGVycm9yLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERlY2lkZVBvbGlj
eUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBv
bGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBTdHJpbmcgZG93bmxv
YWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRh
dGEpCisgICAgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
IGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xp
Y3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6
TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6
OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBJ
UEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlIHJlZGlyZWN0UmVzcG9uc2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEsIHVpbnQ2NF90
IGxpc3RlbmVySUQpCisgICAgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIHN0cnVjdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9u
QWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1l
SW5mb0RhdGEsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1Bh
Z2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJv
ZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpV
c2VyRGF0YSB1c2VyRGF0YSkgLT4gKFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xp
Y3lDaGVja0lkZW50aWZpZXIsIGVudW06dWludDhfdCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9s
aWN5QWN0aW9uLCB1aW50NjRfdCBuZXdOYXZpZ2F0aW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBk
b3dubG9hZElELCBPcHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQ
b2xpY2llcykgU3luY2hyb25vdXMKKyAgICBEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24o
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFj
dGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0LCBTdHJpbmcgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVz
ZXJEYXRhIHVzZXJEYXRhKQorICAgIFVuYWJsZVRvSW1wbGVtZW50UG9saWN5KFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBXZWJL
aXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQogCiAgICAgIyBQcm9ncmVzcyBtZXNzYWdlcwogICAgIERp
ZENoYW5nZVByb2dyZXNzKGRvdWJsZSB2YWx1ZSkKQEAgLTExNyw1MSArMTE3LDUxIEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgU2V0TmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcyhi
b29sIG5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3MpCiAKICAgICAjIEZyYW1lIGxpZmV0aW1lIG1l
c3NhZ2VzCi0gICAgRGlkQ3JlYXRlTWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCi0gICAgRGlk
Q3JlYXRlU3ViZnJhbWUodWludDY0X3QgZnJhbWVJRCkKKyAgICBEaWRDcmVhdGVNYWluRnJhbWUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCisgICAgRGlkQ3JlYXRlU3ViZnJhbWUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAKLSAgICBEaWRDcmVhdGVXaW5kb3co
dWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXIg
d2luZG93SWRlbnRpZmllcikKKyAgICBEaWRDcmVhdGVXaW5kb3coV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlmaWVyIHdp
bmRvd0lkZW50aWZpZXIpCiAKICAgICAjIEZyYW1lIGxvYWQgbWVzc2FnZXMKLSAgICBEaWRTdGFy
dFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgVVJMIHVybCwgVVJMIHVucmVhY2hhYmxlVVJMLCBXZWJLaXQ6OlVzZXJEYXRhIHVz
ZXJEYXRhKQotICAgIERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAg
V2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFN0cmlu
ZyB1cmwsIGRvdWJsZSBkZWxheSwgZW51bTpib29sIFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExp
c3QgbG9ja0JhY2tGb3J3YXJkTGlzdCkKLSAgICBEaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQpCi0gICAgRGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCB1cmwpCi0gICAg
RGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBTdHJpbmcgcHJvdmlzaW9uYWxVUkwsIFdlYkNvcmU6OlJlc291cmNlRXJy
b3IgZXJyb3IsIGVudW06Ym9vbCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250
aW51ZUxvYWRpbmcsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlkQ29tbWl0TG9h
ZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgU3RyaW5n
IG1pbWVUeXBlLCBib29sIGhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgbG9hZFR5
cGUsIFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFp
bnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBm
b3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAg
RGlkRmFpbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6VXNlckRhdGEgdXNlckRh
dGEpCi0gICAgRGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERp
ZEZpbmlzaExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlkRmlyc3RMYXlvdXRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZEZp
cnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktp
dDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFt
ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBVUkwgdXJsLCBVUkwgdW5yZWFjaGFibGVVUkwsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEp
CisgICAgRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYktpdDo6VXNlckRhdGEgdXNlckRh
dGEpCisgICAgV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgdXJsLCBkb3VibGUgZGVsYXksIGVudW06Ym9vbCBX
ZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QpCisgICAgRGlk
Q2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCkKKyAgICBEaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCB1cmwpCisgICAg
RGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlP
cmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgU3RyaW5nIHByb3Zpc2lvbmFsVVJMLCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBlbnVtOmJvb2wgV2ViQ29yZTo6V2lsbENvbnRpbnVl
TG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQor
ICAgIERpZENvbW1pdExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBTdHJpbmcgbWltZVR5cGUsIGJvb2wgaGFzQ3VzdG9t
Q29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBsb2FkVHlwZSwgV2ViQ29yZTo6Q2VydGlmaWNhdGVJ
bmZvIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25h
bDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwg
V2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWRGYWlsTG9hZEZvckZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNv
cmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAg
RGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkK
KyAgICBEaWRGaW5pc2hMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAg
ICBEaWRGaXJzdExheW91dEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZEZpcnN0VmlzdWFsbHlOb25FbXB0
eUxheW91dEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJLaXQ6
OlVzZXJEYXRhIHVzZXJEYXRhKQogICAgIERpZFJlYWNoTGF5b3V0TWlsZXN0b25lKE9wdGlvblNl
dDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+IGxheW91dE1pbGVzdG9uZXMpCi0gICAgRGlkUmVj
ZWl2ZVRpdGxlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHRpdGxlLCBXZWJLaXQ6
OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZFJ1
bkluc2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6VXNlckRh
dGEgdXNlckRhdGEpCi0gICAgRGlkRGV0ZWN0WFNTRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
V2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9u
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50MzJf
dCB0eXBlLCBVUkwgdXJsLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZENoYW5n
ZU1haW5Eb2N1bWVudCh1aW50NjRfdCBmcmFtZUlEKQotICAgIERpZEV4cGxpY2l0T3BlbkZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIFVSTCB1cmwpCisgICAgRGlkUmVjZWl2ZVRpdGxlRm9yRnJh
bWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyB0aXRsZSwgV2ViS2l0
OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJh
bWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYktpdDo6VXNlckRhdGEgdXNl
ckRhdGEpCisgICAgRGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkRGV0
ZWN0WFNTRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYktpdDo6
VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1l
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IHVpbnQzMl90IHR5cGUsIFVSTCB1cmwsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAg
RGlkQ2hhbmdlTWFpbkRvY3VtZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQor
ICAgIERpZEV4cGxpY2l0T3BlbkZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBVUkwgdXJsKQogICAgIERpZERlc3Ryb3lOYXZpZ2F0aW9uKHVpbnQ2NF90IG5hdmlnYXRp
b25JRCkKIAogICAgIEhhc0luc2VjdXJlQ29udGVudCgpIC0+IChlbnVtOmJvb2wgV2ViQ29yZTo6
SGFzSW5zZWN1cmVDb250ZW50IGhhc0luc2VjdXJlQ29udGVudCkgU3luY2hyb25vdXMKIAogICAg
IE1haW5GcmFtZVBsdWdpbkhhbmRsZXNQYWdlU2NhbGVHZXN0dXJlRGlkQ2hhbmdlKGJvb2wgbWFp
bkZyYW1lUGx1Z2luSGFuZGxlc1BhZ2VTY2FsZUdlc3R1cmUpCiAKLSAgICBGcmFtZURpZEJlY29t
ZUZyYW1lU2V0KHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgdmFsdWUpCisgICAgRnJhbWVEaWRCZWNv
bWVGcmFtZVNldChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCB2YWx1ZSkK
IAogICAgICMgSGlzdG9yeSBjbGllbnQgbWVzc2FnZXMuCi0gICAgRGlkTmF2aWdhdGVXaXRoTmF2
aWdhdGlvbkRhdGEoc3RydWN0IFdlYktpdDo6V2ViTmF2aWdhdGlvbkRhdGFTdG9yZSBzdG9yZSwg
dWludDY0X3QgZnJhbWVJRCkKLSAgICBEaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoU3RyaW5nIHNv
dXJjZVVSTFN0cmluZywgU3RyaW5nIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFt
ZUlEKQotICAgIERpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChTdHJpbmcgc291cmNlVVJMU3RyaW5n
LCBTdHJpbmcgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpCi0gICAgRGlk
VXBkYXRlSGlzdG9yeVRpdGxlKFN0cmluZyB0aXRsZSwgU3RyaW5nIHVybCwgdWludDY0X3QgZnJh
bWVJRCkKKyAgICBEaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShzdHJ1Y3QgV2ViS2l0OjpX
ZWJOYXZpZ2F0aW9uRGF0YVN0b3JlIHN0b3JlLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCkKKyAgICBEaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoU3RyaW5nIHNvdXJjZVVSTFN0cmlu
ZywgU3RyaW5nIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCkKKyAgICBEaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoU3RyaW5nIHNvdXJjZVVSTFN0
cmluZywgU3RyaW5nIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCkKKyAgICBEaWRVcGRhdGVIaXN0b3J5VGl0bGUoU3RyaW5nIHRpdGxlLCBTdHJp
bmcgdXJsLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIAogICAgICMgQ3VzdG9t
IHJlcHJlc2VudGF0aW9ucwogICAgIERpZEZpbmlzaExvYWRpbmdEYXRhRm9yQ3VzdG9tQ29udGVu
dFByb3ZpZGVyKFN0cmluZyBzdWdnZXN0ZWRGaWxlbmFtZSwgSVBDOjpEYXRhUmVmZXJlbmNlIGRh
dGEpCiAKICAgICAjIEZvcm1zIG1lc3NhZ2VzCi0gICAgV2lsbFN1Ym1pdEZvcm0odWludDY0X3Qg
ZnJhbWVJRCwgdWludDY0X3Qgc291cmNlRnJhbWVJRCwgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcs
IFN0cmluZz4+IHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpV
c2VyRGF0YSB1c2VyRGF0YSkKKyAgICBXaWxsU3VibWl0Rm9ybShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIHNvdXJjZUZyYW1lSUQsIFZl
Y3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXh0RmllbGRWYWx1ZXMsIHVpbnQ2NF90
IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAKICAgICAjIENhbGxiYWNr
IG1lc3NhZ2VzCiAgICAgVm9pZENhbGxiYWNrKFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lE
KQpAQCAtMjc1LDE4ICsyNzUsMTggQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRp
ZgogCiAgICAgIyBEYXRhYmFzZSBtZXNzYWdlcwotICAgIEV4Y2VlZGVkRGF0YWJhc2VRdW90YSh1
aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllciwgU3RyaW5nIGRhdGFiYXNl
TmFtZSwgU3RyaW5nIGRhdGFiYXNlRGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwg
dWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2Fn
ZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSkgLT4gKHVpbnQ2NF90IG5ld1F1b3RhKSBTeW5jaHJv
bm91cworICAgIEV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIsIFN0cmluZyBkYXRhYmFzZU5hbWUsIFN0
cmluZyBkYXRhYmFzZURpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90
IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2
NF90IGV4cGVjdGVkVXNhZ2UpIC0+ICh1aW50NjRfdCBuZXdRdW90YSkgU3luY2hyb25vdXMKIAog
ICAgICMgQXBwbGljYXRpb24gY2FjaGUgbWVzc2FnZXMKICAgICBSZWFjaGVkQXBwbGljYXRpb25D
YWNoZU9yaWdpblF1b3RhKFN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCBjdXJyZW50
UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQpIC0+ICh1aW50NjRfdCBuZXdRdW90YSkg
U3luY2hyb25vdXMKIAogICAgICMgR2VvbG9jYXRpb24gbWVzc2FnZXMKLSAgICBSZXF1ZXN0R2Vv
bG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgdWludDY0
X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCisgICAgUmVxdWVzdEdlb2xvY2F0
aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKICAgICAKICNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgICMgTWVkaWFTdGVhbSBtZXNzYWdlcwotICAgIFJl
cXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVp
bnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6
TWVkaWFTdHJlYW1SZXF1ZXN0IHJlcXVlc3QpCi0gICAgRW51bWVyYXRlTWVkaWFEZXZpY2VzRm9y
RnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVy
LCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcExldmVsRG9jdW1lbnRPcmln
aW5JZGVudGlmaWVyKQorICAgIFJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWlu
dDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1
Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRl
bnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCBy
ZXF1ZXN0KQorICAgIEVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJN
ZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklk
ZW50aWZpZXIpCiAgICAgQmVnaW5Nb25pdG9yaW5nQ2FwdHVyZURldmljZXMoKQogI2VuZGlmCiAK
QEAgLTQ3Myw3ICs0NzMsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCi0gICAgQ29udGVudEZpbHRlckRpZEJsb2Nr
TG9hZEZvckZyYW1lKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciB1bmJsb2Nr
SGFuZGxlciwgdWludDY0X3QgZnJhbWVJRCkKKyAgICBDb250ZW50RmlsdGVyRGlkQmxvY2tMb2Fk
Rm9yRnJhbWUoV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyIHVuYmxvY2tIYW5k
bGVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKICNlbmRpZgogCiAgICAgSXNQ
bGF5aW5nTWVkaWFEaWRDaGFuZ2UodW5zaWduZWQgc3RhdGUsIHVpbnQ2NF90IHNvdXJjZUVsZW1l
bnRJRCkKQEAgLTUzOSw3ICs1MzksNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAg
IExvYWRTeW5jaHJvbm91c1VSTFNjaGVtZVRhc2soc3RydWN0IFdlYktpdDo6VVJMU2NoZW1lVGFz
a1BhcmFtZXRlcnMgcGFyYW1ldGVycykgLT4gKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVz
cG9uc2UsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFZlY3RvcjxjaGFyPiBkYXRhKSBT
eW5jaHJvbm91cwogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSAgICBTaG91bGRB
bGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKHVpbnQ2NF90IGZyYW1lSUQsIHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luLCBib29sIG1heVByb21wdCkg
LT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlz
c2lvblN0YXRlIHBlcm1pc3Npb25TdGF0ZSkgQXN5bmMKKyAgICBTaG91bGRBbGxvd0RldmljZU9y
aWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbiwgYm9vbCBtYXlQcm9t
cHQpIC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBl
cm1pc3Npb25TdGF0ZSBwZXJtaXNzaW9uU3RhdGUpIEFzeW5jCiAjZW5kaWYKIAogI2lmIEVOQUJM
RShBVFRBQ0hNRU5UX0VMRU1FTlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcAppbmRleCBlMTY5MTM3ZjUzODlkMzBiYjhiMTFiM2E4ZTFmNTBjYTQzYWEwNmVk
Li45NWI1ODYzOWYzYzQwY2M2MzAwYTQ0ZjJjMDQ0OWVmZmVmOGFkMTM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTgyNywyNSArODI3LDI1IEBA
IHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVy
KiBsYXVuY2hlciwgSVBDOjpDb25uZWN0CiAjZW5kaWYKIH0KIAotV2ViRnJhbWVQcm94eSogV2Vi
UHJvY2Vzc1Byb3h5Ojp3ZWJGcmFtZSh1aW50NjRfdCBmcmFtZUlEKSBjb25zdAorV2ViRnJhbWVQ
cm94eSogV2ViUHJvY2Vzc1Byb3h5Ojp3ZWJGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkg
Y29uc3QKIHsKICAgICBpZiAoIVdlYkZyYW1lUHJveHlNYXA6OmlzVmFsaWRLZXkoZnJhbWVJRCkp
Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHJldHVy
biBtX2ZyYW1lTWFwLmdldChmcmFtZUlEKTsKIH0KIAotYm9vbCBXZWJQcm9jZXNzUHJveHk6OmNh
bkNyZWF0ZUZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpIGNvbnN0Citib29sIFdlYlByb2Nlc3NQcm94
eTo6Y2FuQ3JlYXRlRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIFdlYkZyYW1lUHJveHlNYXA6OmlzVmFsaWRLZXkoZnJhbWVJRCkgJiYgIW1fZnJhbWVN
YXAuY29udGFpbnMoZnJhbWVJRCk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpmcmFtZUNy
ZWF0ZWQodWludDY0X3QgZnJhbWVJRCwgV2ViRnJhbWVQcm94eSYgZnJhbWVQcm94eSkKK3ZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpmcmFtZUNyZWF0ZWQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdl
YkZyYW1lUHJveHkmIGZyYW1lUHJveHkpCiB7CiAgICAgbV9mcmFtZU1hcC5zZXQoZnJhbWVJRCwg
JmZyYW1lUHJveHkpOwogfQogCi12b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRGVzdHJveUZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRGVzdHJveUZyYW1l
KEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIC8vIElmIHRoZSBwYWdlIGlzIGNsb3Nl
ZCBiZWZvcmUgaXQgaGFzIGhhZCB0aGUgY2hhbmNlIHRvIHNlbmQgdGhlIERpZENyZWF0ZU1haW5G
cmFtZSBtZXNzYWdlCiAgICAgLy8gYmFjayB0byB0aGUgVUlQcm9jZXNzLCB0aGVuIHRoZSBmcmFt
ZURlc3Ryb3llZCBtZXNzYWdlIHdpbGwgc3RpbGwgYmUgcmVjZWl2ZWQgYmVjYXVzZSBpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCAzMDA5NmRkMzA4NTQ4
Yjg5MDQ5YzgzNTEwZWVhNzFiYjA1OTc2ZmZjLi4xOGY0ODgwYTBiYjJkNGQ4M2QyZmI2YzU5N2M4
N2M3Y2RkNmVjODk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIlZpc2libGVXZWJQYWdlQ291bnRlci5oIgog
I2luY2x1ZGUgIldlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9NZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvTWVzc2FnZVBvcnRJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
YWdlSWRlbnRpZmllci5oPgpAQCAtOTcsNyArOTgsNyBAQCBlbnVtIGNsYXNzIEFsbG93UHJvY2Vz
c0NhY2hpbmcgeyBObywgWWVzIH07CiAKIGNsYXNzIFdlYlByb2Nlc3NQcm94eSA6IHB1YmxpYyBB
dXhpbGlhcnlQcm9jZXNzUHJveHksIHB1YmxpYyBSZXNwb25zaXZlbmVzc1RpbWVyOjpDbGllbnQs
IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxXZWJQcm9jZXNzUHJveHk+LCBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8V2ViUHJvY2Vzc1Byb3h5PiwgcHJpdmF0ZSBQcm9jZXNzVGhyb3R0bGVyQ2xp
ZW50IHsKIHB1YmxpYzoKLSAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJG
cmFtZVByb3h5Pj4gV2ViRnJhbWVQcm94eU1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8V2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBSZWZQdHI8V2ViRnJhbWVQcm94eT4+IFdlYkZyYW1lUHJveHlN
YXA7CiAgICAgdHlwZWRlZiBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJQYWdl
UHJveHkqPiBXZWJQYWdlUHJveHlNYXA7CiAgICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBS
ZWZQdHI8QVBJOjpVc2VySW5pdGlhdGVkQWN0aW9uPj4gVXNlckluaXRpYXRlZEFjdGlvbk1hcDsK
IApAQCAtMTY0LDkgKzE2NSw5IEBAIHB1YmxpYzoKICAgICBSZXNwb25zaXZlbmVzc1RpbWVyJiBy
ZXNwb25zaXZlbmVzc1RpbWVyKCkgeyByZXR1cm4gbV9yZXNwb25zaXZlbmVzc1RpbWVyOyB9CiAg
ICAgYm9vbCBpc1Jlc3BvbnNpdmUoKSBjb25zdDsKIAotICAgIFdlYkZyYW1lUHJveHkqIHdlYkZy
YW1lKHVpbnQ2NF90KSBjb25zdDsKLSAgICBib29sIGNhbkNyZWF0ZUZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQpIGNvbnN0OwotICAgIHZvaWQgZnJhbWVDcmVhdGVkKHVpbnQ2NF90LCBXZWJGcmFtZVBy
b3h5Jik7CisgICAgV2ViRnJhbWVQcm94eSogd2ViRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyKSBjb25zdDsKKyAgICBib29sIGNhbkNyZWF0ZUZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllcikgY29uc3Q7CisgICAgdm9pZCBmcmFtZUNyZWF0ZWQoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBXZWJGcmFtZVByb3h5Jik7CiAgICAgdm9pZCBkaXNjb25uZWN0RnJhbWVzRnJvbVBhZ2Uo
V2ViUGFnZVByb3h5Kik7IC8vIEluY2x1ZGluZyBtYWluIGZyYW1lLgogICAgIHNpemVfdCBmcmFt
ZUNvdW50SW5QYWdlKFdlYlBhZ2VQcm94eSopIGNvbnN0OyAvLyBJbmNsdWRpbmcgbWFpbiBmcmFt
ZS4KIApAQCAtMzM1LDcgKzMzNiw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgLy8gSVBD
IG1lc3NhZ2UgaGFuZGxlcnMuCiAgICAgdm9pZCB1cGRhdGVCYWNrRm9yd2FyZEl0ZW0oY29uc3Qg
QmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlJik7Ci0gICAgdm9pZCBkaWREZXN0cm95RnJhbWUodWlu
dDY0X3QpOworICAgIHZvaWQgZGlkRGVzdHJveUZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
cik7CiAgICAgdm9pZCBkaWREZXN0cm95VXNlckdlc3R1cmVUb2tlbih1aW50NjRfdCk7CiAKICAg
ICBib29sIGNhbkJlQWRkZWRUb1dlYlByb2Nlc3NDYWNoZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGYz
ZDVlOTMxZTZkZWU5MDJhNGFjNWU1ZmM1YjEwZGQ0NjE1YjE1ZDAuLjMyYmFmZWE5ZTEwOTU4YzI1
Y2QxOTRkYTE4NDUzNmFkMDkzZjc1MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTIyLDcgKzIyLDcgQEAKIAogbWVz
c2FnZXMgLT4gV2ViUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBVcGRhdGVCYWNr
Rm9yd2FyZEl0ZW0oc3RydWN0IFdlYktpdDo6QmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlIGJhY2tG
b3J3YXJkTGlzdEl0ZW1TdGF0ZSkKLSAgICBEaWREZXN0cm95RnJhbWUodWludDY0X3QgZnJhbWVJ
RCkgCisgICAgRGlkRGVzdHJveUZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
KSAKIAogICAgIERpZERlc3Ryb3lVc2VyR2VzdHVyZVRva2VuKHVpbnQ2NF90IHVzZXJHZXN0dXJl
VG9rZW5JRCkgCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcu
bW0KaW5kZXggNjgxMWU4N2E0YTQyMTAwNWJkOTRhN2FjMjE2NTQzZWNjMDBhNzdmYy4uYzI5OTIx
NDU4YWYwMWZkOTdhNDAwOTJjNzEzZjY3YzQxZmY3N2U3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KQEAgLTcwMSw5ICs3MDEsOSBAQCAtIChOU1VJ
bnRlZ2VyKV93a19wYWdlQ291bnRGb3JQcmludEZvcm1hdHRlcjooX1dLV2ViVmlld1ByaW50Rm9y
bWF0dGVyICopcHJpbnRGbwogICAgIGlmIChfaXNQcmludGluZ1RvUERGKQogICAgICAgICByZXR1
cm4gMDsKIAotICAgIHVpbnQ2NF90IGZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQ7CiAgICAgaWYgKF9XS0ZyYW1lSGFuZGxlICpoYW5kbGUgPSBwcmludEZvcm1h
dHRlci5mcmFtZVRvUHJpbnQpCi0gICAgICAgIGZyYW1lSUQgPSBoYW5kbGUuX2ZyYW1lSUQ7Cisg
ICAgICAgIGZyYW1lSUQgPSBXZWJDb3JlOjpmcmFtZUlkZW50aWZpZXJGcm9tSUQoaGFuZGxlLl9m
cmFtZUlEKTsKICAgICBlbHNlIGlmIChhdXRvIG1haW5GcmFtZSA9IF9wYWdlLT5tYWluRnJhbWUo
KSkKICAgICAgICAgZnJhbWVJRCA9IG1haW5GcmFtZS0+ZnJhbWVJRCgpOwogICAgIGVsc2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IGIw
MjgyNDg5MjAwM2EwNDk4OTI5ZTcwNmE1OTA0NTlhNGY4NzFhY2QuLjgyZDM1NDIxN2I3MDY0MjAx
ZTNkN2IwNzZlNWIwNTliOTYwMTFjZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtMTA2Niw3ICsxMDY2LDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmhhbmRsZVNtYXJ0TWFnbmlmaWNhdGlvbkluZm9ybWF0aW9uRm9yUG90ZW50aWFsVGFw
KHVpbnQ2NF90IHIKICAgICBwYWdlQ2xpZW50KCkuaGFuZGxlU21hcnRNYWduaWZpY2F0aW9uSW5m
b3JtYXRpb25Gb3JQb3RlbnRpYWxUYXAocmVxdWVzdElELCByZW5kZXJSZWN0LCBmaXRFbnRpcmVS
ZWN0LCB2aWV3cG9ydE1pbmltdW1TY2FsZSwgdmlld3BvcnRNYXhpbXVtU2NhbGUpOwogfQogCi11
aW50MzJfdCBXZWJQYWdlUHJveHk6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERG
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBEcmF3VG9QREZD
YWxsYmFjazo6Q2FsbGJhY2tGdW5jdGlvbiYmIGNhbGxiYWNrKQordWludDMyX3QgV2ViUGFnZVBy
b3h5Ojpjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERihGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIERyYXdUb1BERkNhbGxiYWNrOjpD
YWxsYmFja0Z1bmN0aW9uJiYgY2FsbGJhY2spCiB7CiAgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2Vz
cygpKSB7CiAgICAgICAgIGNhbGxiYWNrKElQQzo6RGF0YVJlZmVyZW5jZSgpLCBDYWxsYmFja0Jh
c2U6OkVycm9yOjpPd25lcldhc0ludmFsaWRhdGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eS5jcHAKaW5kZXggZTYzNTNjY2RkNTRhZGZhNWFhNTkwNWI4OTczMDM0YmMxY2U5NTZmMi4u
N2Y1N2ZmODBhY2QyYjk1MTE1OTEwZjU5NTk0ZDFkZmNmNDM2ZDNjMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21h
dGlvblNlc3Npb25Qcm94eS5jcHAKQEAgLTE0Myw3ICsxNDMsNyBAQCBzdGF0aWMgSlNWYWx1ZVJl
ZiBldmFsdWF0ZUphdmFTY3JpcHRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmpl
Y3RSZWYgZgogICAgIGlmICghYXV0b21hdGlvblNlc3Npb25Qcm94eSkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogCi0gICAgdWludDY0X3QgZnJhbWVJRCA9
IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbik7CisgICAg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQgPSBXZWJDb3JlOjpmcmFtZUlkZW50aWZp
ZXJGcm9tSUQoSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9u
KSk7CiAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBh
cmd1bWVudHNbMV0sIGV4Y2VwdGlvbik7CiAgICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZihKU1Zh
bHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIGFyZ3VtZW50c1syXSwgZXhjZXB0aW9uKSk7CiAKQEAg
LTIyMCw3ICsyMjAsNyBAQCBXZWJDb3JlOjpFbGVtZW50KiBXZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5OjplbGVtZW50Rm9yTm9kZUhhbmRsZShXZWJGcmFtZSYgZnJhbQogCiB2b2lkIFdlYkF1dG9t
YXRpb25TZXNzaW9uUHJveHk6OmRpZENsZWFyV2luZG93T2JqZWN0Rm9yRnJhbWUoV2ViRnJhbWUm
IGZyYW1lKQogewotICAgIHVpbnQ2NF90IGZyYW1lSUQgPSBmcmFtZS5mcmFtZUlEKCk7CisgICAg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQgPSBmcmFtZS5mcmFtZUlEKCk7CiAgICAg
aWYgKEpTT2JqZWN0UmVmIHNjcmlwdE9iamVjdCA9IG1fd2ViRnJhbWVTY3JpcHRPYmplY3RNYXAu
dGFrZShmcmFtZUlEKSkKICAgICAgICAgSlNWYWx1ZVVucHJvdGVjdChmcmFtZS5qc0NvbnRleHQo
KSwgc2NyaXB0T2JqZWN0KTsKIApAQCAtMjMyLDcgKzIzMiw3IEBAIHZvaWQgV2ViQXV0b21hdGlv
blNlc3Npb25Qcm94eTo6ZGlkQ2xlYXJXaW5kb3dPYmplY3RGb3JGcmFtZShXZWJGcmFtZSYgZnJh
bWUpCiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpEaWRFdmFsdWF0ZUph
dmFTY3JpcHRGdW5jdGlvbihjYWxsYmFja0lELCBlcnJvck1lc3NhZ2UsIGVycm9yVHlwZSksIDAp
OwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmV2YWx1YXRlSmF2YVNjcmlw
dEZ1bmN0aW9uKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgU3RyaW5nJiBmdW5jdGlvbiwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRzLCBib29s
IGV4cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJndW1lbnQsIGludCBjYWxsYmFja1RpbWVvdXQsIHVp
bnQ2NF90IGNhbGxiYWNrSUQpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmV2YWx1
YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgZnVuY3Rpb24sIFZl
Y3RvcjxTdHJpbmc+IGFyZ3VtZW50cywgYm9vbCBleHBlY3RzSW1wbGljaXRDYWxsYmFja0FyZ3Vt
ZW50LCBpbnQgY2FsbGJhY2tUaW1lb3V0LCB1aW50NjRfdCBjYWxsYmFja0lEKQogewogICAgIFdl
YlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAg
ICAgaWYgKCFwYWdlKSB7CkBAIC0yNjMsNyArMjYzLDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvblByb3h5OjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRp
ZmkKICAgICAgICAgdG9KU1ZhbHVlKGNvbnRleHQsIGZ1bmN0aW9uKSwKICAgICAgICAgdG9KU0Fy
cmF5KGNvbnRleHQsIGFyZ3VtZW50cywgdG9KU1ZhbHVlLCAmZXhjZXB0aW9uKSwKICAgICAgICAg
SlNWYWx1ZU1ha2VCb29sZWFuKGNvbnRleHQsIGV4cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJndW1l
bnQpLAotICAgICAgICBKU1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCBmcmFtZUlEKSwKKyAgICAg
ICAgSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgZnJhbWVJRC50b1VJbnQ2NCgpKSwKICAgICAg
ICAgSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgY2FsbGJhY2tJRCksCiAgICAgICAgIEpTT2Jq
ZWN0TWFrZUZ1bmN0aW9uV2l0aENhbGxiYWNrKGNvbnRleHQsIG51bGxwdHIsIGV2YWx1YXRlSmF2
YVNjcmlwdENhbGxiYWNrKSwKICAgICAgICAgSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgY2Fs
bGJhY2tUaW1lb3V0KQpAQCAtMzAwLDcgKzMwMCw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b25Qcm94eTo6ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6UGFnZUlkZW50aWZp
CiAgICAgZGlkRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oZnJhbWVJRCwgY2FsbGJhY2tJRCwg
ZXhjZXB0aW9uTWVzc2FnZSwgZXJyb3JUeXBlKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvblByb3h5OjpkaWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbih1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBTdHJpbmcmIHJlc3VsdCwgY29uc3QgU3RyaW5n
JiBlcnJvclR5cGUpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZEV2YWx1YXRl
SmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50
NjRfdCBjYWxsYmFja0lELCBjb25zdCBTdHJpbmcmIHJlc3VsdCwgY29uc3QgU3RyaW5nJiBlcnJv
clR5cGUpCiB7CiAgICAgYXV0byBmaW5kUmVzdWx0ID0gbV93ZWJGcmFtZVBlbmRpbmdFdmFsdWF0
ZUphdmFTY3JpcHRDYWxsYmFja3NNYXAuZmluZChmcmFtZUlEKTsKICAgICBpZiAoZmluZFJlc3Vs
dCAhPSBtX3dlYkZyYW1lUGVuZGluZ0V2YWx1YXRlSmF2YVNjcmlwdENhbGxiYWNrc01hcC5lbmQo
KSkgewpAQCAtMzEzLDEyICszMTMsMTMgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5
OjpkaWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbih1aW50NjRfdCBmcmFtZUlELAogICAgIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpEaWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlv
bihjYWxsYmFja0lELCByZXN1bHQsIGVycm9yVHlwZSksIDApOwogfQogCi12b2lkIFdlYkF1dG9t
YXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGluYWwoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBvcmRpbmFs
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKKy8vIEZJWE1FOiBUaGVzZSBjYWxsYmFja3Mgc2hvdWxkIHRha2Ug
T3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPi4KK3ZvaWQgV2ViQXV0b21hdGlvblNl
c3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoT3JkaW5hbChXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50MzJf
dCBvcmRpbmFsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUGFn
ZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBp
ZiAoIXBhZ2UpIHsKICAgICAgICAgU3RyaW5nIHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlID0gSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVl
KEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkVycm9yTWVzc2FnZTo6V2luZG93Tm90
Rm91bmQpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9yVHlw
ZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBl
LCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0zMjYsMzcgKzMyNywzNyBAQCB2
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGlu
YWwoV2ViQ29yZTo6UGFnZUlkZW50aQogCiAgICAgV2ViRnJhbWUqIGZyYW1lID0gZnJhbWVJRCA/
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpIDogcGFnZS0+bWFpbldl
YkZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihm
cmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJh
bWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAg
IFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWUgPSBmcmFtZS0+Y29yZUZyYW1lKCk7CiAgICAgaWYg
KCFjb3JlRnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVy
cm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJv
clR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBXZWJDb3JlOjpGcmFt
ZSogY29yZUNoaWxkRnJhbWUgPSBjb3JlRnJhbWUtPnRyZWUoKS5zY29wZWRDaGlsZChvcmRpbmFs
KTsKICAgICBpZiAoIWNvcmVDaGlsZEZyYW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihm
cmFtZU5vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAg
ICAgV2ViRnJhbWUqIGNoaWxkRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqY29yZUNo
aWxkRnJhbWUpOwogICAgIGlmICghY2hpbGRGcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVsbG9wdCwgY2hpbGRGcmFtZS0+ZnJhbWVJ
RCgpKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRG
cmFtZVdpdGhOb2RlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0
X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhh
bmRsZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG5vZGVIYW5kbGUsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAgIGlmICghcGFnZSkgewogICAgICAgICBTdHJpbmcg
d2luZG93Tm90Rm91bmRFcnJvclR5cGUgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
SGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6RXJyb3JNZXNzYWdlOjpXaW5kb3dOb3RGb3VuZCk7Ci0gICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIod2luZG93Tm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKQEAgLTM2NCwzNyArMzY1LDM3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhhbmRsZShXZWJDb3JlOjpQYWdlSWRlCiAKICAg
ICBXZWJGcmFtZSogZnJhbWUgPSBmcmFtZUlEID8gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2Vi
RnJhbWUoZnJhbWVJRCkgOiBwYWdlLT5tYWluV2ViRnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKSB7
Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgV2ViQ29yZTo6RWxlbWVudCogY29yZUVsZW1l
bnQgPSBlbGVtZW50Rm9yTm9kZUhhbmRsZSgqZnJhbWUsIG5vZGVIYW5kbGUpOwogICAgIGlmICgh
aXM8V2ViQ29yZTo6SFRNTEZyYW1lRWxlbWVudEJhc2U+KGNvcmVFbGVtZW50KSkgewotICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAogICAgIFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWVGcm9tRWxlbWVu
dCA9IGRvd25jYXN0PFdlYkNvcmU6OkhUTUxGcmFtZUVsZW1lbnRCYXNlPigqY29yZUVsZW1lbnQp
LmNvbnRlbnRGcmFtZSgpOwogICAgIGlmICghY29yZUZyYW1lRnJvbUVsZW1lbnQpIHsKLSAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKICAgICBXZWJGcmFtZSogZnJhbWVGcm9tRWxlbWVudCA9IFdlYkZy
YW1lOjpmcm9tQ29yZUZyYW1lKCpjb3JlRnJhbWVGcm9tRWxlbWVudCk7CiAgICAgaWYgKCFmcmFt
ZUZyb21FbGVtZW50KSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRF
cnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJy
b3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgY29tcGxldGlvbkhh
bmRsZXIoV1RGOjpudWxsb3B0LCBmcmFtZUZyb21FbGVtZW50LT5mcmFtZUlEKCkpOwogfQogCi12
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUo
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBT
dHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWlu
dDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlBhZ2UqIHBhZ2Ug
PSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAgICAgaWYgKCFwYWdl
KSB7CiAgICAgICAgIFN0cmluZyB3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSA9IEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1ZShJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OldpbmRvd05vdEZvdW5kKTsK
LSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIod2luZG93Tm90Rm91bmRFcnJvclR5cGUsIDApOwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNDAyLDM3ICs0MDMsMzcgQEAgdm9pZCBXZWJB
dXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWUKIAogICAgIFdlYkZyYW1lKiBmcmFtZSA9IGZyYW1lSUQgPyBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSA6IHBhZ2UtPm1haW5XZWJGcmFtZSgp
OwogICAgIGlmICghZnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RG
b3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91
bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBXZWJDb3Jl
OjpGcmFtZSogY29yZUZyYW1lID0gZnJhbWUtPmNvcmVGcmFtZSgpOwogICAgIGlmICghY29yZUZy
YW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUs
IDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCB7
IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVD
aGlsZEZyYW1lID0gY29yZUZyYW1lLT50cmVlKCkuc2NvcGVkQ2hpbGQobmFtZSk7CiAgICAgaWYg
KCFjb3JlQ2hpbGRGcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZv
dW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3Vu
ZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFdlYkZyYW1l
KiBjaGlsZEZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmNvcmVDaGlsZEZyYW1lKTsK
ICAgICBpZiAoIWNoaWxkRnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVO
b3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90
Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBjb21w
bGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQsIGNoaWxkRnJhbWUtPmZyYW1lSUQoKSk7CiB9CiAK
LXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZVBhcmVudEZyYW1lKFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCB1aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVQYXJlbnRGcmFtZShX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUGFnZSog
cGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAo
IXBhZ2UpIHsKICAgICAgICAgU3RyaW5nIHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlID0gSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVlKElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkVycm9yTWVzc2FnZTo6V2luZG93Tm90Rm91
bmQpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSwg
MCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlLCB7
IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC00NDAsMjAgKzQ0MSwyMCBAQCB2b2lk
IFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVQYXJlbnRGcmFtZShXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSQogCiAgICAgV2ViRnJhbWUqIGZyYW1lID0gZnJhbWVJRCA/IFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpIDogcGFnZS0+bWFpbldlYkZy
YW1lKCk7CiAgICAgaWYgKCFmcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFt
ZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVO
b3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFdl
YkZyYW1lKiBwYXJlbnRGcmFtZSA9IGZyYW1lLT5wYXJlbnRGcmFtZSgpOwogICAgIGlmICghcGFy
ZW50RnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9y
VHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5
cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBjb21wbGV0aW9uSGFuZGxl
cihXVEY6Om51bGxvcHQsIHBhcmVudEZyYW1lLT5mcmFtZUlEKCkpOwogfQogCi12b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OmZvY3VzRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
cGFnZUlELCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5
Ojpmb2N1c0ZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpCkBAIC01MjgsNyAr
NTI5LDcgQEAgc3RhdGljIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udmVydFBvaW50RnJvbUZyYW1l
Q2xpZW50VG9Sb290VmlldyhXZWJDb3JlOjpGcmFtZVYKICAgICByZXR1cm4gY2xpZW50UG9pbnQ7
CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Y29tcHV0ZUVsZW1lbnRMYXlv
dXQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJp
bmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBDb29yZGluYXRlU3lz
dGVtIGNvb3JkaW5hdGVTeXN0ZW0sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3Ry
aW5nPiwgV2ViQ29yZTo6SW50UmVjdCwgT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBib29s
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6
Y29tcHV0ZUVsZW1lbnRMYXlvdXQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Ny
b2xsSW50b1ZpZXdJZk5lZWRlZCwgQ29vcmRpbmF0ZVN5c3RlbSBjb29yZGluYXRlU3lzdGVtLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkludFJlY3Qs
IE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiwgYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2Uo
cGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsKQEAgLTYzNiw3ICs2MzcsNyBAQCB2b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OmNvbXB1dGVFbGVtZW50TGF5b3V0KFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIHBhZwogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVsbG9wdCwgcmVzdWx0
RWxlbWVudEJvdW5kcywgcmVzdWx0SW5WaWV3Q2VudGVyUG9pbnQsIGlzT2JzY3VyZWQpOwogfQog
Ci12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnNlbGVjdE9wdGlvbkVsZW1lbnQoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9k
ZUhhbmRsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6c2VsZWN0T3B0
aW9uRWxlbWVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQ
YWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAg
IGlmICghcGFnZSkgewpAQCAtNzA0LDcgKzcwNSw3IEBAIHN0YXRpYyBXZWJDb3JlOjpJbnRSZWN0
IHNuYXBzaG90UmVjdEZvclNjcmVlbnNob3QoV2ViUGFnZSYgcGFnZSwgV2ViQ29yZTo6RWxlbWVu
CiAgICAgcmV0dXJuIHsgfTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojp0
YWtlU2NyZWVuc2hvdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGJv
b2wgY2xpcFRvVmlld3BvcnQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit2b2lkIFdlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHk6OnRha2VTY3JlZW5zaG90KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxl
LCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGJvb2wgY2xpcFRvVmlld3BvcnQsIHVpbnQ2
NF90IGNhbGxiYWNrSUQpCiB7CiAgICAgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaGFuZGxlOwog
CkBAIC03NTIsNyArNzUzLDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojp0YWtl
U2NyZWVuc2hvdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHUKICAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6RGlkVGFrZVNjcmVlbnNob3QoY2FsbGJhY2tJRCwgaGFu
ZGxlLCB7IH0pLCAwKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpnZXRD
b29raWVzRm9yRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBm
cmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFZlY3RvcjxX
ZWJDb3JlOjpDb29raWU+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0b21hdGlv
blNlc3Npb25Qcm94eTo6Z2V0Q29va2llc0ZvckZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4pPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAgICAgaWYgKCFwYWdlKSB7CkBAIC03NzcsNyArNzc4
LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpnZXRDb29raWVzRm9yRnJhbWUo
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUkKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEY6
Om51bGxvcHQsIGZvdW5kQ29va2llcyk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eTo6ZGVsZXRlQ29va2llKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0
X3QgZnJhbWVJRCwgU3RyaW5nIGNvb2tpZU5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0
aW9uYWw8U3RyaW5nPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkF1dG9tYXRpb25T
ZXNzaW9uUHJveHk6OmRlbGV0ZUNvb2tpZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQs
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgY29va2llTmFtZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFn
ZShwYWdlSUQpOwogICAgIGlmICghcGFnZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5o
CmluZGV4IDExNjc2NDUyNzdkYmMxOTMwYTVhN2E1OTdkY2JjMmRmM2VjZjU1YzkuLjVlMWIwZmNm
ZjBmYzg1OThiOGM3OTc3MGE2OGIxODFlNzhmNjM5MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lv
blByb3h5LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5j
bHVkZSAiQ29vcmRpbmF0ZVN5c3RlbS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQmFz
ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CkBAIC01MSw3ICs1Miw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlkQ2xlYXJXaW5kb3dPYmpl
Y3RGb3JGcmFtZShXZWJGcmFtZSYpOwogCi0gICAgdm9pZCBkaWRFdmFsdWF0ZUphdmFTY3JpcHRG
dW5jdGlvbih1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBTdHJp
bmcmIHJlc3VsdCwgY29uc3QgU3RyaW5nJiBlcnJvclR5cGUpOworICAgIHZvaWQgZGlkRXZhbHVh
dGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBj
YWxsYmFja0lELCBjb25zdCBTdHJpbmcmIHJlc3VsdCwgY29uc3QgU3RyaW5nJiBlcnJvclR5cGUp
OwogCiBwcml2YXRlOgogICAgIEpTT2JqZWN0UmVmIHNjcmlwdE9iamVjdEZvckZyYW1lKFdlYkZy
YW1lJik7CkBAIC02MSwyMiArNjIsMjIgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwogCiAgICAg
Ly8gQ2FsbGVkIGJ5IFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkgbWVzc2FnZXMKLSAgICB2b2lk
IGV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIGZ1bmN0aW9uLCBWZWN0b3I8U3RyaW5nPiBhcmd1
bWVudHMsIGJvb2wgZXhwZWN0c0ltcGxpY2l0Q2FsbGJhY2tBcmd1bWVudCwgaW50IGNhbGxiYWNr
VGltZW91dCwgdWludDY0X3QgY2FsbGJhY2tJRCk7Ci0gICAgdm9pZCByZXNvbHZlQ2hpbGRGcmFt
ZVdpdGhPcmRpbmFsKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCB1
aW50MzJfdCBvcmRpbmFsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4s
IHVpbnQ2NF90KT4mJik7Ci0gICAgdm9pZCByZXNvbHZlQ2hpbGRGcmFtZVdpdGhOb2RlSGFuZGxl
KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcm
IG5vZGVIYW5kbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWlu
dDY0X3QpPiYmKTsKLSAgICB2b2lkIHJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCB1aW50NjRfdCk+JiYpOwotICAg
IHZvaWQgcmVzb2x2ZVBhcmVudEZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRf
dCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2
NF90KT4mJik7Ci0gICAgdm9pZCBmb2N1c0ZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1
aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGNvbXB1dGVFbGVtZW50TGF5b3V0KFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9v
bCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBDb29yZGluYXRlU3lzdGVtLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkludFJlY3QsIE9wdGlvbmFsPFdl
YkNvcmU6OkludFBvaW50PiwgYm9vbCk+JiYpOwotICAgIHZvaWQgc2VsZWN0T3B0aW9uRWxlbWVu
dChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVI
YW5kbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+JiYpOwotICAg
IHZvaWQgdGFrZVNjcmVlbnNob3QoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZy
YW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGJv
b2wgY2xpcFRvVmlld3BvcnQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwotICAgIHZvaWQgZ2V0Q29v
a2llc0ZvckZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFZlY3RvcjxXZWJDb3JlOjpD
b29raWU+KT4mJik7Ci0gICAgdm9pZCBkZWxldGVDb29raWUoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBjb29raWVOYW1lLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKE9wdGlvbmFsPFN0cmluZz4pPiYmKTsKKyAgICB2b2lkIGV2YWx1YXRlSmF2YVNjcmlw
dEZ1bmN0aW9uKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgZnVuY3Rpb24sIFZlY3RvcjxTdHJpbmc+IGFyZ3VtZW50cywgYm9v
bCBleHBlY3RzSW1wbGljaXRDYWxsYmFja0FyZ3VtZW50LCBpbnQgY2FsbGJhY2tUaW1lb3V0LCB1
aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIHJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGlu
YWwoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWlu
dDMyX3Qgb3JkaW5hbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpPiYmKTsKKyAgICB2b2lkIHJlc29sdmVDaGlsZEZyYW1l
V2l0aE5vZGVIYW5kbGUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik+JiYpOworICAgIHZv
aWQgcmVzb2x2ZUNoaWxkRnJhbWVXaXRoTmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKT4mJik7
CisgICAgdm9pZCByZXNvbHZlUGFyZW50RnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxT
dHJpbmc+LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpPiYmKTsKKyAgICB2b2lkIGZvY3VzRnJh
bWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7Cisg
ICAgdm9pZCBjb21wdXRlRWxlbWVudExheW91dChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRv
Vmlld0lmTmVlZGVkLCBDb29yZGluYXRlU3lzdGVtLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9w
dGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkludFJlY3QsIE9wdGlvbmFsPFdlYkNvcmU6OkludFBv
aW50PiwgYm9vbCk+JiYpOworICAgIHZvaWQgc2VsZWN0T3B0aW9uRWxlbWVudChXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBTdHJpbmcgbm9kZUhhbmRs
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJik7CisgICAgdm9p
ZCB0YWtlU2NyZWVuc2hvdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVk
LCBib29sIGNsaXBUb1ZpZXdwb3J0LCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIGdl
dENvb2tpZXNGb3JGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFZlY3Rv
cjxXZWJDb3JlOjpDb29raWU+KT4mJik7CisgICAgdm9pZCBkZWxldGVDb29raWUoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgU3RyaW5nIGNvb2tpZU5h
bWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+JiYpOwogCiAgICAg
U3RyaW5nIG1fc2Vzc2lvbklkZW50aWZpZXI7CiAKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBKU09i
amVjdFJlZj4gbV93ZWJGcmFtZVNjcmlwdE9iamVjdE1hcDsKLSAgICBIYXNoTWFwPHVpbnQ2NF90
LCBWZWN0b3I8dWludDY0X3Q+PiBtX3dlYkZyYW1lUGVuZGluZ0V2YWx1YXRlSmF2YVNjcmlwdENh
bGxiYWNrc01hcDsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgSlNPYmpl
Y3RSZWY+IG1fd2ViRnJhbWVTY3JpcHRPYmplY3RNYXA7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIFZlY3Rvcjx1aW50NjRfdD4+IG1fd2ViRnJhbWVQZW5kaW5nRXZhbHVh
dGVKYXZhU2NyaXB0Q2FsbGJhY2tzTWFwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1
dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgppbmRleCBkNzJm
ODlkMjYzNTljZjAxY2NmZDUzMWU5NmUwMWY0NDQwOWFhZjU4Li5mMjc2NDliOWI3MzEwYmE1OTEz
YjBkNmZmZmUxN2YyMjRlYzVmNjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9u
UHJveHkubWVzc2FnZXMuaW4KQEAgLTIxLDIxICsyMSwyMSBAQAogIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBt
ZXNzYWdlcyAtPiBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5IHsKLSAgICBFdmFsdWF0ZUphdmFT
Y3JpcHRGdW5jdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFN0cmluZyBmdW5jdGlvbiwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRzLCBib29sIGV4
cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJndW1lbnQsIGludCBjYWxsYmFja1RpbWVvdXQsIHVpbnQ2
NF90IGNhbGxiYWNrSUQpCisgICAgRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
U3RyaW5nIGZ1bmN0aW9uLCBWZWN0b3I8U3RyaW5nPiBhcmd1bWVudHMsIGJvb2wgZXhwZWN0c0lt
cGxpY2l0Q2FsbGJhY2tBcmd1bWVudCwgaW50IGNhbGxiYWNrVGltZW91dCwgdWludDY0X3QgY2Fs
bGJhY2tJRCkKIAotICAgIFJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGluYWwoV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBvcmRpbmFsKSAt
PiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIHVpbnQ2NF90IGZyYW1lSUQpIEFzeW5jCi0g
ICAgUmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhhbmRsZShXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlKSAtPiAoT3B0aW9u
YWw8U3RyaW5nPiBlcnJvclR5cGUsIHVpbnQ2NF90IGZyYW1lSUQpIEFzeW5jCi0gICAgUmVzb2x2
ZUNoaWxkRnJhbWVXaXRoTmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2
NF90IGZyYW1lSUQsIFN0cmluZyBuYW1lKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUs
IHVpbnQ2NF90IGZyYW1lSUQpIEFzeW5jCi0gICAgUmVzb2x2ZVBhcmVudEZyYW1lKFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCkgLT4gKE9wdGlvbmFsPFN0
cmluZz4gZXJyb3JUeXBlLCB1aW50NjRfdCBmcmFtZUlEKSBBc3luYworICAgIFJlc29sdmVDaGls
ZEZyYW1lV2l0aE9yZGluYWwoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDMyX3Qgb3JkaW5hbCkgLT4gKE9wdGlvbmFs
PFN0cmluZz4gZXJyb3JUeXBlLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkgQXN5
bmMKKyAgICBSZXNvbHZlQ2hpbGRGcmFtZVdpdGhOb2RlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBu
b2RlSGFuZGxlKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlEKSBBc3luYworICAgIFJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUo
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgU3RyaW5nIG5hbWUpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIEFzeW5jCisgICAgUmVzb2x2ZVBhcmVudEZy
YW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQpIEFzeW5jCiAKLSAgICBGb2N1c0ZyYW1lKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCkKKyAgICBGb2N1c0ZyYW1lKFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQpCiAKLSAgICBDb21wdXRlRWxlbWVudExheW91dChXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9s
bEludG9WaWV3SWZOZWVkZWQsIGVudW06dWludDhfdCBXZWJLaXQ6OkNvb3JkaW5hdGVTeXN0ZW0g
Y29vcmRpbmF0ZVN5c3RlbSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBXZWJDb3Jl
OjpJbnRSZWN0IHJlY3QsIE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiBpblZpZXdDZW50ZXJQ
b2ludCwgYm9vbCBpc09ic2N1cmVkKSBBc3luYworICAgIENvbXB1dGVFbGVtZW50TGF5b3V0KFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGVu
dW06dWludDhfdCBXZWJLaXQ6OkNvb3JkaW5hdGVTeXN0ZW0gY29vcmRpbmF0ZVN5c3RlbSkgLT4g
KE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBXZWJDb3JlOjpJbnRSZWN0IHJlY3QsIE9wdGlv
bmFsPFdlYkNvcmU6OkludFBvaW50PiBpblZpZXdDZW50ZXJQb2ludCwgYm9vbCBpc09ic2N1cmVk
KSBBc3luYwogCi0gICAgU2VsZWN0T3B0aW9uRWxlbWVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlKSAtPiAoT3B0aW9u
YWw8U3RyaW5nPiBlcnJvclR5cGUpIEFzeW5jCisgICAgU2VsZWN0T3B0aW9uRWxlbWVudChXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBTdHJpbmcgbm9kZUhhbmRsZSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlKSBB
c3luYwogCi0gICAgVGFrZVNjcmVlbnNob3QoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
LCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmll
d0lmTmVlZGVkLCBib29sIGNsaXBUb1ZpZXdwb3J0LCB1aW50NjRfdCBjYWxsYmFja0lEKQorICAg
IFRha2VTY3JlZW5zaG90KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbElu
dG9WaWV3SWZOZWVkZWQsIGJvb2wgY2xpcFRvVmlld3BvcnQsIHVpbnQ2NF90IGNhbGxiYWNrSUQp
CiAKLSAgICBHZXRDb29raWVzRm9yRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
LCB1aW50NjRfdCBmcmFtZUlEKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIFZlY3Rv
cjxXZWJDb3JlOjpDb29raWU+IGNvb2tpZXMpIEFzeW5jCi0gICAgRGVsZXRlQ29va2llKFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIGNvb2tp
ZU5hbWUpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSkgQXN5bmMKKyAgICBHZXRDb29r
aWVzRm9yRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBWZWN0
b3I8V2ViQ29yZTo6Q29va2llPiBjb29raWVzKSBBc3luYworICAgIERlbGV0ZUNvb2tpZShXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBTdHJpbmcgY29va2llTmFtZSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlKSBB
c3luYwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJh
bWUubW0KaW5kZXggMDk5NzYzNzJmMDczNzU3ZWVkYjE3NDkzZDczMWZhMGEzZDQ2NjhjNi4uMjU3
M2U2ZDQ4NTllNWUwY2ZlNGE2N2Y1ZjRmM2JiYTZiMzBmZTg2NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQ
bHVnSW5GcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tCkBAIC00OCw3ICs0OCw3IEBA
IEBpbXBsZW1lbnRhdGlvbiBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZSB7CiAKICsgKGluc3RhbmNl
dHlwZSlsb29rVXBGcmFtZUZyb21IYW5kbGU6KF9XS0ZyYW1lSGFuZGxlICopaGFuZGxlCiB7Ci0g
ICAgcmV0dXJuIHdyYXBwZXIoV2ViS2l0OjpXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFt
ZShoYW5kbGUuX2ZyYW1lSUQpKTsKKyAgICByZXR1cm4gd3JhcHBlcihXZWJLaXQ6OldlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRCho
YW5kbGUuX2ZyYW1lSUQpKSk7CiB9CiAKIC0gKHZvaWQpZGVhbGxvYwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdEZyYW1l
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9X
ZWJLaXRGcmFtZS5jcHAKaW5kZXggZGE2NzlkYjFiNDgyZjJiOWZmODc4YzQ0YzBjOTA4ZGNmOTdl
NzRjYy4uYTRmNTJiMmU1MGZhMmMzN2ExODI5YzllNGUyNmY0ODY5MGU3NTVjZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktp
dEZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2dsaWIvV2ViS2l0RnJhbWUuY3BwCkBAIC03NCw3ICs3NCw3IEBAIGd1aW50NjQgd2Via2l0
X2ZyYW1lX2dldF9pZChXZWJLaXRGcmFtZSogZnJhbWUpCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwoV0VCS0lUX0lTX0ZSQU1FKGZyYW1lKSwgMCk7CiAKLSAgICByZXR1cm4gZnJhbWUtPnBy
aXYtPndlYkZyYW1lLT5mcmFtZUlEKCk7CisgICAgcmV0dXJuIGZyYW1lLT5wcml2LT53ZWJGcmFt
ZS0+ZnJhbWVJRCgpLnRvVUludDY0KCk7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IGM0OGNk
ZDg1Nzk0ZDkyMTY5OTUyMGMyZDgzOGE1YjY3MGYzYjJmZjEuLjVkZmM0MjU3ODg0YmMyOTJhNGRh
ZThjNDQ1ZTkyYjczMjdhOTZjYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAgLTE1OSw3ICsxNTksNyBAQCB2
b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXImIHJlc291
cmNlTG9hZGVyLCBDYWNoZWRSZXNvdQogCiAgICAgV2ViUmVzb3VyY2VMb2FkZXI6OlRyYWNraW5n
UGFyYW1ldGVycyB0cmFja2luZ1BhcmFtZXRlcnM7CiAgICAgdHJhY2tpbmdQYXJhbWV0ZXJzLnBh
Z2VJRCA9IGZyYW1lTG9hZGVyQ2xpZW50LnBhZ2VJRCgpLnZhbHVlT3IoUGFnZUlkZW50aWZpZXIg
eyB9KTsKLSAgICB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCA9IGZyYW1lTG9hZGVyQ2xpZW50
LmZyYW1lSUQoKS52YWx1ZU9yKDApOworICAgIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlEID0g
ZnJhbWVMb2FkZXJDbGllbnQuZnJhbWVJRCgpLnZhbHVlT3IoRnJhbWVJZGVudGlmaWVyIHsgfSk7
CiAgICAgdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQgPSBpZGVudGlmaWVyOwogICAgIGF1
dG8gc2Vzc2lvbklEID0gZnJhbWVMb2FkZXJDbGllbnQuc2Vzc2lvbklEKCk7CiAKQEAgLTE2OCw3
ICsxNjgsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQoUmVzb3VyY2VM
b2FkZXImIHJlc291cmNlTG9hZGVyLCBDYWNoZWRSZXNvdQogICAgIC8vIHRoZW4gd2Ugc2hvdWxk
IHJlbWVtYmVyIHRoZSBSZXNvdXJjZUxvYWRlciBpbiBvdXIgcmVjb3JkcyBidXQgbm90IHNjaGVk
dWxlIGl0IGluIHRoZSBOZXR3b3JrUHJvY2Vzcy4KICAgICBpZiAocmVzb3VyY2VMb2FkZXIuZG9j
dW1lbnRMb2FkZXIoKS0+c2NoZWR1bGVBcmNoaXZlTG9hZChyZXNvdXJjZUxvYWRlciwgcmVzb3Vy
Y2VMb2FkZXIucmVxdWVzdCgpKSkgewogICAgICAgICBMT0coTmV0d29ya1NjaGVkdWxpbmcsICIo
V2ViUHJvY2VzcykgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZCwgdXJsICclcycgd2ls
bCBiZSBoYW5kbGVkIGFzIGFuIGFyY2hpdmUgcmVzb3VyY2UuIiwgcmVzb3VyY2VMb2FkZXIudXJs
KCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGhhbmRsZWQgYXMg
YW4gYXJjaGl2ZSByZXNvdXJjZSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZy
YW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNl
TG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJh
Y2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIGlkZW50aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBo
YW5kbGVkIGFzIGFuIGFyY2hpdmUgcmVzb3VyY2UgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiki
LCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUlu
dDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIGlkZW50aWZpZXIp
OwogICAgICAgICBtX3dlYlJlc291cmNlTG9hZGVycy5zZXQoaWRlbnRpZmllciwgV2ViUmVzb3Vy
Y2VMb2FkZXI6OmNyZWF0ZShyZXNvdXJjZUxvYWRlciwgdHJhY2tpbmdQYXJhbWV0ZXJzKSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xNzYsMTQgKzE3NiwxNCBAQCB2b2lkIFdlYkxvYWRl
clN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTG9hZGVyLCBD
YWNoZWRSZXNvdQogCiAgICAgaWYgKHJlc291cmNlTG9hZGVyLmRvY3VtZW50TG9hZGVyKCktPmFw
cGxpY2F0aW9uQ2FjaGVIb3N0KCkubWF5YmVMb2FkUmVzb3VyY2UocmVzb3VyY2VMb2FkZXIsIHJl
c291cmNlTG9hZGVyLnJlcXVlc3QoKSwgcmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnVybCgpKSkg
ewogICAgICAgICBMT0coTmV0d29ya1NjaGVkdWxpbmcsICIoV2ViUHJvY2VzcykgV2ViTG9hZGVy
U3RyYXRlZ3k6OnNjaGVkdWxlTG9hZCwgdXJsICclcycgd2lsbCBiZSBsb2FkZWQgZnJvbSBhcHBs
aWNhdGlvbiBjYWNoZS4iLCByZXNvdXJjZUxvYWRlci51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0
YSgpKTsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNj
aGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgbG9hZGVkIGZyb20gYXBwbGljYXRpb24gY2FjaGUgKGZy
YW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJl
c291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2lu
Z1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlE
LCBpZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxv
YWRlciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgbG9hZGVkIGZyb20gYXBwbGljYXRpb24g
Y2FjaGUgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgp
LCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVy
cy5mcmFtZUlELnRvVUludDY0KCksIGlkZW50aWZpZXIpOwogICAgICAgICBtX3dlYlJlc291cmNl
TG9hZGVycy5zZXQoaWRlbnRpZmllciwgV2ViUmVzb3VyY2VMb2FkZXI6OmNyZWF0ZShyZXNvdXJj
ZUxvYWRlciwgdHJhY2tpbmdQYXJhbWV0ZXJzKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
ICAgICBpZiAocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnVybCgpLnByb3RvY29sSXNEYXRhKCkp
IHsKICAgICAgICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5nLCAiKFdlYlByb2Nlc3MpIFdlYkxvYWRl
clN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQsIHVybCAnJXMnIHdpbGwgYmUgbG9hZGVkIGFzIGRhdGEu
IiwgcmVzb3VyY2VMb2FkZXIudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVS
TCB3aWxsIGJlIGxvYWRlZCBhcyBkYXRhIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVz
b3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgp
LCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7CisgICAgICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxs
IGJlIGxvYWRlZCBhcyBkYXRhIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VM
b2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFj
a2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsKICAgICAgICAg
c3RhcnRMb2NhbExvYWQocmVzb3VyY2VMb2FkZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQpA
QCAtMTkxLDcgKzE5MSw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZChS
ZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMb2FkZXIsIENhY2hlZFJlc291CiAjaWYgVVNFKFFVSUNL
X0xPT0spCiAgICAgaWYgKGlzUXVpY2tMb29rUHJldmlld1VSTChyZXNvdXJjZUxvYWRlci5yZXF1
ZXN0KCkudXJsKCkpKSB7CiAgICAgICAgIExPRyhOZXR3b3JrU2NoZWR1bGluZywgIihXZWJQcm9j
ZXNzKSBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkLCB1cmwgJyVzJyB3aWxsIGJlIGhh
bmRsZWQgYXMgYSBRdWlja0xvb2sgcmVzb3VyY2UuIiwgcmVzb3VyY2VMb2FkZXIudXJsKCkuc3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVz
b3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGhhbmRsZWQgYXMgYSBRdWlj
a0xvb2sgcmVzb3VyY2UgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRl
ci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5n
UGFyYW1ldGVycy5mcmFtZUlELCBpZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgaGFuZGxl
ZCBhcyBhIFF1aWNrTG9vayByZXNvdXJjZSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJl
c291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQo
KSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmllcik7CiAg
ICAgICAgIHN0YXJ0TG9jYWxMb2FkKHJlc291cmNlTG9hZGVyKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KQEAgLTIwMiw3ICsyMDIsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVs
ZUxvYWQoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTG9hZGVyLCBDYWNoZWRSZXNvdQogICAgIC8v
IGh0dHBzOi8vYmxvZ3MuZ25vbWUub3JnL2FsZXhsLzIwMTIvMDEvMjYvcmVzb3VyY2VzLWluLWds
aWIvCiAgICAgaWYgKHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS51cmwoKS5wcm90b2NvbElzKCJy
ZXNvdXJjZSIpKSB7CiAgICAgICAgIExPRyhOZXR3b3JrU2NoZWR1bGluZywgIihXZWJQcm9jZXNz
KSBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkLCB1cmwgJyVzJyB3aWxsIGJlIGhhbmRs
ZWQgYXMgYSBHUmVzb3VyY2UuIiwgcmVzb3VyY2VMb2FkZXIudXJsKCkuc3RyaW5nKCkudXRmOCgp
LmRhdGEoKSk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIs
ICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGhhbmRsZWQgYXMgYSBHUmVzb3VyY2UgKGZyYW1l
ID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1Bh
cmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBp
ZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRl
ciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgaGFuZGxlZCBhcyBhIEdSZXNvdXJjZSAoZnJh
bWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5n
UGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQu
dG9VSW50NjQoKSwgaWRlbnRpZmllcik7CiAgICAgICAgIHN0YXJ0TG9jYWxMb2FkKHJlc291cmNl
TG9hZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTIxMiwxMSArMjEyLDExIEBAIHZv
aWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciYgcmVzb3Vy
Y2VMb2FkZXIsIENhY2hlZFJlc291CiAgICAgV2ViU2VydmljZVdvcmtlclByb3ZpZGVyOjpzaW5n
bGV0b24oKS5oYW5kbGVGZXRjaChyZXNvdXJjZUxvYWRlciwgc2Vzc2lvbklELCBzaG91bGRDbGVh
clJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBbdGhpcywgdHJhY2tpbmdQYXJhbWV0ZXJz
LCBpZGVudGlmaWVyLCBzZXNzaW9uSUQsIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QsIG1heGltdW1CdWZmZXJpbmdUaW1lID0gbWF4aW11bUJ1ZmZlcmluZ1RpbWUocmVz
b3VyY2UpLCByZXNvdXJjZUxvYWRlciA9IG1ha2VSZWYocmVzb3VyY2VMb2FkZXIpXSAoU2Vydmlj
ZVdvcmtlckNsaWVudEZldGNoOjpSZXN1bHQgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYg
KHJlc3VsdCAhPSBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OlJlc3VsdDo6VW5oYW5kbGVkKSB7
CiAgICAgICAgICAgICBMT0coTmV0d29ya1NjaGVkdWxpbmcsICIoV2ViUHJvY2VzcykgV2ViTG9h
ZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZCwgdXJsICclcycgd2lsbCBiZSBzY2hlZHVsZWQgdGhy
b3VnaCBTZXJ2aWNlV29ya2VyIGhhbmRsZSBmZXRjaCBhbGdvcml0aG0iLCByZXNvdXJjZUxvYWRl
ci0+dXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKLSAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIuZ2V0KCksICJzY2hlZHVsZUxvYWQ6IFVSTCB3
aWxsIGJlIHNjaGVkdWxlZCB0aHJvdWdoIFNlcnZpY2VXb3JrZXIgaGFuZGxlIGZldGNoIGFsZ29y
aXRobSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLT5mcmFtZSgp
LCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVy
cy5mcmFtZUlELCBpZGVudGlmaWVyKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQocmVzb3VyY2VMb2FkZXIuZ2V0KCksICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIHNjaGVk
dWxlZCB0aHJvdWdoIFNlcnZpY2VXb3JrZXIgaGFuZGxlIGZldGNoIGFsZ29yaXRobSAoZnJhbWUg
PSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3Vy
Y2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLT5mcmFtZSgpLCB0cmFja2luZ1Bh
cmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRv
VUludDY0KCksIGlkZW50aWZpZXIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAg
ICAgICAgIGlmIChyZXNvdXJjZUxvYWRlci0+b3B0aW9ucygpLnNlcnZpY2VXb3JrZXJzTW9kZSA9
PSBTZXJ2aWNlV29ya2Vyc01vZGU6Ok9ubHkpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIuZ2V0KCksICJzY2hlZHVsZUxvYWQ6IHVuYWJs
ZSB0byBzY2hlZHVsZSBVUkwgdGhyb3VnaCBTZXJ2aWNlV29ya2VyIGhhbmRsZSBmZXRjaCBhbGdv
cml0aG0gKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci0+ZnJhbWUo
KSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRl
cnMuZnJhbWVJRCwgaWRlbnRpZmllcik7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9J
Rl9BTExPV0VEKHJlc291cmNlTG9hZGVyLmdldCgpLCAic2NoZWR1bGVMb2FkOiB1bmFibGUgdG8g
c2NoZWR1bGUgVVJMIHRocm91Z2ggU2VydmljZVdvcmtlciBoYW5kbGUgZmV0Y2ggYWxnb3JpdGht
IChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAi
LCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXItPmZyYW1lKCksIHRy
YWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZy
YW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmllcik7CiAgICAgICAgICAgICBjYWxsT25NYWluVGhy
ZWFkKFtyZXNvdXJjZUxvYWRlciA9IFdURk1vdmUocmVzb3VyY2VMb2FkZXIpXSB7CiAgICAgICAg
ICAgICAgICAgYXV0byBlcnJvciA9IGludGVybmFsRXJyb3IocmVzb3VyY2VMb2FkZXItPnJlcXVl
c3QoKS51cmwoKSk7CiAgICAgICAgICAgICAgICAgZXJyb3Iuc2V0VHlwZShSZXNvdXJjZUVycm9y
OjpUeXBlOjpDYW5jZWxsYXRpb24pOwpAQCAtMjI4LDEzICsyMjgsMTMgQEAgdm9pZCBXZWJMb2Fk
ZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlciwg
Q2FjaGVkUmVzb3UKICAgICAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJMb2Fk
ZXJTdHJhdGVneSgpLnRyeUxvYWRpbmdVc2luZ1VSTFNjaGVtZUhhbmRsZXIocmVzb3VyY2VMb2Fk
ZXIpKQogICAgICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViTG9hZGVyU3RyYXRl
Z3koKS5zY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MocmVzb3VyY2VMb2FkZXIuZ2V0KCks
IHJlc291cmNlTG9hZGVyLT5yZXF1ZXN0KCksIHRyYWNraW5nUGFyYW1ldGVycywgc2Vzc2lvbklE
LCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBtYXhpbXVtQnVmZmVy
aW5nVGltZSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQocmVzb3VyY2VMb2FkZXIuZ2V0KCksICJzY2hlZHVsZUxvYWQ6IFVSTCBub3QgaGFuZGxlZCBi
eSBhbnkgaGFuZGxlcnMgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRl
ci0+ZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2lu
Z1BhcmFtZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7CisgICAgICAgICAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLmdldCgpLCAic2NoZWR1bGVMb2FkOiBVUkwgbm90
IGhhbmRsZWQgYnkgYW55IGhhbmRsZXJzIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVz
b3VyY2VMb2FkZXItPmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQo
KSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmllcik7CiAg
ICAgfSk7CiAjZWxzZQogICAgIGlmICghdHJ5TG9hZGluZ1VzaW5nVVJMU2NoZW1lSGFuZGxlcihy
ZXNvdXJjZUxvYWRlcikpCiAgICAgICAgIHNjaGVkdWxlTG9hZEZyb21OZXR3b3JrUHJvY2Vzcyhy
ZXNvdXJjZUxvYWRlciwgcmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLCB0cmFja2luZ1BhcmFtZXRl
cnMsIHNlc3Npb25JRCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwg
bWF4aW11bUJ1ZmZlcmluZ1RpbWUocmVzb3VyY2UpKTsKICAgICBlbHNlCi0gICAgICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCBub3Qg
aGFuZGxlZCBieSBhbnkgaGFuZGxlcnMgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNv
dXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCks
IHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBpZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIG5vdCBo
YW5kbGVkIGJ5IGFueSBoYW5kbGVycyAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIs
IGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291
cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwg
dHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmllcik7CiAjZW5k
aWYKIH0KIApAQCAtMzI1LDcgKzMyNSw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVk
dWxlTG9hZEZyb21OZXR3b3JrUHJvY2VzcyhSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMCiAgICAg
aWYgKGxvYWRQYXJhbWV0ZXJzLm9wdGlvbnMubW9kZSAhPSBGZXRjaE9wdGlvbnM6Ok1vZGU6Ok5h
dmlnYXRlKSB7CiAgICAgICAgIEFTU0VSVChsb2FkUGFyYW1ldGVycy5zb3VyY2VPcmlnaW4pOwog
ICAgICAgICBpZiAoIWxvYWRQYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbikgewotICAgICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9h
ZDogbm8gc291cmNlT3JpZ2luIChmcmFtZSA9ICVwLCBwcmlvcml0eSA9ICVkLCBwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0
ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgc3RhdGljX2Nhc3Q8aW50PihyZXNvdXJjZUxv
YWRlci5yZXF1ZXN0KCkucHJpb3JpdHkoKSksIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJ
bnQ2NCgpLCBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlELCBsb2FkUGFyYW1ldGVycy5pZGVudGlm
aWVyKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQocmVzb3VyY2VM
b2FkZXIsICJzY2hlZHVsZUxvYWQ6IG5vIHNvdXJjZU9yaWdpbiAoZnJhbWUgPSAlcCwgcHJpb3Jp
dHkgPSAlZCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHN0YXRpY19j
YXN0PGludD4ocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnByaW9yaXR5KCkpLCBsb2FkUGFyYW1l
dGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJ
bnQ2NCgpLCBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyKTsKICAgICAgICAgICAgIHNjaGVkdWxl
SW50ZXJuYWxseUZhaWxlZExvYWQocmVzb3VyY2VMb2FkZXIpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CkBAIC0zNDgsOSArMzQ4LDkgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6
c2NoZWR1bGVMb2FkRnJvbU5ldHdvcmtQcm9jZXNzKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUwK
IAogICAgIEFTU0VSVCgobG9hZFBhcmFtZXRlcnMud2ViUGFnZUlEICYmIGxvYWRQYXJhbWV0ZXJz
LndlYkZyYW1lSUQpIHx8IGxvYWRQYXJhbWV0ZXJzLmNsaWVudENyZWRlbnRpYWxQb2xpY3kgPT0g
Q2xpZW50Q3JlZGVudGlhbFBvbGljeTo6Q2Fubm90QXNrQ2xpZW50Rm9yQ3JlZGVudGlhbHMpOwog
Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9h
ZDogUmVzb3VyY2UgaXMgYmVpbmcgc2NoZWR1bGVkIHdpdGggdGhlIE5ldHdvcmtQcm9jZXNzIChm
cmFtZSA9ICVwLCBwcmlvcml0eSA9ICVkLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9
ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIu
ZnJhbWUoKSwgc3RhdGljX2Nhc3Q8aW50PihyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkucHJpb3Jp
dHkoKSksIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVy
cy53ZWJGcmFtZUlELCBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyKTsKKyAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBSZXNvdXJjZSBpcyBi
ZWluZyBzY2hlZHVsZWQgd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3MgKGZyYW1lID0gJXAsIHByaW9y
aXR5ID0gJWQsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJl
c291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCBzdGF0aWNf
Y2FzdDxpbnQ+KHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS5wcmlvcml0eSgpKSwgbG9hZFBhcmFt
ZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9V
SW50NjQoKSwgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllcik7CiAgICAgaWYgKCFXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9u
KCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlNjaGVkdWxl
UmVzb3VyY2VMb2FkKGxvYWRQYXJhbWV0ZXJzKSwgMCkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0df
RVJST1JfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVW5hYmxlIHRv
IHNjaGVkdWxlIHJlc291cmNlIHdpdGggdGhlIE5ldHdvcmtQcm9jZXNzIChmcmFtZSA9ICVwLCBw
cmlvcml0eSA9ICVkLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAi
LCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgc3Rh
dGljX2Nhc3Q8aW50PihyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkucHJpb3JpdHkoKSksIGxvYWRQ
YXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlE
LCBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Jf
SUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVW5hYmxlIHRvIHNjaGVk
dWxlIHJlc291cmNlIHdpdGggdGhlIE5ldHdvcmtQcm9jZXNzIChmcmFtZSA9ICVwLCBwcmlvcml0
eSA9ICVkLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNv
dXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgc3RhdGljX2Nh
c3Q8aW50PihyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkucHJpb3JpdHkoKSksIGxvYWRQYXJhbWV0
ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUlu
dDY0KCksIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIpOwogICAgICAgICAvLyBXZSBwcm9iYWJs
eSBmYWlsZWQgdG8gc2NoZWR1bGUgdGhpcyBsb2FkIHdpdGggdGhlIE5ldHdvcmtQcm9jZXNzIGJl
Y2F1c2UgaXQgaGFkIGNyYXNoZWQuCiAgICAgICAgIC8vIFRoaXMgbG9hZCB3aWxsIG5ldmVyIHN1
Y2NlZWQgc28gd2Ugd2lsbCBzY2hlZHVsZSBpdCB0byBmYWlsIGFzeW5jaHJvbm91c2x5LgogICAg
ICAgICBzY2hlZHVsZUludGVybmFsbHlGYWlsZWRMb2FkKHJlc291cmNlTG9hZGVyKTsKQEAgLTUy
MCwxOCArNTIwLDE4IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNvdXJjZVN5bmNo
cm9ub3VzbHkoRnJhbWVMb2FkZXImIGZyYW1lTG9hZGVyLCB1bnNpCiAgICAgV2ViUGFnZSogd2Vi
UGFnZSA9IHdlYkZyYW1lID8gd2ViRnJhbWUtPnBhZ2UoKSA6IG51bGxwdHI7CiAKICAgICBhdXRv
IHBhZ2VJRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5wYWdlSUQoKSA6IFBhZ2VJZGVudGlmaWVyIHsg
fTsKLSAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZSA/IHdlYkZyYW1lLT5mcmFtZUlEKCkgOiAw
OworICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZyYW1lID8gd2ViRnJhbWUtPmZyYW1lSUQoKSA6IEZy
YW1lSWRlbnRpZmllciB7IH07CiAgICAgYXV0byBzZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2ViUGFn
ZS0+c2Vzc2lvbklEKCkgOiBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOwogCiAg
ICAgYXV0byogZG9jdW1lbnQgPSBmcmFtZUxvYWRlci5mcmFtZSgpLmRvY3VtZW50KCk7CiAgICAg
aWYgKCFkb2N1bWVudCkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHNl
c3Npb25JRCwgImxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6IG5vIGRvY3VtZW50IChwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJWx1KSIs
IHBhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKTsKKyAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChzZXNzaW9uSUQsICJsb2FkUmVzb3Vy
Y2VTeW5jaHJvbm91c2x5OiBubyBkb2N1bWVudCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICVsdSkiLCBwYWdlSUQudG9VSW50NjQoKSwg
ZnJhbWVJRC50b1VJbnQ2NCgpLCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKTsKICAgICAgICAgZXJy
b3IgPSBpbnRlcm5hbEVycm9yKHJlcXVlc3QudXJsKCkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCiAgICAgaWYgKGF1dG8gc3luY0xvYWRSZXN1bHQgPSB0cnlMb2FkaW5nU3luY2hyb25vdXNs
eVVzaW5nVVJMU2NoZW1lSGFuZGxlcihmcmFtZUxvYWRlciwgcmVzb3VyY2VMb2FkSWRlbnRpZmll
ciwgcmVxdWVzdCkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChzZXNz
aW9uSUQsICJsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiBmYWlsZWQgY2FsbGluZyB0cnlMb2Fk
aW5nU3luY2hyb25vdXNseVVzaW5nVVJMU2NoZW1lSGFuZGxlciAocGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICVsdSwgZXJyb3IgPSAlZCki
LCBwYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCwgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgc3lu
Y0xvYWRSZXN1bHQtPmVycm9yLmVycm9yQ29kZSgpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1JfSUZfQUxMT1dFRChzZXNzaW9uSUQsICJsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiBmYWls
ZWQgY2FsbGluZyB0cnlMb2FkaW5nU3luY2hyb25vdXNseVVzaW5nVVJMU2NoZW1lSGFuZGxlciAo
cGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9
ICVsdSwgZXJyb3IgPSAlZCkiLCBwYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgp
LCByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBzeW5jTG9hZFJlc3VsdC0+ZXJyb3IuZXJyb3JDb2Rl
KCkpOwogICAgICAgICBlcnJvciA9IFdURk1vdmUoc3luY0xvYWRSZXN1bHQtPmVycm9yKTsKICAg
ICAgICAgcmVzcG9uc2UgPSBXVEZNb3ZlKHN5bmNMb2FkUmVzdWx0LT5yZXNwb25zZSk7CiAgICAg
ICAgIGRhdGEgPSBXVEZNb3ZlKHN5bmNMb2FkUmVzdWx0LT5kYXRhKTsKQEAgLTU2OSw3ICs1Njks
NyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KEZy
YW1lTG9hZGVyJiBmcmFtZUxvYWRlciwgdW5zaQogICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNz
UG9vbDo6U2V0V2ViUHJvY2Vzc0hhc1VwbG9hZHMgeyBQcm9jZXNzOjppZGVudGlmaWVyKCkgfSwg
MCk7CiAKICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlBlcmZvcm1TeW5jaHJvbm91c0xvYWQobG9hZFBhcmFtZXRl
cnMpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlBlcmZvcm1TeW5j
aHJvbm91c0xvYWQ6OlJlcGx5KGVycm9yLCByZXNwb25zZSwgZGF0YSksIDApKSB7Ci0gICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoc2Vzc2lvbklELCAibG9hZFJlc291cmNlU3lu
Y2hyb25vdXNseTogZmFpbGVkIHNlbmRpbmcgc3luY2hyb25vdXMgbmV0d29yayBwcm9jZXNzIG1l
c3NhZ2UgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlbHUpIiwgcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQsIHJlc291cmNlTG9hZElk
ZW50aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHNlc3Npb25J
RCwgImxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6IGZhaWxlZCBzZW5kaW5nIHN5bmNocm9ub3Vz
IG5ldHdvcmsgcHJvY2VzcyBtZXNzYWdlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9
ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJWx1KSIsIHBhZ2VJRC50b1VJbnQ2NCgpLCBmcmFt
ZUlELnRvVUludDY0KCksIHJlc291cmNlTG9hZElkZW50aWZpZXIpOwogICAgICAgICBpZiAoYXV0
byogcGFnZSA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5jb3JlUGFnZSgpIDogbnVsbHB0cikKICAgICAg
ICAgICAgIHBhZ2UtPmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3Nh
Z2UoV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjppbnRlcm5hbEVycm9yS2V5KCksIFdl
YkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6c3luY2hyb25vdXNNZXNzYWdlRmFpbGVkS2V5
KCksIFdlYkNvcmU6OlNob3VsZFNhbXBsZTo6Tm8pOwogICAgICAgICByZXNwb25zZSA9IFJlc291
cmNlUmVzcG9uc2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcAppbmRleCA4OGJkNTNiZjFmOGZiNzM2ZWIxNzNlZjY0
ZjFlMzAzZDFiYjEwMGMxLi5mYTUzOTI1ZWI2OGYwNDJmZWM3OWJmMzg4NjBiMjc2MDMyNWZiNTFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJj
ZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVz
b3VyY2VMb2FkZXIuY3BwCkBAIC04OCwxNiArODgsMTYgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRl
cjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHByb3Bvc2VkUmVxdWVzdCwgUmVz
b3UKICAgICBSZWY8V2ViUmVzb3VyY2VMb2FkZXI+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwogCiAg
ICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5k
UmVxdWVzdCB0byAnJXMnIiwgcHJvcG9zZWRSZXF1ZXN0LnVybCgpLnN0cmluZygpLmxhdGluMSgp
LmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgid2lsbFNlbmRSZXF1ZXN0OiAo
cGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9
ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBt
X3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJj
ZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3aWxsU2VuZFJlcXVlc3Q6IChwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIg
UFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJh
Y2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMu
cmVzb3VyY2VJRCk7CiAKICAgICBpZiAobV9jb3JlTG9hZGVyLT5kb2N1bWVudExvYWRlcigpLT5h
cHBsaWNhdGlvbkNhY2hlSG9zdCgpLm1heWJlTG9hZEZhbGxiYWNrRm9yUmVkaXJlY3QobV9jb3Jl
TG9hZGVyLmdldCgpLCBwcm9wb3NlZFJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpKSB7Ci0gICAg
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIndpbGxTZW5kUmVxdWVzdDogZXhpdGluZyBlYXJs
eSBiZWNhdXNlIG1heWJlTG9hZEZhbGxiYWNrRm9yUmVkaXJlY3QgcmV0dXJuZWQgZmFsc2UgKHBh
Z2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAl
IiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90
cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJ
RCk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIndpbGxTZW5kUmVxdWVzdDogZXhp
dGluZyBlYXJseSBiZWNhdXNlIG1heWJlTG9hZEZhbGxiYWNrRm9yUmVkaXJlY3QgcmV0dXJuZWQg
ZmFsc2UgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50
NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5n
UGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIG1f
Y29yZUxvYWRlci0+d2lsbFNlbmRSZXF1ZXN0KFdURk1vdmUocHJvcG9zZWRSZXF1ZXN0KSwgcmVk
aXJlY3RSZXNwb25zZSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRo
aXMpXShSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KSB7CiAgICAgICAgIGlmICghbV9jb3JlTG9h
ZGVyIHx8ICFtX2NvcmVMb2FkZXItPmlkZW50aWZpZXIoKSkgewotICAgICAgICAgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgid2lsbFNlbmRSZXF1ZXN0OiBleGl0aW5nIGVhcmx5IGJlY2F1c2Ug
bm8gY29yZWxvYWRlciBvciBpZGVudGlmaWVyIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1Bh
cmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQs
IG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOworICAgICAgICAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgid2lsbFNlbmRSZXF1ZXN0OiBleGl0aW5nIGVhcmx5IGJlY2F1c2Ugbm8g
Y29yZWxvYWRlciBvciBpZGVudGlmaWVyIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9
ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFt
ZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9V
SW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KIApAQCAtMTEzLDEyICsxMTMsMTIgQEAgdm9pZCBXZWJSZXNvdXJj
ZUxvYWRlcjo6ZGlkU2VuZERhdGEodWludDY0X3QgYnl0ZXNTZW50LCB1aW50NjRfdCB0b3RhbEJ5
dGVzVG9CZVMKIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2
ZVJlc3BvbnNlTWVzc2FnZSkKIHsKICAgICBMT0coTmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJS
ZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlIGZvciAnJXMnLiBTdGF0dXMgJWQuIiwg
bV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCksIHJlc3BvbnNlLmh0
dHBTdGF0dXNDb2RlKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVS
ZXNwb25zZTogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJl
c291cmNlSUQgPSAlIiBQUkl1NjQgIiwgc3RhdHVzID0gJWQpIiwgbV90cmFja2luZ1BhcmFtZXRl
cnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJh
Y2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQsIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkpOwor
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZTogKHBhZ2VJRCA9
ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1
NjQgIiwgc3RhdHVzID0gJWQpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0
KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1Bh
cmFtZXRlcnMucmVzb3VyY2VJRCwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSk7CiAKICAgICBS
ZWY8V2ViUmVzb3VyY2VMb2FkZXI+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwogCiAgICAgaWYgKG1f
Y29yZUxvYWRlci0+ZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS5tYXli
ZUxvYWRGYWxsYmFja0ZvclJlc3BvbnNlKG1fY29yZUxvYWRlci5nZXQoKSwgcmVzcG9uc2UpKSB7
Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZTogbm90
IGNvbnRpbnVpbmcgbG9hZCBiZWNhdXNlIHRoZSBjb250ZW50IGlzIGFscmVhZHkgY2FjaGVkIChw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1f
dHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNl
SUQpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6
IG5vdCBjb250aW51aW5nIGxvYWQgYmVjYXVzZSB0aGUgY29udGVudCBpcyBhbHJlYWR5IGNhY2hl
ZCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJ
RCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgp
LCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJh
bWV0ZXJzLnJlc291cmNlSUQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMzUsNyAr
MTM1LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib28KICAgICAgICAgICAgIGlmIChtX2NvcmVM
b2FkZXIgJiYgbV9jb3JlTG9hZGVyLT5pZGVudGlmaWVyKCkpCiAgICAgICAgICAgICAgICAgc2Vu
ZChNZXNzYWdlczo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpDb250aW51ZURpZFJlY2VpdmVSZXNw
b25zZSgpKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6IG5vdCBjb250aW51aW5nIGxvYWQgYmVjYXVz
ZSBubyBjb3JlTG9hZGVyIG9yIG5vIElEIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9
ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFt
ZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1f
dHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOworICAgICAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZTogbm90IGNvbnRpbnVpbmcgbG9hZCBi
ZWNhdXNlIG5vIGNvcmVMb2FkZXIgb3Igbm8gSUQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5n
UGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJ
RC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKICAgICAgICAg
fTsKICAgICB9CiAKQEAgLTE0OCw3ICsxNDgsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpk
aWRSZWNlaXZlRGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGludDY0X3QgZQog
ICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIW1faXNQcm9jZXNzaW5nTmV0d29ya1Jlc3BvbnNlLCAi
TmV0d29yayBwcm9jZXNzIHNob3VsZCBub3Qgc2VuZCBkYXRhIHVudGlsIHdlJ3ZlIHZhbGlkYXRl
ZCB0aGUgcmVzcG9uc2UiKTsKIAogICAgIGlmICghbV9udW1CeXRlc1JlY2VpdmVkKSB7Ci0gICAg
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVEYXRhOiBTdGFydGVkIHJlY2Vp
dmluZyBkYXRhIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBy
ZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRv
VUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0
ZXJzLnJlc291cmNlSUQpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNl
aXZlRGF0YTogU3RhcnRlZCByZWNlaXZpbmcgZGF0YSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZy
YW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tp
bmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFt
ZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwogICAgIH0K
ICAgICBtX251bUJ5dGVzUmVjZWl2ZWQgKz0gZGF0YS5zaXplKCk7CiAKQEAgLTE1OCw3ICsxNTgs
NyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShjb25zdCBJUEM6OkRh
dGFSZWZlcmVuY2UmIGRhdGEsIGludDY0X3QgZQogdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlk
RmluaXNoUmVzb3VyY2VMb2FkKGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRN
ZXRyaWNzKQogewogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9h
ZGVyOjpkaWRGaW5pc2hSZXNvdXJjZUxvYWQgZm9yICclcyciLCBtX2NvcmVMb2FkZXItPnVybCgp
LnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgi
ZGlkRmluaXNoUmVzb3VyY2VMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAl
IiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBsZW5ndGggPSAlemQpIiwgbV90
cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJz
LmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQsIG1fbnVtQnl0ZXNSZWNl
aXZlZCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkRmluaXNoUmVzb3VyY2VMb2Fk
OiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJ
RCA9ICUiIFBSSXU2NCAiLCBsZW5ndGggPSAlemQpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFn
ZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwg
bV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCwgbV9udW1CeXRlc1JlY2VpdmVkKTsKIAog
ICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIW1faXNQcm9jZXNzaW5nTmV0d29ya1Jlc3BvbnNlLCAi
TG9hZCBzaG91bGQgbm90IGJlIGFibGUgdG8gZmluaXNoIGJlZm9yZSB3ZSd2ZSB2YWxpZGF0ZWQg
dGhlIHJlc3BvbnNlIik7CiAgICAgbV9jb3JlTG9hZGVyLT5kaWRGaW5pc2hMb2FkaW5nKG5ldHdv
cmtMb2FkTWV0cmljcyk7CkBAIC0xNjcsNyArMTY3LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRl
cjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkKGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29y
a0wKIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxSZXNvdXJjZUxvYWQoY29uc3QgUmVz
b3VyY2VFcnJvciYgZXJyb3IpCiB7CiAgICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2Vi
UmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxSZXNvdXJjZUxvYWQgZm9yICclcyciLCBtX2NvcmVMb2Fk
ZXItPnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgiZGlkRmFpbFJlc291cmNlTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5n
UGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJ
RCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgiZGlkRmFpbFJlc291cmNlTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5n
UGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJ
RC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKIAogICAgIEFT
U0VSVF9XSVRIX01FU1NBR0UoIW1faXNQcm9jZXNzaW5nTmV0d29ya1Jlc3BvbnNlLCAiTG9hZCBz
aG91bGQgbm90IGJlIGFibGUgdG8gZmluaXNoIGJlZm9yZSB3ZSd2ZSB2YWxpZGF0ZWQgdGhlIHJl
c3BvbnNlIik7CiAKQEAgLTE3OSw3ICsxNzksNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpk
aWRGYWlsUmVzb3VyY2VMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogdm9pZCBXZWJS
ZXNvdXJjZUxvYWRlcjo6ZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgpCiB7CiAgICAg
TE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEJsb2NrQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UgZm9yICclcyciLCBtX2NvcmVMb2FkZXItPnVybCgpLnN0cmlu
ZygpLmxhdGluMSgpLmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkQmxv
Y2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFy
YW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwg
bV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRCgiZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTogKHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBt
X3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRl
cnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsK
IAogICAgIG1fY29yZUxvYWRlci0+ZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgpOwog
fQpAQCAtMTg3LDcgKzE4Nyw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEJsb2NrQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UoKQogdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6c3RvcExvYWRp
bmdBZnRlclhGcmFtZU9wdGlvbnNPckNvbnRlbnRTZWN1cml0eVBvbGljeURlbmllZChjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBMT0coTmV0d29yaywgIihXZWJQcm9j
ZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6c3RvcExvYWRpbmdBZnRlclhGcmFtZU9wdGlvbnNPckNv
bnRlbnRTZWN1cml0eVBvbGljeURlbmllZCBmb3IgJyVzJyIsIG1fY29yZUxvYWRlci0+dXJsKCku
c3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJz
dG9wTG9hZGluZ0FmdGVyWEZyYW1lT3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVk
OiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJ
RCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgp
LCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNv
dXJjZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdG9wTG9hZGluZ0FmdGVyWEZy
YW1lT3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVkOiAocGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIs
IG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1l
dGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQp
OwogCiAgICAgbV9jb3JlTG9hZGVyLT5kb2N1bWVudExvYWRlcigpLT5zdG9wTG9hZGluZ0FmdGVy
WEZyYW1lT3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVkKG1fY29yZUxvYWRlci0+
aWRlbnRpZmllcigpLCByZXNwb25zZSk7CiB9CkBAIC0xOTYsMTMgKzE5NiwxMyBAQCB2b2lkIFdl
YlJlc291cmNlTG9hZGVyOjpzdG9wTG9hZGluZ0FmdGVyWEZyYW1lT3B0aW9uc09yQ29udGVudFNl
Y3VyaXR5UG9saWN5RGVuaQogdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc291
cmNlKGNvbnN0IFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUmIGhhbmRsZSkKIHsKICAgICBMT0co
TmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc291
cmNlIGZvciAnJXMnIiwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRh
KCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNvdXJjZTogKHBh
Z2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAl
IiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90
cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJ
RCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc291cmNlOiAocGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUi
IFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Ry
YWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJz
LnJlc291cmNlSUQpOwogCiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyID0gaGFuZGxl
LnRyeVdyYXBJblNoYXJlZEJ1ZmZlcigpOwogCiAgICAgaWYgKCFidWZmZXIpIHsKICAgICAgICAg
TE9HX0VSUk9SKCJVbmFibGUgdG8gY3JlYXRlIGJ1ZmZlciBmcm9tIFNoYXJlYWJsZVJlc291cmNl
IHNlbnQgZnJvbSB0aGUgbmV0d29yayBwcm9jZXNzLiIpOwotICAgICAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzb3VyY2U6IFVuYWJsZSB0byBjcmVhdGUgU2hhcmVkQnVm
ZmVyIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJj
ZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0
KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJl
c291cmNlSUQpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVz
b3VyY2U6IFVuYWJsZSB0byBjcmVhdGUgU2hhcmVkQnVmZmVyIChwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90
cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJz
LmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CiAg
ICAgICAgIGlmIChhdXRvKiBmcmFtZSA9IG1fY29yZUxvYWRlci0+ZnJhbWUoKSkgewogICAgICAg
ICAgICAgaWYgKGF1dG8qIHBhZ2UgPSBmcmFtZS0+cGFnZSgpKQogICAgICAgICAgICAgICAgIHBh
Z2UtPmRpYWdub3N0aWNMb2dnaW5nQ2xpZW50KCkubG9nRGlhZ25vc3RpY01lc3NhZ2UoV2ViQ29y
ZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjppbnRlcm5hbEVycm9yS2V5KCksIFdlYkNvcmU6OkRp
YWdub3N0aWNMb2dnaW5nS2V5czo6Y3JlYXRlU2hhcmVkQnVmZmVyRmFpbGVkS2V5KCksIFdlYkNv
cmU6OlNob3VsZFNhbXBsZTo6Tm8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKaW5kZXggNTg2NTQzNzE4ZTVlODM4OGI4YjQx
YWIwMjAzN2FjNzZlNzg2OTM3Yy4uOWMxMTQ3ZGEwNTE1M2RkN2FjNDRhZjMxNTgxZTIyMWI2OWJl
OTI0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVz
b3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJS
ZXNvdXJjZUxvYWRlci5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5o
IgogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKICNpbmNsdWRlICJTaGFyZWFibGVSZXNvdXJj
ZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtNTIsNyArNTMsNyBAQCBjbGFzcyBXZWJSZXNvdXJjZUxv
YWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlJlc291cmNlTG9hZGVyPiwgcHVibGljIElQQzo6
TWVzcwogcHVibGljOgogICAgIHN0cnVjdCBUcmFja2luZ1BhcmFtZXRlcnMgewogICAgICAgICBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQ7Ci0gICAgICAgIHVpbnQ2NF90IGZyYW1lSUQg
eyAwIH07CisgICAgICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEOwogICAgICAg
ICBSZXNvdXJjZUxvYWRJZGVudGlmaWVyIHJlc291cmNlSUQgeyAwIH07CiAgICAgfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCmluZGV4IDZmYzA5YzRmNjViMjQ1YjYwYmY0
ZDRmNTk3YTlmOTBhZDRkMGFhZjkuLjQ5ZDIwYzdjNDljMDJhYTk1OWFhNGFlNGQ5ZWVjOGZlODNj
NWZlN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKQEAgLTczLDcgKzcz
LDcgQEAgc3RhdGljIGNvbnN0IFNlY29uZHMgc3luY1dvcmtlclRlcm1pbmF0aW9uVGltZW91dCB7
IDEwMF9tcyB9OyAvLyBPbmx5IHVzZWQgYnkgbGEKIAogY2xhc3MgU2VydmljZVdvcmtlckZyYW1l
TG9hZGVyQ2xpZW50IGZpbmFsIDogcHVibGljIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgewogcHVi
bGljOgotICAgIFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudChXZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmlu
ZyYgdXNlckFnZW50KQorICAgIFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudChXZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCkKICAgICAgICAgOiBtX2Nvbm5lY3Rpb24oY29u
bmVjdGlvbikKICAgICAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgICAgICwgbV9w
YWdlSUQocGFnZUlEKQpAQCAtOTYsMTMgKzk2LDEzIEBAIHByaXZhdGU6CiAKICAgICBQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQog
ICAgIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX3BhZ2VJRDsgfQotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV9mcmFtZUlEOyB9CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9mcmFtZUlE
OyB9CiAgICAgU3RyaW5nIHVzZXJBZ2VudChjb25zdCBVUkwmKSBmaW5hbCB7IHJldHVybiBtX3Vz
ZXJBZ2VudDsgfQogCiAgICAgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24mIG1fY29ubmVj
dGlvbjsKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKLSAgICBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciBtX3BhZ2VJRDsKLSAgICB1aW50NjRfdCBtX2ZyYW1lSUQgeyAwIH07CisgICAg
UGFnZUlkZW50aWZpZXIgbV9wYWdlSUQ7CisgICAgRnJhbWVJZGVudGlmaWVyIG1fZnJhbWVJRDsK
ICAgICBTdHJpbmcgbV91c2VyQWdlbnQ7CiB9OwogCkBAIC0xNTMsNyArMTUzLDggQEAgdm9pZCBX
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6aW5zdGFsbFNlcnZpY2VXb3JrZXIoY29uc3Qg
U2VydmljZVdvcmtlckNvbnQKIAogICAgIC8vIEZJWE1FOiBUaGlzIG1ldGhvZCBzaG91bGQgYmUg
bW92ZWQgZGlyZWN0bHkgdG8gV2ViQ29yZTo6U1dDb250ZXh0TWFuYWdlcjo6Q29ubmVjdGlvbgog
ICAgIC8vIElmIGl0IHdlcmVuJ3QgZm9yIFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudCdz
IGRlcGVuZGVuY2Ugb24gV2ViRG9jdW1lbnRMb2FkZXIsIHRoaXMgY291bGQgYWxyZWFkeSBoYXBw
ZW4uCi0gICAgYXV0byBmcmFtZUxvYWRlckNsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8U2Vydmlj
ZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50PigqdGhpcywgc2Vzc2lvbklELCBtX3BhZ2VJRCwgKytt
X3ByZXZpb3VzU2VydmljZVdvcmtlcklELCBlZmZlY3RpdmVVc2VyQWdlbnQpOworICAgIC8vIEZJ
WE1FOiBXZWlyZCB0byBwYXNzIG1fcHJldmlvdXNTZXJ2aWNlV29ya2VySUQgYXMgYSBGcmFtZUlk
ZW50aWZpZXIuCisgICAgYXV0byBmcmFtZUxvYWRlckNsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8
U2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50PigqdGhpcywgc2Vzc2lvbklELCBtX3BhZ2VJ
RCwgZnJhbWVJZGVudGlmaWVyRnJvbUlEKCsrbV9wcmV2aW91c1NlcnZpY2VXb3JrZXJJRCksIGVm
ZmVjdGl2ZVVzZXJBZ2VudCk7CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24ubG9hZGVyQ2xpZW50Rm9y
TWFpbkZyYW1lID0gZnJhbWVMb2FkZXJDbGllbnQuZ2V0KCk7CiAgICAgbV9sb2FkZXJzLmFkZChX
VEZNb3ZlKGZyYW1lTG9hZGVyQ2xpZW50KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXgg
M2M4NzJmNWFkZjM5YmVhY2QzYTcwNjY3YjI2ODlkMzhjOWIxMTEyZS4uZmNkMDk4ZTQ4NDBhNThh
MmI1YTIxOTdlYjUyOTFlMGE0ZjQ4MjlmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTI2
NSw3ICsyNjUsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Zm9jdXNlZEZyYW1lQ2hhbmdlZChG
cmFtZSogZnJhbWUpCiB7CiAgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gZnJhbWUgPyBXZWJGcmFt
ZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpIDogbnVsbHB0cjsKIAotICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6Rm9jdXNlZEZyYW1lQ2hhbmdlZCh3ZWJGcmFtZSA/IHdlYkZyYW1lLT5mcmFtZUlE
KCkgOiAwKSwgbV9wYWdlLnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5w
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkZv
Y3VzZWRGcmFtZUNoYW5nZWQod2ViRnJhbWUgPyBtYWtlT3B0aW9uYWwod2ViRnJhbWUtPmZyYW1l
SUQoKSkgOiBXVEY6Om51bGxvcHQpLCBtX3BhZ2UucGFnZUlEKCkpOwogfQogCiBQYWdlKiBXZWJD
aHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSYgZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiB3aW5kb3dGZWF0dXJlcywgY29u
c3QgTmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGlvbkFjdGlvbikKQEAgLTYyNSw3ICs2MjUsNyBA
QCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSYgZnJhbWUs
IGNvbnN0IEludFNpemUmIHNpemUpIGNvbgogICAgICAgICBXZWJGcmFtZSogbGFyZ2VzdEZyYW1l
ID0gZmluZExhcmdlc3RGcmFtZUluRnJhbWVTZXQobV9wYWdlKTsKICAgICAgICAgaWYgKGxhcmdl
c3RGcmFtZSAhPSBtX2NhY2hlZEZyYW1lU2V0TGFyZ2VzdEZyYW1lLmdldCgpKSB7CiAgICAgICAg
ICAgICBtX2NhY2hlZEZyYW1lU2V0TGFyZ2VzdEZyYW1lID0gbGFyZ2VzdEZyYW1lOwotICAgICAg
ICAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RnJhbWVTZXRMYXJnZXN0
RnJhbWVDaGFuZ2VkKGxhcmdlc3RGcmFtZSA/IGxhcmdlc3RGcmFtZS0+ZnJhbWVJRCgpIDogMCkp
OworICAgICAgICAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RnJhbWVT
ZXRMYXJnZXN0RnJhbWVDaGFuZ2VkKGxhcmdlc3RGcmFtZSA/IG1ha2VPcHRpb25hbChsYXJnZXN0
RnJhbWUtPmZyYW1lSUQoKSkgOiBXVEY6Om51bGxvcHQpKTsKICAgICAgICAgfQogICAgIH0KIApA
QCAtMTMxNiwxMiArMTMxNiwxMiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZGlkSW52YWxpZGF0
ZURvY3VtZW50TWFya2VyUmVjdHMoKQogfQogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpoYXNTdG9yYWdlQWNjZXNzKFJlZ2lzdHJh
YmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVE
b21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6
Omhhc1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgUmVn
aXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IFBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIG1fcGFnZS5oYXNTdG9yYWdlQWNjZXNzKFdURk1vdmUoc3ViRnJh
bWVEb21haW4pLCBXVEZNb3ZlKHRvcEZyYW1lRG9tYWluKSwgZnJhbWVJRCwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cmVxdWVzdFN0b3Jh
Z2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgUmVnaXN0cmFibGVE
b21haW4mJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VB
Y2Nlc3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkNocm9t
ZUNsaWVudDo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFt
ZURvbWFpbiwgUmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3Jh
Z2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIG1fcGFnZS5yZXF1ZXN0U3RvcmFnZUFjY2VzcyhXVEZNb3Zl
KHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0b3BGcmFtZURvbWFpbiksIGZyYW1lSUQsIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBjZWQzNmE2
YzI1YjdlNGY4MzQ0YTU4OTk0MDA2NzkxZjdjYzkyNzZmLi4yZGM2NjIyYzFiN2YxYzVhOTVhMmNj
ZDc5YjMyMDliYjU4NzJhNjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0zNjcsOCArMzY3LDgg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZEludmFsaWRhdGVEb2N1bWVudE1hcmtlclJlY3RzKCkg
ZmluYWw7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIHZvaWQg
aGFzU3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9t
YWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCB1aW50NjRf
dCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKLSAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3Rv
cmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93
bik+JiYpIGZpbmFsOworICAgIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYm
IHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwor
ICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4m
JiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURv
bWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
V1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFu
dGVkLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKSBmaW5hbDsKICNl
bmRpZgogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCmluZGV4IDY1NzM5YmI4YWE5NmRmZThjMmIwZTI2YzE3MWE5ZjliNzZiNzM0
MDkuLjcwOTgwZWU1YjViOGQ3MDM3ZTQ1YjNmMmFmM2UyYmIxZmEwMzk0YTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTIwLDcgKzEyMCw3IEBAIE9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPiBXZWJGcmFtZUxvYWRlckNsaWVudDo6cGFnZUlEKCkgY29uc3QKICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwogfQogCi1PcHRpb25hbDx1aW50NjRfdD4gV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmZyYW1lSUQoKSBjb25zdAorT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZnJhbWVJRCgpIGNvbnN0CiB7CiAgICAgaWYgKG1fZnJhbWUpCiAgICAg
ICAgIHJldHVybiBtX2ZyYW1lLT5mcmFtZUlEKCk7CkBAIC01NDYsNyArNTQ2LDcgQEAgdm9pZCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNvbnN0
IFJlc291cmNlRXJyb3ImIGUKICAgICBpZiAoIXdlYlBhZ2UpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIFJFTEVBU0VfTE9HKE5ldHdvcmssICIlcCAtIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCAiKSIsIHRoaXMsIHdlYlBhZ2UtPnBhZ2VJRCgpLnRvVUludDY0KCksIG1f
ZnJhbWUtPmZyYW1lSUQoKSk7CisgICAgUkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0gV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZDogKHBhZ2VJRCA9
ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIpIiwgdGhpcywgd2ViUGFnZS0+cGFn
ZUlEKCkudG9VSW50NjQoKSwgbV9mcmFtZS0+ZnJhbWVJRCgpLnRvVUludDY0KCkpOwogCiAgICAg
UmVmUHRyPEFQSTo6T2JqZWN0PiB1c2VyRGF0YTsKIApAQCAtNTgyLDcgKzU4Miw3IEBAIHZvaWQg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWQoY29uc3QgUmVzb3VyY2VF
cnJvciYgZXJyb3IpCiAgICAgaWYgKCF3ZWJQYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBS
RUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
aWRGYWlsTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIp
IiwgdGhpcywgd2ViUGFnZS0+cGFnZUlEKCkudG9VSW50NjQoKSwgbV9mcmFtZS0+ZnJhbWVJRCgp
KTsKKyAgICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEaWRGYWlsTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0ICIpIiwgdGhpcywgd2ViUGFnZS0+cGFnZUlEKCkudG9VSW50NjQoKSwgbV9mcmFtZS0+
ZnJhbWVJRCgpLnRvVUludDY0KCkpOwogCiAgICAgUmVmUHRyPEFQSTo6T2JqZWN0PiB1c2VyRGF0
YTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBjOGZiMmFmMjEyNTY2YzY0Njg2
MDc3YTBjODlhZjgxMDUzOTBhNjgwLi42NDFiOGMwNjYzNDEzODBjMDcwMjgyMGI4Nzg5ZGQxODVl
OGJiMDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtNTIsNyArNTIsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBhcHBseVRvRG9jdW1lbnRMb2FkZXIoV2Vic2l0ZVBvbGljaWVzRGF0
YSYmKTsKIAogICAgIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQoKSBj
b25zdCBmaW5hbDsKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCgpIGNvbnN0IGZpbmFs
OworICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCgpIGNvbnN0
IGZpbmFsOwogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IGZpbmFsOwogCiAj
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuY3BwCmluZGV4IDczOGJlOTJiOTJkYzcz
ZDJkZjY3N2VlMzRlYzEzMDgxYTYwZjFhMWMuLmY2YzU1N2Q1ZjBmZDIwMWRiYjUwNTExNDdlYmMy
NzBhNWI0NWNmM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkNvb2tpZUphci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViQ29va2llSmFyLmNwcApAQCAtNTAsNyArNTAsNyBAQCBXZWJDb29raWVKYXI6OldlYkNvb2tp
ZUphcigpCiAKIFN0cmluZyBXZWJDb29raWVKYXI6OmNvb2tpZXMoV2ViQ29yZTo6RG9jdW1lbnQm
IGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCkgY29uc3QKIHsKLSAgICBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQ7CiAgICAg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKICAgICBpZiAoYXV0byogZnJhbWUgPSBk
b2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGZyYW1lSUQgPSBmcmFtZS0+bG9hZGVyKCkuY2xp
ZW50KCkuZnJhbWVJRCgpOwpAQCAtNjcsNyArNjcsNyBAQCBTdHJpbmcgV2ViQ29va2llSmFyOjpj
b29raWVzKFdlYkNvcmU6OkRvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwpIGNvbnN0
CiAKIHZvaWQgV2ViQ29va2llSmFyOjpzZXRDb29raWVzKFdlYkNvcmU6OkRvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKQogewotICAg
IE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmll
cj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEOwogICAgIGlm
IChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKICAgICAgICAgZnJhbWVJRCA9IGZy
YW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CkBAIC04NSw3ICs4NSw3IEBAIGJvb2wg
V2ViQ29va2llSmFyOjpjb29raWVzRW5hYmxlZChjb25zdCBXZWJDb3JlOjpEb2N1bWVudCYgZG9j
dW1lbnQpIGNvbnN0CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3RkOjpwYWlyPFN0cmluZywg
V2ViQ29yZTo6U2VjdXJlQ29va2llc0FjY2Vzc2VkPiBXZWJDb29raWVKYXI6OmNvb2tpZVJlcXVl
c3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9uSUQsIGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUlu
Zm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8
UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5j
bHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CitzdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb3JlOjpTZWN1
cmVDb29raWVzQWNjZXNzZWQ+IFdlYkNvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxk
VmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJM
JiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+IHBhZ2VJRCwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNl
Y3VyZUNvb2tpZXMpIGNvbnN0CiB7CiAgICAgU3RyaW5nIGNvb2tpZVN0cmluZzsKICAgICBib29s
IHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCA9IGZhbHNlOwpAQCAtOTYsNyArOTYsNyBAQCBzdGQ6OnBh
aXI8U3RyaW5nLCBXZWJDb3JlOjpTZWN1cmVDb29raWVzQWNjZXNzZWQ+IFdlYkNvb2tpZUphcjo6
Y29va2llUmVxdWVzdEhlYQogCiBib29sIFdlYkNvb2tpZUphcjo6Z2V0UmF3Q29va2llcyhjb25z
dCBXZWJDb3JlOjpEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBWZWN0b3I8V2Vi
Q29yZTo6Q29va2llPiYgcmF3Q29va2llcykgY29uc3QKIHsKLSAgICBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQ7CiAgICAg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKICAgICBpZiAoYXV0byogZnJhbWUgPSBk
b2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGZyYW1lSUQgPSBmcmFtZS0+bG9hZGVyKCkuY2xp
ZW50KCkuZnJhbWVJRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViQ29va2llSmFyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJDb29raWVKYXIuaAppbmRleCA1NTliZDBlNTBiYmVjMzVmZmIyNTZiOTEyYjdiNDZkYTk5NGIy
ZDQ4Li41ZGNhY2RkOTY4ZTZhNGIwNjI3Yzc4N2M2ZGExYTUxNTQ3MWJmODhkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuaApAQCAtMzYsNyAr
MzYsNyBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGNvb2tpZXMoV2ViQ29yZTo6RG9jdW1lbnQmLCBj
b25zdCBVUkwmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHNldENvb2tpZXMoV2ViQ29yZTo6RG9j
dW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0cmluZykgZmluYWw7CiAg
ICAgYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBXZWJDb3JlOjpEb2N1bWVudCYpIGNvbnN0IGZp
bmFsOwotICAgIHN0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvcmU6OlNlY3VyZUNvb2tpZXNBY2Nlc3Nl
ZD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBj
b25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0
IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdl
SWRlbnRpZmllcj4sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdCBmaW5hbDsK
KyAgICBzdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb3JlOjpTZWN1cmVDb29raWVzQWNjZXNzZWQ+IGNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwm
LCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllcj4sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdCBmaW5h
bDsKICAgICBib29sIGdldFJhd0Nvb2tpZXMoY29uc3QgV2ViQ29yZTo6RG9jdW1lbnQmLCBjb25z
dCBVUkwmLCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQg
ZGVsZXRlQ29va2llKGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50JiwgY29uc3QgVVJMJiwgY29uc3Qg
U3RyaW5nJiBjb29raWVOYW1lKSBmaW5hbDsKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKaW5kZXggNjBjZmQ4ZDJhMTc1NGE3YWNlZDU4
ZDYxZGYxN2JlNGMxNDMxMzY5NC4uZjBlYmZlZGJiMmU5NTNhZDBmYzA3ZjlmODE2NjA5ZGI5NzM1
YjY2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJh
bWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNw
cApAQCAtOTUsMTIgKzk1LDYgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIERFRklORV9E
RUJVR19PTkxZX0dMT0JBTChXVEY6OlJlZkNvdW50ZWRMZWFrQ291bnRlciwgd2ViRnJhbWVDb3Vu
dGVyLCAoIldlYkZyYW1lIikpOwogCi1zdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVGcmFtZUlEKCkK
LXsKLSAgICBzdGF0aWMgdWludDY0X3QgdW5pcXVlRnJhbWVJRCA9IDE7Ci0gICAgcmV0dXJuIHVu
aXF1ZUZyYW1lSUQrKzsKLX0KLQogc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlTGlzdGVuZXJJRCgp
CiB7CiAgICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZUxpc3RlbmVySUQgPSAxOwpAQCAtMTQ4LDcg
KzE0Miw3IEBAIFJlZjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8
V2ViRnJhbWVMb2FkZXJDbGllbnQ+IGZyYW1lTG9hZGVyCiAKIFdlYkZyYW1lOjpXZWJGcmFtZShz
dGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+IGZyYW1lTG9hZGVyQ2xpZW50KQog
ICAgIDogbV9mcmFtZUxvYWRlckNsaWVudChXVEZNb3ZlKGZyYW1lTG9hZGVyQ2xpZW50KSkKLSAg
ICAsIG1fZnJhbWVJRChnZW5lcmF0ZUZyYW1lSUQoKSkKKyAgICAsIG1fZnJhbWVJRChGcmFtZUlk
ZW50aWZpZXI6OmdlbmVyYXRlKCkpCiB7CiAgICAgbV9mcmFtZUxvYWRlckNsaWVudC0+c2V0V2Vi
RnJhbWUodGhpcyk7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYWRkV2ViRnJhbWUobV9m
cmFtZUlELCB0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFt
ZS5oCmluZGV4IDcxYjM4ZjYxYWIxOTUwNTViNDQ3ZTg3YmZmZjdlOTY0MDZkZWVhOWMuLjFlYzUw
NzU0MjU3Zjg2NmViMmFlOGVjNGNiMGM2ZDFmZmU4NjU2ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaApAQCAtODAsNyArODAsNyBAQCBwdWJsaWM6CiAg
ICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29yZUZyYW1l
OyB9CiAKICAgICBGcmFtZUluZm9EYXRhIGluZm8oKSBjb25zdDsKLSAgICB1aW50NjRfdCBmcmFt
ZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KIAogICAgIGVudW0g
Y2xhc3MgRm9yTmF2aWdhdGlvbkFjdGlvbiB7IE5vLCBZZXMgfTsKICAgICB1aW50NjRfdCBzZXRV
cFBvbGljeUxpc3RlbmVyKFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6
RnJhbWVQb2xpY3lGdW5jdGlvbiYmLCBGb3JOYXZpZ2F0aW9uQWN0aW9uKTsKQEAgLTE4Nyw3ICsx
ODcsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJGcmFtZUxvYWRlckNsaWVu
dD4gbV9mcmFtZUxvYWRlckNsaWVudDsKICAgICBMb2FkTGlzdGVuZXIqIG1fbG9hZExpc3RlbmVy
IHsgbnVsbHB0ciB9OwogICAgIAotICAgIHVpbnQ2NF90IG1fZnJhbWVJRCB7IDAgfTsKKyAgICBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbV9mcmFtZUlEOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKICAgICB1aW50NjRfdCBtX2ZpcnN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JREFmdGVyRGlk
Q29tbWl0TG9hZCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJJbnNwZWN0b3IuY3BwCmluZGV4IGYyOGRlNTY4ZWM1MTVhNTFjMzhlMDljYWFjNDRlYTc3
ZjIxZDNkYmUuLjFmMDE2YWVhZGE5OTZmOTYzZGQ1ZTRlZmI5NmQwY2FmZTYwYWQ2MTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcApA
QCAtMjA5LDcgKzIwOSw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yOjpzaG93UmVzb3VyY2VzKCkKICAg
ICB9KTsKIH0KIAotdm9pZCBXZWJJbnNwZWN0b3I6OnNob3dNYWluUmVzb3VyY2VGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlkZW50aWZpZXIpCit2b2lkIFdlYkluc3BlY3Rvcjo6c2hvd01haW5SZXNv
dXJjZUZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlkZW50aWZpZXIpCiB7
CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUo
ZnJhbWVJZGVudGlmaWVyKTsKICAgICBpZiAoIWZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuaAppbmRleCA0ODllNDFjMDc0ZmMzNjNiMzgw
MTE2MTdiNGM3NTgyNGRmNTlkNDdiLi4yNmI4OWU1MjI3Nzk3OGQ1M2EzM2ZlM2M3MTE1ZWFlYmJi
MzgyOTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJ
bnNwZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNw
ZWN0b3IuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1
ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC02MCw3ICs2MSw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNob3dDb25zb2xlKCk7CiAgICAgdm9pZCBzaG93UmVzb3VyY2VzKCk7
CiAKLSAgICB2b2lkIHNob3dNYWluUmVzb3VyY2VGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlkZW50
aWZpZXIpOworICAgIHZvaWQgc2hvd01haW5SZXNvdXJjZUZvckZyYW1lKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcik7CiAKICAgICB2b2lkIHNldEF0dGFjaGVkKGJvb2wgYXR0YWNoZWQpIHsgbV9h
dHRhY2hlZCA9IGF0dGFjaGVkOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbgppbmRleCBiNmYzYzAxYjI0
MjIyNmEyMGZiNDljNTQyMjAzYTZkY2RlMjIxZTY5Li5kYWY3NGI1ZTZiMDQzMGI2YjBjYTNiZTI2
MGY1ZmZhYmVjZDY1NDg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJJbnNwZWN0b3IubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLm1lc3NhZ2VzLmluCkBAIC0yOSw3ICsyOSw3IEBAIG1l
c3NhZ2VzIC0+IFdlYkluc3BlY3RvciB7CiAgICAgU2hvd0NvbnNvbGUoKQogICAgIFNob3dSZXNv
dXJjZXMoKQogCi0gICAgU2hvd01haW5SZXNvdXJjZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSWRl
bnRpZmllcikKKyAgICBTaG93TWFpblJlc291cmNlRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSWRlbnRpZmllcikKIAogICAgIE9wZW5Jbk5ld1RhYihTdHJpbmcgdXJsKQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDEz
MzY1NzBkOTNhYTUxMTA2OTc4NTYxMTcwMjYwODkzYjhhM2NkYjQuLjAxZmYxYTRmNDU3ZTUzOTM1
NjE0MzI0YTA5NDg4NDAzYTc1MDU1YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xNDk3LDcgKzE0OTcsNyBAQCB2b2lkIFdlYlBhZ2U6OnN1
c3BlbmRGb3JQcm9jZXNzU3dhcCgpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpE
aWRTdXNwZW5kQWZ0ZXJQcm9jZXNzU3dhcCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpsb2FkVVJM
SW5GcmFtZShVUkwmJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIHVpbnQ2NF90IGZyYW1l
SUQpCit2b2lkIFdlYlBhZ2U6OmxvYWRVUkxJbkZyYW1lKFVSTCYmIHVybCwgY29uc3QgU3RyaW5n
JiByZWZlcnJlciwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgV2ViRnJhbWUqIGZy
YW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYg
KCFmcmFtZSkKQEAgLTE1MDYsNyArMTUwNiw3IEBAIHZvaWQgV2ViUGFnZTo6bG9hZFVSTEluRnJh
bWUoVVJMJiYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCB1aW50NjRfdCBmcmFtZUlECiAg
ICAgZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5sb2FkKEZyYW1lTG9hZFJlcXVlc3QoKmZy
YW1lLT5jb3JlRnJhbWUoKSwgUmVzb3VyY2VSZXF1ZXN0KHVybCwgcmVmZXJyZXIpLCBTaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdykpOwogfQogCi12b2lkIFdlYlBh
Z2U6OmxvYWREYXRhSW5GcmFtZShJUEM6OkRhdGFSZWZlcmVuY2UmJiBkYXRhLCBTdHJpbmcmJiBN
SU1FVHlwZSwgU3RyaW5nJiYgZW5jb2RpbmdOYW1lLCBVUkwmJiBiYXNlVVJMLCB1aW50NjRfdCBm
cmFtZUlEKQordm9pZCBXZWJQYWdlOjpsb2FkRGF0YUluRnJhbWUoSVBDOjpEYXRhUmVmZXJlbmNl
JiYgZGF0YSwgU3RyaW5nJiYgTUlNRVR5cGUsIFN0cmluZyYmIGVuY29kaW5nTmFtZSwgVVJMJiYg
YmFzZVVSTCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgV2ViRnJhbWUqIGZyYW1l
ID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCFm
cmFtZSkKQEAgLTE2MTQsNyArMTYxNCw3IEBAIHZvaWQgV2ViUGFnZTo6bmF2aWdhdGVUb1BERkxp
bmtXaXRoU2ltdWxhdGVkQ2xpY2soY29uc3QgU3RyaW5nJiB1cmwsIEludFBvaW50IGRvCiAgICAg
bWFpbkZyYW1lLT5sb2FkZXIoKS51cmxTZWxlY3RlZChtYWluRnJhbWVEb2N1bWVudC0+Y29tcGxl
dGVVUkwodXJsKSwgZW1wdHlTdHJpbmcoKSwgbW91c2VFdmVudC5wdHIoKSwgTG9ja0hpc3Rvcnk6
Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgU2hvdWxkU2VuZFJlZmVycmVyOjpOZXZlclNl
bmRSZWZlcnJlciwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cp
OwogfQogCi12b2lkIFdlYlBhZ2U6OnN0b3BMb2FkaW5nRnJhbWUodWludDY0X3QgZnJhbWVJRCkK
K3ZvaWQgV2ViUGFnZTo6c3RvcExvYWRpbmdGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkK
IHsKICAgICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFt
ZShmcmFtZUlEKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtMzIzNCw3ICszMjM0LDcgQEAgdm9pZCBX
ZWJQYWdlOjpzZXRTZXNzaW9uSUQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIG1fcGFn
ZS0+c2V0U2Vzc2lvbklEKHNlc3Npb25JRCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2
ZVBvbGljeURlY2lzaW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFBv
bGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9u
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IERvd25sb2FkSUQmIGRvd25sb2FkSUQsIE9w
dGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzKQordm9pZCBXZWJQ
YWdlOjpkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVp
bnQ2NF90IGxpc3RlbmVySUQsIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCBQb2xp
Y3lBY3Rpb24gcG9saWN5QWN0aW9uLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IERvd25s
b2FkSUQmIGRvd25sb2FkSUQsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0
ZVBvbGljaWVzKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlmICghZnJhbWUpCkBAIC0zMjQyLDcgKzMyNDIs
NyBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbih1aW50NjRfdCBmcmFt
ZUlELCB1aW50NjRfdCBsaXN0ZW5lcklELCBQbwogICAgIGZyYW1lLT5kaWRSZWNlaXZlUG9saWN5
RGVjaXNpb24obGlzdGVuZXJJRCwgaWRlbnRpZmllciwgcG9saWN5QWN0aW9uLCBuYXZpZ2F0aW9u
SUQsIGRvd25sb2FkSUQsIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzKSk7CiB9CiAKLXZvaWQgV2Vi
UGFnZTo6Y29udGludWVXaWxsU3VibWl0Rm9ybSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBs
aXN0ZW5lcklEKQordm9pZCBXZWJQYWdlOjpjb250aW51ZVdpbGxTdWJtaXRGb3JtKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBsaXN0ZW5lcklEKQogewogICAgIFdlYkZyYW1lKiBm
cmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlm
ICghZnJhbWUpCkBAIC0zMzg0LDcgKzMzODQsNyBAQCB2b2lkIFdlYlBhZ2U6OnJ1bkphdmFTY3Jp
cHRJbk1haW5GcmFtZVNjcmlwdFdvcmxkKGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib29sIGZvcgog
ICAgIHJ1bkphdmFTY3JpcHQobWFpbldlYkZyYW1lKCksIHNjcmlwdCwgZm9yY2VVc2VyR2VzdHVy
ZSwgd29ybGROYW1lLCBjYWxsYmFja0lEKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpydW5KYXZhU2Ny
aXB0SW5GcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHNjcmlwdCwgYm9vbCBm
b3JjZVVzZXJHZXN0dXJlLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYlBhZ2U6OnJ1
bkphdmFTY3JpcHRJbkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcm
IHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7
CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUo
ZnJhbWVJRCk7CiAgICAgQVNTRVJUKG1haW5XZWJGcmFtZSgpICE9IGZyYW1lKTsKQEAgLTM0NDUs
NyArMzQ0NSw3IEBAIHZvaWQgV2ViUGFnZTo6Z2V0U2VsZWN0aW9uT3JDb250ZW50c0FzU3RyaW5n
KENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlN0cmluZ0NhbGxiYWNrKHJlc3VsdFN0cmluZywgY2FsbGJhY2tJRCkpOwogfQogCi12b2lkIFdl
YlBhZ2U6OmdldFNvdXJjZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENhbGxiYWNrSUQgY2Fs
bGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6Z2V0U291cmNlRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBTdHJpbmcgcmVzdWx0U3Ry
aW5nOwogICAgIGlmIChXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53
ZWJGcmFtZShmcmFtZUlEKSkKQEAgLTM0NTQsNyArMzQ1NCw3IEBAIHZvaWQgV2ViUGFnZTo6Z2V0
U291cmNlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQog
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3RyaW5nQ2FsbGJhY2socmVzdWx0U3Ry
aW5nLCBjYWxsYmFja0lEKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6Z2V0TWFpblJlc291cmNlRGF0
YU9mRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBX
ZWJQYWdlOjpnZXRNYWluUmVzb3VyY2VEYXRhT2ZGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1
ZmZlcjsKICAgICBpZiAoV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
d2ViRnJhbWUoZnJhbWVJRCkpIHsKQEAgLTM0ODUsNyArMzQ4NSw3IEBAIHN0YXRpYyBSZWZQdHI8
U2hhcmVkQnVmZmVyPiByZXNvdXJjZURhdGFGb3JGcmFtZShGcmFtZSogZnJhbWUsIGNvbnN0IFVS
TCYgcmVzb3VyCiAgICAgcmV0dXJuICZzdWJyZXNvdXJjZS0+ZGF0YSgpOwogfQogCi12b2lkIFdl
YlBhZ2U6OmdldFJlc291cmNlRGF0YUZyb21GcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBT
dHJpbmcmIHJlc291cmNlVVJMU3RyaW5nLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdl
YlBhZ2U6OmdldFJlc291cmNlRGF0YUZyb21GcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
Y29uc3QgU3RyaW5nJiByZXNvdXJjZVVSTFN0cmluZywgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQog
ewogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlcjsKICAgICBpZiAoYXV0byogZnJhbWUg
PSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSkgewpAQCAtMzQ5OSw3
ICszNDk5LDcgQEAgdm9pZCBXZWJQYWdlOjpnZXRSZXNvdXJjZURhdGFGcm9tRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiByZXNvdXJjZVUKICAgICBzZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkRhdGFDYWxsYmFjayhkYXRhUmVmZXJlbmNlLCBjYWxsYmFja0lEKSk7CiB9
CiAKLXZvaWQgV2ViUGFnZTo6Z2V0V2ViQXJjaGl2ZU9mRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdlOjpnZXRXZWJBcmNoaXZlT2ZGcmFt
ZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogI2lm
IFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxDRkRhdGFSZWY+IGRhdGE7CkBAIC0zODAy
LDEzICszODAyLDEzIEBAIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyKiBXZWJQYWdlOjpmdWxsU2NyZWVu
TWFuYWdlcigpCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdlOjphZGRDb25zb2xlTWVzc2FnZSh1
aW50NjRfdCBmcmFtZUlELCBNZXNzYWdlU291cmNlIG1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZl
bCBtZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdWludDY0X3QgcmVxdWVzdElE
KQordm9pZCBXZWJQYWdlOjphZGRDb25zb2xlTWVzc2FnZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgTWVzc2FnZVNvdXJjZSBtZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwgbWVzc2FnZUxldmVs
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVpbnQ2NF90IHJlcXVlc3RJRCkKIHsKICAgICBpZiAo
YXV0byogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSkK
ICAgICAgICAgZnJhbWUtPmFkZENvbnNvbGVNZXNzYWdlKG1lc3NhZ2VTb3VyY2UsIG1lc3NhZ2VM
ZXZlbCwgbWVzc2FnZSwgcmVxdWVzdElEKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpzZW5kQ1NQVmlv
bGF0aW9uUmVwb3J0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBJUEM6
OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVwb3J0RGF0YSkKK3ZvaWQgV2ViUGFnZTo6c2VuZENTUFZp
b2xhdGlvblJlcG9ydChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgVVJMJiByZXBvcnRV
UkwsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXBvcnREYXRhKQogewogICAgIGF1dG8gcmVw
b3J0ID0gcmVwb3J0RGF0YS50YWtlRGF0YSgpOwogICAgIGlmICghcmVwb3J0KQpAQCAtMzgxNyw3
ICszODE3LDcgQEAgdm9pZCBXZWJQYWdlOjpzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBJUEMKICAgICAgICAgUGluZ0xvYWRlcjo6
c2VuZFZpb2xhdGlvblJlcG9ydCgqZnJhbWUtPmNvcmVGcmFtZSgpLCByZXBvcnRVUkwsIHJlcG9y
dC5yZWxlYXNlTm9uTnVsbCgpLCBWaW9sYXRpb25SZXBvcnRUeXBlOjpDb250ZW50U2VjdXJpdHlQ
b2xpY3kpOwogfQogCi12b2lkIFdlYlBhZ2U6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlv
bkV2ZW50KHVpbnQ2NF90IGZyYW1lSUQsIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6Oklu
aXQmJiBldmVudEluaXQpCit2b2lkIFdlYlBhZ2U6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xh
dGlvbkV2ZW50KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTZWN1cml0eVBvbGljeVZpb2xhdGlv
bkV2ZW50OjpJbml0JiYgZXZlbnRJbml0KQogewogICAgIGF1dG8qIGZyYW1lID0gV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCFmcmFtZSkKQEAgLTQ2
ODAsNyArNDY4MCw3IEBAIHZvaWQgV2ViUGFnZTo6ZWZmZWN0aXZlQXBwZWFyYW5jZURpZENoYW5n
ZShib29sIHVzZURhcmtBcHBlYXJhbmNlLCBib29sIHVzZUVsZXZhCiB9CiAjZW5kaWYKIAotdm9p
ZCBXZWJQYWdlOjpiZWdpblByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5m
byYgcHJpbnRJbmZvKQordm9pZCBXZWJQYWdlOjpiZWdpblByaW50aW5nKEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbykKIHsKICAgICBXZWJGcmFtZSog
ZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBp
ZiAoIWZyYW1lKQpAQCAtNDcyNCw3ICs0NzI0LDcgQEAgdm9pZCBXZWJQYWdlOjplbmRQcmludGlu
ZygpCiAgICAgfQogfQogCi12b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nKHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBDYWxsYmFja0lEIGNh
bGxiYWNrSUQpCit2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgQ2FsbGJhY2tJRCBj
YWxsYmFja0lEKQogewogICAgIFZlY3RvcjxJbnRSZWN0PiByZXN1bHRQYWdlUmVjdHM7CiAgICAg
ZG91YmxlIHJlc3VsdFRvdGFsU2NhbGVGYWN0b3JGb3JQcmludGluZyA9IDE7CkBAIC00NzMzLDcg
KzQ3MzMsNyBAQCB2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbgogICAgIHNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6Q29tcHV0ZWRQYWdlc0NhbGxiYWNrKHJlc3VsdFBhZ2VSZWN0cywgcmVzdWx0
VG90YWxTY2FsZUZhY3RvckZvclByaW50aW5nLCBjb21wdXRlZFBhZ2VNYXJnaW4sIGNhbGxiYWNr
SUQpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZ0ltcGwodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIFZlY3RvcjxXZWJDb3Jl
OjpJbnRSZWN0PiYgcmVzdWx0UGFnZVJlY3RzLCBkb3VibGUmIHJlc3VsdFRvdGFsU2NhbGVGYWN0
b3JGb3JQcmludGluZywgRmxvYXRCb3hFeHRlbnQmIGNvbXB1dGVkUGFnZU1hcmdpbikKK3ZvaWQg
V2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdJbXBsKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+
JiByZXN1bHRQYWdlUmVjdHMsIGRvdWJsZSYgcmVzdWx0VG90YWxTY2FsZUZhY3RvckZvclByaW50
aW5nLCBGbG9hdEJveEV4dGVudCYgY29tcHV0ZWRQYWdlTWFyZ2luKQogewogICAgIEFTU0VSVChy
ZXN1bHRQYWdlUmVjdHMuaXNFbXB0eSgpKTsKIApAQCAtNDc1Niw3ICs0NzU2LDcgQEAgdm9pZCBX
ZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZ0ltcGwodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgUHJpbnRJbmZvJiBwcmkKIH0KIAogI2lmIFBMQVRGT1JNKENPQ09BKQotdm9pZCBXZWJQYWdl
OjpkcmF3UmVjdFRvSW1hZ2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmlu
dEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGltYWdl
U2l6ZSwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdlOjpkcmF3UmVjdFRvSW1h
Z2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBj
b25zdCBJbnRSZWN0JiByZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBpbWFnZVNpemUsIENh
bGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBGcmFtZSogY29yZUZyYW1lID0g
ZnJhbWUgPyBmcmFtZS0+Y29yZUZyYW1lKCkgOiAwOwpAQCAtNDgwNiwxNCArNDgwNiwxNCBAQCB2
b2lkIFdlYlBhZ2U6OmRyYXdSZWN0VG9JbWFnZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmlu
dEluZm8mIHByaW50SW5mbywgY29ucwogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
SW1hZ2VDYWxsYmFjayhoYW5kbGUsIGNhbGxiYWNrSUQpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpk
cmF3UGFnZXNUb1BERih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5m
bywgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBDYWxsYmFja0lEIGNhbGxiYWNrSUQp
Cit2b2lkIFdlYlBhZ2U6OmRyYXdQYWdlc1RvUERGKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBj
b25zdCBQcmludEluZm8mIHByaW50SW5mbywgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50
LCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgUmV0YWluUHRyPENGTXV0YWJsZURhdGFS
ZWY+IHBkZlBhZ2VEYXRhOwogICAgIGRyYXdQYWdlc1RvUERGSW1wbChmcmFtZUlELCBwcmludElu
Zm8sIGZpcnN0LCBjb3VudCwgcGRmUGFnZURhdGEpOwogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6RGF0YUNhbGxiYWNrKHsgQ0ZEYXRhR2V0Qnl0ZVB0cihwZGZQYWdlRGF0YS5nZXQo
KSksIHN0YXRpY19jYXN0PHNpemVfdD4oQ0ZEYXRhR2V0TGVuZ3RoKHBkZlBhZ2VEYXRhLmdldCgp
KSkgfSwgY2FsbGJhY2tJRCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OmRyYXdQYWdlc1RvUERGSW1w
bCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgdWludDMyX3Qg
Zmlyc3QsIHVpbnQzMl90IGNvdW50LCBSZXRhaW5QdHI8Q0ZNdXRhYmxlRGF0YVJlZj4mIHBkZlBh
Z2VEYXRhKQordm9pZCBXZWJQYWdlOjpkcmF3UGFnZXNUb1BERkltcGwoRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCB1aW50MzJfdCBmaXJzdCwgdWlu
dDMyX3QgY291bnQsIFJldGFpblB0cjxDRk11dGFibGVEYXRhUmVmPiYgcGRmUGFnZURhdGEpCiB7
CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUo
ZnJhbWVJRCk7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGZyYW1lID8gZnJhbWUtPmNvcmVGcmFt
ZSgpIDogMDsKQEAgLTQ4NjQsNyArNDg2NCw3IEBAIHZvaWQgV2ViUGFnZTo6ZHJhd1BhZ2VzVG9Q
REZJbXBsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCB1CiB9
CiAKICNlbGlmIFBMQVRGT1JNKEdUSykKLXZvaWQgV2ViUGFnZTo6ZHJhd1BhZ2VzRm9yUHJpbnRp
bmcodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIENhbGxiYWNr
SUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6ZHJhd1BhZ2VzRm9yUHJpbnRpbmcoRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBDYWxsYmFja0lE
IGNhbGxiYWNrSUQpCiB7CiAgICAgYmVnaW5QcmludGluZyhmcmFtZUlELCBwcmludEluZm8pOwog
ICAgIGlmIChtX3ByaW50Q29udGV4dCAmJiBtX3ByaW50T3BlcmF0aW9uKSB7CkBAIC02NTAyLDcg
KzY1MDIsNyBAQCB2b2lkIFdlYlBhZ2U6OnNldElzU3VzcGVuZGVkKGJvb2wgc3VzcGVuZGVkKQog
ICAgIHN1c3BlbmRGb3JQcm9jZXNzU3dhcCgpOwogfQogCi12b2lkIFdlYlBhZ2U6OmZyYW1lQmVj
YW1lUmVtb3RlKHVpbnQ2NF90IGZyYW1lSUQsIEdsb2JhbEZyYW1lSWRlbnRpZmllciYmIHJlbW90
ZUZyYW1lSWRlbnRpZmllciwgR2xvYmFsV2luZG93SWRlbnRpZmllciYmIHJlbW90ZVdpbmRvd0lk
ZW50aWZpZXIpCit2b2lkIFdlYlBhZ2U6OmZyYW1lQmVjYW1lUmVtb3RlKEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBHbG9iYWxGcmFtZUlkZW50aWZpZXImJiByZW1vdGVGcmFtZUlkZW50aWZpZXIs
IEdsb2JhbFdpbmRvd0lkZW50aWZpZXImJiByZW1vdGVXaW5kb3dJZGVudGlmaWVyKQogewogICAg
IFJlZlB0cjxXZWJGcmFtZT4gZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFt
ZShmcmFtZUlEKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtNjUzNCwxMiArNjUzNCwxMiBAQCB2b2lk
IFdlYlBhZ2U6OmZyYW1lQmVjYW1lUmVtb3RlKHVpbnQ2NF90IGZyYW1lSUQsIEdsb2JhbEZyYW1l
SWRlbnRpZmllciYmIHJlbW90ZQogfQogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykKLXZvaWQgV2ViUGFnZTo6aGFzU3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYm
IHN1YkZyYW1lRG9tYWluLCBSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCB1aW50
NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQordm9pZCBXZWJQYWdlOjpoYXNTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWlu
JiYgc3ViRnJhbWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpIYXNTdG9yYWdlQWNjZXNz
KHNlc3Npb25JRCgpLCBXVEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0b3BGcmFtZURv
bWFpbiksIGZyYW1lSUQsIG1fcGFnZUlEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwog
fQogCi12b2lkIFdlYlBhZ2U6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWlu
JiYgc3ViRnJhbWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIHVp
bnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFj
Y2Vzc1dhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2U6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFJl
Z2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluJiYgdG9w
RnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBXZWJDb3JlOjpTdG9yYWdlQWNj
ZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rp
b24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpSZXF1ZXN0U3RvcmFnZUFjY2VzcyhzZXNzaW9uSUQoKSwgV1RGTW92ZShzdWJGcmFt
ZURvbWFpbiksIFdURk1vdmUodG9wRnJhbWVEb21haW4pLCBmcmFtZUlELCBtX3BhZ2VJRCksIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KQEAgLTY1NTUsNyArNjU1NSw3IEBAIHZvaWQg
V2ViUGFnZTo6d2FzTG9hZGVkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxlbnRSZXNvdXJjZSgp
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi12b2lkIFdlYlBhZ2U6
OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ModWludDY0X3QgZnJh
bWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgb3JpZ2luLCBib29sIG1heVByb21w
dCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlz
c2lvblN0YXRlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZTo6c2hvdWxkQWxs
b3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgb3JpZ2luLCBib29sIG1heVByb21wdCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lv
blN0YXRlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBzZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1v
dGlvbkFjY2VzcyhmcmFtZUlELCBXVEZNb3ZlKG9yaWdpbiksIG1heVByb21wdCksIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAppbmRleCA3MDk5MjcwMTQyNDNjMTEyOGZmNmZhYzllNGVhOTJkZDY1MTIyYzZm
Li4xZDk3MWY0YTMzODYxMWU5NDA5YjM0ZjFlODFkZWU1MGM3NjJmY2JkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0zNDYsOSArMzQ2LDkgQEAgcHVi
bGljOgogICAgIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyKiBmdWxsU2NyZWVuTWFuYWdlcigpOwogI2Vu
ZGlmCiAKLSAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKHVpbnQ2NF90IGZyYW1lSUQsIE1lc3Nh
Z2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiwgdWludDY0X3QgcmVxdWVzdElE
ID0gMCk7Ci0gICAgdm9pZCBzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYpOwotICAgIHZv
aWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQodWludDY0X3QgZnJhbWVJRCwg
V2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmKTsKKyAgICB2b2lk
IGFkZENvbnNvbGVNZXNzYWdlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgTWVzc2FnZVNvdXJj
ZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmLCB1aW50NjRfdCByZXF1ZXN0SUQgPSAwKTsK
KyAgICB2b2lkIHNlbmRDU1BWaW9sYXRpb25SZXBvcnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmKTsKKyAgICB2
b2lkIGVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmKTsK
IAogICAgIC8vIC0tIENhbGxlZCBieSB0aGUgRHJhd2luZ0FyZWEuCiAgICAgLy8gRklYTUU6IFdl
IGNvdWxkIGdlbmVyaWNpemUgdGhlc2UgaW50byBhIERyYXdpbmdBcmVhIGNsaWVudCBpbnRlcmZh
Y2UuIFdvdWxkIHRoYXQgYmUgYmVuZWZpY2lhbD8KQEAgLTUyMiw3ICs1MjIsNyBAQCBwdWJsaWM6
CiAgICAgV2ViQ29yZTo6Q29sb3IgdW5kZXJsYXlDb2xvcigpIGNvbnN0IHsgcmV0dXJuIG1fdW5k
ZXJsYXlDb2xvcjsgfQogCiAgICAgdm9pZCBzdG9wTG9hZGluZygpOwotICAgIHZvaWQgc3RvcExv
YWRpbmdGcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsKKyAgICB2b2lkIHN0b3BMb2FkaW5nRnJhbWUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICAgICBib29sIGRlZmVyc0xvYWRpbmcoKSBjb25z
dDsKICAgICB2b2lkIHNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlckxvYWRpbmcpOwogCkBAIC03
NjksNyArNzY5LDcgQEAgcHVibGljOgogICAgIHZvaWQgY29uZmlybUNvbXBvc2l0aW9uKGNvbnN0
IFN0cmluZyYgdGV4dCwgaW50NjRfdCBzZWxlY3Rpb25TdGFydCwgaW50NjRfdCBzZWxlY3Rpb25M
ZW5ndGgpOwogICAgIHZvaWQgY2FuY2VsQ29tcG9zaXRpb24oKTsKIAotICAgIHZvaWQgY29sbGFw
c2VTZWxlY3Rpb25JbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpOworICAgIHZvaWQgY29sbGFwc2VT
ZWxlY3Rpb25JbkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAgICAgdm9pZCBzaG93
RW1vamlQaWNrZXIoV2ViQ29yZTo6RnJhbWUmKTsKIAogICAgIHZvaWQgZ2V0Q2VudGVyRm9yWm9v
bUdlc3R1cmUoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNlbnRlckluVmlld0Nvb3JkaW5hdGVz
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkludFBvaW50JiYpPiYmKTsKQEAgLTg2
MiwyMyArODYyLDIzIEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uIGFs
bG93ZWREcmFnU291cmNlQWN0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dlZERyYWdTb3Vy
Y2VBY3Rpb25zOyB9CiAjZW5kaWYKIAotICAgIHZvaWQgYmVnaW5QcmludGluZyh1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBQcmludEluZm8mKTsKKyAgICB2b2lkIGJlZ2luUHJpbnRpbmcoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mKTsKICAgICB2b2lkIGVuZFByaW50
aW5nKCk7Ci0gICAgdm9pZCBjb21wdXRlUGFnZXNGb3JQcmludGluZyh1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBQcmludEluZm8mLCBDYWxsYmFja0lEKTsKLSAgICB2b2lkIGNvbXB1dGVQYWdlc0Zv
clByaW50aW5nSW1wbCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mLCBWZWN0b3I8
V2ViQ29yZTo6SW50UmVjdD4mIHBhZ2VSZWN0cywgZG91YmxlJiB0b3RhbFNjYWxlRmFjdG9yLCBX
ZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgY29tcHV0ZWRNYXJnaW4pOworICAgIHZvaWQgY29tcHV0
ZVBhZ2VzRm9yUHJpbnRpbmcoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmludElu
Zm8mLCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nSW1wbChX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYsIFZlY3RvcjxXZWJDb3Jl
OjpJbnRSZWN0PiYgcGFnZVJlY3RzLCBkb3VibGUmIHRvdGFsU2NhbGVGYWN0b3IsIFdlYkNvcmU6
OkZsb2F0Qm94RXh0ZW50JiBjb21wdXRlZE1hcmdpbik7CiAKICNpZiBQTEFURk9STShDT0NPQSkK
LSAgICB2b2lkIGRyYXdSZWN0VG9JbWFnZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludElu
Zm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIENh
bGxiYWNrSUQpOwotICAgIHZvaWQgZHJhd1BhZ2VzVG9QREYodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgUHJpbnRJbmZvJiwgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBDYWxsYmFja0lE
KTsKLSAgICB2b2lkIGRyYXdQYWdlc1RvUERGSW1wbCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQ
cmludEluZm8mLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIFJldGFpblB0cjxDRk11
dGFibGVEYXRhUmVmPiYgcGRmUGFnZURhdGEpOworICAgIHZvaWQgZHJhd1JlY3RUb0ltYWdlKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBDYWxsYmFja0lEKTsKKyAgICB2b2lk
IGRyYXdQYWdlc1RvUERGKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZv
JiwgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBDYWxsYmFja0lEKTsKKyAgICB2b2lk
IGRyYXdQYWdlc1RvUERGSW1wbChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50
SW5mbyYsIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgUmV0YWluUHRyPENGTXV0YWJs
ZURhdGFSZWY+JiBwZGZQYWdlRGF0YSk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCi0gICAgdm9pZCBjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERih1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mLCBDYWxsYmFja0lELCBNZXNzYWdlczo6V2ViUGFn
ZTo6Q29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREY6OkRlbGF5ZWRSZXBseSYmKTsK
KyAgICB2b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgQ2FsbGJhY2tJRCwgTWVzc2FnZXM6Oldl
YlBhZ2U6OkNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGOjpEZWxheWVkUmVwbHkm
Jik7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykKLSAgICB2b2lkIGRyYXdQYWdlc0ZvclBy
aW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIENhbGxiYWNrSUQpOwor
ICAgIHZvaWQgZHJhd1BhZ2VzRm9yUHJpbnRpbmcoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBj
b25zdCBQcmludEluZm8mLCBDYWxsYmFja0lEKTsKICAgICB2b2lkIGRpZEZpbmlzaFByaW50T3Bl
cmF0aW9uKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBDYWxsYmFja0lEKTsKICNlbmRp
ZgogCkBAIC0xMTMxLDEzICsxMTMxLDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIGZsdXNoUGVuZGlu
Z0VkaXRvclN0YXRlVXBkYXRlKCk7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKQotICAgIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biYmIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1l
RG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KTsKLSAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluJiYgc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJh
bWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29y
ZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93bik+JiYpOworICAgIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYm
IHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBXZWJD
b3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKTsKICAgICB2b2lkIHdhc0xvYWRl
ZFdpdGhEYXRhVHJhbnNmZXJGcm9tUHJldmFsZW50UmVzb3VyY2UoKTsKICNlbmRpZgogCiAjaWYg
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLSAgICB2b2lkIHNob3VsZEFsbG93RGV2aWNlT3Jp
ZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ModWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiYsIGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmKTsKKyAg
ICB2b2lkIHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgYm9vbCBt
YXlQcm9tcHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRp
b25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+JiYpOwogI2VuZGlmCiAKICAgICB2b2lkIHNob3dT
aGFyZVNoZWV0KFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKTsKQEAgLTEzNTYsOCArMTM1Niw4IEBAIHByaXZh
dGU6CiAgICAgc3RhdGljIGJvb2wgc2Nyb2xsKFdlYkNvcmU6OlBhZ2UqLCBXZWJDb3JlOjpTY3Jv
bGxEaXJlY3Rpb24sIFdlYkNvcmU6OlNjcm9sbEdyYW51bGFyaXR5KTsKICAgICBzdGF0aWMgYm9v
bCBsb2dpY2FsU2Nyb2xsKFdlYkNvcmU6OlBhZ2UqLCBXZWJDb3JlOjpTY3JvbGxMb2dpY2FsRGly
ZWN0aW9uLCBXZWJDb3JlOjpTY3JvbGxHcmFudWxhcml0eSk7CiAKLSAgICB2b2lkIGxvYWRVUkxJ
bkZyYW1lKFVSTCYmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCB1aW50NjRfdCBmcmFtZUlEKTsK
LSAgICB2b2lkIGxvYWREYXRhSW5GcmFtZShJUEM6OkRhdGFSZWZlcmVuY2UmJiwgU3RyaW5nJiYg
TUlNRVR5cGUsIFN0cmluZyYmIGVuY29kaW5nTmFtZSwgVVJMJiYgYmFzZVVSTCwgdWludDY0X3Qg
ZnJhbWVJRCk7CisgICAgdm9pZCBsb2FkVVJMSW5GcmFtZShVUkwmJiwgY29uc3QgU3RyaW5nJiBy
ZWZlcnJlciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGxvYWREYXRhSW5G
cmFtZShJUEM6OkRhdGFSZWZlcmVuY2UmJiwgU3RyaW5nJiYgTUlNRVR5cGUsIFN0cmluZyYmIGVu
Y29kaW5nTmFtZSwgVVJMJiYgYmFzZVVSTCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKIAog
ICAgIGVudW0gY2xhc3MgV2FzUmVzdG9yZWRCeUFQSVJlcXVlc3QgeyBObywgWWVzIH07CiAgICAg
dm9pZCByZXN0b3JlU2Vzc2lvbkludGVybmFsKGNvbnN0IFZlY3RvcjxCYWNrRm9yd2FyZExpc3RJ
dGVtU3RhdGU+JiwgV2FzUmVzdG9yZWRCeUFQSVJlcXVlc3QsIFdlYkJhY2tGb3J3YXJkTGlzdFBy
b3h5OjpPdmVyd3JpdGVFeGlzdGluZ0l0ZW0pOwpAQCAtMTM4OSwxNiArMTM4OSwxNiBAQCBwcml2
YXRlOgogI2lmIEVOQUJMRShNSFRNTCkKICAgICB2b2lkIGdldENvbnRlbnRzQXNNSFRNTERhdGEo
Q2FsbGJhY2tJRCk7CiAjZW5kaWYKLSAgICB2b2lkIGdldE1haW5SZXNvdXJjZURhdGFPZkZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIENhbGxiYWNrSUQpOwotICAgIHZvaWQgZ2V0UmVzb3VyY2VEYXRh
RnJvbUZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VVUkwsIENh
bGxiYWNrSUQpOworICAgIHZvaWQgZ2V0TWFpblJlc291cmNlRGF0YU9mRnJhbWUoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIGdldFJlc291cmNlRGF0YUZy
b21GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VV
UkwsIENhbGxiYWNrSUQpOwogICAgIHZvaWQgZ2V0UmVuZGVyVHJlZUV4dGVybmFsUmVwcmVzZW50
YXRpb24oQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBnZXRTZWxlY3Rpb25PckNvbnRlbnRzQXNTdHJp
bmcoQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBnZXRTZWxlY3Rpb25Bc1dlYkFyY2hpdmVEYXRhKENh
bGxiYWNrSUQpOwotICAgIHZvaWQgZ2V0U291cmNlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
Q2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBnZXRXZWJBcmNoaXZlT2ZGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIGdldFNvdXJjZUZvckZyYW1lKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBnZXRXZWJBcmNoaXZlT2ZGcmFt
ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENhbGxiYWNrSUQpOwogICAgIHZvaWQgcnVuSmF2
YVNjcmlwdChXZWJGcmFtZSosIGNvbnN0IFN0cmluZyYsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwg
Y29uc3QgT3B0aW9uYWw8U3RyaW5nPiYgd29ybGROYW1lLCBDYWxsYmFja0lEKTsKICAgICB2b2lk
IHJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZVNjcmlwdFdvcmxkKGNvbnN0IFN0cmluZyYsIGJvb2wg
Zm9yY2VVc2VyR2VzdHVyZSwgY29uc3QgT3B0aW9uYWw8U3RyaW5nPiYgd29ybGROYW1lLCBDYWxs
YmFja0lEKTsKLSAgICB2b2lkIHJ1bkphdmFTY3JpcHRJbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFN0cmluZyYsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgQ2FsbGJhY2tJRCk7CisgICAg
dm9pZCBydW5KYXZhU2NyaXB0SW5GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBm
b3JjZVJlcGFpbnQoQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCB0YWtlU25hcHNob3QoV2ViQ29yZTo6
SW50UmVjdCBzbmFwc2hvdFJlY3QsIFdlYkNvcmU6OkludFNpemUgYml0bWFwU2l6ZSwgdWludDMy
X3Qgb3B0aW9ucywgQ2FsbGJhY2tJRCk7CiAKQEAgLTE0MTIsOCArMTQxMiw4IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBwYXJlbnRQcm9jZXNzSGFzU2VydmljZVdvcmtlckVudGl0bGVtZW50KCkgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQogI2VuZGlmCiAKLSAgICB2b2lkIGRpZFJlY2VpdmVQb2xpY3lE
ZWNpc2lvbih1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJDb3JlOjpQ
b2xpY3lDaGVja0lkZW50aWZpZXIsIFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBjb25zdCBEb3dubG9hZElEJiwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0
YT4mJik7Ci0gICAgdm9pZCBjb250aW51ZVdpbGxTdWJtaXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQs
IHVpbnQ2NF90IGxpc3RlbmVySUQpOworICAgIHZvaWQgZGlkUmVjZWl2ZVBvbGljeURlY2lzaW9u
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViQ29yZTo6
UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24sIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgY29uc3QgRG93bmxvYWRJRCYsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0Rh
dGE+JiYpOworICAgIHZvaWQgY29udGludWVXaWxsU3VibWl0Rm9ybShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwogICAgIHZvaWQgc2V0VXNlckFnZW50KGNv
bnN0IFN0cmluZyYpOwogICAgIHZvaWQgc2V0Q3VzdG9tVGV4dEVuY29kaW5nTmFtZShjb25zdCBT
dHJpbmcmKTsKICAgICB2b2lkIHN1c3BlbmRBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9ucygp
OwpAQCAtMTQzMSw3ICsxNDMxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHdpbmRvd0FuZFZpZXdG
cmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgd2luZG93RnJhbWVJblNjcmVl
bkNvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHdpbmRvd0ZyYW1lSW5VbmZs
aXBwZWRTY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB2aWV3RnJh
bWVJbldpbmRvd0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBhY2Nlc3Np
YmlsaXR5Vmlld0Nvb3JkaW5hdGVzKTsKIAogICAgIFJldGFpblB0cjxQREZEb2N1bWVudD4gcGRm
RG9jdW1lbnRGb3JQcmludGluZ0ZyYW1lKFdlYkNvcmU6OkZyYW1lKik7Ci0gICAgdm9pZCBjb21w
dXRlUGFnZXNGb3JQcmludGluZ1BERkRvY3VtZW50KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFBy
aW50SW5mbyYsIFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiYgcmVzdWx0UGFnZVJlY3RzKTsKKyAg
ICB2b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERGRG9jdW1lbnQoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mLCBWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4mIHJl
c3VsdFBhZ2VSZWN0cyk7CiAgICAgdm9pZCBkcmF3UERGRG9jdW1lbnQoQ0dDb250ZXh0UmVmLCBQ
REZEb2N1bWVudCAqLCBjb25zdCBQcmludEluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7
CiAgICAgdm9pZCBkcmF3UGFnZXNUb1BERkZyb21QREZEb2N1bWVudChDR0NvbnRleHRSZWYsIFBE
RkRvY3VtZW50ICosIGNvbnN0IFByaW50SW5mbyYsIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBj
b3VudCk7CiAjZW5kaWYKQEAgLTE1ODQsNyArMTU4NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB2
b2ljZXNEaWRDaGFuZ2UoKTsKICNlbmRpZgogCi0gICAgdm9pZCBmcmFtZUJlY2FtZVJlbW90ZSh1
aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpHbG9iYWxGcmFtZUlkZW50aWZpZXImJiByZW1vdGVG
cmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXImJiByZW1vdGVX
aW5kb3dJZGVudGlmaWVyKTsKKyAgICB2b2lkIGZyYW1lQmVjYW1lUmVtb3RlKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgV2ViQ29yZTo6R2xvYmFsRnJhbWVJZGVudGlmaWVyJiYgcmVtb3RlRnJh
bWVJZGVudGlmaWVyLCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlmaWVyJiYgcmVtb3RlV2lu
ZG93SWRlbnRpZmllcik7CiAKICAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lSGFuZGxlcih1aW50
NjRfdCBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNjaGVtZSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IGE1
MmUyNTFkMjVkYTZkODg3MWIyNzJkNzE0MjI5MTMyOWM1ZjI0MzguLmJhN2Y2NGJmZGNiY2NmOGFi
MmMzM2Y2YzI3OGI0NmQxNTE4ODhmMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMjcsOSArMjcsOSBAQCBtZXNz
YWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIFNldEJhY2tncm91bmRDb2xv
cihPcHRpb25hbDxXZWJDb3JlOjpDb2xvcj4gY29sb3IpCiAKLSAgICBBZGRDb25zb2xlTWVzc2Fn
ZSh1aW50NjRfdCBmcmFtZUlELCBlbnVtOnVpbnQ4X3QgSlNDOjpNZXNzYWdlU291cmNlIG1lc3Nh
Z2VTb3VyY2UsIGVudW06dWludDhfdCBKU0M6Ok1lc3NhZ2VMZXZlbCBtZXNzYWdlTGV2ZWwsIFN0
cmluZyBtZXNzYWdlLCB1aW50NjRfdCByZXF1ZXN0SUQpCi0gICAgU2VuZENTUFZpb2xhdGlvblJl
cG9ydCh1aW50NjRfdCBmcmFtZUlELCBVUkwgcmVwb3J0VVJMLCBJUEM6OkZvcm1EYXRhUmVmZXJl
bmNlIHJlcG9ydERhdGEpCi0gICAgRW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQo
dWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6
SW5pdCBldmVudEluaXQpCisgICAgQWRkQ29uc29sZU1lc3NhZ2UoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIGVudW06dWludDhfdCBKU0M6Ok1lc3NhZ2VTb3VyY2UgbWVzc2FnZVNv
dXJjZSwgZW51bTp1aW50OF90IEpTQzo6TWVzc2FnZUxldmVsIG1lc3NhZ2VMZXZlbCwgU3RyaW5n
IG1lc3NhZ2UsIHVpbnQ2NF90IHJlcXVlc3RJRCkKKyAgICBTZW5kQ1NQVmlvbGF0aW9uUmVwb3J0
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBVUkwgcmVwb3J0VVJMLCBJUEM6OkZv
cm1EYXRhUmVmZXJlbmNlIHJlcG9ydERhdGEpCisgICAgRW5xdWV1ZVNlY3VyaXR5UG9saWN5Vmlv
bGF0aW9uRXZlbnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlNl
Y3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQgZXZlbnRJbml0KQogCiAgICAgVGVzdFBy
b2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KCkgLT4gKGJv
b2wgaGFuZGxlZCkgU3luY2hyb25vdXMKIApAQCAtMTYyLDggKzE2Miw4IEBAIEdlbmVyYXRlU3lu
dGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGlu
Z0NvbW1hbmRUeXBlCiAgICAgR29Ub0JhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIHN0cnVjdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyIGJhY2tGb3J3YXJk
SXRlbUlELCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6RnJhbWVMb2FkVHlwZSBiYWNrRm9yd2FyZFR5
cGUsIGVudW06Ym9vbCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxk
VHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBPcHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0Rh
dGE+IHdlYnNpdGVQb2xpY2llcykKICAgICBUcnlSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQogCi0g
ICAgTG9hZFVSTEluRnJhbWUoVVJMIHVybCwgU3RyaW5nIHJlZmVycmVyLCB1aW50NjRfdCBmcmFt
ZUlEKQotICAgIExvYWREYXRhSW5GcmFtZShJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSwgU3RyaW5n
IE1JTUVUeXBlLCBTdHJpbmcgZW5jb2RpbmdOYW1lLCBVUkwgYmFzZVVSTCwgdWludDY0X3QgZnJh
bWVJRCkKKyAgICBMb2FkVVJMSW5GcmFtZShVUkwgdXJsLCBTdHJpbmcgcmVmZXJyZXIsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQorICAgIExvYWREYXRhSW5GcmFtZShJUEM6OkRh
dGFSZWZlcmVuY2UgZGF0YSwgU3RyaW5nIE1JTUVUeXBlLCBTdHJpbmcgZW5jb2RpbmdOYW1lLCBV
UkwgYmFzZVVSTCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAgICAgTG9hZFJl
cXVlc3Qoc3RydWN0IFdlYktpdDo6TG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnMpCiAgICAg
TG9hZERhdGEoc3RydWN0IFdlYktpdDo6TG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnMpCiAg
ICAgTG9hZEFsdGVybmF0ZUhUTUwoc3RydWN0IFdlYktpdDo6TG9hZFBhcmFtZXRlcnMgbG9hZFBh
cmFtZXRlcnMpCkBAIC0xNzMsNyArMTczLDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29t
bWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAg
ICBSZWxvYWQodWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50MzJfdCByZWxvYWRPcHRpb25zLCBX
ZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKQog
ICAgIFN0b3BMb2FkaW5nKCkKIAotICAgIFN0b3BMb2FkaW5nRnJhbWUodWludDY0X3QgZnJhbWVJ
RCkKKyAgICBTdG9wTG9hZGluZ0ZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
KQogICAgIAogICAgIFJlc3RvcmVTZXNzaW9uKFZlY3RvcjxXZWJLaXQ6OkJhY2tGb3J3YXJkTGlz
dEl0ZW1TdGF0ZT4gaXRlbVN0YXRlcykKICAgICBVcGRhdGVCYWNrRm9yd2FyZExpc3RGb3JSZWF0
dGFjaChWZWN0b3I8V2ViS2l0OjpCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGU+IGl0ZW1TdGF0ZXMp
CkBAIC0xODIsOCArMTgyLDggQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVt
OnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBEaWRSZW1v
dmVCYWNrRm9yd2FyZEl0ZW0oc3RydWN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZp
ZXIgYmFja0ZvcndhcmRJdGVtSUQpCiAKICAgICBVcGRhdGVXZWJzaXRlUG9saWNpZXMoc3RydWN0
IFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0YSB3ZWJzaXRlUG9saWNpZXMpCi0gICAgRGlkUmVj
ZWl2ZVBvbGljeURlY2lzaW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQs
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIGVu
dW06dWludDhfdCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBPcHRpb25hbDxXZWJL
aXQ6OldlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQb2xpY2llcykKLSAgICBDb250aW51ZVdp
bGxTdWJtaXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQpCisgICAg
RGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9s
aWN5Q2hlY2tJZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UG9saWN5QWN0aW9uIHBv
bGljeUFjdGlvbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93
bmxvYWRJRCwgT3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9s
aWNpZXMpCisgICAgQ29udGludWVXaWxsU3VibWl0Rm9ybShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCkKIAogICAgIENsZWFyU2VsZWN0aW9uKCkK
ICAgICBSZXN0b3JlU2VsZWN0aW9uSW5Gb2N1c2VkRWRpdGFibGVFbGVtZW50KCkKQEAgLTE5Niwx
NSArMTk2LDE1IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90
IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAjaWYgRU5BQkxFKE1IVE1MKQog
ICAgIEdldENvbnRlbnRzQXNNSFRNTERhdGEoV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQp
CiAjZW5kaWYKLSAgICBHZXRNYWluUmVzb3VyY2VEYXRhT2ZGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKLSAgICBHZXRSZXNvdXJjZURhdGFGcm9t
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHJlc291cmNlVVJMLCBXZWJLaXQ6OkNhbGxi
YWNrSUQgY2FsbGJhY2tJRCkKKyAgICBHZXRNYWluUmVzb3VyY2VEYXRhT2ZGcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQp
CisgICAgR2V0UmVzb3VyY2VEYXRhRnJvbUZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBTdHJpbmcgcmVzb3VyY2VVUkwsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lE
KQogICAgIEdldFJlbmRlclRyZWVFeHRlcm5hbFJlcHJlc2VudGF0aW9uKFdlYktpdDo6Q2FsbGJh
Y2tJRCBjYWxsYmFja0lEKQogICAgIEdldFNlbGVjdGlvbk9yQ29udGVudHNBc1N0cmluZyhXZWJL
aXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBHZXRTZWxlY3Rpb25Bc1dlYkFyY2hpdmVE
YXRhKFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIEdldFNvdXJjZUZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIEdl
dFdlYkFyY2hpdmVPZkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6Q2FsbGJhY2tJRCBj
YWxsYmFja0lEKQorICAgIEdldFNvdXJjZUZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBHZXRXZWJBcmNo
aXZlT2ZGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViS2l0OjpDYWxs
YmFja0lEIGNhbGxiYWNrSUQpCiAgICAgUnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lU2NyaXB0V29y
bGQoU3RyaW5nIHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBPcHRpb25hbDxTdHJpbmc+
IHdvcmxkTmFtZSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCi0gICAgUnVuSmF2YVNj
cmlwdEluRnJhbWUodWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHNjcmlwdCwgYm9vbCBmb3JjZVVz
ZXJHZXN0dXJlLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBSdW5KYXZhU2Ny
aXB0SW5GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIHNjcmlw
dCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkK
ICAgICBGb3JjZVJlcGFpbnQoV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAKICAgICBT
ZWxlY3RBbGwoKQpAQCAtMzgwLDE4ICszODAsMTggQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5n
Q29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUK
ICAgICBEaWRSZWNlaXZlTm90aWZpY2F0aW9uUGVybWlzc2lvbkRlY2lzaW9uKHVpbnQ2NF90IG5v
dGlmaWNhdGlvbklELCBib29sIGFsbG93ZWQpCiAKICAgICAjIFByaW50aW5nLgotICAgIEJlZ2lu
UHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50
SW5mbykKKyAgICBCZWdpblByaW50aW5nKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvKQogICAgIEVuZFByaW50aW5nKCkK
LSAgICBDb21wdXRlUGFnZXNGb3JQcmludGluZyh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2Vi
S2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkK
KyAgICBDb21wdXRlUGFnZXNGb3JQcmludGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2ViS2l0OjpDYWxsYmFj
a0lEIGNhbGxiYWNrSUQpCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgRHJhd1JlY3RUb0ltYWdl
KHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIFdl
YkNvcmU6OkludFJlY3QgcmVjdCwgV2ViQ29yZTo6SW50U2l6ZSBpbWFnZVNpemUsIFdlYktpdDo6
Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIERyYXdQYWdlc1RvUERGKHVpbnQ2NF90IGZyYW1l
SUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIHVpbnQzMl90IGZpcnN0LCB1
aW50MzJfdCBjb3VudCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCisgICAgRHJhd1Jl
Y3RUb0ltYWdlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0
OjpQcmludEluZm8gcHJpbnRJbmZvLCBXZWJDb3JlOjpJbnRSZWN0IHJlY3QsIFdlYkNvcmU6Oklu
dFNpemUgaW1hZ2VTaXplLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBEcmF3
UGFnZXNUb1BERihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktp
dDo6UHJpbnRJbmZvIHByaW50SW5mbywgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBX
ZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQot
ICAgIENvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKHVpbnQ2NF90IGZyYW1lSUQs
IHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIFdlYktpdDo6Q2FsbGJhY2tJRCBj
YWxsYmFja0lEKSAtPiAodWludDMyX3QgcGFnZUNvdW50KSBTeW5jaHJvbm91cworICAgIENvbXB1
dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCBXZWJLaXQ6OkNhbGxi
YWNrSUQgY2FsbGJhY2tJRCkgLT4gKHVpbnQzMl90IHBhZ2VDb3VudCkgU3luY2hyb25vdXMKICNl
bmRpZgogI2VuZGlmCiAjaWYgUExBVEZPUk0oR1RLKQotICAgIERyYXdQYWdlc0ZvclByaW50aW5n
KHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIFdl
YktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIERyYXdQYWdlc0ZvclByaW50aW5nKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8g
cHJpbnRJbmZvLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICNlbmRpZgogCiAgICAg
IyBNZWRpYQpAQCAtNDEzLDcgKzQxMyw3IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1h
bmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAgICAg
Q29uZmlybUNvbXBvc2l0aW9uKFN0cmluZyB0ZXh0LCBpbnQ2NF90IHNlbGVjdGlvblN0YXJ0LCBp
bnQ2NF90IHNlbGVjdGlvbkxlbmd0aCkKICAgICBDYW5jZWxDb21wb3NpdGlvbigpCiAKLSAgICBD
b2xsYXBzZVNlbGVjdGlvbkluRnJhbWUodWludDY0X3QgZnJhbWVJRCkKKyAgICBDb2xsYXBzZVNl
bGVjdGlvbkluRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAKICAgICBH
ZXRDZW50ZXJGb3Jab29tR2VzdHVyZShXZWJDb3JlOjpJbnRQb2ludCBjZW50ZXJJblZpZXdDb29y
ZGluYXRlcykgLT4gKFdlYkNvcmU6OkludFBvaW50IGNlbnRlcikgU3luY2hyb25vdXMKICNlbmRp
ZgpAQCAtNTM2LDcgKzUzNiw3IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51
bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAgICAgRGlkUmVj
ZWl2ZVBhc3N3b3JkRm9yUXVpY2tMb29rRG9jdW1lbnQoU3RyaW5nIHBhc3N3b3JkKQogI2VuZGlm
CiAKLSAgICBGcmFtZUJlY2FtZVJlbW90ZSh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29y
ZTo6R2xvYmFsRnJhbWVJZGVudGlmaWVyIHJlbW90ZUZyYW1lSWRlbnRpZmllciwgc3RydWN0IFdl
YkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXIgcmVtb3RlV2luZG93SWRlbnRpZmllcikKKyAg
ICBGcmFtZUJlY2FtZVJlbW90ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3Ry
dWN0IFdlYkNvcmU6Okdsb2JhbEZyYW1lSWRlbnRpZmllciByZW1vdGVGcmFtZUlkZW50aWZpZXIs
IHN0cnVjdCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlmaWVyIHJlbW90ZVdpbmRvd0lkZW50
aWZpZXIpCiAKICAgICBSZWdpc3RlclVSTFNjaGVtZUhhbmRsZXIodWludDY0X3QgaWRlbnRpZmll
ciwgU3RyaW5nIHNjaGVtZSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvZ3RrL1dlYlBhZ2VHdGsuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvZ3RrL1dlYlBhZ2VHdGsuY3BwCmluZGV4IGM5ODJkMGI3NjIxZWMzMGJhYjQ3ZGVhMjg3
NmU5NzYwMGFkYjM4ODEuLjM2ODhlMTVlYTkwZTg3ZGI5Y2NkZTcxOWJmNmNlNTZiMzE4MmI4ZDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdl
R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFn
ZUd0ay5jcHAKQEAgLTE4Myw3ICsxODMsNyBAQCB2b2lkIFdlYlBhZ2U6OnNldElucHV0TWV0aG9k
U3RhdGUoYm9vbCBlbmFibGVkKQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0
SW5wdXRNZXRob2RTdGF0ZShlbmFibGVkKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6Y29sbGFwc2VT
ZWxlY3Rpb25JbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2U6OmNvbGxhcHNl
U2VsZWN0aW9uSW5GcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBXZWJGcmFt
ZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAg
ICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+Y29yZUZyYW1lKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IGU0YzY0MjcxY2Nm
ODkzYjM1OWI5NDU3OWM4YjJkMTc5MWRkYTljYjkuLjJkYjBlYjZiYmFhNDU3OGJmNmE2OTVjZTQw
MDJkNzczNjUxNmJkNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC01NTEsNyArNTUxLDcgQEAgdm9pZCBXZWJQYWdlOjph
Y2NlcHRzRmlyc3RNb3VzZShpbnQsIGNvbnN0IFdlYktpdDo6V2ViTW91c2VFdmVudCYsIENvbXBs
ZXRpb25IYW4KICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CiB9CiAKLXZvaWQgV2ViUGFn
ZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdQREZEb2N1bWVudCh1aW50NjRfdCwgY29uc3QgUHJp
bnRJbmZvJiwgVmVjdG9yPEludFJlY3Q+JikKK3ZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9y
UHJpbnRpbmdQREZEb2N1bWVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50
SW5mbyYsIFZlY3RvcjxJbnRSZWN0PiYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAg
LTM3MzksNyArMzczOSw3IEBAIHZvaWQgV2ViUGFnZTo6ZGlzcGF0Y2hBc3luY2hyb25vdXNUb3Vj
aEV2ZW50cyhjb25zdCBWZWN0b3I8V2ViVG91Y2hFdmVudCwgMT4mIHF1CiB9CiAjZW5kaWYKIAot
dm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERih1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgQ2FsbGJhY2tJRCBjYWxsYmFj
a0lELCBNZXNzYWdlczo6V2ViUGFnZTo6Q29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9Q
REY6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQordm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQ
cmludGluZ0FuZERyYXdUb1BERihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29u
c3QgUHJpbnRJbmZvJiBwcmludEluZm8sIENhbGxiYWNrSUQgY2FsbGJhY2tJRCwgTWVzc2FnZXM6
OldlYlBhZ2U6OkNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGOjpEZWxheWVkUmVw
bHkmJiByZXBseSkKIHsKICAgICBpZiAocHJpbnRJbmZvLnNuYXBzaG90Rmlyc3RQYWdlKSB7CiAg
ICAgICAgIHJlcGx5KDEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvV2ViUGFnZU1hYy5tbQppbmRleCA0MzFkZmExN2FjYTA1YjYwZWZlOWFlMDQwM2E0MDg4
MGUyODE4ZDgwLi5mZTI0MTdiMGE3ZDU4MzYzYzU0YmI4NmRhNTc4OThkMTFmYmUzNTM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5t
bQpAQCAtNjcwLDcgKzY3MCw3IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlSGVhZGVyQW5kRm9vdGVy
TGF5ZXJzRm9yRGV2aWNlU2NhbGVDaGFuZ2UoZmxvYXQgc2NhbGVGYWN0b3IpCiAgICAgICAgIG1f
Zm9vdGVyQmFubmVyLT5kaWRDaGFuZ2VEZXZpY2VTY2FsZUZhY3RvcihzY2FsZUZhY3Rvcik7CiB9
CiAKLXZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdQREZEb2N1bWVudCh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgVmVjdG9yPEludFJlY3Q+
JiByZXN1bHRQYWdlUmVjdHMpCit2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5n
UERGRG9jdW1lbnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50
SW5mbyYgcHJpbnRJbmZvLCBWZWN0b3I8SW50UmVjdD4mIHJlc3VsdFBhZ2VSZWN0cykKIHsKICAg
ICBBU1NFUlQocmVzdWx0UGFnZVJlY3RzLmlzRW1wdHkoKSk7CiAgICAgV2ViRnJhbWUqIGZyYW1l
ID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYTJkYTEyYzYwMjI5MzczY2Y4Nzg5MmI4
M2RhYTU3NzM1MDBhNzdmMi4uNTY1ZmNhYWVkMTMwOWU3ODY1NjRjMGJmZWFiOGI5ZTFiZjU0MDc1
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNzY4LDE3ICs3
NjgsMTcgQEAgdm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGUKICAgICBMT0dfRVJST1IoIlVuaGFuZGxl
ZCB3ZWIgcHJvY2VzcyBtZXNzYWdlICclczolcyciLCBkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5h
bWUoKS50b1N0cmluZygpLmRhdGEoKSwgZGVjb2Rlci5tZXNzYWdlTmFtZSgpLnRvU3RyaW5nKCku
ZGF0YSgpKTsKIH0KIAotV2ViRnJhbWUqIFdlYlByb2Nlc3M6OndlYkZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQpIGNvbnN0CitXZWJGcmFtZSogV2ViUHJvY2Vzczo6d2ViRnJhbWUoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fZnJhbWVNYXAuZ2V0KGZyYW1lSUQp
OwogfQogCi12b2lkIFdlYlByb2Nlc3M6OmFkZFdlYkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdl
YkZyYW1lKiBmcmFtZSkKK3ZvaWQgV2ViUHJvY2Vzczo6YWRkV2ViRnJhbWUoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIFdlYkZyYW1lKiBmcmFtZSkKIHsKICAgICBtX2ZyYW1lTWFwLnNldChmcmFt
ZUlELCBmcmFtZSk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6cmVtb3ZlV2ViRnJhbWUodWludDY0
X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUHJvY2Vzczo6cmVtb3ZlV2ViRnJhbWUoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQpCiB7CiAgICAgbV9mcmFtZU1hcC5yZW1vdmUoZnJhbWVJRCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGQ0YzAxYmFiMWY5M2RhOTA4NWIwZjIx
OTRjZDMyN2Q0NzE4NjUwYjIuLjNjYjJjNDk2OTQ5OTg4N2IzMmI1M2IzYTY2ZDBiYmY2ODVhMzIx
OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtNDAsNiArNDAsNyBA
QAogI2luY2x1ZGUgIldlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5oIgogI2luY2x1ZGUgIldlYlNv
Y2tldENoYW5uZWxNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BY3Rpdml0eVN0YXRlLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5o
PgogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTE3Miw5ICsxNzMsOSBAQCBwdWJsaWM6CiAKICAgICBi
b29sIGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2Z1bGxLZXli
b2FyZEFjY2Vzc0VuYWJsZWQ7IH0KIAotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSh1aW50NjRfdCkg
Y29uc3Q7Ci0gICAgdm9pZCBhZGRXZWJGcmFtZSh1aW50NjRfdCwgV2ViRnJhbWUqKTsKLSAgICB2
b2lkIHJlbW92ZVdlYkZyYW1lKHVpbnQ2NF90KTsKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyKSBjb25zdDsKKyAgICB2b2lkIGFkZFdlYkZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgV2ViRnJhbWUqKTsKKyAgICB2b2lkIHJlbW92ZVdlYkZyYW1l
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAKICAgICBXZWJQYWdlR3JvdXBQcm94eSogd2Vi
UGFnZUdyb3VwKFdlYkNvcmU6OlBhZ2VHcm91cCopOwogICAgIFdlYlBhZ2VHcm91cFByb3h5KiB3
ZWJQYWdlR3JvdXAodWludDY0X3QgcGFnZUdyb3VwSUQpOwpAQCAtNDg5LDcgKzQ5MCw3IEBAIHBy
aXZhdGU6CiAKICAgICBib29sIG1fZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCB7IGZhbHNlIH07
CiAKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBXZWJGcmFtZSo+IG1fZnJhbWVNYXA7CisgICAgSGFz
aE1hcDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkZyYW1lKj4gbV9mcmFtZU1hcDsKIAog
ICAgIHR5cGVkZWYgSGFzaE1hcDxjb25zdCBjaGFyKiwgc3RkOjp1bmlxdWVfcHRyPFdlYlByb2Nl
c3NTdXBwbGVtZW50PiwgUHRySGFzaDxjb25zdCBjaGFyKj4+IFdlYlByb2Nlc3NTdXBwbGVtZW50
TWFwOwogICAgIFdlYlByb2Nlc3NTdXBwbGVtZW50TWFwIG1fc3VwcGxlbWVudHM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaAppbmRleCBiMTQwM2QwNTYzOTNiMzk3ZDAxN2QwOTNkZTVmZTA0Y2Rj
Y2E4Y2NkLi5kNjA2MzBmZTBjYWFkZjQzYThiNzQ0OWQyZDU0OTBlZGIwOGU2YWM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTY0LDcgKzY0LDcgQEAgcHJpdmF0ZToKICAgICBib29s
IGhhc1dlYlZpZXcoKSBjb25zdCBmaW5hbDsgLy8gbWFpbmx5IGZvciBhc3NlcnRpb25zCiAKICAg
ICBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlEKCkgY29uc3QgZmluYWw7
Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQoKSBjb25zdCBmaW5hbDsKKyAgICBPcHRp
b25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQoKSBjb25zdCBmaW5hbDsKICAg
ICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgbWFr
ZVJlcHJlc2VudGF0aW9uKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKikgZmluYWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDNkZDUwZTdiM2I5Y2Y5OTMzNDljOWFiYjRjYjQ5Nzgz
N2VlYzM1M2UuLmI3YTY1ZTk5MzRmZmYwODgwYjc1NjhjYTAwZTk2MmUwMTVhZTQyMTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC0yMTQsNyArMjE0LDcgQEAgT3B0aW9uYWw8UGFn
ZUlkZW50aWZpZXI+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpwYWdlSUQoKSBjb25zdAogICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CiB9CiAKLU9wdGlvbmFsPHVpbnQ2NF90PiBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6ZnJhbWVJRCgpIGNvbnN0CitPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlEKCkgY29uc3QKIHsKICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376322</attachid>
            <date>2019-08-14 15:36:52 -0700</date>
            <delta_ts>2019-08-14 16:06:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199986-20190814153651.patch</filename>
            <type>text/plain</type>
            <size>443761</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmE3MDY4NjA3ZWFlOTVj
NTA0YWRlOThlNGIyZDQ4NzlmMjY2NDRmOS4uOTM1OGNjMTBmYjk5ZjFkMTE2ZmEyNDUwMzVhM2Ri
MDgzMjEwYTc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE5LTA4LTE0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBPYmplY3RJ
ZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+IGZvciBmcmFtZUlEcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5OTg2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBzdHJvbmdseS10eXBl
ZCBGcmFtZUlkZW50aWZpZXIgaW5zdGVhZCBvZiB1aW50NjRfdCBhcyBmcmFtZSBpZGVudGlmaWVy
cyBldmVyeXdoZXJlLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGxvYWRlci9Db29raWVKYXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q29va2llSmFyOjpjb29raWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tpZUphcjo6
c2V0Q29va2llcyk6CisgICAgICAgIChXZWJDb3JlOjpDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tpZUphcjo6Z2V0
UmF3Q29va2llcyBjb25zdCk6CisgICAgICAgICogbG9hZGVyL0Nvb2tpZUphci5oOgorICAgICAg
ICAqIGxvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3Bw
OgorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
OjpOYXZpZ2F0aW9uQWN0aW9uOjpSZXF1ZXN0ZXI6OmZyYW1lSUQgY29uc3QpOgorICAgICAgICAq
IHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9HbG9iYWxGcmFtZUlkZW50aWZp
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Okdsb2JhbEZyYW1lSWRlbnRpZmllcjo6ZGVjb2RlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Nvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzaG91bGRCbG9ja0Nv
b2tpZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpo
YXNTdG9yYWdlQWNjZXNzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6Z3JhbnRTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW06CisgICAgICAg
IChXZWJDb3JlOjpjb29raWVzRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZXNGb3JT
ZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2ll
c0ZvckRPTSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzIGNvbnN0KToK
KwogMjAxOS0wOC0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAg
ICAgVXBkYXRlIFdvcmtlcjo6bm90aWZ5RmluaXNoZWQgdG8gbm90IHVzZSBlbXB0eVNlc3Npb25J
RApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA1NGI3OTc3NmIwNTc1YjFhODgzY2Y2OTc4ZmFjZDBhMTU1Y2NhOWM1Li40
NTg3MjQyZjU2N2Q0YzBiMmVlZjgwYmIxOTJmYWJiZjE1ODIwMjk3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDM0OSBAQAorMjAxOS0wOC0xNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KKworICAgICAgICBVc2UgT2JqZWN0SWRlbnRpZmllcjxGcmFtZUlkZW50aWZpZXJUeXBl
PiBmb3IgZnJhbWVJRHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5OTk4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVzZSB0aGUgc3Ryb25nbHktdHlwZWQgRnJhbWVJZGVudGlmaWVyIGluc3RlYWQgb2Yg
dWludDY0X3QgYXMgZnJhbWUgaWRlbnRpZmllcnMgZXZlcnl3aGVyZS4KKworICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFudFN0b3JhZ2VB
Y2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAg
ICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmdyYW50U3RvcmFn
ZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsSGFzU3Rv
cmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEdy
YW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTSk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJv
bURPTSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpj
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXRSYXdDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpoYXNT
dG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtMb2FkQ2hlY2tlcjo6TmV0d29ya0xvYWRDaGVja2VyKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRy
eSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnROZXR3b3Jr
TG9hZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y29udmVydFRv
RG93bmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmFib3J0
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVz
cG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2Vp
dmVCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZp
bmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRp
ZEZhaWxMb2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpj
b250aW51ZVdpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OmVzY2FwZUlERm9ySlNP
Tik6CisgICAgICAgIChXZWJLaXQ6OmxvZ0Jsb2NrZWRDb29raWVJbmZvcm1hdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uSW50ZXJuYWwpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24pOgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNoYXJlZC9BUEkv
QVBJRnJhbWVIYW5kbGUuY3BwOgorICAgICAgICAoQVBJOjpGcmFtZUhhbmRsZTo6Y3JlYXRlKToK
KyAgICAgICAgKEFQSTo6RnJhbWVIYW5kbGU6OmNyZWF0ZUF1dG9jb252ZXJ0aW5nKToKKyAgICAg
ICAgKEFQSTo6RnJhbWVIYW5kbGU6OkZyYW1lSGFuZGxlKToKKyAgICAgICAgKEFQSTo6RnJhbWVI
YW5kbGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5oOgor
ICAgICAgICAoQVBJOjpGcmFtZUhhbmRsZTo6ZnJhbWVJRCBjb25zdCk6CisgICAgICAgICogU2hh
cmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5tbToKKyAgICAgICAgKC1bX1dLRnJhbWVIYW5k
bGUgaGFzaF0pOgorICAgICAgICAoLVtfV0tGcmFtZUhhbmRsZSBfZnJhbWVJRF0pOgorICAgICAg
ICAoLVtfV0tGcmFtZUhhbmRsZSBpbml0V2l0aENvZGVyOl0pOgorICAgICAgICAoLVtfV0tGcmFt
ZUhhbmRsZSBlbmNvZGVXaXRoQ29kZXI6XSk6CisgICAgICAgICogU2hhcmVkL0F1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRp
Y2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAg
ICAgKiBTaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmg6CisgICAg
ICAgICogU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tGcmFtZUhhbmRsZVJlZi5jcHA6CisgICAgICAgIChXS0ZyYW1lSGFuZGxlR2V0RnJhbWVJRCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgt
W1dLV2ViVmlldyBfcHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvOmZvckZyYW1lOl0pOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX2NhbkNoYW5nZUZyYW1lTGF5b3V0Ol0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tOgorICAgICAgICAoLVtfV0tJbnNwZWN0
b3Igc2hvd01haW5SZXNvdXJjZUZvckZyYW1lOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRv
bWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNp
bXVsYXRlZElucHV0RGlzcGF0Y2hlcjo6cnVuKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21h
dGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0
b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dG9tYXRpb25TZXNzaW9uOjp3ZWJGcmFtZUlERm9ySGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQXV0b21hdGlvblNlc3Npb246OmhhbmRsZUZvcldlYkZyYW1lSUQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c3dpdGNoVG9Ccm93c2luZ0NvbnRleHQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2FpdEZvck5hdmlnYXRpb25Ub0Nv
bXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6ZmluZFBhZ2VGb3JGcmFtZUlEKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnJlc3BvbmRUb1BlbmRpbmdGcmFtZU5hdmln
YXRpb25DYWxsYmFja3NXaXRoVGltZW91dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRp
b25TZXNzaW9uOjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZlQ2hpbGRGcmFtZUhhbmRsZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZlUGFyZW50RnJhbWVIYW5kbGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Y29tcHV0ZUVsZW1lbnRM
YXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2VsZWN0T3B0
aW9uRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpnZXRB
bGxDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OmRlbGV0
ZVNpbmdsZUNvb2tpZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjp2
aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
QXV0b21hdGlvblNlc3Npb246OnRha2VTY3JlZW5zaG90KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVu
dDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW06CisgICAgICAg
ICgtW1dLUmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyIGF0dGVtcHRSZWNvdmVyeV0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9j
a0xvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6
OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSk6CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAg
ICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UHJvdmlzaW9uYWxQYWdlUHJveHk6OnZhbGlkYXRlSW5wdXQpOgorICAgICAgICAoV2ViS2l0OjpQ
cm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZEZh
aWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFs
UGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQcm92
aXNpb25hbFBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEpOgorICAgICAg
ICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxG
b3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNp
b25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0
OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9u
YWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xv
YWRGb3JGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJv
Y2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlN1c3BlbmRlZFBhZ2VQcm94eTo6U3VzcGVuZGVkUGFnZVByb3h5
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25D
aGVja1Byb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNr
UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5
OjpmcmFtZUlEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVzZXRBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6c2VhcmNoRm9yR3JhbnRl
ZFJlcXVlc3QgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6d2FzUmVxdWVzdERlbmllZCk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVy
bWlzc2lvbkZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OmdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKToKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc0dyYW50
ZWRWaWRlb09yQXVkaW9BY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6bWFpbkZyYW1lSUQgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpmcmFtZUlEIGNvbnN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkZyYW1lUHJveHk6OldlYkZyYW1lUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJGcmFtZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6OmZyYW1lSUQgY29uc3QpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGlkQ3JlYXRlU3ViZnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmRpZENyZWF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkU3Rh
cnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6ZGlkRXhwbGljaXRPcGVuRm9yRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZl
U2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1l
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDYW5jZWxDbGllbnRSZWRpcmVj
dEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92
aXNpb25hbFVSTEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRD
aGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZEZvckZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZyYW1l
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENoYW5nZU1h
aW5Eb2N1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRp
dGxlRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZpcnN0TGF5
b3V0Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZpcnN0Vmlz
dWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFtZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZnJhbWVEaWRCZWNvbWVGcmFtZVNldCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5j
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uQXN5bmNTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNw
b25zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2VTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnVuYWJsZVRvSW1w
bGVtZW50UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0
Rm9ybSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2
aWdhdGlvbkRhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZE5hdmlnYXRl
V2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFVwZGF0ZUhpc3RvcnlUaXRsZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEFsZXJ0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0Q29uZmlybSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdFByb21wdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpydW5PcGVuUGFuZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnByaW50RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZvY3Vz
ZWRGcmFtZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZyYW1lU2V0
TGFyZ2VzdEZyYW1lQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cmVxdWVzdFN0b3JhZ2VTcGFjZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6bWFrZVN0b3JhZ2VTcGFjZVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2Vz
Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNob3VsZEFsbG93RGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6d2ViRnJhbWUgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUHJveHk6OmNhbkNyZWF0ZUZyYW1lIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpmcmFtZUNyZWF0ZWQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUHJveHk6OmRpZERlc3Ryb3lGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IF93a19wYWdlQ291bnRGb3JQcmludEZvcm1hdHRlcjpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojpjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpldmFsdWF0ZUphdmFTY3JpcHRDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZENsZWFyV2luZG93
T2JqZWN0Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5OjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJh
bWVXaXRoT3JkaW5hbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZVBhcmVudEZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Zm9jdXNG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmNvbXB1
dGVFbGVtZW50TGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eTo6c2VsZWN0T3B0aW9uRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHk6OnRha2VTY3JlZW5zaG90KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eTo6Z2V0Q29va2llc0ZvckZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZGVsZXRlQ29va2llKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dL
V2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tOgorICAgICAgICAoK1tXS1dlYlByb2Nlc3NQbHVnSW5G
cmFtZSBsb29rVXBGcmFtZUZyb21IYW5kbGU6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3Ry
YXRlZ3k6OnNjaGVkdWxlTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5
OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJM
b2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJS
ZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxSZXNvdXJjZUxvYWQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVyOjpzdG9wTG9hZGluZ0FmdGVyWEZyYW1l
T3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNvdXJjZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omluc3RhbGxTZXJ2aWNlV29ya2VyKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZCBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6aGFzU3RvcmFnZUFjY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cmVxdWVzdFN0b3JhZ2VBY2Nl
c3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlE
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGlkRmFpbFByb3Zpc2lvbmFsTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkNvb2tpZUphci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6
Y29va2llcyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6c2V0Q29va2ll
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZp
ZWxkVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVKYXI6OmdldFJhd0Nv
b2tpZXMgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJGcmFtZTo6V2ViRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpnZW5lcmF0ZUZy
YW1lSUQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6ZnJhbWVJRCBjb25zdCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
Ykluc3BlY3Rvcjo6c2hvd01haW5SZXNvdXJjZUZvckZyYW1lKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxvYWRVUkxJbkZyYW1lKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9hZERhdGFJbkZyYW1lKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6c3RvcExvYWRpbmdGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmNvbnRpbnVlV2lsbFN1Ym1pdEZvcm0pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpydW5K
YXZhU2NyaXB0SW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldFNvdXJjZUZv
ckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0TWFpblJlc291cmNlRGF0YU9m
RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRSZXNvdXJjZURhdGFGcm9tRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRXZWJBcmNoaXZlT2ZGcmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmFkZENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6c2VuZENTUFZpb2xhdGlvblJlcG9ydCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6YmVnaW5QcmludGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
ZHJhd1JlY3RUb0ltYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZHJhd1BhZ2VzVG9Q
REYpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmF3UGFnZXNUb1BERkltcGwpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmF3UGFnZXNGb3JQcmludGluZyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmZyYW1lQmVjYW1lUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVl
c3RTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2hvdWxkQWxsb3dE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERG
RG9jdW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmlu
dGluZ0FuZERyYXdUb1BERik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQ
YWdlTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmlu
dGluZ1BERkRvY3VtZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp3ZWJGcmFtZSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmFkZFdlYkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6cmVtb3ZlV2ViRnJhbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
OgorCiAyMDE5LTA4LTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgdXNlIG9mIGVtcHR5U2Vzc2lvbklEIGZyb20gTmV0d29ya0xvYWRQYXJhbWV0
ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggODllZTNjYmU0NzY3YWVlNjU1MjE2
Njk1NjBlY2RlOGVkMTA2YTI3ZS4uODMwYTc4MjViOTFkZmQxNmU3Y2Y3MTkyN2Q3MTM4ODkxYjA3
NDYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5
LTA4LTE0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAg
IFVzZSBPYmplY3RJZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+IGZvciBmcmFtZUlEcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5OTg2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBz
dHJvbmdseS10eXBlZCBGcmFtZUlkZW50aWZpZXIgaW5zdGVhZCBvZiB1aW50NjRfdCBhcyBmcmFt
ZSBpZGVudGlmaWVycyBldmVyeXdoZXJlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlEIGNv
bnN0KToKKwogMjAxOS0wOC0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6YmxvYlNpemUgc2hvdWxkIHRha2UgYSBT
ZXNzaW9uSUQgYXMgcGFyYW1ldGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA4YzM5ZTI4Yzc0ZWIx
ZDU1MTRhNTQxNjA3ODhlY2MyMmViN2VkYzU1Li42ZTM5YmU0MThhZDhlMTAwOWJkYTNkYjBhZjEw
YTRiYjM0YWZmY2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTc3Nyw2ICs3NzcsNyBAQCBzZXQo
V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGFnZS9Gb2N1c0RpcmVjdGlv
bi5oCiAgICAgcGFnZS9GcmFtZS5oCiAgICAgcGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIu
aAorICAgIHBhZ2UvRnJhbWVJZGVudGlmaWVyLmgKICAgICBwYWdlL0ZyYW1lU25hcHNob3R0aW5n
LmgKICAgICBwYWdlL0ZyYW1lVHJlZS5oCiAgICAgcGFnZS9GcmFtZVZpZXcuaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGI3YmU3
NDkzZmIzNDdlN2FlYzVkMTE3Y2M1Y2M2OWE4YTFlZmMxZTMuLjQ5NTdiYWJjOTdiMTcxMDRhNDQ1
MzVlNDM4M2ZkZmE4YjEyNzQyMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4MCw2ICsyODAsNyBAQAogCQkwRjAzQzA3NDE4
ODQ2OTVFMDBBNUY4Q0EgLyogU3lzdGVtTWVtb3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjAzQzA3MzE4ODQ2OTVFMDBBNUY4Q0EgLyogU3lzdGVt
TWVtb3J5LmggKi87IH07CiAJCTBGMDNDMDc1MTg4NDgwNTUwMEE1RjhDQSAvKiBJbnNwZWN0b3JP
dmVybGF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
QzUyMkQ0QTE1QjQ3OEIyMDA5QjdDOTUgLyogSW5zcGVjdG9yT3ZlcmxheS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMDk5RDA5MTdCOTY4QTEw
MEZGODRCOSAvKiBXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMDk5RDA3MTdCOTY4QTEwMEZGODRCOSAv
KiBXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjExNzgxODIyRTNDNDdGMDA4QkQ1NzAgLyogRnJh
bWVJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjExNzgxNjIyRTNDNDdFMDA4QkQ1NzAgLyogRnJhbWVJZGVudGlmaWVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYxMUE1NEYwRjM5
MjMzMTAwQzM3ODg0IC8qIFJlbmRlclNlbGVjdGlvbkluZm8uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTFBNTRFMEYzOTIzMzEwMEMzNzg4NCAvKiBS
ZW5kZXJTZWxlY3Rpb25JbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMEYxMzE2M0UxNkVEMENDODAwMzVDQzA0IC8qIFBsYXRmb3JtQ0FGaWx0
ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjEz
MTYzRDE2RUQwQ0M4MDAzNUNDMDQgLyogUGxhdGZvcm1DQUZpbHRlcnMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjE1REE4QTBGM0FBRUU3MDAw
MENFNDcgLyogQ1NTQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTVEQTg5MEYzQUFFRTcwMDAwQ0U0NyAv
KiBDU1NBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oICovOyB9OwpAQCAtNTU3OCw2ICs1NTc5
LDcgQEAKIAkJMEYwM0MwNzMxODg0Njk1RTAwQTVGOENBIC8qIFN5c3RlbU1lbW9yeS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTeXN0ZW1NZW1vcnkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEYwOTlEMDYxN0I5NjhBMTAwRkY4NEI5IC8qIFdlYkNvcmVUeXBl
ZEFycmF5Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjA5OUQwNzE3Qjk2OEExMDBGRjg0QjkgLyogV2ViQ29yZVR5cGVkQXJyYXlDb250
cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVUeXBlZEFy
cmF5Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjExNzgxNjIy
RTNDNDdFMDA4QkQ1NzAgLyogRnJhbWVJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEZyYW1lSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjExQTU0RTBGMzkyMzMxMDBDMzc4ODQgLyogUmVuZGVyU2VsZWN0aW9uSW5mby5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTZWxlY3Rpb25JbmZvLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMTMxNjNEMTZFRDBDQzgwMDM1Q0MwNCAvKiBQ
bGF0Zm9ybUNBRmlsdGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0
Zm9ybUNBRmlsdGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjEzMTYzRjE2
RUQwQ0RFMDAzNUNDMDQgLyogUGxhdGZvcm1DQUZpbHRlcnNDb2NvYS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBsYXRmb3JtQ0FGaWx0ZXJzQ29jb2EubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDIwNCw2ICsyMDIwNiw3IEBACiAJCQkJNjVC
RjAyMkEwOTc0ODE2MzAwQzQzMTk2IC8qIEZyYW1lLmggKi8sCiAJCQkJOTc0QTg2MjAxNEI3QURC
QjAwM0ZEQzc2IC8qIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAgKi8sCiAJCQkJOTc0QTg2
MjExNEI3QURCQjAwM0ZEQzc2IC8qIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5oICovLAorCQkJ
CTBGMTE3ODE2MjJFM0M0N0UwMDhCRDU3MCAvKiBGcmFtZUlkZW50aWZpZXIuaCAqLywKIAkJCQlD
NENENjI5ODE4MzgzNzY2MDA3RUJBRjEgLyogRnJhbWVTbmFwc2hvdHRpbmcuY3BwICovLAogCQkJ
CUM0Q0Q2Mjk5MTgzODM3NjYwMDdFQkFGMSAvKiBGcmFtZVNuYXBzaG90dGluZy5oICovLAogCQkJ
CTY1QTIxNDgyMDk3QTNGNTMwMEI5MDUwQSAvKiBGcmFtZVRyZWUuY3BwICovLApAQCAtMjkyNTUs
NiArMjkyNTgsNyBAQAogCQkJCUE4NTMxMjNEMTFEMDQ3MUIwMEQ0RDA3NyAvKiBGcmFnbWVudFNj
cmlwdGluZ1Blcm1pc3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTY1QkYwMjJGMDk3NDgxNjMw
MEM0MzE5NiAvKiBGcmFtZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc0QTg2MjMxNEI3QURCQjAw
M0ZEQzc2IC8qIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEYxMTc4MTgyMkUzQzQ3RjAwOEJENTcwIC8qIEZyYW1lSWRlbnRpZmllci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNjU2RDM3M0MwQURCQTVERTAwQTQ1NTREIC8qIEZyYW1lTG9hZGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk2NTZEMzczRTBBREJBNURFMDBBNDU1NEQgLyogRnJhbWVMb2FkZXJDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUQwMDBFQkEzMTFCREFGRDQwMEM0NzcyNiAvKiBGcmFt
ZUxvYWRlclN0YXRlTWFjaGluZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29r
aWVKYXIuY3BwCmluZGV4IDY5NjMwMzMwYjVkNzkzMGQ3ZDdhYWYxZGRiNGE4OWRmYjYwZGRkY2Mu
LjZkMDM2MmU5NzY0MTg4YjYwODRjYmFhOGNjMTQyZDRkMzkxZjVhODUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Db29raWVKYXIuY3BwCkBAIC03MSw3ICs3MSw3IEBAIFN0cmluZyBDb29raWVKYXI6OmNv
b2tpZXMoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCkgY29uc3QKIAogICAgIGF1
dG8gaW5jbHVkZVNlY3VyZUNvb2tpZXMgPSBzaG91bGRJbmNsdWRlU2VjdXJlQ29va2llcyhkb2N1
bWVudCwgdXJsKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlv
bmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmll
cj4gcGFnZUlEOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKICAg
ICAgICAgZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CkBAIC05
NCw3ICs5NCw3IEBAIENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5IENvb2tpZUphcjo6Y29v
a2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkoY29uc3QgRG9jCiB7CiAgICAgVHJhY2VTY29wZSBz
Y29wZShGZXRjaENvb2tpZXNTdGFydCwgRmV0Y2hDb29raWVzRW5kKTsKIAotICAgIE9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJ
RDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEOwogICAgIGlmIChhdXRvKiBm
cmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKICAgICAgICAgZnJhbWVJRCA9IGZyYW1lLT5sb2Fk
ZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CkBAIC0xMDYsNyArMTA2LDcgQEAgQ29va2llUmVxdWVz
dEhlYWRlckZpZWxkUHJveHkgQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94
eShjb25zdCBEb2MKIAogdm9pZCBDb29raWVKYXI6OnNldENvb2tpZXMoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpCiB7Ci0gICAg
T3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVy
PiBmcmFtZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7CiAgICAgaWYg
KGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkgewogICAgICAgICBmcmFtZUlEID0gZnJh
bWUtPmxvYWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKTsKQEAgLTEyOCw3ICsxMjgsNyBAQCBib29s
IENvb2tpZUphcjo6Y29va2llc0VuYWJsZWQoY29uc3QgRG9jdW1lbnQmKSBjb25zdAogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAotc3RkOjpwYWlyPFN0cmluZywgU2VjdXJlQ29va2llc0FjY2Vzc2Vk
PiBDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vz
c2lvbklEJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVT
aXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRl
U2VjdXJlQ29va2llcykgY29uc3QKK3N0ZDo6cGFpcjxTdHJpbmcsIFNlY3VyZUNvb2tpZXNBY2Nl
c3NlZD4gQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBQQUw6
OlNlc3Npb25JRCYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBz
YW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZy
YW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29r
aWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAogewogICAgIGlmIChhdXRvKiBzZXNzaW9u
ID0gbV9zdG9yYWdlU2Vzc2lvblByb3ZpZGVyLT5zdG9yYWdlU2Vzc2lvbigpKSB7CiAgICAgICAg
IHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IHJlc3VsdCA9IHNlc3Npb24tPmNvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHVlKGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBw
YWdlSUQsIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKQEAgLTE0MSw3ICsxNDEsNyBAQCBzdGQ6OnBh
aXI8U3RyaW5nLCBTZWN1cmVDb29raWVzQWNjZXNzZWQ+IENvb2tpZUphcjo6Y29va2llUmVxdWVz
dEhlYWRlckZpZWxkVmFsdQogCiBTdHJpbmcgQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVy
RmllbGRWYWx1ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsKSBjb25zdAogewot
ICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRp
Zmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEOwogICAg
IGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKICAgICAgICAgZnJhbWVJRCA9
IGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CkBAIC0xNTYsNyArMTU2LDcgQEAg
U3RyaW5nIENvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoRG9jdW1lbnQm
IGRvY3VtZW50LCBjb25zdCBVUkwmIHUKIAogYm9vbCBDb29raWVKYXI6OmdldFJhd0Nvb2tpZXMo
Y29uc3QgRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCwgVmVjdG9yPENvb2tpZT4m
IGNvb2tpZXMpIGNvbnN0CiB7Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAg
T3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiBwYWdlSUQ7CiAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkg
ewogICAgICAgICBmcmFtZUlEID0gZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Db29raWVKYXIuaAppbmRleCAyODFmODRjNDkwMDUyNjdlYTA1NGQ1MWQ3
NjhhOWViNzMyY2JjMjM5Li44MDg3YjhjZDViN2NmNGY1NjkzZTJmN2U5NWQ4ZWY2YTE3OTg0NmE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFn
bWEgb25jZQogCisjaW5jbHVkZSAiRnJhbWVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUlk
ZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgpAQCAtNTksNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHNldENvb2tpZXMoRG9jdW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0
cmluZyk7CiAKICAgICB2aXJ0dWFsIGJvb2wgY29va2llc0VuYWJsZWQoY29uc3QgRG9jdW1lbnQm
KSBjb25zdDsKLSAgICB2aXJ0dWFsIHN0ZDo6cGFpcjxTdHJpbmcsIFNlY3VyZUNvb2tpZXNBY2Nl
c3NlZD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQm
LCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYs
IE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIElu
Y2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKKyAgICB2aXJ0dWFsIHN0ZDo6cGFpcjxTdHJpbmcs
IFNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29u
c3QgUEFMOjpTZXNzaW9uSUQmLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRl
SW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0OwogICAgIHZpcnR1YWwg
Ym9vbCBnZXRSYXdDb29raWVzKGNvbnN0IERvY3VtZW50JiwgY29uc3QgVVJMJiwgVmVjdG9yPENv
b2tpZT4mKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlQ29va2llKGNvbnN0IERvY3Vt
ZW50JiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1lKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggMWY3YTI5YzRi
MzAxYTM2NTgyMmU0MjMzYjQxNWRkMWMwMDE5MTMyZC4uZTU5ZDE3MGRmMGJhMDhhMmM0ZjYwM2Zk
Y2ZhODM1N2RmZjg5YmRiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
RnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFt
ZUxvYWRlckNsaWVudC5oCkBAIC0zMiw3ICszMiw3IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEVt
cHR5RnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRnJhbWVMb2FkZXJDbGllbnQgewogCiAgICAg
dm9pZCBmcmFtZUxvYWRlckRlc3Ryb3llZCgpIG92ZXJyaWRlIHsgfQogCi0gICAgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBXVEY6Om51bGxvcHQ7
IH0KKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
cGFnZUlEKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gV1RGOjpudWxsb3B0OyB9CiAgICAgUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggMDc0ODc2MTE4ZGM2OTFhYTdjOGFkYTk3
Yjc5NzEzNzMzYTI4YTY5NS4uZWQ4NDdjYjA0Nzg1MjVlNTIxMGYxY2M4NWI3ZmVjNTNjZTcyMjJl
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTI5LDYg
KzI5LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJGcmFtZUlkZW50aWZpZXIuaCIK
ICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVkZSAiTGF5b3V0TWlsZXN0b25l
LmgiCiAjaW5jbHVkZSAiTGlua0ljb24uaCIKQEAgLTEyOCw3ICsxMjksNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIG1ha2VSZXByZXNlbnRhdGlvbihEb2N1bWVudExvYWRlciopID0gMDsK
IAogICAgIHZpcnR1YWwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCgpIGNvbnN0ID0g
MDsKLSAgICB2aXJ0dWFsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEKCkgY29uc3QgPSAwOwor
ICAgIHZpcnR1YWwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKCkgY29uc3QgPSAw
OwogICAgIHZpcnR1YWwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgPSAwOwogCiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9OYXZpZ2F0aW9uQWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9u
QWN0aW9uLmNwcAppbmRleCA2MmJhMmRkMmY3NzBhNDA2ZTE1YzkwMzk1ZTQxN2M0MmMyOGY1MjBl
Li5iZDczOGUwODk1N2UyZmQ4NGRhMDU1YWI0NTNlMWE0M2UwYjI4OGRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwCkBAIC00MSw3ICs0MSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIE5hdmlnYXRpb25BY3Rpb246OlJlcXVlc3Rlcjo6UmVxdWVzdGVyKGNv
bnN0IERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IG1fdXJsIHsgVVJMIHsgZG9jdW1lbnQudXJs
KCkgfSB9CiAgICAgLCBtX29yaWdpbiB7IG1ha2VSZWZQdHIoZG9jdW1lbnQuc2VjdXJpdHlPcmln
aW4oKSkgfQotICAgICwgbV9wYWdlSURBbmRGcmFtZUlEUGFpciB7IGRvY3VtZW50LmZyYW1lKCkg
PyBzdGQ6Om1ha2VfcGFpcihkb2N1bWVudC5mcmFtZSgpLT5sb2FkZXIoKS5jbGllbnQoKS5wYWdl
SUQoKS52YWx1ZU9yKFBhZ2VJZGVudGlmaWVyIHsgfSksIGRvY3VtZW50LmZyYW1lKCktPmxvYWRl
cigpLmNsaWVudCgpLmZyYW1lSUQoKS52YWx1ZU9yKDApKSA6IHN0ZDo6bWFrZV9wYWlyPFBhZ2VJ
ZGVudGlmaWVyLCB1aW50NjRfdD4oeyB9LCAwKSB9CisgICAgLCBtX3BhZ2VJREFuZEZyYW1lSURQ
YWlyIHsgZG9jdW1lbnQuZnJhbWUoKSA/IHN0ZDo6bWFrZV9wYWlyKGRvY3VtZW50LmZyYW1lKCkt
PmxvYWRlcigpLmNsaWVudCgpLnBhZ2VJRCgpLnZhbHVlT3IoUGFnZUlkZW50aWZpZXIgeyB9KSwg
ZG9jdW1lbnQuZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkuZnJhbWVJRCgpLnZhbHVlT3IoRnJh
bWVJZGVudGlmaWVyIHsgfSkpIDogc3RkOjptYWtlX3BhaXI8UGFnZUlkZW50aWZpZXIsIEZyYW1l
SWRlbnRpZmllcj4oeyB9LCB7IH0pIH0KIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZp
Z2F0aW9uQWN0aW9uLmgKaW5kZXggMzVjOTYxYWExNTQ3YjhlYTBjNGI5MDQwNzAzYzg1ZDNlYThl
N2U1Ny4uMGEwMjFkNGZjNzlkOTZiM2YyYTg4YmFlNDA0NTYxOTEwNGNlOTBiMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oCkBAIC0zMCw2ICszMCw3IEBACiAKICNp
bmNsdWRlICJBZENsaWNrQXR0cmlidXRpb24uaCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZEl0ZW1J
ZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiRnJhbWVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiRnJh
bWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIkxheW91dFBvaW50LmgiCiAjaW5jbHVkZSAiUGFn
ZUlkZW50aWZpZXIuaCIKQEAgLTY0LDcgKzY1LDcgQEAgcHVibGljOgogICAgIE5hdmlnYXRpb25B
Y3Rpb24oTmF2aWdhdGlvbkFjdGlvbiYmKTsKICAgICBOYXZpZ2F0aW9uQWN0aW9uJiBvcGVyYXRv
cj0oTmF2aWdhdGlvbkFjdGlvbiYmKTsKIAotICAgIHVzaW5nIFBhZ2VJREFuZEZyYW1lSURQYWly
ID0gc3RkOjpwYWlyPFBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCAvKiBmcmFtZUlEICovPjsKKyAg
ICB1c2luZyBQYWdlSURBbmRGcmFtZUlEUGFpciA9IHN0ZDo6cGFpcjxQYWdlSWRlbnRpZmllciwg
RnJhbWVJZGVudGlmaWVyPjsgLy8gRklYTUU6IFVzZSBHbG9iYWxGcmFtZUlkZW50aWZpZXIuCiAg
ICAgY2xhc3MgUmVxdWVzdGVyIHsKICAgICBwdWJsaWM6CiAgICAgICAgIFJlcXVlc3Rlcihjb25z
dCBEb2N1bWVudCYpOwpAQCAtNzIsNyArNzMsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IFVS
TCYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7IH0KICAgICAgICAgY29uc3QgU2VjdXJpdHlP
cmlnaW4mIHNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gKm1fb3JpZ2luOyB9CiAgICAg
ICAgIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUlEQW5kRnJh
bWVJRFBhaXIuZmlyc3Q7IH0KLSAgICAgICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0
dXJuIG1fcGFnZUlEQW5kRnJhbWVJRFBhaXIuc2Vjb25kOyB9CisgICAgICAgIEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlSURBbmRGcmFtZUlEUGFpci5zZWNv
bmQ7IH0KICAgICBwcml2YXRlOgogICAgICAgICBVUkwgbV91cmw7CiAgICAgICAgIFJlZlB0cjxT
ZWN1cml0eU9yaWdpbj4gbV9vcmlnaW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRl
eCBjMjVhMDI0YmMwNjNjNThmM2IyOGJkNzljYmIwMzM4NDQyNmM4YzVlLi5lOGE1ZGUzM2VkMTc5
MjZjOWFhODU2YjA4MTZiNGVlY2Y4MmM5NGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50
LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJEaXNwbGF5UmVmcmVzaE1vbml0b3IuaCIK
ICNpbmNsdWRlICJEb2N1bWVudFN0b3JhZ2VBY2Nlc3MuaCIKICNpbmNsdWRlICJGb2N1c0RpcmVj
dGlvbi5oIgorI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NM
YXllci5oIgpAQCAtNDg2LDggKzQ4Nyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFJlZlB0cjxJ
Y29uPiBjcmVhdGVJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIC8qIGZpbGVuYW1l
cyAqLykgPSAwOwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLSAgICB2
aXJ0dWFsIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIC8qc3ViRnJh
bWVEb21haW4qLywgUmVnaXN0cmFibGVEb21haW4mJiAvKnRvcEZyYW1lRG9tYWluKi8sIHVpbnQ2
NF90IC8qZnJhbWVJRCovLCBQYWdlSWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNl
KTsgfQotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURv
bWFpbiYmIC8qc3ViRnJhbWVEb21haW4qLywgUmVnaXN0cmFibGVEb21haW4mJiAvKnRvcEZyYW1l
RG9tYWluKi8sIHVpbnQ2NF90IC8qZnJhbWVJRCovLCBQYWdlSWRlbnRpZmllciwgV1RGOjpDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNz
UHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVy
KFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOjpObywgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3du
OjpObyk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURv
bWFpbiYmIC8qc3ViRnJhbWVEb21haW4qLywgUmVnaXN0cmFibGVEb21haW4mJiAvKnRvcEZyYW1l
RG9tYWluKi8sIEZyYW1lSWRlbnRpZmllciwgUGFnZUlkZW50aWZpZXIsIFdURjo6Q29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFu
ZGxlcihmYWxzZSk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUmVn
aXN0cmFibGVEb21haW4mJiAvKnN1YkZyYW1lRG9tYWluKi8sIFJlZ2lzdHJhYmxlRG9tYWluJiYg
Lyp0b3BGcmFtZURvbWFpbiovLCBGcmFtZUlkZW50aWZpZXIsIFBhZ2VJZGVudGlmaWVyLCBXVEY6
OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VB
Y2Nlc3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhh
bmRsZXIoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQ6Ok5vLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2Fz
U2hvd246Ok5vKTsgfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUlkZW50aWZpZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjVkNDk2N2FiMWI0
NTQyMzU4ZTg2NzI0MDVjYjY2YjdkNzhkNzIyNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVJZGVudGlmaWVyLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIEZyYW1lSWRlbnRpZmllclR5cGUgeyB9OwordXNp
bmcgRnJhbWVJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxGcmFtZUlkZW50aWZpZXJUeXBl
PjsKKworaW5saW5lIEZyYW1lSWRlbnRpZmllciBmcmFtZUlkZW50aWZpZXJGcm9tSUQodWludDY0
X3QgZnJhbWVJRCkKK3sKKyAgICByZXR1cm4gbWFrZU9iamVjdElkZW50aWZpZXI8RnJhbWVJZGVu
dGlmaWVyVHlwZT4oZnJhbWVJRCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvR2xvYmFsRnJhbWVJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0dsb2Jh
bEZyYW1lSWRlbnRpZmllci5oCmluZGV4IDBkN2IzZGJmNzJmODFlNGZkNjJhNzNmZWQyNTgxY2Vh
ZWUxNjdiNGEuLjcwOTM0NjdiMTJmODU2NjFhOGY3ZmFkZjAyYjM1Nzc5OTRlYjZhMDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2xvYmFsRnJhbWVJZGVudGlmaWVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9HbG9iYWxGcmFtZUlkZW50aWZpZXIuaApAQCAtMjUsNiArMjUs
NyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmllci5oIgogI2lu
Y2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAKQEAg
LTMzLDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gRnJhbWUgaWRlbnRpZmllciB0
aGF0IGlzIHVuaXF1ZSBhY3Jvc3MgYWxsIFdlYkNvbnRlbnQgcHJvY2Vzc2VzLgogc3RydWN0IEds
b2JhbEZyYW1lSWRlbnRpZmllciB7CiAgICAgUGFnZUlkZW50aWZpZXIgcGFnZUlEOwotICAgIHVp
bnQ2NF90IGZyYW1lSUQ7CisgICAgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQ7CiAKICAgICB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPEdsb2JhbEZyYW1lSWRlbnRpZmll
cj4gZGVjb2RlKERlY29kZXImKTsKQEAgLTUzLDcgKzU0LDcgQEAgT3B0aW9uYWw8R2xvYmFsRnJh
bWVJZGVudGlmaWVyPiBHbG9iYWxGcmFtZUlkZW50aWZpZXI6OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQogICAgIGlmICghcGFnZUlEKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0g
ICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVudGlm
aWVyPiBmcmFtZUlEOwogICAgIGRlY29kZXIgPj4gZnJhbWVJRDsKICAgICBpZiAoIWZyYW1lSUQp
CiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL0Nvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Nvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5
LmgKaW5kZXggYTMzMDE5ZjlkNWIyYWVkMjYwNzQ2Njk0MDFmZDczMjJmMDJkNTE1Ny4uYzY4NmM4
MWI1MzcxYTY3Y2RkOGFlMDliNGExMDEzMmE1MmQ1YjJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9Db29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ29va2llUmVxdWVzdEhlYWRlckZp
ZWxkUHJveHkuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJD
b29raWVKYXIuaCIKKyNpbmNsdWRlICJGcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJQYWdl
SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNhbWVTaXRlSW5mby5oIgogI2luY2x1ZGUgPHBhbC9T
ZXNzaW9uSUQuaD4KQEAgLTM4LDcgKzM5LDcgQEAgc3RydWN0IENvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFByb3h5IHsKICAgICBVUkwgZmlyc3RQYXJ0eTsKICAgICBTYW1lU2l0ZUluZm8gc2FtZVNp
dGVJbmZvOwogICAgIFVSTCB1cmw7Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7Cisg
ICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPiBwYWdlSUQ7CiAgICAgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3Vy
ZUNvb2tpZXMgeyBJbmNsdWRlU2VjdXJlQ29va2llczo6Tm8gfTsKIApAQCAtNzgsOCArNzksOSBA
QCBPcHRpb25hbDxDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eT4gQ29va2llUmVxdWVzdEhl
YWRlckZpZWxkUHJveHk6OmRlY29kZShEZQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUodXJsKSkK
ICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBm
cmFtZUlEOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZnJhbWVJRCkpCisgICAgT3B0aW9uYWw8
T3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPj4gZnJhbWVJRDsKKyAgICBkZWNvZGVyID4+IGZyYW1l
SUQ7CisgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCiAg
ICAgT3B0aW9uYWw8T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+PiBwYWdlSUQ7CkBAIC05MSw3ICs5
Myw3IEBAIE9wdGlvbmFsPENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5PiBDb29raWVSZXF1
ZXN0SGVhZGVyRmllbGRQcm94eTo6ZGVjb2RlKERlCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShp
bmNsdWRlU2VjdXJlQ29va2llcykpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAg
ICByZXR1cm4gQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkgeyAqc2Vzc2lvbklELCBXVEZN
b3ZlKGZpcnN0UGFydHkpLCBXVEZNb3ZlKHNhbWVTaXRlSW5mbyksIFdURk1vdmUodXJsKSwgZnJh
bWVJRCwgKnBhZ2VJRCwgaW5jbHVkZVNlY3VyZUNvb2tpZXMgfTsKKyAgICByZXR1cm4gQ29va2ll
UmVxdWVzdEhlYWRlckZpZWxkUHJveHkgeyAqc2Vzc2lvbklELCBXVEZNb3ZlKGZpcnN0UGFydHkp
LCBXVEZNb3ZlKHNhbWVTaXRlSW5mbyksIFdURk1vdmUodXJsKSwgKmZyYW1lSUQsICpwYWdlSUQs
IGluY2x1ZGVTZWN1cmVDb29raWVzIH07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uLmNwcAppbmRleCBlNzE5MDdkOTc3ZGY1OTI3M2Y0OTE5YzU2NTFhZjE3MzZmYjFh
NjdmLi5mNGIwOWE4ZDVlMWFkOTQ4NGVkN2IzMmViNTZlMzk2Zjc1ZGFjOTBlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNl
c3Npb24uY3BwCkBAIC03OSwxMiArNzksMTIgQEAgYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OnNob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXNCdXRLZWVwRmlyc3RQYXJ0eUNvb2tpZXMKICAg
ICByZXR1cm4gbV9yZWdpc3RyYWJsZURvbWFpbnNUb0Jsb2NrQnV0S2VlcENvb2tpZXNGb3IuY29u
dGFpbnMocmVnaXN0cmFibGVEb21haW4pOwogfQogCi1ib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6c2hvdWxkQmxvY2tDb29raWVzKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgT3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQp
IGNvbnN0Citib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2hvdWxkQmxvY2tDb29raWVzKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBm
cmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEKSBjb25zdAogewogICAgIHJl
dHVybiBzaG91bGRCbG9ja0Nvb2tpZXMocmVxdWVzdC5maXJzdFBhcnR5Rm9yQ29va2llcygpLCBy
ZXF1ZXN0LnVybCgpLCBmcmFtZUlELCBwYWdlSUQpOwogfQogICAgIAotYm9vbCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OnNob3VsZEJsb2NrQ29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHlGb3JD
b29raWVzLCBjb25zdCBVUkwmIHJlc291cmNlLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkgY29uc3QKK2Jvb2wgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5Rm9yQ29v
a2llcywgY29uc3QgVVJMJiByZXNvdXJjZSwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFt
ZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEKSBjb25zdAogewogICAgIFJlZ2lz
dHJhYmxlRG9tYWluIGZpcnN0UGFydHlEb21haW4geyBmaXJzdFBhcnR5Rm9yQ29va2llcyB9Owog
ICAgIGlmIChmaXJzdFBhcnR5RG9tYWluLmlzRW1wdHkoKSkKQEAgLTEzNiw3ICsxMzYsNyBAQCB2
b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6cmVtb3ZlUHJldmFsZW50RG9tYWlucyhjb25zdCBW
ZWN0b3I8UmVnaXN0cmFibGVEb21haQogICAgIH0KIH0KIAotYm9vbCBOZXR3b3JrU3RvcmFnZVNl
c3Npb246Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNl
RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9u
YWw8dWludDY0X3Q+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkgY29uc3QKK2Jvb2wg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFy
dHlEb21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlkZW50aWZp
ZXIgcGFnZUlEKSBjb25zdAogewogICAgIGlmIChmcmFtZUlEKSB7CiAgICAgICAgIGF1dG8gZnJh
bWVzR3JhbnRlZEl0ZXJhdG9yID0gbV9mcmFtZXNHcmFudGVkU3RvcmFnZUFjY2Vzcy5maW5kKHBh
Z2VJRCk7CkBAIC0xNjksNyArMTY5LDcgQEAgVmVjdG9yPFN0cmluZz4gTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uOjpnZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcygpIGNvbnN0CiAgICAgcmV0dXJuIGVu
dHJpZXM7CiB9CiAgICAgCi12b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z3JhbnRTdG9yYWdl
QWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFt
ZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQpCit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFp
biwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPEZy
YW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKQogewogICAgIGlm
ICghZnJhbWVJRCkgewogICAgICAgICBpZiAoZmlyc3RQYXJ0eURvbWFpbi5pc0VtcHR5KCkpCkBA
IC0xOTEsNyArMTkxLDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdyYW50U3RvcmFn
ZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2UKIAogICAgIGF1dG8gcGFn
ZXNHcmFudGVkSXRlcmF0b3IgPSBtX2ZyYW1lc0dyYW50ZWRTdG9yYWdlQWNjZXNzLmZpbmQocGFn
ZUlEKTsKICAgICBpZiAocGFnZXNHcmFudGVkSXRlcmF0b3IgPT0gbV9mcmFtZXNHcmFudGVkU3Rv
cmFnZUFjY2Vzcy5lbmQoKSkgewotICAgICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWdpc3RyYWJs
ZURvbWFpbiwgRGVmYXVsdEhhc2g8dWludDY0X3Q+OjpIYXNoLCBXVEY6OlVuc2lnbmVkV2l0aFpl
cm9LZXlIYXNoVHJhaXRzPHVpbnQ2NF90Pj4gZW50cnk7CisgICAgICAgIEhhc2hNYXA8RnJhbWVJ
ZGVudGlmaWVyLCBSZWdpc3RyYWJsZURvbWFpbj4gZW50cnk7CiAgICAgICAgIGVudHJ5LmFkZChm
cmFtZUlELnZhbHVlKCksIHJlc291cmNlRG9tYWluKTsKICAgICAgICAgbV9mcmFtZXNHcmFudGVk
U3RvcmFnZUFjY2Vzcy5hZGQocGFnZUlELCBlbnRyeSk7CiAgICAgfSBlbHNlIHsKQEAgLTIwMyw3
ICsyMDMsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z3JhbnRTdG9yYWdlQWNjZXNz
KGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZQogICAgIH0KIH0KIAotdm9pZCBOZXR3
b3JrU3RvcmFnZVNlc3Npb246OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQpCit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQ
YWdlSWRlbnRpZmllciBwYWdlSUQpCiB7CiAgICAgYXV0byBpdGVyYXRpb24gPSBtX2ZyYW1lc0dy
YW50ZWRTdG9yYWdlQWNjZXNzLmZpbmQocGFnZUlEKTsKICAgICBpZiAoaXRlcmF0aW9uID09IG1f
ZnJhbWVzR3JhbnRlZFN0b3JhZ2VBY2Nlc3MuZW5kKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAppbmRleCBjOGVm
OGY3YmFiNzVmZDk5NzliMjgyZjVmNWE4NzAyZWY4MGM4OGIzLi44ZGRmNTViNGExZmNhNWM1NGE0
OTkwYTNhMzdjMDU5MjY2OGZlMDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAK
ICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQ3JlZGVudGlhbFN0b3JhZ2UuaCIKKyNpbmNsdWRl
ICJGcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJQYWdlSWRlbnRpZmllci5oIgogI2luY2x1
ZGUgIlJlZ2lzdHJhYmxlRG9tYWluLmgiCiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgpAQCAt
MTIzLDcgKzEyNCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNvb2tpZXNF
bmFibGVkKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb29raWUoY29uc3Qg
Q29va2llJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb29raWVzKGNvbnN0IFZlY3Rv
cjxDb29raWU+JiwgY29uc3QgVVJMJiwgY29uc3QgVVJMJiBtYWluRG9jdW1lbnRVUkwpOwotICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4g
ZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBjb25zdCBTdHJpbmcmKSBjb25zdDsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJ
ZGVudGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBjb25zdCBTdHJpbmcmKSBjb25z
dDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBDb29raWUmKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBVUkwmLCBjb25zdCBT
dHJpbmcmKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZUFsbENvb2tpZXMo
KTsKQEAgLTEzMiwyNiArMTMzLDI2IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGNvb2tpZUhv
c3ROYW1lcywgSW5jbHVkZUh0dHBPbmx5Q29va2llcyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgVmVj
dG9yPENvb2tpZT4gZ2V0QWxsQ29va2llcygpOwogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxD
b29raWU+IGdldENvb2tpZXMoY29uc3QgVVJMJik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBn
ZXRSYXdDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwg
Y29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiwgVmVjdG9yPENvb2tpZT4mKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29s
IGdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8m
LCBjb25zdCBVUkwmLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxQYWdlSWRl
bnRpZmllcj4sIFZlY3RvcjxDb29raWU+JikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBmbHVzaENvb2tpZVN0b3JlKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRIb3N0bmFt
ZXNXaXRoQ29va2llcyhIYXNoU2V0PFN0cmluZz4mIGhvc3RuYW1lcyk7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvckRPTShjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2
NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1cmVDb29r
aWVzKSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBj
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBP
cHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yRE9NKGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0
aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRl
U2VjdXJlQ29va2llcykgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpwYWlyPFN0cmlu
ZywgYm9vbD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxGcmFtZUlkZW50
aWZpZXI+LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBj
b25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94
eSYpIGNvbnN0OwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLSAgICBX
RUJDT1JFX0VYUE9SVCBib29sIHNob3VsZEJsb2NrQ29va2llcyhjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+
KSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNob3VsZEJsb2NrQ29va2llcyhjb25z
dCBVUkwmIGZpcnN0UGFydHlGb3JDb29raWVzLCBjb25zdCBVUkwmIHJlc291cmNlLCBPcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+KSBjb25zdDsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBib29sIHNob3VsZEJsb2NrQ29va2llcyhjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxQYWdlSWRlbnRpZmll
cj4pIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2hvdWxkQmxvY2tDb29raWVzKGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eUZvckNvb2tpZXMsIGNvbnN0IFVSTCYgcmVzb3VyY2UsIE9wdGlv
bmFsPEZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPikgY29uc3Q7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzKGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91
bGRCbG9ja1RoaXJkUGFydHlDb29raWVzQnV0S2VlcEZpcnN0UGFydHlDb29raWVzRm9yKGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRQ
cmV2YWxlbnREb21haW5zVG9CbG9ja0FuZERlbGV0ZUNvb2tpZXNGb3IoY29uc3QgVmVjdG9yPFJl
Z2lzdHJhYmxlRG9tYWluPiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UHJldmFsZW50
RG9tYWluc1RvQmxvY2tCdXRLZWVwQ29va2llc0Zvcihjb25zdCBWZWN0b3I8UmVnaXN0cmFibGVE
b21haW4+Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBZ2VDYXBGb3JDbGllbnRTaWRl
Q29va2llcyhPcHRpb25hbDxTZWNvbmRzPik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1v
dmVQcmV2YWxlbnREb21haW5zKGNvbnN0IFZlY3RvcjxSZWdpc3RyYWJsZURvbWFpbj4mIGRvbWFp
bnMpOwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBm
aXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgUGFnZUlkZW50aWZp
ZXIpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzU3RvcmFnZUFjY2Vzcyhjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBQYWdlSWRl
bnRpZmllcikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFN0cmluZz4gZ2V0QWxs
U3RvcmFnZUFjY2Vzc0VudHJpZXMoKSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdy
YW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4s
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDx1aW50
NjRfdD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlm
aWVyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBQYWdlSWRlbnRp
Zmllcik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJh
bWUoRnJhbWVJZGVudGlmaWVyLCBQYWdlSWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBjbGVhclBhZ2VTcGVjaWZpY0RhdGFGb3JSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKFBhZ2VJ
ZGVudGlmaWVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUFsbFN0b3JhZ2VBY2Nl
c3MoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFs
ZW50UmVzb3VyY2VzKFNlY29uZHMpOwpAQCAtMTg1LDcgKzE4Niw3IEBAIHByaXZhdGU6CiAgICAg
T3B0aW9uYWw8U2Vjb25kcz4gY2xpZW50U2lkZUNvb2tpZUNhcChjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgZmlyc3RQYXJ0eSwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+KSBjb25zdDsKICAgICBI
YXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiBtX3JlZ2lzdHJhYmxlRG9tYWluc1RvQmxvY2tBbmRE
ZWxldGVDb29raWVzRm9yOwogICAgIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+IG1fcmVnaXN0
cmFibGVEb21haW5zVG9CbG9ja0J1dEtlZXBDb29raWVzRm9yOwotICAgIEhhc2hNYXA8UGFnZUlk
ZW50aWZpZXIsIEhhc2hNYXA8dWludDY0X3QsIFJlZ2lzdHJhYmxlRG9tYWluLCBEZWZhdWx0SGFz
aDx1aW50NjRfdD46Okhhc2gsIFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8dWlu
dDY0X3Q+Pj4gbV9mcmFtZXNHcmFudGVkU3RvcmFnZUFjY2VzczsKKyAgICBIYXNoTWFwPFBhZ2VJ
ZGVudGlmaWVyLCBIYXNoTWFwPEZyYW1lSWRlbnRpZmllciwgUmVnaXN0cmFibGVEb21haW4+PiBt
X2ZyYW1lc0dyYW50ZWRTdG9yYWdlQWNjZXNzOwogICAgIEhhc2hNYXA8UGFnZUlkZW50aWZpZXIs
IEhhc2hNYXA8UmVnaXN0cmFibGVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluPj4gbV9wYWdlc0dy
YW50ZWRTdG9yYWdlQWNjZXNzOwogICAgIE9wdGlvbmFsPFNlY29uZHM+IG1fY2FjaGVNYXhBZ2VD
YXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMgeyB9OwogICAgIE9wdGlvbmFsPFNlY29uZHM+IG1fYWdl
Q2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMgeyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGUuY3BwCmluZGV4IGRiYTBmMTNmNDc5
YTMzMjZiZTg1ZDY2OTM5ZTUwYzYzYzEzYjYxYTAuLmIwM2YyZDIxODg2NTE0YzI4ZWIwOTM3NDgx
YmMwYTkzNTNkMGNkNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvU29ja2V0U3RyZWFtSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1NvY2tldFN0cmVhbUhhbmRsZS5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgdm9pZCBTb2Nr
ZXRTdHJlYW1IYW5kbGU6OnNlbmRIYW5kc2hha2UoQ1N0cmluZyYmIGhhbmRzaGFrZSwgT3B0aW9u
YWw8Q29va2llUmVxdWUKIHsKICAgICBpZiAobV9zdGF0ZSA9PSBDb25uZWN0aW5nIHx8IG1fc3Rh
dGUgPT0gQ2xvc2luZykKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlLCBm
YWxzZSk7Ci0gICAgcGxhdGZvcm1TZW5kSGFuZHNoYWtlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
dWludDhfdCo+KGhhbmRzaGFrZS5kYXRhKCkpLCBoYW5kc2hha2UubGVuZ3RoKCksIGhlYWRlckZp
ZWxkUHJveHksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBwbGF0Zm9ybVNlbmRI
YW5kc2hha2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oaGFuZHNoYWtlLmRhdGEo
KSksIGhhbmRzaGFrZS5sZW5ndGgoKSwgV1RGTW92ZShoZWFkZXJGaWVsZFByb3h5KSwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB2b2lkIFNvY2tldFN0cmVhbUhhbmRsZTo6Y2xv
c2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9O
ZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KaW5kZXggODRiNzNiODM0
NGIwY2FiNWE5MDQ4YjQ4NWVmYjE3NmQ1ZDM0MDU4MS4uODVmNGM2MmUzYmY3NGMwZGU1NDM1ZjJm
MDBiZTk4NGQ4MmVhZWY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1t
CkBAIC0yOTQsNyArMjk0LDcgQEAgc3RhdGljIFJldGFpblB0cjxOU0FycmF5PiBmaWx0ZXJDb29r
aWVzKE5TQXJyYXkgKnVuZmlsdGVyZWRDb29raWVzLCBPcHRpb25hbDxTZWMKICAgICByZXR1cm4g
ZmlsdGVyZWRDb29raWVzOwogfQogCi1zdGF0aWMgTlNBcnJheSAqY29va2llc0ZvclVSTChjb25z
dCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwg
Y29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkKK3N0
YXRpYyBOU0FycmF5ICpjb29raWVzRm9yVVJMKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYg
c2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVT
aXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJ
RCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkKIHsKICNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlmIChzZXNzaW9uLnNob3VsZEJsb2NrQ29va2llcyhm
aXJzdFBhcnR5LCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCkpCkBAIC0zMDcsNyArMzA3LDcgQEAgc3Rh
dGljIE5TQXJyYXkgKmNvb2tpZXNGb3JVUkwoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBz
ZXNzaW9uLCBjb25zdCBVUkwmIGYKIH0KIAogZW51bSBJbmNsdWRlSFRUUE9ubHlPck5vdCB7IERv
Tm90SW5jbHVkZUhUVFBPbmx5LCBJbmNsdWRlSFRUUE9ubHkgfTsKLXN0YXRpYyBzdGQ6OnBhaXI8
U3RyaW5nLCBib29sPiBjb29raWVzRm9yU2Vzc2lvbihjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Np
b24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBz
YW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZUhUVFBPbmx5T3JOb3QgaW5j
bHVkZUhUVFBPbmx5LCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykK
K3N0YXRpYyBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yU2Vzc2lvbihjb25zdCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxG
cmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQs
IEluY2x1ZGVIVFRQT25seU9yTm90IGluY2x1ZGVIVFRQT25seSwgSW5jbHVkZVNlY3VyZUNvb2tp
ZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpCiB7CiAgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxl
Z2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNjZXNzUmF3Q29va2llcykpOwogCkBAIC0zNjMsMTIg
KzM2MywxMiBAQCBzdGF0aWMgdm9pZCBkZWxldGVBbGxIVFRQQ29va2llcyhDRkhUVFBDb29raWVT
dG9yYWdlUmVmIGNvb2tpZVN0b3JhZ2UpCiAgICAgQ0ZIVFRQQ29va2llU3RvcmFnZURlbGV0ZUFs
bENvb2tpZXMoY29va2llU3RvcmFnZSk7CiB9CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9u
YWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIElu
Y2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAorc3RkOjpwYWly
PFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVzRm9yRE9NKGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0
IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVD
b29raWVzKSBjb25zdAogewogICAgIHJldHVybiBjb29raWVzRm9yU2Vzc2lvbigqdGhpcywgZmly
c3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgRG9Ob3RJbmNsdWRl
SFRUUE9ubHksIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKIH0KIAotc3RkOjpwYWlyPFN0cmluZywg
Ym9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1
ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZv
LCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVD
b29raWVzKSBjb25zdAorc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFn
ZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKIHsK
ICAgICByZXR1cm4gY29va2llc0ZvclNlc3Npb24oKnRoaXMsIGZpcnN0UGFydHksIHNhbWVTaXRl
SW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIEluY2x1ZGVIVFRQT25seSwgaW5jbHVkZVNlY3Vy
ZUNvb2tpZXMpOwogfQpAQCAtMzc4LDcgKzM3OCw3IEBAIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29u
CiAgICAgcmV0dXJuIGNvb2tpZXNGb3JTZXNzaW9uKCp0aGlzLCBoZWFkZXJGaWVsZFByb3h5LmZp
cnN0UGFydHksIGhlYWRlckZpZWxkUHJveHkuc2FtZVNpdGVJbmZvLCBoZWFkZXJGaWVsZFByb3h5
LnVybCwgaGVhZGVyRmllbGRQcm94eS5mcmFtZUlELCBoZWFkZXJGaWVsZFByb3h5LnBhZ2VJRCwg
SW5jbHVkZUhUVFBPbmx5LCBoZWFkZXJGaWVsZFByb3h5LmluY2x1ZGVTZWN1cmVDb29raWVzKTsK
IH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0
IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHIpIGNvbnN0Cit2b2lkIE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlv
bmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBh
Z2VJRCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHIpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGhhc1By
b2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNjZXNzUmF3Q29va2llcykpOwog
CkBAIC00NDMsNyArNDQzLDcgQEAgYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNF
bmFibGVkKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpnZXRSYXdDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2Ft
ZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgVmVjdG9yPENvb2tp
ZT4mIHJhd0Nvb2tpZXMpIGNvbnN0Citib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3
Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNp
dGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlE
LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBWZWN0b3I8Q29va2llPiYgcmF3Q29v
a2llcykgY29uc3QKIHsKICAgICByYXdDb29raWVzLmNsZWFyKCk7CiAgICAgQkVHSU5fQkxPQ0tf
T0JKQ19FWENFUFRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL0Nvb2tpZUphckN1cmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL0Nvb2tpZUphckN1cmwuY3BwCmluZGV4IDM5NGMzNDYyNjY0OWQ1ZGVhODY5ZTA5
NWJlMGQ5ZmFlN2IxYTVlY2IuLjcxOThhZGYwYjQyZmVkMGNiNDE4MzQwYmUxNzljM2Y5N2M5OTUx
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29r
aWVKYXJDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
Q29va2llSmFyQ3VybC5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgc3RhdGljIFN0cmluZyBjb29raWVz
Rm9yU2Vzc2lvbihjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVS
TCYKICAgICByZXR1cm4gY29va2llcy50b1N0cmluZygpOwogfQogCi12b2lkIENvb2tpZUphckN1
cmw6OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lv
biwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwm
IHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVy
PiwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QKK3ZvaWQgQ29va2llSmFyQ3VybDo6c2V0Q29v
a2llc0Zyb21ET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBV
UkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRp
b25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QKIHsKICAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7
CiAKQEAgLTgyLDcgKzgyLDcgQEAgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gQ29va2llSmFyQ3Vy
bDo6Y29va2llc0ZvckRPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24KICAgICByZXR1cm4g
eyBjb29raWVzRm9yU2Vzc2lvbihzZXNzaW9uLCBmaXJzdFBhcnR5LCB1cmwsIGZhbHNlKSwgZmFs
c2UgfTsKIH0KIAotc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gQ29va2llSmFyQ3VybDo6Y29va2ll
UmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNz
aW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVS
TCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZp
ZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CitzdGQ6OnBhaXI8U3RyaW5n
LCBib29sPiBDb29raWVKYXJDdXJsOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25z
dCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwg
Y29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRp
Zmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNl
Y3VyZUNvb2tpZXMpIGNvbnN0CiB7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwogICAgIFVO
VVNFRF9QQVJBTShwYWdlSUQpOwpAQCAtMTEyLDcgKzExMiw3IEBAIGJvb2wgQ29va2llSmFyQ3Vy
bDo6Y29va2llc0VuYWJsZWQoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uKSBj
b25zdAogICAgIHJldHVybiBzZXNzaW9uLmNvb2tpZURhdGFiYXNlKCkuaXNFbmFibGVkKCk7CiB9
CiAKLWJvb2wgQ29va2llSmFyQ3VybDo6Z2V0UmF3Q29va2llcyhjb25zdCBOZXR3b3JrU3RvcmFn
ZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJ
bmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25h
bDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBWZWN0b3I8Q29va2llPiYgcmF3Q29va2llcykgY29u
c3QKK2Jvb2wgQ29va2llSmFyQ3VybDo6Z2V0UmF3Q29va2llcyhjb25zdCBOZXR3b3JrU3RvcmFn
ZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJ
bmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgVmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tp
ZXMpIGNvbnN0CiB7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwogICAgIFVOVVNFRF9QQVJB
TShwYWdlSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL0Nvb2tpZUphckN1cmwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9Db29raWVKYXJDdXJsLmgKaW5kZXggMjRhMDVhMjI3YWUwNmFiYTExNDMxNTJhOGZhYzg0ODI5
ZTAxZjQxMC4uZTYyYmM0YTA3ZTgyZTNlY2Y3Y2YyZjY4YTQxZTRhMmFkYTcwZmI5MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3Vy
bC5oCkBAIC0yNCw2ICsyNCw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiRnJhbWVJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CkBAIC00MiwxNSArNDMsMTUgQEAg
ZW51bSBjbGFzcyBDb29raWVBY2NlcHRQb2xpY3k7CiAKIGNsYXNzIENvb2tpZUphckN1cmwgewog
cHVibGljOgotICAgIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZXNGb3JET00oY29uc3Qg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1l
U2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7Ci0gICAgdm9p
ZCBzZXRDb29raWVzRnJvbURPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBV
UkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIGNvbnN0IFN0cmlu
ZyYpIGNvbnN0OworICAgIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZXNGb3JET00oY29u
c3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBT
YW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1l
SUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0
OworICAgIHZvaWQgc2V0Q29va2llc0Zyb21ET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwm
LCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlm
aWVyPiwgY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdm9pZCBzZXRDb29raWVzRnJvbUhUVFBS
ZXNwb25zZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAgIHZvaWQgc2V0Q29va2ll
QWNjZXB0UG9saWN5KGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIENvb2tpZUFjY2VwdFBv
bGljeSkgY29uc3Q7CiAgICAgQ29va2llQWNjZXB0UG9saWN5IGNvb2tpZUFjY2VwdFBvbGljeShj
b25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mKSBjb25zdDsKICAgICBib29sIGNvb2tpZXNFbmFi
bGVkKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYpIGNvbnN0OwotICAgIHN0ZDo6cGFpcjxT
dHJpbmcsIGJvb2w+IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZv
JiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0OworICAgIHN0ZDo6cGFpcjxT
dHJpbmcsIGJvb2w+IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZv
JiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25h
bDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKICAgICBzdGQ6
OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94
eSYpIGNvbnN0OwotICAgIGJvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBOZXR3b3JrU3RvcmFnZVNl
c3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0
IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmll
cj4sIFZlY3RvcjxDb29raWU+JikgY29uc3Q7CisgICAgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2Ft
ZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlE
LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIFZlY3RvcjxDb29raWU+JikgY29uc3Q7CiAgICAg
dm9pZCBkZWxldGVDb29raWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJM
JiwgY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdm9pZCBnZXRIb3N0bmFtZXNXaXRoQ29va2ll
cyhjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBIYXNoU2V0PFN0cmluZz4mIGhvc3RuYW1l
cykgY29uc3Q7CiAgICAgdm9pZCBkZWxldGVDb29raWVzRm9ySG9zdG5hbWVzKGNvbnN0IE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjb29raWVIb3N0TmFtZXMp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCmluZGV4IGU0YzhiMGYx
M2U2ZDA4OWE1ODkyYWE3YWUwYTliODIxNTg1YmI5YTQuLmU5NjFjMjg4M2I4NjMwMTA1ZGE3ZDc4
MDdmM2ZiYmUyNjFhMjA2MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAK
QEAgLTI2MCw3ICsyNjAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaHR0cE9ubHlDb29raWVFeGlz
dHMoY29uc3QgR1NMaXN0KiBjb29raWVzLCBjb25zdCBnY2hhciogbmFtZQogICAgIHJldHVybiBm
YWxzZTsKIH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9N
KGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1
cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
cGFnZUlELCBjb25zdCBTdHJpbmcmIHZhbHVlKSBjb25zdAordm9pZCBOZXR3b3JrU3RvcmFnZVNl
c3Npb246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2Ft
ZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJh
bWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiB2YWx1
ZSkgY29uc3QKIHsKICAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CiAgICAgVU5VU0VEX1BBUkFN
KHBhZ2VJRCk7CkBAIC00MTMsNyArNDEzLDcgQEAgVmVjdG9yPENvb2tpZT4gTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpnZXRDb29raWVzKGNvbnN0IFVSTCYgdXJsKQogICAgIHJldHVybiBjb29raWVz
OwogfQogCi1ib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyhjb25zdCBV
UkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRp
b25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwg
VmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0Citib29sIE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6Z2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRl
SW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQs
IE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFZlY3RvcjxDb29raWU+JiByYXdDb29r
aWVzKSBjb25zdAogewogICAgIFVOVVNFRF9QQVJBTShmaXJzdFBhcnR5KTsKICAgICBVTlVTRURf
UEFSQU0oZnJhbWVJRCk7CkBAIC00ODMsNyArNDgzLDcgQEAgc3RhdGljIHN0ZDo6cGFpcjxTdHJp
bmcsIGJvb2w+IGNvb2tpZXNGb3JTZXNzaW9uKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYg
c2UKICAgICByZXR1cm4geyBTdHJpbmc6OmZyb21VVEY4KGNvb2tpZUhlYWRlci5nZXQoKSksIGRp
ZEFjY2Vzc1NlY3VyZUNvb2tpZXMgfTsKIH0KIAotc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVzRm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwg
Y29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBm
cmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29v
a2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKK3N0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlk
ZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1
ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAogewogICAgIFVOVVNF
RF9QQVJBTShmaXJzdFBhcnR5KTsKICAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CkBAIC00OTEs
NyArNDkxLDcgQEAgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Ojpjb29raWVzRm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXIKICAgICByZXR1cm4gY29va2llc0Zv
clNlc3Npb24oKnRoaXMsIHVybCwgZmFsc2UsIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKIH0KIAot
c3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1
ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRl
SW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNl
Y3VyZUNvb2tpZXMpIGNvbnN0CitzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBOZXR3b3JrU3RvcmFn
ZVNlc3Npb246OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1l
SWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5j
bHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CiB7CiAgICAgVU5V
U0VEX1BBUkFNKGZpcnN0UGFydHkpOwogICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCmlu
ZGV4IDY4N2QwYjA0NjFhZmRlN2MwNzI5OGM2YzllZmZkMjYxOTRiZjQ3YWMuLjc2M2I0NzU5ZTQz
M2Y4NzEzMGIzOTQwMDYyMzQwYjI2ODQ4ZWE4YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcApAQCAtNzE2LDcgKzcxNiw3IEBA
IHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnN5bmNTdG9yYWdlSW1t
ZWRpYXRlbHkoKQogICAgIG1fZGF0YWJhc2UucnVuVmFjdXVtQ29tbWFuZCgpOwogfQogCi12b2lk
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNv
bnN0IFN1YkZyYW1lRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgVG9wRnJhbWVEb21haW4m
IHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDxGcmFtZUlEPiBmcmFtZUlELCBQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNTdG9yYWdl
QWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgVG9wRnJh
bWVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1l
SUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsK
IApAQCAtNzQzLDcgKzc0Myw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mCiAgICAgfSk7CiB9
CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlcXVlc3RTdG9y
YWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWlu
JiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSUQgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVx
dWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJh
bWVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3Rh
dHVzKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFp
bigpKTsKIApAQCAtODA0LDcgKzgwNCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoRG9tYWluCiAgICAg
Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoV1RGTW92ZShkb21haW5Jbk5lZWRPZlN0b3JhZ2VB
Y2Nlc3MpLCBXVEZNb3ZlKG9wZW5lckRvbWFpbiksIFdURjo6bnVsbG9wdCwgb3BlbmVyUGFnZUlE
LCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd246Ok5vLCBbXShTdG9yYWdlQWNjZXNzV2FzR3Jh
bnRlZCkgeyB9KTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRv
cEZyYW1lRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3du
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BG
cmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFn
ZUlkZW50aWZpZXIgcGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2Fz
U2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwog
CkBAIC04MTgsNyArODE4LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3UKICAgICBncmFudFN0
b3JhZ2VBY2Nlc3NJbnRlcm5hbChXVEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0b3BG
cmFtZURvbWFpbiksIGZyYW1lSUQsIHBhZ2VJRCwgcHJvbXB0V2FzU2hvd24sIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoU3ViRnJhbWVEb21haW4mJiBzdWJG
cmFtZURvbWFpbiwgVG9wRnJhbWVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJh
bWVJRD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0
V2FzU2hvd24gcHJvbXB0V2FzU2hvd25Ob3dPckVhcmxpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50
ZXJuYWwoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21haW4mJiB0
b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBQYWdlSWRl
bnRpZmllciBwYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93
bk5vd09yRWFybGllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3Jh
bnRlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01h
aW4oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlLmgKaW5kZXggM2M4ZDJiMWYxNjU0OTNjOTNjYTVkODJiYzAyNzJmOTEzYjdhMDdmYS4u
ZDI1NmJlMjFjZmY3YjFmNzA1NTY0MDMxYTU3NWY1ZTVkMjMzMGVlNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKQEAgLTkxLDkgKzkx
LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBjYWxjdWxhdGVBbmRTdWJtaXRUZWxlbWV0cnkoKSBj
b25zdCBvdmVycmlkZTsKIAotICAgIHZvaWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFt
ZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8RnJhbWVJRD4sIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBvdmVy
cmlkZTsKLSAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRv
cEZyYW1lRG9tYWluJiYsIEZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmKSBvdmVycmlkZTsKLSAgICB2
b2lkIGdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYm
LCBGcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vz
c1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VB
Y2Nlc3NXYXNHcmFudGVkKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNz
KGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0U3Rv
cmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGdyYW50
U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9y
YWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6
U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgbG9nRnJh
bWVOYXZpZ2F0aW9uKGNvbnN0IE5hdmlnYXRlZFRvRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21h
aW4mLCBjb25zdCBOYXZpZ2F0ZWRGcm9tRG9tYWluJiwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlz
TWFpbkZyYW1lKSBvdmVycmlkZTsKICAgICB2b2lkIGxvZ1VzZXJJbnRlcmFjdGlvbihjb25zdCBU
b3BGcmFtZURvbWFpbiYpIG92ZXJyaWRlOwpAQCAtMTUzLDcgKzE1Myw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIFJl
c291cmNlTG9hZFByZXZhbGVuY2UpOwogICAgIHVuc2lnbmVkIHJlY3Vyc2l2ZWx5RmluZE5vblBy
ZXZhbGVudERvbWFpbnNUaGF0UmVkaXJlY3RlZFRvVGhpc0RvbWFpbih1bnNpZ25lZCBwcmltYXJ5
RG9tYWluSUQsIFN0ZFNldDx1bnNpZ25lZD4mIG5vblByZXZhbGVudFJlZGlyZWN0aW9uU291cmNl
cywgdW5zaWduZWQgbnVtYmVyT2ZSZWN1cnNpdmVDYWxscyk7CiAgICAgdm9pZCBzZXREb21haW5z
QXNQcmV2YWxlbnQoU3RkU2V0PHVuc2lnbmVkPiYmKTsKLSAgICB2b2lkIGdyYW50U3RvcmFnZUFj
Y2Vzc0ludGVybmFsKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIE9wdGlvbmFs
PEZyYW1lSUQ+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vz
c1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VB
Y2Nlc3NXYXNHcmFudGVkKT4mJik7CisgICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5h
bChTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBPcHRpb25hbDxXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFn
ZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0
b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJik7CiAgICAgdm9pZCBtYXJrQXNQcmV2YWxlbnRJZkhh
c1JlZGlyZWN0ZWRUb1ByZXZhbGVudCgpOwogICAgIFZlY3RvcjxSZWdpc3RyYWJsZURvbWFpbj4g
ZW5zdXJlUHJldmFsZW50UmVzb3VyY2VzRm9yRGVidWdNb2RlKCkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCByZW1vdmVEYXRhUmVjb3JkcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcAppbmRleCBl
MjM5ZmNjODAzZThkNzQ0NTYxMjE4ZDY3MjE3ZjcxZWQ0MWIxODdmLi5mNmVlOTJmOWI2OGQzMmYw
N2U1MjE1ZDMwMzU0OTk1MTQ0ZjdhODNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcApAQCAtMjExLDcgKzIxMSw3IEBAIHZvaWQgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpzeW5jU3RvcmFnZUltbWVkaWF0ZWx5KCkK
ICAgICAgICAgbV9wZXJzaXN0ZW50U3RvcmFnZS0+c2NoZWR1bGVPcldyaXRlTWVtb3J5U3RvcmUo
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlOjpGb3JjZUltbWVkaWF0ZVdy
aXRlOjpZZXMpOwogfQogCi12b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6
aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNv
bnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJRD4gZnJh
bWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5
U3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mIHN1YkZyYW1lRG9t
YWluLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPEZyYW1l
SWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVu
TG9vcDo6aXNNYWluKCkpOwogCkBAIC0yMzUsNyArMjM1LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzTWVtb3J5U3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21h
aW4mIHMKICAgICB9KTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3Rv
cmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4s
IFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSUQgZnJhbWVJRCwgUGFnZUlk
ZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0
dXMpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVt
b3J5U3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVE
b21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3Rv
cmFnZUFjY2Vzc1N0YXR1cyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFS
dW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTI4OCw3ICsyODgsNyBAQCB2b2lkIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihE
b21haW5JbgogICAgIGdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFdURk1vdmUoZG9tYWluSW5O
ZWVkT2ZTdG9yYWdlQWNjZXNzKSwgV1RGTW92ZShvcGVuZXJEb21haW4pLCBXVEY6Om51bGxvcHQs
IG9wZW5lclBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpObywgW10oU3RvcmFn
ZUFjY2Vzc1dhc0dyYW50ZWQpIHsgfSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c01lbW9yeVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFt
ZURvbWFpbiwgVG9wRnJhbWVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJ
RCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJv
bXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50
ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVt
b3J5U3RvcmU6OmdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9t
YWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24g
cHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dy
YW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNN
YWluKCkpOwogCkBAIC0zMDAsNyArMzAwLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TWVtb3J5U3RvcmU6OmdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1YkYKICAg
ICBncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChXVEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RG
TW92ZSh0b3BGcmFtZURvbWFpbiksIGZyYW1lSUQsIHBhZ2VJRCwgcHJvbXB0V2FzU2hvd24sIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzTWVtb3J5U3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFN1YkZyYW1lRG9tYWlu
JiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIE9wdGlv
bmFsPEZyYW1lSUQ+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vz
c1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duTm93T3JFYXJsaWVyLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nl
c3NJbnRlcm5hbChTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFp
biYmIHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdh
c1Nob3duTm93T3JFYXJsaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NX
YXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6
OmlzTWFpbigpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1v
cnlTdG9yZS5oCmluZGV4IDVhZjY3YTE2ZjA2MTZkYTlmYTBjMDkzMzE1YWNiYzM1ZGFhNWIxMTku
LmE0YTdiODhlMmRmYjAwMzQ2YmRjMjcxZmViN2U1YjI0YmE4MjA5NjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzTWVtb3J5U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgKQEAgLTk3LDkgKzk3LDkg
QEAgcHVibGljOgogCiAgICAgdm9pZCBjYWxjdWxhdGVBbmRTdWJtaXRUZWxlbWV0cnkoKSBjb25z
dCBvdmVycmlkZTsKIAotICAgIHZvaWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURv
bWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8RnJhbWVJRD4sIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBvdmVycmlk
ZTsKLSAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZy
YW1lRG9tYWluJiYsIEZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmKSBvdmVycmlkZTsKLSAgICB2b2lk
IGdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBG
cmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1By
b21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nl
c3NXYXNHcmFudGVkKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNv
bnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFn
ZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGdyYW50U3Rv
cmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdl
QWNjZXNzUHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3Rv
cmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgbG9nRnJhbWVO
YXZpZ2F0aW9uKGNvbnN0IE5hdmlnYXRlZFRvRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4m
LCBjb25zdCBOYXZpZ2F0ZWRGcm9tRG9tYWluJiwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlzTWFp
bkZyYW1lKSBvdmVycmlkZTsKICAgICB2b2lkIGxvZ1VzZXJJbnRlcmFjdGlvbihjb25zdCBUb3BG
cmFtZURvbWFpbiYpIG92ZXJyaWRlOwpAQCAtMTIzLDcgKzEyMyw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBpbmNyZW1lbnRSZWNvcmRzRGVsZXRlZENvdW50Rm9yRG9tYWlucyhIYXNoU2V0PFJlZ2lz
dHJhYmxlRG9tYWluPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFByZXZhbGVudFJlc291cmNl
KFJlc291cmNlTG9hZFN0YXRpc3RpY3MmLCBSZXNvdXJjZUxvYWRQcmV2YWxlbmNlKTsKICAgICB1
bnNpZ25lZCByZWN1cnNpdmVseUdldEFsbERvbWFpbnNUaGF0SGF2ZVJlZGlyZWN0ZWRUb1RoaXNE
b21haW4oY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYsIEhhc2hTZXQ8UmVkaXJlY3RlZFRv
RG9tYWluPiYsIHVuc2lnbmVkIG51bWJlck9mUmVjdXJzaXZlQ2FsbHMpIGNvbnN0OwotICAgIHZv
aWQgZ3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVE
b21haW4mJiwgT3B0aW9uYWw8RnJhbWVJRD4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJD
b3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
V2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKTsKKyAgICB2b2lkIGdyYW50U3Rv
cmFnZUFjY2Vzc0ludGVybmFsKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIE9w
dGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
LCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKTsKICAgICB2b2lkIG1h
cmtBc1ByZXZhbGVudElmSGFzUmVkaXJlY3RlZFRvUHJldmFsZW50KFJlc291cmNlTG9hZFN0YXRp
c3RpY3MmKTsKICAgICBib29sIGlzUHJldmFsZW50RHVlVG9EZWJ1Z01vZGUoUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcyYpOwogICAgIFZlY3RvcjxSZWdpc3RyYWJsZURvbWFpbj4gZW5zdXJlUHJldmFs
ZW50UmVzb3VyY2VzRm9yRGVidWdNb2RlKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmgKaW5kZXggNzBhY2JkY2U5NmY2NWNmODNhOTQ2MzdkM2ZiOGQx
ZTliMjY1NTNkZC4uMjA5NDVkYTA5OGE2ODBhMGE0ZTk5NzdmZDc1MjQ3MGY2NzhkOTk1ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaApAQCAtMjksNiArMjksNyBA
QAogCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0NsYXNzaWZpZXIuaCIKICNpbmNs
dWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgpAQCAtOTAs
NyArOTEsNiBAQCBwdWJsaWM6CiAgICAgdXNpbmcgTmF2aWdhdGVkVG9Eb21haW4gPSBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbjsKICAgICB1c2luZyBEb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nl
c3MgPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKICAgICB1c2luZyBPcGVuZXJEb21haW4g
PSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKLSAgICB1c2luZyBGcmFtZUlEID0gdWludDY0
X3Q7CiAgICAgCiAgICAgdmlydHVhbCB+UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKCk7CiAK
QEAgLTE1OSw5ICsxNTksOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0RlYnVnTW9kZUVuYWJsZWQo
KSBjb25zdCB7IHJldHVybiBtX2RlYnVnTW9kZUVuYWJsZWQ7IH07CiAgICAgdm9pZCBzZXRQcmV2
YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpOwogCi0g
ICAgdmlydHVhbCB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBj
b25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPEZyYW1lSUQ+LCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURv
bWFpbiYmLCBGcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBn
cmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgRnJh
bWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9t
cHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNz
V2FzR3JhbnRlZCk+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaGFzU3RvcmFnZUFjY2Vzcyhj
b25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8V2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN0
b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBn
cmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6
U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNv
cmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lk
IGxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBOYXZpZ2F0ZWRUb0RvbWFpbiYsIGNvbnN0IFRvcEZy
YW1lRG9tYWluJiwgY29uc3QgTmF2aWdhdGVkRnJvbURvbWFpbiYsIGJvb2wgaXNSZWRpcmVjdCwg
Ym9vbCBpc01haW5GcmFtZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBsb2dVc2VySW50ZXJhY3Rp
b24oY29uc3QgVG9wRnJhbWVEb21haW4mKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCmluZGV4IDhjMjExNTdjYzdmNjkxN2JhOTcwODllMzZm
MTY5ZDg2Y2Y4YjhhYjAuLjY3NWYwZGFmNTljZTliNGY4ODdiNzk0YmM4OTJlYzQ0YTgzNzU2ZjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCkBA
IC0yODAsNyArMjgwLDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJl
c291cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVkKFZlY3RvcjxXZWJDb3IKICAgICB9KTsKIH0KIAot
dm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBQYWdlSWRl
bnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFn
ZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVy
PiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKHN1YkZyYW1lRG9tYWlu
ICE9IHRvcEZyYW1lRG9tYWluKTsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAt
MzAxLDcgKzMwMSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpoYXNT
dG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzCiAgICAgfSk7CiB9CiAKLWJv
b2wgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpoYXNTdG9yYWdlQWNjZXNzRm9yRnJh
bWUoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50
aWZpZXIgcGFnZUlEKQorYm9vbCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0
b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21h
aW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKQogewogICAgIEFTU0VSVChSdW5M
b29wOjppc01haW4oKSk7CiAKQEAgLTMxNCw3ICszMTQsNyBAQCBib29sIFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNvbnN0IFJlZ2lzdHJh
YmxlRAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OmNhbGxIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZp
cnN0UGFydHlEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGhhc0FjY2Vzcyk+JiYgY2FsbGJhY2spCit2b2lk
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEhhc1N0b3JhZ2VBY2Nlc3NGb3JG
cmFtZUhhbmRsZXIoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
IGhhc0FjY2Vzcyk+JiYgY2FsbGJhY2spCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKIApAQCAtMzI4LDcgKzMyOCw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpjYWxsSGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcihjb25zdCBSCiAgICAgY2Fs
bGJhY2soZmFsc2UpOwogfQogCi12b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6
cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9t
YWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZy
YW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9y
YWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXF1
ZXN0U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4s
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChT
dG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCkBA
IC0zOTEsNyArMzkxLDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJl
cXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoUmVnaXN0cmFibGUKICAgICB9KTsKIH0KIAot
dm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyhj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIg
cGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24sIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQ
cm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9t
YWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBTdG9y
YWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93
bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKICAgICBwb3N0VGFzayhbdGhpcywgc3ViRnJhbWVEb21haW4gPSBzdWJGcmFtZURvbWFpbi5p
c29sYXRlZENvcHkoKSwgdG9wRnJhbWVEb21haW4gPSB0b3BGcmFtZURvbWFpbi5pc29sYXRlZENv
cHkoKSwgZnJhbWVJRCwgcGFnZUlELCBwcm9tcHRXYXNTaG93biwgY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKQEAgLTQxMCw3ICs0MTAs
NyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNj
ZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJgogICAgIH0pOwogfQogCi1TdG9yYWdlQWNjZXNz
V2FzR3JhbnRlZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFj
Y2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKQorU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmly
c3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBQYWdlSWRl
bnRpZmllciBwYWdlSUQpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAt
NDI3LDcgKzQyNyw3IEBAIFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIFdlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0CiAgICAgcmV0dXJuIGlzU3Rv
cmFnZUdyYW50ZWQgPyBTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZDo6WWVzIDogU3RvcmFnZUFjY2Vz
c1dhc0dyYW50ZWQ6Ok5vOwogfQogCi12b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZTo6Y2FsbEdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIoY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4s
IE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxHcmFudFN0
b3JhZ2VBY2Nlc3NIYW5kbGVyKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFp
biwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDxGcmFt
ZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4IDAyM2RjMjc3Y2Y1MDU0N2JmOTY4OWVj
Y2E0ODQ0ZDBlNjRhYjEzMmYuLjlkYTFiNmJiNTIxNTIxYTAxMjQyMzRjZDQzMjcxMTU2ZjhjZTBi
NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAg
LTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiU3RvcmFn
ZUFjY2Vzc1N0YXR1cy5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhVHlwZS5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRp
Zmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaXN0cmFibGVEb21haW4uaD4KICNpbmNsdWRl
IDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KQEAgLTg5LDcgKzkwLDYgQEAgcHVibGljOgogICAg
IHVzaW5nIE5hdmlnYXRlZFRvRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CiAg
ICAgdXNpbmcgRG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzID0gV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW47CiAgICAgdXNpbmcgT3BlbmVyRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW47Ci0gICAgdXNpbmcgRnJhbWVJRCA9IHVpbnQ2NF90OwogICAgIHVzaW5nIFN0b3JhZ2VB
Y2Nlc3NXYXNHcmFudGVkID0gV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQ7CiAgICAg
dXNpbmcgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duID0gV2ViQ29yZTo6U3RvcmFnZUFjY2Vz
c1Byb21wdFdhc1Nob3duOwogCkBAIC0xMTEsNyArMTExLDcgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0U2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoYm9vbCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFNob3VsZFN1Ym1pdFRl
bGVtZXRyeShib29sKTsKIAotICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZy
YW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBGcmFtZUlELCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hv
d24pPiYmKTsKKyAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFp
biYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJv
bXB0V2FzU2hvd24pPiYmKTsKIAogICAgIHZvaWQgYXBwbGljYXRpb25XaWxsVGVybWluYXRlKCk7
CiAKQEAgLTEyNSwxMSArMTI1LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyVXNlckludGVy
YWN0aW9uKGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKICAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9yUmVnaXN0cmFibGVEb21haW5zKE9wdGlv
blNldDxXZWJzaXRlRGF0YVR5cGU+LCBIYXNoTWFwPFJlZ2lzdHJhYmxlRG9tYWluLCBXZWJzaXRl
RGF0YVRvUmVtb3ZlPiYmLCBib29sIHNob3VsZE5vdGlmeVBhZ2UsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoY29uc3QgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4mKT4mJik7CiAgICAgdm9pZCBy
ZWdpc3RyYWJsZURvbWFpbnNXaXRoV2Vic2l0ZURhdGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlw
ZT4sIGJvb2wgc2hvdWxkTm90aWZ5UGFnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNoU2V0
PFJlZ2lzdHJhYmxlRG9tYWluPiYmKT4mJik7Ci0gICAgU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQg
Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVE
b21haW4mLCBPcHRpb25hbDxGcmFtZUlEPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOworICAg
IFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFt
ZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogICAgIHZvaWQgaGFzSGFkVXNl
ckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1l
RG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxGcmFtZUlEPiwgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotICAg
IGJvb2wgaGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29u
c3QgVG9wRnJhbWVEb21haW4mLCBGcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7Ci0g
ICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0
IFRvcEZyYW1lRG9tYWluJiwgRnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQ
cm9tcHRXYXNTaG93bik+JiYpOworICAgIHZvaWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJG
cmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpOworICAgIGJvb2wgaGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNvbnN0
IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlcXVlc3RTdG9y
YWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJv
bXB0V2FzU2hvd24pPiYmKTsKICAgICB2b2lkIHNldExhc3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiwgU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lk
IHNldFByZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFZlcnlQcmV2YWxlbnRSZXNvdXJjZShj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CkBA
IC0xNzIsMTEgKzE3MiwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJj
ZUZvckRlYnVnTW9kZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAKICAgICB2b2lkIGxvZ1Rlc3RpbmdFdmVudChjb25zdCBTdHJpbmcmKTsK
LSAgICB2b2lkIGNhbGxHcmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKGNvbnN0IFN1YkZyYW1lRG9t
YWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxGcmFtZUlEPiwgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dy
YW50ZWQpPiYmKTsKKyAgICB2b2lkIGNhbGxHcmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKGNvbnN0
IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpOwogICAgIHZvaWQgcmVtb3Zl
QWxsU3RvcmFnZUFjY2VzcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQg
Y2FsbFVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0ZvckhhbmRsZXIoY29uc3Qg
UmVnaXN0cmFibGVEb21haW5zVG9CbG9ja0Nvb2tpZXNGb3ImLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogICAgIHZvaWQgY2FsbFJlbW92ZURvbWFpbnNIYW5kbGVyKGNvbnN0IFZlY3Rv
cjxSZWdpc3RyYWJsZURvbWFpbj4mKTsKLSAgICB2b2lkIGNhbGxIYXNTdG9yYWdlQWNjZXNzRm9y
RnJhbWVIYW5kbGVyKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4m
LCBGcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJik7CisgICAgdm9pZCBjYWxsSGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxl
cihjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJik7CiAKICAgICB2b2lkIGRpZENyZWF0ZU5ldHdvcmtQcm9jZXNzKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQ
cmVmbGlnaHRDaGVja2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
T1JTUHJlZmxpZ2h0Q2hlY2tlci5oCmluZGV4IDc5MzAxYjIwY2NjYWZlYjUyMTBkNzVhZDU3NDFm
ZDJkOTJlOGFjYWQuLjJjYmY0YzZlZTJiM2NjNTBiNTExN2NmMjZmMzEzYjE1MmM3MzkwZmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGln
aHRDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09S
U1ByZWZsaWdodENoZWNrZXIuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgICAgIFN0
cmluZyB1c2VyQWdlbnQ7CiAgICAgICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRDsKICAgICAg
ICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEOwotICAgICAgICB1aW50NjRfdCBmcmFt
ZUlEOworICAgICAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRDsKICAgICAgICAg
V2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k7
CiAgICAgfTsKICAgICB1c2luZyBDb21wbGV0aW9uQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFdlYkNvcmU6OlJlc291cmNlRXJyb3ImJik+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcAppbmRleCAxZjEwMDRlMWI1YmNkMzlkOGIxMjJkZjhjNmRhNDhkMTM3YzRiZTYxLi4wYzJj
OTc2ZmVlMjBkMzI5YjQwN2UwNGRiOTYyZmI2Nzk5YWY0MzE4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcApAQCAtNTI1LDcgKzUyNSw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChQQUw6OlNlc3NpCiAg
ICAgbG9hZGVyLT5jb252ZXJ0VG9Eb3dubG9hZChkb3dubG9hZElELCByZXF1ZXN0LCByZXNwb25z
ZSk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNGb3JE
T00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWlu
dDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVT
ZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgc2VjdXJlQ29va2llc0FjY2Vzc2VkKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tp
ZXNGb3JET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFn
ZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcywgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChTdHJpbmcgY29va2llU3RyaW5nLCBib29sIHNlY3VyZUNvb2tpZXNBY2Nl
c3NlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXV0byYgbmV0d29ya1N0b3JhZ2VT
ZXNzaW9uID0gc3RvcmFnZVNlc3Npb24obmV0d29ya1Byb2Nlc3MoKSwgc2Vzc2lvbklEKTsKICAg
ICBhdXRvIHJlc3VsdCA9IG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jb29raWVzRm9yRE9NKGZpcnN0
UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIGluY2x1ZGVTZWN1cmVD
b29raWVzKTsKQEAgLTUzOCw3ICs1MzgsNyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpjb29raWVzRm9yRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29ucwogICAg
IGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0LmZpcnN0KSwgcmVzdWx0LnNlY29uZCk7
CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldENvb2tpZXNGcm9t
RE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVp
bnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBjb25zdCBT
dHJpbmcmIGNvb2tpZVN0cmluZykKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OnNldENvb2tpZXNGcm9tRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1
cmwsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8
UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpCiB7CiAg
ICAgYXV0byYgbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gc3RvcmFnZVNlc3Npb24obmV0d29ya1By
b2Nlc3MoKSwgc2Vzc2lvbklEKTsKICAgICBuZXR3b3JrU3RvcmFnZVNlc3Npb24uc2V0Q29va2ll
c0Zyb21ET00oZmlyc3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwg
Y29va2llU3RyaW5nKTsKQEAgLTU1NSwxMyArNTU1LDEzIEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNFbmFibGVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Q29tCiAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RvcmFnZVNlc3Npb24obmV0d29ya1Byb2Nlc3Mo
KSwgc2Vzc2lvbklEKS5jb29raWVzRW5hYmxlZCgpKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5m
byYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1l
SUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVz
IGluY2x1ZGVTZWN1cmVDb29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZywgYm9v
bCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUlu
Zm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9w
dGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1
ZGVTZWN1cmVDb29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZywgYm9vbCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXV0byByZXN1bHQgPSBzdG9yYWdlU2Vzc2lvbihu
ZXR3b3JrUHJvY2VzcygpLCBzZXNzaW9uSUQpLmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVl
KGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIGluY2x1ZGVT
ZWN1cmVDb29raWVzKTsKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdC5maXJz
dCksIHJlc3VsdC5zZWNvbmQpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpnZXRSYXdDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1
cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
cGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6Z2V0UmF3Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJs
LCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlm
aWVyPiBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkNvb2tp
ZT4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgVmVjdG9yPFdlYkNvcmU6OkNvb2tp
ZT4gcmVzdWx0OwogICAgIHN0b3JhZ2VTZXNzaW9uKG5ldHdvcmtQcm9jZXNzKCksIHNlc3Npb25J
RCkuZ2V0UmF3Q29va2llcyhmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwg
cGFnZUlELCByZXN1bHQpOwpAQCAtNjcwLDcgKzY3MCw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmVuc3VyZUxlZ2FjeVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQogfQog
CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLXZvaWQgTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkK
K3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NG
b3JGcmFtZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBQYWdlSWRlbnRpZmllciBwYWdlSUQpCiB7CiAgICAgaWYgKGF1dG8qIHN0b3JhZ2VTZXNzaW9u
ID0gbmV0d29ya1Byb2Nlc3MoKS5zdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQogICAgICAgICBz
dG9yYWdlU2Vzc2lvbi0+cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGZyYW1lSUQsIHBhZ2VJ
RCk7CkBAIC03MjgsNyArNzI4LDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0ZWQoVmVjdG9yPFdlYkNvcmUKICAgICAgICAg
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+cmVzb3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0ZWQoV1RG
TW92ZShzdGF0aXN0aWNzKSk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6Omhhc1N0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0
b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6aGFzU3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lv
biA9IG5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewogICAgICAg
ICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IG5ldHdvcmtTZXNzaW9uLT5yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzKCkpIHsKQEAgLTc0MCw3ICs3NDAsNyBAQCB2b2lkIE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpoYXNTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgYwogICAgIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOwogfQogCi12b2lkIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlE
LCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6
U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgd2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vz
c1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1l
RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgd2FzR3JhbnRlZCwgV2ViQ29y
ZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSBuZXR3b3JrUHJv
Y2VzcygpLm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKICAgICAgICAgaWYgKGF1dG8qIHJl
c291cmNlTG9hZFN0YXRpc3RpY3MgPSBuZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlz
dGljcygpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggOTI4NjczM2M0YjdjNzUxMmMy
OWM1MzI0MzgyMWQwZWUxZWM3MTMwOS4uMjU1MDg0ZjkyMzFmZWE4MzA4MDA5OGQzNTkzMDU3YTFi
ZDkwN2M1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMzQsNiArMzQsNyBAQAogI2lu
Y2x1ZGUgIk5ldHdvcmtSVENQcm92aWRlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxv
YWRNYXAuaCIKICNpbmNsdWRlICJXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3Jr
TG9hZEluZm9ybWF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KQEAgLTE3NCwxMSArMTc1LDEx
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdGFydERvd25sb2FkKFBBTDo6U2Vzc2lvbklELCBEb3du
bG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHN1
Z2dlc3RlZE5hbWUgPSB7IH0pOwogICAgIHZvaWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rv
d25sb2FkKFBBTDo6U2Vzc2lvbklELCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmll
ciwgRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogCi0gICAgdm9pZCBjb29raWVzRm9yRE9NKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRl
SW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgc2VjdXJlQ29v
a2llc0FjY2Vzc2VkKT4mJik7Ci0gICAgdm9pZCBzZXRDb29raWVzRnJvbURPTShQQUw6OlNlc3Np
b25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8m
LCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXI+LCBjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGNvb2tpZXNGb3JE
T00oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6
U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyPiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpJbmNsdWRl
U2VjdXJlQ29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcgY29va2llU3RyaW5n
LCBib29sIHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCk+JiYpOworICAgIHZvaWQgc2V0Q29va2llc0Zy
b21ET00oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29y
ZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyPiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBjb25zdCBTdHJpbmcm
KTsKICAgICB2b2lkIGNvb2tpZXNFbmFibGVkKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKTsKLSAgICB2b2lkIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZh
bHVlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6
OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBP
cHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVD
b29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wg
c2VjdXJlQ29va2llc0FjY2Vzc2VkKT4mJik7Ci0gICAgdm9pZCBnZXRSYXdDb29raWVzKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRl
SW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdl
YkNvcmU6OkNvb2tpZT4mJik+JiYpOworICAgIHZvaWQgY29va2llUmVxdWVzdEhlYWRlckZpZWxk
VmFsdWUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29y
ZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyPiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpJbmNs
dWRlU2VjdXJlQ29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcgY29va2llU3Ry
aW5nLCBib29sIHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCk+JiYpOworICAgIHZvaWQgZ2V0UmF3Q29v
a2llcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3Jl
OjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXI+LCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJik+JiYpOwogICAgIHZvaWQgZGVsZXRl
Q29va2llKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5h
bWUpOwogCiAgICAgdm9pZCByZWdpc3RlckZpbGVCbG9iVVJMKFBBTDo6U2Vzc2lvbklELCBjb25z
dCBVUkwmLCBjb25zdCBTdHJpbmcmIHBhdGgsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmLCBj
b25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKQEAgLTIxOCw3ICsyMTksNyBAQCBwcml2YXRlOgog
ICAgIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24mIGNhY2hlU3RvcmFnZUNvbm5lY3Rpb24o
KTsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgdm9pZCByZW1v
dmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlbW92ZVN0b3JhZ2VBY2Nlc3NG
b3JGcmFtZShQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcik7CiAgICAgdm9pZCBjbGVhclBhZ2VTcGVjaWZpY0RhdGFGb3JSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzKFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
cik7CiAKICAgICB2b2lkIGxvZ1VzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mKTsKQEAgLTIyNiw4ICsyMjcsOCBAQCBwcml2YXRlOgogICAgIHZv
aWQgbG9nU3VicmVzb3VyY2VMb2FkaW5nKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgdGFyZ2V0RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVE
b21haW4sIFdhbGxUaW1lIGxhc3RTZWVuKTsKICAgICB2b2lkIGxvZ1N1YnJlc291cmNlUmVkaXJl
Y3QoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzb3VyY2VEb21haW4s
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0YXJnZXREb21haW4pOwogICAgIHZvaWQgcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1VwZGF0ZWQoVmVjdG9yPFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRp
c3RpY3M+JiYpOwotICAgIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKLSAgICB2b2lkIHJlcXVl
c3RTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
c3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwg
dWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3Jh
Z2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYpOworICAgIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhQ
QUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYpOworICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQs
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3Jh
Z2VBY2Nlc3NXYXNHcmFudGVkLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24p
PiYmKTsKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoUEFMOjpTZXNz
aW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgZG9tYWluSW5OZWVkT2ZTdG9yYWdl
QWNjZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBvcGVuZXJQYWdlSUQsIFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluJiYgb3BlbmVyRG9tYWluKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA0YjExODliMzljY2ViYzhmYjIyNmY4
ZmVlMDM0MjhjNmM4NWFkN2EzLi45OWFiZDA3OGZiMTRjOWYzMGJlOWM4NzYwM2ExM2Q5MWJkNzlh
OWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTM0
LDExICszNCwxMSBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBM
ZWdhY3lSZWNlaXZlciB7CiAgICAgU3RhcnREb3dubG9hZChQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QgcmVxdWVzdCwgU3RyaW5nIHN1Z2dlc3RlZE5hbWUpCiAgICAgQ29udmVydE1haW5SZXNvdXJj
ZUxvYWRUb0Rvd25sb2FkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgbWFpblJl
c291cmNlTG9hZElkZW50aWZpZXIsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBy
ZXNwb25zZSkKIAotICAgIENvb2tpZXNGb3JET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBV
UkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8s
IFVSTCB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllcj4gcGFnZUlELCBlbnVtOmJvb2wgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNv
b2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIC0+IChTdHJpbmcgY29va2llU3RyaW5nLCBib29s
IGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMpIFN5bmNocm9ub3VzCi0gICAgU2V0Q29va2llc0Zyb21E
T00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNv
cmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90
PiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBTdHJp
bmcgY29va2llU3RyaW5nKQorICAgIENvb2tpZXNGb3JET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0
ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJ
RCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgZW51bTpib29sIFdl
YkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSAtPiAoU3Ry
aW5nIGNvb2tpZVN0cmluZywgYm9vbCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzKSBTeW5jaHJvbm91
cworICAgIFNldENvb2tpZXNGcm9tRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZp
cnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwg
dXJsLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFs
PFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFN0cmluZyBjb29raWVTdHJpbmcpCiAg
ICAgQ29va2llc0VuYWJsZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoYm9vbCBlbmFi
bGVkKSBTeW5jaHJvbm91cwotICAgIENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1l
U2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgZW51bTpib29sIFdl
YkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSAtPiAoU3Ry
aW5nIGNvb2tpZVN0cmluZywgYm9vbCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzKSBTeW5jaHJvbm91
cwotICAgIEdldFJhd0Nvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgZmlyc3RQ
YXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmws
IE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRp
Zmllcj4gcGFnZUlEKSAtPiAoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykgU3luY2hy
b25vdXMKKyAgICBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNh
bWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBm
cmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBlbnVtOmJv
b2wgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIC0+
IChTdHJpbmcgY29va2llU3RyaW5nLCBib29sIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMpIFN5bmNo
cm9ub3VzCisgICAgR2V0UmF3Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCBm
aXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgVVJM
IHVybCwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25h
bDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlEKSAtPiAoVmVjdG9yPFdlYkNvcmU6OkNv
b2tpZT4gY29va2llcykgU3luY2hyb25vdXMKICAgICBEZWxldGVDb29raWUoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBVUkwgdXJsLCBTdHJpbmcgY29va2llTmFtZSkKIAogICAgIFJlZ2lzdGVy
RmlsZUJsb2JVUkwoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgdXJsLCBTdHJpbmcgcGF0
aCwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgZXh0ZW5zaW9uSGFuZGxlLCBTdHJp
bmcgY29udGVudFR5cGUpCkBAIC01OCwxNSArNTgsMTUgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIEVuc3VyZUxlZ2FjeVBy
aXZhdGVCcm93c2luZ1Nlc3Npb24oKQogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykKLSAgICBSZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQp
OworICAgIFJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciBwYWdlSUQpOwogICAgIENsZWFyUGFnZVNwZWNpZmljRGF0YUZvclJlc291cmNlTG9hZFN0
YXRpc3RpY3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciBwYWdlSUQpOwogICAgIExvZ1VzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbikKICAgICBMb2dXZWJTb2NrZXRM
b2FkaW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4gdGFyZ2V0RG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFp
biwgV2FsbFRpbWUgbGFzdFNlZW4pCiAgICAgTG9nU3VicmVzb3VyY2VMb2FkaW5nKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFyZ2V0RG9tYWlu
LCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgV2FsbFRpbWUgbGFz
dFNlZW4pCiAgICAgTG9nU3VicmVzb3VyY2VSZWRpcmVjdChQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHNvdXJjZURvbWFpbiwgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4gdGFyZ2V0RG9tYWluKQogICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NV
cGRhdGVkKFZlY3RvcjxXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPiBzdGF0aXN0aWNz
KQotICAgIEhhc1N0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCkgLT4gKGJvb2wgaGFzU3RvcmFnZUFjY2VzcykgQXN5bmMKLSAgICBSZXF1
ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0
b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
cGFnZUlEKSAtPiAoZW51bTpib29sIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIHdh
c0dyYW50ZWQsIGVudW06Ym9vbCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24g
cHJvbXB0V2FzU2hvd24pIEFzeW5jCisgICAgSGFzU3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkZyYW1lRG9tYWluLCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkgLT4gKGJv
b2wgaGFzU3RvcmFnZUFjY2VzcykgQXN5bmMKKyAgICBSZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkZyYW1l
RG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCkgLT4gKGVudW06Ym9vbCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCB3YXNHcmFu
dGVkLCBlbnVtOmJvb2wgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21w
dFdhc1Nob3duKSBBc3luYwogICAgIFJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW5J
bk5lZWRPZlN0b3JhZ2VBY2Nlc3MsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIG9wZW5lclBhZ2VJ
RCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gb3BlbmVyRG9tYWluKQogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNw
cAppbmRleCA0MDk3MTRkNjY3MjZhODQ3NGFmZjI5YTE2MDgxN2YyNDc5NjdiMDE2Li4xMTc2ZjUz
N2E4NTgwOWI0YmFlMWNlNzY4YjU2NTM1YjE1ZDVlYmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwCkBAIC00OCw3ICs0OCw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1NhbWVPcmlnaW4oY29uc3QgVVJMJiB1cmwsIGNvbnN0
IFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCiAgICAgcmV0dXJuIHVybC5wcm90b2NvbElzRGF0YSgp
IHx8IHVybC5wcm90b2NvbElzQmxvYigpIHx8ICFvcmlnaW4gfHwgb3JpZ2luLT5jYW5SZXF1ZXN0
KHVybCk7CiB9CiAKLU5ldHdvcmtMb2FkQ2hlY2tlcjo6TmV0d29ya0xvYWRDaGVja2VyKE5ldHdv
cmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgRmV0Y2hPcHRpb25zJiYgb3B0aW9ucywgUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1l
SUQsIEhUVFBIZWFkZXJNYXAmJiBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzLCBVUkwmJiB1cmwsIFJl
ZlB0cjxTZWN1cml0eU9yaWdpbj4mJiBzb3VyY2VPcmlnaW4sIFByZWZsaWdodFBvbGljeSBwcmVm
bGlnaHRQb2xpY3ksIFN0cmluZyYmIHJlZmVycmVyLCBib29sIGlzSFRUUFNVcGdyYWRlRW5hYmxl
ZCwgYm9vbCBzaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MsIExvYWRUeXBlIHJl
cXVlc3RMb2FkVHlwZSkKK05ldHdvcmtMb2FkQ2hlY2tlcjo6TmV0d29ya0xvYWRDaGVja2VyKE5l
dHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgRmV0Y2hPcHRpb25zJiYgb3B0aW9ucywgUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBIVFRQSGVhZGVyTWFwJiYgb3JpZ2luYWxSZXF1ZXN0SGVhZGVycywgVVJM
JiYgdXJsLCBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+JiYgc291cmNlT3JpZ2luLCBQcmVmbGlnaHRQ
b2xpY3kgcHJlZmxpZ2h0UG9saWN5LCBTdHJpbmcmJiByZWZlcnJlciwgYm9vbCBpc0hUVFBTVXBn
cmFkZUVuYWJsZWQsIGJvb2wgc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzLCBM
b2FkVHlwZSByZXF1ZXN0TG9hZFR5cGUpCiAgICAgOiBtX29wdGlvbnMoV1RGTW92ZShvcHRpb25z
KSkKICAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAsIG1fbmV0d29ya1Byb2Nlc3Mo
bmV0d29ya1Byb2Nlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtMb2FkQ2hlY2tlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrTG9hZENoZWNrZXIuaAppbmRleCAwNzcwNjQ2NzBmY2JiOWFjOTQyZjhkODYxODEwNDk1OWYw
MGUwNTc4Li5lYzk0ZTE0Njk1MzNkN2Q5ODc4MTZiYjI2YjE3ZGZiMjNiOTQzZmMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmgKQEAg
LTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25z
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRl
cnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZldGNoT3B0aW9ucy5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrTG9hZEluZm9y
bWF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgpAQCAtNTUsNyArNTYsNyBAQCBjbGFzcyBOZXR3b3Jr
TG9hZENoZWNrZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TmV0d29ya0xvYWRDaGVja2VyPiB7
CiBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBMb2FkVHlwZSA6IGJvb2wgeyBNYWluRnJhbWUsIE90
aGVyIH07CiAKLSAgICBOZXR3b3JrTG9hZENoZWNrZXIoTmV0d29ya1Byb2Nlc3MmLCBXZWJDb3Jl
OjpGZXRjaE9wdGlvbnMmJiwgUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
LCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiYsIFVSTCYmLCBSZWZQ
dHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYsIFdlYkNvcmU6OlByZWZsaWdodFBvbGljeSwg
U3RyaW5nJiYgcmVmZXJyZXIsIGJvb2wgaXNIVFRQU1VwZ3JhZGVFbmFibGVkID0gZmFsc2UsIGJv
b2wgc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzID0gZmFsc2UsIExvYWRUeXBl
IHJlcXVlc3RMb2FkVHlwZSA9IExvYWRUeXBlOjpPdGhlcik7CisgICAgTmV0d29ya0xvYWRDaGVj
a2VyKE5ldHdvcmtQcm9jZXNzJiwgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiYsIFBBTDo6U2Vzc2lv
bklELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBX
ZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiYsIFVSTCYmLCBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4+JiYsIFdlYkNvcmU6OlByZWZsaWdodFBvbGljeSwgU3RyaW5nJiYgcmVmZXJyZXIsIGJv
b2wgaXNIVFRQU1VwZ3JhZGVFbmFibGVkID0gZmFsc2UsIGJvb2wgc2hvdWxkQ2FwdHVyZUV4dHJh
TmV0d29ya0xvYWRNZXRyaWNzID0gZmFsc2UsIExvYWRUeXBlIHJlcXVlc3RMb2FkVHlwZSA9IExv
YWRUeXBlOjpPdGhlcik7CiAgICAgfk5ldHdvcmtMb2FkQ2hlY2tlcigpOwogCiAgICAgc3RydWN0
IFJlZGlyZWN0aW9uVHJpcGxldCB7CkBAIC0xMjcsNyArMTI4LDcgQEAgcHJpdmF0ZToKICAgICBQ
QUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICAgICBSZWY8TmV0d29ya1Byb2Nlc3M+IG1fbmV0
d29ya1Byb2Nlc3M7CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV9wYWdlSUQ7Ci0gICAg
dWludDY0X3QgbV9mcmFtZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX2ZyYW1l
SUQ7CiAgICAgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCBtX29yaWdpbmFsUmVxdWVzdEhlYWRlcnM7
IC8vIE5lZWRlZCBmb3IgQ09SUyBjaGVja3MuCiAgICAgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCBt
X2ZpcnN0UmVxdWVzdEhlYWRlcnM7IC8vIE5lZWRlZCBmb3IgQ09SUyBjaGVja3MuCiAgICAgVVJM
IG1fdXJsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZFBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xv
YWRQYXJhbWV0ZXJzLmgKaW5kZXggYzQzZTVkY2Q3NTAxMWE1NTkxZTZlNjgyNzI0YzFhNjk1NjVl
Y2YxNy4uYjhmN2QxMzllMzFlYzVjODI3MTM1ZTM3MzBiN2IwZDllZjBhNDYxYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5o
CkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJOZXR3b3JrQWN0aXZpdHlUcmFja2VyLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9CbG9iRGF0YUZpbGVSZWZlcmVuY2UuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZp
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CkBAIC00Niw3ICs0Nyw3IEBAIHB1YmxpYzoK
IAogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRDsKICAgICBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciB3ZWJQYWdlSUQ7Ci0gICAgdWludDY0X3Qgd2ViRnJhbWVJRCB7IDAgfTsKKyAgICBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgd2ViRnJhbWVJRDsKICAgICBXVEY6OlByb2Nlc3NJRCBwYXJl
bnRQSUQgeyAwIH07CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Q7CiAgICAg
V2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IGNvbnRlbnRTbmlmZmluZ1BvbGljeSB7IFdl
YkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeTo6U25pZmZDb250ZW50IH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggYTkyYjcyNDFlYjI5
OGVhNjZjNWE4YTI4NDc0ZjQwM2U1N2U0NWMzOS4uYzIzNjNkZDExMzVmN2UyYmZhMDMyOWVkZjI2
MmEyNWJlZTIyYjNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuaApAQCAtMTM3LDcgKzEzNyw2IEBAIHB1YmxpYzoKICAgICB1c2luZyBOYXZpZ2F0
ZWRUb0RvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwogICAgIHVzaW5nIERvbWFp
bkluTmVlZE9mU3RvcmFnZUFjY2VzcyA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwogICAg
IHVzaW5nIE9wZW5lckRvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwotICAgIHVz
aW5nIEZyYW1lSUQgPSB1aW50NjRfdDsKIAogICAgIE5ldHdvcmtQcm9jZXNzKEF1eGlsaWFyeVBy
b2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmJik7CiAgICAgfk5ldHdvcmtQcm9jZXNzKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJj
ZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJj
ZUxvYWRlci5jcHAKaW5kZXggNDc4MmVmMTVmM2RlZWU1YWY0ZWFlZjA1Y2RmNjAzNmFlN2U2ZDJm
Yi4uZWM2YTgwYzg0ODlkZWYzMmQ3ODliNzRiZWMxMjczNTdiZWM1NTgzNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNw
cApAQCAtMTgwLDE4ICsxODAsMTggQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0
KCkKIAogICAgICAgICAgICAgV1RGOjpzd2l0Y2hPbihyZXN1bHQsCiAgICAgICAgICAgICAgICAg
W3RoaXNdIChSZXNvdXJjZUVycm9yJiBlcnJvcikgewotICAgICAgICAgICAgICAgICAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKCJzdGFydDogZXJyb3IgY2hlY2tpbmcgKHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwg
aXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkLCBwYXJlbnRQSUQgPSAlZCwg
ZXJyb3IuZG9tYWluID0gJXtwdWJsaWN9cywgZXJyb3IuY29kZSA9ICVkKSIsIG1fcGFyYW1ldGVy
cy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1l
dGVycy5pZGVudGlmaWVyLCB0aGlzLT5pc01haW5SZXNvdXJjZSgpLCB0aGlzLT5pc1N5bmNocm9u
b3VzKCksIG1fcGFyYW1ldGVycy5wYXJlbnRQSUQsIGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRh
KCksIGVycm9yLmVycm9yQ29kZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgic3RhcnQ6IGVycm9yIGNoZWNraW5nIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJl
c291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCwgcGFyZW50UElEID0gJWQsIGVycm9yLmRv
bWFpbiA9ICV7cHVibGljfXMsIGVycm9yLmNvZGUgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFn
ZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFy
YW1ldGVycy5pZGVudGlmaWVyLCB0aGlzLT5pc01haW5SZXNvdXJjZSgpLCB0aGlzLT5pc1N5bmNo
cm9ub3VzKCksIG1fcGFyYW1ldGVycy5wYXJlbnRQSUQsIGVycm9yLmRvbWFpbigpLnV0ZjgoKS5k
YXRhKCksIGVycm9yLmVycm9yQ29kZSgpKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFlcnJv
ci5pc0NhbmNlbGxhdGlvbigpKQogICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy0+ZGlkRmFp
bExvYWRpbmcoZXJyb3IpOwogICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgW3Ro
aXNdIChOZXR3b3JrTG9hZENoZWNrZXI6OlJlZGlyZWN0aW9uVHJpcGxldCYgdHJpcGxldCkgewog
ICAgICAgICAgICAgICAgICAgICB0aGlzLT5tX2lzV2FpdGluZ0NvbnRpbnVlV2lsbFNlbmRSZXF1
ZXN0Rm9yQ2FjaGVkUmVkaXJlY3QgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICB0aGlzLT53
aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFdURk1vdmUodHJpcGxldC5yZXF1ZXN0KSwgV1RGTW92
ZSh0cmlwbGV0LnJlZGlyZWN0UmVxdWVzdCksIFdURk1vdmUodHJpcGxldC5yZWRpcmVjdFJlc3Bv
bnNlKSk7Ci0gICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0
OiBzeW50aGV0aWMgcmVkaXJlY3Qgc2VudCBiZWNhdXNlIHJlcXVlc3QgVVJMIHdhcyBtb2RpZmll
ZCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJ
RCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQs
IHBhcmVudFBJRCA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9w
YXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCB0aGlzLT5pc01h
aW5SZXNvdXJjZSgpLCB0aGlzLT5pc1N5bmNocm9ub3VzKCksIG1fcGFyYW1ldGVycy5wYXJlbnRQ
SUQpOworICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydDog
c3ludGhldGljIHJlZGlyZWN0IHNlbnQgYmVjYXVzZSByZXF1ZXN0IFVSTCB3YXMgbW9kaWZpZWQg
KHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQg
PSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkLCBw
YXJlbnRQSUQgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFy
YW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCB0
aGlzLT5pc01haW5SZXNvdXJjZSgpLCB0aGlzLT5pc1N5bmNocm9ub3VzKCksIG1fcGFyYW1ldGVy
cy5wYXJlbnRQSUQpOwogICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgW3RoaXNd
IChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKHRo
aXMtPmNhblVzZUNhY2hlKHJlcXVlc3QpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKCJzdGFydDogQ2hlY2tpbmcgY2FjaGUgZm9yIHJlc291cmNlIChw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCwgcGFy
ZW50UElEID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFt
ZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIHRoaXMtPmlzTWFpblJl
c291cmNlKCksIHRoaXMtPmlzU3luY2hyb25vdXMoKSwgbV9wYXJhbWV0ZXJzLnBhcmVudFBJRCk7
CisgICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydDog
Q2hlY2tpbmcgY2FjaGUgZm9yIHJlc291cmNlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNl
ID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCwgcGFyZW50UElEID0gJWQpIiwgbV9wYXJhbWV0ZXJz
LndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgp
LCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgdGhpcy0+aXNNYWluUmVzb3VyY2UoKSwgdGhpcy0+
aXNTeW5jaHJvbm91cygpLCBtX3BhcmFtZXRlcnMucGFyZW50UElEKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIHRoaXMtPnJldHJpZXZlQ2FjaGVFbnRyeShyZXF1ZXN0KTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgfQpAQCAtMjA0LDcgKzIw
NCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydCgpCiAgICAgfQogICAgIC8v
IEZJWE1FOiBSZW1vdmUgdGhhdCBjb2RlIHBhdGggb25jZSBtX25ldHdvcmtMb2FkQ2hlY2tlciBp
cyB1c2VkIGZvciBhbGwgbmV0d29yayBsb2Fkcy4KICAgICBpZiAoY2FuVXNlQ2FjaGUob3JpZ2lu
YWxSZXF1ZXN0KCkpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0OiBD
aGVja2luZyBjYWNoZSBmb3IgcmVzb3VyY2UgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2Ug
PSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkLCBwYXJlbnRQSUQgPSAlZCkiLCBtX3BhcmFtZXRlcnMu
d2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRl
cnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpLCBtX3BhcmFt
ZXRlcnMucGFyZW50UElEKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6
IENoZWNraW5nIGNhY2hlIGZvciByZXNvdXJjZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJj
ZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQsIHBhcmVudFBJRCA9ICVkKSIsIG1fcGFyYW1ldGVy
cy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQo
KSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25v
dXMoKSwgbV9wYXJhbWV0ZXJzLnBhcmVudFBJRCk7CiAgICAgICAgIHJldHJpZXZlQ2FjaGVFbnRy
eShvcmlnaW5hbFJlcXVlc3QoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yNDQsNyAr
MjQ0LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRyeShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAgICAgICAgIGxvZ1Nsb3dDYWNoZVJldHJp
ZXZlSWZOZWVkZWQoaW5mbyk7CiAKICAgICAgICAgaWYgKCFlbnRyeSkgewotICAgICAgICAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNoZUVudHJ5OiBSZXNvdXJjZSBub3Qg
aW4gY2FjaGUgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJl
c291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91
cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJz
LndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBp
c1N5bmNocm9ub3VzKCkpOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0
cmlldmVDYWNoZUVudHJ5OiBSZXNvdXJjZSBub3QgaW4gY2FjaGUgKHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNN
YWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQ
YWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9w
YXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7
CiAgICAgICAgICAgICBzdGFydE5ldHdvcmtMb2FkKFdURk1vdmUocmVxdWVzdCksIEZpcnN0TG9h
ZDo6WWVzKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMjU2LDcgKzI1Niw3
IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpyZXRyaWV2ZUNhY2hlRW50cnlJbnRlcm5h
bChzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0NhCiB7CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURf
U1RBVElTVElDUykKICAgICBpZiAoZW50cnktPmhhc1JlYWNoZWRQcmV2YWxlbnRSZXNvdXJjZUFn
ZUNhcCgpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVF
bnRyeTogUmVzb3VyY2UgaGFzIHJlYWNoZWQgcHJldmFsZW50IHJlc291cmNlIGFnZSBjYXAgKHBh
Z2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAl
IiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1f
cGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQs
IG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3Vz
KCkpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6
IFJlc291cmNlIGhhcyByZWFjaGVkIHByZXZhbGVudCByZXNvdXJjZSBhZ2UgY2FwIChwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJ
dTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFt
ZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUlu
dDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNo
cm9ub3VzKCkpOwogICAgICAgICBtX2NhY2hlRW50cnlGb3JNYXhBZ2VDYXBWYWxpZGF0aW9uID0g
V1RGTW92ZShlbnRyeSk7CiAgICAgICAgIFJlc291cmNlUmVxdWVzdCByZXZhbGlkYXRpb25SZXF1
ZXN0ID0gb3JpZ2luYWxSZXF1ZXN0KCk7CiAgICAgICAgIHN0YXJ0TmV0d29ya0xvYWQoV1RGTW92
ZShyZXZhbGlkYXRpb25SZXF1ZXN0KSwgRmlyc3RMb2FkOjpZZXMpOwpAQCAtMjY0LDI4ICsyNjQs
MjggQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRyeUludGVy
bmFsKHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrQ2EKICAgICB9CiAjZW5kaWYKICAgICBpZiAoZW50
cnktPnJlZGlyZWN0UmVxdWVzdCgpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
InJldHJpZXZlQ2FjaGVFbnRyeTogSGFuZGxpbmcgcmVkaXJlY3QgKHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNN
YWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQ
YWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5p
ZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOworICAgICAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IEhhbmRsaW5nIHJlZGly
ZWN0IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJj
ZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAl
ZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJG
cmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJj
ZSgpLCBpc1N5bmNocm9ub3VzKCkpOwogICAgICAgICBkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdEZv
ckNhY2hlRW50cnkoV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShlbnRyeSkpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgIGlmIChtX3BhcmFtZXRlcnMubmVlZHNDZXJ0aWZpY2F0ZUluZm8g
JiYgIWVudHJ5LT5yZXNwb25zZSgpLmNlcnRpZmljYXRlSW5mbygpKSB7Ci0gICAgICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogUmVzb3VyY2UgZG9lcyBub3Qg
aGF2ZSByZXF1aXJlZCBjZXJ0aWZpY2F0ZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9
ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2
NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlz
TWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogUmVzb3VyY2UgZG9lcyBub3QgaGF2ZSByZXF1
aXJlZCBjZXJ0aWZpY2F0ZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5
bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Bh
cmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwg
aXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKICAgICAgICAgc3RhcnROZXR3b3Jr
TG9hZChXVEZNb3ZlKHJlcXVlc3QpLCBGaXJzdExvYWQ6Olllcyk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgaWYgKGVudHJ5LT5uZWVkc1ZhbGlkYXRpb24oKSB8fCByZXF1ZXN0LmNhY2hl
UG9saWN5KCkgPT0gV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xpY3k6OlJlZnJlc2hB
bnlDYWNoZURhdGEpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVD
YWNoZUVudHJ5OiBWYWxpZGF0aW5nIGNhY2hlIGVudHJ5IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJl
c291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlE
LnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRp
ZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKKyAgICAgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNoZUVudHJ5OiBWYWxpZGF0aW5nIGNhY2hlIGVu
dHJ5IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJj
ZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAl
ZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJG
cmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJj
ZSgpLCBpc1N5bmNocm9ub3VzKCkpOwogICAgICAgICB2YWxpZGF0ZUNhY2hlRW50cnkoV1RGTW92
ZShlbnRyeSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogUmV0cmlldmVkIHJlc291cmNlIGZyb20gY2FjaGUg
KHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQg
PSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIs
IG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1l
SUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9u
b3VzKCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTog
UmV0cmlldmVkIHJlc291cmNlIGZyb20gY2FjaGUgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3Vy
Y2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9V
SW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJz
LmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CiAgICAgZGlk
UmV0cmlldmVDYWNoZUVudHJ5KFdURk1vdmUoZW50cnkpKTsKIH0KIAogdm9pZCBOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OnN0YXJ0TmV0d29ya0xvYWQoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwg
Rmlyc3RMb2FkIGxvYWQpCiB7CiAgICAgaWYgKGxvYWQgPT0gRmlyc3RMb2FkOjpZZXMpIHsKLSAg
ICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnROZXR3b3JrTG9hZDogKHBhZ2VJRCA9
ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1
NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1l
dGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFy
YW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOwor
ICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydE5ldHdvcmtMb2FkOiAocGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBS
SXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJh
bWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJ
bnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5j
aHJvbm91cygpKTsKIAogICAgICAgICBjb25zdW1lU2FuZGJveEV4dGVuc2lvbnMoKTsKIApAQCAt
MzA4LDcgKzMwOCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydE5ldHdvcmtM
b2FkKFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEZpcnN0TG9hCiAgICAgfQogICAgIGlmICgh
bmV0d29ya1Nlc3Npb24pIHsKICAgICAgICAgV1RGTG9nQWx3YXlzKCJBdHRlbXB0ZWQgdG8gY3Jl
YXRlIGEgTmV0d29ya0xvYWQgd2l0aCBhIHNlc3Npb24gKGlkPSUiIFBSSXU2NCAiKSB0aGF0IGRv
ZXMgbm90IGV4aXN0LiIsIHBhcmFtZXRlcnMuc2Vzc2lvbklELnNlc3Npb25JRCgpKTsKLSAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgic3RhcnROZXR3b3JrTG9hZDogQXR0ZW1w
dGVkIHRvIGNyZWF0ZSBhIE5ldHdvcmtMb2FkIHdpdGggYSBzZXNzaW9uIHRoYXQgZG9lcyBub3Qg
ZXhpc3QgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIiwgc2Vzc2lvbklEPSUiIFBSSXU2NCAiKSIsIG1fcGFyYW1ldGVy
cy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1l
dGVycy5pZGVudGlmaWVyLCBwYXJhbWV0ZXJzLnNlc3Npb25JRC5zZXNzaW9uSUQoKSk7CisgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoInN0YXJ0TmV0d29ya0xvYWQ6IEF0dGVt
cHRlZCB0byBjcmVhdGUgYSBOZXR3b3JrTG9hZCB3aXRoIGEgc2Vzc2lvbiB0aGF0IGRvZXMgbm90
IGV4aXN0IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNv
dXJjZUlEID0gJSIgUFJJdTY0ICIsIHNlc3Npb25JRD0lIiBQUkl1NjQgIikiLCBtX3BhcmFtZXRl
cnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0
KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBwYXJhbWV0ZXJzLnNlc3Npb25JRC5zZXNzaW9u
SUQoKSk7CiAgICAgICAgIG1fY29ubmVjdGlvbi0+bmV0d29ya1Byb2Nlc3MoKS5sb2dEaWFnbm9z
dGljTWVzc2FnZShtX3BhcmFtZXRlcnMud2ViUGFnZUlELCBXZWJDb3JlOjpEaWFnbm9zdGljTG9n
Z2luZ0tleXM6OmludGVybmFsRXJyb3JLZXkoKSwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzOjppbnZhbGlkU2Vzc2lvbklES2V5KCksIFdlYkNvcmU6OlNob3VsZFNhbXBsZTo6Tm8pOwog
ICAgICAgICBkaWRGYWlsTG9hZGluZyhpbnRlcm5hbEVycm9yKHJlcXVlc3QudXJsKCkpKTsKICAg
ICAgICAgcmV0dXJuOwpAQCAtMzIwLDcgKzMyMCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9h
ZGVyOjpzdGFydE5ldHdvcmtMb2FkKFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEZpcnN0TG9h
CiAgICAgcGFyYW1ldGVycy5yZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KTsKICAgICBtX25ldHdv
cmtMb2FkID0gc3RkOjptYWtlX3VuaXF1ZTxOZXR3b3JrTG9hZD4oKnRoaXMsICZuZXR3b3JrU2Vz
c2lvbi0+YmxvYlJlZ2lzdHJ5KCksIFdURk1vdmUocGFyYW1ldGVycyksICpuZXR3b3JrU2Vzc2lv
bik7CiAKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydE5ldHdvcmtMb2FkOiAocGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUi
IFBSSXU2NCAiLCBkZXNjcmlwdGlvbiA9ICV7cHVibGljfXMpIiwgbV9wYXJhbWV0ZXJzLndlYlBh
Z2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlk
ZW50aWZpZXIsIG1fbmV0d29ya0xvYWQtPmRlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSk7Cisg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnROZXR3b3JrTG9hZDogKHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQg
IiwgZGVzY3JpcHRpb24gPSAle3B1YmxpY31zKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9V
SW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJz
LmlkZW50aWZpZXIsIG1fbmV0d29ya0xvYWQtPmRlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSk7
CiB9CiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjbGVhbnVwKExvYWRSZXN1bHQgcmVz
dWx0KQpAQCAtMzQ0LDcgKzM0NCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjbGVh
bnVwKExvYWRSZXN1bHQgcmVzdWx0KQogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y29u
dmVydFRvRG93bmxvYWQoRG93bmxvYWRJRCBkb3dubG9hZElELCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewotICAgIFJF
TEVBU0VfTE9HKExvYWRpbmcsICJDb252ZXJ0aW5nIE5ldHdvcmtSZXNvdXJjZUxvYWRlciAlcCB0
byBkb3dubG9hZCAlIiBQUkl1NjQgIiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAl
IiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHRoaXMsIGRvd25sb2FkSUQu
ZG93bmxvYWRJRCgpLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1l
dGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CisgICAgUkVMRUFTRV9M
T0coTG9hZGluZywgIkNvbnZlcnRpbmcgTmV0d29ya1Jlc291cmNlTG9hZGVyICVwIHRvIGRvd25s
b2FkICUiIFBSSXU2NCAiIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2
NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgdGhpcywgZG93bmxvYWRJRC5kb3dubG9h
ZElEKCksIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndl
YkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIpOwogICAgIAogICAg
IC8vIFRoaXMgY2FuIGhhcHBlbiBpZiB0aGUgcmVzb3VyY2UgY2FtZSBmcm9tIHRoZSBkaXNrIGNh
Y2hlLgogICAgIGlmICghbV9uZXR3b3JrTG9hZCkgewpAQCAtMzYyLDcgKzM2Miw3IEBAIHZvaWQg
TmV0d29ya1Jlc291cmNlTG9hZGVyOjphYm9ydCgpCiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFp
bigpKTsKIAogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImFib3J0OiBDYW5jZWxpbmcgcmVz
b3VyY2UgbG9hZCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwg
cmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsCi0gICAgICAgIG1fcGFyYW1ldGVycy53ZWJQYWdl
SUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVu
dGlmaWVyKTsKKyAgICAgICAgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Bh
cmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7
CiAKICAgICBpZiAobV9wYXJhbWV0ZXJzLm9wdGlvbnMua2VlcEFsaXZlICYmIG1fcmVzcG9uc2Uu
aXNOdWxsKCkgJiYgIW1faXNLZXB0QWxpdmUpIHsKICAgICAgICAgbV9pc0tlcHRBbGl2ZSA9IHRy
dWU7CkBAIC00NDcsNyArNDQ3LDcgQEAgYm9vbCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNob3Vs
ZEludGVycnVwdExvYWRGb3JDU1BGcmFtZUFuY2VzdG9yc09yWEZyYW1lT3B0aW8KIAogdm9pZCBO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNl
JiYgcmVjZWl2ZWRSZXNwb25zZSwgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNw
b25zZTogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIiwgaHR0cFN0YXR1c0NvZGUgPSAlZCwgbGVuZ3RoID0gJSIgUFJJ
ZDY0ICIpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMu
d2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIHJlY2VpdmVkUmVzcG9uc2UuaHR0
cFN0YXR1c0NvZGUoKSwgcmVjZWl2ZWRSZXNwb25zZS5leHBlY3RlZENvbnRlbnRMZW5ndGgoKSk7
CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiAocGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBS
SXU2NCAiLCBodHRwU3RhdHVzQ29kZSA9ICVkLCBsZW5ndGggPSAlIiBQUklkNjQgIikiLCBtX3Bh
cmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRv
VUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCByZWNlaXZlZFJlc3BvbnNlLmh0dHBT
dGF0dXNDb2RlKCksIHJlY2VpdmVkUmVzcG9uc2UuZXhwZWN0ZWRDb250ZW50TGVuZ3RoKCkpOwog
CiAgICAgbV9yZXNwb25zZSA9IFdURk1vdmUocmVjZWl2ZWRSZXNwb25zZSk7CiAKQEAgLTUyNyw3
ICs1MjcsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNl
KFJlc291cmNlUmVzcG9uc2UmJiByZWNlaXZlZFJlc3Bvbgogdm9pZCBOZXR3b3JrUmVzb3VyY2VM
b2FkZXI6OmRpZFJlY2VpdmVCdWZmZXIoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIsIGludCBy
ZXBvcnRlZEVuY29kZWREYXRhTGVuZ3RoKQogewogICAgIGlmICghbV9udW1CeXRlc1JlY2VpdmVk
KQotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlQnVmZmVyOiBTdGFy
dGVkIHJlY2VpdmluZyBkYXRhIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJ
RC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50
aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlQnVmZmVy
OiBTdGFydGVkIHJlY2VpdmluZyBkYXRhIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9
ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV9wYXJhbWV0ZXJzLndl
YlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBt
X3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CiAgICAgbV9udW1CeXRlc1JlY2VpdmVkICs9IGJ1ZmZl
ci0+c2l6ZSgpOwogCiAgICAgQVNTRVJUKCFtX2NhY2hlRW50cnlGb3JWYWxpZGF0aW9uKTsKQEAg
LTU1Niw3ICs1NTYsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZUJ1
ZmZlcihSZWY8U2hhcmVkQnVmZmVyPiYmIGJ1ZmZlciwgaW50IHJlcAogCiB2b2lkIE5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3Mm
IG5ldHdvcmtMb2FkTWV0cmljcykKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRG
aW5pc2hMb2FkaW5nOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQg
IiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBsZW5ndGggPSAlemQpIiwgbV9wYXJhbWV0ZXJz
LndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0
ZXJzLmlkZW50aWZpZXIsIG1fbnVtQnl0ZXNSZWNlaXZlZCk7CisgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgiZGlkRmluaXNoTG9hZGluZzogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgbGVuZ3RoID0gJXpkKSIs
IG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1l
SUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIG1fbnVtQnl0ZXNSZWNlaXZl
ZCk7CiAKICAgICBpZiAoc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKCkpCiAg
ICAgICAgIG1fY29ubmVjdGlvbi0+YWRkTmV0d29ya0xvYWRJbmZvcm1hdGlvbk1ldHJpY3MoaWRl
bnRpZmllcigpLCBuZXR3b3JrTG9hZE1ldHJpY3MpOwpAQCAtNTkxLDcgKzU5MSw3IEBAIHZvaWQg
TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKGNvbnN0IE5ldHdvcmtMb2Fk
TWV0cmljcyYgbmV0d29ya0xvCiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRGYWls
TG9hZGluZyhjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKLSAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKCJkaWRGYWlsTG9hZGluZzogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNUaW1lb3V0ID0gJWQs
IGlzQ2FuY2VsbGF0aW9uID0gJWQsIGlzQWNjZXNzQ29udHJvbCA9ICVkLCBlcnJDb2RlID0gJWQp
IiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJh
bWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGVycm9yLmlzVGltZW91dCgpLCBlcnJvci5p
c0NhbmNlbGxhdGlvbigpLCBlcnJvci5pc0FjY2Vzc0NvbnRyb2woKSwgZXJyb3IuZXJyb3JDb2Rl
KCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZhaWxMb2FkaW5nOiAocGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBS
SXU2NCAiLCBpc1RpbWVvdXQgPSAlZCwgaXNDYW5jZWxsYXRpb24gPSAlZCwgaXNBY2Nlc3NDb250
cm9sID0gJWQsIGVyckNvZGUgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0
KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVu
dGlmaWVyLCBlcnJvci5pc1RpbWVvdXQoKSwgZXJyb3IuaXNDYW5jZWxsYXRpb24oKSwgZXJyb3Iu
aXNBY2Nlc3NDb250cm9sKCksIGVycm9yLmVycm9yQ29kZSgpKTsKIAogICAgIGlmIChzaG91bGRD
YXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MoKSkKICAgICAgICAgbV9jb25uZWN0aW9uLT5y
ZW1vdmVOZXR3b3JrTG9hZEluZm9ybWF0aW9uKGlkZW50aWZpZXIoKSk7CkBAIC03NTYsNyArNzU2
LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0
KFJlc291cmNlUmVxdWVzdCYmIG5ld1JlcXVlc3QKICAgICAgICAgfQogICAgIH0KIAotICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoImNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0OiAocGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2
NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndl
YkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyKTsKKyAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJjb250aW51ZVdpbGxTZW5kUmVxdWVzdDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3BhcmFt
ZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUlu
dDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyKTsKIAogICAgIG1faXNBbGxvd2VkVG9Bc2tV
c2VyRm9yQ3JlZGVudGlhbHMgPSBpc0FsbG93ZWRUb0Fza1VzZXJGb3JDcmVkZW50aWFsczsKIApA
QCAtMTAxMSwxMiArMTAxMSwxNyBAQCBzdGF0aWMgU3RyaW5nIGVzY2FwZUZvckpTT04oU3RyaW5n
IHMpCiBzdGF0aWMgU3RyaW5nIGVzY2FwZUlERm9ySlNPTihjb25zdCBPcHRpb25hbDx1aW50NjRf
dD4mIHZhbHVlKQogewogICAgIHJldHVybiB2YWx1ZSA/IFN0cmluZzo6bnVtYmVyKHZhbHVlLnZh
bHVlKCkpIDogU3RyaW5nKCJOb25lIl9zKTsKLX07Cit9CisKK3N0YXRpYyBTdHJpbmcgZXNjYXBl
SURGb3JKU09OKGNvbnN0IE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4mIHZhbHVlKQoreworICAg
IHJldHVybiB2YWx1ZSA/IFN0cmluZzo6bnVtYmVyKHZhbHVlLT50b1VJbnQ2NCgpKSA6IFN0cmlu
ZygiTm9uZSJfcyk7Cit9CiAKIHN0YXRpYyBTdHJpbmcgZXNjYXBlSURGb3JKU09OKGNvbnN0IE9w
dGlvbmFsPFBhZ2VJZGVudGlmaWVyPiYgdmFsdWUpCiB7CiAgICAgcmV0dXJuIHZhbHVlID8gU3Ry
aW5nOjpudW1iZXIodmFsdWUtPnRvVUludDY0KCkpIDogU3RyaW5nKCJOb25lIl9zKTsKLX07Cit9
CiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpsb2dDb29raWVJbmZvcm1hdGlvbigpIGNv
bnN0CiB7CkBAIC0xMDI4LDcgKzEwMzMsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
bG9nQ29va2llSW5mb3JtYXRpb24oKSBjb25zdAogICAgIGxvZ0Nvb2tpZUluZm9ybWF0aW9uKG1f
Y29ubmVjdGlvbiwgIk5ldHdvcmtSZXNvdXJjZUxvYWRlciIsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3Qgdm9pZCo+KHRoaXMpLCAqbmV0d29ya1N0b3JhZ2VTZXNzaW9uLCBvcmlnaW5hbFJlcXVlc3Qo
KS5maXJzdFBhcnR5Rm9yQ29va2llcygpLCBTYW1lU2l0ZUluZm86OmNyZWF0ZShvcmlnaW5hbFJl
cXVlc3QoKSksIG9yaWdpbmFsUmVxdWVzdCgpLnVybCgpLCBvcmlnaW5hbFJlcXVlc3QoKS5odHRw
UmVmZXJyZXIoKSwgZnJhbWVJRCgpLCBwYWdlSUQoKSwgaWRlbnRpZmllcigpKTsKIH0KIAotc3Rh
dGljIHZvaWQgbG9nQmxvY2tlZENvb2tpZUluZm9ybWF0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2b2lkKiBs
b2dnZWRPYmplY3QsIGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgbmV0d29y
a1N0b3JhZ2VTZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5m
byYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwg
T3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdl
SUQsIE9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyKQorc3RhdGljIHZvaWQgbG9nQmxvY2tl
ZENvb2tpZUluZm9ybWF0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0
aW9uLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2b2lkKiBsb2dnZWRPYmplY3QsIGNvbnN0
IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLCBj
b25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBj
b25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgT3B0aW9uYWw8RnJhbWVJZGVu
dGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBPcHRpb25h
bDx1aW50NjRfdD4gaWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQoTmV0d29ya1Jlc291cmNlTG9h
ZGVyOjpzaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbihjb25uZWN0aW9uLCBuZXR3b3JrU3RvcmFn
ZVNlc3Npb24uc2Vzc2lvbklEKCkpKTsKIApAQCAtMTA1NSw3ICsxMDYwLDcgQEAgc3RhdGljIHZv
aWQgbG9nQmxvY2tlZENvb2tpZUluZm9ybWF0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzJiBjb25uZWN0aW8KICN1bmRlZiBMT0NBTF9MT0dfSUZfQUxMT1dFRAogfQogCi1zdGF0aWMg
dm9pZCBsb2dDb29raWVJbmZvcm1hdGlvbkludGVybmFsKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzJiBjb25uZWN0aW9uLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2b2lkKiBsb2dn
ZWRPYmplY3QsIGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgbmV0d29ya1N0
b3JhZ2VTZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVT
aXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZl
cnJlciwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVy
PiBwYWdlSUQsIE9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyKQorc3RhdGljIHZvaWQgbG9n
Q29va2llSW5mb3JtYXRpb25JbnRlcm5hbChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYg
Y29ubmVjdGlvbiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0
LCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIG5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8m
IHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIE9w
dGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+
IHBhZ2VJRCwgT3B0aW9uYWw8dWludDY0X3Q+IGlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKE5l
dHdvcmtSZXNvdXJjZUxvYWRlcjo6c2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oY29ubmVjdGlv
biwgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLnNlc3Npb25JRCgpKSk7CiAKQEAgLTExMTYsNyArMTEy
MSw3IEBAIHN0YXRpYyB2b2lkIGxvZ0Nvb2tpZUluZm9ybWF0aW9uSW50ZXJuYWwoTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3RpCiAjdW5kZWYgTE9DQUxfTE9HX0lGX0FMTE9X
RUQKIH0KIAotdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmxvZ0Nvb2tpZUluZm9ybWF0aW9u
KE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBjb25zdCBTdHJpbmcm
IGxhYmVsLCBjb25zdCB2b2lkKiBsb2dnZWRPYmplY3QsIGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiYgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5n
JiByZWZlcnJlciwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiBwYWdlSUQsIE9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyKQordm9pZCBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uKE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2b2lk
KiBsb2dnZWRPYmplY3QsIGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgbmV0d29ya1N0b3Jh
Z2VTZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2Ft
ZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgT3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFn
ZUlELCBPcHRpb25hbDx1aW50NjRfdD4gaWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQoc2hvdWxk
TG9nQ29va2llSW5mb3JtYXRpb24oY29ubmVjdGlvbiwgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLnNl
c3Npb25JRCgpKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Jlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5oCmluZGV4IDYyYzY1Y2RkZmY3Y2EwYjIwYTFjMTkwOTliOWY3
MTVmYWU0NTRhOGUuLjc0OTJkZjMyZjc5OTZlMDkwM2JlOTBkYTAwNWU5YjE0NmRhMTVmYmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9h
ZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkZXIuaApAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MmIGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX2Nv
bm5lY3Rpb247IH0KICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVy
biBtX3BhcmFtZXRlcnMuc2Vzc2lvbklEOyB9CiAgICAgUmVzb3VyY2VMb2FkSWRlbnRpZmllciBp
ZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXI7IH0KLSAg
ICB1aW50NjRfdCBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLndlYkZyYW1l
SUQ7IH0KKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNvbnN0IHsgcmV0
dXJuIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlEOyB9CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIgcGFnZUlEKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRDsgfQogCiAg
ICAgc3RydWN0IFN5bmNocm9ub3VzTG9hZERhdGE7CkBAIC0xMTIsNyArMTEyLDcgQEAgcHVibGlj
OgogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykgJiYgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECiAgICAgc3RhdGljIGJvb2wgc2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBjb25zdCBQQUw6OlNlc3Npb25JRCYpOwotICAg
IHN0YXRpYyB2b2lkIGxvZ0Nvb2tpZUluZm9ybWF0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzJiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBj
b25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmlu
ZyYgcmVmZXJyZXIsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcj4sIE9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyKTsKKyAgICBz
dGF0aWMgdm9pZCBsb2dDb29raWVJbmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29u
c3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcm
IHJlZmVycmVyLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIE9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyKTsK
ICNlbmRpZgogCiAgICAgdm9pZCBkaXNhYmxlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3NDYXB0dXJl
KCkgeyBtX3Nob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyA9IGZhbHNlOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNo
ZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaApp
bmRleCBkOTRmYzczODBmMTlhNWY1ZjViNzhlYTM5ZWYxZDY1YTkyMTFlZTRmLi44NWQxMDBjYTZj
N2MwNWZiOGMzZDEyZDAzYTQ0MDI4MTEwMzk1ZWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNp
bmNsdWRlICJOZXR3b3JrQ2FjaGVFbnRyeS5oIgogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZVN0b3Jh
Z2UuaCIKICNpbmNsdWRlICJTaGFyZWFibGVSZXNvdXJjZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
RnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgogI2luY2x1ZGUgPHd0Zi9Db21w
bGV0aW9uSGFuZGxlci5oPgpAQCAtODUsNyArODYsNyBAQCBlbnVtIGNsYXNzIFVzZURlY2lzaW9u
IHsKICAgICBOb0R1ZVRvRXhwaXJlZFJlZGlyZWN0CiB9OwogCi11c2luZyBHbG9iYWxGcmFtZUlE
ID0gc3RkOjpwYWlyPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCAvKndlYkZyYW1l
SUQqLz47Cit1c2luZyBHbG9iYWxGcmFtZUlEID0gc3RkOjpwYWlyPFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+OyAvLyBGSVhNRTogVXNlIEdsb2JhbEZy
YW1lSWRlbnRpZmllci4KIAogZW51bSBjbGFzcyBDYWNoZU9wdGlvbiA6IHVpbnQ4X3QgewogICAg
IC8vIEluIHRlc3RpbmcgbW9kZSB3ZSB0cnkgdG8gZWxpbWluYXRlIHNvdXJjZXMgb2YgcmFuZG9t
bmVzcy4gQ2FjaGUgZG9lcyBub3Qgc2hyaW5rIGFuZCB0aGVyZSBhcmUgbm8gcmVhZCB0aW1lb3V0
cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a0RhdGFUYXNrQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya0RhdGFUYXNrQ29jb2EuaAppbmRleCAyNzkzNTc1MzViZTFlODRhMTNkMzFmZjdmYzMyZWM4
MmU2OWVkYjhmLi40M2FkNmYxZGU0MWM1MTYxZGQ5ZGIzYjY5YWY5MWNhM2Y3YWIyNDMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFz
a0NvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
RGF0YVRhc2tDb2NvYS5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIE5ldHdvcmtTZXNzaW9uQ29j
b2E7CiBjbGFzcyBOZXR3b3JrRGF0YVRhc2tDb2NvYSBmaW5hbCA6IHB1YmxpYyBOZXR3b3JrRGF0
YVRhc2sgewogICAgIGZyaWVuZCBjbGFzcyBOZXR3b3JrU2Vzc2lvbkNvY29hOwogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8TmV0d29ya0RhdGFUYXNrPiBjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNl
c3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250
ZW50U25pZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNob3VsZENv
bnRlbnRFbmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5LCBib29sIGRhdGFU
YXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBib29sIGRhdGFUYXNrSXNGb3JNYWluUmVzb3Vy
Y2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+
IG5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpCisgICAgc3RhdGljIFJlZjxOZXR3b3JrRGF0YVRhc2s+
IGNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBj
bGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwg
V2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ks
IFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIFdlYkNv
cmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRFbmNvZGluZ1Nu
aWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNv
bm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJh
bWVOYXZpZ2F0aW9uLCBib29sIGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9y
QW55RnJhbWUsIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+IG5ldHdvcmtBY3Rpdml0
eVRyYWNrZXIpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrRGF0
YVRhc2tDb2NvYShzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3QsIGZyYW1lSUQsIHBhZ2VJRCwgc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENvbnRlbnRTbmlmZiwgc2hvdWxkQ29udGVudEVu
Y29kaW5nU25pZmYsIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHNo
b3VsZFByZWNvbm5lY3RPbmx5LCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgZGF0
YVRhc2tJc0Zvck1haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSwgbmV0d29ya0FjdGl2
aXR5VHJhY2tlcikpOwogICAgIH0KQEAgLTY5LDEzICs2OSwxMyBAQCBwdWJsaWM6CiAKICAgICBX
ZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMb2FkTWV0cmljcygpIHsgcmV0dXJu
IG1fbmV0d29ya0xvYWRNZXRyaWNzOyB9CiAKLSAgICB1aW50NjRfdCBmcmFtZUlEKCkgY29uc3Qg
eyByZXR1cm4gbV9mcmFtZUlEOyB9OworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9OwogICAgIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUlEOyB9OwogCiAgICAgU3RyaW5n
IGRlc2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgTmV0d29ya0Rh
dGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6
OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQ
b2xpY3ksIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJl
Y29ubmVjdE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24sIGJvb2wg
ZGF0YVRhc2tJc0Zvck1haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSwgT3B0aW9uYWw8
TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4pOworICAgIE5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdv
cmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRT
bmlmZmluZ1BvbGljeSwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIGJv
b2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9u
bHksIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24sIGJvb2wgZGF0YVRhc2tJ
c0Zvck1haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSwgT3B0aW9uYWw8TmV0d29ya0Fj
dGl2aXR5VHJhY2tlcj4pOwogCiAgICAgYm9vbCB0cnlQYXNzd29yZEJhc2VkQXV0aGVudGljYXRp
b24oY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21w
bGV0aW9uSGFuZGxlciYpOwogICAgIHZvaWQgYXBwbHlTbmlmZmluZ1BvbGljaWVzQW5kQmluZFJl
cXVlc3RUb0luZmVyZmFjZUlmTmVlZGVkKF9fc3Ryb25nIE5TVVJMUmVxdWVzdComLCBib29sIHNo
b3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZik7CkBAIC05
Miw3ICs5Miw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IG1fc2Fu
ZGJveEV4dGVuc2lvbjsKICAgICBSZXRhaW5QdHI8TlNVUkxTZXNzaW9uRGF0YVRhc2s+IG1fdGFz
azsKICAgICBXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3MgbV9uZXR3b3JrTG9hZE1ldHJpY3M7
Ci0gICAgdWludDY0X3QgbV9mcmFtZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBt
X2ZyYW1lSUQ7CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV9wYWdlSUQ7CiAKICNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KaW5kZXgg
NDJlN2FjZTQyNGIyYWI4YmIwMGEzN2M5NjNlYTk3ZDQ0MTMxNWFlMC4uYzJlN2IzNjg1NGU3Mzk1
Y2I2OTMwZDZlMjU3NDhjNGJhZDYwMTIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCkBAIC0xNzAs
NyArMTcwLDcgQEAgc3RhdGljIGlubGluZSBib29sIGNvbXB1dGVJc0Fsd2F5c09uTG9nZ2luZ0Fs
bG93ZWQoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24pCiAgICAgcmV0dXJuIHNlc3Npb24uc2Vzc2lv
bklEKCkuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCk7CiB9CiAKLU5ldHdvcmtEYXRhVGFza0Nv
Y29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29y
a0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdFdpdGhDcmVkZW50aWFscywgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRD
cmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENv
bnRlbnRTbmlmZiwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgc2hvdWxk
Q29udGVudEVuY29kaW5nU25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hU
VFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHksIGJvb2wgZGF0
YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24sIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5SZXNv
dXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSwgT3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tl
cj4gbmV0d29ya0FjdGl2aXR5VHJhY2tlcikKK05ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3Jr
RGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xp
ZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdFdpdGhD
cmVkZW50aWFscywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91
bGRDb250ZW50U25pZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNo
b3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBT
VG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5LCBib29s
IGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBib29sIGRhdGFUYXNrSXNGb3JNYWlu
UmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRy
YWNrZXI+IG5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpCiAgICAgOiBOZXR3b3JrRGF0YVRhc2soc2Vz
c2lvbiwgY2xpZW50LCByZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCBzdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgZGF0YVRhc2tJ
c0Zvck1haW5GcmFtZU5hdmlnYXRpb24pCiAgICAgLCBtX2ZyYW1lSUQoZnJhbWVJRCkKICAgICAs
IG1fcGFnZUlEKHBhZ2VJRCkKQEAgLTI1Niw3ICsyNTYsNyBAQCBOZXR3b3JrRGF0YVRhc2tDb2Nv
YTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtE
YXRhVAogICAgIGlmIChzaG91bGRCbG9ja0Nvb2tpZXMpIHsKICNpZiAhUkVMRUFTRV9MT0dfRElT
QUJMRUQKICAgICAgICAgaWYgKG1fc2Vzc2lvbi0+c2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24o
KSkKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgp
LCBOZXR3b3JrLCAiJXAgLSBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6bG9nQ29va2llSW5mb3JtYXRp
b246IHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCB0YXNrSUQgPSAlbHU6IEJsb2NraW5n
IGNvb2tpZXMgZm9yIFVSTCAlcyIsIHRoaXMsIHBhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELCAo
dW5zaWduZWQgbG9uZylbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgbnNSZXF1ZXN0LlVSTC5hYnNv
bHV0ZVN0cmluZy5VVEY4U3RyaW5nKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGKGlzQWx3
YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3b3JrLCAiJXAgLSBOZXR3b3JrRGF0YVRhc2tDb2Nv
YTo6bG9nQ29va2llSW5mb3JtYXRpb246IHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCB0
YXNrSUQgPSAlbHU6IEJsb2NraW5nIGNvb2tpZXMgZm9yIFVSTCAlcyIsIHRoaXMsIHBhZ2VJRC50
b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCksICh1bnNpZ25lZCBsb25nKVttX3Rhc2sgdGFz
a0lkZW50aWZpZXJdLCBuc1JlcXVlc3QuVVJMLmFic29sdXRlU3RyaW5nLlVURjhTdHJpbmcpOwog
I2Vsc2UKICAgICAgICAgTE9HKE5ldHdvcmtTZXNzaW9uLCAiJWxsdSBCbG9ja2luZyBjb29raWVz
IGZvciBVUkwgJXMiLCBbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgbnNSZXF1ZXN0LlVSTC5hYnNv
bHV0ZVN0cmluZy5VVEY4U3RyaW5nKTsKICNlbmRpZgpAQCAtMzkwLDcgKzM5MCw3IEBAIHZvaWQg
TmV0d29ya0RhdGFUYXNrQ29jb2E6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmCiAgICAgfQogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAg
IGlmIChtX3Nlc3Npb24tPnNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKCkpCi0gICAgICAgIFJF
TEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3b3JrLCAiJXAgLSBO
ZXR3b3JrRGF0YVRhc2tDb2NvYTo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb246OmxvZ0Nvb2tp
ZUluZm9ybWF0aW9uOiBwYWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwgdGFza0lEID0gJWx1
OiAlcyBjb29raWVzIGZvciByZWRpcmVjdCBVUkwgJXMiLCB0aGlzLCBtX3BhZ2VJRC50b1VJbnQ2
NCgpLCBtX2ZyYW1lSUQsICh1bnNpZ25lZCBsb25nKVttX3Rhc2sgdGFza0lkZW50aWZpZXJdLCAo
bV9oYXNCZWVuU2V0VG9Vc2VTdGF0ZWxlc3NDb29raWVTdG9yYWdlID8gIkJsb2NraW5nIiA6ICJO
b3QgYmxvY2tpbmciKSwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAg
ICAgICAgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdvcmss
ICIlcCAtIE5ldHdvcmtEYXRhVGFza0NvY29hOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbjo6
bG9nQ29va2llSW5mb3JtYXRpb246IHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCB0YXNr
SUQgPSAlbHU6ICVzIGNvb2tpZXMgZm9yIHJlZGlyZWN0IFVSTCAlcyIsIHRoaXMsIG1fcGFnZUlE
LnRvVUludDY0KCksIG1fZnJhbWVJRC50b1VJbnQ2NCgpLCAodW5zaWduZWQgbG9uZylbbV90YXNr
IHRhc2tJZGVudGlmaWVyXSwgKG1faGFzQmVlblNldFRvVXNlU3RhdGVsZXNzQ29va2llU3RvcmFn
ZSA/ICJCbG9ja2luZyIgOiAiTm90IGJsb2NraW5nIiksIHJlcXVlc3QudXJsKCkuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7CiAjZWxzZQogICAgIExPRyhOZXR3b3JrU2Vzc2lvbiwgIiVsbHUgJXMg
Y29va2llcyBmb3IgcmVkaXJlY3QgVVJMICVzIiwgW21fdGFzayB0YXNrSWRlbnRpZmllcl0sICht
X2hhc0JlZW5TZXRUb1VzZVN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2UgPyAiQmxvY2tpbmciIDogIk5v
dCBibG9ja2luZyIpLCByZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCBmMGVjOGRj
MWI3MTY5YmNjYTU1YTY1NDkxMmVkMmZlZjUzNzBkZjEwLi5jMDFlODk1OWU4MDdmZjYyNGVmODU3
N2ViMzU1NjVlNDJkOTNhM2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkKQEAgLTIwNSw2ICsyMDUsNyBAQCBkZWYgZm9yd2FyZF9kZWNsYXJhdGlvbnNfYW5kX2hl
YWRlcnMocmVjZWl2ZXIpOgogICAgICAgICAnU3RyaW5nJywKICAgICAgICAgJ1dlYkNvcmU6OkRv
Y3VtZW50SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpGZXRjaElkZW50aWZpZXInLAor
ICAgICAgICAnV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlBvaW50ZXJJRCcsCiAgICAgICAgICdX
ZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcicsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQ
SUZyYW1lSGFuZGxlLmNwcAppbmRleCA3OTY0NmFjNmU1OWM0MWQ0ZGY3MDkwMWRiYTdlMjY3NTMz
NmQ1MjRhLi40MDgwMTM4ODU0OGExODExYWI1OWU1Y2IyNDVhMTE1MjExNDJiZWZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5jcHAKQEAgLTMxLDE3ICszMSwx
NyBAQAogCiBuYW1lc3BhY2UgQVBJIHsKIAotUmVmPEZyYW1lSGFuZGxlPiBGcmFtZUhhbmRsZTo6
Y3JlYXRlKHVpbnQ2NF90IGZyYW1lSUQpCitSZWY8RnJhbWVIYW5kbGU+IEZyYW1lSGFuZGxlOjpj
cmVhdGUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgRnJhbWVIYW5kbGUoZnJhbWVJRCwgZmFsc2UpKTsKIH0KIAotUmVmPEZyYW1l
SGFuZGxlPiBGcmFtZUhhbmRsZTo6Y3JlYXRlQXV0b2NvbnZlcnRpbmcodWludDY0X3QgZnJhbWVJ
RCkKK1JlZjxGcmFtZUhhbmRsZT4gRnJhbWVIYW5kbGU6OmNyZWF0ZUF1dG9jb252ZXJ0aW5nKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEZyYW1lSGFuZGxlKGZyYW1lSUQsIHRydWUpKTsKIH0KIAotRnJhbWVIYW5kbGU6OkZyYW1l
SGFuZGxlKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNBdXRvY29udmVydGluZykKK0ZyYW1lSGFu
ZGxlOjpGcmFtZUhhbmRsZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCBp
c0F1dG9jb252ZXJ0aW5nKQogICAgIDogbV9mcmFtZUlEKGZyYW1lSUQpCiAgICAgLCBtX2lzQXV0
b2NvbnZlcnRpbmcoaXNBdXRvY29udmVydGluZykKIHsKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBG
cmFtZUhhbmRsZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIAogYm9vbCBG
cmFtZUhhbmRsZTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPE9iamVjdD4m
IHJlc3VsdCkKIHsKLSAgICB1aW50NjRfdCBmcmFtZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBmcmFtZUlEOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZnJhbWVJRCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJ
L0FQSUZyYW1lSGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5k
bGUuaAppbmRleCBiMTBlODA4YTRiMTlhZDMxM2Q4YjQ1NWMyM2I5ZDgzOTljYzM4NTUwLi4xYzY0
YTRhZDFlODAyYTA0NjcyOTgxYmNiZjhhNzYwMTY0MjVmZmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBBUElG
cmFtZUhhbmRsZV9oCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIAogbmFtZXNwYWNlIElQ
QyB7CkBAIC0zOCwyMCArMzksMjAgQEAgbmFtZXNwYWNlIEFQSSB7CiAKIGNsYXNzIEZyYW1lSGFu
ZGxlIDogcHVibGljIE9iamVjdEltcGw8T2JqZWN0OjpUeXBlOjpGcmFtZUhhbmRsZT4gewogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8RnJhbWVIYW5kbGU+IGNyZWF0ZSh1aW50NjRfdCBmcmFtZUlE
KTsKLSAgICBzdGF0aWMgUmVmPEZyYW1lSGFuZGxlPiBjcmVhdGVBdXRvY29udmVydGluZyh1aW50
NjRfdCBmcmFtZUlEKTsKKyAgICBzdGF0aWMgUmVmPEZyYW1lSGFuZGxlPiBjcmVhdGUoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICBzdGF0aWMgUmVmPEZyYW1lSGFuZGxlPiBjcmVhdGVB
dXRvY29udmVydGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogCi0gICAgZXhwbGljaXQg
RnJhbWVIYW5kbGUodWludDY0X3QgZnJhbWVJRCwgYm9vbCBpc0F1dG9jb252ZXJ0aW5nKTsKKyAg
ICBleHBsaWNpdCBGcmFtZUhhbmRsZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGJvb2wgaXNB
dXRvY29udmVydGluZyk7CiAgICAgdmlydHVhbCB+RnJhbWVIYW5kbGUoKTsKIAotICAgIHVpbnQ2
NF90IGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQogICAg
IGJvb2wgaXNBdXRvY29udmVydGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNBdXRvY29udmVydGlu
ZzsgfQogCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGlj
IGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFJlZlB0cjxPYmplY3Q+Jik7CiAKIHByaXZhdGU6
Ci0gICAgY29uc3QgdWludDY0X3QgbV9mcmFtZUlEOworICAgIGNvbnN0IFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBtX2ZyYW1lSUQ7CiAgICAgY29uc3QgYm9vbCBtX2lzQXV0b2NvbnZlcnRpbmc7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLRnJh
bWVIYW5kbGUubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5k
bGUubW0KaW5kZXggYTQxYTYxM2E3ZDM3MWQ3YWUyYTczZTQwNTgyN2IwYWJkNzM1NzA3MC4uZWRj
YjM4ZTYzNWE3YmYwOTI3YjExMGNjN2Q0Y2Y5NzY2YWI1ZDA4MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS0ZyYW1lSGFuZGxlLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5tbQpAQCAtMjYsNiArMjYsOCBA
QAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJfV0tGcmFtZUhhbmRsZUludGVybmFsLmgi
CiAKKyNpbXBvcnQgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CisKIEBpbXBsZW1lbnRhdGlv
biBfV0tGcmFtZUhhbmRsZSB7CiAgICAgQVBJOjpPYmplY3RTdG9yYWdlPEFQSTo6RnJhbWVIYW5k
bGU+IF9mcmFtZUhhbmRsZTsKIH0KQEAgLTUwLDEyICs1MiwxMiBAQCAtIChCT09MKWlzRXF1YWw6
KGlkKW9iamVjdAogCiAtIChOU1VJbnRlZ2VyKWhhc2gKIHsKLSAgICByZXR1cm4gX2ZyYW1lSGFu
ZGxlLT5mcmFtZUlEKCk7CisgICAgcmV0dXJuIF9mcmFtZUhhbmRsZS0+ZnJhbWVJRCgpLnRvVUlu
dDY0KCk7CiB9CiAKIC0gKHVpbnQ2NF90KV9mcmFtZUlECiB7Ci0gICAgcmV0dXJuIF9mcmFtZUhh
bmRsZS0+ZnJhbWVJRCgpOworICAgIHJldHVybiBfZnJhbWVIYW5kbGUtPmZyYW1lSUQoKS50b1VJ
bnQ2NCgpOwogfQogCiAjcHJhZ21hIG1hcmsgTlNDb3B5aW5nIHByb3RvY29sIGltcGxlbWVudGF0
aW9uCkBAIC04MywxNCArODUsMTQgQEAgLSAoaWQpaW5pdFdpdGhDb2RlcjooTlNDb2RlciAqKWRl
Y29kZXIKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9CiAKLSAgICBBUEk6Ok9iamVjdDo6Y29u
c3RydWN0SW5XcmFwcGVyPEFQSTo6RnJhbWVIYW5kbGU+KHNlbGYsIGZyYW1lSUQudW5zaWduZWRM
b25nTG9uZ1ZhbHVlLCBmYWxzZSk7CisgICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBl
cjxBUEk6OkZyYW1lSGFuZGxlPihzZWxmLCBXZWJDb3JlOjpmcmFtZUlkZW50aWZpZXJGcm9tSUQo
ZnJhbWVJRC51bnNpZ25lZExvbmdMb25nVmFsdWUpLCBmYWxzZSk7CiAKICAgICByZXR1cm4gc2Vs
ZjsKIH0KIAogLSAodm9pZCllbmNvZGVXaXRoQ29kZXI6KE5TQ29kZXIgKiljb2RlcgogewotICAg
IFtjb2RlciBlbmNvZGVPYmplY3Q6QChfZnJhbWVIYW5kbGUtPmZyYW1lSUQoKSkgZm9yS2V5OkAi
ZnJhbWVJRCJdOworICAgIFtjb2RlciBlbmNvZGVPYmplY3Q6QChbc2VsZiBfZnJhbWVJRF0pIGZv
cktleTpAImZyYW1lSUQiXTsKIH0KIAogI3ByYWdtYSBtYXJrIFdLT2JqZWN0IHByb3RvY29sIGlt
cGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcAppbmRleCA5ZGViNzZmZjEzMmM2
Y2I1ZmRmNWViZjUyMjIzNGY2ZDQ0M2VmOTRkLi4zOGE1YmZmNmFmZDI1NzFkNTJkY2U0YzA5ODA0
YWE3NTQ0YWJlNGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAKQEAgLTEwOCw3ICsxMDgs
NyBAQCBWZWN0b3I8dWludDY0X3Q+IEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6Y29hbGVzY2VDaGFs
bGVuZ2VzTWF0Y2hpbmcodWludDY0X3QgY2hhbAogICAgIHJldHVybiBjaGFsbGVuZ2VzVG9Db2Fs
ZXNjZTsKIH0KIAotdm9pZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwg
Q2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgQXV0
aGVudGljYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUGFn
ZUlkZW50aWZpZXIgcGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBDaGFsbGVuZ2VDb21w
bGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChwYWdlSUQp
OwogICAgIEFTU0VSVChmcmFtZUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgKaW5kZXggODZlNzQ0
YzEwOGRmNGNiY2Y1ZDA0NzYwOWFjZjk2YzY4MjNkNmIxNi4uNDAzNmVhYjc3ZmQ5Y2UxNTU1MzBm
YjZhNGNjNTYxNjgzZDdlZDkxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgKQEAgLTI5LDYgKzI5
LDcgQEAKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1N1cHBsZW1lbnQuaCIKICNpbmNsdWRlICJX
ZWJQcm9jZXNzU3VwcGxlbWVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhh
bmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtNjEsNyArNjIsNyBAQCBwdWJs
aWM6CiAKICAgICBzdGF0aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUoKTsKIAotICAgIHZv
aWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYpOworICAgIHZvaWQgZGlkUmVjZWl2
ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
JiwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UoSVBDOjpNZXNzYWdlU2VuZGVyJiBkb3dubG9hZCwgY29uc3Qg
V2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFu
ZGxlciYmKTsKIAogICAgIHZvaWQgY29tcGxldGVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh1aW50
NjRfdCBjaGFsbGVuZ2VJRCwgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbiwgV2Vi
Q29yZTo6Q3JlZGVudGlhbCYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Zy
YW1lSW5mb0RhdGEuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRnJhbWVJbmZvRGF0YS5jcHAK
aW5kZXggOTQ0MjM3NDU2NTgxNmY0ZTg4MDQwZmYwODRlMGMxYTNiZTUzMWZmNC4uM2U5ZDcyZWFk
NTNjNTgzMmM0MzMxNzM0YjcwNzQxZmRiMzRhMjEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvRnJhbWVJbmZvRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRnJh
bWVJbmZvRGF0YS5jcHAKQEAgLTQ5LDggKzQ5LDEyIEBAIGJvb2wgRnJhbWVJbmZvRGF0YTo6ZGVj
b2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgRnJhbWVJbmZvRGF0YSYgcmVzdWx0KQogICAgIGlm
ICghc2VjdXJpdHlPcmlnaW4pCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXN1bHQuc2Vj
dXJpdHlPcmlnaW4gPSBXVEZNb3ZlKCpzZWN1cml0eU9yaWdpbik7Ci0gICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQuZnJhbWVJRCkpCisgICAgCisgICAgT3B0aW9uYWw8T3B0aW9uYWw8RnJh
bWVJZGVudGlmaWVyPj4gZnJhbWVJRDsKKyAgICBkZWNvZGVyID4+IGZyYW1lSUQ7CisgICAgaWYg
KCFmcmFtZUlEKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmVzdWx0LmZyYW1lSUQgPSBX
VEZNb3ZlKCpmcmFtZUlEKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvRnJhbWVJbmZvRGF0YS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
RnJhbWVJbmZvRGF0YS5oCmluZGV4IGE4MjgzNjg2ZjE2YWIzY2QzNTI0OWNlNzA1ZDNmMmI4ZTdi
YjNjNjYuLjUzODcxNmViMjFlYjU0MGE0MTc3OWM3ZTZiOGZmZDQzNTJmYmMxM2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9GcmFtZUluZm9EYXRhLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBv
bmNlCiAKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdp
bkRhdGEuaD4KIApAQCAtNDIsNyArNDMsNyBAQCBzdHJ1Y3QgRnJhbWVJbmZvRGF0YSB7CiAgICAg
Ym9vbCBpc01haW5GcmFtZSB7IGZhbHNlIH07CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
IHJlcXVlc3Q7CiAgICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHNlY3VyaXR5T3JpZ2lu
OwotICAgIHVpbnQ2NF90IGZyYW1lSUQgeyAwIH07CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyPiBmcmFtZUlEOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSUZyYW1lSW5mby5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJRnJhbWVJbmZvLmNwcAppbmRleCA5NmIxM2QxNzg1NDQ1YzM5NzMzYjJmMDQ4YTYw
ZjIwMjE1MDhjOGM4Li44Mjk3MjhiOTFkNjFhYTI2MDQ3NWUyYTFjOTFkMjQyMGU5Nzg2MGZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJRnJhbWVJbmZvLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJRnJhbWVJbmZvLmNwcApAQCAtNTUs
NyArNTUsNyBAQCBGcmFtZUluZm86OkZyYW1lSW5mbyhjb25zdCBXZWJLaXQ6OkZyYW1lSW5mb0Rh
dGEmIGZyYW1lSW5mb0RhdGEsIFdlYktpdDo6V2ViUGFnZQogICAgIDogbV9pc01haW5GcmFtZSB7
IGZyYW1lSW5mb0RhdGEuaXNNYWluRnJhbWUgfQogICAgICwgbV9yZXF1ZXN0IHsgZnJhbWVJbmZv
RGF0YS5yZXF1ZXN0IH0KICAgICAsIG1fc2VjdXJpdHlPcmlnaW4geyBTZWN1cml0eU9yaWdpbjo6
Y3JlYXRlKGZyYW1lSW5mb0RhdGEuc2VjdXJpdHlPcmlnaW4uc2VjdXJpdHlPcmlnaW4oKSkgfQot
ICAgICwgbV9oYW5kbGUgeyBBUEk6OkZyYW1lSGFuZGxlOjpjcmVhdGUoZnJhbWVJbmZvRGF0YS5m
cmFtZUlEKSB9CisgICAgLCBtX2hhbmRsZSB7IEFQSTo6RnJhbWVIYW5kbGU6OmNyZWF0ZShmcmFt
ZUluZm9EYXRhLmZyYW1lSUQgPyAqZnJhbWVJbmZvRGF0YS5mcmFtZUlEIDogV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyeyB9KSB9CiAgICAgLCBtX3BhZ2UgeyBtYWtlUmVmUHRyKHBhZ2UpIH0KIHsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVIYW5k
bGVSZWYuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tGcmFtZUhhbmRsZVJl
Zi5jcHAKaW5kZXggYjM5ZmNhMWJlNTdmMGQyNzRkODQ1N2YwNDNmNTBlYWI2MmYyM2M1OC4uZTg3
M2ZjNDY1MWQ1MjY5Mzg5MzY5ZmM2MGE3ODAyNjU0MjA1ZGQ3YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tGcmFtZUhhbmRsZVJlZi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tGcmFtZUhhbmRsZVJlZi5jcHAKQEAgLTM4LDUgKzM4
LDUgQEAgV0tUeXBlSUQgV0tGcmFtZUhhbmRsZUdldFR5cGVJRCgpCiAKIHVpbnQ2NF90IFdLRnJh
bWVIYW5kbGVHZXRGcmFtZUlEKFdLRnJhbWVIYW5kbGVSZWYgZnJhbWVIYW5kbGVSZWYpCiB7Ci0g
ICAgcmV0dXJuIHRvSW1wbChmcmFtZUhhbmRsZVJlZiktPmZyYW1lSUQoKTsKKyAgICByZXR1cm4g
dG9JbXBsKGZyYW1lSGFuZGxlUmVmKS0+ZnJhbWVJRCgpLnRvVUludDY0KCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAwMzkxYTE5
OTJlMzUzMmRiZTVmMjFkYjY5MWRkODEwOGFhZTJhNjZjLi4wOTUxZTk0NDM3YmNlNDY2NWQ2MTVi
ZDA0MGQyNmRmMjBiNjRkZjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KQEAgLTY2MjEsNyArNjYyMSw3IEBAIC0gKE5TUHJpbnRPcGVyYXRp
b24gKilfcHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvOihOU1ByaW50SW5mbyAqKXByaW50SW5m
bwogCiAtIChOU1ByaW50T3BlcmF0aW9uICopX3ByaW50T3BlcmF0aW9uV2l0aFByaW50SW5mbzoo
TlNQcmludEluZm8gKilwcmludEluZm8gZm9yRnJhbWU6KF9XS0ZyYW1lSGFuZGxlICopZnJhbWVI
YW5kbGUKIHsKLSAgICBpZiAoYXV0byogd2ViRnJhbWVQcm94eSA9IF9wYWdlLT5wcm9jZXNzKCku
d2ViRnJhbWUoZnJhbWVIYW5kbGUuX2ZyYW1lSUQpKQorICAgIGlmIChhdXRvKiB3ZWJGcmFtZVBy
b3h5ID0gX3BhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShXZWJDb3JlOjpmcmFtZUlkZW50aWZpZXJG
cm9tSUQoZnJhbWVIYW5kbGUuX2ZyYW1lSUQpKSkKICAgICAgICAgcmV0dXJuIF9pbXBsLT5wcmlu
dE9wZXJhdGlvbldpdGhQcmludEluZm8ocHJpbnRJbmZvLCAqd2ViRnJhbWVQcm94eSk7CiAgICAg
cmV0dXJuIG5pbDsKIH0KQEAgLTcxMTQsNyArNzExNCw3IEBAIC0gKHZvaWQpX2NvbXBsZXRlSW1t
ZWRpYXRlQWN0aW9uQW5pbWF0aW9uCiAKIC0gKEJPT0wpX2NhbkNoYW5nZUZyYW1lTGF5b3V0Oihf
V0tGcmFtZUhhbmRsZSAqKWZyYW1lSGFuZGxlCiB7Ci0gICAgaWYgKGF1dG8qIHdlYkZyYW1lUHJv
eHkgPSBfcGFnZS0+cHJvY2VzcygpLndlYkZyYW1lKGZyYW1lSGFuZGxlLl9mcmFtZUlEKSkKKyAg
ICBpZiAoYXV0byogd2ViRnJhbWVQcm94eSA9IF9wYWdlLT5wcm9jZXNzKCkud2ViRnJhbWUoV2Vi
Q29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKGZyYW1lSGFuZGxlLl9mcmFtZUlEKSkpCiAgICAg
ICAgIHJldHVybiBfaW1wbC0+Y2FuQ2hhbmdlRnJhbWVMYXlvdXQoKndlYkZyYW1lUHJveHkpOwog
ICAgIHJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLSW5zcGVjdG9yLm1tCmluZGV4IGM0OTliMThmYTkzODhhNDU4NDMxNDc3MDhkM2Qy
OTZkZDUzMjkwYTQuLjNkMTVlYzJlZWE3OTExYjJhMzlkNjQwODc5MzZiZjRlYTYzNDEzYWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3Iu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5t
bQpAQCAtMzAsNiArMzAsNyBAQAogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW1wb3J0
ICJfV0tGcmFtZUhhbmRsZUludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tJbnNwZWN0b3JJbnRlcm5h
bC5oIgorI2ltcG9ydCA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbXBvcnQgPHd0Zi9S
ZXRhaW5QdHIuaD4KIAogQGltcGxlbWVudGF0aW9uIF9XS0luc3BlY3RvcgpAQCAtOTksNyArMTAw
LDcgQEAgLSAodm9pZClzaG93UmVzb3VyY2VzCiAtICh2b2lkKXNob3dNYWluUmVzb3VyY2VGb3JG
cmFtZTooX1dLRnJhbWVIYW5kbGUgKilmcmFtZQogewogICAgIGlmIChhdXRvKiBwYWdlID0gX2lu
c3BlY3Rvci0+aW5zcGVjdGVkUGFnZSgpKQotICAgICAgICBfaW5zcGVjdG9yLT5zaG93TWFpblJl
c291cmNlRm9yRnJhbWUocGFnZS0+cHJvY2VzcygpLndlYkZyYW1lKGZyYW1lLl9mcmFtZUlEKSk7
CisgICAgICAgIF9pbnNwZWN0b3ItPnNob3dNYWluUmVzb3VyY2VGb3JGcmFtZShwYWdlLT5wcm9j
ZXNzKCkud2ViRnJhbWUoV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKGZyYW1lLl9mcmFt
ZUlEKSkpOwogfQogCiAtICh2b2lkKWF0dGFjaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3Bw
CmluZGV4IDdhY2M2OGJhZWZlYWIwNzNiZjY2MGY2YzBiY2U1ZWZiOTdiNWFlNjIuLmQ4NzQ4ZWVh
N2ZjNmRhZTE1NDI2YWRhZWE5NjliNzRiZGVlNjNkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0
Y2hlci5jcHAKQEAgLTM4Miw3ICszODIsNyBAQCB2b2lkIFNpbXVsYXRlZElucHV0RGlzcGF0Y2hl
cjo6dHJhbnNpdGlvbklucHV0U291cmNlVG9TdGF0ZShTaW11bGF0ZWRJbnB1dFNvdXJjZQogICAg
IH0KIH0KIAotdm9pZCBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXI6OnJ1bih1aW50NjRfdCBmcmFt
ZUlELCBWZWN0b3I8U2ltdWxhdGVkSW5wdXRLZXlGcmFtZT4mJiBrZXlGcmFtZXMsIEhhc2hTZXQ8
UmVmPFNpbXVsYXRlZElucHV0U291cmNlPj4mIGlucHV0U291cmNlcywgQXV0b21hdGlvbkNvbXBs
ZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFNpbXVsYXRlZElucHV0RGlz
cGF0Y2hlcjo6cnVuKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBWZWN0b3I8U2lt
dWxhdGVkSW5wdXRLZXlGcmFtZT4mJiBrZXlGcmFtZXMsIEhhc2hTZXQ8UmVmPFNpbXVsYXRlZElu
cHV0U291cmNlPj4mIGlucHV0U291cmNlcywgQXV0b21hdGlvbkNvbXBsZXRpb25IYW5kbGVyJiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFpc0FjdGl2ZSgpKTsKICAgICBpZiAo
aXNBY3RpdmUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21h
dGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmgKaW5kZXggN2Y0MTQxY2UwYTM5
ZTU2MDczYzdlYzhhOTY1NjBjYmMzNDhhZGZhNi4uYjA4OTFhOGYwYjY3NTI5Y2I5YjM5ODZiODc5
NTMwNzEyYTRhYWQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21h
dGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5oCkBAIC0yOCw2ICsyOCw3
IEBACiAjaWYgRU5BQkxFKFdFQkRSSVZFUl9BQ1RJT05TX0FQSSkKIAogI2luY2x1ZGUgIldlYkV2
ZW50LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3
dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1
ZGUgPHd0Zi9PcHRpb25hbC5oPgpAQCAtMTMyLDcgKzEzMyw3IEBAIHB1YmxpYzoKICNpZiBFTkFC
TEUoV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykKICAgICAgICAgdmlydHVhbCB2b2lk
IHNpbXVsYXRlS2V5Ym9hcmRJbnRlcmFjdGlvbihXZWJQYWdlUHJveHkmLCBLZXlib2FyZEludGVy
YWN0aW9uLCBXVEY6OlZhcmlhbnQ8VmlydHVhbEtleSwgQ2hhcktleT4mJiwgQXV0b21hdGlvbkNv
bXBsZXRpb25IYW5kbGVyJiYpID0gMDsKICNlbmRpZgotICAgICAgICB2aXJ0dWFsIHZvaWQgdmll
d3BvcnRJblZpZXdDZW50ZXJQb2ludE9mRWxlbWVudChXZWJQYWdlUHJveHkmLCB1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBTdHJpbmcmIG5vZGVIYW5kbGUsIEZ1bmN0aW9uPHZvaWQgKE9wdGlvbmFs
PFdlYkNvcmU6OkludFBvaW50PiwgT3B0aW9uYWw8QXV0b21hdGlvbkNvbW1hbmRFcnJvcj4pPiYm
KSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCB2aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZF
bGVtZW50KFdlYlBhZ2VQcm94eSYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBub2RlSGFuZGxlLCBGdW5jdGlvbjx2b2lkIChPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2lu
dD4sIE9wdGlvbmFsPEF1dG9tYXRpb25Db21tYW5kRXJyb3I+KT4mJikgPSAwOwogICAgIH07CiAK
ICAgICBzdGF0aWMgUmVmPFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlcj4gY3JlYXRlKFdlYlBhZ2VQ
cm94eSYgcGFnZSwgU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyOjpDbGllbnQmIGNsaWVudCkKQEAg
LTE0Miw3ICsxNDMsNyBAQCBwdWJsaWM6CiAKICAgICB+U2ltdWxhdGVkSW5wdXREaXNwYXRjaGVy
KCk7CiAKLSAgICB2b2lkIHJ1bih1aW50NjRfdCBmcmFtZUlELCBWZWN0b3I8U2ltdWxhdGVkSW5w
dXRLZXlGcmFtZT4mJiBrZXlGcmFtZXMsIEhhc2hTZXQ8UmVmPFNpbXVsYXRlZElucHV0U291cmNl
Pj4mIGlucHV0U291cmNlcywgQXV0b21hdGlvbkNvbXBsZXRpb25IYW5kbGVyJiYpOworICAgIHZv
aWQgcnVuKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgVmVjdG9yPFNpbXVsYXRlZElucHV0S2V5
RnJhbWU+JiYga2V5RnJhbWVzLCBIYXNoU2V0PFJlZjxTaW11bGF0ZWRJbnB1dFNvdXJjZT4+JiBp
bnB1dFNvdXJjZXMsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciYmKTsKICAgICB2b2lkIGNh
bmNlbCgpOwogCiAgICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0OwpAQCAtMTY1LDcgKzE2Niw3IEBA
IHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5JiBtX3BhZ2U7CiAgICAgU2ltdWxhdGVkSW5wdXRE
aXNwYXRjaGVyOjpDbGllbnQmIG1fY2xpZW50OwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IG1f
ZnJhbWVJRDsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IG1fZnJhbWVJ
RDsKICAgICBBdXRvbWF0aW9uQ29tcGxldGlvbkhhbmRsZXIgbV9ydW5Db21wbGV0aW9uSGFuZGxl
cjsKICAgICBBdXRvbWF0aW9uQ29tcGxldGlvbkhhbmRsZXIgbV9rZXlGcmFtZVRyYW5zaXRpb25D
b21wbGV0aW9uSGFuZGxlcjsKICAgICBSdW5Mb29wOjpUaW1lcjxTaW11bGF0ZWRJbnB1dERpc3Bh
dGNoZXI+IG1fa2V5RnJhbWVUcmFuc2l0aW9uRHVyYXRpb25UaW1lcjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lv
bi5jcHAKaW5kZXggY2NlNWM0ODE3YTgwNDkxN2NkYzE5OWMxYjAxNjBlMjU2ZTliZTI5Ny4uNjhi
ZGFkYzgyNzE3NDM3MjM3NDRlZDVjOTI4ZjEwYTBkZjlmMmNkMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lv
bi5jcHAKQEAgLTIwMiwxMCArMjAyLDEwIEBAIFN0cmluZyBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6
aGFuZGxlRm9yV2ViUGFnZVByb3h5KGNvbnN0IFdlYlBhZ2VQcm94eSYgd2ViUGFnZVByCiAgICAg
cmV0dXJuIGhhbmRsZTsKIH0KIAotT3B0aW9uYWw8dWludDY0X3Q+IFdlYkF1dG9tYXRpb25TZXNz
aW9uOjp3ZWJGcmFtZUlERm9ySGFuZGxlKGNvbnN0IFN0cmluZyYgaGFuZGxlKQorT3B0aW9uYWw8
RnJhbWVJZGVudGlmaWVyPiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2ViRnJhbWVJREZvckhhbmRs
ZShjb25zdCBTdHJpbmcmIGhhbmRsZSkKIHsKICAgICBpZiAoaGFuZGxlLmlzRW1wdHkoKSkKLSAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBGcmFtZUlkZW50aWZpZXIgeyB9OyAvLyBU
aGlzIGlzIGV4cGxpY2l0bHkgemVybzsgc2VlIHdlYmtpdC5vcmcvYi8xNTk3NzcuCiAKICAgICBh
dXRvIGl0ZXIgPSBtX2hhbmRsZVdlYkZyYW1lTWFwLmZpbmQoaGFuZGxlKTsKICAgICBpZiAoaXRl
ciA9PSBtX2hhbmRsZVdlYkZyYW1lTWFwLmVuZCgpKQpAQCAtMjE0LDcgKzIxNCw3IEBAIE9wdGlv
bmFsPHVpbnQ2NF90PiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2ViRnJhbWVJREZvckhhbmRsZShj
b25zdCBTdHJpbmcmIGhhbmRsCiAgICAgcmV0dXJuIGl0ZXItPnZhbHVlOwogfQogCi1TdHJpbmcg
V2ViQXV0b21hdGlvblNlc3Npb246OmhhbmRsZUZvcldlYkZyYW1lSUQodWludDY0X3QgZnJhbWVJ
RCkKK1N0cmluZyBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6aGFuZGxlRm9yV2ViRnJhbWVJRChGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBpZiAoIWZyYW1lSUQpCiAgICAgICAgIHJldHVy
biBlbXB0eVN0cmluZygpOwpAQCAtMzYyLDcgKzM2Miw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNl
c3Npb246OnN3aXRjaFRvQnJvd3NpbmdDb250ZXh0KGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250
ZXh0CiAgICAgaWYgKCFwYWdlKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9F
UlJPUihXaW5kb3dOb3RGb3VuZCk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCA9
IHdlYkZyYW1lSURGb3JIYW5kbGUob3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpvcHRpb25hbEZyYW1l
SGFuZGxlIDogZW1wdHlTdHJpbmcoKSk7CisgICAgYXV0byBmcmFtZUlEID0gd2ViRnJhbWVJREZv
ckhhbmRsZShvcHRpb25hbEZyYW1lSGFuZGxlID8gKm9wdGlvbmFsRnJhbWVIYW5kbGUgOiBlbXB0
eVN0cmluZygpKTsKICAgICBpZiAoIWZyYW1lSUQpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9Q
UkVERUZJTkVEX0VSUk9SKEZyYW1lTm90Rm91bmQpOwogCkBAIC00NTksNyArNDU5LDcgQEAgdm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRlKGNvbnN0
IFN0cmluZyYgYnJvd3NpbmdDb24KICAgICAgICAgJiYgcGFnZS0+cGFnZUxvYWRTdGF0ZSgpLmlz
TG9hZGluZygpICYmIG1fY2xpZW50LT5pc1Nob3dpbmdKYXZhU2NyaXB0RGlhbG9nT25QYWdlKCp0
aGlzLCAqcGFnZSk7CiAKICAgICBpZiAob3B0aW9uYWxGcmFtZUhhbmRsZSAmJiAhb3B0aW9uYWxG
cmFtZUhhbmRsZS0+aXNFbXB0eSgpKSB7Ci0gICAgICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFt
ZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZSgqb3B0aW9uYWxGcmFtZUhhbmRsZSk7CisgICAgICAg
IGF1dG8gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUoKm9wdGlvbmFsRnJhbWVIYW5kbGUp
OwogICAgICAgICBpZiAoIWZyYW1lSUQpCiAgICAgICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJF
REVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKICAgICAgICAgV2ViRnJhbWVQcm94eSogZnJh
bWUgPSBwYWdlLT5wcm9jZXNzKCkud2ViRnJhbWUoZnJhbWVJRC52YWx1ZSgpKTsKQEAgLTUzNyw3
ICs1MzcsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNwb25kVG9QZW5kaW5nUGFn
ZU5hdmlnYXRpb25DYWxsYmFja3NXaXRoVGltZW91dChIYQogICAgIH0KIH0KIAotc3RhdGljIFdl
YlBhZ2VQcm94eSogZmluZFBhZ2VGb3JGcmFtZUlEKGNvbnN0IFdlYlByb2Nlc3NQb29sJiBwcm9j
ZXNzUG9vbCwgdWludDY0X3QgZnJhbWVJRCkKK3N0YXRpYyBXZWJQYWdlUHJveHkqIGZpbmRQYWdl
Rm9yRnJhbWVJRChjb25zdCBXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlEKQogewogICAgIGZvciAoYXV0byYgcHJvY2VzcyA6IHByb2Nlc3NQb29sLnBy
b2Nlc3NlcygpKSB7CiAgICAgICAgIGlmIChhdXRvKiBmcmFtZSA9IHByb2Nlc3MtPndlYkZyYW1l
KGZyYW1lSUQpKQpAQCAtNTQ2LDcgKzU0Niw3IEBAIHN0YXRpYyBXZWJQYWdlUHJveHkqIGZpbmRQ
YWdlRm9yRnJhbWVJRChjb25zdCBXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIHVpbnQ2CiAg
ICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnJlc3Bv
bmRUb1BlbmRpbmdGcmFtZU5hdmlnYXRpb25DYWxsYmFja3NXaXRoVGltZW91dChIYXNoTWFwPHVp
bnQ2NF90LCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNl
Pj4mIG1hcCkKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnJlc3BvbmRUb1BlbmRpbmdGcmFt
ZU5hdmlnYXRpb25DYWxsYmFja3NXaXRoVGltZW91dChIYXNoTWFwPEZyYW1lSWRlbnRpZmllciwg
UmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+JiBtYXAp
CiB7CiAgICAgSW5zcGVjdG9yOjpFcnJvclN0cmluZyB0aW1lb3V0RXJyb3IgPSBTVFJJTkdfRk9S
X1BSRURFRklORURfRVJST1JfTkFNRShUaW1lb3V0KTsKICAgICBmb3IgKGF1dG8gaWQgOiBjb3B5
VG9WZWN0b3IobWFwLmtleXMoKSkpIHsKQEAgLTkyNCw3ICs5MjQsNyBAQCB2b2lkIFdlYkF1dG9t
YXRpb25TZXNzaW9uOjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihjb25zdCBTdHJpbmcmIGJy
b3dzaW5nQ29udAogICAgIGlmICghcGFnZSkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURF
RklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5kbGUgPyAqb3B0aW9u
YWxGcmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCkpOworICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZy
YW1lSURGb3JIYW5kbGUob3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpvcHRpb25hbEZyYW1lSGFuZGxl
IDogZW1wdHlTdHJpbmcoKSk7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICBBU1lOQ19GQUlM
X1dJVEhfUFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIApAQCAtOTY3LDExICs5Njcs
MTEgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVzb2x2ZUNoaWxkRnJhbWVIYW5kbGUo
Y29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHQKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIEFT
WU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKIAotICAgIE9w
dGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShvcHRpb25hbEZy
YW1lSGFuZGxlID8gKm9wdGlvbmFsRnJhbWVIYW5kbGUgOiBlbXB0eVN0cmluZygpKTsKKyAgICBh
dXRvIGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5kbGUgPyAq
b3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCkpOwogICAgIGlmICghZnJhbWVJRCkK
ICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoRnJhbWVOb3RGb3VuZCk7
CiAKLSAgICBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWlu
dDY0X3QpPiBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyksIGNhbGxiYWNrID0gY2FsbGJhY2suY29weVJlZigpXShPcHRpb25hbDxTdHJpbmc+
IGVycm9yVHlwZSwgdWludDY0X3QgZnJhbWVJRCkgbXV0YWJsZSB7CisgICAgV1RGOjpDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIEZyYW1lSWRlbnRpZmllcik+IGNvbXBs
ZXRpb25IYW5kbGVyID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2Fs
bGJhY2sgPSBjYWxsYmFjay5jb3B5UmVmKCldKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChlcnJvclR5cGUp
IHsKICAgICAgICAgICAgIGNhbGxiYWNrLT5zZW5kRmFpbHVyZShTVFJJTkdfRk9SX1BSRURFRklO
RURfRVJST1JfTUVTU0FHRSgqZXJyb3JUeXBlKSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0x
MDA0LDExICsxMDA0LDExIEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnJlc29sdmVQYXJl
bnRGcmFtZUhhbmRsZShjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4CiAgICAgaWYgKCFwYWdl
KQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5kb3dOb3RGb3Vu
ZCk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5k
bGUoZnJhbWVIYW5kbGUpOworICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUo
ZnJhbWVIYW5kbGUpOwogICAgIGlmICghZnJhbWVJRCkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRI
X1BSRURFRklORURfRVJST1IoRnJhbWVOb3RGb3VuZCk7CiAKLSAgICBXVEY6OkNvbXBsZXRpb25I
YW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWludDY0X3QpPiBjb21wbGV0aW9uSGFuZGxl
ciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhbGxiYWNrID0gY2Fs
bGJhY2suY29weVJlZigpXShPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgdWludDY0X3QgZnJh
bWVJRCkgbXV0YWJsZSB7CisgICAgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFs
PFN0cmluZz4sIEZyYW1lSWRlbnRpZmllcik+IGNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FsbGJhY2sgPSBjYWxsYmFjay5jb3B5UmVm
KCldKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkg
bXV0YWJsZSB7CiAgICAgICAgIGlmIChlcnJvclR5cGUpIHsKICAgICAgICAgICAgIGNhbGxiYWNr
LT5zZW5kRmFpbHVyZShTVFJJTkdfRk9SX1BSRURFRklORURfRVJST1JfTUVTU0FHRSgqZXJyb3JU
eXBlKSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xMDM1LDcgKzEwMzUsNyBAQCB2b2lkIFdl
YkF1dG9tYXRpb25TZXNzaW9uOjpjb21wdXRlRWxlbWVudExheW91dChjb25zdCBTdHJpbmcmIGJy
b3dzaW5nQ29udGV4dEhhbgogICAgIGlmICghcGFnZSkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRI
X1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwogCi0gICAgT3B0aW9uYWw8dWludDY0
X3Q+IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKGZyYW1lSGFuZGxlKTsKKyAgICBhdXRv
IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKGZyYW1lSGFuZGxlKTsKICAgICBpZiAoIWZy
YW1lSUQpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKEZyYW1lTm90
Rm91bmQpOwogCkBAIC0xMDg3LDcgKzEwODcsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9u
OjpzZWxlY3RPcHRpb25FbGVtZW50KGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZAog
ICAgIGlmICghcGFnZSkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1Io
V2luZG93Tm90Rm91bmQpOwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQgPSB3ZWJG
cmFtZUlERm9ySGFuZGxlKGZyYW1lSGFuZGxlKTsKKyAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFt
ZUlERm9ySGFuZGxlKGZyYW1lSGFuZGxlKTsKICAgICBpZiAoIWZyYW1lSUQpCiAgICAgICAgIEFT
WU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKEZyYW1lTm90Rm91bmQpOwogCkBAIC0xMjcx
LDcgKzEyNzEsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpnZXRBbGxDb29raWVzKGNv
bnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBSZQogICAgIH07CiAKICAgICAvLyBB
bHdheXMgc2VuZCB0aGUgbWFpbiBmcmFtZSBJRCBhcyAwIHNvIGl0IGlzIHJlc29sdmVkIG9uIHRo
ZSBXZWJQcm9jZXNzIHNpZGUuIFRoaXMgYXZvaWRzIGEgcmFjZSB3aGVuIHBhZ2UtPm1haW5GcmFt
ZSgpIGlzIG51bGwgc3RpbGwuCi0gICAgY29uc3QgdWludDY0X3QgbWFpbkZyYW1lSUQgPSAwOwor
ICAgIGNvbnN0IEZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRDsKICAgICBwYWdlLT5wcm9jZXNz
KCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5
OjpHZXRDb29raWVzRm9yRnJhbWUocGFnZS0+cGFnZUlEKCksIG1haW5GcmFtZUlEKSwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCkBAIC0xMjkxLDcgKzEyOTEsNyBAQCB2b2lkIFdl
YkF1dG9tYXRpb25TZXNzaW9uOjpkZWxldGVTaW5nbGVDb29raWUoY29uc3QgU3RyaW5nJiBicm93
c2luZ0NvbnRleHRIYW5kbAogICAgIH07CiAKICAgICAvLyBBbHdheXMgc2VuZCB0aGUgbWFpbiBm
cmFtZSBJRCBhcyAwIHNvIGl0IGlzIHJlc29sdmVkIG9uIHRoZSBXZWJQcm9jZXNzIHNpZGUuIFRo
aXMgYXZvaWRzIGEgcmFjZSB3aGVuIHBhZ2UtPm1haW5GcmFtZSgpIGlzIG51bGwgc3RpbGwuCi0g
ICAgY29uc3QgdWludDY0X3QgbWFpbkZyYW1lSUQgPSAwOworICAgIGNvbnN0IEZyYW1lSWRlbnRp
ZmllciBtYWluRnJhbWVJRDsKICAgICBwYWdlLT5wcm9jZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5
KE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpEZWxldGVDb29raWUocGFnZS0+
cGFnZUlEKCksIG1haW5GcmFtZUlELCBjb29raWVOYW1lKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwogfQogCkBAIC0xNDU3LDcgKzE0NTcsNyBAQCBTaW11bGF0ZWRJbnB1dFNvdXJjZSog
V2ViQXV0b21hdGlvblNlc3Npb246OmlucHV0U291cmNlRm9yVHlwZShTaW11bGF0ZWRJbnB1dFNv
dQogfQogCiAvLyBNQVJLOiBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXI6OkNsaWVudCBBUEkKLXZv
aWQgV2ViQXV0b21hdGlvblNlc3Npb246OnZpZXdwb3J0SW5WaWV3Q2VudGVyUG9pbnRPZkVsZW1l
bnQoV2ViUGFnZVByb3h5JiBwYWdlLCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG5v
ZGVIYW5kbGUsIEZ1bmN0aW9uPHZvaWQgKE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiwgT3B0
aW9uYWw8QXV0b21hdGlvbkNvbW1hbmRFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6dmlld3BvcnRJblZpZXdDZW50ZXJQb2ludE9mRWxlbWVu
dChXZWJQYWdlUHJveHkmIHBhZ2UsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJp
bmcmIG5vZGVIYW5kbGUsIEZ1bmN0aW9uPHZvaWQgKE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50
PiwgT3B0aW9uYWw8QXV0b21hdGlvbkNvbW1hbmRFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewogICAgIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBX
ZWJDb3JlOjpJbnRSZWN0LCBPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIGJvb2wpPiBkaWRD
b21wdXRlRWxlbWVudExheW91dEhhbmRsZXIgPSBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKV0oT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIFdlYkNvcmU6
OkludFJlY3QsIE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiBpblZpZXdDZW50ZXJQb2ludCwg
Ym9vbCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChlcnJvclR5cGUpIHsKQEAgLTE5NzYsNyArMTk3
Niw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnRha2VTY3JlZW5zaG90KGNvbnN0IFN0
cmluZyYgaGFuZGxlLCBjb25zdCBTdHJpbmcqIG9wCiAgICAgaWYgKCFwYWdlKQogICAgICAgICBB
U1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5kb3dOb3RGb3VuZCk7CiAKLSAgICBP
cHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUob3B0aW9uYWxG
cmFtZUhhbmRsZSA/ICpvcHRpb25hbEZyYW1lSGFuZGxlIDogZW1wdHlTdHJpbmcoKSk7CisgICAg
YXV0byBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShvcHRpb25hbEZyYW1lSGFuZGxlID8g
Km9wdGlvbmFsRnJhbWVIYW5kbGUgOiBlbXB0eVN0cmluZygpKTsKICAgICBpZiAoIWZyYW1lSUQp
CiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKEZyYW1lTm90Rm91bmQp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1
dG9tYXRpb25TZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dl
YkF1dG9tYXRpb25TZXNzaW9uLmgKaW5kZXggZjM5YzA2MWI1Nzg5MmE5MjQ4ZmQwOWRmZmNmYTdi
OGM1MGEwNzUzNy4uMTIyMmMyODQyMmJmOTZjNmNjNGIxYTVkZmNhNDIyNzBmZDAyM2FhMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9u
U2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0
b21hdGlvblNlc3Npb24uaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIlNoYXJlYWJsZUJp
dG1hcC5oIgogI2luY2x1ZGUgIlNpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5oIgogI2luY2x1ZGUg
IldlYkV2ZW50LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25I
YW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTE1Miw3ICsxNTMsNyBAQCBw
dWJsaWM6CiAjaWYgRU5BQkxFKFdFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpCiAgICAg
dm9pZCBzaW11bGF0ZUtleWJvYXJkSW50ZXJhY3Rpb24oV2ViUGFnZVByb3h5JiwgS2V5Ym9hcmRJ
bnRlcmFjdGlvbiwgV1RGOjpWYXJpYW50PFZpcnR1YWxLZXksIENoYXJLZXk+JiYsIEF1dG9tYXRp
b25Db21wbGV0aW9uSGFuZGxlciYmKSBmaW5hbDsKICNlbmRpZgotICAgIHZvaWQgdmlld3BvcnRJ
blZpZXdDZW50ZXJQb2ludE9mRWxlbWVudChXZWJQYWdlUHJveHkmLCB1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBTdHJpbmcmIG5vZGVIYW5kbGUsIEZ1bmN0aW9uPHZvaWQgKE9wdGlvbmFsPFdlYkNv
cmU6OkludFBvaW50PiwgT3B0aW9uYWw8QXV0b21hdGlvbkNvbW1hbmRFcnJvcj4pPiYmKSBmaW5h
bDsKKyAgICB2b2lkIHZpZXdwb3J0SW5WaWV3Q2VudGVyUG9pbnRPZkVsZW1lbnQoV2ViUGFnZVBy
b3h5JiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5vZGVIYW5kbGUs
IEZ1bmN0aW9uPHZvaWQgKE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiwgT3B0aW9uYWw8QXV0
b21hdGlvbkNvbW1hbmRFcnJvcj4pPiYmKSBmaW5hbDsKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJE
UklWRVJfQUNUSU9OU19BUEkpCiAKQEAgLTIyMCwxNCArMjIxLDE0IEBAIHByaXZhdGU6CiAgICAg
UmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkJyb3dzaW5nQ29udGV4dD4gYnVp
bGRCcm93c2luZ0NvbnRleHRGb3JQYWdlKFdlYlBhZ2VQcm94eSYsIFdlYkNvcmU6OkZsb2F0UmVj
dCB3aW5kb3dGcmFtZSk7CiAgICAgdm9pZCBnZXROZXh0Q29udGV4dChSZWY8V2ViQXV0b21hdGlv
blNlc3Npb24+JiYsIFZlY3RvcjxSZWY8V2ViUGFnZVByb3h5Pj4mJiwgUmVmPEpTT046OkFycmF5
T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6QnJvd3NpbmdDb250ZXh0Pj4sIFJl
ZjxXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6R2V0QnJvd3NpbmdDb250ZXh0c0NhbGxiYWNrPiYmKTsK
IAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiB3ZWJGcmFtZUlERm9ySGFuZGxlKGNvbnN0IFN0cmlu
ZyYpOwotICAgIFN0cmluZyBoYW5kbGVGb3JXZWJGcmFtZUlEKHVpbnQ2NF90IGZyYW1lSUQpOwor
ICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gd2ViRnJhbWVJREZvckhhbmRs
ZShjb25zdCBTdHJpbmcmKTsKKyAgICBTdHJpbmcgaGFuZGxlRm9yV2ViRnJhbWVJRChXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIpOwogICAgIFN0cmluZyBoYW5kbGVGb3JXZWJGcmFtZVByb3h5KGNv
bnN0IFdlYkZyYW1lUHJveHkmKTsKIAogICAgIHZvaWQgd2FpdEZvck5hdmlnYXRpb25Ub0NvbXBs
ZXRlT25QYWdlKFdlYlBhZ2VQcm94eSYsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
OlBhZ2VMb2FkU3RyYXRlZ3ksIFNlY29uZHMsIFJlZjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRj
aGVyOjpDYWxsYmFja0Jhc2U+JiYpOwogICAgIHZvaWQgd2FpdEZvck5hdmlnYXRpb25Ub0NvbXBs
ZXRlT25GcmFtZShXZWJGcmFtZVByb3h5JiwgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bjo6UGFnZUxvYWRTdHJhdGVneSwgU2Vjb25kcywgUmVmPEluc3BlY3Rvcjo6QmFja2VuZERpc3Bh
dGNoZXI6OkNhbGxiYWNrQmFzZT4mJik7CiAgICAgdm9pZCByZXNwb25kVG9QZW5kaW5nUGFnZU5h
dmlnYXRpb25DYWxsYmFja3NXaXRoVGltZW91dChIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4m
KTsKLSAgICB2b2lkIHJlc3BvbmRUb1BlbmRpbmdGcmFtZU5hdmlnYXRpb25DYWxsYmFja3NXaXRo
VGltZW91dChIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0
Y2hlcjo6Q2FsbGJhY2tCYXNlPj4mKTsKKyAgICB2b2lkIHJlc3BvbmRUb1BlbmRpbmdGcmFtZU5h
dmlnYXRpb25DYWxsYmFja3NXaXRoVGltZW91dChIYXNoTWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+
Jik7CiAgICAgdm9pZCBsb2FkVGltZXJGaXJlZCgpOwogCiAgICAgdm9pZCBleGl0RnVsbHNjcmVl
bldpbmRvd0ZvclBhZ2UoV2ViUGFnZVByb3h5JiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwpAQCAtMjg0LDEzICsyODUsMTMgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBTdHJpbmc+IG1fd2ViUGFnZUhhbmRsZU1hcDsKICAgICBIYXNo
TWFwPFN0cmluZywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG1faGFuZGxlV2ViUGFnZU1hcDsK
IAotICAgIEhhc2hNYXA8dWludDY0X3QsIFN0cmluZz4gbV93ZWJGcmFtZUhhbmRsZU1hcDsKLSAg
ICBIYXNoTWFwPFN0cmluZywgdWludDY0X3Q+IG1faGFuZGxlV2ViRnJhbWVNYXA7CisgICAgSGFz
aE1hcDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFN0cmluZz4gbV93ZWJGcmFtZUhhbmRsZU1h
cDsKKyAgICBIYXNoTWFwPFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBtX2hhbmRs
ZVdlYkZyYW1lTWFwOwogCiAgICAgSGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgUmVm
UHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGlu
Z05vcm1hbE5hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlclBhZ2U7CiAgICAg
SGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2Vu
ZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGluZ0VhZ2VyTmF2aWdhdGlvbkluQnJv
d3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyUGFnZTsKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQ
dHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4gbV9wZW5kaW5n
Tm9ybWFsTmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyRnJhbWU7Ci0gICAg
SGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNh
bGxiYWNrQmFzZT4+IG1fcGVuZGluZ0VhZ2VyTmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2Fs
bGJhY2tzUGVyRnJhbWU7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJl
ZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiBtX3BlbmRp
bmdOb3JtYWxOYXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJGcmFtZTsKKyAg
ICBIYXNoTWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmUHRyPEluc3BlY3Rvcjo6QmFj
a2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGluZ0VhZ2VyTmF2aWdhdGlvbklu
QnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyRnJhbWU7CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxi
YWNrQmFzZT4+IG1fcGVuZGluZ0luc3BlY3RvckNhbGxiYWNrc1BlclBhZ2U7CiAjaWYgRU5BQkxF
KFdFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpCiAgICAgSGFzaE1hcDxXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgRnVuY3Rpb248dm9pZChPcHRpb25hbDxBdXRvbWF0aW9uQ29tbWFuZEVy
cm9yPik+PiBtX3BlbmRpbmdLZXlib2FyZEV2ZW50c0ZsdXNoZWRDYWxsYmFja3NQZXJQYWdlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KaW5kZXggYTUxYTIy
MzYyMzg0MTUxYWIxMWQ0ODk0MzY5ZjhhMTg1ODAwNjdkYS4uMzAyZjY4MjI4MmJjYzdlZTM4ZDNm
NjcyN2Q2ZDIzZjg0YjI4OWRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9V
SURlbGVnYXRlLm1tCkBAIC0xMDMyLDcgKzEwMzIsNyBAQCB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xp
ZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiBwYWdl
LAogICAgIFVSTCByZXF1ZXN0RnJhbWVVUkwgeyBVUkwoKSwgZnJhbWUudXJsKCkgfTsKICAgICBV
UkwgbWFpbkZyYW1lVVJMIHsgVVJMKCksIG1haW5GcmFtZS0+dXJsKCkgfTsKIAotICAgIFsoaWQg
PFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dl
YlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOnJlcXVlc3RGcmFtZVVSTCBtYWlu
RnJhbWVVUkw6bWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjpmcmFtZS5mcmFtZUlEKCkgZGVj
aXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07CisgICAgWyhpZCA8V0tVSURlbGVn
YXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyBjaGVj
a1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6cmVxdWVzdEZyYW1lVVJMIG1haW5GcmFtZVVSTDpt
YWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOmZyYW1lLmZyYW1lSUQoKS50b1VJbnQ2NCgpIGRl
Y2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOwogfQogCiB2b2lkIFVJRGVsZWdh
dGU6OlVJQ2xpZW50OjptZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XS1JlbG9hZEZyYW1lRXJyb3JSZWNvdmVyeUF0dGVtcHRlci5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dLUmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5
QXR0ZW1wdGVyLm1tCmluZGV4IDg0ZDIwYzRjZThiMWYwMDE3ZTFiYTc3YjlkMGRmNGYxMDEzOGE5
MDAuLjljNDA5MmVmZDQzNmQwMjI0MGI4MDZhMmMyNDBmNjQzNmQyZWRiNWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dLUmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5
QXR0ZW1wdGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dLUmVsb2Fk
RnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyLm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0
ICJXZWJGcmFtZVByb3h5LmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKICNpbXBvcnQgIldl
YlByb2Nlc3NQcm94eS5oIgorI2ltcG9ydCA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNp
bXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9XZWFrT2JqQ1B0ci5oPgogCkBA
IC02Miw4ICs2Myw3IEBAIC0gKEJPT0wpYXR0ZW1wdFJlY292ZXJ5CiAgICAgaWYgKCF3ZWJWaWV3
KQogICAgICAgICByZXR1cm4gTk87CiAKLSAgICB1aW50NjRfdCBmcmFtZUlEID0gW19mcmFtZUhh
bmRsZSBfZnJhbWVJRF07Ci0gICAgV2ViS2l0OjpXZWJGcmFtZVByb3h5KiB3ZWJGcmFtZVByb3h5
ID0gd2ViVmlldy0+X3BhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlEKTsKKyAgICBXZWJL
aXQ6OldlYkZyYW1lUHJveHkqIHdlYkZyYW1lUHJveHkgPSB3ZWJWaWV3LT5fcGFnZS0+cHJvY2Vz
cygpLndlYkZyYW1lKFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRChbX2ZyYW1lSGFuZGxl
IF9mcmFtZUlEXSkpOwogICAgIGlmICghd2ViRnJhbWVQcm94eSkKICAgICAgICAgcmV0dXJuIE5P
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJv
eHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNv
Y29hLm1tCmluZGV4IGExYWY5OGQyMTA5M2U1YWVlZThiM2Q0ODBiODE2MWZlMjZlOWVhNTEuLmQ5
NjEzOTE4Zjc1ZmE1ZThkZjU4MzRmMjUyNDQzOGUwNmU5ODZiOTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCkBAIC0xMDEsMTIg
KzEwMSwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6YmVnaW5TYWZlQnJvd3NpbmdDaGVjayhjb25z
dCBVUkwmIHVybCwgYm9vbCBmb3JNYWluRnJhbWVOYXZpZwogfQogCiAjaWYgRU5BQkxFKENPTlRF
TlRfRklMVEVSSU5HKQotdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xv
YWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIHVu
YmxvY2tIYW5kbGVyLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmNvbnRl
bnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVy
VW5ibG9ja0hhbmRsZXImIHVuYmxvY2tIYW5kbGVyLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkK
IHsKICAgICBjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWVTaGFyZWQobV9wcm9jZXNz
LmNvcHlSZWYoKSwgdW5ibG9ja0hhbmRsZXIsIGZyYW1lSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYgcHJvY2VzcywgY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tI
YW5kbGVyJiB1bmJsb2NrSGFuZGxlciwgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVBy
b3h5Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nl
c3NQcm94eT4mJiBwcm9jZXNzLCBjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hh
bmRsZXImIHVuYmxvY2tIYW5kbGVyLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBp
ZiAoV2ViRnJhbWVQcm94eSogZnJhbWUgPSBwcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKSkKICAg
ICAgICAgZnJhbWUtPmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWQodW5ibG9ja0hhbmRsZXIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5jcHAKaW5kZXggOTRmYWY2YjlkZTI2MjAxZDg0ZDI2ZmY4MzkzM2Y4MjI5YzA1ZDZi
OS4uOTFlY2UxZjBkYWZmZTNlYTYzYWRiYzBkOTFlYWM0ZDE4MTExMzA5YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
Y3BwCkBAIC0zMTIsNyArMzEyLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRDcmVh
dGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25zdCBJUEM6OkF0dGEKICNlbmRpZgog
fQogCi12b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6
OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYgY29yZUNoYWxsZW5nZSwgdWludDY0X3QgY2hhbGxl
bmdlSUQpCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYmIGNvcmVDaGFsbGVuZ2UsIHVpbnQ2
NF90IGNoYWxsZW5nZUlEKQogewogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICBpZiAo
YXV0byogc2VydmljZVdvcmtlclByb2Nlc3NQcm94eSA9IG1fcHJvY2Vzc1Bvb2wuc2VydmljZVdv
cmtlclByb2Nlc3NQcm94eUZyb21QYWdlSUQocGFnZUlEKSkgewpAQCAtNzM3LDcgKzczNyw3IEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0R3JhbmRmYXRoZXJlZChQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzCiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpOZXR3b3JrUHJvY2Vzczo6U2V0R3JhbmRmYXRoZXJlZChzZXNzaW9uSUQsIHJlc291cmNlRG9t
YWluLCBpc0dyYW5kZmF0aGVyZWQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAK
LXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVE
b21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
Cit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0
b3BGcmFtZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6Ondl
YlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggNDMzNTQ1YzBl
MzNmYWFlZWQ5ZGViYjM0ZjZiMjBjZmNhZTVlOTVjOC4uNDBmODFkZTliNDdmMTkyMjE5MDI2YTZl
OGEwN2IyYTVlMmQ2YTk5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTgyLDcgKzgyLDYgQEAgcHVibGljOgog
ICAgIHVzaW5nIE5hdmlnYXRlZFRvRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47
CiAgICAgdXNpbmcgRG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzID0gV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW47CiAgICAgdXNpbmcgT3BlbmVyRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW47Ci0gICAgdXNpbmcgRnJhbWVJRCA9IHVpbnQ2NF90OwogCiAgICAgZXhwbGljaXQg
TmV0d29ya1Byb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYpOwogICAgIH5OZXR3b3JrUHJvY2Vz
c1Byb3h5KCk7CkBAIC0xMzAsNyArMTI5LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UHJldmFs
ZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFZlcnlQ
cmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4m
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgZ2V0QWxsU3RvcmFnZUFj
Y2Vzc0VudHJpZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9y
PFN0cmluZz4gZG9tYWlucyk+JiYpOwotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25m
aXJtKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBGcmFtZUlELCBjb25zdCBTdWJGcmFtZURvbWFp
biYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
Jik7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3ViRnJhbWVEb21haW4m
LCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
OwogICAgIHZvaWQgcmVzZXRQYXJhbWV0ZXJzVG9EZWZhdWx0VmFsdWVzKFBBTDo6U2Vzc2lvbklE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2NoZWR1bGVDbGVhcklu
TWVtb3J5QW5kUGVyc2lzdGVudChQQUw6OlNlc3Npb25JRCwgU2hvdWxkR3JhbmRmYXRoZXJTdGF0
aXN0aWNzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2NoZWR1bGVD
bGVhckluTWVtb3J5QW5kUGVyc2lzdGVudChQQUw6OlNlc3Npb25JRCwgT3B0aW9uYWw8V2FsbFRp
bWU+IG1vZGlmaWVkU2luY2UsIFNob3VsZEdyYW5kZmF0aGVyU3RhdGlzdGljcywgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTIxMyw3ICsyMTIsNyBAQCBwcml2YXRlOgogICAgIC8v
IE1lc3NhZ2UgaGFuZGxlcnMKICAgICB2b2lkIGRpZFJlY2VpdmVOZXR3b3JrUHJvY2Vzc1Byb3h5
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKICAgICB2b2lkIGRpZENy
ZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbnN0IElQQzo6QXR0YWNobWVudCYp
OwotICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSYmLCB1aW50NjRfdCBjaGFsbGVuZ2VJRCk7CisgICAgdm9pZCBkaWRSZWNlaXZlQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmJiwgdWludDY0
X3QgY2hhbGxlbmdlSUQpOwogICAgIHZvaWQgZGlkRmV0Y2hXZWJzaXRlRGF0YSh1aW50NjRfdCBj
YWxsYmFja0lELCBjb25zdCBXZWJzaXRlRGF0YSYpOwogICAgIHZvaWQgZGlkRGVsZXRlV2Vic2l0
ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBkaWREZWxldGVXZWJzaXRlRGF0
YUZvck9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2Fn
ZXMuaW4KaW5kZXggMTFkOGM1ZGVlMWRiYTgxZjhmNjNmN2Q5NDhlZjY2MTYxOTgxZDEzNC4uYmZh
ZjlmMDQ5NmU1NmE5YjkzMWVmNmZmNzc1MWMzYWNmNWQxMzliYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5tZXNzYWdlcy5pbgpAQCAtMjMsNyArMjMsNyBAQAogbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nl
c3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgRGlkQ3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25JZGVudGlmaWVyKQogCi0gICAg
RGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVu
Z2UgY2hhbGxlbmdlLCB1aW50NjRfdCBjaGFsbGVuZ2VJRCkKKyAgICBEaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVu
Z2UgY2hhbGxlbmdlLCB1aW50NjRfdCBjaGFsbGVuZ2VJRCkKIAogICAgIERpZEZldGNoV2Vic2l0
ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCwgc3RydWN0IFdlYktpdDo6V2Vic2l0ZURhdGEgd2Vi
c2l0ZURhdGEpCiAgICAgRGlkRGVsZXRlV2Vic2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCkK
QEAgLTQ4LDcgKzQ4LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NQcm94eSBMZWdhY3lS
ZWNlaXZlciB7CiAgICAgTm90aWZ5V2Vic2l0ZURhdGFEZWxldGlvbkZvclJlZ2lzdHJhYmxlRG9t
YWluc0ZpbmlzaGVkKCkKICAgICBOb3RpZnlXZWJzaXRlRGF0YVNjYW5Gb3JSZWdpc3RyYWJsZURv
bWFpbnNGaW5pc2hlZCgpCiAgICAgTm90aWZ5UmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRy
eUZpbmlzaGVkKHVuc2lnbmVkIHRvdGFsUHJldmFsZW50UmVzb3VyY2VzLCB1bnNpZ25lZCB0b3Rh
bFByZXZhbGVudFJlc291cmNlc1dpdGhVc2VySW50ZXJhY3Rpb24sIHVuc2lnbmVkIHRvcDNTdWJm
cmFtZVVuZGVyVG9wRnJhbWVPcmlnaW5zKQotICAgIFJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmly
bShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiB0b3BGcmFtZURvbWFpbikgLT4gKGJvb2wgdXNlckRpZEdyYW50QWNjZXNzKSBBc3lu
YworICAgIFJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4g
dG9wRnJhbWVEb21haW4pIC0+IChib29sIHVzZXJEaWRHcmFudEFjY2VzcykgQXN5bmMKICAgICBE
ZWxldGVXZWJzaXRlRGF0YUluVUlQcm9jZXNzRm9yUmVnaXN0cmFibGVEb21haW5zKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiBkYXRh
VHlwZXMsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhRmV0Y2hPcHRpb24+IGZldGNoT3B0
aW9ucywgVmVjdG9yPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21haW5zKSAtPiAoSGFz
aFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gZG9tYWluc1dpdGhNYXRjaGluZ0RhdGFS
ZWNvcmRzKSBBc3luYwogICAgIERpZENvbW1pdENyb3NzU2l0ZUxvYWRXaXRoRGF0YVRyYW5zZmVy
RnJvbVByZXZhbGVudFJlc291cmNlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdl
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHku
Y3BwCmluZGV4IDY2NmZiZDNkYTEwZmI1ZDU5YWYyMTA1MjdhM2MxNTQ1YzE0ODEzZTIuLmQ3ZjBj
M2M5NTAyNzRkZThlMGE5NWNiODVhZGMyNzY1NThmNzJkOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKQEAgLTE3Niw3ICsxNzYsNyBA
QCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpnb1RvQmFja0ZvcndhcmRJdGVtKEFQSTo6TmF2
aWdhdGlvbiYgbmF2aWdhdGlvbiwgV2ViQgogICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NU
aW1lcigpLnN0YXJ0KCk7CiB9CiAKLWlubGluZSBib29sIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojp2
YWxpZGF0ZUlucHV0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IE9wdGlvbmFsPHVpbnQ2NF90PiYg
bmF2aWdhdGlvbklEKQoraW5saW5lIGJvb2wgUHJvdmlzaW9uYWxQYWdlUHJveHk6OnZhbGlkYXRl
SW5wdXQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IE9wdGlvbmFsPHVpbnQ2NF90PiYg
bmF2aWdhdGlvbklEKQogewogICAgIC8vIElmIHRoZSBwcmV2aW91cyBwcm92aXNpb25hbCBsb2Fk
IHVzZWQgYW4gZXhpc3RpbmcgcHJvY2Vzcywgd2UgbWF5IHJlY2VpdmUgbGVmdG92ZXIgSVBDIGZv
ciBhIHByZXZpb3VzIG5hdmlnYXRpb24sIHdoaWNoIHdlIG5lZWQgdG8gaWdub3JlLgogICAgIGlm
ICghbV9tYWluRnJhbWUgfHwgbV9tYWluRnJhbWUtPmZyYW1lSUQoKSAhPSBmcmFtZUlEKQpAQCAt
MTg1LDkgKzE4NSw5IEBAIGlubGluZSBib29sIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojp2YWxpZGF0
ZUlucHV0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IE9wdGlvbmFsCiAgICAgcmV0dXJuICFuYXZp
Z2F0aW9uSUQgfHwgISpuYXZpZ2F0aW9uSUQgfHwgKm5hdmlnYXRpb25JRCA9PSBtX25hdmlnYXRp
b25JRDsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDcmVhdGVN
YWluRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICJkaWRDcmVhdGVNYWluRnJhbWU6IHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3BhZ2UucGFnZUlEKCkudG9VSW50NjQo
KSwgZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcs
ICJkaWRDcmVhdGVNYWluRnJhbWU6IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0LCBtX3BhZ2UucGFnZUlEKCkudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsK
ICAgICBBU1NFUlQoIW1fbWFpbkZyYW1lKTsKIAogICAgIG1fbWFpbkZyYW1lID0gV2ViRnJhbWVQ
cm94eTo6Y3JlYXRlKG1fcGFnZSwgZnJhbWVJRCk7CkBAIC0yMTIsNyArMjEyLDcgQEAgdm9pZCBQ
cm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQp
CiAgICAgfQogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQZXJmb3JtQ2xpZW50
UmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVz
dGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFByb3Zpc2lvbmFsUGFn
ZVByb3h5OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxT
dHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlEKQogewogICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlEKSkKICAgICAgICAg
cmV0dXJuOwpAQCAtMjIwLDEyICsyMjAsMTIgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6
ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW4KICAg
ICBtX3BhZ2UuZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVm
KCksIHNvdXJjZVVSTFN0cmluZywgZGVzdGluYXRpb25VUkxTdHJpbmcsIGZyYW1lSUQpOwogfQog
Ci12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYgdXJsLCBV
UkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBQcm92
aXNpb25hbFBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwsIFVSTCYm
IHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgaWYgKCF2
YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2Vzc1N3YXBwaW5nLCAiZGlkU3RhcnRQcm92
aXNpb25hbExvYWRGb3JGcmFtZTogcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQ
Ukl1NjQgIiwgbmF2aWdhdGlvbklEID0gJSIgUFJJdTY0LCBtX3BhZ2UucGFnZUlEKCkudG9VSW50
NjQoKSwgZnJhbWVJRCwgbmF2aWdhdGlvbklEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KFByb2Nlc3NTd2FwcGluZywgImRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6IHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIG5hdmlnYXRpb25JRCA9ICUi
IFBSSXU2NCwgbV9wYWdlLnBhZ2VJRCgpLnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSwg
bmF2aWdhdGlvbklEKTsKICAgICBBU1NFUlQobV9wcm92aXNpb25hbExvYWRVUkwuaXNOdWxsKCkp
OwogICAgIG1fcHJvdmlzaW9uYWxMb2FkVVJMID0gdXJsOwogCkBAIC0yNDAsMTIgKzI0MCwxMiBA
QCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbgogICAgIG1fcGFnZS5kaWRTdGFydFByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIG5hdmlnYXRp
b25JRCwgV1RGTW92ZSh1cmwpLCBXVEZNb3ZlKHVucmVhY2hhYmxlVVJMKSwgdXNlckRhdGEpOwog
fQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmlu
ZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yLCBX
ZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVz
ZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZEZhaWxQcm92
aXNpb25hbExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlRXJyb3ImIGVycm9yLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250
aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBpZiAoIXZhbGlk
YXRlSW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
UkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICJkaWRGYWlsUHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWU6IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0ICIsIG5hdmlnYXRpb25JRCA9ICUiIFBSSXU2NCwgbV9wYWdlLnBhZ2VJRCgpLnRvVUlu
dDY0KCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCk7CisgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZf
QUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICJkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6
IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIG5hdmlnYXRpb25J
RCA9ICUiIFBSSXU2NCwgbV9wYWdlLnBhZ2VJRCgpLnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50
NjQoKSwgbmF2aWdhdGlvbklEKTsKICAgICBBU1NFUlQoIW1fcHJvdmlzaW9uYWxMb2FkVVJMLmlz
TnVsbCgpKTsKICAgICBtX3Byb3Zpc2lvbmFsTG9hZFVSTCA9IHsgfTsKIApAQCAtMjU2LDEyICsy
NTYsMTIgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnMKICAgICBtX3BhZ2UuZGlkRmFpbFByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZy
YW1lU2VjdXJpdHlPcmlnaW4sIG5hdmlnYXRpb25JRCwgcHJvdmlzaW9uYWxVUkwsIGVycm9yLCB3
aWxsQ29udGludWVMb2FkaW5nLCB1c2VyRGF0YSk7IC8vIE1heSBkZWxldGUgfHRoaXN8LgogfQog
Ci12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBl
LCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRU
eXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9v
bCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNv
bnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRh
KQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKEZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYg
bWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZy
YW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJ
bmZvLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0lu
c2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYg
dXNlckRhdGEpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5hdmlnYXRpb25J
RCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2Vz
c1N3YXBwaW5nLCAiZGlkQ29tbWl0TG9hZEZvckZyYW1lOiBwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9uSUQgPSAlIiBQUkl1NjQsIG1fcGFnZS5w
YWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQpOworICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoUHJvY2Vzc1N3YXBwaW5nLCAiZGlkQ29tbWl0TG9hZEZvckZyYW1lOiBw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9uSUQg
PSAlIiBQUkl1NjQsIG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0
KCksIG5hdmlnYXRpb25JRCk7CiAgICAgbV9wcm92aXNpb25hbExvYWRVUkwgPSB7IH07CiAgICAg
bV9wcm9jZXNzLT5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UucGFnZUlEKCkpOwogCkBAIC0yNjksNyArMjY5
LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmkKICAgICBtX3BhZ2UuY29tbWl0UHJvdmlzaW9u
YWxQYWdlKGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgbWltZVR5cGUsIGZyYW1lSGFzQ3VzdG9tQ29u
dGVudFByb3ZpZGVyLCBmcmFtZUxvYWRUeXBlLCBjZXJ0aWZpY2F0ZUluZm8sIGNvbnRhaW5zUGx1
Z2luRG9jdW1lbnQsIGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgdXNlckRhdGEpOyAvLyBXaWxs
IGRlbGV0ZSB8dGhpc3wuCiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZE5hdmln
YXRlV2l0aE5hdmlnYXRpb25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmIHN0b3Jl
LCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkTmF2aWdh
dGVXaXRoTmF2aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYgc3RvcmUs
IEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFt
ZUlEKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjc3LDcgKzI3Nyw3IEBAIHZvaWQgUHJvdmlzaW9u
YWxQYWdlUHJveHk6OmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKGNvbnN0IFdlYk5hdmln
YXRpb25EYXRhCiAgICAgbV9wYWdlLmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVk
KG1fcHJvY2Vzcy5jb3B5UmVmKCksIHN0b3JlLCBmcmFtZUlEKTsKIH0KIAotdm9pZCBQcm92aXNp
b25hbFBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCkKK3ZvaWQgUHJvdmlzaW9u
YWxQYWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYgdXJsKQogewogICAgIGlm
ICghdmFsaWRhdGVJbnB1dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQpKQogICAgICAgICByZXR1cm47
CkBAIC0yODUsNyArMjg1LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ2hhbmdl
UHJvdmlzaW9uYWxVUkxGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW4KICAgICBtX3BhZ2Uu
ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigp
LCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUodXJsKSk7CiB9CiAKLXZvaWQgUHJvdmlz
aW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyh1aW50
NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5
T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKK3ZvaWQg
UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3lu
YyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYg
ZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50
aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYm
IG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0
aW9uYWw8UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0
YSYgdXNlckRhdGEsIHVpbnQ2NF90IGxpc3RlbmVySUQpCiB7CkBAIC0yOTYsNyArMjk2LDcgQEAg
dm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bkFzeW5jKHVpbnQ2NF90IGZyYW1lSUQKICAgICAgICAgV1RGTW92ZShmcmFtZUluZm9EYXRhKSwg
b3JpZ2luYXRpbmdQYWdlSUQsIG9yaWdpbmFsUmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RG
TW92ZShyZXF1ZXN0Qm9keSksIFdURk1vdmUocmVkaXJlY3RSZXNwb25zZSksIHVzZXJEYXRhLCBs
aXN0ZW5lcklEKTsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZp
ZXIgaWRlbnRpZmllciwKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZv
clJlc3BvbnNlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciBpZGVudGlmaWVyLAogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93
bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2Vy
RGF0YSkKIHsKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkK
QEAgLTMwNSw3ICszMDUsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDbwogICAgIG1fcGFnZS5k
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlE
LCBmcmFtZVNlY3VyaXR5T3JpZ2luLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNl
LCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRlLCBsaXN0ZW5lcklE
LCB1c2VyRGF0YSk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1T
ZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5n
JiBkZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgUHJvdmlzaW9u
YWxQYWdlUHJveHk6OmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQpKQogICAg
ICAgICByZXR1cm47CkBAIC0zMTMsNyArMzEzLDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94
eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW4K
ICAgICBtX3BhZ2UuZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0U2hhcmVkKG1fcHJvY2Vzcy5jb3B5
UmVmKCksIHNvdXJjZVVSTFN0cmluZywgZGVzdGluYXRpb25VUkxTdHJpbmcsIGZyYW1lSUQpOwog
fQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RG
b3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFVzZXJE
YXRhJiB1c2VyRGF0YSkKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2
ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJl
cXVlc3QsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBpZiAoIXZhbGlkYXRlSW5w
dXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzMxLDcgKzMz
MSw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmJhY2tGb3J3YXJkR29Ub0l0ZW0oY29u
c3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlCiAgICAgbV9wYWdlLmJhY2tGb3J3YXJkR29U
b0l0ZW1TaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgaWRlbnRpZmllciwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyh1aW50NjRfdCBmcmFtZUlELCBib29sIGlzTWFp
bkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2lu
LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKK3ZvaWQgUHJvdmlz
aW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKEZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIgaWRlbnRpZmllciwKICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25B
Y3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUlu
Zm9EYXRhLCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsCiAgICAg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1
ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsCiAg
ICAgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCkBA
IC0zNjYsNyArMzY2LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6cmVnaXN0ZXJXZWJQ
cm9jZXNzQWNjZXNzaWJpbGl0eVRva2VuKGNvbnN0IElQQzo6RGF0YVIKICNlbmRpZgogCiAjaWYg
RU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6Y29u
dGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0
ZXJVbmJsb2NrSGFuZGxlciYgdW5ibG9ja0hhbmRsZXIsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lk
IFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWUo
Y29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiB1bmJsb2NrSGFuZGxl
ciwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgbV9wYWdlLmNvbnRlbnRGaWx0ZXJE
aWRCbG9ja0xvYWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCB1bmJsb2NrSGFu
ZGxlciwgZnJhbWVJRCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
cm92aXNpb25hbFBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9u
YWxQYWdlUHJveHkuaAppbmRleCAzMzMyMTZhMmNjNzg1NjY3MTYzMjRhYjA2ZmYxYjNiOTYwODBj
MGJlLi5kZTNlZTY4N2ZhN2Q4MTc1MGI1OGZlZGE1ODQ1ODNmZDFmMWUyZDY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKQEAgLTkyLDIzICs5
MiwyMyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6
RW5jb2Rlcj4mKSBmaW5hbDsKIAotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbkFzeW5jKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYm
LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
TmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0YSYmLAorICAgIHZvaWQgZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBGcmFt
ZUluZm9EYXRhJiYsCiAgICAgICAgIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBv
cmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5h
bFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJl
bmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiBy
ZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwot
ICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UodWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlm
aWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmLAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBXZWJDb3JlOjpQb2xp
Y3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYsCiAgICAgICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRl
LCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkQ2hh
bmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIFVSTCYmKTsKLSAgICB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25z
dCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0
cmluZywgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJl
Y3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBVc2VyRGF0YSYp
OwotICAgIHZvaWQgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdh
dGlvbkRhdGFTdG9yZSYsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkUGVyZm9ybUNs
aWVudFJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcm
IGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZENy
ZWF0ZU1haW5GcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZFN0YXJ0UHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBVUkwmJiwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9p
ZCBkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVu
dFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZp
Y2F0ZUluZm8mLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6
Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2Vy
RGF0YSYpOwotICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0
eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFs
VVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6V2lsbENvbnRpbnVl
TG9hZGluZywgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFs
VVJMRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIFVSTCYmKTsKKyAgICB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJp
bmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRp
cmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3Qg
VXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKGNvbnN0
IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAg
IHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIpOworICAgIHZvaWQgZGlkQ3JlYXRlTWFpbkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcik7CisgICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiwgVVJMJiYg
dW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRDb21taXRMb2Fk
Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlk
ZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5m
byYsIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5z
ZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJik7
CisgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJp
dHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25h
bFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OldpbGxDb250aW51
ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBzdGFydFVSTFNjaGVtZVRhc2so
VVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJik7CiAgICAgdm9pZCBiYWNrRm9yd2FyZEdvVG9JdGVt
KGNvbnN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmKT4mJik7Ci0gICAgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyh1aW50NjRfdCBmcmFtZUlELCBib29sIGlz
TWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5
Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25E
YXRhJiYsCisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAgRnJhbWVJbmZvRGF0
YSYmLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5
LAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwg
Y29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYpOwogI2lmIFVTRShRVUlDS19MT09L
KQpAQCAtMTE4LDExICsxMTgsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlZ2lzdGVyV2ViUHJv
Y2Vzc0FjY2Vzc2liaWxpdHlUb2tlbihjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKTsKICNlbmRp
ZgogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKLSAgICB2b2lkIGNvbnRlbnRGaWx0ZXJE
aWRCbG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hh
bmRsZXImLCB1aW50NjRfdCBmcmFtZUlEKTsKKyAgICB2b2lkIGNvbnRlbnRGaWx0ZXJEaWRCbG9j
a0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIm
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogI2VuZGlmCiAKICAgICB2b2lkIGluaXRpYWxp
emVXZWJQYWdlKCk7Ci0gICAgYm9vbCB2YWxpZGF0ZUlucHV0KHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IE9wdGlvbmFsPHVpbnQ2NF90PiYgbmF2aWdhdGlvbklEID0gV1RGOjpudWxsb3B0KTsKKyAg
ICBib29sIHZhbGlkYXRlSW5wdXQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBPcHRp
b25hbDx1aW50NjRfdD4mIG5hdmlnYXRpb25JRCA9IFdURjo6bnVsbG9wdCk7CiAKICAgICBXZWJQ
YWdlUHJveHkmIG1fcGFnZTsKICAgICBSZWY8V2ViUHJvY2Vzc1Byb3h5PiBtX3Byb2Nlc3M7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1By
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJv
eHkuY3BwCmluZGV4IGIyZjc3MjlmZDM5MzVmNzJlMWJjOTExNWEzMGExOGY2NGUzOWZkMjUuLmY3
OGE3YzM4NmM4OTU5MDExNTZiNTY4YWFmOThiYWIyM2IwODA2ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwCkBAIC05
MCw3ICs5MCw3IEBAIHZvaWQgU2VydmljZVdvcmtlclByb2Nlc3NQcm94eTo6dXBkYXRlUHJlZmVy
ZW5jZXNTdG9yZShjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlCiAgICAgc2VuZChNZXNzYWdlczo6
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OlVwZGF0ZVByZWZlcmVuY2VzU3RvcmUgeyBz
dG9yZSB9LCAwKTsKIH0KIAotdm9pZCBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5OjpkaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRf
dCBmcmFtZUlELCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJiBjaGFsbGVuZ2Up
Cit2b2lkIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJiBjaGFsbGVuZ2UpCiB7CiAgICAg
VU5VU0VEX1BBUkFNKHBhZ2VJRCk7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oCmlu
ZGV4IGU5MzY1YWZhYzRmNDdkN2ZkNzQ3Zjk4OTgzYWQ5OTkwZThhYjk3NTUuLjdkODg3NjA1ZWVh
MGI2NDc5ZDY5NzY5MWFiYjU1MjgwN2RlMjE4NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgKQEAgLTQxLDcgKzQxLDcgQEAg
cHVibGljOgogCiAgICAgc3RhdGljIGJvb2wgaGFzUmVnaXN0ZXJlZFNlcnZpY2VXb3JrZXJzKGNv
bnN0IFN0cmluZyYgc2VydmljZVdvcmtlckRpcmVjdG9yeSk7CiAKLSAgICB2b2lkIGRpZFJlY2Vp
dmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0
X3QgZnJhbWVJRCwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYpOworICAgIHZv
aWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZVByb3h5PiYmKTsKIAogICAgIHZvaWQgc3RhcnQoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYs
IE9wdGlvbmFsPFBBTDo6U2Vzc2lvbklEPiBpbml0aWFsU2Vzc2lvbklEKTsKICAgICB2b2lkIHNl
dFVzZXJBZ2VudChjb25zdCBTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
dXNwZW5kZWRQYWdlUHJveHkuY3BwCmluZGV4IGY2ZDNiNTM2ZGY4YWFiMTk3ZDkxMWVkMTRkMmVh
NDBmZWZmMmUxZGQuLmM2NGQ3ZWYxOWJkMGRlNzExNjk2OTk5MmMwNzY3MWU2MWQ4MjgzZWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmNwcApAQCAt
NzgsNyArNzgsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFNldDxJUEM6OlN0cmluZ1JlZmVyZW5jZT4m
IG1lc3NhZ2VOYW1lc1RvSWdub3JlV2hpbGVTdXNwZW5kZWQoKQogfQogI2VuZGlmCiAKLVN1c3Bl
bmRlZFBhZ2VQcm94eTo6U3VzcGVuZGVkUGFnZVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCB1aW50NjRfdCBtYWluRnJhbWVJRCwgU2hvdWxk
RGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlIHNob3Vs
ZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSkKK1N1
c3BlbmRlZFBhZ2VQcm94eTo6U3VzcGVuZGVkUGFnZVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwg
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1l
SUQsIFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5n
TW9kZSBzaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z01vZGUpCiAgICAgOiBtX3BhZ2UocGFnZSkKICAgICAsIG1fcHJvY2VzcyhXVEZNb3ZlKHByb2Nl
c3MpKQogICAgICwgbV9tYWluRnJhbWVJRChtYWluRnJhbWVJRCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmgKaW5kZXggMGRhZDA1NGIyNzJhODE5ZDZlMGIw
NmM3N2NlZDgxMmEyNjNkMTM0MC4uOTE2NTNjYzc4ZWEwMDg2NjBiMTRlMzM1MDU1M2FhODllNzNk
MTkxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmgK
QEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJQcm9jZXNzVGhyb3R0bGVyLmgiCiAjaW5jbHVk
ZSAiV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKQEAgLTQyLDEyICs0
MywxMiBAQCBlbnVtIGNsYXNzIFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVy
YXRlZENvbXBvc2l0aW5nTW9kZSA6IGJvb2wgeyBObwogY2xhc3MgU3VzcGVuZGVkUGFnZVByb3h5
IGZpbmFsOiBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBDYW5NYWtlV2Vha1B0
cjxTdXNwZW5kZWRQYWdlUHJveHk+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1
YmxpYzoKLSAgICBTdXNwZW5kZWRQYWdlUHJveHkoV2ViUGFnZVByb3h5JiwgUmVmPFdlYlByb2Nl
c3NQcm94eT4mJiwgdWludDY0X3QgbWFpbkZyYW1lSUQsIFNob3VsZERlbGF5Q2xvc2luZ1VudGls
RW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSk7CisgICAgU3VzcGVuZGVkUGFnZVBy
b3h5KFdlYlBhZ2VQcm94eSYsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBtYWluRnJhbWVJRCwgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKTsKICAgICB+U3VzcGVuZGVkUGFnZVByb3h5KCk7CiAK
ICAgICBXZWJQYWdlUHJveHkmIHBhZ2UoKSBjb25zdCB7IHJldHVybiBtX3BhZ2U7IH0KICAgICBX
ZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MoKSB7IHJldHVybiBtX3Byb2Nlc3MuZ2V0KCk7IH0KLSAg
ICB1aW50NjRfdCBtYWluRnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbkZyYW1lSUQ7IH0K
KyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQoKSBjb25zdCB7IHJldHVy
biBtX21haW5GcmFtZUlEOyB9CiAKICAgICBib29sIHBhZ2VJc0Nsb3NlZE9yQ2xvc2luZygpIGNv
bnN0OwogCkBAIC03NCw3ICs3NSw3IEBAIHByaXZhdGU6CiAKICAgICBXZWJQYWdlUHJveHkmIG1f
cGFnZTsKICAgICBSZWY8V2ViUHJvY2Vzc1Byb3h5PiBtX3Byb2Nlc3M7Ci0gICAgdWludDY0X3Qg
bV9tYWluRnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbV9tYWluRnJhbWVJ
RDsKICAgICBib29sIG1faXNDbG9zZWQgeyBmYWxzZSB9OwogICAgIFNob3VsZERlbGF5Q2xvc2lu
Z1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSBtX3Nob3VsZERlbGF5Q2xv
c2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSB7IFNob3VsZERlbGF5
Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZTo6Tm8gfTsKICAg
ICBib29sIG1fc2hvdWxkQ2xvc2VXaGVuRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9k
ZSB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5jcHAKaW5kZXggYWI3OTI0MDI5ZTBlZjNhM2JiYWI3
NGNiYWMwMGMyOTdmYTk2YTNjYS4uNGZhNmZkZjYwOGQ2YzM3ZWZlY2IwYTVlMDZjMmNmZGU1MGVi
NTg0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvbkNoZWNrUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRp
YVBlcm1pc3Npb25DaGVja1Byb3h5LmNwcApAQCAtMzMsNyArMzMsNyBAQAogbmFtZXNwYWNlIFdl
YktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotVXNlck1lZGlhUGVybWlzc2lvbkNo
ZWNrUHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5KHVpbnQ2NF90IGZyYW1lSUQs
IENvbXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
PiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+
JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbikKK1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5
OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
Q29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+
JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4m
JiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKQogICAgIDogbV9mcmFtZUlEKGZyYW1lSUQpCiAgICAg
LCBtX2NvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaGFuZGxlcikpCiAgICAgLCBtX3VzZXJNZWRp
YURvY3VtZW50U2VjdXJpdHlPcmlnaW4oV1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbikp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
Q2hlY2tQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
bkNoZWNrUHJveHkuaAppbmRleCBkYzM0MDk4MTcxNGM3Mjc5M2MwMTA1ZDc4MzM5MWI3ZmE5NDU5
MThmLi5lODBiNTE5MTg0MWZkYjI0Njc1NTEwOTcyNTA5NjZlOTBiN2UyYTMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1By
b3h5LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQVBJT2Jq
ZWN0LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL01lZGlhQ29uc3RyYWludHMuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRs
ZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTQxLDcgKzQyLDcgQEAg
cHVibGljOgogICAgIGVudW0gY2xhc3MgUGVybWlzc2lvbkluZm8geyBFcnJvciwgVW5rbm93biwg
R3JhbnRlZCB9OwogICAgIHVzaW5nIENvbXBsZXRpb25IYW5kbGVyID0gV1RGOjpDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFBlcm1pc3Npb25JbmZvKT47CiAKLSAgICBzdGF0aWMgUmVmPFVzZXJNZWRp
YVBlcm1pc3Npb25DaGVja1Byb3h5PiBjcmVhdGUodWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlv
bkhhbmRsZXImJiBoYW5kbGVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luKQorICAgIHN0YXRpYyBSZWY8VXNlck1lZGlhUGVybWlzc2lvbkNoZWNr
UHJveHk+IGNyZWF0ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ29tcGxldGlv
bkhhbmRsZXImJiBoYW5kbGVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVXNl
ck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkoZnJhbWVJRCwgV1RGTW92ZShoYW5kbGVyKSwgV1RG
TW92ZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiksIFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9y
aWdpbikpKTsKICAgICB9CkBAIC01MCwxNyArNTEsMTcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
VXNlck1lZGlhQWNjZXNzSW5mbyhib29sKTsKICAgICB2b2lkIGludmFsaWRhdGUoKSB7IGNvbXBs
ZXRlKFBlcm1pc3Npb25JbmZvOjpFcnJvcik7IH0KIAotICAgIHVpbnQ2NF90IGZyYW1lSUQoKSBj
b25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQogICAgIFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkgeyByZXR1cm4gbV91
c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luLmdldCgpOyB9CiAgICAgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIHsgcmV0dXJuIG1f
dG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luLmdldCgpOyB9CiAgICAgCiBwcml2YXRlOgot
ICAgIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5KHVpbnQ2NF90IGZyYW1lSUQsIENvbXBs
ZXRpb25IYW5kbGVyJiYsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFE
b2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9j
dW1lbnRPcmlnaW4pOworICAgIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5KFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXImJiwgUmVmPFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7CiAgICAgflVzZXJNZWRpYVBlcm1p
c3Npb25DaGVja1Byb3h5KCk7CiAKICAgICB2b2lkIGNvbXBsZXRlKFBlcm1pc3Npb25JbmZvKTsK
ICAgICAKLSAgICB1aW50NjRfdCBtX2ZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIG1fZnJhbWVJRDsKICAgICBDb21wbGV0aW9uSGFuZGxlciBtX2NvbXBsZXRpb25IYW5kbGVy
OwogICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gbV91c2VyTWVkaWFEb2N1bWVudFNl
Y3VyaXR5T3JpZ2luOwogICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gbV90b3BMZXZl
bERvY3VtZW50U2VjdXJpdHlPcmlnaW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5j
cHAKaW5kZXggZDM0MDM3NmZmMjkwN2I4NzI5MzU2NDY0Mjg5ZDQzNDk2ZDQwMDk5MS4uZGI0Y2Rh
MTExNjFkMjIyODI5ODRmZWU5YWVhZDQwYTRlZWMxYTQ5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmNwcApAQCAtMjQwLDkgKzI0MCw5IEBAIHZvaWQgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmZpbmlzaEdyYW50aW5nUmVxdWVzdChVc2VyTWVkaWFQ
ZXJtCiAgICAgcHJvY2Vzc05leHRVc2VyTWVkaWFSZXF1ZXN0SWZOZWVkZWQoKTsKIH0KIAotdm9p
ZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVzZXRBY2Nlc3ModWlu
dDY0X3QgZnJhbWVJRCkKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHk6OnJlc2V0QWNjZXNzKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewotICAgIEFMV0FZU19M
T0coTE9HSURFTlRJRklFUiwgZnJhbWVJRCk7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVS
LCBmcmFtZUlELmxvZ2dpbmdTdHJpbmcoKSk7CiAgICAgbV9ncmFudGVkUmVxdWVzdHMucmVtb3Zl
QWxsTWF0Y2hpbmcoW2ZyYW1lSURdKGNvbnN0IGF1dG8mIGdyYW50ZWRSZXF1ZXN0KSB7CiAgICAg
ICAgIHJldHVybiBncmFudGVkUmVxdWVzdC0+bWFpbkZyYW1lSUQoKSA9PSBmcmFtZUlEOwogICAg
IH0pOwpAQCAtMjUxLDcgKzI1MSw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHk6OnJlc2V0QWNjZXNzKHVpbnQ2NF90IGZyYW1lSUQpCiAgICAgbV9oYXNGaWx0
ZXJlZERldmljZUxpc3QgPSBmYWxzZTsKIH0KIAotY29uc3QgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eSogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnNlYXJj
aEZvckdyYW50ZWRSZXF1ZXN0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2lu
JiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcExldmVs
RG9jdW1lbnRPcmlnaW4sIGJvb2wgbmVlZHNBdWRpbywgYm9vbCBuZWVkc1ZpZGVvKSBjb25zdAor
Y29uc3QgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSogVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHk6OnNlYXJjaEZvckdyYW50ZWRSZXF1ZXN0KEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmln
aW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBib29sIG5l
ZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbykgY29uc3QKIHsKICAgICBpZiAobV9wYWdlLmlzTWVk
aWFTdHJlYW1DYXB0dXJlTXV0ZWQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0yODIs
NyArMjgyLDcgQEAgY29uc3QgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSogVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnMKICAgICByZXR1cm4gbnVsbHB0cjsK
IH0KIAotYm9vbCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6d2FzUmVx
dWVzdERlbmllZCh1aW50NjRfdCBtYWluRnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHVz
ZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8sIGJvb2wgbmVlZHNT
Y3JlZW5DYXB0dXJlKQorYm9vbCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eTo6d2FzUmVxdWVzdERlbmllZChGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQsIGNvbnN0IFNl
Y3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmln
aW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGJvb2wgbmVlZHNBdWRpbywgYm9vbCBuZWVkc1Zp
ZGVvLCBib29sIG5lZWRzU2NyZWVuQ2FwdHVyZSkKIHsKICAgICBmb3IgKGNvbnN0IGF1dG8mIGRl
bmllZFJlcXVlc3QgOiBtX2RlbmllZFJlcXVlc3RzKSB7CiAgICAgICAgIGlmICghZGVuaWVkUmVx
dWVzdC51c2VyTWVkaWFEb2N1bWVudE9yaWdpbi0+aXNTYW1lU2NoZW1lSG9zdFBvcnQodXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW4pKQpAQCAtMzQ2LDcgKzM0Niw3IEBAIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5OjpSZXF1ZXN0QWN0aW9uIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0CiB9CiAjZW5kaWYKIAotdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2Vy
TWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9y
aWdpbiwgTWVkaWFTdHJlYW1SZXF1ZXN0JiYgdXNlclJlcXVlc3QpCit2b2lkIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZv
ckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUmVm
PFNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlP
cmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgTWVkaWFTdHJlYW1SZXF1ZXN0JiYgdXNl
clJlcXVlc3QpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBpZiAoIW1fcGFnZS5o
YXNSdW5uaW5nUHJvY2VzcygpKQpAQCAtNTIxLDcgKzUyMSw3IEBAIHZvaWQgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnByb2Nlc3NVc2VyTWVkaWFQZXJtaXNzaW9uVmFs
aWRSZXF1CiAgICAgbV9wYWdlLnVpQ2xpZW50KCkuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3QobV9wYWdlLCAqd2ViRnJhbWUsIFdURk1vdmUodXNlck1lZGlhT3JpZ2lu
KSwgV1RGTW92ZSh0b3BMZXZlbE9yaWdpbiksICptX2N1cnJlbnRVc2VyTWVkaWFSZXF1ZXN0KTsK
IH0KIAotdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Z2V0VXNl
ck1lZGlhUGVybWlzc2lvbkluZm8odWludDY0X3QgZnJhbWVJRCwgUmVmPFNlY3VyaXR5T3JpZ2lu
PiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQZXJtaXNzaW9uSW5mbyk+
JiYgaGFuZGxlcikKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6
OmdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8
U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxTZWN1cml0eU9y
aWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBl
cm1pc3Npb25JbmZvKT4mJiBoYW5kbGVyKQogewogICAgIGF1dG8qIHdlYkZyYW1lID0gbV9wYWdl
LnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBpZiAoIXdlYkZyYW1lIHx8ICFTZWN1
cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhtX3BhZ2UucGFnZUxvYWRTdGF0ZSgpLmFjdGl2
ZVVSTCgpKS0+aXNTYW1lU2NoZW1lSG9zdFBvcnQodG9wTGV2ZWxEb2N1bWVudE9yaWdpbi5nZXQo
KSkpIHsKQEAgLTU0NSw3ICs1NDUsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5OjpnZXRVc2VyTWVkaWFQZXJtaXNzaW9uSW5mbyh1aW50NjRfdAogICAgIG1f
cGFnZS51aUNsaWVudCgpLmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihtX3BhZ2Us
ICp3ZWJGcmFtZSwgdXNlck1lZGlhT3JpZ2luLmdldCgpLCB0b3BMZXZlbE9yaWdpbi5nZXQoKSwg
cmVxdWVzdC5nZXQoKSk7CiB9CiAKLWJvb2wgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHk6Ondhc0dyYW50ZWRWaWRlb09yQXVkaW9BY2Nlc3ModWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgU2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBTZWN1
cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbikKK2Jvb2wgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc0dyYW50ZWRWaWRlb09yQXVkaW9BY2Nlc3MoRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1
bWVudE9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4p
CiB7CiAgICAgZm9yIChjb25zdCBhdXRvJiBncmFudGVkUmVxdWVzdCA6IG1fZ3JhbnRlZFJlcXVl
c3RzKSB7CiAgICAgICAgIGlmIChncmFudGVkUmVxdWVzdC0+cmVxdWlyZXNEaXNwbGF5Q2FwdHVy
ZSgpKQpAQCAtNjA0LDcgKzYwNCw3IEBAIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y29tcHV0ZUZpbHRlcmVkRGV2CiB9CiAjZW5k
aWYKIAotdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZW51bWVy
YXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVm
PFNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pCit2b2lkIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjplbnVtZXJhdGVNZWRpYURldmljZXNGb3JG
cmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxT
ZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFNlY3VyaXR5T3Jp
Z2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIHVzZXJNZWRpYUlEKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5oCmluZGV4IGY1MDVlMjgwYzQ0MjkwYTgwM2RiZGI2OGM5OGVl
YTYzMGIxYzliYjYuLmJiYmE0NGFjODJiZDI4MDc1YmRkZmJiNDU0NDRjYTU2OWFjY2ZiOTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApAQCAtNjAsMTUgKzYwLDE1IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgaW52YWxpZGF0ZVBlbmRpbmdSZXF1ZXN0cygpOwogCi0gICAgdm9pZCBy
ZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1
aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgIHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxE
b2N1bWVudE9yaWdpbiwgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYpOworICAgIHZvaWQg
cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYg
IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYg
dG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYpOwog
Ci0gICAgdm9pZCByZXNldEFjY2Vzcyh1aW50NjRfdCBtYWluRnJhbWVJRCk7CisgICAgdm9pZCBy
ZXNldEFjY2VzcyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQpOwogICAgIHZv
aWQgdmlld0lzQmVjb21pbmdWaXNpYmxlKCk7CiAKICAgICB2b2lkIGdyYW50UmVxdWVzdChVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Jik7CiAgICAgdm9pZCBkZW55UmVxdWVzdChVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uLCBjb25zdCBTdHJpbmcmIGludmFsaWRD
b25zdHJhaW50ID0geyB9KTsKIAotICAgIHZvaWQgZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJh
bWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pOworICAgIHZvaWQgZW51bWVy
YXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbik7CiAKICAgICB2b2lkIHN0b3BDYXB0dXJlKCk7CiAgICAgdm9pZCBzY2hlZHVs
ZU5leHRSZWplY3Rpb24oKTsKQEAgLTk1LDE5ICs5NSwxOSBAQCBwcml2YXRlOgogICAgIFdURkxv
Z0NoYW5uZWwmIGxvZ0NoYW5uZWwoKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCi0gICAgUmVmPFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZVBlcm1pc3Npb25SZXF1ZXN0KHVp
bnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBtYWluRnJhbWVJRCwgdWludDY0X3QgZnJhbWVJ
RCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
LCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwg
VmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2Vi
Q29yZTo6Q2FwdHVyZURldmljZT4mJiB2aWRlb0RldmljZXMsIFdlYkNvcmU6Ok1lZGlhU3RyZWFt
UmVxdWVzdCYmKTsKKyAgICBSZWY8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gY3Jl
YXRlUGVybWlzc2lvblJlcXVlc3QodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBtYWluRnJhbWVJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWY8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0b3I8V2Vi
Q29yZTo6Q2FwdHVyZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYp
OwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgdm9pZCBmaW5pc2hHcmFudGluZ1JlcXVl
c3QoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYpOwogCi0gICAgY29uc3QgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSogc2VhcmNoRm9yR3JhbnRlZFJlcXVlc3QodWludDY0
X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8pIGNvbnN0OwotICAgIGJv
b2wgd2FzUmVxdWVzdERlbmllZCh1aW50NjRfdCBtYWluRnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBi
b29sIG5lZWRzVmlkZW8sIGJvb2wgbmVlZHNTY3JlZW5DYXB0dXJlKTsKKyAgICBjb25zdCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KiBzZWFyY2hGb3JHcmFudGVkUmVxdWVzdChXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExl
dmVsRG9jdW1lbnRPcmlnaW4sIGJvb2wgbmVlZHNBdWRpbywgYm9vbCBuZWVkc1ZpZGVvKSBjb25z
dDsKKyAgICBib29sIHdhc1JlcXVlc3REZW5pZWQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1h
aW5GcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1l
bnRPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50
T3JpZ2luLCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbywgYm9vbCBuZWVkc1NjcmVl
bkNhcHR1cmUpOwogCiAgICAgdXNpbmcgUGVybWlzc2lvbkluZm8gPSBVc2VyTWVkaWFQZXJtaXNz
aW9uQ2hlY2tQcm94eTo6UGVybWlzc2lvbkluZm87Ci0gICAgdm9pZCBnZXRVc2VyTWVkaWFQZXJt
aXNzaW9uSW5mbyh1aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+
JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4m
JiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBlcm1pc3Np
b25JbmZvKT4mJik7CisgICAgdm9pZCBnZXRVc2VyTWVkaWFQZXJtaXNzaW9uSW5mbyhXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVk
aWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVs
RG9jdW1lbnRPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUGVybWlzc2lvbkluZm8pPiYm
KTsKIAogICAgIFJlcXVlc3RBY3Rpb24gZ2V0UmVxdWVzdEFjdGlvbihjb25zdCBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5Jik7CiAKLSAgICBib29sIHdhc0dyYW50ZWRWaWRlb09yQXVk
aW9BY2Nlc3ModWludDY0X3QsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVk
aWFEb2N1bWVudE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVs
RG9jdW1lbnRPcmlnaW4pOworICAgIGJvb2wgd2FzR3JhbnRlZFZpZGVvT3JBdWRpb0FjY2VzcyhX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRv
cExldmVsRG9jdW1lbnRPcmlnaW4pOwogCiAgICAgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2U+IGNvbXB1dGVGaWx0ZXJlZERldmljZUxpc3QoYm9vbCByZXZlYWxJZHNBbmRMYWJlbHMsIGNv
bnN0IFN0cmluZyYgZGV2aWNlSURIYXNoU2FsdCk7CiAKQEAgLTEzNCw3ICsxMzQsNyBAQCBwcml2
YXRlOgogICAgIFZlY3RvcjxSZWY8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4+IG1f
Z3JhbnRlZFJlcXVlc3RzOwogCiAgICAgc3RydWN0IERlbmllZFJlcXVlc3QgewotICAgICAgICB1
aW50NjRfdCBtYWluRnJhbWVJRDsKKyAgICAgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1h
aW5GcmFtZUlEOwogICAgICAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luOwogICAgICAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IHRv
cExldmVsRG9jdW1lbnRPcmlnaW47CiAgICAgICAgIGJvb2wgaXNBdWRpb0RlbmllZDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eS5jcHAKaW5kZXggNGYwMjg0MDZiYTRhNzc1MTY0NzA2NDc2NzFmM2E5NTA4OGFm
ZjRhYi4uOTY2ZmRhZDVjZjBkZDA5Yjk4ZmY1NTYxMDNlMjA2YWExMTc1Yzk2MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eS5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6
OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBt
YWluRnJhbWVJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
PiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+
JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+
JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiB2aWRlb0Rl
dmljZXMsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmIHJlcXVlc3QpCitVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiBtYW5hZ2VyLCB1aW50NjRfdCB1
c2VyTWVkaWFJRCwgRnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlELCBGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50
T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9y
aWdpbiwgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0
b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiB2aWRlb0RldmljZXMsIFdlYkNvcmU6Ok1lZGlh
U3RyZWFtUmVxdWVzdCYmIHJlcXVlc3QpCiAgICAgOiBtX21hbmFnZXIoJm1hbmFnZXIpCiAgICAg
LCBtX3VzZXJNZWRpYUlEKHVzZXJNZWRpYUlEKQogICAgICwgbV9tYWluRnJhbWVJRChtYWluRnJh
bWVJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkuaAppbmRleCA1NDRmNjExNmVkYjY2MmE4ZmE5NjMxYmMzYWY4
YjcwZGVkYzU4MjdmLi5iYTRlMGEzNDcxNjAzMWIxOGYwODVjZmQwMWE3MzUxNzc4YTAzMDU4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eS5oCkBAIC0yMSw2ICsyMSw3IEBACiAKICNpbmNsdWRlICJBUElPYmpl
Y3QuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NhcHR1cmVEZXZpY2UuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTdHJlYW1SZXF1
ZXN0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgpAQCAtMzUsNyArMzYsNyBAQCBjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTsKIAogY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSA6
IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5PiBjcmVhdGUoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBtYWluRnJhbWVJ
RCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJN
ZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbiwgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgYXVkaW9E
ZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiB2aWRlb0RldmljZXMsIFdl
YkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmIHJlcXVlc3QpCisgICAgc3RhdGljIFJlZjxVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGUoVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3Rv
cjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVkaWFT
dHJlYW1SZXF1ZXN0JiYgcmVxdWVzdCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkobWFuYWdlciwgdXNlck1lZGlhSUQs
IG1haW5GcmFtZUlELCBmcmFtZUlELCBXVEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwg
V1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSwgV1RGTW92ZShhdWRpb0RldmljZXMpLCBX
VEZNb3ZlKHZpZGVvRGV2aWNlcyksIFdURk1vdmUocmVxdWVzdCkpKTsKICAgICB9CkBAIC02NSw4
ICs2Niw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEhhc1BlcnNpc3RlbnRBY2Nlc3MoKSB7IG1f
aGFzUGVyc2lzdGVudEFjY2VzcyA9IHRydWU7IH0KIAogICAgIHVpbnQ2NF90IHVzZXJNZWRpYUlE
KCkgY29uc3QgeyByZXR1cm4gbV91c2VyTWVkaWFJRDsgfQotICAgIHVpbnQ2NF90IG1haW5GcmFt
ZUlEKCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJhbWVJRDsgfQotICAgIHVpbnQ2NF90IGZyYW1l
SUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgbWFpbkZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX21haW5GcmFtZUlEOyB9CisgICAg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1l
SUQ7IH0KIAogICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50U2Vj
dXJpdHlPcmlnaW4oKSB7IHJldHVybiBtX3RvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbi5n
ZXQoKTsgfQogICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudFNl
Y3VyaXR5T3JpZ2luKCkgeyByZXR1cm4gbV91c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2lu
LmdldCgpOyB9CkBAIC04NCwxMiArODUsMTIgQEAgcHVibGljOgogICAgIFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UgdmlkZW9EZXZpY2UoKSBjb25zdCB7IHJldHVybiBtX2VsaWdpYmxlVmlkZW9EZXZp
Y2VzLmlzRW1wdHkoKSA/IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgeyB9IDogbV9lbGlnaWJsZVZp
ZGVvRGV2aWNlc1swXTsgfQogCiBwcml2YXRlOgotICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmLCB1aW50NjRf
dCB1c2VyTWVkaWFJRCwgdWludDY0X3QgbWFpbkZyYW1lSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJl
ZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVm
PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZlY3Rv
cjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVl
c3QmJik7CisgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYsIHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
UmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBS
ZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVj
dG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29y
ZTo6Q2FwdHVyZURldmljZT4mJiB2aWRlb0RldmljZXMsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVx
dWVzdCYmKTsKIAogICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KiBt
X21hbmFnZXI7CiAgICAgdWludDY0X3QgbV91c2VyTWVkaWFJRDsKLSAgICB1aW50NjRfdCBtX21h
aW5GcmFtZUlEOwotICAgIHVpbnQ2NF90IG1fZnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgbV9tYWluRnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbV9m
cmFtZUlEOwogICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gbV91c2VyTWVkaWFEb2N1
bWVudFNlY3VyaXR5T3JpZ2luOwogICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gbV90
b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW47CiAgICAgVmVjdG9yPFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2U+IG1fZWxpZ2libGVWaWRlb0RldmljZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkZyYW1lUHJveHkuY3BwCmluZGV4IDA3MTRiNDFlYjY3NzY4ZDllMGM5ZDQxMmUyMGU4OThm
ODFlNzNkZDguLmVlMzM3MTA4MTcwN2VhMzZkMzUwZWZlMmNjNWEwM2MxZDE5MWRhNGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCkBAIC00NSw5ICs0NSw4IEBA
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBjbGFzcyBXZWJQYWdlUHJveHk7CiAKLVdlYkZy
YW1lUHJveHk6OldlYkZyYW1lUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCB1aW50NjRfdCBmcmFt
ZUlEKQorV2ViRnJhbWVQcm94eTo6V2ViRnJhbWVQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIEZy
YW1lSWRlbnRpZmllciBmcmFtZUlEKQogICAgIDogbV9wYWdlKG1ha2VXZWFrUHRyKHBhZ2UpKQot
ICAgICwgbV9pc0ZyYW1lU2V0KGZhbHNlKQogICAgICwgbV9mcmFtZUlEKGZyYW1lSUQpCiB7CiAg
ICAgV2ViUHJvY2Vzc1Bvb2w6OnN0YXRpc3RpY3MoKS53a0ZyYW1lQ291bnQrKzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaAppbmRleCA0NDYwMGYxYzI3MjkwZTVlNGMxNjhl
YThjZDNjYzM5NjM2ZmRiYmUxLi5jY2RhNjM3ODAwMmQ1NWFiMTU3YTZmMTUzN2M1ZWY3OWRiNDVj
MjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oCkBAIC01OSwxNCAr
NTksMTQgQEAgc3RydWN0IFdlYnNpdGVQb2xpY2llc0RhdGE7CiAKIGNsYXNzIFdlYkZyYW1lUHJv
eHkgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpGcmFtZT4gewog
cHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViRnJhbWVQcm94eT4gY3JlYXRlKFdlYlBhZ2VQcm94
eSYgcGFnZSwgdWludDY0X3QgZnJhbWVJRCkKKyAgICBzdGF0aWMgUmVmPFdlYkZyYW1lUHJveHk+
IGNyZWF0ZShXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlEKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViRnJhbWVQcm94eShw
YWdlLCBmcmFtZUlEKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+V2ViRnJhbWVQcm94eSgpOwog
Ci0gICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQorICAg
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFt
ZUlEOyB9CiAgICAgV2ViUGFnZVByb3h5KiBwYWdlKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlLmdl
dCgpOyB9CiAKICAgICB2b2lkIHdlYlByb2Nlc3NXaWxsU2h1dERvd24oKTsKQEAgLTEzMCw3ICsx
MzAsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBXZWJGcmFtZVByb3h5KFdl
YlBhZ2VQcm94eSYsIHVpbnQ2NF90IGZyYW1lSUQpOworICAgIFdlYkZyYW1lUHJveHkoV2ViUGFn
ZVByb3h5JiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKIAogICAgIFdlYWtQdHI8V2ViUGFn
ZVByb3h5PiBtX3BhZ2U7CiAKQEAgLTEzOCwxMSArMTM4LDExIEBAIHByaXZhdGU6CiAKICAgICBT
dHJpbmcgbV9NSU1FVHlwZTsKICAgICBTdHJpbmcgbV90aXRsZTsKLSAgICBib29sIG1faXNGcmFt
ZVNldDsKKyAgICBib29sIG1faXNGcmFtZVNldCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2NvbnRh
aW5zUGx1Z2luRG9jdW1lbnQgeyBmYWxzZSB9OwogICAgIFJlZlB0cjxXZWJDZXJ0aWZpY2F0ZUlu
Zm8+IG1fY2VydGlmaWNhdGVJbmZvOwogICAgIFJlZlB0cjxXZWJGcmFtZVBvbGljeUxpc3RlbmVy
UHJveHk+IG1fYWN0aXZlTGlzdGVuZXI7Ci0gICAgdWludDY0X3QgbV9mcmFtZUlEOworICAgIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX2ZyYW1lSUQ7CiAjaWYgRU5BQkxFKENPTlRFTlRfRklM
VEVSSU5HKQogICAgIFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciBtX2NvbnRl
bnRGaWx0ZXJVbmJsb2NrSGFuZGxlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKaW5kZXggMzI2MzFjNDUwZWIyNmQ3NTQ1NDY4YjcyNmMxNWE0NDk4NWM5
OThhOS4uZDJmOWE4ODcwNTdiMGRjZDc5NDc4YjEwYjcwMDczYzZkODZjN2JiMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC03NDMsNyArNzQzLDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OmxhdW5jaFByb2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJl
Z2lzdHJhYmxlRG9tYWluKQogICAgIGZpbmlzaEF0dGFjaGluZ1RvV2ViUHJvY2VzcyhJc1Byb2Nl
c3NTd2FwOjpObyk7CiB9CiAKLWJvb2wgV2ViUGFnZVByb3h5OjpzdXNwZW5kQ3VycmVudFBhZ2VJ
ZlBvc3NpYmxlKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgT3B0aW9uYWw8dWludDY0X3Q+
IG1haW5GcmFtZUlELCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVx
dWVzdGVkQnlDbGllbnQsIFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nTW9kZSBzaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ01vZGUpCitib29sIFdlYlBhZ2VQcm94eTo6c3VzcGVuZEN1cnJlbnRQYWdl
SWZQb3NzaWJsZShBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIE9wdGlvbmFsPEZyYW1lSWRl
bnRpZmllcj4gbWFpbkZyYW1lSUQsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vz
c1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlIHNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSkKIHsKICAgICBtX2xhc3RTdXNwZW5kZWRQYWdlID0g
bnVsbHB0cjsKIApAQCAtMjkzMSwxMiArMjkzMSwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVj
ZWl2ZWRQb2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb24gYWN0aW9uLCBBUEk6Ok5hdmlnYXRpb24q
CiAgICAgc2VuZGVyLT5zZW5kKGFjdGlvbiwgbmF2aWdhdGlvbiA/IG5hdmlnYXRpb24tPm5hdmln
YXRpb25JRCgpIDogMCwgZG93bmxvYWRJRCwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpKTsKIH0K
IAotdm9pZCBXZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZSh1aW50NjRfdCBmcmFt
ZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wg
ZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNv
bnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBib29sIGNvbnRh
aW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4g
Zm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lk
IFdlYlBhZ2VQcm94eTo6Y29tbWl0UHJvdmlzaW9uYWxQYWdlKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wg
ZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNv
bnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBib29sIGNvbnRh
aW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4g
Zm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAg
ICAgQVNTRVJUKG1fcHJvdmlzaW9uYWxQYWdlKTsKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KExvYWRpbmcsICJjb21taXRQcm92aXNpb25hbFBhZ2U6IHByZXZpb3VzUElEID0gJWksIG5ld1BJ
RCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIo
KSwgbV9wcm92aXNpb25hbFBhZ2UtPnByb2Nlc3MoKS5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3Bh
Z2VJRC50b1VJbnQ2NCgpKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBtYWluRnJhbWVJRElu
UHJldmlvdXNQcm9jZXNzID0gbV9tYWluRnJhbWUgPyBtYWtlT3B0aW9uYWwobV9tYWluRnJhbWUt
PmZyYW1lSUQoKSkgOiBXVEY6Om51bGxvcHQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVy
PiBtYWluRnJhbWVJREluUHJldmlvdXNQcm9jZXNzID0gbV9tYWluRnJhbWUgPyBtYWtlT3B0aW9u
YWwobV9tYWluRnJhbWUtPmZyYW1lSUQoKSkgOiBXVEY6Om51bGxvcHQ7CiAKICAgICBBU1NFUlQo
bV9wcm9jZXNzLnB0cigpICE9ICZtX3Byb3Zpc2lvbmFsUGFnZS0+cHJvY2VzcygpKTsKIApAQCAt
MzY3Miw3ICszNjcyLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRJbk1haW5G
cmFtZVNjcmlwdFdvcmxkKGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib28KICAgICBtX3Byb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZVNjcmlwdFdv
cmxkKHNjcmlwdCwgZm9yY2VVc2VyR2VzdHVyZSwgd29ybGROYW1lLCBjYWxsYmFja0lEKSwgbV9w
YWdlSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEluRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVy
ZSwgV1RGOjpGdW5jdGlvbjx2b2lkKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiwgYm9vbCBo
YWRFeGNlcHRpb24sIGNvbnN0IEV4Y2VwdGlvbkRldGFpbHMmLCBDYWxsYmFja0Jhc2U6OkVycm9y
KT4mJiBjYWxsYmFja0Z1bmN0aW9uKQordm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRJ
bkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHNjcmlwdCwgYm9v
bCBmb3JjZVVzZXJHZXN0dXJlLCBXVEY6OkZ1bmN0aW9uPHZvaWQoQVBJOjpTZXJpYWxpemVkU2Ny
aXB0VmFsdWUqLCBib29sIGhhZEV4Y2VwdGlvbiwgY29uc3QgRXhjZXB0aW9uRGV0YWlscyYsIENh
bGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCiB7CiAgICAgQVNTRVJUKG1h
aW5GcmFtZSgpLT5mcmFtZUlEKCkgIT0gZnJhbWVJRCk7CiAgICAgYXV0byBjYWxsYmFja0lEID0g
bV9jYWxsYmFja3MucHV0KFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIG1fcHJvY2Vzcy0+dGhy
b3R0bGVyKCkuYmFja2dyb3VuZEFjdGl2aXR5VG9rZW4oKSk7CkBAIC0zODc4LDcgKzM4NzgsNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6cHJlZmVyZW5jZXNEaWRDaGFuZ2UoKQogICAgIG1fcHJvY2Vz
cy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6UHJlZmVyZW5jZXNEaWRDaGFuZ2UocHJlZmVyZW5j
ZXNTdG9yZSgpKSwgbV9wYWdlSUQsIHByaW50aW5nU2VuZE9wdGlvbnMobV9pc1BlcmZvcm1pbmdE
T01QcmludE9wZXJhdGlvbikpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFp
bkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFp
bkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIC8vIFRoZSBEZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyBJUEMgaXMgc3luY2hyb25vdXMgYW5kIG1heSB0aGVy
ZWZvcmUgZ2V0IHByb2Nlc3NlZCBiZWZvcmUgdGhlIERpZENyZWF0ZU1haW5GcmFtZSBvbmUuCiAg
ICAgLy8gV2hlbiB0aGlzIGhhcHBlbnMsIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25T
eW5jKCkgY2FsbHMgZGlkQ3JlYXRlTWFpbkZyYW1lKCkgYW5kIHdlIG5lZWQgdG8gaWdub3JlIHRo
ZSBEaWRDcmVhdGVNYWluRnJhbWUKQEAgLTM4OTcsNyArMzg5Nyw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJRCkKICAgICBtX3Byb2Nlc3Mt
PmZyYW1lQ3JlYXRlZChmcmFtZUlELCAqbV9tYWluRnJhbWUpOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkQ3JlYXRlU3ViZnJhbWUodWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRDcmVhdGVTdWJmcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBQ
YWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC0zOTE3LDcg
KzM5MTcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRlU3ViZnJhbWUodWludDY0X3Qg
ZnJhbWVJRCkKICAgICBtX3Byb2Nlc3MtPmZyYW1lQ3JlYXRlZChmcmFtZUlELCBzdWJGcmFtZS5n
ZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVXaW5kb3codWludDY0X3Qg
ZnJhbWVJRCwgR2xvYmFsV2luZG93SWRlbnRpZmllciYmIHdpbmRvd0lkZW50aWZpZXIpCit2b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRlV2luZG93KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBH
bG9iYWxXaW5kb3dJZGVudGlmaWVyJiYgd2luZG93SWRlbnRpZmllcikKIHsKIH0KIApAQCAtMzk4
MSwxMiArMzk4MSwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGVzdHJveU5hdmlnYXRpb24o
dWludDY0X3QgbmF2aWdhdGlvbklEKQogICAgIG1fbmF2aWdhdGlvblN0YXRlLT5kaWREZXN0cm95
TmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU3Rh
cnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIFVSTCYmIHVybCwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRh
JiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVS
TCYmIHVybCwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkK
IHsKICAgICBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5j
b3B5UmVmKCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgV1RGTW92ZSh1cmwpLCBXVEZNb3ZlKHVu
cmVhY2hhYmxlVVJMKSwgdXNlckRhdGEpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU3Rh
cnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHBy
b2Nlc3MsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYgdXJs
LCBVUkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBX
ZWJQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwsIFVSTCYmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBV
c2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3Io
cGFnZUNsaWVudCgpKTsKIApAQCAtNDAwNSw4ICs0MDA1LDggQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94
eT4mJgogICAgIGlmIChmcmFtZS0+aXNNYWluRnJhbWUoKSAmJiBuYXZpZ2F0aW9uSUQpCiAgICAg
ICAgIG5hdmlnYXRpb24gPSBuYXZpZ2F0aW9uU3RhdGUoKS5uYXZpZ2F0aW9uKG5hdmlnYXRpb25J
RCk7CiAKLSAgICBMT0coTG9hZGluZywgIldlYlBhZ2VQcm94eSAlIiBQUkl1NjQgIiBpbiBwcm9j
ZXNzIHBpZCAlaSBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lIHRvIGZyYW1lSUQgJSIg
UFJJdTY0ICIsIG5hdmlnYXRpb25JRCAlIiBQUkl1NjQgIiwgdXJsICVzIiwgbV9wYWdlSUQudG9V
SW50NjQoKSwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgZnJhbWVJRCwgbmF2aWdhdGlv
bklELCB1cmwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRChMb2FkaW5nLCAiZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZTogd2ViUElEID0g
JWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBwcm9jZXNzLT5w
cm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAgICBM
T0coTG9hZGluZywgIldlYlBhZ2VQcm94eSAlIiBQUkl1NjQgIiBpbiBwcm9jZXNzIHBpZCAlaSBk
aWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lIHRvIGZyYW1lSUQgJSIgUFJJdTY0ICIsIG5h
dmlnYXRpb25JRCAlIiBQUkl1NjQgIiwgdXJsICVzIiwgbV9wYWdlSUQudG9VSW50NjQoKSwgcHJv
Y2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgZnJhbWVJRC50b1VJbnQ2NCgpLCBuYXZpZ2F0aW9u
SUQsIHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKExvYWRpbmcsICJkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAl
aSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIHByb2Nlc3MtPnBy
b2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQo
KSk7CiAKICAgICBhdXRvIHRyYW5zYWN0aW9uID0gbV9wYWdlTG9hZFN0YXRlLnRyYW5zYWN0aW9u
KCk7CiAKQEAgLTQwMzEsNyArNDAzMSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRTdGFydFBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYKICAgICAg
ICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbigqdGhp
cywgbmF2aWdhdGlvbi5nZXQoKSwgcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1
c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRXhw
bGljaXRPcGVuRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgVVJMJiYgdXJsKQordm9pZCBXZWJQ
YWdlUHJveHk6OmRpZEV4cGxpY2l0T3BlbkZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBVUkwmJiB1cmwpCiB7CiAgICAgYXV0byogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZy
YW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBmcmFtZSk7CkBAIC00MDUwLDE1
ICs0MDUwLDE1IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRFeHBsaWNpdE9wZW5Gb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBVUkwmJiB1cmwpCiAgICAgbV9wYWdlTG9hZFN0YXRlLmNvbW1pdENo
YW5nZXMoKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVXNlckRhdGEmIHVz
ZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFVzZXJEYXRhJiB1
c2VyRGF0YSkKIHsKICAgICBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExv
YWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBuYXZpZ2F0aW9u
SUQsIFdURk1vdmUocmVxdWVzdCksIHVzZXJEYXRhKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6
OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgdWludDY0X3QgZnJhbWVJRCwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBVc2VyRGF0
YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0
Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBw
cm9jZXNzLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7Ci0g
ICAgTE9HKExvYWRpbmcsICJXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZv
clByb3Zpc2lvbmFsTG9hZEZvckZyYW1lIHRvIGZyYW1lSUQgJSIgUFJJdTY0ICIsIG5hdmlnYXRp
b25JRCAlIiBQUkl1NjQgIiwgdXJsICVzIiwgZnJhbWVJRCwgbmF2aWdhdGlvbklELCByZXF1ZXN0
LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoTG9hZGluZywgImRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQ
Ukl1NjQsIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCks
IGZyYW1lSUQpOworICAgIExPRyhMb2FkaW5nLCAiV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2Vy
dmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSB0byBmcmFtZUlEICUiIFBSSXU2
NCAiLCBuYXZpZ2F0aW9uSUQgJSIgUFJJdTY0ICIsIHVybCAlcyIsIGZyYW1lSUQudG9VSW50NjQo
KSwgbmF2aWdhdGlvbklELCByZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwor
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZFJlY2VpdmVTZXJ2ZXJSZWRp
cmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVy
KCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAKICAgICBQYWdl
Q2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00MDg1LDkgKzQw
ODUsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPAogICAgICAgICBtX25hdmlnYXRpb25DbGll
bnQtPmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTmF2aWdhdGlvbigqdGhp
cywgbmF2aWdhdGlvbi5nZXQoKSwgcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1
c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6d2lsbFBl
cmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmlu
ZyYgdXJsLCBkb3VibGUgZGVsYXksIFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3QpCit2b2lk
IFdlYlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHVybCwgZG91YmxlIGRlbGF5LCBXZWJDb3Jl
OjpMb2NrQmFja0ZvcndhcmRMaXN0KQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9h
ZGluZywgIndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZTogd2ViUElEID0gJWksIHBh
Z2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nl
c3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQpOworICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgIndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JG
cmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCks
IGZyYW1lSUQudG9VSW50NjQoKSk7CiAKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3Rv
cihwYWdlQ2xpZW50KCkpOwogCkBAIC00MDk4LDkgKzQwOTgsOSBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFN0cgogICAgICAgICBtX25hdmlnYXRpb25DbGllbnQtPndpbGxQZXJmb3JtQ2xpZW50UmVk
aXJlY3QoKnRoaXMsIHVybCwgZGVsYXkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2Fu
Y2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdl
UHJveHk6OmRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkQ2FuY2Vs
Q2xpZW50UmVkaXJlY3RGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1f
cGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
TG9hZGluZywgImRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9j
ZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCkp
OwogCiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApA
QCAtNDExMSwxMiArNDExMSwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2FuY2VsQ2xpZW50
UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQogICAgICAgICBtX25hdmlnYXRpb25D
bGllbnQtPmRpZENhbmNlbENsaWVudFJlZGlyZWN0KCp0aGlzKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
Q2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwpCiB7CiAgICAgZGlkQ2hhbmdlUHJvdmlzaW9u
YWxVUkxGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBuYXZpZ2F0
aW9uSUQsIFdURk1vdmUodXJsKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQ
cm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vz
cywgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QsIFVSTCYmIHVybCkKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90LCBVUkwm
JiB1cmwpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgp
KTsKIApAQCAtNDEzNSw3ICs0MTM1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZVBy
b3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJgogICAgIGZy
YW1lLT5kaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWQodXJsKTsKIH0K
IAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmln
aW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwg
Y29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFdpbGxDb250aW51ZUxvYWRpbmcgd2lsbENvbnRp
bnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6
OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
Y29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFJlc291cmNl
RXJyb3ImIGVycm9yLCBXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250aW51ZUxvYWRpbmcsIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBpZiAobV9wcm92aXNpb25hbFBhZ2UgJiYg
bV9wcm92aXNpb25hbFBhZ2UtPm5hdmlnYXRpb25JRCgpID09IG5hdmlnYXRpb25JRCkgewogICAg
ICAgICAvLyBUaGUgbG9hZCBkaWQgbm90IGZhaWwsIGl0IGlzIG1lcmVseSBoYXBwZW5pbmcgaW4g
YSBuZXcgcHJvdmlzaW9uYWwgcHJvY2Vzcy4KQEAgLTQxNDUsMTAgKzQxNDUsMTAgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBTZWN1cmkKICAgICBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFy
ZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0eU9yaWdpbiwgbmF2
aWdhdGlvbklELCBwcm92aXNpb25hbFVSTCwgZXJyb3IsIHdpbGxDb250aW51ZUxvYWRpbmcsIHVz
ZXJEYXRhKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRG
b3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBS
ZXNvdXJjZUVycm9yJiBlcnJvciwgV2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2Fk
aW5nLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFp
bFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJv
Y2VzcywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYg
ZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcm
IHByb3Zpc2lvbmFsVVJMLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgV2lsbENvbnRpbnVl
TG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7
CiAgICAgTE9HKExvYWRpbmcsICIoTG9hZGluZykgV2ViUGFnZVByb3h5ICUiIFBSSXU2NCAiIGlu
IHdlYiBwcm9jZXNzIHBpZCAlaSBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUgdG8gcHJv
dmlzaW9uYWxVUkwgJXMiLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBwcm9jZXNzLT5wcm9jZXNzSWRl
bnRpZmllcigpLCBwcm92aXNpb25hbFVSTC51dGY4KCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKFByb2Nlc3MsICJkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6IHdl
YlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBk
b21haW4gPSAlcywgY29kZSA9ICVkIiwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9w
YWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCwgZXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSwg
ZXJyb3IuZXJyb3JDb2RlKCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2Vzcywg
ImRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIGRvbWFpbiA9ICVzLCBjb2RlID0gJWQi
LCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFt
ZUlELnRvVUludDY0KCksIGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCksIGVycm9yLmVycm9y
Q29kZSgpKTsKIAogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQo
KSk7CiAKQEAgLTQyMjQsMTEgKzQyMjQsMTEgQEAgc3RhdGljIE9wdGlvblNldDxDcm9zc1NpdGVO
YXZpZ2F0aW9uRGF0YVRyYW5zZmVyOjpGbGFnPiBjaGVja0lmTmF2aWdhdGlvbkNvbnRhaW4KIH0K
ICNlbmRpZgogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3Qgb3BhcXVlRnJh
bWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUlu
Zm8sIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8SGFzSW5zZWN1cmVDb250
ZW50PiBoYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQg
V2ViUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBm
cmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3Qgb3BhcXVlRnJhbWVMb2FkVHlw
ZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wg
Y29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8SGFzSW5zZWN1cmVDb250ZW50PiBoYXNJ
bnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBMT0coTG9h
ZGluZywgIihMb2FkaW5nKSBXZWJQYWdlUHJveHkgJSIgUFJJdTY0ICIgZGlkQ29tbWl0TG9hZEZv
ckZyYW1lIGluIG5hdmlnYXRpb24gJSIgUFJJdTY0LCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBuYXZp
Z2F0aW9uSUQpOwogICAgIExPRyhCYWNrRm9yd2FyZCwgIihCYWNrL0ZvcndhcmQpIEFmdGVyIGxv
YWQgY29tbWl0LCBiYWNrL2ZvcndhcmQgbGlzdCBpcyBub3c6JXMiLCBtX2JhY2tGb3J3YXJkTGlz
dC0+bG9nZ2luZ1N0cmluZygpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcs
ICJkaWRDb21taXRMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBt
X3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KExvYWRpbmcsICJkaWRDb21taXRMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRp
ZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCkpOwogCiAgICAg
UGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDMzOCw5
ICs0MzM4LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQKICNlbmRpZgogfQogCi12b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZEZpbmlzaERv
Y3VtZW50TG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZy
YW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdl
SUQudG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2Fk
aW5nLCAiZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRl
bnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCkpOwogCiAg
ICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDM2
MSwxMCArNDM2MSwxMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoRG9jdW1lbnRMb2Fk
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aQogICAgICAgICBtX25hdmln
YXRpb25DbGllbnQtPmRpZEZpbmlzaERvY3VtZW50TG9hZCgqdGhpcywgbmF2aWdhdGlvbi5nZXQo
KSwgbV9wcm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9iamVjdCgp
KS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBVc2VyRGF0YSYg
dXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKEZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFVzZXJEYXRh
JiB1c2VyRGF0YSkKIHsKICAgICBMT0coTG9hZGluZywgIldlYlBhZ2VQcm94eTo6ZGlkRmluaXNo
TG9hZEZvckZyYW1lIC0gV2ViUGFnZVByb3h5ICVwIHdpdGggbmF2aWdhdGlvbklEICUiIFBSSXU2
NCAiIGRpZEZpbmlzaExvYWQiLCB0aGlzLCBuYXZpZ2F0aW9uSUQpOwotICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoTG9hZGluZywgImRpZEZpbmlzaExvYWRGb3JGcmFtZTogd2ViUElEID0gJWks
IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnBy
b2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQpOworICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZEZpbmlzaExvYWRGb3JGcmFtZTogd2Vi
UElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3By
b2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQu
dG9VSW50NjQoKSk7CiAKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xp
ZW50KCkpOwogCkBAIC00NDA3LDkgKzQ0MDcsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmlu
aXNoTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRAog
ICAgIG1faXNMb2FkaW5nQWx0ZXJuYXRlSFRNTFN0cmluZ0ZvckZhaWxpbmdQcm92aXNpb25hbExv
YWQgPSBmYWxzZTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxMb2FkRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJjZUVy
cm9yJiBlcnJvciwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6
OmRpZEZhaWxMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0IFVzZXJEYXRhJiB1
c2VyRGF0YSkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRGYWls
TG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgZG9tYWluID0gJXMsIGNvZGUgPSAlZCIsIG1fcHJvY2Vzcy0+cHJvY2Vz
c0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCwgZXJyb3IuZG9tYWlu
KCkudXRmOCgpLmRhdGEoKSwgZXJyb3IuZXJyb3JDb2RlKCkpOworICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoTG9hZGluZywgImRpZEZhaWxMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBkb21haW4gPSAlcywgY29k
ZSA9ICVkIiwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2
NCgpLCBmcmFtZUlELnRvVUludDY0KCksIGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCksIGVy
cm9yLmVycm9yQ29kZSgpKTsKIAogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBh
Z2VDbGllbnQoKSk7CiAKQEAgLTQ0NDksOSArNDQ0OSw5IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwKICAgICB9CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50
MzJfdCBvcGFxdWVTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgVVJMJiYgdXJsLCBjb25zdCBV
c2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU2FtZURvY3VtZW50TmF2
aWdhdGlvbkZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIHVpbnQzMl90IG9wYXF1ZVNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLCBVUkwmJiB1
cmwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKExvYWRpbmcsICJkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWU6IHdlYlBJRCA9
ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNz
LT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9
ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJ
bnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCkpOwogCiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBw
cm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDQ4OCw3ICs0NDg4LDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCB1aW50NjRfdAogICAgICAgICBwYWdlQ2xpZW50KCkuZGlkU2FtZURvY3VtZW50TmF2aWdh
dGlvbkZvck1haW5GcmFtZShuYXZpZ2F0aW9uVHlwZSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5
OjpkaWRDaGFuZ2VNYWluRG9jdW1lbnQodWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRDaGFuZ2VNYWluRG9jdW1lbnQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBpZiAobV91c2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIpCkBAIC00NTA3LDcgKzQ1MDcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dmll
d0lzQmVjb21pbmdWaXNpYmxlKCkKICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
UmVjZWl2ZVRpdGxlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRs
ZSwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2Vp
dmVUaXRsZUZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHRp
dGxlLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3Rv
ciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDUyOSwxMSArNDUyOSwxMSBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgU3RyaW5nJiB0aXRsZQogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRG
aXJzdExheW91dEZvckZyYW1lKHVpbnQ2NF90LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmlyc3RMYXlvdXRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIs
IGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdFZpc3Vh
bGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3Qg
VXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9y
KHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQ1NjQsNyArNDU2NCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkaWRSZWFjaExheW91dE1pbGVzdG9uZShPcHRpb25TZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0
b25lPiBsCiAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5yZW5kZXJpbmdQcm9ncmVzc0RpZENoYW5n
ZSgqdGhpcywgbGF5b3V0TWlsZXN0b25lcyk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRE
aXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVXNl
ckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZERpc3BsYXlJbnNlY3VyZUNv
bnRlbnRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgVXNlckRhdGEmIHVz
ZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQo
KSk7CiAKQEAgLTQ1NzgsNyArNDU3OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWREaXNwbGF5
SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVXNlCiAgICAg
bV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWREaXNwbGF5SW5zZWN1cmVDb250ZW50KCp0aGlzLCBtX3By
b2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0KCkpLmdldCgp
KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0
b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQ1OTIsNyArNDU5Miw3IEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBVc2VyRGF0CiAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRSdW5JbnNlY3Vy
ZUNvbnRlbnQoKnRoaXMsIG1fcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2Vy
RGF0YS5vYmplY3QoKSkuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGV0ZWN0
WFNTRm9yRnJhbWUodWludDY0X3QsIGNvbnN0IFVzZXJEYXRhJikKK3ZvaWQgV2ViUGFnZVByb3h5
OjpkaWREZXRlY3RYU1NGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFVzZXJEYXRhJikK
IHsKIH0KIApAQCAtNDYwMSw3ICs0NjAxLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6Om1haW5GcmFt
ZVBsdWdpbkhhbmRsZXNQYWdlU2NhbGVHZXN0dXJlRGlkQ2hhbmdlKGJvb2wgbWFpbkZyYW0KICAg
ICBtX21haW5GcmFtZVBsdWdpbkhhbmRsZXNQYWdlU2NhbGVHZXN0dXJlID0gbWFpbkZyYW1lUGx1
Z2luSGFuZGxlc1BhZ2VTY2FsZUdlc3R1cmU7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpmcmFt
ZURpZEJlY29tZUZyYW1lU2V0KHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgdmFsdWUpCit2b2lkIFdl
YlBhZ2VQcm94eTo6ZnJhbWVEaWRCZWNvbWVGcmFtZVNldChGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgYm9vbCB2YWx1ZSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdl
Q2xpZW50KCkpOwogCkBAIC00NjIwLDcgKzQ2MjAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6YmVn
aW5TYWZlQnJvd3NpbmdDaGVjayhjb25zdCBVUkwmLCBib29sLCBXZWJGcmFtZVBvbGljeUxpc3Rl
bgogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uQXN5bmModWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwKK3ZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNr
SWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsCiAgICAgTmF2aWdh
dGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZy
YW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGlu
Z1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3Qs
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsCiAgICAgSVBDOjpGb3JtRGF0YVJl
ZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJl
Y3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5lcklE
KQogewpAQCAtNDYyOCw3ICs0NjI4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3IKICAgICAg
ICAgV1RGTW92ZShmcmFtZUluZm9EYXRhKSwgb3JpZ2luYXRpbmdQYWdlSUQsIG9yaWdpbmFsUmVx
dWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZXF1ZXN0Qm9keSksIFdURk1vdmUocmVk
aXJlY3RSZXNwb25zZSksIHVzZXJEYXRhLCBsaXN0ZW5lcklEKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sCit2b2lkIFdlYlBhZ2VQcm94eTo6
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sCiAgICAgV2ViQ29yZTo6UG9saWN5
Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdh
dGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZy
YW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGlu
Z1BhZ2VJRCwKICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVx
dWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJl
ZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJl
Y3RSZXNwb25zZSwKICAgICBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIHVpbnQ2NF90IGxpc3Rl
bmVySUQpCkBAIC00NzY5LDcgKzQ3NjksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2NlcwogICAg
ICAgICBiZWdpblNhZmVCcm93c2luZ0NoZWNrKHJlcXVlc3QudXJsKCksIGZyYW1lLmlzTWFpbkZy
YW1lKCksIGxpc3RlbmVyKTsKIAogICAgIEFQSTo6TmF2aWdhdGlvbiogbWFpbkZyYW1lTmF2aWdh
dGlvbiA9IGZyYW1lLmlzTWFpbkZyYW1lKCkgPyBuYXZpZ2F0aW9uLmdldCgpIDogbnVsbHB0cjsK
LSAgICBXZWJGcmFtZVByb3h5KiBvcmlnaW5hdGluZ0ZyYW1lID0gcHJvY2Vzcy0+d2ViRnJhbWUo
b3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLmZyYW1lSUQpOworICAgIFdlYkZyYW1lUHJveHkqIG9y
aWdpbmF0aW5nRnJhbWUgPSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEuZnJhbWVJRCA/IHByb2Nl
c3MtPndlYkZyYW1lKCpvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEuZnJhbWVJRCkgOiBudWxscHRy
OwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBpZiAoYXV0byog
cmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlID0gd2Vic2l0ZURhdGFTdG9yZSgpLnJlc291cmNl
TG9hZFN0YXRpc3RpY3MoKSkKQEAgLTQ4NTgsNyArNDg1OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
Ojpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgV2ViRnJhbWVQcm94eSYgZnJhbWUsIGNvbnN0IFVS
TCYgcGFnCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb25TeW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNo
ZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlz
TWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3Jp
Z2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKICAgICB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZy
YW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gb3Jp
Z2luYXRpbmdQYWdlSUQsCiAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmln
aW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9y
bURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYm
IHJlZGlyZWN0UmVzcG9uc2UsCiAgICAgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVs
YXllZFJlcGx5JiYgcmVwbHkpCkBAIC00ODc2LDcgKzQ4NzYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmModWludDY0X3QgZnJhbWVJRCwg
Ym9vbCBpcwogICAgICAgICBXVEZNb3ZlKGZyYW1lSW5mb0RhdGEpLCBvcmlnaW5hdGluZ1BhZ2VJ
RCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVlc3RCb2R5
KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNlckRhdGEsIFdURk1vdmUocmVwbHkpKTsK
IH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25T
eW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgdWludDY0X3QgZnJhbWVJ
RCwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCit2b2lkIFdl
YlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNTaGFyZWQoUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9v
bCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0
eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCiAgICAgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRh
LCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+
IG9yaWdpbmF0aW5nUGFnZUlELAogICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYg
b3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6
OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmJiByZWRpcmVjdFJlc3BvbnNlLAogICAgIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6
OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQpAQCAtNDg5Myw3ICs0ODkzLDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQ
cm9jZXNzUHJveHkKICAgICBzZW5kZXItPnNlbmQoUG9saWN5QWN0aW9uOjpVc2UsIG5hdmlnYXRp
b25JRCwgRG93bmxvYWRJRCgpLCBXVEY6Om51bGxvcHQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVu
dGlmaWVyIGlkZW50aWZpZXIsCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3
V2luZG93QWN0aW9uKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdp
bkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlm
aWVyLAogICAgIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIFJl
c291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCB1aW50NjRf
dCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgUGFnZUNsaWVu
dFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKQEAgLTQ5MzEsMTMgKzQ5MzEsMTMg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cmkKICAgICAgICAgCiB9CiAKLXZvaWQgV2ViUGFnZVBy
b3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1
cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmll
ciBpZGVudGlmaWVyLAordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNl
KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1l
U2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAogICAgIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0
IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVz
ZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZCht
X3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBmcmFtZVNlY3VyaXR5T3JpZ2luLCBpZGVudGlm
aWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRv
d25sb2FkQXR0cmlidXRlLCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7CiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmIHByb2Nlc3MsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYg
ZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCit2
b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2Vj
dXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZp
ZXIgaWRlbnRpZmllciwKICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wg
Y2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRf
dCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgUGFnZUNsaWVu
dFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKQEAgLTQ5NzEsNyArNDk3MSw3IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsCiAgICAgfQogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6
dW5hYmxlVG9JbXBsZW1lbnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VF
cnJvciYgZXJyb3IsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5
Ojp1bmFibGVUb0ltcGxlbWVudFBvbGljeShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3Qg
UmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBQ
YWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00OTg1LDcg
KzQ5ODUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dW5hYmxlVG9JbXBsZW1lbnRQb2xpY3kodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VFcnJvcgogCiAvLyBGb3JtQ2xpZW50CiAKLXZv
aWQgV2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0Rm9ybSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRf
dCBzb3VyY2VGcmFtZUlELCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4m
IHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVz
ZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OndpbGxTdWJtaXRGb3JtKEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBGcmFtZUlkZW50aWZpZXIgc291cmNlRnJhbWVJRCwgY29uc3QgVmVjdG9yPHN0
ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+JiB0ZXh0RmllbGRWYWx1ZXMsIHVpbnQ2NF90IGxpc3Rl
bmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBXZWJGcmFtZVByb3h5KiBm
cmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyht
X3Byb2Nlc3MsIGZyYW1lKTsKQEAgLTUwMDMsMTIgKzUwMDMsMTIgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmNvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlvbihVUkwmJiB1cmwsIENvbnRlbnRSdWxlTGlz
dFJlc3VsdHMKICAgICBtX25hdmlnYXRpb25DbGllbnQtPmNvbnRlbnRSdWxlTGlzdE5vdGlmaWNh
dGlvbigqdGhpcywgV1RGTW92ZSh1cmwpLCBXVEZNb3ZlKHJlc3VsdHMpKTsKIH0KICAgICAKLXZv
aWQgV2ViUGFnZVByb3h5OjpkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShjb25zdCBXZWJO
YXZpZ2F0aW9uRGF0YVN0b3JlJiBzdG9yZSwgdWludDY0X3QgZnJhbWVJRCkgCit2b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdhdGlv
bkRhdGFTdG9yZSYgc3RvcmUsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIGRpZE5h
dmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIHN0b3Jl
LCBmcmFtZUlEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZE5hdmlnYXRlV2l0aE5hdmln
YXRpb25EYXRhU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgY29uc3QgV2Vi
TmF2aWdhdGlvbkRhdGFTdG9yZSYgc3RvcmUsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQoUmVmPFdlYlByb2Nl
c3NQcm94eT4mJiBwcm9jZXNzLCBjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiBzdG9yZSwg
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChM
b2FkaW5nLCAiZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQ6IHdlYlBJRCA9ICVp
LCBwYWdlSUQgPSAlIiBQUkl1NjQsIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFn
ZUlELnRvVUludDY0KCkpOwogCkBAIC01MDIzLDE0ICs1MDIzLDE0IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YVNoYXJlZChSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmIHByCiAgICAgcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5oaXN0b3J5Q2xpZW50KCkuZGlk
TmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEocHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKSwgKnRoaXMs
IHN0b3JlLCAqZnJhbWUpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybUNsaWVu
dFJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRl
c3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6
OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywg
Y29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQpCiB7CiAgICAgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkKG1fcHJvY2Vzcy5jb3B5
UmVmKCksIHNvdXJjZVVSTFN0cmluZywgZGVzdGluYXRpb25VUkxTdHJpbmcsIGZyYW1lSUQpOwog
fQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJp
bmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQp
Cit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcs
IGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlEKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZFBlcmZvcm1D
bGllbnRSZWRpcmVjdFNoYXJlZDogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0LCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJ
RC50b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRp
bmcsICJkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQ6IHdlYlBJRCA9ICVpLCBwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50
aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAg
IFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTUwNTAs
MTIgKzUwNTAsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVj
dFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MKICAgICBwcm9jZXNzLT5wcm9j
ZXNzUG9vbCgpLmhpc3RvcnlDbGllbnQoKS5kaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QocHJvY2Vz
cy0+cHJvY2Vzc1Bvb2woKSwgKnRoaXMsIHNvdXJjZVVSTFN0cmluZywgZGVzdGluYXRpb25VUkxT
dHJpbmcsICpmcmFtZSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVy
UmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVz
dGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBj
b25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCkKIHsKICAgICBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQobV9wcm9jZXNzLmNvcHlS
ZWYoKSwgc291cmNlVVJMU3RyaW5nLCBkZXN0aW5hdGlvblVSTFN0cmluZywgZnJhbWVJRCk7CiB9
CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQoUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmlu
ZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCkK
K3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywg
Y29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQpCiB7CiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkUGVyZm9ybVNl
cnZlclJlZGlyZWN0OiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0LCBwcm9jZXNzLT5w
cm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpKTsKIApAQCAtNTA3Niw3ICs1
MDc2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdFNoYXJl
ZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MKICAgICBwcm9jZXNzLT5wcm9jZXNzUG9v
bCgpLmhpc3RvcnlDbGllbnQoKS5kaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QocHJvY2Vzcy0+cHJv
Y2Vzc1Bvb2woKSwgKnRoaXMsIHNvdXJjZVVSTFN0cmluZywgZGVzdGluYXRpb25VUkxTdHJpbmcs
ICpmcmFtZSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRVcGRhdGVIaXN0b3J5VGl0bGUo
Y29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIHVpbnQ2NF90IGZyYW1lSUQp
Cit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkVXBkYXRlSGlzdG9yeVRpdGxlKGNvbnN0IFN0cmluZyYg
dGl0bGUsIGNvbnN0IFN0cmluZyYgdXJsLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAg
ICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC01MTA3
LDggKzUxMDcsMTAgQEAgc3RhdGljIHZvaWQgdHJ5U09BdXRob3JpemF0aW9uKFJlZjxBUEk6Ok5h
dmlnYXRpb25BY3Rpb24+JiYgbmF2aWdhdGlvbkFjdGlvbiwgV2UKIAogdm9pZCBXZWJQYWdlUHJv
eHk6OmNyZWF0ZU5ld1BhZ2UoY29uc3QgRnJhbWVJbmZvRGF0YSYgb3JpZ2luYXRpbmdGcmFtZUlu
Zm9EYXRhLCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFdpbmRvd0ZlYXR1cmVzJiYgd2luZG93RmVhdHVyZXMsIE5h
dmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OkNyZWF0ZU5ld1BhZ2U6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQogewotICAgIE1F
U1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBtX3Byb2Nlc3MtPndlYkZyYW1lKG9yaWdpbmF0aW5nRnJh
bWVJbmZvRGF0YS5mcmFtZUlEKSk7Ci0gICAgYXV0byBvcmlnaW5hdGluZ0ZyYW1lSW5mbyA9IEFQ
STo6RnJhbWVJbmZvOjpjcmVhdGUob3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBvcmlnaW5hdGlu
Z1BhZ2VJRCA/IG1fcHJvY2Vzcy0+d2ViUGFnZSgqb3JpZ2luYXRpbmdQYWdlSUQpIDogbnVsbHB0
cik7CisgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0
YS5mcmFtZUlEKTsKKyAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgbV9wcm9jZXNzLT53ZWJG
cmFtZSgqb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLmZyYW1lSUQpKTsKKworICAgIGF1dG8gb3Jp
Z2luYXRpbmdGcmFtZUluZm8gPSBBUEk6OkZyYW1lSW5mbzo6Y3JlYXRlKG9yaWdpbmF0aW5nRnJh
bWVJbmZvRGF0YSwgbV9wcm9jZXNzLT53ZWJQYWdlKCpvcmlnaW5hdGluZ1BhZ2VJRCkpOwogICAg
IGF1dG8gbWFpbkZyYW1lVVJMID0gbV9tYWluRnJhbWUgPyBtX21haW5GcmFtZS0+dXJsKCkgOiBV
UkwoKTsKICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgbWFpbkZyYW1lVVJMLCByZXF1ZXN0LCByZXBseSA9IFdURk1vdmUo
cmVwbHkpXSAoUmVmUHRyPFdlYlBhZ2VQcm94eT4gbmV3UGFnZSkgbXV0YWJsZSB7CiAgICAgICAg
IGlmICghbmV3UGFnZSkgewpAQCAtNTE3OCw3ICs1MTgwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmNsb3NlUGFnZShib29sIHN0b3BSZXNwb25zaXZlbmVzc1RpbWVyKQogICAgIG1fdWlDbGllbnQt
PmNsb3NlKHRoaXMpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEFsZXJ0
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmln
aW4sIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2
YVNjcmlwdEFsZXJ0OjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpy
dW5KYXZhU2NyaXB0QWxlcnQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5
T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdEFsZXJ0OjpEZWxheWVkUmVwbHkmJiByZXBs
eSkKIHsKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJh
bWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKQEAgLTUxOTcsNyAr
NTE5OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0QWxlcnQodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhCiAgICAgbV91aUNsaWVudC0+cnVuSmF2
YVNjcmlwdEFsZXJ0KHRoaXMsIG1lc3NhZ2UsIGZyYW1lLCBzZWN1cml0eU9yaWdpbiwgV1RGTW92
ZShyZXBseSkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdENvbmZpcm0o
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdp
biwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZh
U2NyaXB0Q29uZmlybTo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit2b2lkIFdlYlBhZ2VQcm94eTo6
cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3Vy
aXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENvbmZpcm06OkRlbGF5ZWRSZXBseSYm
IHJlcGx5KQogewogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFt
ZShmcmFtZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwpAQCAtNTIx
Nyw3ICs1MjE5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRDb25maXJtKHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGEKICAgICBtX3VpQ2xpZW50LT5y
dW5KYXZhU2NyaXB0Q29uZmlybSh0aGlzLCBtZXNzYWdlLCBmcmFtZSwgc2VjdXJpdHlPcmlnaW4s
IFdURk1vdmUocmVwbHkpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRQ
cm9tcHQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0
eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1
ZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdDo6RGVsYXllZFJl
cGx5JiYgcmVwbHkpCit2b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9y
aWdpbiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwg
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdDo6RGVsYXllZFJlcGx5
JiYgcmVwbHkpCiB7CiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZy
YW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBmcmFtZSk7CkBAIC01
Mzc2LDcgKzUzNzgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cm9vdFZpZXdUb0FjY2Vzc2liaWxp
dHlTY3JlZW4oY29uc3QgSW50UmVjdCYgdmlld1JlY3QsIENvbXBsZQogICAgIGNvbXBsZXRpb25I
YW5kbGVyKHBhZ2VDbGllbnQoKS5yb290Vmlld1RvQWNjZXNzaWJpbGl0eVNjcmVlbih2aWV3UmVj
dCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmln
aW4sIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsOjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3ZvaWQgV2ViUGFn
ZVByb3h5OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuQmVmb3JlVW5sb2FkQ29uZmly
bVBhbmVsOjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsKICAgICBXZWJGcmFtZVByb3h5KiBmcmFt
ZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3By
b2Nlc3MsIGZyYW1lKTsKQEAgLTU0MTYsNyArNTQxOCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpw
YWdlRGlkU2Nyb2xsKCkKICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cnVuT3BlblBh
bmVsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1
cml0eU9yaWdpbiwgY29uc3QgRmlsZUNob29zZXJTZXR0aW5ncyYgc2V0dGluZ3MpCit2b2lkIFdl
YlBhZ2VQcm94eTo6cnVuT3BlblBhbmVsKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBT
ZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIGNvbnN0IEZpbGVDaG9vc2Vy
U2V0dGluZ3MmIHNldHRpbmdzKQogewogICAgIGlmIChtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVy
KSB7CiAgICAgICAgIG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXItPmludmFsaWRhdGUoKTsKQEAg
LTU0NTUsNyArNTQ1Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzaG93U2hhcmVTaGVldChjb25z
dCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMJiBzaGFyZURhdGEsIFNoYXJlCiAgICAgcGFnZUNsaWVu
dCgpLnNob3dTaGFyZVNoZWV0KHNoYXJlRGF0YSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwogfQogICAgIAotdm9pZCBXZWJQYWdlUHJveHk6OnByaW50RnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBX
ZWJQYWdlUHJveHk6OnByaW50RnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIW1f
aXNQZXJmb3JtaW5nRE9NUHJpbnRPcGVyYXRpb24pOwogICAgIG1faXNQZXJmb3JtaW5nRE9NUHJp
bnRPcGVyYXRpb24gPSB0cnVlOwpAQCAtNjc2OSwyNyArNjc3MSwyNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6cHJpbnRGaW5pc2hlZENhbGxiYWNrKGNvbnN0IFJlc291cmNlRXJyb3ImIHByaW50RXJy
b3IsIENhbGxiYQogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpmb2N1c2VkRnJhbWVD
aGFuZ2VkKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6Zm9jdXNlZEZyYW1l
Q2hhbmdlZChjb25zdCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+JiBmcmFtZUlEKQogewogICAg
IGlmICghZnJhbWVJRCkgewogICAgICAgICBtX2ZvY3VzZWRGcmFtZSA9IG51bGxwdHI7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vz
cy0+d2ViRnJhbWUoZnJhbWVJRCk7CisgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nl
c3MtPndlYkZyYW1lKCpmcmFtZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJh
bWUpOwogCiAgICAgbV9mb2N1c2VkRnJhbWUgPSBmcmFtZTsKIH0KIAotdm9pZCBXZWJQYWdlUHJv
eHk6OmZyYW1lU2V0TGFyZ2VzdEZyYW1lQ2hhbmdlZCh1aW50NjRfdCBmcmFtZUlEKQordm9pZCBX
ZWJQYWdlUHJveHk6OmZyYW1lU2V0TGFyZ2VzdEZyYW1lQ2hhbmdlZChjb25zdCBPcHRpb25hbDxG
cmFtZUlkZW50aWZpZXI+JiBmcmFtZUlEKQogewogICAgIGlmICghZnJhbWVJRCkgewogICAgICAg
ICBtX2ZyYW1lU2V0TGFyZ2VzdEZyYW1lID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFt
ZUlEKTsKKyAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoKmZy
YW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBmcmFtZSk7CiAKICAgICBtX2Zy
YW1lU2V0TGFyZ2VzdEZyYW1lID0gZnJhbWU7CkBAIC03MzQ1LDI2ICs3MzQ3LDI2IEBAIFdlYWtQ
dHI8U2VjS2V5UHJveHlTdG9yZT4gV2ViUGFnZVByb3h5OjpzZWNLZXlQcm94eVN0b3JlKGNvbnN0
IFdlYkNvcmU6OkF1dGhlbnRpCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAgICAgCi12b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkodWludDY0
X3QsIFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmIGF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZVByb3h5KEZyYW1lSWRlbnRpZmllciwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJv
eHk+JiYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpCiB7CiAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50
LT5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKnRoaXMsIGF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmV4Y2VlZGVkRGF0YWJh
c2VRdW90YSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1
aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0
X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkV4Y2VlZGVkRGF0YWJhc2VRdW90YTo6RGVsYXllZFJlcGx5JiYgcmVw
bHkpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJy
ZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERh
dGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkV4Y2VlZGVkRGF0YWJhc2VRdW90YTo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7CiAgICAg
cmVxdWVzdFN0b3JhZ2VTcGFjZShmcmFtZUlELCBvcmlnaW5JZGVudGlmaWVyLCBkYXRhYmFzZU5h
bWUsIGRpc3BsYXlOYW1lLCBjdXJyZW50UXVvdGEsIGN1cnJlbnRPcmlnaW5Vc2FnZSwgY3VycmVu
dERhdGFiYXNlVXNhZ2UsIGV4cGVjdGVkVXNhZ2UsIFtyZXBseSA9IFdURk1vdmUocmVwbHkpXShh
dXRvIHF1b3RhKSBtdXRhYmxlIHsKICAgICAgICAgcmVwbHkocXVvdGEpOwogICAgIH0pOwogfQog
Ci12b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFN0b3JhZ2VTcGFjZSh1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VO
YW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVp
bnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2Us
IHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3Qp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RTdG9yYWdl
U3BhY2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5h
bWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1
aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0g
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChTdG9yYWdlLCAicmVxdWVzdFN0b3JhZ2VTcGFjZSBm
b3IgZnJhbWUgJSIgUFJJdTY0ICIsIGN1cnJlbnQgcXVvdGEgJSIgUFJJdTY0ICIgY3VycmVudCB1
c2FnZSAlIiBQUkl1NjQgIiBleHBlY3RlZCB1c2FnZSAlIiBQUkl1NjQsIGZyYW1lSUQsIGN1cnJl
bnRRdW90YSwgY3VycmVudERhdGFiYXNlVXNhZ2UsIGV4cGVjdGVkVXNhZ2UpOworICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoU3RvcmFnZSwgInJlcXVlc3RTdG9yYWdlU3BhY2UgZm9yIGZyYW1l
ICUiIFBSSXU2NCAiLCBjdXJyZW50IHF1b3RhICUiIFBSSXU2NCAiIGN1cnJlbnQgdXNhZ2UgJSIg
UFJJdTY0ICIgZXhwZWN0ZWQgdXNhZ2UgJSIgUFJJdTY0LCBmcmFtZUlELnRvVUludDY0KCksIGN1
cnJlbnRRdW90YSwgY3VycmVudERhdGFiYXNlVXNhZ2UsIGV4cGVjdGVkVXNhZ2UpOwogCiAgICAg
U3RvcmFnZVJlcXVlc3RzOjpzaW5nbGV0b24oKS5wcm9jZXNzT3JBcHBlbmQoW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcGFnZVVSTCA9IGN1cnJlbnRVUkwoKSwgZnJhbWVJ
RCwgb3JpZ2luSWRlbnRpZmllciwgZGF0YWJhc2VOYW1lLCBkaXNwbGF5TmFtZSwgY3VycmVudFF1
b3RhLCBjdXJyZW50T3JpZ2luVXNhZ2UsIGN1cnJlbnREYXRhYmFzZVVzYWdlLCBleHBlY3RlZFVz
YWdlLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11
dGFibGUgewogICAgICAgICB0aGlzLT5tYWtlU3RvcmFnZVNwYWNlUmVxdWVzdChmcmFtZUlELCBv
cmlnaW5JZGVudGlmaWVyLCBkYXRhYmFzZU5hbWUsIGRpc3BsYXlOYW1lLCBjdXJyZW50UXVvdGEs
IGN1cnJlbnRPcmlnaW5Vc2FnZSwgY3VycmVudERhdGFiYXNlVXNhZ2UsIGV4cGVjdGVkVXNhZ2Us
IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgZnJhbWVJRCwg
cGFnZVVSTCA9IFdURk1vdmUocGFnZVVSTCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlciksIGN1cnJlbnRRdW90YV0oYXV0byBxdW90YSkgbXV0YWJsZSB7CiAK
LSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoU3RvcmFnZSwgInJlcXVlc3RTdG9y
YWdlU3BhY2UgcmVzcG9uc2UgZm9yIGZyYW1lICUiIFBSSXU2NCAiLCBxdW90YSAlIiBQUkl1NjQs
IGZyYW1lSUQsIHF1b3RhKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoU3Rv
cmFnZSwgInJlcXVlc3RTdG9yYWdlU3BhY2UgcmVzcG9uc2UgZm9yIGZyYW1lICUiIFBSSXU2NCAi
LCBxdW90YSAlIiBQUkl1NjQsIGZyYW1lSUQudG9VSW50NjQoKSwgcXVvdGEpOwogCiAgICAgICAg
ICAgICBpZiAocXVvdGEgPD0gY3VycmVudFF1b3RhICYmIHRoaXMtPmN1cnJlbnRVUkwoKSA9PSBw
YWdlVVJMKSB7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChTdG9yYWdl
LCAic3RvcmFnZSBzcGFjZSBpbmNyZWFzZSBkZW5pZWQiKTsKQEAgLTczNzYsNyArNzM3OCw3IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0U3RvcmFnZVNwYWNlKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5
OjptYWtlU3RvcmFnZVNwYWNlUmVxdWVzdCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcm
IG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJp
bmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRP
cmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVj
dGVkVXNhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6Om1ha2VTdG9yYWdlU3BhY2VSZXF1ZXN0KEZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRf
dCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3Vy
cmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQodWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChtX2lz
UXVvdGFJbmNyZWFzZURlbmllZCkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjdXJyZW50
UXVvdGEpOwpAQCAtNzQwMiw3ICs3NDA0LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlYWNoZWRB
cHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGkKICAg
ICBtX3VpQ2xpZW50LT5yZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKHRoaXMsIHNl
Y3VyaXR5T3JpZ2luLmdldCgpLCBjdXJyZW50UXVvdGEsIHRvdGFsQnl0ZXNOZWVkZWQsIFdURk1v
dmUocmVwbHkpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RHZW9sb2NhdGlvblBl
cm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCB1aW50NjRfdCBmcmFtZUlE
LCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0R2Vv
bG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQogewogICAgIFdlYkZy
YW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBNRVNT
QUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwpAQCAtNzQ0Niw3ICs3NDQ4LDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnNldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWRPdmVycmlkZShPcHRpb25h
bDxib29sPiBlbmFibGVkKQogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0
VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmICB1c2VyTWVkaWFE
b2N1bWVudE9yaWdpbkRhdGEsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9w
TGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmIHJl
cXVlc3QpCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JG
cmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luRGF0
YSwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luRGF0YSwgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYgcmVxdWVzdCkKIHsKICNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBtX3Byb2Nl
c3MtPndlYkZyYW1lKGZyYW1lSUQpKTsKQEAgLTc0NjEsNyArNzQ2Myw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJN
ZWRpYUlELCB1aW50CiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmVudW1lcmF0ZU1l
ZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURvY3VtZW50T3Jp
Z2luRGF0YSwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjplbnVtZXJhdGVNZWRpYURldmljZXNG
b3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5E
YXRhLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRP
cmlnaW5EYXRhKQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgV2ViRnJhbWVQcm94
eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwpAQCAtNzQ5Myw3ICs3NDk1
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNsZWFyVXNlck1lZGlhU3RhdGUoKQogfQogCiAjaWYg
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLXZvaWQgV2ViUGFnZVByb3h5OjpzaG91bGRBbGxv
d0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIG9yaWdpbkRhdGEsIGJvb2wgbWF5UHJvbXB0LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3Rh
dGUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6OnNob3VsZEFsbG93
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIG9yaWdpbkRhdGEsIGJvb2wgbWF5UHJvbXB0
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNz
aW9uU3RhdGUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYkZyYW1lUHJveHkqIGZy
YW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKG1f
cHJvY2VzcywgZnJhbWUpOwpAQCAtODczNiw3ICs4NzM4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmxvYWRTeW5jaHJvbm91c1VSTFNjaGVtZVRhc2soVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJiBw
YXJhbWUKIH0KIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi12b2lkIFdl
YlBhZ2VQcm94eTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1l
RG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNj
ZXNzQ29uZmlybShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgbV91aUNsaWVudC0+cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKCp0aGlzLCBtX3By
b2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpLCBzdWJGcmFtZURvbWFpbiwgdG9wRnJhbWVEb21haW4s
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKaW5kZXggYjQzODNjYWY4OGYzNzI3MmNmOTQ3N2I2NDAzOWNlOWVmNWM5NDlh
MS4uMjA3Njk1OTFhYzFlMzIyZjUxY2RjZjUyMGU1YWNlZWIyZTNmOWNhOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEwMTgsNyArMTAxOCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZShjb25zdCBTdHJpbmcmLCBib29sLCBX
VEY6OkZ1bmN0aW9uPHZvaWQgKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiwgYm9vbCBoYWRF
eGNlcHRpb24sIGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHMmLCBDYWxsYmFja0Jhc2U6
OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKTsKICAgICB2b2lkIHJ1bkphdmFTY3JpcHRJbk1h
aW5GcmFtZVNjcmlwdFdvcmxkKGNvbnN0IFN0cmluZyYsIGJvb2wsIGNvbnN0IE9wdGlvbmFsPFN0
cmluZz4mIHdvcmxkTmFtZSwgV1RGOjpGdW5jdGlvbjx2b2lkKEFQSTo6U2VyaWFsaXplZFNjcmlw
dFZhbHVlKiwgYm9vbCBoYWRFeGNlcHRpb24sIGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRldGFp
bHMmLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKTsKICAgICAvLyBG
b3Igc3ViIGZyYW1lcy4KLSAgICB2b2lkIHJ1bkphdmFTY3JpcHRJbkZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIFdURjo6
RnVuY3Rpb248dm9pZChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSosIGJvb2wgaGFkRXhjZXB0
aW9uLCBjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzJiwgQ2FsbGJhY2tCYXNlOjpFcnJv
cik+JiYgY2FsbGJhY2tGdW5jdGlvbik7CisgICAgdm9pZCBydW5KYXZhU2NyaXB0SW5GcmFtZShX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib29sIGZvcmNl
VXNlckdlc3R1cmUsIFdURjo6RnVuY3Rpb248dm9pZChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSosIGJvb2wgaGFkRXhjZXB0aW9uLCBjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzJiwg
Q2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbik7CiAgICAgdm9pZCBmb3Jj
ZVJlcGFpbnQoUmVmUHRyPFZvaWRDYWxsYmFjaz4mJik7CiAKICAgICBmbG9hdCBoZWFkZXJIZWln
aHQoV2ViRnJhbWVQcm94eSYpOwpAQCAtMTE2MSw3ICsxMTYxLDcgQEAgcHVibGljOgogICAgIHZv
aWQgZHJhd1JlY3RUb0ltYWdlKFdlYkZyYW1lUHJveHkqLCBjb25zdCBQcmludEluZm8mLCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIFJlZjxJbWFnZUNh
bGxiYWNrPiYmKTsKICAgICB2b2lkIGRyYXdQYWdlc1RvUERGKFdlYkZyYW1lUHJveHkqLCBjb25z
dCBQcmludEluZm8mLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIFJlZjxEYXRhQ2Fs
bGJhY2s+JiYpOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgdWludDMyX3QgY29tcHV0
ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJp
bnRJbmZvJiwgRHJhd1RvUERGQ2FsbGJhY2s6OkNhbGxiYWNrRnVuY3Rpb24mJik7CisgICAgdWlu
dDMyX3QgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mLCBEcmF3VG9QREZDYWxsYmFjazo6Q2FsbGJhY2tG
dW5jdGlvbiYmKTsKICAgICB2b2lkIGRyYXdUb1BERkNhbGxiYWNrKGNvbnN0IElQQzo6RGF0YVJl
ZmVyZW5jZSYgcGRmRGF0YSwgV2ViS2l0OjpDYWxsYmFja0lEKTsKICNlbmRpZgogI2VsaWYgUExB
VEZPUk0oR1RLKQpAQCAtMTI1Miw3ICsxMjUyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Vmll
d3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyhjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CiAg
ICAgV2ViQ29yZTo6SW50U2l6ZSB2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCkgY29u
c3QgeyByZXR1cm4gbV92aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzLnZhbHVlT3IoV2Vi
Q29yZTo6SW50U2l6ZSgpKTsgfQogCi0gICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VQcm94eSh1aW50NjRfdCBmcmFtZUlELCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVu
Z2VQcm94eT4mJik7CisgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQ
cm94eShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZVByb3h5PiYmKTsKIAogICAgIFNwZWxsRG9jdW1lbnRUYWcgc3BlbGxEb2N1bWVudFRhZygpOwog
CkBAIC0xNDUyLDEyICsxNDUyLDEyIEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykKLSAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29u
ZmlybShjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNv
bnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3Qg
ZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCByZXF1
ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4m
IHN1YkZyYW1lRG9tYWluLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJh
bWVEb21haW4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJik7CiAgICAgdm9pZCBkaWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFUcmFu
c2ZlckZyb21QcmV2YWxlbnRSZXNvdXJjZSgpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoREVWSUNF
X09SSUVOVEFUSU9OKQotICAgIHZvaWQgc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1v
dGlvbkFjY2Vzcyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
JiwgYm9vbCBtYXlQcm9tcHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RGV2aWNl
T3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+JiYpOworICAgIHZvaWQgc2hvdWxk
QWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBib29sIG1heVByb21wdCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVy
bWlzc2lvblN0YXRlKT4mJik7CiAjZW5kaWYKIAogICAgIHN0YXRpYyBXZWJQYWdlUHJveHkqIG5v
bkVwaGVtZXJhbFdlYlBhZ2VQcm94eSgpOwpAQCAtMTQ5OCwzMyArMTQ5OCwzMyBAQCBwdWJsaWM6
CiAjZW5kaWYKIAogICAgIFByb3Zpc2lvbmFsUGFnZVByb3h5KiBwcm92aXNpb25hbFBhZ2VQcm94
eSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvdmlzaW9uYWxQYWdlLmdldCgpOyB9Ci0gICAgdm9pZCBj
b21taXRQcm92aXNpb25hbFBhZ2UodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFBy
b3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0
ZUluZm8mLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhh
c0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0
YSYpOworICAgIHZvaWQgY29tbWl0UHJvdmlzaW9uYWxQYWdlKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29s
IGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBj
b25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1l
bnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1
cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYpOwogCiAgICAgLy8gTG9naWMgc2hhcmVkIGJldHdl
ZW4gdGhlIFdlYlBhZ2VQcm94eSBhbmQgdGhlIFByb3Zpc2lvbmFsUGFnZVByb3h5LgotICAgIHZv
aWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmLCBV
UkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZEZhaWxQ
cm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCB1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNp
b25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OldpbGxDb250
aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU2VydmVy
UmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkUGVyZm9y
bVNlcnZlclJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1
aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJl
ZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywg
Y29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCk7Ci0g
ICAgdm9pZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YVNoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmLCBjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiwgdWludDY0X3QgZnJhbWVJ
RCk7Ci0gICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgVVJMJiYpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5j
U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciwKKyAgICB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmLCBVUkwmJiB1bnJlYWNoYWJsZVVSTCwgY29u
c3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNo
YXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZywgY29u
c3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmJiwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJS
ZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJl
ZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywg
Y29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyKTsKKyAgICB2b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmLCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JG
cmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOworICAgIHZvaWQgZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJh
bWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLAogICAgICAg
ICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5m
b0RhdGEmJiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFn
ZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsCiAgICAgICAgIElQQzo6Rm9ybURhdGFSZWZlcmVuY2Um
JiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9u
c2UsIGNvbnN0IFVzZXJEYXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7Ci0gICAgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCB1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJp
dHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwKKyAgICB2b2lkIGRlY2lk
ZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFt
ZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsCiAgICAgICAg
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBj
b25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25z
dCBVc2VyRGF0YSYpOwogICAgIHZvaWQgc3RhcnRVUkxTY2hlbWVUYXNrU2hhcmVkKFJlZjxXZWJQ
cm9jZXNzUHJveHk+JiYsIFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYpOwogICAgIHZvaWQgbG9h
ZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBBUEk6Ok5h
dmlnYXRpb24mLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBjb25zdCBTdHJpbmcmIE1JTUVU
eXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6
T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBP
cHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmID0gV1RGOjpudWxsb3B0LCBXZWJDb3JlOjpT
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5ID0gV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogICAgIHZvaWQgbG9hZFJlcXVlc3RXaXRoTmF2
aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBBUEk6Ok5hdmlnYXRpb24mLCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBXVEY6Om51bGxv
cHQpOwogICAgIHZvaWQgYmFja0ZvcndhcmRHb1RvSXRlbVNoYXJlZChSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmLCBjb25zdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJik+JiYpOwotICAgIHZv
aWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNTaGFyZWQoUmVmPFdlYlByb2Nl
c3NQcm94eT4mJiwgdWludDY0X3QgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAorICAgIHZvaWQgZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAgIEZy
YW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0
aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVz
dCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiBy
ZXF1ZXN0Qm9keSwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0
UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmKTsKICNpZiBVU0Uo
UVVJQ0tfTE9PSykKICAgICB2b2lkIGRpZFJlcXVlc3RQYXNzd29yZEZvclF1aWNrTG9va0RvY3Vt
ZW50SW5NYWluRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgU3RyaW5n
JiBmaWxlTmFtZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCi0gICAg
dm9pZCBjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nl
c3NQcm94eT4mJiwgY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiwg
dWludDY0X3QgZnJhbWVJRCk7CisgICAgdm9pZCBjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9y
RnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgV2ViQ29yZTo6Q29udGVu
dEZpbHRlclVuYmxvY2tIYW5kbGVyJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICNlbmRp
ZgogCiAgICAgdm9pZCBkdW1wQWRDbGlja0F0dHJpYnV0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoY29uc3QgU3RyaW5nJik+JiYpOwpAQCAtMTU2MSw3ICsxNTYxLDcgQEAgcHVibGljOgogICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlk
ZTsKIAotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VTcGFjZSh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBj
b25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90
IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2
NF90IGV4cGVjdGVkVXNhZ2UsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+
JiYpOworICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VTcGFjZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFz
ZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwg
dWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2Fn
ZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVp
bnQ2NF90KT4mJik7CiAKICAgICBVUkwgY3VycmVudFJlc291cmNlRGlyZWN0b3J5VVJMKCkgY29u
c3Q7CiAKQEAgLTE1ODEsNyArMTU4MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVUaHJv
dHRsZVN0YXRlKCk7CiAgICAgdm9pZCB1cGRhdGVIaWRkZW5QYWdlVGhyb3R0bGluZ0F1dG9JbmNy
ZWFzZXMoKTsKIAotICAgIGJvb2wgc3VzcGVuZEN1cnJlbnRQYWdlSWZQb3NzaWJsZShBUEk6Ok5h
dmlnYXRpb24mLCBPcHRpb25hbDx1aW50NjRfdD4gbWFpbkZyYW1lSUQsIFByb2Nlc3NTd2FwUmVx
dWVzdGVkQnlDbGllbnQsIFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nTW9kZSk7CisgICAgYm9vbCBzdXNwZW5kQ3VycmVudFBhZ2VJZlBvc3NpYmxl
KEFQSTo6TmF2aWdhdGlvbiYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gbWFp
bkZyYW1lSUQsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFNob3VsZERlbGF5Q2xvc2lu
Z1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSk7CiAKICAgICBlbnVtIGNs
YXNzIFJlc2V0U3RhdGVSZWFzb24gewogICAgICAgICBQYWdlSW52YWxpZGF0ZWQsCkBAIC0xNjEw
LDMyICsxNjEwLDMyIEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0UG9pbnRlclVubG9jaygp
OwogI2VuZGlmCiAKLSAgICB2b2lkIGRpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRfdCBmcmFtZUlE
KTsKLSAgICB2b2lkIGRpZENyZWF0ZVN1YmZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZv
aWQgZGlkQ3JlYXRlV2luZG93KHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6Okdsb2JhbFdpbmRv
d0lkZW50aWZpZXImJik7Ci0KLSAgICB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiwgVVJMJiYg
dW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU2Vy
dmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBV
c2VyRGF0YSYpOwotICAgIHZvaWQgd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdXJsLCBkb3VibGUgZGVsYXksIFdlYkNvcmU6
OkxvY2tCYWNrRm9yd2FyZExpc3QpOwotICAgIHZvaWQgZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFs
VVJMRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwm
Jik7Ci0gICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3Jp
Z2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkws
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2Fk
aW5nLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVM
b2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiwgYm9vbCBjb250YWluc1Bs
dWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNl
ZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZEZpbmlz
aERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFVzZXJEYXRhJik7
Ci0gICAgdm9pZCBkaWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFVzZXJE
YXRhJik7Ci0gICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50MzJfdCBzYW1lRG9jdW1lbnRO
YXZpZ2F0aW9uVHlwZSwgVVJMJiYsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRDaGFu
Z2VNYWluRG9jdW1lbnQodWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRFeHBsaWNpdE9w
ZW5Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBVUkwmJik7Ci0KLSAgICB2b2lkIGRpZFJlY2Vp
dmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFVz
ZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRGaXJzdExheW91dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlM
YXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZv
aWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkRGV0ZWN0WFNT
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRp
ZENyZWF0ZU1haW5GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlk
Q3JlYXRlU3ViZnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZENy
ZWF0ZVdpbmRvdyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6Okdsb2JhbFdpbmRv
d0lkZW50aWZpZXImJik7CisKKyAgICB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYm
LCBVUkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJiwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIHdpbGxQZXJmb3JtQ2xpZW50UmVk
aXJlY3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXJs
LCBkb3VibGUgZGVsYXksIFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3QpOworICAgIHZvaWQg
ZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIp
OworICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZShXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOworICAgIHZvaWQgZGlk
RmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nLCBjb25z
dCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvckZyYW1lKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVU
eXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxv
YWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mLCBib29sIGNvbnRhaW5zUGx1
Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2Vk
SGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkRmluaXNo
RG9jdW1lbnRMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRGaW5pc2hMb2FkRm9y
RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNv
bnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRGYWlsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yJiwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5h
dmlnYXRpb25Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgdWludDMyX3Qgc2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUsIFVSTCYmLCBjb25z
dCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkQ2hhbmdlTWFpbkRvY3VtZW50KFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRFeHBsaWNpdE9wZW5Gb3JGcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIFVSTCYmKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9y
RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBjb25zdCBVc2Vy
RGF0YSYpOworICAgIHZvaWQgZGlkRmlyc3RMYXlvdXRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRGaXJzdFZpc3VhbGx5Tm9u
RW1wdHlMYXlvdXRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFVzZXJE
YXRhJik7CisgICAgdm9pZCBkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkUnVuSW5z
ZWN1cmVDb250ZW50Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBVc2Vy
RGF0YSYpOworICAgIHZvaWQgZGlkRGV0ZWN0WFNTRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgbWFpbkZyYW1lUGx1Z2luSGFuZGxl
c1BhZ2VTY2FsZUdlc3R1cmVEaWRDaGFuZ2UoYm9vbCk7Ci0gICAgdm9pZCBmcmFtZURpZEJlY29t
ZUZyYW1lU2V0KHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wpOworICAgIHZvaWQgZnJhbWVEaWRCZWNv
bWVGcmFtZVNldChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGJvb2wpOwogICAgIHZvaWQgZGlk
U3RhcnRQcm9ncmVzcygpOwogICAgIHZvaWQgZGlkQ2hhbmdlUHJvZ3Jlc3MoZG91YmxlKTsKICAg
ICB2b2lkIGRpZEZpbmlzaFByb2dyZXNzKCk7CkBAIC0xNjQ4LDM3ICsxNjQ4LDM3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYsIFdlYkZyYW1lUHJveHkmLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
JiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAogICAgICAg
ICBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmln
aW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJl
cXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNl
JiYgcmVxdWVzdEJvZHksCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRp
cmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIFJlZjxQb2xpY3lEZWNpc2lvblNlbmRlcj4m
Jik7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmModWludDY0
X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9u
RGF0YSYmLAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZp
Z2F0aW9uQWN0aW9uRGF0YSYmLAogICAgICAgICBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAgIFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYs
IHVpbnQ2NF90IGxpc3RlbmVySUQpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvblN5bmModWludDY0X3QgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAorICAgIHZvaWQgZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRp
b25BY3Rpb25EYXRhJiYsCiAgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYs
IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKICAgICAgICAgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6
OkRlbGF5ZWRSZXBseSYmKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlv
bih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBX
ZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCisg
ICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBXZWJDb3JlOjpQb2xp
Y3lDaGVja0lkZW50aWZpZXIsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAgIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdWludDY0X3Qg
bGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJl
c3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklE
LAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwKICAgICAgICAgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1
aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgdW5hYmxlVG9J
bXBsZW1lbnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciYsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCB1bmFibGVUb0ltcGxlbWVudFBvbGlj
eShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3Im
LCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgYmVnaW5TYWZlQnJvd3NpbmdDaGVjayhjb25z
dCBVUkwmLCBib29sLCBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkmKTsKIAogICAgIFdlYkNv
bnRlbnRNb2RlIGVmZmVjdGl2ZUNvbnRlbnRNb2RlQWZ0ZXJBZGp1c3RpbmdQb2xpY2llcyhBUEk6
OldlYnNpdGVQb2xpY2llcyYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogCi0g
ICAgdm9pZCB3aWxsU3VibWl0Rm9ybSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBzb3VyY2VG
cmFtZUlELCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4mIHRleHRGaWVs
ZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lk
IHdpbGxTdWJtaXRGb3JtKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIHNvdXJjZUZyYW1lSUQsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBT
dHJpbmc+PiYgdGV4dEZpZWxkVmFsdWVzLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2Vy
RGF0YSYpOwogCiAgICAgdm9pZCBjb250ZW50UnVsZUxpc3ROb3RpZmljYXRpb24oVVJMJiYsIFdl
YkNvcmU6OkNvbnRlbnRSdWxlTGlzdFJlc3VsdHMmJik7CiAKICAgICAvLyBIaXN0b3J5IGNsaWVu
dAotICAgIHZvaWQgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdh
dGlvbkRhdGFTdG9yZSYsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkUGVyZm9ybUNs
aWVudFJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcm
IGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZFBl
cmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3Qg
U3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9p
ZCBkaWRVcGRhdGVIaXN0b3J5VGl0bGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5n
JiB1cmwsIHVpbnQ2NF90IGZyYW1lSUQpOworICAgIHZvaWQgZGlkTmF2aWdhdGVXaXRoTmF2aWdh
dGlvbkRhdGEoY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcik7CisgICAgdm9pZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJl
Y3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRp
b25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRVcGRh
dGVIaXN0b3J5VGl0bGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAKICAgICAvLyBVSSBjbGllbnQKICAgICB2b2lkIGNy
ZWF0ZU5ld1BhZ2UoY29uc3QgRnJhbWVJbmZvRGF0YSYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYs
IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiYsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZU5ld1BhZ2U6OkRlbGF5ZWRSZXBseSYmKTsKICAgICB2
b2lkIHNob3dQYWdlKCk7Ci0gICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQodWludDY0X3QgZnJh
bWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwg
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdEFsZXJ0OjpEZWxheWVkUmVwbHkm
Jik7Ci0gICAgdm9pZCBydW5KYXZhU2NyaXB0Q29uZmlybSh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmLCBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybTo6RGVsYXllZFJlcGx5JiYpOwotICAg
IHZvaWQgcnVuSmF2YVNjcmlwdFByb21wdCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0OjpEZWxheWVkUmVwbHkmJik7
CisgICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBj
b25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmLCBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQ6OkRlbGF5ZWRSZXBseSYmKTsKKyAg
ICB2b2lkIHJ1bkphdmFTY3JpcHRDb25maXJtKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENvbmZpcm06OkRlbGF5ZWRSZXBseSYmKTsKKyAg
ICB2b2lkIHJ1bkphdmFTY3JpcHRQcm9tcHQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJp
bmcmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0OjpEZWxheWVk
UmVwbHkmJik7CiAgICAgdm9pZCBzZXRTdGF0dXNUZXh0KGNvbnN0IFN0cmluZyYpOwogICAgIHZv
aWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoV2ViSGl0VGVzdFJlc3VsdERhdGEmJiwgdWludDMy
X3QgbW9kaWZpZXJzLCBVc2VyRGF0YSYmKTsKIApAQCAtMTcwMSwyMSArMTcwMSwyMSBAQCBwcml2
YXRlOgogICAgIHZvaWQgcm9vdFZpZXdUb1NjcmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB2
aWV3UmVjdCwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Um9vdFZpZXdUb1NjcmVlbjo6RGVsYXll
ZFJlcGx5JiYpOwogICAgIHZvaWQgYWNjZXNzaWJpbGl0eVNjcmVlblRvUm9vdFZpZXcoY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIHNjcmVlblBvaW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OkludFBvaW50KT4mJik7CiAgICAgdm9pZCByb290Vmlld1RvQWNjZXNzaWJpbGl0eVNj
cmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB2aWV3UmVjdCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJDb3JlOjpJbnRSZWN0KT4mJik7Ci0gICAgdm9pZCBydW5CZWZvcmVVbmxvYWRDb25m
aXJtUGFuZWwodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5C
ZWZvcmVVbmxvYWRDb25maXJtUGFuZWw6OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIHJ1bkJl
Zm9yZVVubG9hZENvbmZpcm1QYW5lbChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6UnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsOjpEZWxheWVkUmVw
bHkmJik7CiAgICAgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29y
ZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJik7CiAgICAgdm9pZCBwYWdlRGlkU2Nyb2xsKCk7Ci0gICAg
dm9pZCBydW5PcGVuUGFuZWwodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiwgY29uc3QgV2ViQ29yZTo6RmlsZUNob29zZXJTZXR0aW5ncyYpOworICAg
IHZvaWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgV2ViQ29yZTo6RmlsZUNob29zZXJTZXR0aW5n
cyYpOwogICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQoY29uc3QgV2ViQ29yZTo6U2hhcmVEYXRhV2l0
aFBhcnNlZFVSTCYsIFNoYXJlU2hlZXRDYWxsYmFja0lEKTsKLSAgICB2b2lkIHByaW50RnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lk
IGV4Y2VlZGVkRGF0YWJhc2VRdW90YSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9y
aWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcm
IGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmln
aW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVk
VXNhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkV4Y2VlZGVkRGF0YWJhc2VRdW90YTo6RGVs
YXllZFJlcGx5JiYpOworICAgIHZvaWQgcHJpbnRGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBleGNlZWRlZERhdGFi
YXNlUXVvdGEoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG9yaWdpbklk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3Bs
YXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2Fn
ZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2Us
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkV4Y2VlZGVkRGF0YWJhc2VRdW90YTo6RGVsYXllZFJl
cGx5JiYpOwogICAgIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShjb25z
dCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0
X3QgdG90YWxCeXRlc05lZWRlZCwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVhY2hlZEFwcGxp
Y2F0aW9uQ2FjaGVPcmlnaW5RdW90YTo6RGVsYXllZFJlcGx5JiYpOwotICAgIHZvaWQgcmVxdWVz
dEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIHVp
bnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlcXVl
c3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKTsKIAogI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpOwogI2VuZGlmCi0g
ICAgdm9pZCByZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJN
ZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgV2ViQ29y
ZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYpOwotICAgIHZvaWQgZW51bWVyYXRlTWVkaWFEZXZpY2Vz
Rm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5EYXRhLCBj
b25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5E
YXRhKTsKKyAgICB2b2lkIHJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0
X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklk
ZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKKyAgICB2b2lkIGVudW1l
cmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW5EYXRhLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
IHRvcExldmVsRG9jdW1lbnRPcmlnaW5EYXRhKTsKICAgICB2b2lkIGJlZ2luTW9uaXRvcmluZ0Nh
cHR1cmVEZXZpY2VzKCk7CiAKICAgICB2b2lkIHJ1bk1vZGFsKCk7CkBAIC0xODk1LDggKzE4OTUs
OCBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJpbnRGaW5pc2hlZENhbGxiYWNrKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlRXJyb3ImLCBDYWxsYmFja0lEKTsKICNlbmRpZgogCi0gICAgdm9pZCBmb2N1
c2VkRnJhbWVDaGFuZ2VkKHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZnJhbWVTZXRMYXJn
ZXN0RnJhbWVDaGFuZ2VkKHVpbnQ2NF90IGZyYW1lSUQpOworICAgIHZvaWQgZm9jdXNlZEZyYW1l
Q2hhbmdlZChjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+Jik7CisgICAg
dm9pZCBmcmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQoY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyPiYpOwogCiAgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1
c3RvbUNvbnRlbnRQcm92aWRlcihjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lLCBjb25z
dCBJUEM6OkRhdGFSZWZlcmVuY2UmKTsKIApAQCAtMTk5Nyw3ICsxOTk3LDcgQEAgcHJpdmF0ZToK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQotICAgIHZvaWQgY29udGVu
dEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJV
bmJsb2NrSGFuZGxlciYsIHVpbnQ2NF90IGZyYW1lSUQpOworICAgIHZvaWQgY29udGVudEZpbHRl
ckRpZEJsb2NrTG9hZEZvckZyYW1lKGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2Nr
SGFuZGxlciYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAjZW5kaWYKIAogICAgIHZvaWQg
dHJ5UmVsb2FkQWZ0ZXJQcm9jZXNzVGVybWluYXRpb24oKTsKQEAgLTIxMTAsNyArMjExMCw3IEBA
IHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wgaXNJbkhhcmR3YXJlS2V5Ym9hcmRNb2RlKCk7CiAj
ZW5kaWYKIAotICAgIHZvaWQgbWFrZVN0b3JhZ2VTcGFjZVJlcXVlc3QodWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNl
TmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1
aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdl
LCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90
KT4mJik7CisgICAgdm9pZCBtYWtlU3RvcmFnZVNwYWNlUmVxdWVzdChXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBk
YXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRR
dW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJh
c2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1
aW50NjRfdCk+JiYpOwogCiAgICAgV2Vha1B0cjxQYWdlQ2xpZW50PiBtX3BhZ2VDbGllbnQ7CiAg
ICAgUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+IG1fY29uZmlndXJhdGlvbjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBlY2Fk
OTVlNDZiNTQzYWM5MTUwNDBlNjBlZjQwNGJlZDY0MjY3MTYxLi4xNTg5MTllMzE2MDExZDY5OTQw
ZGQ5YjFlMmY3Y2NjMzFlYTRlNDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNSw5ICsyNSw5IEBAIG1lc3NhZ2VzIC0+IFdl
YlBhZ2VQcm94eSB7CiAgICAgQ3JlYXRlTmV3UGFnZShzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9E
YXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50
aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dCwgc3RydWN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzIHdpbmRvd0ZlYXR1cmVzLCBzdHJ1Y3Qg
V2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSkgLT4gKE9w
dGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBuZXdQYWdlSUQsIE9wdGlvbmFsPFdlYktp
dDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycz4gbmV3UGFnZVBhcmFtZXRlcnMpIFN5bmNocm9u
b3VzCiAgICAgU2hvd1BhZ2UoKQogICAgIENsb3NlUGFnZShib29sIHN0b3BSZXNwb25zaXZlbmVz
c1RpbWVyKQotICAgIFJ1bkphdmFTY3JpcHRBbGVydCh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFN0cmluZyBt
ZXNzYWdlKSAtPiAoKSBTeW5jaHJvbm91cwotICAgIFJ1bkphdmFTY3JpcHRDb25maXJtKHVpbnQ2
NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1
cml0eU9yaWdpbiwgU3RyaW5nIG1lc3NhZ2UpIC0+IChib29sIHJlc3VsdCkgU3luY2hyb25vdXMK
LSAgICBSdW5KYXZhU2NyaXB0UHJvbXB0KHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3NhZ2Us
IFN0cmluZyBkZWZhdWx0VmFsdWUpIC0+IChTdHJpbmcgcmVzdWx0KSBTeW5jaHJvbm91cworICAg
IFJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3Ry
dWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBTdHJp
bmcgbWVzc2FnZSkgLT4gKCkgU3luY2hyb25vdXMKKyAgICBSdW5KYXZhU2NyaXB0Q29uZmlybShX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSkgLT4gKGJvb2wg
cmVzdWx0KSBTeW5jaHJvbm91cworICAgIFJ1bkphdmFTY3JpcHRQcm9tcHQoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEg
ZnJhbWVTZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBkZWZhdWx0VmFsdWUp
IC0+IChTdHJpbmcgcmVzdWx0KSBTeW5jaHJvbm91cwogICAgIE1vdXNlRGlkTW92ZU92ZXJFbGVt
ZW50KHN0cnVjdCBXZWJLaXQ6OldlYkhpdFRlc3RSZXN1bHREYXRhIGhpdFRlc3RSZXN1bHREYXRh
LCB1aW50MzJfdCBtb2RpZmllcnMsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAKICNpZiBF
TkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKQEAgLTQ3LDggKzQ3LDggQEAgbWVzc2FnZXMgLT4g
V2ViUGFnZVByb3h5IHsKICAgICBTZXRUb29sVGlwKFN0cmluZyB0b29sVGlwKQogICAgIFNldEZv
Y3VzKGJvb2wgZm9jdXNlZCkKICAgICBUYWtlRm9jdXModWludDMyX3QgZGlyZWN0aW9uKQotICAg
IEZvY3VzZWRGcmFtZUNoYW5nZWQodWludDY0X3QgZnJhbWVJRCkKLSAgICBGcmFtZVNldExhcmdl
c3RGcmFtZUNoYW5nZWQodWludDY0X3QgZnJhbWVJRCkKKyAgICBGb2N1c2VkRnJhbWVDaGFuZ2Vk
KE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCkKKyAgICBGcmFtZVNl
dExhcmdlc3RGcmFtZUNoYW5nZWQoT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBm
cmFtZUlEKQogICAgIFNldFJlbmRlclRyZWVTaXplKHVpbnQ2NF90IHRyZWVTaXplKQogICAgIFNl
dFRvb2xiYXJzQXJlVmlzaWJsZShib29sIHRvb2xiYXJzQXJlVmlzaWJsZSkKICAgICBHZXRUb29s
YmFyc0FyZVZpc2libGUoKSAtPiAoYm9vbCB0b29sYmFyc0FyZVZpc2libGUpIFN5bmNocm9ub3Vz
CkBAIC02OSwxMSArNjksMTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBIaWRl
VmFsaWRhdGlvbk1lc3NhZ2UoKQogI2VuZGlmCiAKLSAgICBSdW5CZWZvcmVVbmxvYWRDb25maXJt
UGFuZWwodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSkgLT4gKGJvb2wgc2hvdWxkQ2xv
c2UpIFN5bmNocm9ub3VzCisgICAgUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFN0cmluZyBtZXNzYWdlKSAtPiAoYm9vbCBzaG91bGRD
bG9zZSkgU3luY2hyb25vdXMKICAgICBQYWdlRGlkU2Nyb2xsKCkKLSAgICBSdW5PcGVuUGFuZWwo
dWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFt
ZVNlY3VyaXR5T3JpZ2luLCBzdHJ1Y3QgV2ViQ29yZTo6RmlsZUNob29zZXJTZXR0aW5ncyBwYXJh
bWV0ZXJzKQorICAgIFJ1bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2lu
LCBzdHJ1Y3QgV2ViQ29yZTo6RmlsZUNob29zZXJTZXR0aW5ncyBwYXJhbWV0ZXJzKQogICAgIFNo
b3dTaGFyZVNoZWV0KHN0cnVjdCBXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJMIHNoYXJl
RGF0YSwgdWludDY0X3QgY2FsbGJhY2tJRCkKLSAgICBQcmludEZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQpIC0+ICgpIFN5bmNocm9ub3VzCisgICAgUHJpbnRGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCkgLT4gKCkgU3luY2hyb25vdXMKICAgICBSdW5Nb2RhbCgpCiAgICAgTm90
aWZ5U2Nyb2xsZXJUaHVtYklzVmlzaWJsZUluUmVjdChXZWJDb3JlOjpJbnRSZWN0IHNjcm9sbGVy
VGh1bWIpCiAgICAgUmVjb21tZW5kZWRTY3JvbGxiYXJTdHlsZURpZENoYW5nZShpbnQzMl90IG5l
d1N0eWxlKQpAQCAtMTAzLDExICsxMDMsMTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsK
ICNlbmRpZgogCiAgICAgIyBQb2xpY3kgbWVzc2FnZXMKLSAgICBEZWNpZGVQb2xpY3lGb3JSZXNw
b25zZSh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
IGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xp
Y3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGJv
b2wgY2FuU2hvd01JTUVUeXBlLCBTdHJpbmcgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxp
c3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbkFzeW5jKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0
YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEs
IE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHksIFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpVc2VyRGF0YSB1
c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKLSAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uU3luYyh1aW50NjRfdCBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBzdHJ1Y3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6
OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlv
bkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFt
ZUluZm9EYXRhLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQ
YWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RC
b2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UsIFdlYktpdDo6
VXNlckRhdGEgdXNlckRhdGEpIC0+IChXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9s
aWN5Q2hlY2tJZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UG9saWN5QWN0aW9uIHBv
bGljeUFjdGlvbiwgdWludDY0X3QgbmV3TmF2aWdhdGlvbklELCBXZWJLaXQ6OkRvd25sb2FkSUQg
ZG93bmxvYWRJRCwgT3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRl
UG9saWNpZXMpIFN5bmNocm9ub3VzCi0gICAgRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9u
KHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJh
bWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNo
ZWNrSWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdh
dGlvbkFjdGlvbkRhdGEsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcg
ZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRh
KQotICAgIFVuYWJsZVRvSW1wbGVtZW50UG9saWN5KHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6
OlJlc291cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIFN0cmlu
ZyBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0
YSB1c2VyRGF0YSkKKyAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlm
aWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3Qg
V2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0
IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIE9wdGlvbmFs
PFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJl
cXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSwg
dWludDY0X3QgbGlzdGVuZXJJRCkKKyAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
U3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwg
c3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBX
ZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5h
dmlnYXRpb25BY3Rpb25EYXRhLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0
aW5nRnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdp
bmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSBy
ZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBX
ZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKSAtPiAoV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlm
aWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgZW51bTp1aW50OF90IFdlYkNvcmU6OlBvbGljeUFj
dGlvbiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90IG5ld05hdmlnYXRpb25JRCwgV2ViS2l0OjpEb3du
bG9hZElEIGRvd25sb2FkSUQsIE9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0YT4g
d2Vic2l0ZVBvbGljaWVzKSBTeW5jaHJvbm91cworICAgIERlY2lkZVBvbGljeUZvck5ld1dpbmRv
d0FjdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0OjpOYXZp
Z2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdl
YktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgVW5hYmxlVG9JbXBsZW1lbnRQb2xpY3koV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJy
b3IsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAKICAgICAjIFByb2dyZXNzIG1lc3NhZ2Vz
CiAgICAgRGlkQ2hhbmdlUHJvZ3Jlc3MoZG91YmxlIHZhbHVlKQpAQCAtMTE3LDUxICsxMTcsNTEg
QEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBTZXROZXR3b3JrUmVxdWVzdHNJblBy
b2dyZXNzKGJvb2wgbmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcykKIAogICAgICMgRnJhbWUgbGlm
ZXRpbWUgbWVzc2FnZXMKLSAgICBEaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJRCkK
LSAgICBEaWRDcmVhdGVTdWJmcmFtZSh1aW50NjRfdCBmcmFtZUlEKQorICAgIERpZENyZWF0ZU1h
aW5GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKKyAgICBEaWRDcmVhdGVT
dWJmcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIAotICAgIERpZENyZWF0
ZVdpbmRvdyh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6R2xvYmFsV2luZG93SWRl
bnRpZmllciB3aW5kb3dJZGVudGlmaWVyKQorICAgIERpZENyZWF0ZVdpbmRvdyhXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50
aWZpZXIgd2luZG93SWRlbnRpZmllcikKIAogICAgICMgRnJhbWUgbG9hZCBtZXNzYWdlcwotICAg
IERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBVUkwgdXJsLCBVUkwgdW5yZWFjaGFibGVVUkwsIFdlYktpdDo6VXNl
ckRhdGEgdXNlckRhdGEpCi0gICAgRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0
YSkKLSAgICBXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgU3RyaW5nIHVybCwgZG91YmxlIGRlbGF5LCBlbnVtOmJvb2wgV2ViQ29yZTo6TG9ja0JhY2tG
b3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0KQotICAgIERpZENhbmNlbENsaWVudFJlZGly
ZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCkKLSAgICBEaWRDaGFuZ2VQcm92aXNpb25hbFVS
TEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMIHVy
bCkKLSAgICBEaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
c3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFN0cmluZyBwcm92aXNpb25hbFVSTCwgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciBlcnJvciwgZW51bTpib29sIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcg
d2lsbENvbnRpbnVlTG9hZGluZywgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWRD
b21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBTdHJpbmcgbWltZVR5cGUsIGJvb2wgaGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJf
dCBsb2FkVHlwZSwgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvIGNlcnRpZmljYXRlSW5mbywgYm9v
bCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNv
bnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0
YSkKLSAgICBEaWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgV2ViS2l0OjpVc2VyRGF0
YSB1c2VyRGF0YSkKLSAgICBEaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEp
Ci0gICAgRGlkRmluaXNoTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWRGaXJzdExheW91
dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0g
ICAgRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIFVSTCB1cmwsIFVSTCB1bnJlYWNoYWJsZVVSTCwgV2ViS2l0OjpVc2VyRGF0YSB1
c2VyRGF0YSkKKyAgICBEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRG
b3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV2ViS2l0OjpVc2VyRGF0
YSB1c2VyRGF0YSkKKyAgICBXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyB1cmwsIGRvdWJsZSBkZWxheSwgZW51
bTpib29sIFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCkK
KyAgICBEaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlEKQorICAgIERpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMIHVy
bCkKKyAgICBEaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBTdHJpbmcgcHJvdmlzaW9uYWxV
UkwsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIGVudW06Ym9vbCBXZWJDb3JlOjpXaWxs
Q29udGludWVMb2FkaW5nIHdpbGxDb250aW51ZUxvYWRpbmcsIFdlYktpdDo6VXNlckRhdGEgdXNl
ckRhdGEpCisgICAgRGlkQ29tbWl0TG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFN0cmluZyBtaW1lVHlwZSwgYm9vbCBo
YXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGxvYWRUeXBlLCBXZWJDb3JlOjpDZXJ0
aWZpY2F0ZUluZm8gY2VydGlmaWNhdGVJbmZvLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQs
IE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVD
b250ZW50LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZEZhaWxMb2FkRm9yRnJh
bWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0
YSkKKyAgICBEaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJLaXQ6OlVzZXJEYXRhIHVz
ZXJEYXRhKQorICAgIERpZEZpbmlzaExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJE
YXRhKQorICAgIERpZEZpcnN0TGF5b3V0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkRmlyc3RWaXN1YWxs
eU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGlkUmVhY2hMYXlvdXRNaWxlc3RvbmUo
T3B0aW9uU2V0PFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZT4gbGF5b3V0TWlsZXN0b25lcykKLSAg
ICBEaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgdGl0bGUs
IFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlkRGlzcGxheUluc2VjdXJlQ29udGVu
dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0g
ICAgRGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0
OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWREZXRlY3RYU1NGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZFNhbWVEb2N1bWVudE5h
dmlnYXRpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IHVpbnQzMl90IHR5cGUsIFVSTCB1cmwsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAg
RGlkQ2hhbmdlTWFpbkRvY3VtZW50KHVpbnQ2NF90IGZyYW1lSUQpCi0gICAgRGlkRXhwbGljaXRP
cGVuRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgVVJMIHVybCkKKyAgICBEaWRSZWNlaXZlVGl0
bGVGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIHRpdGxl
LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZERpc3BsYXlJbnNlY3VyZUNvbnRl
bnRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViS2l0OjpVc2Vy
RGF0YSB1c2VyRGF0YSkKKyAgICBEaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAg
ICBEaWREZXRlY3RYU1NGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
V2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9u
Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgdWludDMyX3QgdHlwZSwgVVJMIHVybCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0
YSkKKyAgICBEaWRDaGFuZ2VNYWluRG9jdW1lbnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQpCisgICAgRGlkRXhwbGljaXRPcGVuRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIFVSTCB1cmwpCiAgICAgRGlkRGVzdHJveU5hdmlnYXRpb24odWludDY0X3Qg
bmF2aWdhdGlvbklEKQogCiAgICAgSGFzSW5zZWN1cmVDb250ZW50KCkgLT4gKGVudW06Ym9vbCBX
ZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQgaGFzSW5zZWN1cmVDb250ZW50KSBTeW5jaHJvbm91
cwogCiAgICAgTWFpbkZyYW1lUGx1Z2luSGFuZGxlc1BhZ2VTY2FsZUdlc3R1cmVEaWRDaGFuZ2Uo
Ym9vbCBtYWluRnJhbWVQbHVnaW5IYW5kbGVzUGFnZVNjYWxlR2VzdHVyZSkKIAotICAgIEZyYW1l
RGlkQmVjb21lRnJhbWVTZXQodWludDY0X3QgZnJhbWVJRCwgYm9vbCB2YWx1ZSkKKyAgICBGcmFt
ZURpZEJlY29tZUZyYW1lU2V0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29s
IHZhbHVlKQogCiAgICAgIyBIaXN0b3J5IGNsaWVudCBtZXNzYWdlcy4KLSAgICBEaWROYXZpZ2F0
ZVdpdGhOYXZpZ2F0aW9uRGF0YShzdHJ1Y3QgV2ViS2l0OjpXZWJOYXZpZ2F0aW9uRGF0YVN0b3Jl
IHN0b3JlLCB1aW50NjRfdCBmcmFtZUlEKQotICAgIERpZFBlcmZvcm1DbGllbnRSZWRpcmVjdChT
dHJpbmcgc291cmNlVVJMU3RyaW5nLCBTdHJpbmcgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2
NF90IGZyYW1lSUQpCi0gICAgRGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KFN0cmluZyBzb3VyY2VV
UkxTdHJpbmcsIFN0cmluZyBkZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCkK
LSAgICBEaWRVcGRhdGVIaXN0b3J5VGl0bGUoU3RyaW5nIHRpdGxlLCBTdHJpbmcgdXJsLCB1aW50
NjRfdCBmcmFtZUlEKQorICAgIERpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKHN0cnVjdCBX
ZWJLaXQ6OldlYk5hdmlnYXRpb25EYXRhU3RvcmUgc3RvcmUsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlEKQorICAgIERpZFBlcmZvcm1DbGllbnRSZWRpcmVjdChTdHJpbmcgc291cmNl
VVJMU3RyaW5nLCBTdHJpbmcgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBmcmFtZUlEKQorICAgIERpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChTdHJpbmcgc291
cmNlVVJMU3RyaW5nLCBTdHJpbmcgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlEKQorICAgIERpZFVwZGF0ZUhpc3RvcnlUaXRsZShTdHJpbmcgdGl0
bGUsIFN0cmluZyB1cmwsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogCiAgICAg
IyBDdXN0b20gcmVwcmVzZW50YXRpb25zCiAgICAgRGlkRmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0
b21Db250ZW50UHJvdmlkZXIoU3RyaW5nIHN1Z2dlc3RlZEZpbGVuYW1lLCBJUEM6OkRhdGFSZWZl
cmVuY2UgZGF0YSkKIAogICAgICMgRm9ybXMgbWVzc2FnZXMKLSAgICBXaWxsU3VibWl0Rm9ybSh1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBzb3VyY2VGcmFtZUlELCBWZWN0b3I8c3RkOjpwYWly
PFN0cmluZywgU3RyaW5nPj4gdGV4dEZpZWxkVmFsdWVzLCB1aW50NjRfdCBsaXN0ZW5lcklELCBX
ZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIFdpbGxTdWJtaXRGb3JtKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgc291cmNlRnJh
bWVJRCwgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+IHRleHRGaWVsZFZhbHVlcywg
dWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKIAogICAgICMg
Q2FsbGJhY2sgbWVzc2FnZXMKICAgICBWb2lkQ2FsbGJhY2soV2ViS2l0OjpDYWxsYmFja0lEIGNh
bGxiYWNrSUQpCkBAIC0yNzUsMTggKzI3NSwxOCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkg
ewogI2VuZGlmCiAKICAgICAjIERhdGFiYXNlIG1lc3NhZ2VzCi0gICAgRXhjZWVkZWREYXRhYmFz
ZVF1b3RhKHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCBTdHJpbmcg
ZGF0YWJhc2VOYW1lLCBTdHJpbmcgZGF0YWJhc2VEaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVu
dFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRh
YmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlKSAtPiAodWludDY0X3QgbmV3UXVvdGEp
IFN5bmNocm9ub3VzCisgICAgRXhjZWVkZWREYXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllciwgU3RyaW5nIGRhdGFiYXNl
TmFtZSwgU3RyaW5nIGRhdGFiYXNlRGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwg
dWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2Fn
ZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSkgLT4gKHVpbnQ2NF90IG5ld1F1b3RhKSBTeW5jaHJv
bm91cwogCiAgICAgIyBBcHBsaWNhdGlvbiBjYWNoZSBtZXNzYWdlcwogICAgIFJlYWNoZWRBcHBs
aWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU3RyaW5nIG9yaWdpbklkZW50aWZpZXIsIHVpbnQ2NF90
IGN1cnJlbnRRdW90YSwgdWludDY0X3QgdG90YWxCeXRlc05lZWRlZCkgLT4gKHVpbnQ2NF90IG5l
d1F1b3RhKSBTeW5jaHJvbm91cwogCiAgICAgIyBHZW9sb2NhdGlvbiBtZXNzYWdlcwotICAgIFJl
cXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklE
LCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKKyAgICBSZXF1ZXN0
R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQog
ICAgIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgIyBNZWRpYVN0ZWFtIG1lc3NhZ2Vz
Ci0gICAgUmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVk
aWFJRCwgdWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIHN0cnVjdCBX
ZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QgcmVxdWVzdCkKLSAgICBFbnVtZXJhdGVNZWRpYURl
dmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgc3Ry
dWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklk
ZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbklkZW50aWZpZXIpCisgICAgUmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JG
cmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW5JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcExl
dmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFTdHJlYW1S
ZXF1ZXN0IHJlcXVlc3QpCisgICAgRW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0
X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRp
Zmllciwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BMZXZlbERvY3VtZW50
T3JpZ2luSWRlbnRpZmllcikKICAgICBCZWdpbk1vbml0b3JpbmdDYXB0dXJlRGV2aWNlcygpCiAj
ZW5kaWYKIApAQCAtNDczLDcgKzQ3Myw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKLSAgICBDb250ZW50RmlsdGVy
RGlkQmxvY2tMb2FkRm9yRnJhbWUoV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVy
IHVuYmxvY2tIYW5kbGVyLCB1aW50NjRfdCBmcmFtZUlEKQorICAgIENvbnRlbnRGaWx0ZXJEaWRC
bG9ja0xvYWRGb3JGcmFtZShXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIgdW5i
bG9ja0hhbmRsZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogI2VuZGlmCiAK
ICAgICBJc1BsYXlpbmdNZWRpYURpZENoYW5nZSh1bnNpZ25lZCBzdGF0ZSwgdWludDY0X3Qgc291
cmNlRWxlbWVudElEKQpAQCAtNTM5LDcgKzUzOSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94
eSB7CiAgICAgTG9hZFN5bmNocm9ub3VzVVJMU2NoZW1lVGFzayhzdHJ1Y3QgV2ViS2l0OjpVUkxT
Y2hlbWVUYXNrUGFyYW1ldGVycyBwYXJhbWV0ZXJzKSAtPiAoV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgVmVjdG9yPGNoYXI+
IGRhdGEpIFN5bmNocm9ub3VzCiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQotICAg
IFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ModWludDY0X3QgZnJh
bWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4sIGJvb2wgbWF5
UHJvbXB0KSAtPiAoZW51bTp1aW50OF90IFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uT3JNb3Rp
b25QZXJtaXNzaW9uU3RhdGUgcGVybWlzc2lvblN0YXRlKSBBc3luYworICAgIFNob3VsZEFsbG93
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luLCBib29s
IG1heVByb21wdCkgLT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbk9y
TW90aW9uUGVybWlzc2lvblN0YXRlIHBlcm1pc3Npb25TdGF0ZSkgQXN5bmMKICNlbmRpZgogCiAj
aWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IGUxNjkxMzdmNTM4OWQzMGJiOGIxMWIzYThlMWY1MGNh
NDNhYTA2ZWQuLjk1YjU4NjM5ZjNjNDBjYzYzMDBhNDRmMmMwNDQ5ZWZmZWY4YWQxMzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtODI3LDI1ICs4
MjcsMjUgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNz
TGF1bmNoZXIqIGxhdW5jaGVyLCBJUEM6OkNvbm5lY3QKICNlbmRpZgogfQogCi1XZWJGcmFtZVBy
b3h5KiBXZWJQcm9jZXNzUHJveHk6OndlYkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpIGNvbnN0CitX
ZWJGcmFtZVByb3h5KiBXZWJQcm9jZXNzUHJveHk6OndlYkZyYW1lKEZyYW1lSWRlbnRpZmllciBm
cmFtZUlEKSBjb25zdAogewogICAgIGlmICghV2ViRnJhbWVQcm94eU1hcDo6aXNWYWxpZEtleShm
cmFtZUlEKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAg
ICAgcmV0dXJuIG1fZnJhbWVNYXAuZ2V0KGZyYW1lSUQpOwogfQogCi1ib29sIFdlYlByb2Nlc3NQ
cm94eTo6Y2FuQ3JlYXRlRnJhbWUodWludDY0X3QgZnJhbWVJRCkgY29uc3QKK2Jvb2wgV2ViUHJv
Y2Vzc1Byb3h5OjpjYW5DcmVhdGVGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkgY29uc3QK
IHsKICAgICByZXR1cm4gV2ViRnJhbWVQcm94eU1hcDo6aXNWYWxpZEtleShmcmFtZUlEKSAmJiAh
bV9mcmFtZU1hcC5jb250YWlucyhmcmFtZUlEKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6
OmZyYW1lQ3JlYXRlZCh1aW50NjRfdCBmcmFtZUlELCBXZWJGcmFtZVByb3h5JiBmcmFtZVByb3h5
KQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmZyYW1lQ3JlYXRlZChGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgV2ViRnJhbWVQcm94eSYgZnJhbWVQcm94eSkKIHsKICAgICBtX2ZyYW1lTWFwLnNldChm
cmFtZUlELCAmZnJhbWVQcm94eSk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWREZXN0
cm95RnJhbWUodWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWREZXN0
cm95RnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgLy8gSWYgdGhlIHBhZ2Ug
aXMgY2xvc2VkIGJlZm9yZSBpdCBoYXMgaGFkIHRoZSBjaGFuY2UgdG8gc2VuZCB0aGUgRGlkQ3Jl
YXRlTWFpbkZyYW1lIG1lc3NhZ2UKICAgICAvLyBiYWNrIHRvIHRoZSBVSVByb2Nlc3MsIHRoZW4g
dGhlIGZyYW1lRGVzdHJveWVkIG1lc3NhZ2Ugd2lsbCBzdGlsbCBiZSByZWNlaXZlZCBiZWNhdXNl
IGl0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDMwMDk2
ZGQzMDg1NDhiODkwNDljODM1MTBlZWE3MWJiMDU5NzZmZmMuLjE4ZjQ4ODBhMGJiMmQ0ZDgzZDJm
YjZjNTk3Yzg3YzdjZGQ2ZWM4OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiVmlzaWJsZVdlYlBhZ2VDb3Vu
dGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUg
IldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50
aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9NZXNzYWdlUG9ydElkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CkBAIC05Nyw3ICs5OCw3IEBAIGVudW0gY2xhc3MgQWxs
b3dQcm9jZXNzQ2FjaGluZyB7IE5vLCBZZXMgfTsKIAogY2xhc3MgV2ViUHJvY2Vzc1Byb3h5IDog
cHVibGljIEF1eGlsaWFyeVByb2Nlc3NQcm94eSwgcHVibGljIFJlc3BvbnNpdmVuZXNzVGltZXI6
OkNsaWVudCwgcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdlYlByb2Nlc3NQcm94eT4sIHB1
YmxpYyBDYW5NYWtlV2Vha1B0cjxXZWJQcm9jZXNzUHJveHk+LCBwcml2YXRlIFByb2Nlc3NUaHJv
dHRsZXJDbGllbnQgewogcHVibGljOgotICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgUmVm
UHRyPFdlYkZyYW1lUHJveHk+PiBXZWJGcmFtZVByb3h5TWFwOworICAgIHR5cGVkZWYgSGFzaE1h
cDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZlB0cjxXZWJGcmFtZVByb3h5Pj4gV2ViRnJh
bWVQcm94eU1hcDsKICAgICB0eXBlZGVmIEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IFdlYlBhZ2VQcm94eSo+IFdlYlBhZ2VQcm94eU1hcDsKICAgICB0eXBlZGVmIEhhc2hNYXA8dWlu
dDY0X3QsIFJlZlB0cjxBUEk6OlVzZXJJbml0aWF0ZWRBY3Rpb24+PiBVc2VySW5pdGlhdGVkQWN0
aW9uTWFwOwogCkBAIC0xNjQsOSArMTY1LDkgQEAgcHVibGljOgogICAgIFJlc3BvbnNpdmVuZXNz
VGltZXImIHJlc3BvbnNpdmVuZXNzVGltZXIoKSB7IHJldHVybiBtX3Jlc3BvbnNpdmVuZXNzVGlt
ZXI7IH0KICAgICBib29sIGlzUmVzcG9uc2l2ZSgpIGNvbnN0OwogCi0gICAgV2ViRnJhbWVQcm94
eSogd2ViRnJhbWUodWludDY0X3QpIGNvbnN0OwotICAgIGJvb2wgY2FuQ3JlYXRlRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCkgY29uc3Q7Ci0gICAgdm9pZCBmcmFtZUNyZWF0ZWQodWludDY0X3QsIFdl
YkZyYW1lUHJveHkmKTsKKyAgICBXZWJGcmFtZVByb3h5KiB3ZWJGcmFtZShXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIpIGNvbnN0OworICAgIGJvb2wgY2FuQ3JlYXRlRnJhbWUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyKSBjb25zdDsKKyAgICB2b2lkIGZyYW1lQ3JlYXRlZChXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIFdlYkZyYW1lUHJveHkmKTsKICAgICB2b2lkIGRpc2Nvbm5lY3RGcmFtZXNG
cm9tUGFnZShXZWJQYWdlUHJveHkqKTsgLy8gSW5jbHVkaW5nIG1haW4gZnJhbWUuCiAgICAgc2l6
ZV90IGZyYW1lQ291bnRJblBhZ2UoV2ViUGFnZVByb3h5KikgY29uc3Q7IC8vIEluY2x1ZGluZyBt
YWluIGZyYW1lLgogCkBAIC0zMzUsNyArMzM2LDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAg
ICAvLyBJUEMgbWVzc2FnZSBoYW5kbGVycy4KICAgICB2b2lkIHVwZGF0ZUJhY2tGb3J3YXJkSXRl
bShjb25zdCBCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUmKTsKLSAgICB2b2lkIGRpZERlc3Ryb3lG
cmFtZSh1aW50NjRfdCk7CisgICAgdm9pZCBkaWREZXN0cm95RnJhbWUoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZERlc3Ryb3lVc2VyR2VzdHVyZVRva2VuKHVpbnQ2NF90
KTsKIAogICAgIGJvb2wgY2FuQmVBZGRlZFRvV2ViUHJvY2Vzc0NhY2hlKCkgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4K
aW5kZXggZjNkNWU5MzFlNmRlZTkwMmE0YWM1ZTVmYzViMTBkZDQ2MTViMTVkMC4uMzJiYWZlYTll
MTA5NThjMjVjZDE5NGRhMTg0NTM2YWQwOTNmNzUyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjIsNyArMjIsNyBA
QAogCiBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogICAgIFVw
ZGF0ZUJhY2tGb3J3YXJkSXRlbShzdHJ1Y3QgV2ViS2l0OjpCYWNrRm9yd2FyZExpc3RJdGVtU3Rh
dGUgYmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlKQotICAgIERpZERlc3Ryb3lGcmFtZSh1aW50NjRf
dCBmcmFtZUlEKSAKKyAgICBEaWREZXN0cm95RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQpIAogCiAgICAgRGlkRGVzdHJveVVzZXJHZXN0dXJlVG9rZW4odWludDY0X3QgdXNl
ckdlc3R1cmVUb2tlbklEKSAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlldy5tbQppbmRleCA2ODExZTg3YTRhNDIxMDA1YmQ5NGE3YWMyMTY1NDNlY2MwMGE3N2Zj
Li5jMjk5MjE0NThhZjAxZmQ5N2E0MDA5MmM3MTNmNjdjNDFmZjc3ZTdlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQpAQCAtNzAxLDkgKzcwMSw5IEBA
IC0gKE5TVUludGVnZXIpX3drX3BhZ2VDb3VudEZvclByaW50Rm9ybWF0dGVyOihfV0tXZWJWaWV3
UHJpbnRGb3JtYXR0ZXIgKilwcmludEZvCiAgICAgaWYgKF9pc1ByaW50aW5nVG9QREYpCiAgICAg
ICAgIHJldHVybiAwOwogCi0gICAgdWludDY0X3QgZnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRDsKICAgICBpZiAoX1dLRnJhbWVIYW5kbGUgKmhhbmRsZSA9IHBy
aW50Rm9ybWF0dGVyLmZyYW1lVG9QcmludCkKLSAgICAgICAgZnJhbWVJRCA9IGhhbmRsZS5fZnJh
bWVJRDsKKyAgICAgICAgZnJhbWVJRCA9IFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRCho
YW5kbGUuX2ZyYW1lSUQpOwogICAgIGVsc2UgaWYgKGF1dG8gbWFpbkZyYW1lID0gX3BhZ2UtPm1h
aW5GcmFtZSgpKQogICAgICAgICBmcmFtZUlEID0gbWFpbkZyYW1lLT5mcmFtZUlEKCk7CiAgICAg
ZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94
eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0K
aW5kZXggYjAyODI0ODkyMDAzYTA0OTg5MjllNzA2YTU5MDQ1OWE0Zjg3MWFjZC4uODJkMzU0MjE3
YjcwNjQyMDFlM2Q3YjA3NmU1YjA1OWI5NjAxMWNmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC0xMDY2LDcgKzEwNjYsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6aGFuZGxlU21hcnRNYWduaWZpY2F0aW9uSW5mb3JtYXRpb25Gb3JQb3Rl
bnRpYWxUYXAodWludDY0X3QgcgogICAgIHBhZ2VDbGllbnQoKS5oYW5kbGVTbWFydE1hZ25pZmlj
YXRpb25JbmZvcm1hdGlvbkZvclBvdGVudGlhbFRhcChyZXF1ZXN0SUQsIHJlbmRlclJlY3QsIGZp
dEVudGlyZVJlY3QsIHZpZXdwb3J0TWluaW11bVNjYWxlLCB2aWV3cG9ydE1heGltdW1TY2FsZSk7
CiB9CiAKLXVpbnQzMl90IFdlYlBhZ2VQcm94eTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmRE
cmF3VG9QREYodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIERy
YXdUb1BERkNhbGxiYWNrOjpDYWxsYmFja0Z1bmN0aW9uJiYgY2FsbGJhY2spCit1aW50MzJfdCBX
ZWJQYWdlUHJveHk6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgRHJhd1RvUERGQ2Fs
bGJhY2s6OkNhbGxiYWNrRnVuY3Rpb24mJiBjYWxsYmFjaykKIHsKICAgICBpZiAoIWhhc1J1bm5p
bmdQcm9jZXNzKCkpIHsKICAgICAgICAgY2FsbGJhY2soSVBDOjpEYXRhUmVmZXJlbmNlKCksIENh
bGxiYWNrQmFzZTo6RXJyb3I6Ok93bmVyV2FzSW52YWxpZGF0ZWQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9u
U2Vzc2lvblByb3h5LmNwcAppbmRleCBlNjM1M2NjZGQ1NGFkZmE1YWE1OTA1Yjg5NzMwMzRiYzFj
ZTk1NmYyLi43ZjU3ZmY4MGFjZDJiOTUxMTU5MTBmNTk1OTRkMWRmY2Y0MzZkM2MyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vz
c2lvblByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9X
ZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNwcApAQCAtMTQzLDcgKzE0Myw3IEBAIHN0YXRpYyBK
U1ZhbHVlUmVmIGV2YWx1YXRlSmF2YVNjcmlwdENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0
LCBKU09iamVjdFJlZiBmCiAgICAgaWYgKCFhdXRvbWF0aW9uU2Vzc2lvblByb3h5KQogICAgICAg
ICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiAKLSAgICB1aW50NjRfdCBm
cmFtZUlEID0gSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9u
KTsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCA9IFdlYkNvcmU6OmZyYW1l
SWRlbnRpZmllckZyb21JRChKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzBdLCBl
eGNlcHRpb24pKTsKICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gSlNWYWx1ZVRvTnVtYmVyKGNv
bnRleHQsIGFyZ3VtZW50c1sxXSwgZXhjZXB0aW9uKTsKICAgICBhdXRvIHJlc3VsdCA9IGFkb3B0
UmVmKEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzJdLCBleGNlcHRpb24p
KTsKIApAQCAtMjIwLDcgKzIyMCw3IEBAIFdlYkNvcmU6OkVsZW1lbnQqIFdlYkF1dG9tYXRpb25T
ZXNzaW9uUHJveHk6OmVsZW1lbnRGb3JOb2RlSGFuZGxlKFdlYkZyYW1lJiBmcmFtCiAKIHZvaWQg
V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZGlkQ2xlYXJXaW5kb3dPYmplY3RGb3JGcmFtZShX
ZWJGcmFtZSYgZnJhbWUpCiB7Ci0gICAgdWludDY0X3QgZnJhbWVJRCA9IGZyYW1lLmZyYW1lSUQo
KTsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCA9IGZyYW1lLmZyYW1lSUQo
KTsKICAgICBpZiAoSlNPYmplY3RSZWYgc2NyaXB0T2JqZWN0ID0gbV93ZWJGcmFtZVNjcmlwdE9i
amVjdE1hcC50YWtlKGZyYW1lSUQpKQogICAgICAgICBKU1ZhbHVlVW5wcm90ZWN0KGZyYW1lLmpz
Q29udGV4dCgpLCBzY3JpcHRPYmplY3QpOwogCkBAIC0yMzIsNyArMjMyLDcgQEAgdm9pZCBXZWJB
dXRvbWF0aW9uU2Vzc2lvblByb3h5OjpkaWRDbGVhcldpbmRvd09iamVjdEZvckZyYW1lKFdlYkZy
YW1lJiBmcmFtZSkKICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb246OkRpZEV2
YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKGNhbGxiYWNrSUQsIGVycm9yTWVzc2FnZSwgZXJyb3JU
eXBlKSwgMCk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZXZhbHVhdGVK
YXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIGZ1bmN0aW9uLCBWZWN0b3I8U3RyaW5nPiBhcmd1bWVu
dHMsIGJvb2wgZXhwZWN0c0ltcGxpY2l0Q2FsbGJhY2tBcmd1bWVudCwgaW50IGNhbGxiYWNrVGlt
ZW91dCwgdWludDY0X3QgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eTo6ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFn
ZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBmdW5j
dGlvbiwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRzLCBib29sIGV4cGVjdHNJbXBsaWNpdENhbGxi
YWNrQXJndW1lbnQsIGludCBjYWxsYmFja1RpbWVvdXQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7
CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocGFn
ZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsKQEAgLTI2Myw3ICsyNjMsNyBAQCB2b2lkIFdlYkF1dG9t
YXRpb25TZXNzaW9uUHJveHk6OmV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaQogICAgICAgICB0b0pTVmFsdWUoY29udGV4dCwgZnVuY3Rpb24pLAogICAgICAg
ICB0b0pTQXJyYXkoY29udGV4dCwgYXJndW1lbnRzLCB0b0pTVmFsdWUsICZleGNlcHRpb24pLAog
ICAgICAgICBKU1ZhbHVlTWFrZUJvb2xlYW4oY29udGV4dCwgZXhwZWN0c0ltcGxpY2l0Q2FsbGJh
Y2tBcmd1bWVudCksCi0gICAgICAgIEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIGZyYW1lSUQp
LAorICAgICAgICBKU1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCBmcmFtZUlELnRvVUludDY0KCkp
LAogICAgICAgICBKU1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCBjYWxsYmFja0lEKSwKICAgICAg
ICAgSlNPYmplY3RNYWtlRnVuY3Rpb25XaXRoQ2FsbGJhY2soY29udGV4dCwgbnVsbHB0ciwgZXZh
bHVhdGVKYXZhU2NyaXB0Q2FsbGJhY2spLAogICAgICAgICBKU1ZhbHVlTWFrZU51bWJlcihjb250
ZXh0LCBjYWxsYmFja1RpbWVvdXQpCkBAIC0zMDAsNyArMzAwLDcgQEAgdm9pZCBXZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5OjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpQYWdl
SWRlbnRpZmkKICAgICBkaWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihmcmFtZUlELCBjYWxs
YmFja0lELCBleGNlcHRpb25NZXNzYWdlLCBlcnJvclR5cGUpOwogfQogCi12b2lkIFdlYkF1dG9t
YXRpb25TZXNzaW9uUHJveHk6OmRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKHVpbnQ2NF90
IGZyYW1lSUQsIHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFN0cmluZyYgcmVzdWx0LCBjb25z
dCBTdHJpbmcmIGVycm9yVHlwZSkKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZGlk
RXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFN0cmluZyYgcmVzdWx0LCBjb25zdCBTdHJp
bmcmIGVycm9yVHlwZSkKIHsKICAgICBhdXRvIGZpbmRSZXN1bHQgPSBtX3dlYkZyYW1lUGVuZGlu
Z0V2YWx1YXRlSmF2YVNjcmlwdENhbGxiYWNrc01hcC5maW5kKGZyYW1lSUQpOwogICAgIGlmIChm
aW5kUmVzdWx0ICE9IG1fd2ViRnJhbWVQZW5kaW5nRXZhbHVhdGVKYXZhU2NyaXB0Q2FsbGJhY2tz
TWFwLmVuZCgpKSB7CkBAIC0zMTMsMTIgKzMxMywxMyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNz
aW9uUHJveHk6OmRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKHVpbnQ2NF90IGZyYW1lSUQs
CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb246OkRpZEV2YWx1YXRlSmF2YVNjcmlw
dEZ1bmN0aW9uKGNhbGxiYWNrSUQsIHJlc3VsdCwgZXJyb3JUeXBlKSwgMCk7CiB9CiAKLXZvaWQg
V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoT3JkaW5hbChX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90
IG9yZGluYWwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWludDY0
X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorLy8gRklYTUU6IFRoZXNlIGNhbGxiYWNrcyBzaG91
bGQgdGFrZSBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+Lgordm9pZCBXZWJBdXRv
bWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhPcmRpbmFsKFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IHVpbnQzMl90IG9yZGluYWwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5n
PiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdlSUQp
OwogICAgIGlmICghcGFnZSkgewogICAgICAgICBTdHJpbmcgd2luZG93Tm90Rm91bmRFcnJvclR5
cGUgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0
YW50VmFsdWUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JNZXNzYWdlOjpX
aW5kb3dOb3RGb3VuZCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHdpbmRvd05vdEZvdW5k
RXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIod2luZG93Tm90Rm91bmRF
cnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTMyNiwzNyArMzI3
LDM3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVX
aXRoT3JkaW5hbChXZWJDb3JlOjpQYWdlSWRlbnRpCiAKICAgICBXZWJGcmFtZSogZnJhbWUgPSBm
cmFtZUlEID8gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCkgOiBwYWdl
LT5tYWluV2ViRnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCiAgICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZSA9IGZyYW1lLT5jb3JlRnJhbWUoKTsK
ICAgICBpZiAoIWNvcmVGcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5v
dEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RG
b3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFdlYkNv
cmU6OkZyYW1lKiBjb3JlQ2hpbGRGcmFtZSA9IGNvcmVGcmFtZS0+dHJlZSgpLnNjb3BlZENoaWxk
KG9yZGluYWwpOwogICAgIGlmICghY29yZUNoaWxkRnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKICAgICBXZWJGcmFtZSogY2hpbGRGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1l
KCpjb3JlQ2hpbGRGcmFtZSk7CiAgICAgaWYgKCFjaGlsZEZyYW1lKSB7Ci0gICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGOjpudWxsb3B0LCBjaGlsZEZyYW1l
LT5mcmFtZUlEKCkpOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29s
dmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
LCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG5vZGVIYW5kbGUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdp
dGhOb2RlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbm9kZUhhbmRsZSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAgICAgaWYgKCFwYWdlKSB7CiAgICAgICAg
IFN0cmluZyB3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1ZShJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OldpbmRvd05vdEZvdW5kKTsKLSAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIod2luZG93Tm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIApAQCAtMzY0LDM3ICszNjUsMzcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOb2RlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJ
ZGUKIAogICAgIFdlYkZyYW1lKiBmcmFtZSA9IGZyYW1lSUQgPyBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS53ZWJGcmFtZShmcmFtZUlEKSA6IHBhZ2UtPm1haW5XZWJGcmFtZSgpOwogICAgIGlmICgh
ZnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlw
ZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUs
IHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBXZWJDb3JlOjpFbGVtZW50KiBj
b3JlRWxlbWVudCA9IGVsZW1lbnRGb3JOb2RlSGFuZGxlKCpmcmFtZSwgbm9kZUhhbmRsZSk7CiAg
ICAgaWYgKCFpczxXZWJDb3JlOjpIVE1MRnJhbWVFbGVtZW50QmFzZT4oY29yZUVsZW1lbnQpKSB7
Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZUZy
b21FbGVtZW50ID0gZG93bmNhc3Q8V2ViQ29yZTo6SFRNTEZyYW1lRWxlbWVudEJhc2U+KCpjb3Jl
RWxlbWVudCkuY29udGVudEZyYW1lKCk7CiAgICAgaWYgKCFjb3JlRnJhbWVGcm9tRWxlbWVudCkg
ewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsK
KyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFdlYkZyYW1lKiBmcmFtZUZyb21FbGVtZW50
ID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmNvcmVGcmFtZUZyb21FbGVtZW50KTsKICAgICBp
ZiAoIWZyYW1lRnJvbUVsZW1lbnQpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVO
b3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90
Rm91bmRFcnJvclR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBjb21w
bGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQsIGZyYW1lRnJvbUVsZW1lbnQtPmZyYW1lSUQoKSk7
CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVX
aXRoTmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJp
bmc+LCB1aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkF1dG9tYXRpb25T
ZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUoV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUGFn
ZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBp
ZiAoIXBhZ2UpIHsKICAgICAgICAgU3RyaW5nIHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlID0gSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVl
KEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkVycm9yTWVzc2FnZTo6V2luZG93Tm90
Rm91bmQpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9yVHlw
ZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBl
LCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC00MDIsMzcgKzQwMywzNyBAQCB2
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUo
V2ViQ29yZTo6UGFnZUlkZW50aWZpZQogCiAgICAgV2ViRnJhbWUqIGZyYW1lID0gZnJhbWVJRCA/
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpIDogcGFnZS0+bWFpbldl
YkZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihm
cmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJh
bWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAg
IFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWUgPSBmcmFtZS0+Y29yZUZyYW1lKCk7CiAgICAgaWYg
KCFjb3JlRnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVy
cm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJv
clR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBXZWJDb3JlOjpGcmFt
ZSogY29yZUNoaWxkRnJhbWUgPSBjb3JlRnJhbWUtPnRyZWUoKS5zY29wZWRDaGlsZChuYW1lKTsK
ICAgICBpZiAoIWNvcmVDaGlsZEZyYW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZy
YW1lTm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFt
ZU5vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAg
V2ViRnJhbWUqIGNoaWxkRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqY29yZUNoaWxk
RnJhbWUpOwogICAgIGlmICghY2hpbGRGcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
ZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVsbG9wdCwgY2hpbGRGcmFtZS0+ZnJhbWVJRCgp
KTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlUGFyZW50RnJh
bWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZVBhcmVu
dEZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBX
ZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdlSUQpOwog
ICAgIGlmICghcGFnZSkgewogICAgICAgICBTdHJpbmcgd2luZG93Tm90Rm91bmRFcnJvclR5cGUg
PSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0YW50
VmFsdWUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JNZXNzYWdlOjpXaW5k
b3dOb3RGb3VuZCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHdpbmRvd05vdEZvdW5kRXJy
b3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIod2luZG93Tm90Rm91bmRFcnJv
clR5cGUsIHsgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTQ0MCwyMCArNDQxLDIw
IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZVBhcmVudEZyYW1lKFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJCiAKICAgICBXZWJGcmFtZSogZnJhbWUgPSBmcmFt
ZUlEID8gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCkgOiBwYWdlLT5t
YWluV2ViRnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CiAgICAgV2ViRnJhbWUqIHBhcmVudEZyYW1lID0gZnJhbWUtPnBhcmVudEZyYW1lKCk7CiAgICAg
aWYgKCFwYXJlbnRGcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZv
dW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3Vu
ZEVycm9yVHlwZSwgeyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGNvbXBsZXRp
b25IYW5kbGVyKFdURjo6bnVsbG9wdCwgcGFyZW50RnJhbWUtPmZyYW1lSUQoKSk7CiB9CiAKLXZv
aWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Zm9jdXNGcmFtZShXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNz
aW9uUHJveHk6OmZvY3VzRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBXZWJQYWdlKiBwYWdlID0gV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAgIGlmICghcGFnZSkKQEAg
LTUyOCw3ICs1MjksNyBAQCBzdGF0aWMgV2ViQ29yZTo6RmxvYXRQb2ludCBjb252ZXJ0UG9pbnRG
cm9tRnJhbWVDbGllbnRUb1Jvb3RWaWV3KFdlYkNvcmU6OkZyYW1lVgogICAgIHJldHVybiBjbGll
bnRQb2ludDsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpjb21wdXRlRWxl
bWVudExheW91dChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1l
SUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIENvb3Jk
aW5hdGVTeXN0ZW0gY29vcmRpbmF0ZVN5c3RlbSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRp
b25hbDxTdHJpbmc+LCBXZWJDb3JlOjpJbnRSZWN0LCBPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2lu
dD4sIGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lv
blByb3h5Ojpjb21wdXRlRWxlbWVudExheW91dChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdl
SUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwg
Ym9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBDb29yZGluYXRlU3lzdGVtIGNvb3JkaW5hdGVT
eXN0ZW0sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6
SW50UmVjdCwgT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
d2ViUGFnZShwYWdlSUQpOwogICAgIGlmICghcGFnZSkgewpAQCAtNjM2LDcgKzYzNyw3IEBAIHZv
aWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Y29tcHV0ZUVsZW1lbnRMYXlvdXQoV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIgcGFnCiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGOjpudWxsb3B0
LCByZXN1bHRFbGVtZW50Qm91bmRzLCByZXN1bHRJblZpZXdDZW50ZXJQb2ludCwgaXNPYnNjdXJl
ZCk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6c2VsZWN0T3B0aW9uRWxl
bWVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0
cmluZyBub2RlSGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4p
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpz
ZWxlY3RPcHRpb25FbGVtZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewog
ICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJ
RCk7CiAgICAgaWYgKCFwYWdlKSB7CkBAIC03MDQsNyArNzA1LDcgQEAgc3RhdGljIFdlYkNvcmU6
OkludFJlY3Qgc25hcHNob3RSZWN0Rm9yU2NyZWVuc2hvdChXZWJQYWdlJiBwYWdlLCBXZWJDb3Jl
OjpFbGVtZW4KICAgICByZXR1cm4geyB9OwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9u
UHJveHk6OnRha2VTY3JlZW5zaG90KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWlu
dDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5l
ZWRlZCwgYm9vbCBjbGlwVG9WaWV3cG9ydCwgdWludDY0X3QgY2FsbGJhY2tJRCkKK3ZvaWQgV2Vi
QXV0b21hdGlvblNlc3Npb25Qcm94eTo6dGFrZVNjcmVlbnNob3QoV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIG5v
ZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgYm9vbCBjbGlwVG9WaWV3cG9y
dCwgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKICAgICBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBo
YW5kbGU7CiAKQEAgLTc1Miw3ICs3NTMsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHk6OnRha2VTY3JlZW5zaG90KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdQogICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQo
TWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpEaWRUYWtlU2NyZWVuc2hvdChjYWxsYmFj
a0lELCBoYW5kbGUsIHsgfSksIDApOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHk6OmdldENvb2tpZXNGb3JGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVp
bnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwg
VmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJB
dXRvbWF0aW9uU2Vzc2lvblByb3h5OjpnZXRDb29raWVzRm9yRnJhbWUoV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBWZWN0b3I8V2ViQ29yZTo6Q29va2ll
Pik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsKQEAgLTc3
Nyw3ICs3NzgsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmdldENvb2tpZXNG
b3JGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSQogICAgIGNvbXBsZXRpb25IYW5k
bGVyKFdURjo6bnVsbG9wdCwgZm91bmRDb29raWVzKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9u
U2Vzc2lvblByb3h5OjpkZWxldGVDb29raWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
LCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgY29va2llTmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eTo6ZGVsZXRlQ29va2llKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBjb29raWVO
YW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4pPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS53ZWJQYWdlKHBhZ2VJRCk7CiAgICAgaWYgKCFwYWdlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lv
blByb3h5LmgKaW5kZXggMTE2NzY0NTI3N2RiYzE5MzBhNWE3YTU5N2RjYmMyZGYzZWNmNTVjOS4u
NWUxYjBmY2ZmMGZjODU5OGI4Yzc5NzcwYTY4YjE4MWU3OGY2MzkxOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHkuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkNvbm5lY3Rpb24u
aCIKICNpbmNsdWRlICJDb29yZGluYXRlU3lzdGVtLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSlNCYXNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKQEAgLTUxLDcgKzUyLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaWRDbGVhcldp
bmRvd09iamVjdEZvckZyYW1lKFdlYkZyYW1lJik7CiAKLSAgICB2b2lkIGRpZEV2YWx1YXRlSmF2
YVNjcmlwdEZ1bmN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNv
bnN0IFN0cmluZyYgcmVzdWx0LCBjb25zdCBTdHJpbmcmIGVycm9yVHlwZSk7CisgICAgdm9pZCBk
aWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVp
bnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFN0cmluZyYgcmVzdWx0LCBjb25zdCBTdHJpbmcmIGVy
cm9yVHlwZSk7CiAKIHByaXZhdGU6CiAgICAgSlNPYmplY3RSZWYgc2NyaXB0T2JqZWN0Rm9yRnJh
bWUoV2ViRnJhbWUmKTsKQEAgLTYxLDIyICs2MiwyMiBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7
CiAKICAgICAvLyBDYWxsZWQgYnkgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eSBtZXNzYWdlcwot
ICAgIHZvaWQgZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgZnVuY3Rpb24sIFZlY3RvcjxTdHJp
bmc+IGFyZ3VtZW50cywgYm9vbCBleHBlY3RzSW1wbGljaXRDYWxsYmFja0FyZ3VtZW50LCBpbnQg
Y2FsbGJhY2tUaW1lb3V0LCB1aW50NjRfdCBjYWxsYmFja0lEKTsKLSAgICB2b2lkIHJlc29sdmVD
aGlsZEZyYW1lV2l0aE9yZGluYWwoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZy
YW1lSUQsIHVpbnQzMl90IG9yZGluYWwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8
U3RyaW5nPiwgdWludDY0X3QpPiYmKTsKLSAgICB2b2lkIHJlc29sdmVDaGlsZEZyYW1lV2l0aE5v
ZGVIYW5kbGUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFN0cmluZyYgbm9kZUhhbmRsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJp
bmc+LCB1aW50NjRfdCk+JiYpOwotICAgIHZvaWQgcmVzb2x2ZUNoaWxkRnJhbWVXaXRoTmFtZShX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBu
YW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4m
Jik7Ci0gICAgdm9pZCByZXNvbHZlUGFyZW50RnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5n
PiwgdWludDY0X3QpPiYmKTsKLSAgICB2b2lkIGZvY3VzRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgY29tcHV0ZUVsZW1lbnRMYXlvdXQo
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFu
ZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIENvb3JkaW5hdGVTeXN0ZW0sIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6SW50UmVjdCwgT3B0
aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBib29sKT4mJik7Ci0gICAgdm9pZCBzZWxlY3RPcHRp
b25FbGVtZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBTdHJp
bmcgbm9kZUhhbmRsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+KT4m
Jik7Ci0gICAgdm9pZCB0YWtlU2NyZWVuc2hvdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWlu
dDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5l
ZWRlZCwgYm9vbCBjbGlwVG9WaWV3cG9ydCwgdWludDY0X3QgY2FsbGJhY2tJRCk7Ci0gICAgdm9p
ZCBnZXRDb29raWVzRm9yRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZy
YW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgVmVjdG9yPFdl
YkNvcmU6OkNvb2tpZT4pPiYmKTsKLSAgICB2b2lkIGRlbGV0ZUNvb2tpZShXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIGNvb2tpZU5hbWUsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+JiYpOworICAgIHZvaWQgZXZhbHVhdGVK
YXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBmdW5jdGlvbiwgVmVjdG9yPFN0cmluZz4gYXJndW1l
bnRzLCBib29sIGV4cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJndW1lbnQsIGludCBjYWxsYmFja1Rp
bWVvdXQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIHZvaWQgcmVzb2x2ZUNoaWxkRnJhbWVX
aXRoT3JkaW5hbChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCB1aW50MzJfdCBvcmRpbmFsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0
cmluZz4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik+JiYpOworICAgIHZvaWQgcmVzb2x2ZUNo
aWxkRnJhbWVXaXRoTm9kZUhhbmRsZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5vZGVIYW5kbGUsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKT4mJik7
CisgICAgdm9pZCByZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIpPiYmKTsKKyAgICB2b2lkIHJlc29sdmVQYXJlbnRGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9w
dGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik+JiYpOworICAgIHZvaWQg
Zm9jdXNGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyKTsKKyAgICB2b2lkIGNvbXB1dGVFbGVtZW50TGF5b3V0KFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNj
cm9sbEludG9WaWV3SWZOZWVkZWQsIENvb3JkaW5hdGVTeXN0ZW0sIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6SW50UmVjdCwgT3B0aW9uYWw8V2ViQ29y
ZTo6SW50UG9pbnQ+LCBib29sKT4mJik7CisgICAgdm9pZCBzZWxlY3RPcHRpb25FbGVtZW50KFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFN0cmluZyBu
b2RlSGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4pPiYmKTsK
KyAgICB2b2lkIHRha2VTY3JlZW5zaG90KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3
SWZOZWVkZWQsIGJvb2wgY2xpcFRvVmlld3BvcnQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAg
IHZvaWQgZ2V0Q29va2llc0ZvckZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5n
PiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4pPiYmKTsKKyAgICB2b2lkIGRlbGV0ZUNvb2tpZShX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBTdHJpbmcg
Y29va2llTmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJik7
CiAKICAgICBTdHJpbmcgbV9zZXNzaW9uSWRlbnRpZmllcjsKIAotICAgIEhhc2hNYXA8dWludDY0
X3QsIEpTT2JqZWN0UmVmPiBtX3dlYkZyYW1lU2NyaXB0T2JqZWN0TWFwOwotICAgIEhhc2hNYXA8
dWludDY0X3QsIFZlY3Rvcjx1aW50NjRfdD4+IG1fd2ViRnJhbWVQZW5kaW5nRXZhbHVhdGVKYXZh
U2NyaXB0Q2FsbGJhY2tzTWFwOworICAgIEhhc2hNYXA8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBKU09iamVjdFJlZj4gbV93ZWJGcmFtZVNjcmlwdE9iamVjdE1hcDsKKyAgICBIYXNoTWFwPFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgVmVjdG9yPHVpbnQ2NF90Pj4gbV93ZWJGcmFtZVBlbmRp
bmdFdmFsdWF0ZUphdmFTY3JpcHRDYWxsYmFja3NNYXA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dl
YkF1dG9tYXRpb25TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCmlu
ZGV4IGQ3MmY4OWQyNjM1OWNmMDFjY2ZkNTMxZTk2ZTAxZjQ0NDA5YWFmNTguLmYyNzY0OWI5Yjcz
MTBiYTU5MTNiMGQ2ZmZmZTE3ZjIyNGVjNWY2M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlv
blNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgpAQCAtMjEsMjEgKzIxLDIxIEBACiAjIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAKIG1lc3NhZ2VzIC0+IFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkgewotICAgIEV2YWx1
YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWlu
dDY0X3QgZnJhbWVJRCwgU3RyaW5nIGZ1bmN0aW9uLCBWZWN0b3I8U3RyaW5nPiBhcmd1bWVudHMs
IGJvb2wgZXhwZWN0c0ltcGxpY2l0Q2FsbGJhY2tBcmd1bWVudCwgaW50IGNhbGxiYWNrVGltZW91
dCwgdWludDY0X3QgY2FsbGJhY2tJRCkKKyAgICBFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBTdHJpbmcgZnVuY3Rpb24sIFZlY3RvcjxTdHJpbmc+IGFyZ3VtZW50cywgYm9vbCBl
eHBlY3RzSW1wbGljaXRDYWxsYmFja0FyZ3VtZW50LCBpbnQgY2FsbGJhY2tUaW1lb3V0LCB1aW50
NjRfdCBjYWxsYmFja0lEKQogCi0gICAgUmVzb2x2ZUNoaWxkRnJhbWVXaXRoT3JkaW5hbChXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG9y
ZGluYWwpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgdWludDY0X3QgZnJhbWVJRCkg
QXN5bmMKLSAgICBSZXNvbHZlQ2hpbGRGcmFtZVdpdGhOb2RlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUpIC0+
IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgdWludDY0X3QgZnJhbWVJRCkgQXN5bmMKLSAg
ICBSZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5hbWUpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVy
cm9yVHlwZSwgdWludDY0X3QgZnJhbWVJRCkgQXN5bmMKLSAgICBSZXNvbHZlUGFyZW50RnJhbWUo
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlEKSAtPiAoT3B0
aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIHVpbnQ2NF90IGZyYW1lSUQpIEFzeW5jCisgICAgUmVz
b2x2ZUNoaWxkRnJhbWVXaXRoT3JkaW5hbChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQs
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50MzJfdCBvcmRpbmFsKSAtPiAo
T3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlEKSBBc3luYworICAgIFJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
U3RyaW5nIG5vZGVIYW5kbGUpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIEFzeW5jCisgICAgUmVzb2x2ZUNoaWxkRnJhbWVX
aXRoTmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBTdHJpbmcgbmFtZSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JU
eXBlLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkgQXN5bmMKKyAgICBSZXNvbHZl
UGFyZW50RnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkgQXN5bmMKIAotICAgIEZvY3VzRnJhbWUoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlEKQorICAgIEZvY3Vz
RnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCkKIAotICAgIENvbXB1dGVFbGVtZW50TGF5b3V0KFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJv
b2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgZW51bTp1aW50OF90IFdlYktpdDo6Q29vcmRpbmF0
ZVN5c3RlbSBjb29yZGluYXRlU3lzdGVtKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUs
IFdlYkNvcmU6OkludFJlY3QgcmVjdCwgT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+IGluVmll
d0NlbnRlclBvaW50LCBib29sIGlzT2JzY3VyZWQpIEFzeW5jCisgICAgQ29tcHV0ZUVsZW1lbnRM
YXlvdXQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5l
ZWRlZCwgZW51bTp1aW50OF90IFdlYktpdDo6Q29vcmRpbmF0ZVN5c3RlbSBjb29yZGluYXRlU3lz
dGVtKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIFdlYkNvcmU6OkludFJlY3QgcmVj
dCwgT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+IGluVmlld0NlbnRlclBvaW50LCBib29sIGlz
T2JzY3VyZWQpIEFzeW5jCiAKLSAgICBTZWxlY3RPcHRpb25FbGVtZW50KFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUpIC0+
IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSkgQXN5bmMKKyAgICBTZWxlY3RPcHRpb25FbGVt
ZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJv
clR5cGUpIEFzeW5jCiAKLSAgICBUYWtlU2NyZWVuc2hvdChXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9s
bEludG9WaWV3SWZOZWVkZWQsIGJvb2wgY2xpcFRvVmlld3BvcnQsIHVpbnQ2NF90IGNhbGxiYWNr
SUQpCisgICAgVGFrZVNjcmVlbnNob3QoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wg
c2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgYm9vbCBjbGlwVG9WaWV3cG9ydCwgdWludDY0X3QgY2Fs
bGJhY2tJRCkKIAotICAgIEdldENvb2tpZXNGb3JGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlw
ZSwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykgQXN5bmMKLSAgICBEZWxldGVDb29r
aWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJp
bmcgY29va2llTmFtZSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlKSBBc3luYworICAg
IEdldENvb2tpZXNGb3JGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5
cGUsIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IGNvb2tpZXMpIEFzeW5jCisgICAgRGVsZXRlQ29v
a2llKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIFN0cmluZyBjb29raWVOYW1lKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJv
clR5cGUpIEFzeW5jCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQ
bHVnSW5GcmFtZS5tbQppbmRleCAwOTk3NjM3MmYwNzM3NTdlZWRiMTc0OTNkNzMxZmEwYTNkNDY2
OGM2Li4yNTczZTZkNDg1OWU1ZTBjZmU0YTY3ZjVmNGYzYmJhNmIzMGZlODY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2Vi
UHJvY2Vzc1BsdWdJbkZyYW1lLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW0KQEAgLTQ4LDcg
KzQ4LDcgQEAgQGltcGxlbWVudGF0aW9uIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lIHsKIAogKyAo
aW5zdGFuY2V0eXBlKWxvb2tVcEZyYW1lRnJvbUhhbmRsZTooX1dLRnJhbWVIYW5kbGUgKiloYW5k
bGUKIHsKLSAgICByZXR1cm4gd3JhcHBlcihXZWJLaXQ6OldlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LndlYkZyYW1lKGhhbmRsZS5fZnJhbWVJRCkpOworICAgIHJldHVybiB3cmFwcGVyKFdlYktpdDo6
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVy
RnJvbUlEKGhhbmRsZS5fZnJhbWVJRCkpKTsKIH0KIAogLSAodm9pZClkZWFsbG9jCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2Vi
S2l0RnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9nbGliL1dlYktpdEZyYW1lLmNwcAppbmRleCBkYTY3OWRiMWI0ODJmMmI5ZmY4NzhjNDRjMGM5
MDhkY2Y5N2U3NGNjLi5hNGY1MmIyZTUwZmEyYzM3YTE4MjljOWU0ZTI2ZjQ4NjkwZTc1NWNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2ds
aWIvV2ViS2l0RnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRGcmFtZS5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgZ3VpbnQ2
NCB3ZWJraXRfZnJhbWVfZ2V0X2lkKFdlYktpdEZyYW1lKiBmcmFtZSkKIHsKICAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChXRUJLSVRfSVNfRlJBTUUoZnJhbWUpLCAwKTsKIAotICAgIHJldHVybiBm
cmFtZS0+cHJpdi0+d2ViRnJhbWUtPmZyYW1lSUQoKTsKKyAgICByZXR1cm4gZnJhbWUtPnByaXYt
PndlYkZyYW1lLT5mcmFtZUlEKCkudG9VSW50NjQoKTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKaW5k
ZXggYzQ4Y2RkODU3OTRkOTIxNjk5NTIwYzJkODM4YTViNjcwZjNiMmZmMS4uNWRmYzQyNTc4ODRi
YzI5MmE0ZGFlOGM0NDVlOTJiNzMyN2E5NmNhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApAQCAtMTU5LDcgKzE1
OSw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRl
ciYgcmVzb3VyY2VMb2FkZXIsIENhY2hlZFJlc291CiAKICAgICBXZWJSZXNvdXJjZUxvYWRlcjo6
VHJhY2tpbmdQYXJhbWV0ZXJzIHRyYWNraW5nUGFyYW1ldGVyczsKICAgICB0cmFja2luZ1BhcmFt
ZXRlcnMucGFnZUlEID0gZnJhbWVMb2FkZXJDbGllbnQucGFnZUlEKCkudmFsdWVPcihQYWdlSWRl
bnRpZmllciB7IH0pOwotICAgIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlEID0gZnJhbWVMb2Fk
ZXJDbGllbnQuZnJhbWVJRCgpLnZhbHVlT3IoMCk7CisgICAgdHJhY2tpbmdQYXJhbWV0ZXJzLmZy
YW1lSUQgPSBmcmFtZUxvYWRlckNsaWVudC5mcmFtZUlEKCkudmFsdWVPcihGcmFtZUlkZW50aWZp
ZXIgeyB9KTsKICAgICB0cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCA9IGlkZW50aWZpZXI7
CiAgICAgYXV0byBzZXNzaW9uSUQgPSBmcmFtZUxvYWRlckNsaWVudC5zZXNzaW9uSUQoKTsKIApA
QCAtMTY4LDcgKzE2OCw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZChS
ZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMb2FkZXIsIENhY2hlZFJlc291CiAgICAgLy8gdGhlbiB3
ZSBzaG91bGQgcmVtZW1iZXIgdGhlIFJlc291cmNlTG9hZGVyIGluIG91ciByZWNvcmRzIGJ1dCBu
b3Qgc2NoZWR1bGUgaXQgaW4gdGhlIE5ldHdvcmtQcm9jZXNzLgogICAgIGlmIChyZXNvdXJjZUxv
YWRlci5kb2N1bWVudExvYWRlcigpLT5zY2hlZHVsZUFyY2hpdmVMb2FkKHJlc291cmNlTG9hZGVy
LCByZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkpKSB7CiAgICAgICAgIExPRyhOZXR3b3JrU2NoZWR1
bGluZywgIihXZWJQcm9jZXNzKSBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkLCB1cmwg
JyVzJyB3aWxsIGJlIGhhbmRsZWQgYXMgYW4gYXJjaGl2ZSByZXNvdXJjZS4iLCByZXNvdXJjZUxv
YWRlci51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgaGFu
ZGxlZCBhcyBhbiBhcmNoaXZlIHJlc291cmNlIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwg
cmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2
NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7CisgICAgICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3
aWxsIGJlIGhhbmRsZWQgYXMgYW4gYXJjaGl2ZSByZXNvdXJjZSAoZnJhbWUgPSAlcCwgcGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBS
SXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdl
SUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgaWRl
bnRpZmllcik7CiAgICAgICAgIG1fd2ViUmVzb3VyY2VMb2FkZXJzLnNldChpZGVudGlmaWVyLCBX
ZWJSZXNvdXJjZUxvYWRlcjo6Y3JlYXRlKHJlc291cmNlTG9hZGVyLCB0cmFja2luZ1BhcmFtZXRl
cnMpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE3NiwxNCArMTc2LDE0IEBAIHZvaWQg
V2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VM
b2FkZXIsIENhY2hlZFJlc291CiAKICAgICBpZiAocmVzb3VyY2VMb2FkZXIuZG9jdW1lbnRMb2Fk
ZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS5tYXliZUxvYWRSZXNvdXJjZShyZXNvdXJjZUxv
YWRlciwgcmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLCByZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCku
dXJsKCkpKSB7CiAgICAgICAgIExPRyhOZXR3b3JrU2NoZWR1bGluZywgIihXZWJQcm9jZXNzKSBX
ZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkLCB1cmwgJyVzJyB3aWxsIGJlIGxvYWRlZCBm
cm9tIGFwcGxpY2F0aW9uIGNhY2hlLiIsIHJlc291cmNlTG9hZGVyLnVybCgpLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOwotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9h
ZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBsb2FkZWQgZnJvbSBhcHBsaWNhdGlvbiBj
YWNoZSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCks
IHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJz
LmZyYW1lSUQsIGlkZW50aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJl
c291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBsb2FkZWQgZnJvbSBhcHBs
aWNhdGlvbiBjYWNoZSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVy
LmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQ
YXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmllcik7CiAgICAgICAgIG1fd2Vi
UmVzb3VyY2VMb2FkZXJzLnNldChpZGVudGlmaWVyLCBXZWJSZXNvdXJjZUxvYWRlcjo6Y3JlYXRl
KHJlc291cmNlTG9hZGVyLCB0cmFja2luZ1BhcmFtZXRlcnMpKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAogICAgIGlmIChyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkudXJsKCkucHJvdG9jb2xJ
c0RhdGEoKSkgewogICAgICAgICBMT0coTmV0d29ya1NjaGVkdWxpbmcsICIoV2ViUHJvY2Vzcykg
V2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZCwgdXJsICclcycgd2lsbCBiZSBsb2FkZWQg
YXMgZGF0YS4iLCByZXNvdXJjZUxvYWRlci51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsK
LSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxl
TG9hZDogVVJMIHdpbGwgYmUgbG9hZGVkIGFzIGRhdGEgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQg
IikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRv
VUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBpZGVudGlmaWVyKTsKKyAgICAg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDog
VVJMIHdpbGwgYmUgbG9hZGVkIGFzIGRhdGEgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBy
ZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0
KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIGlkZW50aWZpZXIpOwog
ICAgICAgICBzdGFydExvY2FsTG9hZChyZXNvdXJjZUxvYWRlcik7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CkBAIC0xOTEsNyArMTkxLDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1
bGVMb2FkKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlciwgQ2FjaGVkUmVzb3UKICNpZiBV
U0UoUVVJQ0tfTE9PSykKICAgICBpZiAoaXNRdWlja0xvb2tQcmV2aWV3VVJMKHJlc291cmNlTG9h
ZGVyLnJlcXVlc3QoKS51cmwoKSkpIHsKICAgICAgICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5nLCAi
KFdlYlByb2Nlc3MpIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQsIHVybCAnJXMnIHdp
bGwgYmUgaGFuZGxlZCBhcyBhIFF1aWNrTG9vayByZXNvdXJjZS4iLCByZXNvdXJjZUxvYWRlci51
cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgaGFuZGxlZCBh
cyBhIFF1aWNrTG9vayByZXNvdXJjZSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIs
IGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291
cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwg
dHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIGlkZW50aWZpZXIpOworICAgICAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBi
ZSBoYW5kbGVkIGFzIGEgUXVpY2tMb29rIHJlc291cmNlIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0
ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50
b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlm
aWVyKTsKICAgICAgICAgc3RhcnRMb2NhbExvYWQocmVzb3VyY2VMb2FkZXIpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQpAQCAtMjAyLDcgKzIwMiw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6
OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMb2FkZXIsIENhY2hlZFJlc291
CiAgICAgLy8gaHR0cHM6Ly9ibG9ncy5nbm9tZS5vcmcvYWxleGwvMjAxMi8wMS8yNi9yZXNvdXJj
ZXMtaW4tZ2xpYi8KICAgICBpZiAocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnVybCgpLnByb3Rv
Y29sSXMoInJlc291cmNlIikpIHsKICAgICAgICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5nLCAiKFdl
YlByb2Nlc3MpIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQsIHVybCAnJXMnIHdpbGwg
YmUgaGFuZGxlZCBhcyBhIEdSZXNvdXJjZS4iLCByZXNvdXJjZUxvYWRlci51cmwoKS5zdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJj
ZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgaGFuZGxlZCBhcyBhIEdSZXNvdXJj
ZSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQg
IiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRy
YWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZy
YW1lSUQsIGlkZW50aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291
cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBoYW5kbGVkIGFzIGEgR1Jlc291
cmNlIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2
NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwg
dHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMu
ZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsKICAgICAgICAgc3RhcnRMb2NhbExvYWQo
cmVzb3VyY2VMb2FkZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjEyLDExICsyMTIs
MTEgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVy
JiByZXNvdXJjZUxvYWRlciwgQ2FjaGVkUmVzb3UKICAgICBXZWJTZXJ2aWNlV29ya2VyUHJvdmlk
ZXI6OnNpbmdsZXRvbigpLmhhbmRsZUZldGNoKHJlc291cmNlTG9hZGVyLCBzZXNzaW9uSUQsIHNo
b3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFt0aGlzLCB0cmFja2luZ1Bh
cmFtZXRlcnMsIGlkZW50aWZpZXIsIHNlc3Npb25JRCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRU
UFNUb0hUVFBSZWRpcmVjdCwgbWF4aW11bUJ1ZmZlcmluZ1RpbWUgPSBtYXhpbXVtQnVmZmVyaW5n
VGltZShyZXNvdXJjZSksIHJlc291cmNlTG9hZGVyID0gbWFrZVJlZihyZXNvdXJjZUxvYWRlcild
IChTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OlJlc3VsdCByZXN1bHQpIG11dGFibGUgewogICAg
ICAgICBpZiAocmVzdWx0ICE9IFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6UmVzdWx0OjpVbmhh
bmRsZWQpIHsKICAgICAgICAgICAgIExPRyhOZXR3b3JrU2NoZWR1bGluZywgIihXZWJQcm9jZXNz
KSBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkLCB1cmwgJyVzJyB3aWxsIGJlIHNjaGVk
dWxlZCB0aHJvdWdoIFNlcnZpY2VXb3JrZXIgaGFuZGxlIGZldGNoIGFsZ29yaXRobSIsIHJlc291
cmNlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwotICAgICAgICAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlci5nZXQoKSwgInNjaGVkdWxlTG9h
ZDogVVJMIHdpbGwgYmUgc2NoZWR1bGVkIHRocm91Z2ggU2VydmljZVdvcmtlciBoYW5kbGUgZmV0
Y2ggYWxnb3JpdGhtIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9
ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIt
PmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQ
YXJhbWV0ZXJzLmZyYW1lSUQsIGlkZW50aWZpZXIpOworICAgICAgICAgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlci5nZXQoKSwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwg
YmUgc2NoZWR1bGVkIHRocm91Z2ggU2VydmljZVdvcmtlciBoYW5kbGUgZmV0Y2ggYWxnb3JpdGht
IChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAi
LCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXItPmZyYW1lKCksIHRy
YWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZy
YW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmllcik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KICAgICAgICAgaWYgKHJlc291cmNlTG9hZGVyLT5vcHRpb25zKCkuc2VydmljZVdvcmtl
cnNNb2RlID09IFNlcnZpY2VXb3JrZXJzTW9kZTo6T25seSkgewotICAgICAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1JfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlci5nZXQoKSwgInNjaGVkdWxlTG9h
ZDogdW5hYmxlIHRvIHNjaGVkdWxlIFVSTCB0aHJvdWdoIFNlcnZpY2VXb3JrZXIgaGFuZGxlIGZl
dGNoIGFsZ29yaXRobSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVy
LT5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5n
UGFyYW1ldGVycy5mcmFtZUlELCBpZGVudGlmaWVyKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIuZ2V0KCksICJzY2hlZHVsZUxvYWQ6IHVu
YWJsZSB0byBzY2hlZHVsZSBVUkwgdGhyb3VnaCBTZXJ2aWNlV29ya2VyIGhhbmRsZSBmZXRjaCBh
bGdvcml0aG0gKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci0+ZnJh
bWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFt
ZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsKICAgICAgICAgICAgIGNhbGxP
bk1haW5UaHJlYWQoW3Jlc291cmNlTG9hZGVyID0gV1RGTW92ZShyZXNvdXJjZUxvYWRlcildIHsK
ICAgICAgICAgICAgICAgICBhdXRvIGVycm9yID0gaW50ZXJuYWxFcnJvcihyZXNvdXJjZUxvYWRl
ci0+cmVxdWVzdCgpLnVybCgpKTsKICAgICAgICAgICAgICAgICBlcnJvci5zZXRUeXBlKFJlc291
cmNlRXJyb3I6OlR5cGU6OkNhbmNlbGxhdGlvbik7CkBAIC0yMjgsMTMgKzIyOCwxMyBAQCB2b2lk
IFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXImIHJlc291cmNl
TG9hZGVyLCBDYWNoZWRSZXNvdQogICAgICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LndlYkxvYWRlclN0cmF0ZWd5KCkudHJ5TG9hZGluZ1VzaW5nVVJMU2NoZW1lSGFuZGxlcihyZXNv
dXJjZUxvYWRlcikpCiAgICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJMb2Fk
ZXJTdHJhdGVneSgpLnNjaGVkdWxlTG9hZEZyb21OZXR3b3JrUHJvY2VzcyhyZXNvdXJjZUxvYWRl
ci5nZXQoKSwgcmVzb3VyY2VMb2FkZXItPnJlcXVlc3QoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLCBz
ZXNzaW9uSUQsIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIG1heGlt
dW1CdWZmZXJpbmdUaW1lKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlci5nZXQoKSwgInNjaGVkdWxlTG9hZDogVVJMIG5vdCBo
YW5kbGVkIGJ5IGFueSBoYW5kbGVycyAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIs
IGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291
cmNlTG9hZGVyLT5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCks
IHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBpZGVudGlmaWVyKTsKKyAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIuZ2V0KCksICJzY2hlZHVsZUxvYWQ6
IFVSTCBub3QgaGFuZGxlZCBieSBhbnkgaGFuZGxlcnMgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQg
IikiLCByZXNvdXJjZUxvYWRlci0+ZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50
b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlm
aWVyKTsKICAgICB9KTsKICNlbHNlCiAgICAgaWYgKCF0cnlMb2FkaW5nVXNpbmdVUkxTY2hlbWVI
YW5kbGVyKHJlc291cmNlTG9hZGVyKSkKICAgICAgICAgc2NoZWR1bGVMb2FkRnJvbU5ldHdvcmtQ
cm9jZXNzKHJlc291cmNlTG9hZGVyLCByZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCksIHRyYWNraW5n
UGFyYW1ldGVycywgc2Vzc2lvbklELCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJl
ZGlyZWN0LCBtYXhpbXVtQnVmZmVyaW5nVGltZShyZXNvdXJjZSkpOwogICAgIGVsc2UKLSAgICAg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDog
VVJMIG5vdCBoYW5kbGVkIGJ5IGFueSBoYW5kbGVycyAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAi
KSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9V
SW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIGlkZW50aWZpZXIpOworICAgICAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBV
Ukwgbm90IGhhbmRsZWQgYnkgYW55IGhhbmRsZXJzIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIp
IiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJ
bnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlmaWVy
KTsKICNlbmRpZgogfQogCkBAIC0zMjUsNyArMzI1LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVn
eTo6c2NoZWR1bGVMb2FkRnJvbU5ldHdvcmtQcm9jZXNzKFJlc291cmNlTG9hZGVyJiByZXNvdXJj
ZUwKICAgICBpZiAobG9hZFBhcmFtZXRlcnMub3B0aW9ucy5tb2RlICE9IEZldGNoT3B0aW9uczo6
TW9kZTo6TmF2aWdhdGUpIHsKICAgICAgICAgQVNTRVJUKGxvYWRQYXJhbWV0ZXJzLnNvdXJjZU9y
aWdpbik7CiAgICAgICAgIGlmICghbG9hZFBhcmFtZXRlcnMuc291cmNlT3JpZ2luKSB7Ci0gICAg
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2No
ZWR1bGVMb2FkOiBubyBzb3VyY2VPcmlnaW4gKGZyYW1lID0gJXAsIHByaW9yaXR5ID0gJWQsIHBh
Z2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAl
IiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHJl
c291cmNlTG9hZGVyLnJlcXVlc3QoKS5wcmlvcml0eSgpKSwgbG9hZFBhcmFtZXRlcnMud2ViUGFn
ZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQsIGxvYWRQYXJhbWV0ZXJz
LmlkZW50aWZpZXIpOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChy
ZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogbm8gc291cmNlT3JpZ2luIChmcmFtZSA9ICVw
LCBwcmlvcml0eSA9ICVkLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2
NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwg
c3RhdGljX2Nhc3Q8aW50PihyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkucHJpb3JpdHkoKSksIGxv
YWRQYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVycy53ZWJGcmFt
ZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIpOwogICAgICAgICAgICAg
c2NoZWR1bGVJbnRlcm5hbGx5RmFpbGVkTG9hZChyZXNvdXJjZUxvYWRlcik7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KQEAgLTM0OCw5ICszNDgsOSBAQCB2b2lkIFdlYkxvYWRlclN0
cmF0ZWd5OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MoUmVzb3VyY2VMb2FkZXImIHJl
c291cmNlTAogCiAgICAgQVNTRVJUKChsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQgJiYgbG9hZFBh
cmFtZXRlcnMud2ViRnJhbWVJRCkgfHwgbG9hZFBhcmFtZXRlcnMuY2xpZW50Q3JlZGVudGlhbFBv
bGljeSA9PSBDbGllbnRDcmVkZW50aWFsUG9saWN5OjpDYW5ub3RBc2tDbGllbnRGb3JDcmVkZW50
aWFscyk7CiAKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2No
ZWR1bGVMb2FkOiBSZXNvdXJjZSBpcyBiZWluZyBzY2hlZHVsZWQgd2l0aCB0aGUgTmV0d29ya1By
b2Nlc3MgKGZyYW1lID0gJXAsIHByaW9yaXR5ID0gJWQsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJj
ZUxvYWRlci5mcmFtZSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlTG9hZGVyLnJlcXVlc3Qo
KS5wcmlvcml0eSgpKSwgbG9hZFBhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIGxvYWRQ
YXJhbWV0ZXJzLndlYkZyYW1lSUQsIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIpOworICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFJlc291
cmNlIGlzIGJlaW5nIHNjaGVkdWxlZCB3aXRoIHRoZSBOZXR3b3JrUHJvY2VzcyAoZnJhbWUgPSAl
cCwgcHJpb3JpdHkgPSAlZCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCks
IHN0YXRpY19jYXN0PGludD4ocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnByaW9yaXR5KCkpLCBs
b2FkUGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbG9hZFBhcmFtZXRlcnMud2ViRnJh
bWVJRC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyKTsKICAgICBpZiAoIVdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNv
bm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
U2NoZWR1bGVSZXNvdXJjZUxvYWQobG9hZFBhcmFtZXRlcnMpLCAwKSkgewotICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBV
bmFibGUgdG8gc2NoZWR1bGUgcmVzb3VyY2Ugd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3MgKGZyYW1l
ID0gJXAsIHByaW9yaXR5ID0gJWQsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFt
ZSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS5wcmlvcml0eSgp
KSwgbG9hZFBhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLndl
YkZyYW1lSUQsIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUl9JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVbmFibGUg
dG8gc2NoZWR1bGUgcmVzb3VyY2Ugd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3MgKGZyYW1lID0gJXAs
IHByaW9yaXR5ID0gJWQsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCBz
dGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS5wcmlvcml0eSgpKSwgbG9h
ZFBhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1l
SUQudG9VSW50NjQoKSwgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllcik7CiAgICAgICAgIC8vIFdl
IHByb2JhYmx5IGZhaWxlZCB0byBzY2hlZHVsZSB0aGlzIGxvYWQgd2l0aCB0aGUgTmV0d29ya1By
b2Nlc3MgYmVjYXVzZSBpdCBoYWQgY3Jhc2hlZC4KICAgICAgICAgLy8gVGhpcyBsb2FkIHdpbGwg
bmV2ZXIgc3VjY2VlZCBzbyB3ZSB3aWxsIHNjaGVkdWxlIGl0IHRvIGZhaWwgYXN5bmNocm9ub3Vz
bHkuCiAgICAgICAgIHNjaGVkdWxlSW50ZXJuYWxseUZhaWxlZExvYWQocmVzb3VyY2VMb2FkZXIp
OwpAQCAtNTIwLDE4ICs1MjAsMTggQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6bG9hZFJlc291
cmNlU3luY2hyb25vdXNseShGcmFtZUxvYWRlciYgZnJhbWVMb2FkZXIsIHVuc2kKICAgICBXZWJQ
YWdlKiB3ZWJQYWdlID0gd2ViRnJhbWUgPyB3ZWJGcmFtZS0+cGFnZSgpIDogbnVsbHB0cjsKIAog
ICAgIGF1dG8gcGFnZUlEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnBhZ2VJRCgpIDogUGFnZUlkZW50
aWZpZXIgeyB9OwotICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZyYW1lID8gd2ViRnJhbWUtPmZyYW1l
SUQoKSA6IDA7CisgICAgYXV0byBmcmFtZUlEID0gd2ViRnJhbWUgPyB3ZWJGcmFtZS0+ZnJhbWVJ
RCgpIDogRnJhbWVJZGVudGlmaWVyIHsgfTsKICAgICBhdXRvIHNlc3Npb25JRCA9IHdlYlBhZ2Ug
PyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSA6IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklE
KCk7CiAKICAgICBhdXRvKiBkb2N1bWVudCA9IGZyYW1lTG9hZGVyLmZyYW1lKCkuZG9jdW1lbnQo
KTsKICAgICBpZiAoIWRvY3VtZW50KSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FM
TE9XRUQoc2Vzc2lvbklELCAibG9hZFJlc291cmNlU3luY2hyb25vdXNseTogbm8gZG9jdW1lbnQg
KHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQg
PSAlbHUpIiwgcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQsIHJlc291cmNlTG9hZElkZW50aWZp
ZXIpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHNlc3Npb25JRCwgImxv
YWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6IG5vIGRvY3VtZW50IChwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJWx1KSIsIHBhZ2VJRC50b1VJ
bnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCksIHJlc291cmNlTG9hZElkZW50aWZpZXIpOwogICAg
ICAgICBlcnJvciA9IGludGVybmFsRXJyb3IocmVxdWVzdC51cmwoKSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKICAgICBpZiAoYXV0byBzeW5jTG9hZFJlc3VsdCA9IHRyeUxvYWRpbmdTeW5j
aHJvbm91c2x5VXNpbmdVUkxTY2hlbWVIYW5kbGVyKGZyYW1lTG9hZGVyLCByZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyLCByZXF1ZXN0KSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExP
V0VEKHNlc3Npb25JRCwgImxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6IGZhaWxlZCBjYWxsaW5n
IHRyeUxvYWRpbmdTeW5jaHJvbm91c2x5VXNpbmdVUkxTY2hlbWVIYW5kbGVyIChwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJWx1LCBlcnJv
ciA9ICVkKSIsIHBhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELCByZXNvdXJjZUxvYWRJZGVudGlm
aWVyLCBzeW5jTG9hZFJlc3VsdC0+ZXJyb3IuZXJyb3JDb2RlKCkpOworICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUl9JRl9BTExPV0VEKHNlc3Npb25JRCwgImxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHk6IGZhaWxlZCBjYWxsaW5nIHRyeUxvYWRpbmdTeW5jaHJvbm91c2x5VXNpbmdVUkxTY2hlbWVI
YW5kbGVyIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNv
dXJjZUlEID0gJWx1LCBlcnJvciA9ICVkKSIsIHBhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRv
VUludDY0KCksIHJlc291cmNlTG9hZElkZW50aWZpZXIsIHN5bmNMb2FkUmVzdWx0LT5lcnJvci5l
cnJvckNvZGUoKSk7CiAgICAgICAgIGVycm9yID0gV1RGTW92ZShzeW5jTG9hZFJlc3VsdC0+ZXJy
b3IpOwogICAgICAgICByZXNwb25zZSA9IFdURk1vdmUoc3luY0xvYWRSZXN1bHQtPnJlc3BvbnNl
KTsKICAgICAgICAgZGF0YSA9IFdURk1vdmUoc3luY0xvYWRSZXN1bHQtPmRhdGEpOwpAQCAtNTY5
LDcgKzU2OSw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNvdXJjZVN5bmNocm9u
b3VzbHkoRnJhbWVMb2FkZXImIGZyYW1lTG9hZGVyLCB1bnNpCiAgICAgICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Oldl
YlByb2Nlc3NQb29sOjpTZXRXZWJQcm9jZXNzSGFzVXBsb2FkcyB7IFByb2Nlc3M6OmlkZW50aWZp
ZXIoKSB9LCAwKTsKIAogICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGVyZm9ybVN5bmNocm9ub3VzTG9hZChsb2Fk
UGFyYW1ldGVycyksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGVy
Zm9ybVN5bmNocm9ub3VzTG9hZDo6UmVwbHkoZXJyb3IsIHJlc3BvbnNlLCBkYXRhKSwgMCkpIHsK
LSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChzZXNzaW9uSUQsICJsb2FkUmVz
b3VyY2VTeW5jaHJvbm91c2x5OiBmYWlsZWQgc2VuZGluZyBzeW5jaHJvbm91cyBuZXR3b3JrIHBy
b2Nlc3MgbWVzc2FnZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQg
IiwgcmVzb3VyY2VJRCA9ICVsdSkiLCBwYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCwgcmVzb3Vy
Y2VMb2FkSWRlbnRpZmllcik7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQo
c2Vzc2lvbklELCAibG9hZFJlc291cmNlU3luY2hyb25vdXNseTogZmFpbGVkIHNlbmRpbmcgc3lu
Y2hyb25vdXMgbmV0d29yayBwcm9jZXNzIG1lc3NhZ2UgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlbHUpIiwgcGFnZUlELnRvVUludDY0
KCksIGZyYW1lSUQudG9VSW50NjQoKSwgcmVzb3VyY2VMb2FkSWRlbnRpZmllcik7CiAgICAgICAg
IGlmIChhdXRvKiBwYWdlID0gd2ViUGFnZSA/IHdlYlBhZ2UtPmNvcmVQYWdlKCkgOiBudWxscHRy
KQogICAgICAgICAgICAgcGFnZS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9z
dGljTWVzc2FnZShXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmludGVybmFsRXJyb3JL
ZXkoKSwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpzeW5jaHJvbm91c01lc3NhZ2VG
YWlsZWRLZXkoKSwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlOjpObyk7CiAgICAgICAgIHJlc3BvbnNl
ID0gUmVzb3VyY2VSZXNwb25zZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDg4YmQ1M2JmMWY4ZmI3MzZl
YjE3M2VmNjRmMWUzMDNkMWJiMTAwYzEuLmZhNTM5MjVlYjY4ZjA0MmZlYzc5YmYzODg2MGIyNzYw
MzI1ZmI1MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YlJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTg4LDE2ICs4OCwxNiBAQCB2b2lkIFdlYlJlc291
cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcHJvcG9zZWRSZXF1
ZXN0LCBSZXNvdQogICAgIFJlZjxXZWJSZXNvdXJjZUxvYWRlcj4gcHJvdGVjdGVkVGhpcygqdGhp
cyk7CiAKICAgICBMT0coTmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6
d2lsbFNlbmRSZXF1ZXN0IHRvICclcyciLCBwcm9wb3NlZFJlcXVlc3QudXJsKCkuc3RyaW5nKCku
bGF0aW4xKCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3aWxsU2VuZFJl
cXVlc3Q6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNv
dXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUlu
dDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJz
LnJlc291cmNlSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIndpbGxTZW5kUmVxdWVz
dDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNl
SUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQo
KSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFy
YW1ldGVycy5yZXNvdXJjZUlEKTsKIAogICAgIGlmIChtX2NvcmVMb2FkZXItPmRvY3VtZW50TG9h
ZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCkubWF5YmVMb2FkRmFsbGJhY2tGb3JSZWRpcmVj
dChtX2NvcmVMb2FkZXIuZ2V0KCksIHByb3Bvc2VkUmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSkp
IHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgid2lsbFNlbmRSZXF1ZXN0OiBleGl0
aW5nIGVhcmx5IGJlY2F1c2UgbWF5YmVMb2FkRmFsbGJhY2tGb3JSZWRpcmVjdCByZXR1cm5lZCBm
YWxzZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3Vy
Y2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2
NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5y
ZXNvdXJjZUlEKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgid2lsbFNlbmRSZXF1
ZXN0OiBleGl0aW5nIGVhcmx5IGJlY2F1c2UgbWF5YmVMb2FkRmFsbGJhY2tGb3JSZWRpcmVjdCBy
ZXR1cm5lZCBmYWxzZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQg
IiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJ
RC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIG1f
dHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CiAgICAgbV9jb3JlTG9hZGVyLT53aWxsU2VuZFJlcXVlc3QoV1RGTW92ZShwcm9wb3NlZFJlcXVl
c3QpLCByZWRpcmVjdFJlc3BvbnNlLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJv
dGVjdGVkVGhpcyldKFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QpIHsKICAgICAgICAgaWYgKCFt
X2NvcmVMb2FkZXIgfHwgIW1fY29yZUxvYWRlci0+aWRlbnRpZmllcigpKSB7Ci0gICAgICAgICAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3aWxsU2VuZFJlcXVlc3Q6IGV4aXRpbmcgZWFybHkg
YmVjYXVzZSBubyBjb3JlbG9hZGVyIG9yIGlkZW50aWZpZXIgKHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3Ry
YWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMu
ZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAgICAgICAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3aWxsU2VuZFJlcXVlc3Q6IGV4aXRpbmcgZWFybHkgYmVj
YXVzZSBubyBjb3JlbG9hZGVyIG9yIGlkZW50aWZpZXIgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNr
aW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJh
bWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC0xMTMsMTIgKzExMywxMiBAQCB2b2lkIFdl
YlJlc291cmNlTG9hZGVyOjpkaWRTZW5kRGF0YSh1aW50NjRfdCBieXRlc1NlbnQsIHVpbnQ2NF90
IHRvdGFsQnl0ZXNUb0JlUwogdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3Bv
bnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib29sIG5lZWRzQ29udGludWVE
aWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKQogewogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nl
c3MpIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UgZm9yICclcycuIFN0YXR1
cyAlZC4iLCBtX2NvcmVMb2FkZXItPnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSwgcmVz
cG9uc2UuaHR0cFN0YXR1c0NvZGUoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlk
UmVjZWl2ZVJlc3BvbnNlOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBzdGF0dXMgPSAlZCkiLCBtX3RyYWNraW5n
UGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJ
RCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCwgcmVzcG9uc2UuaHR0cFN0YXR1c0Nv
ZGUoKSk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiAo
cGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9
ICUiIFBSSXU2NCAiLCBzdGF0dXMgPSAlZCkiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQu
dG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3Ry
YWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlELCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpKTsK
IAogICAgIFJlZjxXZWJSZXNvdXJjZUxvYWRlcj4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAKICAg
ICBpZiAobV9jb3JlTG9hZGVyLT5kb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9z
dCgpLm1heWJlTG9hZEZhbGxiYWNrRm9yUmVzcG9uc2UobV9jb3JlTG9hZGVyLmdldCgpLCByZXNw
b25zZSkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3Bv
bnNlOiBub3QgY29udGludWluZyBsb2FkIGJlY2F1c2UgdGhlIGNvbnRlbnQgaXMgYWxyZWFkeSBj
YWNoZWQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50
NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMu
cmVzb3VyY2VJRCk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVS
ZXNwb25zZTogbm90IGNvbnRpbnVpbmcgbG9hZCBiZWNhdXNlIHRoZSBjb250ZW50IGlzIGFscmVh
ZHkgY2FjaGVkIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBy
ZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRv
VUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFj
a2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAg
LTEzNSw3ICsxMzUsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9u
c2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGJvbwogICAgICAgICAgICAgaWYg
KG1fY29yZUxvYWRlciAmJiBtX2NvcmVMb2FkZXItPmlkZW50aWZpZXIoKSkKICAgICAgICAgICAg
ICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OkNvbnRpbnVlRGlkUmVj
ZWl2ZVJlc3BvbnNlKCkpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZTogbm90IGNvbnRpbnVpbmcgbG9h
ZCBiZWNhdXNlIG5vIGNvcmVMb2FkZXIgb3Igbm8gSUQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNr
aW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJh
bWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAgICAgICAgICAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiBub3QgY29udGludWlu
ZyBsb2FkIGJlY2F1c2Ugbm8gY29yZUxvYWRlciBvciBubyBJRCAocGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1f
dHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVy
cy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwog
ICAgICAgICB9OwogICAgIH0KIApAQCAtMTQ4LDcgKzE0OCw3IEBAIHZvaWQgV2ViUmVzb3VyY2VM
b2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgaW50
NjRfdCBlCiAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghbV9pc1Byb2Nlc3NpbmdOZXR3b3JrUmVz
cG9uc2UsICJOZXR3b3JrIHByb2Nlc3Mgc2hvdWxkIG5vdCBzZW5kIGRhdGEgdW50aWwgd2UndmUg
dmFsaWRhdGVkIHRoZSByZXNwb25zZSIpOwogCiAgICAgaWYgKCFtX251bUJ5dGVzUmVjZWl2ZWQp
IHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZURhdGE6IFN0YXJ0
ZWQgcmVjZWl2aW5nIGRhdGEgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5w
YWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2lu
Z1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
ImRpZFJlY2VpdmVEYXRhOiBTdGFydGVkIHJlY2VpdmluZyBkYXRhIChwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwg
bV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0
ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7
CiAgICAgfQogICAgIG1fbnVtQnl0ZXNSZWNlaXZlZCArPSBkYXRhLnNpemUoKTsKIApAQCAtMTU4
LDcgKzE1OCw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0
IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgaW50NjRfdCBlCiB2b2lkIFdlYlJlc291cmNlTG9h
ZGVyOjpkaWRGaW5pc2hSZXNvdXJjZUxvYWQoY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3
b3JrTG9hZE1ldHJpY3MpCiB7CiAgICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVz
b3VyY2VMb2FkZXI6OmRpZEZpbmlzaFJlc291cmNlTG9hZCBmb3IgJyVzJyIsIG1fY29yZUxvYWRl
ci0+dXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJkaWRGaW5pc2hSZXNvdXJjZUxvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGxlbmd0aCA9ICV6
ZCkiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1Bh
cmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCwgbV9udW1C
eXRlc1JlY2VpdmVkKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRGaW5pc2hSZXNv
dXJjZUxvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBy
ZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGxlbmd0aCA9ICV6ZCkiLCBtX3RyYWNraW5nUGFyYW1l
dGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJ
bnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlELCBtX251bUJ5dGVzUmVjZWl2
ZWQpOwogCiAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghbV9pc1Byb2Nlc3NpbmdOZXR3b3JrUmVz
cG9uc2UsICJMb2FkIHNob3VsZCBub3QgYmUgYWJsZSB0byBmaW5pc2ggYmVmb3JlIHdlJ3ZlIHZh
bGlkYXRlZCB0aGUgcmVzcG9uc2UiKTsKICAgICBtX2NvcmVMb2FkZXItPmRpZEZpbmlzaExvYWRp
bmcobmV0d29ya0xvYWRNZXRyaWNzKTsKQEAgLTE2Nyw3ICsxNjcsNyBAQCB2b2lkIFdlYlJlc291
cmNlTG9hZGVyOjpkaWRGaW5pc2hSZXNvdXJjZUxvYWQoY29uc3QgTmV0d29ya0xvYWRNZXRyaWNz
JiBuZXR3b3JrTAogdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbFJlc291cmNlTG9hZChj
b25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKICAgICBMT0coTmV0d29yaywgIihXZWJQcm9j
ZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbFJlc291cmNlTG9hZCBmb3IgJyVzJyIsIG1f
Y29yZUxvYWRlci0+dXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKLSAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKCJkaWRGYWlsUmVzb3VyY2VMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1f
dHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVy
cy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKKyAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKCJkaWRGYWlsUmVzb3VyY2VMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1f
dHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVy
cy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwog
CiAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghbV9pc1Byb2Nlc3NpbmdOZXR3b3JrUmVzcG9uc2Us
ICJMb2FkIHNob3VsZCBub3QgYmUgYWJsZSB0byBmaW5pc2ggYmVmb3JlIHdlJ3ZlIHZhbGlkYXRl
ZCB0aGUgcmVzcG9uc2UiKTsKIApAQCAtMTc5LDcgKzE3OSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VM
b2FkZXI6OmRpZEZhaWxSZXNvdXJjZUxvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB2
b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRCbG9ja0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCkK
IHsKICAgICBMT0coTmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlk
QmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBmb3IgJyVzJyIsIG1fY29yZUxvYWRlci0+dXJs
KCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KCJkaWRCbG9ja0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOiAocGFnZUlEID0gJSIgUFJJdTY0ICIs
IGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJh
Y2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5m
cmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKKyAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKCJkaWRCbG9ja0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOiAocGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2
NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5n
UGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291
cmNlSUQpOwogCiAgICAgbV9jb3JlTG9hZGVyLT5kaWRCbG9ja0F1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKCk7CiB9CkBAIC0xODcsNyArMTg3LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlk
QmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgpCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpz
dG9wTG9hZGluZ0FmdGVyWEZyYW1lT3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVk
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIExPRyhOZXR3b3JrLCAi
KFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9hZGVyOjpzdG9wTG9hZGluZ0FmdGVyWEZyYW1lT3B0
aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVkIGZvciAnJXMnIiwgbV9jb3JlTG9hZGVy
LT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoInN0b3BMb2FkaW5nQWZ0ZXJYRnJhbWVPcHRpb25zT3JDb250ZW50U2VjdXJpdHlQb2xp
Y3lEZW5pZWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBy
ZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRv
VUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0
ZXJzLnJlc291cmNlSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0b3BMb2FkaW5n
QWZ0ZXJYRnJhbWVPcHRpb25zT3JDb250ZW50U2VjdXJpdHlQb2xpY3lEZW5pZWQ6IChwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJ
dTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tp
bmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVz
b3VyY2VJRCk7CiAKICAgICBtX2NvcmVMb2FkZXItPmRvY3VtZW50TG9hZGVyKCktPnN0b3BMb2Fk
aW5nQWZ0ZXJYRnJhbWVPcHRpb25zT3JDb250ZW50U2VjdXJpdHlQb2xpY3lEZW5pZWQobV9jb3Jl
TG9hZGVyLT5pZGVudGlmaWVyKCksIHJlc3BvbnNlKTsKIH0KQEAgLTE5NiwxMyArMTk2LDEzIEBA
IHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OnN0b3BMb2FkaW5nQWZ0ZXJYRnJhbWVPcHRpb25zT3JD
b250ZW50U2VjdXJpdHlQb2xpY3lEZW5pCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNl
aXZlUmVzb3VyY2UoY29uc3QgU2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSYgaGFuZGxlKQogewog
ICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNl
aXZlUmVzb3VyY2UgZm9yICclcyciLCBtX2NvcmVMb2FkZXItPnVybCgpLnN0cmluZygpLmxhdGlu
MSgpLmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc291
cmNlOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3Vy
Y2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2
NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5y
ZXNvdXJjZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzb3Vy
Y2U6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJj
ZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0
KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1Bh
cmFtZXRlcnMucmVzb3VyY2VJRCk7CiAKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIg
PSBoYW5kbGUudHJ5V3JhcEluU2hhcmVkQnVmZmVyKCk7CiAKICAgICBpZiAoIWJ1ZmZlcikgewog
ICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBjcmVhdGUgYnVmZmVyIGZyb20gU2hhcmVhYmxl
UmVzb3VyY2Ugc2VudCBmcm9tIHRoZSBuZXR3b3JrIHByb2Nlc3MuIik7Ci0gICAgICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNvdXJjZTogVW5hYmxlIHRvIGNyZWF0ZSBT
aGFyZWRCdWZmZXIgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQu
dG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFt
ZXRlcnMucmVzb3VyY2VJRCk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJl
Y2VpdmVSZXNvdXJjZTogVW5hYmxlIHRvIGNyZWF0ZSBTaGFyZWRCdWZmZXIgKHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQg
IikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1Bh
cmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJj
ZUlEKTsKICAgICAgICAgaWYgKGF1dG8qIGZyYW1lID0gbV9jb3JlTG9hZGVyLT5mcmFtZSgpKSB7
CiAgICAgICAgICAgICBpZiAoYXV0byogcGFnZSA9IGZyYW1lLT5wYWdlKCkpCiAgICAgICAgICAg
ICAgICAgcGFnZS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2Fn
ZShXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmludGVybmFsRXJyb3JLZXkoKSwgV2Vi
Q29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpjcmVhdGVTaGFyZWRCdWZmZXJGYWlsZWRLZXko
KSwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlOjpObyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaAppbmRleCA1ODY1NDM3MThlNWU4
Mzg4YjhiNDFhYjAyMDM3YWM3NmU3ODY5MzdjLi45YzExNDdkYTA1MTUzZGQ3YWM0NGFmMzE1ODFl
MjIxYjY5YmU5MjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJDb25u
ZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgogI2luY2x1ZGUgIlNoYXJlYWJs
ZVJlc291cmNlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC01Miw3ICs1Myw3IEBAIGNsYXNzIFdlYlJl
c291cmNlTG9hZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViUmVzb3VyY2VMb2FkZXI+LCBwdWJs
aWMgSVBDOjpNZXNzCiBwdWJsaWM6CiAgICAgc3RydWN0IFRyYWNraW5nUGFyYW1ldGVycyB7CiAg
ICAgICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRDsKLSAgICAgICAgdWludDY0X3Qg
ZnJhbWVJRCB7IDAgfTsKKyAgICAgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQ7
CiAgICAgICAgIFJlc291cmNlTG9hZElkZW50aWZpZXIgcmVzb3VyY2VJRCB7IDAgfTsKICAgICB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKaW5kZXggNmZjMDljNGY2NWIy
NDViNjBiZjRkNGY1OTdhOWY5MGFkNGQwYWFmOS4uNDlkMjBjN2M0OWMwMmFhOTU5YWE0YWU0ZDll
ZWM4ZmU4M2M1ZmU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcApAQCAt
NzMsNyArNzMsNyBAQCBzdGF0aWMgY29uc3QgU2Vjb25kcyBzeW5jV29ya2VyVGVybWluYXRpb25U
aW1lb3V0IHsgMTAwX21zIH07IC8vIE9ubHkgdXNlZCBieSBsYQogCiBjbGFzcyBTZXJ2aWNlV29y
a2VyRnJhbWVMb2FkZXJDbGllbnQgZmluYWwgOiBwdWJsaWMgRW1wdHlGcmFtZUxvYWRlckNsaWVu
dCB7CiBwdWJsaWM6Ci0gICAgU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50KFdlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgY29u
c3QgU3RyaW5nJiB1c2VyQWdlbnQpCisgICAgU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50
KFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50KQogICAgICAgICA6IG1fY29ubmVj
dGlvbihjb25uZWN0aW9uKQogICAgICAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAg
ICAgLCBtX3BhZ2VJRChwYWdlSUQpCkBAIC05NiwxMyArOTYsMTMgQEAgcHJpdmF0ZToKIAogICAg
IFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2Vzc2lv
bklEOyB9CiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fcGFnZUlEOyB9Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KKyAgICBPcHRpb25hbDxX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X2ZyYW1lSUQ7IH0KICAgICBTdHJpbmcgdXNlckFnZW50KGNvbnN0IFVSTCYpIGZpbmFsIHsgcmV0
dXJuIG1fdXNlckFnZW50OyB9CiAKICAgICBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiYg
bV9jb25uZWN0aW9uOwogICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwotICAgIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIG1fcGFnZUlEOwotICAgIHVpbnQ2NF90IG1fZnJhbWVJRCB7IDAg
fTsKKyAgICBQYWdlSWRlbnRpZmllciBtX3BhZ2VJRDsKKyAgICBGcmFtZUlkZW50aWZpZXIgbV9m
cmFtZUlEOwogICAgIFN0cmluZyBtX3VzZXJBZ2VudDsKIH07CiAKQEAgLTE1Myw3ICsxNTMsOCBA
QCB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjppbnN0YWxsU2VydmljZVdvcmtl
cihjb25zdCBTZXJ2aWNlV29ya2VyQ29udAogCiAgICAgLy8gRklYTUU6IFRoaXMgbWV0aG9kIHNo
b3VsZCBiZSBtb3ZlZCBkaXJlY3RseSB0byBXZWJDb3JlOjpTV0NvbnRleHRNYW5hZ2VyOjpDb25u
ZWN0aW9uCiAgICAgLy8gSWYgaXQgd2VyZW4ndCBmb3IgU2VydmljZVdvcmtlckZyYW1lTG9hZGVy
Q2xpZW50J3MgZGVwZW5kZW5jZSBvbiBXZWJEb2N1bWVudExvYWRlciwgdGhpcyBjb3VsZCBhbHJl
YWR5IGhhcHBlbi4KLSAgICBhdXRvIGZyYW1lTG9hZGVyQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1
ZTxTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQ+KCp0aGlzLCBzZXNzaW9uSUQsIG1fcGFn
ZUlELCArK21fcHJldmlvdXNTZXJ2aWNlV29ya2VySUQsIGVmZmVjdGl2ZVVzZXJBZ2VudCk7Cisg
ICAgLy8gRklYTUU6IFdlaXJkIHRvIHBhc3MgbV9wcmV2aW91c1NlcnZpY2VXb3JrZXJJRCBhcyBh
IEZyYW1lSWRlbnRpZmllci4KKyAgICBhdXRvIGZyYW1lTG9hZGVyQ2xpZW50ID0gc3RkOjptYWtl
X3VuaXF1ZTxTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQ+KCp0aGlzLCBzZXNzaW9uSUQs
IG1fcGFnZUlELCBmcmFtZUlkZW50aWZpZXJGcm9tSUQoKyttX3ByZXZpb3VzU2VydmljZVdvcmtl
cklEKSwgZWZmZWN0aXZlVXNlckFnZW50KTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2FkZXJD
bGllbnRGb3JNYWluRnJhbWUgPSBmcmFtZUxvYWRlckNsaWVudC5nZXQoKTsKICAgICBtX2xvYWRl
cnMuYWRkKFdURk1vdmUoZnJhbWVMb2FkZXJDbGllbnQpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cAppbmRleCAzYzg3MmY1YWRmMzliZWFjZDNhNzA2NjdiMjY4OWQzOGM5YjExMTJlLi5mY2QwOThl
NDg0MGE1OGEyYjVhMjE5N2ViNTI5MWUwYTRmNDgyOWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cApAQCAtMjY1LDcgKzI2NSw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpmb2N1c2VkRnJhbWVD
aGFuZ2VkKEZyYW1lKiBmcmFtZSkKIHsKICAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBmcmFtZSA/
IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSkgOiBudWxscHRyOwogCi0gICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpGb2N1c2VkRnJhbWVDaGFuZ2VkKHdlYkZyYW1lID8gd2ViRnJhbWUt
PmZyYW1lSUQoKSA6IDApLCBtX3BhZ2UucGFnZUlEKCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6Rm9jdXNlZEZyYW1lQ2hhbmdlZCh3ZWJGcmFtZSA/IG1ha2VPcHRpb25hbCh3ZWJGcmFt
ZS0+ZnJhbWVJRCgpKSA6IFdURjo6bnVsbG9wdCksIG1fcGFnZS5wYWdlSUQoKSk7CiB9CiAKIFBh
Z2UqIFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlV2luZG93KEZyYW1lJiBmcmFtZSwgY29uc3QgRnJh
bWVMb2FkUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2luZG93RmVhdHVyZXMmIHdpbmRvd0ZlYXR1
cmVzLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBuYXZpZ2F0aW9uQWN0aW9uKQpAQCAtNjI1LDcg
KzYyNSw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1l
JiBmcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uCiAgICAgICAgIFdlYkZyYW1lKiBsYXJn
ZXN0RnJhbWUgPSBmaW5kTGFyZ2VzdEZyYW1lSW5GcmFtZVNldChtX3BhZ2UpOwogICAgICAgICBp
ZiAobGFyZ2VzdEZyYW1lICE9IG1fY2FjaGVkRnJhbWVTZXRMYXJnZXN0RnJhbWUuZ2V0KCkpIHsK
ICAgICAgICAgICAgIG1fY2FjaGVkRnJhbWVTZXRMYXJnZXN0RnJhbWUgPSBsYXJnZXN0RnJhbWU7
Ci0gICAgICAgICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGcmFtZVNl
dExhcmdlc3RGcmFtZUNoYW5nZWQobGFyZ2VzdEZyYW1lID8gbGFyZ2VzdEZyYW1lLT5mcmFtZUlE
KCkgOiAwKSk7CisgICAgICAgICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpGcmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQobGFyZ2VzdEZyYW1lID8gbWFrZU9wdGlvbmFs
KGxhcmdlc3RGcmFtZS0+ZnJhbWVJRCgpKSA6IFdURjo6bnVsbG9wdCkpOwogICAgICAgICB9CiAg
ICAgfQogCkBAIC0xMzE2LDEyICsxMzE2LDEyIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRJ
bnZhbGlkYXRlRG9jdW1lbnRNYXJrZXJSZWN0cygpCiB9CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTKQotdm9pZCBXZWJDaHJvbWVDbGllbnQ6Omhhc1N0b3JhZ2VBY2Nlc3Mo
UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgUmVnaXN0cmFibGVEb21haW4mJiB0
b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkNocm9t
ZUNsaWVudDo6aGFzU3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9t
YWluLCBSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbV9wYWdlLmhhc1N0b3JhZ2VBY2Nlc3MoV1RGTW92
ZShzdWJGcmFtZURvbWFpbiksIFdURk1vdmUodG9wRnJhbWVEb21haW4pLCBmcmFtZUlELCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZXF1
ZXN0U3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdp
c3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwg
U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYm
IHN1YkZyYW1lRG9tYWluLCBSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbV9wYWdlLnJlcXVlc3RTdG9yYWdlQWNjZXNz
KFdURk1vdmUoc3ViRnJhbWVEb21haW4pLCBXVEZNb3ZlKHRvcEZyYW1lRG9tYWluKSwgZnJhbWVJ
RCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4
IGNlZDM2YTZjMjViN2U0ZjgzNDRhNTg5OTQwMDY3OTFmN2NjOTI3NmYuLjJkYzY2MjJjMWI3ZjFj
NWE5NWEyY2NkNzliMzIwOWJiNTg3MmE2MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTM2Nyw4
ICszNjcsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkSW52YWxpZGF0ZURvY3VtZW50TWFya2Vy
UmVjdHMoKSBmaW5hbDsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0g
ICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgc3Vi
RnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4s
IHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VB
Y2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21w
dFdhc1Nob3duKT4mJikgZmluYWw7CisgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluJiYgdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikg
ZmluYWw7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHRv
cEZyYW1lRG9tYWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vz
c1dhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYpIGZp
bmFsOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggNjU3MzliYjhhYTk2ZGZlOGMyYjBlMjZjMTcxYTlm
OWI3NmI3MzQwOS4uNzA5ODBlZTViNWI4ZDcwMzdlNDViM2YyYWYzZTJiYjFmYTAzOTRhOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0xMjAsNyArMTIwLDcgQEAgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpwYWdlSUQoKSBjb25zdAog
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiB9CiAKLU9wdGlvbmFsPHVpbnQ2NF90PiBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZnJhbWVJRCgpIGNvbnN0CitPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlEKCkgY29uc3QKIHsKICAgICBpZiAobV9mcmFt
ZSkKICAgICAgICAgcmV0dXJuIG1fZnJhbWUtPmZyYW1lSUQoKTsKQEAgLTU0Niw3ICs1NDYsNyBA
QCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExv
YWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZQogICAgIGlmICghd2ViUGFnZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgUkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0gV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0ICIpIiwgdGhpcywgd2ViUGFnZS0+cGFnZUlEKCkudG9VSW50
NjQoKSwgbV9mcmFtZS0+ZnJhbWVJRCgpKTsKKyAgICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAg
LSBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkOiAo
cGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIikiLCB0aGlzLCB3ZWJQ
YWdlLT5wYWdlSUQoKS50b1VJbnQ2NCgpLCBtX2ZyYW1lLT5mcmFtZUlEKCkudG9VSW50NjQoKSk7
CiAKICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IHVzZXJEYXRhOwogCkBAIC01ODIsNyArNTgyLDcg
QEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZChjb25zdCBS
ZXNvdXJjZUVycm9yJiBlcnJvcikKICAgICBpZiAoIXdlYlBhZ2UpCiAgICAgICAgIHJldHVybjsK
IAotICAgIFJFTEVBU0VfTE9HKE5ldHdvcmssICIlcCAtIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaERpZEZhaWxMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQ
Ukl1NjQgIikiLCB0aGlzLCB3ZWJQYWdlLT5wYWdlSUQoKS50b1VJbnQ2NCgpLCBtX2ZyYW1lLT5m
cmFtZUlEKCkpOworICAgIFJFTEVBU0VfTE9HKE5ldHdvcmssICIlcCAtIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIikiLCB0aGlzLCB3ZWJQYWdlLT5wYWdlSUQoKS50b1VJbnQ2NCgpLCBt
X2ZyYW1lLT5mcmFtZUlEKCkudG9VSW50NjQoKSk7CiAKICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+
IHVzZXJEYXRhOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGM4ZmIyYWYyMTI1
NjZjNjQ2ODYwNzdhMGM4OWFmODEwNTM5MGE2ODAuLjY0MWI4YzA2NjM0MTM4MGMwNzAyODIwYjg3
ODlkZDE4NWU4YmIwNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC01Miw3ICs1
Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFwcGx5VG9Eb2N1bWVudExvYWRlcihXZWJzaXRlUG9s
aWNpZXNEYXRhJiYpOwogCiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBh
Z2VJRCgpIGNvbnN0IGZpbmFsOwotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEKCkgY29u
c3QgZmluYWw7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlE
KCkgY29uc3QgZmluYWw7CiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgZmlu
YWw7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5jcHAKaW5kZXggNzM4YmU5
MmI5MmRjNzNkMmRmNjc3ZWUzNGVjMTMwODFhNjBmMWExYy4uZjZjNTU3ZDVmMGZkMjAxZGJiNTA1
MTE0N2ViYzI3MGE1YjQ1Y2YzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViQ29va2llSmFyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJDb29raWVKYXIuY3BwCkBAIC01MCw3ICs1MCw3IEBAIFdlYkNvb2tpZUphcjo6
V2ViQ29va2llSmFyKCkKIAogU3RyaW5nIFdlYkNvb2tpZUphcjo6Y29va2llcyhXZWJDb3JlOjpE
b2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsKSBjb25zdAogewotICAgIE9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJ
RDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEOwogICAgIGlmIChhdXRvKiBm
cmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKICAgICAgICAgZnJhbWVJRCA9IGZyYW1lLT5sb2Fk
ZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CkBAIC02Nyw3ICs2Nyw3IEBAIFN0cmluZyBXZWJDb29r
aWVKYXI6OmNvb2tpZXMoV2ViQ29yZTo6RG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVy
bCkgY29uc3QKIAogdm9pZCBXZWJDb29raWVKYXI6OnNldENvb2tpZXMoV2ViQ29yZTo6RG9jdW1l
bnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcp
CiB7Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJ
ZGVudGlmaWVyPiBmcmFtZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7
CiAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkgewogICAgICAgICBmcmFt
ZUlEID0gZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKTsKQEAgLTg1LDcgKzg1LDcg
QEAgYm9vbCBXZWJDb29raWVKYXI6OmNvb2tpZXNFbmFibGVkKGNvbnN0IFdlYkNvcmU6OkRvY3Vt
ZW50JiBkb2N1bWVudCkgY29uc3QKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGQ6OnBhaXI8
U3RyaW5nLCBXZWJDb3JlOjpTZWN1cmVDb29raWVzQWNjZXNzZWQ+IFdlYkNvb2tpZUphcjo6Y29v
a2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25J
RCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mIHNh
bWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBP
cHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29v
a2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKK3N0ZDo6cGFpcjxTdHJpbmcsIFdlYkNv
cmU6OlNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gV2ViQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZShjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklELCBjb25zdCBVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBj
b25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25h
bDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcyBp
bmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKIHsKICAgICBTdHJpbmcgY29va2llU3RyaW5nOwog
ICAgIGJvb2wgc2VjdXJlQ29va2llc0FjY2Vzc2VkID0gZmFsc2U7CkBAIC05Niw3ICs5Niw3IEBA
IHN0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvcmU6OlNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gV2ViQ29v
a2llSmFyOjpjb29raWVSZXF1ZXN0SGVhCiAKIGJvb2wgV2ViQ29va2llSmFyOjpnZXRSYXdDb29r
aWVzKGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwsIFZl
Y3RvcjxXZWJDb3JlOjpDb29raWU+JiByYXdDb29raWVzKSBjb25zdAogewotICAgIE9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJ
RDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEOwogICAgIGlmIChhdXRvKiBm
cmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKICAgICAgICAgZnJhbWVJRCA9IGZyYW1lLT5sb2Fk
ZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkNvb2tpZUphci5oCmluZGV4IDU1OWJkMGU1MGJiZWMzNWZmYjI1NmI5MTJiN2I0
NmRhOTk0YjJkNDguLjVkY2FjZGQ5NjhlNmE0YjA2MjdjNzg3YzZkYTFhNTE1NDcxYmY4OGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5oCkBA
IC0zNiw3ICszNiw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgY29va2llcyhXZWJDb3JlOjpEb2N1
bWVudCYsIGNvbnN0IFVSTCYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgc2V0Q29va2llcyhXZWJD
b3JlOjpEb2N1bWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKSBm
aW5hbDsKICAgICBib29sIGNvb2tpZXNFbmFibGVkKGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50Jikg
Y29uc3QgZmluYWw7Ci0gICAgc3RkOjpwYWlyPFN0cmluZywgV2ViQ29yZTo6U2VjdXJlQ29va2ll
c0FjY2Vzc2VkPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBQQUw6OlNlc3Np
b25JRCYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZv
JiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyPiwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0
IGZpbmFsOworICAgIHN0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvcmU6OlNlY3VyZUNvb2tpZXNBY2Nl
c3NlZD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQm
LCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNv
bnN0IFVSTCYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNv
bnN0IGZpbmFsOwogICAgIGJvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBXZWJDb3JlOjpEb2N1bWVu
dCYsIGNvbnN0IFVSTCYsIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JikgY29uc3QgZmluYWw7CiAg
ICAgdm9pZCBkZWxldGVDb29raWUoY29uc3QgV2ViQ29yZTo6RG9jdW1lbnQmLCBjb25zdCBVUkwm
LCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUpIGZpbmFsOwogcHJpdmF0ZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAppbmRleCA2MGNmZDhkMmExNzU0
YTdhY2VkNThkNjFkZjE3YmU0YzE0MzEzNjk0Li5mMGViZmVkYmIyZTk1M2FkMGZjMDdmOWY4MTY2
MDlkYjk3MzViNjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
RnJhbWUuY3BwCkBAIC05NSwxMiArOTUsNiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
REVGSU5FX0RFQlVHX09OTFlfR0xPQkFMKFdURjo6UmVmQ291bnRlZExlYWtDb3VudGVyLCB3ZWJG
cmFtZUNvdW50ZXIsICgiV2ViRnJhbWUiKSk7CiAKLXN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUZy
YW1lSUQoKQotewotICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVGcmFtZUlEID0gMTsKLSAgICBy
ZXR1cm4gdW5pcXVlRnJhbWVJRCsrOwotfQotCiBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVMaXN0
ZW5lcklEKCkKIHsKICAgICBzdGF0aWMgdWludDY0X3QgdW5pcXVlTGlzdGVuZXJJRCA9IDE7CkBA
IC0xNDgsNyArMTQyLDcgQEAgUmVmPFdlYkZyYW1lPiBXZWJGcmFtZTo6Y3JlYXRlKHN0ZDo6dW5p
cXVlX3B0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4gZnJhbWVMb2FkZXIKIAogV2ViRnJhbWU6Oldl
YkZyYW1lKHN0ZDo6dW5pcXVlX3B0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4gZnJhbWVMb2FkZXJD
bGllbnQpCiAgICAgOiBtX2ZyYW1lTG9hZGVyQ2xpZW50KFdURk1vdmUoZnJhbWVMb2FkZXJDbGll
bnQpKQotICAgICwgbV9mcmFtZUlEKGdlbmVyYXRlRnJhbWVJRCgpKQorICAgICwgbV9mcmFtZUlE
KEZyYW1lSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKIHsKICAgICBtX2ZyYW1lTG9hZGVyQ2xpZW50
LT5zZXRXZWJGcmFtZSh0aGlzKTsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRXZWJG
cmFtZShtX2ZyYW1lSUQsIHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkZyYW1lLmgKaW5kZXggNzFiMzhmNjFhYjE5NTA1NWI0NDdlODdiZmZmN2U5NjQwNmRlZWE5
Yy4uMWVjNTA3NTQyNTdmODY2ZWIyYWU4ZWM0Y2IwYzZkMWZmZTg2NTZlYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCkBAIC04MCw3ICs4MCw3IEBAIHB1
YmxpYzoKICAgICBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9j
b3JlRnJhbWU7IH0KIAogICAgIEZyYW1lSW5mb0RhdGEgaW5mbygpIGNvbnN0OwotICAgIHVpbnQ2
NF90IGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQogCiAg
ICAgZW51bSBjbGFzcyBGb3JOYXZpZ2F0aW9uQWN0aW9uIHsgTm8sIFllcyB9OwogICAgIHVpbnQ2
NF90IHNldFVwUG9saWN5TGlzdGVuZXIoV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBX
ZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYsIEZvck5hdmlnYXRpb25BY3Rpb24pOwpAQCAt
MTg3LDcgKzE4Nyw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1lTG9h
ZGVyQ2xpZW50PiBtX2ZyYW1lTG9hZGVyQ2xpZW50OwogICAgIExvYWRMaXN0ZW5lciogbV9sb2Fk
TGlzdGVuZXIgeyBudWxscHRyIH07CiAgICAgCi0gICAgdWludDY0X3QgbV9mcmFtZUlEIHsgMCB9
OworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX2ZyYW1lSUQ7CiAKICNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQogICAgIHVpbnQ2NF90IG1fZmlyc3RMYXllclRyZWVUcmFuc2FjdGlvbklE
QWZ0ZXJEaWRDb21taXRMb2FkIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKaW5kZXggZjI4ZGU1NjhlYzUxNWE1MWMzOGUwOWNh
YWM0NGVhNzdmMjFkM2RiZS4uMWYwMTZhZWFkYTk5NmY5NjNkZDVlNGVmYjk2ZDBjYWZlNjBhZDYx
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVj
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0
b3IuY3BwCkBAIC0yMDksNyArMjA5LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3I6OnNob3dSZXNvdXJj
ZXMoKQogICAgIH0pOwogfQogCi12b2lkIFdlYkluc3BlY3Rvcjo6c2hvd01haW5SZXNvdXJjZUZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSWRlbnRpZmllcikKK3ZvaWQgV2ViSW5zcGVjdG9yOjpzaG93
TWFpblJlc291cmNlRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSWRlbnRp
ZmllcikKIHsKICAgICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53
ZWJGcmFtZShmcmFtZUlkZW50aWZpZXIpOwogICAgIGlmICghZnJhbWUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oCmluZGV4IDQ4OWU0MWMwNzRm
YzM2M2IzODAxMTYxN2I0Yzc1ODI0ZGY1OWQ0N2IuLjI2Yjg5ZTUyMjc3OTc4ZDUzYTMzZmUzYzcx
MTVlYWViYmIzODI5NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkluc3BlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkluc3BlY3Rvci5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQVBJT2JqZWN0Lmgi
CiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTYwLDcgKzYx
LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2hvd0NvbnNvbGUoKTsKICAgICB2b2lkIHNob3dSZXNv
dXJjZXMoKTsKIAotICAgIHZvaWQgc2hvd01haW5SZXNvdXJjZUZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBzaG93TWFpblJlc291cmNlRm9yRnJhbWUoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyKTsKIAogICAgIHZvaWQgc2V0QXR0YWNoZWQoYm9vbCBhdHRhY2hl
ZCkgeyBtX2F0dGFjaGVkID0gYXR0YWNoZWQ7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLm1lc3NhZ2VzLmluCmluZGV4IGI2
ZjNjMDFiMjQyMjI2YTIwZmI0OWM1NDIyMDNhNmRjZGUyMjFlNjkuLmRhZjc0YjVlNmIwNDMwYjZi
MGNhM2JlMjYwZjVmZmFiZWNkNjU0ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IubWVzc2FnZXMuaW4KQEAgLTI5LDcgKzI5
LDcgQEAgbWVzc2FnZXMgLT4gV2ViSW5zcGVjdG9yIHsKICAgICBTaG93Q29uc29sZSgpCiAgICAg
U2hvd1Jlc291cmNlcygpCiAKLSAgICBTaG93TWFpblJlc291cmNlRm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJZGVudGlmaWVyKQorICAgIFNob3dNYWluUmVzb3VyY2VGb3JGcmFtZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJZGVudGlmaWVyKQogCiAgICAgT3BlbkluTmV3VGFiKFN0cmlu
ZyB1cmwpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
aW5kZXggMTMzNjU3MGQ5M2FhNTExMDY5Nzg1NjExNzAyNjA4OTNiOGEzY2RiNC4uMDFmZjFhNGY0
NTdlNTM5MzU2MTQzMjRhMDk0ODg0MDNhNzUwNTVhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE0OTcsNyArMTQ5Nyw3IEBAIHZvaWQgV2Vi
UGFnZTo6c3VzcGVuZEZvclByb2Nlc3NTd2FwKCkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkRpZFN1c3BlbmRBZnRlclByb2Nlc3NTd2FwKCkpOwogfQogCi12b2lkIFdlYlBhZ2U6
OmxvYWRVUkxJbkZyYW1lKFVSTCYmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgdWludDY0
X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZTo6bG9hZFVSTEluRnJhbWUoVVJMJiYgdXJsLCBjb25z
dCBTdHJpbmcmIHJlZmVycmVyLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBXZWJG
cmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsK
ICAgICBpZiAoIWZyYW1lKQpAQCAtMTUwNiw3ICsxNTA2LDcgQEAgdm9pZCBXZWJQYWdlOjpsb2Fk
VVJMSW5GcmFtZShVUkwmJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIHVpbnQ2NF90IGZy
YW1lSUQKICAgICBmcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVx
dWVzdCgqZnJhbWUtPmNvcmVGcmFtZSgpLCBSZXNvdXJjZVJlcXVlc3QodXJsLCByZWZlcnJlciks
IFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KSk7CiB9CiAKLXZv
aWQgV2ViUGFnZTo6bG9hZERhdGFJbkZyYW1lKElQQzo6RGF0YVJlZmVyZW5jZSYmIGRhdGEsIFN0
cmluZyYmIE1JTUVUeXBlLCBTdHJpbmcmJiBlbmNvZGluZ05hbWUsIFVSTCYmIGJhc2VVUkwsIHVp
bnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2U6OmxvYWREYXRhSW5GcmFtZShJUEM6OkRhdGFS
ZWZlcmVuY2UmJiBkYXRhLCBTdHJpbmcmJiBNSU1FVHlwZSwgU3RyaW5nJiYgZW5jb2RpbmdOYW1l
LCBVUkwmJiBiYXNlVVJMLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBXZWJGcmFt
ZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAg
ICBpZiAoIWZyYW1lKQpAQCAtMTYxNCw3ICsxNjE0LDcgQEAgdm9pZCBXZWJQYWdlOjpuYXZpZ2F0
ZVRvUERGTGlua1dpdGhTaW11bGF0ZWRDbGljayhjb25zdCBTdHJpbmcmIHVybCwgSW50UG9pbnQg
ZG8KICAgICBtYWluRnJhbWUtPmxvYWRlcigpLnVybFNlbGVjdGVkKG1haW5GcmFtZURvY3VtZW50
LT5jb21wbGV0ZVVSTCh1cmwpLCBlbXB0eVN0cmluZygpLCBtb3VzZUV2ZW50LnB0cigpLCBMb2Nr
SGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBTaG91bGRTZW5kUmVmZXJyZXI6
Ok5ldmVyU2VuZFJlZmVycmVyLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRO
b3RBbGxvdyk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6c3RvcExvYWRpbmdGcmFtZSh1aW50NjRfdCBm
cmFtZUlEKQordm9pZCBXZWJQYWdlOjpzdG9wTG9hZGluZ0ZyYW1lKEZyYW1lSWRlbnRpZmllciBm
cmFtZUlEKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlmICghZnJhbWUpCkBAIC0zMjM0LDcgKzMyMzQsNyBA
QCB2b2lkIFdlYlBhZ2U6OnNldFNlc3Npb25JRChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAg
ICAgbV9wYWdlLT5zZXRTZXNzaW9uSUQoc2Vzc2lvbklEKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpk
aWRSZWNlaXZlUG9saWN5RGVjaXNpb24odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVu
ZXJJRCwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIFBvbGljeUFjdGlvbiBwb2xp
Y3lBY3Rpb24sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgRG93bmxvYWRJRCYgZG93bmxv
YWRJRCwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMpCit2
b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29u
c3QgRG93bmxvYWRJRCYgZG93bmxvYWRJRCwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4m
JiB3ZWJzaXRlUG9saWNpZXMpCiB7CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCFmcmFtZSkKQEAgLTMyNDIs
NyArMzI0Miw3IEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKHVpbnQ2
NF90IGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFBvCiAgICAgZnJhbWUtPmRpZFJlY2Vp
dmVQb2xpY3lEZWNpc2lvbihsaXN0ZW5lcklELCBpZGVudGlmaWVyLCBwb2xpY3lBY3Rpb24sIG5h
dmlnYXRpb25JRCwgZG93bmxvYWRJRCwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpKTsKIH0KIAot
dm9pZCBXZWJQYWdlOjpjb250aW51ZVdpbGxTdWJtaXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVp
bnQ2NF90IGxpc3RlbmVySUQpCit2b2lkIFdlYlBhZ2U6OmNvbnRpbnVlV2lsbFN1Ym1pdEZvcm0o
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQpCiB7CiAgICAgV2Vi
RnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7
CiAgICAgaWYgKCFmcmFtZSkKQEAgLTMzODQsNyArMzM4NCw3IEBAIHZvaWQgV2ViUGFnZTo6cnVu
SmF2YVNjcmlwdEluTWFpbkZyYW1lU2NyaXB0V29ybGQoY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJv
b2wgZm9yCiAgICAgcnVuSmF2YVNjcmlwdChtYWluV2ViRnJhbWUoKSwgc2NyaXB0LCBmb3JjZVVz
ZXJHZXN0dXJlLCB3b3JsZE5hbWUsIGNhbGxiYWNrSUQpOwogfQogCi12b2lkIFdlYlBhZ2U6OnJ1
bkphdmFTY3JpcHRJbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgc2NyaXB0
LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2Vi
UGFnZTo6cnVuSmF2YVNjcmlwdEluRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0
IFN0cmluZyYgc2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIENhbGxiYWNrSUQgY2FsbGJh
Y2tJRCkKIHsKICAgICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53
ZWJGcmFtZShmcmFtZUlEKTsKICAgICBBU1NFUlQobWFpbldlYkZyYW1lKCkgIT0gZnJhbWUpOwpA
QCAtMzQ0NSw3ICszNDQ1LDcgQEAgdm9pZCBXZWJQYWdlOjpnZXRTZWxlY3Rpb25PckNvbnRlbnRz
QXNTdHJpbmcoQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6U3RyaW5nQ2FsbGJhY2socmVzdWx0U3RyaW5nLCBjYWxsYmFja0lEKSk7CiB9CiAK
LXZvaWQgV2ViUGFnZTo6Z2V0U291cmNlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ2FsbGJh
Y2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdlOjpnZXRTb3VyY2VGb3JGcmFtZShGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIFN0cmluZyBy
ZXN1bHRTdHJpbmc7CiAgICAgaWYgKFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpKQpAQCAtMzQ1NCw3ICszNDU0LDcgQEAgdm9pZCBXZWJQ
YWdlOjpnZXRTb3VyY2VGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDYWxsYmFja0lEIGNhbGxi
YWNrSUQpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdHJpbmdDYWxsYmFjayhy
ZXN1bHRTdHJpbmcsIGNhbGxiYWNrSUQpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpnZXRNYWluUmVz
b3VyY2VEYXRhT2ZGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQp
Cit2b2lkIFdlYlBhZ2U6OmdldE1haW5SZXNvdXJjZURhdGFPZkZyYW1lKEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4gYnVmZmVyOwogICAgIGlmIChXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSkgewpAQCAtMzQ4NSw3ICszNDg1LDcgQEAgc3RhdGlj
IFJlZlB0cjxTaGFyZWRCdWZmZXI+IHJlc291cmNlRGF0YUZvckZyYW1lKEZyYW1lKiBmcmFtZSwg
Y29uc3QgVVJMJiByZXNvdXIKICAgICByZXR1cm4gJnN1YnJlc291cmNlLT5kYXRhKCk7CiB9CiAK
LXZvaWQgV2ViUGFnZTo6Z2V0UmVzb3VyY2VEYXRhRnJvbUZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFN0cmluZyYgcmVzb3VyY2VVUkxTdHJpbmcsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkK
K3ZvaWQgV2ViUGFnZTo6Z2V0UmVzb3VyY2VEYXRhRnJvbUZyYW1lKEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBjb25zdCBTdHJpbmcmIHJlc291cmNlVVJMU3RyaW5nLCBDYWxsYmFja0lEIGNhbGxi
YWNrSUQpCiB7CiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyOwogICAgIGlmIChhdXRv
KiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpKSB7CkBA
IC0zNDk5LDcgKzM0OTksNyBAQCB2b2lkIFdlYlBhZ2U6OmdldFJlc291cmNlRGF0YUZyb21GcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHJlc291cmNlVQogICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6RGF0YUNhbGxiYWNrKGRhdGFSZWZlcmVuY2UsIGNhbGxiYWNr
SUQpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpnZXRXZWJBcmNoaXZlT2ZGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYlBhZ2U6OmdldFdlYkFyY2hp
dmVPZkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQp
CiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgUmV0YWluUHRyPENGRGF0YVJlZj4gZGF0YTsK
QEAgLTM4MDIsMTMgKzM4MDIsMTMgQEAgV2ViRnVsbFNjcmVlbk1hbmFnZXIqIFdlYlBhZ2U6OmZ1
bGxTY3JlZW5NYW5hZ2VyKCkKIH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2U6OmFkZENvbnNvbGVN
ZXNzYWdlKHVpbnQ2NF90IGZyYW1lSUQsIE1lc3NhZ2VTb3VyY2UgbWVzc2FnZVNvdXJjZSwgTWVz
c2FnZUxldmVsIG1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1aW50NjRfdCBy
ZXF1ZXN0SUQpCit2b2lkIFdlYlBhZ2U6OmFkZENvbnNvbGVNZXNzYWdlKEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBNZXNzYWdlU291cmNlIG1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCBtZXNz
YWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdWludDY0X3QgcmVxdWVzdElEKQogewog
ICAgIGlmIChhdXRvKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZy
YW1lSUQpKQogICAgICAgICBmcmFtZS0+YWRkQ29uc29sZU1lc3NhZ2UobWVzc2FnZVNvdXJjZSwg
bWVzc2FnZUxldmVsLCBtZXNzYWdlLCByZXF1ZXN0SUQpOwogfQogCi12b2lkIFdlYlBhZ2U6OnNl
bmRDU1BWaW9sYXRpb25SZXBvcnQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVVJMJiByZXBvcnRV
UkwsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXBvcnREYXRhKQordm9pZCBXZWJQYWdlOjpz
ZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBVUkwm
IHJlcG9ydFVSTCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcG9ydERhdGEpCiB7CiAgICAg
YXV0byByZXBvcnQgPSByZXBvcnREYXRhLnRha2VEYXRhKCk7CiAgICAgaWYgKCFyZXBvcnQpCkBA
IC0zODE3LDcgKzM4MTcsNyBAQCB2b2lkIFdlYlBhZ2U6OnNlbmRDU1BWaW9sYXRpb25SZXBvcnQo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgVVJMJiByZXBvcnRVUkwsIElQQwogICAgICAgICBQaW5n
TG9hZGVyOjpzZW5kVmlvbGF0aW9uUmVwb3J0KCpmcmFtZS0+Y29yZUZyYW1lKCksIHJlcG9ydFVS
TCwgcmVwb3J0LnJlbGVhc2VOb25OdWxsKCksIFZpb2xhdGlvblJlcG9ydFR5cGU6OkNvbnRlbnRT
ZWN1cml0eVBvbGljeSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5
VmlvbGF0aW9uRXZlbnQodWludDY0X3QgZnJhbWVJRCwgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25F
dmVudDo6SW5pdCYmIGV2ZW50SW5pdCkKK3ZvaWQgV2ViUGFnZTo6ZW5xdWV1ZVNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFNlY3VyaXR5UG9saWN5
VmlvbGF0aW9uRXZlbnQ6OkluaXQmJiBldmVudEluaXQpCiB7CiAgICAgYXV0byogZnJhbWUgPSBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBpZiAoIWZyYW1l
KQpAQCAtNDY4MCw3ICs0NjgwLDcgQEAgdm9pZCBXZWJQYWdlOjplZmZlY3RpdmVBcHBlYXJhbmNl
RGlkQ2hhbmdlKGJvb2wgdXNlRGFya0FwcGVhcmFuY2UsIGJvb2wgdXNlRWxldmEKIH0KICNlbmRp
ZgogCi12b2lkIFdlYlBhZ2U6OmJlZ2luUHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
UHJpbnRJbmZvJiBwcmludEluZm8pCit2b2lkIFdlYlBhZ2U6OmJlZ2luUHJpbnRpbmcoRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvKQogewogICAgIFdl
YkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQp
OwogICAgIGlmICghZnJhbWUpCkBAIC00NzI0LDcgKzQ3MjQsNyBAQCB2b2lkIFdlYlBhZ2U6OmVu
ZFByaW50aW5nKCkKICAgICB9CiB9CiAKLXZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJp
bnRpbmcodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIENhbGxi
YWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmco
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBDYWxs
YmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgVmVjdG9yPEludFJlY3Q+IHJlc3VsdFBhZ2VSZWN0
czsKICAgICBkb3VibGUgcmVzdWx0VG90YWxTY2FsZUZhY3RvckZvclByaW50aW5nID0gMTsKQEAg
LTQ3MzMsNyArNDczMyw3IEBAIHZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmco
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluCiAgICAgc2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpDb21wdXRlZFBhZ2VzQ2FsbGJhY2socmVzdWx0UGFnZVJlY3Rz
LCByZXN1bHRUb3RhbFNjYWxlRmFjdG9yRm9yUHJpbnRpbmcsIGNvbXB1dGVkUGFnZU1hcmdpbiwg
Y2FsbGJhY2tJRCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5n
SW1wbCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgVmVjdG9y
PFdlYkNvcmU6OkludFJlY3Q+JiByZXN1bHRQYWdlUmVjdHMsIGRvdWJsZSYgcmVzdWx0VG90YWxT
Y2FsZUZhY3RvckZvclByaW50aW5nLCBGbG9hdEJveEV4dGVudCYgY29tcHV0ZWRQYWdlTWFyZ2lu
KQordm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZ0ltcGwoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBWZWN0b3I8V2ViQ29yZTo6
SW50UmVjdD4mIHJlc3VsdFBhZ2VSZWN0cywgZG91YmxlJiByZXN1bHRUb3RhbFNjYWxlRmFjdG9y
Rm9yUHJpbnRpbmcsIEZsb2F0Qm94RXh0ZW50JiBjb21wdXRlZFBhZ2VNYXJnaW4pCiB7CiAgICAg
QVNTRVJUKHJlc3VsdFBhZ2VSZWN0cy5pc0VtcHR5KCkpOwogCkBAIC00NzU2LDcgKzQ3NTYsNyBA
QCB2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nSW1wbCh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBQcmludEluZm8mIHByaQogfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi12b2lk
IFdlYlBhZ2U6OmRyYXdSZWN0VG9JbWFnZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludElu
Zm8mIHByaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYgaW1hZ2VTaXplLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYlBhZ2U6OmRyYXdS
ZWN0VG9JbWFnZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmlu
dEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGltYWdl
U2l6ZSwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIEZyYW1lKiBjb3Jl
RnJhbWUgPSBmcmFtZSA/IGZyYW1lLT5jb3JlRnJhbWUoKSA6IDA7CkBAIC00ODA2LDE0ICs0ODA2
LDE0IEBAIHZvaWQgV2ViUGFnZTo6ZHJhd1JlY3RUb0ltYWdlKHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBjb25zCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpJbWFnZUNhbGxiYWNrKGhhbmRsZSwgY2FsbGJhY2tJRCkpOwogfQogCi12b2lkIFdl
YlBhZ2U6OmRyYXdQYWdlc1RvUERGKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYg
cHJpbnRJbmZvLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIENhbGxiYWNrSUQgY2Fs
bGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6ZHJhd1BhZ2VzVG9QREYoRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCB1aW50MzJfdCBmaXJzdCwgdWludDMy
X3QgY291bnQsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBSZXRhaW5QdHI8Q0ZNdXRh
YmxlRGF0YVJlZj4gcGRmUGFnZURhdGE7CiAgICAgZHJhd1BhZ2VzVG9QREZJbXBsKGZyYW1lSUQs
IHByaW50SW5mbywgZmlyc3QsIGNvdW50LCBwZGZQYWdlRGF0YSk7CiAgICAgc2VuZChNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpEYXRhQ2FsbGJhY2soeyBDRkRhdGFHZXRCeXRlUHRyKHBkZlBhZ2VE
YXRhLmdldCgpKSwgc3RhdGljX2Nhc3Q8c2l6ZV90PihDRkRhdGFHZXRMZW5ndGgocGRmUGFnZURh
dGEuZ2V0KCkpKSB9LCBjYWxsYmFja0lEKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZHJhd1BhZ2Vz
VG9QREZJbXBsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCB1
aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIFJldGFpblB0cjxDRk11dGFibGVEYXRhUmVm
PiYgcGRmUGFnZURhdGEpCit2b2lkIFdlYlBhZ2U6OmRyYXdQYWdlc1RvUERGSW1wbChGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIHVpbnQzMl90IGZp
cnN0LCB1aW50MzJfdCBjb3VudCwgUmV0YWluUHRyPENGTXV0YWJsZURhdGFSZWY+JiBwZGZQYWdl
RGF0YSkKIHsKICAgICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53
ZWJGcmFtZShmcmFtZUlEKTsKICAgICBGcmFtZSogY29yZUZyYW1lID0gZnJhbWUgPyBmcmFtZS0+
Y29yZUZyYW1lKCkgOiAwOwpAQCAtNDg2NCw3ICs0ODY0LDcgQEAgdm9pZCBXZWJQYWdlOjpkcmF3
UGFnZXNUb1BERkltcGwodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludElu
Zm8sIHUKIH0KIAogI2VsaWYgUExBVEZPUk0oR1RLKQotdm9pZCBXZWJQYWdlOjpkcmF3UGFnZXNG
b3JQcmludGluZyh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywg
Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdlOjpkcmF3UGFnZXNGb3JQcmludGlu
ZyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIENh
bGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBiZWdpblByaW50aW5nKGZyYW1lSUQsIHByaW50
SW5mbyk7CiAgICAgaWYgKG1fcHJpbnRDb250ZXh0ICYmIG1fcHJpbnRPcGVyYXRpb24pIHsKQEAg
LTY1MDIsNyArNjUwMiw3IEBAIHZvaWQgV2ViUGFnZTo6c2V0SXNTdXNwZW5kZWQoYm9vbCBzdXNw
ZW5kZWQpCiAgICAgc3VzcGVuZEZvclByb2Nlc3NTd2FwKCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6
ZnJhbWVCZWNhbWVSZW1vdGUodWludDY0X3QgZnJhbWVJRCwgR2xvYmFsRnJhbWVJZGVudGlmaWVy
JiYgcmVtb3RlRnJhbWVJZGVudGlmaWVyLCBHbG9iYWxXaW5kb3dJZGVudGlmaWVyJiYgcmVtb3Rl
V2luZG93SWRlbnRpZmllcikKK3ZvaWQgV2ViUGFnZTo6ZnJhbWVCZWNhbWVSZW1vdGUoRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIEdsb2JhbEZyYW1lSWRlbnRpZmllciYmIHJlbW90ZUZyYW1lSWRl
bnRpZmllciwgR2xvYmFsV2luZG93SWRlbnRpZmllciYmIHJlbW90ZVdpbmRvd0lkZW50aWZpZXIp
CiB7CiAgICAgUmVmUHRyPFdlYkZyYW1lPiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlmICghZnJhbWUpCkBAIC02NTM0LDEyICs2NTM0LDEy
IEBAIHZvaWQgV2ViUGFnZTo6ZnJhbWVCZWNhbWVSZW1vdGUodWludDY0X3QgZnJhbWVJRCwgR2xv
YmFsRnJhbWVJZGVudGlmaWVyJiYgcmVtb3RlCiB9CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKQotdm9pZCBXZWJQYWdlOjpoYXNTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxl
RG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21h
aW4sIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2U6Omhhc1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFi
bGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgUmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURv
bWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
ZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Okhhc1N0b3Jh
Z2VBY2Nlc3Moc2Vzc2lvbklEKCksIFdURk1vdmUoc3ViRnJhbWVEb21haW4pLCBXVEZNb3ZlKHRv
cEZyYW1lRG9tYWluKSwgZnJhbWVJRCwgbV9wYWdlSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFi
bGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgUmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURv
bWFpbiwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpT
dG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1No
b3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZTo6cmVxdWVzdFN0b3JhZ2VB
Y2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgUmVnaXN0cmFibGVEb21h
aW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFdlYkNvcmU6OlN0
b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCku
Y29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OlJlcXVlc3RTdG9yYWdlQWNjZXNzKHNlc3Npb25JRCgpLCBXVEZNb3Zl
KHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0b3BGcmFtZURvbWFpbiksIGZyYW1lSUQsIG1fcGFn
ZUlEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQpAQCAtNjU1NSw3ICs2NTU1LDcg
QEAgdm9pZCBXZWJQYWdlOjp3YXNMb2FkZWRXaXRoRGF0YVRyYW5zZmVyRnJvbVByZXZhbGVudFJl
c291cmNlKCkKICNlbmRpZgogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLXZvaWQg
V2ViUGFnZTo6c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh1aW50
NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBvcmlnaW4sIGJvb2wg
bWF5UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKERldmljZU9yaWVudGF0aW9uT3JNb3Rp
b25QZXJtaXNzaW9uU3RhdGUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlOjpz
aG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBvcmlnaW4sIGJvb2wgbWF5
UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25Q
ZXJtaXNzaW9uU3RhdGUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIHNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG91bGRBbGxvd0RldmljZU9yaWVudGF0
aW9uQW5kTW90aW9uQWNjZXNzKGZyYW1lSUQsIFdURk1vdmUob3JpZ2luKSwgbWF5UHJvbXB0KSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDcwOTkyNzAxNDI0M2MxMTI4ZmY2ZmFjOWU0ZWE5MmRk
NjUxMjJjNmYuLjFkOTcxZjRhMzM4NjExZTk0MDliMzRmMWU4MWRlZTUwYzc2MmZjYmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTM0Niw5ICszNDYs
OSBAQCBwdWJsaWM6CiAgICAgV2ViRnVsbFNjcmVlbk1hbmFnZXIqIGZ1bGxTY3JlZW5NYW5hZ2Vy
KCk7CiAjZW5kaWYKIAotICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UodWludDY0X3QgZnJhbWVJ
RCwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmLCB1aW50NjRfdCBy
ZXF1ZXN0SUQgPSAwKTsKLSAgICB2b2lkIHNlbmRDU1BWaW9sYXRpb25SZXBvcnQodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgVVJMJiByZXBvcnRVUkwsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJik7
Ci0gICAgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCh1aW50NjRfdCBm
cmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYpOwor
ICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBNZXNz
YWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYsIHVpbnQ2NF90IHJlcXVlc3RJ
RCA9IDApOworICAgIHZvaWQgc2VuZENTUFZpb2xhdGlvblJlcG9ydChXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYp
OworICAgIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJ
bml0JiYpOwogCiAgICAgLy8gLS0gQ2FsbGVkIGJ5IHRoZSBEcmF3aW5nQXJlYS4KICAgICAvLyBG
SVhNRTogV2UgY291bGQgZ2VuZXJpY2l6ZSB0aGVzZSBpbnRvIGEgRHJhd2luZ0FyZWEgY2xpZW50
IGludGVyZmFjZS4gV291bGQgdGhhdCBiZSBiZW5lZmljaWFsPwpAQCAtNTIyLDcgKzUyMiw3IEBA
IHB1YmxpYzoKICAgICBXZWJDb3JlOjpDb2xvciB1bmRlcmxheUNvbG9yKCkgY29uc3QgeyByZXR1
cm4gbV91bmRlcmxheUNvbG9yOyB9CiAKICAgICB2b2lkIHN0b3BMb2FkaW5nKCk7Ci0gICAgdm9p
ZCBzdG9wTG9hZGluZ0ZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpOworICAgIHZvaWQgc3RvcExvYWRp
bmdGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogICAgIGJvb2wgZGVmZXJzTG9hZGlu
ZygpIGNvbnN0OwogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVyTG9hZGluZyk7
CiAKQEAgLTc2OSw3ICs3NjksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb25maXJtQ29tcG9zaXRp
b24oY29uc3QgU3RyaW5nJiB0ZXh0LCBpbnQ2NF90IHNlbGVjdGlvblN0YXJ0LCBpbnQ2NF90IHNl
bGVjdGlvbkxlbmd0aCk7CiAgICAgdm9pZCBjYW5jZWxDb21wb3NpdGlvbigpOwogCi0gICAgdm9p
ZCBjb2xsYXBzZVNlbGVjdGlvbkluRnJhbWUodWludDY0X3QgZnJhbWVJRCk7CisgICAgdm9pZCBj
b2xsYXBzZVNlbGVjdGlvbkluRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICAgICB2
b2lkIHNob3dFbW9qaVBpY2tlcihXZWJDb3JlOjpGcmFtZSYpOwogCiAgICAgdm9pZCBnZXRDZW50
ZXJGb3Jab29tR2VzdHVyZShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2VudGVySW5WaWV3Q29v
cmRpbmF0ZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6SW50UG9pbnQmJik+JiYp
OwpAQCAtODYyLDIzICs4NjIsMjMgQEAgcHVibGljOgogICAgIFdlYkNvcmU6OkRyYWdTb3VyY2VB
Y3Rpb24gYWxsb3dlZERyYWdTb3VyY2VBY3Rpb25zKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd2Vk
RHJhZ1NvdXJjZUFjdGlvbnM7IH0KICNlbmRpZgogCi0gICAgdm9pZCBiZWdpblByaW50aW5nKHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYpOworICAgIHZvaWQgYmVnaW5QcmludGlu
ZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYpOwogICAgIHZvaWQg
ZW5kUHJpbnRpbmcoKTsKLSAgICB2b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIENhbGxiYWNrSUQpOwotICAgIHZvaWQgY29tcHV0
ZVBhZ2VzRm9yUHJpbnRpbmdJbXBsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYs
IFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiYgcGFnZVJlY3RzLCBkb3VibGUmIHRvdGFsU2NhbGVG
YWN0b3IsIFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiBjb21wdXRlZE1hcmdpbik7CisgICAgdm9p
ZCBjb21wdXRlUGFnZXNGb3JQcmludGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0
IFByaW50SW5mbyYsIENhbGxiYWNrSUQpOworICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRp
bmdJbXBsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgVmVjdG9y
PFdlYkNvcmU6OkludFJlY3Q+JiBwYWdlUmVjdHMsIGRvdWJsZSYgdG90YWxTY2FsZUZhY3Rvciwg
V2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIGNvbXB1dGVkTWFyZ2luKTsKIAogI2lmIFBMQVRGT1JN
KENPQ09BKQotICAgIHZvaWQgZHJhd1JlY3RUb0ltYWdlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFByaW50SW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiwgQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBkcmF3UGFnZXNUb1BERih1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBQcmludEluZm8mLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIENh
bGxiYWNrSUQpOwotICAgIHZvaWQgZHJhd1BhZ2VzVG9QREZJbXBsKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFByaW50SW5mbyYsIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgUmV0YWlu
UHRyPENGTXV0YWJsZURhdGFSZWY+JiBwZGZQYWdlRGF0YSk7CisgICAgdm9pZCBkcmF3UmVjdFRv
SW1hZ2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mLCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIENhbGxiYWNrSUQpOwor
ICAgIHZvaWQgZHJhd1BhZ2VzVG9QREYoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQ
cmludEluZm8mLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIENhbGxiYWNrSUQpOwor
ICAgIHZvaWQgZHJhd1BhZ2VzVG9QREZJbXBsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29u
c3QgUHJpbnRJbmZvJiwgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBSZXRhaW5QdHI8
Q0ZNdXRhYmxlRGF0YVJlZj4mIHBkZlBhZ2VEYXRhKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKLSAgICB2b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERG
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIENhbGxiYWNrSUQsIE1lc3NhZ2Vz
OjpXZWJQYWdlOjpDb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERjo6RGVsYXllZFJl
cGx5JiYpOworICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mLCBDYWxsYmFja0lELCBNZXNz
YWdlczo6V2ViUGFnZTo6Q29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREY6OkRlbGF5
ZWRSZXBseSYmKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oR1RLKQotICAgIHZvaWQgZHJhd1Bh
Z2VzRm9yUHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiwgQ2FsbGJh
Y2tJRCk7CisgICAgdm9pZCBkcmF3UGFnZXNGb3JQcmludGluZyhXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIGNvbnN0IFByaW50SW5mbyYsIENhbGxiYWNrSUQpOwogICAgIHZvaWQgZGlkRmluaXNo
UHJpbnRPcGVyYXRpb24oY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIENhbGxiYWNrSUQp
OwogI2VuZGlmCiAKQEAgLTExMzEsMTMgKzExMzEsMTMgQEAgcHVibGljOgogICAgIHZvaWQgZmx1
c2hQZW5kaW5nRWRpdG9yU3RhdGVVcGRhdGUoKTsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MpCi0gICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYg
dG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYpOwotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4m
JiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vz
c1Byb21wdFdhc1Nob3duKT4mJik7CisgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluJiYgdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vz
cyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50
ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYpOwogICAgIHZvaWQg
d2FzTG9hZGVkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxlbnRSZXNvdXJjZSgpOwogI2VuZGlm
CiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQotICAgIHZvaWQgc2hvdWxkQWxsb3dE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgYm9vbCBtYXlQcm9tcHQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+
JiYpOworICAgIHZvaWQgc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vz
cyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYm
LCBib29sIG1heVByb21wdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpEZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlKT4mJik7CiAjZW5kaWYKIAogICAgIHZv
aWQgc2hvd1NoYXJlU2hlZXQoV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spOwpAQCAtMTM1Niw4ICsxMzU2LDgg
QEAgcHJpdmF0ZToKICAgICBzdGF0aWMgYm9vbCBzY3JvbGwoV2ViQ29yZTo6UGFnZSosIFdlYkNv
cmU6OlNjcm9sbERpcmVjdGlvbiwgV2ViQ29yZTo6U2Nyb2xsR3JhbnVsYXJpdHkpOwogICAgIHN0
YXRpYyBib29sIGxvZ2ljYWxTY3JvbGwoV2ViQ29yZTo6UGFnZSosIFdlYkNvcmU6OlNjcm9sbExv
Z2ljYWxEaXJlY3Rpb24sIFdlYkNvcmU6OlNjcm9sbEdyYW51bGFyaXR5KTsKIAotICAgIHZvaWQg
bG9hZFVSTEluRnJhbWUoVVJMJiYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIHVpbnQ2NF90IGZy
YW1lSUQpOwotICAgIHZvaWQgbG9hZERhdGFJbkZyYW1lKElQQzo6RGF0YVJlZmVyZW5jZSYmLCBT
dHJpbmcmJiBNSU1FVHlwZSwgU3RyaW5nJiYgZW5jb2RpbmdOYW1lLCBVUkwmJiBiYXNlVVJMLCB1
aW50NjRfdCBmcmFtZUlEKTsKKyAgICB2b2lkIGxvYWRVUkxJbkZyYW1lKFVSTCYmLCBjb25zdCBT
dHJpbmcmIHJlZmVycmVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgbG9h
ZERhdGFJbkZyYW1lKElQQzo6RGF0YVJlZmVyZW5jZSYmLCBTdHJpbmcmJiBNSU1FVHlwZSwgU3Ry
aW5nJiYgZW5jb2RpbmdOYW1lLCBVUkwmJiBiYXNlVVJMLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIpOwogCiAgICAgZW51bSBjbGFzcyBXYXNSZXN0b3JlZEJ5QVBJUmVxdWVzdCB7IE5vLCBZZXMg
fTsKICAgICB2b2lkIHJlc3RvcmVTZXNzaW9uSW50ZXJuYWwoY29uc3QgVmVjdG9yPEJhY2tGb3J3
YXJkTGlzdEl0ZW1TdGF0ZT4mLCBXYXNSZXN0b3JlZEJ5QVBJUmVxdWVzdCwgV2ViQmFja0Zvcndh
cmRMaXN0UHJveHk6Ok92ZXJ3cml0ZUV4aXN0aW5nSXRlbSk7CkBAIC0xMzg5LDE2ICsxMzg5LDE2
IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1IVE1MKQogICAgIHZvaWQgZ2V0Q29udGVudHNBc01I
VE1MRGF0YShDYWxsYmFja0lEKTsKICNlbmRpZgotICAgIHZvaWQgZ2V0TWFpblJlc291cmNlRGF0
YU9mRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBnZXRSZXNv
dXJjZURhdGFGcm9tRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiByZXNvdXJj
ZVVSTCwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBnZXRNYWluUmVzb3VyY2VEYXRhT2ZGcmFtZShX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENhbGxiYWNrSUQpOworICAgIHZvaWQgZ2V0UmVzb3Vy
Y2VEYXRhRnJvbUZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBy
ZXNvdXJjZVVSTCwgQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBnZXRSZW5kZXJUcmVlRXh0ZXJuYWxS
ZXByZXNlbnRhdGlvbihDYWxsYmFja0lEKTsKICAgICB2b2lkIGdldFNlbGVjdGlvbk9yQ29udGVu
dHNBc1N0cmluZyhDYWxsYmFja0lEKTsKICAgICB2b2lkIGdldFNlbGVjdGlvbkFzV2ViQXJjaGl2
ZURhdGEoQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBnZXRTb3VyY2VGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCBDYWxsYmFja0lEKTsKLSAgICB2b2lkIGdldFdlYkFyY2hpdmVPZkZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIENhbGxiYWNrSUQpOworICAgIHZvaWQgZ2V0U291cmNlRm9yRnJhbWUoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIGdldFdlYkFyY2hp
dmVPZkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ2FsbGJhY2tJRCk7CiAgICAgdm9p
ZCBydW5KYXZhU2NyaXB0KFdlYkZyYW1lKiwgY29uc3QgU3RyaW5nJiwgYm9vbCBmb3JjZVVzZXJH
ZXN0dXJlLCBjb25zdCBPcHRpb25hbDxTdHJpbmc+JiB3b3JsZE5hbWUsIENhbGxiYWNrSUQpOwog
ICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lU2NyaXB0V29ybGQoY29uc3QgU3RyaW5n
JiwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBjb25zdCBPcHRpb25hbDxTdHJpbmc+JiB3b3JsZE5h
bWUsIENhbGxiYWNrSUQpOwotICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgU3RyaW5nJiwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBDYWxsYmFja0lE
KTsKKyAgICB2b2lkIHJ1bkphdmFTY3JpcHRJbkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBDYWxsYmFja0lEKTsKICAg
ICB2b2lkIGZvcmNlUmVwYWludChDYWxsYmFja0lEKTsKICAgICB2b2lkIHRha2VTbmFwc2hvdChX
ZWJDb3JlOjpJbnRSZWN0IHNuYXBzaG90UmVjdCwgV2ViQ29yZTo6SW50U2l6ZSBiaXRtYXBTaXpl
LCB1aW50MzJfdCBvcHRpb25zLCBDYWxsYmFja0lEKTsKIApAQCAtMTQxMiw4ICsxNDEyLDggQEAg
cHJpdmF0ZToKICAgICBib29sIHBhcmVudFByb2Nlc3NIYXNTZXJ2aWNlV29ya2VyRW50aXRsZW1l
bnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAjZW5kaWYKIAotICAgIHZvaWQgZGlkUmVjZWl2
ZVBvbGljeURlY2lzaW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6UG9saWN5QWN0aW9uLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IERvd25sb2FkSUQmLCBPcHRpb25hbDxXZWJzaXRlUG9s
aWNpZXNEYXRhPiYmKTsKLSAgICB2b2lkIGNvbnRpbnVlV2lsbFN1Ym1pdEZvcm0odWludDY0X3Qg
ZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCk7CisgICAgdm9pZCBkaWRSZWNlaXZlUG9saWN5
RGVjaXNpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBsaXN0ZW5lcklELCBX
ZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBEb3dubG9hZElEJiwgT3B0aW9uYWw8V2Vic2l0ZVBv
bGljaWVzRGF0YT4mJik7CisgICAgdm9pZCBjb250aW51ZVdpbGxTdWJtaXRGb3JtKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbGlzdGVuZXJJRCk7CiAgICAgdm9pZCBzZXRVc2Vy
QWdlbnQoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBzZXRDdXN0b21UZXh0RW5jb2RpbmdOYW1l
KGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgc3VzcGVuZEFjdGl2ZURPTU9iamVjdHNBbmRBbmlt
YXRpb25zKCk7CkBAIC0xNDMxLDcgKzE0MzEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgd2luZG93
QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB3aW5kb3dGcmFt
ZUluU2NyZWVuQ29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgd2luZG93RnJh
bWVJblVuZmxpcHBlZFNjcmVlbkNvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
IHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQm
IGFjY2Vzc2liaWxpdHlWaWV3Q29vcmRpbmF0ZXMpOwogCiAgICAgUmV0YWluUHRyPFBERkRvY3Vt
ZW50PiBwZGZEb2N1bWVudEZvclByaW50aW5nRnJhbWUoV2ViQ29yZTo6RnJhbWUqKTsKLSAgICB2
b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERGRG9jdW1lbnQodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgUHJpbnRJbmZvJiwgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+JiByZXN1bHRQYWdlUmVj
dHMpOworICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdQREZEb2N1bWVudChXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYsIFZlY3RvcjxXZWJDb3JlOjpJbnRS
ZWN0PiYgcmVzdWx0UGFnZVJlY3RzKTsKICAgICB2b2lkIGRyYXdQREZEb2N1bWVudChDR0NvbnRl
eHRSZWYsIFBERkRvY3VtZW50ICosIGNvbnN0IFByaW50SW5mbyYsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmKTsKICAgICB2b2lkIGRyYXdQYWdlc1RvUERGRnJvbVBERkRvY3VtZW50KENHQ29udGV4
dFJlZiwgUERGRG9jdW1lbnQgKiwgY29uc3QgUHJpbnRJbmZvJiwgdWludDMyX3QgZmlyc3QsIHVp
bnQzMl90IGNvdW50KTsKICNlbmRpZgpAQCAtMTU4NCw3ICsxNTg0LDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHZvaWNlc0RpZENoYW5nZSgpOwogI2VuZGlmCiAKLSAgICB2b2lkIGZyYW1lQmVjYW1l
UmVtb3RlKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6Okdsb2JhbEZyYW1lSWRlbnRpZmllciYm
IHJlbW90ZUZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6R2xvYmFsV2luZG93SWRlbnRpZmllciYm
IHJlbW90ZVdpbmRvd0lkZW50aWZpZXIpOworICAgIHZvaWQgZnJhbWVCZWNhbWVSZW1vdGUoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpHbG9iYWxGcmFtZUlkZW50aWZpZXImJiBy
ZW1vdGVGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXImJiBy
ZW1vdGVXaW5kb3dJZGVudGlmaWVyKTsKIAogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVIYW5k
bGVyKHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc2NoZW1lKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4K
aW5kZXggYTUyZTI1MWQyNWRhNmQ4ODcxYjI3MmQ3MTQyMjkxMzI5YzVmMjQzOC4uYmE3ZjY0YmZk
Y2JjY2Y4YWIyYzMzZjZjMjc4YjQ2ZDE1MTg4OGYwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0yNyw5ICsyNyw5
IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgU2V0QmFja2dy
b3VuZENvbG9yKE9wdGlvbmFsPFdlYkNvcmU6OkNvbG9yPiBjb2xvcikKIAotICAgIEFkZENvbnNv
bGVNZXNzYWdlKHVpbnQ2NF90IGZyYW1lSUQsIGVudW06dWludDhfdCBKU0M6Ok1lc3NhZ2VTb3Vy
Y2UgbWVzc2FnZVNvdXJjZSwgZW51bTp1aW50OF90IEpTQzo6TWVzc2FnZUxldmVsIG1lc3NhZ2VM
ZXZlbCwgU3RyaW5nIG1lc3NhZ2UsIHVpbnQ2NF90IHJlcXVlc3RJRCkKLSAgICBTZW5kQ1NQVmlv
bGF0aW9uUmVwb3J0KHVpbnQ2NF90IGZyYW1lSUQsIFVSTCByZXBvcnRVUkwsIElQQzo6Rm9ybURh
dGFSZWZlcmVuY2UgcmVwb3J0RGF0YSkKLSAgICBFbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRp
b25FdmVudCh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlv
bkV2ZW50OjpJbml0IGV2ZW50SW5pdCkKKyAgICBBZGRDb25zb2xlTWVzc2FnZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgZW51bTp1aW50OF90IEpTQzo6TWVzc2FnZVNvdXJjZSBt
ZXNzYWdlU291cmNlLCBlbnVtOnVpbnQ4X3QgSlNDOjpNZXNzYWdlTGV2ZWwgbWVzc2FnZUxldmVs
LCBTdHJpbmcgbWVzc2FnZSwgdWludDY0X3QgcmVxdWVzdElEKQorICAgIFNlbmRDU1BWaW9sYXRp
b25SZXBvcnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFVSTCByZXBvcnRVUkws
IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVwb3J0RGF0YSkKKyAgICBFbnF1ZXVlU2VjdXJpdHlQ
b2xpY3lWaW9sYXRpb25FdmVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2Vi
Q29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCBldmVudEluaXQpCiAKICAg
ICBUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHko
KSAtPiAoYm9vbCBoYW5kbGVkKSBTeW5jaHJvbm91cwogCkBAIC0xNjIsOCArMTYyLDggQEAgR2Vu
ZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0
aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBHb1RvQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgc3RydWN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgYmFj
a0ZvcndhcmRJdGVtSUQsIGVudW06dWludDhfdCBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlIGJhY2tG
b3J3YXJkVHlwZSwgZW51bTpib29sIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBv
bGljaWVzRGF0YT4gd2Vic2l0ZVBvbGljaWVzKQogICAgIFRyeVJlc3RvcmVTY3JvbGxQb3NpdGlv
bigpCiAKLSAgICBMb2FkVVJMSW5GcmFtZShVUkwgdXJsLCBTdHJpbmcgcmVmZXJyZXIsIHVpbnQ2
NF90IGZyYW1lSUQpCi0gICAgTG9hZERhdGFJbkZyYW1lKElQQzo6RGF0YVJlZmVyZW5jZSBkYXRh
LCBTdHJpbmcgTUlNRVR5cGUsIFN0cmluZyBlbmNvZGluZ05hbWUsIFVSTCBiYXNlVVJMLCB1aW50
NjRfdCBmcmFtZUlEKQorICAgIExvYWRVUkxJbkZyYW1lKFVSTCB1cmwsIFN0cmluZyByZWZlcnJl
ciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCisgICAgTG9hZERhdGFJbkZyYW1l
KElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhLCBTdHJpbmcgTUlNRVR5cGUsIFN0cmluZyBlbmNvZGlu
Z05hbWUsIFVSTCBiYXNlVVJMLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKICAg
ICBMb2FkUmVxdWVzdChzdHJ1Y3QgV2ViS2l0OjpMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVy
cykKICAgICBMb2FkRGF0YShzdHJ1Y3QgV2ViS2l0OjpMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1l
dGVycykKICAgICBMb2FkQWx0ZXJuYXRlSFRNTChzdHJ1Y3QgV2ViS2l0OjpMb2FkUGFyYW1ldGVy
cyBsb2FkUGFyYW1ldGVycykKQEAgLTE3Myw3ICsxNzMsNyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0Vk
aXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5k
VHlwZQogICAgIFJlbG9hZCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQzMl90IHJlbG9hZE9w
dGlvbnMsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25I
YW5kbGUpCiAgICAgU3RvcExvYWRpbmcoKQogCi0gICAgU3RvcExvYWRpbmdGcmFtZSh1aW50NjRf
dCBmcmFtZUlEKQorICAgIFN0b3BMb2FkaW5nRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQpCiAgICAgCiAgICAgUmVzdG9yZVNlc3Npb24oVmVjdG9yPFdlYktpdDo6QmFja0Zv
cndhcmRMaXN0SXRlbVN0YXRlPiBpdGVtU3RhdGVzKQogICAgIFVwZGF0ZUJhY2tGb3J3YXJkTGlz
dEZvclJlYXR0YWNoKFZlY3RvcjxXZWJLaXQ6OkJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZT4gaXRl
bVN0YXRlcykKQEAgLTE4Miw4ICsxODIsOCBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21t
YW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAg
IERpZFJlbW92ZUJhY2tGb3J3YXJkSXRlbShzdHJ1Y3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVt
SWRlbnRpZmllciBiYWNrRm9yd2FyZEl0ZW1JRCkKIAogICAgIFVwZGF0ZVdlYnNpdGVQb2xpY2ll
cyhzdHJ1Y3QgV2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhIHdlYnNpdGVQb2xpY2llcykKLSAg
ICBEaWRSZWNlaXZlUG9saWN5RGVjaXNpb24odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbGlz
dGVuZXJJRCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRp
ZmllciwgZW51bTp1aW50OF90IFdlYkNvcmU6OlBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIE9wdGlv
bmFsPFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0YT4gd2Vic2l0ZVBvbGljaWVzKQotICAgIENv
bnRpbnVlV2lsbFN1Ym1pdEZvcm0odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJ
RCkKKyAgICBEaWRSZWNlaXZlUG9saWN5RGVjaXNpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIGVudW06dWludDhfdCBXZWJDb3JlOjpQb2xpY3lB
Y3Rpb24gcG9saWN5QWN0aW9uLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYktpdDo6RG93bmxv
YWRJRCBkb3dubG9hZElELCBPcHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE+IHdl
YnNpdGVQb2xpY2llcykKKyAgICBDb250aW51ZVdpbGxTdWJtaXRGb3JtKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBsaXN0ZW5lcklEKQogCiAgICAgQ2xlYXJTZWxl
Y3Rpb24oKQogICAgIFJlc3RvcmVTZWxlY3Rpb25JbkZvY3VzZWRFZGl0YWJsZUVsZW1lbnQoKQpA
QCAtMTk2LDE1ICsxOTYsMTUgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVt
OnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICNpZiBFTkFCTEUo
TUhUTUwpCiAgICAgR2V0Q29udGVudHNBc01IVE1MRGF0YShXZWJLaXQ6OkNhbGxiYWNrSUQgY2Fs
bGJhY2tJRCkKICNlbmRpZgotICAgIEdldE1haW5SZXNvdXJjZURhdGFPZkZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIEdldFJlc291cmNl
RGF0YUZyb21GcmFtZSh1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgcmVzb3VyY2VVUkwsIFdlYktp
dDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIEdldE1haW5SZXNvdXJjZURhdGFPZkZyYW1l
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2Fs
bGJhY2tJRCkKKyAgICBHZXRSZXNvdXJjZURhdGFGcm9tRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIFN0cmluZyByZXNvdXJjZVVSTCwgV2ViS2l0OjpDYWxsYmFja0lEIGNh
bGxiYWNrSUQpCiAgICAgR2V0UmVuZGVyVHJlZUV4dGVybmFsUmVwcmVzZW50YXRpb24oV2ViS2l0
OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgR2V0U2VsZWN0aW9uT3JDb250ZW50c0FzU3Ry
aW5nKFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIEdldFNlbGVjdGlvbkFzV2Vi
QXJjaGl2ZURhdGEoV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCi0gICAgR2V0U291cmNl
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQp
Ci0gICAgR2V0V2ViQXJjaGl2ZU9mRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpDYWxs
YmFja0lEIGNhbGxiYWNrSUQpCisgICAgR2V0U291cmNlRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIEdl
dFdlYkFyY2hpdmVPZkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJL
aXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBSdW5KYXZhU2NyaXB0SW5NYWluRnJhbWVT
Y3JpcHRXb3JsZChTdHJpbmcgc2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIE9wdGlvbmFs
PFN0cmluZz4gd29ybGROYW1lLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKLSAgICBS
dW5KYXZhU2NyaXB0SW5GcmFtZSh1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgc2NyaXB0LCBib29s
IGZvcmNlVXNlckdlc3R1cmUsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIFJ1
bkphdmFTY3JpcHRJbkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJp
bmcgc2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxs
YmFja0lEKQogICAgIEZvcmNlUmVwYWludChXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkK
IAogICAgIFNlbGVjdEFsbCgpCkBAIC0zODAsMTggKzM4MCwxOCBAQCBHZW5lcmF0ZVN5bnRoZXRp
Y0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21t
YW5kVHlwZQogICAgIERpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWlu
dDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCkKIAogICAgICMgUHJpbnRpbmcuCi0g
ICAgQmVnaW5QcmludGluZyh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludElu
Zm8gcHJpbnRJbmZvKQorICAgIEJlZ2luUHJpbnRpbmcoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8pCiAgICAgRW5kUHJp
bnRpbmcoKQotICAgIENvbXB1dGVQYWdlc0ZvclByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIHN0
cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxs
YmFja0lEKQorICAgIENvbXB1dGVQYWdlc0ZvclByaW50aW5nKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCBXZWJLaXQ6
OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBEcmF3UmVj
dFRvSW1hZ2UodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50
SW5mbywgV2ViQ29yZTo6SW50UmVjdCByZWN0LCBXZWJDb3JlOjpJbnRTaXplIGltYWdlU2l6ZSwg
V2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCi0gICAgRHJhd1BhZ2VzVG9QREYodWludDY0
X3QgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgdWludDMyX3Qg
Zmlyc3QsIHVpbnQzMl90IGNvdW50LCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAg
ICBEcmF3UmVjdFRvSW1hZ2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVj
dCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIFdlYkNvcmU6OkludFJlY3QgcmVjdCwgV2Vi
Q29yZTo6SW50U2l6ZSBpbWFnZVNpemUsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQor
ICAgIERyYXdQYWdlc1RvUERGKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1
Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3Qg
Y291bnQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCi0gICAgQ29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYodWludDY0X3Qg
ZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2ViS2l0OjpDYWxs
YmFja0lEIGNhbGxiYWNrSUQpIC0+ICh1aW50MzJfdCBwYWdlQ291bnQpIFN5bmNocm9ub3VzCisg
ICAgQ29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIFdlYktp
dDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKSAtPiAodWludDMyX3QgcGFnZUNvdW50KSBTeW5jaHJv
bm91cwogI2VuZGlmCiAjZW5kaWYKICNpZiBQTEFURk9STShHVEspCi0gICAgRHJhd1BhZ2VzRm9y
UHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50
SW5mbywgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCisgICAgRHJhd1BhZ2VzRm9yUHJp
bnRpbmcoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlBy
aW50SW5mbyBwcmludEluZm8sIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogI2VuZGlm
CiAKICAgICAjIE1lZGlhCkBAIC00MTMsNyArNDEzLDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0
aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5
cGUKICAgICBDb25maXJtQ29tcG9zaXRpb24oU3RyaW5nIHRleHQsIGludDY0X3Qgc2VsZWN0aW9u
U3RhcnQsIGludDY0X3Qgc2VsZWN0aW9uTGVuZ3RoKQogICAgIENhbmNlbENvbXBvc2l0aW9uKCkK
IAotICAgIENvbGxhcHNlU2VsZWN0aW9uSW5GcmFtZSh1aW50NjRfdCBmcmFtZUlEKQorICAgIENv
bGxhcHNlU2VsZWN0aW9uSW5GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkK
IAogICAgIEdldENlbnRlckZvclpvb21HZXN0dXJlKFdlYkNvcmU6OkludFBvaW50IGNlbnRlcklu
Vmlld0Nvb3JkaW5hdGVzKSAtPiAoV2ViQ29yZTo6SW50UG9pbnQgY2VudGVyKSBTeW5jaHJvbm91
cwogI2VuZGlmCkBAIC01MzYsNyArNTM2LDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29t
bWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAg
ICBEaWRSZWNlaXZlUGFzc3dvcmRGb3JRdWlja0xvb2tEb2N1bWVudChTdHJpbmcgcGFzc3dvcmQp
CiAjZW5kaWYKIAotICAgIEZyYW1lQmVjYW1lUmVtb3RlKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVj
dCBXZWJDb3JlOjpHbG9iYWxGcmFtZUlkZW50aWZpZXIgcmVtb3RlRnJhbWVJZGVudGlmaWVyLCBz
dHJ1Y3QgV2ViQ29yZTo6R2xvYmFsV2luZG93SWRlbnRpZmllciByZW1vdGVXaW5kb3dJZGVudGlm
aWVyKQorICAgIEZyYW1lQmVjYW1lUmVtb3RlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBzdHJ1Y3QgV2ViQ29yZTo6R2xvYmFsRnJhbWVJZGVudGlmaWVyIHJlbW90ZUZyYW1lSWRl
bnRpZmllciwgc3RydWN0IFdlYkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXIgcmVtb3RlV2lu
ZG93SWRlbnRpZmllcikKIAogICAgIFJlZ2lzdGVyVVJMU2NoZW1lSGFuZGxlcih1aW50NjRfdCBp
ZGVudGlmaWVyLCBTdHJpbmcgc2NoZW1lKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUd0ay5jcHAKaW5kZXggYzk4MmQwYjc2MjFlYzMwYmFi
NDdkZWEyODc2ZTk3NjAwYWRiMzg4MS4uMzY4OGUxNWVhOTBlODdkYjljY2RlNzE5YmY2Y2U1NmIz
MTgyYjhkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3Rr
L1dlYlBhZ2VHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0
ay9XZWJQYWdlR3RrLmNwcApAQCAtMTgzLDcgKzE4Myw3IEBAIHZvaWQgV2ViUGFnZTo6c2V0SW5w
dXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpTZXRJbnB1dE1ldGhvZFN0YXRlKGVuYWJsZWQpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpj
b2xsYXBzZVNlbGVjdGlvbkluRnJhbWUodWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZTo6
Y29sbGFwc2VTZWxlY3Rpb25JbkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAg
IFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1l
SUQpOwogICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT5jb3JlRnJhbWUoKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggZTRj
NjQyNzFjY2Y4OTNiMzU5Yjk0NTc5YzhiMmQxNzkxZGRhOWNiOS4uMmRiMGViNmJiYWE0NTc4YmY2
YTY5NWNlNDAwMmQ3NzM2NTE2YmQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTU1MSw3ICs1NTEsNyBAQCB2b2lkIFdl
YlBhZ2U6OmFjY2VwdHNGaXJzdE1vdXNlKGludCwgY29uc3QgV2ViS2l0OjpXZWJNb3VzZUV2ZW50
JiwgQ29tcGxldGlvbkhhbgogICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKIH0KIAotdm9p
ZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZ1BERkRvY3VtZW50KHVpbnQ2NF90LCBj
b25zdCBQcmludEluZm8mLCBWZWN0b3I8SW50UmVjdD4mKQordm9pZCBXZWJQYWdlOjpjb21wdXRl
UGFnZXNGb3JQcmludGluZ1BERkRvY3VtZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29u
c3QgUHJpbnRJbmZvJiwgVmVjdG9yPEludFJlY3Q+JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogfQpAQCAtMzczOSw3ICszNzM5LDcgQEAgdm9pZCBXZWJQYWdlOjpkaXNwYXRjaEFzeW5jaHJv
bm91c1RvdWNoRXZlbnRzKGNvbnN0IFZlY3RvcjxXZWJUb3VjaEV2ZW50LCAxPiYgcXUKIH0KICNl
bmRpZgogCi12b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERG
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBDYWxsYmFja0lE
IGNhbGxiYWNrSUQsIE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21wdXRlUGFnZXNGb3JQcmludGluZ0Fu
ZERyYXdUb1BERjo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQ
YWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgQ2FsbGJhY2tJRCBjYWxsYmFja0lELCBN
ZXNzYWdlczo6V2ViUGFnZTo6Q29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREY6OkRl
bGF5ZWRSZXBseSYmIHJlcGx5KQogewogICAgIGlmIChwcmludEluZm8uc25hcHNob3RGaXJzdFBh
Z2UpIHsKICAgICAgICAgcmVwbHkoMSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCmluZGV4IDQzMWRmYTE3YWNhMDViNjBlZmU5YWUw
NDAzYTQwODgwZTI4MThkODAuLmZlMjQxN2IwYTdkNTgzNjNjNTRiYjg2ZGE1Nzg5OGQxMWZiZTM1
MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQ
YWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQ
YWdlTWFjLm1tCkBAIC02NzAsNyArNjcwLDcgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVIZWFkZXJB
bmRGb290ZXJMYXllcnNGb3JEZXZpY2VTY2FsZUNoYW5nZShmbG9hdCBzY2FsZUZhY3RvcikKICAg
ICAgICAgbV9mb290ZXJCYW5uZXItPmRpZENoYW5nZURldmljZVNjYWxlRmFjdG9yKHNjYWxlRmFj
dG9yKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZ1BERkRvY3Vt
ZW50KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBWZWN0b3I8
SW50UmVjdD4mIHJlc3VsdFBhZ2VSZWN0cykKK3ZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9y
UHJpbnRpbmdQREZEb2N1bWVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29u
c3QgUHJpbnRJbmZvJiBwcmludEluZm8sIFZlY3RvcjxJbnRSZWN0PiYgcmVzdWx0UGFnZVJlY3Rz
KQogewogICAgIEFTU0VSVChyZXN1bHRQYWdlUmVjdHMuaXNFbXB0eSgpKTsKICAgICBXZWJGcmFt
ZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCBhMmRhMTJjNjAyMjkzNzNj
Zjg3ODkyYjgzZGFhNTc3MzUwMGE3N2YyLi41NjVmY2FhZWQxMzA5ZTc4NjU2NGMwYmZlYWI4Yjll
MWJmNTQwNzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC03
NjgsMTcgKzc2OCwxNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZQogICAgIExPR19FUlJPUigi
VW5oYW5kbGVkIHdlYiBwcm9jZXNzIG1lc3NhZ2UgJyVzOiVzJyIsIGRlY29kZXIubWVzc2FnZVJl
Y2VpdmVyTmFtZSgpLnRvU3RyaW5nKCkuZGF0YSgpLCBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkudG9T
dHJpbmcoKS5kYXRhKCkpOwogfQogCi1XZWJGcmFtZSogV2ViUHJvY2Vzczo6d2ViRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCkgY29uc3QKK1dlYkZyYW1lKiBXZWJQcm9jZXNzOjp3ZWJGcmFtZShGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9mcmFtZU1hcC5nZXQo
ZnJhbWVJRCk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6YWRkV2ViRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgV2ViRnJhbWUqIGZyYW1lKQordm9pZCBXZWJQcm9jZXNzOjphZGRXZWJGcmFtZShGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViRnJhbWUqIGZyYW1lKQogewogICAgIG1fZnJhbWVNYXAu
c2V0KGZyYW1lSUQsIGZyYW1lKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjpyZW1vdmVXZWJGcmFt
ZSh1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQcm9jZXNzOjpyZW1vdmVXZWJGcmFtZShGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBtX2ZyYW1lTWFwLnJlbW92ZShmcmFtZUlEKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZDRjMDFiYWIxZjkzZGE5
MDg1YjBmMjE5NGNkMzI3ZDQ3MTg2NTBiMi4uM2NiMmM0OTY5NDk5ODg3YjMyYjUzYjNhNjZkMGJi
ZjY4NWEzMjE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC00MCw2
ICs0MCw3IEBACiAjaW5jbHVkZSAiV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmgiCiAjaW5jbHVk
ZSAiV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FjdGl2aXR5
U3RhdGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lzdHJhYmxl
RG9tYWluLmg+CiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMTcyLDkgKzE3Myw5IEBAIHB1YmxpYzoK
IAogICAgIGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZDsgfQogCi0gICAgV2ViRnJhbWUqIHdlYkZyYW1lKHVp
bnQ2NF90KSBjb25zdDsKLSAgICB2b2lkIGFkZFdlYkZyYW1lKHVpbnQ2NF90LCBXZWJGcmFtZSop
OwotICAgIHZvaWQgcmVtb3ZlV2ViRnJhbWUodWludDY0X3QpOworICAgIFdlYkZyYW1lKiB3ZWJG
cmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpIGNvbnN0OworICAgIHZvaWQgYWRkV2ViRnJh
bWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJGcmFtZSopOworICAgIHZvaWQgcmVtb3Zl
V2ViRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKIAogICAgIFdlYlBhZ2VHcm91cFBy
b3h5KiB3ZWJQYWdlR3JvdXAoV2ViQ29yZTo6UGFnZUdyb3VwKik7CiAgICAgV2ViUGFnZUdyb3Vw
UHJveHkqIHdlYlBhZ2VHcm91cCh1aW50NjRfdCBwYWdlR3JvdXBJRCk7CkBAIC00ODksNyArNDkw
LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9mdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkIHsg
ZmFsc2UgfTsKIAotICAgIEhhc2hNYXA8dWludDY0X3QsIFdlYkZyYW1lKj4gbV9mcmFtZU1hcDsK
KyAgICBIYXNoTWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViRnJhbWUqPiBtX2ZyYW1l
TWFwOwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPGNvbnN0IGNoYXIqLCBzdGQ6OnVuaXF1ZV9wdHI8
V2ViUHJvY2Vzc1N1cHBsZW1lbnQ+LCBQdHJIYXNoPGNvbnN0IGNoYXIqPj4gV2ViUHJvY2Vzc1N1
cHBsZW1lbnRNYXA7CiAgICAgV2ViUHJvY2Vzc1N1cHBsZW1lbnRNYXAgbV9zdXBwbGVtZW50czsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGIxNDAzZDA1NjM5M2IzOTdkMDE3ZDA5M2Rl
NWZlMDRjZGNjYThjY2QuLmQ2MDYzMGZlMGNhYWRmNDNhOGI3NDQ5ZDJkNTQ5MGVkYjA4ZTZhYzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtNjQsNyArNjQsNyBAQCBwcml2YXRlOgog
ICAgIGJvb2wgaGFzV2ViVmlldygpIGNvbnN0IGZpbmFsOyAvLyBtYWlubHkgZm9yIGFzc2VydGlv
bnMKIAogICAgIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQoKSBjb25z
dCBmaW5hbDsKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCgpIGNvbnN0IGZpbmFsOwor
ICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCgpIGNvbnN0IGZp
bmFsOwogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IGZpbmFsOwogCiAgICAg
dm9pZCBtYWtlUmVwcmVzZW50YXRpb24oV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKSBmaW5hbDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KaW5kZXggM2RkNTBlN2IzYjljZjk5MzM0OWM5YWJi
NGNiNDk3ODM3ZWVjMzUzZS4uYjdhNjVlOTkzNGZmZjA4ODBiNzU2OGNhMDBlOTYyZTAxNWFlNDIx
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTIxNCw3ICsyMTQsNyBAQCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnBhZ2VJRCgpIGNvbnN0
CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KIAotT3B0aW9uYWw8dWludDY0X3Q+IFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlEKCkgY29uc3QKK09wdGlvbmFsPEZyYW1lSWRlbnRpZmll
cj4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZyYW1lSUQoKSBjb25zdAogewogICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376329</attachid>
            <date>2019-08-14 16:06:36 -0700</date>
            <delta_ts>2019-08-14 22:01:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199986-20190814160635.patch</filename>
            <type>text/plain</type>
            <size>445041</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmE3MDY4NjA3ZWFlOTVj
NTA0YWRlOThlNGIyZDQ4NzlmMjY2NDRmOS4uOTM1OGNjMTBmYjk5ZjFkMTE2ZmEyNDUwMzVhM2Ri
MDgzMjEwYTc5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE5LTA4LTE0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBPYmplY3RJ
ZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+IGZvciBmcmFtZUlEcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5OTg2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBzdHJvbmdseS10eXBl
ZCBGcmFtZUlkZW50aWZpZXIgaW5zdGVhZCBvZiB1aW50NjRfdCBhcyBmcmFtZSBpZGVudGlmaWVy
cyBldmVyeXdoZXJlLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGxvYWRlci9Db29raWVKYXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q29va2llSmFyOjpjb29raWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tpZUphcjo6
c2V0Q29va2llcyk6CisgICAgICAgIChXZWJDb3JlOjpDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb2tpZUphcjo6Z2V0
UmF3Q29va2llcyBjb25zdCk6CisgICAgICAgICogbG9hZGVyL0Nvb2tpZUphci5oOgorICAgICAg
ICAqIGxvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3Bw
OgorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
OjpOYXZpZ2F0aW9uQWN0aW9uOjpSZXF1ZXN0ZXI6OmZyYW1lSUQgY29uc3QpOgorICAgICAgICAq
IHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9HbG9iYWxGcmFtZUlkZW50aWZp
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6Okdsb2JhbEZyYW1lSWRlbnRpZmllcjo6ZGVjb2RlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Nvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5
Lmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzaG91bGRCbG9ja0Nv
b2tpZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpo
YXNTdG9yYWdlQWNjZXNzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6Z3JhbnRTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW06CisgICAgICAg
IChXZWJDb3JlOjpjb29raWVzRm9yVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OmNvb2tpZXNGb3JT
ZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2ll
c0ZvckRPTSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzIGNvbnN0KToK
KwogMjAxOS0wOC0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAg
ICAgVXBkYXRlIFdvcmtlcjo6bm90aWZ5RmluaXNoZWQgdG8gbm90IHVzZSBlbXB0eVNlc3Npb25J
RApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA1NGI3OTc3NmIwNTc1YjFhODgzY2Y2OTc4ZmFjZDBhMTU1Y2NhOWM1Li40
NTg3MjQyZjU2N2Q0YzBiMmVlZjgwYmIxOTJmYWJiZjE1ODIwMjk3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDM0OSBAQAorMjAxOS0wOC0xNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KKworICAgICAgICBVc2UgT2JqZWN0SWRlbnRpZmllcjxGcmFtZUlkZW50aWZpZXJUeXBl
PiBmb3IgZnJhbWVJRHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5OTk4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVzZSB0aGUgc3Ryb25nbHktdHlwZWQgRnJhbWVJZGVudGlmaWVyIGluc3RlYWQgb2Yg
dWludDY0X3QgYXMgZnJhbWUgaWRlbnRpZmllcnMgZXZlcnl3aGVyZS4KKworICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3Rv
cmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFudFN0b3JhZ2VB
Y2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAg
ICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmdyYW50U3RvcmFn
ZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsSGFzU3Rv
cmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEdy
YW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTSk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJv
bURPTSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpj
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXRSYXdDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpoYXNT
dG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtMb2FkQ2hlY2tlcjo6TmV0d29ya0xvYWRDaGVja2VyKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRy
eSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnROZXR3b3Jr
TG9hZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y29udmVydFRv
RG93bmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmFib3J0
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVz
cG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2Vp
dmVCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZp
bmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRp
ZEZhaWxMb2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpj
b250aW51ZVdpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OmVzY2FwZUlERm9ySlNP
Tik6CisgICAgICAgIChXZWJLaXQ6OmxvZ0Jsb2NrZWRDb29raWVJbmZvcm1hdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uSW50ZXJuYWwpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24pOgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNoYXJlZC9BUEkv
QVBJRnJhbWVIYW5kbGUuY3BwOgorICAgICAgICAoQVBJOjpGcmFtZUhhbmRsZTo6Y3JlYXRlKToK
KyAgICAgICAgKEFQSTo6RnJhbWVIYW5kbGU6OmNyZWF0ZUF1dG9jb252ZXJ0aW5nKToKKyAgICAg
ICAgKEFQSTo6RnJhbWVIYW5kbGU6OkZyYW1lSGFuZGxlKToKKyAgICAgICAgKEFQSTo6RnJhbWVI
YW5kbGU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5oOgor
ICAgICAgICAoQVBJOjpGcmFtZUhhbmRsZTo6ZnJhbWVJRCBjb25zdCk6CisgICAgICAgICogU2hh
cmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5tbToKKyAgICAgICAgKC1bX1dLRnJhbWVIYW5k
bGUgaGFzaF0pOgorICAgICAgICAoLVtfV0tGcmFtZUhhbmRsZSBfZnJhbWVJRF0pOgorICAgICAg
ICAoLVtfV0tGcmFtZUhhbmRsZSBpbml0V2l0aENvZGVyOl0pOgorICAgICAgICAoLVtfV0tGcmFt
ZUhhbmRsZSBlbmNvZGVXaXRoQ29kZXI6XSk6CisgICAgICAgICogU2hhcmVkL0F1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRp
Y2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAg
ICAgKiBTaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmg6CisgICAg
ICAgICogU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tGcmFtZUhhbmRsZVJlZi5jcHA6CisgICAgICAgIChXS0ZyYW1lSGFuZGxlR2V0RnJhbWVJRCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgt
W1dLV2ViVmlldyBfcHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvOmZvckZyYW1lOl0pOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX2NhbkNoYW5nZUZyYW1lTGF5b3V0Ol0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tOgorICAgICAgICAoLVtfV0tJbnNwZWN0
b3Igc2hvd01haW5SZXNvdXJjZUZvckZyYW1lOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRv
bWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNp
bXVsYXRlZElucHV0RGlzcGF0Y2hlcjo6cnVuKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21h
dGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0
b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dG9tYXRpb25TZXNzaW9uOjp3ZWJGcmFtZUlERm9ySGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQXV0b21hdGlvblNlc3Npb246OmhhbmRsZUZvcldlYkZyYW1lSUQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c3dpdGNoVG9Ccm93c2luZ0NvbnRleHQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2FpdEZvck5hdmlnYXRpb25Ub0Nv
bXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6ZmluZFBhZ2VGb3JGcmFtZUlEKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnJlc3BvbmRUb1BlbmRpbmdGcmFtZU5hdmln
YXRpb25DYWxsYmFja3NXaXRoVGltZW91dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRp
b25TZXNzaW9uOjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZlQ2hpbGRGcmFtZUhhbmRsZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZlUGFyZW50RnJhbWVIYW5kbGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Y29tcHV0ZUVsZW1lbnRM
YXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2VsZWN0T3B0
aW9uRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpnZXRB
bGxDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OmRlbGV0
ZVNpbmdsZUNvb2tpZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjp2
aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
QXV0b21hdGlvblNlc3Npb246OnRha2VTY3JlZW5zaG90KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVu
dDo6Y2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW06CisgICAgICAg
ICgtW1dLUmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyIGF0dGVtcHRSZWNvdmVyeV0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9j
a0xvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6
OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSk6CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAg
ICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UHJvdmlzaW9uYWxQYWdlUHJveHk6OnZhbGlkYXRlSW5wdXQpOgorICAgICAgICAoV2ViS2l0OjpQ
cm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZEZh
aWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFs
UGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQcm92
aXNpb25hbFBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEpOgorICAgICAg
ICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxG
b3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNp
b25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0
OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9u
YWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xv
YWRGb3JGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJv
Y2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlN1c3BlbmRlZFBhZ2VQcm94eTo6U3VzcGVuZGVkUGFnZVByb3h5
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25D
aGVja1Byb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNr
UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5
OjpmcmFtZUlEIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVzZXRBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6c2VhcmNoRm9yR3JhbnRl
ZFJlcXVlc3QgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6d2FzUmVxdWVzdERlbmllZCk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVy
bWlzc2lvbkZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OmdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKToKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc0dyYW50
ZWRWaWRlb09yQXVkaW9BY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6bWFpbkZyYW1lSUQgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpmcmFtZUlEIGNvbnN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkZyYW1lUHJveHk6OldlYkZyYW1lUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJGcmFtZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6OmZyYW1lSUQgY29uc3QpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGlkQ3JlYXRlU3ViZnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmRpZENyZWF0ZVdpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkU3Rh
cnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6ZGlkRXhwbGljaXRPcGVuRm9yRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZl
U2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1l
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDYW5jZWxDbGllbnRSZWRpcmVj
dEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92
aXNpb25hbFVSTEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRD
aGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZEZvckZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZyYW1l
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENoYW5nZU1h
aW5Eb2N1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRp
dGxlRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZpcnN0TGF5
b3V0Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZpcnN0Vmlz
dWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFtZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZnJhbWVEaWRCZWNvbWVGcmFtZVNldCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5j
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uQXN5bmNTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNw
b25zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2VTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnVuYWJsZVRvSW1w
bGVtZW50UG9saWN5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0
Rm9ybSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2
aWdhdGlvbkRhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZE5hdmlnYXRl
V2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFVwZGF0ZUhpc3RvcnlUaXRsZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEFsZXJ0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0Q29uZmlybSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdFByb21wdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpydW5PcGVuUGFuZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnByaW50RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZvY3Vz
ZWRGcmFtZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZyYW1lU2V0
TGFyZ2VzdEZyYW1lQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cmVxdWVzdFN0b3JhZ2VTcGFjZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6bWFrZVN0b3JhZ2VTcGFjZVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2Vz
Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNob3VsZEFsbG93RGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybSk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6d2ViRnJhbWUgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUHJveHk6OmNhbkNyZWF0ZUZyYW1lIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpmcmFtZUNyZWF0ZWQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUHJveHk6OmRpZERlc3Ryb3lGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IF93a19wYWdlQ291bnRGb3JQcmludEZvcm1hdHRlcjpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojpjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpldmFsdWF0ZUphdmFTY3JpcHRDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZENsZWFyV2luZG93
T2JqZWN0Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5OjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJh
bWVXaXRoT3JkaW5hbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZVBhcmVudEZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Zm9jdXNG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmNvbXB1
dGVFbGVtZW50TGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eTo6c2VsZWN0T3B0aW9uRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHk6OnRha2VTY3JlZW5zaG90KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eTo6Z2V0Q29va2llc0ZvckZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZGVsZXRlQ29va2llKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dL
V2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tOgorICAgICAgICAoK1tXS1dlYlByb2Nlc3NQbHVnSW5G
cmFtZSBsb29rVXBGcmFtZUZyb21IYW5kbGU6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3Ry
YXRlZ3k6OnNjaGVkdWxlTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5
OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJM
b2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJS
ZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxSZXNvdXJjZUxvYWQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVyOjpzdG9wTG9hZGluZ0FmdGVyWEZyYW1l
T3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNvdXJjZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omluc3RhbGxTZXJ2aWNlV29ya2VyKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZCBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6aGFzU3RvcmFnZUFjY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cmVxdWVzdFN0b3JhZ2VBY2Nl
c3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlE
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
RGlkRmFpbFByb3Zpc2lvbmFsTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkNvb2tpZUphci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6
Y29va2llcyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6c2V0Q29va2ll
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZp
ZWxkVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVKYXI6OmdldFJhd0Nv
b2tpZXMgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJGcmFtZTo6V2ViRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpnZW5lcmF0ZUZy
YW1lSUQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6ZnJhbWVJRCBjb25zdCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
Ykluc3BlY3Rvcjo6c2hvd01haW5SZXNvdXJjZUZvckZyYW1lKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxvYWRVUkxJbkZyYW1lKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9hZERhdGFJbkZyYW1lKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6c3RvcExvYWRpbmdGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmNvbnRpbnVlV2lsbFN1Ym1pdEZvcm0pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpydW5K
YXZhU2NyaXB0SW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldFNvdXJjZUZv
ckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0TWFpblJlc291cmNlRGF0YU9m
RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRSZXNvdXJjZURhdGFGcm9tRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRXZWJBcmNoaXZlT2ZGcmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmFkZENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6c2VuZENTUFZpb2xhdGlvblJlcG9ydCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6YmVnaW5QcmludGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
ZHJhd1JlY3RUb0ltYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZHJhd1BhZ2VzVG9Q
REYpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmF3UGFnZXNUb1BERkltcGwpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkcmF3UGFnZXNGb3JQcmludGluZyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmZyYW1lQmVjYW1lUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6aGFzU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlcXVl
c3RTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2hvdWxkQWxsb3dE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERG
RG9jdW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmlu
dGluZ0FuZERyYXdUb1BERik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQ
YWdlTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmlu
dGluZ1BERkRvY3VtZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjp3ZWJGcmFtZSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmFkZFdlYkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6cmVtb3ZlV2ViRnJhbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
OgorCiAyMDE5LTA4LTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgdXNlIG9mIGVtcHR5U2Vzc2lvbklEIGZyb20gTmV0d29ya0xvYWRQYXJhbWV0
ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggODllZTNjYmU0NzY3YWVlNjU1MjE2
Njk1NjBlY2RlOGVkMTA2YTI3ZS4uODMwYTc4MjViOTFkZmQxNmU3Y2Y3MTkyN2Q3MTM4ODkxYjA3
NDYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5
LTA4LTE0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAg
IFVzZSBPYmplY3RJZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+IGZvciBmcmFtZUlEcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5OTg2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBz
dHJvbmdseS10eXBlZCBGcmFtZUlkZW50aWZpZXIgaW5zdGVhZCBvZiB1aW50NjRfdCBhcyBmcmFt
ZSBpZGVudGlmaWVycyBldmVyeXdoZXJlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlEIGNv
bnN0KToKKwogMjAxOS0wOC0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgVGhyZWFkYWJsZUJsb2JSZWdpc3RyeTo6YmxvYlNpemUgc2hvdWxkIHRha2UgYSBT
ZXNzaW9uSUQgYXMgcGFyYW1ldGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA4YzM5ZTI4Yzc0ZWIx
ZDU1MTRhNTQxNjA3ODhlY2MyMmViN2VkYzU1Li42ZTM5YmU0MThhZDhlMTAwOWJkYTNkYjBhZjEw
YTRiYjM0YWZmY2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTc3Nyw2ICs3NzcsNyBAQCBzZXQo
V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGFnZS9Gb2N1c0RpcmVjdGlv
bi5oCiAgICAgcGFnZS9GcmFtZS5oCiAgICAgcGFnZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIu
aAorICAgIHBhZ2UvRnJhbWVJZGVudGlmaWVyLmgKICAgICBwYWdlL0ZyYW1lU25hcHNob3R0aW5n
LmgKICAgICBwYWdlL0ZyYW1lVHJlZS5oCiAgICAgcGFnZS9GcmFtZVZpZXcuaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGI3YmU3
NDkzZmIzNDdlN2FlYzVkMTE3Y2M1Y2M2OWE4YTFlZmMxZTMuLjQ5NTdiYWJjOTdiMTcxMDRhNDQ1
MzVlNDM4M2ZkZmE4YjEyNzQyMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4MCw2ICsyODAsNyBAQAogCQkwRjAzQzA3NDE4
ODQ2OTVFMDBBNUY4Q0EgLyogU3lzdGVtTWVtb3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjAzQzA3MzE4ODQ2OTVFMDBBNUY4Q0EgLyogU3lzdGVt
TWVtb3J5LmggKi87IH07CiAJCTBGMDNDMDc1MTg4NDgwNTUwMEE1RjhDQSAvKiBJbnNwZWN0b3JP
dmVybGF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
QzUyMkQ0QTE1QjQ3OEIyMDA5QjdDOTUgLyogSW5zcGVjdG9yT3ZlcmxheS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMDk5RDA5MTdCOTY4QTEw
MEZGODRCOSAvKiBXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMDk5RDA3MTdCOTY4QTEwMEZGODRCOSAv
KiBXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjExNzgxODIyRTNDNDdGMDA4QkQ1NzAgLyogRnJh
bWVJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjExNzgxNjIyRTNDNDdFMDA4QkQ1NzAgLyogRnJhbWVJZGVudGlmaWVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYxMUE1NEYwRjM5
MjMzMTAwQzM3ODg0IC8qIFJlbmRlclNlbGVjdGlvbkluZm8uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTFBNTRFMEYzOTIzMzEwMEMzNzg4NCAvKiBS
ZW5kZXJTZWxlY3Rpb25JbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMEYxMzE2M0UxNkVEMENDODAwMzVDQzA0IC8qIFBsYXRmb3JtQ0FGaWx0
ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjEz
MTYzRDE2RUQwQ0M4MDAzNUNDMDQgLyogUGxhdGZvcm1DQUZpbHRlcnMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjE1REE4QTBGM0FBRUU3MDAw
MENFNDcgLyogQ1NTQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTVEQTg5MEYzQUFFRTcwMDAwQ0U0NyAv
KiBDU1NBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oICovOyB9OwpAQCAtNTU3OCw2ICs1NTc5
LDcgQEAKIAkJMEYwM0MwNzMxODg0Njk1RTAwQTVGOENBIC8qIFN5c3RlbU1lbW9yeS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTeXN0ZW1NZW1vcnkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEYwOTlEMDYxN0I5NjhBMTAwRkY4NEI5IC8qIFdlYkNvcmVUeXBl
ZEFycmF5Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjA5OUQwNzE3Qjk2OEExMDBGRjg0QjkgLyogV2ViQ29yZVR5cGVkQXJyYXlDb250
cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVUeXBlZEFy
cmF5Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjExNzgxNjIy
RTNDNDdFMDA4QkQ1NzAgLyogRnJhbWVJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEZyYW1lSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjExQTU0RTBGMzkyMzMxMDBDMzc4ODQgLyogUmVuZGVyU2VsZWN0aW9uSW5mby5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJTZWxlY3Rpb25JbmZvLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMTMxNjNEMTZFRDBDQzgwMDM1Q0MwNCAvKiBQ
bGF0Zm9ybUNBRmlsdGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0
Zm9ybUNBRmlsdGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjEzMTYzRjE2
RUQwQ0RFMDAzNUNDMDQgLyogUGxhdGZvcm1DQUZpbHRlcnNDb2NvYS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBsYXRmb3JtQ0FGaWx0ZXJzQ29jb2EubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDIwNCw2ICsyMDIwNiw3IEBACiAJCQkJNjVC
RjAyMkEwOTc0ODE2MzAwQzQzMTk2IC8qIEZyYW1lLmggKi8sCiAJCQkJOTc0QTg2MjAxNEI3QURC
QjAwM0ZEQzc2IC8qIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAgKi8sCiAJCQkJOTc0QTg2
MjExNEI3QURCQjAwM0ZEQzc2IC8qIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5oICovLAorCQkJ
CTBGMTE3ODE2MjJFM0M0N0UwMDhCRDU3MCAvKiBGcmFtZUlkZW50aWZpZXIuaCAqLywKIAkJCQlD
NENENjI5ODE4MzgzNzY2MDA3RUJBRjEgLyogRnJhbWVTbmFwc2hvdHRpbmcuY3BwICovLAogCQkJ
CUM0Q0Q2Mjk5MTgzODM3NjYwMDdFQkFGMSAvKiBGcmFtZVNuYXBzaG90dGluZy5oICovLAogCQkJ
CTY1QTIxNDgyMDk3QTNGNTMwMEI5MDUwQSAvKiBGcmFtZVRyZWUuY3BwICovLApAQCAtMjkyNTUs
NiArMjkyNTgsNyBAQAogCQkJCUE4NTMxMjNEMTFEMDQ3MUIwMEQ0RDA3NyAvKiBGcmFnbWVudFNj
cmlwdGluZ1Blcm1pc3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTY1QkYwMjJGMDk3NDgxNjMw
MEM0MzE5NiAvKiBGcmFtZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc0QTg2MjMxNEI3QURCQjAw
M0ZEQzc2IC8qIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEYxMTc4MTgyMkUzQzQ3RjAwOEJENTcwIC8qIEZyYW1lSWRlbnRpZmllci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNjU2RDM3M0MwQURCQTVERTAwQTQ1NTREIC8qIEZyYW1lTG9hZGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk2NTZEMzczRTBBREJBNURFMDBBNDU1NEQgLyogRnJhbWVMb2FkZXJDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUQwMDBFQkEzMTFCREFGRDQwMEM0NzcyNiAvKiBGcmFt
ZUxvYWRlclN0YXRlTWFjaGluZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29r
aWVKYXIuY3BwCmluZGV4IDY5NjMwMzMwYjVkNzkzMGQ3ZDdhYWYxZGRiNGE4OWRmYjYwZGRkY2Mu
LjZkMDM2MmU5NzY0MTg4YjYwODRjYmFhOGNjMTQyZDRkMzkxZjVhODUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Db29raWVKYXIuY3BwCkBAIC03MSw3ICs3MSw3IEBAIFN0cmluZyBDb29raWVKYXI6OmNv
b2tpZXMoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCkgY29uc3QKIAogICAgIGF1
dG8gaW5jbHVkZVNlY3VyZUNvb2tpZXMgPSBzaG91bGRJbmNsdWRlU2VjdXJlQ29va2llcyhkb2N1
bWVudCwgdXJsKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlv
bmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmll
cj4gcGFnZUlEOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKICAg
ICAgICAgZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CkBAIC05
NCw3ICs5NCw3IEBAIENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5IENvb2tpZUphcjo6Y29v
a2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkoY29uc3QgRG9jCiB7CiAgICAgVHJhY2VTY29wZSBz
Y29wZShGZXRjaENvb2tpZXNTdGFydCwgRmV0Y2hDb29raWVzRW5kKTsKIAotICAgIE9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJ
RDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEOwogICAgIGlmIChhdXRvKiBm
cmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKICAgICAgICAgZnJhbWVJRCA9IGZyYW1lLT5sb2Fk
ZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CkBAIC0xMDYsNyArMTA2LDcgQEAgQ29va2llUmVxdWVz
dEhlYWRlckZpZWxkUHJveHkgQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94
eShjb25zdCBEb2MKIAogdm9pZCBDb29raWVKYXI6OnNldENvb2tpZXMoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpCiB7Ci0gICAg
T3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVy
PiBmcmFtZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7CiAgICAgaWYg
KGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkgewogICAgICAgICBmcmFtZUlEID0gZnJh
bWUtPmxvYWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKTsKQEAgLTEyOCw3ICsxMjgsNyBAQCBib29s
IENvb2tpZUphcjo6Y29va2llc0VuYWJsZWQoY29uc3QgRG9jdW1lbnQmKSBjb25zdAogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAotc3RkOjpwYWlyPFN0cmluZywgU2VjdXJlQ29va2llc0FjY2Vzc2Vk
PiBDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vz
c2lvbklEJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVT
aXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRl
U2VjdXJlQ29va2llcykgY29uc3QKK3N0ZDo6cGFpcjxTdHJpbmcsIFNlY3VyZUNvb2tpZXNBY2Nl
c3NlZD4gQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBQQUw6
OlNlc3Npb25JRCYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBz
YW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZy
YW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29r
aWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAogewogICAgIGlmIChhdXRvKiBzZXNzaW9u
ID0gbV9zdG9yYWdlU2Vzc2lvblByb3ZpZGVyLT5zdG9yYWdlU2Vzc2lvbigpKSB7CiAgICAgICAg
IHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IHJlc3VsdCA9IHNlc3Npb24tPmNvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHVlKGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBw
YWdlSUQsIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKQEAgLTE0MSw3ICsxNDEsNyBAQCBzdGQ6OnBh
aXI8U3RyaW5nLCBTZWN1cmVDb29raWVzQWNjZXNzZWQ+IENvb2tpZUphcjo6Y29va2llUmVxdWVz
dEhlYWRlckZpZWxkVmFsdQogCiBTdHJpbmcgQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVy
RmllbGRWYWx1ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsKSBjb25zdAogewot
ICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRp
Zmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEOwogICAg
IGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKICAgICAgICAgZnJhbWVJRCA9
IGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CkBAIC0xNTYsNyArMTU2LDcgQEAg
U3RyaW5nIENvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoRG9jdW1lbnQm
IGRvY3VtZW50LCBjb25zdCBVUkwmIHUKIAogYm9vbCBDb29raWVKYXI6OmdldFJhd0Nvb2tpZXMo
Y29uc3QgRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCwgVmVjdG9yPENvb2tpZT4m
IGNvb2tpZXMpIGNvbnN0CiB7Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAg
T3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiBwYWdlSUQ7CiAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkg
ewogICAgICAgICBmcmFtZUlEID0gZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Db29raWVKYXIuaAppbmRleCAyODFmODRjNDkwMDUyNjdlYTA1NGQ1MWQ3
NjhhOWViNzMyY2JjMjM5Li44MDg3YjhjZDViN2NmNGY1NjkzZTJmN2U5NWQ4ZWY2YTE3OTg0NmE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFn
bWEgb25jZQogCisjaW5jbHVkZSAiRnJhbWVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUlk
ZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgpAQCAtNTksNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHNldENvb2tpZXMoRG9jdW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0
cmluZyk7CiAKICAgICB2aXJ0dWFsIGJvb2wgY29va2llc0VuYWJsZWQoY29uc3QgRG9jdW1lbnQm
KSBjb25zdDsKLSAgICB2aXJ0dWFsIHN0ZDo6cGFpcjxTdHJpbmcsIFNlY3VyZUNvb2tpZXNBY2Nl
c3NlZD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQm
LCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYs
IE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIElu
Y2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKKyAgICB2aXJ0dWFsIHN0ZDo6cGFpcjxTdHJpbmcs
IFNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29u
c3QgUEFMOjpTZXNzaW9uSUQmLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRl
SW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0OwogICAgIHZpcnR1YWwg
Ym9vbCBnZXRSYXdDb29raWVzKGNvbnN0IERvY3VtZW50JiwgY29uc3QgVVJMJiwgVmVjdG9yPENv
b2tpZT4mKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlQ29va2llKGNvbnN0IERvY3Vt
ZW50JiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1lKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggMWY3YTI5YzRi
MzAxYTM2NTgyMmU0MjMzYjQxNWRkMWMwMDE5MTMyZC4uZTU5ZDE3MGRmMGJhMDhhMmM0ZjYwM2Zk
Y2ZhODM1N2RmZjg5YmRiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
RnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFt
ZUxvYWRlckNsaWVudC5oCkBAIC0zMiw3ICszMiw3IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEVt
cHR5RnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRnJhbWVMb2FkZXJDbGllbnQgewogCiAgICAg
dm9pZCBmcmFtZUxvYWRlckRlc3Ryb3llZCgpIG92ZXJyaWRlIHsgfQogCi0gICAgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBXVEY6Om51bGxvcHQ7
IH0KKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
cGFnZUlEKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gV1RGOjpudWxsb3B0OyB9CiAgICAgUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggMDc0ODc2MTE4ZGM2OTFhYTdjOGFkYTk3
Yjc5NzEzNzMzYTI4YTY5NS4uZWQ4NDdjYjA0Nzg1MjVlNTIxMGYxY2M4NWI3ZmVjNTNjZTcyMjJl
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTI5LDYg
KzI5LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJGcmFtZUlkZW50aWZpZXIuaCIK
ICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVkZSAiTGF5b3V0TWlsZXN0b25l
LmgiCiAjaW5jbHVkZSAiTGlua0ljb24uaCIKQEAgLTEyOCw3ICsxMjksNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIG1ha2VSZXByZXNlbnRhdGlvbihEb2N1bWVudExvYWRlciopID0gMDsK
IAogICAgIHZpcnR1YWwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCgpIGNvbnN0ID0g
MDsKLSAgICB2aXJ0dWFsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEKCkgY29uc3QgPSAwOwor
ICAgIHZpcnR1YWwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKCkgY29uc3QgPSAw
OwogICAgIHZpcnR1YWwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgPSAwOwogCiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9OYXZpZ2F0aW9uQWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9u
QWN0aW9uLmNwcAppbmRleCA2MmJhMmRkMmY3NzBhNDA2ZTE1YzkwMzk1ZTQxN2M0MmMyOGY1MjBl
Li5iZDczOGUwODk1N2UyZmQ4NGRhMDU1YWI0NTNlMWE0M2UwYjI4OGRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwCkBAIC00MSw3ICs0MSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIE5hdmlnYXRpb25BY3Rpb246OlJlcXVlc3Rlcjo6UmVxdWVzdGVyKGNv
bnN0IERvY3VtZW50JiBkb2N1bWVudCkKICAgICA6IG1fdXJsIHsgVVJMIHsgZG9jdW1lbnQudXJs
KCkgfSB9CiAgICAgLCBtX29yaWdpbiB7IG1ha2VSZWZQdHIoZG9jdW1lbnQuc2VjdXJpdHlPcmln
aW4oKSkgfQotICAgICwgbV9wYWdlSURBbmRGcmFtZUlEUGFpciB7IGRvY3VtZW50LmZyYW1lKCkg
PyBzdGQ6Om1ha2VfcGFpcihkb2N1bWVudC5mcmFtZSgpLT5sb2FkZXIoKS5jbGllbnQoKS5wYWdl
SUQoKS52YWx1ZU9yKFBhZ2VJZGVudGlmaWVyIHsgfSksIGRvY3VtZW50LmZyYW1lKCktPmxvYWRl
cigpLmNsaWVudCgpLmZyYW1lSUQoKS52YWx1ZU9yKDApKSA6IHN0ZDo6bWFrZV9wYWlyPFBhZ2VJ
ZGVudGlmaWVyLCB1aW50NjRfdD4oeyB9LCAwKSB9CisgICAgLCBtX3BhZ2VJREFuZEZyYW1lSURQ
YWlyIHsgZG9jdW1lbnQuZnJhbWUoKSA/IHN0ZDo6bWFrZV9wYWlyKGRvY3VtZW50LmZyYW1lKCkt
PmxvYWRlcigpLmNsaWVudCgpLnBhZ2VJRCgpLnZhbHVlT3IoUGFnZUlkZW50aWZpZXIgeyB9KSwg
ZG9jdW1lbnQuZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkuZnJhbWVJRCgpLnZhbHVlT3IoRnJh
bWVJZGVudGlmaWVyIHsgfSkpIDogc3RkOjptYWtlX3BhaXI8UGFnZUlkZW50aWZpZXIsIEZyYW1l
SWRlbnRpZmllcj4oeyB9LCB7IH0pIH0KIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZp
Z2F0aW9uQWN0aW9uLmgKaW5kZXggMzVjOTYxYWExNTQ3YjhlYTBjNGI5MDQwNzAzYzg1ZDNlYThl
N2U1Ny4uMGEwMjFkNGZjNzlkOTZiM2YyYTg4YmFlNDA0NTYxOTEwNGNlOTBiMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oCkBAIC0zMCw2ICszMCw3IEBACiAKICNp
bmNsdWRlICJBZENsaWNrQXR0cmlidXRpb24uaCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZEl0ZW1J
ZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiRnJhbWVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiRnJh
bWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIkxheW91dFBvaW50LmgiCiAjaW5jbHVkZSAiUGFn
ZUlkZW50aWZpZXIuaCIKQEAgLTY0LDcgKzY1LDcgQEAgcHVibGljOgogICAgIE5hdmlnYXRpb25B
Y3Rpb24oTmF2aWdhdGlvbkFjdGlvbiYmKTsKICAgICBOYXZpZ2F0aW9uQWN0aW9uJiBvcGVyYXRv
cj0oTmF2aWdhdGlvbkFjdGlvbiYmKTsKIAotICAgIHVzaW5nIFBhZ2VJREFuZEZyYW1lSURQYWly
ID0gc3RkOjpwYWlyPFBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCAvKiBmcmFtZUlEICovPjsKKyAg
ICB1c2luZyBQYWdlSURBbmRGcmFtZUlEUGFpciA9IHN0ZDo6cGFpcjxQYWdlSWRlbnRpZmllciwg
RnJhbWVJZGVudGlmaWVyPjsgLy8gRklYTUU6IFVzZSBHbG9iYWxGcmFtZUlkZW50aWZpZXIuCiAg
ICAgY2xhc3MgUmVxdWVzdGVyIHsKICAgICBwdWJsaWM6CiAgICAgICAgIFJlcXVlc3Rlcihjb25z
dCBEb2N1bWVudCYpOwpAQCAtNzIsNyArNzMsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IFVS
TCYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7IH0KICAgICAgICAgY29uc3QgU2VjdXJpdHlP
cmlnaW4mIHNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gKm1fb3JpZ2luOyB9CiAgICAg
ICAgIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUlEQW5kRnJh
bWVJRFBhaXIuZmlyc3Q7IH0KLSAgICAgICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0
dXJuIG1fcGFnZUlEQW5kRnJhbWVJRFBhaXIuc2Vjb25kOyB9CisgICAgICAgIEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlSURBbmRGcmFtZUlEUGFpci5zZWNv
bmQ7IH0KICAgICBwcml2YXRlOgogICAgICAgICBVUkwgbV91cmw7CiAgICAgICAgIFJlZlB0cjxT
ZWN1cml0eU9yaWdpbj4gbV9vcmlnaW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRl
eCBjMjVhMDI0YmMwNjNjNThmM2IyOGJkNzljYmIwMzM4NDQyNmM4YzVlLi5lOGE1ZGUzM2VkMTc5
MjZjOWFhODU2YjA4MTZiNGVlY2Y4MmM5NGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50
LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJEaXNwbGF5UmVmcmVzaE1vbml0b3IuaCIK
ICNpbmNsdWRlICJEb2N1bWVudFN0b3JhZ2VBY2Nlc3MuaCIKICNpbmNsdWRlICJGb2N1c0RpcmVj
dGlvbi5oIgorI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NM
YXllci5oIgpAQCAtNDg2LDggKzQ4Nyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFJlZlB0cjxJ
Y29uPiBjcmVhdGVJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIC8qIGZpbGVuYW1l
cyAqLykgPSAwOwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLSAgICB2
aXJ0dWFsIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIC8qc3ViRnJh
bWVEb21haW4qLywgUmVnaXN0cmFibGVEb21haW4mJiAvKnRvcEZyYW1lRG9tYWluKi8sIHVpbnQ2
NF90IC8qZnJhbWVJRCovLCBQYWdlSWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNl
KTsgfQotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURv
bWFpbiYmIC8qc3ViRnJhbWVEb21haW4qLywgUmVnaXN0cmFibGVEb21haW4mJiAvKnRvcEZyYW1l
RG9tYWluKi8sIHVpbnQ2NF90IC8qZnJhbWVJRCovLCBQYWdlSWRlbnRpZmllciwgV1RGOjpDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNz
UHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVy
KFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOjpObywgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3du
OjpObyk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURv
bWFpbiYmIC8qc3ViRnJhbWVEb21haW4qLywgUmVnaXN0cmFibGVEb21haW4mJiAvKnRvcEZyYW1l
RG9tYWluKi8sIEZyYW1lSWRlbnRpZmllciwgUGFnZUlkZW50aWZpZXIsIFdURjo6Q29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFu
ZGxlcihmYWxzZSk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUmVn
aXN0cmFibGVEb21haW4mJiAvKnN1YkZyYW1lRG9tYWluKi8sIFJlZ2lzdHJhYmxlRG9tYWluJiYg
Lyp0b3BGcmFtZURvbWFpbiovLCBGcmFtZUlkZW50aWZpZXIsIFBhZ2VJZGVudGlmaWVyLCBXVEY6
OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VB
Y2Nlc3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhh
bmRsZXIoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQ6Ok5vLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2Fz
U2hvd246Ok5vKTsgfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUlkZW50aWZpZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjVkNDk2N2FiMWI0
NTQyMzU4ZTg2NzI0MDVjYjY2YjdkNzhkNzIyNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVJZGVudGlmaWVyLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIEZyYW1lSWRlbnRpZmllclR5cGUgeyB9OwordXNp
bmcgRnJhbWVJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxGcmFtZUlkZW50aWZpZXJUeXBl
PjsKKworaW5saW5lIEZyYW1lSWRlbnRpZmllciBmcmFtZUlkZW50aWZpZXJGcm9tSUQodWludDY0
X3QgZnJhbWVJRCkKK3sKKyAgICByZXR1cm4gbWFrZU9iamVjdElkZW50aWZpZXI8RnJhbWVJZGVu
dGlmaWVyVHlwZT4oZnJhbWVJRCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvR2xvYmFsRnJhbWVJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0dsb2Jh
bEZyYW1lSWRlbnRpZmllci5oCmluZGV4IDBkN2IzZGJmNzJmODFlNGZkNjJhNzNmZWQyNTgxY2Vh
ZWUxNjdiNGEuLjcwOTM0NjdiMTJmODU2NjFhOGY3ZmFkZjAyYjM1Nzc5OTRlYjZhMDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2xvYmFsRnJhbWVJZGVudGlmaWVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9HbG9iYWxGcmFtZUlkZW50aWZpZXIuaApAQCAtMjUsNiArMjUs
NyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmllci5oIgogI2lu
Y2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAKQEAg
LTMzLDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gRnJhbWUgaWRlbnRpZmllciB0
aGF0IGlzIHVuaXF1ZSBhY3Jvc3MgYWxsIFdlYkNvbnRlbnQgcHJvY2Vzc2VzLgogc3RydWN0IEds
b2JhbEZyYW1lSWRlbnRpZmllciB7CiAgICAgUGFnZUlkZW50aWZpZXIgcGFnZUlEOwotICAgIHVp
bnQ2NF90IGZyYW1lSUQ7CisgICAgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQ7CiAKICAgICB0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPEdsb2JhbEZyYW1lSWRlbnRpZmll
cj4gZGVjb2RlKERlY29kZXImKTsKQEAgLTUzLDcgKzU0LDcgQEAgT3B0aW9uYWw8R2xvYmFsRnJh
bWVJZGVudGlmaWVyPiBHbG9iYWxGcmFtZUlkZW50aWZpZXI6OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQogICAgIGlmICghcGFnZUlEKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0g
ICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVudGlm
aWVyPiBmcmFtZUlEOwogICAgIGRlY29kZXIgPj4gZnJhbWVJRDsKICAgICBpZiAoIWZyYW1lSUQp
CiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL0Nvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Nvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5
LmgKaW5kZXggYTMzMDE5ZjlkNWIyYWVkMjYwNzQ2Njk0MDFmZDczMjJmMDJkNTE1Ny4uYzY4NmM4
MWI1MzcxYTY3Y2RkOGFlMDliNGExMDEzMmE1MmQ1YjJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9Db29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ29va2llUmVxdWVzdEhlYWRlckZp
ZWxkUHJveHkuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJD
b29raWVKYXIuaCIKKyNpbmNsdWRlICJGcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJQYWdl
SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNhbWVTaXRlSW5mby5oIgogI2luY2x1ZGUgPHBhbC9T
ZXNzaW9uSUQuaD4KQEAgLTM4LDcgKzM5LDcgQEAgc3RydWN0IENvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFByb3h5IHsKICAgICBVUkwgZmlyc3RQYXJ0eTsKICAgICBTYW1lU2l0ZUluZm8gc2FtZVNp
dGVJbmZvOwogICAgIFVSTCB1cmw7Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7Cisg
ICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPiBwYWdlSUQ7CiAgICAgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3Vy
ZUNvb2tpZXMgeyBJbmNsdWRlU2VjdXJlQ29va2llczo6Tm8gfTsKIApAQCAtNzgsOCArNzksOSBA
QCBPcHRpb25hbDxDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eT4gQ29va2llUmVxdWVzdEhl
YWRlckZpZWxkUHJveHk6OmRlY29kZShEZQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUodXJsKSkK
ICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBm
cmFtZUlEOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZnJhbWVJRCkpCisgICAgT3B0aW9uYWw8
T3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPj4gZnJhbWVJRDsKKyAgICBkZWNvZGVyID4+IGZyYW1l
SUQ7CisgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCiAg
ICAgT3B0aW9uYWw8T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+PiBwYWdlSUQ7CkBAIC05MSw3ICs5
Myw3IEBAIE9wdGlvbmFsPENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5PiBDb29raWVSZXF1
ZXN0SGVhZGVyRmllbGRQcm94eTo6ZGVjb2RlKERlCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShp
bmNsdWRlU2VjdXJlQ29va2llcykpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAg
ICByZXR1cm4gQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkgeyAqc2Vzc2lvbklELCBXVEZN
b3ZlKGZpcnN0UGFydHkpLCBXVEZNb3ZlKHNhbWVTaXRlSW5mbyksIFdURk1vdmUodXJsKSwgZnJh
bWVJRCwgKnBhZ2VJRCwgaW5jbHVkZVNlY3VyZUNvb2tpZXMgfTsKKyAgICByZXR1cm4gQ29va2ll
UmVxdWVzdEhlYWRlckZpZWxkUHJveHkgeyAqc2Vzc2lvbklELCBXVEZNb3ZlKGZpcnN0UGFydHkp
LCBXVEZNb3ZlKHNhbWVTaXRlSW5mbyksIFdURk1vdmUodXJsKSwgKmZyYW1lSUQsICpwYWdlSUQs
IGluY2x1ZGVTZWN1cmVDb29raWVzIH07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uLmNwcAppbmRleCBlNzE5MDdkOTc3ZGY1OTI3M2Y0OTE5YzU2NTFhZjE3MzZmYjFh
NjdmLi5mNGIwOWE4ZDVlMWFkOTQ4NGVkN2IzMmViNTZlMzk2Zjc1ZGFjOTBlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNl
c3Npb24uY3BwCkBAIC03OSwxMiArNzksMTIgQEAgYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OnNob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXNCdXRLZWVwRmlyc3RQYXJ0eUNvb2tpZXMKICAg
ICByZXR1cm4gbV9yZWdpc3RyYWJsZURvbWFpbnNUb0Jsb2NrQnV0S2VlcENvb2tpZXNGb3IuY29u
dGFpbnMocmVnaXN0cmFibGVEb21haW4pOwogfQogCi1ib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6c2hvdWxkQmxvY2tDb29raWVzKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgT3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQp
IGNvbnN0Citib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2hvdWxkQmxvY2tDb29raWVzKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBm
cmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEKSBjb25zdAogewogICAgIHJl
dHVybiBzaG91bGRCbG9ja0Nvb2tpZXMocmVxdWVzdC5maXJzdFBhcnR5Rm9yQ29va2llcygpLCBy
ZXF1ZXN0LnVybCgpLCBmcmFtZUlELCBwYWdlSUQpOwogfQogICAgIAotYm9vbCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OnNob3VsZEJsb2NrQ29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHlGb3JD
b29raWVzLCBjb25zdCBVUkwmIHJlc291cmNlLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkgY29uc3QKK2Jvb2wgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5Rm9yQ29v
a2llcywgY29uc3QgVVJMJiByZXNvdXJjZSwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFt
ZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEKSBjb25zdAogewogICAgIFJlZ2lz
dHJhYmxlRG9tYWluIGZpcnN0UGFydHlEb21haW4geyBmaXJzdFBhcnR5Rm9yQ29va2llcyB9Owog
ICAgIGlmIChmaXJzdFBhcnR5RG9tYWluLmlzRW1wdHkoKSkKQEAgLTEzNiw3ICsxMzYsNyBAQCB2
b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6cmVtb3ZlUHJldmFsZW50RG9tYWlucyhjb25zdCBW
ZWN0b3I8UmVnaXN0cmFibGVEb21haQogICAgIH0KIH0KIAotYm9vbCBOZXR3b3JrU3RvcmFnZVNl
c3Npb246Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNl
RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9u
YWw8dWludDY0X3Q+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkgY29uc3QKK2Jvb2wg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFy
dHlEb21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlkZW50aWZp
ZXIgcGFnZUlEKSBjb25zdAogewogICAgIGlmIChmcmFtZUlEKSB7CiAgICAgICAgIGF1dG8gZnJh
bWVzR3JhbnRlZEl0ZXJhdG9yID0gbV9mcmFtZXNHcmFudGVkU3RvcmFnZUFjY2Vzcy5maW5kKHBh
Z2VJRCk7CkBAIC0xNjksNyArMTY5LDcgQEAgVmVjdG9yPFN0cmluZz4gTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uOjpnZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcygpIGNvbnN0CiAgICAgcmV0dXJuIGVu
dHJpZXM7CiB9CiAgICAgCi12b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z3JhbnRTdG9yYWdl
QWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFt
ZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQpCit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFp
biwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPEZy
YW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKQogewogICAgIGlm
ICghZnJhbWVJRCkgewogICAgICAgICBpZiAoZmlyc3RQYXJ0eURvbWFpbi5pc0VtcHR5KCkpCkBA
IC0xOTEsNyArMTkxLDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdyYW50U3RvcmFn
ZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2UKIAogICAgIGF1dG8gcGFn
ZXNHcmFudGVkSXRlcmF0b3IgPSBtX2ZyYW1lc0dyYW50ZWRTdG9yYWdlQWNjZXNzLmZpbmQocGFn
ZUlEKTsKICAgICBpZiAocGFnZXNHcmFudGVkSXRlcmF0b3IgPT0gbV9mcmFtZXNHcmFudGVkU3Rv
cmFnZUFjY2Vzcy5lbmQoKSkgewotICAgICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWdpc3RyYWJs
ZURvbWFpbiwgRGVmYXVsdEhhc2g8dWludDY0X3Q+OjpIYXNoLCBXVEY6OlVuc2lnbmVkV2l0aFpl
cm9LZXlIYXNoVHJhaXRzPHVpbnQ2NF90Pj4gZW50cnk7CisgICAgICAgIEhhc2hNYXA8RnJhbWVJ
ZGVudGlmaWVyLCBSZWdpc3RyYWJsZURvbWFpbj4gZW50cnk7CiAgICAgICAgIGVudHJ5LmFkZChm
cmFtZUlELnZhbHVlKCksIHJlc291cmNlRG9tYWluKTsKICAgICAgICAgbV9mcmFtZXNHcmFudGVk
U3RvcmFnZUFjY2Vzcy5hZGQocGFnZUlELCBlbnRyeSk7CiAgICAgfSBlbHNlIHsKQEAgLTIwMyw3
ICsyMDMsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z3JhbnRTdG9yYWdlQWNjZXNz
KGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZQogICAgIH0KIH0KIAotdm9pZCBOZXR3
b3JrU3RvcmFnZVNlc3Npb246OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQpCit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQ
YWdlSWRlbnRpZmllciBwYWdlSUQpCiB7CiAgICAgYXV0byBpdGVyYXRpb24gPSBtX2ZyYW1lc0dy
YW50ZWRTdG9yYWdlQWNjZXNzLmZpbmQocGFnZUlEKTsKICAgICBpZiAoaXRlcmF0aW9uID09IG1f
ZnJhbWVzR3JhbnRlZFN0b3JhZ2VBY2Nlc3MuZW5kKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAppbmRleCBjOGVm
OGY3YmFiNzVmZDk5NzliMjgyZjVmNWE4NzAyZWY4MGM4OGIzLi44ZGRmNTViNGExZmNhNWM1NGE0
OTkwYTNhMzdjMDU5MjY2OGZlMDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAK
ICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQ3JlZGVudGlhbFN0b3JhZ2UuaCIKKyNpbmNsdWRl
ICJGcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJQYWdlSWRlbnRpZmllci5oIgogI2luY2x1
ZGUgIlJlZ2lzdHJhYmxlRG9tYWluLmgiCiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgpAQCAt
MTIzLDcgKzEyNCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNvb2tpZXNF
bmFibGVkKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb29raWUoY29uc3Qg
Q29va2llJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb29raWVzKGNvbnN0IFZlY3Rv
cjxDb29raWU+JiwgY29uc3QgVVJMJiwgY29uc3QgVVJMJiBtYWluRG9jdW1lbnRVUkwpOwotICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4g
ZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBjb25zdCBTdHJpbmcmKSBjb25zdDsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJ
ZGVudGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBjb25zdCBTdHJpbmcmKSBjb25z
dDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBDb29raWUmKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBVUkwmLCBjb25zdCBT
dHJpbmcmKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbGV0ZUFsbENvb2tpZXMo
KTsKQEAgLTEzMiwyNiArMTMzLDI2IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGRlbGV0ZUNvb2tpZXNGb3JIb3N0bmFtZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGNvb2tpZUhv
c3ROYW1lcywgSW5jbHVkZUh0dHBPbmx5Q29va2llcyk7CiAgICAgV0VCQ09SRV9FWFBPUlQgVmVj
dG9yPENvb2tpZT4gZ2V0QWxsQ29va2llcygpOwogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxD
b29raWU+IGdldENvb2tpZXMoY29uc3QgVVJMJik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBn
ZXRSYXdDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwg
Y29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiwgVmVjdG9yPENvb2tpZT4mKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29s
IGdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8m
LCBjb25zdCBVUkwmLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxQYWdlSWRl
bnRpZmllcj4sIFZlY3RvcjxDb29raWU+JikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBmbHVzaENvb2tpZVN0b3JlKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRIb3N0bmFt
ZXNXaXRoQ29va2llcyhIYXNoU2V0PFN0cmluZz4mIGhvc3RuYW1lcyk7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvckRPTShjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2
NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1cmVDb29r
aWVzKSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBj
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBP
cHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yRE9NKGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0
aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRl
U2VjdXJlQ29va2llcykgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpwYWlyPFN0cmlu
ZywgYm9vbD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxGcmFtZUlkZW50
aWZpZXI+LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBj
b25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94
eSYpIGNvbnN0OwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLSAgICBX
RUJDT1JFX0VYUE9SVCBib29sIHNob3VsZEJsb2NrQ29va2llcyhjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+
KSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNob3VsZEJsb2NrQ29va2llcyhjb25z
dCBVUkwmIGZpcnN0UGFydHlGb3JDb29raWVzLCBjb25zdCBVUkwmIHJlc291cmNlLCBPcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+KSBjb25zdDsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBib29sIHNob3VsZEJsb2NrQ29va2llcyhjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxQYWdlSWRlbnRpZmll
cj4pIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2hvdWxkQmxvY2tDb29raWVzKGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eUZvckNvb2tpZXMsIGNvbnN0IFVSTCYgcmVzb3VyY2UsIE9wdGlv
bmFsPEZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPikgY29uc3Q7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91bGRCbG9ja1RoaXJkUGFydHlDb29raWVzKGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91
bGRCbG9ja1RoaXJkUGFydHlDb29raWVzQnV0S2VlcEZpcnN0UGFydHlDb29raWVzRm9yKGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRQ
cmV2YWxlbnREb21haW5zVG9CbG9ja0FuZERlbGV0ZUNvb2tpZXNGb3IoY29uc3QgVmVjdG9yPFJl
Z2lzdHJhYmxlRG9tYWluPiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UHJldmFsZW50
RG9tYWluc1RvQmxvY2tCdXRLZWVwQ29va2llc0Zvcihjb25zdCBWZWN0b3I8UmVnaXN0cmFibGVE
b21haW4+Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBZ2VDYXBGb3JDbGllbnRTaWRl
Q29va2llcyhPcHRpb25hbDxTZWNvbmRzPik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1v
dmVQcmV2YWxlbnREb21haW5zKGNvbnN0IFZlY3RvcjxSZWdpc3RyYWJsZURvbWFpbj4mIGRvbWFp
bnMpOwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBm
aXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgUGFnZUlkZW50aWZp
ZXIpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzU3RvcmFnZUFjY2Vzcyhjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBQYWdlSWRl
bnRpZmllcikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFN0cmluZz4gZ2V0QWxs
U3RvcmFnZUFjY2Vzc0VudHJpZXMoKSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdy
YW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4s
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDx1aW50
NjRfdD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlm
aWVyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBQYWdlSWRlbnRp
Zmllcik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJh
bWUoRnJhbWVJZGVudGlmaWVyLCBQYWdlSWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBjbGVhclBhZ2VTcGVjaWZpY0RhdGFGb3JSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKFBhZ2VJ
ZGVudGlmaWVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUFsbFN0b3JhZ2VBY2Nl
c3MoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFs
ZW50UmVzb3VyY2VzKFNlY29uZHMpOwpAQCAtMTg1LDcgKzE4Niw3IEBAIHByaXZhdGU6CiAgICAg
T3B0aW9uYWw8U2Vjb25kcz4gY2xpZW50U2lkZUNvb2tpZUNhcChjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgZmlyc3RQYXJ0eSwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+KSBjb25zdDsKICAgICBI
YXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiBtX3JlZ2lzdHJhYmxlRG9tYWluc1RvQmxvY2tBbmRE
ZWxldGVDb29raWVzRm9yOwogICAgIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+IG1fcmVnaXN0
cmFibGVEb21haW5zVG9CbG9ja0J1dEtlZXBDb29raWVzRm9yOwotICAgIEhhc2hNYXA8UGFnZUlk
ZW50aWZpZXIsIEhhc2hNYXA8dWludDY0X3QsIFJlZ2lzdHJhYmxlRG9tYWluLCBEZWZhdWx0SGFz
aDx1aW50NjRfdD46Okhhc2gsIFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8dWlu
dDY0X3Q+Pj4gbV9mcmFtZXNHcmFudGVkU3RvcmFnZUFjY2VzczsKKyAgICBIYXNoTWFwPFBhZ2VJ
ZGVudGlmaWVyLCBIYXNoTWFwPEZyYW1lSWRlbnRpZmllciwgUmVnaXN0cmFibGVEb21haW4+PiBt
X2ZyYW1lc0dyYW50ZWRTdG9yYWdlQWNjZXNzOwogICAgIEhhc2hNYXA8UGFnZUlkZW50aWZpZXIs
IEhhc2hNYXA8UmVnaXN0cmFibGVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluPj4gbV9wYWdlc0dy
YW50ZWRTdG9yYWdlQWNjZXNzOwogICAgIE9wdGlvbmFsPFNlY29uZHM+IG1fY2FjaGVNYXhBZ2VD
YXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMgeyB9OwogICAgIE9wdGlvbmFsPFNlY29uZHM+IG1fYWdl
Q2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMgeyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGUuY3BwCmluZGV4IGRiYTBmMTNmNDc5
YTMzMjZiZTg1ZDY2OTM5ZTUwYzYzYzEzYjYxYTAuLmIwM2YyZDIxODg2NTE0YzI4ZWIwOTM3NDgx
YmMwYTkzNTNkMGNkNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvU29ja2V0U3RyZWFtSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1NvY2tldFN0cmVhbUhhbmRsZS5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgdm9pZCBTb2Nr
ZXRTdHJlYW1IYW5kbGU6OnNlbmRIYW5kc2hha2UoQ1N0cmluZyYmIGhhbmRzaGFrZSwgT3B0aW9u
YWw8Q29va2llUmVxdWUKIHsKICAgICBpZiAobV9zdGF0ZSA9PSBDb25uZWN0aW5nIHx8IG1fc3Rh
dGUgPT0gQ2xvc2luZykKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlLCBm
YWxzZSk7Ci0gICAgcGxhdGZvcm1TZW5kSGFuZHNoYWtlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
dWludDhfdCo+KGhhbmRzaGFrZS5kYXRhKCkpLCBoYW5kc2hha2UubGVuZ3RoKCksIGhlYWRlckZp
ZWxkUHJveHksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBwbGF0Zm9ybVNlbmRI
YW5kc2hha2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oaGFuZHNoYWtlLmRhdGEo
KSksIGhhbmRzaGFrZS5sZW5ndGgoKSwgV1RGTW92ZShoZWFkZXJGaWVsZFByb3h5KSwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB2b2lkIFNvY2tldFN0cmVhbUhhbmRsZTo6Y2xv
c2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9O
ZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KaW5kZXggODRiNzNiODM0
NGIwY2FiNWE5MDQ4YjQ4NWVmYjE3NmQ1ZDM0MDU4MS4uODVmNGM2MmUzYmY3NGMwZGU1NDM1ZjJm
MDBiZTk4NGQ4MmVhZWY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1t
CkBAIC0yOTQsNyArMjk0LDcgQEAgc3RhdGljIFJldGFpblB0cjxOU0FycmF5PiBmaWx0ZXJDb29r
aWVzKE5TQXJyYXkgKnVuZmlsdGVyZWRDb29raWVzLCBPcHRpb25hbDxTZWMKICAgICByZXR1cm4g
ZmlsdGVyZWRDb29raWVzOwogfQogCi1zdGF0aWMgTlNBcnJheSAqY29va2llc0ZvclVSTChjb25z
dCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwg
Y29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkKK3N0
YXRpYyBOU0FycmF5ICpjb29raWVzRm9yVVJMKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYg
c2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVT
aXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJ
RCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkKIHsKICNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlmIChzZXNzaW9uLnNob3VsZEJsb2NrQ29va2llcyhm
aXJzdFBhcnR5LCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCkpCkBAIC0zMDcsNyArMzA3LDcgQEAgc3Rh
dGljIE5TQXJyYXkgKmNvb2tpZXNGb3JVUkwoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBz
ZXNzaW9uLCBjb25zdCBVUkwmIGYKIH0KIAogZW51bSBJbmNsdWRlSFRUUE9ubHlPck5vdCB7IERv
Tm90SW5jbHVkZUhUVFBPbmx5LCBJbmNsdWRlSFRUUE9ubHkgfTsKLXN0YXRpYyBzdGQ6OnBhaXI8
U3RyaW5nLCBib29sPiBjb29raWVzRm9yU2Vzc2lvbihjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Np
b24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBz
YW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZUhUVFBPbmx5T3JOb3QgaW5j
bHVkZUhUVFBPbmx5LCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykK
K3N0YXRpYyBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yU2Vzc2lvbihjb25zdCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxG
cmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQs
IEluY2x1ZGVIVFRQT25seU9yTm90IGluY2x1ZGVIVFRQT25seSwgSW5jbHVkZVNlY3VyZUNvb2tp
ZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpCiB7CiAgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxl
Z2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNjZXNzUmF3Q29va2llcykpOwogCkBAIC0zNjMsMTIg
KzM2MywxMiBAQCBzdGF0aWMgdm9pZCBkZWxldGVBbGxIVFRQQ29va2llcyhDRkhUVFBDb29raWVT
dG9yYWdlUmVmIGNvb2tpZVN0b3JhZ2UpCiAgICAgQ0ZIVFRQQ29va2llU3RvcmFnZURlbGV0ZUFs
bENvb2tpZXMoY29va2llU3RvcmFnZSk7CiB9CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9u
YWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIElu
Y2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAorc3RkOjpwYWly
PFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVzRm9yRE9NKGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0
IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVD
b29raWVzKSBjb25zdAogewogICAgIHJldHVybiBjb29raWVzRm9yU2Vzc2lvbigqdGhpcywgZmly
c3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgRG9Ob3RJbmNsdWRl
SFRUUE9ubHksIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKIH0KIAotc3RkOjpwYWlyPFN0cmluZywg
Ym9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1
ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZv
LCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVD
b29raWVzKSBjb25zdAorc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFn
ZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKIHsK
ICAgICByZXR1cm4gY29va2llc0ZvclNlc3Npb24oKnRoaXMsIGZpcnN0UGFydHksIHNhbWVTaXRl
SW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIEluY2x1ZGVIVFRQT25seSwgaW5jbHVkZVNlY3Vy
ZUNvb2tpZXMpOwogfQpAQCAtMzc4LDcgKzM3OCw3IEBAIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29u
CiAgICAgcmV0dXJuIGNvb2tpZXNGb3JTZXNzaW9uKCp0aGlzLCBoZWFkZXJGaWVsZFByb3h5LmZp
cnN0UGFydHksIGhlYWRlckZpZWxkUHJveHkuc2FtZVNpdGVJbmZvLCBoZWFkZXJGaWVsZFByb3h5
LnVybCwgaGVhZGVyRmllbGRQcm94eS5mcmFtZUlELCBoZWFkZXJGaWVsZFByb3h5LnBhZ2VJRCwg
SW5jbHVkZUhUVFBPbmx5LCBoZWFkZXJGaWVsZFByb3h5LmluY2x1ZGVTZWN1cmVDb29raWVzKTsK
IH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0
IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHIpIGNvbnN0Cit2b2lkIE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlv
bmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBh
Z2VJRCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHIpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGhhc1By
b2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNjZXNzUmF3Q29va2llcykpOwog
CkBAIC00NDMsNyArNDQzLDcgQEAgYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNF
bmFibGVkKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpnZXRSYXdDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2Ft
ZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgVmVjdG9yPENvb2tp
ZT4mIHJhd0Nvb2tpZXMpIGNvbnN0Citib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3
Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNp
dGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlE
LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBWZWN0b3I8Q29va2llPiYgcmF3Q29v
a2llcykgY29uc3QKIHsKICAgICByYXdDb29raWVzLmNsZWFyKCk7CiAgICAgQkVHSU5fQkxPQ0tf
T0JKQ19FWENFUFRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL0Nvb2tpZUphckN1cmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL0Nvb2tpZUphckN1cmwuY3BwCmluZGV4IDM5NGMzNDYyNjY0OWQ1ZGVhODY5ZTA5
NWJlMGQ5ZmFlN2IxYTVlY2IuLjcxOThhZGYwYjQyZmVkMGNiNDE4MzQwYmUxNzljM2Y5N2M5OTUx
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29r
aWVKYXJDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwv
Q29va2llSmFyQ3VybC5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgc3RhdGljIFN0cmluZyBjb29raWVz
Rm9yU2Vzc2lvbihjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVS
TCYKICAgICByZXR1cm4gY29va2llcy50b1N0cmluZygpOwogfQogCi12b2lkIENvb2tpZUphckN1
cmw6OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lv
biwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwm
IHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVy
PiwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QKK3ZvaWQgQ29va2llSmFyQ3VybDo6c2V0Q29v
a2llc0Zyb21ET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBV
UkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRp
b25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QKIHsKICAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7
CiAKQEAgLTgyLDcgKzgyLDcgQEAgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gQ29va2llSmFyQ3Vy
bDo6Y29va2llc0ZvckRPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24KICAgICByZXR1cm4g
eyBjb29raWVzRm9yU2Vzc2lvbihzZXNzaW9uLCBmaXJzdFBhcnR5LCB1cmwsIGZhbHNlKSwgZmFs
c2UgfTsKIH0KIAotc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gQ29va2llSmFyQ3VybDo6Y29va2ll
UmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNz
aW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVS
TCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZp
ZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CitzdGQ6OnBhaXI8U3RyaW5n
LCBib29sPiBDb29raWVKYXJDdXJsOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25z
dCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwg
Y29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRp
Zmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNl
Y3VyZUNvb2tpZXMpIGNvbnN0CiB7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwogICAgIFVO
VVNFRF9QQVJBTShwYWdlSUQpOwpAQCAtMTEyLDcgKzExMiw3IEBAIGJvb2wgQ29va2llSmFyQ3Vy
bDo6Y29va2llc0VuYWJsZWQoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uKSBj
b25zdAogICAgIHJldHVybiBzZXNzaW9uLmNvb2tpZURhdGFiYXNlKCkuaXNFbmFibGVkKCk7CiB9
CiAKLWJvb2wgQ29va2llSmFyQ3VybDo6Z2V0UmF3Q29va2llcyhjb25zdCBOZXR3b3JrU3RvcmFn
ZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJ
bmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25h
bDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBWZWN0b3I8Q29va2llPiYgcmF3Q29va2llcykgY29u
c3QKK2Jvb2wgQ29va2llSmFyQ3VybDo6Z2V0UmF3Q29va2llcyhjb25zdCBOZXR3b3JrU3RvcmFn
ZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJ
bmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgVmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tp
ZXMpIGNvbnN0CiB7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwogICAgIFVOVVNFRF9QQVJB
TShwYWdlSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL0Nvb2tpZUphckN1cmwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9Db29raWVKYXJDdXJsLmgKaW5kZXggMjRhMDVhMjI3YWUwNmFiYTExNDMxNTJhOGZhYzg0ODI5
ZTAxZjQxMC4uZTYyYmM0YTA3ZTgyZTNlY2Y3Y2YyZjY4YTQxZTRhMmFkYTcwZmI5MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3Vy
bC5oCkBAIC0yNCw2ICsyNCw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiRnJhbWVJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CkBAIC00MiwxNSArNDMsMTUgQEAg
ZW51bSBjbGFzcyBDb29raWVBY2NlcHRQb2xpY3k7CiAKIGNsYXNzIENvb2tpZUphckN1cmwgewog
cHVibGljOgotICAgIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZXNGb3JET00oY29uc3Qg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1l
U2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7Ci0gICAgdm9p
ZCBzZXRDb29raWVzRnJvbURPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBV
UkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIGNvbnN0IFN0cmlu
ZyYpIGNvbnN0OworICAgIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZXNGb3JET00oY29u
c3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBT
YW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1l
SUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0
OworICAgIHZvaWQgc2V0Q29va2llc0Zyb21ET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwm
LCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlm
aWVyPiwgY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdm9pZCBzZXRDb29raWVzRnJvbUhUVFBS
ZXNwb25zZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAgIHZvaWQgc2V0Q29va2ll
QWNjZXB0UG9saWN5KGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIENvb2tpZUFjY2VwdFBv
bGljeSkgY29uc3Q7CiAgICAgQ29va2llQWNjZXB0UG9saWN5IGNvb2tpZUFjY2VwdFBvbGljeShj
b25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mKSBjb25zdDsKICAgICBib29sIGNvb2tpZXNFbmFi
bGVkKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYpIGNvbnN0OwotICAgIHN0ZDo6cGFpcjxT
dHJpbmcsIGJvb2w+IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZv
JiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0OworICAgIHN0ZDo6cGFpcjxT
dHJpbmcsIGJvb2w+IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZv
JiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25h
bDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKICAgICBzdGQ6
OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94
eSYpIGNvbnN0OwotICAgIGJvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBOZXR3b3JrU3RvcmFnZVNl
c3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0
IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmll
cj4sIFZlY3RvcjxDb29raWU+JikgY29uc3Q7CisgICAgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2Ft
ZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlE
LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIFZlY3RvcjxDb29raWU+JikgY29uc3Q7CiAgICAg
dm9pZCBkZWxldGVDb29raWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJM
JiwgY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdm9pZCBnZXRIb3N0bmFtZXNXaXRoQ29va2ll
cyhjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBIYXNoU2V0PFN0cmluZz4mIGhvc3RuYW1l
cykgY29uc3Q7CiAgICAgdm9pZCBkZWxldGVDb29raWVzRm9ySG9zdG5hbWVzKGNvbnN0IE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjb29raWVIb3N0TmFtZXMp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCmluZGV4IGU0YzhiMGYx
M2U2ZDA4OWE1ODkyYWE3YWUwYTliODIxNTg1YmI5YTQuLmU5NjFjMjg4M2I4NjMwMTA1ZGE3ZDc4
MDdmM2ZiYmUyNjFhMjA2MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAK
QEAgLTI2MCw3ICsyNjAsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaHR0cE9ubHlDb29raWVFeGlz
dHMoY29uc3QgR1NMaXN0KiBjb29raWVzLCBjb25zdCBnY2hhciogbmFtZQogICAgIHJldHVybiBm
YWxzZTsKIH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9N
KGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1
cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
cGFnZUlELCBjb25zdCBTdHJpbmcmIHZhbHVlKSBjb25zdAordm9pZCBOZXR3b3JrU3RvcmFnZVNl
c3Npb246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2Ft
ZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJh
bWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiB2YWx1
ZSkgY29uc3QKIHsKICAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CiAgICAgVU5VU0VEX1BBUkFN
KHBhZ2VJRCk7CkBAIC00MTMsNyArNDEzLDcgQEAgVmVjdG9yPENvb2tpZT4gTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpnZXRDb29raWVzKGNvbnN0IFVSTCYgdXJsKQogICAgIHJldHVybiBjb29raWVz
OwogfQogCi1ib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyhjb25zdCBV
UkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRp
b25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwg
VmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0Citib29sIE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6Z2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRl
SW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQs
IE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFZlY3RvcjxDb29raWU+JiByYXdDb29r
aWVzKSBjb25zdAogewogICAgIFVOVVNFRF9QQVJBTShmaXJzdFBhcnR5KTsKICAgICBVTlVTRURf
UEFSQU0oZnJhbWVJRCk7CkBAIC00ODMsNyArNDgzLDcgQEAgc3RhdGljIHN0ZDo6cGFpcjxTdHJp
bmcsIGJvb2w+IGNvb2tpZXNGb3JTZXNzaW9uKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYg
c2UKICAgICByZXR1cm4geyBTdHJpbmc6OmZyb21VVEY4KGNvb2tpZUhlYWRlci5nZXQoKSksIGRp
ZEFjY2Vzc1NlY3VyZUNvb2tpZXMgfTsKIH0KIAotc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVzRm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwg
Y29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBm
cmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29v
a2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKK3N0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlk
ZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1
ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAogewogICAgIFVOVVNF
RF9QQVJBTShmaXJzdFBhcnR5KTsKICAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CkBAIC00OTEs
NyArNDkxLDcgQEAgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Ojpjb29raWVzRm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXIKICAgICByZXR1cm4gY29va2llc0Zv
clNlc3Npb24oKnRoaXMsIHVybCwgZmFsc2UsIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKIH0KIAot
c3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1
ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRl
SW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNl
Y3VyZUNvb2tpZXMpIGNvbnN0CitzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBOZXR3b3JrU3RvcmFn
ZVNlc3Npb246OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1l
SWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5j
bHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CiB7CiAgICAgVU5V
U0VEX1BBUkFNKGZpcnN0UGFydHkpOwogICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCmlu
ZGV4IDY4N2QwYjA0NjFhZmRlN2MwNzI5OGM2YzllZmZkMjYxOTRiZjQ3YWMuLjc2M2I0NzU5ZTQz
M2Y4NzEzMGIzOTQwMDYyMzQwYjI2ODQ4ZWE4YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcApAQCAtNzE2LDcgKzcxNiw3IEBA
IHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnN5bmNTdG9yYWdlSW1t
ZWRpYXRlbHkoKQogICAgIG1fZGF0YWJhc2UucnVuVmFjdXVtQ29tbWFuZCgpOwogfQogCi12b2lk
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNv
bnN0IFN1YkZyYW1lRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgVG9wRnJhbWVEb21haW4m
IHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDxGcmFtZUlEPiBmcmFtZUlELCBQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNTdG9yYWdl
QWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgVG9wRnJh
bWVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1l
SUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsK
IApAQCAtNzQzLDcgKzc0Myw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mCiAgICAgfSk7CiB9
CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlcXVlc3RTdG9y
YWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWlu
JiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSUQgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVx
dWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJh
bWVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3Rh
dHVzKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFp
bigpKTsKIApAQCAtODA0LDcgKzgwNCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoRG9tYWluCiAgICAg
Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoV1RGTW92ZShkb21haW5Jbk5lZWRPZlN0b3JhZ2VB
Y2Nlc3MpLCBXVEZNb3ZlKG9wZW5lckRvbWFpbiksIFdURjo6bnVsbG9wdCwgb3BlbmVyUGFnZUlE
LCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd246Ok5vLCBbXShTdG9yYWdlQWNjZXNzV2FzR3Jh
bnRlZCkgeyB9KTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRv
cEZyYW1lRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3du
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BG
cmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFn
ZUlkZW50aWZpZXIgcGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2Fz
U2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwog
CkBAIC04MTgsNyArODE4LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3UKICAgICBncmFudFN0
b3JhZ2VBY2Nlc3NJbnRlcm5hbChXVEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0b3BG
cmFtZURvbWFpbiksIGZyYW1lSUQsIHBhZ2VJRCwgcHJvbXB0V2FzU2hvd24sIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoU3ViRnJhbWVEb21haW4mJiBzdWJG
cmFtZURvbWFpbiwgVG9wRnJhbWVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJh
bWVJRD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0
V2FzU2hvd24gcHJvbXB0V2FzU2hvd25Ob3dPckVhcmxpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50
ZXJuYWwoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21haW4mJiB0
b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBQYWdlSWRl
bnRpZmllciBwYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93
bk5vd09yRWFybGllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3Jh
bnRlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01h
aW4oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlLmgKaW5kZXggM2M4ZDJiMWYxNjU0OTNjOTNjYTVkODJiYzAyNzJmOTEzYjdhMDdmYS4u
ZDI1NmJlMjFjZmY3YjFmNzA1NTY0MDMxYTU3NWY1ZTVkMjMzMGVlNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmgKQEAgLTkxLDkgKzkx
LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBjYWxjdWxhdGVBbmRTdWJtaXRUZWxlbWV0cnkoKSBj
b25zdCBvdmVycmlkZTsKIAotICAgIHZvaWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFt
ZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8RnJhbWVJRD4sIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBvdmVy
cmlkZTsKLSAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRv
cEZyYW1lRG9tYWluJiYsIEZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmKSBvdmVycmlkZTsKLSAgICB2
b2lkIGdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYm
LCBGcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vz
c1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VB
Y2Nlc3NXYXNHcmFudGVkKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNz
KGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0U3Rv
cmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGdyYW50
U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9y
YWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6
U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgbG9nRnJh
bWVOYXZpZ2F0aW9uKGNvbnN0IE5hdmlnYXRlZFRvRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21h
aW4mLCBjb25zdCBOYXZpZ2F0ZWRGcm9tRG9tYWluJiwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlz
TWFpbkZyYW1lKSBvdmVycmlkZTsKICAgICB2b2lkIGxvZ1VzZXJJbnRlcmFjdGlvbihjb25zdCBU
b3BGcmFtZURvbWFpbiYpIG92ZXJyaWRlOwpAQCAtMTUzLDcgKzE1Myw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIFJl
c291cmNlTG9hZFByZXZhbGVuY2UpOwogICAgIHVuc2lnbmVkIHJlY3Vyc2l2ZWx5RmluZE5vblBy
ZXZhbGVudERvbWFpbnNUaGF0UmVkaXJlY3RlZFRvVGhpc0RvbWFpbih1bnNpZ25lZCBwcmltYXJ5
RG9tYWluSUQsIFN0ZFNldDx1bnNpZ25lZD4mIG5vblByZXZhbGVudFJlZGlyZWN0aW9uU291cmNl
cywgdW5zaWduZWQgbnVtYmVyT2ZSZWN1cnNpdmVDYWxscyk7CiAgICAgdm9pZCBzZXREb21haW5z
QXNQcmV2YWxlbnQoU3RkU2V0PHVuc2lnbmVkPiYmKTsKLSAgICB2b2lkIGdyYW50U3RvcmFnZUFj
Y2Vzc0ludGVybmFsKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIE9wdGlvbmFs
PEZyYW1lSUQ+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vz
c1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VB
Y2Nlc3NXYXNHcmFudGVkKT4mJik7CisgICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5h
bChTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBPcHRpb25hbDxXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFn
ZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0
b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJik7CiAgICAgdm9pZCBtYXJrQXNQcmV2YWxlbnRJZkhh
c1JlZGlyZWN0ZWRUb1ByZXZhbGVudCgpOwogICAgIFZlY3RvcjxSZWdpc3RyYWJsZURvbWFpbj4g
ZW5zdXJlUHJldmFsZW50UmVzb3VyY2VzRm9yRGVidWdNb2RlKCkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCByZW1vdmVEYXRhUmVjb3JkcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcAppbmRleCBl
MjM5ZmNjODAzZThkNzQ0NTYxMjE4ZDY3MjE3ZjcxZWQ0MWIxODdmLi5mNmVlOTJmOWI2OGQzMmYw
N2U1MjE1ZDMwMzU0OTk1MTQ0ZjdhODNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcApAQCAtMjExLDcgKzIxMSw3IEBAIHZvaWQgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpzeW5jU3RvcmFnZUltbWVkaWF0ZWx5KCkK
ICAgICAgICAgbV9wZXJzaXN0ZW50U3RvcmFnZS0+c2NoZWR1bGVPcldyaXRlTWVtb3J5U3RvcmUo
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1BlcnNpc3RlbnRTdG9yYWdlOjpGb3JjZUltbWVkaWF0ZVdy
aXRlOjpZZXMpOwogfQogCi12b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6
aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNv
bnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJRD4gZnJh
bWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5
U3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mIHN1YkZyYW1lRG9t
YWluLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPEZyYW1l
SWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVu
TG9vcDo6aXNNYWluKCkpOwogCkBAIC0yMzUsNyArMjM1LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzTWVtb3J5U3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21h
aW4mIHMKICAgICB9KTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3Rv
cmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4s
IFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSUQgZnJhbWVJRCwgUGFnZUlk
ZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0
dXMpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVt
b3J5U3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVE
b21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3Rv
cmFnZUFjY2Vzc1N0YXR1cyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFS
dW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTI4OCw3ICsyODgsNyBAQCB2b2lkIFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihE
b21haW5JbgogICAgIGdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFdURk1vdmUoZG9tYWluSW5O
ZWVkT2ZTdG9yYWdlQWNjZXNzKSwgV1RGTW92ZShvcGVuZXJEb21haW4pLCBXVEY6Om51bGxvcHQs
IG9wZW5lclBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpObywgW10oU3RvcmFn
ZUFjY2Vzc1dhc0dyYW50ZWQpIHsgfSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c01lbW9yeVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFt
ZURvbWFpbiwgVG9wRnJhbWVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJ
RCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJv
bXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50
ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVt
b3J5U3RvcmU6OmdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9t
YWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24g
cHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dy
YW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNN
YWluKCkpOwogCkBAIC0zMDAsNyArMzAwLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TWVtb3J5U3RvcmU6OmdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1YkYKICAg
ICBncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChXVEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RG
TW92ZSh0b3BGcmFtZURvbWFpbiksIGZyYW1lSUQsIHBhZ2VJRCwgcHJvbXB0V2FzU2hvd24sIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzTWVtb3J5U3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFN1YkZyYW1lRG9tYWlu
JiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIE9wdGlv
bmFsPEZyYW1lSUQ+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vz
c1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duTm93T3JFYXJsaWVyLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nl
c3NJbnRlcm5hbChTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFp
biYmIHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdh
c1Nob3duTm93T3JFYXJsaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NX
YXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6
OmlzTWFpbigpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1v
cnlTdG9yZS5oCmluZGV4IDVhZjY3YTE2ZjA2MTZkYTlmYTBjMDkzMzE1YWNiYzM1ZGFhNWIxMTku
LmE0YTdiODhlMmRmYjAwMzQ2YmRjMjcxZmViN2U1YjI0YmE4MjA5NjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzTWVtb3J5U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgKQEAgLTk3LDkgKzk3LDkg
QEAgcHVibGljOgogCiAgICAgdm9pZCBjYWxjdWxhdGVBbmRTdWJtaXRUZWxlbWV0cnkoKSBjb25z
dCBvdmVycmlkZTsKIAotICAgIHZvaWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURv
bWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8RnJhbWVJRD4sIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBvdmVycmlk
ZTsKLSAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZy
YW1lRG9tYWluJiYsIEZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmKSBvdmVycmlkZTsKLSAgICB2b2lk
IGdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBG
cmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1By
b21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nl
c3NXYXNHcmFudGVkKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNv
bnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFn
ZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGdyYW50U3Rv
cmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdl
QWNjZXNzUHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3Rv
cmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgbG9nRnJhbWVO
YXZpZ2F0aW9uKGNvbnN0IE5hdmlnYXRlZFRvRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4m
LCBjb25zdCBOYXZpZ2F0ZWRGcm9tRG9tYWluJiwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlzTWFp
bkZyYW1lKSBvdmVycmlkZTsKICAgICB2b2lkIGxvZ1VzZXJJbnRlcmFjdGlvbihjb25zdCBUb3BG
cmFtZURvbWFpbiYpIG92ZXJyaWRlOwpAQCAtMTIzLDcgKzEyMyw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBpbmNyZW1lbnRSZWNvcmRzRGVsZXRlZENvdW50Rm9yRG9tYWlucyhIYXNoU2V0PFJlZ2lz
dHJhYmxlRG9tYWluPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFByZXZhbGVudFJlc291cmNl
KFJlc291cmNlTG9hZFN0YXRpc3RpY3MmLCBSZXNvdXJjZUxvYWRQcmV2YWxlbmNlKTsKICAgICB1
bnNpZ25lZCByZWN1cnNpdmVseUdldEFsbERvbWFpbnNUaGF0SGF2ZVJlZGlyZWN0ZWRUb1RoaXNE
b21haW4oY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYsIEhhc2hTZXQ8UmVkaXJlY3RlZFRv
RG9tYWluPiYsIHVuc2lnbmVkIG51bWJlck9mUmVjdXJzaXZlQ2FsbHMpIGNvbnN0OwotICAgIHZv
aWQgZ3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVE
b21haW4mJiwgT3B0aW9uYWw8RnJhbWVJRD4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJD
b3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
V2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKTsKKyAgICB2b2lkIGdyYW50U3Rv
cmFnZUFjY2Vzc0ludGVybmFsKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIE9w
dGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
LCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKTsKICAgICB2b2lkIG1h
cmtBc1ByZXZhbGVudElmSGFzUmVkaXJlY3RlZFRvUHJldmFsZW50KFJlc291cmNlTG9hZFN0YXRp
c3RpY3MmKTsKICAgICBib29sIGlzUHJldmFsZW50RHVlVG9EZWJ1Z01vZGUoUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcyYpOwogICAgIFZlY3RvcjxSZWdpc3RyYWJsZURvbWFpbj4gZW5zdXJlUHJldmFs
ZW50UmVzb3VyY2VzRm9yRGVidWdNb2RlKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmgKaW5kZXggNzBhY2JkY2U5NmY2NWNmODNhOTQ2MzdkM2ZiOGQx
ZTliMjY1NTNkZC4uMjA5NDVkYTA5OGE2ODBhMGE0ZTk5NzdmZDc1MjQ3MGY2NzhkOTk1ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaApAQCAtMjksNiArMjksNyBA
QAogCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkU3RhdGlzdGljc0NsYXNzaWZpZXIuaCIKICNpbmNs
dWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgpAQCAtOTAs
NyArOTEsNiBAQCBwdWJsaWM6CiAgICAgdXNpbmcgTmF2aWdhdGVkVG9Eb21haW4gPSBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbjsKICAgICB1c2luZyBEb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nl
c3MgPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKICAgICB1c2luZyBPcGVuZXJEb21haW4g
PSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKLSAgICB1c2luZyBGcmFtZUlEID0gdWludDY0
X3Q7CiAgICAgCiAgICAgdmlydHVhbCB+UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKCk7CiAK
QEAgLTE1OSw5ICsxNTksOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0RlYnVnTW9kZUVuYWJsZWQo
KSBjb25zdCB7IHJldHVybiBtX2RlYnVnTW9kZUVuYWJsZWQ7IH07CiAgICAgdm9pZCBzZXRQcmV2
YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpOwogCi0g
ICAgdmlydHVhbCB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBj
b25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPEZyYW1lSUQ+LCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURv
bWFpbiYmLCBGcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBn
cmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgRnJh
bWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9t
cHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNz
V2FzR3JhbnRlZCk+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaGFzU3RvcmFnZUFjY2Vzcyhj
b25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8V2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN0
b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBn
cmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6
U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNv
cmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lk
IGxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBOYXZpZ2F0ZWRUb0RvbWFpbiYsIGNvbnN0IFRvcEZy
YW1lRG9tYWluJiwgY29uc3QgTmF2aWdhdGVkRnJvbURvbWFpbiYsIGJvb2wgaXNSZWRpcmVjdCwg
Ym9vbCBpc01haW5GcmFtZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBsb2dVc2VySW50ZXJhY3Rp
b24oY29uc3QgVG9wRnJhbWVEb21haW4mKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCmluZGV4IDhjMjExNTdjYzdmNjkxN2JhOTcwODllMzZm
MTY5ZDg2Y2Y4YjhhYjAuLjY3NWYwZGFmNTljZTliNGY4ODdiNzk0YmM4OTJlYzQ0YTgzNzU2ZjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCkBA
IC0yODAsNyArMjgwLDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJl
c291cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVkKFZlY3RvcjxXZWJDb3IKICAgICB9KTsKIH0KIAot
dm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBQYWdlSWRl
bnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFn
ZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVy
PiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKHN1YkZyYW1lRG9tYWlu
ICE9IHRvcEZyYW1lRG9tYWluKTsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAt
MzAxLDcgKzMwMSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpoYXNT
dG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzCiAgICAgfSk7CiB9CiAKLWJv
b2wgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpoYXNTdG9yYWdlQWNjZXNzRm9yRnJh
bWUoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50
aWZpZXIgcGFnZUlEKQorYm9vbCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0
b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21h
aW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKQogewogICAgIEFTU0VSVChSdW5M
b29wOjppc01haW4oKSk7CiAKQEAgLTMxNCw3ICszMTQsNyBAQCBib29sIFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNvbnN0IFJlZ2lzdHJh
YmxlRAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OmNhbGxIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZp
cnN0UGFydHlEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGhhc0FjY2Vzcyk+JiYgY2FsbGJhY2spCit2b2lk
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEhhc1N0b3JhZ2VBY2Nlc3NGb3JG
cmFtZUhhbmRsZXIoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
IGhhc0FjY2Vzcyk+JiYgY2FsbGJhY2spCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKIApAQCAtMzI4LDcgKzMyOCw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpjYWxsSGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcihjb25zdCBSCiAgICAgY2Fs
bGJhY2soZmFsc2UpOwogfQogCi12b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6
cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9t
YWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZy
YW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9y
YWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXF1
ZXN0U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4s
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChT
dG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCkBA
IC0zOTEsNyArMzkxLDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJl
cXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoUmVnaXN0cmFibGUKICAgICB9KTsKIH0KIAot
dm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyhj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIg
cGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24sIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQ
cm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9t
YWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBTdG9y
YWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93
bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKICAgICBwb3N0VGFzayhbdGhpcywgc3ViRnJhbWVEb21haW4gPSBzdWJGcmFtZURvbWFpbi5p
c29sYXRlZENvcHkoKSwgdG9wRnJhbWVEb21haW4gPSB0b3BGcmFtZURvbWFpbi5pc29sYXRlZENv
cHkoKSwgZnJhbWVJRCwgcGFnZUlELCBwcm9tcHRXYXNTaG93biwgY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKQEAgLTQxMCw3ICs0MTAs
NyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNj
ZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJgogICAgIH0pOwogfQogCi1TdG9yYWdlQWNjZXNz
V2FzR3JhbnRlZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFj
Y2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKQorU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmly
c3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBQYWdlSWRl
bnRpZmllciBwYWdlSUQpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAt
NDI3LDcgKzQyNyw3IEBAIFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIFdlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0CiAgICAgcmV0dXJuIGlzU3Rv
cmFnZUdyYW50ZWQgPyBTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZDo6WWVzIDogU3RvcmFnZUFjY2Vz
c1dhc0dyYW50ZWQ6Ok5vOwogfQogCi12b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZTo6Y2FsbEdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIoY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4s
IE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxHcmFudFN0
b3JhZ2VBY2Nlc3NIYW5kbGVyKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFp
biwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDxGcmFt
ZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4IDAyM2RjMjc3Y2Y1MDU0N2JmOTY4OWVj
Y2E0ODQ0ZDBlNjRhYjEzMmYuLjlkYTFiNmJiNTIxNTIxYTAxMjQyMzRjZDQzMjcxMTU2ZjhjZTBi
NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKQEAg
LTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiU3RvcmFn
ZUFjY2Vzc1N0YXR1cy5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhVHlwZS5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRp
Zmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaXN0cmFibGVEb21haW4uaD4KICNpbmNsdWRl
IDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KQEAgLTg5LDcgKzkwLDYgQEAgcHVibGljOgogICAg
IHVzaW5nIE5hdmlnYXRlZFRvRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CiAg
ICAgdXNpbmcgRG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzID0gV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW47CiAgICAgdXNpbmcgT3BlbmVyRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW47Ci0gICAgdXNpbmcgRnJhbWVJRCA9IHVpbnQ2NF90OwogICAgIHVzaW5nIFN0b3JhZ2VB
Y2Nlc3NXYXNHcmFudGVkID0gV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQ7CiAgICAg
dXNpbmcgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duID0gV2ViQ29yZTo6U3RvcmFnZUFjY2Vz
c1Byb21wdFdhc1Nob3duOwogCkBAIC0xMTEsNyArMTExLDcgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0U2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoYm9vbCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFNob3VsZFN1Ym1pdFRl
bGVtZXRyeShib29sKTsKIAotICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZy
YW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBGcmFtZUlELCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hv
d24pPiYmKTsKKyAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFp
biYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJv
bXB0V2FzU2hvd24pPiYmKTsKIAogICAgIHZvaWQgYXBwbGljYXRpb25XaWxsVGVybWluYXRlKCk7
CiAKQEAgLTEyNSwxMSArMTI1LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyVXNlckludGVy
YWN0aW9uKGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKICAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9yUmVnaXN0cmFibGVEb21haW5zKE9wdGlv
blNldDxXZWJzaXRlRGF0YVR5cGU+LCBIYXNoTWFwPFJlZ2lzdHJhYmxlRG9tYWluLCBXZWJzaXRl
RGF0YVRvUmVtb3ZlPiYmLCBib29sIHNob3VsZE5vdGlmeVBhZ2UsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoY29uc3QgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4mKT4mJik7CiAgICAgdm9pZCBy
ZWdpc3RyYWJsZURvbWFpbnNXaXRoV2Vic2l0ZURhdGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlw
ZT4sIGJvb2wgc2hvdWxkTm90aWZ5UGFnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNoU2V0
PFJlZ2lzdHJhYmxlRG9tYWluPiYmKT4mJik7Ci0gICAgU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQg
Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVE
b21haW4mLCBPcHRpb25hbDxGcmFtZUlEPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOworICAg
IFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFt
ZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogICAgIHZvaWQgaGFzSGFkVXNl
ckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1l
RG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxGcmFtZUlEPiwgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotICAg
IGJvb2wgaGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29u
c3QgVG9wRnJhbWVEb21haW4mLCBGcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7Ci0g
ICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0
IFRvcEZyYW1lRG9tYWluJiwgRnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQ
cm9tcHRXYXNTaG93bik+JiYpOworICAgIHZvaWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJG
cmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpOworICAgIGJvb2wgaGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNvbnN0
IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlcXVlc3RTdG9y
YWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJv
bXB0V2FzU2hvd24pPiYmKTsKICAgICB2b2lkIHNldExhc3RTZWVuKGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiwgU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lk
IHNldFByZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFZlcnlQcmV2YWxlbnRSZXNvdXJjZShj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CkBA
IC0xNzIsMTEgKzE3MiwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJj
ZUZvckRlYnVnTW9kZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAKICAgICB2b2lkIGxvZ1Rlc3RpbmdFdmVudChjb25zdCBTdHJpbmcmKTsK
LSAgICB2b2lkIGNhbGxHcmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKGNvbnN0IFN1YkZyYW1lRG9t
YWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxGcmFtZUlEPiwgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dy
YW50ZWQpPiYmKTsKKyAgICB2b2lkIGNhbGxHcmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKGNvbnN0
IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpOwogICAgIHZvaWQgcmVtb3Zl
QWxsU3RvcmFnZUFjY2VzcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQg
Y2FsbFVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0ZvckhhbmRsZXIoY29uc3Qg
UmVnaXN0cmFibGVEb21haW5zVG9CbG9ja0Nvb2tpZXNGb3ImLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogICAgIHZvaWQgY2FsbFJlbW92ZURvbWFpbnNIYW5kbGVyKGNvbnN0IFZlY3Rv
cjxSZWdpc3RyYWJsZURvbWFpbj4mKTsKLSAgICB2b2lkIGNhbGxIYXNTdG9yYWdlQWNjZXNzRm9y
RnJhbWVIYW5kbGVyKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4m
LCBGcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJik7CisgICAgdm9pZCBjYWxsSGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxl
cihjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJik7CiAKICAgICB2b2lkIGRpZENyZWF0ZU5ldHdvcmtQcm9jZXNzKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQ
cmVmbGlnaHRDaGVja2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
T1JTUHJlZmxpZ2h0Q2hlY2tlci5oCmluZGV4IDc5MzAxYjIwY2NjYWZlYjUyMTBkNzVhZDU3NDFm
ZDJkOTJlOGFjYWQuLjJjYmY0YzZlZTJiM2NjNTBiNTExN2NmMjZmMzEzYjE1MmM3MzkwZmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGln
aHRDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09S
U1ByZWZsaWdodENoZWNrZXIuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgICAgIFN0
cmluZyB1c2VyQWdlbnQ7CiAgICAgICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRDsKICAgICAg
ICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEOwotICAgICAgICB1aW50NjRfdCBmcmFt
ZUlEOworICAgICAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRDsKICAgICAgICAg
V2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k7
CiAgICAgfTsKICAgICB1c2luZyBDb21wbGV0aW9uQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFdlYkNvcmU6OlJlc291cmNlRXJyb3ImJik+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcAppbmRleCAxZjEwMDRlMWI1YmNkMzlkOGIxMjJkZjhjNmRhNDhkMTM3YzRiZTYxLi4wYzJj
OTc2ZmVlMjBkMzI5YjQwN2UwNGRiOTYyZmI2Nzk5YWY0MzE4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcApAQCAtNTI1LDcgKzUyNSw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChQQUw6OlNlc3NpCiAg
ICAgbG9hZGVyLT5jb252ZXJ0VG9Eb3dubG9hZChkb3dubG9hZElELCByZXF1ZXN0LCByZXNwb25z
ZSk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNGb3JE
T00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWlu
dDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVT
ZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgc2VjdXJlQ29va2llc0FjY2Vzc2VkKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tp
ZXNGb3JET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFn
ZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcywgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChTdHJpbmcgY29va2llU3RyaW5nLCBib29sIHNlY3VyZUNvb2tpZXNBY2Nl
c3NlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXV0byYgbmV0d29ya1N0b3JhZ2VT
ZXNzaW9uID0gc3RvcmFnZVNlc3Npb24obmV0d29ya1Byb2Nlc3MoKSwgc2Vzc2lvbklEKTsKICAg
ICBhdXRvIHJlc3VsdCA9IG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jb29raWVzRm9yRE9NKGZpcnN0
UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIGluY2x1ZGVTZWN1cmVD
b29raWVzKTsKQEAgLTUzOCw3ICs1MzgsNyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpjb29raWVzRm9yRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29ucwogICAg
IGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0LmZpcnN0KSwgcmVzdWx0LnNlY29uZCk7
CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNldENvb2tpZXNGcm9t
RE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVp
bnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBjb25zdCBT
dHJpbmcmIGNvb2tpZVN0cmluZykKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OnNldENvb2tpZXNGcm9tRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1
cmwsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8
UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpCiB7CiAg
ICAgYXV0byYgbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gc3RvcmFnZVNlc3Npb24obmV0d29ya1By
b2Nlc3MoKSwgc2Vzc2lvbklEKTsKICAgICBuZXR3b3JrU3RvcmFnZVNlc3Npb24uc2V0Q29va2ll
c0Zyb21ET00oZmlyc3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwg
Y29va2llU3RyaW5nKTsKQEAgLTU1NSwxMyArNTU1LDEzIEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNFbmFibGVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Q29tCiAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RvcmFnZVNlc3Npb24obmV0d29ya1Byb2Nlc3Mo
KSwgc2Vzc2lvbklEKS5jb29raWVzRW5hYmxlZCgpKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5m
byYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1l
SUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVz
IGluY2x1ZGVTZWN1cmVDb29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZywgYm9v
bCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUlu
Zm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9w
dGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1
ZGVTZWN1cmVDb29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZywgYm9vbCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXV0byByZXN1bHQgPSBzdG9yYWdlU2Vzc2lvbihu
ZXR3b3JrUHJvY2VzcygpLCBzZXNzaW9uSUQpLmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVl
KGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIGluY2x1ZGVT
ZWN1cmVDb29raWVzKTsKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdC5maXJz
dCksIHJlc3VsdC5zZWNvbmQpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpnZXRSYXdDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1
cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
cGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6Z2V0UmF3Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJs
LCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlm
aWVyPiBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkNvb2tp
ZT4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgVmVjdG9yPFdlYkNvcmU6OkNvb2tp
ZT4gcmVzdWx0OwogICAgIHN0b3JhZ2VTZXNzaW9uKG5ldHdvcmtQcm9jZXNzKCksIHNlc3Npb25J
RCkuZ2V0UmF3Q29va2llcyhmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwg
cGFnZUlELCByZXN1bHQpOwpAQCAtNjcwLDcgKzY3MCw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmVuc3VyZUxlZ2FjeVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQogfQog
CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLXZvaWQgTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkK
K3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW92ZVN0b3JhZ2VBY2Nlc3NG
b3JGcmFtZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBQYWdlSWRlbnRpZmllciBwYWdlSUQpCiB7CiAgICAgaWYgKGF1dG8qIHN0b3JhZ2VTZXNzaW9u
ID0gbmV0d29ya1Byb2Nlc3MoKS5zdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQogICAgICAgICBz
dG9yYWdlU2Vzc2lvbi0+cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGZyYW1lSUQsIHBhZ2VJ
RCk7CkBAIC03MjgsNyArNzI4LDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0ZWQoVmVjdG9yPFdlYkNvcmUKICAgICAgICAg
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+cmVzb3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0ZWQoV1RG
TW92ZShzdGF0aXN0aWNzKSk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6Omhhc1N0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0
b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6aGFzU3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChhdXRvKiBuZXR3b3JrU2Vzc2lv
biA9IG5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewogICAgICAg
ICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IG5ldHdvcmtTZXNzaW9uLT5yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzKCkpIHsKQEAgLTc0MCw3ICs3NDAsNyBAQCB2b2lkIE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpoYXNTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgYwogICAgIGNvbXBsZXRpb25IYW5kbGVyKHRydWUpOwogfQogCi12b2lkIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlE
LCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6
U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgd2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vz
c1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1l
RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgd2FzR3JhbnRlZCwgV2ViQ29y
ZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBpZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSBuZXR3b3JrUHJv
Y2VzcygpLm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKICAgICAgICAgaWYgKGF1dG8qIHJl
c291cmNlTG9hZFN0YXRpc3RpY3MgPSBuZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlz
dGljcygpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggOTI4NjczM2M0YjdjNzUxMmMy
OWM1MzI0MzgyMWQwZWUxZWM3MTMwOS4uMjU1MDg0ZjkyMzFmZWE4MzA4MDA5OGQzNTkzMDU3YTFi
ZDkwN2M1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMzQsNiArMzQsNyBAQAogI2lu
Y2x1ZGUgIk5ldHdvcmtSVENQcm92aWRlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxv
YWRNYXAuaCIKICNpbmNsdWRlICJXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3Jr
TG9hZEluZm9ybWF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KQEAgLTE3NCwxMSArMTc1LDEx
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdGFydERvd25sb2FkKFBBTDo6U2Vzc2lvbklELCBEb3du
bG9hZElELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHN1
Z2dlc3RlZE5hbWUgPSB7IH0pOwogICAgIHZvaWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rv
d25sb2FkKFBBTDo6U2Vzc2lvbklELCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmll
ciwgRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogCi0gICAgdm9pZCBjb29raWVzRm9yRE9NKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRl
SW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgc2VjdXJlQ29v
a2llc0FjY2Vzc2VkKT4mJik7Ci0gICAgdm9pZCBzZXRDb29raWVzRnJvbURPTShQQUw6OlNlc3Np
b25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8m
LCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXI+LCBjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGNvb2tpZXNGb3JE
T00oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6
U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyPiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpJbmNsdWRl
U2VjdXJlQ29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcgY29va2llU3RyaW5n
LCBib29sIHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCk+JiYpOworICAgIHZvaWQgc2V0Q29va2llc0Zy
b21ET00oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29y
ZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyPiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBjb25zdCBTdHJpbmcm
KTsKICAgICB2b2lkIGNvb2tpZXNFbmFibGVkKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKTsKLSAgICB2b2lkIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZh
bHVlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6
OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBP
cHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVD
b29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wg
c2VjdXJlQ29va2llc0FjY2Vzc2VkKT4mJik7Ci0gICAgdm9pZCBnZXRSYXdDb29raWVzKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRl
SW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdl
YkNvcmU6OkNvb2tpZT4mJik+JiYpOworICAgIHZvaWQgY29va2llUmVxdWVzdEhlYWRlckZpZWxk
VmFsdWUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29y
ZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyPiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpJbmNs
dWRlU2VjdXJlQ29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcgY29va2llU3Ry
aW5nLCBib29sIHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCk+JiYpOworICAgIHZvaWQgZ2V0UmF3Q29v
a2llcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3Jl
OjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXI+LCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJik+JiYpOwogICAgIHZvaWQgZGVsZXRl
Q29va2llKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5h
bWUpOwogCiAgICAgdm9pZCByZWdpc3RlckZpbGVCbG9iVVJMKFBBTDo6U2Vzc2lvbklELCBjb25z
dCBVUkwmLCBjb25zdCBTdHJpbmcmIHBhdGgsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmLCBj
b25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKQEAgLTIxOCw3ICsyMTksNyBAQCBwcml2YXRlOgog
ICAgIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24mIGNhY2hlU3RvcmFnZUNvbm5lY3Rpb24o
KTsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgdm9pZCByZW1v
dmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlbW92ZVN0b3JhZ2VBY2Nlc3NG
b3JGcmFtZShQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcik7CiAgICAgdm9pZCBjbGVhclBhZ2VTcGVjaWZpY0RhdGFGb3JSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzKFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
cik7CiAKICAgICB2b2lkIGxvZ1VzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mKTsKQEAgLTIyNiw4ICsyMjcsOCBAQCBwcml2YXRlOgogICAgIHZv
aWQgbG9nU3VicmVzb3VyY2VMb2FkaW5nKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgdGFyZ2V0RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVE
b21haW4sIFdhbGxUaW1lIGxhc3RTZWVuKTsKICAgICB2b2lkIGxvZ1N1YnJlc291cmNlUmVkaXJl
Y3QoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzb3VyY2VEb21haW4s
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0YXJnZXREb21haW4pOwogICAgIHZvaWQgcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1VwZGF0ZWQoVmVjdG9yPFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRp
c3RpY3M+JiYpOwotICAgIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKLSAgICB2b2lkIHJlcXVl
c3RTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
c3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwg
dWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3Jh
Z2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYpOworICAgIHZvaWQgaGFzU3RvcmFnZUFjY2VzcyhQ
QUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYpOworICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQs
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3Jh
Z2VBY2Nlc3NXYXNHcmFudGVkLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24p
PiYmKTsKICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoUEFMOjpTZXNz
aW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgZG9tYWluSW5OZWVkT2ZTdG9yYWdl
QWNjZXNzLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBvcGVuZXJQYWdlSUQsIFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluJiYgb3BlbmVyRG9tYWluKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA0YjExODliMzljY2ViYzhmYjIyNmY4
ZmVlMDM0MjhjNmM4NWFkN2EzLi45OWFiZDA3OGZiMTRjOWYzMGJlOWM4NzYwM2ExM2Q5MWJkNzlh
OWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTM0
LDExICszNCwxMSBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBM
ZWdhY3lSZWNlaXZlciB7CiAgICAgU3RhcnREb3dubG9hZChQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QgcmVxdWVzdCwgU3RyaW5nIHN1Z2dlc3RlZE5hbWUpCiAgICAgQ29udmVydE1haW5SZXNvdXJj
ZUxvYWRUb0Rvd25sb2FkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgbWFpblJl
c291cmNlTG9hZElkZW50aWZpZXIsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBy
ZXNwb25zZSkKIAotICAgIENvb2tpZXNGb3JET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBV
UkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8s
IFVSTCB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllcj4gcGFnZUlELCBlbnVtOmJvb2wgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNv
b2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIC0+IChTdHJpbmcgY29va2llU3RyaW5nLCBib29s
IGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMpIFN5bmNocm9ub3VzCi0gICAgU2V0Q29va2llc0Zyb21E
T00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNv
cmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90
PiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBTdHJp
bmcgY29va2llU3RyaW5nKQorICAgIENvb2tpZXNGb3JET00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0
ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJ
RCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgZW51bTpib29sIFdl
YkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSAtPiAoU3Ry
aW5nIGNvb2tpZVN0cmluZywgYm9vbCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzKSBTeW5jaHJvbm91
cworICAgIFNldENvb2tpZXNGcm9tRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZp
cnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwg
dXJsLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFs
PFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFN0cmluZyBjb29raWVTdHJpbmcpCiAg
ICAgQ29va2llc0VuYWJsZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoYm9vbCBlbmFi
bGVkKSBTeW5jaHJvbm91cwotICAgIENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1l
U2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgZW51bTpib29sIFdl
YkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSAtPiAoU3Ry
aW5nIGNvb2tpZVN0cmluZywgYm9vbCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzKSBTeW5jaHJvbm91
cwotICAgIEdldFJhd0Nvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgZmlyc3RQ
YXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmws
IE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRp
Zmllcj4gcGFnZUlEKSAtPiAoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykgU3luY2hy
b25vdXMKKyAgICBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNh
bWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBm
cmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBlbnVtOmJv
b2wgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIC0+
IChTdHJpbmcgY29va2llU3RyaW5nLCBib29sIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMpIFN5bmNo
cm9ub3VzCisgICAgR2V0UmF3Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCBm
aXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgVVJM
IHVybCwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25h
bDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlEKSAtPiAoVmVjdG9yPFdlYkNvcmU6OkNv
b2tpZT4gY29va2llcykgU3luY2hyb25vdXMKICAgICBEZWxldGVDb29raWUoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBVUkwgdXJsLCBTdHJpbmcgY29va2llTmFtZSkKIAogICAgIFJlZ2lzdGVy
RmlsZUJsb2JVUkwoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgdXJsLCBTdHJpbmcgcGF0
aCwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgZXh0ZW5zaW9uSGFuZGxlLCBTdHJp
bmcgY29udGVudFR5cGUpCkBAIC01OCwxNSArNTgsMTUgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIEVuc3VyZUxlZ2FjeVBy
aXZhdGVCcm93c2luZ1Nlc3Npb24oKQogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykKLSAgICBSZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQp
OworICAgIFJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciBwYWdlSUQpOwogICAgIENsZWFyUGFnZVNwZWNpZmljRGF0YUZvclJlc291cmNlTG9hZFN0
YXRpc3RpY3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciBwYWdlSUQpOwogICAgIExvZ1VzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbikKICAgICBMb2dXZWJTb2NrZXRM
b2FkaW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4gdGFyZ2V0RG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFp
biwgV2FsbFRpbWUgbGFzdFNlZW4pCiAgICAgTG9nU3VicmVzb3VyY2VMb2FkaW5nKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFyZ2V0RG9tYWlu
LCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgV2FsbFRpbWUgbGFz
dFNlZW4pCiAgICAgTG9nU3VicmVzb3VyY2VSZWRpcmVjdChQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHNvdXJjZURvbWFpbiwgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4gdGFyZ2V0RG9tYWluKQogICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NV
cGRhdGVkKFZlY3RvcjxXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPiBzdGF0aXN0aWNz
KQotICAgIEhhc1N0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCkgLT4gKGJvb2wgaGFzU3RvcmFnZUFjY2VzcykgQXN5bmMKLSAgICBSZXF1
ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0
b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
cGFnZUlEKSAtPiAoZW51bTpib29sIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIHdh
c0dyYW50ZWQsIGVudW06Ym9vbCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24g
cHJvbXB0V2FzU2hvd24pIEFzeW5jCisgICAgSGFzU3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkZyYW1lRG9tYWluLCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkgLT4gKGJv
b2wgaGFzU3RvcmFnZUFjY2VzcykgQXN5bmMKKyAgICBSZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkZyYW1l
RG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCkgLT4gKGVudW06Ym9vbCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCB3YXNHcmFu
dGVkLCBlbnVtOmJvb2wgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21w
dFdhc1Nob3duKSBBc3luYwogICAgIFJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW5J
bk5lZWRPZlN0b3JhZ2VBY2Nlc3MsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIG9wZW5lclBhZ2VJ
RCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gb3BlbmVyRG9tYWluKQogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNw
cAppbmRleCA0MDk3MTRkNjY3MjZhODQ3NGFmZjI5YTE2MDgxN2YyNDc5NjdiMDE2Li4xMTc2ZjUz
N2E4NTgwOWI0YmFlMWNlNzY4YjU2NTM1YjE1ZDVlYmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwCkBAIC00OCw3ICs0OCw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1NhbWVPcmlnaW4oY29uc3QgVVJMJiB1cmwsIGNvbnN0
IFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCiAgICAgcmV0dXJuIHVybC5wcm90b2NvbElzRGF0YSgp
IHx8IHVybC5wcm90b2NvbElzQmxvYigpIHx8ICFvcmlnaW4gfHwgb3JpZ2luLT5jYW5SZXF1ZXN0
KHVybCk7CiB9CiAKLU5ldHdvcmtMb2FkQ2hlY2tlcjo6TmV0d29ya0xvYWRDaGVja2VyKE5ldHdv
cmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgRmV0Y2hPcHRpb25zJiYgb3B0aW9ucywgUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1l
SUQsIEhUVFBIZWFkZXJNYXAmJiBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzLCBVUkwmJiB1cmwsIFJl
ZlB0cjxTZWN1cml0eU9yaWdpbj4mJiBzb3VyY2VPcmlnaW4sIFByZWZsaWdodFBvbGljeSBwcmVm
bGlnaHRQb2xpY3ksIFN0cmluZyYmIHJlZmVycmVyLCBib29sIGlzSFRUUFNVcGdyYWRlRW5hYmxl
ZCwgYm9vbCBzaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MsIExvYWRUeXBlIHJl
cXVlc3RMb2FkVHlwZSkKK05ldHdvcmtMb2FkQ2hlY2tlcjo6TmV0d29ya0xvYWRDaGVja2VyKE5l
dHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgRmV0Y2hPcHRpb25zJiYgb3B0aW9ucywgUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBIVFRQSGVhZGVyTWFwJiYgb3JpZ2luYWxSZXF1ZXN0SGVhZGVycywgVVJM
JiYgdXJsLCBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+JiYgc291cmNlT3JpZ2luLCBQcmVmbGlnaHRQ
b2xpY3kgcHJlZmxpZ2h0UG9saWN5LCBTdHJpbmcmJiByZWZlcnJlciwgYm9vbCBpc0hUVFBTVXBn
cmFkZUVuYWJsZWQsIGJvb2wgc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzLCBM
b2FkVHlwZSByZXF1ZXN0TG9hZFR5cGUpCiAgICAgOiBtX29wdGlvbnMoV1RGTW92ZShvcHRpb25z
KSkKICAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAsIG1fbmV0d29ya1Byb2Nlc3Mo
bmV0d29ya1Byb2Nlc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtMb2FkQ2hlY2tlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrTG9hZENoZWNrZXIuaAppbmRleCAwNzcwNjQ2NzBmY2JiOWFjOTQyZjhkODYxODEwNDk1OWYw
MGUwNTc4Li5lYzk0ZTE0Njk1MzNkN2Q5ODc4MTZiYjI2YjE3ZGZiMjNiOTQzZmMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmgKQEAg
LTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25z
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRl
cnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZldGNoT3B0aW9ucy5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrTG9hZEluZm9y
bWF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgpAQCAtNTUsNyArNTYsNyBAQCBjbGFzcyBOZXR3b3Jr
TG9hZENoZWNrZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TmV0d29ya0xvYWRDaGVja2VyPiB7
CiBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBMb2FkVHlwZSA6IGJvb2wgeyBNYWluRnJhbWUsIE90
aGVyIH07CiAKLSAgICBOZXR3b3JrTG9hZENoZWNrZXIoTmV0d29ya1Byb2Nlc3MmLCBXZWJDb3Jl
OjpGZXRjaE9wdGlvbnMmJiwgUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
LCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiYsIFVSTCYmLCBSZWZQ
dHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYsIFdlYkNvcmU6OlByZWZsaWdodFBvbGljeSwg
U3RyaW5nJiYgcmVmZXJyZXIsIGJvb2wgaXNIVFRQU1VwZ3JhZGVFbmFibGVkID0gZmFsc2UsIGJv
b2wgc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzID0gZmFsc2UsIExvYWRUeXBl
IHJlcXVlc3RMb2FkVHlwZSA9IExvYWRUeXBlOjpPdGhlcik7CisgICAgTmV0d29ya0xvYWRDaGVj
a2VyKE5ldHdvcmtQcm9jZXNzJiwgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiYsIFBBTDo6U2Vzc2lv
bklELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBX
ZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiYsIFVSTCYmLCBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4+JiYsIFdlYkNvcmU6OlByZWZsaWdodFBvbGljeSwgU3RyaW5nJiYgcmVmZXJyZXIsIGJv
b2wgaXNIVFRQU1VwZ3JhZGVFbmFibGVkID0gZmFsc2UsIGJvb2wgc2hvdWxkQ2FwdHVyZUV4dHJh
TmV0d29ya0xvYWRNZXRyaWNzID0gZmFsc2UsIExvYWRUeXBlIHJlcXVlc3RMb2FkVHlwZSA9IExv
YWRUeXBlOjpPdGhlcik7CiAgICAgfk5ldHdvcmtMb2FkQ2hlY2tlcigpOwogCiAgICAgc3RydWN0
IFJlZGlyZWN0aW9uVHJpcGxldCB7CkBAIC0xMjcsNyArMTI4LDcgQEAgcHJpdmF0ZToKICAgICBQ
QUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICAgICBSZWY8TmV0d29ya1Byb2Nlc3M+IG1fbmV0
d29ya1Byb2Nlc3M7CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV9wYWdlSUQ7Ci0gICAg
dWludDY0X3QgbV9mcmFtZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX2ZyYW1l
SUQ7CiAgICAgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCBtX29yaWdpbmFsUmVxdWVzdEhlYWRlcnM7
IC8vIE5lZWRlZCBmb3IgQ09SUyBjaGVja3MuCiAgICAgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCBt
X2ZpcnN0UmVxdWVzdEhlYWRlcnM7IC8vIE5lZWRlZCBmb3IgQ09SUyBjaGVja3MuCiAgICAgVVJM
IG1fdXJsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZFBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xv
YWRQYXJhbWV0ZXJzLmgKaW5kZXggYzQzZTVkY2Q3NTAxMWE1NTkxZTZlNjgyNzI0YzFhNjk1NjVl
Y2YxNy4uYjhmN2QxMzllMzFlYzVjODI3MTM1ZTM3MzBiN2IwZDllZjBhNDYxYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5o
CkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJOZXR3b3JrQWN0aXZpdHlUcmFja2VyLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9CbG9iRGF0YUZpbGVSZWZlcmVuY2UuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZp
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CkBAIC00Niw3ICs0Nyw3IEBAIHB1YmxpYzoK
IAogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRDsKICAgICBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciB3ZWJQYWdlSUQ7Ci0gICAgdWludDY0X3Qgd2ViRnJhbWVJRCB7IDAgfTsKKyAgICBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgd2ViRnJhbWVJRDsKICAgICBXVEY6OlByb2Nlc3NJRCBwYXJl
bnRQSUQgeyAwIH07CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Q7CiAgICAg
V2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IGNvbnRlbnRTbmlmZmluZ1BvbGljeSB7IFdl
YkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeTo6U25pZmZDb250ZW50IH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggYTkyYjcyNDFlYjI5
OGVhNjZjNWE4YTI4NDc0ZjQwM2U1N2U0NWMzOS4uYzIzNjNkZDExMzVmN2UyYmZhMDMyOWVkZjI2
MmEyNWJlZTIyYjNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuaApAQCAtMTM3LDcgKzEzNyw2IEBAIHB1YmxpYzoKICAgICB1c2luZyBOYXZpZ2F0
ZWRUb0RvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwogICAgIHVzaW5nIERvbWFp
bkluTmVlZE9mU3RvcmFnZUFjY2VzcyA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwogICAg
IHVzaW5nIE9wZW5lckRvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwotICAgIHVz
aW5nIEZyYW1lSUQgPSB1aW50NjRfdDsKIAogICAgIE5ldHdvcmtQcm9jZXNzKEF1eGlsaWFyeVBy
b2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmJik7CiAgICAgfk5ldHdvcmtQcm9jZXNzKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJj
ZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJj
ZUxvYWRlci5jcHAKaW5kZXggNDc4MmVmMTVmM2RlZWU1YWY0ZWFlZjA1Y2RmNjAzNmFlN2U2ZDJm
Yi4uZWM2YTgwYzg0ODlkZWYzMmQ3ODliNzRiZWMxMjczNTdiZWM1NTgzNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNw
cApAQCAtMTgwLDE4ICsxODAsMTggQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0
KCkKIAogICAgICAgICAgICAgV1RGOjpzd2l0Y2hPbihyZXN1bHQsCiAgICAgICAgICAgICAgICAg
W3RoaXNdIChSZXNvdXJjZUVycm9yJiBlcnJvcikgewotICAgICAgICAgICAgICAgICAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKCJzdGFydDogZXJyb3IgY2hlY2tpbmcgKHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwg
aXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkLCBwYXJlbnRQSUQgPSAlZCwg
ZXJyb3IuZG9tYWluID0gJXtwdWJsaWN9cywgZXJyb3IuY29kZSA9ICVkKSIsIG1fcGFyYW1ldGVy
cy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1l
dGVycy5pZGVudGlmaWVyLCB0aGlzLT5pc01haW5SZXNvdXJjZSgpLCB0aGlzLT5pc1N5bmNocm9u
b3VzKCksIG1fcGFyYW1ldGVycy5wYXJlbnRQSUQsIGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRh
KCksIGVycm9yLmVycm9yQ29kZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgic3RhcnQ6IGVycm9yIGNoZWNraW5nIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJl
c291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCwgcGFyZW50UElEID0gJWQsIGVycm9yLmRv
bWFpbiA9ICV7cHVibGljfXMsIGVycm9yLmNvZGUgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFn
ZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFy
YW1ldGVycy5pZGVudGlmaWVyLCB0aGlzLT5pc01haW5SZXNvdXJjZSgpLCB0aGlzLT5pc1N5bmNo
cm9ub3VzKCksIG1fcGFyYW1ldGVycy5wYXJlbnRQSUQsIGVycm9yLmRvbWFpbigpLnV0ZjgoKS5k
YXRhKCksIGVycm9yLmVycm9yQ29kZSgpKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFlcnJv
ci5pc0NhbmNlbGxhdGlvbigpKQogICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy0+ZGlkRmFp
bExvYWRpbmcoZXJyb3IpOwogICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgW3Ro
aXNdIChOZXR3b3JrTG9hZENoZWNrZXI6OlJlZGlyZWN0aW9uVHJpcGxldCYgdHJpcGxldCkgewog
ICAgICAgICAgICAgICAgICAgICB0aGlzLT5tX2lzV2FpdGluZ0NvbnRpbnVlV2lsbFNlbmRSZXF1
ZXN0Rm9yQ2FjaGVkUmVkaXJlY3QgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICB0aGlzLT53
aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFdURk1vdmUodHJpcGxldC5yZXF1ZXN0KSwgV1RGTW92
ZSh0cmlwbGV0LnJlZGlyZWN0UmVxdWVzdCksIFdURk1vdmUodHJpcGxldC5yZWRpcmVjdFJlc3Bv
bnNlKSk7Ci0gICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0
OiBzeW50aGV0aWMgcmVkaXJlY3Qgc2VudCBiZWNhdXNlIHJlcXVlc3QgVVJMIHdhcyBtb2RpZmll
ZCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJ
RCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQs
IHBhcmVudFBJRCA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9w
YXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCB0aGlzLT5pc01h
aW5SZXNvdXJjZSgpLCB0aGlzLT5pc1N5bmNocm9ub3VzKCksIG1fcGFyYW1ldGVycy5wYXJlbnRQ
SUQpOworICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydDog
c3ludGhldGljIHJlZGlyZWN0IHNlbnQgYmVjYXVzZSByZXF1ZXN0IFVSTCB3YXMgbW9kaWZpZWQg
KHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQg
PSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkLCBw
YXJlbnRQSUQgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFy
YW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCB0
aGlzLT5pc01haW5SZXNvdXJjZSgpLCB0aGlzLT5pc1N5bmNocm9ub3VzKCksIG1fcGFyYW1ldGVy
cy5wYXJlbnRQSUQpOwogICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgW3RoaXNd
IChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKHRo
aXMtPmNhblVzZUNhY2hlKHJlcXVlc3QpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKCJzdGFydDogQ2hlY2tpbmcgY2FjaGUgZm9yIHJlc291cmNlIChw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCwgcGFy
ZW50UElEID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFt
ZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIHRoaXMtPmlzTWFpblJl
c291cmNlKCksIHRoaXMtPmlzU3luY2hyb25vdXMoKSwgbV9wYXJhbWV0ZXJzLnBhcmVudFBJRCk7
CisgICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydDog
Q2hlY2tpbmcgY2FjaGUgZm9yIHJlc291cmNlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNl
ID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCwgcGFyZW50UElEID0gJWQpIiwgbV9wYXJhbWV0ZXJz
LndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgp
LCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgdGhpcy0+aXNNYWluUmVzb3VyY2UoKSwgdGhpcy0+
aXNTeW5jaHJvbm91cygpLCBtX3BhcmFtZXRlcnMucGFyZW50UElEKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIHRoaXMtPnJldHJpZXZlQ2FjaGVFbnRyeShyZXF1ZXN0KTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgfQpAQCAtMjA0LDcgKzIw
NCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydCgpCiAgICAgfQogICAgIC8v
IEZJWE1FOiBSZW1vdmUgdGhhdCBjb2RlIHBhdGggb25jZSBtX25ldHdvcmtMb2FkQ2hlY2tlciBp
cyB1c2VkIGZvciBhbGwgbmV0d29yayBsb2Fkcy4KICAgICBpZiAoY2FuVXNlQ2FjaGUob3JpZ2lu
YWxSZXF1ZXN0KCkpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0OiBD
aGVja2luZyBjYWNoZSBmb3IgcmVzb3VyY2UgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2Ug
PSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkLCBwYXJlbnRQSUQgPSAlZCkiLCBtX3BhcmFtZXRlcnMu
d2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRl
cnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpLCBtX3BhcmFt
ZXRlcnMucGFyZW50UElEKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6
IENoZWNraW5nIGNhY2hlIGZvciByZXNvdXJjZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJj
ZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQsIHBhcmVudFBJRCA9ICVkKSIsIG1fcGFyYW1ldGVy
cy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQo
KSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25v
dXMoKSwgbV9wYXJhbWV0ZXJzLnBhcmVudFBJRCk7CiAgICAgICAgIHJldHJpZXZlQ2FjaGVFbnRy
eShvcmlnaW5hbFJlcXVlc3QoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yNDQsNyAr
MjQ0LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRyeShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAgICAgICAgIGxvZ1Nsb3dDYWNoZVJldHJp
ZXZlSWZOZWVkZWQoaW5mbyk7CiAKICAgICAgICAgaWYgKCFlbnRyeSkgewotICAgICAgICAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNoZUVudHJ5OiBSZXNvdXJjZSBub3Qg
aW4gY2FjaGUgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJl
c291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91
cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJz
LndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBp
c1N5bmNocm9ub3VzKCkpOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0
cmlldmVDYWNoZUVudHJ5OiBSZXNvdXJjZSBub3QgaW4gY2FjaGUgKHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNN
YWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQ
YWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9w
YXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7
CiAgICAgICAgICAgICBzdGFydE5ldHdvcmtMb2FkKFdURk1vdmUocmVxdWVzdCksIEZpcnN0TG9h
ZDo6WWVzKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMjU2LDcgKzI1Niw3
IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpyZXRyaWV2ZUNhY2hlRW50cnlJbnRlcm5h
bChzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0NhCiB7CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURf
U1RBVElTVElDUykKICAgICBpZiAoZW50cnktPmhhc1JlYWNoZWRQcmV2YWxlbnRSZXNvdXJjZUFn
ZUNhcCgpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVF
bnRyeTogUmVzb3VyY2UgaGFzIHJlYWNoZWQgcHJldmFsZW50IHJlc291cmNlIGFnZSBjYXAgKHBh
Z2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAl
IiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1f
cGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQs
IG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3Vz
KCkpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6
IFJlc291cmNlIGhhcyByZWFjaGVkIHByZXZhbGVudCByZXNvdXJjZSBhZ2UgY2FwIChwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJ
dTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFt
ZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUlu
dDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNo
cm9ub3VzKCkpOwogICAgICAgICBtX2NhY2hlRW50cnlGb3JNYXhBZ2VDYXBWYWxpZGF0aW9uID0g
V1RGTW92ZShlbnRyeSk7CiAgICAgICAgIFJlc291cmNlUmVxdWVzdCByZXZhbGlkYXRpb25SZXF1
ZXN0ID0gb3JpZ2luYWxSZXF1ZXN0KCk7CiAgICAgICAgIHN0YXJ0TmV0d29ya0xvYWQoV1RGTW92
ZShyZXZhbGlkYXRpb25SZXF1ZXN0KSwgRmlyc3RMb2FkOjpZZXMpOwpAQCAtMjY0LDI4ICsyNjQs
MjggQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRyeUludGVy
bmFsKHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrQ2EKICAgICB9CiAjZW5kaWYKICAgICBpZiAoZW50
cnktPnJlZGlyZWN0UmVxdWVzdCgpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
InJldHJpZXZlQ2FjaGVFbnRyeTogSGFuZGxpbmcgcmVkaXJlY3QgKHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNN
YWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQ
YWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5p
ZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOworICAgICAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IEhhbmRsaW5nIHJlZGly
ZWN0IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJj
ZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAl
ZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJG
cmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJj
ZSgpLCBpc1N5bmNocm9ub3VzKCkpOwogICAgICAgICBkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdEZv
ckNhY2hlRW50cnkoV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShlbnRyeSkpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgIGlmIChtX3BhcmFtZXRlcnMubmVlZHNDZXJ0aWZpY2F0ZUluZm8g
JiYgIWVudHJ5LT5yZXNwb25zZSgpLmNlcnRpZmljYXRlSW5mbygpKSB7Ci0gICAgICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogUmVzb3VyY2UgZG9lcyBub3Qg
aGF2ZSByZXF1aXJlZCBjZXJ0aWZpY2F0ZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9
ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2
NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlz
TWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogUmVzb3VyY2UgZG9lcyBub3QgaGF2ZSByZXF1
aXJlZCBjZXJ0aWZpY2F0ZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5
bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Bh
cmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwg
aXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKICAgICAgICAgc3RhcnROZXR3b3Jr
TG9hZChXVEZNb3ZlKHJlcXVlc3QpLCBGaXJzdExvYWQ6Olllcyk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgaWYgKGVudHJ5LT5uZWVkc1ZhbGlkYXRpb24oKSB8fCByZXF1ZXN0LmNhY2hl
UG9saWN5KCkgPT0gV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xpY3k6OlJlZnJlc2hB
bnlDYWNoZURhdGEpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVD
YWNoZUVudHJ5OiBWYWxpZGF0aW5nIGNhY2hlIGVudHJ5IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJl
c291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlE
LnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRp
ZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKKyAgICAgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNoZUVudHJ5OiBWYWxpZGF0aW5nIGNhY2hlIGVu
dHJ5IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJj
ZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAl
ZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJG
cmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJj
ZSgpLCBpc1N5bmNocm9ub3VzKCkpOwogICAgICAgICB2YWxpZGF0ZUNhY2hlRW50cnkoV1RGTW92
ZShlbnRyeSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogUmV0cmlldmVkIHJlc291cmNlIGZyb20gY2FjaGUg
KHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQg
PSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIs
IG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1l
SUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9u
b3VzKCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTog
UmV0cmlldmVkIHJlc291cmNlIGZyb20gY2FjaGUgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3Vy
Y2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9V
SW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJz
LmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CiAgICAgZGlk
UmV0cmlldmVDYWNoZUVudHJ5KFdURk1vdmUoZW50cnkpKTsKIH0KIAogdm9pZCBOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OnN0YXJ0TmV0d29ya0xvYWQoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwg
Rmlyc3RMb2FkIGxvYWQpCiB7CiAgICAgaWYgKGxvYWQgPT0gRmlyc3RMb2FkOjpZZXMpIHsKLSAg
ICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnROZXR3b3JrTG9hZDogKHBhZ2VJRCA9
ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1
NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1l
dGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFy
YW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOwor
ICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydE5ldHdvcmtMb2FkOiAocGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBS
SXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJh
bWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJ
bnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5j
aHJvbm91cygpKTsKIAogICAgICAgICBjb25zdW1lU2FuZGJveEV4dGVuc2lvbnMoKTsKIApAQCAt
MzA4LDcgKzMwOCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydE5ldHdvcmtM
b2FkKFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEZpcnN0TG9hCiAgICAgfQogICAgIGlmICgh
bmV0d29ya1Nlc3Npb24pIHsKICAgICAgICAgV1RGTG9nQWx3YXlzKCJBdHRlbXB0ZWQgdG8gY3Jl
YXRlIGEgTmV0d29ya0xvYWQgd2l0aCBhIHNlc3Npb24gKGlkPSUiIFBSSXU2NCAiKSB0aGF0IGRv
ZXMgbm90IGV4aXN0LiIsIHBhcmFtZXRlcnMuc2Vzc2lvbklELnNlc3Npb25JRCgpKTsKLSAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgic3RhcnROZXR3b3JrTG9hZDogQXR0ZW1w
dGVkIHRvIGNyZWF0ZSBhIE5ldHdvcmtMb2FkIHdpdGggYSBzZXNzaW9uIHRoYXQgZG9lcyBub3Qg
ZXhpc3QgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIiwgc2Vzc2lvbklEPSUiIFBSSXU2NCAiKSIsIG1fcGFyYW1ldGVy
cy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1l
dGVycy5pZGVudGlmaWVyLCBwYXJhbWV0ZXJzLnNlc3Npb25JRC5zZXNzaW9uSUQoKSk7CisgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoInN0YXJ0TmV0d29ya0xvYWQ6IEF0dGVt
cHRlZCB0byBjcmVhdGUgYSBOZXR3b3JrTG9hZCB3aXRoIGEgc2Vzc2lvbiB0aGF0IGRvZXMgbm90
IGV4aXN0IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNv
dXJjZUlEID0gJSIgUFJJdTY0ICIsIHNlc3Npb25JRD0lIiBQUkl1NjQgIikiLCBtX3BhcmFtZXRl
cnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0
KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBwYXJhbWV0ZXJzLnNlc3Npb25JRC5zZXNzaW9u
SUQoKSk7CiAgICAgICAgIG1fY29ubmVjdGlvbi0+bmV0d29ya1Byb2Nlc3MoKS5sb2dEaWFnbm9z
dGljTWVzc2FnZShtX3BhcmFtZXRlcnMud2ViUGFnZUlELCBXZWJDb3JlOjpEaWFnbm9zdGljTG9n
Z2luZ0tleXM6OmludGVybmFsRXJyb3JLZXkoKSwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzOjppbnZhbGlkU2Vzc2lvbklES2V5KCksIFdlYkNvcmU6OlNob3VsZFNhbXBsZTo6Tm8pOwog
ICAgICAgICBkaWRGYWlsTG9hZGluZyhpbnRlcm5hbEVycm9yKHJlcXVlc3QudXJsKCkpKTsKICAg
ICAgICAgcmV0dXJuOwpAQCAtMzIwLDcgKzMyMCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9h
ZGVyOjpzdGFydE5ldHdvcmtMb2FkKFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEZpcnN0TG9h
CiAgICAgcGFyYW1ldGVycy5yZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KTsKICAgICBtX25ldHdv
cmtMb2FkID0gc3RkOjptYWtlX3VuaXF1ZTxOZXR3b3JrTG9hZD4oKnRoaXMsICZuZXR3b3JrU2Vz
c2lvbi0+YmxvYlJlZ2lzdHJ5KCksIFdURk1vdmUocGFyYW1ldGVycyksICpuZXR3b3JrU2Vzc2lv
bik7CiAKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydE5ldHdvcmtMb2FkOiAocGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUi
IFBSSXU2NCAiLCBkZXNjcmlwdGlvbiA9ICV7cHVibGljfXMpIiwgbV9wYXJhbWV0ZXJzLndlYlBh
Z2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlk
ZW50aWZpZXIsIG1fbmV0d29ya0xvYWQtPmRlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSk7Cisg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnROZXR3b3JrTG9hZDogKHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQg
IiwgZGVzY3JpcHRpb24gPSAle3B1YmxpY31zKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9V
SW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJz
LmlkZW50aWZpZXIsIG1fbmV0d29ya0xvYWQtPmRlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSk7
CiB9CiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjbGVhbnVwKExvYWRSZXN1bHQgcmVz
dWx0KQpAQCAtMzQ0LDcgKzM0NCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjbGVh
bnVwKExvYWRSZXN1bHQgcmVzdWx0KQogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y29u
dmVydFRvRG93bmxvYWQoRG93bmxvYWRJRCBkb3dubG9hZElELCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewotICAgIFJF
TEVBU0VfTE9HKExvYWRpbmcsICJDb252ZXJ0aW5nIE5ldHdvcmtSZXNvdXJjZUxvYWRlciAlcCB0
byBkb3dubG9hZCAlIiBQUkl1NjQgIiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAl
IiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHRoaXMsIGRvd25sb2FkSUQu
ZG93bmxvYWRJRCgpLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1l
dGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CisgICAgUkVMRUFTRV9M
T0coTG9hZGluZywgIkNvbnZlcnRpbmcgTmV0d29ya1Jlc291cmNlTG9hZGVyICVwIHRvIGRvd25s
b2FkICUiIFBSSXU2NCAiIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2
NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgdGhpcywgZG93bmxvYWRJRC5kb3dubG9h
ZElEKCksIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndl
YkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIpOwogICAgIAogICAg
IC8vIFRoaXMgY2FuIGhhcHBlbiBpZiB0aGUgcmVzb3VyY2UgY2FtZSBmcm9tIHRoZSBkaXNrIGNh
Y2hlLgogICAgIGlmICghbV9uZXR3b3JrTG9hZCkgewpAQCAtMzYyLDcgKzM2Miw3IEBAIHZvaWQg
TmV0d29ya1Jlc291cmNlTG9hZGVyOjphYm9ydCgpCiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFp
bigpKTsKIAogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImFib3J0OiBDYW5jZWxpbmcgcmVz
b3VyY2UgbG9hZCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwg
cmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsCi0gICAgICAgIG1fcGFyYW1ldGVycy53ZWJQYWdl
SUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVu
dGlmaWVyKTsKKyAgICAgICAgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Bh
cmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7
CiAKICAgICBpZiAobV9wYXJhbWV0ZXJzLm9wdGlvbnMua2VlcEFsaXZlICYmIG1fcmVzcG9uc2Uu
aXNOdWxsKCkgJiYgIW1faXNLZXB0QWxpdmUpIHsKICAgICAgICAgbV9pc0tlcHRBbGl2ZSA9IHRy
dWU7CkBAIC00NDcsNyArNDQ3LDcgQEAgYm9vbCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNob3Vs
ZEludGVycnVwdExvYWRGb3JDU1BGcmFtZUFuY2VzdG9yc09yWEZyYW1lT3B0aW8KIAogdm9pZCBO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNl
JiYgcmVjZWl2ZWRSZXNwb25zZSwgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNw
b25zZTogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIiwgaHR0cFN0YXR1c0NvZGUgPSAlZCwgbGVuZ3RoID0gJSIgUFJJ
ZDY0ICIpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMu
d2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIHJlY2VpdmVkUmVzcG9uc2UuaHR0
cFN0YXR1c0NvZGUoKSwgcmVjZWl2ZWRSZXNwb25zZS5leHBlY3RlZENvbnRlbnRMZW5ndGgoKSk7
CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiAocGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBS
SXU2NCAiLCBodHRwU3RhdHVzQ29kZSA9ICVkLCBsZW5ndGggPSAlIiBQUklkNjQgIikiLCBtX3Bh
cmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRv
VUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCByZWNlaXZlZFJlc3BvbnNlLmh0dHBT
dGF0dXNDb2RlKCksIHJlY2VpdmVkUmVzcG9uc2UuZXhwZWN0ZWRDb250ZW50TGVuZ3RoKCkpOwog
CiAgICAgbV9yZXNwb25zZSA9IFdURk1vdmUocmVjZWl2ZWRSZXNwb25zZSk7CiAKQEAgLTUyNyw3
ICs1MjcsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNl
KFJlc291cmNlUmVzcG9uc2UmJiByZWNlaXZlZFJlc3Bvbgogdm9pZCBOZXR3b3JrUmVzb3VyY2VM
b2FkZXI6OmRpZFJlY2VpdmVCdWZmZXIoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIsIGludCBy
ZXBvcnRlZEVuY29kZWREYXRhTGVuZ3RoKQogewogICAgIGlmICghbV9udW1CeXRlc1JlY2VpdmVk
KQotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlQnVmZmVyOiBTdGFy
dGVkIHJlY2VpdmluZyBkYXRhIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJ
RC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50
aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlQnVmZmVy
OiBTdGFydGVkIHJlY2VpdmluZyBkYXRhIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9
ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV9wYXJhbWV0ZXJzLndl
YlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBt
X3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CiAgICAgbV9udW1CeXRlc1JlY2VpdmVkICs9IGJ1ZmZl
ci0+c2l6ZSgpOwogCiAgICAgQVNTRVJUKCFtX2NhY2hlRW50cnlGb3JWYWxpZGF0aW9uKTsKQEAg
LTU1Niw3ICs1NTYsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZUJ1
ZmZlcihSZWY8U2hhcmVkQnVmZmVyPiYmIGJ1ZmZlciwgaW50IHJlcAogCiB2b2lkIE5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3Mm
IG5ldHdvcmtMb2FkTWV0cmljcykKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRG
aW5pc2hMb2FkaW5nOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQg
IiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBsZW5ndGggPSAlemQpIiwgbV9wYXJhbWV0ZXJz
LndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0
ZXJzLmlkZW50aWZpZXIsIG1fbnVtQnl0ZXNSZWNlaXZlZCk7CisgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgiZGlkRmluaXNoTG9hZGluZzogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgbGVuZ3RoID0gJXpkKSIs
IG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1l
SUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIG1fbnVtQnl0ZXNSZWNlaXZl
ZCk7CiAKICAgICBpZiAoc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKCkpCiAg
ICAgICAgIG1fY29ubmVjdGlvbi0+YWRkTmV0d29ya0xvYWRJbmZvcm1hdGlvbk1ldHJpY3MoaWRl
bnRpZmllcigpLCBuZXR3b3JrTG9hZE1ldHJpY3MpOwpAQCAtNTkxLDcgKzU5MSw3IEBAIHZvaWQg
TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKGNvbnN0IE5ldHdvcmtMb2Fk
TWV0cmljcyYgbmV0d29ya0xvCiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRGYWls
TG9hZGluZyhjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKLSAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKCJkaWRGYWlsTG9hZGluZzogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNUaW1lb3V0ID0gJWQs
IGlzQ2FuY2VsbGF0aW9uID0gJWQsIGlzQWNjZXNzQ29udHJvbCA9ICVkLCBlcnJDb2RlID0gJWQp
IiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJh
bWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGVycm9yLmlzVGltZW91dCgpLCBlcnJvci5p
c0NhbmNlbGxhdGlvbigpLCBlcnJvci5pc0FjY2Vzc0NvbnRyb2woKSwgZXJyb3IuZXJyb3JDb2Rl
KCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZhaWxMb2FkaW5nOiAocGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBS
SXU2NCAiLCBpc1RpbWVvdXQgPSAlZCwgaXNDYW5jZWxsYXRpb24gPSAlZCwgaXNBY2Nlc3NDb250
cm9sID0gJWQsIGVyckNvZGUgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0
KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVu
dGlmaWVyLCBlcnJvci5pc1RpbWVvdXQoKSwgZXJyb3IuaXNDYW5jZWxsYXRpb24oKSwgZXJyb3Iu
aXNBY2Nlc3NDb250cm9sKCksIGVycm9yLmVycm9yQ29kZSgpKTsKIAogICAgIGlmIChzaG91bGRD
YXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MoKSkKICAgICAgICAgbV9jb25uZWN0aW9uLT5y
ZW1vdmVOZXR3b3JrTG9hZEluZm9ybWF0aW9uKGlkZW50aWZpZXIoKSk7CkBAIC03NTYsNyArNzU2
LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0
KFJlc291cmNlUmVxdWVzdCYmIG5ld1JlcXVlc3QKICAgICAgICAgfQogICAgIH0KIAotICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoImNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0OiAocGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2
NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndl
YkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyKTsKKyAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJjb250aW51ZVdpbGxTZW5kUmVxdWVzdDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3BhcmFt
ZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUlu
dDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyKTsKIAogICAgIG1faXNBbGxvd2VkVG9Bc2tV
c2VyRm9yQ3JlZGVudGlhbHMgPSBpc0FsbG93ZWRUb0Fza1VzZXJGb3JDcmVkZW50aWFsczsKIApA
QCAtMTAxMSwxMiArMTAxMSwxNyBAQCBzdGF0aWMgU3RyaW5nIGVzY2FwZUZvckpTT04oU3RyaW5n
IHMpCiBzdGF0aWMgU3RyaW5nIGVzY2FwZUlERm9ySlNPTihjb25zdCBPcHRpb25hbDx1aW50NjRf
dD4mIHZhbHVlKQogewogICAgIHJldHVybiB2YWx1ZSA/IFN0cmluZzo6bnVtYmVyKHZhbHVlLnZh
bHVlKCkpIDogU3RyaW5nKCJOb25lIl9zKTsKLX07Cit9CisKK3N0YXRpYyBTdHJpbmcgZXNjYXBl
SURGb3JKU09OKGNvbnN0IE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4mIHZhbHVlKQoreworICAg
IHJldHVybiB2YWx1ZSA/IFN0cmluZzo6bnVtYmVyKHZhbHVlLT50b1VJbnQ2NCgpKSA6IFN0cmlu
ZygiTm9uZSJfcyk7Cit9CiAKIHN0YXRpYyBTdHJpbmcgZXNjYXBlSURGb3JKU09OKGNvbnN0IE9w
dGlvbmFsPFBhZ2VJZGVudGlmaWVyPiYgdmFsdWUpCiB7CiAgICAgcmV0dXJuIHZhbHVlID8gU3Ry
aW5nOjpudW1iZXIodmFsdWUtPnRvVUludDY0KCkpIDogU3RyaW5nKCJOb25lIl9zKTsKLX07Cit9
CiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpsb2dDb29raWVJbmZvcm1hdGlvbigpIGNv
bnN0CiB7CkBAIC0xMDI4LDcgKzEwMzMsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
bG9nQ29va2llSW5mb3JtYXRpb24oKSBjb25zdAogICAgIGxvZ0Nvb2tpZUluZm9ybWF0aW9uKG1f
Y29ubmVjdGlvbiwgIk5ldHdvcmtSZXNvdXJjZUxvYWRlciIsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3Qgdm9pZCo+KHRoaXMpLCAqbmV0d29ya1N0b3JhZ2VTZXNzaW9uLCBvcmlnaW5hbFJlcXVlc3Qo
KS5maXJzdFBhcnR5Rm9yQ29va2llcygpLCBTYW1lU2l0ZUluZm86OmNyZWF0ZShvcmlnaW5hbFJl
cXVlc3QoKSksIG9yaWdpbmFsUmVxdWVzdCgpLnVybCgpLCBvcmlnaW5hbFJlcXVlc3QoKS5odHRw
UmVmZXJyZXIoKSwgZnJhbWVJRCgpLCBwYWdlSUQoKSwgaWRlbnRpZmllcigpKTsKIH0KIAotc3Rh
dGljIHZvaWQgbG9nQmxvY2tlZENvb2tpZUluZm9ybWF0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2b2lkKiBs
b2dnZWRPYmplY3QsIGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgbmV0d29y
a1N0b3JhZ2VTZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5m
byYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwg
T3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdl
SUQsIE9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyKQorc3RhdGljIHZvaWQgbG9nQmxvY2tl
ZENvb2tpZUluZm9ybWF0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0
aW9uLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2b2lkKiBsb2dnZWRPYmplY3QsIGNvbnN0
IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLCBj
b25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBj
b25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgT3B0aW9uYWw8RnJhbWVJZGVu
dGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBPcHRpb25h
bDx1aW50NjRfdD4gaWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQoTmV0d29ya1Jlc291cmNlTG9h
ZGVyOjpzaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbihjb25uZWN0aW9uLCBuZXR3b3JrU3RvcmFn
ZVNlc3Npb24uc2Vzc2lvbklEKCkpKTsKIApAQCAtMTA1NSw3ICsxMDYwLDcgQEAgc3RhdGljIHZv
aWQgbG9nQmxvY2tlZENvb2tpZUluZm9ybWF0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzJiBjb25uZWN0aW8KICN1bmRlZiBMT0NBTF9MT0dfSUZfQUxMT1dFRAogfQogCi1zdGF0aWMg
dm9pZCBsb2dDb29raWVJbmZvcm1hdGlvbkludGVybmFsKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzJiBjb25uZWN0aW9uLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2b2lkKiBsb2dn
ZWRPYmplY3QsIGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgbmV0d29ya1N0
b3JhZ2VTZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVT
aXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZl
cnJlciwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVy
PiBwYWdlSUQsIE9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyKQorc3RhdGljIHZvaWQgbG9n
Q29va2llSW5mb3JtYXRpb25JbnRlcm5hbChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYg
Y29ubmVjdGlvbiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0
LCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIG5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8m
IHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIE9w
dGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+
IHBhZ2VJRCwgT3B0aW9uYWw8dWludDY0X3Q+IGlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKE5l
dHdvcmtSZXNvdXJjZUxvYWRlcjo6c2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oY29ubmVjdGlv
biwgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLnNlc3Npb25JRCgpKSk7CiAKQEAgLTExMTYsNyArMTEy
MSw3IEBAIHN0YXRpYyB2b2lkIGxvZ0Nvb2tpZUluZm9ybWF0aW9uSW50ZXJuYWwoTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3RpCiAjdW5kZWYgTE9DQUxfTE9HX0lGX0FMTE9X
RUQKIH0KIAotdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmxvZ0Nvb2tpZUluZm9ybWF0aW9u
KE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBjb25zdCBTdHJpbmcm
IGxhYmVsLCBjb25zdCB2b2lkKiBsb2dnZWRPYmplY3QsIGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiYgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5n
JiByZWZlcnJlciwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiBwYWdlSUQsIE9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyKQordm9pZCBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uKE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2b2lk
KiBsb2dnZWRPYmplY3QsIGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgbmV0d29ya1N0b3Jh
Z2VTZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2Ft
ZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgT3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFn
ZUlELCBPcHRpb25hbDx1aW50NjRfdD4gaWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQoc2hvdWxk
TG9nQ29va2llSW5mb3JtYXRpb24oY29ubmVjdGlvbiwgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLnNl
c3Npb25JRCgpKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Jlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5oCmluZGV4IDYyYzY1Y2RkZmY3Y2EwYjIwYTFjMTkwOTliOWY3
MTVmYWU0NTRhOGUuLjc0OTJkZjMyZjc5OTZlMDkwM2JlOTBkYTAwNWU5YjE0NmRhMTVmYmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9h
ZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkZXIuaApAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MmIGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX2Nv
bm5lY3Rpb247IH0KICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCB7IHJldHVy
biBtX3BhcmFtZXRlcnMuc2Vzc2lvbklEOyB9CiAgICAgUmVzb3VyY2VMb2FkSWRlbnRpZmllciBp
ZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXI7IH0KLSAg
ICB1aW50NjRfdCBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLndlYkZyYW1l
SUQ7IH0KKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNvbnN0IHsgcmV0
dXJuIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlEOyB9CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIgcGFnZUlEKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRDsgfQogCiAg
ICAgc3RydWN0IFN5bmNocm9ub3VzTG9hZERhdGE7CkBAIC0xMTIsNyArMTEyLDcgQEAgcHVibGlj
OgogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykgJiYgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECiAgICAgc3RhdGljIGJvb2wgc2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBjb25zdCBQQUw6OlNlc3Npb25JRCYpOwotICAg
IHN0YXRpYyB2b2lkIGxvZ0Nvb2tpZUluZm9ybWF0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzJiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBj
b25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmlu
ZyYgcmVmZXJyZXIsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcj4sIE9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyKTsKKyAgICBz
dGF0aWMgdm9pZCBsb2dDb29raWVJbmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29u
c3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcm
IHJlZmVycmVyLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIE9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVyKTsK
ICNlbmRpZgogCiAgICAgdm9pZCBkaXNhYmxlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3NDYXB0dXJl
KCkgeyBtX3Nob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyA9IGZhbHNlOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNo
ZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaApp
bmRleCBkOTRmYzczODBmMTlhNWY1ZjViNzhlYTM5ZWYxZDY1YTkyMTFlZTRmLi44NWQxMDBjYTZj
N2MwNWZiOGMzZDEyZDAzYTQ0MDI4MTEwMzk1ZWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNp
bmNsdWRlICJOZXR3b3JrQ2FjaGVFbnRyeS5oIgogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZVN0b3Jh
Z2UuaCIKICNpbmNsdWRlICJTaGFyZWFibGVSZXNvdXJjZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
RnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgogI2luY2x1ZGUgPHd0Zi9Db21w
bGV0aW9uSGFuZGxlci5oPgpAQCAtODUsNyArODYsNyBAQCBlbnVtIGNsYXNzIFVzZURlY2lzaW9u
IHsKICAgICBOb0R1ZVRvRXhwaXJlZFJlZGlyZWN0CiB9OwogCi11c2luZyBHbG9iYWxGcmFtZUlE
ID0gc3RkOjpwYWlyPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCAvKndlYkZyYW1l
SUQqLz47Cit1c2luZyBHbG9iYWxGcmFtZUlEID0gc3RkOjpwYWlyPFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+OyAvLyBGSVhNRTogVXNlIEdsb2JhbEZy
YW1lSWRlbnRpZmllci4KIAogZW51bSBjbGFzcyBDYWNoZU9wdGlvbiA6IHVpbnQ4X3QgewogICAg
IC8vIEluIHRlc3RpbmcgbW9kZSB3ZSB0cnkgdG8gZWxpbWluYXRlIHNvdXJjZXMgb2YgcmFuZG9t
bmVzcy4gQ2FjaGUgZG9lcyBub3Qgc2hyaW5rIGFuZCB0aGVyZSBhcmUgbm8gcmVhZCB0aW1lb3V0
cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a0RhdGFUYXNrQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya0RhdGFUYXNrQ29jb2EuaAppbmRleCAyNzkzNTc1MzViZTFlODRhMTNkMzFmZjdmYzMyZWM4
MmU2OWVkYjhmLi40M2FkNmYxZGU0MWM1MTYxZGQ5ZGIzYjY5YWY5MWNhM2Y3YWIyNDMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFz
a0NvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
RGF0YVRhc2tDb2NvYS5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIE5ldHdvcmtTZXNzaW9uQ29j
b2E7CiBjbGFzcyBOZXR3b3JrRGF0YVRhc2tDb2NvYSBmaW5hbCA6IHB1YmxpYyBOZXR3b3JrRGF0
YVRhc2sgewogICAgIGZyaWVuZCBjbGFzcyBOZXR3b3JrU2Vzc2lvbkNvY29hOwogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8TmV0d29ya0RhdGFUYXNrPiBjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNl
c3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250
ZW50U25pZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNob3VsZENv
bnRlbnRFbmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5LCBib29sIGRhdGFU
YXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBib29sIGRhdGFUYXNrSXNGb3JNYWluUmVzb3Vy
Y2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+
IG5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpCisgICAgc3RhdGljIFJlZjxOZXR3b3JrRGF0YVRhc2s+
IGNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBj
bGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwg
V2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ks
IFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIFdlYkNv
cmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRFbmNvZGluZ1Nu
aWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNv
bm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJh
bWVOYXZpZ2F0aW9uLCBib29sIGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9y
QW55RnJhbWUsIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+IG5ldHdvcmtBY3Rpdml0
eVRyYWNrZXIpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrRGF0
YVRhc2tDb2NvYShzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3QsIGZyYW1lSUQsIHBhZ2VJRCwgc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENvbnRlbnRTbmlmZiwgc2hvdWxkQ29udGVudEVu
Y29kaW5nU25pZmYsIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHNo
b3VsZFByZWNvbm5lY3RPbmx5LCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgZGF0
YVRhc2tJc0Zvck1haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSwgbmV0d29ya0FjdGl2
aXR5VHJhY2tlcikpOwogICAgIH0KQEAgLTY5LDEzICs2OSwxMyBAQCBwdWJsaWM6CiAKICAgICBX
ZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMb2FkTWV0cmljcygpIHsgcmV0dXJu
IG1fbmV0d29ya0xvYWRNZXRyaWNzOyB9CiAKLSAgICB1aW50NjRfdCBmcmFtZUlEKCkgY29uc3Qg
eyByZXR1cm4gbV9mcmFtZUlEOyB9OworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9OwogICAgIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUlEOyB9OwogCiAgICAgU3RyaW5n
IGRlc2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgTmV0d29ya0Rh
dGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6
OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQ
b2xpY3ksIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJl
Y29ubmVjdE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24sIGJvb2wg
ZGF0YVRhc2tJc0Zvck1haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSwgT3B0aW9uYWw8
TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4pOworICAgIE5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdv
cmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRT
bmlmZmluZ1BvbGljeSwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3ksIGJv
b2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9u
bHksIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24sIGJvb2wgZGF0YVRhc2tJ
c0Zvck1haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSwgT3B0aW9uYWw8TmV0d29ya0Fj
dGl2aXR5VHJhY2tlcj4pOwogCiAgICAgYm9vbCB0cnlQYXNzd29yZEJhc2VkQXV0aGVudGljYXRp
b24oY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21w
bGV0aW9uSGFuZGxlciYpOwogICAgIHZvaWQgYXBwbHlTbmlmZmluZ1BvbGljaWVzQW5kQmluZFJl
cXVlc3RUb0luZmVyZmFjZUlmTmVlZGVkKF9fc3Ryb25nIE5TVVJMUmVxdWVzdComLCBib29sIHNo
b3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZik7CkBAIC05
Miw3ICs5Miw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IG1fc2Fu
ZGJveEV4dGVuc2lvbjsKICAgICBSZXRhaW5QdHI8TlNVUkxTZXNzaW9uRGF0YVRhc2s+IG1fdGFz
azsKICAgICBXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3MgbV9uZXR3b3JrTG9hZE1ldHJpY3M7
Ci0gICAgdWludDY0X3QgbV9mcmFtZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBt
X2ZyYW1lSUQ7CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV9wYWdlSUQ7CiAKICNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KaW5kZXgg
NDJlN2FjZTQyNGIyYWI4YmIwMGEzN2M5NjNlYTk3ZDQ0MTMxNWFlMC4uYzJlN2IzNjg1NGU3Mzk1
Y2I2OTMwZDZlMjU3NDhjNGJhZDYwMTIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCkBAIC0xNzAs
NyArMTcwLDcgQEAgc3RhdGljIGlubGluZSBib29sIGNvbXB1dGVJc0Fsd2F5c09uTG9nZ2luZ0Fs
bG93ZWQoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24pCiAgICAgcmV0dXJuIHNlc3Npb24uc2Vzc2lv
bklEKCkuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCk7CiB9CiAKLU5ldHdvcmtEYXRhVGFza0Nv
Y29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29y
a0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdFdpdGhDcmVkZW50aWFscywgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRD
cmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENv
bnRlbnRTbmlmZiwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgc2hvdWxk
Q29udGVudEVuY29kaW5nU25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hU
VFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHksIGJvb2wgZGF0
YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24sIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5SZXNv
dXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSwgT3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tl
cj4gbmV0d29ya0FjdGl2aXR5VHJhY2tlcikKK05ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3Jr
RGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xp
ZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdFdpdGhD
cmVkZW50aWFscywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91
bGRDb250ZW50U25pZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IHNo
b3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBT
VG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5LCBib29s
IGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBib29sIGRhdGFUYXNrSXNGb3JNYWlu
UmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRy
YWNrZXI+IG5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpCiAgICAgOiBOZXR3b3JrRGF0YVRhc2soc2Vz
c2lvbiwgY2xpZW50LCByZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCBzdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgZGF0YVRhc2tJ
c0Zvck1haW5GcmFtZU5hdmlnYXRpb24pCiAgICAgLCBtX2ZyYW1lSUQoZnJhbWVJRCkKICAgICAs
IG1fcGFnZUlEKHBhZ2VJRCkKQEAgLTI1Niw3ICsyNTYsNyBAQCBOZXR3b3JrRGF0YVRhc2tDb2Nv
YTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtE
YXRhVAogICAgIGlmIChzaG91bGRCbG9ja0Nvb2tpZXMpIHsKICNpZiAhUkVMRUFTRV9MT0dfRElT
QUJMRUQKICAgICAgICAgaWYgKG1fc2Vzc2lvbi0+c2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24o
KSkKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgp
LCBOZXR3b3JrLCAiJXAgLSBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6bG9nQ29va2llSW5mb3JtYXRp
b246IHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCB0YXNrSUQgPSAlbHU6IEJsb2NraW5n
IGNvb2tpZXMgZm9yIFVSTCAlcyIsIHRoaXMsIHBhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELCAo
dW5zaWduZWQgbG9uZylbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgbnNSZXF1ZXN0LlVSTC5hYnNv
bHV0ZVN0cmluZy5VVEY4U3RyaW5nKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGKGlzQWx3
YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3b3JrLCAiJXAgLSBOZXR3b3JrRGF0YVRhc2tDb2Nv
YTo6bG9nQ29va2llSW5mb3JtYXRpb246IHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCB0
YXNrSUQgPSAlbHU6IEJsb2NraW5nIGNvb2tpZXMgZm9yIFVSTCAlcyIsIHRoaXMsIHBhZ2VJRC50
b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCksICh1bnNpZ25lZCBsb25nKVttX3Rhc2sgdGFz
a0lkZW50aWZpZXJdLCBuc1JlcXVlc3QuVVJMLmFic29sdXRlU3RyaW5nLlVURjhTdHJpbmcpOwog
I2Vsc2UKICAgICAgICAgTE9HKE5ldHdvcmtTZXNzaW9uLCAiJWxsdSBCbG9ja2luZyBjb29raWVz
IGZvciBVUkwgJXMiLCBbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgbnNSZXF1ZXN0LlVSTC5hYnNv
bHV0ZVN0cmluZy5VVEY4U3RyaW5nKTsKICNlbmRpZgpAQCAtMzkwLDcgKzM5MCw3IEBAIHZvaWQg
TmV0d29ya0RhdGFUYXNrQ29jb2E6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmCiAgICAgfQogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAg
IGlmIChtX3Nlc3Npb24tPnNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKCkpCi0gICAgICAgIFJF
TEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3b3JrLCAiJXAgLSBO
ZXR3b3JrRGF0YVRhc2tDb2NvYTo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb246OmxvZ0Nvb2tp
ZUluZm9ybWF0aW9uOiBwYWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwgdGFza0lEID0gJWx1
OiAlcyBjb29raWVzIGZvciByZWRpcmVjdCBVUkwgJXMiLCB0aGlzLCBtX3BhZ2VJRC50b1VJbnQ2
NCgpLCBtX2ZyYW1lSUQsICh1bnNpZ25lZCBsb25nKVttX3Rhc2sgdGFza0lkZW50aWZpZXJdLCAo
bV9oYXNCZWVuU2V0VG9Vc2VTdGF0ZWxlc3NDb29raWVTdG9yYWdlID8gIkJsb2NraW5nIiA6ICJO
b3QgYmxvY2tpbmciKSwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAg
ICAgICAgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdvcmss
ICIlcCAtIE5ldHdvcmtEYXRhVGFza0NvY29hOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbjo6
bG9nQ29va2llSW5mb3JtYXRpb246IHBhZ2VJRCA9ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCB0YXNr
SUQgPSAlbHU6ICVzIGNvb2tpZXMgZm9yIHJlZGlyZWN0IFVSTCAlcyIsIHRoaXMsIG1fcGFnZUlE
LnRvVUludDY0KCksIG1fZnJhbWVJRC50b1VJbnQ2NCgpLCAodW5zaWduZWQgbG9uZylbbV90YXNr
IHRhc2tJZGVudGlmaWVyXSwgKG1faGFzQmVlblNldFRvVXNlU3RhdGVsZXNzQ29va2llU3RvcmFn
ZSA/ICJCbG9ja2luZyIgOiAiTm90IGJsb2NraW5nIiksIHJlcXVlc3QudXJsKCkuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7CiAjZWxzZQogICAgIExPRyhOZXR3b3JrU2Vzc2lvbiwgIiVsbHUgJXMg
Y29va2llcyBmb3IgcmVkaXJlY3QgVVJMICVzIiwgW21fdGFzayB0YXNrSWRlbnRpZmllcl0sICht
X2hhc0JlZW5TZXRUb1VzZVN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2UgPyAiQmxvY2tpbmciIDogIk5v
dCBibG9ja2luZyIpLCByZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCBmMGVjOGRj
MWI3MTY5YmNjYTU1YTY1NDkxMmVkMmZlZjUzNzBkZjEwLi5jMDFlODk1OWU4MDdmZjYyNGVmODU3
N2ViMzU1NjVlNDJkOTNhM2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkKQEAgLTIwNSw2ICsyMDUsNyBAQCBkZWYgZm9yd2FyZF9kZWNsYXJhdGlvbnNfYW5kX2hl
YWRlcnMocmVjZWl2ZXIpOgogICAgICAgICAnU3RyaW5nJywKICAgICAgICAgJ1dlYkNvcmU6OkRv
Y3VtZW50SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpGZXRjaElkZW50aWZpZXInLAor
ICAgICAgICAnV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlBvaW50ZXJJRCcsCiAgICAgICAgICdX
ZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcicsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQ
SUZyYW1lSGFuZGxlLmNwcAppbmRleCA3OTY0NmFjNmU1OWM0MWQ0ZGY3MDkwMWRiYTdlMjY3NTMz
NmQ1MjRhLi40MDgwMTM4ODU0OGExODExYWI1OWU1Y2IyNDVhMTE1MjExNDJiZWZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5jcHAKQEAgLTMxLDE3ICszMSwx
NyBAQAogCiBuYW1lc3BhY2UgQVBJIHsKIAotUmVmPEZyYW1lSGFuZGxlPiBGcmFtZUhhbmRsZTo6
Y3JlYXRlKHVpbnQ2NF90IGZyYW1lSUQpCitSZWY8RnJhbWVIYW5kbGU+IEZyYW1lSGFuZGxlOjpj
cmVhdGUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgRnJhbWVIYW5kbGUoZnJhbWVJRCwgZmFsc2UpKTsKIH0KIAotUmVmPEZyYW1l
SGFuZGxlPiBGcmFtZUhhbmRsZTo6Y3JlYXRlQXV0b2NvbnZlcnRpbmcodWludDY0X3QgZnJhbWVJ
RCkKK1JlZjxGcmFtZUhhbmRsZT4gRnJhbWVIYW5kbGU6OmNyZWF0ZUF1dG9jb252ZXJ0aW5nKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEZyYW1lSGFuZGxlKGZyYW1lSUQsIHRydWUpKTsKIH0KIAotRnJhbWVIYW5kbGU6OkZyYW1l
SGFuZGxlKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNBdXRvY29udmVydGluZykKK0ZyYW1lSGFu
ZGxlOjpGcmFtZUhhbmRsZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCBp
c0F1dG9jb252ZXJ0aW5nKQogICAgIDogbV9mcmFtZUlEKGZyYW1lSUQpCiAgICAgLCBtX2lzQXV0
b2NvbnZlcnRpbmcoaXNBdXRvY29udmVydGluZykKIHsKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBG
cmFtZUhhbmRsZTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIAogYm9vbCBG
cmFtZUhhbmRsZTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPE9iamVjdD4m
IHJlc3VsdCkKIHsKLSAgICB1aW50NjRfdCBmcmFtZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBmcmFtZUlEOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZnJhbWVJRCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJ
L0FQSUZyYW1lSGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5k
bGUuaAppbmRleCBiMTBlODA4YTRiMTlhZDMxM2Q4YjQ1NWMyM2I5ZDgzOTljYzM4NTUwLi4xYzY0
YTRhZDFlODAyYTA0NjcyOTgxYmNiZjhhNzYwMTY0MjVmZmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBBUElG
cmFtZUhhbmRsZV9oCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIAogbmFtZXNwYWNlIElQ
QyB7CkBAIC0zOCwyMCArMzksMjAgQEAgbmFtZXNwYWNlIEFQSSB7CiAKIGNsYXNzIEZyYW1lSGFu
ZGxlIDogcHVibGljIE9iamVjdEltcGw8T2JqZWN0OjpUeXBlOjpGcmFtZUhhbmRsZT4gewogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8RnJhbWVIYW5kbGU+IGNyZWF0ZSh1aW50NjRfdCBmcmFtZUlE
KTsKLSAgICBzdGF0aWMgUmVmPEZyYW1lSGFuZGxlPiBjcmVhdGVBdXRvY29udmVydGluZyh1aW50
NjRfdCBmcmFtZUlEKTsKKyAgICBzdGF0aWMgUmVmPEZyYW1lSGFuZGxlPiBjcmVhdGUoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICBzdGF0aWMgUmVmPEZyYW1lSGFuZGxlPiBjcmVhdGVB
dXRvY29udmVydGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogCi0gICAgZXhwbGljaXQg
RnJhbWVIYW5kbGUodWludDY0X3QgZnJhbWVJRCwgYm9vbCBpc0F1dG9jb252ZXJ0aW5nKTsKKyAg
ICBleHBsaWNpdCBGcmFtZUhhbmRsZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGJvb2wgaXNB
dXRvY29udmVydGluZyk7CiAgICAgdmlydHVhbCB+RnJhbWVIYW5kbGUoKTsKIAotICAgIHVpbnQ2
NF90IGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQogICAg
IGJvb2wgaXNBdXRvY29udmVydGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNBdXRvY29udmVydGlu
ZzsgfQogCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGlj
IGJvb2wgZGVjb2RlKElQQzo6RGVjb2RlciYsIFJlZlB0cjxPYmplY3Q+Jik7CiAKIHByaXZhdGU6
Ci0gICAgY29uc3QgdWludDY0X3QgbV9mcmFtZUlEOworICAgIGNvbnN0IFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBtX2ZyYW1lSUQ7CiAgICAgY29uc3QgYm9vbCBtX2lzQXV0b2NvbnZlcnRpbmc7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLRnJh
bWVIYW5kbGUubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5k
bGUubW0KaW5kZXggYTQxYTYxM2E3ZDM3MWQ3YWUyYTczZTQwNTgyN2IwYWJkNzM1NzA3MC4uZWRj
YjM4ZTYzNWE3YmYwOTI3YjExMGNjN2Q0Y2Y5NzY2YWI1ZDA4MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS0ZyYW1lSGFuZGxlLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5tbQpAQCAtMjYsNiArMjYsOCBA
QAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJfV0tGcmFtZUhhbmRsZUludGVybmFsLmgi
CiAKKyNpbXBvcnQgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CisKIEBpbXBsZW1lbnRhdGlv
biBfV0tGcmFtZUhhbmRsZSB7CiAgICAgQVBJOjpPYmplY3RTdG9yYWdlPEFQSTo6RnJhbWVIYW5k
bGU+IF9mcmFtZUhhbmRsZTsKIH0KQEAgLTUwLDEyICs1MiwxMiBAQCAtIChCT09MKWlzRXF1YWw6
KGlkKW9iamVjdAogCiAtIChOU1VJbnRlZ2VyKWhhc2gKIHsKLSAgICByZXR1cm4gX2ZyYW1lSGFu
ZGxlLT5mcmFtZUlEKCk7CisgICAgcmV0dXJuIF9mcmFtZUhhbmRsZS0+ZnJhbWVJRCgpLnRvVUlu
dDY0KCk7CiB9CiAKIC0gKHVpbnQ2NF90KV9mcmFtZUlECiB7Ci0gICAgcmV0dXJuIF9mcmFtZUhh
bmRsZS0+ZnJhbWVJRCgpOworICAgIHJldHVybiBfZnJhbWVIYW5kbGUtPmZyYW1lSUQoKS50b1VJ
bnQ2NCgpOwogfQogCiAjcHJhZ21hIG1hcmsgTlNDb3B5aW5nIHByb3RvY29sIGltcGxlbWVudGF0
aW9uCkBAIC04MywxNCArODUsMTQgQEAgLSAoaWQpaW5pdFdpdGhDb2RlcjooTlNDb2RlciAqKWRl
Y29kZXIKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9CiAKLSAgICBBUEk6Ok9iamVjdDo6Y29u
c3RydWN0SW5XcmFwcGVyPEFQSTo6RnJhbWVIYW5kbGU+KHNlbGYsIGZyYW1lSUQudW5zaWduZWRM
b25nTG9uZ1ZhbHVlLCBmYWxzZSk7CisgICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBl
cjxBUEk6OkZyYW1lSGFuZGxlPihzZWxmLCBXZWJDb3JlOjpmcmFtZUlkZW50aWZpZXJGcm9tSUQo
ZnJhbWVJRC51bnNpZ25lZExvbmdMb25nVmFsdWUpLCBmYWxzZSk7CiAKICAgICByZXR1cm4gc2Vs
ZjsKIH0KIAogLSAodm9pZCllbmNvZGVXaXRoQ29kZXI6KE5TQ29kZXIgKiljb2RlcgogewotICAg
IFtjb2RlciBlbmNvZGVPYmplY3Q6QChfZnJhbWVIYW5kbGUtPmZyYW1lSUQoKSkgZm9yS2V5OkAi
ZnJhbWVJRCJdOworICAgIFtjb2RlciBlbmNvZGVPYmplY3Q6QChbc2VsZiBfZnJhbWVJRF0pIGZv
cktleTpAImZyYW1lSUQiXTsKIH0KIAogI3ByYWdtYSBtYXJrIFdLT2JqZWN0IHByb3RvY29sIGlt
cGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcAppbmRleCA5ZGViNzZmZjEzMmM2
Y2I1ZmRmNWViZjUyMjIzNGY2ZDQ0M2VmOTRkLi4zOGE1YmZmNmFmZDI1NzFkNTJkY2U0YzA5ODA0
YWE3NTQ0YWJlNGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAKQEAgLTEwOCw3ICsxMDgs
NyBAQCBWZWN0b3I8dWludDY0X3Q+IEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6Y29hbGVzY2VDaGFs
bGVuZ2VzTWF0Y2hpbmcodWludDY0X3QgY2hhbAogICAgIHJldHVybiBjaGFsbGVuZ2VzVG9Db2Fs
ZXNjZTsKIH0KIAotdm9pZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwg
Q2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgQXV0
aGVudGljYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUGFn
ZUlkZW50aWZpZXIgcGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBDaGFsbGVuZ2VDb21w
bGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChwYWdlSUQp
OwogICAgIEFTU0VSVChmcmFtZUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgKaW5kZXggODZlNzQ0
YzEwOGRmNGNiY2Y1ZDA0NzYwOWFjZjk2YzY4MjNkNmIxNi4uNDAzNmVhYjc3ZmQ5Y2UxNTU1MzBm
YjZhNGNjNTYxNjgzZDdlZDkxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgKQEAgLTI5LDYgKzI5
LDcgQEAKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1N1cHBsZW1lbnQuaCIKICNpbmNsdWRlICJX
ZWJQcm9jZXNzU3VwcGxlbWVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhh
bmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtNjEsNyArNjIsNyBAQCBwdWJs
aWM6CiAKICAgICBzdGF0aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUoKTsKIAotICAgIHZv
aWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYpOworICAgIHZvaWQgZGlkUmVjZWl2
ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
JiwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UoSVBDOjpNZXNzYWdlU2VuZGVyJiBkb3dubG9hZCwgY29uc3Qg
V2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFu
ZGxlciYmKTsKIAogICAgIHZvaWQgY29tcGxldGVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh1aW50
NjRfdCBjaGFsbGVuZ2VJRCwgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbiwgV2Vi
Q29yZTo6Q3JlZGVudGlhbCYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Zy
YW1lSW5mb0RhdGEuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRnJhbWVJbmZvRGF0YS5jcHAK
aW5kZXggOTQ0MjM3NDU2NTgxNmY0ZTg4MDQwZmYwODRlMGMxYTNiZTUzMWZmNC4uM2U5ZDcyZWFk
NTNjNTgzMmM0MzMxNzM0YjcwNzQxZmRiMzRhMjEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvRnJhbWVJbmZvRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRnJh
bWVJbmZvRGF0YS5jcHAKQEAgLTQ5LDggKzQ5LDEyIEBAIGJvb2wgRnJhbWVJbmZvRGF0YTo6ZGVj
b2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgRnJhbWVJbmZvRGF0YSYgcmVzdWx0KQogICAgIGlm
ICghc2VjdXJpdHlPcmlnaW4pCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXN1bHQuc2Vj
dXJpdHlPcmlnaW4gPSBXVEZNb3ZlKCpzZWN1cml0eU9yaWdpbik7Ci0gICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQuZnJhbWVJRCkpCisgICAgCisgICAgT3B0aW9uYWw8T3B0aW9uYWw8RnJh
bWVJZGVudGlmaWVyPj4gZnJhbWVJRDsKKyAgICBkZWNvZGVyID4+IGZyYW1lSUQ7CisgICAgaWYg
KCFmcmFtZUlEKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmVzdWx0LmZyYW1lSUQgPSBX
VEZNb3ZlKCpmcmFtZUlEKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvRnJhbWVJbmZvRGF0YS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
RnJhbWVJbmZvRGF0YS5oCmluZGV4IGE4MjgzNjg2ZjE2YWIzY2QzNTI0OWNlNzA1ZDNmMmI4ZTdi
YjNjNjYuLjUzODcxNmViMjFlYjU0MGE0MTc3OWM3ZTZiOGZmZDQzNTJmYmMxM2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9GcmFtZUluZm9EYXRhLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBv
bmNlCiAKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdp
bkRhdGEuaD4KIApAQCAtNDIsNyArNDMsNyBAQCBzdHJ1Y3QgRnJhbWVJbmZvRGF0YSB7CiAgICAg
Ym9vbCBpc01haW5GcmFtZSB7IGZhbHNlIH07CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
IHJlcXVlc3Q7CiAgICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHNlY3VyaXR5T3JpZ2lu
OwotICAgIHVpbnQ2NF90IGZyYW1lSUQgeyAwIH07CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyPiBmcmFtZUlEOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSUZyYW1lSW5mby5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJRnJhbWVJbmZvLmNwcAppbmRleCA5NmIxM2QxNzg1NDQ1YzM5NzMzYjJmMDQ4YTYw
ZjIwMjE1MDhjOGM4Li44Mjk3MjhiOTFkNjFhYTI2MDQ3NWUyYTFjOTFkMjQyMGU5Nzg2MGZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJRnJhbWVJbmZvLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJRnJhbWVJbmZvLmNwcApAQCAtNTUs
NyArNTUsNyBAQCBGcmFtZUluZm86OkZyYW1lSW5mbyhjb25zdCBXZWJLaXQ6OkZyYW1lSW5mb0Rh
dGEmIGZyYW1lSW5mb0RhdGEsIFdlYktpdDo6V2ViUGFnZQogICAgIDogbV9pc01haW5GcmFtZSB7
IGZyYW1lSW5mb0RhdGEuaXNNYWluRnJhbWUgfQogICAgICwgbV9yZXF1ZXN0IHsgZnJhbWVJbmZv
RGF0YS5yZXF1ZXN0IH0KICAgICAsIG1fc2VjdXJpdHlPcmlnaW4geyBTZWN1cml0eU9yaWdpbjo6
Y3JlYXRlKGZyYW1lSW5mb0RhdGEuc2VjdXJpdHlPcmlnaW4uc2VjdXJpdHlPcmlnaW4oKSkgfQot
ICAgICwgbV9oYW5kbGUgeyBBUEk6OkZyYW1lSGFuZGxlOjpjcmVhdGUoZnJhbWVJbmZvRGF0YS5m
cmFtZUlEKSB9CisgICAgLCBtX2hhbmRsZSB7IEFQSTo6RnJhbWVIYW5kbGU6OmNyZWF0ZShmcmFt
ZUluZm9EYXRhLmZyYW1lSUQgPyAqZnJhbWVJbmZvRGF0YS5mcmFtZUlEIDogV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyeyB9KSB9CiAgICAgLCBtX3BhZ2UgeyBtYWtlUmVmUHRyKHBhZ2UpIH0KIHsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVIYW5k
bGVSZWYuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tGcmFtZUhhbmRsZVJl
Zi5jcHAKaW5kZXggYjM5ZmNhMWJlNTdmMGQyNzRkODQ1N2YwNDNmNTBlYWI2MmYyM2M1OC4uZTg3
M2ZjNDY1MWQ1MjY5Mzg5MzY5ZmM2MGE3ODAyNjU0MjA1ZGQ3YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tGcmFtZUhhbmRsZVJlZi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tGcmFtZUhhbmRsZVJlZi5jcHAKQEAgLTM4LDUgKzM4
LDUgQEAgV0tUeXBlSUQgV0tGcmFtZUhhbmRsZUdldFR5cGVJRCgpCiAKIHVpbnQ2NF90IFdLRnJh
bWVIYW5kbGVHZXRGcmFtZUlEKFdLRnJhbWVIYW5kbGVSZWYgZnJhbWVIYW5kbGVSZWYpCiB7Ci0g
ICAgcmV0dXJuIHRvSW1wbChmcmFtZUhhbmRsZVJlZiktPmZyYW1lSUQoKTsKKyAgICByZXR1cm4g
dG9JbXBsKGZyYW1lSGFuZGxlUmVmKS0+ZnJhbWVJRCgpLnRvVUludDY0KCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAwMzkxYTE5
OTJlMzUzMmRiZTVmMjFkYjY5MWRkODEwOGFhZTJhNjZjLi4wOTUxZTk0NDM3YmNlNDY2NWQ2MTVi
ZDA0MGQyNmRmMjBiNjRkZjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KQEAgLTY2MjEsNyArNjYyMSw3IEBAIC0gKE5TUHJpbnRPcGVyYXRp
b24gKilfcHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvOihOU1ByaW50SW5mbyAqKXByaW50SW5m
bwogCiAtIChOU1ByaW50T3BlcmF0aW9uICopX3ByaW50T3BlcmF0aW9uV2l0aFByaW50SW5mbzoo
TlNQcmludEluZm8gKilwcmludEluZm8gZm9yRnJhbWU6KF9XS0ZyYW1lSGFuZGxlICopZnJhbWVI
YW5kbGUKIHsKLSAgICBpZiAoYXV0byogd2ViRnJhbWVQcm94eSA9IF9wYWdlLT5wcm9jZXNzKCku
d2ViRnJhbWUoZnJhbWVIYW5kbGUuX2ZyYW1lSUQpKQorICAgIGlmIChhdXRvKiB3ZWJGcmFtZVBy
b3h5ID0gX3BhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShXZWJDb3JlOjpmcmFtZUlkZW50aWZpZXJG
cm9tSUQoZnJhbWVIYW5kbGUuX2ZyYW1lSUQpKSkKICAgICAgICAgcmV0dXJuIF9pbXBsLT5wcmlu
dE9wZXJhdGlvbldpdGhQcmludEluZm8ocHJpbnRJbmZvLCAqd2ViRnJhbWVQcm94eSk7CiAgICAg
cmV0dXJuIG5pbDsKIH0KQEAgLTcxMTQsNyArNzExNCw3IEBAIC0gKHZvaWQpX2NvbXBsZXRlSW1t
ZWRpYXRlQWN0aW9uQW5pbWF0aW9uCiAKIC0gKEJPT0wpX2NhbkNoYW5nZUZyYW1lTGF5b3V0Oihf
V0tGcmFtZUhhbmRsZSAqKWZyYW1lSGFuZGxlCiB7Ci0gICAgaWYgKGF1dG8qIHdlYkZyYW1lUHJv
eHkgPSBfcGFnZS0+cHJvY2VzcygpLndlYkZyYW1lKGZyYW1lSGFuZGxlLl9mcmFtZUlEKSkKKyAg
ICBpZiAoYXV0byogd2ViRnJhbWVQcm94eSA9IF9wYWdlLT5wcm9jZXNzKCkud2ViRnJhbWUoV2Vi
Q29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKGZyYW1lSGFuZGxlLl9mcmFtZUlEKSkpCiAgICAg
ICAgIHJldHVybiBfaW1wbC0+Y2FuQ2hhbmdlRnJhbWVMYXlvdXQoKndlYkZyYW1lUHJveHkpOwog
ICAgIHJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLSW5zcGVjdG9yLm1tCmluZGV4IGM0OTliMThmYTkzODhhNDU4NDMxNDc3MDhkM2Qy
OTZkZDUzMjkwYTQuLjNkMTVlYzJlZWE3OTExYjJhMzlkNjQwODc5MzZiZjRlYTYzNDEzYWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3Iu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5t
bQpAQCAtMzAsNiArMzAsNyBAQAogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW1wb3J0
ICJfV0tGcmFtZUhhbmRsZUludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tJbnNwZWN0b3JJbnRlcm5h
bC5oIgorI2ltcG9ydCA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbXBvcnQgPHd0Zi9S
ZXRhaW5QdHIuaD4KIAogQGltcGxlbWVudGF0aW9uIF9XS0luc3BlY3RvcgpAQCAtOTksNyArMTAw
LDcgQEAgLSAodm9pZClzaG93UmVzb3VyY2VzCiAtICh2b2lkKXNob3dNYWluUmVzb3VyY2VGb3JG
cmFtZTooX1dLRnJhbWVIYW5kbGUgKilmcmFtZQogewogICAgIGlmIChhdXRvKiBwYWdlID0gX2lu
c3BlY3Rvci0+aW5zcGVjdGVkUGFnZSgpKQotICAgICAgICBfaW5zcGVjdG9yLT5zaG93TWFpblJl
c291cmNlRm9yRnJhbWUocGFnZS0+cHJvY2VzcygpLndlYkZyYW1lKGZyYW1lLl9mcmFtZUlEKSk7
CisgICAgICAgIF9pbnNwZWN0b3ItPnNob3dNYWluUmVzb3VyY2VGb3JGcmFtZShwYWdlLT5wcm9j
ZXNzKCkud2ViRnJhbWUoV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKGZyYW1lLl9mcmFt
ZUlEKSkpOwogfQogCiAtICh2b2lkKWF0dGFjaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3Bw
CmluZGV4IDdhY2M2OGJhZWZlYWIwNzNiZjY2MGY2YzBiY2U1ZWZiOTdiNWFlNjIuLmQ4NzQ4ZWVh
N2ZjNmRhZTE1NDI2YWRhZWE5NjliNzRiZGVlNjNkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0
Y2hlci5jcHAKQEAgLTM4Miw3ICszODIsNyBAQCB2b2lkIFNpbXVsYXRlZElucHV0RGlzcGF0Y2hl
cjo6dHJhbnNpdGlvbklucHV0U291cmNlVG9TdGF0ZShTaW11bGF0ZWRJbnB1dFNvdXJjZQogICAg
IH0KIH0KIAotdm9pZCBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXI6OnJ1bih1aW50NjRfdCBmcmFt
ZUlELCBWZWN0b3I8U2ltdWxhdGVkSW5wdXRLZXlGcmFtZT4mJiBrZXlGcmFtZXMsIEhhc2hTZXQ8
UmVmPFNpbXVsYXRlZElucHV0U291cmNlPj4mIGlucHV0U291cmNlcywgQXV0b21hdGlvbkNvbXBs
ZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFNpbXVsYXRlZElucHV0RGlz
cGF0Y2hlcjo6cnVuKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBWZWN0b3I8U2lt
dWxhdGVkSW5wdXRLZXlGcmFtZT4mJiBrZXlGcmFtZXMsIEhhc2hTZXQ8UmVmPFNpbXVsYXRlZElu
cHV0U291cmNlPj4mIGlucHV0U291cmNlcywgQXV0b21hdGlvbkNvbXBsZXRpb25IYW5kbGVyJiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFpc0FjdGl2ZSgpKTsKICAgICBpZiAo
aXNBY3RpdmUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21h
dGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmgKaW5kZXggN2Y0MTQxY2UwYTM5
ZTU2MDczYzdlYzhhOTY1NjBjYmMzNDhhZGZhNi4uYjA4OTFhOGYwYjY3NTI5Y2I5YjM5ODZiODc5
NTMwNzEyYTRhYWQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21h
dGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5oCkBAIC0yOCw2ICsyOCw3
IEBACiAjaWYgRU5BQkxFKFdFQkRSSVZFUl9BQ1RJT05TX0FQSSkKIAogI2luY2x1ZGUgIldlYkV2
ZW50LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3
dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1
ZGUgPHd0Zi9PcHRpb25hbC5oPgpAQCAtMTMyLDcgKzEzMyw3IEBAIHB1YmxpYzoKICNpZiBFTkFC
TEUoV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykKICAgICAgICAgdmlydHVhbCB2b2lk
IHNpbXVsYXRlS2V5Ym9hcmRJbnRlcmFjdGlvbihXZWJQYWdlUHJveHkmLCBLZXlib2FyZEludGVy
YWN0aW9uLCBXVEY6OlZhcmlhbnQ8VmlydHVhbEtleSwgQ2hhcktleT4mJiwgQXV0b21hdGlvbkNv
bXBsZXRpb25IYW5kbGVyJiYpID0gMDsKICNlbmRpZgotICAgICAgICB2aXJ0dWFsIHZvaWQgdmll
d3BvcnRJblZpZXdDZW50ZXJQb2ludE9mRWxlbWVudChXZWJQYWdlUHJveHkmLCB1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBTdHJpbmcmIG5vZGVIYW5kbGUsIEZ1bmN0aW9uPHZvaWQgKE9wdGlvbmFs
PFdlYkNvcmU6OkludFBvaW50PiwgT3B0aW9uYWw8QXV0b21hdGlvbkNvbW1hbmRFcnJvcj4pPiYm
KSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCB2aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZF
bGVtZW50KFdlYlBhZ2VQcm94eSYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBub2RlSGFuZGxlLCBGdW5jdGlvbjx2b2lkIChPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2lu
dD4sIE9wdGlvbmFsPEF1dG9tYXRpb25Db21tYW5kRXJyb3I+KT4mJikgPSAwOwogICAgIH07CiAK
ICAgICBzdGF0aWMgUmVmPFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlcj4gY3JlYXRlKFdlYlBhZ2VQ
cm94eSYgcGFnZSwgU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyOjpDbGllbnQmIGNsaWVudCkKQEAg
LTE0Miw3ICsxNDMsNyBAQCBwdWJsaWM6CiAKICAgICB+U2ltdWxhdGVkSW5wdXREaXNwYXRjaGVy
KCk7CiAKLSAgICB2b2lkIHJ1bih1aW50NjRfdCBmcmFtZUlELCBWZWN0b3I8U2ltdWxhdGVkSW5w
dXRLZXlGcmFtZT4mJiBrZXlGcmFtZXMsIEhhc2hTZXQ8UmVmPFNpbXVsYXRlZElucHV0U291cmNl
Pj4mIGlucHV0U291cmNlcywgQXV0b21hdGlvbkNvbXBsZXRpb25IYW5kbGVyJiYpOworICAgIHZv
aWQgcnVuKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgVmVjdG9yPFNpbXVsYXRlZElucHV0S2V5
RnJhbWU+JiYga2V5RnJhbWVzLCBIYXNoU2V0PFJlZjxTaW11bGF0ZWRJbnB1dFNvdXJjZT4+JiBp
bnB1dFNvdXJjZXMsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciYmKTsKICAgICB2b2lkIGNh
bmNlbCgpOwogCiAgICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0OwpAQCAtMTY1LDcgKzE2Niw3IEBA
IHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5JiBtX3BhZ2U7CiAgICAgU2ltdWxhdGVkSW5wdXRE
aXNwYXRjaGVyOjpDbGllbnQmIG1fY2xpZW50OwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IG1f
ZnJhbWVJRDsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IG1fZnJhbWVJ
RDsKICAgICBBdXRvbWF0aW9uQ29tcGxldGlvbkhhbmRsZXIgbV9ydW5Db21wbGV0aW9uSGFuZGxl
cjsKICAgICBBdXRvbWF0aW9uQ29tcGxldGlvbkhhbmRsZXIgbV9rZXlGcmFtZVRyYW5zaXRpb25D
b21wbGV0aW9uSGFuZGxlcjsKICAgICBSdW5Mb29wOjpUaW1lcjxTaW11bGF0ZWRJbnB1dERpc3Bh
dGNoZXI+IG1fa2V5RnJhbWVUcmFuc2l0aW9uRHVyYXRpb25UaW1lcjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lv
bi5jcHAKaW5kZXggY2NlNWM0ODE3YTgwNDkxN2NkYzE5OWMxYjAxNjBlMjU2ZTliZTI5Ny4uNDA1
OGEwYjU2Njk2YWZmZWRhNTA3MmYwZjg4M2Q5MGVjMGY3ZWViNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lv
bi5jcHAKQEAgLTIwMiwxMCArMjAyLDEwIEBAIFN0cmluZyBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6
aGFuZGxlRm9yV2ViUGFnZVByb3h5KGNvbnN0IFdlYlBhZ2VQcm94eSYgd2ViUGFnZVByCiAgICAg
cmV0dXJuIGhhbmRsZTsKIH0KIAotT3B0aW9uYWw8dWludDY0X3Q+IFdlYkF1dG9tYXRpb25TZXNz
aW9uOjp3ZWJGcmFtZUlERm9ySGFuZGxlKGNvbnN0IFN0cmluZyYgaGFuZGxlKQorT3B0aW9uYWw8
RnJhbWVJZGVudGlmaWVyPiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2ViRnJhbWVJREZvckhhbmRs
ZShjb25zdCBTdHJpbmcmIGhhbmRsZSkKIHsKICAgICBpZiAoaGFuZGxlLmlzRW1wdHkoKSkKLSAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBGcmFtZUlkZW50aWZpZXIgeyB9OyAvLyBU
aGlzIGlzIGV4cGxpY2l0bHkgemVybzsgc2VlIHdlYmtpdC5vcmcvYi8xNTk3NzcuCiAKICAgICBh
dXRvIGl0ZXIgPSBtX2hhbmRsZVdlYkZyYW1lTWFwLmZpbmQoaGFuZGxlKTsKICAgICBpZiAoaXRl
ciA9PSBtX2hhbmRsZVdlYkZyYW1lTWFwLmVuZCgpKQpAQCAtMjE0LDI5ICsyMTQsMjkgQEAgT3B0
aW9uYWw8dWludDY0X3Q+IFdlYkF1dG9tYXRpb25TZXNzaW9uOjp3ZWJGcmFtZUlERm9ySGFuZGxl
KGNvbnN0IFN0cmluZyYgaGFuZGwKICAgICByZXR1cm4gaXRlci0+dmFsdWU7CiB9CiAKLVN0cmlu
ZyBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6aGFuZGxlRm9yV2ViRnJhbWVJRCh1aW50NjRfdCBmcmFt
ZUlEKQorU3RyaW5nIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpoYW5kbGVGb3JXZWJGcmFtZUlEKE9w
dGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCkKIHsKLSAgICBpZiAoIWZyYW1lSUQpCisg
ICAgaWYgKCFmcmFtZUlEIHx8ICEqZnJhbWVJRCkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5n
KCk7CiAKICAgICBmb3IgKGF1dG8mIHByb2Nlc3MgOiBtX3Byb2Nlc3NQb29sLT5wcm9jZXNzZXMo
KSkgewotICAgICAgICBpZiAoV2ViRnJhbWVQcm94eSogZnJhbWUgPSBwcm9jZXNzLT53ZWJGcmFt
ZShmcmFtZUlEKSkgeworICAgICAgICBpZiAoV2ViRnJhbWVQcm94eSogZnJhbWUgPSBwcm9jZXNz
LT53ZWJGcmFtZSgqZnJhbWVJRCkpIHsKICAgICAgICAgICAgIGlmIChmcmFtZS0+aXNNYWluRnJh
bWUoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAgICAgfQogCi0gICAgYXV0byBpdGVyID0gbV93ZWJGcmFtZUhh
bmRsZU1hcC5maW5kKGZyYW1lSUQpOworICAgIGF1dG8gaXRlciA9IG1fd2ViRnJhbWVIYW5kbGVN
YXAuZmluZCgqZnJhbWVJRCk7CiAgICAgaWYgKGl0ZXIgIT0gbV93ZWJGcmFtZUhhbmRsZU1hcC5l
bmQoKSkKICAgICAgICAgcmV0dXJuIGl0ZXItPnZhbHVlOwogCiAgICAgU3RyaW5nIGhhbmRsZSA9
ICJmcmFtZS0iICsgY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpLmNvbnZlcnRUb0FTQ0lJVXBw
ZXJjYXNlKCk7CiAKLSAgICBhdXRvIGZpcnN0QWRkUmVzdWx0ID0gbV93ZWJGcmFtZUhhbmRsZU1h
cC5hZGQoZnJhbWVJRCwgaGFuZGxlKTsKKyAgICBhdXRvIGZpcnN0QWRkUmVzdWx0ID0gbV93ZWJG
cmFtZUhhbmRsZU1hcC5hZGQoKmZyYW1lSUQsIGhhbmRsZSk7CiAgICAgUkVMRUFTRV9BU1NFUlQo
Zmlyc3RBZGRSZXN1bHQuaXNOZXdFbnRyeSk7CiAKLSAgICBhdXRvIHNlY29uZEFkZFJlc3VsdCA9
IG1faGFuZGxlV2ViRnJhbWVNYXAuYWRkKGhhbmRsZSwgZnJhbWVJRCk7CisgICAgYXV0byBzZWNv
bmRBZGRSZXN1bHQgPSBtX2hhbmRsZVdlYkZyYW1lTWFwLmFkZChoYW5kbGUsICpmcmFtZUlEKTsK
ICAgICBSRUxFQVNFX0FTU0VSVChzZWNvbmRBZGRSZXN1bHQuaXNOZXdFbnRyeSk7CiAKICAgICBy
ZXR1cm4gaGFuZGxlOwpAQCAtMzYyLDcgKzM2Miw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b246OnN3aXRjaFRvQnJvd3NpbmdDb250ZXh0KGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0
CiAgICAgaWYgKCFwYWdlKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJP
UihXaW5kb3dOb3RGb3VuZCk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCA9IHdl
YkZyYW1lSURGb3JIYW5kbGUob3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpvcHRpb25hbEZyYW1lSGFu
ZGxlIDogZW1wdHlTdHJpbmcoKSk7CisgICAgYXV0byBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhh
bmRsZShvcHRpb25hbEZyYW1lSGFuZGxlID8gKm9wdGlvbmFsRnJhbWVIYW5kbGUgOiBlbXB0eVN0
cmluZygpKTsKICAgICBpZiAoIWZyYW1lSUQpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVE
RUZJTkVEX0VSUk9SKEZyYW1lTm90Rm91bmQpOwogCkBAIC00NTksNyArNDU5LDcgQEAgdm9pZCBX
ZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRlKGNvbnN0IFN0
cmluZyYgYnJvd3NpbmdDb24KICAgICAgICAgJiYgcGFnZS0+cGFnZUxvYWRTdGF0ZSgpLmlzTG9h
ZGluZygpICYmIG1fY2xpZW50LT5pc1Nob3dpbmdKYXZhU2NyaXB0RGlhbG9nT25QYWdlKCp0aGlz
LCAqcGFnZSk7CiAKICAgICBpZiAob3B0aW9uYWxGcmFtZUhhbmRsZSAmJiAhb3B0aW9uYWxGcmFt
ZUhhbmRsZS0+aXNFbXB0eSgpKSB7Ci0gICAgICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlE
ID0gd2ViRnJhbWVJREZvckhhbmRsZSgqb3B0aW9uYWxGcmFtZUhhbmRsZSk7CisgICAgICAgIGF1
dG8gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUoKm9wdGlvbmFsRnJhbWVIYW5kbGUpOwog
ICAgICAgICBpZiAoIWZyYW1lSUQpCiAgICAgICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVG
SU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKICAgICAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUg
PSBwYWdlLT5wcm9jZXNzKCkud2ViRnJhbWUoZnJhbWVJRC52YWx1ZSgpKTsKQEAgLTUzNyw3ICs1
MzcsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNwb25kVG9QZW5kaW5nUGFnZU5h
dmlnYXRpb25DYWxsYmFja3NXaXRoVGltZW91dChIYQogICAgIH0KIH0KIAotc3RhdGljIFdlYlBh
Z2VQcm94eSogZmluZFBhZ2VGb3JGcmFtZUlEKGNvbnN0IFdlYlByb2Nlc3NQb29sJiBwcm9jZXNz
UG9vbCwgdWludDY0X3QgZnJhbWVJRCkKK3N0YXRpYyBXZWJQYWdlUHJveHkqIGZpbmRQYWdlRm9y
RnJhbWVJRChjb25zdCBXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlEKQogewogICAgIGZvciAoYXV0byYgcHJvY2VzcyA6IHByb2Nlc3NQb29sLnByb2Nl
c3NlcygpKSB7CiAgICAgICAgIGlmIChhdXRvKiBmcmFtZSA9IHByb2Nlc3MtPndlYkZyYW1lKGZy
YW1lSUQpKQpAQCAtNTQ2LDcgKzU0Niw3IEBAIHN0YXRpYyBXZWJQYWdlUHJveHkqIGZpbmRQYWdl
Rm9yRnJhbWVJRChjb25zdCBXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIHVpbnQ2CiAgICAg
cmV0dXJuIG51bGxwdHI7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnJlc3BvbmRU
b1BlbmRpbmdGcmFtZU5hdmlnYXRpb25DYWxsYmFja3NXaXRoVGltZW91dChIYXNoTWFwPHVpbnQ2
NF90LCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4m
IG1hcCkKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnJlc3BvbmRUb1BlbmRpbmdGcmFtZU5h
dmlnYXRpb25DYWxsYmFja3NXaXRoVGltZW91dChIYXNoTWFwPEZyYW1lSWRlbnRpZmllciwgUmVm
UHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+JiBtYXApCiB7
CiAgICAgSW5zcGVjdG9yOjpFcnJvclN0cmluZyB0aW1lb3V0RXJyb3IgPSBTVFJJTkdfRk9SX1BS
RURFRklORURfRVJST1JfTkFNRShUaW1lb3V0KTsKICAgICBmb3IgKGF1dG8gaWQgOiBjb3B5VG9W
ZWN0b3IobWFwLmtleXMoKSkpIHsKQEAgLTkyNCw3ICs5MjQsNyBAQCB2b2lkIFdlYkF1dG9tYXRp
b25TZXNzaW9uOjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihjb25zdCBTdHJpbmcmIGJyb3dz
aW5nQ29udAogICAgIGlmICghcGFnZSkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklO
RURfRVJST1IoV2luZG93Tm90Rm91bmQpOwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1l
SUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5kbGUgPyAqb3B0aW9uYWxG
cmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCkpOworICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZyYW1l
SURGb3JIYW5kbGUob3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpvcHRpb25hbEZyYW1lSGFuZGxlIDog
ZW1wdHlTdHJpbmcoKSk7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICBBU1lOQ19GQUlMX1dJ
VEhfUFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIApAQCAtOTY3LDExICs5NjcsMTEg
QEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVzb2x2ZUNoaWxkRnJhbWVIYW5kbGUoY29u
c3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHQKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIEFTWU5D
X0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKIAotICAgIE9wdGlv
bmFsPHVpbnQ2NF90PiBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShvcHRpb25hbEZyYW1l
SGFuZGxlID8gKm9wdGlvbmFsRnJhbWVIYW5kbGUgOiBlbXB0eVN0cmluZygpKTsKKyAgICBhdXRv
IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5kbGUgPyAqb3B0
aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCkpOwogICAgIGlmICghZnJhbWVJRCkKICAg
ICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoRnJhbWVOb3RGb3VuZCk7CiAK
LSAgICBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWludDY0
X3QpPiBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyksIGNhbGxiYWNrID0gY2FsbGJhY2suY29weVJlZigpXShPcHRpb25hbDxTdHJpbmc+IGVy
cm9yVHlwZSwgdWludDY0X3QgZnJhbWVJRCkgbXV0YWJsZSB7CisgICAgV1RGOjpDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4p
PiBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyksIGNhbGxiYWNrID0gY2FsbGJhY2suY29weVJlZigpXShPcHRpb25hbDxTdHJpbmc+IGVycm9y
VHlwZSwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKSBtdXRhYmxlIHsKICAgICAg
ICAgaWYgKGVycm9yVHlwZSkgewogICAgICAgICAgICAgY2FsbGJhY2stPnNlbmRGYWlsdXJlKFNU
UklOR19GT1JfUFJFREVGSU5FRF9FUlJPUl9NRVNTQUdFKCplcnJvclR5cGUpKTsKICAgICAgICAg
ICAgIHJldHVybjsKQEAgLTEwMDQsMTEgKzEwMDQsMTEgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvbjo6cmVzb2x2ZVBhcmVudEZyYW1lSGFuZGxlKGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250
ZXgKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VS
Uk9SKFdpbmRvd05vdEZvdW5kKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEID0g
d2ViRnJhbWVJREZvckhhbmRsZShmcmFtZUhhbmRsZSk7CisgICAgYXV0byBmcmFtZUlEID0gd2Vi
RnJhbWVJREZvckhhbmRsZShmcmFtZUhhbmRsZSk7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAg
ICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIAotICAg
IFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCB1aW50NjRfdCk+
IGNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgY2FsbGJhY2sgPSBjYWxsYmFjay5jb3B5UmVmKCldKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JU
eXBlLCB1aW50NjRfdCBmcmFtZUlEKSBtdXRhYmxlIHsKKyAgICBXVEY6OkNvbXBsZXRpb25IYW5k
bGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPik+IGNv
bXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwg
Y2FsbGJhY2sgPSBjYWxsYmFjay5jb3B5UmVmKCldKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBl
LCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQpIG11dGFibGUgewogICAgICAgICBp
ZiAoZXJyb3JUeXBlKSB7CiAgICAgICAgICAgICBjYWxsYmFjay0+c2VuZEZhaWx1cmUoU1RSSU5H
X0ZPUl9QUkVERUZJTkVEX0VSUk9SX01FU1NBR0UoKmVycm9yVHlwZSkpOwogICAgICAgICAgICAg
cmV0dXJuOwpAQCAtMTAzNSw3ICsxMDM1LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6
Y29tcHV0ZUVsZW1lbnRMYXlvdXQoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW4KICAg
ICBpZiAoIXBhZ2UpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdp
bmRvd05vdEZvdW5kKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEID0gd2ViRnJh
bWVJREZvckhhbmRsZShmcmFtZUhhbmRsZSk7CisgICAgYXV0byBmcmFtZUlEID0gd2ViRnJhbWVJ
REZvckhhbmRsZShmcmFtZUhhbmRsZSk7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICBBU1lO
Q19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIApAQCAtMTA4Nyw3
ICsxMDg3LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2VsZWN0T3B0aW9uRWxlbWVu
dChjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmQKICAgICBpZiAoIXBhZ2UpCiAgICAg
ICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKIAot
ICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShmcmFt
ZUhhbmRsZSk7CisgICAgYXV0byBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShmcmFtZUhh
bmRsZSk7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVG
SU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIApAQCAtMTI3MSw3ICsxMjcxLDcgQEAgdm9pZCBX
ZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Z2V0QWxsQ29va2llcyhjb25zdCBTdHJpbmcmIGJyb3dzaW5n
Q29udGV4dEhhbmRsZSwgUmUKICAgICB9OwogCiAgICAgLy8gQWx3YXlzIHNlbmQgdGhlIG1haW4g
ZnJhbWUgSUQgYXMgMCBzbyBpdCBpcyByZXNvbHZlZCBvbiB0aGUgV2ViUHJvY2VzcyBzaWRlLiBU
aGlzIGF2b2lkcyBhIHJhY2Ugd2hlbiBwYWdlLT5tYWluRnJhbWUoKSBpcyBudWxsIHN0aWxsLgot
ICAgIGNvbnN0IHVpbnQ2NF90IG1haW5GcmFtZUlEID0gMDsKKyAgICBjb25zdCBGcmFtZUlkZW50
aWZpZXIgbWFpbkZyYW1lSUQ7CiAgICAgcGFnZS0+cHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6R2V0Q29va2llc0ZvckZyYW1l
KHBhZ2UtPnBhZ2VJRCgpLCBtYWluRnJhbWVJRCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKIH0KIApAQCAtMTI5MSw3ICsxMjkxLDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6
ZGVsZXRlU2luZ2xlQ29va2llKGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGwKICAg
ICB9OwogCiAgICAgLy8gQWx3YXlzIHNlbmQgdGhlIG1haW4gZnJhbWUgSUQgYXMgMCBzbyBpdCBp
cyByZXNvbHZlZCBvbiB0aGUgV2ViUHJvY2VzcyBzaWRlLiBUaGlzIGF2b2lkcyBhIHJhY2Ugd2hl
biBwYWdlLT5tYWluRnJhbWUoKSBpcyBudWxsIHN0aWxsLgotICAgIGNvbnN0IHVpbnQ2NF90IG1h
aW5GcmFtZUlEID0gMDsKKyAgICBjb25zdCBGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQ7CiAg
ICAgcGFnZS0+cHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQXV0b21h
dGlvblNlc3Npb25Qcm94eTo6RGVsZXRlQ29va2llKHBhZ2UtPnBhZ2VJRCgpLCBtYWluRnJhbWVJ
RCwgY29va2llTmFtZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIApAQCAtMTQ1
Nyw3ICsxNDU3LDcgQEAgU2ltdWxhdGVkSW5wdXRTb3VyY2UqIFdlYkF1dG9tYXRpb25TZXNzaW9u
OjppbnB1dFNvdXJjZUZvclR5cGUoU2ltdWxhdGVkSW5wdXRTb3UKIH0KIAogLy8gTUFSSzogU2lt
dWxhdGVkSW5wdXREaXNwYXRjaGVyOjpDbGllbnQgQVBJCi12b2lkIFdlYkF1dG9tYXRpb25TZXNz
aW9uOjp2aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVtZW50KFdlYlBhZ2VQcm94eSYgcGFn
ZSwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBGdW5jdGlvbjx2
b2lkIChPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIE9wdGlvbmFsPEF1dG9tYXRpb25Db21t
YW5kRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b246OnZpZXdwb3J0SW5WaWV3Q2VudGVyUG9pbnRPZkVsZW1lbnQoV2ViUGFnZVByb3h5JiBwYWdl
LCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBGdW5j
dGlvbjx2b2lkIChPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIE9wdGlvbmFsPEF1dG9tYXRp
b25Db21tYW5kRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXVEY6OkNvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6SW50UmVjdCwgT3B0
aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBib29sKT4gZGlkQ29tcHV0ZUVsZW1lbnRMYXlvdXRI
YW5kbGVyID0gW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
KE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBXZWJDb3JlOjpJbnRSZWN0LCBPcHRpb25hbDxX
ZWJDb3JlOjpJbnRQb2ludD4gaW5WaWV3Q2VudGVyUG9pbnQsIGJvb2wpIG11dGFibGUgewogICAg
ICAgICBpZiAoZXJyb3JUeXBlKSB7CkBAIC0xOTc2LDcgKzE5NzYsNyBAQCB2b2lkIFdlYkF1dG9t
YXRpb25TZXNzaW9uOjp0YWtlU2NyZWVuc2hvdChjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3Qg
U3RyaW5nKiBvcAogICAgIGlmICghcGFnZSkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURF
RklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5kbGUgPyAqb3B0aW9u
YWxGcmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCkpOworICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZy
YW1lSURGb3JIYW5kbGUob3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpvcHRpb25hbEZyYW1lSGFuZGxl
IDogZW1wdHlTdHJpbmcoKSk7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICBBU1lOQ19GQUlM
X1dJVEhfUFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5o
CmluZGV4IGYzOWMwNjFiNTc4OTJhOTI0OGZkMDlkZmZjZmE3YjhjNTBhMDc1MzcuLjMyNzQ5NWE3
MmMyNjM3MTQyZjdkNDRmMmY3NzY0Mjc4ZTExMGE4OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmgKQEAg
LTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKICNpbmNsdWRlICJT
aW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaCIKICNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRl
bnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CkBAIC0xNTIsNyArMTUzLDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShX
RUJEUklWRVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKQogICAgIHZvaWQgc2ltdWxhdGVLZXlib2Fy
ZEludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYsIEtleWJvYXJkSW50ZXJhY3Rpb24sIFdURjo6VmFy
aWFudDxWaXJ0dWFsS2V5LCBDaGFyS2V5PiYmLCBBdXRvbWF0aW9uQ29tcGxldGlvbkhhbmRsZXIm
JikgZmluYWw7CiAjZW5kaWYKLSAgICB2b2lkIHZpZXdwb3J0SW5WaWV3Q2VudGVyUG9pbnRPZkVs
ZW1lbnQoV2ViUGFnZVByb3h5JiwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBub2Rl
SGFuZGxlLCBGdW5jdGlvbjx2b2lkIChPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIE9wdGlv
bmFsPEF1dG9tYXRpb25Db21tYW5kRXJyb3I+KT4mJikgZmluYWw7CisgICAgdm9pZCB2aWV3cG9y
dEluVmlld0NlbnRlclBvaW50T2ZFbGVtZW50KFdlYlBhZ2VQcm94eSYsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBGdW5jdGlvbjx2b2lkIChPcHRp
b25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIE9wdGlvbmFsPEF1dG9tYXRpb25Db21tYW5kRXJyb3I+
KT4mJikgZmluYWw7CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCRFJJVkVSX0FDVElPTlNfQVBJKQog
CkBAIC0yMjAsMTQgKzIyMSwxNCBAQCBwcml2YXRlOgogICAgIFJlZjxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBdXRvbWF0aW9uOjpCcm93c2luZ0NvbnRleHQ+IGJ1aWxkQnJvd3NpbmdDb250ZXh0Rm9y
UGFnZShXZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpGbG9hdFJlY3Qgd2luZG93RnJhbWUpOwogICAg
IHZvaWQgZ2V0TmV4dENvbnRleHQoUmVmPFdlYkF1dG9tYXRpb25TZXNzaW9uPiYmLCBWZWN0b3I8
UmVmPFdlYlBhZ2VQcm94eT4+JiYsIFJlZjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246OkJyb3dzaW5nQ29udGV4dD4+LCBSZWY8V2ViQXV0b21hdGlvblNlc3Np
b246OkdldEJyb3dzaW5nQ29udGV4dHNDYWxsYmFjaz4mJik7CiAKLSAgICBPcHRpb25hbDx1aW50
NjRfdD4gd2ViRnJhbWVJREZvckhhbmRsZShjb25zdCBTdHJpbmcmKTsKLSAgICBTdHJpbmcgaGFu
ZGxlRm9yV2ViRnJhbWVJRCh1aW50NjRfdCBmcmFtZUlEKTsKKyAgICBPcHRpb25hbDxXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXI+IHdlYkZyYW1lSURGb3JIYW5kbGUoY29uc3QgU3RyaW5nJik7Cisg
ICAgU3RyaW5nIGhhbmRsZUZvcldlYkZyYW1lSUQoT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyPik7CiAgICAgU3RyaW5nIGhhbmRsZUZvcldlYkZyYW1lUHJveHkoY29uc3QgV2ViRnJh
bWVQcm94eSYpOwogCiAgICAgdm9pZCB3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVPblBhZ2Uo
V2ViUGFnZVByb3h5JiwgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6UGFnZUxvYWRT
dHJhdGVneSwgU2Vjb25kcywgUmVmPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxi
YWNrQmFzZT4mJik7CiAgICAgdm9pZCB3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVPbkZyYW1l
KFdlYkZyYW1lUHJveHkmLCBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpQYWdlTG9h
ZFN0cmF0ZWd5LCBTZWNvbmRzLCBSZWY8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2Fs
bGJhY2tCYXNlPiYmKTsKICAgICB2b2lkIHJlc3BvbmRUb1BlbmRpbmdQYWdlTmF2aWdhdGlvbkNh
bGxiYWNrc1dpdGhUaW1lb3V0KEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFJlZlB0
cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiYpOwotICAgIHZv
aWQgcmVzcG9uZFRvUGVuZGluZ0ZyYW1lTmF2aWdhdGlvbkNhbGxiYWNrc1dpdGhUaW1lb3V0KEhh
c2hNYXA8dWludDY0X3QsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxs
YmFja0Jhc2U+PiYpOworICAgIHZvaWQgcmVzcG9uZFRvUGVuZGluZ0ZyYW1lTmF2aWdhdGlvbkNh
bGxiYWNrc1dpdGhUaW1lb3V0KEhhc2hNYXA8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWZQ
dHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4mKTsKICAgICB2
b2lkIGxvYWRUaW1lckZpcmVkKCk7CiAKICAgICB2b2lkIGV4aXRGdWxsc2NyZWVuV2luZG93Rm9y
UGFnZShXZWJQYWdlUHJveHkmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CkBA
IC0yODQsMTMgKzI4NSwxMyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIsIFN0cmluZz4gbV93ZWJQYWdlSGFuZGxlTWFwOwogICAgIEhhc2hNYXA8U3RyaW5n
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gbV9oYW5kbGVXZWJQYWdlTWFwOwogCi0gICAgSGFz
aE1hcDx1aW50NjRfdCwgU3RyaW5nPiBtX3dlYkZyYW1lSGFuZGxlTWFwOwotICAgIEhhc2hNYXA8
U3RyaW5nLCB1aW50NjRfdD4gbV9oYW5kbGVXZWJGcmFtZU1hcDsKKyAgICBIYXNoTWFwPFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgU3RyaW5nPiBtX3dlYkZyYW1lSGFuZGxlTWFwOworICAgIEhh
c2hNYXA8U3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IG1faGFuZGxlV2ViRnJhbWVN
YXA7CiAKICAgICBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBSZWZQdHI8SW5zcGVj
dG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4gbV9wZW5kaW5nTm9ybWFsTmF2
aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyUGFnZTsKICAgICBIYXNoTWFwPFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hl
cjo6Q2FsbGJhY2tCYXNlPj4gbV9wZW5kaW5nRWFnZXJOYXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRl
eHRDYWxsYmFja3NQZXJQYWdlOwotICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxJbnNwZWN0
b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiBtX3BlbmRpbmdOb3JtYWxOYXZp
Z2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJGcmFtZTsKLSAgICBIYXNoTWFwPHVp
bnQ2NF90LCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNl
Pj4gbV9wZW5kaW5nRWFnZXJOYXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJG
cmFtZTsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmUHRyPEluc3Bl
Y3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGluZ05vcm1hbE5h
dmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlckZyYW1lOworICAgIEhhc2hNYXA8
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0
Y2hlcjo6Q2FsbGJhY2tCYXNlPj4gbV9wZW5kaW5nRWFnZXJOYXZpZ2F0aW9uSW5Ccm93c2luZ0Nv
bnRleHRDYWxsYmFja3NQZXJGcmFtZTsKICAgICBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4g
bV9wZW5kaW5nSW5zcGVjdG9yQ2FsbGJhY2tzUGVyUGFnZTsKICNpZiBFTkFCTEUoV0VCRFJJVkVS
X0tFWUJPQVJEX0lOVEVSQUNUSU9OUykKICAgICBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCBGdW5jdGlvbjx2b2lkKE9wdGlvbmFsPEF1dG9tYXRpb25Db21tYW5kRXJyb3I+KT4+IG1f
cGVuZGluZ0tleWJvYXJkRXZlbnRzRmx1c2hlZENhbGxiYWNrc1BlclBhZ2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCBhNTFhMjIzNjIzODQxNTFh
YjExZDQ4OTQzNjlmOGExODU4MDA2N2RhLi4zMDJmNjgyMjgyYmNjN2VlMzhkM2Y2NzI3ZDZkMjNm
ODRiMjg5ZGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURl
bGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
bW0KQEAgLTEwMzIsNyArMTAzMiw3IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmNoZWNr
VXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJQYWdlUHJveHkmIHBhZ2UsCiAgICAgVVJM
IHJlcXVlc3RGcmFtZVVSTCB7IFVSTCgpLCBmcmFtZS51cmwoKSB9OwogICAgIFVSTCBtYWluRnJh
bWVVUkwgeyBVUkwoKSwgbWFpbkZyYW1lLT51cmwoKSB9OwogCi0gICAgWyhpZCA8V0tVSURlbGVn
YXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyBjaGVj
a1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6cmVxdWVzdEZyYW1lVVJMIG1haW5GcmFtZVVSTDpt
YWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOmZyYW1lLmZyYW1lSUQoKSBkZWNpc2lvbkhhbmRs
ZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKKyAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRl
PilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IGNoZWNrVXNlck1lZGlh
UGVybWlzc2lvbkZvclVSTDpyZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVS
TCBmcmFtZUlkZW50aWZpZXI6ZnJhbWUuZnJhbWVJRCgpLnRvVUludDY0KCkgZGVjaXNpb25IYW5k
bGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07CiB9CiAKIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGll
bnQ6Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGVGbGFncyBzdGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dLUmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIu
bW0KaW5kZXggODRkMjBjNGNlOGIxZjAwMTdlMWJhNzdiOWQwZGY0ZjEwMTM4YTkwMC4uOWM0MDky
ZWZkNDM2ZDAyMjQwYjgwNmEyYzI0MGY2NDM2ZDJlZGI1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9y
UmVjb3ZlcnlBdHRlbXB0ZXIubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIldlYkZyYW1l
UHJveHkuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1By
b3h5LmgiCisjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2ltcG9ydCA8d3Rm
L1JldGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+CiAKQEAgLTYyLDggKzYz
LDcgQEAgLSAoQk9PTClhdHRlbXB0UmVjb3ZlcnkKICAgICBpZiAoIXdlYlZpZXcpCiAgICAgICAg
IHJldHVybiBOTzsKIAotICAgIHVpbnQ2NF90IGZyYW1lSUQgPSBbX2ZyYW1lSGFuZGxlIF9mcmFt
ZUlEXTsKLSAgICBXZWJLaXQ6OldlYkZyYW1lUHJveHkqIHdlYkZyYW1lUHJveHkgPSB3ZWJWaWV3
LT5fcGFnZS0+cHJvY2VzcygpLndlYkZyYW1lKGZyYW1lSUQpOworICAgIFdlYktpdDo6V2ViRnJh
bWVQcm94eSogd2ViRnJhbWVQcm94eSA9IHdlYlZpZXctPl9wYWdlLT5wcm9jZXNzKCkud2ViRnJh
bWUoV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKFtfZnJhbWVIYW5kbGUgX2ZyYW1lSURd
KSk7CiAgICAgaWYgKCF3ZWJGcmFtZVByb3h5KQogICAgICAgICByZXR1cm4gTk87CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KaW5k
ZXggYTFhZjk4ZDIxMDkzZTVhZWVlOGIzZDQ4MGI4MTYxZmUyNmU5ZWE1MS4uZDk2MTM5MThmNzVm
YTVlOGRmNTgzNGYyNTI0NDM4ZTA2ZTk4NmI5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KQEAgLTEwMSwxMiArMTAxLDEyIEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpiZWdpblNhZmVCcm93c2luZ0NoZWNrKGNvbnN0IFVSTCYgdXJs
LCBib29sIGZvck1haW5GcmFtZU5hdmlnCiB9CiAKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJ
TkcpCi12b2lkIFdlYlBhZ2VQcm94eTo6Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1l
KGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYgdW5ibG9ja0hhbmRs
ZXIsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGVudEZpbHRlckRp
ZEJsb2NrTG9hZEZvckZyYW1lKGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFu
ZGxlciYgdW5ibG9ja0hhbmRsZXIsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIGNv
bnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigp
LCB1bmJsb2NrSGFuZGxlciwgZnJhbWVJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpjb250
ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiBwcm9jZXNzLCBjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIHVu
YmxvY2tIYW5kbGVyLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmNvbnRl
bnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
IHByb2Nlc3MsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYgdW5i
bG9ja0hhbmRsZXIsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIGlmIChXZWJGcmFt
ZVByb3h5KiBmcmFtZSA9IHByb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpKQogICAgICAgICBmcmFt
ZS0+Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZCh1bmJsb2NrSGFuZGxlcik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cAppbmRleCA5NGZhZjZiOWRlMjYyMDFkODRkMjZmZjgzOTMzZjgyMjljMDVkNmI5Li45MWVjZTFm
MGRhZmZlM2VhNjNhZGJjMGQ5MWVhYzRkMTgxMTEzMDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTMx
Miw3ICszMTIsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZENyZWF0ZU5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbnN0IElQQzo6QXR0YQogI2VuZGlmCiB9CiAKLXZvaWQg
TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UmJiBjb3JlQ2hhbGxlbmdlLCB1aW50NjRfdCBjaGFsbGVuZ2VJRCkKK3Zv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6
OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYgY29yZUNoYWxsZW5nZSwgdWludDY0X3QgY2hhbGxl
bmdlSUQpCiB7CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIGlmIChhdXRvKiBzZXJ2
aWNlV29ya2VyUHJvY2Vzc1Byb3h5ID0gbV9wcm9jZXNzUG9vbC5zZXJ2aWNlV29ya2VyUHJvY2Vz
c1Byb3h5RnJvbVBhZ2VJRChwYWdlSUQpKSB7CkBAIC03MzcsNyArNzM3LDcgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpzZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgY29uc3QgUmVnaXMKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpTZXRHcmFuZGZhdGhlcmVkKHNlc3Npb25JRCwgcmVzb3VyY2VEb21haW4sIGlzR3Jh
bmRmYXRoZXJlZCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oUGFnZUlkZW50aWZp
ZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3Vi
RnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9t
YWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZShwYWdl
SUQpOwogICAgIGlmICghcGFnZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCA0MzM1NDVjMGUzM2ZhYWVlZDlk
ZWJiMzRmNmIyMGNmY2FlNWU5NWM4Li40MGY4MWRlOWI0N2YxOTIyMTkwMjZhNmU4YTA3YjJhNWUy
ZDZhOTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuaApAQCAtODIsNyArODIsNiBAQCBwdWJsaWM6CiAgICAgdXNpbmcg
TmF2aWdhdGVkVG9Eb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKICAgICB1c2lu
ZyBEb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MgPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
bjsKICAgICB1c2luZyBPcGVuZXJEb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsK
LSAgICB1c2luZyBGcmFtZUlEID0gdWludDY0X3Q7CiAKICAgICBleHBsaWNpdCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJik7CiAgICAgfk5ldHdvcmtQcm9jZXNzUHJveHkoKTsK
QEAgLTEzMCw3ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJj
ZUZvckRlYnVnTW9kZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0VmVyeVByZXZhbGVudFJl
c291cmNlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBnZXRBbGxTdG9yYWdlQWNjZXNzRW50cmll
cyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiBk
b21haW5zKT4mJik7Ci0gICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIsIEZyYW1lSUQsIGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3Qg
VG9wRnJhbWVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2
b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRv
cEZyYW1lRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9p
ZCByZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRWYWx1ZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQ
ZXJzaXN0ZW50KFBBTDo6U2Vzc2lvbklELCBTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3MsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzY2hlZHVsZUNsZWFySW5NZW1v
cnlBbmRQZXJzaXN0ZW50KFBBTDo6U2Vzc2lvbklELCBPcHRpb25hbDxXYWxsVGltZT4gbW9kaWZp
ZWRTaW5jZSwgU2hvdWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwpAQCAtMjEzLDcgKzIxMiw3IEBAIHByaXZhdGU6CiAgICAgLy8gTWVzc2FnZSBo
YW5kbGVycwogICAgIHZvaWQgZGlkUmVjZWl2ZU5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwogICAgIHZvaWQgZGlkQ3JlYXRlTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29uc3QgSVBDOjpBdHRhY2htZW50Jik7Ci0gICAgdm9p
ZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYs
IHVpbnQ2NF90IGNoYWxsZW5nZUlEKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYmLCB1aW50NjRfdCBjaGFsbGVu
Z2VJRCk7CiAgICAgdm9pZCBkaWRGZXRjaFdlYnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQs
IGNvbnN0IFdlYnNpdGVEYXRhJik7CiAgICAgdm9pZCBkaWREZWxldGVXZWJzaXRlRGF0YSh1aW50
NjRfdCBjYWxsYmFja0lEKTsKICAgICB2b2lkIGRpZERlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lu
cyh1aW50NjRfdCBjYWxsYmFja0lEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRl
eCAxMWQ4YzVkZWUxZGJhODFmOGY2M2Y3ZDk0OGVmNjYxNjE5ODFkMTM0Li5iZmFmOWYwNDk2ZTU2
YTliOTMxZWY2ZmY3NzUxYzNhY2Y1ZDEzOWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2Vz
LmluCkBAIC0yMyw3ICsyMyw3IEBACiBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc1Byb3h5IExl
Z2FjeVJlY2VpdmVyIHsKICAgICBEaWRDcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyhJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbklkZW50aWZpZXIpCiAKLSAgICBEaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1
aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjaGFsbGVu
Z2UsIHVpbnQ2NF90IGNoYWxsZW5nZUlEKQorICAgIERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjaGFsbGVu
Z2UsIHVpbnQ2NF90IGNoYWxsZW5nZUlEKQogCiAgICAgRGlkRmV0Y2hXZWJzaXRlRGF0YSh1aW50
NjRfdCBjYWxsYmFja0lELCBzdHJ1Y3QgV2ViS2l0OjpXZWJzaXRlRGF0YSB3ZWJzaXRlRGF0YSkK
ICAgICBEaWREZWxldGVXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lEKQpAQCAtNDgsNyAr
NDgsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsK
ICAgICBOb3RpZnlXZWJzaXRlRGF0YURlbGV0aW9uRm9yUmVnaXN0cmFibGVEb21haW5zRmluaXNo
ZWQoKQogICAgIE5vdGlmeVdlYnNpdGVEYXRhU2NhbkZvclJlZ2lzdHJhYmxlRG9tYWluc0Zpbmlz
aGVkKCkKICAgICBOb3RpZnlSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5RmluaXNoZWQo
dW5zaWduZWQgdG90YWxQcmV2YWxlbnRSZXNvdXJjZXMsIHVuc2lnbmVkIHRvdGFsUHJldmFsZW50
UmVzb3VyY2VzV2l0aFVzZXJJbnRlcmFjdGlvbiwgdW5zaWduZWQgdG9wM1N1YmZyYW1lVW5kZXJU
b3BGcmFtZU9yaWdpbnMpCi0gICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4gc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRv
cEZyYW1lRG9tYWluKSAtPiAoYm9vbCB1c2VyRGlkR3JhbnRBY2Nlc3MpIEFzeW5jCisgICAgUmVx
dWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURv
bWFpbikgLT4gKGJvb2wgdXNlckRpZEdyYW50QWNjZXNzKSBBc3luYwogICAgIERlbGV0ZVdlYnNp
dGVEYXRhSW5VSVByb2Nlc3NGb3JSZWdpc3RyYWJsZURvbWFpbnMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgT3B0
aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFGZXRjaE9wdGlvbj4gZmV0Y2hPcHRpb25zLCBWZWN0
b3I8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+IGRvbWFpbnMpIC0+IChIYXNoU2V0PFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21haW5zV2l0aE1hdGNoaW5nRGF0YVJlY29yZHMpIEFz
eW5jCiAgICAgRGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXJGcm9tUHJldmFs
ZW50UmVzb3VyY2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKQogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKaW5kZXgg
NjY2ZmJkM2RhMTBmYjVkNTlhZjIxMDUyN2EzYzE1NDVjMTQ4MTNlMi4uZDdmMGMzYzk1MDI3NGRl
OGUwYTk1Y2I4NWFkYzI3NjU1OGY3MmQ5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcApAQCAtMTc2LDcgKzE3Niw3IEBAIHZvaWQgUHJv
dmlzaW9uYWxQYWdlUHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0oQVBJOjpOYXZpZ2F0aW9uJiBu
YXZpZ2F0aW9uLCBXZWJCCiAgICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3Rh
cnQoKTsKIH0KIAotaW5saW5lIGJvb2wgUHJvdmlzaW9uYWxQYWdlUHJveHk6OnZhbGlkYXRlSW5w
dXQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgT3B0aW9uYWw8dWludDY0X3Q+JiBuYXZpZ2F0aW9u
SUQpCitpbmxpbmUgYm9vbCBQcm92aXNpb25hbFBhZ2VQcm94eTo6dmFsaWRhdGVJbnB1dChGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgT3B0aW9uYWw8dWludDY0X3Q+JiBuYXZpZ2F0aW9u
SUQpCiB7CiAgICAgLy8gSWYgdGhlIHByZXZpb3VzIHByb3Zpc2lvbmFsIGxvYWQgdXNlZCBhbiBl
eGlzdGluZyBwcm9jZXNzLCB3ZSBtYXkgcmVjZWl2ZSBsZWZ0b3ZlciBJUEMgZm9yIGEgcHJldmlv
dXMgbmF2aWdhdGlvbiwgd2hpY2ggd2UgbmVlZCB0byBpZ25vcmUuCiAgICAgaWYgKCFtX21haW5G
cmFtZSB8fCBtX21haW5GcmFtZS0+ZnJhbWVJRCgpICE9IGZyYW1lSUQpCkBAIC0xODUsOSArMTg1
LDkgQEAgaW5saW5lIGJvb2wgUHJvdmlzaW9uYWxQYWdlUHJveHk6OnZhbGlkYXRlSW5wdXQodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgT3B0aW9uYWwKICAgICByZXR1cm4gIW5hdmlnYXRpb25JRCB8
fCAhKm5hdmlnYXRpb25JRCB8fCAqbmF2aWdhdGlvbklEID09IG1fbmF2aWdhdGlvbklEOwogfQog
Ci12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCkKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZShG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFBy
b2Nlc3NTd2FwcGluZywgImRpZENyZWF0ZU1haW5GcmFtZTogcGFnZUlEID0gJSIgUFJJdTY0ICIs
IGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFtZUlE
KTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgImRpZENyZWF0
ZU1haW5GcmFtZTogcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1f
cGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCkpOwogICAgIEFTU0VS
VCghbV9tYWluRnJhbWUpOwogCiAgICAgbV9tYWluRnJhbWUgPSBXZWJGcmFtZVByb3h5OjpjcmVh
dGUobV9wYWdlLCBmcmFtZUlEKTsKQEAgLTIxMiw3ICsyMTIsNyBAQCB2b2lkIFByb3Zpc2lvbmFs
UGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJRCkKICAgICB9CiB9
CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdChj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVS
TFN0cmluZywgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRp
ZFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29u
c3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQp
CiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQpKQogICAgICAgICByZXR1cm47CkBA
IC0yMjAsMTIgKzIyMCwxMiBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQZXJmb3Jt
Q2xpZW50UmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbgogICAgIG1fcGFnZS5k
aWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgc291cmNl
VVJMU3RyaW5nLCBkZXN0aW5hdGlvblVSTFN0cmluZywgZnJhbWVJRCk7CiB9CiAKLXZvaWQgUHJv
dmlzaW9uYWxQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwsIFVSTCYmIHVucmVh
Y2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFByb3Zpc2lvbmFsUGFn
ZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCwgVVJMJiYgdW5yZWFjaGFi
bGVVUkwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBpZiAoIXZhbGlkYXRlSW5w
dXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICJkaWRTdGFydFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lOiBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBu
YXZpZ2F0aW9uSUQgPSAlIiBQUkl1NjQsIG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFt
ZUlELCBuYXZpZ2F0aW9uSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2Vzc1N3
YXBwaW5nLCAiZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZTogcGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEID0gJSIgUFJJdTY0LCBt
X3BhZ2UucGFnZUlEKCkudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpLCBuYXZpZ2F0aW9u
SUQpOwogICAgIEFTU0VSVChtX3Byb3Zpc2lvbmFsTG9hZFVSTC5pc051bGwoKSk7CiAgICAgbV9w
cm92aXNpb25hbExvYWRVUkwgPSB1cmw7CiAKQEAgLTI0MCwxMiArMjQwLDEyIEBAIHZvaWQgUHJv
dmlzaW9uYWxQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgdWluCiAgICAgbV9wYWdlLmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgbmF2aWdhdGlvbklELCBXVEZN
b3ZlKHVybCksIFdURk1vdmUodW5yZWFjaGFibGVVUkwpLCB1c2VyRGF0YSk7CiB9CiAKLXZvaWQg
UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNp
b25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IsIFdlYkNvcmU6Oldp
bGxDb250aW51ZUxvYWRpbmcgd2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEmIHVz
ZXJEYXRhKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
Y29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciYgZXJyb3IsIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcgd2lsbENvbnRpbnVlTG9hZGlu
ZywgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIGlmICghdmFsaWRhdGVJbnB1dChm
cmFtZUlELCBuYXZpZ2F0aW9uSUQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBSRUxFQVNFX0xP
R19FUlJPUl9JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgImRpZEZhaWxQcm92aXNpb25hbExv
YWRGb3JGcmFtZTogcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwg
bmF2aWdhdGlvbklEID0gJSIgUFJJdTY0LCBtX3BhZ2UucGFnZUlEKCkudG9VSW50NjQoKSwgZnJh
bWVJRCwgbmF2aWdhdGlvbklEKTsKKyAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKFBy
b2Nlc3NTd2FwcGluZywgImRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZTogcGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEID0gJSIgUFJJ
dTY0LCBtX3BhZ2UucGFnZUlEKCkudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpLCBuYXZp
Z2F0aW9uSUQpOwogICAgIEFTU0VSVCghbV9wcm92aXNpb25hbExvYWRVUkwuaXNOdWxsKCkpOwog
ICAgIG1fcHJvdmlzaW9uYWxMb2FkVVJMID0geyB9OwogCkBAIC0yNTYsMTIgKzI1NiwxMiBAQCB2
b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgY29ucwogICAgIG1fcGFnZS5kaWRGYWlsUHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0
eU9yaWdpbiwgbmF2aWdhdGlvbklELCBwcm92aXNpb25hbFVSTCwgZXJyb3IsIHdpbGxDb250aW51
ZUxvYWRpbmcsIHVzZXJEYXRhKTsgLy8gTWF5IGRlbGV0ZSB8dGhpc3wuCiB9CiAKLXZvaWQgUHJv
dmlzaW9uYWxQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJh
bWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0
IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBib29sIGNvbnRhaW5z
UGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9y
Y2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFBy
b3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwg
Ym9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlw
ZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wg
Y29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250
ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkK
IHsKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcs
ICJkaWRDb21taXRMb2FkRm9yRnJhbWU6IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0ICIsIG5hdmlnYXRpb25JRCA9ICUiIFBSSXU2NCwgbV9wYWdlLnBhZ2VJRCgpLnRv
VUludDY0KCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRChQcm9jZXNzU3dhcHBpbmcsICJkaWRDb21taXRMb2FkRm9yRnJhbWU6IHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIG5hdmlnYXRpb25JRCA9ICUiIFBSSXU2
NCwgbV9wYWdlLnBhZ2VJRCgpLnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSwgbmF2aWdh
dGlvbklEKTsKICAgICBtX3Byb3Zpc2lvbmFsTG9hZFVSTCA9IHsgfTsKICAgICBtX3Byb2Nlc3Mt
PnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViUGFnZVByb3h5OjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCksIG1fcGFnZS5wYWdlSUQoKSk7CiAKQEAgLTI2OSw3ICsyNjksNyBAQCB2b2lk
IFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgdWludDY0X3QgbmF2aQogICAgIG1fcGFnZS5jb21taXRQcm92aXNpb25hbFBhZ2UoZnJh
bWVJRCwgbmF2aWdhdGlvbklELCBtaW1lVHlwZSwgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlk
ZXIsIGZyYW1lTG9hZFR5cGUsIGNlcnRpZmljYXRlSW5mbywgY29udGFpbnNQbHVnaW5Eb2N1bWVu
dCwgZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCB1c2VyRGF0YSk7IC8vIFdpbGwgZGVsZXRlIHx0
aGlzfC4KIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2
aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYgc3RvcmUsIHVpbnQ2NF90
IGZyYW1lSUQpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWROYXZpZ2F0ZVdpdGhOYXZp
Z2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiBzdG9yZSwgRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQpKQogICAg
ICAgICByZXR1cm47CkBAIC0yNzcsNyArMjc3LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94
eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdhdGlvbkRhdGEK
ICAgICBtX3BhZ2UuZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQobV9wcm9jZXNz
LmNvcHlSZWYoKSwgc3RvcmUsIGZyYW1lSUQpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVBy
b3h5OjpkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYgdXJsKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94
eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwpCiB7CiAgICAgaWYgKCF2YWxpZGF0
ZUlucHV0KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKQEAgLTI4NSw3
ICsyODUsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92aXNpb25h
bFVSTEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbgogICAgIG1fcGFnZS5kaWRDaGFuZ2VQ
cm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQs
IG5hdmlnYXRpb25JRCwgV1RGTW92ZSh1cmwpKTsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQ
cm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKHVpbnQ2NF90IGZyYW1l
SUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAordm9pZCBQcm92aXNpb25h
bFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKICAg
ICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlv
bkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxQYWdl
SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgb3JpZ2luYWxSZXF1ZXN0LAogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJl
cXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0
YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKIHsKQEAgLTI5Niw3ICsyOTYsNyBAQCB2b2lkIFByb3Zp
c2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmModWlu
dDY0X3QgZnJhbWVJRAogICAgICAgICBXVEZNb3ZlKGZyYW1lSW5mb0RhdGEpLCBvcmlnaW5hdGlu
Z1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVl
c3RCb2R5KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNlckRhdGEsIGxpc3RlbmVySUQp
OwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZy
YW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlm
aWVyLAordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2Uo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlk
ZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJp
YnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewog
ICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQpKQpAQCAtMzA1LDcg
KzMwNSw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvCiAgICAgbV9wYWdlLmRlY2lkZVBvbGlj
eUZvclJlc3BvbnNlU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3Qs
IGNhblNob3dNSU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVySUQsIHVzZXJEYXRh
KTsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGly
ZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0
aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94
eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5n
LCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCkKIHsKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCkpCiAgICAgICAgIHJldHVy
bjsKQEAgLTMxMyw3ICszMTMsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQZXJm
b3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbgogICAgIG1fcGFn
ZS5kaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgc291
cmNlVVJMU3RyaW5nLCBkZXN0aW5hdGlvblVSTFN0cmluZywgZnJhbWVJRCk7CiB9CiAKLXZvaWQg
UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0
Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29u
c3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlE
LCBuYXZpZ2F0aW9uSUQpKQogICAgICAgICByZXR1cm47CkBAIC0zMzEsNyArMzMxLDcgQEAgdm9p
ZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6YmFja0ZvcndhcmRHb1RvSXRlbShjb25zdCBXZWJDb3Jl
OjpCYWNrRm9yd2FyZEl0ZW1JZGUKICAgICBtX3BhZ2UuYmFja0ZvcndhcmRHb1RvSXRlbVNoYXJl
ZChtX3Byb2Nlc3MuY29weVJlZigpLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb25TeW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6
OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAordm9pZCBQcm92aXNpb25hbFBhZ2VQ
cm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYm
IGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVu
dGlmaWVyLAogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEm
JiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9w
dGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwKICAgICBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwKICAgICBjb25zdCBV
c2VyRGF0YSYgdXNlckRhdGEsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVkUmVwbHkmJiByZXBseSkKQEAgLTM2Niw3ICsz
NjYsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpyZWdpc3RlcldlYlByb2Nlc3NBY2Nl
c3NpYmlsaXR5VG9rZW4oY29uc3QgSVBDOjpEYXRhUgogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ09O
VEVOVF9GSUxURVJJTkcpCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpjb250ZW50RmlsdGVy
RGlkQmxvY2tMb2FkRm9yRnJhbWUoY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tI
YW5kbGVyJiB1bmJsb2NrSGFuZGxlciwgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgUHJvdmlzaW9u
YWxQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJD
b3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIHVuYmxvY2tIYW5kbGVyLCBGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBtX3BhZ2UuY29udGVudEZpbHRlckRpZEJsb2NrTG9h
ZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIHVuYmxvY2tIYW5kbGVyLCBmcmFt
ZUlEKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFs
UGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94
eS5oCmluZGV4IDMzMzIxNmEyY2M3ODU2NjcxNjMyNGFiMDZmZjFiM2I5NjA4MGMwYmUuLmRlM2Vl
Njg3ZmE3ZDgxNzUwYjU4ZmVkYTU4NDU4M2ZkMWYxZTJkNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaApAQCAtOTIsMjMgKzkyLDIzIEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImKSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYp
IGZpbmFsOwogCi0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMo
dWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6
OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9u
QWN0aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYsCisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uQXN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEm
JiwKICAgICAgICAgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5n
UGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1
ZXN0Qm9keSwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVz
cG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7Ci0gICAgdm9pZCBk
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsCisgICAg
dm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiwKICAgICAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBj
YW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90
IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNp
b25hbFVSTEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
VVJMJiYpOwotICAgIHZvaWQgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmluZyYg
c291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50
NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9p
ZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0
b3JlJiwgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJl
Y3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRp
b25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkQ3JlYXRlTWFpbkZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmLCBV
UkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZENvbW1p
dExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNv
bnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIs
IHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYs
IGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1
cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJik7Ci0g
ICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nLCBj
b25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFt
ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYp
OworICAgIHZvaWQgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNl
VVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBVc2VyRGF0YSYp
OworICAgIHZvaWQgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdh
dGlvbkRhdGFTdG9yZSYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0
IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7
CisgICAgdm9pZCBkaWRDcmVhdGVNYWluRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsK
KyAgICB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmLCBVUkwmJiB1bnJlYWNoYWJs
ZVVSTCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZShX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMy
X3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiwgYm9vbCBj
b250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRl
bnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lk
IGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZywg
Y29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIHN0YXJ0VVJMU2NoZW1lVGFzayhVUkxTY2hlbWVU
YXNrUGFyYW1ldGVycyYmKTsKICAgICB2b2lkIGJhY2tGb3J3YXJkR29Ub0l0ZW0oY29uc3QgV2Vi
Q29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYpPiYmKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25TeW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUs
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKKyAg
ICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAogICAgICAgICBGcmFtZUluZm9EYXRhJiYsIE9wdGlv
bmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAg
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2Vy
RGF0YSYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25TeW5jOjpEZWxheWVkUmVwbHkmJik7CiAjaWYgVVNFKFFVSUNLX0xPT0spCkBAIC0xMTgs
MTEgKzExOCwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJXZWJQcm9jZXNzQWNjZXNz
aWJpbGl0eVRva2VuKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpOwogI2VuZGlmCiAjaWYgRU5B
QkxFKENPTlRFTlRfRklMVEVSSU5HKQotICAgIHZvaWQgY29udGVudEZpbHRlckRpZEJsb2NrTG9h
ZEZvckZyYW1lKGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYsIHVp
bnQ2NF90IGZyYW1lSUQpOworICAgIHZvaWQgY29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZy
YW1lKGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcik7CiAjZW5kaWYKIAogICAgIHZvaWQgaW5pdGlhbGl6ZVdlYlBhZ2Uo
KTsKLSAgICBib29sIHZhbGlkYXRlSW5wdXQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgT3B0aW9u
YWw8dWludDY0X3Q+JiBuYXZpZ2F0aW9uSUQgPSBXVEY6Om51bGxvcHQpOworICAgIGJvb2wgdmFs
aWRhdGVJbnB1dChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IE9wdGlvbmFsPHVpbnQ2
NF90PiYgbmF2aWdhdGlvbklEID0gV1RGOjpudWxsb3B0KTsKIAogICAgIFdlYlBhZ2VQcm94eSYg
bV9wYWdlOwogICAgIFJlZjxXZWJQcm9jZXNzUHJveHk+IG1fcHJvY2VzczsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHAKaW5k
ZXggYjJmNzcyOWZkMzkzNWY3MmUxYmM5MTE1YTMwYTE4ZjY0ZTM5ZmQyNS4uZjc4YTdjMzg2Yzg5
NTkwMTE1NmI1NjhhYWY5OGJhYjIzYjA4MDZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHAKQEAgLTkwLDcgKzkwLDcg
QEAgdm9pZCBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5Ojp1cGRhdGVQcmVmZXJlbmNlc1N0b3Jl
KGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbjo6VXBkYXRlUHJlZmVyZW5jZXNTdG9yZSB7IHN0b3JlIH0sIDAp
OwogfQogCi12b2lkIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQs
IFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmIGNoYWxsZW5nZSkKK3ZvaWQgU2Vy
dmljZVdvcmtlclByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmIGNoYWxsZW5nZSkKIHsKICAgICBVTlVTRURfUEFS
QU0ocGFnZUlEKTsKICAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgKaW5kZXggZTkzNjVh
ZmFjNGY0N2Q3ZmQ3NDdmOTg5ODNhZDk5OTBlOGFiOTc1NS4uN2Q4ODc2MDVlZWEwYjY0NzlkNjk3
NjkxYWJiNTUyODA3ZGUyMTg0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
U2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAK
ICAgICBzdGF0aWMgYm9vbCBoYXNSZWdpc3RlcmVkU2VydmljZVdvcmtlcnMoY29uc3QgU3RyaW5n
JiBzZXJ2aWNlV29ya2VyRGlyZWN0b3J5KTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlE
LCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJik7CisgICAgdm9pZCBkaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYp
OwogCiAgICAgdm9pZCBzdGFydChjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiwgT3B0aW9uYWw8
UEFMOjpTZXNzaW9uSUQ+IGluaXRpYWxTZXNzaW9uSUQpOwogICAgIHZvaWQgc2V0VXNlckFnZW50
KGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3Vz
cGVuZGVkUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBh
Z2VQcm94eS5jcHAKaW5kZXggZjZkM2I1MzZkZjhhYWIxOTdkOTExZWQxNGQyZWE0MGZlZmYyZTFk
ZC4uYzY0ZDdlZjE5YmQwZGU3MTE2OTY5OTkyYzA3NjcxZTYxZDgyODNlZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwCkBAIC03OCw3ICs3OCw3
IEBAIHN0YXRpYyBjb25zdCBIYXNoU2V0PElQQzo6U3RyaW5nUmVmZXJlbmNlPiYgbWVzc2FnZU5h
bWVzVG9JZ25vcmVXaGlsZVN1c3BlbmRlZCgpCiB9CiAjZW5kaWYKIAotU3VzcGVuZGVkUGFnZVBy
b3h5OjpTdXNwZW5kZWRQYWdlUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90IG1haW5GcmFtZUlELCBTaG91bGREZWxheUNsb3Np
bmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUgc2hvdWxkRGVsYXlDbG9z
aW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKQorU3VzcGVuZGVkUGFn
ZVByb3h5OjpTdXNwZW5kZWRQYWdlUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBSZWY8V2ViUHJv
Y2Vzc1Byb3h5PiYmIHByb2Nlc3MsIEZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCwgU2hvdWxk
RGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlIHNob3Vs
ZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSkKICAg
ICA6IG1fcGFnZShwYWdlKQogICAgICwgbV9wcm9jZXNzKFdURk1vdmUocHJvY2VzcykpCiAgICAg
LCBtX21haW5GcmFtZUlEKG1haW5GcmFtZUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
dXNwZW5kZWRQYWdlUHJveHkuaAppbmRleCAwZGFkMDU0YjI3MmE4MTlkNmUwYjA2Yzc3Y2VkODEy
YTI2M2QxMzQwLi45MTY1M2NjNzhlYTAwODY2MGIxNGUzMzUwNTUzYWE4OWU3M2QxOTEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuaApAQCAtMjksNiAr
MjksNyBAQAogI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXIuaCIKICNpbmNsdWRlICJXZWJCYWNr
Rm9yd2FyZExpc3RJdGVtLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIApAQCAtNDIsMTIgKzQzLDEyIEBAIGVu
dW0gY2xhc3MgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdNb2RlIDogYm9vbCB7IE5vCiBjbGFzcyBTdXNwZW5kZWRQYWdlUHJveHkgZmluYWw6IHB1
YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHVibGljIENhbk1ha2VXZWFrUHRyPFN1c3BlbmRl
ZFBhZ2VQcm94eT4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAg
IFN1c3BlbmRlZFBhZ2VQcm94eShXZWJQYWdlUHJveHkmLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
LCB1aW50NjRfdCBtYWluRnJhbWVJRCwgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKTsKKyAgICBTdXNwZW5kZWRQYWdlUHJveHkoV2ViUGFn
ZVByb3h5JiwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IG1haW5GcmFtZUlELCBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ01vZGUpOwogICAgIH5TdXNwZW5kZWRQYWdlUHJveHkoKTsKIAogICAgIFdlYlBh
Z2VQcm94eSYgcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZTsgfQogICAgIFdlYlByb2Nlc3NQ
cm94eSYgcHJvY2VzcygpIHsgcmV0dXJuIG1fcHJvY2Vzcy5nZXQoKTsgfQotICAgIHVpbnQ2NF90
IG1haW5GcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJhbWVJRDsgfQorICAgIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbkZy
YW1lSUQ7IH0KIAogICAgIGJvb2wgcGFnZUlzQ2xvc2VkT3JDbG9zaW5nKCkgY29uc3Q7CiAKQEAg
LTc0LDcgKzc1LDcgQEAgcHJpdmF0ZToKIAogICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdlOwogICAg
IFJlZjxXZWJQcm9jZXNzUHJveHk+IG1fcHJvY2VzczsKLSAgICB1aW50NjRfdCBtX21haW5GcmFt
ZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX21haW5GcmFtZUlEOwogICAgIGJv
b2wgbV9pc0Nsb3NlZCB7IGZhbHNlIH07CiAgICAgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRl
cmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlIG1fc2hvdWxkRGVsYXlDbG9zaW5nVW50aWxF
bnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlIHsgU2hvdWxkRGVsYXlDbG9zaW5nVW50
aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlOjpObyB9OwogICAgIGJvb2wgbV9z
aG91bGRDbG9zZVdoZW5FbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlIHsgZmFsc2Ug
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25DaGVja1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25DaGVja1Byb3h5LmNwcAppbmRleCBhYjc5MjQwMjllMGVmM2EzYmJhYjc0Y2JhYzAwYzI5
N2ZhOTZhM2NhLi40ZmE2ZmRmNjA4ZDZjMzdlZmVjYjBhNWUwNmMyY2ZkZTUwZWI1ODRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
bkNoZWNrUHJveHkuY3BwCkBAIC0zMyw3ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eTo6
VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkodWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlv
bkhhbmRsZXImJiBoYW5kbGVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luKQorVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OlVzZXJNZWRp
YVBlcm1pc3Npb25DaGVja1Byb3h5KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDb21wbGV0aW9u
SGFuZGxlciYmIGhhbmRsZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVk
aWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVs
RG9jdW1lbnRPcmlnaW4pCiAgICAgOiBtX2ZyYW1lSUQoZnJhbWVJRCkKICAgICAsIG1fY29tcGxl
dGlvbkhhbmRsZXIoV1RGTW92ZShoYW5kbGVyKSkKICAgICAsIG1fdXNlck1lZGlhRG9jdW1lbnRT
ZWN1cml0eU9yaWdpbihXVEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94
eS5oCmluZGV4IGRjMzQwOTgxNzE0YzcyNzkzYzAxMDVkNzgzMzkxYjdmYTk0NTkxOGYuLmU4MGI1
MTkxODQxZmRiMjQ2NzU1MTA5NzI1MDk2NmU5MGI3ZTJhMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaApAQCAt
MjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVk
aWFDb25zdHJhaW50cy5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNDEsNyArNDIsNyBAQCBwdWJsaWM6CiAg
ICAgZW51bSBjbGFzcyBQZXJtaXNzaW9uSW5mbyB7IEVycm9yLCBVbmtub3duLCBHcmFudGVkIH07
CiAgICAgdXNpbmcgQ29tcGxldGlvbkhhbmRsZXIgPSBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZv
aWQoUGVybWlzc2lvbkluZm8pPjsKIAotICAgIHN0YXRpYyBSZWY8VXNlck1lZGlhUGVybWlzc2lv
bkNoZWNrUHJveHk+IGNyZWF0ZSh1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlciYm
IGhhbmRsZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRP
cmlnaW4pCisgICAgc3RhdGljIFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eT4gY3Jl
YXRlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlciYm
IGhhbmRsZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRP
cmlnaW4pCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBVc2VyTWVkaWFQZXJt
aXNzaW9uQ2hlY2tQcm94eShmcmFtZUlELCBXVEZNb3ZlKGhhbmRsZXIpLCBXVEZNb3ZlKHVzZXJN
ZWRpYURvY3VtZW50T3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSkpOwog
ICAgIH0KQEAgLTUwLDE3ICs1MSwxNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRVc2VyTWVkaWFB
Y2Nlc3NJbmZvKGJvb2wpOwogICAgIHZvaWQgaW52YWxpZGF0ZSgpIHsgY29tcGxldGUoUGVybWlz
c2lvbkluZm86OkVycm9yKTsgfQogCi0gICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0
dXJuIG1fZnJhbWVJRDsgfQorICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKCkg
Y29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9CiAgICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4m
IHVzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSB7IHJldHVybiBtX3VzZXJNZWRpYURv
Y3VtZW50U2VjdXJpdHlPcmlnaW4uZ2V0KCk7IH0KICAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
biYgdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkgeyByZXR1cm4gbV90b3BMZXZlbERv
Y3VtZW50U2VjdXJpdHlPcmlnaW4uZ2V0KCk7IH0KICAgICAKIHByaXZhdGU6Ci0gICAgVXNlck1l
ZGlhUGVybWlzc2lvbkNoZWNrUHJveHkodWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRs
ZXImJiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3Jp
Z2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdp
bik7CisgICAgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlciYmLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+
JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4m
JiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKTsKICAgICB+VXNlck1lZGlhUGVybWlzc2lvbkNoZWNr
UHJveHkoKTsKIAogICAgIHZvaWQgY29tcGxldGUoUGVybWlzc2lvbkluZm8pOwogICAgIAotICAg
IHVpbnQ2NF90IG1fZnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbV9mcmFt
ZUlEOwogICAgIENvbXBsZXRpb25IYW5kbGVyIG1fY29tcGxldGlvbkhhbmRsZXI7CiAgICAgUmVm
PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBtX3VzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmln
aW47CiAgICAgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBtX3RvcExldmVsRG9jdW1lbnRT
ZWN1cml0eU9yaWdpbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAppbmRleCBk
MzQwMzc2ZmYyOTA3Yjg3MjkzNTY0NjQyODlkNDM0OTZkNDAwOTkxLi5kYjRjZGExMTE2MWQyMjI4
Mjk4NGZlZTlhZWFkNDBhNGVlYzFhNDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwCkBAIC0yNDAsOSArMjQwLDkgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6ZmluaXNoR3JhbnRpbmdSZXF1ZXN0KFVzZXJNZWRpYVBlcm0KICAgICBw
cm9jZXNzTmV4dFVzZXJNZWRpYVJlcXVlc3RJZk5lZWRlZCgpOwogfQogCi12b2lkIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXNldEFjY2Vzcyh1aW50NjRfdCBmcmFt
ZUlEKQordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVzZXRB
Y2Nlc3MoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7Ci0gICAgQUxXQVlTX0xPRyhMT0dJREVO
VElGSUVSLCBmcmFtZUlEKTsKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIGZyYW1lSUQu
bG9nZ2luZ1N0cmluZygpKTsKICAgICBtX2dyYW50ZWRSZXF1ZXN0cy5yZW1vdmVBbGxNYXRjaGlu
ZyhbZnJhbWVJRF0oY29uc3QgYXV0byYgZ3JhbnRlZFJlcXVlc3QpIHsKICAgICAgICAgcmV0dXJu
IGdyYW50ZWRSZXF1ZXN0LT5tYWluRnJhbWVJRCgpID09IGZyYW1lSUQ7CiAgICAgfSk7CkBAIC0y
NTEsNyArMjUxLDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eTo6cmVzZXRBY2Nlc3ModWludDY0X3QgZnJhbWVJRCkKICAgICBtX2hhc0ZpbHRlcmVkRGV2aWNl
TGlzdCA9IGZhbHNlOwogfQogCi1jb25zdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
KiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6c2VhcmNoRm9yR3JhbnRl
ZFJlcXVlc3QodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9y
aWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8pIGNvbnN0Citjb25zdCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eTo6c2VhcmNoRm9yR3JhbnRlZFJlcXVlc3QoRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3Qg
U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGJvb2wgbmVlZHNBdWRpbywg
Ym9vbCBuZWVkc1ZpZGVvKSBjb25zdAogewogICAgIGlmIChtX3BhZ2UuaXNNZWRpYVN0cmVhbUNh
cHR1cmVNdXRlZCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTI4Miw3ICsyODIsNyBA
QCBjb25zdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KiBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cwogICAgIHJldHVybiBudWxscHRyOwogfQogCi1ib29s
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp3YXNSZXF1ZXN0RGVuaWVk
KHVpbnQ2NF90IG1haW5GcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9j
dW1lbnRPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
LCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbywgYm9vbCBuZWVkc1NjcmVlbkNhcHR1
cmUpCitib29sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp3YXNSZXF1
ZXN0RGVuaWVkKEZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmln
aW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8sIGJvb2wg
bmVlZHNTY3JlZW5DYXB0dXJlKQogewogICAgIGZvciAoY29uc3QgYXV0byYgZGVuaWVkUmVxdWVz
dCA6IG1fZGVuaWVkUmVxdWVzdHMpIHsKICAgICAgICAgaWYgKCFkZW5pZWRSZXF1ZXN0LnVzZXJN
ZWRpYURvY3VtZW50T3JpZ2luLT5pc1NhbWVTY2hlbWVIb3N0UG9ydCh1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbikpCkBAIC0zNDYsNyArMzQ2LDcgQEAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHk6OlJlcXVlc3RBY3Rpb24gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QKIH0K
ICNlbmRpZgogCi12b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpy
ZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1
aW50NjRfdCBmcmFtZUlELCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4sIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBNZWRp
YVN0cmVhbVJlcXVlc3QmJiB1c2VyUmVxdWVzdCkKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWlu
dDY0X3QgdXNlck1lZGlhSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8U2VjdXJpdHlP
cmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0
b3BMZXZlbERvY3VtZW50T3JpZ2luLCBNZWRpYVN0cmVhbVJlcXVlc3QmJiB1c2VyUmVxdWVzdCkK
IHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIGlmICghbV9wYWdlLmhhc1J1bm5pbmdQ
cm9jZXNzKCkpCkBAIC01MjEsNyArNTIxLDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6cHJvY2Vzc1VzZXJNZWRpYVBlcm1pc3Npb25WYWxpZFJlcXUKICAg
ICBtX3BhZ2UudWlDbGllbnQoKS5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdChtX3BhZ2UsICp3ZWJGcmFtZSwgV1RGTW92ZSh1c2VyTWVkaWFPcmlnaW4pLCBXVEZNb3Zl
KHRvcExldmVsT3JpZ2luKSwgKm1fY3VycmVudFVzZXJNZWRpYVJlcXVlc3QpOwogfQogCi12b2lk
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpnZXRVc2VyTWVkaWFQZXJt
aXNzaW9uSW5mbyh1aW50NjRfdCBmcmFtZUlELCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50
T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBlcm1pc3Npb25JbmZvKT4mJiBoYW5kbGVy
KQordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Z2V0VXNlck1l
ZGlhUGVybWlzc2lvbkluZm8oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxTZWN1cml0eU9y
aWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRv
cExldmVsRG9jdW1lbnRPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUGVybWlzc2lvbklu
Zm8pPiYmIGhhbmRsZXIpCiB7CiAgICAgYXV0byogd2ViRnJhbWUgPSBtX3BhZ2UucHJvY2Vzcygp
LndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlmICghd2ViRnJhbWUgfHwgIVNlY3VyaXR5T3JpZ2lu
OjpjcmVhdGVGcm9tU3RyaW5nKG1fcGFnZS5wYWdlTG9hZFN0YXRlKCkuYWN0aXZlVVJMKCkpLT5p
c1NhbWVTY2hlbWVIb3N0UG9ydCh0b3BMZXZlbERvY3VtZW50T3JpZ2luLmdldCgpKSkgewpAQCAt
NTQ1LDcgKzU0NSw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHk6OmdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKHVpbnQ2NF90CiAgICAgbV9wYWdlLnVpQ2xp
ZW50KCkuY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKG1fcGFnZSwgKndlYkZyYW1l
LCB1c2VyTWVkaWFPcmlnaW4uZ2V0KCksIHRvcExldmVsT3JpZ2luLmdldCgpLCByZXF1ZXN0Lmdl
dCgpKTsKIH0KIAotYm9vbCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
d2FzR3JhbnRlZFZpZGVvT3JBdWRpb0FjY2Vzcyh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1
cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2lu
JiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKQorYm9vbCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6d2FzR3JhbnRlZFZpZGVvT3JBdWRpb0FjY2VzcyhGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
LCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbikKIHsKICAgICBm
b3IgKGNvbnN0IGF1dG8mIGdyYW50ZWRSZXF1ZXN0IDogbV9ncmFudGVkUmVxdWVzdHMpIHsKICAg
ICAgICAgaWYgKGdyYW50ZWRSZXF1ZXN0LT5yZXF1aXJlc0Rpc3BsYXlDYXB0dXJlKCkpCkBAIC02
MDQsNyArNjA0LDcgQEAgVmVjdG9yPENhcHR1cmVEZXZpY2U+IFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5Ojpjb21wdXRlRmlsdGVyZWREZXYKIH0KICNlbmRpZgogCi12b2lk
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjplbnVtZXJhdGVNZWRpYURl
dmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVm
PFNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlP
cmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbikKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2
NF90IHVzZXJNZWRpYUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUmVmPFNlY3VyaXR5T3Jp
Z2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9w
TGV2ZWxEb2N1bWVudE9yaWdpbikKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIEFM
V0FZU19MT0coTE9HSURFTlRJRklFUiwgdXNlck1lZGlhSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmgKaW5kZXggZjUwNWUyODBjNDQyOTBhODAzZGJkYjY4Yzk4ZWVhNjMwYjFjOWJi
Ni4uYmJiYTQ0YWM4MmJkMjgwNzViZGRmYmI0NTQ0NGNhNTY5YWNjZmI5NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5oCkBAIC02MCwxNSArNjAsMTUgQEAgcHVibGljOgogCiAgICAg
dm9pZCBpbnZhbGlkYXRlUGVuZGluZ1JlcXVlc3RzKCk7CiAKLSAgICB2b2lkIHJlcXVlc3RVc2Vy
TWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiAgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJik7CisgICAgdm9pZCByZXF1ZXN0VXNl
ck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiAgdXNlck1lZGlh
RG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERv
Y3VtZW50T3JpZ2luLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJik7CiAKLSAgICB2b2lk
IHJlc2V0QWNjZXNzKHVpbnQ2NF90IG1haW5GcmFtZUlEKTsKKyAgICB2b2lkIHJlc2V0QWNjZXNz
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCk7CiAgICAgdm9pZCB2aWV3SXNC
ZWNvbWluZ1Zpc2libGUoKTsKIAogICAgIHZvaWQgZ3JhbnRSZXF1ZXN0KFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkmKTsKICAgICB2b2lkIGRlbnlSZXF1ZXN0KFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkmLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2Vy
TWVkaWFBY2Nlc3NEZW5pYWxSZWFzb24sIGNvbnN0IFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnQg
PSB7IH0pOwogCi0gICAgdm9pZCBlbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50NjRf
dCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7CisgICAgdm9pZCBlbnVtZXJhdGVNZWRpYURl
dmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmln
aW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
KTsKIAogICAgIHZvaWQgc3RvcENhcHR1cmUoKTsKICAgICB2b2lkIHNjaGVkdWxlTmV4dFJlamVj
dGlvbigpOwpAQCAtOTUsMTkgKzk1LDE5IEBAIHByaXZhdGU6CiAgICAgV1RGTG9nQ2hhbm5lbCYg
bG9nQ2hhbm5lbCgpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKLSAgICBSZWY8VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRlUGVybWlzc2lvblJlcXVlc3QodWludDY0X3QgdXNl
ck1lZGlhSUQsIHVpbnQ2NF90IG1haW5GcmFtZUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0b3I8V2Vi
Q29yZTo6Q2FwdHVyZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYp
OworICAgIFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGVQZXJtaXNz
aW9uUmVxdWVzdCh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IG1haW5GcmFtZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+
JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJik7CiAjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKICAgICB2b2lkIGZpbmlzaEdyYW50aW5nUmVxdWVzdChVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Jik7CiAKLSAgICBjb25zdCBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5KiBzZWFyY2hGb3JHcmFudGVkUmVxdWVzdCh1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4s
IGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBi
b29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbykgY29uc3Q7Ci0gICAgYm9vbCB3YXNSZXF1
ZXN0RGVuaWVkKHVpbnQ2NF90IG1haW5GcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNW
aWRlbywgYm9vbCBuZWVkc1NjcmVlbkNhcHR1cmUpOworICAgIGNvbnN0IFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkqIHNlYXJjaEZvckdyYW50ZWRSZXF1ZXN0KFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8pIGNvbnN0OworICAgIGJv
b2wgd2FzUmVxdWVzdERlbmllZChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQs
IGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGJv
b2wgbmVlZHNBdWRpbywgYm9vbCBuZWVkc1ZpZGVvLCBib29sIG5lZWRzU2NyZWVuQ2FwdHVyZSk7
CiAKICAgICB1c2luZyBQZXJtaXNzaW9uSW5mbyA9IFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1By
b3h5OjpQZXJtaXNzaW9uSW5mbzsKLSAgICB2b2lkIGdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZv
KHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVk
aWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVs
RG9jdW1lbnRPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUGVybWlzc2lvbkluZm8pPiYm
KTsKKyAgICB2b2lkIGdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50
T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9y
aWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQZXJtaXNzaW9uSW5mbyk+JiYpOwogCiAgICAg
UmVxdWVzdEFjdGlvbiBnZXRSZXF1ZXN0QWN0aW9uKGNvbnN0IFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkmKTsKIAotICAgIGJvb2wgd2FzR3JhbnRlZFZpZGVvT3JBdWRpb0FjY2Vzcyh1
aW50NjRfdCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50
T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9y
aWdpbik7CisgICAgYm9vbCB3YXNHcmFudGVkVmlkZW9PckF1ZGlvQWNjZXNzKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbik7CiAKICAgICBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gY29tcHV0
ZUZpbHRlcmVkRGV2aWNlTGlzdChib29sIHJldmVhbElkc0FuZExhYmVscywgY29uc3QgU3RyaW5n
JiBkZXZpY2VJREhhc2hTYWx0KTsKIApAQCAtMTM0LDcgKzEzNCw3IEBAIHByaXZhdGU6CiAgICAg
VmVjdG9yPFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Pj4gbV9ncmFudGVkUmVx
dWVzdHM7CiAKICAgICBzdHJ1Y3QgRGVuaWVkUmVxdWVzdCB7Ci0gICAgICAgIHVpbnQ2NF90IG1h
aW5GcmFtZUlEOworICAgICAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQ7
CiAgICAgICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW47CiAgICAgICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbjsKICAgICAgICAgYm9vbCBpc0F1ZGlvRGVuaWVkOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmNwcAppbmRleCA0ZjAyODQwNmJhNGE3NzUxNjQ3MDY0NzY3MWYzYTk1MDg4YWZmNGFiLi45NjZm
ZGFkNWNmMGRkMDliOThmZjU1NjEwM2UyMDZhYTExNzVjOTYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmNwcApAQCAtMzAsNyArMzAsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAotVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eSYgbWFuYWdlciwgdWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IG1haW5GcmFtZUlE
LCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiBhdWRpb0Rl
dmljZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgV2Vi
Q29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYgcmVxdWVzdCkKK1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJNZWRpYUlE
LCBGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBS
ZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJl
ZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0
b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1
ZXN0JiYgcmVxdWVzdCkKICAgICA6IG1fbWFuYWdlcigmbWFuYWdlcikKICAgICAsIG1fdXNlck1l
ZGlhSUQodXNlck1lZGlhSUQpCiAgICAgLCBtX21haW5GcmFtZUlEKG1haW5GcmFtZUlEKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eS5oCmluZGV4IDU0NGY2MTE2ZWRiNjYyYThmYTk2MzFiYzNhZjhiNzBkZWRjNTgy
N2YuLmJhNGUwYTM0NzE2MDMxYjE4ZjA4NWNmZDAxYTczNTE3NzhhMDMwNTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5LmgKQEAgLTIxLDYgKzIxLDcgQEAKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJ
ZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVN0cmVhbVJlcXVlc3QuaD4KICNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBA
IC0zNSw3ICszNiw3IEBAIGNsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5OwogCiBjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5IDogcHVibGljIEFQ
STo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3Q+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHk+IGNyZWF0ZShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbWFu
YWdlciwgdWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IG1haW5GcmFtZUlELCB1aW50NjRf
dCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1l
bnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50
T3JpZ2luLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZl
Y3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVk
aWFTdHJlYW1SZXF1ZXN0JiYgcmVxdWVzdCkKKyAgICBzdGF0aWMgUmVmPFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eSYgbWFuYWdlciwgdWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBtYWluRnJhbWVJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJl
ZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVm
PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZlY3Rv
cjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVl
c3QmJiByZXF1ZXN0KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShtYW5hZ2VyLCB1c2VyTWVkaWFJRCwgbWFpbkZyYW1l
SUQsIGZyYW1lSUQsIFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKHRv
cExldmVsRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKGF1ZGlvRGV2aWNlcyksIFdURk1vdmUodmlk
ZW9EZXZpY2VzKSwgV1RGTW92ZShyZXF1ZXN0KSkpOwogICAgIH0KQEAgLTY1LDggKzY2LDggQEAg
cHVibGljOgogICAgIHZvaWQgc2V0SGFzUGVyc2lzdGVudEFjY2VzcygpIHsgbV9oYXNQZXJzaXN0
ZW50QWNjZXNzID0gdHJ1ZTsgfQogCiAgICAgdWludDY0X3QgdXNlck1lZGlhSUQoKSBjb25zdCB7
IHJldHVybiBtX3VzZXJNZWRpYUlEOyB9Ci0gICAgdWludDY0X3QgbWFpbkZyYW1lSUQoKSBjb25z
dCB7IHJldHVybiBtX21haW5GcmFtZUlEOyB9Ci0gICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0
IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQorICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWlu
RnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbkZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQogCiAg
ICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdp
bigpIHsgcmV0dXJuIG1fdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luLmdldCgpOyB9CiAg
ICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmln
aW4oKSB7IHJldHVybiBtX3VzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW4uZ2V0KCk7IH0K
QEAgLTg0LDEyICs4NSwxMiBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZSB2
aWRlb0RldmljZSgpIGNvbnN0IHsgcmV0dXJuIG1fZWxpZ2libGVWaWRlb0RldmljZXMuaXNFbXB0
eSgpID8gV2ViQ29yZTo6Q2FwdHVyZURldmljZSB7IH0gOiBtX2VsaWdpYmxlVmlkZW9EZXZpY2Vz
WzBdOyB9CiAKIHByaXZhdGU6Ci0gICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYsIHVpbnQ2NF90IHVzZXJNZWRp
YUlELCB1aW50NjRfdCBtYWluRnJhbWVJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVjdG9yPFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURl
dmljZT4mJiB2aWRlb0RldmljZXMsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKKyAg
ICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5JiwgdWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBtYWluRnJhbWVJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWY8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0b3I8V2ViQ29y
ZTo6Q2FwdHVyZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYpOwog
CiAgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkqIG1fbWFuYWdlcjsK
ICAgICB1aW50NjRfdCBtX3VzZXJNZWRpYUlEOwotICAgIHVpbnQ2NF90IG1fbWFpbkZyYW1lSUQ7
Ci0gICAgdWludDY0X3QgbV9mcmFtZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBt
X21haW5GcmFtZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX2ZyYW1lSUQ7CiAg
ICAgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBtX3VzZXJNZWRpYURvY3VtZW50U2VjdXJp
dHlPcmlnaW47CiAgICAgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBtX3RvcExldmVsRG9j
dW1lbnRTZWN1cml0eU9yaWdpbjsKICAgICBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4g
bV9lbGlnaWJsZVZpZGVvRGV2aWNlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkZyYW1lUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQ
cm94eS5jcHAKaW5kZXggMDcxNGI0MWViNjc3NjhkOWUwYzlkNDEyZTIwZTg5OGY4MWU3M2RkOC4u
ZWUzMzcxMDgxNzA3ZWEzNmQzNTBlZmUyY2M1YTAzYzFkMTkxZGE0YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAKQEAgLTQ1LDkgKzQ1LDggQEAgdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIAotV2ViRnJhbWVQcm94eTo6
V2ViRnJhbWVQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIHVpbnQ2NF90IGZyYW1lSUQpCitXZWJG
cmFtZVByb3h5OjpXZWJGcmFtZVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQpCiAgICAgOiBtX3BhZ2UobWFrZVdlYWtQdHIocGFnZSkpCi0gICAgLCBtX2lz
RnJhbWVTZXQoZmFsc2UpCiAgICAgLCBtX2ZyYW1lSUQoZnJhbWVJRCkKIHsKICAgICBXZWJQcm9j
ZXNzUG9vbDo6c3RhdGlzdGljcygpLndrRnJhbWVDb3VudCsrOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViRnJhbWVQcm94eS5oCmluZGV4IDQ0NjAwZjFjMjcyOTBlNWU0YzE2OGVhOGNkM2NjMzk2
MzZmZGJiZTEuLmNjZGE2Mzc4MDAyZDU1YWIxNTdhNmYxNTM3YzVlZjc5ZGI0NWMyNTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgKQEAgLTU5LDE0ICs1OSwxNCBAQCBz
dHJ1Y3QgV2Vic2l0ZVBvbGljaWVzRGF0YTsKIAogY2xhc3MgV2ViRnJhbWVQcm94eSA6IHB1Ymxp
YyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OkZyYW1lPiB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFJlZjxXZWJGcmFtZVByb3h5PiBjcmVhdGUoV2ViUGFnZVByb3h5JiBwYWdlLCB1
aW50NjRfdCBmcmFtZUlEKQorICAgIHN0YXRpYyBSZWY8V2ViRnJhbWVQcm94eT4gY3JlYXRlKFdl
YlBhZ2VQcm94eSYgcGFnZSwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAgICAg
ewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJGcmFtZVByb3h5KHBhZ2UsIGZyYW1l
SUQpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5XZWJGcmFtZVByb3h5KCk7CiAKLSAgICB1aW50
NjRfdCBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9CisgICAgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KICAg
ICBXZWJQYWdlUHJveHkqIHBhZ2UoKSBjb25zdCB7IHJldHVybiBtX3BhZ2UuZ2V0KCk7IH0KIAog
ICAgIHZvaWQgd2ViUHJvY2Vzc1dpbGxTaHV0RG93bigpOwpAQCAtMTMwLDcgKzEzMCw3IEBAIHB1
YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIFdlYkZyYW1lUHJveHkoV2ViUGFnZVByb3h5
JiwgdWludDY0X3QgZnJhbWVJRCk7CisgICAgV2ViRnJhbWVQcm94eShXZWJQYWdlUHJveHkmLCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogCiAgICAgV2Vha1B0cjxXZWJQYWdlUHJveHk+IG1f
cGFnZTsKIApAQCAtMTM4LDExICsxMzgsMTEgQEAgcHJpdmF0ZToKIAogICAgIFN0cmluZyBtX01J
TUVUeXBlOwogICAgIFN0cmluZyBtX3RpdGxlOwotICAgIGJvb2wgbV9pc0ZyYW1lU2V0OworICAg
IGJvb2wgbV9pc0ZyYW1lU2V0IHsgZmFsc2UgfTsKICAgICBib29sIG1fY29udGFpbnNQbHVnaW5E
b2N1bWVudCB7IGZhbHNlIH07CiAgICAgUmVmUHRyPFdlYkNlcnRpZmljYXRlSW5mbz4gbV9jZXJ0
aWZpY2F0ZUluZm87CiAgICAgUmVmUHRyPFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eT4gbV9h
Y3RpdmVMaXN0ZW5lcjsKLSAgICB1aW50NjRfdCBtX2ZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIG1fZnJhbWVJRDsKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCiAg
ICAgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyIG1fY29udGVudEZpbHRlclVu
YmxvY2tIYW5kbGVyOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAppbmRleCAzMjYzMWM0NTBlYjI2ZDc1NDU0NjhiNzI2YzE1YTQ0OTg1Yzk5OGE5Li5kMmY5
YTg4NzA1N2IwZGNkNzk0NzhiMTBiNzAwNzNjNmQ4NmM3YmIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTc0Myw3ICs3NDMsNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6bGF1bmNoUHJvY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVnaXN0cmFibGVE
b21haW4pCiAgICAgZmluaXNoQXR0YWNoaW5nVG9XZWJQcm9jZXNzKElzUHJvY2Vzc1N3YXA6Ok5v
KTsKIH0KIAotYm9vbCBXZWJQYWdlUHJveHk6OnN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUo
QVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBPcHRpb25hbDx1aW50NjRfdD4gbWFpbkZyYW1l
SUQsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNs
aWVudCwgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmdNb2RlIHNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0
aW5nTW9kZSkKK2Jvb2wgV2ViUGFnZVByb3h5OjpzdXNwZW5kQ3VycmVudFBhZ2VJZlBvc3NpYmxl
KEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBt
YWluRnJhbWVJRCwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVl
c3RlZEJ5Q2xpZW50LCBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ01vZGUgc2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKQogewogICAgIG1fbGFzdFN1c3BlbmRlZFBhZ2UgPSBudWxscHRyOwog
CkBAIC0yOTMxLDEyICsyOTMxLDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWNlaXZlZFBvbGlj
eURlY2lzaW9uKFBvbGljeUFjdGlvbiBhY3Rpb24sIEFQSTo6TmF2aWdhdGlvbioKICAgICBzZW5k
ZXItPnNlbmQoYWN0aW9uLCBuYXZpZ2F0aW9uID8gbmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCkg
OiAwLCBkb3dubG9hZElELCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcykpOwogfQogCi12b2lkIFdl
YlBhZ2VQcm94eTo6Y29tbWl0UHJvdmlzaW9uYWxQYWdlKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1
c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29y
ZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVnaW5E
b2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJ
bnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVBy
b3h5Ojpjb21taXRQcm92aXNpb25hbFBhZ2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1
c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29y
ZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVnaW5E
b2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJ
bnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBBU1NFUlQo
bV9wcm92aXNpb25hbFBhZ2UpOwogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywg
ImNvbW1pdFByb3Zpc2lvbmFsUGFnZTogcHJldmlvdXNQSUQgPSAlaSwgbmV3UElEID0gJWksIHBh
Z2VJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3Byb3Zp
c2lvbmFsUGFnZS0+cHJvY2VzcygpLnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUlu
dDY0KCkpOwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IG1haW5GcmFtZUlESW5QcmV2aW91c1By
b2Nlc3MgPSBtX21haW5GcmFtZSA/IG1ha2VPcHRpb25hbChtX21haW5GcmFtZS0+ZnJhbWVJRCgp
KSA6IFdURjo6bnVsbG9wdDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IG1haW5GcmFt
ZUlESW5QcmV2aW91c1Byb2Nlc3MgPSBtX21haW5GcmFtZSA/IG1ha2VPcHRpb25hbChtX21haW5G
cmFtZS0+ZnJhbWVJRCgpKSA6IFdURjo6bnVsbG9wdDsKIAogICAgIEFTU0VSVChtX3Byb2Nlc3Mu
cHRyKCkgIT0gJm1fcHJvdmlzaW9uYWxQYWdlLT5wcm9jZXNzKCkpOwogCkBAIC0zNjcyLDcgKzM2
NzIsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lU2NyaXB0
V29ybGQoY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvbwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6UnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lU2NyaXB0V29ybGQoc2NyaXB0
LCBmb3JjZVVzZXJHZXN0dXJlLCB3b3JsZE5hbWUsIGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7CiB9
CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0SW5GcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBTdHJpbmcmIHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBXVEY6OkZ1
bmN0aW9uPHZvaWQoQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqLCBib29sIGhhZEV4Y2VwdGlv
biwgY29uc3QgRXhjZXB0aW9uRGV0YWlscyYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxi
YWNrRnVuY3Rpb24pCit2b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEluRnJhbWUoRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib29sIGZvcmNlVXNl
ckdlc3R1cmUsIFdURjo6RnVuY3Rpb248dm9pZChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSos
IGJvb2wgaGFkRXhjZXB0aW9uLCBjb25zdCBFeGNlcHRpb25EZXRhaWxzJiwgQ2FsbGJhY2tCYXNl
OjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbikKIHsKICAgICBBU1NFUlQobWFpbkZyYW1lKCkt
PmZyYW1lSUQoKSAhPSBmcmFtZUlEKTsKICAgICBhdXRvIGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNr
cy5wdXQoV1RGTW92ZShjYWxsYmFja0Z1bmN0aW9uKSwgbV9wcm9jZXNzLT50aHJvdHRsZXIoKS5i
YWNrZ3JvdW5kQWN0aXZpdHlUb2tlbigpKTsKQEAgLTM4NzgsNyArMzg3OCw3IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpwcmVmZXJlbmNlc0RpZENoYW5nZSgpCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpQcmVmZXJlbmNlc0RpZENoYW5nZShwcmVmZXJlbmNlc1N0b3JlKCkp
LCBtX3BhZ2VJRCwgcHJpbnRpbmdTZW5kT3B0aW9ucyhtX2lzUGVyZm9ybWluZ0RPTVByaW50T3Bl
cmF0aW9uKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUoRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgLy8gVGhlIERlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25TeW5jIElQQyBpcyBzeW5jaHJvbm91cyBhbmQgbWF5IHRoZXJlZm9yZSBnZXQg
cHJvY2Vzc2VkIGJlZm9yZSB0aGUgRGlkQ3JlYXRlTWFpbkZyYW1lIG9uZS4KICAgICAvLyBXaGVu
IHRoaXMgaGFwcGVucywgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoKSBjYWxs
cyBkaWRDcmVhdGVNYWluRnJhbWUoKSBhbmQgd2UgbmVlZCB0byBpZ25vcmUgdGhlIERpZENyZWF0
ZU1haW5GcmFtZQpAQCAtMzg5Nyw3ICszODk3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENy
ZWF0ZU1haW5GcmFtZSh1aW50NjRfdCBmcmFtZUlEKQogICAgIG1fcHJvY2Vzcy0+ZnJhbWVDcmVh
dGVkKGZyYW1lSUQsICptX21haW5GcmFtZSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRD
cmVhdGVTdWJmcmFtZSh1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENy
ZWF0ZVN1YmZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIFBhZ2VDbGllbnRQ
cm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTM5MTcsNyArMzkxNyw3IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVTdWJmcmFtZSh1aW50NjRfdCBmcmFtZUlEKQog
ICAgIG1fcHJvY2Vzcy0+ZnJhbWVDcmVhdGVkKGZyYW1lSUQsIHN1YkZyYW1lLmdldCgpKTsKIH0K
IAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0ZVdpbmRvdyh1aW50NjRfdCBmcmFtZUlELCBH
bG9iYWxXaW5kb3dJZGVudGlmaWVyJiYgd2luZG93SWRlbnRpZmllcikKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRDcmVhdGVXaW5kb3coRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEdsb2JhbFdpbmRv
d0lkZW50aWZpZXImJiB3aW5kb3dJZGVudGlmaWVyKQogewogfQogCkBAIC0zOTgxLDEyICszOTgx
LDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWREZXN0cm95TmF2aWdhdGlvbih1aW50NjRfdCBu
YXZpZ2F0aW9uSUQpCiAgICAgbV9uYXZpZ2F0aW9uU3RhdGUtPmRpZERlc3Ryb3lOYXZpZ2F0aW9u
KG5hdmlnYXRpb25JRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
VVJMJiYgdXJsLCBVUkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRh
KQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYgdXJsLCBV
UkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIGRp
ZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwg
ZnJhbWVJRCwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKHVybCksIFdURk1vdmUodW5yZWFjaGFibGVV
UkwpLCB1c2VyRGF0YSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgdWlu
dDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwsIFVSTCYmIHVu
cmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmIHByb2Nlc3MsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIFVSTCYmIHVybCwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJiB1
c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50
KCkpOwogCkBAIC00MDA1LDggKzQwMDUsOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU3RhcnRQ
cm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmCiAgICAg
aWYgKGZyYW1lLT5pc01haW5GcmFtZSgpICYmIG5hdmlnYXRpb25JRCkKICAgICAgICAgbmF2aWdh
dGlvbiA9IG5hdmlnYXRpb25TdGF0ZSgpLm5hdmlnYXRpb24obmF2aWdhdGlvbklEKTsKIAotICAg
IExPRyhMb2FkaW5nLCAiV2ViUGFnZVByb3h5ICUiIFBSSXU2NCAiIGluIHByb2Nlc3MgcGlkICVp
IGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUgdG8gZnJhbWVJRCAlIiBQUkl1NjQgIiwg
bmF2aWdhdGlvbklEICUiIFBSSXU2NCAiLCB1cmwgJXMiLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBw
cm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQsIHVybC5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRp
bmcsICJkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIHByb2Nlc3MtPnByb2Nlc3NJZGVu
dGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQpOworICAgIExPRyhMb2FkaW5n
LCAiV2ViUGFnZVByb3h5ICUiIFBSSXU2NCAiIGluIHByb2Nlc3MgcGlkICVpIGRpZFN0YXJ0UHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWUgdG8gZnJhbWVJRCAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklE
ICUiIFBSSXU2NCAiLCB1cmwgJXMiLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBwcm9jZXNzLT5wcm9j
ZXNzSWRlbnRpZmllcigpLCBmcmFtZUlELnRvVUludDY0KCksIG5hdmlnYXRpb25JRCwgdXJsLnN0
cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGlu
ZywgImRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50
aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAg
IGF1dG8gdHJhbnNhY3Rpb24gPSBtX3BhZ2VMb2FkU3RhdGUudHJhbnNhY3Rpb24oKTsKIApAQCAt
NDAzMSw3ICs0MDMxLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJgogICAgICAgICBtX25hdmln
YXRpb25DbGllbnQtPmRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uKCp0aGlzLCBuYXZpZ2F0
aW9uLmdldCgpLCBwcm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9i
amVjdCgpKS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRFeHBsaWNpdE9wZW5G
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBVUkwmJiB1cmwpCit2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkRXhwbGljaXRPcGVuRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFVSTCYmIHVy
bCkKIHsKICAgICBhdXRvKiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAg
ICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKQEAgLTQwNTAsMTUgKzQwNTAsMTUg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEV4cGxpY2l0T3BlbkZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIFVSTCYmIHVybCkKICAgICBtX3BhZ2VMb2FkU3RhdGUuY29tbWl0Q2hhbmdlcygpOwog
fQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQog
ewogICAgIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
U2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgV1RGTW92
ZShyZXF1ZXN0KSwgdXNlckRhdGEpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2
ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiBwcm9jZXNzLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0
YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNp
b25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFJlc291cmNlUmVx
dWVzdCYmIHJlcXVlc3QsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKLSAgICBMT0coTG9h
ZGluZywgIldlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUgdG8gZnJhbWVJRCAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEICUiIFBS
SXU2NCAiLCB1cmwgJXMiLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQsIHJlcXVlc3QudXJsKCkuc3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5n
LCAiZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6IHdl
YlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgcHJv
Y2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCk7
CisgICAgTE9HKExvYWRpbmcsICJXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lIHRvIGZyYW1lSUQgJSIgUFJJdTY0ICIsIG5hdmln
YXRpb25JRCAlIiBQUkl1NjQgIiwgdXJsICVzIiwgZnJhbWVJRC50b1VJbnQ2NCgpLCBuYXZpZ2F0
aW9uSUQsIHJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdl
SUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAgIFBhZ2VDbGllbnRQcm90
ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQwODUsOSArNDA4NSw5IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExv
YWRGb3JGcmFtZVNoYXJlZChSZWY8CiAgICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkUmVj
ZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxOYXZpZ2F0aW9uKCp0aGlzLCBuYXZpZ2F0
aW9uLmdldCgpLCBwcm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9i
amVjdCgpKS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsUGVyZm9ybUNsaWVu
dFJlZGlyZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1cmwsIGRv
dWJsZSBkZWxheSwgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCkKK3ZvaWQgV2ViUGFnZVBy
b3h5Ojp3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIGNvbnN0IFN0cmluZyYgdXJsLCBkb3VibGUgZGVsYXksIFdlYkNvcmU6OkxvY2tCYWNr
Rm9yd2FyZExpc3QpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAid2ls
bFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZp
ZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRChMb2FkaW5nLCAid2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lOiB3ZWJQ
SUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJv
Y2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50
b1VJbnQ2NCgpKTsKIAogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGll
bnQoKSk7CiAKQEAgLTQwOTgsOSArNDA5OCw5IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsUGVy
Zm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyCiAg
ICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdCgqdGhp
cywgdXJsLCBkZWxheSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRDYW5jZWxDbGllbnRS
ZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
Q2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsK
LSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRDYW5jZWxDbGllbnRSZWRp
cmVjdEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9V
SW50NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAi
ZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlm
aWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAKICAgICBQ
YWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00MTExLDEy
ICs0MTExLDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCiAgICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlk
Q2FuY2VsQ2xpZW50UmVkaXJlY3QoKnRoaXMpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
Q2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIFVSTCYmIHVybCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92
aXNpb25hbFVSTEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIFVSTCYmIHVybCkKIHsKICAgICBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZy
YW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgV1RG
TW92ZSh1cmwpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFs
VVJMRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCB1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCwgVVJMJiYgdXJsKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENo
YW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBw
cm9jZXNzLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QsIFVSTCYmIHVybCkKIHsK
ICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00
MTM1LDcgKzQxMzUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxV
UkxGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmCiAgICAgZnJhbWUtPmRpZFJl
Y2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZCh1cmwpOwogfQogCi12b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBSZXNv
dXJjZUVycm9yJiBlcnJvciwgV2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5n
LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1
cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJy
b3IsIFdpbGxDb250aW51ZUxvYWRpbmcgd2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRh
dGEmIHVzZXJEYXRhKQogewogICAgIGlmIChtX3Byb3Zpc2lvbmFsUGFnZSAmJiBtX3Byb3Zpc2lv
bmFsUGFnZS0+bmF2aWdhdGlvbklEKCkgPT0gbmF2aWdhdGlvbklEKSB7CiAgICAgICAgIC8vIFRo
ZSBsb2FkIGRpZCBub3QgZmFpbCwgaXQgaXMgbWVyZWx5IGhhcHBlbmluZyBpbiBhIG5ldyBwcm92
aXNpb25hbCBwcm9jZXNzLgpAQCAtNDE0NSwxMCArNDE0NSwxMCBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFNlY3VyaQogICAgIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nl
c3MuY29weVJlZigpLCBmcmFtZUlELCBmcmFtZVNlY3VyaXR5T3JpZ2luLCBuYXZpZ2F0aW9uSUQs
IHByb3Zpc2lvbmFsVVJMLCBlcnJvciwgd2lsbENvbnRpbnVlTG9hZGluZywgdXNlckRhdGEpOwog
fQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgdWludDY0X3QgZnJhbWVJRCwgY29u
c3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFJlc291cmNlRXJy
b3ImIGVycm9yLCBXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0
IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9u
YWxVUkwsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBXaWxsQ29udGludWVMb2FkaW5nIHdp
bGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBMT0co
TG9hZGluZywgIihMb2FkaW5nKSBXZWJQYWdlUHJveHkgJSIgUFJJdTY0ICIgaW4gd2ViIHByb2Nl
c3MgcGlkICVpIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSB0byBwcm92aXNpb25hbFVS
TCAlcyIsIG1fcGFnZUlELnRvVUludDY0KCksIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCks
IHByb3Zpc2lvbmFsVVJMLnV0ZjgoKS5kYXRhKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoUHJvY2VzcywgImRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZTogd2ViUElEID0gJWks
IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIGRvbWFpbiA9ICVz
LCBjb2RlID0gJWQiLCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJ
bnQ2NCgpLCBmcmFtZUlELCBlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJvci5lcnJv
ckNvZGUoKSk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzLCAiZGlkRmFpbFBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIs
IGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgZG9tYWluID0gJXMsIGNvZGUgPSAlZCIsIHByb2Nlc3Mt
PnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50
NjQoKSwgZXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSwgZXJyb3IuZXJyb3JDb2RlKCkpOwog
CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAt
NDIyNCwxMSArNDIyNCwxMSBAQCBzdGF0aWMgT3B0aW9uU2V0PENyb3NzU2l0ZU5hdmlnYXRpb25E
YXRhVHJhbnNmZXI6OkZsYWc+IGNoZWNrSWZOYXZpZ2F0aW9uQ29udGFpbgogfQogI2VuZGlmCiAK
LXZvaWQgV2ViUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZy
YW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBvcGFxdWVGcmFtZUxvYWRUeXBl
LCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBj
b250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxIYXNJbnNlY3VyZUNvbnRlbnQ+IGhhc0lu
c2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJv
eHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3Vz
dG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBvcGFxdWVGcmFtZUxvYWRUeXBlLCBjb25zdCBX
ZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1Bs
dWdpbkRvY3VtZW50LCBPcHRpb25hbDxIYXNJbnNlY3VyZUNvbnRlbnQ+IGhhc0luc2VjdXJlQ29u
dGVudCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIExPRyhMb2FkaW5nLCAiKExv
YWRpbmcpIFdlYlBhZ2VQcm94eSAlIiBQUkl1NjQgIiBkaWRDb21taXRMb2FkRm9yRnJhbWUgaW4g
bmF2aWdhdGlvbiAlIiBQUkl1NjQsIG1fcGFnZUlELnRvVUludDY0KCksIG5hdmlnYXRpb25JRCk7
CiAgICAgTE9HKEJhY2tGb3J3YXJkLCAiKEJhY2svRm9yd2FyZCkgQWZ0ZXIgbG9hZCBjb21taXQs
IGJhY2svZm9yd2FyZCBsaXN0IGlzIG5vdzolcyIsIG1fYmFja0ZvcndhcmRMaXN0LT5sb2dnaW5n
U3RyaW5nKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZENvbW1p
dExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRv
VUludDY0KCksIGZyYW1lSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywg
ImRpZENvbW1pdExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1f
cGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAKICAgICBQYWdlQ2xpZW50
UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00MzM4LDkgKzQzMzgsOSBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRAogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5
OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7Ci0g
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkRmluaXNoRG9jdW1lbnRMb2Fk
Rm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2
NCgpLCBmcmFtZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRG
aW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCks
IG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAKICAgICBQYWdlQ2xp
ZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00MzYxLDEwICs0MzYx
LDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpCiAgICAgICAgIG1fbmF2aWdhdGlvbkNsaWVu
dC0+ZGlkRmluaXNoRG9jdW1lbnRMb2FkKCp0aGlzLCBuYXZpZ2F0aW9uLmdldCgpLCBtX3Byb2Nl
c3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0KCkpLmdldCgpKTsK
IH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkK
K3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRh
KQogewogICAgIExPRyhMb2FkaW5nLCAiV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hMb2FkRm9yRnJh
bWUgLSBXZWJQYWdlUHJveHkgJXAgd2l0aCBuYXZpZ2F0aW9uSUQgJSIgUFJJdTY0ICIgZGlkRmlu
aXNoTG9hZCIsIHRoaXMsIG5hdmlnYXRpb25JRCk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RChMb2FkaW5nLCAiZGlkRmluaXNoTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50
aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkRmluaXNoTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwg
cGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJv
Y2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgp
KTsKIAogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAK
QEAgLTQ0MDcsOSArNDQwNyw5IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hMb2FkRm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklECiAgICAgbV9pc0xv
YWRpbmdBbHRlcm5hdGVIVE1MU3RyaW5nRm9yRmFpbGluZ1Byb3Zpc2lvbmFsTG9hZCA9IGZhbHNl
OwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbExvYWRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9y
LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbExv
YWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQog
ewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZEZhaWxMb2FkRm9yRnJh
bWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2
NCAiLCBkb21haW4gPSAlcywgY29kZSA9ICVkIiwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmll
cigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELCBlcnJvci5kb21haW4oKS51dGY4KCku
ZGF0YSgpLCBlcnJvci5lcnJvckNvZGUoKSk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChM
b2FkaW5nLCAiZGlkRmFpbExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIGRvbWFpbiA9ICVzLCBjb2RlID0gJWQiLCBt
X3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1l
SUQudG9VSW50NjQoKSwgZXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSwgZXJyb3IuZXJyb3JD
b2RlKCkpOwogCiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgp
KTsKIApAQCAtNDQ0OSw5ICs0NDQ5LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxMb2Fk
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELAogICAgIH0K
IH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQzMl90IG9wYXF1
ZVNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLCBVUkwmJiB1cmwsIGNvbnN0IFVzZXJEYXRhJiB1
c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9y
RnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWlu
dDMyX3Qgb3BhcXVlU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUsIFVSTCYmIHVybCwgY29uc3Qg
VXNlckRhdGEmIHVzZXJEYXRhKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGlu
ZywgImRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJ
ZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQpOworICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFt
ZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZy
YW1lSUQudG9VSW50NjQoKSk7CiAKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3Rvcihw
YWdlQ2xpZW50KCkpOwogCkBAIC00NDg4LDcgKzQ0ODgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2
NF90CiAgICAgICAgIHBhZ2VDbGllbnQoKS5kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFp
bkZyYW1lKG5hdmlnYXRpb25UeXBlKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5n
ZU1haW5Eb2N1bWVudCh1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENo
YW5nZU1haW5Eb2N1bWVudChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQogICAgIGlmIChtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cikKQEAgLTQ1MDcsNyArNDUwNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp2aWV3SXNCZWNvbWlu
Z1Zpc2libGUoKQogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlVGl0
bGVGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBV
c2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRpdGxlRm9y
RnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0
IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3Rv
cihwYWdlQ2xpZW50KCkpOwogCkBAIC00NTI5LDExICs0NTI5LDExIEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJp
bmcmIHRpdGxlCiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpcnN0TGF5b3V0
Rm9yRnJhbWUodWludDY0X3QsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRGaXJzdExheW91dEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciwgY29uc3QgVXNl
ckRhdGEmIHVzZXJEYXRhKQogewogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmlyc3RWaXN1
YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVXNlckRh
dGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0
eUxheW91dEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBVc2VyRGF0YSYg
dXNlckRhdGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVu
dCgpKTsKIApAQCAtNDU2NCw3ICs0NTY0LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlYWNo
TGF5b3V0TWlsZXN0b25lKE9wdGlvblNldDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+IGwKICAg
ICBtX25hdmlnYXRpb25DbGllbnQtPnJlbmRlcmluZ1Byb2dyZXNzRGlkQ2hhbmdlKCp0aGlzLCBs
YXlvdXRNaWxlc3RvbmVzKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZERpc3BsYXlJbnNl
Y3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVc2VyRGF0YSYgdXNl
ckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZy
YW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7
CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAt
NDU3OCw3ICs0NTc4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZERpc3BsYXlJbnNlY3VyZUNv
bnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVc2UKICAgICBtX25hdmlnYXRp
b25DbGllbnQtPmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQoKnRoaXMsIG1fcHJvY2Vzcy0+dHJh
bnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOwogfQogCi12
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRp
ZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25z
dCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0
b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDU5Miw3ICs0NTkyLDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFVzZXJEYXQKICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRpZFJ1bkluc2VjdXJlQ29udGVudCgq
dGhpcywgbV9wcm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9iamVj
dCgpKS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFt
ZSh1aW50NjRfdCwgY29uc3QgVXNlckRhdGEmKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZERldGVj
dFhTU0ZvckZyYW1lKEZyYW1lSWRlbnRpZmllciwgY29uc3QgVXNlckRhdGEmKQogewogfQogCkBA
IC00NjAxLDcgKzQ2MDEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bWFpbkZyYW1lUGx1Z2luSGFu
ZGxlc1BhZ2VTY2FsZUdlc3R1cmVEaWRDaGFuZ2UoYm9vbCBtYWluRnJhbQogICAgIG1fbWFpbkZy
YW1lUGx1Z2luSGFuZGxlc1BhZ2VTY2FsZUdlc3R1cmUgPSBtYWluRnJhbWVQbHVnaW5IYW5kbGVz
UGFnZVNjYWxlR2VzdHVyZTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmZyYW1lRGlkQmVjb21l
RnJhbWVTZXQodWludDY0X3QgZnJhbWVJRCwgYm9vbCB2YWx1ZSkKK3ZvaWQgV2ViUGFnZVByb3h5
OjpmcmFtZURpZEJlY29tZUZyYW1lU2V0KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIHZh
bHVlKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7
CiAKQEAgLTQ2MjAsNyArNDYyMCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpiZWdpblNhZmVCcm93
c2luZ0NoZWNrKGNvbnN0IFVSTCYsIGJvb2wsIFdlYkZyYW1lUG9saWN5TGlzdGVuCiB9CiAjZW5k
aWYKIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25B
c3luYyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFt
ZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0
X3QgbmF2aWdhdGlvbklELAordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25Bc3luYyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVy
IGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwKICAgICBOYXZpZ2F0aW9uQWN0aW9u
RGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0
YSwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwKICAgICBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYg
cmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNl
LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIHVpbnQ2NF90IGxpc3RlbmVySUQpCiB7CkBAIC00
NjI4LDcgKzQ2MjgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbkFzeW5jKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcgogICAgICAgICBXVEZNb3Zl
KGZyYW1lSW5mb0RhdGEpLCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZN
b3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRpcmVjdFJlc3Bv
bnNlKSwgdXNlckRhdGEsIGxpc3RlbmVySUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYgcHJvY2VzcywgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwKK3ZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBw
cm9jZXNzLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwKICAgICBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9u
RGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0
YSwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELAog
ICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYg
cmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNl
LAogICAgIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKQEAg
LTQ3NjksNyArNDc2OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzCiAgICAgICAgIGJlZ2lu
U2FmZUJyb3dzaW5nQ2hlY2socmVxdWVzdC51cmwoKSwgZnJhbWUuaXNNYWluRnJhbWUoKSwgbGlz
dGVuZXIpOwogCiAgICAgQVBJOjpOYXZpZ2F0aW9uKiBtYWluRnJhbWVOYXZpZ2F0aW9uID0gZnJh
bWUuaXNNYWluRnJhbWUoKSA/IG5hdmlnYXRpb24uZ2V0KCkgOiBudWxscHRyOwotICAgIFdlYkZy
YW1lUHJveHkqIG9yaWdpbmF0aW5nRnJhbWUgPSBwcm9jZXNzLT53ZWJGcmFtZShvcmlnaW5hdGlu
Z0ZyYW1lSW5mb0RhdGEuZnJhbWVJRCk7CisgICAgV2ViRnJhbWVQcm94eSogb3JpZ2luYXRpbmdG
cmFtZSA9IG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YS5mcmFtZUlEID8gcHJvY2Vzcy0+d2ViRnJh
bWUoKm9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YS5mcmFtZUlEKSA6IG51bGxwdHI7CiAKICNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlmIChhdXRvKiByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUgPSB3ZWJzaXRlRGF0YVN0b3JlKCkucmVzb3VyY2VMb2FkU3RhdGlz
dGljcygpKQpAQCAtNDg1OCw3ICs0ODU4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvZ0ZyYW1l
TmF2aWdhdGlvbihjb25zdCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgY29uc3QgVVJMJiBwYWcKIH0K
ICNlbmRpZgogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvblN5bmModWludDY0X3QgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlm
aWVyIGlkZW50aWZpZXIsCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvblN5bmMoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUs
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGlj
eUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
TmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0
YSYmIGZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1Bh
Z2VJRCwKICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVz
dCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVy
ZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RS
ZXNwb25zZSwKICAgICBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVkUmVwbHkm
JiByZXBseSkKQEAgLTQ4NzYsNyArNDg3Niw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyh1aW50NjRfdCBmcmFtZUlELCBib29sIGlzCiAg
ICAgICAgIFdURk1vdmUoZnJhbWVJbmZvRGF0YSksIG9yaWdpbmF0aW5nUGFnZUlELCBvcmlnaW5h
bFJlcXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVxdWVzdEJvZHkpLCBXVEZNb3Zl
KHJlZGlyZWN0UmVzcG9uc2UpLCB1c2VyRGF0YSwgV1RGTW92ZShyZXBseSkpOwogfQogCi12b2lk
IFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNTaGFyZWQo
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCB1aW50NjRfdCBmcmFtZUlELCBib29sIGlz
TWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3Jp
Z2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKK3ZvaWQgV2ViUGFnZVByb3h5
OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmIHByb2Nlc3MsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZy
YW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQ
b2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKICAgICB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5m
b0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRp
bmdQYWdlSUQsCiAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJl
cXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9ybURhdGFS
ZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGly
ZWN0UmVzcG9uc2UsCiAgICAgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJl
cGx5JiYgcmVwbHkpCkBAIC00ODkzLDcgKzQ4OTMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94
eQogICAgIHNlbmRlci0+c2VuZChQb2xpY3lBY3Rpb246OlVzZSwgbmF2aWdhdGlvbklELCBEb3du
bG9hZElEKCksIFdURjo6bnVsbG9wdCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24odWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlP
cmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRl
bnRpZmllciwKK3ZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rp
b24oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJh
bWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCiAgICAg
TmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgUmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVy
SUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9y
IHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwpAQCAtNDkzMSwxMyArNDkzMSwxMyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFNlY3VyaQogICAgICAgICAKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lk
ZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2lu
RGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZp
ZXIsCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9y
aWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2
aWdhdGlvbklELCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBk
b3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVz
ZXJEYXRhKQogewogICAgIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKG1fcHJvY2Vzcy5j
b3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIGlkZW50aWZpZXIsIG5hdmln
YXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlwZSwgZG93bmxvYWRBdHRy
aWJ1dGUsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRl
Y2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vz
cywgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKK3ZvaWQgV2ViUGFn
ZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmIHByb2Nlc3MsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdp
bkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlm
aWVyLAogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlN
RVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVy
SUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9y
IHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwpAQCAtNDk3MSw3ICs0OTcxLDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYgcHJvY2VzcywKICAgICB9CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojp1bmFibGVUb0lt
cGxlbWVudFBvbGljeSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJv
ciwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OnVuYWJsZVRv
SW1wbGVtZW50UG9saWN5KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBSZXNvdXJjZUVy
cm9yJiBlcnJvciwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQ
cm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQ5ODUsNyArNDk4NSw3IEBA
IHZvaWQgV2ViUGFnZVByb3h5Ojp1bmFibGVUb0ltcGxlbWVudFBvbGljeSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBSZXNvdXJjZUVycm9yCiAKIC8vIEZvcm1DbGllbnQKIAotdm9pZCBXZWJQYWdl
UHJveHk6OndpbGxTdWJtaXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZy
YW1lSUQsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiYgdGV4dEZpZWxk
VmFsdWVzLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2
b2lkIFdlYlBhZ2VQcm94eTo6d2lsbFN1Ym1pdEZvcm0oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IEZyYW1lSWRlbnRpZmllciBzb3VyY2VGcmFtZUlELCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0
cmluZywgU3RyaW5nPj4mIHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgY29u
c3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9w
cm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2Vzcywg
ZnJhbWUpOwpAQCAtNTAwMywxMiArNTAwMywxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGVu
dFJ1bGVMaXN0Tm90aWZpY2F0aW9uKFVSTCYmIHVybCwgQ29udGVudFJ1bGVMaXN0UmVzdWx0cwog
ICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+Y29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uKCp0aGlz
LCBXVEZNb3ZlKHVybCksIFdURk1vdmUocmVzdWx0cykpOwogfQogICAgIAotdm9pZCBXZWJQYWdl
UHJveHk6OmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25E
YXRhU3RvcmUmIHN0b3JlLCB1aW50NjRfdCBmcmFtZUlEKSAKK3ZvaWQgV2ViUGFnZVByb3h5Ojpk
aWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3Jl
JiBzdG9yZSwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgZGlkTmF2aWdhdGVXaXRo
TmF2aWdhdGlvbkRhdGFTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgc3RvcmUsIGZyYW1lSUQp
OwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFT
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBjb25zdCBXZWJOYXZpZ2F0aW9u
RGF0YVN0b3JlJiBzdG9yZSwgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpk
aWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
IHByb2Nlc3MsIGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmIHN0b3JlLCBGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCkKIHsKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJk
aWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YVNoYXJlZDogd2ViUElEID0gJWksIHBhZ2VJRCA9
ICUiIFBSSXU2NCwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50
NjQoKSk7CiAKQEAgLTUwMjMsMTQgKzUwMjMsMTQgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZE5h
dmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHIK
ICAgICBwcm9jZXNzLT5wcm9jZXNzUG9vbCgpLmhpc3RvcnlDbGllbnQoKS5kaWROYXZpZ2F0ZVdp
dGhOYXZpZ2F0aW9uRGF0YShwcm9jZXNzLT5wcm9jZXNzUG9vbCgpLCAqdGhpcywgc3RvcmUsICpm
cmFtZSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3Qo
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25V
UkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9y
bUNsaWVudFJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJp
bmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAg
ICBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgc291
cmNlVVJMU3RyaW5nLCBkZXN0aW5hdGlvblVSTFN0cmluZywgZnJhbWVJRCk7CiB9CiAKLXZvaWQg
V2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQoUmVmPFdlYlByb2Nl
c3NQcm94eT4mJiBwcm9jZXNzLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3Qg
U3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiBwcm9jZXNzLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3Ry
aW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7Ci0g
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkUGVyZm9ybUNsaWVudFJlZGly
ZWN0U2hhcmVkOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAl
IiBQUkl1NjQsIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0
KCksIGZyYW1lSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZFBl
cmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZDogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBt
X3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCkpOwogCiAgICAgUGFnZUNsaWVu
dFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNTA1MCwxMiArNTA1MCwx
MiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcwogICAgIHByb2Nlc3MtPnByb2Nlc3NQb29sKCku
aGlzdG9yeUNsaWVudCgpLmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdChwcm9jZXNzLT5wcm9jZXNz
UG9vbCgpLCAqdGhpcywgc291cmNlVVJMU3RyaW5nLCBkZXN0aW5hdGlvblVSTFN0cmluZywgKmZy
YW1lKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVS
TFN0cmluZywgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3Jt
U2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAg
IGRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdFNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBzb3Vy
Y2VVUkxTdHJpbmcsIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBmcmFtZUlEKTsKIH0KIAotdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmIHByb2Nlc3MsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBT
dHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQ
YWdlUHJveHk6OmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmIHByb2Nlc3MsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJp
bmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRQZXJmb3JtU2VydmVyUmVkaXJl
Y3Q6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQsIHByb2Nlc3MtPnByb2Nlc3NJZGVu
dGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCkpOwogCkBAIC01MDc2LDcgKzUwNzYsNyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQ
cm9jZXNzUHJveHk+JiYgcHJvY2VzcwogICAgIHByb2Nlc3MtPnByb2Nlc3NQb29sKCkuaGlzdG9y
eUNsaWVudCgpLmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChwcm9jZXNzLT5wcm9jZXNzUG9vbCgp
LCAqdGhpcywgc291cmNlVVJMU3RyaW5nLCBkZXN0aW5hdGlvblVSTFN0cmluZywgKmZyYW1lKTsK
IH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFVwZGF0ZUhpc3RvcnlUaXRsZShjb25zdCBTdHJp
bmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIHVybCwgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpkaWRVcGRhdGVIaXN0b3J5VGl0bGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgY29u
c3QgU3RyaW5nJiB1cmwsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIFBhZ2VDbGll
bnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTUxMDcsOCArNTEwNywx
MCBAQCBzdGF0aWMgdm9pZCB0cnlTT0F1dGhvcml6YXRpb24oUmVmPEFQSTo6TmF2aWdhdGlvbkFj
dGlvbj4mJiBuYXZpZ2F0aW9uQWN0aW9uLCBXZQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6Y3JlYXRl
TmV3UGFnZShjb25zdCBGcmFtZUluZm9EYXRhJiBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIE9w
dGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgUmVzb3VyY2VSZXF1ZXN0
JiYgcmVxdWVzdCwgV2luZG93RmVhdHVyZXMmJiB3aW5kb3dGZWF0dXJlcywgTmF2aWdhdGlvbkFj
dGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
Q3JlYXRlTmV3UGFnZTo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7Ci0gICAgTUVTU0FHRV9DSEVD
SyhtX3Byb2Nlc3MsIG1fcHJvY2Vzcy0+d2ViRnJhbWUob3JpZ2luYXRpbmdGcmFtZUluZm9EYXRh
LmZyYW1lSUQpKTsKLSAgICBhdXRvIG9yaWdpbmF0aW5nRnJhbWVJbmZvID0gQVBJOjpGcmFtZUlu
Zm86OmNyZWF0ZShvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIG9yaWdpbmF0aW5nUGFnZUlEID8g
bV9wcm9jZXNzLT53ZWJQYWdlKCpvcmlnaW5hdGluZ1BhZ2VJRCkgOiBudWxscHRyKTsKKyAgICBN
RVNTQUdFX0NIRUNLKG1fcHJvY2Vzcywgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLmZyYW1lSUQp
OworICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBtX3Byb2Nlc3MtPndlYkZyYW1lKCpvcmln
aW5hdGluZ0ZyYW1lSW5mb0RhdGEuZnJhbWVJRCkpOworCisgICAgYXV0byBvcmlnaW5hdGluZ0Zy
YW1lSW5mbyA9IEFQSTo6RnJhbWVJbmZvOjpjcmVhdGUob3JpZ2luYXRpbmdGcmFtZUluZm9EYXRh
LCBtX3Byb2Nlc3MtPndlYlBhZ2UoKm9yaWdpbmF0aW5nUGFnZUlEKSk7CiAgICAgYXV0byBtYWlu
RnJhbWVVUkwgPSBtX21haW5GcmFtZSA/IG1fbWFpbkZyYW1lLT51cmwoKSA6IFVSTCgpOwogICAg
IGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpLCBtYWluRnJhbWVVUkwsIHJlcXVlc3QsIHJlcGx5ID0gV1RGTW92ZShyZXBseSldIChS
ZWZQdHI8V2ViUGFnZVByb3h5PiBuZXdQYWdlKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFuZXdQ
YWdlKSB7CkBAIC01MTc4LDcgKzUxODAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xvc2VQYWdl
KGJvb2wgc3RvcFJlc3BvbnNpdmVuZXNzVGltZXIpCiAgICAgbV91aUNsaWVudC0+Y2xvc2UodGhp
cyk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0QWxlcnQodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbiwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxl
cnQ6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQordm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3Jp
cHRBbGVydChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRh
JiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQ6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQogewogICAg
IFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKICAg
ICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwpAQCAtNTE5Nyw3ICs1MTk5LDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRBbGVydCh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBTZWN1cml0eU9yaWdpbkRhdGEKICAgICBtX3VpQ2xpZW50LT5ydW5KYXZhU2NyaXB0QWxl
cnQodGhpcywgbWVzc2FnZSwgZnJhbWUsIHNlY3VyaXR5T3JpZ2luLCBXVEZNb3ZlKHJlcGx5KSk7
CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0Q29uZmlybSh1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRDb25m
aXJtOjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2Ny
aXB0Q29uZmlybShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5E
YXRhJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybTo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7
CiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQp
OwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBmcmFtZSk7CkBAIC01MjE3LDcgKzUyMTks
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdENvbmZpcm0odWludDY0X3QgZnJh
bWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYQogICAgIG1fdWlDbGllbnQtPnJ1bkphdmFTY3Jp
cHRDb25maXJtKHRoaXMsIG1lc3NhZ2UsIGZyYW1lLCBzZWN1cml0eU9yaWdpbiwgV1RGTW92ZShy
ZXBseSkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdFByb21wdCh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0OjpEZWxheWVkUmVwbHkmJiByZXBs
eSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0OjpEZWxheWVkUmVwbHkmJiByZXBseSkK
IHsKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJ
RCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKQEAgLTUzNzYsNyArNTM3
OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpyb290Vmlld1RvQWNjZXNzaWJpbGl0eVNjcmVlbihj
b25zdCBJbnRSZWN0JiB2aWV3UmVjdCwgQ29tcGxlCiAgICAgY29tcGxldGlvbkhhbmRsZXIocGFn
ZUNsaWVudCgpLnJvb3RWaWV3VG9BY2Nlc3NpYmlsaXR5U2NyZWVuKHZpZXdSZWN0KSk7CiB9CiAK
LXZvaWQgV2ViUGFnZVByb3h5OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbiwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5CZWZvcmVVbmxvYWRD
b25maXJtUGFuZWw6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQordm9pZCBXZWJQYWdlUHJveHk6OnJ1
bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3Qg
U2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw6OkRl
bGF5ZWRSZXBseSYmIHJlcGx5KQogewogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9j
ZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJh
bWUpOwpAQCAtNTQxNiw3ICs1NDE4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnBhZ2VEaWRTY3Jv
bGwoKQogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpydW5PcGVuUGFuZWwodWludDY0
X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2lu
LCBjb25zdCBGaWxlQ2hvb3NlclNldHRpbmdzJiBzZXR0aW5ncykKK3ZvaWQgV2ViUGFnZVByb3h5
OjpydW5PcGVuUGFuZWwoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3Jp
Z2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgY29uc3QgRmlsZUNob29zZXJTZXR0aW5ncyYg
c2V0dGluZ3MpCiB7CiAgICAgaWYgKG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXIpIHsKICAgICAg
ICAgbV9vcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci0+aW52YWxpZGF0ZSgpOwpAQCAtNTQ1NSw3ICs1
NDU3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNob3dTaGFyZVNoZWV0KGNvbnN0IFNoYXJlRGF0
YVdpdGhQYXJzZWRVUkwmIHNoYXJlRGF0YSwgU2hhcmUKICAgICBwYWdlQ2xpZW50KCkuc2hvd1No
YXJlU2hlZXQoc2hhcmVEYXRhLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAgICAg
Ci12b2lkIFdlYlBhZ2VQcm94eTo6cHJpbnRGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94
eTo6cHJpbnRGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghbV9pc1BlcmZvcm1p
bmdET01QcmludE9wZXJhdGlvbik7CiAgICAgbV9pc1BlcmZvcm1pbmdET01QcmludE9wZXJhdGlv
biA9IHRydWU7CkBAIC02NzY5LDI3ICs2NzcxLDI3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpwcmlu
dEZpbmlzaGVkQ2FsbGJhY2soY29uc3QgUmVzb3VyY2VFcnJvciYgcHJpbnRFcnJvciwgQ2FsbGJh
CiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdlUHJveHk6OmZvY3VzZWRGcmFtZUNoYW5nZWQodWlu
dDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpmb2N1c2VkRnJhbWVDaGFuZ2VkKGNv
bnN0IE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4mIGZyYW1lSUQpCiB7CiAgICAgaWYgKCFmcmFt
ZUlEKSB7CiAgICAgICAgIG1fZm9jdXNlZEZyYW1lID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFt
ZShmcmFtZUlEKTsKKyAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJh
bWUoKmZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBmcmFtZSk7CiAKICAg
ICBtX2ZvY3VzZWRGcmFtZSA9IGZyYW1lOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZnJhbWVT
ZXRMYXJnZXN0RnJhbWVDaGFuZ2VkKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94
eTo6ZnJhbWVTZXRMYXJnZXN0RnJhbWVDaGFuZ2VkKGNvbnN0IE9wdGlvbmFsPEZyYW1lSWRlbnRp
Zmllcj4mIGZyYW1lSUQpCiB7CiAgICAgaWYgKCFmcmFtZUlEKSB7CiAgICAgICAgIG1fZnJhbWVT
ZXRMYXJnZXN0RnJhbWUgPSBudWxscHRyOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
V2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOworICAg
IFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZSgqZnJhbWVJRCk7CiAg
ICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKIAogICAgIG1fZnJhbWVTZXRMYXJn
ZXN0RnJhbWUgPSBmcmFtZTsKQEAgLTczNDUsMjYgKzczNDcsMjYgQEAgV2Vha1B0cjxTZWNLZXlQ
cm94eVN0b3JlPiBXZWJQYWdlUHJveHk6OnNlY0tleVByb3h5U3RvcmUoY29uc3QgV2ViQ29yZTo6
QXV0aGVudGkKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KICAgICAKLXZvaWQgV2ViUGFnZVByb3h5
OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSh1aW50NjRfdCwgUmVmPEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpCit2
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHko
RnJhbWVJZGVudGlmaWVyLCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJiBhdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSkKIHsKICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRpZFJlY2Vp
dmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgqdGhpcywgYXV0aGVudGljYXRpb25DaGFsbGVuZ2Uu
Z2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1
cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50
RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6RXhjZWVkZWREYXRhYmFzZVF1b3RhOjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3ZvaWQg
V2ViUGFnZVByb3h5OjpleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFz
ZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwg
dWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2Fn
ZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhjZWVk
ZWREYXRhYmFzZVF1b3RhOjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsKICAgICByZXF1ZXN0U3Rv
cmFnZVNwYWNlKGZyYW1lSUQsIG9yaWdpbklkZW50aWZpZXIsIGRhdGFiYXNlTmFtZSwgZGlzcGxh
eU5hbWUsIGN1cnJlbnRRdW90YSwgY3VycmVudE9yaWdpblVzYWdlLCBjdXJyZW50RGF0YWJhc2VV
c2FnZSwgZXhwZWN0ZWRVc2FnZSwgW3JlcGx5ID0gV1RGTW92ZShyZXBseSldKGF1dG8gcXVvdGEp
IG11dGFibGUgewogICAgICAgICByZXBseShxdW90YSk7CiAgICAgfSk7CiB9CiAKLXZvaWQgV2Vi
UGFnZVByb3h5OjpyZXF1ZXN0U3RvcmFnZVNwYWNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0
cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0
IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3Vy
cmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3Qg
ZXhwZWN0ZWRVc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFN0b3JhZ2VTcGFjZShGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0
X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1
cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKFN0b3JhZ2UsICJyZXF1ZXN0U3RvcmFnZVNwYWNlIGZvciBmcmFtZSAl
IiBQUkl1NjQgIiwgY3VycmVudCBxdW90YSAlIiBQUkl1NjQgIiBjdXJyZW50IHVzYWdlICUiIFBS
SXU2NCAiIGV4cGVjdGVkIHVzYWdlICUiIFBSSXU2NCwgZnJhbWVJRCwgY3VycmVudFF1b3RhLCBj
dXJyZW50RGF0YWJhc2VVc2FnZSwgZXhwZWN0ZWRVc2FnZSk7CisgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRChTdG9yYWdlLCAicmVxdWVzdFN0b3JhZ2VTcGFjZSBmb3IgZnJhbWUgJSIgUFJJdTY0
ICIsIGN1cnJlbnQgcXVvdGEgJSIgUFJJdTY0ICIgY3VycmVudCB1c2FnZSAlIiBQUkl1NjQgIiBl
eHBlY3RlZCB1c2FnZSAlIiBQUkl1NjQsIGZyYW1lSUQudG9VSW50NjQoKSwgY3VycmVudFF1b3Rh
LCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgZXhwZWN0ZWRVc2FnZSk7CiAKICAgICBTdG9yYWdlUmVx
dWVzdHM6OnNpbmdsZXRvbigpLnByb2Nlc3NPckFwcGVuZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpLCBwYWdlVVJMID0gY3VycmVudFVSTCgpLCBmcmFtZUlELCBvcmlnaW5J
ZGVudGlmaWVyLCBkYXRhYmFzZU5hbWUsIGRpc3BsYXlOYW1lLCBjdXJyZW50UXVvdGEsIGN1cnJl
bnRPcmlnaW5Vc2FnZSwgY3VycmVudERhdGFiYXNlVXNhZ2UsIGV4cGVjdGVkVXNhZ2UsIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CiAg
ICAgICAgIHRoaXMtPm1ha2VTdG9yYWdlU3BhY2VSZXF1ZXN0KGZyYW1lSUQsIG9yaWdpbklkZW50
aWZpZXIsIGRhdGFiYXNlTmFtZSwgZGlzcGxheU5hbWUsIGN1cnJlbnRRdW90YSwgY3VycmVudE9y
aWdpblVzYWdlLCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgZXhwZWN0ZWRVc2FnZSwgW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBmcmFtZUlELCBwYWdlVVJMID0g
V1RGTW92ZShwYWdlVVJMKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSwgY3VycmVudFF1b3RhXShhdXRvIHF1b3RhKSBtdXRhYmxlIHsKIAotICAgICAgICAg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChTdG9yYWdlLCAicmVxdWVzdFN0b3JhZ2VTcGFjZSBy
ZXNwb25zZSBmb3IgZnJhbWUgJSIgUFJJdTY0ICIsIHF1b3RhICUiIFBSSXU2NCwgZnJhbWVJRCwg
cXVvdGEpOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChTdG9yYWdlLCAicmVx
dWVzdFN0b3JhZ2VTcGFjZSByZXNwb25zZSBmb3IgZnJhbWUgJSIgUFJJdTY0ICIsIHF1b3RhICUi
IFBSSXU2NCwgZnJhbWVJRC50b1VJbnQ2NCgpLCBxdW90YSk7CiAKICAgICAgICAgICAgIGlmIChx
dW90YSA8PSBjdXJyZW50UXVvdGEgJiYgdGhpcy0+Y3VycmVudFVSTCgpID09IHBhZ2VVUkwpIHsK
ICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFN0b3JhZ2UsICJzdG9yYWdl
IHNwYWNlIGluY3JlYXNlIGRlbmllZCIpOwpAQCAtNzM3Niw3ICs3Mzc4LDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnJlcXVlc3RTdG9yYWdlU3BhY2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3Ry
aW5nJiBvcmlnaW5JZGUKICAgICB9KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6Om1ha2VTdG9y
YWdlU3BhY2VSZXF1ZXN0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxh
eU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdl
LCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2
b2lkIFdlYlBhZ2VQcm94eTo6bWFrZVN0b3JhZ2VTcGFjZVJlcXVlc3QoRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBk
YXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRR
dW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJh
c2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1
aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKG1faXNRdW90YUluY3Jl
YXNlRGVuaWVkKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGN1cnJlbnRRdW90YSk7CkBA
IC03NDAyLDcgKzc0MDQsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVhY2hlZEFwcGxpY2F0aW9u
Q2FjaGVPcmlnaW5RdW90YShjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aQogICAgIG1fdWlDbGll
bnQtPnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodGhpcywgc2VjdXJpdHlPcmln
aW4uZ2V0KCksIGN1cnJlbnRRdW90YSwgdG90YWxCeXRlc05lZWRlZCwgV1RGTW92ZShyZXBseSkp
OwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZv
ckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBv
cmlnaW5JZGVudGlmaWVyKQordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RHZW9sb2NhdGlvblBl
cm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCBGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCiB7CiAgICAgV2ViRnJhbWVQcm94eSog
ZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0so
bV9wcm9jZXNzLCBmcmFtZSk7CkBAIC03NDQ2LDcgKzc0NDgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6c2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZE92ZXJyaWRlKE9wdGlvbmFsPGJvb2w+IGVu
YWJsZWQpCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQ
ZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgIHVzZXJNZWRpYURvY3VtZW50T3Jp
Z2luRGF0YSwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luRGF0YSwgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYgcmVxdWVzdCkKK3Zv
aWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2
NF90IHVzZXJNZWRpYUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiAgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5EYXRhLCBjb25zdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5EYXRhLCBX
ZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJiByZXF1ZXN0KQogewogI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIG1fcHJvY2Vzcy0+d2ViRnJh
bWUoZnJhbWVJRCkpOwpAQCAtNzQ2MSw3ICs3NDYzLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJl
cXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVp
bnQKICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2Vz
Rm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5EYXRhLCBj
b25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5E
YXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVp
bnQ2NF90IHVzZXJNZWRpYUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRhdGEsIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEp
CiB7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9
IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CkBAIC03NDkzLDcgKzc0OTUsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6Y2xlYXJVc2VyTWVkaWFTdGF0ZSgpCiB9CiAKICNpZiBFTkFCTEUoREVW
SUNFX09SSUVOVEFUSU9OKQotdm9pZCBXZWJQYWdlUHJveHk6OnNob3VsZEFsbG93RGV2aWNlT3Jp
ZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ModWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiYgb3JpZ2luRGF0YSwgYm9vbCBtYXlQcm9tcHQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6c2hvdWxkQWxsb3dEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiYgb3JpZ2luRGF0YSwgYm9vbCBtYXlQcm9tcHQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3By
b2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBm
cmFtZSk7CkBAIC04NzM2LDcgKzg3MzgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFN5bmNo
cm9ub3VzVVJMU2NoZW1lVGFzayhVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmIHBhcmFtZQogfQog
CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLXZvaWQgV2ViUGFnZVByb3h5
OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1
YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVp
bnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJt
KGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3Vp
Q2xpZW50LT5yZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oKnRoaXMsIG1fcHJvY2Vzcy0+d2Vi
RnJhbWUoZnJhbWVJRCksIHN1YkZyYW1lRG9tYWluLCB0b3BGcmFtZURvbWFpbiwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAppbmRleCBiNDM4M2NhZjg4ZjM3MjcyY2Y5NDc3YjY0MDM5Y2U5ZWY1Yzk0OWExLi4yMDc2OTU5
MWFjMWUzMjJmNTFjZGNmNTIwZTVhY2VlYjJlM2Y5Y2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaApAQCAtMTAxOCw3ICsxMDE4LDcgQEAgcHVibGljOgogICAgIHZvaWQg
cnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lKGNvbnN0IFN0cmluZyYsIGJvb2wsIFdURjo6RnVuY3Rp
b248dm9pZCAoQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqLCBib29sIGhhZEV4Y2VwdGlvbiwg
Y29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYm
IGNhbGxiYWNrRnVuY3Rpb24pOwogICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lU2Ny
aXB0V29ybGQoY29uc3QgU3RyaW5nJiwgYm9vbCwgY29uc3QgT3B0aW9uYWw8U3RyaW5nPiYgd29y
bGROYW1lLCBXVEY6OkZ1bmN0aW9uPHZvaWQoQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqLCBi
b29sIGhhZEV4Y2VwdGlvbiwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyYsIENhbGxi
YWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pOwogICAgIC8vIEZvciBzdWIgZnJh
bWVzLgotICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgV1RGOjpGdW5jdGlvbjx2
b2lkKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiwgYm9vbCBoYWRFeGNlcHRpb24sIGNvbnN0
IFdlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHMmLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxs
YmFja0Z1bmN0aW9uKTsKKyAgICB2b2lkIHJ1bkphdmFTY3JpcHRJbkZyYW1lKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVy
ZSwgV1RGOjpGdW5jdGlvbjx2b2lkKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiwgYm9vbCBo
YWRFeGNlcHRpb24sIGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHMmLCBDYWxsYmFja0Jh
c2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKTsKICAgICB2b2lkIGZvcmNlUmVwYWludChS
ZWZQdHI8Vm9pZENhbGxiYWNrPiYmKTsKIAogICAgIGZsb2F0IGhlYWRlckhlaWdodChXZWJGcmFt
ZVByb3h5Jik7CkBAIC0xMTYxLDcgKzExNjEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkcmF3UmVj
dFRvSW1hZ2UoV2ViRnJhbWVQcm94eSosIGNvbnN0IFByaW50SW5mbyYsIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgUmVmPEltYWdlQ2FsbGJhY2s+JiYp
OwogICAgIHZvaWQgZHJhd1BhZ2VzVG9QREYoV2ViRnJhbWVQcm94eSosIGNvbnN0IFByaW50SW5m
byYsIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgUmVmPERhdGFDYWxsYmFjaz4mJik7
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB1aW50MzJfdCBjb21wdXRlUGFnZXNGb3JQ
cmludGluZ0FuZERyYXdUb1BERih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mLCBE
cmF3VG9QREZDYWxsYmFjazo6Q2FsbGJhY2tGdW5jdGlvbiYmKTsKKyAgICB1aW50MzJfdCBjb21w
dXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IGNvbnN0IFByaW50SW5mbyYsIERyYXdUb1BERkNhbGxiYWNrOjpDYWxsYmFja0Z1bmN0aW9uJiYp
OwogICAgIHZvaWQgZHJhd1RvUERGQ2FsbGJhY2soY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBw
ZGZEYXRhLCBXZWJLaXQ6OkNhbGxiYWNrSUQpOwogI2VuZGlmCiAjZWxpZiBQTEFURk9STShHVEsp
CkBAIC0xMjUyLDcgKzEyNTIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRWaWV3cG9ydFNpemVG
b3JDU1NWaWV3cG9ydFVuaXRzKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKICAgICBXZWJDb3Jl
OjpJbnRTaXplIHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKSBjb25zdCB7IHJldHVy
biBtX3ZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMudmFsdWVPcihXZWJDb3JlOjpJbnRT
aXplKCkpOyB9CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVBy
b3h5KHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYm
KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5KFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYp
OwogCiAgICAgU3BlbGxEb2N1bWVudFRhZyBzcGVsbERvY3VtZW50VGFnKCk7CiAKQEAgLTE0NTIs
MTIgKzE0NTIsMTIgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKQotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKGNvbnN0
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdl
QWNjZXNzQ29uZmlybShjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVE
b21haW4sIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KTsKICAgICB2b2lkIGRpZENvbW1pdENyb3NzU2l0ZUxvYWRXaXRoRGF0YVRyYW5zZmVyRnJvbVBy
ZXZhbGVudFJlc291cmNlKCk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJ
T04pCi0gICAgdm9pZCBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNz
KHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBib29sIG1h
eVByb21wdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlv
bk9yTW90aW9uUGVybWlzc2lvblN0YXRlKT4mJik7CisgICAgdm9pZCBzaG91bGRBbGxvd0Rldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3Rh
dGUpPiYmKTsKICNlbmRpZgogCiAgICAgc3RhdGljIFdlYlBhZ2VQcm94eSogbm9uRXBoZW1lcmFs
V2ViUGFnZVByb3h5KCk7CkBAIC0xNDk4LDMzICsxNDk4LDMzIEBAIHB1YmxpYzoKICNlbmRpZgog
CiAgICAgUHJvdmlzaW9uYWxQYWdlUHJveHkqIHByb3Zpc2lvbmFsUGFnZVByb3h5KCkgY29uc3Qg
eyByZXR1cm4gbV9wcm92aXNpb25hbFBhZ2UuZ2V0KCk7IH0KLSAgICB2b2lkIGNvbW1pdFByb3Zp
c2lvbmFsUGFnZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0
IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVp
bnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYsIGJv
b2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVD
b250ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAg
dm9pZCBjb21taXRQcm92aXNpb25hbFBhZ2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXND
dXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNv
cmU6OkNlcnRpZmljYXRlSW5mbyYsIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9u
YWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQs
IGNvbnN0IFVzZXJEYXRhJik7CiAKICAgICAvLyBMb2dpYyBzaGFyZWQgYmV0d2VlbiB0aGUgV2Vi
UGFnZVByb3h5IGFuZCB0aGUgUHJvdmlzaW9uYWxQYWdlUHJveHkuCi0gICAgdm9pZCBkaWRTdGFy
dFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYsIFVSTCYmIHVucmVh
Y2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdp
biwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGlu
ZywgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZv
clByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiYsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRQZXJmb3JtU2VydmVyUmVk
aXJlY3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgU3RyaW5nJiBzb3VyY2VV
UkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZy
YW1lSUQpOwotICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQ
cm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJp
bmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRp
ZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYs
IGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmLCB1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2
b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiwgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJik7
Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyLAorICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgVVJMJiYsIFVSTCYmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0
YSYpOworICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlRXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0
YSYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYm
LCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0U2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5n
LCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIpOworICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQ
cm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJp
bmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAg
IHZvaWQgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQoUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiwgY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcik7CisgICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBVUkwmJik7CisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5
T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsCiAgICAgICAgIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0YSYmLCBP
cHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmJiwKICAgICAgICAgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RC
b2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3Qg
VXNlckRhdGEmLCB1aW50NjRfdCBsaXN0ZW5lcklEKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZv
clJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwg
V2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlP
cmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwKICAgICAgICAgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmlu
ZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRh
Jik7CiAgICAgdm9pZCBzdGFydFVSTFNjaGVtZVRhc2tTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiwgVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJik7CiAgICAgdm9pZCBsb2FkRGF0YVdpdGhO
YXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIEFQSTo6TmF2aWdhdGlvbiYs
IGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0
IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVz
ZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9wdGlvbmFsPFdl
YnNpdGVQb2xpY2llc0RhdGE+JiYgPSBXVEY6Om51bGxvcHQsIFdlYkNvcmU6OlNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
OjpTaG91bGROb3RBbGxvdyk7CiAgICAgdm9pZCBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIEFQSTo6TmF2aWdhdGlvbiYsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBB
UEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZCwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiA9IFdURjo6bnVsbG9wdCk7CiAgICAg
dm9pZCBiYWNrRm9yd2FyZEdvVG9JdGVtU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNv
bnN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmKT4mJik7Ci0gICAgdm9pZCBkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
LCB1aW50NjRfdCBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCisgICAgdm9pZCBkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAgRnJhbWVJbmZvRGF0
YSYmLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5
LAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwg
Y29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYpOwogI2lmIFVTRShRVUlDS19MT09L
KQogICAgIHZvaWQgZGlkUmVxdWVzdFBhc3N3b3JkRm9yUXVpY2tMb29rRG9jdW1lbnRJbk1haW5G
cmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1l
KTsKICNlbmRpZgogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKLSAgICB2b2lkIGNvbnRl
bnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
LCBjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImLCB1aW50NjRfdCBm
cmFtZUlEKTsKKyAgICB2b2lkIGNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZVNoYXJl
ZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5i
bG9ja0hhbmRsZXImLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogI2VuZGlmCiAKICAgICB2
b2lkIGR1bXBBZENsaWNrQXR0cmlidXRpb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBT
dHJpbmcmKT4mJik7CkBAIC0xNTYxLDcgKzE1NjEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsK
ICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOwogCi0gICAg
dm9pZCByZXF1ZXN0U3RvcmFnZVNwYWNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYg
b3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmlu
ZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9y
aWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0
ZWRVc2FnZSwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJik7CisgICAg
dm9pZCByZXF1ZXN0U3RvcmFnZVNwYWNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29u
c3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBj
dXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRf
dCBleHBlY3RlZFVzYWdlLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYm
KTsKIAogICAgIFVSTCBjdXJyZW50UmVzb3VyY2VEaXJlY3RvcnlVUkwoKSBjb25zdDsKIApAQCAt
MTU4MSw3ICsxNTgxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZVRocm90dGxlU3RhdGUo
KTsKICAgICB2b2lkIHVwZGF0ZUhpZGRlblBhZ2VUaHJvdHRsaW5nQXV0b0luY3JlYXNlcygpOwog
Ci0gICAgYm9vbCBzdXNwZW5kQ3VycmVudFBhZ2VJZlBvc3NpYmxlKEFQSTo6TmF2aWdhdGlvbiYs
IE9wdGlvbmFsPHVpbnQ2NF90PiBtYWluRnJhbWVJRCwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNs
aWVudCwgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmdNb2RlKTsKKyAgICBib29sIHN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUoQVBJOjpOYXZp
Z2F0aW9uJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBtYWluRnJhbWVJRCwg
UHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRl
cmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKTsKIAogICAgIGVudW0gY2xhc3MgUmVzZXRT
dGF0ZVJlYXNvbiB7CiAgICAgICAgIFBhZ2VJbnZhbGlkYXRlZCwKQEAgLTE2MTAsMzIgKzE2MTAs
MzIgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RQb2ludGVyVW5sb2NrKCk7CiAjZW5kaWYK
IAotICAgIHZvaWQgZGlkQ3JlYXRlTWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZv
aWQgZGlkQ3JlYXRlU3ViZnJhbWUodWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRDcmVh
dGVXaW5kb3codWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6R2xvYmFsV2luZG93SWRlbnRpZmll
ciYmKTsKLQotICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmLCBVUkwmJiB1bnJlYWNoYWJs
ZVVSTCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFVzZXJEYXRhJik7
Ci0gICAgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgY29uc3QgU3RyaW5nJiB1cmwsIGRvdWJsZSBkZWxheSwgV2ViQ29yZTo6TG9ja0JhY2tG
b3J3YXJkTGlzdCk7Ci0gICAgdm9pZCBkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKLSAgICB2
b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0
IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29s
IGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBj
b25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1l
bnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1
cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkRmluaXNoRG9jdW1lbnRM
b2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25z
dCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lk
IGRpZEZhaWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgVXNlckRhdGEmKTsKLSAg
ICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQzMl90IHNhbWVEb2N1bWVudE5hdmlnYXRpb25U
eXBlLCBVUkwmJiwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZENoYW5nZU1haW5Eb2N1
bWVudCh1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZEV4cGxpY2l0T3BlbkZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIFVSTCYmKTsKLQotICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiwgY29uc3QgVXNlckRhdGEmKTsK
LSAgICB2b2lkIGRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
VXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWREaXNw
bGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVXNlckRh
dGEmKTsKLSAgICB2b2lkIGRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWREZXRlY3RYU1NGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkQ3JlYXRlTWFp
bkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRDcmVhdGVTdWJm
cmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkQ3JlYXRlV2luZG93
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6R2xvYmFsV2luZG93SWRlbnRpZmll
ciYmKTsKKworICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYsIFVSTCYmIHVu
cmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZl
clJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBj
b25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZy
YW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1cmwsIGRvdWJsZSBk
ZWxheSwgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCk7CisgICAgdm9pZCBkaWRDYW5jZWxD
bGllbnRSZWRpcmVjdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9p
ZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJik7CisgICAgdm9pZCBkaWRGYWlsUHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciYsIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRh
Jik7CisgICAgdm9pZCBkaWRDb21taXRMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wg
ZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNv
bnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYsIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVu
dCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3Vy
ZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRGaW5pc2hEb2N1bWVudExv
YWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgVXNlckRh
dGEmKTsKKyAgICB2b2lkIGRpZEZhaWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3Im
LCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZv
ckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCB1
aW50MzJfdCBzYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgVVJMJiYsIGNvbnN0IFVzZXJEYXRh
Jik7CisgICAgdm9pZCBkaWRDaGFuZ2VNYWluRG9jdW1lbnQoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyKTsKKyAgICB2b2lkIGRpZEV4cGxpY2l0T3BlbkZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgVVJMJiYpOworCisgICAgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFVzZXJEYXRhJik7Cisg
ICAgdm9pZCBkaWRGaXJzdExheW91dEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
Y29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91
dEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgVXNlckRhdGEmKTsKKyAg
ICB2b2lkIGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRSdW5JbnNlY3VyZUNvbnRl
bnRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFVzZXJEYXRhJik7Cisg
ICAgdm9pZCBkaWREZXRlY3RYU1NGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNv
bnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBtYWluRnJhbWVQbHVnaW5IYW5kbGVzUGFnZVNjYWxl
R2VzdHVyZURpZENoYW5nZShib29sKTsKLSAgICB2b2lkIGZyYW1lRGlkQmVjb21lRnJhbWVTZXQo
dWludDY0X3QgZnJhbWVJRCwgYm9vbCk7CisgICAgdm9pZCBmcmFtZURpZEJlY29tZUZyYW1lU2V0
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCk7CiAgICAgdm9pZCBkaWRTdGFydFByb2dy
ZXNzKCk7CiAgICAgdm9pZCBkaWRDaGFuZ2VQcm9ncmVzcyhkb3VibGUpOwogICAgIHZvaWQgZGlk
RmluaXNoUHJvZ3Jlc3MoKTsKQEAgLTE2NDgsMzcgKzE2NDgsMzcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiwgV2ViRnJhbWVQcm94eSYsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAgIEZyYW1lSW5m
b0RhdGEmJiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFn
ZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0
Qm9keSwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9u
c2UsIGNvbnN0IFVzZXJEYXRhJiwgUmVmPFBvbGljeURlY2lzaW9uU2VuZGVyPiYmKTsKLSAgICB2
b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyh1aW50NjRfdCBmcmFtZUlE
LCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCisg
ICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9s
aWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rp
b25EYXRhJiYsCiAgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6
Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKICAgICAgICAgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgdWludDY0X3Qg
bGlzdGVuZXJJRCk7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3lu
Yyh1aW50NjRfdCBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCisgICAgdm9pZCBkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGJvb2wgaXNN
YWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRh
dGEmJiwKICAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRl
bnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3Jt
RGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJl
cGx5JiYpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBv
bGljeUNoZWNrSWRlbnRpZmllciwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKKyAgICB2b2lkIGRl
Y2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklE
LCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsCisgICAgdm9p
ZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELAogICAgICAgICBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5T
aG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxp
c3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCB1bmFibGVUb0ltcGxlbWVudFBv
bGljeSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29u
c3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIHVuYWJsZVRvSW1wbGVtZW50UG9saWN5KFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFVz
ZXJEYXRhJik7CiAgICAgdm9pZCBiZWdpblNhZmVCcm93c2luZ0NoZWNrKGNvbnN0IFVSTCYsIGJv
b2wsIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eSYpOwogCiAgICAgV2ViQ29udGVudE1vZGUg
ZWZmZWN0aXZlQ29udGVudE1vZGVBZnRlckFkanVzdGluZ1BvbGljaWVzKEFQSTo6V2Vic2l0ZVBv
bGljaWVzJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAKLSAgICB2b2lkIHdp
bGxTdWJtaXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZyYW1lSUQsIGNv
bnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiYgdGV4dEZpZWxkVmFsdWVzLCB1
aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgd2lsbFN1Ym1p
dEZvcm0oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
c291cmNlRnJhbWVJRCwgY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+JiB0
ZXh0RmllbGRWYWx1ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CiAK
ICAgICB2b2lkIGNvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlvbihVUkwmJiwgV2ViQ29yZTo6Q29u
dGVudFJ1bGVMaXN0UmVzdWx0cyYmKTsKIAogICAgIC8vIEhpc3RvcnkgY2xpZW50Ci0gICAgdm9p
ZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0
b3JlJiwgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJl
Y3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRp
b25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkUGVyZm9ybVNlcnZl
clJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRl
c3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZFVwZGF0
ZUhpc3RvcnlUaXRsZShjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIHVybCwgdWlu
dDY0X3QgZnJhbWVJRCk7CisgICAgdm9pZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShj
b25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsK
KyAgICB2b2lkIGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVS
TFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBT
dHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmlu
ZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZFVwZGF0ZUhpc3RvcnlU
aXRsZShjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIHVybCwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyKTsKIAogICAgIC8vIFVJIGNsaWVudAogICAgIHZvaWQgY3JlYXRlTmV3UGFn
ZShjb25zdCBGcmFtZUluZm9EYXRhJiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+
IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6
V2luZG93RmVhdHVyZXMmJiwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6Q3JlYXRlTmV3UGFnZTo6RGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgc2hvd1Bh
Z2UoKTsKLSAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydCh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmLCBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQ6OkRlbGF5ZWRSZXBseSYmKTsKLSAgICB2
b2lkIHJ1bkphdmFTY3JpcHRDb25maXJtKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlJ1bkphdmFTY3JpcHRDb25maXJtOjpEZWxheWVkUmVwbHkmJik7Ci0gICAgdm9pZCBydW5K
YXZhU2NyaXB0UHJvbXB0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lk
IHJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYsIE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydDo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgcnVu
SmF2YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmLCBNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybTo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgcnVu
SmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OkRlbGF5ZWRSZXBseSYmKTsK
ICAgICB2b2lkIHNldFN0YXR1c1RleHQoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBtb3VzZURp
ZE1vdmVPdmVyRWxlbWVudChXZWJIaXRUZXN0UmVzdWx0RGF0YSYmLCB1aW50MzJfdCBtb2RpZmll
cnMsIFVzZXJEYXRhJiYpOwogCkBAIC0xNzAxLDIxICsxNzAxLDIxIEBAIHByaXZhdGU6CiAgICAg
dm9pZCByb290Vmlld1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHZpZXdSZWN0LCBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSb290Vmlld1RvU2NyZWVuOjpEZWxheWVkUmVwbHkmJik7
CiAgICAgdm9pZCBhY2Nlc3NpYmlsaXR5U2NyZWVuVG9Sb290Vmlldyhjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYgc2NyZWVuUG9pbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6SW50
UG9pbnQpPiYmKTsKICAgICB2b2lkIHJvb3RWaWV3VG9BY2Nlc3NpYmlsaXR5U2NyZWVuKGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIHZpZXdSZWN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNv
cmU6OkludFJlY3QpPiYmKTsKLSAgICB2b2lkIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbDo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgcnVuQmVmb3JlVW5sb2Fk
Q29uZmlybVBhbmVsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw6OkRlbGF5ZWRSZXBseSYmKTsKICAg
ICB2b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9y
dEF0dHJpYnV0ZXMmKTsKICAgICB2b2lkIHBhZ2VEaWRTY3JvbGwoKTsKLSAgICB2b2lkIHJ1bk9w
ZW5QYW5lbCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmLCBjb25zdCBXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzJik7CisgICAgdm9pZCBydW5P
cGVuUGFuZWwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmLCBjb25zdCBXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzJik7CiAgICAg
dm9pZCBzaG93U2hhcmVTaGVldChjb25zdCBXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJM
JiwgU2hhcmVTaGVldENhbGxiYWNrSUQpOwotICAgIHZvaWQgcHJpbnRGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgZXhjZWVkZWRE
YXRhYmFzZVF1b3RhKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5h
bWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1
aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6RXhjZWVkZWREYXRhYmFzZVF1b3RhOjpEZWxheWVkUmVwbHkm
Jik7CisgICAgdm9pZCBwcmludEZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVp
bnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRf
dCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6RXhjZWVkZWREYXRhYmFzZVF1b3RhOjpEZWxheWVkUmVwbHkmJik7CiAg
ICAgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKGNvbnN0IFN0cmluZyYg
b3JpZ2luSWRlbnRpZmllciwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCB0b3RhbEJ5
dGVzTmVlZGVkLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZWFjaGVkQXBwbGljYXRpb25DYWNo
ZU9yaWdpblF1b3RhOjpEZWxheWVkUmVwbHkmJik7Ci0gICAgdm9pZCByZXF1ZXN0R2VvbG9jYXRp
b25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgdWludDY0X3QgZnJh
bWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpOworICAgIHZvaWQgcmVxdWVzdEdlb2xvY2F0
aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpOwogCiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKICAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYg
dXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCk7CiAjZW5kaWYKLSAgICB2b2lkIHJl
cXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVN0
cmVhbVJlcXVlc3QmJik7Ci0gICAgdm9pZCBlbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1
aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRhdGEsIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEpOworICAg
IHZvaWQgcmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVk
aWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwg
V2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYpOworICAgIHZvaWQgZW51bWVyYXRlTWVkaWFE
ZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbkRhdGEsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxE
b2N1bWVudE9yaWdpbkRhdGEpOwogICAgIHZvaWQgYmVnaW5Nb25pdG9yaW5nQ2FwdHVyZURldmlj
ZXMoKTsKIAogICAgIHZvaWQgcnVuTW9kYWwoKTsKQEAgLTE4OTUsOCArMTg5NSw4IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBwcmludEZpbmlzaGVkQ2FsbGJhY2soY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciYsIENhbGxiYWNrSUQpOwogI2VuZGlmCiAKLSAgICB2b2lkIGZvY3VzZWRGcmFtZUNo
YW5nZWQodWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBmcmFtZVNldExhcmdlc3RGcmFtZUNo
YW5nZWQodWludDY0X3QgZnJhbWVJRCk7CisgICAgdm9pZCBmb2N1c2VkRnJhbWVDaGFuZ2VkKGNv
bnN0IE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4mKTsKKyAgICB2b2lkIGZyYW1l
U2V0TGFyZ2VzdEZyYW1lQ2hhbmdlZChjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXI+Jik7CiAKICAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmdEYXRhRm9yQ3VzdG9tQ29udGVu
dFByb3ZpZGVyKGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUsIGNvbnN0IElQQzo6RGF0
YVJlZmVyZW5jZSYpOwogCkBAIC0xOTk3LDcgKzE5OTcsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCi0gICAgdm9pZCBjb250ZW50RmlsdGVyRGlk
QmxvY2tMb2FkRm9yRnJhbWUoY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5k
bGVyJiwgdWludDY0X3QgZnJhbWVJRCk7CisgICAgdm9pZCBjb250ZW50RmlsdGVyRGlkQmxvY2tM
b2FkRm9yRnJhbWUoY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiwg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICNlbmRpZgogCiAgICAgdm9pZCB0cnlSZWxvYWRB
ZnRlclByb2Nlc3NUZXJtaW5hdGlvbigpOwpAQCAtMjExMCw3ICsyMTEwLDcgQEAgcHJpdmF0ZToK
ICAgICBzdGF0aWMgYm9vbCBpc0luSGFyZHdhcmVLZXlib2FyZE1vZGUoKTsKICNlbmRpZgogCi0g
ICAgdm9pZCBtYWtlU3RvcmFnZVNwYWNlUmVxdWVzdCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBT
dHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25z
dCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1
cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90
IGV4cGVjdGVkVXNhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmKTsKKyAg
ICB2b2lkIG1ha2VTdG9yYWdlU3BhY2VSZXF1ZXN0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFt
ZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50
NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1
aW50NjRfdCBleHBlY3RlZFVzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4m
Jik7CiAKICAgICBXZWFrUHRyPFBhZ2VDbGllbnQ+IG1fcGFnZUNsaWVudDsKICAgICBSZWY8QVBJ
OjpQYWdlQ29uZmlndXJhdGlvbj4gbV9jb25maWd1cmF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGVjYWQ5NWU0NmI1NDNh
YzkxNTA0MGU2MGVmNDA0YmVkNjQyNjcxNjEuLjE1ODkxOWUzMTYwMTFkNjk5NDBkZDliMWUyZjdj
Y2MzMWVhNGU0M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KQEAgLTI1LDkgKzI1LDkgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5
IHsKICAgICBDcmVhdGVOZXdQYWdlKHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2lu
YXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3Jp
Z2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBzdHJ1Y3Qg
V2ViQ29yZTo6V2luZG93RmVhdHVyZXMgd2luZG93RmVhdHVyZXMsIHN0cnVjdCBXZWJLaXQ6Ok5h
dmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhKSAtPiAoT3B0aW9uYWw8V2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXI+IG5ld1BhZ2VJRCwgT3B0aW9uYWw8V2ViS2l0OjpXZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzPiBuZXdQYWdlUGFyYW1ldGVycykgU3luY2hyb25vdXMKICAgICBT
aG93UGFnZSgpCiAgICAgQ2xvc2VQYWdlKGJvb2wgc3RvcFJlc3BvbnNpdmVuZXNzVGltZXIpCi0g
ICAgUnVuSmF2YVNjcmlwdEFsZXJ0KHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3NhZ2UpIC0+
ICgpIFN5bmNocm9ub3VzCi0gICAgUnVuSmF2YVNjcmlwdENvbmZpcm0odWludDY0X3QgZnJhbWVJ
RCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2lu
LCBTdHJpbmcgbWVzc2FnZSkgLT4gKGJvb2wgcmVzdWx0KSBTeW5jaHJvbm91cwotICAgIFJ1bkph
dmFTY3JpcHRQcm9tcHQodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSwgU3RyaW5nIGRl
ZmF1bHRWYWx1ZSkgLT4gKFN0cmluZyByZXN1bHQpIFN5bmNocm9ub3VzCisgICAgUnVuSmF2YVNj
cmlwdEFsZXJ0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFN0cmluZyBtZXNzYWdl
KSAtPiAoKSBTeW5jaHJvbm91cworICAgIFJ1bkphdmFTY3JpcHRDb25maXJtKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
IGZyYW1lU2VjdXJpdHlPcmlnaW4sIFN0cmluZyBtZXNzYWdlKSAtPiAoYm9vbCByZXN1bHQpIFN5
bmNocm9ub3VzCisgICAgUnVuSmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSwgU3RyaW5nIGRlZmF1bHRWYWx1ZSkgLT4gKFN0cmlu
ZyByZXN1bHQpIFN5bmNocm9ub3VzCiAgICAgTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoc3RydWN0
IFdlYktpdDo6V2ViSGl0VGVzdFJlc3VsdERhdGEgaGl0VGVzdFJlc3VsdERhdGEsIHVpbnQzMl90
IG1vZGlmaWVycywgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKIAogI2lmIEVOQUJMRShORVRT
Q0FQRV9QTFVHSU5fQVBJKQpAQCAtNDcsOCArNDcsOCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJv
eHkgewogICAgIFNldFRvb2xUaXAoU3RyaW5nIHRvb2xUaXApCiAgICAgU2V0Rm9jdXMoYm9vbCBm
b2N1c2VkKQogICAgIFRha2VGb2N1cyh1aW50MzJfdCBkaXJlY3Rpb24pCi0gICAgRm9jdXNlZEZy
YW1lQ2hhbmdlZCh1aW50NjRfdCBmcmFtZUlEKQotICAgIEZyYW1lU2V0TGFyZ2VzdEZyYW1lQ2hh
bmdlZCh1aW50NjRfdCBmcmFtZUlEKQorICAgIEZvY3VzZWRGcmFtZUNoYW5nZWQoT3B0aW9uYWw8
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKQorICAgIEZyYW1lU2V0TGFyZ2VzdEZy
YW1lQ2hhbmdlZChPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQpCiAg
ICAgU2V0UmVuZGVyVHJlZVNpemUodWludDY0X3QgdHJlZVNpemUpCiAgICAgU2V0VG9vbGJhcnNB
cmVWaXNpYmxlKGJvb2wgdG9vbGJhcnNBcmVWaXNpYmxlKQogICAgIEdldFRvb2xiYXJzQXJlVmlz
aWJsZSgpIC0+IChib29sIHRvb2xiYXJzQXJlVmlzaWJsZSkgU3luY2hyb25vdXMKQEAgLTY5LDEx
ICs2OSwxMSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIEhpZGVWYWxpZGF0aW9u
TWVzc2FnZSgpCiAjZW5kaWYKIAotICAgIFJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCh1aW50
NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIFN0cmluZyBtZXNzYWdlKSAtPiAoYm9vbCBzaG91bGRDbG9zZSkgU3luY2hy
b25vdXMKKyAgICBSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3NhZ2UpIC0+IChib29sIHNob3VsZENsb3NlKSBTeW5j
aHJvbm91cwogICAgIFBhZ2VEaWRTY3JvbGwoKQotICAgIFJ1bk9wZW5QYW5lbCh1aW50NjRfdCBm
cmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlP
cmlnaW4sIHN0cnVjdCBXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzIHBhcmFtZXRlcnMpCisg
ICAgUnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHN0cnVjdCBX
ZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzIHBhcmFtZXRlcnMpCiAgICAgU2hvd1NoYXJlU2hl
ZXQoc3RydWN0IFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwgc2hhcmVEYXRhLCB1aW50
NjRfdCBjYWxsYmFja0lEKQotICAgIFByaW50RnJhbWUodWludDY0X3QgZnJhbWVJRCkgLT4gKCkg
U3luY2hyb25vdXMKKyAgICBQcmludEZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlEKSAtPiAoKSBTeW5jaHJvbm91cwogICAgIFJ1bk1vZGFsKCkKICAgICBOb3RpZnlTY3JvbGxl
clRodW1iSXNWaXNpYmxlSW5SZWN0KFdlYkNvcmU6OkludFJlY3Qgc2Nyb2xsZXJUaHVtYikKICAg
ICBSZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdlKGludDMyX3QgbmV3U3R5bGUpCkBA
IC0xMDMsMTEgKzEwMywxMSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2VuZGlmCiAK
ICAgICAjIFBvbGljeSBtZXNzYWdlcwotICAgIERlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2
NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1
cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRl
bnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
IHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgYm9vbCBjYW5TaG93
TUlNRVR5cGUsIFN0cmluZyBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwg
V2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uQXN5bmModWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZp
ZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBX
ZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBzdHJ1Y3Qg
V2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVx
dWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhLCB1
aW50NjRfdCBsaXN0ZW5lcklEKQotICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25T
eW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIHN0cnVjdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0
YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEs
IE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHksIFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpVc2VyRGF0YSB1
c2VyRGF0YSkgLT4gKFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lk
ZW50aWZpZXIsIGVudW06dWludDhfdCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9u
LCB1aW50NjRfdCBuZXdOYXZpZ2F0aW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElE
LCBPcHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQb2xpY2llcykg
U3luY2hyb25vdXMKLSAgICBEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24odWludDY0X3Qg
ZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5
T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlm
aWVyLCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9u
RGF0YSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBmcmFtZU5hbWUs
IHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgVW5h
YmxlVG9JbXBsZW1lbnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciBlcnJvciwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEZWNpZGVQb2xpY3lG
b3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xp
Y3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCByZXF1ZXN0LCBib29sIGNhblNob3dNSU1FVHlwZSwgU3RyaW5nIGRvd25sb2Fk
QXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRh
KQorICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBm
cmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5
Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJLaXQ6Ok5h
dmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBzdHJ1Y3QgV2ViS2l0OjpG
cmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViQ29yZTo6
UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgSVBD
OjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhLCB1aW50NjRfdCBs
aXN0ZW5lcklEKQorICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBzdHJ1Y3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBv
bGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFj
dGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUlu
Zm9EYXRhLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdl
SUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5
LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UsIFdlYktpdDo6VXNl
ckRhdGEgdXNlckRhdGEpIC0+IChXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5
Q2hlY2tJZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UG9saWN5QWN0aW9uIHBvbGlj
eUFjdGlvbiwgdWludDY0X3QgbmV3TmF2aWdhdGlvbklELCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93
bmxvYWRJRCwgT3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9s
aWNpZXMpIFN5bmNocm9ub3VzCisgICAgRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rp
b25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVx
dWVzdCwgU3RyaW5nIGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2Vy
RGF0YSB1c2VyRGF0YSkKKyAgICBVbmFibGVUb0ltcGxlbWVudFBvbGljeShXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgV2ViS2l0
OjpVc2VyRGF0YSB1c2VyRGF0YSkKIAogICAgICMgUHJvZ3Jlc3MgbWVzc2FnZXMKICAgICBEaWRD
aGFuZ2VQcm9ncmVzcyhkb3VibGUgdmFsdWUpCkBAIC0xMTcsNTEgKzExNyw1MSBAQCBtZXNzYWdl
cyAtPiBXZWJQYWdlUHJveHkgewogICAgIFNldE5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3MoYm9v
bCBuZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzKQogCiAgICAgIyBGcmFtZSBsaWZldGltZSBtZXNz
YWdlcwotICAgIERpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRfdCBmcmFtZUlEKQotICAgIERpZENy
ZWF0ZVN1YmZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCisgICAgRGlkQ3JlYXRlTWFpbkZyYW1lKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQorICAgIERpZENyZWF0ZVN1YmZyYW1lKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogCi0gICAgRGlkQ3JlYXRlV2luZG93KHVp
bnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlmaWVyIHdp
bmRvd0lkZW50aWZpZXIpCisgICAgRGlkQ3JlYXRlV2luZG93KFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6R2xvYmFsV2luZG93SWRlbnRpZmllciB3aW5k
b3dJZGVudGlmaWVyKQogCiAgICAgIyBGcmFtZSBsb2FkIG1lc3NhZ2VzCi0gICAgRGlkU3RhcnRQ
cm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIFVSTCB1cmwsIFVSTCB1bnJlYWNoYWJsZVVSTCwgV2ViS2l0OjpVc2VyRGF0YSB1c2Vy
RGF0YSkKLSAgICBEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIFdp
bGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcg
dXJsLCBkb3VibGUgZGVsYXksIGVudW06Ym9vbCBXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0
IGxvY2tCYWNrRm9yd2FyZExpc3QpCi0gICAgRGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlEKQotICAgIERpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwgdXJsKQotICAgIERp
ZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgU3RyaW5nIHByb3Zpc2lvbmFsVVJMLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
IGVycm9yLCBlbnVtOmJvb2wgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGlu
dWVMb2FkaW5nLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZENvbW1pdExvYWRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFN0cmluZyBt
aW1lVHlwZSwgYm9vbCBoYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGxvYWRUeXBl
LCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGVJbmZvLCBib29sIGNvbnRhaW5z
UGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9y
Y2VkSGFzSW5zZWN1cmVDb250ZW50LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERp
ZEZhaWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRh
KQotICAgIERpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWRG
aW5pc2hMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZEZpcnN0TGF5b3V0Rm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWRGaXJz
dFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6
OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
VVJMIHVybCwgVVJMIHVucmVhY2hhYmxlVVJMLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQor
ICAgIERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRh
KQorICAgIFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIHVybCwgZG91YmxlIGRlbGF5LCBlbnVtOmJvb2wgV2Vi
Q29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0KQorICAgIERpZENh
bmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQpCisgICAgRGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwgdXJsKQorICAgIERp
ZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3Jp
Z2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFN0cmluZyBwcm92aXNpb25hbFVSTCwgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgZW51bTpib29sIFdlYkNvcmU6OldpbGxDb250aW51ZUxv
YWRpbmcgd2lsbENvbnRpbnVlTG9hZGluZywgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAg
ICBEaWRDb21taXRMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgU3RyaW5nIG1pbWVUeXBlLCBib29sIGhhc0N1c3RvbUNv
bnRlbnRQcm92aWRlciwgdWludDMyX3QgbG9hZFR5cGUsIFdlYkNvcmU6OkNlcnRpZmljYXRlSW5m
byBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8
V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIFdl
YktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkRmFpbExvYWRGb3JGcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yIGVycm9yLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERp
ZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisg
ICAgRGlkRmluaXNoTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAg
RGlkRmlyc3RMYXlvdXRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
V2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlM
YXlvdXRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViS2l0OjpV
c2VyRGF0YSB1c2VyRGF0YSkKICAgICBEaWRSZWFjaExheW91dE1pbGVzdG9uZShPcHRpb25TZXQ8
V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPiBsYXlvdXRNaWxlc3RvbmVzKQotICAgIERpZFJlY2Vp
dmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyB0aXRsZSwgV2ViS2l0OjpV
c2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWRSdW5J
bnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6OlVzZXJEYXRh
IHVzZXJEYXRhKQotICAgIERpZERldGVjdFhTU0ZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdl
YktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMyX3Qg
dHlwZSwgVVJMIHVybCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWRDaGFuZ2VN
YWluRG9jdW1lbnQodWludDY0X3QgZnJhbWVJRCkKLSAgICBEaWRFeHBsaWNpdE9wZW5Gb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBVUkwgdXJsKQorICAgIERpZFJlY2VpdmVUaXRsZUZvckZyYW1l
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgdGl0bGUsIFdlYktpdDo6
VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1l
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJE
YXRhKQorICAgIERpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZERldGVj
dFhTU0ZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJLaXQ6OlVz
ZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZShX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCB1
aW50MzJfdCB0eXBlLCBVUkwgdXJsLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERp
ZENoYW5nZU1haW5Eb2N1bWVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKKyAg
ICBEaWRFeHBsaWNpdE9wZW5Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgVVJMIHVybCkKICAgICBEaWREZXN0cm95TmF2aWdhdGlvbih1aW50NjRfdCBuYXZpZ2F0aW9u
SUQpCiAKICAgICBIYXNJbnNlY3VyZUNvbnRlbnQoKSAtPiAoZW51bTpib29sIFdlYkNvcmU6Okhh
c0luc2VjdXJlQ29udGVudCBoYXNJbnNlY3VyZUNvbnRlbnQpIFN5bmNocm9ub3VzCiAKICAgICBN
YWluRnJhbWVQbHVnaW5IYW5kbGVzUGFnZVNjYWxlR2VzdHVyZURpZENoYW5nZShib29sIG1haW5G
cmFtZVBsdWdpbkhhbmRsZXNQYWdlU2NhbGVHZXN0dXJlKQogCi0gICAgRnJhbWVEaWRCZWNvbWVG
cmFtZVNldCh1aW50NjRfdCBmcmFtZUlELCBib29sIHZhbHVlKQorICAgIEZyYW1lRGlkQmVjb21l
RnJhbWVTZXQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wgdmFsdWUpCiAK
ICAgICAjIEhpc3RvcnkgY2xpZW50IG1lc3NhZ2VzLgotICAgIERpZE5hdmlnYXRlV2l0aE5hdmln
YXRpb25EYXRhKHN0cnVjdCBXZWJLaXQ6OldlYk5hdmlnYXRpb25EYXRhU3RvcmUgc3RvcmUsIHVp
bnQ2NF90IGZyYW1lSUQpCi0gICAgRGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KFN0cmluZyBzb3Vy
Y2VVUkxTdHJpbmcsIFN0cmluZyBkZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJ
RCkKLSAgICBEaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoU3RyaW5nIHNvdXJjZVVSTFN0cmluZywg
U3RyaW5nIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKQotICAgIERpZFVw
ZGF0ZUhpc3RvcnlUaXRsZShTdHJpbmcgdGl0bGUsIFN0cmluZyB1cmwsIHVpbnQ2NF90IGZyYW1l
SUQpCisgICAgRGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoc3RydWN0IFdlYktpdDo6V2Vi
TmF2aWdhdGlvbkRhdGFTdG9yZSBzdG9yZSwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQpCisgICAgRGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KFN0cmluZyBzb3VyY2VVUkxTdHJpbmcs
IFN0cmluZyBkZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQpCisgICAgRGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KFN0cmluZyBzb3VyY2VVUkxTdHJp
bmcsIFN0cmluZyBkZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQpCisgICAgRGlkVXBkYXRlSGlzdG9yeVRpdGxlKFN0cmluZyB0aXRsZSwgU3RyaW5n
IHVybCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAKICAgICAjIEN1c3RvbSBy
ZXByZXNlbnRhdGlvbnMKICAgICBEaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3RvbUNvbnRlbnRQ
cm92aWRlcihTdHJpbmcgc3VnZ2VzdGVkRmlsZW5hbWUsIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRh
KQogCiAgICAgIyBGb3JtcyBtZXNzYWdlcwotICAgIFdpbGxTdWJtaXRGb3JtKHVpbnQ2NF90IGZy
YW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZyYW1lSUQsIFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBT
dHJpbmc+PiB0ZXh0RmllbGRWYWx1ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNl
ckRhdGEgdXNlckRhdGEpCisgICAgV2lsbFN1Ym1pdEZvcm0oV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBzb3VyY2VGcmFtZUlELCBWZWN0
b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4gdGV4dEZpZWxkVmFsdWVzLCB1aW50NjRfdCBs
aXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQogCiAgICAgIyBDYWxsYmFjayBt
ZXNzYWdlcwogICAgIFZvaWRDYWxsYmFjayhXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkK
QEAgLTI3NSwxOCArMjc1LDE4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjZW5kaWYK
IAogICAgICMgRGF0YWJhc2UgbWVzc2FnZXMKLSAgICBFeGNlZWRlZERhdGFiYXNlUXVvdGEodWlu
dDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIsIFN0cmluZyBkYXRhYmFzZU5h
bWUsIFN0cmluZyBkYXRhYmFzZURpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVp
bnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2Us
IHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UpIC0+ICh1aW50NjRfdCBuZXdRdW90YSkgU3luY2hyb25v
dXMKKyAgICBFeGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCBTdHJpbmcgZGF0YWJhc2VOYW1lLCBTdHJp
bmcgZGF0YWJhc2VEaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBj
dXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRf
dCBleHBlY3RlZFVzYWdlKSAtPiAodWludDY0X3QgbmV3UXVvdGEpIFN5bmNocm9ub3VzCiAKICAg
ICAjIEFwcGxpY2F0aW9uIGNhY2hlIG1lc3NhZ2VzCiAgICAgUmVhY2hlZEFwcGxpY2F0aW9uQ2Fj
aGVPcmlnaW5RdW90YShTdHJpbmcgb3JpZ2luSWRlbnRpZmllciwgdWludDY0X3QgY3VycmVudFF1
b3RhLCB1aW50NjRfdCB0b3RhbEJ5dGVzTmVlZGVkKSAtPiAodWludDY0X3QgbmV3UXVvdGEpIFN5
bmNocm9ub3VzCiAKICAgICAjIEdlb2xvY2F0aW9uIG1lc3NhZ2VzCi0gICAgUmVxdWVzdEdlb2xv
Y2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIHVpbnQ2NF90
IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQorICAgIFJlcXVlc3RHZW9sb2NhdGlv
blBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCiAgICAgCiAjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICAjIE1lZGlhU3RlYW0gbWVzc2FnZXMKLSAgICBSZXF1
ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50
NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Ok1l
ZGlhU3RyZWFtUmVxdWVzdCByZXF1ZXN0KQotICAgIEVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZy
YW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwg
c3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
SWRlbnRpZmllcikKKyAgICBSZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2
NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50
aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QgcmVx
dWVzdCkKKyAgICBFbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVk
aWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBzdHJ1
Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVu
dGlmaWVyKQogICAgIEJlZ2luTW9uaXRvcmluZ0NhcHR1cmVEZXZpY2VzKCkKICNlbmRpZgogCkBA
IC00NzMsNyArNDczLDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgogCiAj
aWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQotICAgIENvbnRlbnRGaWx0ZXJEaWRCbG9ja0xv
YWRGb3JGcmFtZShXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIgdW5ibG9ja0hh
bmRsZXIsIHVpbnQ2NF90IGZyYW1lSUQpCisgICAgQ29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZv
ckZyYW1lKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciB1bmJsb2NrSGFuZGxl
ciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAjZW5kaWYKIAogICAgIElzUGxh
eWluZ01lZGlhRGlkQ2hhbmdlKHVuc2lnbmVkIHN0YXRlLCB1aW50NjRfdCBzb3VyY2VFbGVtZW50
SUQpCkBAIC01MzksNyArNTM5LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBM
b2FkU3luY2hyb25vdXNVUkxTY2hlbWVUYXNrKHN0cnVjdCBXZWJLaXQ6OlVSTFNjaGVtZVRhc2tQ
YXJhbWV0ZXJzIHBhcmFtZXRlcnMpIC0+IChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBWZWN0b3I8Y2hhcj4gZGF0YSkgU3lu
Y2hyb25vdXMKIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgU2hvdWxkQWxs
b3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh1aW50NjRfdCBmcmFtZUlELCBzdHJ1
Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG9yaWdpbiwgYm9vbCBtYXlQcm9tcHQpIC0+
IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Np
b25TdGF0ZSBwZXJtaXNzaW9uU3RhdGUpIEFzeW5jCisgICAgU2hvdWxkQWxsb3dEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
c3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4sIGJvb2wgbWF5UHJvbXB0
KSAtPiAoZW51bTp1aW50OF90IFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJt
aXNzaW9uU3RhdGUgcGVybWlzc2lvblN0YXRlKSBBc3luYwogI2VuZGlmCiAKICNpZiBFTkFCTEUo
QVRUQUNITUVOVF9FTEVNRU5UKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKaW5kZXggZTE2OTEzN2Y1Mzg5ZDMwYmI4YjExYjNhOGUxZjUwY2E0M2FhMDZlZC4u
OTViNTg2MzlmM2M0MGNjNjMwMGE0NGYyYzA0NDllZmZlZjhhZDEzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC04MjcsMjUgKzgyNywyNSBAQCB2
b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciog
bGF1bmNoZXIsIElQQzo6Q29ubmVjdAogI2VuZGlmCiB9CiAKLVdlYkZyYW1lUHJveHkqIFdlYlBy
b2Nlc3NQcm94eTo6d2ViRnJhbWUodWludDY0X3QgZnJhbWVJRCkgY29uc3QKK1dlYkZyYW1lUHJv
eHkqIFdlYlByb2Nlc3NQcm94eTo6d2ViRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIGNv
bnN0CiB7CiAgICAgaWYgKCFXZWJGcmFtZVByb3h5TWFwOjppc1ZhbGlkS2V5KGZyYW1lSUQpKQot
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICByZXR1cm4g
bV9mcmFtZU1hcC5nZXQoZnJhbWVJRCk7CiB9CiAKLWJvb2wgV2ViUHJvY2Vzc1Byb3h5OjpjYW5D
cmVhdGVGcmFtZSh1aW50NjRfdCBmcmFtZUlEKSBjb25zdAorYm9vbCBXZWJQcm9jZXNzUHJveHk6
OmNhbkNyZWF0ZUZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSBjb25zdAogewogICAgIHJl
dHVybiBXZWJGcmFtZVByb3h5TWFwOjppc1ZhbGlkS2V5KGZyYW1lSUQpICYmICFtX2ZyYW1lTWFw
LmNvbnRhaW5zKGZyYW1lSUQpOwogfQogCi12b2lkIFdlYlByb2Nlc3NQcm94eTo6ZnJhbWVDcmVh
dGVkKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkZyYW1lUHJveHkmIGZyYW1lUHJveHkpCit2b2lkIFdl
YlByb2Nlc3NQcm94eTo6ZnJhbWVDcmVhdGVkKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJG
cmFtZVByb3h5JiBmcmFtZVByb3h5KQogewogICAgIG1fZnJhbWVNYXAuc2V0KGZyYW1lSUQsICZm
cmFtZVByb3h5KTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZERlc3Ryb3lGcmFtZSh1
aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZERlc3Ryb3lGcmFtZShG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICAvLyBJZiB0aGUgcGFnZSBpcyBjbG9zZWQg
YmVmb3JlIGl0IGhhcyBoYWQgdGhlIGNoYW5jZSB0byBzZW5kIHRoZSBEaWRDcmVhdGVNYWluRnJh
bWUgbWVzc2FnZQogICAgIC8vIGJhY2sgdG8gdGhlIFVJUHJvY2VzcywgdGhlbiB0aGUgZnJhbWVE
ZXN0cm95ZWQgbWVzc2FnZSB3aWxsIHN0aWxsIGJlIHJlY2VpdmVkIGJlY2F1c2UgaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggMzAwOTZkZDMwODU0OGI4
OTA0OWM4MzUxMGVlYTcxYmIwNTk3NmZmYy4uMThmNDg4MGEwYmIyZDRkODNkMmZiNmM1OTdjODdj
N2NkZDZlYzg5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgK
QEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJWaXNpYmxlV2ViUGFnZUNvdW50ZXIuaCIKICNp
bmNsdWRlICJXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vz
c1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL01lc3NhZ2VQb3J0SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFn
ZUlkZW50aWZpZXIuaD4KQEAgLTk3LDcgKzk4LDcgQEAgZW51bSBjbGFzcyBBbGxvd1Byb2Nlc3ND
YWNoaW5nIHsgTm8sIFllcyB9OwogCiBjbGFzcyBXZWJQcm9jZXNzUHJveHkgOiBwdWJsaWMgQXV4
aWxpYXJ5UHJvY2Vzc1Byb3h5LCBwdWJsaWMgUmVzcG9uc2l2ZW5lc3NUaW1lcjo6Q2xpZW50LCBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8V2ViUHJvY2Vzc1Byb3h5PiwgcHVibGljIENhbk1h
a2VXZWFrUHRyPFdlYlByb2Nlc3NQcm94eT4sIHByaXZhdGUgUHJvY2Vzc1Rocm90dGxlckNsaWVu
dCB7CiBwdWJsaWM6Ci0gICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViRnJh
bWVQcm94eT4+IFdlYkZyYW1lUHJveHlNYXA7CisgICAgdHlwZWRlZiBIYXNoTWFwPFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgUmVmUHRyPFdlYkZyYW1lUHJveHk+PiBXZWJGcmFtZVByb3h5TWFw
OwogICAgIHR5cGVkZWYgSGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViUGFnZVBy
b3h5Kj4gV2ViUGFnZVByb3h5TWFwOwogICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgUmVm
UHRyPEFQSTo6VXNlckluaXRpYXRlZEFjdGlvbj4+IFVzZXJJbml0aWF0ZWRBY3Rpb25NYXA7CiAK
QEAgLTE2NCw5ICsxNjUsOSBAQCBwdWJsaWM6CiAgICAgUmVzcG9uc2l2ZW5lc3NUaW1lciYgcmVz
cG9uc2l2ZW5lc3NUaW1lcigpIHsgcmV0dXJuIG1fcmVzcG9uc2l2ZW5lc3NUaW1lcjsgfQogICAg
IGJvb2wgaXNSZXNwb25zaXZlKCkgY29uc3Q7CiAKLSAgICBXZWJGcmFtZVByb3h5KiB3ZWJGcmFt
ZSh1aW50NjRfdCkgY29uc3Q7Ci0gICAgYm9vbCBjYW5DcmVhdGVGcmFtZSh1aW50NjRfdCBmcmFt
ZUlEKSBjb25zdDsKLSAgICB2b2lkIGZyYW1lQ3JlYXRlZCh1aW50NjRfdCwgV2ViRnJhbWVQcm94
eSYpOworICAgIFdlYkZyYW1lUHJveHkqIHdlYkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
cikgY29uc3Q7CisgICAgYm9vbCBjYW5DcmVhdGVGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIpIGNvbnN0OworICAgIHZvaWQgZnJhbWVDcmVhdGVkKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgV2ViRnJhbWVQcm94eSYpOwogICAgIHZvaWQgZGlzY29ubmVjdEZyYW1lc0Zyb21QYWdlKFdl
YlBhZ2VQcm94eSopOyAvLyBJbmNsdWRpbmcgbWFpbiBmcmFtZS4KICAgICBzaXplX3QgZnJhbWVD
b3VudEluUGFnZShXZWJQYWdlUHJveHkqKSBjb25zdDsgLy8gSW5jbHVkaW5nIG1haW4gZnJhbWUu
CiAKQEAgLTMzNSw3ICszMzYsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIC8vIElQQyBt
ZXNzYWdlIGhhbmRsZXJzLgogICAgIHZvaWQgdXBkYXRlQmFja0ZvcndhcmRJdGVtKGNvbnN0IEJh
Y2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSYpOwotICAgIHZvaWQgZGlkRGVzdHJveUZyYW1lKHVpbnQ2
NF90KTsKKyAgICB2b2lkIGRpZERlc3Ryb3lGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIp
OwogICAgIHZvaWQgZGlkRGVzdHJveVVzZXJHZXN0dXJlVG9rZW4odWludDY0X3QpOwogCiAgICAg
Ym9vbCBjYW5CZUFkZGVkVG9XZWJQcm9jZXNzQ2FjaGUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCBmM2Q1
ZTkzMWU2ZGVlOTAyYTRhYzVlNWZjNWIxMGRkNDYxNWIxNWQwLi4zMmJhZmVhOWUxMDk1OGMyNWNk
MTk0ZGExODQ1MzZhZDA5M2Y3NTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0yMiw3ICsyMiw3IEBACiAKIG1lc3Nh
Z2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgVXBkYXRlQmFja0Zv
cndhcmRJdGVtKHN0cnVjdCBXZWJLaXQ6OkJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSBiYWNrRm9y
d2FyZExpc3RJdGVtU3RhdGUpCi0gICAgRGlkRGVzdHJveUZyYW1lKHVpbnQ2NF90IGZyYW1lSUQp
IAorICAgIERpZERlc3Ryb3lGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkg
CiAKICAgICBEaWREZXN0cm95VXNlckdlc3R1cmVUb2tlbih1aW50NjRfdCB1c2VyR2VzdHVyZVRv
a2VuSUQpIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1t
CmluZGV4IDY4MTFlODdhNGE0MjEwMDViZDk0YTdhYzIxNjU0M2VjYzAwYTc3ZmMuLmMyOTkyMTQ1
OGFmMDFmZDk3YTQwMDkyYzcxM2Y2N2M0MWZmNzdlN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCkBAIC03MDEsOSArNzAxLDkgQEAgLSAoTlNVSW50
ZWdlcilfd2tfcGFnZUNvdW50Rm9yUHJpbnRGb3JtYXR0ZXI6KF9XS1dlYlZpZXdQcmludEZvcm1h
dHRlciAqKXByaW50Rm8KICAgICBpZiAoX2lzUHJpbnRpbmdUb1BERikKICAgICAgICAgcmV0dXJu
IDA7CiAKLSAgICB1aW50NjRfdCBmcmFtZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlEOwogICAgIGlmIChfV0tGcmFtZUhhbmRsZSAqaGFuZGxlID0gcHJpbnRGb3JtYXR0
ZXIuZnJhbWVUb1ByaW50KQotICAgICAgICBmcmFtZUlEID0gaGFuZGxlLl9mcmFtZUlEOworICAg
ICAgICBmcmFtZUlEID0gV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKGhhbmRsZS5fZnJh
bWVJRCk7CiAgICAgZWxzZSBpZiAoYXV0byBtYWluRnJhbWUgPSBfcGFnZS0+bWFpbkZyYW1lKCkp
CiAgICAgICAgIGZyYW1lSUQgPSBtYWluRnJhbWUtPmZyYW1lSUQoKTsKICAgICBlbHNlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCBiMDI4
MjQ4OTIwMDNhMDQ5ODkyOWU3MDZhNTkwNDU5YTRmODcxYWNkLi44MmQzNTQyMTdiNzA2NDIwMWUz
ZDdiMDc2ZTViMDU5Yjk2MDExY2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTEwNjYsNyArMTA2Niw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpoYW5kbGVTbWFydE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbkZvclBvdGVudGlhbFRhcCh1
aW50NjRfdCByCiAgICAgcGFnZUNsaWVudCgpLmhhbmRsZVNtYXJ0TWFnbmlmaWNhdGlvbkluZm9y
bWF0aW9uRm9yUG90ZW50aWFsVGFwKHJlcXVlc3RJRCwgcmVuZGVyUmVjdCwgZml0RW50aXJlUmVj
dCwgdmlld3BvcnRNaW5pbXVtU2NhbGUsIHZpZXdwb3J0TWF4aW11bVNjYWxlKTsKIH0KIAotdWlu
dDMyX3QgV2ViUGFnZVByb3h5Ojpjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERih1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgRHJhd1RvUERGQ2Fs
bGJhY2s6OkNhbGxiYWNrRnVuY3Rpb24mJiBjYWxsYmFjaykKK3VpbnQzMl90IFdlYlBhZ2VQcm94
eTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYoRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBEcmF3VG9QREZDYWxsYmFjazo6Q2Fs
bGJhY2tGdW5jdGlvbiYmIGNhbGxiYWNrKQogewogICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3Mo
KSkgewogICAgICAgICBjYWxsYmFjayhJUEM6OkRhdGFSZWZlcmVuY2UoKSwgQ2FsbGJhY2tCYXNl
OjpFcnJvcjo6T3duZXJXYXNJbnZhbGlkYXRlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHkuY3BwCmluZGV4IGU2MzUzY2NkZDU0YWRmYTVhYTU5MDViODk3MzAzNGJjMWNlOTU2ZjIuLjk0
ZmU4YTllOTczNjljZmRmNzMwNWE1NzQ5ZDRjY2M3YzgzZWRjZWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHkuY3BwCkBAIC0xNDMsNyArMTQzLDcgQEAgc3RhdGljIEpTVmFsdWVSZWYg
ZXZhbHVhdGVKYXZhU2NyaXB0Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0
UmVmIGYKICAgICBpZiAoIWF1dG9tYXRpb25TZXNzaW9uUHJveHkpCiAgICAgICAgIHJldHVybiBK
U1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIAotICAgIHVpbnQ2NF90IGZyYW1lSUQgPSBK
U1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pOworICAgIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEID0gV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVy
RnJvbUlEKEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbikp
OwogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJn
dW1lbnRzWzFdLCBleGNlcHRpb24pOwogICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoSlNWYWx1
ZVRvU3RyaW5nQ29weShjb250ZXh0LCBhcmd1bWVudHNbMl0sIGV4Y2VwdGlvbikpOwogCkBAIC0y
MjAsNyArMjIwLDcgQEAgV2ViQ29yZTo6RWxlbWVudCogV2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eTo6ZWxlbWVudEZvck5vZGVIYW5kbGUoV2ViRnJhbWUmIGZyYW0KIAogdm9pZCBXZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5OjpkaWRDbGVhcldpbmRvd09iamVjdEZvckZyYW1lKFdlYkZyYW1lJiBm
cmFtZSkKIHsKLSAgICB1aW50NjRfdCBmcmFtZUlEID0gZnJhbWUuZnJhbWVJRCgpOworICAgIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEID0gZnJhbWUuZnJhbWVJRCgpOwogICAgIGlm
IChKU09iamVjdFJlZiBzY3JpcHRPYmplY3QgPSBtX3dlYkZyYW1lU2NyaXB0T2JqZWN0TWFwLnRh
a2UoZnJhbWVJRCkpCiAgICAgICAgIEpTVmFsdWVVbnByb3RlY3QoZnJhbWUuanNDb250ZXh0KCks
IHNjcmlwdE9iamVjdCk7CiAKQEAgLTIzMiw3ICsyMzIsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25T
ZXNzaW9uUHJveHk6OmRpZENsZWFyV2luZG93T2JqZWN0Rm9yRnJhbWUoV2ViRnJhbWUmIGZyYW1l
KQogICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6RGlkRXZhbHVhdGVKYXZh
U2NyaXB0RnVuY3Rpb24oY2FsbGJhY2tJRCwgZXJyb3JNZXNzYWdlLCBlcnJvclR5cGUpLCAwKTsK
IH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpldmFsdWF0ZUphdmFTY3JpcHRG
dW5jdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFN0cmluZyYgZnVuY3Rpb24sIFZlY3RvcjxTdHJpbmc+IGFyZ3VtZW50cywgYm9vbCBl
eHBlY3RzSW1wbGljaXRDYWxsYmFja0FyZ3VtZW50LCBpbnQgY2FsbGJhY2tUaW1lb3V0LCB1aW50
NjRfdCBjYWxsYmFja0lEKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpldmFsdWF0
ZUphdmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIGZ1bmN0aW9uLCBWZWN0
b3I8U3RyaW5nPiBhcmd1bWVudHMsIGJvb2wgZXhwZWN0c0ltcGxpY2l0Q2FsbGJhY2tBcmd1bWVu
dCwgaW50IGNhbGxiYWNrVGltZW91dCwgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKICAgICBXZWJQ
YWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAg
IGlmICghcGFnZSkgewpAQCAtMjYzLDcgKzI2Myw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b25Qcm94eTo6ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6UGFnZUlkZW50aWZp
CiAgICAgICAgIHRvSlNWYWx1ZShjb250ZXh0LCBmdW5jdGlvbiksCiAgICAgICAgIHRvSlNBcnJh
eShjb250ZXh0LCBhcmd1bWVudHMsIHRvSlNWYWx1ZSwgJmV4Y2VwdGlvbiksCiAgICAgICAgIEpT
VmFsdWVNYWtlQm9vbGVhbihjb250ZXh0LCBleHBlY3RzSW1wbGljaXRDYWxsYmFja0FyZ3VtZW50
KSwKLSAgICAgICAgSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgZnJhbWVJRCksCisgICAgICAg
IEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIGZyYW1lSUQudG9VSW50NjQoKSksCiAgICAgICAg
IEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIGNhbGxiYWNrSUQpLAogICAgICAgICBKU09iamVj
dE1ha2VGdW5jdGlvbldpdGhDYWxsYmFjayhjb250ZXh0LCBudWxscHRyLCBldmFsdWF0ZUphdmFT
Y3JpcHRDYWxsYmFjayksCiAgICAgICAgIEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIGNhbGxi
YWNrVGltZW91dCkKQEAgLTMwMCw3ICszMDAsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9u
UHJveHk6OmV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OlBhZ2VJZGVudGlmaQog
ICAgIGRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKGZyYW1lSUQsIGNhbGxiYWNrSUQsIGV4
Y2VwdGlvbk1lc3NhZ2UsIGVycm9yVHlwZSk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b25Qcm94eTo6ZGlkRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24odWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgU3RyaW5nJiByZXN1bHQsIGNvbnN0IFN0cmluZyYg
ZXJyb3JUeXBlKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpkaWRFdmFsdWF0ZUph
dmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0
X3QgY2FsbGJhY2tJRCwgY29uc3QgU3RyaW5nJiByZXN1bHQsIGNvbnN0IFN0cmluZyYgZXJyb3JU
eXBlKQogewogICAgIGF1dG8gZmluZFJlc3VsdCA9IG1fd2ViRnJhbWVQZW5kaW5nRXZhbHVhdGVK
YXZhU2NyaXB0Q2FsbGJhY2tzTWFwLmZpbmQoZnJhbWVJRCk7CiAgICAgaWYgKGZpbmRSZXN1bHQg
IT0gbV93ZWJGcmFtZVBlbmRpbmdFdmFsdWF0ZUphdmFTY3JpcHRDYWxsYmFja3NNYXAuZW5kKCkp
IHsKQEAgLTMxMywxMiArMzEzLDEyIEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6
ZGlkRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24odWludDY0X3QgZnJhbWVJRCwKICAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6RGlkRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24o
Y2FsbGJhY2tJRCwgcmVzdWx0LCBlcnJvclR5cGUpLCAwKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhPcmRpbmFsKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgdWludDMyX3Qgb3JkaW5hbCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCB1aW50NjRfdCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVD
aGlsZEZyYW1lV2l0aE9yZGluYWwoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDMyX3Qgb3JkaW5hbCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXI+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQYWdlKiBwYWdlID0g
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAgIGlmICghcGFnZSkg
ewogICAgICAgICBTdHJpbmcgd2luZG93Tm90Rm91bmRFcnJvclR5cGUgPSBJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUoSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JNZXNzYWdlOjpXaW5kb3dOb3RGb3VuZCk7Ci0g
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIod2luZG93Tm90Rm91bmRFcnJvclR5cGUsIFdURjo6bnVs
bG9wdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTMyNiwzNyArMzI2LDM3IEBAIHZv
aWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoT3JkaW5h
bChXZWJDb3JlOjpQYWdlSWRlbnRpCiAKICAgICBXZWJGcmFtZSogZnJhbWUgPSBmcmFtZUlEID8g
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCkgOiBwYWdlLT5tYWluV2Vi
RnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZy
YW1lTm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFt
ZU5vdEZvdW5kRXJyb3JUeXBlLCBXVEY6Om51bGxvcHQpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCiAgICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZSA9IGZyYW1lLT5jb3JlRnJhbWUoKTsK
ICAgICBpZiAoIWNvcmVGcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5v
dEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RG
b3VuZEVycm9yVHlwZSwgV1RGOjpudWxsb3B0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIFdlYkNvcmU6OkZyYW1lKiBjb3JlQ2hpbGRGcmFtZSA9IGNvcmVGcmFtZS0+dHJlZSgpLnNj
b3BlZENoaWxkKG9yZGluYWwpOwogICAgIGlmICghY29yZUNoaWxkRnJhbWUpIHsKLSAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIFdURjo6bnVsbG9wdCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBXZWJGcmFtZSogY2hpbGRGcmFtZSA9IFdlYkZy
YW1lOjpmcm9tQ29yZUZyYW1lKCpjb3JlQ2hpbGRGcmFtZSk7CiAgICAgaWYgKCFjaGlsZEZyYW1l
KSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDAp
OworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCBXVEY6
Om51bGxvcHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgY29tcGxldGlvbkhhbmRs
ZXIoV1RGOjpudWxsb3B0LCBjaGlsZEZyYW1lLT5mcmFtZUlEKCkpOwogfQogCi12b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJp
bmcmIG5vZGVIYW5kbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwg
dWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lv
blByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOb2RlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0
cmluZyYgbm9kZUhhbmRsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+
LCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+KT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFn
ZShwYWdlSUQpOwogICAgIGlmICghcGFnZSkgewogICAgICAgICBTdHJpbmcgd2luZG93Tm90Rm91
bmRFcnJvclR5cGUgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0
RW51bUNvbnN0YW50VmFsdWUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JN
ZXNzYWdlOjpXaW5kb3dOb3RGb3VuZCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHdpbmRv
d05vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIod2luZG93
Tm90Rm91bmRFcnJvclR5cGUsIFdURjo6bnVsbG9wdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKQEAgLTM2NCwzNyArMzY0LDM3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6
cmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhhbmRsZShXZWJDb3JlOjpQYWdlSWRlCiAKICAgICBX
ZWJGcmFtZSogZnJhbWUgPSBmcmFtZUlEID8gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJh
bWUoZnJhbWVJRCkgOiBwYWdlLT5tYWluV2ViRnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKSB7Ci0g
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOworICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCBXVEY6Om51bGxv
cHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgV2ViQ29yZTo6RWxlbWVudCogY29y
ZUVsZW1lbnQgPSBlbGVtZW50Rm9yTm9kZUhhbmRsZSgqZnJhbWUsIG5vZGVIYW5kbGUpOwogICAg
IGlmICghaXM8V2ViQ29yZTo6SFRNTEZyYW1lRWxlbWVudEJhc2U+KGNvcmVFbGVtZW50KSkgewot
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgV1RGOjpudWxs
b3B0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFdlYkNvcmU6OkZyYW1lKiBjb3Jl
RnJhbWVGcm9tRWxlbWVudCA9IGRvd25jYXN0PFdlYkNvcmU6OkhUTUxGcmFtZUVsZW1lbnRCYXNl
PigqY29yZUVsZW1lbnQpLmNvbnRlbnRGcmFtZSgpOwogICAgIGlmICghY29yZUZyYW1lRnJvbUVs
ZW1lbnQpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlw
ZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUs
IFdURjo6bnVsbG9wdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBXZWJGcmFtZSog
ZnJhbWVGcm9tRWxlbWVudCA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpjb3JlRnJhbWVGcm9t
RWxlbWVudCk7CiAgICAgaWYgKCFmcmFtZUZyb21FbGVtZW50KSB7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCBXVEY6Om51bGxvcHQpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGOjpudWxsb3B0LCBmcmFt
ZUZyb21FbGVtZW50LT5mcmFtZUlEKCkpOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9u
UHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
cGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdp
dGhOYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChPcHRpb25hbDxTdHJpbmc+LCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+KT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAgIGlmICghcGFnZSkgewogICAgICAgICBT
dHJpbmcgd2luZG93Tm90Rm91bmRFcnJvclR5cGUgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUoSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6RXJyb3JNZXNzYWdlOjpXaW5kb3dOb3RGb3VuZCk7Ci0gICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIod2luZG93Tm90Rm91bmRFcnJvclR5cGUsIFdURjo6bnVsbG9wdCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKQEAgLTQwMiwzNyArNDAyLDM3IEBAIHZvaWQgV2ViQXV0b21h
dGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoTmFtZShXZWJDb3JlOjpQYWdl
SWRlbnRpZmllCiAKICAgICBXZWJGcmFtZSogZnJhbWUgPSBmcmFtZUlEID8gV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCkgOiBwYWdlLT5tYWluV2ViRnJhbWUoKTsKICAg
ICBpZiAoIWZyYW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRF
cnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJy
b3JUeXBlLCBXVEY6Om51bGxvcHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgV2Vi
Q29yZTo6RnJhbWUqIGNvcmVGcmFtZSA9IGZyYW1lLT5jb3JlRnJhbWUoKTsKICAgICBpZiAoIWNv
cmVGcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JU
eXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlw
ZSwgV1RGOjpudWxsb3B0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFdlYkNvcmU6
OkZyYW1lKiBjb3JlQ2hpbGRGcmFtZSA9IGNvcmVGcmFtZS0+dHJlZSgpLnNjb3BlZENoaWxkKG5h
bWUpOwogICAgIGlmICghY29yZUNoaWxkRnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIFdURjo6bnVsbG9wdCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKICAgICBXZWJGcmFtZSogY2hpbGRGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZy
YW1lKCpjb3JlQ2hpbGRGcmFtZSk7CiAgICAgaWYgKCFjaGlsZEZyYW1lKSB7Ci0gICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCBXVEY6Om51bGxvcHQpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGOjpudWxsb3B0
LCBjaGlsZEZyYW1lLT5mcmFtZUlEKCkpOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9u
UHJveHk6OnJlc29sdmVQYXJlbnRGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQs
IHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5n
PiwgdWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvblByb3h5OjpyZXNvbHZlUGFyZW50RnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFn
ZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChPcHRpb25hbDxTdHJpbmc+LCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAgIGlmICghcGFnZSkgewogICAgICAg
ICBTdHJpbmcgd2luZG93Tm90Rm91bmRFcnJvclR5cGUgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUoSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6RXJyb3JNZXNzYWdlOjpXaW5kb3dOb3RGb3VuZCk7Ci0gICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIod2luZG93Tm90Rm91bmRFcnJvclR5cGUsIFdURjo6bnVsbG9wdCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTQ0MCwyMCArNDQwLDIwIEBAIHZvaWQgV2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZVBhcmVudEZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHBhZ2VJCiAKICAgICBXZWJGcmFtZSogZnJhbWUgPSBmcmFtZUlEID8gV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCkgOiBwYWdlLT5tYWluV2ViRnJhbWUoKTsK
ICAgICBpZiAoIWZyYW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91
bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5k
RXJyb3JUeXBlLCBXVEY6Om51bGxvcHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAg
V2ViRnJhbWUqIHBhcmVudEZyYW1lID0gZnJhbWUtPnBhcmVudEZyYW1lKCk7CiAgICAgaWYgKCFw
YXJlbnRGcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJy
b3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9y
VHlwZSwgV1RGOjpudWxsb3B0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFdURjo6bnVsbG9wdCwgcGFyZW50RnJhbWUtPmZyYW1lSUQoKSk7CiB9CiAK
LXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Zm9jdXNGcmFtZShXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYkF1dG9tYXRpb25T
ZXNzaW9uUHJveHk6OmZvY3VzRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBXZWJQYWdlKiBwYWdlID0g
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAgIGlmICghcGFnZSkK
QEAgLTUyOCw3ICs1MjgsNyBAQCBzdGF0aWMgV2ViQ29yZTo6RmxvYXRQb2ludCBjb252ZXJ0UG9p
bnRGcm9tRnJhbWVDbGllbnRUb1Jvb3RWaWV3KFdlYkNvcmU6OkZyYW1lVgogICAgIHJldHVybiBj
bGllbnRQb2ludDsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpjb21wdXRl
RWxlbWVudExheW91dChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIENv
b3JkaW5hdGVTeXN0ZW0gY29vcmRpbmF0ZVN5c3RlbSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChP
cHRpb25hbDxTdHJpbmc+LCBXZWJDb3JlOjpJbnRSZWN0LCBPcHRpb25hbDxXZWJDb3JlOjpJbnRQ
b2ludD4sIGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvblByb3h5Ojpjb21wdXRlRWxlbWVudExheW91dChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBw
YWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRs
ZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBDb29yZGluYXRlU3lzdGVtIGNvb3JkaW5h
dGVTeXN0ZW0sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29y
ZTo6SW50UmVjdCwgT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBib29sKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkud2ViUGFnZShwYWdlSUQpOwogICAgIGlmICghcGFnZSkgewpAQCAtNjM2LDcgKzYzNiw3IEBA
IHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Y29tcHV0ZUVsZW1lbnRMYXlvdXQoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgcGFnCiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGOjpudWxs
b3B0LCByZXN1bHRFbGVtZW50Qm91bmRzLCByZXN1bHRJblZpZXdDZW50ZXJQb2ludCwgaXNPYnNj
dXJlZCk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6c2VsZWN0T3B0aW9u
RWxlbWVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQs
IFN0cmluZyBub2RlSGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmlu
Zz4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5
OjpzZWxlY3RPcHRpb25FbGVtZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBh
Z2VJRCk7CiAgICAgaWYgKCFwYWdlKSB7CkBAIC03MDQsNyArNzA0LDcgQEAgc3RhdGljIFdlYkNv
cmU6OkludFJlY3Qgc25hcHNob3RSZWN0Rm9yU2NyZWVuc2hvdChXZWJQYWdlJiBwYWdlLCBXZWJD
b3JlOjpFbGVtZW4KICAgICByZXR1cm4geyB9OwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNz
aW9uUHJveHk6OnRha2VTY3JlZW5zaG90KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwg
dWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJ
Zk5lZWRlZCwgYm9vbCBjbGlwVG9WaWV3cG9ydCwgdWludDY0X3QgY2FsbGJhY2tJRCkKK3ZvaWQg
V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6dGFrZVNjcmVlbnNob3QoV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5n
IG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgYm9vbCBjbGlwVG9WaWV3
cG9ydCwgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKICAgICBTaGFyZWFibGVCaXRtYXA6OkhhbmRs
ZSBoYW5kbGU7CiAKQEAgLTc1Miw3ICs3NTIsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9u
UHJveHk6OnRha2VTY3JlZW5zaG90KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdQog
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNl
bmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpEaWRUYWtlU2NyZWVuc2hvdChjYWxs
YmFja0lELCBoYW5kbGUsIHsgfSksIDApOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9u
UHJveHk6OmdldENvb2tpZXNGb3JGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQs
IHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5n
PiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBX
ZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpnZXRDb29raWVzRm9yRnJhbWUoV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBWZWN0b3I8V2ViQ29yZTo6Q29v
a2llPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsKQEAg
LTc3Nyw3ICs3NzcsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmdldENvb2tp
ZXNGb3JGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSQogICAgIGNvbXBsZXRpb25I
YW5kbGVyKFdURjo6bnVsbG9wdCwgZm91bmRDb29raWVzKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5OjpkZWxldGVDb29raWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFn
ZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgY29va2llTmFtZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2Vi
QXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZGVsZXRlQ29va2llKFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBjb29r
aWVOYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4pPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAgICAgaWYgKCFwYWdlKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vz
c2lvblByb3h5LmgKaW5kZXggMTE2NzY0NTI3N2RiYzE5MzBhNWE3YTU5N2RjYmMyZGYzZWNmNTVj
OS4uYzk1OTQ4ZTE5OWQ2NDI0OTFjNzhjNDJjMmUxZjkyMTMyZGMyYTNlZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9t
YXRpb25TZXNzaW9uUHJveHkuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkNvbm5lY3Rp
b24uaCIKICNpbmNsdWRlICJDb29yZGluYXRlU3lzdGVtLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSlNCYXNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKQEAgLTUxLDcgKzUyLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaWRDbGVh
cldpbmRvd09iamVjdEZvckZyYW1lKFdlYkZyYW1lJik7CiAKLSAgICB2b2lkIGRpZEV2YWx1YXRl
SmF2YVNjcmlwdEZ1bmN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGNhbGxiYWNrSUQs
IGNvbnN0IFN0cmluZyYgcmVzdWx0LCBjb25zdCBTdHJpbmcmIGVycm9yVHlwZSk7CisgICAgdm9p
ZCBkaWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFN0cmluZyYgcmVzdWx0LCBjb25zdCBTdHJpbmcm
IGVycm9yVHlwZSk7CiAKIHByaXZhdGU6CiAgICAgSlNPYmplY3RSZWYgc2NyaXB0T2JqZWN0Rm9y
RnJhbWUoV2ViRnJhbWUmKTsKQEAgLTYxLDIyICs2MiwyMiBAQCBwcml2YXRlOgogICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJp
ZGU7CiAKICAgICAvLyBDYWxsZWQgYnkgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eSBtZXNzYWdl
cwotICAgIHZvaWQgZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgZnVuY3Rpb24sIFZlY3RvcjxT
dHJpbmc+IGFyZ3VtZW50cywgYm9vbCBleHBlY3RzSW1wbGljaXRDYWxsYmFja0FyZ3VtZW50LCBp
bnQgY2FsbGJhY2tUaW1lb3V0LCB1aW50NjRfdCBjYWxsYmFja0lEKTsKLSAgICB2b2lkIHJlc29s
dmVDaGlsZEZyYW1lV2l0aE9yZGluYWwoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90
IGZyYW1lSUQsIHVpbnQzMl90IG9yZGluYWwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9u
YWw8U3RyaW5nPiwgdWludDY0X3QpPiYmKTsKLSAgICB2b2lkIHJlc29sdmVDaGlsZEZyYW1lV2l0
aE5vZGVIYW5kbGUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFN0cmluZyYgbm9kZUhhbmRsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxT
dHJpbmc+LCB1aW50NjRfdCk+JiYpOwotICAgIHZvaWQgcmVzb2x2ZUNoaWxkRnJhbWVXaXRoTmFt
ZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5n
JiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90
KT4mJik7Ci0gICAgdm9pZCByZXNvbHZlUGFyZW50RnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3Ry
aW5nPiwgdWludDY0X3QpPiYmKTsKLSAgICB2b2lkIGZvY3VzRnJhbWUoV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgY29tcHV0ZUVsZW1lbnRMYXlv
dXQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2Rl
SGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIENvb3JkaW5hdGVTeXN0ZW0sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6SW50UmVjdCwg
T3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBib29sKT4mJik7Ci0gICAgdm9pZCBzZWxlY3RP
cHRpb25FbGVtZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBT
dHJpbmcgbm9kZUhhbmRsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+
KT4mJik7Ci0gICAgdm9pZCB0YWtlU2NyZWVuc2hvdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
dWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJ
Zk5lZWRlZCwgYm9vbCBjbGlwVG9WaWV3cG9ydCwgdWludDY0X3QgY2FsbGJhY2tJRCk7Ci0gICAg
dm9pZCBnZXRDb29raWVzRm9yRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90
IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgVmVjdG9y
PFdlYkNvcmU6OkNvb2tpZT4pPiYmKTsKLSAgICB2b2lkIGRlbGV0ZUNvb2tpZShXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIGNvb2tpZU5hbWUsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+JiYpOworICAgIHZvaWQgZXZhbHVh
dGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBmdW5jdGlvbiwgVmVjdG9yPFN0cmluZz4gYXJn
dW1lbnRzLCBib29sIGV4cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJndW1lbnQsIGludCBjYWxsYmFj
a1RpbWVvdXQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIHZvaWQgcmVzb2x2ZUNoaWxkRnJh
bWVXaXRoT3JkaW5hbChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCB1aW50MzJfdCBvcmRpbmFsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFs
PFN0cmluZz4sIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4pPiYmKTsKKyAgICB2
b2lkIHJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIE9wdGlvbmFsPFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcj4pPiYmKTsKKyAgICB2b2lkIHJlc29sdmVDaGlsZEZyYW1lV2l0aE5h
bWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4s
IE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4pPiYmKTsKKyAgICB2b2lkIHJlc29s
dmVQYXJlbnRGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIE9wdGlvbmFs
PFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4pPiYmKTsKKyAgICB2b2lkIGZvY3VzRnJhbWUoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9p
ZCBjb21wdXRlRWxlbWVudExheW91dChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lm
TmVlZGVkLCBDb29yZGluYXRlU3lzdGVtLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFs
PFN0cmluZz4sIFdlYkNvcmU6OkludFJlY3QsIE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50Piwg
Ym9vbCk+JiYpOworICAgIHZvaWQgc2VsZWN0T3B0aW9uRWxlbWVudChXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBTdHJpbmcgbm9kZUhhbmRsZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJik7CisgICAgdm9pZCB0YWtl
U2NyZWVuc2hvdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBib29s
IGNsaXBUb1ZpZXdwb3J0LCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIGdldENvb2tp
ZXNGb3JGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFZlY3RvcjxXZWJD
b3JlOjpDb29raWU+KT4mJik7CisgICAgdm9pZCBkZWxldGVDb29raWUoV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgU3RyaW5nIGNvb2tpZU5hbWUsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+JiYpOwogCiAgICAgU3RyaW5n
IG1fc2Vzc2lvbklkZW50aWZpZXI7CiAKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBKU09iamVjdFJl
Zj4gbV93ZWJGcmFtZVNjcmlwdE9iamVjdE1hcDsKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBWZWN0
b3I8dWludDY0X3Q+PiBtX3dlYkZyYW1lUGVuZGluZ0V2YWx1YXRlSmF2YVNjcmlwdENhbGxiYWNr
c01hcDsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgSlNPYmplY3RSZWY+
IG1fd2ViRnJhbWVTY3JpcHRPYmplY3RNYXA7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIFZlY3Rvcjx1aW50NjRfdD4+IG1fd2ViRnJhbWVQZW5kaW5nRXZhbHVhdGVKYXZh
U2NyaXB0Q2FsbGJhY2tzTWFwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vz
c2lvblByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRp
b24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgppbmRleCBkNzJmODlkMjYz
NTljZjAxY2NmZDUzMWU5NmUwMWY0NDQwOWFhZjU4Li5hN2YyZWQ1ZjEzZWYzM2I1YWYyZWQzZDhi
ODAzZTAxZWRhYWMyNzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0
b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHku
bWVzc2FnZXMuaW4KQEAgLTIxLDIxICsyMSwyMSBAQAogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBtZXNzYWdl
cyAtPiBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5IHsKLSAgICBFdmFsdWF0ZUphdmFTY3JpcHRG
dW5jdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQs
IFN0cmluZyBmdW5jdGlvbiwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRzLCBib29sIGV4cGVjdHNJ
bXBsaWNpdENhbGxiYWNrQXJndW1lbnQsIGludCBjYWxsYmFja1RpbWVvdXQsIHVpbnQ2NF90IGNh
bGxiYWNrSUQpCisgICAgRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5n
IGZ1bmN0aW9uLCBWZWN0b3I8U3RyaW5nPiBhcmd1bWVudHMsIGJvb2wgZXhwZWN0c0ltcGxpY2l0
Q2FsbGJhY2tBcmd1bWVudCwgaW50IGNhbGxiYWNrVGltZW91dCwgdWludDY0X3QgY2FsbGJhY2tJ
RCkKIAotICAgIFJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGluYWwoV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBvcmRpbmFsKSAtPiAoT3B0
aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIHVpbnQ2NF90IGZyYW1lSUQpIEFzeW5jCi0gICAgUmVz
b2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhhbmRsZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdl
SUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlKSAtPiAoT3B0aW9uYWw8U3Ry
aW5nPiBlcnJvclR5cGUsIHVpbnQ2NF90IGZyYW1lSUQpIEFzeW5jCi0gICAgUmVzb2x2ZUNoaWxk
RnJhbWVXaXRoTmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFN0cmluZyBuYW1lKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIHVpbnQ2
NF90IGZyYW1lSUQpIEFzeW5jCi0gICAgUmVzb2x2ZVBhcmVudEZyYW1lKFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCkgLT4gKE9wdGlvbmFsPFN0cmluZz4g
ZXJyb3JUeXBlLCB1aW50NjRfdCBmcmFtZUlEKSBBc3luYworICAgIFJlc29sdmVDaGlsZEZyYW1l
V2l0aE9yZGluYWwoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDMyX3Qgb3JkaW5hbCkgLT4gKE9wdGlvbmFsPFN0cmlu
Zz4gZXJyb3JUeXBlLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQp
IEFzeW5jCisgICAgUmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhhbmRsZShXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJp
bmcgbm9kZUhhbmRsZSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBPcHRpb25hbDxX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQpIEFzeW5jCisgICAgUmVzb2x2ZUNoaWxk
RnJhbWVXaXRoTmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgbmFtZSkgLT4gKE9wdGlvbmFsPFN0cmluZz4g
ZXJyb3JUeXBlLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQpIEFz
eW5jCisgICAgUmVzb2x2ZVBhcmVudEZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIC0+IChPcHRpb25hbDxTdHJpbmc+
IGVycm9yVHlwZSwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKSBB
c3luYwogCi0gICAgRm9jdXNGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVp
bnQ2NF90IGZyYW1lSUQpCisgICAgRm9jdXNGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBw
YWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogCi0gICAgQ29tcHV0ZUVs
ZW1lbnRMYXlvdXQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFt
ZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBlbnVt
OnVpbnQ4X3QgV2ViS2l0OjpDb29yZGluYXRlU3lzdGVtIGNvb3JkaW5hdGVTeXN0ZW0pIC0+IChP
cHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgV2ViQ29yZTo6SW50UmVjdCByZWN0LCBPcHRpb25h
bDxXZWJDb3JlOjpJbnRQb2ludD4gaW5WaWV3Q2VudGVyUG9pbnQsIGJvb2wgaXNPYnNjdXJlZCkg
QXN5bmMKKyAgICBDb21wdXRlRWxlbWVudExheW91dChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBw
YWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRs
ZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBlbnVtOnVpbnQ4X3QgV2ViS2l0OjpDb29y
ZGluYXRlU3lzdGVtIGNvb3JkaW5hdGVTeXN0ZW0pIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9y
VHlwZSwgV2ViQ29yZTo6SW50UmVjdCByZWN0LCBPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4g
aW5WaWV3Q2VudGVyUG9pbnQsIGJvb2wgaXNPYnNjdXJlZCkgQXN5bmMKIAotICAgIFNlbGVjdE9w
dGlvbkVsZW1lbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFt
ZUlELCBTdHJpbmcgbm9kZUhhbmRsZSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlKSBB
c3luYworICAgIFNlbGVjdE9wdGlvbkVsZW1lbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFn
ZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUp
IC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSkgQXN5bmMKIAotICAgIFRha2VTY3JlZW5z
aG90KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgU3Ry
aW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgYm9vbCBjbGlwVG9W
aWV3cG9ydCwgdWludDY0X3QgY2FsbGJhY2tJRCkKKyAgICBUYWtlU2NyZWVuc2hvdChXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBib29sIGNs
aXBUb1ZpZXdwb3J0LCB1aW50NjRfdCBjYWxsYmFja0lEKQogCi0gICAgR2V0Q29va2llc0ZvckZy
YW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCkgLT4g
KE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBjb29r
aWVzKSBBc3luYwotICAgIERlbGV0ZUNvb2tpZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdl
SUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBjb29raWVOYW1lKSAtPiAoT3B0aW9uYWw8U3Ry
aW5nPiBlcnJvclR5cGUpIEFzeW5jCisgICAgR2V0Q29va2llc0ZvckZyYW1lKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIC0+
IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29v
a2llcykgQXN5bmMKKyAgICBEZWxldGVDb29raWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFn
ZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIGNvb2tpZU5hbWUp
IC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSkgQXN5bmMKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9j
ZXNzUGx1Z0luRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tCmluZGV4IDA5OTc2MzcyZjA3
Mzc1N2VlZGIxNzQ5M2Q3MzFmYTBhM2Q0NjY4YzYuLjI1NzNlNmQ0ODU5ZTVlMGNmZTRhNjdmNWY0
ZjNiYmE2YjMwZmU4NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW0KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nl
c3NQbHVnSW5GcmFtZS5tbQpAQCAtNDgsNyArNDgsNyBAQCBAaW1wbGVtZW50YXRpb24gV0tXZWJQ
cm9jZXNzUGx1Z0luRnJhbWUgewogCiArIChpbnN0YW5jZXR5cGUpbG9va1VwRnJhbWVGcm9tSGFu
ZGxlOihfV0tGcmFtZUhhbmRsZSAqKWhhbmRsZQogewotICAgIHJldHVybiB3cmFwcGVyKFdlYktp
dDo6V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoaGFuZGxlLl9mcmFtZUlEKSk7Cisg
ICAgcmV0dXJuIHdyYXBwZXIoV2ViS2l0OjpXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFt
ZShXZWJDb3JlOjpmcmFtZUlkZW50aWZpZXJGcm9tSUQoaGFuZGxlLl9mcmFtZUlEKSkpOwogfQog
CiAtICh2b2lkKWRlYWxsb2MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0RnJhbWUuY3BwCmluZGV4IGRh
Njc5ZGIxYjQ4MmYyYjlmZjg3OGM0NGMwYzkwOGRjZjk3ZTc0Y2MuLmE0ZjUyYjJlNTBmYTJjMzdh
MTgyOWM5ZTRlMjZmNDg2OTBlNzU1Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRGcmFtZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdEZyYW1lLmNw
cApAQCAtNzQsNyArNzQsNyBAQCBndWludDY0IHdlYmtpdF9mcmFtZV9nZXRfaWQoV2ViS2l0RnJh
bWUqIGZyYW1lKQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19GUkFNRShm
cmFtZSksIDApOwogCi0gICAgcmV0dXJuIGZyYW1lLT5wcml2LT53ZWJGcmFtZS0+ZnJhbWVJRCgp
OworICAgIHJldHVybiBmcmFtZS0+cHJpdi0+d2ViRnJhbWUtPmZyYW1lSUQoKS50b1VJbnQ2NCgp
OwogfQogCiAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYkxvYWRlclN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYkxvYWRlclN0cmF0ZWd5LmNwcAppbmRleCBjNDhjZGQ4NTc5NGQ5MjE2OTk1MjBjMmQ4Mzhh
NWI2NzBmM2IyZmYxLi41ZGZjNDI1Nzg4NGJjMjkyYTRkYWU4YzQ0NWU5MmI3MzI3YTk2Y2EyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJh
dGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVy
U3RyYXRlZ3kuY3BwCkBAIC0xNTksNyArMTU5LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6
c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlciwgQ2FjaGVkUmVzb3UK
IAogICAgIFdlYlJlc291cmNlTG9hZGVyOjpUcmFja2luZ1BhcmFtZXRlcnMgdHJhY2tpbmdQYXJh
bWV0ZXJzOwogICAgIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQgPSBmcmFtZUxvYWRlckNsaWVu
dC5wYWdlSUQoKS52YWx1ZU9yKFBhZ2VJZGVudGlmaWVyIHsgfSk7Ci0gICAgdHJhY2tpbmdQYXJh
bWV0ZXJzLmZyYW1lSUQgPSBmcmFtZUxvYWRlckNsaWVudC5mcmFtZUlEKCkudmFsdWVPcigwKTsK
KyAgICB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCA9IGZyYW1lTG9hZGVyQ2xpZW50LmZyYW1l
SUQoKS52YWx1ZU9yKEZyYW1lSWRlbnRpZmllciB7IH0pOwogICAgIHRyYWNraW5nUGFyYW1ldGVy
cy5yZXNvdXJjZUlEID0gaWRlbnRpZmllcjsKICAgICBhdXRvIHNlc3Npb25JRCA9IGZyYW1lTG9h
ZGVyQ2xpZW50LnNlc3Npb25JRCgpOwogCkBAIC0xNjgsNyArMTY4LDcgQEAgdm9pZCBXZWJMb2Fk
ZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlciwg
Q2FjaGVkUmVzb3UKICAgICAvLyB0aGVuIHdlIHNob3VsZCByZW1lbWJlciB0aGUgUmVzb3VyY2VM
b2FkZXIgaW4gb3VyIHJlY29yZHMgYnV0IG5vdCBzY2hlZHVsZSBpdCBpbiB0aGUgTmV0d29ya1By
b2Nlc3MuCiAgICAgaWYgKHJlc291cmNlTG9hZGVyLmRvY3VtZW50TG9hZGVyKCktPnNjaGVkdWxl
QXJjaGl2ZUxvYWQocmVzb3VyY2VMb2FkZXIsIHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKSkpIHsK
ICAgICAgICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5nLCAiKFdlYlByb2Nlc3MpIFdlYkxvYWRlclN0
cmF0ZWd5OjpzY2hlZHVsZUxvYWQsIHVybCAnJXMnIHdpbGwgYmUgaGFuZGxlZCBhcyBhbiBhcmNo
aXZlIHJlc291cmNlLiIsIHJlc291cmNlTG9hZGVyLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOwotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2No
ZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBoYW5kbGVkIGFzIGFuIGFyY2hpdmUgcmVzb3VyY2UgKGZy
YW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJl
c291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2lu
Z1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlE
LCBpZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxv
YWRlciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgaGFuZGxlZCBhcyBhbiBhcmNoaXZlIHJl
c291cmNlIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUo
KSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRl
cnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsKICAgICAgICAgbV93ZWJSZXNvdXJj
ZUxvYWRlcnMuc2V0KGlkZW50aWZpZXIsIFdlYlJlc291cmNlTG9hZGVyOjpjcmVhdGUocmVzb3Vy
Y2VMb2FkZXIsIHRyYWNraW5nUGFyYW1ldGVycykpOwogICAgICAgICByZXR1cm47CiAgICAgfQpA
QCAtMTc2LDE0ICsxNzYsMTQgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2Fk
KFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlciwgQ2FjaGVkUmVzb3UKIAogICAgIGlmIChy
ZXNvdXJjZUxvYWRlci5kb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLm1h
eWJlTG9hZFJlc291cmNlKHJlc291cmNlTG9hZGVyLCByZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCks
IHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS51cmwoKSkpIHsKICAgICAgICAgTE9HKE5ldHdvcmtT
Y2hlZHVsaW5nLCAiKFdlYlByb2Nlc3MpIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQs
IHVybCAnJXMnIHdpbGwgYmUgbG9hZGVkIGZyb20gYXBwbGljYXRpb24gY2FjaGUuIiwgcmVzb3Vy
Y2VMb2FkZXIudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJl
IGxvYWRlZCBmcm9tIGFwcGxpY2F0aW9uIGNhY2hlIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIp
IiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJ
bnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7CisgICAgICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVS
TCB3aWxsIGJlIGxvYWRlZCBmcm9tIGFwcGxpY2F0aW9uIGNhY2hlIChmcmFtZSA9ICVwLCBwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIg
UFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBh
Z2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBp
ZGVudGlmaWVyKTsKICAgICAgICAgbV93ZWJSZXNvdXJjZUxvYWRlcnMuc2V0KGlkZW50aWZpZXIs
IFdlYlJlc291cmNlTG9hZGVyOjpjcmVhdGUocmVzb3VyY2VMb2FkZXIsIHRyYWNraW5nUGFyYW1l
dGVycykpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKHJlc291cmNlTG9hZGVy
LnJlcXVlc3QoKS51cmwoKS5wcm90b2NvbElzRGF0YSgpKSB7CiAgICAgICAgIExPRyhOZXR3b3Jr
U2NoZWR1bGluZywgIihXZWJQcm9jZXNzKSBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2Fk
LCB1cmwgJyVzJyB3aWxsIGJlIGxvYWRlZCBhcyBkYXRhLiIsIHJlc291cmNlTG9hZGVyLnVybCgp
LnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBsb2FkZWQgYXMgZGF0
YSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQg
IiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRy
YWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZy
YW1lSUQsIGlkZW50aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291
cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBsb2FkZWQgYXMgZGF0YSAoZnJh
bWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5n
UGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQu
dG9VSW50NjQoKSwgaWRlbnRpZmllcik7CiAgICAgICAgIHN0YXJ0TG9jYWxMb2FkKHJlc291cmNl
TG9hZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE5MSw3ICsxOTEsNyBAQCB2b2lk
IFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXImIHJlc291cmNl
TG9hZGVyLCBDYWNoZWRSZXNvdQogI2lmIFVTRShRVUlDS19MT09LKQogICAgIGlmIChpc1F1aWNr
TG9va1ByZXZpZXdVUkwocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnVybCgpKSkgewogICAgICAg
ICBMT0coTmV0d29ya1NjaGVkdWxpbmcsICIoV2ViUHJvY2VzcykgV2ViTG9hZGVyU3RyYXRlZ3k6
OnNjaGVkdWxlTG9hZCwgdXJsICclcycgd2lsbCBiZSBoYW5kbGVkIGFzIGEgUXVpY2tMb29rIHJl
c291cmNlLiIsIHJlc291cmNlTG9hZGVyLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwot
ICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVM
b2FkOiBVUkwgd2lsbCBiZSBoYW5kbGVkIGFzIGEgUXVpY2tMb29rIHJlc291cmNlIChmcmFtZSA9
ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJj
ZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJh
bWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgaWRl
bnRpZmllcik7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIs
ICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGhhbmRsZWQgYXMgYSBRdWlja0xvb2sgcmVzb3Vy
Y2UgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0
cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5m
cmFtZUlELnRvVUludDY0KCksIGlkZW50aWZpZXIpOwogICAgICAgICBzdGFydExvY2FsTG9hZChy
ZXNvdXJjZUxvYWRlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yMDIsNyArMjAyLDcg
QEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiBy
ZXNvdXJjZUxvYWRlciwgQ2FjaGVkUmVzb3UKICAgICAvLyBodHRwczovL2Jsb2dzLmdub21lLm9y
Zy9hbGV4bC8yMDEyLzAxLzI2L3Jlc291cmNlcy1pbi1nbGliLwogICAgIGlmIChyZXNvdXJjZUxv
YWRlci5yZXF1ZXN0KCkudXJsKCkucHJvdG9jb2xJcygicmVzb3VyY2UiKSkgewogICAgICAgICBM
T0coTmV0d29ya1NjaGVkdWxpbmcsICIoV2ViUHJvY2VzcykgV2ViTG9hZGVyU3RyYXRlZ3k6OnNj
aGVkdWxlTG9hZCwgdXJsICclcycgd2lsbCBiZSBoYW5kbGVkIGFzIGEgR1Jlc291cmNlLiIsIHJl
c291cmNlTG9hZGVyLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2ls
bCBiZSBoYW5kbGVkIGFzIGEgR1Jlc291cmNlIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwg
cmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2
NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7CisgICAgICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3
aWxsIGJlIGhhbmRsZWQgYXMgYSBHUmVzb3VyY2UgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiki
LCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUlu
dDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIGlkZW50aWZpZXIp
OwogICAgICAgICBzdGFydExvY2FsTG9hZChyZXNvdXJjZUxvYWRlcik7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CkBAIC0yMTIsMTEgKzIxMiwxMSBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpz
Y2hlZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTG9hZGVyLCBDYWNoZWRSZXNvdQog
ICAgIFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlcjo6c2luZ2xldG9uKCkuaGFuZGxlRmV0Y2gocmVz
b3VyY2VMb2FkZXIsIHNlc3Npb25JRCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBS
ZWRpcmVjdCwgW3RoaXMsIHRyYWNraW5nUGFyYW1ldGVycywgaWRlbnRpZmllciwgc2Vzc2lvbklE
LCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBtYXhpbXVtQnVmZmVy
aW5nVGltZSA9IG1heGltdW1CdWZmZXJpbmdUaW1lKHJlc291cmNlKSwgcmVzb3VyY2VMb2FkZXIg
PSBtYWtlUmVmKHJlc291cmNlTG9hZGVyKV0gKFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6UmVz
dWx0IHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChyZXN1bHQgIT0gU2VydmljZVdvcmtl
ckNsaWVudEZldGNoOjpSZXN1bHQ6OlVuaGFuZGxlZCkgewogICAgICAgICAgICAgTE9HKE5ldHdv
cmtTY2hlZHVsaW5nLCAiKFdlYlByb2Nlc3MpIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxv
YWQsIHVybCAnJXMnIHdpbGwgYmUgc2NoZWR1bGVkIHRocm91Z2ggU2VydmljZVdvcmtlciBoYW5k
bGUgZmV0Y2ggYWxnb3JpdGhtIiwgcmVzb3VyY2VMb2FkZXItPnVybCgpLnN0cmluZygpLmxhdGlu
MSgpLmRhdGEoKSk7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNl
TG9hZGVyLmdldCgpLCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBzY2hlZHVsZWQgdGhyb3Vn
aCBTZXJ2aWNlV29ya2VyIGhhbmRsZSBmZXRjaCBhbGdvcml0aG0gKGZyYW1lID0gJXAsIHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQ
Ukl1NjQgIikiLCByZXNvdXJjZUxvYWRlci0+ZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBh
Z2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7
CisgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLmdldCgp
LCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBzY2hlZHVsZWQgdGhyb3VnaCBTZXJ2aWNlV29y
a2VyIGhhbmRsZSBmZXRjaCBhbGdvcml0aG0gKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBy
ZXNvdXJjZUxvYWRlci0+ZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2
NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBpZiAocmVzb3VyY2VMb2Fk
ZXItPm9wdGlvbnMoKS5zZXJ2aWNlV29ya2Vyc01vZGUgPT0gU2VydmljZVdvcmtlcnNNb2RlOjpP
bmx5KSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHJlc291cmNl
TG9hZGVyLmdldCgpLCAic2NoZWR1bGVMb2FkOiB1bmFibGUgdG8gc2NoZWR1bGUgVVJMIHRocm91
Z2ggU2VydmljZVdvcmtlciBoYW5kbGUgZmV0Y2ggYWxnb3JpdGhtIChmcmFtZSA9ICVwLCBwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIg
UFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXItPmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5w
YWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIGlkZW50aWZpZXIp
OworICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRl
ci5nZXQoKSwgInNjaGVkdWxlTG9hZDogdW5hYmxlIHRvIHNjaGVkdWxlIFVSTCB0aHJvdWdoIFNl
cnZpY2VXb3JrZXIgaGFuZGxlIGZldGNoIGFsZ29yaXRobSAoZnJhbWUgPSAlcCwgcGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2
NCAiKSIsIHJlc291cmNlTG9hZGVyLT5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlE
LnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIGlkZW50
aWZpZXIpOwogICAgICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbcmVzb3VyY2VMb2FkZXIgPSBX
VEZNb3ZlKHJlc291cmNlTG9hZGVyKV0gewogICAgICAgICAgICAgICAgIGF1dG8gZXJyb3IgPSBp
bnRlcm5hbEVycm9yKHJlc291cmNlTG9hZGVyLT5yZXF1ZXN0KCkudXJsKCkpOwogICAgICAgICAg
ICAgICAgIGVycm9yLnNldFR5cGUoUmVzb3VyY2VFcnJvcjo6VHlwZTo6Q2FuY2VsbGF0aW9uKTsK
QEAgLTIyOCwxMyArMjI4LDEzIEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9h
ZChSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMb2FkZXIsIENhY2hlZFJlc291CiAgICAgICAgIGlm
ICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViTG9hZGVyU3RyYXRlZ3koKS50cnlMb2FkaW5n
VXNpbmdVUkxTY2hlbWVIYW5kbGVyKHJlc291cmNlTG9hZGVyKSkKICAgICAgICAgICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLndlYkxvYWRlclN0cmF0ZWd5KCkuc2NoZWR1bGVMb2FkRnJvbU5l
dHdvcmtQcm9jZXNzKHJlc291cmNlTG9hZGVyLmdldCgpLCByZXNvdXJjZUxvYWRlci0+cmVxdWVz
dCgpLCB0cmFja2luZ1BhcmFtZXRlcnMsIHNlc3Npb25JRCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9u
SFRUUFNUb0hUVFBSZWRpcmVjdCwgbWF4aW11bUJ1ZmZlcmluZ1RpbWUpOwogICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLmdldCgp
LCAic2NoZWR1bGVMb2FkOiBVUkwgbm90IGhhbmRsZWQgYnkgYW55IGhhbmRsZXJzIChmcmFtZSA9
ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJj
ZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXItPmZyYW1lKCksIHRyYWNraW5nUGFy
YW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIGlk
ZW50aWZpZXIpOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxv
YWRlci5nZXQoKSwgInNjaGVkdWxlTG9hZDogVVJMIG5vdCBoYW5kbGVkIGJ5IGFueSBoYW5kbGVy
cyAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQg
IiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLT5mcmFtZSgpLCB0
cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5m
cmFtZUlELnRvVUludDY0KCksIGlkZW50aWZpZXIpOwogICAgIH0pOwogI2Vsc2UKICAgICBpZiAo
IXRyeUxvYWRpbmdVc2luZ1VSTFNjaGVtZUhhbmRsZXIocmVzb3VyY2VMb2FkZXIpKQogICAgICAg
ICBzY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MocmVzb3VyY2VMb2FkZXIsIHJlc291cmNl
TG9hZGVyLnJlcXVlc3QoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLCBzZXNzaW9uSUQsIHNob3VsZENs
ZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIG1heGltdW1CdWZmZXJpbmdUaW1lKHJl
c291cmNlKSk7CiAgICAgZWxzZQotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291
cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgbm90IGhhbmRsZWQgYnkgYW55IGhhbmRsZXJz
IChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAi
LCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJh
Y2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJh
bWVJRCwgaWRlbnRpZmllcik7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3Vy
Y2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCBub3QgaGFuZGxlZCBieSBhbnkgaGFuZGxlcnMg
KGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFj
a2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFt
ZUlELnRvVUludDY0KCksIGlkZW50aWZpZXIpOwogI2VuZGlmCiB9CiAKQEAgLTMyNSw3ICszMjUs
NyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nl
c3MoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTAogICAgIGlmIChsb2FkUGFyYW1ldGVycy5vcHRp
b25zLm1vZGUgIT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOYXZpZ2F0ZSkgewogICAgICAgICBBU1NF
UlQobG9hZFBhcmFtZXRlcnMuc291cmNlT3JpZ2luKTsKICAgICAgICAgaWYgKCFsb2FkUGFyYW1l
dGVycy5zb3VyY2VPcmlnaW4pIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FM
TE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IG5vIHNvdXJjZU9yaWdpbiAoZnJh
bWUgPSAlcCwgcHJpb3JpdHkgPSAlZCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAl
IiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZy
YW1lKCksIHN0YXRpY19jYXN0PGludD4ocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnByaW9yaXR5
KCkpLCBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbG9hZFBhcmFtZXRlcnMu
d2ViRnJhbWVJRCwgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllcik7CisgICAgICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBu
byBzb3VyY2VPcmlnaW4gKGZyYW1lID0gJXAsIHByaW9yaXR5ID0gJWQsIHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiki
LCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlTG9hZGVy
LnJlcXVlc3QoKS5wcmlvcml0eSgpKSwgbG9hZFBhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0
KCksIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbG9hZFBhcmFtZXRlcnMu
aWRlbnRpZmllcik7CiAgICAgICAgICAgICBzY2hlZHVsZUludGVybmFsbHlGYWlsZWRMb2FkKHJl
c291cmNlTG9hZGVyKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMzQ4LDkg
KzM0OCw5IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZEZyb21OZXR3b3Jr
UHJvY2VzcyhSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMCiAKICAgICBBU1NFUlQoKGxvYWRQYXJh
bWV0ZXJzLndlYlBhZ2VJRCAmJiBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlEKSB8fCBsb2FkUGFy
YW1ldGVycy5jbGllbnRDcmVkZW50aWFsUG9saWN5ID09IENsaWVudENyZWRlbnRpYWxQb2xpY3k6
OkNhbm5vdEFza0NsaWVudEZvckNyZWRlbnRpYWxzKTsKIAotICAgIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFJlc291cmNlIGlzIGJlaW5nIHNj
aGVkdWxlZCB3aXRoIHRoZSBOZXR3b3JrUHJvY2VzcyAoZnJhbWUgPSAlcCwgcHJpb3JpdHkgPSAl
ZCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJ
RCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHN0YXRpY19jYXN0PGlu
dD4ocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnByaW9yaXR5KCkpLCBsb2FkUGFyYW1ldGVycy53
ZWJQYWdlSUQudG9VSW50NjQoKSwgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRCwgbG9hZFBhcmFt
ZXRlcnMuaWRlbnRpZmllcik7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxv
YWRlciwgInNjaGVkdWxlTG9hZDogUmVzb3VyY2UgaXMgYmVpbmcgc2NoZWR1bGVkIHdpdGggdGhl
IE5ldHdvcmtQcm9jZXNzIChmcmFtZSA9ICVwLCBwcmlvcml0eSA9ICVkLCBwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIp
IiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgc3RhdGljX2Nhc3Q8aW50PihyZXNvdXJjZUxvYWRl
ci5yZXF1ZXN0KCkucHJpb3JpdHkoKSksIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2
NCgpLCBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJz
LmlkZW50aWZpZXIpOwogICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpTY2hlZHVsZVJlc291cmNlTG9hZChsb2FkUGFyYW1l
dGVycyksIDApKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQocmVzb3Vy
Y2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVuYWJsZSB0byBzY2hlZHVsZSByZXNvdXJjZSB3aXRo
IHRoZSBOZXR3b3JrUHJvY2VzcyAoZnJhbWUgPSAlcCwgcHJpb3JpdHkgPSAlZCwgcGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2
NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHN0YXRpY19jYXN0PGludD4ocmVzb3VyY2VM
b2FkZXIucmVxdWVzdCgpLnByaW9yaXR5KCkpLCBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQudG9V
SW50NjQoKSwgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRCwgbG9hZFBhcmFtZXRlcnMuaWRlbnRp
Zmllcik7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQocmVzb3VyY2VMb2Fk
ZXIsICJzY2hlZHVsZUxvYWQ6IFVuYWJsZSB0byBzY2hlZHVsZSByZXNvdXJjZSB3aXRoIHRoZSBO
ZXR3b3JrUHJvY2VzcyAoZnJhbWUgPSAlcCwgcHJpb3JpdHkgPSAlZCwgcGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIs
IHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHN0YXRpY19jYXN0PGludD4ocmVzb3VyY2VMb2FkZXIu
cmVxdWVzdCgpLnByaW9yaXR5KCkpLCBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQo
KSwgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVycy5p
ZGVudGlmaWVyKTsKICAgICAgICAgLy8gV2UgcHJvYmFibHkgZmFpbGVkIHRvIHNjaGVkdWxlIHRo
aXMgbG9hZCB3aXRoIHRoZSBOZXR3b3JrUHJvY2VzcyBiZWNhdXNlIGl0IGhhZCBjcmFzaGVkLgog
ICAgICAgICAvLyBUaGlzIGxvYWQgd2lsbCBuZXZlciBzdWNjZWVkIHNvIHdlIHdpbGwgc2NoZWR1
bGUgaXQgdG8gZmFpbCBhc3luY2hyb25vdXNseS4KICAgICAgICAgc2NoZWR1bGVJbnRlcm5hbGx5
RmFpbGVkTG9hZChyZXNvdXJjZUxvYWRlcik7CkBAIC01MjAsMTggKzUyMCwxOCBAQCB2b2lkIFdl
YkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KEZyYW1lTG9hZGVyJiBm
cmFtZUxvYWRlciwgdW5zaQogICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSB3ZWJGcmFtZSA/IHdlYkZy
YW1lLT5wYWdlKCkgOiBudWxscHRyOwogCiAgICAgYXV0byBwYWdlSUQgPSB3ZWJQYWdlID8gd2Vi
UGFnZS0+cGFnZUlEKCkgOiBQYWdlSWRlbnRpZmllciB7IH07Ci0gICAgYXV0byBmcmFtZUlEID0g
d2ViRnJhbWUgPyB3ZWJGcmFtZS0+ZnJhbWVJRCgpIDogMDsKKyAgICBhdXRvIGZyYW1lSUQgPSB3
ZWJGcmFtZSA/IHdlYkZyYW1lLT5mcmFtZUlEKCkgOiBGcmFtZUlkZW50aWZpZXIgeyB9OwogICAg
IGF1dG8gc2Vzc2lvbklEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogUEFMOjpT
ZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKIAogICAgIGF1dG8qIGRvY3VtZW50ID0gZnJh
bWVMb2FkZXIuZnJhbWUoKS5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQpIHsKLSAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChzZXNzaW9uSUQsICJsb2FkUmVzb3VyY2VT
eW5jaHJvbm91c2x5OiBubyBkb2N1bWVudCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICVsdSkiLCBwYWdlSUQudG9VSW50NjQoKSwgZnJh
bWVJRCwgcmVzb3VyY2VMb2FkSWRlbnRpZmllcik7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
X0lGX0FMTE9XRUQoc2Vzc2lvbklELCAibG9hZFJlc291cmNlU3luY2hyb25vdXNseTogbm8gZG9j
dW1lbnQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlbHUpIiwgcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSwgcmVz
b3VyY2VMb2FkSWRlbnRpZmllcik7CiAgICAgICAgIGVycm9yID0gaW50ZXJuYWxFcnJvcihyZXF1
ZXN0LnVybCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChhdXRvIHN5bmNM
b2FkUmVzdWx0ID0gdHJ5TG9hZGluZ1N5bmNocm9ub3VzbHlVc2luZ1VSTFNjaGVtZUhhbmRsZXIo
ZnJhbWVMb2FkZXIsIHJlc291cmNlTG9hZElkZW50aWZpZXIsIHJlcXVlc3QpKSB7Ci0gICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoc2Vzc2lvbklELCAibG9hZFJlc291cmNlU3lu
Y2hyb25vdXNseTogZmFpbGVkIGNhbGxpbmcgdHJ5TG9hZGluZ1N5bmNocm9ub3VzbHlVc2luZ1VS
TFNjaGVtZUhhbmRsZXIgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlbHUsIGVycm9yID0gJWQpIiwgcGFnZUlELnRvVUludDY0KCksIGZy
YW1lSUQsIHJlc291cmNlTG9hZElkZW50aWZpZXIsIHN5bmNMb2FkUmVzdWx0LT5lcnJvci5lcnJv
ckNvZGUoKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoc2Vzc2lvbklE
LCAibG9hZFJlc291cmNlU3luY2hyb25vdXNseTogZmFpbGVkIGNhbGxpbmcgdHJ5TG9hZGluZ1N5
bmNocm9ub3VzbHlVc2luZ1VSTFNjaGVtZUhhbmRsZXIgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlbHUsIGVycm9yID0gJWQpIiwgcGFn
ZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSwgcmVzb3VyY2VMb2FkSWRlbnRpZmll
ciwgc3luY0xvYWRSZXN1bHQtPmVycm9yLmVycm9yQ29kZSgpKTsKICAgICAgICAgZXJyb3IgPSBX
VEZNb3ZlKHN5bmNMb2FkUmVzdWx0LT5lcnJvcik7CiAgICAgICAgIHJlc3BvbnNlID0gV1RGTW92
ZShzeW5jTG9hZFJlc3VsdC0+cmVzcG9uc2UpOwogICAgICAgICBkYXRhID0gV1RGTW92ZShzeW5j
TG9hZFJlc3VsdC0+ZGF0YSk7CkBAIC01NjksNyArNTY5LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJh
dGVneTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShGcmFtZUxvYWRlciYgZnJhbWVMb2FkZXIs
IHVuc2kKICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Bvb2w6OlNldFdlYlByb2Nlc3NIYXNV
cGxvYWRzIHsgUHJvY2Vzczo6aWRlbnRpZmllcigpIH0sIDApOwogCiAgICAgaWYgKCFXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0
aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQ
ZXJmb3JtU3luY2hyb25vdXNMb2FkKGxvYWRQYXJhbWV0ZXJzKSwgTWVzc2FnZXM6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQZXJmb3JtU3luY2hyb25vdXNMb2FkOjpSZXBseShlcnJv
ciwgcmVzcG9uc2UsIGRhdGEpLCAwKSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9B
TExPV0VEKHNlc3Npb25JRCwgImxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6IGZhaWxlZCBzZW5k
aW5nIHN5bmNocm9ub3VzIG5ldHdvcmsgcHJvY2VzcyBtZXNzYWdlIChwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJWx1KSIsIHBhZ2VJRC50
b1VJbnQ2NCgpLCBmcmFtZUlELCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKTsKKyAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChzZXNzaW9uSUQsICJsb2FkUmVzb3VyY2VTeW5jaHJv
bm91c2x5OiBmYWlsZWQgc2VuZGluZyBzeW5jaHJvbm91cyBuZXR3b3JrIHByb2Nlc3MgbWVzc2Fn
ZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJ
RCA9ICVsdSkiLCBwYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpLCByZXNvdXJj
ZUxvYWRJZGVudGlmaWVyKTsKICAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSB3ZWJQYWdlID8gd2Vi
UGFnZS0+Y29yZVBhZ2UoKSA6IG51bGxwdHIpCiAgICAgICAgICAgICBwYWdlLT5kaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlKFdlYkNvcmU6OkRpYWdub3N0aWNM
b2dnaW5nS2V5czo6aW50ZXJuYWxFcnJvcktleSgpLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2lu
Z0tleXM6OnN5bmNocm9ub3VzTWVzc2FnZUZhaWxlZEtleSgpLCBXZWJDb3JlOjpTaG91bGRTYW1w
bGU6Ok5vKTsKICAgICAgICAgcmVzcG9uc2UgPSBSZXNvdXJjZVJlc3BvbnNlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5j
cHAKaW5kZXggODhiZDUzYmYxZjhmYjczNmViMTczZWY2NGYxZTMwM2QxYmIxMDBjMS4uZmE1Mzky
NWViNjhmMDQyZmVjNzliZjM4ODYwYjI3NjAzMjVmYjUxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcApAQCAtODgs
MTYgKzg4LDE2IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChSZXNv
dXJjZVJlcXVlc3QmJiBwcm9wb3NlZFJlcXVlc3QsIFJlc291CiAgICAgUmVmPFdlYlJlc291cmNl
TG9hZGVyPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKIAogICAgIExPRyhOZXR3b3JrLCAiKFdlYlBy
b2Nlc3MpIFdlYlJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QgdG8gJyVzJyIsIHByb3Bv
c2VkUmVxdWVzdC51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwotICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoIndpbGxTZW5kUmVxdWVzdDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNr
aW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJh
bWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgid2lsbFNlbmRSZXF1ZXN0OiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQ
YXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlE
LnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwogCiAgICAgaWYg
KG1fY29yZUxvYWRlci0+ZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS5t
YXliZUxvYWRGYWxsYmFja0ZvclJlZGlyZWN0KG1fY29yZUxvYWRlci5nZXQoKSwgcHJvcG9zZWRS
ZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKSkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKCJ3aWxsU2VuZFJlcXVlc3Q6IGV4aXRpbmcgZWFybHkgYmVjYXVzZSBtYXliZUxvYWRGYWxs
YmFja0ZvclJlZGlyZWN0IHJldHVybmVkIGZhbHNlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2lu
Z1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1l
SUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOworICAgICAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKCJ3aWxsU2VuZFJlcXVlc3Q6IGV4aXRpbmcgZWFybHkgYmVjYXVzZSBtYXli
ZUxvYWRGYWxsYmFja0ZvclJlZGlyZWN0IHJldHVybmVkIGZhbHNlIChwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwg
bV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0
ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBtX2NvcmVMb2FkZXItPndpbGxTZW5kUmVx
dWVzdChXVEZNb3ZlKHByb3Bvc2VkUmVxdWVzdCksIHJlZGlyZWN0UmVzcG9uc2UsIFt0aGlzLCBw
cm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0oUmVzb3VyY2VSZXF1ZXN0JiYg
cmVxdWVzdCkgewogICAgICAgICBpZiAoIW1fY29yZUxvYWRlciB8fCAhbV9jb3JlTG9hZGVyLT5p
ZGVudGlmaWVyKCkpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIndpbGxT
ZW5kUmVxdWVzdDogZXhpdGluZyBlYXJseSBiZWNhdXNlIG5vIGNvcmVsb2FkZXIgb3IgaWRlbnRp
ZmllciAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3Vy
Y2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2
NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5y
ZXNvdXJjZUlEKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIndpbGxTZW5k
UmVxdWVzdDogZXhpdGluZyBlYXJseSBiZWNhdXNlIG5vIGNvcmVsb2FkZXIgb3IgaWRlbnRpZmll
ciAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJ
RCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgp
LCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJh
bWV0ZXJzLnJlc291cmNlSUQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAg
LTExMywxMiArMTEzLDEyIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFNlbmREYXRhKHVp
bnQ2NF90IGJ5dGVzU2VudCwgdWludDY0X3QgdG90YWxCeXRlc1RvQmVTCiB2b2lkIFdlYlJlc291
cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UsIGJvb2wgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpCiB7CiAg
ICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2Vp
dmVSZXNwb25zZSBmb3IgJyVzJy4gU3RhdHVzICVkLiIsIG1fY29yZUxvYWRlci0+dXJsKCkuc3Ry
aW5nKCkubGF0aW4xKCkuZGF0YSgpLCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpKTsKLSAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6IChwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIs
IHN0YXR1cyA9ICVkKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBt
X3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJj
ZUlELCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9
ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIHN0YXR1cyA9ICVkKSIsIG1f
dHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVy
cy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQsIHJl
c3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkpOwogCiAgICAgUmVmPFdlYlJlc291cmNlTG9hZGVyPiBw
cm90ZWN0ZWRUaGlzKCp0aGlzKTsKIAogICAgIGlmIChtX2NvcmVMb2FkZXItPmRvY3VtZW50TG9h
ZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCkubWF5YmVMb2FkRmFsbGJhY2tGb3JSZXNwb25z
ZShtX2NvcmVMb2FkZXIuZ2V0KCksIHJlc3BvbnNlKSkgewotICAgICAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6IG5vdCBjb250aW51aW5nIGxvYWQgYmVjYXVz
ZSB0aGUgY29udGVudCBpcyBhbHJlYWR5IGNhY2hlZCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZy
YW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tp
bmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFt
ZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKKyAgICAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiBub3QgY29udGludWluZyBsb2FkIGJl
Y2F1c2UgdGhlIGNvbnRlbnQgaXMgYWxyZWFkeSBjYWNoZWQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3Ry
YWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMu
ZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTM1LDcgKzEzNSw3IEBAIHZvaWQgV2ViUmVzb3Vy
Y2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSwgYm9vCiAgICAgICAgICAgICBpZiAobV9jb3JlTG9hZGVyICYmIG1fY29yZUxvYWRlci0+
aWRlbnRpZmllcigpKQogICAgICAgICAgICAgICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6Q29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKSk7CiAgICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJl
c3BvbnNlOiBub3QgY29udGludWluZyBsb2FkIGJlY2F1c2Ugbm8gY29yZUxvYWRlciBvciBubyBJ
RCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJ
RCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgp
LCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNv
dXJjZUlEKTsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNl
aXZlUmVzcG9uc2U6IG5vdCBjb250aW51aW5nIGxvYWQgYmVjYXVzZSBubyBjb3JlTG9hZGVyIG9y
IG5vIElEIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNv
dXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUlu
dDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2lu
Z1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CiAgICAgICAgIH07CiAgICAgfQogCkBAIC0xNDgsNyAr
MTQ4LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgSVBD
OjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBpbnQ2NF90IGUKICAgICBBU1NFUlRfV0lUSF9NRVNTQUdF
KCFtX2lzUHJvY2Vzc2luZ05ldHdvcmtSZXNwb25zZSwgIk5ldHdvcmsgcHJvY2VzcyBzaG91bGQg
bm90IHNlbmQgZGF0YSB1bnRpbCB3ZSd2ZSB2YWxpZGF0ZWQgdGhlIHJlc3BvbnNlIik7CiAKICAg
ICBpZiAoIW1fbnVtQnl0ZXNSZWNlaXZlZCkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKCJkaWRSZWNlaXZlRGF0YTogU3RhcnRlZCByZWNlaXZpbmcgZGF0YSAocGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAi
KSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFy
YW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKKyAgICAg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZURhdGE6IFN0YXJ0ZWQgcmVjZWl2
aW5nIGRhdGEgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJl
c291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9V
SW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNr
aW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKICAgICB9CiAgICAgbV9udW1CeXRlc1JlY2VpdmVk
ICs9IGRhdGEuc2l6ZSgpOwogCkBAIC0xNTgsNyArMTU4LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxv
YWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBpbnQ2
NF90IGUKIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaFJlc291cmNlTG9hZChjb25z
dCBOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMb2FkTWV0cmljcykKIHsKICAgICBMT0coTmV0
d29yaywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VM
b2FkIGZvciAnJXMnIiwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRh
KCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZpbmlzaFJlc291cmNlTG9hZDog
KHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQg
PSAlIiBQUkl1NjQgIiwgbGVuZ3RoID0gJXpkKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJ
RC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFy
YW1ldGVycy5yZXNvdXJjZUlELCBtX251bUJ5dGVzUmVjZWl2ZWQpOworICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoImRpZEZpbmlzaFJlc291cmNlTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgbGVuZ3Ro
ID0gJXpkKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNr
aW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJl
c291cmNlSUQsIG1fbnVtQnl0ZXNSZWNlaXZlZCk7CiAKICAgICBBU1NFUlRfV0lUSF9NRVNTQUdF
KCFtX2lzUHJvY2Vzc2luZ05ldHdvcmtSZXNwb25zZSwgIkxvYWQgc2hvdWxkIG5vdCBiZSBhYmxl
IHRvIGZpbmlzaCBiZWZvcmUgd2UndmUgdmFsaWRhdGVkIHRoZSByZXNwb25zZSIpOwogICAgIG1f
Y29yZUxvYWRlci0+ZGlkRmluaXNoTG9hZGluZyhuZXR3b3JrTG9hZE1ldHJpY3MpOwpAQCAtMTY3
LDcgKzE2Nyw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaFJlc291cmNlTG9h
ZChjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMCiB2b2lkIFdlYlJlc291cmNlTG9h
ZGVyOjpkaWRGYWlsUmVzb3VyY2VMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewog
ICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9hZGVyOjpkaWRGYWls
UmVzb3VyY2VMb2FkIGZvciAnJXMnIiwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRp
bjEoKS5kYXRhKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZhaWxSZXNvdXJj
ZUxvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNv
dXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUlu
dDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJz
LnJlc291cmNlSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZhaWxSZXNvdXJj
ZUxvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNv
dXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUlu
dDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2lu
Z1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CiAKICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFtX2lz
UHJvY2Vzc2luZ05ldHdvcmtSZXNwb25zZSwgIkxvYWQgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIGZp
bmlzaCBiZWZvcmUgd2UndmUgdmFsaWRhdGVkIHRoZSByZXNwb25zZSIpOwogCkBAIC0xNzksNyAr
MTc5LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbFJlc291cmNlTG9hZChjb25z
dCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEJsb2Nr
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKQogewogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nl
c3MpIFdlYlJlc291cmNlTG9hZGVyOjpkaWRCbG9ja0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGZv
ciAnJXMnIiwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwot
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEJsb2NrQXV0aGVudGljYXRpb25DaGFsbGVu
Z2U6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJj
ZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0
KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJl
c291cmNlSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEJsb2NrQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2U6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2
NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFn
ZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwg
bV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CiAKICAgICBtX2NvcmVMb2FkZXItPmRp
ZEJsb2NrQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKTsKIH0KQEAgLTE4Nyw3ICsxODcsNyBAQCB2
b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRCbG9ja0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCkK
IHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OnN0b3BMb2FkaW5nQWZ0ZXJYRnJhbWVPcHRpb25zT3JD
b250ZW50U2VjdXJpdHlQb2xpY3lEZW5pZWQoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UpCiB7CiAgICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6
OnN0b3BMb2FkaW5nQWZ0ZXJYRnJhbWVPcHRpb25zT3JDb250ZW50U2VjdXJpdHlQb2xpY3lEZW5p
ZWQgZm9yICclcyciLCBtX2NvcmVMb2FkZXItPnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEo
KSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RvcExvYWRpbmdBZnRlclhGcmFtZU9w
dGlvbnNPckNvbnRlbnRTZWN1cml0eVBvbGljeURlbmllZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3Ry
YWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMu
ZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgic3RvcExvYWRpbmdBZnRlclhGcmFtZU9wdGlvbnNPckNvbnRlbnRTZWN1
cml0eVBvbGljeURlbmllZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5w
YWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgp
LCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKIAogICAgIG1fY29yZUxvYWRlci0+
ZG9jdW1lbnRMb2FkZXIoKS0+c3RvcExvYWRpbmdBZnRlclhGcmFtZU9wdGlvbnNPckNvbnRlbnRT
ZWN1cml0eVBvbGljeURlbmllZChtX2NvcmVMb2FkZXItPmlkZW50aWZpZXIoKSwgcmVzcG9uc2Up
OwogfQpAQCAtMTk2LDEzICsxOTYsMTMgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6c3RvcExv
YWRpbmdBZnRlclhGcmFtZU9wdGlvbnNPckNvbnRlbnRTZWN1cml0eVBvbGljeURlbmkKIHZvaWQg
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNvdXJjZShjb25zdCBTaGFyZWFibGVSZXNv
dXJjZTo6SGFuZGxlJiBoYW5kbGUpCiB7CiAgICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2Vzcykg
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNvdXJjZSBmb3IgJyVzJyIsIG1fY29yZUxv
YWRlci0+dXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzb3VyY2U6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2lu
Z1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1l
SUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOworICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoImRpZFJlY2VpdmVSZXNvdXJjZTogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5n
UGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJ
RC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKIAogICAgIFJl
ZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IGhhbmRsZS50cnlXcmFwSW5TaGFyZWRCdWZmZXIo
KTsKIAogICAgIGlmICghYnVmZmVyKSB7CiAgICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIGNy
ZWF0ZSBidWZmZXIgZnJvbSBTaGFyZWFibGVSZXNvdXJjZSBzZW50IGZyb20gdGhlIG5ldHdvcmsg
cHJvY2Vzcy4iKTsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJl
c291cmNlOiBVbmFibGUgdG8gY3JlYXRlIFNoYXJlZEJ1ZmZlciAocGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1f
dHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVy
cy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKKyAgICAgICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc291cmNlOiBVbmFibGUgdG8gY3JlYXRl
IFNoYXJlZEJ1ZmZlciAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQg
IiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJ
RC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIG1f
dHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwogICAgICAgICBpZiAoYXV0byogZnJhbWUg
PSBtX2NvcmVMb2FkZXItPmZyYW1lKCkpIHsKICAgICAgICAgICAgIGlmIChhdXRvKiBwYWdlID0g
ZnJhbWUtPnBhZ2UoKSkKICAgICAgICAgICAgICAgICBwYWdlLT5kaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlKFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5
czo6aW50ZXJuYWxFcnJvcktleSgpLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmNy
ZWF0ZVNoYXJlZEJ1ZmZlckZhaWxlZEtleSgpLCBXZWJDb3JlOjpTaG91bGRTYW1wbGU6Ok5vKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNl
TG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxv
YWRlci5oCmluZGV4IDU4NjU0MzcxOGU1ZTgzODhiOGI0MWFiMDIwMzdhYzc2ZTc4NjkzN2MuLjlj
MTE0N2RhMDUxNTNkZDdhYzQ0YWYzMTU4MWUyMjFiNjliZTkyNGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaApAQCAtMjgs
NiArMjgsNyBAQAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZXNzYWdlU2Vu
ZGVyLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlUmVzb3VyY2UuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAg
LTUyLDcgKzUzLDcgQEAgY2xhc3MgV2ViUmVzb3VyY2VMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRl
ZDxXZWJSZXNvdXJjZUxvYWRlcj4sIHB1YmxpYyBJUEM6Ok1lc3MKIHB1YmxpYzoKICAgICBzdHJ1
Y3QgVHJhY2tpbmdQYXJhbWV0ZXJzIHsKICAgICAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
cGFnZUlEOwotICAgICAgICB1aW50NjRfdCBmcmFtZUlEIHsgMCB9OworICAgICAgICBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRDsKICAgICAgICAgUmVzb3VyY2VMb2FkSWRlbnRpZmll
ciByZXNvdXJjZUlEIHsgMCB9OwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uLmNwcAppbmRleCA2ZmMwOWM0ZjY1YjI0NWI2MGJmNGQ0ZjU5N2E5ZjkwYWQ0ZDBhYWY5Li40
OWQyMGM3YzQ5YzAyYWE5NTlhYTRhZTRkOWVlYzhmZTgzYzVmZTdjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBAIC03Myw3ICs3Myw3IEBAIHN0YXRpYyBjb25zdCBTZWNv
bmRzIHN5bmNXb3JrZXJUZXJtaW5hdGlvblRpbWVvdXQgeyAxMDBfbXMgfTsgLy8gT25seSB1c2Vk
IGJ5IGxhCiAKIGNsYXNzIFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudCBmaW5hbCA6IHB1
YmxpYyBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBTZXJ2aWNlV29ya2Vy
RnJhbWVMb2FkZXJDbGllbnQoV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24sIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFn
ZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCkKKyAgICBTZXJ2
aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQoV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgcGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1c2Vy
QWdlbnQpCiAgICAgICAgIDogbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCiAgICAgICAgICwgbV9z
ZXNzaW9uSUQoc2Vzc2lvbklEKQogICAgICAgICAsIG1fcGFnZUlEKHBhZ2VJRCkKQEAgLTk2LDEz
ICs5NiwxMyBAQCBwcml2YXRlOgogCiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KICAgICBPcHRpb25hbDxXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllcj4gcGFnZUlEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9wYWdlSUQ7IH0K
LSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
ZnJhbWVJRDsgfQorICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJ
RCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZnJhbWVJRDsgfQogICAgIFN0cmluZyB1c2VyQWdl
bnQoY29uc3QgVVJMJikgZmluYWwgeyByZXR1cm4gbV91c2VyQWdlbnQ7IH0KIAogICAgIFdlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uJiBtX2Nvbm5lY3Rpb247CiAgICAgUEFMOjpTZXNzaW9u
SUQgbV9zZXNzaW9uSUQ7Ci0gICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV9wYWdlSUQ7Ci0g
ICAgdWludDY0X3QgbV9mcmFtZUlEIHsgMCB9OworICAgIFBhZ2VJZGVudGlmaWVyIG1fcGFnZUlE
OworICAgIEZyYW1lSWRlbnRpZmllciBtX2ZyYW1lSUQ7CiAgICAgU3RyaW5nIG1fdXNlckFnZW50
OwogfTsKIApAQCAtMTUzLDcgKzE1Myw4IEBAIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb246Omluc3RhbGxTZXJ2aWNlV29ya2VyKGNvbnN0IFNlcnZpY2VXb3JrZXJDb250CiAKICAg
ICAvLyBGSVhNRTogVGhpcyBtZXRob2Qgc2hvdWxkIGJlIG1vdmVkIGRpcmVjdGx5IHRvIFdlYkNv
cmU6OlNXQ29udGV4dE1hbmFnZXI6OkNvbm5lY3Rpb24KICAgICAvLyBJZiBpdCB3ZXJlbid0IGZv
ciBTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQncyBkZXBlbmRlbmNlIG9uIFdlYkRvY3Vt
ZW50TG9hZGVyLCB0aGlzIGNvdWxkIGFscmVhZHkgaGFwcGVuLgotICAgIGF1dG8gZnJhbWVMb2Fk
ZXJDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVu
dD4oKnRoaXMsIHNlc3Npb25JRCwgbV9wYWdlSUQsICsrbV9wcmV2aW91c1NlcnZpY2VXb3JrZXJJ
RCwgZWZmZWN0aXZlVXNlckFnZW50KTsKKyAgICAvLyBGSVhNRTogV2VpcmQgdG8gcGFzcyBtX3By
ZXZpb3VzU2VydmljZVdvcmtlcklEIGFzIGEgRnJhbWVJZGVudGlmaWVyLgorICAgIGF1dG8gZnJh
bWVMb2FkZXJDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRl
ckNsaWVudD4oKnRoaXMsIHNlc3Npb25JRCwgbV9wYWdlSUQsIGZyYW1lSWRlbnRpZmllckZyb21J
RCgrK21fcHJldmlvdXNTZXJ2aWNlV29ya2VySUQpLCBlZmZlY3RpdmVVc2VyQWdlbnQpOwogICAg
IHBhZ2VDb25maWd1cmF0aW9uLmxvYWRlckNsaWVudEZvck1haW5GcmFtZSA9IGZyYW1lTG9hZGVy
Q2xpZW50LmdldCgpOwogICAgIG1fbG9hZGVycy5hZGQoV1RGTW92ZShmcmFtZUxvYWRlckNsaWVu
dCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDNjODcyZjVhZGYzOWJlYWNkM2E3MDY2
N2IyNjg5ZDM4YzliMTExMmUuLmZjZDA5OGU0ODQwYTU4YTJiNWEyMTk3ZWI1MjkxZTBhNGY0ODI5
ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0yNjUsNyArMjY1LDcgQEAgdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OmZvY3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUqIGZyYW1lKQogewogICAgIFdl
YkZyYW1lKiB3ZWJGcmFtZSA9IGZyYW1lID8gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmZyYW1l
KSA6IG51bGxwdHI7CiAKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNz
Q29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkZvY3VzZWRGcmFtZUNo
YW5nZWQod2ViRnJhbWUgPyB3ZWJGcmFtZS0+ZnJhbWVJRCgpIDogMCksIG1fcGFnZS5wYWdlSUQo
KSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGb2N1c2VkRnJhbWVDaGFuZ2VkKHdlYkZy
YW1lID8gbWFrZU9wdGlvbmFsKHdlYkZyYW1lLT5mcmFtZUlEKCkpIDogV1RGOjpudWxsb3B0KSwg
bV9wYWdlLnBhZ2VJRCgpKTsKIH0KIAogUGFnZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5k
b3coRnJhbWUmIGZyYW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBX
aW5kb3dGZWF0dXJlcyYgd2luZG93RmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIG5h
dmlnYXRpb25BY3Rpb24pCkBAIC02MjUsNyArNjI1LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUmIGZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSBj
b24KICAgICAgICAgV2ViRnJhbWUqIGxhcmdlc3RGcmFtZSA9IGZpbmRMYXJnZXN0RnJhbWVJbkZy
YW1lU2V0KG1fcGFnZSk7CiAgICAgICAgIGlmIChsYXJnZXN0RnJhbWUgIT0gbV9jYWNoZWRGcmFt
ZVNldExhcmdlc3RGcmFtZS5nZXQoKSkgewogICAgICAgICAgICAgbV9jYWNoZWRGcmFtZVNldExh
cmdlc3RGcmFtZSA9IGxhcmdlc3RGcmFtZTsKLSAgICAgICAgICAgIG1fcGFnZS5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkZyYW1lU2V0TGFyZ2VzdEZyYW1lQ2hhbmdlZChsYXJnZXN0RnJh
bWUgPyBsYXJnZXN0RnJhbWUtPmZyYW1lSUQoKSA6IDApKTsKKyAgICAgICAgICAgIG1fcGFnZS5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkZyYW1lU2V0TGFyZ2VzdEZyYW1lQ2hhbmdlZChs
YXJnZXN0RnJhbWUgPyBtYWtlT3B0aW9uYWwobGFyZ2VzdEZyYW1lLT5mcmFtZUlEKCkpIDogV1RG
OjpudWxsb3B0KSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTEzMTYsMTIgKzEzMTYsMTIgQEAg
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpZEludmFsaWRhdGVEb2N1bWVudE1hcmtlclJlY3RzKCkK
IH0KIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi12b2lkIFdlYkNocm9t
ZUNsaWVudDo6aGFzU3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9t
YWluLCBSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlE
LCBQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpoYXNTdG9yYWdlQWNjZXNzKFJlZ2lz
dHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJh
bWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3Bh
Z2UuaGFzU3RvcmFnZUFjY2VzcyhXVEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0b3BG
cmFtZURvbWFpbiksIGZyYW1lSUQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAot
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9t
YWluJiYgc3ViRnJhbWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4s
IHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RTdG9yYWdl
QWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFJlZ2lzdHJhYmxlRG9t
YWluJiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRp
ZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3Rv
cmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBt
X3BhZ2UucmVxdWVzdFN0b3JhZ2VBY2Nlc3MoV1RGTW92ZShzdWJGcmFtZURvbWFpbiksIFdURk1v
dmUodG9wRnJhbWVEb21haW4pLCBmcmFtZUlELCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggY2VkMzZhNmMyNWI3ZTRmODM0NGE1ODk5NDAwNjc5
MWY3Y2M5Mjc2Zi4uMmRjNjYyMmMxYjdmMWM1YTk1YTJjY2Q3OWIzMjA5YmI1ODcyYTYyYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaApAQCAtMzY3LDggKzM2Nyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBk
aWRJbnZhbGlkYXRlRG9jdW1lbnRNYXJrZXJSZWN0cygpIGZpbmFsOwogCiAjaWYgRU5BQkxFKFJF
U09VUkNFX0xPQURfU1RBVElTVElDUykKLSAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7
Ci0gICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biYmIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1l
RG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV1RGOjpD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBX
ZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKSBmaW5hbDsKKyAgICB2b2lk
IGhhc1N0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURv
bWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV1RGOjpDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdl
QWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFj
Y2Vzc1Byb21wdFdhc1Nob3duKT4mJikgZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShERVZJ
Q0VfT1JJRU5UQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA2NTcz
OWJiOGFhOTZkZmU4YzJiMGUyNmMxNzFhOWY5Yjc2YjczNDA5Li43MDk4MGVlNWI1YjhkNzAzN2U0
NWIzZjJhZjNlMmJiMWZhMDM5NGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAK
QEAgLTEyMCw3ICsxMjAsNyBAQCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OnBhZ2VJRCgpIGNvbnN0CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KIAot
T3B0aW9uYWw8dWludDY0X3Q+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlEKCkgY29uc3QK
K09wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZyYW1lSUQo
KSBjb25zdAogewogICAgIGlmIChtX2ZyYW1lKQogICAgICAgICByZXR1cm4gbV9mcmFtZS0+ZnJh
bWVJRCgpOwpAQCAtNTQ2LDcgKzU0Niw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlCiAgICAg
aWYgKCF3ZWJQYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBSRUxFQVNFX0xPRyhOZXR3b3Jr
LCAiJXAgLSBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxM
b2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIikiLCB0aGlz
LCB3ZWJQYWdlLT5wYWdlSUQoKS50b1VJbnQ2NCgpLCBtX2ZyYW1lLT5mcmFtZUlEKCkpOworICAg
IFJFTEVBU0VfTE9HKE5ldHdvcmssICIlcCAtIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERpZEZhaWxQcm92aXNpb25hbExvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9
ICUiIFBSSXU2NCAiKSIsIHRoaXMsIHdlYlBhZ2UtPnBhZ2VJRCgpLnRvVUludDY0KCksIG1fZnJh
bWUtPmZyYW1lSUQoKS50b1VJbnQ2NCgpKTsKIAogICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4gdXNl
ckRhdGE7CiAKQEAgLTU4Miw3ICs1ODIsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaERpZEZhaWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAgIGlmICgh
d2ViUGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUkVMRUFTRV9MT0coTmV0d29yaywgIiVw
IC0gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWQ6IChwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiKSIsIHRoaXMsIHdlYlBhZ2UtPnBhZ2VJ
RCgpLnRvVUludDY0KCksIG1fZnJhbWUtPmZyYW1lSUQoKSk7CisgICAgUkVMRUFTRV9MT0coTmV0
d29yaywgIiVwIC0gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWQ6IChw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiKSIsIHRoaXMsIHdlYlBh
Z2UtPnBhZ2VJRCgpLnRvVUludDY0KCksIG1fZnJhbWUtPmZyYW1lSUQoKS50b1VJbnQ2NCgpKTsK
IAogICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4gdXNlckRhdGE7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgKaW5kZXggYzhmYjJhZjIxMjU2NmM2NDY4NjA3N2EwYzg5YWY4MTA1MzkwYTY4MC4u
NjQxYjhjMDY2MzQxMzgwYzA3MDI4MjBiODc4OWRkMTg1ZThiYjA0MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIHZvaWQgYXBwbHlU
b0RvY3VtZW50TG9hZGVyKFdlYnNpdGVQb2xpY2llc0RhdGEmJik7CiAKICAgICBPcHRpb25hbDxX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlEKCkgY29uc3QgZmluYWw7Ci0gICAgT3B0aW9u
YWw8dWludDY0X3Q+IGZyYW1lSUQoKSBjb25zdCBmaW5hbDsKKyAgICBPcHRpb25hbDxXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQoKSBjb25zdCBmaW5hbDsKICAgICBQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQoKSBjb25zdCBmaW5hbDsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FE
X1NUQVRJU1RJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJDb29raWVKYXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
Q29va2llSmFyLmNwcAppbmRleCA3MzhiZTkyYjkyZGM3M2QyZGY2NzdlZTM0ZWMxMzA4MWE2MGYx
YTFjLi5mNmM1NTdkNWYwZmQyMDFkYmI1MDUxMTQ3ZWJjMjcwYTViNDVjZjNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5jcHAKQEAgLTUw
LDcgKzUwLDcgQEAgV2ViQ29va2llSmFyOjpXZWJDb29raWVKYXIoKQogCiBTdHJpbmcgV2ViQ29v
a2llSmFyOjpjb29raWVzKFdlYkNvcmU6OkRvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1
cmwpIGNvbnN0CiB7Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAgT3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVy
PiBwYWdlSUQ7CiAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkgewogICAg
ICAgICBmcmFtZUlEID0gZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKTsKQEAgLTY3
LDcgKzY3LDcgQEAgU3RyaW5nIFdlYkNvb2tpZUphcjo6Y29va2llcyhXZWJDb3JlOjpEb2N1bWVu
dCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsKSBjb25zdAogCiB2b2lkIFdlYkNvb2tpZUphcjo6
c2V0Q29va2llcyhXZWJDb3JlOjpEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBj
b25zdCBTdHJpbmcmIGNvb2tpZVN0cmluZykKIHsKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJh
bWVJRDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQ7CiAgICAgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVu
dC5mcmFtZSgpKSB7CiAgICAgICAgIGZyYW1lSUQgPSBmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCku
ZnJhbWVJRCgpOwpAQCAtODUsNyArODUsNyBAQCBib29sIFdlYkNvb2tpZUphcjo6Y29va2llc0Vu
YWJsZWQoY29uc3QgV2ViQ29yZTo6RG9jdW1lbnQmIGRvY3VtZW50KSBjb25zdAogICAgIHJldHVy
biByZXN1bHQ7CiB9CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvcmU6OlNlY3VyZUNvb2tpZXNB
Y2Nlc3NlZD4gV2ViQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25z
dCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQs
IFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25z
dAorc3RkOjpwYWlyPFN0cmluZywgV2ViQ29yZTo6U2VjdXJlQ29va2llc0FjY2Vzc2VkPiBXZWJD
b29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lv
bklEJiBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2Ft
ZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlk
ZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFdlYkNv
cmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAogewog
ICAgIFN0cmluZyBjb29raWVTdHJpbmc7CiAgICAgYm9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQg
PSBmYWxzZTsKQEAgLTk2LDcgKzk2LDcgQEAgc3RkOjpwYWlyPFN0cmluZywgV2ViQ29yZTo6U2Vj
dXJlQ29va2llc0FjY2Vzc2VkPiBXZWJDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWEKIAogYm9v
bCBXZWJDb29raWVKYXI6OmdldFJhd0Nvb2tpZXMoY29uc3QgV2ViQ29yZTo6RG9jdW1lbnQmIGRv
Y3VtZW50LCBjb25zdCBVUkwmIHVybCwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mIHJhd0Nvb2tp
ZXMpIGNvbnN0CiB7Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAgT3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVy
PiBwYWdlSUQ7CiAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkgewogICAg
ICAgICBmcmFtZUlEID0gZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmgKaW5kZXggNTU5
YmQwZTUwYmJlYzM1ZmZiMjU2YjkxMmI3YjQ2ZGE5OTRiMmQ0OC4uNWRjYWNkZDk2OGU2YTRiMDYy
N2M3ODdjNmRhMWE1MTU0NzFiZjg4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViQ29va2llSmFyLmgKQEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAgIFN0
cmluZyBjb29raWVzKFdlYkNvcmU6OkRvY3VtZW50JiwgY29uc3QgVVJMJikgY29uc3QgZmluYWw7
CiAgICAgdm9pZCBzZXRDb29raWVzKFdlYkNvcmU6OkRvY3VtZW50JiwgY29uc3QgVVJMJiwgY29u
c3QgU3RyaW5nJiBjb29raWVTdHJpbmcpIGZpbmFsOwogICAgIGJvb2wgY29va2llc0VuYWJsZWQo
Y29uc3QgV2ViQ29yZTo6RG9jdW1lbnQmKSBjb25zdCBmaW5hbDsKLSAgICBzdGQ6OnBhaXI8U3Ry
aW5nLCBXZWJDb3JlOjpTZWN1cmVDb29raWVzQWNjZXNzZWQ+IGNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpJ
bmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QgZmluYWw7CisgICAgc3RkOjpwYWlyPFN0cmluZywg
V2ViQ29yZTo6U2VjdXJlQ29va2llc0FjY2Vzc2VkPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRW
YWx1ZShjb25zdCBQQUw6OlNlc3Npb25JRCYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
V2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBXZWJDb3Jl
OjpJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QgZmluYWw7CiAgICAgYm9vbCBnZXRSYXdDb29r
aWVzKGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50JiwgY29uc3QgVVJMJiwgVmVjdG9yPFdlYkNvcmU6
OkNvb2tpZT4mKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBXZWJD
b3JlOjpEb2N1bWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSkgZmlu
YWw7CiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViRnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJh
bWUuY3BwCmluZGV4IDYwY2ZkOGQyYTE3NTRhN2FjZWQ1OGQ2MWRmMTdiZTRjMTQzMTM2OTQuLmYw
ZWJmZWRiYjJlOTUzYWQwZmMwN2Y5ZjgxNjYwOWRiOTczNWI2NjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKQEAgLTk1LDEyICs5NSw2IEBAIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBERUZJTkVfREVCVUdfT05MWV9HTE9CQUwoV1RGOjpS
ZWZDb3VudGVkTGVha0NvdW50ZXIsIHdlYkZyYW1lQ291bnRlciwgKCJXZWJGcmFtZSIpKTsKIAot
c3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlRnJhbWVJRCgpCi17Ci0gICAgc3RhdGljIHVpbnQ2NF90
IHVuaXF1ZUZyYW1lSUQgPSAxOwotICAgIHJldHVybiB1bmlxdWVGcmFtZUlEKys7Ci19Ci0KIHN0
YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUxpc3RlbmVySUQoKQogewogICAgIHN0YXRpYyB1aW50NjRf
dCB1bmlxdWVMaXN0ZW5lcklEID0gMTsKQEAgLTE0OCw3ICsxNDIsNyBAQCBSZWY8V2ViRnJhbWU+
IFdlYkZyYW1lOjpjcmVhdGUoc3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50PiBm
cmFtZUxvYWRlcgogCiBXZWJGcmFtZTo6V2ViRnJhbWUoc3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1l
TG9hZGVyQ2xpZW50PiBmcmFtZUxvYWRlckNsaWVudCkKICAgICA6IG1fZnJhbWVMb2FkZXJDbGll
bnQoV1RGTW92ZShmcmFtZUxvYWRlckNsaWVudCkpCi0gICAgLCBtX2ZyYW1lSUQoZ2VuZXJhdGVG
cmFtZUlEKCkpCisgICAgLCBtX2ZyYW1lSUQoRnJhbWVJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQog
ewogICAgIG1fZnJhbWVMb2FkZXJDbGllbnQtPnNldFdlYkZyYW1lKHRoaXMpOwogICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmFkZFdlYkZyYW1lKG1fZnJhbWVJRCwgdGhpcyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaAppbmRleCA3MWIzOGY2MWFiMTk1
MDU1YjQ0N2U4N2JmZmY3ZTk2NDA2ZGVlYTljLi4xZWM1MDc1NDI1N2Y4NjZlYjJhZThlYzRjYjBj
NmQxZmZlODY1NmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJGcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZy
YW1lLmgKQEAgLTgwLDcgKzgwLDcgQEAgcHVibGljOgogICAgIFdlYkNvcmU6OkZyYW1lKiBjb3Jl
RnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2NvcmVGcmFtZTsgfQogCiAgICAgRnJhbWVJbmZvRGF0
YSBpbmZvKCkgY29uc3Q7Ci0gICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZnJhbWVJRDsgfQorICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKCkgY29uc3Qg
eyByZXR1cm4gbV9mcmFtZUlEOyB9CiAKICAgICBlbnVtIGNsYXNzIEZvck5hdmlnYXRpb25BY3Rp
b24geyBObywgWWVzIH07CiAgICAgdWludDY0X3Qgc2V0VXBQb2xpY3lMaXN0ZW5lcihXZWJDb3Jl
OjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJiwg
Rm9yTmF2aWdhdGlvbkFjdGlvbik7CkBAIC0xODcsNyArMTg3LDcgQEAgcHJpdmF0ZToKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+IG1fZnJhbWVMb2FkZXJDbGllbnQ7
CiAgICAgTG9hZExpc3RlbmVyKiBtX2xvYWRMaXN0ZW5lciB7IG51bGxwdHIgfTsKICAgICAKLSAg
ICB1aW50NjRfdCBtX2ZyYW1lSUQgeyAwIH07CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IG1fZnJhbWVJRDsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgdWludDY0X3QgbV9m
aXJzdExheWVyVHJlZVRyYW5zYWN0aW9uSURBZnRlckRpZENvbW1pdExvYWQgeyAwIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcAppbmRl
eCBmMjhkZTU2OGVjNTE1YTUxYzM4ZTA5Y2FhYzQ0ZWE3N2YyMWQzZGJlLi4xZjAxNmFlYWRhOTk2
Zjk2M2RkNWU0ZWZiOTZkMGNhZmU2MGFkNjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKQEAgLTIwOSw3ICsyMDksNyBAQCB2b2lk
IFdlYkluc3BlY3Rvcjo6c2hvd1Jlc291cmNlcygpCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViSW5z
cGVjdG9yOjpzaG93TWFpblJlc291cmNlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJZGVudGlmaWVy
KQordm9pZCBXZWJJbnNwZWN0b3I6OnNob3dNYWluUmVzb3VyY2VGb3JGcmFtZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJZGVudGlmaWVyKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSWRlbnRpZmllcik7CiAgICAg
aWYgKCFmcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkluc3BlY3Rvci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5z
cGVjdG9yLmgKaW5kZXggNDg5ZTQxYzA3NGZjMzYzYjM4MDExNjE3YjRjNzU4MjRkZjU5ZDQ3Yi4u
MjZiODllNTIyNzc5NzhkNTNhMzNmZTNjNzExNWVhZWJiYjM4Mjk1OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmgKQEAgLTI4LDYgKzI4LDcg
QEAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5j
bHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZp
ZXIuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KIApAQCAtNjAsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzaG93Q29u
c29sZSgpOwogICAgIHZvaWQgc2hvd1Jlc291cmNlcygpOwogCi0gICAgdm9pZCBzaG93TWFpblJl
c291cmNlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIHNob3dN
YWluUmVzb3VyY2VGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogCiAgICAgdm9p
ZCBzZXRBdHRhY2hlZChib29sIGF0dGFjaGVkKSB7IG1fYXR0YWNoZWQgPSBhdHRhY2hlZDsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0
b3IubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNw
ZWN0b3IubWVzc2FnZXMuaW4KaW5kZXggYjZmM2MwMWIyNDIyMjZhMjBmYjQ5YzU0MjIwM2E2ZGNk
ZTIyMWU2OS4uZGFmNzRiNWU2YjA0MzBiNmIwY2EzYmUyNjBmNWZmYWJlY2Q2NTQ4OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rv
ci5tZXNzYWdlcy5pbgpAQCAtMjksNyArMjksNyBAQCBtZXNzYWdlcyAtPiBXZWJJbnNwZWN0b3Ig
ewogICAgIFNob3dDb25zb2xlKCkKICAgICBTaG93UmVzb3VyY2VzKCkKIAotICAgIFNob3dNYWlu
UmVzb3VyY2VGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlkZW50aWZpZXIpCisgICAgU2hvd01haW5S
ZXNvdXJjZUZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlkZW50aWZpZXIp
CiAKICAgICBPcGVuSW5OZXdUYWIoU3RyaW5nIHVybCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAxMzM2NTcwZDkzYWE1MTEwNjk3ODU2MTE3
MDI2MDg5M2I4YTNjZGI0Li4wMWZmMWE0ZjQ1N2U1MzkzNTYxNDMyNGEwOTQ4ODQwM2E3NTA1NWEx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAt
MTQ5Nyw3ICsxNDk3LDcgQEAgdm9pZCBXZWJQYWdlOjpzdXNwZW5kRm9yUHJvY2Vzc1N3YXAoKQog
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkU3VzcGVuZEFmdGVyUHJvY2Vzc1N3
YXAoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6bG9hZFVSTEluRnJhbWUoVVJMJiYgdXJsLCBjb25z
dCBTdHJpbmcmIHJlZmVycmVyLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlOjpsb2Fk
VVJMSW5GcmFtZShVUkwmJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlEKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlmICghZnJhbWUpCkBAIC0xNTA2LDcgKzE1
MDYsNyBAQCB2b2lkIFdlYlBhZ2U6OmxvYWRVUkxJbkZyYW1lKFVSTCYmIHVybCwgY29uc3QgU3Ry
aW5nJiByZWZlcnJlciwgdWludDY0X3QgZnJhbWVJRAogICAgIGZyYW1lLT5jb3JlRnJhbWUoKS0+
bG9hZGVyKCkubG9hZChGcmFtZUxvYWRSZXF1ZXN0KCpmcmFtZS0+Y29yZUZyYW1lKCksIFJlc291
cmNlUmVxdWVzdCh1cmwsIHJlZmVycmVyKSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6
U2hvdWxkTm90QWxsb3cpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpsb2FkRGF0YUluRnJhbWUoSVBD
OjpEYXRhUmVmZXJlbmNlJiYgZGF0YSwgU3RyaW5nJiYgTUlNRVR5cGUsIFN0cmluZyYmIGVuY29k
aW5nTmFtZSwgVVJMJiYgYmFzZVVSTCwgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZTo6
bG9hZERhdGFJbkZyYW1lKElQQzo6RGF0YVJlZmVyZW5jZSYmIGRhdGEsIFN0cmluZyYmIE1JTUVU
eXBlLCBTdHJpbmcmJiBlbmNvZGluZ05hbWUsIFVSTCYmIGJhc2VVUkwsIEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlEKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlmICghZnJhbWUpCkBAIC0xNjE0LDcgKzE2MTQs
NyBAQCB2b2lkIFdlYlBhZ2U6Om5hdmlnYXRlVG9QREZMaW5rV2l0aFNpbXVsYXRlZENsaWNrKGNv
bnN0IFN0cmluZyYgdXJsLCBJbnRQb2ludCBkbwogICAgIG1haW5GcmFtZS0+bG9hZGVyKCkudXJs
U2VsZWN0ZWQobWFpbkZyYW1lRG9jdW1lbnQtPmNvbXBsZXRlVVJMKHVybCksIGVtcHR5U3RyaW5n
KCksIG1vdXNlRXZlbnQucHRyKCksIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlz
dDo6Tm8sIFNob3VsZFNlbmRSZWZlcnJlcjo6TmV2ZXJTZW5kUmVmZXJyZXIsIFNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKIH0KIAotdm9pZCBXZWJQYWdlOjpz
dG9wTG9hZGluZ0ZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2U6OnN0b3BMb2Fk
aW5nRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgV2ViRnJhbWUqIGZyYW1l
ID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCFm
cmFtZSkKQEAgLTMyMzQsNyArMzIzNCw3IEBAIHZvaWQgV2ViUGFnZTo6c2V0U2Vzc2lvbklEKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICBtX3BhZ2UtPnNldFNlc3Npb25JRChzZXNzaW9u
SUQpOwogfQogCi12b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbih1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBsaXN0ZW5lcklELCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRl
bnRpZmllciwgUG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBjb25zdCBEb3dubG9hZElEJiBkb3dubG9hZElELCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNE
YXRhPiYmIHdlYnNpdGVQb2xpY2llcykKK3ZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVBvbGljeURl
Y2lzaW9uKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBsaXN0ZW5lcklELCBQb2xp
Y3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgUG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBEb3dubG9hZElEJiBkb3dubG9hZElELCBPcHRp
b25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcykKIHsKICAgICBXZWJG
cmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsK
ICAgICBpZiAoIWZyYW1lKQpAQCAtMzI0Miw3ICszMjQyLDcgQEAgdm9pZCBXZWJQYWdlOjpkaWRS
ZWNlaXZlUG9saWN5RGVjaXNpb24odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJ
RCwgUG8KICAgICBmcmFtZS0+ZGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKGxpc3RlbmVySUQsIGlk
ZW50aWZpZXIsIHBvbGljeUFjdGlvbiwgbmF2aWdhdGlvbklELCBkb3dubG9hZElELCBXVEZNb3Zl
KHdlYnNpdGVQb2xpY2llcykpOwogfQogCi12b2lkIFdlYlBhZ2U6OmNvbnRpbnVlV2lsbFN1Ym1p
dEZvcm0odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCkKK3ZvaWQgV2ViUGFn
ZTo6Y29udGludWVXaWxsU3VibWl0Rm9ybShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0
X3QgbGlzdGVuZXJJRCkKIHsKICAgICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtMzM4NCw3ICsz
Mzg0LDcgQEAgdm9pZCBXZWJQYWdlOjpydW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3Js
ZChjb25zdCBTdHJpbmcmIHNjcmlwdCwgYm9vbCBmb3IKICAgICBydW5KYXZhU2NyaXB0KG1haW5X
ZWJGcmFtZSgpLCBzY3JpcHQsIGZvcmNlVXNlckdlc3R1cmUsIHdvcmxkTmFtZSwgY2FsbGJhY2tJ
RCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6cnVuSmF2YVNjcmlwdEluRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgQ2FsbGJh
Y2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdlOjpydW5KYXZhU2NyaXB0SW5GcmFtZShGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2Vy
R2VzdHVyZSwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIEFTU0VSVCht
YWluV2ViRnJhbWUoKSAhPSBmcmFtZSk7CkBAIC0zNDQ1LDcgKzM0NDUsNyBAQCB2b2lkIFdlYlBh
Z2U6OmdldFNlbGVjdGlvbk9yQ29udGVudHNBc1N0cmluZyhDYWxsYmFja0lEIGNhbGxiYWNrSUQp
CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdHJpbmdDYWxsYmFjayhyZXN1bHRT
dHJpbmcsIGNhbGxiYWNrSUQpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpnZXRTb3VyY2VGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYlBhZ2U6
OmdldFNvdXJjZUZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDYWxsYmFja0lEIGNh
bGxiYWNrSUQpCiB7CiAgICAgU3RyaW5nIHJlc3VsdFN0cmluZzsKICAgICBpZiAoV2ViRnJhbWUq
IGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCkpCkBAIC0z
NDU0LDcgKzM0NTQsNyBAQCB2b2lkIFdlYlBhZ2U6OmdldFNvdXJjZUZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlN0cmluZ0NhbGxiYWNrKHJlc3VsdFN0cmluZywgY2FsbGJhY2tJRCkpOwogfQog
Ci12b2lkIFdlYlBhZ2U6OmdldE1haW5SZXNvdXJjZURhdGFPZkZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6Z2V0TWFpblJlc291cmNl
RGF0YU9mRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENhbGxiYWNrSUQgY2FsbGJhY2tJ
RCkKIHsKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXI7CiAgICAgaWYgKFdlYkZyYW1l
KiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpKSB7CkBA
IC0zNDg1LDcgKzM0ODUsNyBAQCBzdGF0aWMgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gcmVzb3VyY2VE
YXRhRm9yRnJhbWUoRnJhbWUqIGZyYW1lLCBjb25zdCBVUkwmIHJlc291cgogICAgIHJldHVybiAm
c3VicmVzb3VyY2UtPmRhdGEoKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpnZXRSZXNvdXJjZURhdGFG
cm9tRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiByZXNvdXJjZVVSTFN0cmlu
ZywgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdlOjpnZXRSZXNvdXJjZURhdGFG
cm9tRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VV
UkxTdHJpbmcsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBSZWZQdHI8U2hhcmVkQnVm
ZmVyPiBidWZmZXI7CiAgICAgaWYgKGF1dG8qIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkud2ViRnJhbWUoZnJhbWVJRCkpIHsKQEAgLTM0OTksNyArMzQ5OSw3IEBAIHZvaWQgV2ViUGFn
ZTo6Z2V0UmVzb3VyY2VEYXRhRnJvbUZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmlu
ZyYgcmVzb3VyY2VVCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEYXRhQ2FsbGJh
Y2soZGF0YVJlZmVyZW5jZSwgY2FsbGJhY2tJRCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OmdldFdl
YkFyY2hpdmVPZkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkK
K3ZvaWQgV2ViUGFnZTo6Z2V0V2ViQXJjaGl2ZU9mRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBS
ZXRhaW5QdHI8Q0ZEYXRhUmVmPiBkYXRhOwpAQCAtMzgwMiwxMyArMzgwMiwxMyBAQCBXZWJGdWxs
U2NyZWVuTWFuYWdlciogV2ViUGFnZTo6ZnVsbFNjcmVlbk1hbmFnZXIoKQogfQogI2VuZGlmCiAK
LXZvaWQgV2ViUGFnZTo6YWRkQ29uc29sZU1lc3NhZ2UodWludDY0X3QgZnJhbWVJRCwgTWVzc2Fn
ZVNvdXJjZSBtZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwgbWVzc2FnZUxldmVsLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIHVpbnQ2NF90IHJlcXVlc3RJRCkKK3ZvaWQgV2ViUGFnZTo6YWRkQ29u
c29sZU1lc3NhZ2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIE1lc3NhZ2VTb3VyY2UgbWVzc2Fn
ZVNvdXJjZSwgTWVzc2FnZUxldmVsIG1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCB1aW50NjRfdCByZXF1ZXN0SUQpCiB7CiAgICAgaWYgKGF1dG8qIGZyYW1lID0gV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCkpCiAgICAgICAgIGZyYW1lLT5hZGRDb25z
b2xlTWVzc2FnZShtZXNzYWdlU291cmNlLCBtZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIHJlcXVlc3RJ
RCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6c2VuZENTUFZpb2xhdGlvblJlcG9ydCh1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJl
cG9ydERhdGEpCit2b2lkIFdlYlBhZ2U6OnNlbmRDU1BWaW9sYXRpb25SZXBvcnQoRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBJUEM6OkZvcm1EYXRhUmVmZXJl
bmNlJiYgcmVwb3J0RGF0YSkKIHsKICAgICBhdXRvIHJlcG9ydCA9IHJlcG9ydERhdGEudGFrZURh
dGEoKTsKICAgICBpZiAoIXJlcG9ydCkKQEAgLTM4MTcsNyArMzgxNyw3IEBAIHZvaWQgV2ViUGFn
ZTo6c2VuZENTUFZpb2xhdGlvblJlcG9ydCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVUkwmIHJl
cG9ydFVSTCwgSVBDCiAgICAgICAgIFBpbmdMb2FkZXI6OnNlbmRWaW9sYXRpb25SZXBvcnQoKmZy
YW1lLT5jb3JlRnJhbWUoKSwgcmVwb3J0VVJMLCByZXBvcnQucmVsZWFzZU5vbk51bGwoKSwgVmlv
bGF0aW9uUmVwb3J0VHlwZTo6Q29udGVudFNlY3VyaXR5UG9saWN5KTsKIH0KIAotdm9pZCBXZWJQ
YWdlOjplbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCh1aW50NjRfdCBmcmFtZUlE
LCBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYgZXZlbnRJbml0KQordm9pZCBX
ZWJQYWdlOjplbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmIGV2ZW50SW5p
dCkKIHsKICAgICBhdXRvKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1l
KGZyYW1lSUQpOwogICAgIGlmICghZnJhbWUpCkBAIC00NjgwLDcgKzQ2ODAsNyBAQCB2b2lkIFdl
YlBhZ2U6OmVmZmVjdGl2ZUFwcGVhcmFuY2VEaWRDaGFuZ2UoYm9vbCB1c2VEYXJrQXBwZWFyYW5j
ZSwgYm9vbCB1c2VFbGV2YQogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZTo6YmVnaW5QcmludGlu
Zyh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbykKK3ZvaWQgV2Vi
UGFnZTo6YmVnaW5QcmludGluZyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJ
bmZvJiBwcmludEluZm8pCiB7CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCFmcmFtZSkKQEAgLTQ3MjQsNyAr
NDcyNCw3IEBAIHZvaWQgV2ViUGFnZTo6ZW5kUHJpbnRpbmcoKQogICAgIH0KIH0KIAotdm9pZCBX
ZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZyh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQ
cmludEluZm8mIHByaW50SW5mbywgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdl
Ojpjb21wdXRlUGFnZXNGb3JQcmludGluZyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3Qg
UHJpbnRJbmZvJiBwcmludEluZm8sIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBWZWN0
b3I8SW50UmVjdD4gcmVzdWx0UGFnZVJlY3RzOwogICAgIGRvdWJsZSByZXN1bHRUb3RhbFNjYWxl
RmFjdG9yRm9yUHJpbnRpbmcgPSAxOwpAQCAtNDczMyw3ICs0NzMzLDcgQEAgdm9pZCBXZWJQYWdl
Ojpjb21wdXRlUGFnZXNGb3JQcmludGluZyh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludElu
Zm8mIHByaW50SW4KICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNvbXB1dGVkUGFn
ZXNDYWxsYmFjayhyZXN1bHRQYWdlUmVjdHMsIHJlc3VsdFRvdGFsU2NhbGVGYWN0b3JGb3JQcmlu
dGluZywgY29tcHV0ZWRQYWdlTWFyZ2luLCBjYWxsYmFja0lEKSk7CiB9CiAKLXZvaWQgV2ViUGFn
ZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdJbXBsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFBy
aW50SW5mbyYgcHJpbnRJbmZvLCBWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4mIHJlc3VsdFBhZ2VS
ZWN0cywgZG91YmxlJiByZXN1bHRUb3RhbFNjYWxlRmFjdG9yRm9yUHJpbnRpbmcsIEZsb2F0Qm94
RXh0ZW50JiBjb21wdXRlZFBhZ2VNYXJnaW4pCit2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0Zv
clByaW50aW5nSW1wbChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBw
cmludEluZm8sIFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiYgcmVzdWx0UGFnZVJlY3RzLCBkb3Vi
bGUmIHJlc3VsdFRvdGFsU2NhbGVGYWN0b3JGb3JQcmludGluZywgRmxvYXRCb3hFeHRlbnQmIGNv
bXB1dGVkUGFnZU1hcmdpbikKIHsKICAgICBBU1NFUlQocmVzdWx0UGFnZVJlY3RzLmlzRW1wdHko
KSk7CiAKQEAgLTQ3NTYsNyArNDc1Niw3IEBAIHZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9y
UHJpbnRpbmdJbXBsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpCiB9CiAK
ICNpZiBQTEFURk9STShDT0NPQSkKLXZvaWQgV2ViUGFnZTo6ZHJhd1JlY3RUb0ltYWdlKHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiBy
ZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBpbWFnZVNpemUsIENhbGxiYWNrSUQgY2FsbGJh
Y2tJRCkKK3ZvaWQgV2ViUGFnZTo6ZHJhd1JlY3RUb0ltYWdlKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCwgY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYgaW1hZ2VTaXplLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7
CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUo
ZnJhbWVJRCk7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGZyYW1lID8gZnJhbWUtPmNvcmVGcmFt
ZSgpIDogMDsKQEAgLTQ4MDYsMTQgKzQ4MDYsMTQgQEAgdm9pZCBXZWJQYWdlOjpkcmF3UmVjdFRv
SW1hZ2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIGNvbnMK
ICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkltYWdlQ2FsbGJhY2soaGFuZGxlLCBj
YWxsYmFja0lEKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZHJhd1BhZ2VzVG9QREYodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIHVpbnQzMl90IGZpcnN0LCB1aW50
MzJfdCBjb3VudCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdlOjpkcmF3UGFn
ZXNUb1BERihGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludElu
Zm8sIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lE
KQogewogICAgIFJldGFpblB0cjxDRk11dGFibGVEYXRhUmVmPiBwZGZQYWdlRGF0YTsKICAgICBk
cmF3UGFnZXNUb1BERkltcGwoZnJhbWVJRCwgcHJpbnRJbmZvLCBmaXJzdCwgY291bnQsIHBkZlBh
Z2VEYXRhKTsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRhdGFDYWxsYmFjayh7
IENGRGF0YUdldEJ5dGVQdHIocGRmUGFnZURhdGEuZ2V0KCkpLCBzdGF0aWNfY2FzdDxzaXplX3Q+
KENGRGF0YUdldExlbmd0aChwZGZQYWdlRGF0YS5nZXQoKSkpIH0sIGNhbGxiYWNrSUQpKTsKIH0K
IAotdm9pZCBXZWJQYWdlOjpkcmF3UGFnZXNUb1BERkltcGwodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgUHJpbnRJbmZvJiBwcmludEluZm8sIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwg
UmV0YWluUHRyPENGTXV0YWJsZURhdGFSZWY+JiBwZGZQYWdlRGF0YSkKK3ZvaWQgV2ViUGFnZTo6
ZHJhd1BhZ2VzVG9QREZJbXBsKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBQcmludElu
Zm8mIHByaW50SW5mbywgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBSZXRhaW5QdHI8
Q0ZNdXRhYmxlRGF0YVJlZj4mIHBkZlBhZ2VEYXRhKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIEZyYW1lKiBj
b3JlRnJhbWUgPSBmcmFtZSA/IGZyYW1lLT5jb3JlRnJhbWUoKSA6IDA7CkBAIC00ODY0LDcgKzQ4
NjQsNyBAQCB2b2lkIFdlYlBhZ2U6OmRyYXdQYWdlc1RvUERGSW1wbCh1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgdQogfQogCiAjZWxpZiBQTEFURk9STShHVEsp
Ci12b2lkIFdlYlBhZ2U6OmRyYXdQYWdlc0ZvclByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdl
YlBhZ2U6OmRyYXdQYWdlc0ZvclByaW50aW5nKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25z
dCBQcmludEluZm8mIHByaW50SW5mbywgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIGJl
Z2luUHJpbnRpbmcoZnJhbWVJRCwgcHJpbnRJbmZvKTsKICAgICBpZiAobV9wcmludENvbnRleHQg
JiYgbV9wcmludE9wZXJhdGlvbikgewpAQCAtNjUwMiw3ICs2NTAyLDcgQEAgdm9pZCBXZWJQYWdl
OjpzZXRJc1N1c3BlbmRlZChib29sIHN1c3BlbmRlZCkKICAgICBzdXNwZW5kRm9yUHJvY2Vzc1N3
YXAoKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpmcmFtZUJlY2FtZVJlbW90ZSh1aW50NjRfdCBmcmFt
ZUlELCBHbG9iYWxGcmFtZUlkZW50aWZpZXImJiByZW1vdGVGcmFtZUlkZW50aWZpZXIsIEdsb2Jh
bFdpbmRvd0lkZW50aWZpZXImJiByZW1vdGVXaW5kb3dJZGVudGlmaWVyKQordm9pZCBXZWJQYWdl
OjpmcmFtZUJlY2FtZVJlbW90ZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgR2xvYmFsRnJhbWVJ
ZGVudGlmaWVyJiYgcmVtb3RlRnJhbWVJZGVudGlmaWVyLCBHbG9iYWxXaW5kb3dJZGVudGlmaWVy
JiYgcmVtb3RlV2luZG93SWRlbnRpZmllcikKIHsKICAgICBSZWZQdHI8V2ViRnJhbWU+IGZyYW1l
ID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCFm
cmFtZSkKQEAgLTY1MzQsMTIgKzY1MzQsMTIgQEAgdm9pZCBXZWJQYWdlOjpmcmFtZUJlY2FtZVJl
bW90ZSh1aW50NjRfdCBmcmFtZUlELCBHbG9iYWxGcmFtZUlkZW50aWZpZXImJiByZW1vdGUKIH0K
IAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi12b2lkIFdlYlBhZ2U6Omhh
c1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgUmVnaXN0
cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZTo6
aGFzU3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdp
c3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24o
KS5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6SGFzU3RvcmFnZUFjY2VzcyhzZXNzaW9uSUQoKSwgV1RGTW92ZShz
dWJGcmFtZURvbWFpbiksIFdURk1vdmUodG9wRnJhbWVEb21haW4pLCBmcmFtZUlELCBtX3BhZ2VJ
RCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpyZXF1
ZXN0U3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdp
c3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBXZWJDb3Jl
OjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9p
ZCBXZWJQYWdlOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZy
YW1lRG9tYWluLCBSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNj
ZXNzV2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5
KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVxdWVzdFN0b3JhZ2VB
Y2Nlc3Moc2Vzc2lvbklEKCksIFdURk1vdmUoc3ViRnJhbWVEb21haW4pLCBXVEZNb3ZlKHRvcEZy
YW1lRG9tYWluKSwgZnJhbWVJRCwgbV9wYWdlSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CiB9CkBAIC02NTU1LDcgKzY1NTUsNyBAQCB2b2lkIFdlYlBhZ2U6Ondhc0xvYWRlZFdpdGhE
YXRhVHJhbnNmZXJGcm9tUHJldmFsZW50UmVzb3VyY2UoKQogI2VuZGlmCiAKICNpZiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQotdm9pZCBXZWJQYWdlOjpzaG91bGRBbGxvd0RldmljZU9yaWVu
dGF0aW9uQW5kTW90aW9uQWNjZXNzKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYmIG9yaWdpbiwgYm9vbCBtYXlQcm9tcHQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit2b2lkIFdlYlBhZ2U6OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3MoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYmIG9yaWdpbiwgYm9vbCBtYXlQcm9tcHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoZnJhbWVJRCwgV1RG
TW92ZShvcmlnaW4pLCBtYXlQcm9tcHQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggNzA5OTI3
MDE0MjQzYzExMjhmZjZmYWM5ZTRlYTkyZGQ2NTEyMmM2Zi4uMWQ5NzFmNGEzMzg2MTFlOTQwOWIz
NGYxZTgxZGVlNTBjNzYyZmNiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaApAQCAtMzQ2LDkgKzM0Niw5IEBAIHB1YmxpYzoKICAgICBXZWJGdWxsU2NyZWVu
TWFuYWdlciogZnVsbFNjcmVlbk1hbmFnZXIoKTsKICNlbmRpZgogCi0gICAgdm9pZCBhZGRDb25z
b2xlTWVzc2FnZSh1aW50NjRfdCBmcmFtZUlELCBNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWws
IGNvbnN0IFN0cmluZyYsIHVpbnQ2NF90IHJlcXVlc3RJRCA9IDApOwotICAgIHZvaWQgc2VuZENT
UFZpb2xhdGlvblJlcG9ydCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVUkwmIHJlcG9ydFVSTCwg
SVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmKTsKLSAgICB2b2lkIGVucXVldWVTZWN1cml0eVBvbGlj
eVZpb2xhdGlvbkV2ZW50KHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5
VmlvbGF0aW9uRXZlbnQ6OkluaXQmJik7CisgICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3Qg
U3RyaW5nJiwgdWludDY0X3QgcmVxdWVzdElEID0gMCk7CisgICAgdm9pZCBzZW5kQ1NQVmlvbGF0
aW9uUmVwb3J0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgVVJMJiByZXBvcnRVUkws
IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJik7CisgICAgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb25FdmVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3Vy
aXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJik7CiAKICAgICAvLyAtLSBDYWxsZWQgYnkg
dGhlIERyYXdpbmdBcmVhLgogICAgIC8vIEZJWE1FOiBXZSBjb3VsZCBnZW5lcmljaXplIHRoZXNl
IGludG8gYSBEcmF3aW5nQXJlYSBjbGllbnQgaW50ZXJmYWNlLiBXb3VsZCB0aGF0IGJlIGJlbmVm
aWNpYWw/CkBAIC01MjIsNyArNTIyLDcgQEAgcHVibGljOgogICAgIFdlYkNvcmU6OkNvbG9yIHVu
ZGVybGF5Q29sb3IoKSBjb25zdCB7IHJldHVybiBtX3VuZGVybGF5Q29sb3I7IH0KIAogICAgIHZv
aWQgc3RvcExvYWRpbmcoKTsKLSAgICB2b2lkIHN0b3BMb2FkaW5nRnJhbWUodWludDY0X3QgZnJh
bWVJRCk7CisgICAgdm9pZCBzdG9wTG9hZGluZ0ZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
cik7CiAgICAgYm9vbCBkZWZlcnNMb2FkaW5nKCkgY29uc3Q7CiAgICAgdm9pZCBzZXREZWZlcnNM
b2FkaW5nKGJvb2wgZGVmZXJMb2FkaW5nKTsKIApAQCAtNzY5LDcgKzc2OSw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGNvbmZpcm1Db21wb3NpdGlvbihjb25zdCBTdHJpbmcmIHRleHQsIGludDY0X3Qg
c2VsZWN0aW9uU3RhcnQsIGludDY0X3Qgc2VsZWN0aW9uTGVuZ3RoKTsKICAgICB2b2lkIGNhbmNl
bENvbXBvc2l0aW9uKCk7CiAKLSAgICB2b2lkIGNvbGxhcHNlU2VsZWN0aW9uSW5GcmFtZSh1aW50
NjRfdCBmcmFtZUlEKTsKKyAgICB2b2lkIGNvbGxhcHNlU2VsZWN0aW9uSW5GcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIpOwogICAgIHZvaWQgc2hvd0Vtb2ppUGlja2VyKFdlYkNvcmU6OkZy
YW1lJik7CiAKICAgICB2b2lkIGdldENlbnRlckZvclpvb21HZXN0dXJlKGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiBjZW50ZXJJblZpZXdDb29yZGluYXRlcywgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJDb3JlOjpJbnRQb2ludCYmKT4mJik7CkBAIC04NjIsMjMgKzg2MiwyMyBAQCBwdWJsaWM6
CiAgICAgV2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlvbiBhbGxvd2VkRHJhZ1NvdXJjZUFjdGlvbnMo
KSBjb25zdCB7IHJldHVybiBtX2FsbG93ZWREcmFnU291cmNlQWN0aW9uczsgfQogI2VuZGlmCiAK
LSAgICB2b2lkIGJlZ2luUHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZv
Jik7CisgICAgdm9pZCBiZWdpblByaW50aW5nKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29u
c3QgUHJpbnRJbmZvJik7CiAgICAgdm9pZCBlbmRQcmludGluZygpOwotICAgIHZvaWQgY29tcHV0
ZVBhZ2VzRm9yUHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiwgQ2Fs
bGJhY2tJRCk7Ci0gICAgdm9pZCBjb21wdXRlUGFnZXNGb3JQcmludGluZ0ltcGwodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiwgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+JiBwYWdl
UmVjdHMsIGRvdWJsZSYgdG90YWxTY2FsZUZhY3RvciwgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQm
IGNvbXB1dGVkTWFyZ2luKTsKKyAgICB2b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgQ2FsbGJhY2tJRCk7CisgICAg
dm9pZCBjb21wdXRlUGFnZXNGb3JQcmludGluZ0ltcGwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBjb25zdCBQcmludEluZm8mLCBWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4mIHBhZ2VSZWN0cywg
ZG91YmxlJiB0b3RhbFNjYWxlRmFjdG9yLCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgY29tcHV0
ZWRNYXJnaW4pOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdm9pZCBkcmF3UmVjdFRvSW1h
Z2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBDYWxsYmFja0lEKTsKLSAgICB2b2lkIGRy
YXdQYWdlc1RvUERGKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIHVpbnQzMl90
IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBkcmF3UGFnZXNU
b1BERkltcGwodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiwgdWludDMyX3QgZmly
c3QsIHVpbnQzMl90IGNvdW50LCBSZXRhaW5QdHI8Q0ZNdXRhYmxlRGF0YVJlZj4mIHBkZlBhZ2VE
YXRhKTsKKyAgICB2b2lkIGRyYXdSZWN0VG9JbWFnZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IGNvbnN0IFByaW50SW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJiwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBkcmF3UGFnZXNUb1BERihXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYsIHVpbnQzMl90IGZpcnN0LCB1aW50
MzJfdCBjb3VudCwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBkcmF3UGFnZXNUb1BERkltcGwoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mLCB1aW50MzJfdCBmaXJzdCwg
dWludDMyX3QgY291bnQsIFJldGFpblB0cjxDRk11dGFibGVEYXRhUmVmPiYgcGRmUGFnZURhdGEp
OwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHZvaWQgY29tcHV0ZVBh
Z2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJ
bmZvJiwgQ2FsbGJhY2tJRCwgTWVzc2FnZXM6OldlYlBhZ2U6OkNvbXB1dGVQYWdlc0ZvclByaW50
aW5nQW5kRHJhd1RvUERGOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBjb21wdXRlUGFnZXNG
b3JQcmludGluZ0FuZERyYXdUb1BERihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFBy
aW50SW5mbyYsIENhbGxiYWNrSUQsIE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21wdXRlUGFnZXNGb3JQ
cmludGluZ0FuZERyYXdUb1BERjo6RGVsYXllZFJlcGx5JiYpOwogI2VuZGlmCiAKICNpZiBQTEFU
Rk9STShHVEspCi0gICAgdm9pZCBkcmF3UGFnZXNGb3JQcmludGluZyh1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBQcmludEluZm8mLCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIGRyYXdQYWdlc0ZvclBy
aW50aW5nKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgQ2FsbGJh
Y2tJRCk7CiAgICAgdm9pZCBkaWRGaW5pc2hQcmludE9wZXJhdGlvbihjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJiwgQ2FsbGJhY2tJRCk7CiAjZW5kaWYKIApAQCAtMTEzMSwxMyArMTEzMSwx
MyBAQCBwdWJsaWM6CiAgICAgdm9pZCBmbHVzaFBlbmRpbmdFZGl0b3JTdGF0ZVVwZGF0ZSgpOwog
CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLSAgICB2b2lkIGhhc1N0b3Jh
Z2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJ
RCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCByZXF1ZXN0U3Rv
cmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFt
ZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFu
dGVkLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKTsKKyAgICB2b2lk
IGhhc1N0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURv
bWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAg
ICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYg
c3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21h
aW4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21w
dFdhc1Nob3duKT4mJik7CiAgICAgdm9pZCB3YXNMb2FkZWRXaXRoRGF0YVRyYW5zZmVyRnJvbVBy
ZXZhbGVudFJlc291cmNlKCk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJ
T04pCi0gICAgdm9pZCBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNz
KHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBib29sIG1h
eVByb21wdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlv
bk9yTW90aW9uUGVybWlzc2lvblN0YXRlKT4mJik7CisgICAgdm9pZCBzaG91bGRBbGxvd0Rldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3Rh
dGUpPiYmKTsKICNlbmRpZgogCiAgICAgdm9pZCBzaG93U2hhcmVTaGVldChXZWJDb3JlOjpTaGFy
ZURhdGFXaXRoUGFyc2VkVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxs
YmFjayk7CkBAIC0xMzU2LDggKzEzNTYsOCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBib29sIHNj
cm9sbChXZWJDb3JlOjpQYWdlKiwgV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uLCBXZWJDb3JlOjpT
Y3JvbGxHcmFudWxhcml0eSk7CiAgICAgc3RhdGljIGJvb2wgbG9naWNhbFNjcm9sbChXZWJDb3Jl
OjpQYWdlKiwgV2ViQ29yZTo6U2Nyb2xsTG9naWNhbERpcmVjdGlvbiwgV2ViQ29yZTo6U2Nyb2xs
R3JhbnVsYXJpdHkpOwogCi0gICAgdm9pZCBsb2FkVVJMSW5GcmFtZShVUkwmJiwgY29uc3QgU3Ry
aW5nJiByZWZlcnJlciwgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBsb2FkRGF0YUluRnJh
bWUoSVBDOjpEYXRhUmVmZXJlbmNlJiYsIFN0cmluZyYmIE1JTUVUeXBlLCBTdHJpbmcmJiBlbmNv
ZGluZ05hbWUsIFVSTCYmIGJhc2VVUkwsIHVpbnQ2NF90IGZyYW1lSUQpOworICAgIHZvaWQgbG9h
ZFVSTEluRnJhbWUoVVJMJiYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcik7CisgICAgdm9pZCBsb2FkRGF0YUluRnJhbWUoSVBDOjpEYXRhUmVmZXJlbmNl
JiYsIFN0cmluZyYmIE1JTUVUeXBlLCBTdHJpbmcmJiBlbmNvZGluZ05hbWUsIFVSTCYmIGJhc2VV
UkwsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAKICAgICBlbnVtIGNsYXNzIFdhc1Jlc3Rv
cmVkQnlBUElSZXF1ZXN0IHsgTm8sIFllcyB9OwogICAgIHZvaWQgcmVzdG9yZVNlc3Npb25JbnRl
cm5hbChjb25zdCBWZWN0b3I8QmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlPiYsIFdhc1Jlc3RvcmVk
QnlBUElSZXF1ZXN0LCBXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6T3ZlcndyaXRlRXhpc3RpbmdJ
dGVtKTsKQEAgLTEzODksMTYgKzEzODksMTYgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoTUhUTUwp
CiAgICAgdm9pZCBnZXRDb250ZW50c0FzTUhUTUxEYXRhKENhbGxiYWNrSUQpOwogI2VuZGlmCi0g
ICAgdm9pZCBnZXRNYWluUmVzb3VyY2VEYXRhT2ZGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDYWxs
YmFja0lEKTsKLSAgICB2b2lkIGdldFJlc291cmNlRGF0YUZyb21GcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBTdHJpbmcmIHJlc291cmNlVVJMLCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIGdl
dE1haW5SZXNvdXJjZURhdGFPZkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ2FsbGJh
Y2tJRCk7CisgICAgdm9pZCBnZXRSZXNvdXJjZURhdGFGcm9tRnJhbWUoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHJlc291cmNlVVJMLCBDYWxsYmFja0lEKTsKICAgICB2
b2lkIGdldFJlbmRlclRyZWVFeHRlcm5hbFJlcHJlc2VudGF0aW9uKENhbGxiYWNrSUQpOwogICAg
IHZvaWQgZ2V0U2VsZWN0aW9uT3JDb250ZW50c0FzU3RyaW5nKENhbGxiYWNrSUQpOwogICAgIHZv
aWQgZ2V0U2VsZWN0aW9uQXNXZWJBcmNoaXZlRGF0YShDYWxsYmFja0lEKTsKLSAgICB2b2lkIGdl
dFNvdXJjZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENhbGxiYWNrSUQpOwotICAgIHZvaWQg
Z2V0V2ViQXJjaGl2ZU9mRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ2FsbGJhY2tJRCk7CisgICAg
dm9pZCBnZXRTb3VyY2VGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENhbGxiYWNr
SUQpOworICAgIHZvaWQgZ2V0V2ViQXJjaGl2ZU9mRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBDYWxsYmFja0lEKTsKICAgICB2b2lkIHJ1bkphdmFTY3JpcHQoV2ViRnJhbWUqLCBjb25z
dCBTdHJpbmcmLCBib29sIGZvcmNlVXNlckdlc3R1cmUsIGNvbnN0IE9wdGlvbmFsPFN0cmluZz4m
IHdvcmxkTmFtZSwgQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBydW5KYXZhU2NyaXB0SW5NYWluRnJh
bWVTY3JpcHRXb3JsZChjb25zdCBTdHJpbmcmLCBib29sIGZvcmNlVXNlckdlc3R1cmUsIGNvbnN0
IE9wdGlvbmFsPFN0cmluZz4mIHdvcmxkTmFtZSwgQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBydW5K
YXZhU2NyaXB0SW5GcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmLCBib29sIGZv
cmNlVXNlckdlc3R1cmUsIENhbGxiYWNrSUQpOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluRnJh
bWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sIGZvcmNlVXNl
ckdlc3R1cmUsIENhbGxiYWNrSUQpOwogICAgIHZvaWQgZm9yY2VSZXBhaW50KENhbGxiYWNrSUQp
OwogICAgIHZvaWQgdGFrZVNuYXBzaG90KFdlYkNvcmU6OkludFJlY3Qgc25hcHNob3RSZWN0LCBX
ZWJDb3JlOjpJbnRTaXplIGJpdG1hcFNpemUsIHVpbnQzMl90IG9wdGlvbnMsIENhbGxiYWNrSUQp
OwogCkBAIC0xNDEyLDggKzE0MTIsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgcGFyZW50UHJvY2Vz
c0hhc1NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICNl
bmRpZgogCi0gICAgdm9pZCBkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24odWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBX
ZWJDb3JlOjpQb2xpY3lBY3Rpb24sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgRG93bmxv
YWRJRCYsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYpOwotICAgIHZvaWQgY29udGlu
dWVXaWxsU3VibWl0Rm9ybSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBsaXN0ZW5lcklEKTsK
KyAgICB2b2lkIGRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwg
V2ViQ29yZTo6UG9saWN5QWN0aW9uLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IERvd25s
b2FkSUQmLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmKTsKKyAgICB2b2lkIGNvbnRp
bnVlV2lsbFN1Ym1pdEZvcm0oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBsaXN0
ZW5lcklEKTsKICAgICB2b2lkIHNldFVzZXJBZ2VudChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lk
IHNldEN1c3RvbVRleHRFbmNvZGluZ05hbWUoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBzdXNw
ZW5kQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMoKTsKQEAgLTE0MzEsNyArMTQzMSw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCB3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiB3aW5kb3dGcmFtZUluVW5mbGlwcGVkU2NyZWVuQ29vcmRpbmF0ZXMs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcywg
Y29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgYWNjZXNzaWJpbGl0eVZpZXdDb29yZGluYXRlcyk7
CiAKICAgICBSZXRhaW5QdHI8UERGRG9jdW1lbnQ+IHBkZkRvY3VtZW50Rm9yUHJpbnRpbmdGcmFt
ZShXZWJDb3JlOjpGcmFtZSopOwotICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdQREZE
b2N1bWVudCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mLCBWZWN0b3I8V2ViQ29y
ZTo6SW50UmVjdD4mIHJlc3VsdFBhZ2VSZWN0cyk7CisgICAgdm9pZCBjb21wdXRlUGFnZXNGb3JQ
cmludGluZ1BERkRvY3VtZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJ
bmZvJiwgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+JiByZXN1bHRQYWdlUmVjdHMpOwogICAgIHZv
aWQgZHJhd1BERkRvY3VtZW50KENHQ29udGV4dFJlZiwgUERGRG9jdW1lbnQgKiwgY29uc3QgUHJp
bnRJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogICAgIHZvaWQgZHJhd1BhZ2VzVG9Q
REZGcm9tUERGRG9jdW1lbnQoQ0dDb250ZXh0UmVmLCBQREZEb2N1bWVudCAqLCBjb25zdCBQcmlu
dEluZm8mLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQpOwogI2VuZGlmCkBAIC0xNTg0
LDcgKzE1ODQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdm9pY2VzRGlkQ2hhbmdlKCk7CiAjZW5k
aWYKIAotICAgIHZvaWQgZnJhbWVCZWNhbWVSZW1vdGUodWludDY0X3QgZnJhbWVJRCwgV2ViQ29y
ZTo6R2xvYmFsRnJhbWVJZGVudGlmaWVyJiYgcmVtb3RlRnJhbWVJZGVudGlmaWVyLCBXZWJDb3Jl
OjpHbG9iYWxXaW5kb3dJZGVudGlmaWVyJiYgcmVtb3RlV2luZG93SWRlbnRpZmllcik7CisgICAg
dm9pZCBmcmFtZUJlY2FtZVJlbW90ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6
Okdsb2JhbEZyYW1lSWRlbnRpZmllciYmIHJlbW90ZUZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6
R2xvYmFsV2luZG93SWRlbnRpZmllciYmIHJlbW90ZVdpbmRvd0lkZW50aWZpZXIpOwogCiAgICAg
dm9pZCByZWdpc3RlclVSTFNjaGVtZUhhbmRsZXIodWludDY0X3QgaWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBzY2hlbWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCBhNTJlMjUxZDI1ZGE2ZDg4NzFiMjcyZDcx
NDIyOTEzMjljNWYyNDM4Li5iYTdmNjRiZmRjYmNjZjhhYjJjMzNmNmMyNzhiNDZkMTUxODg4ZjAx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4KQEAgLTI3LDkgKzI3LDkgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lS
ZWNlaXZlciB7CiAKICAgICBTZXRCYWNrZ3JvdW5kQ29sb3IoT3B0aW9uYWw8V2ViQ29yZTo6Q29s
b3I+IGNvbG9yKQogCi0gICAgQWRkQ29uc29sZU1lc3NhZ2UodWludDY0X3QgZnJhbWVJRCwgZW51
bTp1aW50OF90IEpTQzo6TWVzc2FnZVNvdXJjZSBtZXNzYWdlU291cmNlLCBlbnVtOnVpbnQ4X3Qg
SlNDOjpNZXNzYWdlTGV2ZWwgbWVzc2FnZUxldmVsLCBTdHJpbmcgbWVzc2FnZSwgdWludDY0X3Qg
cmVxdWVzdElEKQotICAgIFNlbmRDU1BWaW9sYXRpb25SZXBvcnQodWludDY0X3QgZnJhbWVJRCwg
VVJMIHJlcG9ydFVSTCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXBvcnREYXRhKQotICAgIEVu
cXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNv
cmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQgZXZlbnRJbml0KQorICAgIEFk
ZENvbnNvbGVNZXNzYWdlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBlbnVtOnVp
bnQ4X3QgSlNDOjpNZXNzYWdlU291cmNlIG1lc3NhZ2VTb3VyY2UsIGVudW06dWludDhfdCBKU0M6
Ok1lc3NhZ2VMZXZlbCBtZXNzYWdlTGV2ZWwsIFN0cmluZyBtZXNzYWdlLCB1aW50NjRfdCByZXF1
ZXN0SUQpCisgICAgU2VuZENTUFZpb2xhdGlvblJlcG9ydChXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgVVJMIHJlcG9ydFVSTCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXBvcnRE
YXRhKQorICAgIEVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2
ZW50OjpJbml0IGV2ZW50SW5pdCkKIAogICAgIFRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2Fn
ZXNXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpIC0+IChib29sIGhhbmRsZWQpIFN5bmNocm9ub3Vz
CiAKQEAgLTE2Miw4ICsxNjIsOCBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVu
dW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIEdvVG9C
YWNrRm9yd2FyZEl0ZW0odWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViQ29yZTo6QmFj
a0ZvcndhcmRJdGVtSWRlbnRpZmllciBiYWNrRm9yd2FyZEl0ZW1JRCwgZW51bTp1aW50OF90IFdl
YkNvcmU6OkZyYW1lTG9hZFR5cGUgYmFja0ZvcndhcmRUeXBlLCBlbnVtOmJvb2wgV2ViQ29yZTo6
U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwg
T3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9saWNpZXMpCiAg
ICAgVHJ5UmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkKIAotICAgIExvYWRVUkxJbkZyYW1lKFVSTCB1
cmwsIFN0cmluZyByZWZlcnJlciwgdWludDY0X3QgZnJhbWVJRCkKLSAgICBMb2FkRGF0YUluRnJh
bWUoSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEsIFN0cmluZyBNSU1FVHlwZSwgU3RyaW5nIGVuY29k
aW5nTmFtZSwgVVJMIGJhc2VVUkwsIHVpbnQ2NF90IGZyYW1lSUQpCisgICAgTG9hZFVSTEluRnJh
bWUoVVJMIHVybCwgU3RyaW5nIHJlZmVycmVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCkKKyAgICBMb2FkRGF0YUluRnJhbWUoSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEsIFN0cmlu
ZyBNSU1FVHlwZSwgU3RyaW5nIGVuY29kaW5nTmFtZSwgVVJMIGJhc2VVUkwsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlEKQogICAgIExvYWRSZXF1ZXN0KHN0cnVjdCBXZWJLaXQ6Okxv
YWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzKQogICAgIExvYWREYXRhKHN0cnVjdCBXZWJLaXQ6
OkxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzKQogICAgIExvYWRBbHRlcm5hdGVIVE1MKHN0
cnVjdCBXZWJLaXQ6OkxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzKQpAQCAtMTczLDcgKzE3
Myw3IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktp
dDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAgICAgUmVsb2FkKHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgdWludDMyX3QgcmVsb2FkT3B0aW9ucywgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSkKICAgICBTdG9wTG9hZGluZygpCiAKLSAg
ICBTdG9wTG9hZGluZ0ZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCisgICAgU3RvcExvYWRpbmdGcmFt
ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKICAgICAKICAgICBSZXN0b3JlU2Vz
c2lvbihWZWN0b3I8V2ViS2l0OjpCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGU+IGl0ZW1TdGF0ZXMp
CiAgICAgVXBkYXRlQmFja0ZvcndhcmRMaXN0Rm9yUmVhdHRhY2goVmVjdG9yPFdlYktpdDo6QmFj
a0ZvcndhcmRMaXN0SXRlbVN0YXRlPiBpdGVtU3RhdGVzKQpAQCAtMTgyLDggKzE4Miw4IEBAIEdl
bmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhl
dGljRWRpdGluZ0NvbW1hbmRUeXBlCiAgICAgRGlkUmVtb3ZlQmFja0ZvcndhcmRJdGVtKHN0cnVj
dCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyIGJhY2tGb3J3YXJkSXRlbUlEKQog
CiAgICAgVXBkYXRlV2Vic2l0ZVBvbGljaWVzKHN0cnVjdCBXZWJLaXQ6OldlYnNpdGVQb2xpY2ll
c0RhdGEgd2Vic2l0ZVBvbGljaWVzKQotICAgIERpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbih1aW50
NjRfdCBmcmFtZUlELCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJDb3JlOjpQb2xpY3lDaGVja0lk
ZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UG9s
aWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJLaXQ6OkRv
d25sb2FkSUQgZG93bmxvYWRJRCwgT3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRh
PiB3ZWJzaXRlUG9saWNpZXMpCi0gICAgQ29udGludWVXaWxsU3VibWl0Rm9ybSh1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCBsaXN0ZW5lcklEKQorICAgIERpZFJlY2VpdmVQb2xpY3lEZWNpc2lv
bihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCwg
V2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgZW51
bTp1aW50OF90IFdlYkNvcmU6OlBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIE9wdGlvbmFsPFdlYktp
dDo6V2Vic2l0ZVBvbGljaWVzRGF0YT4gd2Vic2l0ZVBvbGljaWVzKQorICAgIENvbnRpbnVlV2ls
bFN1Ym1pdEZvcm0oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IGxp
c3RlbmVySUQpCiAKICAgICBDbGVhclNlbGVjdGlvbigpCiAgICAgUmVzdG9yZVNlbGVjdGlvbklu
Rm9jdXNlZEVkaXRhYmxlRWxlbWVudCgpCkBAIC0xOTYsMTUgKzE5NiwxNSBAQCBHZW5lcmF0ZVN5
bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRp
bmdDb21tYW5kVHlwZQogI2lmIEVOQUJMRShNSFRNTCkKICAgICBHZXRDb250ZW50c0FzTUhUTUxE
YXRhKFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogI2VuZGlmCi0gICAgR2V0TWFpblJl
c291cmNlRGF0YU9mRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpDYWxsYmFja0lEIGNh
bGxiYWNrSUQpCi0gICAgR2V0UmVzb3VyY2VEYXRhRnJvbUZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IFN0cmluZyByZXNvdXJjZVVSTCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCisgICAg
R2V0TWFpblJlc291cmNlRGF0YU9mRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIEdldFJlc291cmNlRGF0YUZy
b21GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIHJlc291cmNl
VVJMLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBHZXRSZW5kZXJUcmVlRXh0
ZXJuYWxSZXByZXNlbnRhdGlvbihXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBH
ZXRTZWxlY3Rpb25PckNvbnRlbnRzQXNTdHJpbmcoV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNr
SUQpCiAgICAgR2V0U2VsZWN0aW9uQXNXZWJBcmNoaXZlRGF0YShXZWJLaXQ6OkNhbGxiYWNrSUQg
Y2FsbGJhY2tJRCkKLSAgICBHZXRTb3VyY2VGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJL
aXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKLSAgICBHZXRXZWJBcmNoaXZlT2ZGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBHZXRTb3Vy
Y2VGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViS2l0OjpDYWxs
YmFja0lEIGNhbGxiYWNrSUQpCisgICAgR2V0V2ViQXJjaGl2ZU9mRnJhbWUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAg
IFJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZVNjcmlwdFdvcmxkKFN0cmluZyBzY3JpcHQsIGJvb2wg
Zm9yY2VVc2VyR2VzdHVyZSwgT3B0aW9uYWw8U3RyaW5nPiB3b3JsZE5hbWUsIFdlYktpdDo6Q2Fs
bGJhY2tJRCBjYWxsYmFja0lEKQotICAgIFJ1bkphdmFTY3JpcHRJbkZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIFN0cmluZyBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgV2ViS2l0OjpDYWxs
YmFja0lEIGNhbGxiYWNrSUQpCisgICAgUnVuSmF2YVNjcmlwdEluRnJhbWUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVy
ZSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgRm9yY2VSZXBhaW50KFdlYktp
dDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogCiAgICAgU2VsZWN0QWxsKCkKQEAgLTM4MCwxOCAr
MzgwLDE4IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdl
YktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAgICAgRGlkUmVjZWl2ZU5vdGlmaWNh
dGlvblBlcm1pc3Npb25EZWNpc2lvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCwgYm9vbCBhbGxv
d2VkKQogCiAgICAgIyBQcmludGluZy4KLSAgICBCZWdpblByaW50aW5nKHVpbnQ2NF90IGZyYW1l
SUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8pCisgICAgQmVnaW5QcmludGlu
ZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJ
bmZvIHByaW50SW5mbykKICAgICBFbmRQcmludGluZygpCi0gICAgQ29tcHV0ZVBhZ2VzRm9yUHJp
bnRpbmcodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5m
bywgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCisgICAgQ29tcHV0ZVBhZ2VzRm9yUHJp
bnRpbmcoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlBy
aW50SW5mbyBwcmludEluZm8sIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogI2lmIFBM
QVRGT1JNKENPQ09BKQotICAgIERyYXdSZWN0VG9JbWFnZSh1aW50NjRfdCBmcmFtZUlELCBzdHJ1
Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCBXZWJDb3JlOjpJbnRSZWN0IHJlY3QsIFdl
YkNvcmU6OkludFNpemUgaW1hZ2VTaXplLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkK
LSAgICBEcmF3UGFnZXNUb1BERih1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmlu
dEluZm8gcHJpbnRJbmZvLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIFdlYktpdDo6
Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIERyYXdSZWN0VG9JbWFnZShXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywg
V2ViQ29yZTo6SW50UmVjdCByZWN0LCBXZWJDb3JlOjpJbnRTaXplIGltYWdlU2l6ZSwgV2ViS2l0
OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCisgICAgRHJhd1BhZ2VzVG9QREYoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8s
IHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxi
YWNrSUQpCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBDb21wdXRlUGFnZXNGb3JQcmlu
dGluZ0FuZERyYXdUb1BERih1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludElu
Zm8gcHJpbnRJbmZvLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkgLT4gKHVpbnQzMl90
IHBhZ2VDb3VudCkgU3luY2hyb25vdXMKKyAgICBDb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERy
YXdUb1BERihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6
UHJpbnRJbmZvIHByaW50SW5mbywgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpIC0+ICh1
aW50MzJfdCBwYWdlQ291bnQpIFN5bmNocm9ub3VzCiAjZW5kaWYKICNlbmRpZgogI2lmIFBMQVRG
T1JNKEdUSykKLSAgICBEcmF3UGFnZXNGb3JQcmludGluZyh1aW50NjRfdCBmcmFtZUlELCBzdHJ1
Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJh
Y2tJRCkKKyAgICBEcmF3UGFnZXNGb3JQcmludGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2ViS2l0OjpDYWxs
YmFja0lEIGNhbGxiYWNrSUQpCiAjZW5kaWYKIAogICAgICMgTWVkaWEKQEAgLTQxMyw3ICs0MTMs
NyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6
OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIENvbmZpcm1Db21wb3NpdGlvbihTdHJp
bmcgdGV4dCwgaW50NjRfdCBzZWxlY3Rpb25TdGFydCwgaW50NjRfdCBzZWxlY3Rpb25MZW5ndGgp
CiAgICAgQ2FuY2VsQ29tcG9zaXRpb24oKQogCi0gICAgQ29sbGFwc2VTZWxlY3Rpb25JbkZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQpCisgICAgQ29sbGFwc2VTZWxlY3Rpb25JbkZyYW1lKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogCiAgICAgR2V0Q2VudGVyRm9yWm9vbUdlc3R1cmUo
V2ViQ29yZTo6SW50UG9pbnQgY2VudGVySW5WaWV3Q29vcmRpbmF0ZXMpIC0+IChXZWJDb3JlOjpJ
bnRQb2ludCBjZW50ZXIpIFN5bmNocm9ub3VzCiAjZW5kaWYKQEAgLTUzNiw3ICs1MzYsNyBAQCBH
ZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRo
ZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIERpZFJlY2VpdmVQYXNzd29yZEZvclF1aWNrTG9v
a0RvY3VtZW50KFN0cmluZyBwYXNzd29yZCkKICNlbmRpZgogCi0gICAgRnJhbWVCZWNhbWVSZW1v
dGUodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6Okdsb2JhbEZyYW1lSWRlbnRpZmll
ciByZW1vdGVGcmFtZUlkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVu
dGlmaWVyIHJlbW90ZVdpbmRvd0lkZW50aWZpZXIpCisgICAgRnJhbWVCZWNhbWVSZW1vdGUoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpHbG9iYWxGcmFt
ZUlkZW50aWZpZXIgcmVtb3RlRnJhbWVJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6R2xvYmFs
V2luZG93SWRlbnRpZmllciByZW1vdGVXaW5kb3dJZGVudGlmaWVyKQogCiAgICAgUmVnaXN0ZXJV
UkxTY2hlbWVIYW5kbGVyKHVpbnQ2NF90IGlkZW50aWZpZXIsIFN0cmluZyBzY2hlbWUpCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3Rr
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNw
cAppbmRleCBjOTgyZDBiNzYyMWVjMzBiYWI0N2RlYTI4NzZlOTc2MDBhZGIzODgxLi4zNjg4ZTE1
ZWE5MGU4N2RiOWNjZGU3MTliZjZjZTU2YjMxODJiOGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUd0ay5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VHdGsuY3BwCkBAIC0xODMsNyArMTgz
LDcgQEAgdm9pZCBXZWJQYWdlOjpzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCkKICAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldElucHV0TWV0aG9kU3RhdGUoZW5hYmxl
ZCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OmNvbGxhcHNlU2VsZWN0aW9uSW5GcmFtZSh1aW50NjRf
dCBmcmFtZUlEKQordm9pZCBXZWJQYWdlOjpjb2xsYXBzZVNlbGVjdGlvbkluRnJhbWUoRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUt
PmNvcmVGcmFtZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbQppbmRleCBlNGM2NDI3MWNjZjg5M2IzNTliOTQ1NzljOGIyZDE3OTFk
ZGE5Y2I5Li4yZGIwZWI2YmJhYTQ1NzhiZjZhNjk1Y2U0MDAyZDc3MzY1MTZiZDQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpA
QCAtNTUxLDcgKzU1MSw3IEBAIHZvaWQgV2ViUGFnZTo6YWNjZXB0c0ZpcnN0TW91c2UoaW50LCBj
b25zdCBXZWJLaXQ6OldlYk1vdXNlRXZlbnQmLCBDb21wbGV0aW9uSGFuCiAgICAgY29tcGxldGlv
bkhhbmRsZXIoZmFsc2UpOwogfQogCi12b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50
aW5nUERGRG9jdW1lbnQodWludDY0X3QsIGNvbnN0IFByaW50SW5mbyYsIFZlY3RvcjxJbnRSZWN0
PiYpCit2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERGRG9jdW1lbnQoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mLCBWZWN0b3I8SW50UmVjdD4m
KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkBAIC0zNzM5LDcgKzM3MzksNyBAQCB2b2lk
IFdlYlBhZ2U6OmRpc3BhdGNoQXN5bmNocm9ub3VzVG91Y2hFdmVudHMoY29uc3QgVmVjdG9yPFdl
YlRvdWNoRXZlbnQsIDE+JiBxdQogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBh
Z2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJ
bmZvJiBwcmludEluZm8sIENhbGxiYWNrSUQgY2FsbGJhY2tJRCwgTWVzc2FnZXM6OldlYlBhZ2U6
OkNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGOjpEZWxheWVkUmVwbHkmJiByZXBs
eSkKK3ZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZv
LCBDYWxsYmFja0lEIGNhbGxiYWNrSUQsIE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21wdXRlUGFnZXNG
b3JQcmludGluZ0FuZERyYXdUb1BERjo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7CiAgICAgaWYg
KHByaW50SW5mby5zbmFwc2hvdEZpcnN0UGFnZSkgewogICAgICAgICByZXBseSgxKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1t
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KaW5k
ZXggNDMxZGZhMTdhY2EwNWI2MGVmZTlhZTA0MDNhNDA4ODBlMjgxOGQ4MC4uZmUyNDE3YjBhN2Q1
ODM2M2M1NGJiODZkYTU3ODk4ZDExZmJlMzUzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KQEAgLTY3MCw3ICs2NzAsNyBAQCB2
b2lkIFdlYlBhZ2U6OnVwZGF0ZUhlYWRlckFuZEZvb3RlckxheWVyc0ZvckRldmljZVNjYWxlQ2hh
bmdlKGZsb2F0IHNjYWxlRmFjdG9yKQogICAgICAgICBtX2Zvb3RlckJhbm5lci0+ZGlkQ2hhbmdl
RGV2aWNlU2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IpOwogfQogCi12b2lkIFdlYlBhZ2U6OmNvbXB1
dGVQYWdlc0ZvclByaW50aW5nUERGRG9jdW1lbnQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJp
bnRJbmZvJiBwcmludEluZm8sIFZlY3RvcjxJbnRSZWN0PiYgcmVzdWx0UGFnZVJlY3RzKQordm9p
ZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZ1BERkRvY3VtZW50KFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgVmVjdG9y
PEludFJlY3Q+JiByZXN1bHRQYWdlUmVjdHMpCiB7CiAgICAgQVNTRVJUKHJlc3VsdFBhZ2VSZWN0
cy5pc0VtcHR5KCkpOwogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLndlYkZyYW1lKGZyYW1lSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwCmluZGV4IGEyZGExMmM2MDIyOTM3M2NmODc4OTJiODNkYWE1NzczNTAwYTc3ZjIuLjU2NWZj
YWFlZDEzMDllNzg2NTY0YzBiZmVhYjhiOWUxYmY1NDA3NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTc2OCwxNyArNzY4LDE3IEBAIHZvaWQgV2ViUHJvY2Vz
czo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRl
Y29kZXImIGRlCiAgICAgTE9HX0VSUk9SKCJVbmhhbmRsZWQgd2ViIHByb2Nlc3MgbWVzc2FnZSAn
JXM6JXMnIiwgZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkudG9TdHJpbmcoKS5kYXRhKCks
IGRlY29kZXIubWVzc2FnZU5hbWUoKS50b1N0cmluZygpLmRhdGEoKSk7CiB9CiAKLVdlYkZyYW1l
KiBXZWJQcm9jZXNzOjp3ZWJGcmFtZSh1aW50NjRfdCBmcmFtZUlEKSBjb25zdAorV2ViRnJhbWUq
IFdlYlByb2Nlc3M6OndlYkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSBjb25zdAogewog
ICAgIHJldHVybiBtX2ZyYW1lTWFwLmdldChmcmFtZUlEKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNz
OjphZGRXZWJGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJGcmFtZSogZnJhbWUpCit2b2lkIFdl
YlByb2Nlc3M6OmFkZFdlYkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJGcmFtZSog
ZnJhbWUpCiB7CiAgICAgbV9mcmFtZU1hcC5zZXQoZnJhbWVJRCwgZnJhbWUpOwogfQogCi12b2lk
IFdlYlByb2Nlc3M6OnJlbW92ZVdlYkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBy
b2Nlc3M6OnJlbW92ZVdlYkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIG1f
ZnJhbWVNYXAucmVtb3ZlKGZyYW1lSUQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaAppbmRleCBkNGMwMWJhYjFmOTNkYTkwODViMGYyMTk0Y2QzMjdkNDcxODY1MGIyLi4zY2Iy
YzQ5Njk0OTk4ODdiMzJiNTNiM2E2NmQwYmJmNjg1YTMyMThkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJXZWJTUUxpdGVE
YXRhYmFzZVRyYWNrZXIuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRDaGFubmVsTWFuYWdlci5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJh
bWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVnaXN0cmFibGVEb21haW4uaD4KICNpZiBQTEFURk9STShNQUMpCkBA
IC0xNzIsOSArMTczLDkgQEAgcHVibGljOgogCiAgICAgYm9vbCBmdWxsS2V5Ym9hcmRBY2Nlc3NF
bmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9mdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkOyB9CiAK
LSAgICBXZWJGcmFtZSogd2ViRnJhbWUodWludDY0X3QpIGNvbnN0OwotICAgIHZvaWQgYWRkV2Vi
RnJhbWUodWludDY0X3QsIFdlYkZyYW1lKik7Ci0gICAgdm9pZCByZW1vdmVXZWJGcmFtZSh1aW50
NjRfdCk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcikg
Y29uc3Q7CisgICAgdm9pZCBhZGRXZWJGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdl
YkZyYW1lKik7CisgICAgdm9pZCByZW1vdmVXZWJGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIpOwogCiAgICAgV2ViUGFnZUdyb3VwUHJveHkqIHdlYlBhZ2VHcm91cChXZWJDb3JlOjpQYWdl
R3JvdXAqKTsKICAgICBXZWJQYWdlR3JvdXBQcm94eSogd2ViUGFnZUdyb3VwKHVpbnQ2NF90IHBh
Z2VHcm91cElEKTsKQEAgLTQ4OSw3ICs0OTAsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2Z1
bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQgeyBmYWxzZSB9OwogCi0gICAgSGFzaE1hcDx1aW50NjRf
dCwgV2ViRnJhbWUqPiBtX2ZyYW1lTWFwOworICAgIEhhc2hNYXA8V2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBXZWJGcmFtZSo+IG1fZnJhbWVNYXA7CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8Y29u
c3QgY2hhciosIHN0ZDo6dW5pcXVlX3B0cjxXZWJQcm9jZXNzU3VwcGxlbWVudD4sIFB0ckhhc2g8
Y29uc3QgY2hhcio+PiBXZWJQcm9jZXNzU3VwcGxlbWVudE1hcDsKICAgICBXZWJQcm9jZXNzU3Vw
cGxlbWVudE1hcCBtX3N1cHBsZW1lbnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXgg
YjE0MDNkMDU2MzkzYjM5N2QwMTdkMDkzZGU1ZmUwNGNkY2NhOGNjZC4uZDYwNjMwZmUwY2FhZGY0
M2E4Yjc0NDlkMmQ1NDkwZWRiMDhlNmFjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBA
IC02NCw3ICs2NCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBoYXNXZWJWaWV3KCkgY29uc3QgZmlu
YWw7IC8vIG1haW5seSBmb3IgYXNzZXJ0aW9ucwogCiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXI+IHBhZ2VJRCgpIGNvbnN0IGZpbmFsOwotICAgIE9wdGlvbmFsPHVpbnQ2NF90
PiBmcmFtZUlEKCkgY29uc3QgZmluYWw7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyPiBmcmFtZUlEKCkgY29uc3QgZmluYWw7CiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIG1ha2VSZXByZXNlbnRhdGlvbihXZWJDb3Jl
OjpEb2N1bWVudExvYWRlciopIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRl
eCAzZGQ1MGU3YjNiOWNmOTkzMzQ5YzlhYmI0Y2I0OTc4MzdlZWMzNTNlLi5iN2E2NWU5OTM0ZmZm
MDg4MGI3NTY4Y2EwMGU5NjJlMDE1YWU0MjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5t
bQpAQCAtMjE0LDcgKzIxNCw3IEBAIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBXZWJGcmFtZUxv
YWRlckNsaWVudDo6cGFnZUlEKCkgY29uc3QKICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQog
Ci1PcHRpb25hbDx1aW50NjRfdD4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZyYW1lSUQoKSBjb25z
dAorT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZnJhbWVJ
RCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376353</attachid>
            <date>2019-08-14 22:01:32 -0700</date>
            <delta_ts>2019-08-14 22:41:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199986-20190814220127.patch</filename>
            <type>text/plain</type>
            <size>448825</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjViYzhmMGJkODIyMTlm
YTcwYmJiZTk0MDdiZTZlMzY0MDY3NmQyMS4uMGIxN2YwOWE5MjllODJhMjhjNWQ4NTM3NTNkNWE2
OWJlNTA0NWRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE5LTA4LTE0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBPYmplY3RJ
ZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+IGZvciBmcmFtZUlEcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5OTg2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIFVzZSB0aGUgc3Ryb25nbHktdHlwZWQg
RnJhbWVJZGVudGlmaWVyIGluc3RlYWQgb2YgdWludDY0X3QgYXMgZnJhbWUgaWRlbnRpZmllcnMg
ZXZlcnl3aGVyZS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBsb2FkZXIvQ29va2llSmFyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNv
b2tpZUphcjo6Y29va2llcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDb29raWVKYXI6OnNl
dENvb2tpZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDb29raWVKYXI6OmdldFJh
d0Nvb2tpZXMgY29uc3QpOgorICAgICAgICAqIGxvYWRlci9Db29raWVKYXIuaDoKKyAgICAgICAg
KiBsb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIGxvYWRlci9GcmFt
ZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcDoK
KyAgICAgICAgKiBsb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6
TmF2aWdhdGlvbkFjdGlvbjo6UmVxdWVzdGVyOjpmcmFtZUlEIGNvbnN0KToKKyAgICAgICAgKiBw
YWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHBhZ2UvR2xvYmFsRnJhbWVJZGVudGlmaWVy
Lmg6CisgICAgICAgIChXZWJDb3JlOjpHbG9iYWxGcmFtZUlkZW50aWZpZXI6OmRlY29kZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Db29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eS5o
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2hvdWxkQmxvY2tDb29r
aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6aGFz
U3RvcmFnZUFjY2VzcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmdyYW50U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZSk6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAo
V2ViQ29yZTo6Y29va2llc0ZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpjb29raWVzRm9yU2Vz
c2lvbik6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNG
b3JET00gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpj
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9NIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyBjb25zdCk6CisK
IDIwMTktMDgtMTQgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbV0hMU0xdIFZhcmlhYmxlcyBzaG91bGRuJ3QgYmUgYWJsZSB0byBoYXZlIHZvaWQg
dHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCA3MDlmNWMzNjI1MTQyODY4OTQ3M2M5OThiMzhmZGFhYmI1NGE2MGNk
Li5hMGRlZWQ1MTMzMmY4ZDliOWQ1Y2EwMjI0MTk4Y2I1M2E0NDVhYTE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM0OSBAQAorMjAxOS0wOC0xNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFw
cGxlLmNvbT4KKworICAgICAgICBVc2UgT2JqZWN0SWRlbnRpZmllcjxGcmFtZUlkZW50aWZpZXJU
eXBlPiBmb3IgZnJhbWVJRHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5OTk4NgorCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKwor
ICAgICAgICBVc2UgdGhlIHN0cm9uZ2x5LXR5cGVkIEZyYW1lSWRlbnRpZmllciBpbnN0ZWFkIG9m
IHVpbnQ2NF90IGFzIGZyYW1lIGlkZW50aWZpZXJzIGV2ZXJ5d2hlcmUuCisKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAo
V2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z3JhbnRTdG9yYWdl
QWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TWVtb3J5U3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TWVtb3J5U3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKToKKyAgICAg
ICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpncmFudFN0b3Jh
Z2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5
U3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEhhc1N0
b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3Mp
OgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxH
cmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNGb3JET00pOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0Q29va2llc0Zy
b21ET00pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Z2V0UmF3Q29va2llcyk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6aGFz
U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrTG9hZENoZWNrZXI6Ok5ldHdvcmtMb2FkQ2hlY2tlcik6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0xvYWRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpyZXRyaWV2ZUNhY2hlRW50
cnkpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0TmV0d29y
a0xvYWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnZlcnRU
b0Rvd25sb2FkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjphYm9y
dCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNl
aXZlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRG
aW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpk
aWRGYWlsTG9hZGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
Y29udGludWVXaWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0Ojplc2NhcGVJREZvckpT
T04pOgorICAgICAgICAoV2ViS2l0Ojpsb2dCbG9ja2VkQ29va2llSW5mb3JtYXRpb24pOgorICAg
ICAgICAoV2ViS2l0Ojpsb2dDb29raWVJbmZvcm1hdGlvbkludGVybmFsKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpsb2dDb29raWVJbmZvcm1hdGlvbik6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTaGFyZWQvQVBJ
L0FQSUZyYW1lSGFuZGxlLmNwcDoKKyAgICAgICAgKEFQSTo6RnJhbWVIYW5kbGU6OmNyZWF0ZSk6
CisgICAgICAgIChBUEk6OkZyYW1lSGFuZGxlOjpjcmVhdGVBdXRvY29udmVydGluZyk6CisgICAg
ICAgIChBUEk6OkZyYW1lSGFuZGxlOjpGcmFtZUhhbmRsZSk6CisgICAgICAgIChBUEk6OkZyYW1l
SGFuZGxlOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuaDoK
KyAgICAgICAgKEFQSTo6RnJhbWVIYW5kbGU6OmZyYW1lSUQgY29uc3QpOgorICAgICAgICAqIFNo
YXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5kbGUubW06CisgICAgICAgICgtW19XS0ZyYW1lSGFu
ZGxlIGhhc2hdKToKKyAgICAgICAgKC1bX1dLRnJhbWVIYW5kbGUgX2ZyYW1lSURdKToKKyAgICAg
ICAgKC1bX1dLRnJhbWVIYW5kbGUgaW5pdFdpdGhDb2RlcjpdKToKKyAgICAgICAgKC1bX1dLRnJh
bWVIYW5kbGUgZW5jb2RlV2l0aENvZGVyOl0pOgorICAgICAgICAqIFNoYXJlZC9BdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50
aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAg
ICAgICogU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oOgorICAg
ICAgICAqIFNoYXJlZC9GcmFtZUluZm9EYXRhLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
L1dLRnJhbWVIYW5kbGVSZWYuY3BwOgorICAgICAgICAoV0tGcmFtZUhhbmRsZUdldEZyYW1lSUQp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAo
LVtXS1dlYlZpZXcgX3ByaW50T3BlcmF0aW9uV2l0aFByaW50SW5mbzpmb3JGcmFtZTpdKToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IF9jYW5DaGFuZ2VGcmFtZUxheW91dDpdKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5tbToKKyAgICAgICAgKC1bX1dLSW5zcGVj
dG9yIHNob3dNYWluUmVzb3VyY2VGb3JGcmFtZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0
b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpT
aW11bGF0ZWRJbnB1dERpc3BhdGNoZXI6OnJ1bik6CisgICAgICAgICogVUlQcm9jZXNzL0F1dG9t
YXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL0F1
dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJB
dXRvbWF0aW9uU2Vzc2lvbjo6d2ViRnJhbWVJREZvckhhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYkF1dG9tYXRpb25TZXNzaW9uOjpoYW5kbGVGb3JXZWJGcmFtZUlEKToKKyAgICAgICAgKFdl
YktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnN3aXRjaFRvQnJvd3NpbmdDb250ZXh0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OndhaXRGb3JOYXZpZ2F0aW9uVG9D
b21wbGV0ZSk6CisgICAgICAgIChXZWJLaXQ6OmZpbmRQYWdlRm9yRnJhbWVJRCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNwb25kVG9QZW5kaW5nRnJhbWVOYXZp
Z2F0aW9uQ2FsbGJhY2tzV2l0aFRpbWVvdXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0
aW9uU2Vzc2lvbjo6ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24pOgorICAgICAgICAoV2ViS2l0
OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVzb2x2ZUNoaWxkRnJhbWVIYW5kbGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVzb2x2ZVBhcmVudEZyYW1lSGFuZGxl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OmNvbXB1dGVFbGVtZW50
TGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnNlbGVjdE9w
dGlvbkVsZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Z2V0
QWxsQ29va2llcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpkZWxl
dGVTaW5nbGVDb29raWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6
dmlld3BvcnRJblZpZXdDZW50ZXJQb2ludE9mRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkF1dG9tYXRpb25TZXNzaW9uOjp0YWtlU2NyZWVuc2hvdCk6CisgICAgICAgICogVUlQcm9jZXNz
L0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGll
bnQ6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbik6CisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1dLUmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyLm1tOgorICAgICAg
ICAoLVtXS1JlbG9hZEZyYW1lRXJyb3JSZWNvdmVyeUF0dGVtcHRlciBhdHRlbXB0UmVjb3Zlcnld
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxv
Y2tMb2FkRm9yRnJhbWVTaGFyZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlByb3Zpc2lvbmFsUGFnZVByb3h5Ojp2YWxpZGF0ZUlucHV0KToKKyAgICAgICAgKFdlYktpdDo6
UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSk6CisgICAgICAgIChXZWJL
aXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QpOgorICAg
ICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExv
YWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRG
YWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25h
bFBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UHJv
dmlzaW9uYWxQYWdlUHJveHk6OmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJM
Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlz
aW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKFdlYktp
dDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJl
Y3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lv
bmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyk6CisgICAg
ICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tM
b2FkRm9yRnJhbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6U2VydmljZVdvcmtlclByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvU2VydmljZVdvcmtlclBy
b2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpTdXNwZW5kZWRQYWdlUHJveHk6OlN1c3BlbmRlZFBhZ2VQcm94
eSk6CisgICAgICAgICogVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9u
Q2hlY2tQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVj
a1Byb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5
OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94
eTo6ZnJhbWVJRCBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlc2V0QWNjZXNzKToKKyAgICAgICAgKFdlYktp
dDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnNlYXJjaEZvckdyYW50
ZWRSZXF1ZXN0IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6Ondhc1JlcXVlc3REZW5pZWQpOgorICAgICAgICAoV2ViS2l0OjpV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBl
cm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5OjpnZXRVc2VyTWVkaWFQZXJtaXNzaW9uSW5mbyk6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp3YXNHcmFu
dGVkVmlkZW9PckF1ZGlvQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6
OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6Om1haW5GcmFtZUlEIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6ZnJhbWVJRCBjb25z
dCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZVByb3h5OjpXZWJGcmFtZVByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViRnJhbWVQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZVByb3h5OjpjcmVhdGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZVByb3h5OjpmcmFtZUlEIGNvbnN0KToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpzdXNwZW5kQ3VycmVudFBhZ2VJZlBvc3NpYmxlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5Ojpjb21taXRQcm92aXNpb25hbFBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRJbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmRpZENyZWF0ZVN1YmZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpkaWRDcmVhdGVXaW5kb3cpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFN0
YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZEV4cGxpY2l0T3BlbkZvckZyYW1lKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25h
bExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2
ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ2FuY2VsQ2xpZW50UmVkaXJl
Y3RGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJv
dmlzaW9uYWxVUkxGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlk
Q2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9y
RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRGb3JG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmFpbExvYWRGb3JGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkU2FtZURvY3VtZW50TmF2aWdh
dGlvbkZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VN
YWluRG9jdW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVU
aXRsZUZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGaXJzdExh
eW91dEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGaXJzdFZp
c3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRGV0ZWN0WFNTRm9yRnJhbWUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmZyYW1lRGlkQmVjb21lRnJhbWVTZXQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3lu
Yyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbkFzeW5jU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNTaGFyZWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0Fj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJl
c3BvbnNlU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1bmFibGVUb0lt
cGxlbWVudFBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2lsbFN1Ym1p
dEZvcm0pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZE5hdmlnYXRlV2l0aE5h
dmlnYXRpb25EYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWROYXZpZ2F0
ZVdpdGhOYXZpZ2F0aW9uRGF0YVNoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0U2hhcmVkKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRVcGRhdGVIaXN0b3J5VGl0bGUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRBbGVydCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdENvbmZpcm0pOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRQcm9tcHQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cnVuT3BlblBhbmVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpwcmludEZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpmb2N1
c2VkRnJhbWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpmcmFtZVNl
dExhcmdlc3RGcmFtZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpleGNlZWRlZERhdGFiYXNlUXVvdGEpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OnJlcXVlc3RTdG9yYWdlU3BhY2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6Om1ha2VTdG9yYWdlU3BhY2VSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNl
c0ZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzaG91bGRBbGxvd0Rl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OndlYkZyYW1lIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpjYW5DcmVhdGVGcmFtZSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZnJhbWVDcmVhdGVkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Byb3h5OjpkaWREZXN0cm95RnJhbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbToKKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyBfd2tfcGFnZUNvdW50Rm9yUHJpbnRGb3JtYXR0ZXI6XSk6
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZXZhbHVhdGVKYXZhU2NyaXB0Q2FsbGJhY2spOgor
ICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpkaWRDbGVhcldpbmRv
d09iamVjdEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eTo6ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJB
dXRvbWF0aW9uU2Vzc2lvblByb3h5OjpkaWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZy
YW1lV2l0aE9yZGluYWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOb2RlSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoTmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVQYXJlbnRG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmZvY3Vz
RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpjb21w
dXRlRWxlbWVudExheW91dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9u
UHJveHk6OnNlbGVjdE9wdGlvbkVsZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5Ojp0YWtlU2NyZWVuc2hvdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OmdldENvb2tpZXNGb3JGcmFtZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRlbGV0ZUNvb2tpZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9X
S1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbToKKyAgICAgICAgKCtbV0tXZWJQcm9jZXNzUGx1Z0lu
RnJhbWUgbG9va1VwRnJhbWVGcm9tSGFuZGxlOl0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0
d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0
cmF0ZWd5OjpzY2hlZHVsZUxvYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVn
eTo6c2NoZWR1bGVMb2FkRnJvbU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
TG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaFJlc291cmNlTG9hZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlJlc291cmNlTG9hZGVyOjpkaWRGYWlsUmVzb3VyY2VMb2FkKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUmVzb3VyY2VMb2FkZXI6OmRpZEJsb2NrQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6c3RvcExvYWRpbmdBZnRlclhGcmFt
ZU9wdGlvbnNPckNvbnRlbnRTZWN1cml0eVBvbGljeURlbmllZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzb3VyY2UpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjppbnN0YWxsU2VydmljZVdvcmtlcik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmZvY3VzZWRGcmFtZUNoYW5nZWQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6Omhhc1N0b3JhZ2VBY2Nl
c3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RTdG9yYWdlQWNj
ZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZnJhbWVJ
RCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERpZEZhaWxQcm92aXNpb25hbExvYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRl
ckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJDb29raWVKYXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVKYXI6
OmNvb2tpZXMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVKYXI6OnNldENvb2tp
ZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llSmFyOjpnZXRSYXdD
b29raWVzIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFy
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRnJhbWU6OldlYkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6Z2VuZXJhdGVG
cmFtZUlEKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUu
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OmZyYW1lSUQgY29uc3QpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJJbnNwZWN0b3I6OnNob3dNYWluUmVzb3VyY2VGb3JGcmFtZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJJbnNwZWN0b3IubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpsb2FkVVJMSW5GcmFtZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxvYWREYXRhSW5GcmFtZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OnN0b3BMb2FkaW5nRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
Ojpjb250aW51ZVdpbGxTdWJtaXRGb3JtKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cnVu
SmF2YVNjcmlwdEluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRTb3VyY2VG
b3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldE1haW5SZXNvdXJjZURhdGFP
ZkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0UmVzb3VyY2VEYXRhRnJvbUZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0V2ViQXJjaGl2ZU9mRnJhbWUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjphZGRDb25zb2xlTWVzc2FnZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OnNlbmRDU1BWaW9sYXRpb25SZXBvcnQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjplbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmJlZ2luUHJpbnRpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nSW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmRyYXdSZWN0VG9JbWFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRyYXdQYWdlc1Rv
UERGKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZHJhd1BhZ2VzVG9QREZJbXBsKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZHJhd1BhZ2VzRm9yUHJpbnRpbmcpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpmcmFtZUJlY2FtZVJlbW90ZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6Omhhc1N0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXF1
ZXN0U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNob3VsZEFsbG93
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9T
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZ1BE
RkRvY3VtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJp
bnRpbmdBbmREcmF3VG9QREYpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2Vi
UGFnZU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJp
bnRpbmdQREZEb2N1bWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6d2ViRnJhbWUgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzOjphZGRXZWJGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnJlbW92ZVdlYkZyYW1lKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
aDoKKwogMjAxOS0wOC0xNCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZW1vdmUgbV9ibG9ja1JlY3RGb3JUZXh0U2VsZWN0aW9uIChhbG9uZyB3aXRo
IHJlbGF0ZWQgY29kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCAwMmExY2U3YmE2
OGViZGQyZTdmYjNhYmY4NGMzZGI2OGQ3NDg1ZTZlLi43ZDQyYTg3NjllZGFiMzZhM2Q3OTIxN2Ni
NjljMjAxMWI4YzY0ZmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTktMDgtMTQgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CisKKyAgICAgICAgVXNlIE9iamVjdElkZW50aWZpZXI8RnJhbWVJZGVudGlmaWVyVHlwZT4gZm9y
IGZyYW1lSURzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTk5ODYKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAg
VXNlIHRoZSBzdHJvbmdseS10eXBlZCBGcmFtZUlkZW50aWZpZXIgaW5zdGVhZCBvZiB1aW50NjRf
dCBhcyBmcmFtZSBpZGVudGlmaWVycyBldmVyeXdoZXJlLgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpm
cmFtZUlEIGNvbnN0KToKKwogMjAxOS0wOC0xNCAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFw
cGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQ4NTI2LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UKaW5kZXggOGMzOWUyOGM3NGViMWQ1NTE0YTU0MTYwNzg4ZWNjMjJlYjdlZGM1
NS4uNmUzOWJlNDE4YWQ4ZTEwMDliZGEzZGIwYWYxMGE0YmIzNGFmZmNkNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCkBAIC03NzcsNiArNzc3LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogICAgIHBhZ2UvRm9jdXNEaXJlY3Rpb24uaAogICAgIHBhZ2UvRnJhbWUuaAogICAg
IHBhZ2UvRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmgKKyAgICBwYWdlL0ZyYW1lSWRlbnRpZmll
ci5oCiAgICAgcGFnZS9GcmFtZVNuYXBzaG90dGluZy5oCiAgICAgcGFnZS9GcmFtZVRyZWUuaAog
ICAgIHBhZ2UvRnJhbWVWaWV3LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiN2JlNzQ5M2ZiMzQ3ZTdhZWM1ZDExN2NjNWNjNjlh
OGExZWZjMWUzLi40OTU3YmFiYzk3YjE3MTA0YTQ0NTM1ZTQzODNmZGZhOGIxMjc0MjAxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0yODAsNiArMjgwLDcgQEAKIAkJMEYwM0MwNzQxODg0Njk1RTAwQTVGOENBIC8qIFN5c3RlbU1l
bW9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYw
M0MwNzMxODg0Njk1RTAwQTVGOENBIC8qIFN5c3RlbU1lbW9yeS5oICovOyB9OwogCQkwRjAzQzA3
NTE4ODQ4MDU1MDBBNUY4Q0EgLyogSW5zcGVjdG9yT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M1MjJENEExNUI0NzhCMjAwOUI3Qzk1IC8q
IEluc3BlY3Rvck92ZXJsYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkwRjA5OUQwOTE3Qjk2OEExMDBGRjg0QjkgLyogV2ViQ29yZVR5cGVkQXJy
YXlDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjA5OUQwNzE3Qjk2OEExMDBGRjg0QjkgLyogV2ViQ29yZVR5cGVkQXJyYXlDb250cm9s
bGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
MEYxMTc4MTgyMkUzQzQ3RjAwOEJENTcwIC8qIEZyYW1lSWRlbnRpZmllci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxMTc4MTYyMkUzQzQ3RTAwOEJE
NTcwIC8qIEZyYW1lSWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTBGMTFBNTRGMEYzOTIzMzEwMEMzNzg4NCAvKiBSZW5kZXJTZWxl
Y3Rpb25JbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjExQTU0RTBGMzkyMzMxMDBDMzc4ODQgLyogUmVuZGVyU2VsZWN0aW9uSW5mby5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMTMxNjNFMTZF
RDBDQzgwMDM1Q0MwNCAvKiBQbGF0Zm9ybUNBRmlsdGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxMzE2M0QxNkVEMENDODAwMzVDQzA0IC8qIFBs
YXRmb3JtQ0FGaWx0ZXJzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMEYxNURBOEEwRjNBQUVFNzAwMDBDRTQ3IC8qIENTU0FuaW1hdGlvbkNvbnRy
b2xsZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjE1REE4OTBGM0FBRUU3MDAwMENFNDcgLyogQ1NTQW5pbWF0aW9uQ29udHJvbGxlclBy
aXZhdGUuaCAqLzsgfTsKQEAgLTU1NzgsNiArNTU3OSw3IEBACiAJCTBGMDNDMDczMTg4NDY5NUUw
MEE1RjhDQSAvKiBTeXN0ZW1NZW1vcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU3lzdGVtTWVtb3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMDk5RDA2
MTdCOTY4QTEwMEZGODRCOSAvKiBXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZVR5cGVkQXJyYXlDb250cm9s
bGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYwOTlEMDcxN0I5NjhBMTAw
RkY4NEI5IC8qIFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYxMTc4MTYyMkUzQzQ3RTAwOEJENTcwIC8qIEZyYW1lSWRl
bnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGcmFtZUlkZW50aWZp
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxMUE1NEUwRjM5MjMzMTAwQzM3
ODg0IC8qIFJlbmRlclNlbGVjdGlvbkluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVuZGVyU2VsZWN0aW9uSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwRjEzMTYzRDE2RUQwQ0M4MDAzNUNDMDQgLyogUGxhdGZvcm1DQUZpbHRlcnMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1DQUZpbHRlcnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxMzE2M0YxNkVEMENERTAwMzVDQzA0IC8qIFBsYXRmb3Jt
Q0FGaWx0ZXJzQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBQbGF0Zm9ybUNBRmlsdGVyc0NvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMjAyMDQsNiArMjAyMDYsNyBAQAogCQkJCTY1QkYwMjJBMDk3NDgxNjMwMEM0MzE5NiAvKiBG
cmFtZS5oICovLAogCQkJCTk3NEE4NjIwMTRCN0FEQkIwMDNGREM3NiAvKiBGcmFtZURlc3RydWN0
aW9uT2JzZXJ2ZXIuY3BwICovLAogCQkJCTk3NEE4NjIxMTRCN0FEQkIwMDNGREM3NiAvKiBGcmFt
ZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCAqLywKKwkJCQkwRjExNzgxNjIyRTNDNDdFMDA4QkQ1NzAg
LyogRnJhbWVJZGVudGlmaWVyLmggKi8sCiAJCQkJQzRDRDYyOTgxODM4Mzc2NjAwN0VCQUYxIC8q
IEZyYW1lU25hcHNob3R0aW5nLmNwcCAqLywKIAkJCQlDNENENjI5OTE4MzgzNzY2MDA3RUJBRjEg
LyogRnJhbWVTbmFwc2hvdHRpbmcuaCAqLywKIAkJCQk2NUEyMTQ4MjA5N0EzRjUzMDBCOTA1MEEg
LyogRnJhbWVUcmVlLmNwcCAqLywKQEAgLTI5MjU1LDYgKzI5MjU4LDcgQEAKIAkJCQlBODUzMTIz
RDExRDA0NzFCMDBENEQwNzcgLyogRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk2NUJGMDIyRjA5NzQ4MTYzMDBDNDMxOTYgLyogRnJhbWUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTk3NEE4NjIzMTRCN0FEQkIwMDNGREM3NiAvKiBGcmFtZURlc3RydWN0aW9u
T2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMTE3ODE4MjJFM0M0N0YwMDhCRDU3MCAv
KiBGcmFtZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NkQzNzNDMEFEQkE1REUw
MEE0NTU0RCAvKiBGcmFtZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2RDM3M0UwQURC
QTVERTAwQTQ1NTREIC8qIEZyYW1lTG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlE
MDAwRUJBMzExQkRBRkQ0MDBDNDc3MjYgLyogRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuaCBpbiBI
ZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmNwcAppbmRleCA2OTYzMDMzMGI1
ZDc5MzBkN2Q3YWFmMWRkYjRhODlkZmI2MGRkZGNjLi42ZDAzNjJlOTc2NDE4OGI2MDg0Y2JhYThj
YzE0MmQ0ZDM5MWY1YTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2ll
SmFyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmNwcApAQCAtNzEs
NyArNzEsNyBAQCBTdHJpbmcgQ29va2llSmFyOjpjb29raWVzKERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgVVJMJiB1cmwpIGNvbnN0CiAKICAgICBhdXRvIGluY2x1ZGVTZWN1cmVDb29raWVzID0g
c2hvdWxkSW5jbHVkZVNlY3VyZUNvb2tpZXMoZG9jdW1lbnQsIHVybCk7CiAKLSAgICBPcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1l
SUQ7CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKICAgICBpZiAoYXV0byog
ZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGZyYW1lSUQgPSBmcmFtZS0+bG9h
ZGVyKCkuY2xpZW50KCkuZnJhbWVJRCgpOwpAQCAtOTQsNyArOTQsNyBAQCBDb29raWVSZXF1ZXN0
SGVhZGVyRmllbGRQcm94eSBDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5
KGNvbnN0IERvYwogewogICAgIFRyYWNlU2NvcGUgc2NvcGUoRmV0Y2hDb29raWVzU3RhcnQsIEZl
dGNoQ29va2llc0VuZCk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRDsKKyAgICBP
cHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQ7CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRDsKICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKSB7
CiAgICAgICAgIGZyYW1lSUQgPSBmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuZnJhbWVJRCgpOwpA
QCAtMTA2LDcgKzEwNiw3IEBAIENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5IENvb2tpZUph
cjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkoY29uc3QgRG9jCiAKIHZvaWQgQ29va2ll
SmFyOjpzZXRDb29raWVzKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0
IFN0cmluZyYgY29va2llU3RyaW5nKQogewotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlE
OworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQ
YWdlSWRlbnRpZmllcj4gcGFnZUlEOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZy
YW1lKCkpIHsKICAgICAgICAgZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFt
ZUlEKCk7CkBAIC0xMjgsNyArMTI4LDcgQEAgYm9vbCBDb29raWVKYXI6OmNvb2tpZXNFbmFibGVk
KGNvbnN0IERvY3VtZW50JikgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0ZDo6cGFp
cjxTdHJpbmcsIFNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gQ29va2llSmFyOjpjb29raWVSZXF1ZXN0
SGVhZGVyRmllbGRWYWx1ZShjb25zdCBQQUw6OlNlc3Npb25JRCYsIGNvbnN0IFVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBP
cHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJ
RCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CitzdGQ6
OnBhaXI8U3RyaW5nLCBTZWN1cmVDb29raWVzQWNjZXNzZWQ+IENvb2tpZUphcjo6Y29va2llUmVx
dWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVy
bCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRp
Zmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykg
Y29uc3QKIHsKICAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG1fc3RvcmFnZVNlc3Npb25Qcm92aWRl
ci0+c3RvcmFnZVNlc3Npb24oKSkgewogICAgICAgICBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBy
ZXN1bHQgPSBzZXNzaW9uLT5jb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShmaXJzdFBhcnR5
LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlELCBpbmNsdWRlU2VjdXJlQ29va2ll
cyk7CkBAIC0xNDEsNyArMTQxLDcgQEAgc3RkOjpwYWlyPFN0cmluZywgU2VjdXJlQ29va2llc0Fj
Y2Vzc2VkPiBDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHUKIAogU3RyaW5n
IENvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBjb25zdCBVUkwmIHVybCkgY29uc3QKIHsKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJh
bWVJRDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQ7CiAgICAgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVu
dC5mcmFtZSgpKSB7CiAgICAgICAgIGZyYW1lSUQgPSBmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCku
ZnJhbWVJRCgpOwpAQCAtMTU2LDcgKzE1Niw3IEBAIFN0cmluZyBDb29raWVKYXI6OmNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFZhbHVlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1CiAK
IGJvb2wgQ29va2llSmFyOjpnZXRSYXdDb29raWVzKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgVVJMJiB1cmwsIFZlY3RvcjxDb29raWU+JiBjb29raWVzKSBjb25zdAogewotICAgIE9w
dGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4g
ZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEOwogICAgIGlmIChh
dXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKICAgICAgICAgZnJhbWVJRCA9IGZyYW1l
LT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvQ29va2llSmFyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmgK
aW5kZXggMjgxZjg0YzQ5MDA1MjY3ZWEwNTRkNTFkNzY4YTllYjczMmNiYzIzOS4uODA4N2I4Y2Q1
YjdjZjRmNTY5M2UyZjdlOTVkOGVmNmExNzk4NDZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0Nvb2tpZUphci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVK
YXIuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkZyYW1l
SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTU5LDcgKzYw
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRDb29raWVzKERvY3VtZW50JiwgY29u
c3QgVVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpOwogCiAgICAgdmlydHVhbCBib29s
IGNvb2tpZXNFbmFibGVkKGNvbnN0IERvY3VtZW50JikgY29uc3Q7Ci0gICAgdmlydHVhbCBzdGQ6
OnBhaXI8U3RyaW5nLCBTZWN1cmVDb29raWVzQWNjZXNzZWQ+IGNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7
CisgICAgdmlydHVhbCBzdGQ6OnBhaXI8U3RyaW5nLCBTZWN1cmVDb29raWVzQWNjZXNzZWQ+IGNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25h
bDxGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1
cmVDb29raWVzKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBE
b2N1bWVudCYsIGNvbnN0IFVSTCYsIFZlY3RvcjxDb29raWU+JikgY29uc3Q7CiAgICAgdmlydHVh
bCB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBEb2N1bWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0
cmluZyYgY29va2llTmFtZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFt
ZUxvYWRlckNsaWVudC5oCmluZGV4IDFmN2EyOWM0YjMwMWEzNjU4MjJlNDIzM2I0MTVkZDFjMDAx
OTEzMmQuLmU1OWQxNzBkZjBiYTA4YTJjNGY2MDNmZGNmYTgzNTdkZmY4OWJkYjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMzIsNyAr
MzIsNyBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50IDogcHVi
bGljIEZyYW1lTG9hZGVyQ2xpZW50IHsKIAogICAgIHZvaWQgZnJhbWVMb2FkZXJEZXN0cm95ZWQo
KSBvdmVycmlkZSB7IH0KIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gV1RGOjpudWxsb3B0OyB9CisgICAgT3B0aW9uYWw8RnJhbWVJZGVu
dGlmaWVyPiBmcmFtZUlEKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gV1RGOjpudWxsb3B0OyB9
CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIFdURjo6bnVsbG9wdDsgfQogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNv
bnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5o
CmluZGV4IDA3NDg3NjExOGRjNjkxYWE3YzhhZGE5N2I3OTcxMzczM2EyOGE2OTUuLmVkODQ3Y2Iw
NDc4NTI1ZTUyMTBmMWNjODViN2ZlYzUzY2U3MjIyZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNwcmFnbWEgb25jZQog
CisjaW5jbHVkZSAiRnJhbWVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBl
cy5oIgogI2luY2x1ZGUgIkxheW91dE1pbGVzdG9uZS5oIgogI2luY2x1ZGUgIkxpbmtJY29uLmgi
CkBAIC0xMjgsNyArMTI5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBtYWtlUmVwcmVz
ZW50YXRpb24oRG9jdW1lbnRMb2FkZXIqKSA9IDA7CiAKICAgICB2aXJ0dWFsIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiBwYWdlSUQoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBPcHRpb25hbDx1
aW50NjRfdD4gZnJhbWVJRCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIE9wdGlvbmFsPEZyYW1l
SWRlbnRpZmllcj4gZnJhbWVJRCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCgpIGNvbnN0ID0gMDsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAKaW5kZXggNjJiYTJkZDJm
NzcwYTQwNmUxNWM5MDM5NWU0MTdjNDJjMjhmNTIwZS4uYmQ3MzhlMDg5NTdlMmZkODRkYTA1NWFi
NDUzZTFhNDNlMGIyODhkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmln
YXRpb25BY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0
aW9uLmNwcApAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBOYXZpZ2F0aW9u
QWN0aW9uOjpSZXF1ZXN0ZXI6OlJlcXVlc3Rlcihjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpCiAg
ICAgOiBtX3VybCB7IFVSTCB7IGRvY3VtZW50LnVybCgpIH0gfQogICAgICwgbV9vcmlnaW4geyBt
YWtlUmVmUHRyKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkpIH0KLSAgICAsIG1fcGFnZUlEQW5k
RnJhbWVJRFBhaXIgeyBkb2N1bWVudC5mcmFtZSgpID8gc3RkOjptYWtlX3BhaXIoZG9jdW1lbnQu
ZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkucGFnZUlEKCkudmFsdWVPcihQYWdlSWRlbnRpZmll
ciB7IH0pLCBkb2N1bWVudC5mcmFtZSgpLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlEKCkudmFs
dWVPcigwKSkgOiBzdGQ6Om1ha2VfcGFpcjxQYWdlSWRlbnRpZmllciwgdWludDY0X3Q+KHsgfSwg
MCkgfQorICAgICwgbV9wYWdlSURBbmRGcmFtZUlEUGFpciB7IGRvY3VtZW50LmZyYW1lKCkgPyBz
dGQ6Om1ha2VfcGFpcihkb2N1bWVudC5mcmFtZSgpLT5sb2FkZXIoKS5jbGllbnQoKS5wYWdlSUQo
KS52YWx1ZU9yKFBhZ2VJZGVudGlmaWVyIHsgfSksIGRvY3VtZW50LmZyYW1lKCktPmxvYWRlcigp
LmNsaWVudCgpLmZyYW1lSUQoKS52YWx1ZU9yKEZyYW1lSWRlbnRpZmllciB7IH0pKSA6IHN0ZDo6
bWFrZV9wYWlyPFBhZ2VJZGVudGlmaWVyLCBGcmFtZUlkZW50aWZpZXI+KHsgfSwgeyB9KSB9CiB7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oCmluZGV4IDM1Yzk2
MWFhMTU0N2I4ZWEwYzRiOTA0MDcwM2M4NWQzZWE4ZTdlNTcuLjBhMDIxZDRmYzc5ZDk2YjNmMmE4
OGJhZTQwNDU2MTkxMDRjZTkwYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9O
YXZpZ2F0aW9uQWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25B
Y3Rpb24uaApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQWRDbGlja0F0dHJpYnV0aW9u
LmgiCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIkZy
YW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKICNpbmNsdWRl
ICJMYXlvdXRQb2ludC5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCkBAIC02NCw3ICs2
NSw3IEBAIHB1YmxpYzoKICAgICBOYXZpZ2F0aW9uQWN0aW9uKE5hdmlnYXRpb25BY3Rpb24mJik7
CiAgICAgTmF2aWdhdGlvbkFjdGlvbiYgb3BlcmF0b3I9KE5hdmlnYXRpb25BY3Rpb24mJik7CiAK
LSAgICB1c2luZyBQYWdlSURBbmRGcmFtZUlEUGFpciA9IHN0ZDo6cGFpcjxQYWdlSWRlbnRpZmll
ciwgdWludDY0X3QgLyogZnJhbWVJRCAqLz47CisgICAgdXNpbmcgUGFnZUlEQW5kRnJhbWVJRFBh
aXIgPSBzdGQ6OnBhaXI8UGFnZUlkZW50aWZpZXIsIEZyYW1lSWRlbnRpZmllcj47IC8vIEZJWE1F
OiBVc2UgR2xvYmFsRnJhbWVJZGVudGlmaWVyLgogICAgIGNsYXNzIFJlcXVlc3RlciB7CiAgICAg
cHVibGljOgogICAgICAgICBSZXF1ZXN0ZXIoY29uc3QgRG9jdW1lbnQmKTsKQEAgLTcyLDcgKzcz
LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1f
dXJsOyB9CiAgICAgICAgIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBzZWN1cml0eU9yaWdpbigpIGNv
bnN0IHsgcmV0dXJuICptX29yaWdpbjsgfQogICAgICAgICBQYWdlSWRlbnRpZmllciBwYWdlSUQo
KSBjb25zdCB7IHJldHVybiBtX3BhZ2VJREFuZEZyYW1lSURQYWlyLmZpcnN0OyB9Ci0gICAgICAg
IHVpbnQ2NF90IGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VJREFuZEZyYW1lSURQYWly
LnNlY29uZDsgfQorICAgICAgICBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNvbnN0IHsgcmV0
dXJuIG1fcGFnZUlEQW5kRnJhbWVJRFBhaXIuc2Vjb25kOyB9CiAgICAgcHJpdmF0ZToKICAgICAg
ICAgVVJMIG1fdXJsOwogICAgICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG1fb3JpZ2luOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggYzI1YTAyNGJjMDYzYzU4ZjNiMjhiZDc5
Y2JiMDMzODQ0MjZjOGM1ZS4uZThhNWRlMzNlZDE3OTI2YzlhYTg1NmIwODE2YjRlZWNmODJjOTRm
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5j
bHVkZSAiRGlzcGxheVJlZnJlc2hNb25pdG9yLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRTdG9yYWdl
QWNjZXNzLmgiCiAjaW5jbHVkZSAiRm9jdXNEaXJlY3Rpb24uaCIKKyNpbmNsdWRlICJGcmFtZUlk
ZW50aWZpZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKQEAgLTQ4Niw4ICs0ODcsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBSZWZQdHI8SWNvbj4gY3JlYXRlSWNvbkZvckZpbGVzKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiAvKiBmaWxlbmFtZXMgKi8pID0gMDsKIAogI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgdmlydHVhbCB2b2lkIGhhc1N0b3JhZ2VBY2Nl
c3MoUmVnaXN0cmFibGVEb21haW4mJiAvKnN1YkZyYW1lRG9tYWluKi8sIFJlZ2lzdHJhYmxlRG9t
YWluJiYgLyp0b3BGcmFtZURvbWFpbiovLCB1aW50NjRfdCAvKmZyYW1lSUQqLywgUGFnZUlkZW50
aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcmVx
dWVzdFN0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiAvKnN1YkZyYW1lRG9tYWluKi8s
IFJlZ2lzdHJhYmxlRG9tYWluJiYgLyp0b3BGcmFtZURvbWFpbiovLCB1aW50NjRfdCAvKmZyYW1l
SUQqLywgUGFnZUlkZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdl
QWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZDo6
Tm8sIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bjo6Tm8pOyB9CisgICAgdmlydHVhbCB2b2lk
IGhhc1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiAvKnN1YkZyYW1lRG9tYWluKi8s
IFJlZ2lzdHJhYmxlRG9tYWluJiYgLyp0b3BGcmFtZURvbWFpbiovLCBGcmFtZUlkZW50aWZpZXIs
IFBhZ2VJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOyB9CisgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWluJiYgLypzdWJGcmFt
ZURvbWFpbiovLCBSZWdpc3RyYWJsZURvbWFpbiYmIC8qdG9wRnJhbWVEb21haW4qLywgRnJhbWVJ
ZGVudGlmaWVyLCBQYWdlSWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0
b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNv
bXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKFN0b3JhZ2VBY2Nlc3NXYXNHcmFu
dGVkOjpObywgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpObyk7IH0KICNlbmRpZgogCiAj
aWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lSWRlbnRp
Zmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjY1ZDQ5NjdhYjFiNDU0MjM1OGU4NjcyNDA1Y2I2NmI3ZDc4ZDcy
MjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lSWRlbnRpZmll
ci5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51
bSBGcmFtZUlkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIEZyYW1lSWRlbnRpZmllciA9IE9iamVj
dElkZW50aWZpZXI8RnJhbWVJZGVudGlmaWVyVHlwZT47CisKK2lubGluZSBGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJZGVudGlmaWVyRnJvbUlEKHVpbnQ2NF90IGZyYW1lSUQpCit7CisgICAgcmV0dXJu
IG1ha2VPYmplY3RJZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+KGZyYW1lSUQpOworfQor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0dsb2JhbEZyYW1lSWRlbnRpZmll
ci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9HbG9iYWxGcmFtZUlkZW50aWZpZXIuaAppbmRleCAw
ZDdiM2RiZjcyZjgxZTRmZDYyYTczZmVkMjU4MWNlYWVlMTY3YjRhLi43MDkzNDY3YjEyZjg1NjYx
YThmN2ZhZGYwMmIzNTc3OTk0ZWI2YTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0dsb2JhbEZyYW1lSWRlbnRpZmllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2xvYmFs
RnJhbWVJZGVudGlmaWVyLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNp
bmNsdWRlICJGcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJQYWdlSWRlbnRpZmllci5oIgog
I2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogCkBAIC0zMyw3ICszNCw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIC8vIEZyYW1lIGlkZW50aWZpZXIgdGhhdCBpcyB1bmlxdWUgYWNyb3NzIGFsbCBX
ZWJDb250ZW50IHByb2Nlc3Nlcy4KIHN0cnVjdCBHbG9iYWxGcmFtZUlkZW50aWZpZXIgewogICAg
IFBhZ2VJZGVudGlmaWVyIHBhZ2VJRDsKLSAgICB1aW50NjRfdCBmcmFtZUlEOworICAgIEZyYW1l
SWRlbnRpZmllciBmcmFtZUlEOwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBPcHRpb25hbDxHbG9iYWxGcmFtZUlkZW50aWZpZXI+IGRlY29kZShEZWNvZGVyJik7CkBAIC01
Myw3ICs1NCw3IEBAIE9wdGlvbmFsPEdsb2JhbEZyYW1lSWRlbnRpZmllcj4gR2xvYmFsRnJhbWVJ
ZGVudGlmaWVyOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICBpZiAoIXBhZ2VJRCkKICAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFt
ZUlEOworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBkZWNvZGVy
ID4+IGZyYW1lSUQ7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Db29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9Db29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eS5oCmluZGV4IGEzMzAxOWY5ZDViMmFlZDI2
MDc0NjY5NDAxZmQ3MzIyZjAyZDUxNTcuLmM2ODZjODFiNTM3MWE2N2NkZDhhZTA5YjRhMTAxMzJh
NTJkNWIyZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ29v
a2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL0Nvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5LmgKQEAgLTI2LDYgKzI2LDcg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQ29va2llSmFyLmgiCisjaW5jbHVkZSAiRnJh
bWVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJT
YW1lU2l0ZUluZm8uaCIKICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CkBAIC0zOCw3ICszOSw3
IEBAIHN0cnVjdCBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eSB7CiAgICAgVVJMIGZpcnN0
UGFydHk7CiAgICAgU2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbzsKICAgICBVUkwgdXJsOwotICAg
IE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmll
cj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEOwogICAgIElu
Y2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzIHsgSW5jbHVkZVNlY3VyZUNv
b2tpZXM6Ok5vIH07CiAKQEAgLTc4LDggKzc5LDkgQEAgT3B0aW9uYWw8Q29va2llUmVxdWVzdEhl
YWRlckZpZWxkUHJveHk+IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5OjpkZWNvZGUoRGUK
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHVybCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRDsKLSAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKGZyYW1lSUQpKQorICAgIE9wdGlvbmFsPE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4+
IGZyYW1lSUQ7CisgICAgZGVjb2RlciA+PiBmcmFtZUlEOworICAgIGlmICghZnJhbWVJRCkKICAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAogICAgIE9wdGlvbmFsPE9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPj4gcGFnZUlEOwpAQCAtOTEsNyArOTMsNyBAQCBPcHRpb25hbDxDb29raWVSZXF1
ZXN0SGVhZGVyRmllbGRQcm94eT4gQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHk6OmRlY29k
ZShEZQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5jbHVkZVNlY3VyZUNvb2tpZXMpKQogICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgcmV0dXJuIENvb2tpZVJlcXVlc3RIZWFk
ZXJGaWVsZFByb3h5IHsgKnNlc3Npb25JRCwgV1RGTW92ZShmaXJzdFBhcnR5KSwgV1RGTW92ZShz
YW1lU2l0ZUluZm8pLCBXVEZNb3ZlKHVybCksIGZyYW1lSUQsICpwYWdlSUQsIGluY2x1ZGVTZWN1
cmVDb29raWVzIH07CisgICAgcmV0dXJuIENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5IHsg
KnNlc3Npb25JRCwgV1RGTW92ZShmaXJzdFBhcnR5KSwgV1RGTW92ZShzYW1lU2l0ZUluZm8pLCBX
VEZNb3ZlKHVybCksICpmcmFtZUlELCAqcGFnZUlELCBpbmNsdWRlU2VjdXJlQ29va2llcyB9Owog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAKaW5kZXggZTcxOTA3
ZDk3N2RmNTkyNzNmNDkxOWM1NjUxYWYxNzM2ZmIxYTY3Zi4uZjRiMDlhOGQ1ZTFhZDk0ODRlZDdi
MzJlYjU2ZTM5NmY3NWRhYzkwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcApAQCAtNzksMTIgKzc5LDEy
IEBAIGJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzaG91bGRCbG9ja1RoaXJkUGFydHlDb29r
aWVzQnV0S2VlcEZpcnN0UGFydHlDb29raWVzCiAgICAgcmV0dXJuIG1fcmVnaXN0cmFibGVEb21h
aW5zVG9CbG9ja0J1dEtlZXBDb29raWVzRm9yLmNvbnRhaW5zKHJlZ2lzdHJhYmxlRG9tYWluKTsK
IH0KIAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNob3VsZEJsb2NrQ29va2llcyhjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBP
cHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEKSBjb25zdAorYm9vbCBOZXR3b3JrU3RvcmFn
ZVNlc3Npb246OnNob3VsZEJsb2NrQ29va2llcyhjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRCkgY29uc3QKIHsKICAgICByZXR1cm4gc2hvdWxkQmxvY2tDb29raWVzKHJl
cXVlc3QuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgcmVxdWVzdC51cmwoKSwgZnJhbWVJRCwgcGFn
ZUlEKTsKIH0KICAgICAKLWJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzaG91bGRCbG9ja0Nv
b2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5Rm9yQ29va2llcywgY29uc3QgVVJMJiByZXNvdXJj
ZSwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBw
YWdlSUQpIGNvbnN0Citib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2hvdWxkQmxvY2tDb29r
aWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eUZvckNvb2tpZXMsIGNvbnN0IFVSTCYgcmVzb3VyY2Us
IE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZp
ZXI+IHBhZ2VJRCkgY29uc3QKIHsKICAgICBSZWdpc3RyYWJsZURvbWFpbiBmaXJzdFBhcnR5RG9t
YWluIHsgZmlyc3RQYXJ0eUZvckNvb2tpZXMgfTsKICAgICBpZiAoZmlyc3RQYXJ0eURvbWFpbi5p
c0VtcHR5KCkpCkBAIC0xMzYsNyArMTM2LDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OnJlbW92ZVByZXZhbGVudERvbWFpbnMoY29uc3QgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWkKICAg
ICB9CiB9CiAKLWJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpoYXNTdG9yYWdlQWNjZXNzKGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBQYWdl
SWRlbnRpZmllciBwYWdlSUQpIGNvbnN0Citib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6aGFz
U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDxGcmFtZUlk
ZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkgY29uc3QKIHsKICAgICBp
ZiAoZnJhbWVJRCkgewogICAgICAgICBhdXRvIGZyYW1lc0dyYW50ZWRJdGVyYXRvciA9IG1fZnJh
bWVzR3JhbnRlZFN0b3JhZ2VBY2Nlc3MuZmluZChwYWdlSUQpOwpAQCAtMTY5LDcgKzE2OSw3IEBA
IFZlY3RvcjxTdHJpbmc+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0QWxsU3RvcmFnZUFjY2Vz
c0VudHJpZXMoKSBjb25zdAogICAgIHJldHVybiBlbnRyaWVzOwogfQogICAgIAotdm9pZCBOZXR3
b3JrU3RvcmFnZVNlc3Npb246OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5
RG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlE
KQordm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCkKIHsKICAgICBpZiAoIWZyYW1lSUQpIHsKICAgICAgICAgaWYg
KGZpcnN0UGFydHlEb21haW4uaXNFbXB0eSgpKQpAQCAtMTkxLDcgKzE5MSw3IEBAIHZvaWQgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHJlc291cmNlCiAKICAgICBhdXRvIHBhZ2VzR3JhbnRlZEl0ZXJhdG9yID0gbV9mcmFt
ZXNHcmFudGVkU3RvcmFnZUFjY2Vzcy5maW5kKHBhZ2VJRCk7CiAgICAgaWYgKHBhZ2VzR3JhbnRl
ZEl0ZXJhdG9yID09IG1fZnJhbWVzR3JhbnRlZFN0b3JhZ2VBY2Nlc3MuZW5kKCkpIHsKLSAgICAg
ICAgSGFzaE1hcDx1aW50NjRfdCwgUmVnaXN0cmFibGVEb21haW4sIERlZmF1bHRIYXNoPHVpbnQ2
NF90Pjo6SGFzaCwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czx1aW50NjRfdD4+
IGVudHJ5OworICAgICAgICBIYXNoTWFwPEZyYW1lSWRlbnRpZmllciwgUmVnaXN0cmFibGVEb21h
aW4+IGVudHJ5OwogICAgICAgICBlbnRyeS5hZGQoZnJhbWVJRC52YWx1ZSgpLCByZXNvdXJjZURv
bWFpbik7CiAgICAgICAgIG1fZnJhbWVzR3JhbnRlZFN0b3JhZ2VBY2Nlc3MuYWRkKHBhZ2VJRCwg
ZW50cnkpOwogICAgIH0gZWxzZSB7CkBAIC0yMDMsNyArMjAzLDcgQEAgdm9pZCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
cmVzb3VyY2UKICAgICB9CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpyZW1vdmVT
dG9yYWdlQWNjZXNzRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFn
ZUlEKQordm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JG
cmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKQogewog
ICAgIGF1dG8gaXRlcmF0aW9uID0gbV9mcmFtZXNHcmFudGVkU3RvcmFnZUFjY2Vzcy5maW5kKHBh
Z2VJRCk7CiAgICAgaWYgKGl0ZXJhdGlvbiA9PSBtX2ZyYW1lc0dyYW50ZWRTdG9yYWdlQWNjZXNz
LmVuZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JrU3RvcmFnZVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uLmgKaW5kZXggYzhlZjhmN2JhYjc1ZmQ5OTc5YjI4MmY1ZjVhODcw
MmVmODBjODhiMy4uOGRkZjU1YjRhMWZjYTVjNTRhNDk5MGEzYTM3YzA1OTI2NjhmZTAwZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNl
c3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUg
IkNyZWRlbnRpYWxTdG9yYWdlLmgiCisjaW5jbHVkZSAiRnJhbWVJZGVudGlmaWVyLmgiCiAjaW5j
bHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJSZWdpc3RyYWJsZURvbWFpbi5oIgog
I2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KQEAgLTEyMyw3ICsxMjQsNyBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjb29raWVzRW5hYmxlZCgpIGNvbnN0OwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0Q29va2llKGNvbnN0IENvb2tpZSYpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0Q29va2llcyhjb25zdCBWZWN0b3I8Q29va2llPiYsIGNvbnN0IFVSTCYsIGNv
bnN0IFVSTCYgbWFpbkRvY3VtZW50VVJMKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENv
b2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwg
Y29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiwgY29uc3QgU3RyaW5nJikgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5m
byYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBkZWxldGVDb29raWUoY29uc3QgQ29va2llJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBk
ZWxldGVDb29raWUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBkZWxldGVBbGxDb29raWVzKCk7CkBAIC0xMzIsMjYgKzEzMywyNiBAQCBw
dWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVDb29raWVzRm9ySG9zdG5hbWVz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjb29raWVIb3N0TmFtZXMsIEluY2x1ZGVIdHRwT25seUNv
b2tpZXMpOwogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxDb29raWU+IGdldEFsbENvb2tpZXMo
KTsKICAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8Q29va2llPiBnZXRDb29raWVzKGNvbnN0IFVS
TCYpOwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2
NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIFZlY3RvcjxDb29raWU+Jikg
Y29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IFVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJh
bWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBWZWN0b3I8Q29va2llPiYp
IGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZmx1c2hDb29raWVTdG9yZSgpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoSGFzaFNldDxTdHJp
bmc+JiBob3N0bmFtZXMpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6cGFpcjxTdHJpbmcsIGJv
b2w+IGNvb2tpZXNGb3JET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUlu
Zm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFn
ZUlkZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFs
dWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwm
LCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJ
bmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpwYWly
PFN0cmluZywgYm9vbD4gY29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4sIE9w
dGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0OworICAg
IFdFQkNPUkVfRVhQT1JUIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZVJlcXVlc3RIZWFk
ZXJGaWVsZFZhbHVlKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwg
Y29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQg
c3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29u
c3QgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkmKSBjb25zdDsKIAogI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91bGRC
bG9ja0Nvb2tpZXMoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPikgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5Rm9yQ29va2ll
cywgY29uc3QgVVJMJiByZXNvdXJjZSwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlv
bmFsPFBhZ2VJZGVudGlmaWVyPikgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91
bGRCbG9ja0Nvb2tpZXMoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgT3B0aW9uYWw8RnJhbWVJZGVu
dGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+KSBjb25zdDsKKyAgICBXRUJDT1JFX0VY
UE9SVCBib29sIHNob3VsZEJsb2NrQ29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHlGb3JDb29r
aWVzLCBjb25zdCBVUkwmIHJlc291cmNlLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4pIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2hv
dWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpIGNvbnN0
OwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llc0J1
dEtlZXBGaXJzdFBhcnR5Q29va2llc0Zvcihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpIGNvbnN0
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UHJldmFsZW50RG9tYWluc1RvQmxvY2tBbmRE
ZWxldGVDb29raWVzRm9yKGNvbnN0IFZlY3RvcjxSZWdpc3RyYWJsZURvbWFpbj4mKTsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldFByZXZhbGVudERvbWFpbnNUb0Jsb2NrQnV0S2VlcENvb2tp
ZXNGb3IoY29uc3QgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiYpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoT3B0aW9uYWw8U2Vjb25kcz4p
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlUHJldmFsZW50RG9tYWlucyhjb25zdCBW
ZWN0b3I8UmVnaXN0cmFibGVEb21haW4+JiBkb21haW5zKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBi
b29sIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9t
YWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyKSBjb25zdDsKKyAgICBXRUJDT1JFX0VY
UE9SVCBib29sIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291
cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0
aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgUGFnZUlkZW50aWZpZXIpIGNvbnN0OwogICAgIFdFQkNP
UkVfRVhQT1JUIFZlY3RvcjxTdHJpbmc+IGdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKCkgY29u
c3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
Zmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIFBhZ2VJZGVudGlm
aWVyKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllcik7CisgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNl
RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiwgUGFnZUlkZW50aWZpZXIpOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgcmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKEZyYW1lSWRlbnRpZmllciwgUGFnZUlk
ZW50aWZpZXIpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJQYWdlU3BlY2lmaWNEYXRh
Rm9yUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQYWdlSWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCByZW1vdmVBbGxTdG9yYWdlQWNjZXNzKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhTZWNvbmRzKTsKQEAg
LTE4NSw3ICsxODYsNyBAQCBwcml2YXRlOgogICAgIE9wdGlvbmFsPFNlY29uZHM+IGNsaWVudFNp
ZGVDb29raWVDYXAoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHksIE9wdGlvbmFs
PFBhZ2VJZGVudGlmaWVyPikgY29uc3Q7CiAgICAgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4g
bV9yZWdpc3RyYWJsZURvbWFpbnNUb0Jsb2NrQW5kRGVsZXRlQ29va2llc0ZvcjsKICAgICBIYXNo
U2V0PFJlZ2lzdHJhYmxlRG9tYWluPiBtX3JlZ2lzdHJhYmxlRG9tYWluc1RvQmxvY2tCdXRLZWVw
Q29va2llc0ZvcjsKLSAgICBIYXNoTWFwPFBhZ2VJZGVudGlmaWVyLCBIYXNoTWFwPHVpbnQ2NF90
LCBSZWdpc3RyYWJsZURvbWFpbiwgRGVmYXVsdEhhc2g8dWludDY0X3Q+OjpIYXNoLCBXVEY6OlVu
c2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPHVpbnQ2NF90Pj4+IG1fZnJhbWVzR3JhbnRlZFN0
b3JhZ2VBY2Nlc3M7CisgICAgSGFzaE1hcDxQYWdlSWRlbnRpZmllciwgSGFzaE1hcDxGcmFtZUlk
ZW50aWZpZXIsIFJlZ2lzdHJhYmxlRG9tYWluPj4gbV9mcmFtZXNHcmFudGVkU3RvcmFnZUFjY2Vz
czsKICAgICBIYXNoTWFwPFBhZ2VJZGVudGlmaWVyLCBIYXNoTWFwPFJlZ2lzdHJhYmxlRG9tYWlu
LCBSZWdpc3RyYWJsZURvbWFpbj4+IG1fcGFnZXNHcmFudGVkU3RvcmFnZUFjY2VzczsKICAgICBP
cHRpb25hbDxTZWNvbmRzPiBtX2NhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzIHsg
fTsKICAgICBPcHRpb25hbDxTZWNvbmRzPiBtX2FnZUNhcEZvckNsaWVudFNpZGVDb29raWVzIHsg
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3Ry
ZWFtSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3Ry
ZWFtSGFuZGxlLmNwcAppbmRleCBkYmEwZjEzZjQ3OWEzMzI2YmU4NWQ2NjkzOWU1MGM2M2MxM2I2
MWEwLi5iMDNmMmQyMTg4NjUxNGMyOGViMDkzNzQ4MWJjMGE5MzUzZDBjZDYwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NvY2tldFN0cmVhbUhhbmRsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGUu
Y3BwCkBAIC02MSw3ICs2MSw3IEBAIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxlOjpzZW5kSGFuZHNo
YWtlKENTdHJpbmcmJiBoYW5kc2hha2UsIE9wdGlvbmFsPENvb2tpZVJlcXVlCiB7CiAgICAgaWYg
KG1fc3RhdGUgPT0gQ29ubmVjdGluZyB8fCBtX3N0YXRlID09IENsb3NpbmcpCiAgICAgICAgIHJl
dHVybiBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSwgZmFsc2UpOwotICAgIHBsYXRmb3JtU2VuZEhh
bmRzaGFrZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihoYW5kc2hha2UuZGF0YSgp
KSwgaGFuZHNoYWtlLmxlbmd0aCgpLCBoZWFkZXJGaWVsZFByb3h5LCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CisgICAgcGxhdGZvcm1TZW5kSGFuZHNoYWtlKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgdWludDhfdCo+KGhhbmRzaGFrZS5kYXRhKCkpLCBoYW5kc2hha2UubGVuZ3RoKCksIFdU
Rk1vdmUoaGVhZGVyRmllbGRQcm94eSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0K
IAogdm9pZCBTb2NrZXRTdHJlYW1IYW5kbGU6OmNsb3NlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXRXaW4u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNl
c3Npb25DRk5ldFdpbi5jcHAKaW5kZXggMzMwYWE2MDg2NjE0MGIyNGQ5YjcwNTIzODNhODFjZWNm
OTBiOTlmNi4uZWI4MWMwNTJlYmRhNzJkYTA2ZGJlN2NkMjQ5NGY0ZDMyYWVlMGZkNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNl
c3Npb25DRk5ldFdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldFdpbi5jcHAKQEAgLTE4OSw3ICsxODksNyBAQCBz
dGF0aWMgQ0ZBcnJheVJlZiBjcmVhdGVDb29raWVzKENGRGljdGlvbmFyeVJlZiBoZWFkZXJGaWVs
ZHMsIENGVVJMUmVmIHVybCkKICAgICByZXR1cm4gcGFyc2VkQ29va2llczsKIH0KIAotdm9pZCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2
NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBjb25zdCBTdHJp
bmcmIHZhbHVlKSBjb25zdAordm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXNG
cm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3Qg
VVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFn
ZUlkZW50aWZpZXI+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QKIHsKICAgICBV
TlVTRURfUEFSQU0oZnJhbWVJRCk7CiAgICAgVU5VU0VEX1BBUkFNKHBhZ2VJRCk7CkBAIC0yMjUs
NyArMjI1LDcgQEAgc3RhdGljIGJvb2wgY29udGFpbnNTZWN1cmVDb29raWVzKENGQXJyYXlSZWYg
Y29va2llcykKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3Vy
ZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CitzdGQ6OnBhaXI8U3RyaW5nLCBi
b29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNGb3JET00oY29uc3QgVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJh
bWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJ
bmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKIHsKICAgICBV
TlVTRURfUEFSQU0oZnJhbWVJRCk7CiAgICAgVU5VU0VEX1BBUkFNKHBhZ2VJRCk7CkBAIC0yNDAs
NyArMjQwLDcgQEAgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Ojpjb29raWVzRm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXIKICAgICByZXR1cm4geyBjb29raWVT
dHJpbmcsIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMgfTsKIH0KIAotc3RkOjpwYWlyPFN0cmluZywg
Ym9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1
ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYg
dXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+
IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0
CitzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNp
dGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJ
RCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMg
aW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CiB7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQp
OwogICAgIFVOVVNFRF9QQVJBTShwYWdlSUQpOwpAQCAtMjY0LDcgKzI2NCw3IEBAIGJvb2wgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVzRW5hYmxlZCgpIGNvbnN0CiAgICAgcmV0dXJuIHBv
bGljeSA9PSBDRkhUVFBDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1l
bnREb21haW4gfHwgcG9saWN5ID09IENGSFRUUENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3lFeGNs
dXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW4gfHwgcG9saWN5ID09IENGSFRUUENvb2tpZVN0
b3JhZ2VBY2NlcHRQb2xpY3lBbHdheXM7CiB9CiAKLWJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpnZXRSYXdDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZv
JiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQ
YWdlSWRlbnRpZmllcj4gcGFnZUlELCBWZWN0b3I8Q29va2llPiYgcmF3Q29va2llcykgY29uc3QK
K2Jvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzKGNvbnN0IFVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZy
YW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwg
VmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0CiB7CiAgICAgVU5VU0VEX1BBUkFNKGZy
YW1lSUQpOwogICAgIFVOVVNFRF9QQVJBTShwYWdlSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uQ29jb2EubW0KaW5kZXggODRiNzNiODM0NGIwY2FiNWE5MDQ4YjQ4NWVmYjE3NmQ1ZDM0
MDU4MS4uODVmNGM2MmUzYmY3NGMwZGU1NDM1ZjJmMDBiZTk4NGQ4MmVhZWY2YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNl
c3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29h
L05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tCkBAIC0yOTQsNyArMjk0LDcgQEAgc3RhdGlj
IFJldGFpblB0cjxOU0FycmF5PiBmaWx0ZXJDb29raWVzKE5TQXJyYXkgKnVuZmlsdGVyZWRDb29r
aWVzLCBPcHRpb25hbDxTZWMKICAgICByZXR1cm4gZmlsdGVyZWRDb29raWVzOwogfQogCi1zdGF0
aWMgTlNBcnJheSAqY29va2llc0ZvclVSTChjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNl
c3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0
ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkKK3N0YXRpYyBOU0FycmF5ICpjb29raWVzRm9yVVJM
KGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9w
dGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+
IHBhZ2VJRCkKIHsKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlm
IChzZXNzaW9uLnNob3VsZEJsb2NrQ29va2llcyhmaXJzdFBhcnR5LCB1cmwsIGZyYW1lSUQsIHBh
Z2VJRCkpCkBAIC0zMDcsNyArMzA3LDcgQEAgc3RhdGljIE5TQXJyYXkgKmNvb2tpZXNGb3JVUkwo
Y29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGYKIH0KIAog
ZW51bSBJbmNsdWRlSFRUUE9ubHlPck5vdCB7IERvTm90SW5jbHVkZUhUVFBPbmx5LCBJbmNsdWRl
SFRUUE9ubHkgfTsKLXN0YXRpYyBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yU2Vz
c2lvbihjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJs
LCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBh
Z2VJRCwgSW5jbHVkZUhUVFBPbmx5T3JOb3QgaW5jbHVkZUhUVFBPbmx5LCBJbmNsdWRlU2VjdXJl
Q29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykKK3N0YXRpYyBzdGQ6OnBhaXI8U3RyaW5nLCBi
b29sPiBjb29raWVzRm9yU2Vzc2lvbihjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Np
b24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUlu
Zm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9w
dGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVIVFRQT25seU9yTm90IGluY2x1
ZGVIVFRQT25seSwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpCiB7
CiAgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNj
ZXNzUmF3Q29va2llcykpOwogCkBAIC0zNjMsMTIgKzM2MywxMiBAQCBzdGF0aWMgdm9pZCBkZWxl
dGVBbGxIVFRQQ29va2llcyhDRkhUVFBDb29raWVTdG9yYWdlUmVmIGNvb2tpZVN0b3JhZ2UpCiAg
ICAgQ0ZIVFRQQ29va2llU3RvcmFnZURlbGV0ZUFsbENvb2tpZXMoY29va2llU3RvcmFnZSk7CiB9
CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2ll
c0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNp
dGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlv
bmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVT
ZWN1cmVDb29raWVzKSBjb25zdAorc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpjb29raWVzRm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2Ft
ZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlk
ZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1
ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAogewogICAgIHJldHVy
biBjb29raWVzRm9yU2Vzc2lvbigqdGhpcywgZmlyc3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmws
IGZyYW1lSUQsIHBhZ2VJRCwgRG9Ob3RJbmNsdWRlSFRUUE9ubHksIGluY2x1ZGVTZWN1cmVDb29r
aWVzKTsKIH0KIAotc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Ojpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1
ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAorc3RkOjpwYWlyPFN0
cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1ZXN0SGVhZGVyRmll
bGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNp
dGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlE
LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBp
bmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKIHsKICAgICByZXR1cm4gY29va2llc0ZvclNlc3Np
b24oKnRoaXMsIGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQs
IEluY2x1ZGVIVFRQT25seSwgaW5jbHVkZVNlY3VyZUNvb2tpZXMpOwogfQpAQCAtMzc4LDcgKzM3
OCw3IEBAIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29v
a2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uCiAgICAgcmV0dXJuIGNvb2tpZXNGb3JTZXNz
aW9uKCp0aGlzLCBoZWFkZXJGaWVsZFByb3h5LmZpcnN0UGFydHksIGhlYWRlckZpZWxkUHJveHku
c2FtZVNpdGVJbmZvLCBoZWFkZXJGaWVsZFByb3h5LnVybCwgaGVhZGVyRmllbGRQcm94eS5mcmFt
ZUlELCBoZWFkZXJGaWVsZFByb3h5LnBhZ2VJRCwgSW5jbHVkZUhUVFBPbmx5LCBoZWFkZXJGaWVs
ZFByb3h5LmluY2x1ZGVTZWN1cmVDb29raWVzKTsKIH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZVNl
c3Npb246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2Ft
ZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgY29uc3QgU3RyaW5n
JiBjb29raWVTdHIpIGNvbnN0Cit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2ll
c0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVT
aXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJ
RCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBjb29raWVT
dHIpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZp
bGVnZTo6Q2FuQWNjZXNzUmF3Q29va2llcykpOwogCkBAIC00NDMsNyArNDQzLDcgQEAgYm9vbCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNFbmFibGVkKCkgY29uc3QKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKLWJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzKGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNv
bnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+IHBhZ2VJRCwgVmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0Citib29s
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0
aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
cGFnZUlELCBWZWN0b3I8Q29va2llPiYgcmF3Q29va2llcykgY29uc3QKIHsKICAgICByYXdDb29r
aWVzLmNsZWFyKCk7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuY3Bw
CmluZGV4IDM5NGMzNDYyNjY0OWQ1ZGVhODY5ZTA5NWJlMGQ5ZmFlN2IxYTVlY2IuLjVlY2JhNjZl
Zjk0OTg0ZWJmZjVlM2ZmMDM0Mzc1YWJiNjhjYTcyZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJDdXJsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3VybC5jcHAKQEAgLTU5LDcg
KzU5LDcgQEAgc3RhdGljIFN0cmluZyBjb29raWVzRm9yU2Vzc2lvbihjb25zdCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYKICAgICByZXR1cm4gY29va2llcy50b1N0
cmluZygpOwogfQogCi12b2lkIENvb2tpZUphckN1cmw6OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29u
c3QKK3ZvaWQgQ29va2llSmFyQ3VybDo6c2V0Q29va2llc0Zyb21ET00oY29uc3QgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVT
aXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1l
SUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QK
IHsKICAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CiAKQEAgLTczLDcgKzczLDcgQEAgdm9pZCBD
b29raWVKYXJDdXJsOjpzZXRDb29raWVzRnJvbUhUVFBSZXNwb25zZShjb25zdCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb24mIHNlc3MKICAgICBjb29raWVKYXJEQi5zZXRDb29raWUoZmlyc3RQYXJ0eSwg
dXJsLCB2YWx1ZSwgQ29va2llSmFyREI6OlNvdXJjZTo6TmV0d29yayk7CiB9CiAKLXN0ZDo6cGFp
cjxTdHJpbmcsIGJvb2w+IENvb2tpZUphckN1cmw6OmNvb2tpZXNGb3JET00oY29uc3QgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNv
bnN0CitzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBDb29raWVKYXJDdXJsOjpjb29raWVzRm9yRE9N
KGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJ
ZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNs
dWRlU2VjdXJlQ29va2llcykgY29uc3QKIHsKICAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CiAg
ICAgVU5VU0VEX1BBUkFNKHBhZ2VJRCk7CkBAIC04Miw3ICs4Miw3IEBAIHN0ZDo6cGFpcjxTdHJp
bmcsIGJvb2w+IENvb2tpZUphckN1cmw6OmNvb2tpZXNGb3JET00oY29uc3QgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uCiAgICAgcmV0dXJuIHsgY29va2llc0ZvclNlc3Npb24oc2Vzc2lvbiwgZmlyc3RQ
YXJ0eSwgdXJsLCBmYWxzZSksIGZhbHNlIH07CiB9CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+
IENvb2tpZUphckN1cmw6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBT
YW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQs
IE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzKSBj
b25zdAorc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gQ29va2llSmFyQ3VybDo6Y29va2llUmVxdWVz
dEhlYWRlckZpZWxkVmFsdWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBj
b25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJs
LCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlm
aWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAogewogICAgIFVOVVNFRF9Q
QVJBTShmcmFtZUlEKTsKICAgICBVTlVTRURfUEFSQU0ocGFnZUlEKTsKQEAgLTExMiw3ICsxMTIs
NyBAQCBib29sIENvb2tpZUphckN1cmw6OmNvb2tpZXNFbmFibGVkKGNvbnN0IE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbiYgc2Vzc2lvbikgY29uc3QKICAgICByZXR1cm4gc2Vzc2lvbi5jb29raWVEYXRh
YmFzZSgpLmlzRW5hYmxlZCgpOwogfQogCi1ib29sIENvb2tpZUphckN1cmw6OmdldFJhd0Nvb2tp
ZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50
NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgVmVjdG9yPENv
b2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0Citib29sIENvb2tpZUphckN1cmw6OmdldFJhd0Nvb2tp
ZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFt
ZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFZl
Y3RvcjxDb29raWU+JiByYXdDb29raWVzKSBjb25zdAogewogICAgIFVOVVNFRF9QQVJBTShmcmFt
ZUlEKTsKICAgICBVTlVTRURfUEFSQU0ocGFnZUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJDdXJsLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3VybC5oCmluZGV4IDI0YTA1YTIyN2Fl
MDZhYmExMTQzMTUyYThmYWM4NDgyOWUwMWY0MTAuLmU2MmJjNGEwN2U4MmUzZWNmN2NmMmY2OGE0
MWU0YTJhZGE3MGZiOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9Db29raWVKYXJDdXJsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL0Nvb2tpZUphckN1cmwuaApAQCAtMjQsNiArMjQsNyBAQAogCiAjcHJhZ21hIG9u
Y2UKIAorI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlm
aWVyLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5o
PgpAQCAtNDIsMTUgKzQzLDE1IEBAIGVudW0gY2xhc3MgQ29va2llQWNjZXB0UG9saWN5OwogCiBj
bGFzcyBDb29raWVKYXJDdXJsIHsKIHB1YmxpYzoKLSAgICBzdGQ6OnBhaXI8U3RyaW5nLCBib29s
PiBjb29raWVzRm9yRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWlu
dDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNv
b2tpZXMpIGNvbnN0OwotICAgIHZvaWQgc2V0Q29va2llc0Zyb21ET00oY29uc3QgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8m
LCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+LCBjb25zdCBTdHJpbmcmKSBjb25zdDsKKyAgICBzdGQ6OnBhaXI8U3RyaW5nLCBi
b29sPiBjb29raWVzRm9yRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8
RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1
ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKKyAgICB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2Ft
ZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlE
LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAgIHZv
aWQgc2V0Q29va2llc0Zyb21IVFRQUmVzcG9uc2UoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmKSBjb25z
dDsKICAgICB2b2lkIHNldENvb2tpZUFjY2VwdFBvbGljeShjb25zdCBOZXR3b3JrU3RvcmFnZVNl
c3Npb24mLCBDb29raWVBY2NlcHRQb2xpY3kpIGNvbnN0OwogICAgIENvb2tpZUFjY2VwdFBvbGlj
eSBjb29raWVBY2NlcHRQb2xpY3koY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJikgY29uc3Q7
CiAgICAgYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mKSBj
b25zdDsKLSAgICBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmll
bGRWYWx1ZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBm
cmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBj
b25zdDsKKyAgICBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmll
bGRWYWx1ZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZyYW1lSWRlbnRp
Zmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29v
a2llcykgY29uc3Q7CiAgICAgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llUmVxdWVzdEhl
YWRlckZpZWxkVmFsdWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgQ29va2ll
UmVxdWVzdEhlYWRlckZpZWxkUHJveHkmKSBjb25zdDsKLSAgICBib29sIGdldFJhd0Nvb2tpZXMo
Y29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBWZWN0b3I8Q29va2llPiYpIGNvbnN0OworICAgIGJv
b2wgZ2V0UmF3Q29va2llcyhjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZy
YW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBWZWN0b3I8
Q29va2llPiYpIGNvbnN0OwogICAgIHZvaWQgZGVsZXRlQ29va2llKGNvbnN0IE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAgIHZvaWQg
Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgSGFz
aFNldDxTdHJpbmc+JiBob3N0bmFtZXMpIGNvbnN0OwogICAgIHZvaWQgZGVsZXRlQ29va2llc0Zv
ckhvc3RuYW1lcyhjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgY29va2llSG9zdE5hbWVzKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25T
b3VwLmNwcAppbmRleCBlNGM4YjBmMTNlNmQwODlhNTg5MmFhN2FlMGE5YjgyMTU4NWJiOWE0Li5l
OTYxYzI4ODNiODYzMDEwNWRhN2Q3ODA3ZjNmYmJlMjYxYTIwNjEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291
cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtT
dG9yYWdlU2Vzc2lvblNvdXAuY3BwCkBAIC0yNjAsNyArMjYwLDcgQEAgc3RhdGljIGlubGluZSBi
b29sIGh0dHBPbmx5Q29va2llRXhpc3RzKGNvbnN0IEdTTGlzdCogY29va2llcywgY29uc3QgZ2No
YXIqIG5hbWUKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpzZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVT
aXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0
aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QK
K3ZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25h
bDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdl
SUQsIGNvbnN0IFN0cmluZyYgdmFsdWUpIGNvbnN0CiB7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1l
SUQpOwogICAgIFVOVVNFRF9QQVJBTShwYWdlSUQpOwpAQCAtNDEzLDcgKzQxMyw3IEBAIFZlY3Rv
cjxDb29raWU+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0Q29va2llcyhjb25zdCBVUkwmIHVy
bCkKICAgICByZXR1cm4gY29va2llczsKIH0KIAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8m
LCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiBwYWdlSUQsIFZlY3RvcjxDb29raWU+JiByYXdDb29raWVzKSBjb25zdAor
Ym9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJh
bWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBW
ZWN0b3I8Q29va2llPiYgcmF3Q29va2llcykgY29uc3QKIHsKICAgICBVTlVTRURfUEFSQU0oZmly
c3RQYXJ0eSk7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwpAQCAtNDgzLDcgKzQ4Myw3IEBA
IHN0YXRpYyBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yU2Vzc2lvbihjb25zdCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlCiAgICAgcmV0dXJuIHsgU3RyaW5nOjpmcm9tVVRGOChj
b29raWVIZWFkZXIuZ2V0KCkpLCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzIH07CiB9CiAKLXN0ZDo6
cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTShj
b25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJs
LCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBh
Z2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0Citz
dGQ6OnBhaXI8U3RyaW5nLCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNGb3JE
T00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwm
IHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRl
bnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2ll
cykgY29uc3QKIHsKICAgICBVTlVTRURfUEFSQU0oZmlyc3RQYXJ0eSk7CiAgICAgVU5VU0VEX1BB
UkFNKGZyYW1lSUQpOwpAQCAtNDkxLDcgKzQ5MSw3IEBAIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFy
CiAgICAgcmV0dXJuIGNvb2tpZXNGb3JTZXNzaW9uKCp0aGlzLCB1cmwsIGZhbHNlLCBpbmNsdWRl
U2VjdXJlQ29va2llcyk7CiB9CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWlu
dDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVT
ZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAorc3RkOjpwYWlyPFN0cmlu
ZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRW
YWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVS
TCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29r
aWVzKSBjb25zdAogewogICAgIFVOVVNFRF9QQVJBTShmaXJzdFBhcnR5KTsKICAgICBVTlVTRURf
UEFSQU0oZnJhbWVJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlLmNwcAppbmRleCA2ODdkMGIwNDYxYWZkZTdjMDcyOThjNmM5ZWZmZDI2
MTk0YmY0N2FjLi43NjNiNDc1OWU0MzNmODcxMzBiMzk0MDA2MjM0MGIyNjg0OGVhOGEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5j
cHAKQEAgLTcxNiw3ICs3MTYsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjpzeW5jU3RvcmFnZUltbWVkaWF0ZWx5KCkKICAgICBtX2RhdGFiYXNlLnJ1blZhY3V1
bUNvbW1hbmQoKTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYgc3ViRnJhbWVEb21haW4s
IGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJRD4g
ZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYgc3ViRnJh
bWVEb21haW4sIGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8
RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJU
KCFSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTc0Myw3ICs3NDMsNyBAQCB2b2lkIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZy
YW1lRG9tYWluJgogICAgIH0pOwogfQogCi12b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1l
RG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlEIGZyYW1lSUQs
IFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNj
ZXNzU3RhdHVzKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYg
c3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoU3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
QVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTgwNCw3ICs4MDQsNyBAQCB2b2lkIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc1Vu
ZGVyT3BlbmVyKERvbWFpbgogICAgIGdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFdURk1vdmUo
ZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzKSwgV1RGTW92ZShvcGVuZXJEb21haW4pLCBXVEY6
Om51bGxvcHQsIG9wZW5lclBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpObywg
W10oU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpIHsgfSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFp
biYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCB1aW50
NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93biBwcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNj
ZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4m
JiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1By
b21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3Jh
Z2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQo
IVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtODE4LDcgKzgxOCw3IEBAIHZvaWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURv
bWFpbiYmIHN1CiAgICAgZ3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoV1RGTW92ZShzdWJGcmFt
ZURvbWFpbiksIFdURk1vdmUodG9wRnJhbWVEb21haW4pLCBmcmFtZUlELCBwYWdlSUQsIHByb21w
dFdhc1Nob3duLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFs
KFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJh
bWVEb21haW4sIE9wdGlvbmFsPEZyYW1lSUQ+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duTm93T3JFYXJsaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21h
aW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRp
Zmllcj4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0
V2FzU2hvd24gcHJvbXB0V2FzU2hvd25Ob3dPckVhcmxpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oCmluZGV4IDNjOGQyYjFmMTY1NDkzYzkzY2E1
ZDgyYmMwMjcyZjkxM2I3YTA3ZmEuLmQyNTZiZTIxY2ZmN2IxZjcwNTU2NDAzMWE1NzVmNWU1ZDIz
MzBlZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZS5oCkBAIC05MSw5ICs5MSw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY2FsY3VsYXRl
QW5kU3VibWl0VGVsZW1ldHJ5KCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIGhhc1N0b3Jh
Z2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9w
dGlvbmFsPEZyYW1lSUQ+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vz
cyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBGcmFtZUlELCBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVz
KT4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21h
aW4mJiwgVG9wRnJhbWVEb21haW4mJiwgRnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpIG92ZXJyaWRlOworICAg
IHZvaWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZy
YW1lRG9tYWluJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIG92ZXJyaWRl
OworICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJh
bWVEb21haW4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJikgb3Zl
cnJpZGU7CisgICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9w
RnJhbWVEb21haW4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJikgb3ZlcnJp
ZGU7CiAKICAgICB2b2lkIGxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBOYXZpZ2F0ZWRUb0RvbWFp
biYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgY29uc3QgTmF2aWdhdGVkRnJvbURvbWFpbiYsIGJv
b2wgaXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFtZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBsb2dV
c2VySW50ZXJhY3Rpb24oY29uc3QgVG9wRnJhbWVEb21haW4mKSBvdmVycmlkZTsKQEAgLTE1Myw3
ICsxNTMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3VyY2UoY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mLCBSZXNvdXJjZUxvYWRQcmV2YWxlbmNlKTsKICAgICB1bnNpZ25l
ZCByZWN1cnNpdmVseUZpbmROb25QcmV2YWxlbnREb21haW5zVGhhdFJlZGlyZWN0ZWRUb1RoaXNE
b21haW4odW5zaWduZWQgcHJpbWFyeURvbWFpbklELCBTdGRTZXQ8dW5zaWduZWQ+JiBub25QcmV2
YWxlbnRSZWRpcmVjdGlvblNvdXJjZXMsIHVuc2lnbmVkIG51bWJlck9mUmVjdXJzaXZlQ2FsbHMp
OwogICAgIHZvaWQgc2V0RG9tYWluc0FzUHJldmFsZW50KFN0ZFNldDx1bnNpZ25lZD4mJik7Ci0g
ICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChTdWJGcmFtZURvbWFpbiYmLCBUb3BG
cmFtZURvbWFpbiYmLCBPcHRpb25hbDxGcmFtZUlEPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpOworICAgIHZvaWQgZ3Jh
bnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4m
JiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpOwogICAgIHZv
aWQgbWFya0FzUHJldmFsZW50SWZIYXNSZWRpcmVjdGVkVG9QcmV2YWxlbnQoKTsKICAgICBWZWN0
b3I8UmVnaXN0cmFibGVEb21haW4+IGVuc3VyZVByZXZhbGVudFJlc291cmNlc0ZvckRlYnVnTW9k
ZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVtb3ZlRGF0YVJlY29yZHMoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZS5jcHAKaW5kZXggZTIzOWZjYzgwM2U4ZDc0NDU2MTIxOGQ2NzIxN2Y3MWVkNDFi
MTg3Zi4uZjZlZTkyZjliNjhkMzJmMDdlNTIxNWQzMDM1NDk5NTE0NGY3YTgzYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0
YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAKQEAgLTIx
MSw3ICsyMTEsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6c3lu
Y1N0b3JhZ2VJbW1lZGlhdGVseSgpCiAgICAgICAgIG1fcGVyc2lzdGVudFN0b3JhZ2UtPnNjaGVk
dWxlT3JXcml0ZU1lbW9yeVN0b3JlKFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3Rv
cmFnZTo6Rm9yY2VJbW1lZGlhdGVXcml0ZTo6WWVzKTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzTWVtb3J5U3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21h
aW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4s
IE9wdGlvbmFsPEZyYW1lSUQ+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZy
YW1lRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgVG9wRnJhbWVEb21haW4mIHRvcEZyYW1l
RG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtMjM1LDcgKzIzNSw3
IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpoYXNTdG9yYWdlQWNj
ZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiBzCiAgICAgfSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURv
bWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBG
cmFtZUlEIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJG
cmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9t
YWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC0yODgsNyArMjg4
LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnJlcXVlc3RTdG9y
YWdlQWNjZXNzVW5kZXJPcGVuZXIoRG9tYWluSW4KICAgICBncmFudFN0b3JhZ2VBY2Nlc3NJbnRl
cm5hbChXVEZNb3ZlKGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcyksIFdURk1vdmUob3BlbmVy
RG9tYWluKSwgV1RGOjpudWxsb3B0LCBvcGVuZXJQYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93bjo6Tm8sIFtdKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKSB7IH0pOwogfQogCi12b2lk
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKFN1
YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVE
b21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFj
Y2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJh
bWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21haW4mJiB0b3BGcmFtZURvbWFp
biwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFn
ZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtMzAwLDcgKzMwMCw3IEBAIHZvaWQg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoU3Vi
RnJhbWVEb21haW4mJiBzdWJGCiAgICAgZ3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoV1RGTW92
ZShzdWJGcmFtZURvbWFpbiksIFdURk1vdmUodG9wRnJhbWVEb21haW4pLCBmcmFtZUlELCBwYWdl
SUQsIHByb21wdFdhc1Nob3duLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZv
aWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3NJ
bnRlcm5hbChTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYm
IHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDxGcmFtZUlEPiBmcmFtZUlELCBQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93bk5vd09y
RWFybGllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFt
ZURvbWFpbiwgVG9wRnJhbWVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJ
ZGVudGlmaWVyPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQ
cm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93bk5vd09yRWFybGllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVt
b3J5U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaAppbmRleCA1YWY2N2ExNmYwNjE2ZGE5ZmEw
YzA5MzMxNWFjYmMzNWRhYTViMTE5Li5hNGE3Yjg4ZTJkZmIwMDM0NmJkYzI3MWZlYjdlNWIyNGJh
ODIwOTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlT
dG9yZS5oCkBAIC05Nyw5ICs5Nyw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY2FsY3VsYXRlQW5k
U3VibWl0VGVsZW1ldHJ5KCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIGhhc1N0b3JhZ2VB
Y2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlv
bmFsPEZyYW1lSUQ+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhT
dWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBGcmFtZUlELCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4m
Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4m
JiwgVG9wRnJhbWVEb21haW4mJiwgRnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdl
YkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpIG92ZXJyaWRlOworICAgIHZv
aWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1l
RG9tYWluJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVE
b21haW4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJh
bWVEb21haW4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJikgb3ZlcnJpZGU7
CiAKICAgICB2b2lkIGxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBOYXZpZ2F0ZWRUb0RvbWFpbiYs
IGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgY29uc3QgTmF2aWdhdGVkRnJvbURvbWFpbiYsIGJvb2wg
aXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFtZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBsb2dVc2Vy
SW50ZXJhY3Rpb24oY29uc3QgVG9wRnJhbWVEb21haW4mKSBvdmVycmlkZTsKQEAgLTEyMyw3ICsx
MjMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgaW5jcmVtZW50UmVjb3Jkc0RlbGV0ZWRDb3VudEZv
ckRvbWFpbnMoSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4mJikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBzZXRQcmV2YWxlbnRSZXNvdXJjZShSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiwgUmVzb3VyY2VM
b2FkUHJldmFsZW5jZSk7CiAgICAgdW5zaWduZWQgcmVjdXJzaXZlbHlHZXRBbGxEb21haW5zVGhh
dEhhdmVSZWRpcmVjdGVkVG9UaGlzRG9tYWluKGNvbnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3Mm
LCBIYXNoU2V0PFJlZGlyZWN0ZWRUb0RvbWFpbj4mLCB1bnNpZ25lZCBudW1iZXJPZlJlY3Vyc2l2
ZUNhbGxzKSBjb25zdDsKLSAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFN1YkZy
YW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIE9wdGlvbmFsPEZyYW1lSUQ+LCBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4m
Jik7CisgICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChTdWJGcmFtZURvbWFpbiYm
LCBUb3BGcmFtZURvbWFpbiYmLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1No
b3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFu
dGVkKT4mJik7CiAgICAgdm9pZCBtYXJrQXNQcmV2YWxlbnRJZkhhc1JlZGlyZWN0ZWRUb1ByZXZh
bGVudChSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJik7CiAgICAgYm9vbCBpc1ByZXZhbGVudER1ZVRv
RGVidWdNb2RlKFJlc291cmNlTG9hZFN0YXRpc3RpY3MmKTsKICAgICBWZWN0b3I8UmVnaXN0cmFi
bGVEb21haW4+IGVuc3VyZVByZXZhbGVudFJlc291cmNlc0ZvckRlYnVnTW9kZSgpIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4IDcwYWNiZGNl
OTZmNjVjZjgzYTk0NjM3ZDNmYjhkMWU5YjI2NTUzZGQuLjIwOTQ1ZGEwOThhNjgwYTBhNGU5OTc3
ZmQ3NTI0NzBmNjc4ZDk5NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NDbGFzc2lmaWVyLmgiCiAjaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYv
Q29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KQEAgLTkwLDcgKzkxLDYgQEAgcHVibGljOgogICAgIHVzaW5nIE5hdmln
YXRlZFRvRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNpbmcgRG9t
YWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CiAg
ICAgdXNpbmcgT3BlbmVyRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47Ci0gICAg
dXNpbmcgRnJhbWVJRCA9IHVpbnQ2NF90OwogICAgIAogICAgIHZpcnR1YWwgflJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZSgpOwogCkBAIC0xNTksOSArMTU5LDkgQEAgcHVibGljOgogICAgIGJv
b2wgaXNEZWJ1Z01vZGVFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9kZWJ1Z01vZGVFbmFibGVk
OyB9OwogICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoY29uc3QgUmVn
aXN0cmFibGVEb21haW4mKTsKIAotICAgIHZpcnR1YWwgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNv
bnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxGcmFt
ZUlEPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJh
bWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgRnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYs
IFRvcEZyYW1lRG9tYWluJiYsIEZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJD
b3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
V2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFt
ZURvbWFpbiYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZy
YW1lRG9tYWluJiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYs
IFRvcEZyYW1lRG9tYWluJiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpID0g
MDsKIAogICAgIHZpcnR1YWwgdm9pZCBsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgTmF2aWdhdGVk
VG9Eb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0IE5hdmlnYXRlZEZyb21Eb21h
aW4mLCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNNYWluRnJhbWUpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgbG9nVXNlckludGVyYWN0aW9uKGNvbnN0IFRvcEZyYW1lRG9tYWluJikgPSAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCA4YzIx
MTU3Y2M3ZjY5MTdiYTk3MDg5ZTM2ZjE2OWQ4NmNmOGI4YWIwLi42NzVmMGRhZjU5Y2U5YjRmODg3
Yjc5NGJjODkyZWM0NGE4Mzc1NmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlLmNwcApAQCAtMjgwLDcgKzI4MCw3IEBAIHZvaWQgV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzVXBkYXRlZChWZWN0b3I8
V2ViQ29yCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFp
biwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDx1aW50
NjRfdD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1
YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIE9w
dGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IEFTU0VSVChzdWJGcmFtZURvbWFpbiAhPSB0b3BGcmFtZURvbWFpbik7CiAgICAgQVNTRVJUKFJ1
bkxvb3A6OmlzTWFpbigpKTsKQEAgLTMwMSw3ICszMDEsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgcwogICAgIH0pOwogfQogCi1ib29sIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6
aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJj
ZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIHVpbnQ2
NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKK2Jvb2wgV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQ
YXJ0eURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC0zMTQsNyArMzE0LDcg
QEAgYm9vbCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3NG
b3JGcmFtZShjb25zdCBSZWdpc3RyYWJsZUQKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQg
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsSGFzU3RvcmFnZUFjY2Vzc0ZvckZy
YW1lSGFuZGxlcihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBoYXNBY2Nl
c3MpPiYmIGNhbGxiYWNrKQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNh
bGxIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21h
aW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBoYXNBY2Nlc3MpPiYmIGNhbGxiYWNrKQogewogICAgIEFT
U0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTMyOCw3ICszMjgsNyBAQCB2b2lkIFdlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhh
bmRsZXIoY29uc3QgUgogICAgIGNhbGxiYWNrKGZhbHNlKTsKIH0KIAotdm9pZCBXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZy
YW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQ
cm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVE
b21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nl
c3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1
bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtMzkxLDcgKzM5MSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyKFJlZ2lz
dHJhYmxlCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9t
YWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZy
YW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3du
IHByb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNH
cmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vz
cyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1No
b3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9y
YWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFT
U0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgcG9zdFRhc2soW3RoaXMsIHN1YkZyYW1lRG9t
YWluID0gc3ViRnJhbWVEb21haW4uaXNvbGF0ZWRDb3B5KCksIHRvcEZyYW1lRG9tYWluID0gdG9w
RnJhbWVEb21haW4uaXNvbGF0ZWRDb3B5KCksIGZyYW1lSUQsIHBhZ2VJRCwgcHJvbXB0V2FzU2hv
d24sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0
YWJsZSB7CkBAIC00MTAsNyArNDEwLDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYKICAgICB9
KTsKIH0KIAotU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291
cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKK1N0b3JhZ2VB
Y2Nlc3NXYXNHcmFudGVkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9y
YWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRp
Zmllcj4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKQogewogICAgIEFTU0VSVChSdW5M
b29wOjppc01haW4oKSk7CiAKQEAgLTQyNyw3ICs0MjcsNyBAQCBTdG9yYWdlQWNjZXNzV2FzR3Jh
bnRlZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyhj
b25zdAogICAgIHJldHVybiBpc1N0b3JhZ2VHcmFudGVkID8gU3RvcmFnZUFjY2Vzc1dhc0dyYW50
ZWQ6OlllcyA6IFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOjpObzsKIH0KIAotdm9pZCBXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxHcmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgUGFnZUlk
ZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNH
cmFudGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjpjYWxsR3JhbnRTdG9yYWdlQWNjZXNzSGFuZGxlcihjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFt
ZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAppbmRleCAw
MjNkYzI3N2NmNTA1NDdiZjk2ODllY2NhNDg0NGQwZTY0YWIxMzJmLi45ZGExYjZiYjUyMTUyMWEw
MTI0MjM0Y2Q0MzI3MTE1NmY4Y2UwYjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQ29ubmVjdGlv
bi5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBY2Nlc3NTdGF0dXMuaCIKICNpbmNsdWRlICJXZWJzaXRl
RGF0YVR5cGUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lzdHJh
YmxlRG9tYWluLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CkBAIC04OSw3
ICs5MCw2IEBAIHB1YmxpYzoKICAgICB1c2luZyBOYXZpZ2F0ZWRUb0RvbWFpbiA9IFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluOwogICAgIHVzaW5nIERvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2Vz
cyA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwogICAgIHVzaW5nIE9wZW5lckRvbWFpbiA9
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwotICAgIHVzaW5nIEZyYW1lSUQgPSB1aW50NjRf
dDsKICAgICB1c2luZyBTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCA9IFdlYkNvcmU6OlN0b3JhZ2VB
Y2Nlc3NXYXNHcmFudGVkOwogICAgIHVzaW5nIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biA9
IFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bjsKIApAQCAtMTExLDcgKzExMSw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0
YVJlY29yZHNSZW1vdmFsKGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAg
dm9pZCBzZXRTaG91bGRTdWJtaXRUZWxlbWV0cnkoYm9vbCk7CiAKLSAgICB2b2lkIGdyYW50U3Rv
cmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwg
RnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNT
aG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3Rv
cmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJik7CisgICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nl
c3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFN0b3JhZ2VBY2Nlc3NQ
cm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3Jh
bnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJik7CiAKICAgICB2b2lkIGFwcGxp
Y2F0aW9uV2lsbFRlcm1pbmF0ZSgpOwogCkBAIC0xMjUsMTEgKzEyNSwxMSBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBjbGVhclVzZXJJbnRlcmFjdGlvbihjb25zdCBUb3BGcmFtZURvbWFpbiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvclJl
Z2lzdHJhYmxlRG9tYWlucyhPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgSGFzaE1hcDxSZWdp
c3RyYWJsZURvbWFpbiwgV2Vic2l0ZURhdGFUb1JlbW92ZT4mJiwgYm9vbCBzaG91bGROb3RpZnlQ
YWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21h
aW4+Jik+JiYpOwogICAgIHZvaWQgcmVnaXN0cmFibGVEb21haW5zV2l0aFdlYnNpdGVEYXRhKE9w
dGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBib29sIHNob3VsZE5vdGlmeVBhZ2UsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4mJik+JiYpOwotICAgIFN0
b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURv
bWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8RnJhbWVJRD4sIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyKTsKKyAgICBTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCBncmFudFN0b3Jh
Z2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9w
dGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
KTsKICAgICB2b2lkIGhhc0hhZFVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotICAgIHZvaWQgaGFzU3RvcmFn
ZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0
aW9uYWw8RnJhbWVJRD4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKTsKLSAgICBib29sIGhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25z
dCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgRnJhbWVJRCwgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIpOwotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoY29uc3Qg
U3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIEZyYW1lSUQsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNH
cmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKTsKKyAgICB2b2lkIGhhc1N0
b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYs
IE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICBib29sIGhhc1N0b3Jh
Z2VBY2Nlc3NGb3JGcmFtZShjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9t
YWluJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7
CisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNv
bnN0IFRvcEZyYW1lRG9tYWluJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3Jh
bnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJik7CiAgICAgdm9pZCBzZXRMYXN0
U2Vlbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRW
ZXJ5UHJldmFsZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwpAQCAtMTcyLDExICsxNzIsMTEgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiAgICAgdm9pZCBsb2dUZXN0aW5n
RXZlbnQoY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBjYWxsR3JhbnRTdG9yYWdlQWNjZXNzSGFu
ZGxlcihjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9u
YWw8RnJhbWVJRD4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJik7CisgICAgdm9pZCBjYWxsR3JhbnRTdG9y
YWdlQWNjZXNzSGFuZGxlcihjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9t
YWluJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQp
PiYmKTsKICAgICB2b2lkIHJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3MoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKICAgICB2b2lkIGNhbGxVcGRhdGVQcmV2YWxlbnREb21haW5zVG9CbG9ja0Nv
b2tpZXNGb3JIYW5kbGVyKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluc1RvQmxvY2tDb29raWVzRm9y
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGNhbGxSZW1vdmVEb21h
aW5zSGFuZGxlcihjb25zdCBWZWN0b3I8UmVnaXN0cmFibGVEb21haW4+Jik7Ci0gICAgdm9pZCBj
YWxsSGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcihjb25zdCBTdWJGcmFtZURvbWFpbiYs
IGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgRnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgY2FsbEhhc1N0b3Jh
Z2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BG
cmFtZURvbWFpbiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogCiAgICAgdm9pZCBkaWRD
cmVhdGVOZXR3b3JrUHJvY2VzcygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaAppbmRleCA3OTMwMWIy
MGNjY2FmZWI1MjEwZDc1YWQ1NzQxZmQyZDkyZThhY2FkLi4yY2JmNGM2ZWUyYjNjYzUwYjUxMTdj
ZjI2ZjMxM2IxNTJjNzM5MGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmgKQEAgLTUxLDcgKzUxLDcg
QEAgcHVibGljOgogICAgICAgICBTdHJpbmcgdXNlckFnZW50OwogICAgICAgICBQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQ7CiAgICAgICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRDsK
LSAgICAgICAgdWludDY0X3QgZnJhbWVJRDsKKyAgICAgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQ7CiAgICAgICAgIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0
b3JlZENyZWRlbnRpYWxzUG9saWN5OwogICAgIH07CiAgICAgdXNpbmcgQ29tcGxldGlvbkNhbGxi
YWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYpPjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMWYxMDA0ZTFiNWJjZDM5ZDhiMTIyZGY4
YzZkYTQ4ZDEzN2M0YmU2MS4uMGMyYzk3NmZlZTIwZDMyOWI0MDdlMDRkYjk2MmZiNjc5OWFmNDMx
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTUyNSw3ICs1MjUsNyBAQCB2b2lk
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRv
RG93bmxvYWQoUEFMOjpTZXNzaQogICAgIGxvYWRlci0+Y29udmVydFRvRG93bmxvYWQoZG93bmxv
YWRJRCwgcmVxdWVzdCwgcmVzcG9uc2UpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpjb29raWVzRm9yRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3Qg
VVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRp
Zmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcywg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcgY29va2llU3RyaW5nLCBib29sIHNlY3VyZUNv
b2tpZXNBY2Nlc3NlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRm9yRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Y29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywg
Y29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNl
Y3VyZUNvb2tpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywg
Ym9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IGF1dG8mIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IHN0b3JhZ2VTZXNzaW9uKG5ldHdvcmtQcm9j
ZXNzKCksIHNlc3Npb25JRCk7CiAgICAgYXV0byByZXN1bHQgPSBuZXR3b3JrU3RvcmFnZVNlc3Np
b24uY29va2llc0ZvckRPTShmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwg
cGFnZUlELCBpbmNsdWRlU2VjdXJlQ29va2llcyk7CkBAIC01MzgsNyArNTM4LDcgQEAgdm9pZCBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIGNvbnMKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdC5m
aXJzdCksIHJlc3VsdC5zZWNvbmQpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpzZXRDb29raWVzRnJvbURPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0
IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpCit2b2lkIE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJvbURPTShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1l
U2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGNvbnN0IFN0cmlu
ZyYgY29va2llU3RyaW5nKQogewogICAgIGF1dG8mIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IHN0
b3JhZ2VTZXNzaW9uKG5ldHdvcmtQcm9jZXNzKCksIHNlc3Npb25JRCk7CiAgICAgbmV0d29ya1N0
b3JhZ2VTZXNzaW9uLnNldENvb2tpZXNGcm9tRE9NKGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywg
dXJsLCBmcmFtZUlELCBwYWdlSUQsIGNvb2tpZVN0cmluZyk7CkBAIC01NTUsMTMgKzU1NSwxMyBA
QCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRW5hYmxlZChQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbQogICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0b3JhZ2VT
ZXNzaW9uKG5ldHdvcmtQcm9jZXNzKCksIHNlc3Npb25JRCkuY29va2llc0VuYWJsZWQoKSk7CiB9
CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZVJlcXVlc3RIZWFk
ZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9w
dGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlE
LCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcywgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChTdHJpbmcsIGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJ
ZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNs
dWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChTdHJpbmcsIGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8gcmVz
dWx0ID0gc3RvcmFnZVNlc3Npb24obmV0d29ya1Byb2Nlc3MoKSwgc2Vzc2lvbklEKS5jb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJh
bWVJRCwgcGFnZUlELCBpbmNsdWRlU2VjdXJlQ29va2llcyk7CiAgICAgY29tcGxldGlvbkhhbmRs
ZXIoV1RGTW92ZShyZXN1bHQuZmlyc3QpLCByZXN1bHQuc2Vjb25kKTsKIH0KIAotdm9pZCBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Z2V0UmF3Q29va2llcyhQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1l
U2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0
aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0
b3I8V2ViQ29yZTo6Q29va2llPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmdldFJhd0Nvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNp
dGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlE
LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IHJlc3VsdDsKICAgICBzdG9yYWdlU2Vzc2lvbihuZXR3
b3JrUHJvY2VzcygpLCBzZXNzaW9uSUQpLmdldFJhd0Nvb2tpZXMoZmlyc3RQYXJ0eSwgc2FtZVNp
dGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgcmVzdWx0KTsKQEAgLTY3MCw3ICs2NzAsNyBA
QCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjplbnN1cmVMZWdhY3lQcml2YXRl
QnJvd3NpbmdTZXNzaW9uKCkKIH0KIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1vdmVTdG9yYWdlQWNj
ZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBmcmFtZUlELCBQ
YWdlSWRlbnRpZmllciBwYWdlSUQpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpyZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKQogewogICAgIGlm
IChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IG5ldHdvcmtQcm9jZXNzKCkuc3RvcmFnZVNlc3Npb24o
c2Vzc2lvbklEKSkKICAgICAgICAgc3RvcmFnZVNlc3Npb24tPnJlbW92ZVN0b3JhZ2VBY2Nlc3NG
b3JGcmFtZShmcmFtZUlELCBwYWdlSUQpOwpAQCAtNzI4LDcgKzcyOCw3IEBAIHZvaWQgTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVkKFZl
Y3RvcjxXZWJDb3JlCiAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnJlc291cmNlTG9h
ZFN0YXRpc3RpY3NVcGRhdGVkKFdURk1vdmUoc3RhdGlzdGljcykpOwogfQogCi12b2lkIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpoYXNTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Omhhc1N0
b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURv
bWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBp
ZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSBuZXR3b3JrUHJvY2VzcygpLm5ldHdvcmtTZXNzaW9u
KHNlc3Npb25JRCkpIHsKICAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3Mg
PSBuZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKSB7CkBAIC03NDAsNyAr
NzQwLDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6aGFzU3RvcmFnZUFj
Y2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGMKICAgICBjb21wbGV0aW9uSGFuZGxlcih0
cnVlKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVxdWVzdFN0
b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURv
bWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIHdhc0dyYW50ZWQs
IFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93bik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpy
ZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRv
cEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFn
ZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFu
dGVkIHdhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9t
cHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdv
cmtTZXNzaW9uID0gbmV0d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7
CiAgICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Np
b24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmlu
ZGV4IDkyODY3MzNjNGI3Yzc1MTJjMjljNTMyNDM4MjFkMGVlMWVjNzEzMDkuLjI1NTA4NGY5MjMx
ZmVhODMwODAwOThkMzU5MzA1N2ExYmQ5MDdjNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgK
QEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJOZXR3b3JrUlRDUHJvdmlkZXIuaCIKICNpbmNs
dWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkTWFwLmgiCiAjaW5jbHVkZSAiV2ViUGF5bWVudENvb3Jk
aW5hdG9yUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTmV0d29ya0xvYWRJbmZvcm1hdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVy
Lmg+CkBAIC0xNzQsMTEgKzE3NSwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RhcnREb3dubG9h
ZChQQUw6OlNlc3Npb25JRCwgRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWROYW1lID0geyB9KTsKICAgICB2b2lkIGNvbnZl
cnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgbWFp
blJlc291cmNlTG9hZElkZW50aWZpZXIsIERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKIAotICAgIHZv
aWQgY29va2llc0ZvckRPTShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpJ
bmNsdWRlU2VjdXJlQ29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcgY29va2ll
U3RyaW5nLCBib29sIHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCk+JiYpOwotICAgIHZvaWQgc2V0Q29v
a2llc0Zyb21ET00oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
V2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJik7
CisgICAgdm9pZCBjb29raWVzRm9yRE9NKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFs
PFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyPiwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQpPiYmKTsK
KyAgICB2b2lkIHNldENvb2tpZXNGcm9tRE9NKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlv
bmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyPiwgY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBjb29raWVzRW5hYmxlZChQQUw6OlNl
c3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCBjb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBX
ZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJp
bmcgY29va2llU3RyaW5nLCBib29sIHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCk+JiYpOwotICAgIHZv
aWQgZ2V0UmF3Q29va2llcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYpPiYmKTsKKyAgICB2b2lkIGNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlv
bmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyPiwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQpPiYm
KTsKKyAgICB2b2lkIGdldFJhd0Nvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9u
YWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50
aWZpZXI+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYp
PiYmKTsKICAgICB2b2lkIGRlbGV0ZUNvb2tpZShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwg
Y29uc3QgU3RyaW5nJiBjb29raWVOYW1lKTsKIAogICAgIHZvaWQgcmVnaXN0ZXJGaWxlQmxvYlVS
TChQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBwYXRoLCBTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGUmJiwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSk7CkBAIC0yMTgs
NyArMjE5LDcgQEAgcHJpdmF0ZToKICAgICBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uJiBj
YWNoZVN0b3JhZ2VDb25uZWN0aW9uKCk7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKQotICAgIHZvaWQgcmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lv
bklELCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CisgICAgdm9p
ZCByZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogICAgIHZvaWQgY2xlYXJQ
YWdlU3BlY2lmaWNEYXRhRm9yUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQQUw6OlNlc3Npb25JRCwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogCiAgICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb24o
UEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJik7CkBAIC0yMjYsOCArMjI3
LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGxvZ1N1YnJlc291cmNlTG9hZGluZyhQQUw6OlNlc3Np
b25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRhcmdldERvbWFpbiwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBXYWxsVGltZSBsYXN0U2Vlbik7CiAgICAgdm9p
ZCBsb2dTdWJyZXNvdXJjZVJlZGlyZWN0KFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdGFyZ2V0RG9t
YWluKTsKICAgICB2b2lkIHJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVkKFZlY3RvcjxXZWJD
b3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPiYmKTsKLSAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nl
c3MoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFp
biwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFt
ZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJik7Ci0gICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNH
cmFudGVkLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKTsKKyAgICB2
b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9t
YWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdl
QWNjZXNzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVE
b21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFn
ZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJik7CiAgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vz
c1VuZGVyT3BlbmVyKFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYm
IGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgb3Bl
bmVyUGFnZUlELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIG9wZW5lckRvbWFpbik7CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXgg
NGIxMTg5YjM5Y2NlYmM4ZmIyMjZmOGZlZTAzNDI4YzZjODVhZDdhMy4uOTlhYmQwNzhmYjE0Yzlm
MzBiZTljODc2MDNhMTNkOTFiZDc5YTljZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluCkBAIC0zNCwxMSArMzQsMTEgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFN0YXJ0RG93bmxvYWQo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBzdWdnZXN0ZWROYW1lKQog
ICAgIENvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBXZWJLaXQ6OkRvd25s
b2FkSUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpCiAKLSAgICBDb29raWVzRm9yRE9NKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1l
U2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgZW51bTpib29sIFdl
YkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSAtPiAoU3Ry
aW5nIGNvb2tpZVN0cmluZywgYm9vbCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzKSBTeW5jaHJvbm91
cwotICAgIFNldENvb2tpZXNGcm9tRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZp
cnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwg
dXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXI+IHBhZ2VJRCwgU3RyaW5nIGNvb2tpZVN0cmluZykKKyAgICBDb29raWVzRm9yRE9N
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3Jl
OjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25hbDxXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
PiBwYWdlSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRl
U2VjdXJlQ29va2llcykgLT4gKFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgZGlkQWNjZXNzU2Vj
dXJlQ29va2llcykgU3luY2hyb25vdXMKKyAgICBTZXRDb29raWVzRnJvbURPTShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJ
bmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyPiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBT
dHJpbmcgY29va2llU3RyaW5nKQogICAgIENvb2tpZXNFbmFibGVkKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkgLT4gKGJvb2wgZW5hYmxlZCkgU3luY2hyb25vdXMKLSAgICBDb29raWVSZXF1ZXN0
SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5
LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
PiBwYWdlSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRl
U2VjdXJlQ29va2llcykgLT4gKFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgZGlkQWNjZXNzU2Vj
dXJlQ29va2llcykgU3luY2hyb25vdXMKLSAgICBHZXRSYXdDb29raWVzKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgVVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8g
c2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9u
YWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpD
b29raWU+IGNvb2tpZXMpIFN5bmNocm9ub3VzCisgICAgQ29va2llUmVxdWVzdEhlYWRlckZpZWxk
VmFsdWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdl
YkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRCwgZW51bTpib29sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGlu
Y2x1ZGVTZWN1cmVDb29raWVzKSAtPiAoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBkaWRBY2Nl
c3NTZWN1cmVDb29raWVzKSBTeW5jaHJvbm91cworICAgIEdldFJhd0Nvb2tpZXMoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRl
SW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRp
Zmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkg
LT4gKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IGNvb2tpZXMpIFN5bmNocm9ub3VzCiAgICAgRGVs
ZXRlQ29va2llKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIHVybCwgU3RyaW5nIGNvb2tp
ZU5hbWUpCiAKICAgICBSZWdpc3RlckZpbGVCbG9iVVJMKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgVVJMIHVybCwgU3RyaW5nIHBhdGgsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
IGV4dGVuc2lvbkhhbmRsZSwgU3RyaW5nIGNvbnRlbnRUeXBlKQpAQCAtNTgsMTUgKzU4LDE1IEBA
IG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVy
IHsKICAgICBFbnN1cmVMZWdhY3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkKIAogI2lmIEVOQUJM
RShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgUmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZy
YW1lKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgcGFnZUlEKTsKKyAgICBSZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKTsKICAgICBDbGVhclBhZ2VTcGVjaWZp
Y0RhdGFGb3JSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKTsKICAgICBMb2dVc2VySW50ZXJhY3Rpb24o
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21h
aW4pCiAgICAgTG9nV2ViU29ja2V0TG9hZGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRhcmdldERvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4gdG9wRnJhbWVEb21haW4sIFdhbGxUaW1lIGxhc3RTZWVuKQogICAgIExvZ1N1YnJl
c291cmNlTG9hZGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluIHRhcmdldERvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJh
bWVEb21haW4sIFdhbGxUaW1lIGxhc3RTZWVuKQogICAgIExvZ1N1YnJlc291cmNlUmVkaXJlY3Qo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzb3Vy
Y2VEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRhcmdldERvbWFpbikKICAgICBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzVXBkYXRlZChWZWN0b3I8V2ViQ29yZTo6UmVzb3VyY2VMb2Fk
U3RhdGlzdGljcz4gc3RhdGlzdGljcykKLSAgICBIYXNTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3ViRnJhbWVEb21haW4s
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFt
ZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpIC0+IChib29sIGhhc1N0b3JhZ2VB
Y2Nlc3MpIEFzeW5jCi0gICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkgLT4gKGVudW06Ym9vbCBXZWJDb3JlOjpTdG9y
YWdlQWNjZXNzV2FzR3JhbnRlZCB3YXNHcmFudGVkLCBlbnVtOmJvb2wgV2ViQ29yZTo6U3RvcmFn
ZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duKSBBc3luYworICAgIEhhc1N0b3Jh
Z2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVE
b21haW4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciBwYWdlSUQpIC0+IChib29sIGhhc1N0b3JhZ2VBY2Nlc3MpIEFzeW5jCisgICAgUmVx
dWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4g
dG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciBwYWdlSUQpIC0+IChlbnVtOmJvb2wgV2ViQ29yZTo6U3RvcmFnZUFj
Y2Vzc1dhc0dyYW50ZWQgd2FzR3JhbnRlZCwgZW51bTpib29sIFdlYkNvcmU6OlN0b3JhZ2VBY2Nl
c3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93bikgQXN5bmMKICAgICBSZXF1ZXN0U3RvcmFn
ZUFjY2Vzc1VuZGVyT3BlbmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4gZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzLCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciBvcGVuZXJQYWdlSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIG9wZW5l
ckRvbWFpbikKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtMb2FkQ2hlY2tlci5jcHAKaW5kZXggNDA5NzE0ZDY2NzI2YTg0NzRhZmYyOWExNjA4
MTdmMjQ3OTY3YjAxNi4uMTE3NmY1MzdhODU4MDliNGJhZTFjZTc2OGI1NjUzNWIxNWQ1ZWJiMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNr
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVj
a2VyLmNwcApAQCAtNDgsNyArNDgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTYW1lT3JpZ2lu
KGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTZWN1cml0eU9yaWdpbiogb3JpZ2luKQogICAgIHJldHVy
biB1cmwucHJvdG9jb2xJc0RhdGEoKSB8fCB1cmwucHJvdG9jb2xJc0Jsb2IoKSB8fCAhb3JpZ2lu
IHx8IG9yaWdpbi0+Y2FuUmVxdWVzdCh1cmwpOwogfQogCi1OZXR3b3JrTG9hZENoZWNrZXI6Ok5l
dHdvcmtMb2FkQ2hlY2tlcihOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIEZldGNoT3B0
aW9ucyYmIG9wdGlvbnMsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgUGFnZUlkZW50aWZpZXIg
cGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBIVFRQSGVhZGVyTWFwJiYgb3JpZ2luYWxSZXF1ZXN0
SGVhZGVycywgVVJMJiYgdXJsLCBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+JiYgc291cmNlT3JpZ2lu
LCBQcmVmbGlnaHRQb2xpY3kgcHJlZmxpZ2h0UG9saWN5LCBTdHJpbmcmJiByZWZlcnJlciwgYm9v
bCBpc0hUVFBTVXBncmFkZUVuYWJsZWQsIGJvb2wgc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xv
YWRNZXRyaWNzLCBMb2FkVHlwZSByZXF1ZXN0TG9hZFR5cGUpCitOZXR3b3JrTG9hZENoZWNrZXI6
Ok5ldHdvcmtMb2FkQ2hlY2tlcihOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIEZldGNo
T3B0aW9ucyYmIG9wdGlvbnMsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgUGFnZUlkZW50aWZp
ZXIgcGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgSFRUUEhlYWRlck1hcCYmIG9yaWdp
bmFsUmVxdWVzdEhlYWRlcnMsIFVSTCYmIHVybCwgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiYmIHNv
dXJjZU9yaWdpbiwgUHJlZmxpZ2h0UG9saWN5IHByZWZsaWdodFBvbGljeSwgU3RyaW5nJiYgcmVm
ZXJyZXIsIGJvb2wgaXNIVFRQU1VwZ3JhZGVFbmFibGVkLCBib29sIHNob3VsZENhcHR1cmVFeHRy
YU5ldHdvcmtMb2FkTWV0cmljcywgTG9hZFR5cGUgcmVxdWVzdExvYWRUeXBlKQogICAgIDogbV9v
cHRpb25zKFdURk1vdmUob3B0aW9ucykpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAg
ICAgLCBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQcm9jZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmgKaW5kZXggMDc3MDY0NjcwZmNi
YjlhYzk0MmY4ZDg2MTgxMDQ5NTlmMDBlMDU3OC4uZWM5NGUxNDY5NTMzZDdkOTg3ODE2YmIyNmIx
N2RmYjIzYjk0M2ZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZENoZWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkQ2hlY2tlci5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9D
b250ZW50RXh0ZW5zaW9uQWN0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGVudFNlY3Vy
aXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GZXRjaE9wdGlv
bnMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvTmV0d29ya0xvYWRJbmZvcm1hdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlk
ZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KQEAgLTU1LDcg
KzU2LDcgQEAgY2xhc3MgTmV0d29ya0xvYWRDaGVja2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRy
PE5ldHdvcmtMb2FkQ2hlY2tlcj4gewogcHVibGljOgogICAgIGVudW0gY2xhc3MgTG9hZFR5cGUg
OiBib29sIHsgTWFpbkZyYW1lLCBPdGhlciB9OwogCi0gICAgTmV0d29ya0xvYWRDaGVja2VyKE5l
dHdvcmtQcm9jZXNzJiwgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiYsIFBBTDo6U2Vzc2lvbklELCBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6SFRUUEhl
YWRlck1hcCYmLCBVUkwmJiwgUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmLCBXZWJD
b3JlOjpQcmVmbGlnaHRQb2xpY3ksIFN0cmluZyYmIHJlZmVycmVyLCBib29sIGlzSFRUUFNVcGdy
YWRlRW5hYmxlZCA9IGZhbHNlLCBib29sIHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0
cmljcyA9IGZhbHNlLCBMb2FkVHlwZSByZXF1ZXN0TG9hZFR5cGUgPSBMb2FkVHlwZTo6T3RoZXIp
OworICAgIE5ldHdvcmtMb2FkQ2hlY2tlcihOZXR3b3JrUHJvY2VzcyYsIFdlYkNvcmU6OkZldGNo
T3B0aW9ucyYmLCBQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYmLCBVUkwmJiwgUmVm
UHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmLCBXZWJDb3JlOjpQcmVmbGlnaHRQb2xpY3ks
IFN0cmluZyYmIHJlZmVycmVyLCBib29sIGlzSFRUUFNVcGdyYWRlRW5hYmxlZCA9IGZhbHNlLCBi
b29sIHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyA9IGZhbHNlLCBMb2FkVHlw
ZSByZXF1ZXN0TG9hZFR5cGUgPSBMb2FkVHlwZTo6T3RoZXIpOwogICAgIH5OZXR3b3JrTG9hZENo
ZWNrZXIoKTsKIAogICAgIHN0cnVjdCBSZWRpcmVjdGlvblRyaXBsZXQgewpAQCAtMTI3LDcgKzEy
OCw3IEBAIHByaXZhdGU6CiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgUmVm
PE5ldHdvcmtQcm9jZXNzPiBtX25ldHdvcmtQcm9jZXNzOwogICAgIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIG1fcGFnZUlEOwotICAgIHVpbnQ2NF90IG1fZnJhbWVJRDsKKyAgICBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgbV9mcmFtZUlEOwogICAgIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAgbV9v
cmlnaW5hbFJlcXVlc3RIZWFkZXJzOyAvLyBOZWVkZWQgZm9yIENPUlMgY2hlY2tzLgogICAgIFdl
YkNvcmU6OkhUVFBIZWFkZXJNYXAgbV9maXJzdFJlcXVlc3RIZWFkZXJzOyAvLyBOZWVkZWQgZm9y
IENPUlMgY2hlY2tzLgogICAgIFVSTCBtX3VybDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCmluZGV4IGM0M2U1ZGNkNzUwMTFh
NTU5MWU2ZTY4MjcyNGMxYTY5NTY1ZWNmMTcuLmI4ZjdkMTM5ZTMxZWM1YzgyNzEzNWUzNzMwYjdi
MGQ5ZWYwYTQ2MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0xvYWRQYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZFBhcmFtZXRlcnMuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiTmV0
d29ya0FjdGl2aXR5VHJhY2tlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQmxvYkRhdGFGaWxlUmVm
ZXJlbmNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxv
YWRlck9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgpAQCAt
NDYsNyArNDcsNyBAQCBwdWJsaWM6CiAKICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7CiAg
ICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEOwotICAgIHVpbnQ2NF90IHdlYkZy
YW1lSUQgeyAwIH07CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIHdlYkZyYW1lSUQ7CiAg
ICAgV1RGOjpQcm9jZXNzSUQgcGFyZW50UElEIHsgMCB9OwogICAgIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCByZXF1ZXN0OwogICAgIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBjb250
ZW50U25pZmZpbmdQb2xpY3kgeyBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3k6OlNuaWZm
Q29udGVudCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5oCmluZGV4IDFiZWI3YjY1ZGI2MzBjM2IzMjhiYjE1Y2ZjM2IzMTE2YjRiOTk0ZDYuLjYxMjFi
YWRiYTNmZTQ5YWYwODczYjg1NzMyZWM4MDIwNTZmZmU4MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTEzNyw3ICsxMzcsNiBAQCBwdWJs
aWM6CiAgICAgdXNpbmcgTmF2aWdhdGVkVG9Eb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbjsKICAgICB1c2luZyBEb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MgPSBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbjsKICAgICB1c2luZyBPcGVuZXJEb21haW4gPSBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbjsKLSAgICB1c2luZyBGcmFtZUlEID0gdWludDY0X3Q7CiAKICAgICBOZXR3
b3JrUHJvY2VzcyhBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiYpOwog
ICAgIH5OZXR3b3JrUHJvY2VzcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDQ3ODJlZjE1ZjNkZWVlNWFm
NGVhZWYwNWNkZjYwMzZhZTdlNmQyZmIuLmVjNmE4MGM4NDg5ZGVmMzJkNzg5Yjc0YmVjMTI3MzU3
YmVjNTU4MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTE4MCwxOCArMTgwLDE4IEBAIHZvaWQgTmV0d29y
a1Jlc291cmNlTG9hZGVyOjpzdGFydCgpCiAKICAgICAgICAgICAgIFdURjo6c3dpdGNoT24ocmVz
dWx0LAogICAgICAgICAgICAgICAgIFt0aGlzXSAoUmVzb3VyY2VFcnJvciYgZXJyb3IpIHsKLSAg
ICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6IGVycm9yIGNo
ZWNraW5nIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNv
dXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMg
PSAlZCwgcGFyZW50UElEID0gJWQsIGVycm9yLmRvbWFpbiA9ICV7cHVibGljfXMsIGVycm9yLmNv
ZGUgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVy
cy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgdGhpcy0+aXNNYWluUmVzb3Vy
Y2UoKSwgdGhpcy0+aXNTeW5jaHJvbm91cygpLCBtX3BhcmFtZXRlcnMucGFyZW50UElELCBlcnJv
ci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJvci5lcnJvckNvZGUoKSk7CisgICAgICAgICAg
ICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0OiBlcnJvciBjaGVja2luZyAo
cGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9
ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQsIHBh
cmVudFBJRCA9ICVkLCBlcnJvci5kb21haW4gPSAle3B1YmxpY31zLCBlcnJvci5jb2RlID0gJWQp
IiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJh
bWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgdGhpcy0+aXNNYWluUmVz
b3VyY2UoKSwgdGhpcy0+aXNTeW5jaHJvbm91cygpLCBtX3BhcmFtZXRlcnMucGFyZW50UElELCBl
cnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJvci5lcnJvckNvZGUoKSk7CiAgICAgICAg
ICAgICAgICAgICAgIGlmICghZXJyb3IuaXNDYW5jZWxsYXRpb24oKSkKICAgICAgICAgICAgICAg
ICAgICAgICAgIHRoaXMtPmRpZEZhaWxMb2FkaW5nKGVycm9yKTsKICAgICAgICAgICAgICAgICB9
LAogICAgICAgICAgICAgICAgIFt0aGlzXSAoTmV0d29ya0xvYWRDaGVja2VyOjpSZWRpcmVjdGlv
blRyaXBsZXQmIHRyaXBsZXQpIHsKICAgICAgICAgICAgICAgICAgICAgdGhpcy0+bV9pc1dhaXRp
bmdDb250aW51ZVdpbGxTZW5kUmVxdWVzdEZvckNhY2hlZFJlZGlyZWN0ID0gdHJ1ZTsKICAgICAg
ICAgICAgICAgICAgICAgdGhpcy0+d2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdChXVEZNb3ZlKHRy
aXBsZXQucmVxdWVzdCksIFdURk1vdmUodHJpcGxldC5yZWRpcmVjdFJlcXVlc3QpLCBXVEZNb3Zl
KHRyaXBsZXQucmVkaXJlY3RSZXNwb25zZSkpOwotICAgICAgICAgICAgICAgICAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKCJzdGFydDogc3ludGhldGljIHJlZGlyZWN0IHNlbnQgYmVjYXVzZSBy
ZXF1ZXN0IFVSTCB3YXMgbW9kaWZpZWQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAl
ZCwgaXNTeW5jaHJvbm91cyA9ICVkLCBwYXJlbnRQSUQgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2Vi
UGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMu
aWRlbnRpZmllciwgdGhpcy0+aXNNYWluUmVzb3VyY2UoKSwgdGhpcy0+aXNTeW5jaHJvbm91cygp
LCBtX3BhcmFtZXRlcnMucGFyZW50UElEKTsKKyAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgic3RhcnQ6IHN5bnRoZXRpYyByZWRpcmVjdCBzZW50IGJlY2F1c2UgcmVx
dWVzdCBVUkwgd2FzIG1vZGlmaWVkIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQs
IGlzU3luY2hyb25vdXMgPSAlZCwgcGFyZW50UElEID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBh
Z2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3Bh
cmFtZXRlcnMuaWRlbnRpZmllciwgdGhpcy0+aXNNYWluUmVzb3VyY2UoKSwgdGhpcy0+aXNTeW5j
aHJvbm91cygpLCBtX3BhcmFtZXRlcnMucGFyZW50UElEKTsKICAgICAgICAgICAgICAgICB9LAog
ICAgICAgICAgICAgICAgIFt0aGlzXSAoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KSB7CiAgICAg
ICAgICAgICAgICAgICAgIGlmICh0aGlzLT5jYW5Vc2VDYWNoZShyZXF1ZXN0KSkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6IENoZWNraW5n
IGNhY2hlIGZvciByZXNvdXJjZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQ
Ukl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBp
c1N5bmNocm9ub3VzID0gJWQsIHBhcmVudFBJRCA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdl
SUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVu
dGlmaWVyLCB0aGlzLT5pc01haW5SZXNvdXJjZSgpLCB0aGlzLT5pc1N5bmNocm9ub3VzKCksIG1f
cGFyYW1ldGVycy5wYXJlbnRQSUQpOworICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgic3RhcnQ6IENoZWNraW5nIGNhY2hlIGZvciByZXNvdXJjZSAocGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBS
SXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQsIHBhcmVudFBJ
RCA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJz
LndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIHRoaXMtPmlz
TWFpblJlc291cmNlKCksIHRoaXMtPmlzU3luY2hyb25vdXMoKSwgbV9wYXJhbWV0ZXJzLnBhcmVu
dFBJRCk7CiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLT5yZXRyaWV2ZUNhY2hlRW50cnko
cmVxdWVzdCk7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAg
ICAgICAgIH0KQEAgLTIwNCw3ICsyMDQsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
c3RhcnQoKQogICAgIH0KICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoYXQgY29kZSBwYXRoIG9uY2Ug
bV9uZXR3b3JrTG9hZENoZWNrZXIgaXMgdXNlZCBmb3IgYWxsIG5ldHdvcmsgbG9hZHMuCiAgICAg
aWYgKGNhblVzZUNhY2hlKG9yaWdpbmFsUmVxdWVzdCgpKSkgewotICAgICAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKCJzdGFydDogQ2hlY2tpbmcgY2FjaGUgZm9yIHJlc291cmNlIChwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJ
dTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCwgcGFyZW50UElE
ID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMu
d2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlz
U3luY2hyb25vdXMoKSwgbV9wYXJhbWV0ZXJzLnBhcmVudFBJRCk7CisgICAgICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoInN0YXJ0OiBDaGVja2luZyBjYWNoZSBmb3IgcmVzb3VyY2UgKHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQ
Ukl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkLCBwYXJlbnRQ
SUQgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVy
cy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5S
ZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCksIG1fcGFyYW1ldGVycy5wYXJlbnRQSUQpOwogICAg
ICAgICByZXRyaWV2ZUNhY2hlRW50cnkob3JpZ2luYWxSZXF1ZXN0KCkpOwogICAgICAgICByZXR1
cm47CiAgICAgfQpAQCAtMjQ0LDcgKzI0NCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVy
OjpyZXRyaWV2ZUNhY2hlRW50cnkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogICAg
ICAgICBsb2dTbG93Q2FjaGVSZXRyaWV2ZUlmTmVlZGVkKGluZm8pOwogCiAgICAgICAgIGlmICgh
ZW50cnkpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2Fj
aGVFbnRyeTogUmVzb3VyY2Ugbm90IGluIGNhY2hlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291
cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRv
VUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmll
ciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKKyAgICAgICAgICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogUmVzb3VyY2Ugbm90IGluIGNh
Y2hlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJj
ZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAl
ZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJG
cmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJj
ZSgpLCBpc1N5bmNocm9ub3VzKCkpOwogICAgICAgICAgICAgc3RhcnROZXR3b3JrTG9hZChXVEZN
b3ZlKHJlcXVlc3QpLCBGaXJzdExvYWQ6Olllcyk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6cmV0
cmlldmVDYWNoZUVudHJ5SW50ZXJuYWwoc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtDYQogewogI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgaWYgKGVudHJ5LT5oYXNSZWFj
aGVkUHJldmFsZW50UmVzb3VyY2VBZ2VDYXAoKSkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJlc291cmNlIGhhcyByZWFjaGVkIHByZXZhbGVu
dCByZXNvdXJjZSBhZ2UgY2FwIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlz
U3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1f
cGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVz
b3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RCgicmV0cmlldmVDYWNoZUVudHJ5OiBSZXNvdXJjZSBoYXMgcmVhY2hlZCBwcmV2YWxlbnQgcmVz
b3VyY2UgYWdlIGNhcCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQg
IiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNo
cm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFt
ZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNN
YWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKICAgICAgICAgbV9jYWNoZUVudHJ5Rm9y
TWF4QWdlQ2FwVmFsaWRhdGlvbiA9IFdURk1vdmUoZW50cnkpOwogICAgICAgICBSZXNvdXJjZVJl
cXVlc3QgcmV2YWxpZGF0aW9uUmVxdWVzdCA9IG9yaWdpbmFsUmVxdWVzdCgpOwogICAgICAgICBz
dGFydE5ldHdvcmtMb2FkKFdURk1vdmUocmV2YWxpZGF0aW9uUmVxdWVzdCksIEZpcnN0TG9hZDo6
WWVzKTsKQEAgLTI2NCwyOCArMjY0LDI4IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpy
ZXRyaWV2ZUNhY2hlRW50cnlJbnRlcm5hbChzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0NhCiAgICAg
fQogI2VuZGlmCiAgICAgaWYgKGVudHJ5LT5yZWRpcmVjdFJlcXVlc3QoKSkgewotICAgICAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IEhhbmRsaW5nIHJlZGly
ZWN0IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJj
ZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAl
ZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJG
cmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5j
aHJvbm91cygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNo
ZUVudHJ5OiBIYW5kbGluZyByZWRpcmVjdCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9
ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2
NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRl
bnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKICAgICAgICAgZGlz
cGF0Y2hXaWxsU2VuZFJlcXVlc3RGb3JDYWNoZUVudHJ5KFdURk1vdmUocmVxdWVzdCksIFdURk1v
dmUoZW50cnkpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAobV9wYXJhbWV0ZXJz
Lm5lZWRzQ2VydGlmaWNhdGVJbmZvICYmICFlbnRyeS0+cmVzcG9uc2UoKS5jZXJ0aWZpY2F0ZUlu
Zm8oKSkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50
cnk6IFJlc291cmNlIGRvZXMgbm90IGhhdmUgcmVxdWlyZWQgY2VydGlmaWNhdGUgKHBhZ2VJRCA9
ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1
NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1l
dGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFy
YW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOwor
ICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJlc291
cmNlIGRvZXMgbm90IGhhdmUgcmVxdWlyZWQgY2VydGlmaWNhdGUgKHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNN
YWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQ
YWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9w
YXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7
CiAgICAgICAgIHN0YXJ0TmV0d29ya0xvYWQoV1RGTW92ZShyZXF1ZXN0KSwgRmlyc3RMb2FkOjpZ
ZXMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlmIChlbnRyeS0+bmVlZHNWYWxpZGF0
aW9uKCkgfHwgcmVxdWVzdC5jYWNoZVBvbGljeSgpID09IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dENhY2hlUG9saWN5OjpSZWZyZXNoQW55Q2FjaGVEYXRhKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogVmFsaWRhdGluZyBjYWNoZSBlbnRyeSAo
cGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9
ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwg
bV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJ
RCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25v
dXMoKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRy
eTogVmFsaWRhdGluZyBjYWNoZSBlbnRyeSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9
ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2
NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRl
bnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKICAgICAgICAgdmFs
aWRhdGVDYWNoZUVudHJ5KFdURk1vdmUoZW50cnkpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
LSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJldHJpZXZl
ZCByZXNvdXJjZSBmcm9tIGNhY2hlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQs
IGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCks
IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWlu
UmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJldHJpZXZlZCByZXNvdXJjZSBmcm9tIGNhY2hlIChwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIg
UFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3Bh
cmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRv
VUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5
bmNocm9ub3VzKCkpOwogICAgIGRpZFJldHJpZXZlQ2FjaGVFbnRyeShXVEZNb3ZlKGVudHJ5KSk7
CiB9CiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydE5ldHdvcmtMb2FkKFJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEZpcnN0TG9hZCBsb2FkKQogewogICAgIGlmIChsb2FkID09
IEZpcnN0TG9hZDo6WWVzKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0
TmV0d29ya0xvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAi
LCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hy
b25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1l
dGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2Uo
KSwgaXNTeW5jaHJvbm91cygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3Rh
cnROZXR3b3JrTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5j
aHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJh
bWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlz
TWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CiAKICAgICAgICAgY29uc3VtZVNhbmRi
b3hFeHRlbnNpb25zKCk7CiAKQEAgLTMwOCw3ICszMDgsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJj
ZUxvYWRlcjo6c3RhcnROZXR3b3JrTG9hZChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBGaXJz
dExvYQogICAgIH0KICAgICBpZiAoIW5ldHdvcmtTZXNzaW9uKSB7CiAgICAgICAgIFdURkxvZ0Fs
d2F5cygiQXR0ZW1wdGVkIHRvIGNyZWF0ZSBhIE5ldHdvcmtMb2FkIHdpdGggYSBzZXNzaW9uIChp
ZD0lIiBQUkl1NjQgIikgdGhhdCBkb2VzIG5vdCBleGlzdC4iLCBwYXJhbWV0ZXJzLnNlc3Npb25J
RC5zZXNzaW9uSUQoKSk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoInN0
YXJ0TmV0d29ya0xvYWQ6IEF0dGVtcHRlZCB0byBjcmVhdGUgYSBOZXR3b3JrTG9hZCB3aXRoIGEg
c2Vzc2lvbiB0aGF0IGRvZXMgbm90IGV4aXN0IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIHNlc3Npb25JRD0lIiBQ
Ukl1NjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVy
cy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgcGFyYW1ldGVycy5zZXNzaW9u
SUQuc2Vzc2lvbklEKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKCJz
dGFydE5ldHdvcmtMb2FkOiBBdHRlbXB0ZWQgdG8gY3JlYXRlIGEgTmV0d29ya0xvYWQgd2l0aCBh
IHNlc3Npb24gdGhhdCBkb2VzIG5vdCBleGlzdCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBzZXNzaW9uSUQ9JSIg
UFJJdTY0ICIpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRl
cnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgcGFyYW1l
dGVycy5zZXNzaW9uSUQuc2Vzc2lvbklEKCkpOwogICAgICAgICBtX2Nvbm5lY3Rpb24tPm5ldHdv
cmtQcm9jZXNzKCkubG9nRGlhZ25vc3RpY01lc3NhZ2UobV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCwg
V2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjppbnRlcm5hbEVycm9yS2V5KCksIFdlYkNv
cmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6aW52YWxpZFNlc3Npb25JREtleSgpLCBXZWJDb3Jl
OjpTaG91bGRTYW1wbGU6Ok5vKTsKICAgICAgICAgZGlkRmFpbExvYWRpbmcoaW50ZXJuYWxFcnJv
cihyZXF1ZXN0LnVybCgpKSk7CiAgICAgICAgIHJldHVybjsKQEAgLTMyMCw3ICszMjAsNyBAQCB2
b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnROZXR3b3JrTG9hZChSZXNvdXJjZVJlcXVl
c3QmJiByZXF1ZXN0LCBGaXJzdExvYQogICAgIHBhcmFtZXRlcnMucmVxdWVzdCA9IFdURk1vdmUo
cmVxdWVzdCk7CiAgICAgbV9uZXR3b3JrTG9hZCA9IHN0ZDo6bWFrZV91bmlxdWU8TmV0d29ya0xv
YWQ+KCp0aGlzLCAmbmV0d29ya1Nlc3Npb24tPmJsb2JSZWdpc3RyeSgpLCBXVEZNb3ZlKHBhcmFt
ZXRlcnMpLCAqbmV0d29ya1Nlc3Npb24pOwogCi0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgi
c3RhcnROZXR3b3JrTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgZGVzY3JpcHRpb24gPSAle3B1YmxpY31z
KSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZy
YW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBtX25ldHdvcmtMb2FkLT5kZXNjcmlwdGlv
bigpLnV0ZjgoKS5kYXRhKCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0TmV0
d29ya0xvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBy
ZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGRlc2NyaXB0aW9uID0gJXtwdWJsaWN9cykiLCBtX3Bh
cmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRv
VUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBtX25ldHdvcmtMb2FkLT5kZXNjcmlw
dGlvbigpLnV0ZjgoKS5kYXRhKCkpOwogfQogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
Y2xlYW51cChMb2FkUmVzdWx0IHJlc3VsdCkKQEAgLTM0NCw3ICszNDQsNyBAQCB2b2lkIE5ldHdv
cmtSZXNvdXJjZUxvYWRlcjo6Y2xlYW51cChMb2FkUmVzdWx0IHJlc3VsdCkKIAogdm9pZCBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnZlcnRUb0Rvd25sb2FkKERvd25sb2FkSUQgZG93bmxvYWRJ
RCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSkKIHsKLSAgICBSRUxFQVNFX0xPRyhMb2FkaW5nLCAiQ29udmVydGluZyBOZXR3
b3JrUmVzb3VyY2VMb2FkZXIgJXAgdG8gZG93bmxvYWQgJSIgUFJJdTY0ICIgKHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQg
IikiLCB0aGlzLCBkb3dubG9hZElELmRvd25sb2FkSUQoKSwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJ
RC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50
aWZpZXIpOworICAgIFJFTEVBU0VfTE9HKExvYWRpbmcsICJDb252ZXJ0aW5nIE5ldHdvcmtSZXNv
dXJjZUxvYWRlciAlcCB0byBkb3dubG9hZCAlIiBQUkl1NjQgIiAocGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHRo
aXMsIGRvd25sb2FkSUQuZG93bmxvYWRJRCgpLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUlu
dDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5p
ZGVudGlmaWVyKTsKICAgICAKICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gaWYgdGhlIHJlc291cmNl
IGNhbWUgZnJvbSB0aGUgZGlzayBjYWNoZS4KICAgICBpZiAoIW1fbmV0d29ya0xvYWQpIHsKQEAg
LTM2Miw3ICszNjIsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6YWJvcnQoKQogICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KCJhYm9ydDogQ2FuY2VsaW5nIHJlc291cmNlIGxvYWQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLAotICAgICAg
ICBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFt
ZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CisgICAgICAgIG1fcGFyYW1ldGVycy53ZWJQ
YWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9w
YXJhbWV0ZXJzLmlkZW50aWZpZXIpOwogCiAgICAgaWYgKG1fcGFyYW1ldGVycy5vcHRpb25zLmtl
ZXBBbGl2ZSAmJiBtX3Jlc3BvbnNlLmlzTnVsbCgpICYmICFtX2lzS2VwdEFsaXZlKSB7CiAgICAg
ICAgIG1faXNLZXB0QWxpdmUgPSB0cnVlOwpAQCAtNDQ3LDcgKzQ0Nyw3IEBAIGJvb2wgTmV0d29y
a1Jlc291cmNlTG9hZGVyOjpzaG91bGRJbnRlcnJ1cHRMb2FkRm9yQ1NQRnJhbWVBbmNlc3RvcnNP
clhGcmFtZU9wdGlvCiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVz
cG9uc2UoUmVzb3VyY2VSZXNwb25zZSYmIHJlY2VpdmVkUmVzcG9uc2UsIFJlc3BvbnNlQ29tcGxl
dGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGh0dHBTdGF0dXNDb2Rl
ID0gJWQsIGxlbmd0aCA9ICUiIFBSSWQ2NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9V
SW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVy
LCByZWNlaXZlZFJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCksIHJlY2VpdmVkUmVzcG9uc2UuZXhw
ZWN0ZWRDb250ZW50TGVuZ3RoKCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJl
Y2VpdmVSZXNwb25zZTogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaHR0cFN0YXR1c0NvZGUgPSAlZCwgbGVuZ3Ro
ID0gJSIgUFJJZDY0ICIpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Bh
cmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwg
cmVjZWl2ZWRSZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpLCByZWNlaXZlZFJlc3BvbnNlLmV4cGVj
dGVkQ29udGVudExlbmd0aCgpKTsKIAogICAgIG1fcmVzcG9uc2UgPSBXVEZNb3ZlKHJlY2VpdmVk
UmVzcG9uc2UpOwogCkBAIC01MjcsNyArNTI3LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVjZWl2ZWRSZXNwb24K
IHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlQnVmZmVyKFJlZjxTaGFyZWRC
dWZmZXI+JiYgYnVmZmVyLCBpbnQgcmVwb3J0ZWRFbmNvZGVkRGF0YUxlbmd0aCkKIHsKICAgICBp
ZiAoIW1fbnVtQnl0ZXNSZWNlaXZlZCkKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgi
ZGlkUmVjZWl2ZUJ1ZmZlcjogU3RhcnRlZCByZWNlaXZpbmcgZGF0YSAocGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIs
IG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1l
SUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRCgiZGlkUmVjZWl2ZUJ1ZmZlcjogU3RhcnRlZCByZWNlaXZpbmcgZGF0YSAocGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2
NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndl
YkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIpOwogICAgIG1fbnVt
Qnl0ZXNSZWNlaXZlZCArPSBidWZmZXItPnNpemUoKTsKIAogICAgIEFTU0VSVCghbV9jYWNoZUVu
dHJ5Rm9yVmFsaWRhdGlvbik7CkBAIC01NTYsNyArNTU2LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OmRpZFJlY2VpdmVCdWZmZXIoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIsIGlu
dCByZXAKIAogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoY29u
c3QgTmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3JrTG9hZE1ldHJpY3MpCiB7Ci0gICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgiZGlkRmluaXNoTG9hZGluZzogKHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgbGVuZ3Ro
ID0gJXpkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJz
LndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBtX251bUJ5dGVzUmVjZWl2ZWQp
OworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZpbmlzaExvYWRpbmc6IChwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJ
dTY0ICIsIGxlbmd0aCA9ICV6ZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCks
IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlm
aWVyLCBtX251bUJ5dGVzUmVjZWl2ZWQpOwogCiAgICAgaWYgKHNob3VsZENhcHR1cmVFeHRyYU5l
dHdvcmtMb2FkTWV0cmljcygpKQogICAgICAgICBtX2Nvbm5lY3Rpb24tPmFkZE5ldHdvcmtMb2Fk
SW5mb3JtYXRpb25NZXRyaWNzKGlkZW50aWZpZXIoKSwgbmV0d29ya0xvYWRNZXRyaWNzKTsKQEAg
LTU5MSw3ICs1OTEsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9h
ZGluZyhjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMbwogCiB2b2lkIE5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbExvYWRpbmcoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3Ip
CiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkRmFpbExvYWRpbmc6IChwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJ
dTY0ICIsIGlzVGltZW91dCA9ICVkLCBpc0NhbmNlbGxhdGlvbiA9ICVkLCBpc0FjY2Vzc0NvbnRy
b2wgPSAlZCwgZXJyQ29kZSA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQo
KSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBlcnJv
ci5pc1RpbWVvdXQoKSwgZXJyb3IuaXNDYW5jZWxsYXRpb24oKSwgZXJyb3IuaXNBY2Nlc3NDb250
cm9sKCksIGVycm9yLmVycm9yQ29kZSgpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJk
aWRGYWlsTG9hZGluZzogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNUaW1lb3V0ID0gJWQsIGlzQ2FuY2VsbGF0
aW9uID0gJWQsIGlzQWNjZXNzQ29udHJvbCA9ICVkLCBlcnJDb2RlID0gJWQpIiwgbV9wYXJhbWV0
ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2
NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgZXJyb3IuaXNUaW1lb3V0KCksIGVycm9yLmlz
Q2FuY2VsbGF0aW9uKCksIGVycm9yLmlzQWNjZXNzQ29udHJvbCgpLCBlcnJvci5lcnJvckNvZGUo
KSk7CiAKICAgICBpZiAoc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKCkpCiAg
ICAgICAgIG1fY29ubmVjdGlvbi0+cmVtb3ZlTmV0d29ya0xvYWRJbmZvcm1hdGlvbihpZGVudGlm
aWVyKCkpOwpAQCAtNzU2LDcgKzc1Niw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpj
b250aW51ZVdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiBuZXdSZXF1ZXN0CiAgICAg
ICAgIH0KICAgICB9CiAKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJjb250aW51ZVdpbGxT
ZW5kUmVxdWVzdDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUlu
dDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7
CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiY29udGludWVXaWxsU2VuZFJlcXVlc3Q6IChw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JSIgUFJJdTY0ICIpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFt
ZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CiAK
ICAgICBtX2lzQWxsb3dlZFRvQXNrVXNlckZvckNyZWRlbnRpYWxzID0gaXNBbGxvd2VkVG9Bc2tV
c2VyRm9yQ3JlZGVudGlhbHM7CiAKQEAgLTEwMTEsMTIgKzEwMTEsMTcgQEAgc3RhdGljIFN0cmlu
ZyBlc2NhcGVGb3JKU09OKFN0cmluZyBzKQogc3RhdGljIFN0cmluZyBlc2NhcGVJREZvckpTT04o
Y29uc3QgT3B0aW9uYWw8dWludDY0X3Q+JiB2YWx1ZSkKIHsKICAgICByZXR1cm4gdmFsdWUgPyBT
dHJpbmc6Om51bWJlcih2YWx1ZS52YWx1ZSgpKSA6IFN0cmluZygiTm9uZSJfcyk7Ci19OworfQor
CitzdGF0aWMgU3RyaW5nIGVzY2FwZUlERm9ySlNPTihjb25zdCBPcHRpb25hbDxGcmFtZUlkZW50
aWZpZXI+JiB2YWx1ZSkKK3sKKyAgICByZXR1cm4gdmFsdWUgPyBTdHJpbmc6Om51bWJlcih2YWx1
ZS0+dG9VSW50NjQoKSkgOiBTdHJpbmcoIk5vbmUiX3MpOworfQogCiBzdGF0aWMgU3RyaW5nIGVz
Y2FwZUlERm9ySlNPTihjb25zdCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4mIHZhbHVlKQogewog
ICAgIHJldHVybiB2YWx1ZSA/IFN0cmluZzo6bnVtYmVyKHZhbHVlLT50b1VJbnQ2NCgpKSA6IFN0
cmluZygiTm9uZSJfcyk7Ci19OworfQogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6bG9n
Q29va2llSW5mb3JtYXRpb24oKSBjb25zdAogewpAQCAtMTAyOCw3ICsxMDMzLDcgQEAgdm9pZCBO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uKCkgY29uc3QKICAgICBs
b2dDb29raWVJbmZvcm1hdGlvbihtX2Nvbm5lY3Rpb24sICJOZXR3b3JrUmVzb3VyY2VMb2FkZXIi
LCByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPih0aGlzKSwgKm5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiwgb3JpZ2luYWxSZXF1ZXN0KCkuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgU2FtZVNpdGVJ
bmZvOjpjcmVhdGUob3JpZ2luYWxSZXF1ZXN0KCkpLCBvcmlnaW5hbFJlcXVlc3QoKS51cmwoKSwg
b3JpZ2luYWxSZXF1ZXN0KCkuaHR0cFJlZmVycmVyKCksIGZyYW1lSUQoKSwgcGFnZUlEKCksIGlk
ZW50aWZpZXIoKSk7CiB9CiAKLXN0YXRpYyB2b2lkIGxvZ0Jsb2NrZWRDb29raWVJbmZvcm1hdGlv
bihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgY29uc3QgU3RyaW5n
JiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBjb25zdCBXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgcmVmZXJyZXIsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25h
bDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBPcHRpb25hbDx1aW50NjRfdD4gaWRlbnRpZmllcikK
K3N0YXRpYyB2b2lkIGxvZ0Jsb2NrZWRDb29raWVJbmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9p
ZCogbG9nZ2VkT2JqZWN0LCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIG5l
dHdvcmtTdG9yYWdlU2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0
ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJy
ZXIsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRCwgT3B0aW9uYWw8dWludDY0X3Q+IGlkZW50aWZpZXIpCiB7CiAgICAgQVNT
RVJUKE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oY29u
bmVjdGlvbiwgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLnNlc3Npb25JRCgpKSk7CiAKQEAgLTEwNTUs
NyArMTA2MCw3IEBAIHN0YXRpYyB2b2lkIGxvZ0Jsb2NrZWRDb29raWVJbmZvcm1hdGlvbihOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvCiAjdW5kZWYgTE9DQUxfTE9HX0lG
X0FMTE9XRUQKIH0KIAotc3RhdGljIHZvaWQgbG9nQ29va2llSW5mb3JtYXRpb25JbnRlcm5hbChO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgY29uc3QgU3RyaW5nJiBs
YWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3Rv
cmFnZVNlc3Npb24mIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1
cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBP
cHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBPcHRpb25hbDx1aW50NjRfdD4gaWRlbnRp
ZmllcikKK3N0YXRpYyB2b2lkIGxvZ0Nvb2tpZUluZm9ybWF0aW9uSW50ZXJuYWwoTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNv
bnN0IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNz
aW9uJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
V2ViQ29yZTo6U2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBjb25z
dCBTdHJpbmcmIHJlZmVycmVyLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9w
dGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIE9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlm
aWVyKQogewogICAgIEFTU0VSVChOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNob3VsZExvZ0Nvb2tp
ZUluZm9ybWF0aW9uKGNvbm5lY3Rpb24sIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5zZXNzaW9uSUQo
KSkpOwogCkBAIC0xMTE2LDcgKzExMjEsNyBAQCBzdGF0aWMgdm9pZCBsb2dDb29raWVJbmZvcm1h
dGlvbkludGVybmFsKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aQogI3Vu
ZGVmIExPQ0FMX0xPR19JRl9BTExPV0VECiB9CiAKLXZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVy
Ojpsb2dDb29raWVJbmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29u
bmVjdGlvbiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBj
b25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3Qg
VVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFt
ZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBPcHRpb25hbDx1aW50NjRfdD4g
aWRlbnRpZmllcikKK3ZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpsb2dDb29raWVJbmZvcm1h
dGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgY29uc3QgU3Ry
aW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBjb25zdCBOZXR3b3JrU3RvcmFn
ZVNlc3Npb24mIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0
cmluZyYgcmVmZXJyZXIsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgT3B0aW9uYWw8dWludDY0X3Q+IGlkZW50aWZpZXIp
CiB7CiAgICAgQVNTRVJUKHNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKGNvbm5lY3Rpb24sIG5l
dHdvcmtTdG9yYWdlU2Vzc2lvbi5zZXNzaW9uSUQoKSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAppbmRleCA2MmM2NWNk
ZGZmN2NhMGIyMGExYzE5MDk5YjlmNzE1ZmFlNDU0YThlLi43NDkyZGYzMmY3OTk2ZTA5MDNiZTkw
ZGEwMDVlOWIxNDZkYTE1ZmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKQEAgLTg1LDcgKzg1LDcgQEAgcHVibGljOgog
ICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNz
KCkgY29uc3QgeyByZXR1cm4gbV9jb25uZWN0aW9uOyB9CiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLnNlc3Npb25JRDsgfQogICAgIFJl
c291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1l
dGVycy5pZGVudGlmaWVyOyB9Ci0gICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJu
IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRDsgfQogICAg
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1l
dGVycy53ZWJQYWdlSUQ7IH0KIAogICAgIHN0cnVjdCBTeW5jaHJvbm91c0xvYWREYXRhOwpAQCAt
MTEyLDcgKzExMiw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJ
U1RJQ1MpICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIHN0YXRpYyBib29sIHNob3VsZExv
Z0Nvb2tpZUluZm9ybWF0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgY29uc3Qg
UEFMOjpTZXNzaW9uSUQmKTsKLSAgICBzdGF0aWMgdm9pZCBsb2dDb29raWVJbmZvcm1hdGlvbihO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0
IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBj
b25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBPcHRpb25hbDx1aW50NjRfdD4gZnJh
bWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBPcHRpb25hbDx1aW50NjRf
dD4gaWRlbnRpZmllcik7CisgICAgc3RhdGljIHZvaWQgbG9nQ29va2llSW5mb3JtYXRpb24oTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2
b2lkKiBsb2dnZWRPYmplY3QsIGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYs
IGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29u
c3QgVVJMJiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyPiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBPcHRpb25hbDx1
aW50NjRfdD4gaWRlbnRpZmllcik7CiAjZW5kaWYKIAogICAgIHZvaWQgZGlzYWJsZUV4dHJhTmV0
d29ya0xvYWRNZXRyaWNzQ2FwdHVyZSgpIHsgbV9zaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9h
ZE1ldHJpY3MgPSBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlLmgKaW5kZXggZDk0ZmM3MzgwZjE5YTVmNWY1Yjc4ZWEzOWVmMWQ2
NWE5MjExZWU0Zi4uODVkMTAwY2E2YzdjMDVmYjhjM2QxMmQwM2E0NDAyODExMDM5NWVmOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5o
CkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlRW50cnkuaCIKICNpbmNs
dWRlICJOZXR3b3JrQ2FjaGVTdG9yYWdlLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlUmVzb3VyY2Uu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2Uu
aD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KQEAgLTg1LDcgKzg2LDcgQEAg
ZW51bSBjbGFzcyBVc2VEZWNpc2lvbiB7CiAgICAgTm9EdWVUb0V4cGlyZWRSZWRpcmVjdAogfTsK
IAotdXNpbmcgR2xvYmFsRnJhbWVJRCA9IHN0ZDo6cGFpcjxXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgdWludDY0X3QgLyp3ZWJGcmFtZUlEKi8+OwordXNpbmcgR2xvYmFsRnJhbWVJRCA9IHN0ZDo6
cGFpcjxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPjsg
Ly8gRklYTUU6IFVzZSBHbG9iYWxGcmFtZUlkZW50aWZpZXIuCiAKIGVudW0gY2xhc3MgQ2FjaGVP
cHRpb24gOiB1aW50OF90IHsKICAgICAvLyBJbiB0ZXN0aW5nIG1vZGUgd2UgdHJ5IHRvIGVsaW1p
bmF0ZSBzb3VyY2VzIG9mIHJhbmRvbW5lc3MuIENhY2hlIGRvZXMgbm90IHNocmluayBhbmQgdGhl
cmUgYXJlIG5vIHJlYWQgdGltZW91dHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKaW5kZXggMjc5MzU3NTM1
YmUxZTg0YTEzZDMxZmY3ZmMzMmVjODJlNjllZGI4Zi4uNDNhZDZmMWRlNDFjNTE2MWRkOWRiM2I2
OWFmOTFjYTNmN2FiMjQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaApAQCAtNDIsNyArNDIsNyBAQCBj
bGFzcyBOZXR3b3JrU2Vzc2lvbkNvY29hOwogY2xhc3MgTmV0d29ya0RhdGFUYXNrQ29jb2EgZmlu
YWwgOiBwdWJsaWMgTmV0d29ya0RhdGFUYXNrIHsKICAgICBmcmllbmQgY2xhc3MgTmV0d29ya1Nl
c3Npb25Db2NvYTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5ldHdvcmtEYXRhVGFzaz4gY3Jl
YXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVu
dCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCB1aW50NjRfdCBmcmFt
ZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OlN0b3JlZENyZWRl
bnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25p
ZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdT
bmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgYm9vbCBzaG91bGRDbGVh
clJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVj
b25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgYm9vbCBk
YXRhVGFza0lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lLCBPcHRpb25hbDxO
ZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBuZXR3b3JrQWN0aXZpdHlUcmFja2VyKQorICAgIHN0YXRp
YyBSZWY8TmV0d29ya0RhdGFUYXNrPiBjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5l
dHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0
b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hv
dWxkQ29udGVudFNuaWZmLCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBz
aG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQ
U1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSwgYm9v
bCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgYm9vbCBkYXRhVGFza0lzRm9yTWFp
blJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlU
cmFja2VyPiBuZXR3b3JrQWN0aXZpdHlUcmFja2VyKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgTmV0d29ya0RhdGFUYXNrQ29jb2Eoc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0
LCBmcmFtZUlELCBwYWdlSUQsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDb250ZW50
U25pZmYsIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBzaG91bGRDbGVhclJlZmVycmVyT25I
VFRQU1RvSFRUUFJlZGlyZWN0LCBzaG91bGRQcmVjb25uZWN0T25seSwgZGF0YVRhc2tJc0Zvck1h
aW5GcmFtZU5hdmlnYXRpb24sIGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9y
QW55RnJhbWUsIG5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpKTsKICAgICB9CkBAIC02OSwxMyArNjks
MTMgQEAgcHVibGljOgogCiAgICAgV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3Jr
TG9hZE1ldHJpY3MoKSB7IHJldHVybiBtX25ldHdvcmtMb2FkTWV0cmljczsgfQogCi0gICAgdWlu
dDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfTsKKyAgICBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfTsK
ICAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3Bh
Z2VJRDsgfTsKIAogICAgIFN0cmluZyBkZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiBw
cml2YXRlOgotICAgIE5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29y
a0RhdGFUYXNrQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgdWludDY0
X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JlZENyZWRl
bnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3ksIFdlYkNvcmU6OkNv
bnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5LCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhU
VFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWlu
RnJhbWVOYXZpZ2F0aW9uLCBib29sIGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9u
Rm9yQW55RnJhbWUsIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+KTsKKyAgICBOZXR3
b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtEYXRhVGFza0NsaWVudCYs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRFbmNv
ZGluZ1NuaWZmaW5nUG9saWN5LCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZp
Z2F0aW9uLCBib29sIGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJh
bWUsIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+KTsKIAogICAgIGJvb2wgdHJ5UGFz
c3dvcmRCYXNlZEF1dGhlbnRpY2F0aW9uKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlJiwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImKTsKICAgICB2b2lkIGFwcGx5U25p
ZmZpbmdQb2xpY2llc0FuZEJpbmRSZXF1ZXN0VG9JbmZlcmZhY2VJZk5lZWRlZChfX3N0cm9uZyBO
U1VSTFJlcXVlc3QqJiwgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVu
dEVuY29kaW5nU25pZmYpOwpAQCAtOTIsNyArOTIsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxT
YW5kYm94RXh0ZW5zaW9uPiBtX3NhbmRib3hFeHRlbnNpb247CiAgICAgUmV0YWluUHRyPE5TVVJM
U2Vzc2lvbkRhdGFUYXNrPiBtX3Rhc2s7CiAgICAgV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNz
IG1fbmV0d29ya0xvYWRNZXRyaWNzOwotICAgIHVpbnQ2NF90IG1fZnJhbWVJRDsKKyAgICBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgbV9mcmFtZUlEOwogICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyIG1fcGFnZUlEOwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFU
YXNrQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtE
YXRhVGFza0NvY29hLm1tCmluZGV4IDQyZTdhY2U0MjRiMmFiOGJiMDBhMzdjOTYzZWE5N2Q0NDEz
MTVhZTAuLmMyZTdiMzY4NTRlNzM5NWNiNjkzMGQ2ZTI1NzQ4YzRiYWQ2MDEyMTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29j
b2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0
YVRhc2tDb2NvYS5tbQpAQCAtMTcwLDcgKzE3MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBjb21w
dXRlSXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uKQogICAg
IHJldHVybiBzZXNzaW9uLnNlc3Npb25JRCgpLmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpOwog
fQogCi1OZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nl
c3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIHVpbnQ2NF90IGZy
YW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRT
bmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGlu
Z1NuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENs
ZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFBy
ZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBib29s
IGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIE9wdGlvbmFs
PE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+IG5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpCitOZXR3b3Jr
RGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Np
b24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OlN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250
ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBXZWJDb3JlOjpDb250ZW50RW5j
b2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgYm9vbCBzaG91
bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91
bGRQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwg
Ym9vbCBkYXRhVGFza0lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lLCBPcHRp
b25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBuZXR3b3JrQWN0aXZpdHlUcmFja2VyKQogICAg
IDogTmV0d29ya0RhdGFUYXNrKHNlc3Npb24sIGNsaWVudCwgcmVxdWVzdFdpdGhDcmVkZW50aWFs
cywgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9I
VFRQUmVkaXJlY3QsIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uKQogICAgICwgbV9m
cmFtZUlEKGZyYW1lSUQpCiAgICAgLCBtX3BhZ2VJRChwYWdlSUQpCkBAIC0yNTYsNyArMjU2LDcg
QEAgTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNz
aW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVQKICAgICBpZiAoc2hvdWxkQmxvY2tDb29raWVzKSB7
CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgICAgIGlmIChtX3Nlc3Npb24tPnNob3Vs
ZExvZ0Nvb2tpZUluZm9ybWF0aW9uKCkpCi0gICAgICAgICAgICBSRUxFQVNFX0xPR19JRihpc0Fs
d2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29yaywgIiVwIC0gTmV0d29ya0RhdGFUYXNrQ29j
b2E6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uOiBwYWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwg
dGFza0lEID0gJWx1OiBCbG9ja2luZyBjb29raWVzIGZvciBVUkwgJXMiLCB0aGlzLCBwYWdlSUQu
dG9VSW50NjQoKSwgZnJhbWVJRCwgKHVuc2lnbmVkIGxvbmcpW21fdGFzayB0YXNrSWRlbnRpZmll
cl0sIG5zUmVxdWVzdC5VUkwuYWJzb2x1dGVTdHJpbmcuVVRGOFN0cmluZyk7CisgICAgICAgICAg
ICBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29yaywgIiVw
IC0gTmV0d29ya0RhdGFUYXNrQ29jb2E6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uOiBwYWdlSUQgPSAl
bGx1LCBmcmFtZUlEID0gJWxsdSwgdGFza0lEID0gJWx1OiBCbG9ja2luZyBjb29raWVzIGZvciBV
UkwgJXMiLCB0aGlzLCBwYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpLCAodW5z
aWduZWQgbG9uZylbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgbnNSZXF1ZXN0LlVSTC5hYnNvbHV0
ZVN0cmluZy5VVEY4U3RyaW5nKTsKICNlbHNlCiAgICAgICAgIExPRyhOZXR3b3JrU2Vzc2lvbiwg
IiVsbHUgQmxvY2tpbmcgY29va2llcyBmb3IgVVJMICVzIiwgW21fdGFzayB0YXNrSWRlbnRpZmll
cl0sIG5zUmVxdWVzdC5VUkwuYWJzb2x1dGVTdHJpbmcuVVRGOFN0cmluZyk7CiAjZW5kaWYKQEAg
LTM5MCw3ICszOTAsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza0NvY29hOjp3aWxsUGVyZm9ybUhU
VFBSZWRpcmVjdGlvbihXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJgogICAgIH0KICNpZiAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKICAgICBpZiAobV9zZXNzaW9uLT5zaG91bGRMb2dDb29raWVJbmZv
cm1hdGlvbigpKQotICAgICAgICBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93
ZWQoKSwgTmV0d29yaywgIiVwIC0gTmV0d29ya0RhdGFUYXNrQ29jb2E6OndpbGxQZXJmb3JtSFRU
UFJlZGlyZWN0aW9uOjpsb2dDb29raWVJbmZvcm1hdGlvbjogcGFnZUlEID0gJWxsdSwgZnJhbWVJ
RCA9ICVsbHUsIHRhc2tJRCA9ICVsdTogJXMgY29va2llcyBmb3IgcmVkaXJlY3QgVVJMICVzIiwg
dGhpcywgbV9wYWdlSUQudG9VSW50NjQoKSwgbV9mcmFtZUlELCAodW5zaWduZWQgbG9uZylbbV90
YXNrIHRhc2tJZGVudGlmaWVyXSwgKG1faGFzQmVlblNldFRvVXNlU3RhdGVsZXNzQ29va2llU3Rv
cmFnZSA/ICJCbG9ja2luZyIgOiAiTm90IGJsb2NraW5nIiksIHJlcXVlc3QudXJsKCkuc3RyaW5n
KCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dn
aW5nQWxsb3dlZCgpLCBOZXR3b3JrLCAiJXAgLSBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6d2lsbFBl
cmZvcm1IVFRQUmVkaXJlY3Rpb246OmxvZ0Nvb2tpZUluZm9ybWF0aW9uOiBwYWdlSUQgPSAlbGx1
LCBmcmFtZUlEID0gJWxsdSwgdGFza0lEID0gJWx1OiAlcyBjb29raWVzIGZvciByZWRpcmVjdCBV
UkwgJXMiLCB0aGlzLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBtX2ZyYW1lSUQudG9VSW50NjQoKSwg
KHVuc2lnbmVkIGxvbmcpW21fdGFzayB0YXNrSWRlbnRpZmllcl0sIChtX2hhc0JlZW5TZXRUb1Vz
ZVN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2UgPyAiQmxvY2tpbmciIDogIk5vdCBibG9ja2luZyIpLCBy
ZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogI2Vsc2UKICAgICBMT0coTmV0
d29ya1Nlc3Npb24sICIlbGx1ICVzIGNvb2tpZXMgZm9yIHJlZGlyZWN0IFVSTCAlcyIsIFttX3Rh
c2sgdGFza0lkZW50aWZpZXJdLCAobV9oYXNCZWVuU2V0VG9Vc2VTdGF0ZWxlc3NDb29raWVTdG9y
YWdlID8gIkJsb2NraW5nIiA6ICJOb3QgYmxvY2tpbmciKSwgcmVxdWVzdC51cmwoKS5zdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkKaW5kZXggZjBlYzhkYzFiNzE2OWJjY2E1NWE2NTQ5MTJlZDJmZWY1MzcwZGYxMC4u
YzAxZTg5NTllODA3ZmY2MjRlZjg1NzdlYjM1NTY1ZTQyZDkzYTNiMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yMDUsNiArMjA1LDcgQEAgZGVmIGZvcndh
cmRfZGVjbGFyYXRpb25zX2FuZF9oZWFkZXJzKHJlY2VpdmVyKToKICAgICAgICAgJ1N0cmluZycs
CiAgICAgICAgICdXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29y
ZTo6RmV0Y2hJZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYkNvcmU6OkZyYW1lSWRlbnRpZmllcics
CiAgICAgICAgICdXZWJDb3JlOjpQYWdlSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpQ
b2ludGVySUQnLAogICAgICAgICAnV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXInLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5jcHAKaW5kZXggNzk2NDZhYzZlNTlj
NDFkNGRmNzA5MDFkYmE3ZTI2NzUzMzZkNTI0YS4uNDA4MDEzODg1NDhhMTgxMWFiNTllNWNiMjQ1
YTExNTIxMTQyYmVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUZy
YW1lSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5k
bGUuY3BwCkBAIC0zMSwxNyArMzEsMTcgQEAKIAogbmFtZXNwYWNlIEFQSSB7CiAKLVJlZjxGcmFt
ZUhhbmRsZT4gRnJhbWVIYW5kbGU6OmNyZWF0ZSh1aW50NjRfdCBmcmFtZUlEKQorUmVmPEZyYW1l
SGFuZGxlPiBGcmFtZUhhbmRsZTo6Y3JlYXRlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlEKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZyYW1lSGFuZGxlKGZyYW1lSUQsIGZh
bHNlKSk7CiB9CiAKLVJlZjxGcmFtZUhhbmRsZT4gRnJhbWVIYW5kbGU6OmNyZWF0ZUF1dG9jb252
ZXJ0aW5nKHVpbnQ2NF90IGZyYW1lSUQpCitSZWY8RnJhbWVIYW5kbGU+IEZyYW1lSGFuZGxlOjpj
cmVhdGVBdXRvY29udmVydGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsK
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGcmFtZUhhbmRsZShmcmFtZUlELCB0cnVlKSk7CiB9
CiAKLUZyYW1lSGFuZGxlOjpGcmFtZUhhbmRsZSh1aW50NjRfdCBmcmFtZUlELCBib29sIGlzQXV0
b2NvbnZlcnRpbmcpCitGcmFtZUhhbmRsZTo6RnJhbWVIYW5kbGUoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIGJvb2wgaXNBdXRvY29udmVydGluZykKICAgICA6IG1fZnJhbWVJRChm
cmFtZUlEKQogICAgICwgbV9pc0F1dG9jb252ZXJ0aW5nKGlzQXV0b2NvbnZlcnRpbmcpCiB7CkBA
IC01OSw3ICs1OSw3IEBAIHZvaWQgRnJhbWVIYW5kbGU6OmVuY29kZShJUEM6OkVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiAKIGJvb2wgRnJhbWVIYW5kbGU6OmRlY29kZShJUEM6OkRlY29kZXImIGRl
Y29kZXIsIFJlZlB0cjxPYmplY3Q+JiByZXN1bHQpCiB7Ci0gICAgdWludDY0X3QgZnJhbWVJRDsK
KyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRDsKICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKGZyYW1lSUQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmgKaW5kZXggYjEwZTgwOGE0YjE5YWQzMTNkOGI0NTVj
MjNiOWQ4Mzk5Y2MzODU1MC4uMWM2NGE0YWQxZTgwMmEwNDY3Mjk4MWJjYmY4YTc2MDE2NDI1ZmZk
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmgKQEAgLTI3LDYg
KzI3LDcgQEAKICNkZWZpbmUgQVBJRnJhbWVIYW5kbGVfaAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYv
UmVmLmg+CiAKIG5hbWVzcGFjZSBJUEMgewpAQCAtMzgsMjAgKzM5LDIwIEBAIG5hbWVzcGFjZSBB
UEkgewogCiBjbGFzcyBGcmFtZUhhbmRsZSA6IHB1YmxpYyBPYmplY3RJbXBsPE9iamVjdDo6VHlw
ZTo6RnJhbWVIYW5kbGU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEZyYW1lSGFuZGxlPiBj
cmVhdGUodWludDY0X3QgZnJhbWVJRCk7Ci0gICAgc3RhdGljIFJlZjxGcmFtZUhhbmRsZT4gY3Jl
YXRlQXV0b2NvbnZlcnRpbmcodWludDY0X3QgZnJhbWVJRCk7CisgICAgc3RhdGljIFJlZjxGcmFt
ZUhhbmRsZT4gY3JlYXRlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgc3RhdGljIFJl
ZjxGcmFtZUhhbmRsZT4gY3JlYXRlQXV0b2NvbnZlcnRpbmcoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyKTsKIAotICAgIGV4cGxpY2l0IEZyYW1lSGFuZGxlKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wg
aXNBdXRvY29udmVydGluZyk7CisgICAgZXhwbGljaXQgRnJhbWVIYW5kbGUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBib29sIGlzQXV0b2NvbnZlcnRpbmcpOwogICAgIHZpcnR1YWwgfkZyYW1l
SGFuZGxlKCk7CiAKLSAgICB1aW50NjRfdCBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFt
ZUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQoKSBjb25zdCB7IHJl
dHVybiBtX2ZyYW1lSUQ7IH0KICAgICBib29sIGlzQXV0b2NvbnZlcnRpbmcoKSBjb25zdCB7IHJl
dHVybiBtX2lzQXV0b2NvbnZlcnRpbmc7IH0KIAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2Rl
ciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBSZWZQdHI8
T2JqZWN0PiYpOwogCiBwcml2YXRlOgotICAgIGNvbnN0IHVpbnQ2NF90IG1fZnJhbWVJRDsKKyAg
ICBjb25zdCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbV9mcmFtZUlEOwogICAgIGNvbnN0IGJv
b2wgbV9pc0F1dG9jb252ZXJ0aW5nOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvQVBJL0NvY29hL19XS0ZyYW1lSGFuZGxlLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
QVBJL0NvY29hL19XS0ZyYW1lSGFuZGxlLm1tCmluZGV4IGE0MWE2MTNhN2QzNzFkN2FlMmE3M2U0
MDU4MjdiMGFiZDczNTcwNzAuLmVkY2IzOGU2MzVhN2JmMDkyN2IxMTBjYzdkNGNmOTc2NmFiNWQw
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhh
bmRsZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5k
bGUubW0KQEAgLTI2LDYgKzI2LDggQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiX1dL
RnJhbWVIYW5kbGVJbnRlcm5hbC5oIgogCisjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmll
ci5oPgorCiBAaW1wbGVtZW50YXRpb24gX1dLRnJhbWVIYW5kbGUgewogICAgIEFQSTo6T2JqZWN0
U3RvcmFnZTxBUEk6OkZyYW1lSGFuZGxlPiBfZnJhbWVIYW5kbGU7CiB9CkBAIC01MCwxMiArNTIs
MTIgQEAgLSAoQk9PTClpc0VxdWFsOihpZClvYmplY3QKIAogLSAoTlNVSW50ZWdlciloYXNoCiB7
Ci0gICAgcmV0dXJuIF9mcmFtZUhhbmRsZS0+ZnJhbWVJRCgpOworICAgIHJldHVybiBfZnJhbWVI
YW5kbGUtPmZyYW1lSUQoKS50b1VJbnQ2NCgpOwogfQogCiAtICh1aW50NjRfdClfZnJhbWVJRAog
ewotICAgIHJldHVybiBfZnJhbWVIYW5kbGUtPmZyYW1lSUQoKTsKKyAgICByZXR1cm4gX2ZyYW1l
SGFuZGxlLT5mcmFtZUlEKCkudG9VSW50NjQoKTsKIH0KIAogI3ByYWdtYSBtYXJrIE5TQ29weWlu
ZyBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbgpAQCAtODMsMTQgKzg1LDE0IEBAIC0gKGlkKWluaXRX
aXRoQ29kZXI6KE5TQ29kZXIgKilkZWNvZGVyCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQog
Ci0gICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OkZyYW1lSGFuZGxlPihz
ZWxmLCBmcmFtZUlELnVuc2lnbmVkTG9uZ0xvbmdWYWx1ZSwgZmFsc2UpOworICAgIEFQSTo6T2Jq
ZWN0Ojpjb25zdHJ1Y3RJbldyYXBwZXI8QVBJOjpGcmFtZUhhbmRsZT4oc2VsZiwgV2ViQ29yZTo6
ZnJhbWVJZGVudGlmaWVyRnJvbUlEKGZyYW1lSUQudW5zaWduZWRMb25nTG9uZ1ZhbHVlKSwgZmFs
c2UpOwogCiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKIC0gKHZvaWQpZW5jb2RlV2l0aENvZGVyOihO
U0NvZGVyICopY29kZXIKIHsKLSAgICBbY29kZXIgZW5jb2RlT2JqZWN0OkAoX2ZyYW1lSGFuZGxl
LT5mcmFtZUlEKCkpIGZvcktleTpAImZyYW1lSUQiXTsKKyAgICBbY29kZXIgZW5jb2RlT2JqZWN0
OkAoW3NlbGYgX2ZyYW1lSURdKSBmb3JLZXk6QCJmcmFtZUlEIl07CiB9CiAKICNwcmFnbWEgbWFy
ayBXS09iamVjdCBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5j
cHAKaW5kZXggOWRlYjc2ZmYxMzJjNmNiNWZkZjVlYmY1MjIyMzRmNmQ0NDNlZjk0ZC4uMzhhNWJm
ZjZhZmQyNTcxZDUyZGNlNGMwOTgwNGFhNzU0NGFiZTRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFn
ZXIuY3BwCkBAIC0xMDgsNyArMTA4LDcgQEAgVmVjdG9yPHVpbnQ2NF90PiBBdXRoZW50aWNhdGlv
bk1hbmFnZXI6OmNvYWxlc2NlQ2hhbGxlbmdlc01hdGNoaW5nKHVpbnQ2NF90IGNoYWwKICAgICBy
ZXR1cm4gY2hhbGxlbmdlc1RvQ29hbGVzY2U7CiB9CiAKLXZvaWQgQXV0aGVudGljYXRpb25NYW5h
Z2VyOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUGFnZUlkZW50aWZpZXIgcGFn
ZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYXV0
aGVudGljYXRpb25DaGFsbGVuZ2UsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxl
dGlvbkhhbmRsZXIpCit2b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBhdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBBU1NFUlQocGFnZUlEKTsKICAgICBBU1NFUlQoZnJhbWVJRCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFn
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9u
TWFuYWdlci5oCmluZGV4IDg2ZTc0NGMxMDhkZjRjYmNmNWQwNDc2MDlhY2Y5NmM2ODIzZDZiMTYu
LjQwMzZlYWI3N2ZkOWNlMTU1NTMwZmI2YTRjYzU2MTY4M2Q3ZWQ5MWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9u
TWFuYWdlci5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NTdXBw
bGVtZW50LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1N1cHBsZW1lbnQuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFt
ZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5j
bHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
QEAgLTYxLDcgKzYyLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBs
ZW1lbnROYW1lKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29y
ZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYm
KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYpOwog
ICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKElQQzo6TWVzc2FnZVNl
bmRlciYgZG93bmxvYWQsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwg
Q2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJik7CiAKICAgICB2b2lkIGNvbXBsZXRlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UodWludDY0X3QgY2hhbGxlbmdlSUQsIEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlRGlzcG9zaXRpb24sIFdlYkNvcmU6OkNyZWRlbnRpYWwmJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9GcmFtZUluZm9EYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0ZyYW1lSW5mb0RhdGEuY3BwCmluZGV4IDk0NDIzNzQ1NjU4MTZmNGU4ODA0MGZmMDg0ZTBj
MWEzYmU1MzFmZjQuLjNlOWQ3MmVhZDUzYzU4MzJjNDMzMTczNGI3MDc0MWZkYjM0YTIxMjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuY3BwCkBAIC00OSw4ICs0OSwxMiBAQCBi
b29sIEZyYW1lSW5mb0RhdGE6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIEZyYW1lSW5m
b0RhdGEmIHJlc3VsdCkKICAgICBpZiAoIXNlY3VyaXR5T3JpZ2luKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgcmVzdWx0LnNlY3VyaXR5T3JpZ2luID0gV1RGTW92ZSgqc2VjdXJpdHlPcmln
aW4pOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmZyYW1lSUQpKQorICAgIAorICAg
IE9wdGlvbmFsPE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4+IGZyYW1lSUQ7CisgICAgZGVjb2Rl
ciA+PiBmcmFtZUlEOworICAgIGlmICghZnJhbWVJRCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIHJlc3VsdC5mcmFtZUlEID0gV1RGTW92ZSgqZnJhbWVJRCk7CiAKICAgICByZXR1cm4gdHJ1
ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaAppbmRleCBhODI4MzY4NmYxNmFi
M2NkMzUyNDljZTcwNWQzZjJiOGU3YmIzYzY2Li41Mzg3MTZlYjIxZWI1NDBhNDE3NzljN2U2Yjhm
ZmQ0MzUyZmJjMTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9GcmFtZUluZm9E
YXRhLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRnJhbWVJbmZvRGF0YS5oCkBAIC0yNSw2
ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50
aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAKQEAgLTQyLDcgKzQzLDcgQEAgc3RydWN0
IEZyYW1lSW5mb0RhdGEgewogICAgIGJvb2wgaXNNYWluRnJhbWUgeyBmYWxzZSB9OwogICAgIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0OwogICAgIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSBzZWN1cml0eU9yaWdpbjsKLSAgICB1aW50NjRfdCBmcmFtZUlEIHsgMCB9OworICAg
IE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKIH07CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElGcmFtZUluZm8uY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUZyYW1lSW5mby5jcHAKaW5kZXggOTZiMTNk
MTc4NTQ0NWMzOTczM2IyZjA0OGE2MGYyMDIxNTA4YzhjOC4uODI5NzI4YjkxZDYxYWEyNjA0NzVl
MmExYzkxZDI0MjBlOTc4NjBmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSUZyYW1lSW5mby5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SUZyYW1lSW5mby5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgRnJhbWVJbmZvOjpGcmFtZUluZm8oY29u
c3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhJiBmcmFtZUluZm9EYXRhLCBXZWJLaXQ6OldlYlBhZ2UK
ICAgICA6IG1faXNNYWluRnJhbWUgeyBmcmFtZUluZm9EYXRhLmlzTWFpbkZyYW1lIH0KICAgICAs
IG1fcmVxdWVzdCB7IGZyYW1lSW5mb0RhdGEucmVxdWVzdCB9CiAgICAgLCBtX3NlY3VyaXR5T3Jp
Z2luIHsgU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShmcmFtZUluZm9EYXRhLnNlY3VyaXR5T3JpZ2lu
LnNlY3VyaXR5T3JpZ2luKCkpIH0KLSAgICAsIG1faGFuZGxlIHsgQVBJOjpGcmFtZUhhbmRsZTo6
Y3JlYXRlKGZyYW1lSW5mb0RhdGEuZnJhbWVJRCkgfQorICAgICwgbV9oYW5kbGUgeyBBUEk6OkZy
YW1lSGFuZGxlOjpjcmVhdGUoZnJhbWVJbmZvRGF0YS5mcmFtZUlEID8gKmZyYW1lSW5mb0RhdGEu
ZnJhbWVJRCA6IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcnsgfSkgfQogICAgICwgbV9wYWdlIHsg
bWFrZVJlZlB0cihwYWdlKSB9CiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS0ZyYW1lSGFuZGxlUmVmLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLRnJhbWVIYW5kbGVSZWYuY3BwCmluZGV4IGIzOWZjYTFiZTU3ZjBkMjc0ZDg0NTdm
MDQzZjUwZWFiNjJmMjNjNTguLmU4NzNmYzQ2NTFkNTI2OTM4OTM2OWZjNjBhNzgwMjY1NDIwNWRk
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVIYW5k
bGVSZWYuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVIYW5k
bGVSZWYuY3BwCkBAIC0zOCw1ICszOCw1IEBAIFdLVHlwZUlEIFdLRnJhbWVIYW5kbGVHZXRUeXBl
SUQoKQogCiB1aW50NjRfdCBXS0ZyYW1lSGFuZGxlR2V0RnJhbWVJRChXS0ZyYW1lSGFuZGxlUmVm
IGZyYW1lSGFuZGxlUmVmKQogewotICAgIHJldHVybiB0b0ltcGwoZnJhbWVIYW5kbGVSZWYpLT5m
cmFtZUlEKCk7CisgICAgcmV0dXJuIHRvSW1wbChmcmFtZUhhbmRsZVJlZiktPmZyYW1lSUQoKS50
b1VJbnQ2NCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0KaW5kZXggMDM5MWExOTkyZTM1MzJkYmU1ZjIxZGI2OTFkZDgxMDhhYWUyYTY2Yy4u
MDk1MWU5NDQzN2JjZTQ2NjVkNjE1YmQwNDBkMjZkZjIwYjY0ZGYzNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC02NjIxLDcgKzY2MjEs
NyBAQCAtIChOU1ByaW50T3BlcmF0aW9uICopX3ByaW50T3BlcmF0aW9uV2l0aFByaW50SW5mbzoo
TlNQcmludEluZm8gKilwcmludEluZm8KIAogLSAoTlNQcmludE9wZXJhdGlvbiAqKV9wcmludE9w
ZXJhdGlvbldpdGhQcmludEluZm86KE5TUHJpbnRJbmZvICopcHJpbnRJbmZvIGZvckZyYW1lOihf
V0tGcmFtZUhhbmRsZSAqKWZyYW1lSGFuZGxlCiB7Ci0gICAgaWYgKGF1dG8qIHdlYkZyYW1lUHJv
eHkgPSBfcGFnZS0+cHJvY2VzcygpLndlYkZyYW1lKGZyYW1lSGFuZGxlLl9mcmFtZUlEKSkKKyAg
ICBpZiAoYXV0byogd2ViRnJhbWVQcm94eSA9IF9wYWdlLT5wcm9jZXNzKCkud2ViRnJhbWUoV2Vi
Q29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKGZyYW1lSGFuZGxlLl9mcmFtZUlEKSkpCiAgICAg
ICAgIHJldHVybiBfaW1wbC0+cHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvKHByaW50SW5mbywg
KndlYkZyYW1lUHJveHkpOwogICAgIHJldHVybiBuaWw7CiB9CkBAIC03MTE0LDcgKzcxMTQsNyBA
QCAtICh2b2lkKV9jb21wbGV0ZUltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbgogCiAtIChCT09MKV9j
YW5DaGFuZ2VGcmFtZUxheW91dDooX1dLRnJhbWVIYW5kbGUgKilmcmFtZUhhbmRsZQogewotICAg
IGlmIChhdXRvKiB3ZWJGcmFtZVByb3h5ID0gX3BhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShmcmFt
ZUhhbmRsZS5fZnJhbWVJRCkpCisgICAgaWYgKGF1dG8qIHdlYkZyYW1lUHJveHkgPSBfcGFnZS0+
cHJvY2VzcygpLndlYkZyYW1lKFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRChmcmFtZUhh
bmRsZS5fZnJhbWVJRCkpKQogICAgICAgICByZXR1cm4gX2ltcGwtPmNhbkNoYW5nZUZyYW1lTGF5
b3V0KCp3ZWJGcmFtZVByb3h5KTsKICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5tbQppbmRleCBjNDk5YjE4
ZmE5Mzg4YTQ1ODQzMTQ3NzA4ZDNkMjk2ZGQ1MzI5MGE0Li4zZDE1ZWMyZWVhNzkxMWIyYTM5ZDY0
MDg3OTM2YmY0ZWE2MzQxM2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tJbnNwZWN0b3IubW0KQEAgLTMwLDYgKzMwLDcgQEAKICNpbXBvcnQgIldlYlBy
b2Nlc3NQcm94eS5oIgogI2ltcG9ydCAiX1dLRnJhbWVIYW5kbGVJbnRlcm5hbC5oIgogI2ltcG9y
dCAiX1dLSW5zcGVjdG9ySW50ZXJuYWwuaCIKKyNpbXBvcnQgPFdlYkNvcmUvRnJhbWVJZGVudGlm
aWVyLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKIEBpbXBsZW1lbnRhdGlvbiBfV0tJ
bnNwZWN0b3IKQEAgLTk5LDcgKzEwMCw3IEBAIC0gKHZvaWQpc2hvd1Jlc291cmNlcwogLSAodm9p
ZClzaG93TWFpblJlc291cmNlRm9yRnJhbWU6KF9XS0ZyYW1lSGFuZGxlICopZnJhbWUKIHsKICAg
ICBpZiAoYXV0byogcGFnZSA9IF9pbnNwZWN0b3ItPmluc3BlY3RlZFBhZ2UoKSkKLSAgICAgICAg
X2luc3BlY3Rvci0+c2hvd01haW5SZXNvdXJjZUZvckZyYW1lKHBhZ2UtPnByb2Nlc3MoKS53ZWJG
cmFtZShmcmFtZS5fZnJhbWVJRCkpOworICAgICAgICBfaW5zcGVjdG9yLT5zaG93TWFpblJlc291
cmNlRm9yRnJhbWUocGFnZS0+cHJvY2VzcygpLndlYkZyYW1lKFdlYkNvcmU6OmZyYW1lSWRlbnRp
ZmllckZyb21JRChmcmFtZS5fZnJhbWVJRCkpKTsKIH0KIAogLSAodm9pZClhdHRhY2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXRE
aXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxh
dGVkSW5wdXREaXNwYXRjaGVyLmNwcAppbmRleCA3YWNjNjhiYWVmZWFiMDczYmY2NjBmNmMwYmNl
NWVmYjk3YjVhZTYyLi5kODc0OGVlYTdmYzZkYWUxNTQyNmFkYWVhOTY5Yjc0YmRlZTYzZGM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElu
cHV0RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlv
bi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3BwCkBAIC0zODIsNyArMzgyLDcgQEAgdm9pZCBT
aW11bGF0ZWRJbnB1dERpc3BhdGNoZXI6OnRyYW5zaXRpb25JbnB1dFNvdXJjZVRvU3RhdGUoU2lt
dWxhdGVkSW5wdXRTb3VyY2UKICAgICB9CiB9CiAKLXZvaWQgU2ltdWxhdGVkSW5wdXREaXNwYXRj
aGVyOjpydW4odWludDY0X3QgZnJhbWVJRCwgVmVjdG9yPFNpbXVsYXRlZElucHV0S2V5RnJhbWU+
JiYga2V5RnJhbWVzLCBIYXNoU2V0PFJlZjxTaW11bGF0ZWRJbnB1dFNvdXJjZT4+JiBpbnB1dFNv
dXJjZXMsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQor
dm9pZCBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXI6OnJ1bihXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgVmVjdG9yPFNpbXVsYXRlZElucHV0S2V5RnJhbWU+JiYga2V5RnJhbWVzLCBI
YXNoU2V0PFJlZjxTaW11bGF0ZWRJbnB1dFNvdXJjZT4+JiBpbnB1dFNvdXJjZXMsIEF1dG9tYXRp
b25Db21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCgh
aXNBY3RpdmUoKSk7CiAgICAgaWYgKGlzQWN0aXZlKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hl
ci5oCmluZGV4IDdmNDE0MWNlMGEzOWU1NjA3M2M3ZWM4YTk2NTYwY2JjMzQ4YWRmYTYuLmIwODkx
YThmMGI2NzUyOWNiOWIzOTg2Yjg3OTUzMDcxMmE0YWFkNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3Bh
dGNoZXIuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShXRUJEUklWRVJfQUNUSU9OU19B
UEkpCiAKICNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVu
dGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KQEAgLTEzMiw3ICsxMzMs
NyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMp
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzaW11bGF0ZUtleWJvYXJkSW50ZXJhY3Rpb24oV2ViUGFn
ZVByb3h5JiwgS2V5Ym9hcmRJbnRlcmFjdGlvbiwgV1RGOjpWYXJpYW50PFZpcnR1YWxLZXksIENo
YXJLZXk+JiYsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciYmKSA9IDA7CiAjZW5kaWYKLSAg
ICAgICAgdmlydHVhbCB2b2lkIHZpZXdwb3J0SW5WaWV3Q2VudGVyUG9pbnRPZkVsZW1lbnQoV2Vi
UGFnZVByb3h5JiwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBG
dW5jdGlvbjx2b2lkIChPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIE9wdGlvbmFsPEF1dG9t
YXRpb25Db21tYW5kRXJyb3I+KT4mJikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgdmlld3Bv
cnRJblZpZXdDZW50ZXJQb2ludE9mRWxlbWVudChXZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbm9kZUhhbmRsZSwgRnVuY3Rpb248dm9pZCAoT3B0
aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBPcHRpb25hbDxBdXRvbWF0aW9uQ29tbWFuZEVycm9y
Pik+JiYpID0gMDsKICAgICB9OwogCiAgICAgc3RhdGljIFJlZjxTaW11bGF0ZWRJbnB1dERpc3Bh
dGNoZXI+IGNyZWF0ZShXZWJQYWdlUHJveHkmIHBhZ2UsIFNpbXVsYXRlZElucHV0RGlzcGF0Y2hl
cjo6Q2xpZW50JiBjbGllbnQpCkBAIC0xNDIsNyArMTQzLDcgQEAgcHVibGljOgogCiAgICAgflNp
bXVsYXRlZElucHV0RGlzcGF0Y2hlcigpOwogCi0gICAgdm9pZCBydW4odWludDY0X3QgZnJhbWVJ
RCwgVmVjdG9yPFNpbXVsYXRlZElucHV0S2V5RnJhbWU+JiYga2V5RnJhbWVzLCBIYXNoU2V0PFJl
ZjxTaW11bGF0ZWRJbnB1dFNvdXJjZT4+JiBpbnB1dFNvdXJjZXMsIEF1dG9tYXRpb25Db21wbGV0
aW9uSGFuZGxlciYmKTsKKyAgICB2b2lkIHJ1bihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFZl
Y3RvcjxTaW11bGF0ZWRJbnB1dEtleUZyYW1lPiYmIGtleUZyYW1lcywgSGFzaFNldDxSZWY8U2lt
dWxhdGVkSW5wdXRTb3VyY2U+PiYgaW5wdXRTb3VyY2VzLCBBdXRvbWF0aW9uQ29tcGxldGlvbkhh
bmRsZXImJik7CiAgICAgdm9pZCBjYW5jZWwoKTsKIAogICAgIGJvb2wgaXNBY3RpdmUoKSBjb25z
dDsKQEAgLTE2NSw3ICsxNjYsNyBAQCBwcml2YXRlOgogICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdl
OwogICAgIFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlcjo6Q2xpZW50JiBtX2NsaWVudDsKIAotICAg
IE9wdGlvbmFsPHVpbnQ2NF90PiBtX2ZyYW1lSUQ7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyPiBtX2ZyYW1lSUQ7CiAgICAgQXV0b21hdGlvbkNvbXBsZXRpb25IYW5kbGVy
IG1fcnVuQ29tcGxldGlvbkhhbmRsZXI7CiAgICAgQXV0b21hdGlvbkNvbXBsZXRpb25IYW5kbGVy
IG1fa2V5RnJhbWVUcmFuc2l0aW9uQ29tcGxldGlvbkhhbmRsZXI7CiAgICAgUnVuTG9vcDo6VGlt
ZXI8U2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyPiBtX2tleUZyYW1lVHJhbnNpdGlvbkR1cmF0aW9u
VGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dl
YkF1dG9tYXRpb25TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRp
b24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCmluZGV4IGUzMzU0M2I3YmRhMWQ1OTNmMzA0NTNh
ZTRkNjliZjI1ZGU3NDBjYmUuLjUwNTYyMDI5ZDRjMjVkYTNiYmZlZWVhNjIyZTJhNjQ3MDRhYTU5
ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0
b21hdGlvblNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRp
b24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCkBAIC0yMDIsMTAgKzIwMiwxMCBAQCBTdHJpbmcg
V2ViQXV0b21hdGlvblNlc3Npb246OmhhbmRsZUZvcldlYlBhZ2VQcm94eShjb25zdCBXZWJQYWdl
UHJveHkmIHdlYlBhZ2VQcgogICAgIHJldHVybiBoYW5kbGU7CiB9CiAKLU9wdGlvbmFsPHVpbnQ2
NF90PiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2ViRnJhbWVJREZvckhhbmRsZShjb25zdCBTdHJp
bmcmIGhhbmRsZSkKK09wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gV2ViQXV0b21hdGlvblNlc3Np
b246OndlYkZyYW1lSURGb3JIYW5kbGUoY29uc3QgU3RyaW5nJiBoYW5kbGUpCiB7CiAgICAgaWYg
KGhhbmRsZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gRnJh
bWVJZGVudGlmaWVyIHsgfTsgLy8gVGhpcyBpcyBleHBsaWNpdGx5IHplcm87IHNlZSB3ZWJraXQu
b3JnL2IvMTU5Nzc3LgogCiAgICAgYXV0byBpdGVyID0gbV9oYW5kbGVXZWJGcmFtZU1hcC5maW5k
KGhhbmRsZSk7CiAgICAgaWYgKGl0ZXIgPT0gbV9oYW5kbGVXZWJGcmFtZU1hcC5lbmQoKSkKQEAg
LTIxNCwyOSArMjE0LDI5IEBAIE9wdGlvbmFsPHVpbnQ2NF90PiBXZWJBdXRvbWF0aW9uU2Vzc2lv
bjo6d2ViRnJhbWVJREZvckhhbmRsZShjb25zdCBTdHJpbmcmIGhhbmRsCiAgICAgcmV0dXJuIGl0
ZXItPnZhbHVlOwogfQogCi1TdHJpbmcgV2ViQXV0b21hdGlvblNlc3Npb246OmhhbmRsZUZvcldl
YkZyYW1lSUQodWludDY0X3QgZnJhbWVJRCkKK1N0cmluZyBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6
aGFuZGxlRm9yV2ViRnJhbWVJRChPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQpCiB7
Ci0gICAgaWYgKCFmcmFtZUlEKQorICAgIGlmICghZnJhbWVJRCB8fCAhKmZyYW1lSUQpCiAgICAg
ICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogCiAgICAgZm9yIChhdXRvJiBwcm9jZXNzIDogbV9w
cm9jZXNzUG9vbC0+cHJvY2Vzc2VzKCkpIHsKLSAgICAgICAgaWYgKFdlYkZyYW1lUHJveHkqIGZy
YW1lID0gcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCkpIHsKKyAgICAgICAgaWYgKFdlYkZyYW1l
UHJveHkqIGZyYW1lID0gcHJvY2Vzcy0+d2ViRnJhbWUoKmZyYW1lSUQpKSB7CiAgICAgICAgICAg
ICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGVtcHR5
U3RyaW5nKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KIAotICAgIGF1
dG8gaXRlciA9IG1fd2ViRnJhbWVIYW5kbGVNYXAuZmluZChmcmFtZUlEKTsKKyAgICBhdXRvIGl0
ZXIgPSBtX3dlYkZyYW1lSGFuZGxlTWFwLmZpbmQoKmZyYW1lSUQpOwogICAgIGlmIChpdGVyICE9
IG1fd2ViRnJhbWVIYW5kbGVNYXAuZW5kKCkpCiAgICAgICAgIHJldHVybiBpdGVyLT52YWx1ZTsK
IAogICAgIFN0cmluZyBoYW5kbGUgPSAiZnJhbWUtIiArIGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJp
bmcoKS5jb252ZXJ0VG9BU0NJSVVwcGVyY2FzZSgpOwogCi0gICAgYXV0byBmaXJzdEFkZFJlc3Vs
dCA9IG1fd2ViRnJhbWVIYW5kbGVNYXAuYWRkKGZyYW1lSUQsIGhhbmRsZSk7CisgICAgYXV0byBm
aXJzdEFkZFJlc3VsdCA9IG1fd2ViRnJhbWVIYW5kbGVNYXAuYWRkKCpmcmFtZUlELCBoYW5kbGUp
OwogICAgIFJFTEVBU0VfQVNTRVJUKGZpcnN0QWRkUmVzdWx0LmlzTmV3RW50cnkpOwogCi0gICAg
YXV0byBzZWNvbmRBZGRSZXN1bHQgPSBtX2hhbmRsZVdlYkZyYW1lTWFwLmFkZChoYW5kbGUsIGZy
YW1lSUQpOworICAgIGF1dG8gc2Vjb25kQWRkUmVzdWx0ID0gbV9oYW5kbGVXZWJGcmFtZU1hcC5h
ZGQoaGFuZGxlLCAqZnJhbWVJRCk7CiAgICAgUkVMRUFTRV9BU1NFUlQoc2Vjb25kQWRkUmVzdWx0
LmlzTmV3RW50cnkpOwogCiAgICAgcmV0dXJuIGhhbmRsZTsKQEAgLTM2Miw3ICszNjIsNyBAQCB2
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpzd2l0Y2hUb0Jyb3dzaW5nQ29udGV4dChjb25zdCBT
dHJpbmcmIGJyb3dzaW5nQ29udGV4dAogICAgIGlmICghcGFnZSkKICAgICAgICAgQVNZTkNfRkFJ
TF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwogCi0gICAgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5k
bGUgPyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCkpOworICAgIGF1dG8gZnJh
bWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUob3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpvcHRpb25h
bEZyYW1lSGFuZGxlIDogZW1wdHlTdHJpbmcoKSk7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAg
ICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIApAQCAt
NDU5LDcgKzQ1OSw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OndhaXRGb3JOYXZpZ2F0
aW9uVG9Db21wbGV0ZShjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29uCiAgICAgICAgICYmIHBhZ2Ut
PnBhZ2VMb2FkU3RhdGUoKS5pc0xvYWRpbmcoKSAmJiBtX2NsaWVudC0+aXNTaG93aW5nSmF2YVNj
cmlwdERpYWxvZ09uUGFnZSgqdGhpcywgKnBhZ2UpOwogCiAgICAgaWYgKG9wdGlvbmFsRnJhbWVI
YW5kbGUgJiYgIW9wdGlvbmFsRnJhbWVIYW5kbGUtPmlzRW1wdHkoKSkgewotICAgICAgICBPcHRp
b25hbDx1aW50NjRfdD4gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUoKm9wdGlvbmFsRnJh
bWVIYW5kbGUpOworICAgICAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKCpv
cHRpb25hbEZyYW1lSGFuZGxlKTsKICAgICAgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICAgICAg
QVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoRnJhbWVOb3RGb3VuZCk7CiAgICAgICAg
IFdlYkZyYW1lUHJveHkqIGZyYW1lID0gcGFnZS0+cHJvY2VzcygpLndlYkZyYW1lKGZyYW1lSUQu
dmFsdWUoKSk7CkBAIC01MzcsNyArNTM3LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6
cmVzcG9uZFRvUGVuZGluZ1BhZ2VOYXZpZ2F0aW9uQ2FsbGJhY2tzV2l0aFRpbWVvdXQoSGEKICAg
ICB9CiB9CiAKLXN0YXRpYyBXZWJQYWdlUHJveHkqIGZpbmRQYWdlRm9yRnJhbWVJRChjb25zdCBX
ZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIHVpbnQ2NF90IGZyYW1lSUQpCitzdGF0aWMgV2Vi
UGFnZVByb3h5KiBmaW5kUGFnZUZvckZyYW1lSUQoY29uc3QgV2ViUHJvY2Vzc1Bvb2wmIHByb2Nl
c3NQb29sLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBmb3IgKGF1dG8mIHByb2Nl
c3MgOiBwcm9jZXNzUG9vbC5wcm9jZXNzZXMoKSkgewogICAgICAgICBpZiAoYXV0byogZnJhbWUg
PSBwcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKSkKQEAgLTU0Niw3ICs1NDYsNyBAQCBzdGF0aWMg
V2ViUGFnZVByb3h5KiBmaW5kUGFnZUZvckZyYW1lSUQoY29uc3QgV2ViUHJvY2Vzc1Bvb2wmIHBy
b2Nlc3NQb29sLCB1aW50NgogICAgIHJldHVybiBudWxscHRyOwogfQogCi12b2lkIFdlYkF1dG9t
YXRpb25TZXNzaW9uOjpyZXNwb25kVG9QZW5kaW5nRnJhbWVOYXZpZ2F0aW9uQ2FsbGJhY2tzV2l0
aFRpbWVvdXQoSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3Bh
dGNoZXI6OkNhbGxiYWNrQmFzZT4+JiBtYXApCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpy
ZXNwb25kVG9QZW5kaW5nRnJhbWVOYXZpZ2F0aW9uQ2FsbGJhY2tzV2l0aFRpbWVvdXQoSGFzaE1h
cDxGcmFtZUlkZW50aWZpZXIsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpD
YWxsYmFja0Jhc2U+PiYgbWFwKQogewogICAgIEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcgdGltZW91
dEVycm9yID0gU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VSUk9SX05BTUUoVGltZW91dCk7CiAgICAg
Zm9yIChhdXRvIGlkIDogY29weVRvVmVjdG9yKG1hcC5rZXlzKCkpKSB7CkBAIC05MjQsNyArOTI0
LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rp
b24oY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnQKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIEFT
WU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKIAotICAgIE9w
dGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShvcHRpb25hbEZy
YW1lSGFuZGxlID8gKm9wdGlvbmFsRnJhbWVIYW5kbGUgOiBlbXB0eVN0cmluZygpKTsKKyAgICBh
dXRvIGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5kbGUgPyAq
b3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCkpOwogICAgIGlmICghZnJhbWVJRCkK
ICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoRnJhbWVOb3RGb3VuZCk7
CiAKQEAgLTk2NywxMSArOTY3LDExIEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnJlc29s
dmVDaGlsZEZyYW1lSGFuZGxlKGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0CiAgICAgaWYg
KCFwYWdlKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5kb3dO
b3RGb3VuZCk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCA9IHdlYkZyYW1lSURG
b3JIYW5kbGUob3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpvcHRpb25hbEZyYW1lSGFuZGxlIDogZW1w
dHlTdHJpbmcoKSk7CisgICAgYXV0byBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShvcHRp
b25hbEZyYW1lSGFuZGxlID8gKm9wdGlvbmFsRnJhbWVIYW5kbGUgOiBlbXB0eVN0cmluZygpKTsK
ICAgICBpZiAoIWZyYW1lSUQpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VS
Uk9SKEZyYW1lTm90Rm91bmQpOwogCi0gICAgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9w
dGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxsYmFjayA9IGNhbGxiYWNrLmNvcHlSZWYo
KV0oT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIHVpbnQ2NF90IGZyYW1lSUQpIG11dGFibGUg
eworICAgIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBPcHRp
b25hbDxGcmFtZUlkZW50aWZpZXI+KT4gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxsYmFjayA9IGNhbGxiYWNrLmNvcHlSZWYoKV0o
T3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJh
bWVJRCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChlcnJvclR5cGUpIHsKICAgICAgICAgICAgIGNh
bGxiYWNrLT5zZW5kRmFpbHVyZShTVFJJTkdfRk9SX1BSRURFRklORURfRVJST1JfTUVTU0FHRSgq
ZXJyb3JUeXBlKSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xMDA0LDExICsxMDA0LDExIEBA
IHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnJlc29sdmVQYXJlbnRGcmFtZUhhbmRsZShjb25z
dCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4CiAgICAgaWYgKCFwYWdlKQogICAgICAgICBBU1lOQ19G
QUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5kb3dOb3RGb3VuZCk7CiAKLSAgICBPcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUoZnJhbWVIYW5kbGUpOwor
ICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUoZnJhbWVIYW5kbGUpOwogICAg
IGlmICghZnJhbWVJRCkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1Io
RnJhbWVOb3RGb3VuZCk7CiAKLSAgICBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9u
YWw8U3RyaW5nPiwgdWludDY0X3QpPiBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhbGxiYWNrID0gY2FsbGJhY2suY29weVJlZigpXShP
cHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgdWludDY0X3QgZnJhbWVJRCkgbXV0YWJsZSB7Cisg
ICAgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIE9wdGlvbmFs
PEZyYW1lSWRlbnRpZmllcj4pPiBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyksIGNhbGxiYWNrID0gY2FsbGJhY2suY29weVJlZigpXShPcHRp
b25hbDxTdHJpbmc+IGVycm9yVHlwZSwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlE
KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGVycm9yVHlwZSkgewogICAgICAgICAgICAgY2FsbGJh
Y2stPnNlbmRGYWlsdXJlKFNUUklOR19GT1JfUFJFREVGSU5FRF9FUlJPUl9NRVNTQUdFKCplcnJv
clR5cGUpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTEwMzUsNyArMTAzNSw3IEBAIHZvaWQg
V2ViQXV0b21hdGlvblNlc3Npb246OmNvbXB1dGVFbGVtZW50TGF5b3V0KGNvbnN0IFN0cmluZyYg
YnJvd3NpbmdDb250ZXh0SGFuCiAgICAgaWYgKCFwYWdlKQogICAgICAgICBBU1lOQ19GQUlMX1dJ
VEhfUFJFREVGSU5FRF9FUlJPUihXaW5kb3dOb3RGb3VuZCk7CiAKLSAgICBPcHRpb25hbDx1aW50
NjRfdD4gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUoZnJhbWVIYW5kbGUpOworICAgIGF1
dG8gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUoZnJhbWVIYW5kbGUpOwogICAgIGlmICgh
ZnJhbWVJRCkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoRnJhbWVO
b3RGb3VuZCk7CiAKQEAgLTEwODcsNyArMTA4Nyw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b246OnNlbGVjdE9wdGlvbkVsZW1lbnQoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5k
CiAgICAgaWYgKCFwYWdlKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJP
UihXaW5kb3dOb3RGb3VuZCk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCA9IHdl
YkZyYW1lSURGb3JIYW5kbGUoZnJhbWVIYW5kbGUpOworICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZy
YW1lSURGb3JIYW5kbGUoZnJhbWVIYW5kbGUpOwogICAgIGlmICghZnJhbWVJRCkKICAgICAgICAg
QVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoRnJhbWVOb3RGb3VuZCk7CiAKQEAgLTEy
NzEsNyArMTI3MSw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmdldEFsbENvb2tpZXMo
Y29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kbGUsIFJlCiAgICAgfTsKIAogICAgIC8v
IEFsd2F5cyBzZW5kIHRoZSBtYWluIGZyYW1lIElEIGFzIDAgc28gaXQgaXMgcmVzb2x2ZWQgb24g
dGhlIFdlYlByb2Nlc3Mgc2lkZS4gVGhpcyBhdm9pZHMgYSByYWNlIHdoZW4gcGFnZS0+bWFpbkZy
YW1lKCkgaXMgbnVsbCBzdGlsbC4KLSAgICBjb25zdCB1aW50NjRfdCBtYWluRnJhbWVJRCA9IDA7
CisgICAgY29uc3QgRnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlEOwogICAgIHBhZ2UtPnByb2Nl
c3MoKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHk6OkdldENvb2tpZXNGb3JGcmFtZShwYWdlLT5wYWdlSUQoKSwgbWFpbkZyYW1lSUQpLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKQEAgLTEyOTEsNyArMTI5MSw3IEBAIHZvaWQg
V2ViQXV0b21hdGlvblNlc3Npb246OmRlbGV0ZVNpbmdsZUNvb2tpZShjb25zdCBTdHJpbmcmIGJy
b3dzaW5nQ29udGV4dEhhbmRsCiAgICAgfTsKIAogICAgIC8vIEFsd2F5cyBzZW5kIHRoZSBtYWlu
IGZyYW1lIElEIGFzIDAgc28gaXQgaXMgcmVzb2x2ZWQgb24gdGhlIFdlYlByb2Nlc3Mgc2lkZS4g
VGhpcyBhdm9pZHMgYSByYWNlIHdoZW4gcGFnZS0+bWFpbkZyYW1lKCkgaXMgbnVsbCBzdGlsbC4K
LSAgICBjb25zdCB1aW50NjRfdCBtYWluRnJhbWVJRCA9IDA7CisgICAgY29uc3QgRnJhbWVJZGVu
dGlmaWVyIG1haW5GcmFtZUlEOwogICAgIHBhZ2UtPnByb2Nlc3MoKS5zZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OkRlbGV0ZUNvb2tpZShwYWdl
LT5wYWdlSUQoKSwgbWFpbkZyYW1lSUQsIGNvb2tpZU5hbWUpLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7CiB9CiAKQEAgLTE0NTcsNyArMTQ1Nyw3IEBAIFNpbXVsYXRlZElucHV0U291cmNl
KiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6aW5wdXRTb3VyY2VGb3JUeXBlKFNpbXVsYXRlZElucHV0
U291CiB9CiAKIC8vIE1BUks6IFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlcjo6Q2xpZW50IEFQSQot
dm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6dmlld3BvcnRJblZpZXdDZW50ZXJQb2ludE9mRWxl
bWVudChXZWJQYWdlUHJveHkmIHBhZ2UsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYg
bm9kZUhhbmRsZSwgRnVuY3Rpb248dm9pZCAoT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBP
cHRpb25hbDxBdXRvbWF0aW9uQ29tbWFuZEVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjp2aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVt
ZW50KFdlYlBhZ2VQcm94eSYgcGFnZSwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0
cmluZyYgbm9kZUhhbmRsZSwgRnVuY3Rpb248dm9pZCAoT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9p
bnQ+LCBPcHRpb25hbDxBdXRvbWF0aW9uQ29tbWFuZEVycm9yPik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4s
IFdlYkNvcmU6OkludFJlY3QsIE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiwgYm9vbCk+IGRp
ZENvbXB1dGVFbGVtZW50TGF5b3V0SGFuZGxlciA9IFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXShPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgV2ViQ29y
ZTo6SW50UmVjdCwgT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+IGluVmlld0NlbnRlclBvaW50
LCBib29sKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGVycm9yVHlwZSkgewpAQCAtMTk3Niw3ICsx
OTc2LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6dGFrZVNjcmVlbnNob3QoY29uc3Qg
U3RyaW5nJiBoYW5kbGUsIGNvbnN0IFN0cmluZyogb3AKICAgICBpZiAoIXBhZ2UpCiAgICAgICAg
IEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKIAotICAg
IE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShvcHRpb25h
bEZyYW1lSGFuZGxlID8gKm9wdGlvbmFsRnJhbWVIYW5kbGUgOiBlbXB0eVN0cmluZygpKTsKKyAg
ICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5kbGUg
PyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCkpOwogICAgIGlmICghZnJhbWVJ
RCkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoRnJhbWVOb3RGb3Vu
ZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2Vi
QXV0b21hdGlvblNlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24v
V2ViQXV0b21hdGlvblNlc3Npb24uaAppbmRleCA2OGEyNzdhYTllOTc2OGM5YTRmYTIwOTY5Nzhk
YTljN2EzMjk1MjUxLi40NTU4ZTkwYThmNjYzNWY0ZWRhNDU2YWMxY2FjZDQyOGJkOWUxYzNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRp
b25TZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJB
dXRvbWF0aW9uU2Vzc2lvbi5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiU2hhcmVhYmxl
Qml0bWFwLmgiCiAjaW5jbHVkZSAiU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmgiCiAjaW5jbHVk
ZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlv
bkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtMTUyLDcgKzE1Myw3IEBA
IHB1YmxpYzoKICNpZiBFTkFCTEUoV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNUSU9OUykKICAg
ICB2b2lkIHNpbXVsYXRlS2V5Ym9hcmRJbnRlcmFjdGlvbihXZWJQYWdlUHJveHkmLCBLZXlib2Fy
ZEludGVyYWN0aW9uLCBXVEY6OlZhcmlhbnQ8VmlydHVhbEtleSwgQ2hhcktleT4mJiwgQXV0b21h
dGlvbkNvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOwogI2VuZGlmCi0gICAgdm9pZCB2aWV3cG9y
dEluVmlld0NlbnRlclBvaW50T2ZFbGVtZW50KFdlYlBhZ2VQcm94eSYsIHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFN0cmluZyYgbm9kZUhhbmRsZSwgRnVuY3Rpb248dm9pZCAoT3B0aW9uYWw8V2Vi
Q29yZTo6SW50UG9pbnQ+LCBPcHRpb25hbDxBdXRvbWF0aW9uQ29tbWFuZEVycm9yPik+JiYpIGZp
bmFsOworICAgIHZvaWQgdmlld3BvcnRJblZpZXdDZW50ZXJQb2ludE9mRWxlbWVudChXZWJQYWdl
UHJveHkmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbm9kZUhhbmRs
ZSwgRnVuY3Rpb248dm9pZCAoT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBPcHRpb25hbDxB
dXRvbWF0aW9uQ29tbWFuZEVycm9yPik+JiYpIGZpbmFsOwogCiAjZW5kaWYgLy8gRU5BQkxFKFdF
QkRSSVZFUl9BQ1RJT05TX0FQSSkKIApAQCAtMjIwLDE0ICsyMjEsMTQgQEAgcHJpdmF0ZToKICAg
ICBSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6QnJvd3NpbmdDb250ZXh0PiBi
dWlsZEJyb3dzaW5nQ29udGV4dEZvclBhZ2UoV2ViUGFnZVByb3h5JiwgV2ViQ29yZTo6RmxvYXRS
ZWN0IHdpbmRvd0ZyYW1lKTsKICAgICB2b2lkIGdldE5leHRDb250ZXh0KFJlZjxXZWJBdXRvbWF0
aW9uU2Vzc2lvbj4mJiwgVmVjdG9yPFJlZjxXZWJQYWdlUHJveHk+PiYmLCBSZWY8SlNPTjo6QXJy
YXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpCcm93c2luZ0NvbnRleHQ+Piwg
UmVmPFdlYkF1dG9tYXRpb25TZXNzaW9uOjpHZXRCcm93c2luZ0NvbnRleHRzQ2FsbGJhY2s+JiYp
OwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IHdlYkZyYW1lSURGb3JIYW5kbGUoY29uc3QgU3Ry
aW5nJik7Ci0gICAgU3RyaW5nIGhhbmRsZUZvcldlYkZyYW1lSUQodWludDY0X3QgZnJhbWVJRCk7
CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiB3ZWJGcmFtZUlERm9ySGFu
ZGxlKGNvbnN0IFN0cmluZyYpOworICAgIFN0cmluZyBoYW5kbGVGb3JXZWJGcmFtZUlEKE9wdGlv
bmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4pOwogICAgIFN0cmluZyBoYW5kbGVGb3JXZWJG
cmFtZVByb3h5KGNvbnN0IFdlYkZyYW1lUHJveHkmKTsKIAogICAgIHZvaWQgd2FpdEZvck5hdmln
YXRpb25Ub0NvbXBsZXRlT25QYWdlKFdlYlBhZ2VQcm94eSYsIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb246OlBhZ2VMb2FkU3RyYXRlZ3ksIFNlY29uZHMsIFJlZjxJbnNwZWN0b3I6OkJh
Y2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+JiYpOwogICAgIHZvaWQgd2FpdEZvck5hdmln
YXRpb25Ub0NvbXBsZXRlT25GcmFtZShXZWJGcmFtZVByb3h5JiwgSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6UGFnZUxvYWRTdHJhdGVneSwgU2Vjb25kcywgUmVmPEluc3BlY3Rvcjo6
QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4mJik7CiAgICAgdm9pZCByZXNwb25kVG9Q
ZW5kaW5nUGFnZU5hdmlnYXRpb25DYWxsYmFja3NXaXRoVGltZW91dChIYXNoTWFwPFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2Fs
bGJhY2tCYXNlPj4mKTsKLSAgICB2b2lkIHJlc3BvbmRUb1BlbmRpbmdGcmFtZU5hdmlnYXRpb25D
YWxsYmFja3NXaXRoVGltZW91dChIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8SW5zcGVjdG9yOjpC
YWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4mKTsKKyAgICB2b2lkIHJlc3BvbmRUb1Bl
bmRpbmdGcmFtZU5hdmlnYXRpb25DYWxsYmFja3NXaXRoVGltZW91dChIYXNoTWFwPFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNh
bGxiYWNrQmFzZT4+Jik7CiAgICAgdm9pZCBsb2FkVGltZXJGaXJlZCgpOwogCiAgICAgdm9pZCBl
eGl0RnVsbHNjcmVlbldpbmRvd0ZvclBhZ2UoV2ViUGFnZVByb3h5JiwgV1RGOjpDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwpAQCAtMjg0LDEzICsyODUsMTMgQEAgcHJpdmF0ZToKICAgICBI
YXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBTdHJpbmc+IG1fd2ViUGFnZUhhbmRsZU1h
cDsKICAgICBIYXNoTWFwPFN0cmluZywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG1faGFuZGxl
V2ViUGFnZU1hcDsKIAotICAgIEhhc2hNYXA8dWludDY0X3QsIFN0cmluZz4gbV93ZWJGcmFtZUhh
bmRsZU1hcDsKLSAgICBIYXNoTWFwPFN0cmluZywgdWludDY0X3Q+IG1faGFuZGxlV2ViRnJhbWVN
YXA7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFN0cmluZz4gbV93ZWJG
cmFtZUhhbmRsZU1hcDsKKyAgICBIYXNoTWFwPFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyPiBtX2hhbmRsZVdlYkZyYW1lTWFwOwogCiAgICAgSGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFz
ZT4+IG1fcGVuZGluZ05vcm1hbE5hdmlnYXRpb25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1Bl
clBhZ2U7CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgUmVmUHRyPEluc3Bl
Y3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGluZ0VhZ2VyTmF2
aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyUGFnZTsKLSAgICBIYXNoTWFwPHVp
bnQ2NF90LCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNl
Pj4gbV9wZW5kaW5nTm9ybWFsTmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVy
RnJhbWU7Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERp
c3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGluZ0VhZ2VyTmF2aWdhdGlvbkluQnJvd3Np
bmdDb250ZXh0Q2FsbGJhY2tzUGVyRnJhbWU7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jh
c2U+PiBtX3BlbmRpbmdOb3JtYWxOYXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQ
ZXJGcmFtZTsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmUHRyPElu
c3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGluZ0VhZ2Vy
TmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyRnJhbWU7CiAgICAgSGFzaE1h
cDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3Bh
dGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGluZ0luc3BlY3RvckNhbGxiYWNrc1BlclBhZ2U7
CiAjaWYgRU5BQkxFKFdFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMpCiAgICAgSGFzaE1h
cDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgRnVuY3Rpb248dm9pZChPcHRpb25hbDxBdXRvbWF0
aW9uQ29tbWFuZEVycm9yPik+PiBtX3BlbmRpbmdLZXlib2FyZEV2ZW50c0ZsdXNoZWRDYWxsYmFj
a3NQZXJQYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlE
ZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0K
aW5kZXggYTUxYTIyMzYyMzg0MTUxYWIxMWQ0ODk0MzY5ZjhhMTg1ODAwNjdkYS4uMzAyZjY4MjI4
MmJjYzdlZTM4ZDNmNjcyN2Q2ZDIzZjg0YjI4OWRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBAIC0xMDMyLDcgKzEwMzIsNyBAQCB2b2lkIFVJRGVs
ZWdhdGU6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFn
ZVByb3h5JiBwYWdlLAogICAgIFVSTCByZXF1ZXN0RnJhbWVVUkwgeyBVUkwoKSwgZnJhbWUudXJs
KCkgfTsKICAgICBVUkwgbWFpbkZyYW1lVVJMIHsgVVJMKCksIG1haW5GcmFtZS0+dXJsKCkgfTsK
IAotICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlE
ZWxlZ2F0ZS5tX3dlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOnJlcXVlc3RG
cmFtZVVSTCBtYWluRnJhbWVVUkw6bWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjpmcmFtZS5m
cmFtZUlEKCkgZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07CisgICAgWyhp
ZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1f
d2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6cmVxdWVzdEZyYW1lVVJMIG1h
aW5GcmFtZVVSTDptYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOmZyYW1lLmZyYW1lSUQoKS50
b1VJbnQ2NCgpIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOwogfQogCiB2
b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjptZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZShXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1JlbG9hZEZyYW1lRXJyb3JSZWNvdmVyeUF0
dGVtcHRlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dLUmVsb2FkRnJhbWVF
cnJvclJlY292ZXJ5QXR0ZW1wdGVyLm1tCmluZGV4IDg0ZDIwYzRjZThiMWYwMDE3ZTFiYTc3Yjlk
MGRmNGYxMDEzOGE5MDAuLjljNDA5MmVmZDQzNmQwMjI0MGI4MDZhMmMyNDBmNjQzNmQyZWRiNWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dLUmVsb2FkRnJhbWVF
cnJvclJlY292ZXJ5QXR0ZW1wdGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dLUmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyLm1tCkBAIC0zMiw2ICszMiw3
IEBACiAjaW1wb3J0ICJXZWJGcmFtZVByb3h5LmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIK
ICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgorI2ltcG9ydCA8V2ViQ29yZS9GcmFtZUlkZW50
aWZpZXIuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9XZWFrT2Jq
Q1B0ci5oPgogCkBAIC02Miw4ICs2Myw3IEBAIC0gKEJPT0wpYXR0ZW1wdFJlY292ZXJ5CiAgICAg
aWYgKCF3ZWJWaWV3KQogICAgICAgICByZXR1cm4gTk87CiAKLSAgICB1aW50NjRfdCBmcmFtZUlE
ID0gW19mcmFtZUhhbmRsZSBfZnJhbWVJRF07Ci0gICAgV2ViS2l0OjpXZWJGcmFtZVByb3h5KiB3
ZWJGcmFtZVByb3h5ID0gd2ViVmlldy0+X3BhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlE
KTsKKyAgICBXZWJLaXQ6OldlYkZyYW1lUHJveHkqIHdlYkZyYW1lUHJveHkgPSB3ZWJWaWV3LT5f
cGFnZS0+cHJvY2VzcygpLndlYkZyYW1lKFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRChb
X2ZyYW1lSGFuZGxlIF9mcmFtZUlEXSkpOwogICAgIGlmICghd2ViRnJhbWVQcm94eSkKICAgICAg
ICAgcmV0dXJuIE5POwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJQYWdlUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlBhZ2VQcm94eUNvY29hLm1tCmluZGV4IGExYWY5OGQyMTA5M2U1YWVlZThiM2Q0ODBiODE2MWZl
MjZlOWVhNTEuLmQ5NjEzOTE4Zjc1ZmE1ZThkZjU4MzRmMjUyNDQzOGUwNmU5ODZiOTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1t
CkBAIC0xMDEsMTIgKzEwMSwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6YmVnaW5TYWZlQnJvd3Np
bmdDaGVjayhjb25zdCBVUkwmIHVybCwgYm9vbCBmb3JNYWluRnJhbWVOYXZpZwogfQogCiAjaWYg
RU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQotdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRlbnRGaWx0
ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9j
a0hhbmRsZXImIHVuYmxvY2tIYW5kbGVyLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdl
UHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpD
b250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIHVuYmxvY2tIYW5kbGVyLCBGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCkKIHsKICAgICBjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWVTaGFy
ZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgdW5ibG9ja0hhbmRsZXIsIGZyYW1lSUQpOwogfQogCi12
b2lkIFdlYlBhZ2VQcm94eTo6Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgY29uc3QgV2ViQ29yZTo6Q29udGVudEZp
bHRlclVuYmxvY2tIYW5kbGVyJiB1bmJsb2NrSGFuZGxlciwgdWludDY0X3QgZnJhbWVJRCkKK3Zv
aWQgV2ViUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWVTaGFyZWQo
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBjb25zdCBXZWJDb3JlOjpDb250ZW50Rmls
dGVyVW5ibG9ja0hhbmRsZXImIHVuYmxvY2tIYW5kbGVyLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCkKIHsKICAgICBpZiAoV2ViRnJhbWVQcm94eSogZnJhbWUgPSBwcm9jZXNzLT53ZWJGcmFtZShm
cmFtZUlEKSkKICAgICAgICAgZnJhbWUtPmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWQodW5ibG9j
a0hhbmRsZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggOTRmYWY2YjlkZTI2MjAxZDg0ZDI2ZmY4Mzkz
M2Y4MjI5YzA1ZDZiOS4uOTFlY2UxZjBkYWZmZTNlYTYzYWRiYzBkOTFlYWM0ZDE4MTExMzA5YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuY3BwCkBAIC0zMTIsNyArMzEyLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpkaWRDcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25zdCBJUEM6OkF0
dGEKICNlbmRpZgogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1l
SUQsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYgY29yZUNoYWxsZW5nZSwgdWlu
dDY0X3QgY2hhbGxlbmdlSUQpCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYmIGNvcmVDaGFs
bGVuZ2UsIHVpbnQ2NF90IGNoYWxsZW5nZUlEKQogewogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktF
UikKICAgICBpZiAoYXV0byogc2VydmljZVdvcmtlclByb2Nlc3NQcm94eSA9IG1fcHJvY2Vzc1Bv
b2wuc2VydmljZVdvcmtlclByb2Nlc3NQcm94eUZyb21QYWdlSUQocGFnZUlEKSkgewpAQCAtNzM3
LDcgKzczNyw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0R3JhbmRmYXRoZXJlZChQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzCiAgICAgc2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0R3JhbmRmYXRoZXJlZChzZXNzaW9uSUQs
IHJlc291cmNlRG9tYWluLCBpc0dyYW5kZmF0aGVyZWQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmVxdWVzdFN0b3JhZ2VBY2Nl
c3NDb25maXJtKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgdG9wRnJhbWVEb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNj
ZXNzQ29uZmlybShQYWdlSWRlbnRpZmllciBwYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBXZWJQcm9j
ZXNzUHJveHk6OndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5k
ZXggNDMzNTQ1YzBlMzNmYWFlZWQ5ZGViYjM0ZjZiMjBjZmNhZTVlOTVjOC4uNDBmODFkZTliNDdm
MTkyMjE5MDI2YTZlOGEwN2IyYTVlMmQ2YTk5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTgyLDcgKzgyLDYg
QEAgcHVibGljOgogICAgIHVzaW5nIE5hdmlnYXRlZFRvRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW47CiAgICAgdXNpbmcgRG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzID0gV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNpbmcgT3BlbmVyRG9tYWluID0gV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW47Ci0gICAgdXNpbmcgRnJhbWVJRCA9IHVpbnQ2NF90OwogCiAg
ICAgZXhwbGljaXQgTmV0d29ya1Byb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYpOwogICAgIH5O
ZXR3b3JrUHJvY2Vzc1Byb3h5KCk7CkBAIC0xMzAsNyArMTI5LDcgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2
b2lkIHNldFZlcnlQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgZ2V0
QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoVmVjdG9yPFN0cmluZz4gZG9tYWlucyk+JiYpOwotICAgIHZvaWQgcmVxdWVzdFN0b3Jh
Z2VBY2Nlc3NDb25maXJtKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBGcmFtZUlELCBjb25zdCBT
dWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJik7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3Vi
RnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYpOwogICAgIHZvaWQgcmVzZXRQYXJhbWV0ZXJzVG9EZWZhdWx0VmFsdWVzKFBB
TDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2No
ZWR1bGVDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudChQQUw6OlNlc3Npb25JRCwgU2hvdWxkR3Jh
bmRmYXRoZXJTdGF0aXN0aWNzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZv
aWQgc2NoZWR1bGVDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudChQQUw6OlNlc3Npb25JRCwgT3B0
aW9uYWw8V2FsbFRpbWU+IG1vZGlmaWVkU2luY2UsIFNob3VsZEdyYW5kZmF0aGVyU3RhdGlzdGlj
cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTIxMyw3ICsyMTIsNyBAQCBwcml2
YXRlOgogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKICAgICB2b2lkIGRpZFJlY2VpdmVOZXR3b3Jr
UHJvY2Vzc1Byb3h5TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKICAg
ICB2b2lkIGRpZENyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNvbnN0IElQQzo6
QXR0YWNobWVudCYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSYmLCB1aW50NjRfdCBjaGFsbGVuZ2VJRCk7CisgICAgdm9pZCBk
aWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVu
Z2UmJiwgdWludDY0X3QgY2hhbGxlbmdlSUQpOwogICAgIHZvaWQgZGlkRmV0Y2hXZWJzaXRlRGF0
YSh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBXZWJzaXRlRGF0YSYpOwogICAgIHZvaWQgZGlk
RGVsZXRlV2Vic2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBkaWREZWxl
dGVXZWJzaXRlRGF0YUZvck9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJRCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkubWVzc2FnZXMuaW4KaW5kZXggMTFkOGM1ZGVlMWRiYTgxZjhmNjNmN2Q5NDhlZjY2MTYx
OTgxZDEzNC4uYmZhZjlmMDQ5NmU1NmE5YjkzMWVmNmZmNzc1MWMzYWNmNWQxMzliYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjMsNyArMjMsNyBAQAogbWVzc2FnZXMgLT4g
TmV0d29ya1Byb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgRGlkQ3JlYXRlTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25JZGVudGlm
aWVyKQogCi0gICAgRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UgY2hhbGxlbmdlLCB1aW50NjRfdCBjaGFsbGVuZ2VJRCkKKyAgICBEaWRS
ZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFn
ZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UgY2hhbGxlbmdlLCB1aW50NjRfdCBjaGFsbGVuZ2VJRCkKIAogICAgIERp
ZEZldGNoV2Vic2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCwgc3RydWN0IFdlYktpdDo6V2Vi
c2l0ZURhdGEgd2Vic2l0ZURhdGEpCiAgICAgRGlkRGVsZXRlV2Vic2l0ZURhdGEodWludDY0X3Qg
Y2FsbGJhY2tJRCkKQEAgLTQ4LDcgKzQ4LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NQ
cm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgTm90aWZ5V2Vic2l0ZURhdGFEZWxldGlvbkZvclJl
Z2lzdHJhYmxlRG9tYWluc0ZpbmlzaGVkKCkKICAgICBOb3RpZnlXZWJzaXRlRGF0YVNjYW5Gb3JS
ZWdpc3RyYWJsZURvbWFpbnNGaW5pc2hlZCgpCiAgICAgTm90aWZ5UmVzb3VyY2VMb2FkU3RhdGlz
dGljc1RlbGVtZXRyeUZpbmlzaGVkKHVuc2lnbmVkIHRvdGFsUHJldmFsZW50UmVzb3VyY2VzLCB1
bnNpZ25lZCB0b3RhbFByZXZhbGVudFJlc291cmNlc1dpdGhVc2VySW50ZXJhY3Rpb24sIHVuc2ln
bmVkIHRvcDNTdWJmcmFtZVVuZGVyVG9wRnJhbWVPcmlnaW5zKQotICAgIFJlcXVlc3RTdG9yYWdl
QWNjZXNzQ29uZmlybShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkZyYW1lRG9tYWluLCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbikgLT4gKGJvb2wgdXNlckRpZEdyYW50
QWNjZXNzKSBBc3luYworICAgIFJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4pIC0+IChib29sIHVzZXJEaWRHcmFudEFjY2Vzcykg
QXN5bmMKICAgICBEZWxldGVXZWJzaXRlRGF0YUluVUlQcm9jZXNzRm9yUmVnaXN0cmFibGVEb21h
aW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURh
dGFUeXBlPiBkYXRhVHlwZXMsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhRmV0Y2hPcHRp
b24+IGZldGNoT3B0aW9ucywgVmVjdG9yPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21h
aW5zKSAtPiAoSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gZG9tYWluc1dpdGhN
YXRjaGluZ0RhdGFSZWNvcmRzKSBBc3luYwogICAgIERpZENvbW1pdENyb3NzU2l0ZUxvYWRXaXRo
RGF0YVRyYW5zZmVyRnJvbVByZXZhbGVudFJlc291cmNlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJv
dmlzaW9uYWxQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9u
YWxQYWdlUHJveHkuY3BwCmluZGV4IDY2NmZiZDNkYTEwZmI1ZDU5YWYyMTA1MjdhM2MxNTQ1YzE0
ODEzZTIuLmQ3ZjBjM2M5NTAyNzRkZThlMGE5NWNiODVhZGMyNzY1NThmNzJkOTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKQEAgLTE3
Niw3ICsxNzYsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpnb1RvQmFja0ZvcndhcmRJ
dGVtKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgV2ViQgogICAgIG1fcHJvY2Vzcy0+cmVz
cG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0KCk7CiB9CiAKLWlubGluZSBib29sIFByb3Zpc2lvbmFs
UGFnZVByb3h5Ojp2YWxpZGF0ZUlucHV0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IE9wdGlvbmFs
PHVpbnQ2NF90PiYgbmF2aWdhdGlvbklEKQoraW5saW5lIGJvb2wgUHJvdmlzaW9uYWxQYWdlUHJv
eHk6OnZhbGlkYXRlSW5wdXQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IE9wdGlvbmFs
PHVpbnQ2NF90PiYgbmF2aWdhdGlvbklEKQogewogICAgIC8vIElmIHRoZSBwcmV2aW91cyBwcm92
aXNpb25hbCBsb2FkIHVzZWQgYW4gZXhpc3RpbmcgcHJvY2Vzcywgd2UgbWF5IHJlY2VpdmUgbGVm
dG92ZXIgSVBDIGZvciBhIHByZXZpb3VzIG5hdmlnYXRpb24sIHdoaWNoIHdlIG5lZWQgdG8gaWdu
b3JlLgogICAgIGlmICghbV9tYWluRnJhbWUgfHwgbV9tYWluRnJhbWUtPmZyYW1lSUQoKSAhPSBm
cmFtZUlEKQpAQCAtMTg1LDkgKzE4NSw5IEBAIGlubGluZSBib29sIFByb3Zpc2lvbmFsUGFnZVBy
b3h5Ojp2YWxpZGF0ZUlucHV0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IE9wdGlvbmFsCiAgICAg
cmV0dXJuICFuYXZpZ2F0aW9uSUQgfHwgISpuYXZpZ2F0aW9uSUQgfHwgKm5hdmlnYXRpb25JRCA9
PSBtX25hdmlnYXRpb25JRDsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3Jl
YXRlTWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5
OjpkaWRDcmVhdGVNYWluRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7Ci0gICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICJkaWRDcmVhdGVNYWluRnJhbWU6
IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3BhZ2UucGFnZUlE
KCkudG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9j
ZXNzU3dhcHBpbmcsICJkaWRDcmVhdGVNYWluRnJhbWU6IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0LCBtX3BhZ2UucGFnZUlEKCkudG9VSW50NjQoKSwgZnJhbWVJRC50
b1VJbnQ2NCgpKTsKICAgICBBU1NFUlQoIW1fbWFpbkZyYW1lKTsKIAogICAgIG1fbWFpbkZyYW1l
ID0gV2ViRnJhbWVQcm94eTo6Y3JlYXRlKG1fcGFnZSwgZnJhbWVJRCk7CkBAIC0yMTIsNyArMjEy
LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQpCiAgICAgfQogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0
IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFBy
b3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIEZy
YW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlE
KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjIwLDEyICsyMjAsMTIgQEAgdm9pZCBQcm92aXNpb25h
bFBhZ2VQcm94eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNl
VVJMU3RyaW4KICAgICBtX3BhZ2UuZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkKG1fcHJv
Y2Vzcy5jb3B5UmVmKCksIHNvdXJjZVVSTFN0cmluZywgZGVzdGluYXRpb25VUkxTdHJpbmcsIGZy
YW1lSUQpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
VVJMJiYgdXJsLCBVUkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRh
KQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JG
cmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwm
JiB1cmwsIFVSTCYmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7
CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2Vzc1N3YXBwaW5nLCAi
ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZTogcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZy
YW1lSUQgPSAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEID0gJSIgUFJJdTY0LCBtX3BhZ2UucGFn
ZUlEKCkudG9VSW50NjQoKSwgZnJhbWVJRCwgbmF2aWdhdGlvbklEKTsKKyAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgImRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWU6IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIG5hdmln
YXRpb25JRCA9ICUiIFBSSXU2NCwgbV9wYWdlLnBhZ2VJRCgpLnRvVUludDY0KCksIGZyYW1lSUQu
dG9VSW50NjQoKSwgbmF2aWdhdGlvbklEKTsKICAgICBBU1NFUlQobV9wcm92aXNpb25hbExvYWRV
UkwuaXNOdWxsKCkpOwogICAgIG1fcHJvdmlzaW9uYWxMb2FkVVJMID0gdXJsOwogCkBAIC0yNDAs
MTIgKzI0MCwxMiBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbgogICAgIG1fcGFnZS5kaWRTdGFy
dFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1l
SUQsIG5hdmlnYXRpb25JRCwgV1RGTW92ZSh1cmwpLCBXVEZNb3ZlKHVucmVhY2hhYmxlVVJMKSwg
dXNlckRhdGEpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImIGVycm9yLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250aW51ZUxvYWRp
bmcsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6
OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2Fk
aW5nIHdpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAg
ICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcs
ICJkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIsIG5hdmlnYXRpb25JRCA9ICUiIFBSSXU2NCwgbV9wYWdlLnBh
Z2VJRCgpLnRvVUludDY0KCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCk7CisgICAgUkVMRUFTRV9M
T0dfRVJST1JfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICJkaWRGYWlsUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWU6IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IG5hdmlnYXRpb25JRCA9ICUiIFBSSXU2NCwgbV9wYWdlLnBhZ2VJRCgpLnRvVUludDY0KCksIGZy
YW1lSUQudG9VSW50NjQoKSwgbmF2aWdhdGlvbklEKTsKICAgICBBU1NFUlQoIW1fcHJvdmlzaW9u
YWxMb2FkVVJMLmlzTnVsbCgpKTsKICAgICBtX3Byb3Zpc2lvbmFsTG9hZFVSTCA9IHsgfTsKIApA
QCAtMjU2LDEyICsyNTYsMTIgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkRmFpbFBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnMKICAgICBtX3BhZ2Uu
ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCks
IGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIG5hdmlnYXRpb25JRCwgcHJvdmlzaW9uYWxV
UkwsIGVycm9yLCB3aWxsQ29udGludWVMb2FkaW5nLCB1c2VyRGF0YSk7IC8vIE1heSBkZWxldGUg
fHRoaXN8LgogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJp
bmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJf
dCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmlj
YXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpI
YXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRh
dGEmIHVzZXJEYXRhKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZv
ckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNv
bnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIs
IHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYg
Y2VydGlmaWNhdGVJbmZvLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdl
YkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25z
dCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQs
IG5hdmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoUHJvY2Vzc1N3YXBwaW5nLCAiZGlkQ29tbWl0TG9hZEZvckZyYW1lOiBwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9uSUQgPSAlIiBQUkl1
NjQsIG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQpOwor
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2Vzc1N3YXBwaW5nLCAiZGlkQ29tbWl0TG9h
ZEZvckZyYW1lOiBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBu
YXZpZ2F0aW9uSUQgPSAlIiBQUkl1NjQsIG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFt
ZUlELnRvVUludDY0KCksIG5hdmlnYXRpb25JRCk7CiAgICAgbV9wcm92aXNpb25hbExvYWRVUkwg
PSB7IH07CiAgICAgbV9wcm9jZXNzLT5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UucGFnZUlEKCkpOwogCkBA
IC0yNjksNyArMjY5LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9h
ZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmkKICAgICBtX3BhZ2UuY29t
bWl0UHJvdmlzaW9uYWxQYWdlKGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgbWltZVR5cGUsIGZyYW1l
SGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCBmcmFtZUxvYWRUeXBlLCBjZXJ0aWZpY2F0ZUluZm8s
IGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgdXNlckRh
dGEpOyAvLyBXaWxsIGRlbGV0ZSB8dGhpc3wuCiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJv
eHk6OmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25EYXRh
U3RvcmUmIHN0b3JlLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94
eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFT
dG9yZSYgc3RvcmUsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIGlmICghdmFsaWRh
dGVJbnB1dChmcmFtZUlEKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjc3LDcgKzI3Nyw3IEBAIHZv
aWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKGNv
bnN0IFdlYk5hdmlnYXRpb25EYXRhCiAgICAgbV9wYWdlLmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRp
b25EYXRhU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIHN0b3JlLCBmcmFtZUlEKTsKIH0KIAot
dm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCkKK3Zv
aWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYgdXJs
KQogewogICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQpKQogICAg
ICAgICByZXR1cm47CkBAIC0yODUsNyArMjg1LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94
eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW4K
ICAgICBtX3BhZ2UuZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNoYXJlZChtX3Byb2Nl
c3MuY29weVJlZigpLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUodXJsKSk7CiB9CiAK
LXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b25Bc3luYyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBm
cmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRp
ZmllciwKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb25Bc3luYyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyIGlkZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9u
QWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJ
bmZvRGF0YSwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwKICAgICBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVx
dWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBj
b25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIHVpbnQ2NF90IGxpc3RlbmVySUQpCiB7CkBAIC0yOTYs
NyArMjk2LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbkFzeW5jKHVpbnQ2NF90IGZyYW1lSUQKICAgICAgICAgV1RGTW92ZShmcmFt
ZUluZm9EYXRhKSwgb3JpZ2luYXRpbmdQYWdlSUQsIG9yaWdpbmFsUmVxdWVzdCwgV1RGTW92ZShy
ZXF1ZXN0KSwgV1RGTW92ZShyZXF1ZXN0Qm9keSksIFdURk1vdmUocmVkaXJlY3RSZXNwb25zZSks
IHVzZXJEYXRhLCBsaXN0ZW5lcklEKTsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6
ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRl
Y2lkZVBvbGljeUZvclJlc3BvbnNlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBv
bGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0
IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVz
ZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCwgbmF2
aWdhdGlvbklEKSkKQEAgLTMwNSw3ICszMDUsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5
OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDbwog
ICAgIG1fcGFnZS5kZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJl
ZigpLCBmcmFtZUlELCBmcmFtZVNlY3VyaXR5T3JpZ2luLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9u
SUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRl
LCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6
OmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywg
Y29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCkKK3Zv
aWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBT
dHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmlu
ZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZy
YW1lSUQpKQogICAgICAgICByZXR1cm47CkBAIC0zMTMsNyArMzEzLDcgQEAgdm9pZCBQcm92aXNp
b25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291
cmNlVVJMU3RyaW4KICAgICBtX3BhZ2UuZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0U2hhcmVkKG1f
cHJvY2Vzcy5jb3B5UmVmKCksIHNvdXJjZVVSTFN0cmluZywgZGVzdGluYXRpb25VUkxTdHJpbmcs
IGZyYW1lSUQpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRSZWNlaXZlU2Vy
dmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3Qs
IGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRp
ZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBpZiAo
IXZhbGlkYXRlSW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKICAgICAgICAgcmV0dXJuOwpA
QCAtMzMxLDcgKzMzMSw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmJhY2tGb3J3YXJk
R29Ub0l0ZW0oY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlCiAgICAgbV9wYWdlLmJh
Y2tGb3J3YXJkR29Ub0l0ZW1TaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgaWRlbnRpZmllciwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVBy
b3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyh1aW50NjRfdCBmcmFtZUlE
LCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNl
Y3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwK
K3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b25TeW5jKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xp
Y3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0Rh
dGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQ
YWdlSUQsCiAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVl
c3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZl
cmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0
UmVzcG9uc2UsCiAgICAgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5
JiYgcmVwbHkpCkBAIC0zNjYsNyArMzY2LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6
cmVnaXN0ZXJXZWJQcm9jZXNzQWNjZXNzaWJpbGl0eVRva2VuKGNvbnN0IElQQzo6RGF0YVIKICNl
bmRpZgogCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQotdm9pZCBQcm92aXNpb25hbFBh
Z2VQcm94eTo6Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKGNvbnN0IFdlYkNvcmU6
OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYgdW5ibG9ja0hhbmRsZXIsIHVpbnQ2NF90IGZy
YW1lSUQpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tM
b2FkRm9yRnJhbWUoY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiB1
bmJsb2NrSGFuZGxlciwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgbV9wYWdlLmNv
bnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigp
LCB1bmJsb2NrSGFuZGxlciwgZnJhbWVJRCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaAppbmRleCAzMzMyMTZhMmNjNzg1NjY3MTYzMjRhYjA2
ZmYxYjNiOTYwODBjMGJlLi5kZTNlZTY4N2ZhN2Q4MTc1MGI1OGZlZGE1ODQ1ODNmZDFmMWUyZDY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgK
QEAgLTkyLDIzICs5MiwyMyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAgICAgdm9pZCBkaWRSZWNl
aXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlx
dWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBmaW5hbDsKIAotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbkFzeW5jKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0YSYmLAorICAg
IHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9u
RGF0YSYmLCBGcmFtZUluZm9EYXRhJiYsCiAgICAgICAgIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZv
cm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxp
c3RlbmVySUQpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UodWludDY0X3QgZnJh
bWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgV2ViQ29yZTo6UG9saWN5
Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmLAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBX
ZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsCiAgICAgICAgIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25s
b2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwotICAg
IHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKLSAgICB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJS
ZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0
aW5hdGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRSZWNlaXZl
U2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25z
dCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29u
c3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQg
ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBj
b25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKTsKLSAg
ICB2b2lkIGRpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRp
ZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBVUkwmJiwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRh
Jik7Ci0gICAgdm9pZCBkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFz
Q3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJD
b3JlOjpDZXJ0aWZpY2F0ZUluZm8mLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlv
bmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50
LCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYg
ZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcm
IHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6
V2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZENoYW5n
ZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKKyAgICB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVj
dChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlv
blVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZFJlY2Vp
dmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmJiwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRp
b25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmLCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIpOworICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFN0cmluZyYg
c291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkQ3JlYXRlTWFpbkZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBV
UkwmJiwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBk
aWRDb21taXRMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21D
b250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNl
cnRpZmljYXRlSW5mbyYsIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8V2Vi
Q29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0
IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
IGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5n
JiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6
OldpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBzdGFydFVS
TFNjaGVtZVRhc2soVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJik7CiAgICAgdm9pZCBiYWNrRm9y
d2FyZEdvVG9JdGVtKGNvbnN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmKT4mJik7Ci0g
ICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyh1aW50NjRfdCBmcmFt
ZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmln
YXRpb25BY3Rpb25EYXRhJiYsCisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uU3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAg
RnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2lu
YXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1
ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYm
IHJlcXVlc3RCb2R5LAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJl
Y3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYpOwogI2lmIFVT
RShRVUlDS19MT09LKQpAQCAtMTE4LDExICsxMTgsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJl
Z2lzdGVyV2ViUHJvY2Vzc0FjY2Vzc2liaWxpdHlUb2tlbihjb25zdCBJUEM6OkRhdGFSZWZlcmVu
Y2UmKTsKICNlbmRpZgogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKLSAgICB2b2lkIGNv
bnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250ZW50Rmls
dGVyVW5ibG9ja0hhbmRsZXImLCB1aW50NjRfdCBmcmFtZUlEKTsKKyAgICB2b2lkIGNvbnRlbnRG
aWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5i
bG9ja0hhbmRsZXImLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogI2VuZGlmCiAKICAgICB2
b2lkIGluaXRpYWxpemVXZWJQYWdlKCk7Ci0gICAgYm9vbCB2YWxpZGF0ZUlucHV0KHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IE9wdGlvbmFsPHVpbnQ2NF90PiYgbmF2aWdhdGlvbklEID0gV1RGOjpu
dWxsb3B0KTsKKyAgICBib29sIHZhbGlkYXRlSW5wdXQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBjb25zdCBPcHRpb25hbDx1aW50NjRfdD4mIG5hdmlnYXRpb25JRCA9IFdURjo6bnVsbG9wdCk7
CiAKICAgICBXZWJQYWdlUHJveHkmIG1fcGFnZTsKICAgICBSZWY8V2ViUHJvY2Vzc1Byb3h5PiBt
X3Byb2Nlc3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXJQcm9jZXNzUHJveHkuY3BwCmluZGV4IGIyZjc3MjlmZDM5MzVmNzJlMWJjOTExNWEzMGExOGY2
NGUzOWZkMjUuLmY3OGE3YzM4NmM4OTU5MDExNTZiNTY4YWFmOThiYWIyM2IwODA2ZWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJv
eHkuY3BwCkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgU2VydmljZVdvcmtlclByb2Nlc3NQcm94eTo6
dXBkYXRlUHJlZmVyZW5jZXNTdG9yZShjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlCiAgICAgc2Vu
ZChNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OlVwZGF0ZVByZWZlcmVu
Y2VzU3RvcmUgeyBzdG9yZSB9LCAwKTsKIH0KIAotdm9pZCBTZXJ2aWNlV29ya2VyUHJvY2Vzc1By
b3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUGFnZUlkZW50aWZpZXIgcGFn
ZUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4m
JiBjaGFsbGVuZ2UpCit2b2lkIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJiBjaGFsbGVu
Z2UpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHBhZ2VJRCk7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1l
SUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclBy
b2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nl
c3NQcm94eS5oCmluZGV4IGU5MzY1YWZhYzRmNDdkN2ZkNzQ3Zjk4OTgzYWQ5OTkwZThhYjk3NTUu
LjdkODg3NjA1ZWVhMGI2NDc5ZDY5NzY5MWFiYjU1MjgwN2RlMjE4NDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgKQEAgLTQx
LDcgKzQxLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGJvb2wgaGFzUmVnaXN0ZXJlZFNlcnZp
Y2VXb3JrZXJzKGNvbnN0IFN0cmluZyYgc2VydmljZVdvcmtlckRpcmVjdG9yeSk7CiAKLSAgICB2
b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgdWludDY0X3QgZnJhbWVJRCwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+
JiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZjxBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZVByb3h5PiYmKTsKIAogICAgIHZvaWQgc3RhcnQoY29uc3QgV2ViUHJlZmVy
ZW5jZXNTdG9yZSYsIE9wdGlvbmFsPFBBTDo6U2Vzc2lvbklEPiBpbml0aWFsU2Vzc2lvbklEKTsK
ICAgICB2b2lkIHNldFVzZXJBZ2VudChjb25zdCBTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwCmluZGV4IGY2ZDNiNTM2ZGY4YWFiMTk3
ZDkxMWVkMTRkMmVhNDBmZWZmMmUxZGQuLmM2NGQ3ZWYxOWJkMGRlNzExNjk2OTk5MmMwNzY3MWU2
MWQ4MjgzZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBh
Z2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVBy
b3h5LmNwcApAQCAtNzgsNyArNzgsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFNldDxJUEM6OlN0cmlu
Z1JlZmVyZW5jZT4mIG1lc3NhZ2VOYW1lc1RvSWdub3JlV2hpbGVTdXNwZW5kZWQoKQogfQogI2Vu
ZGlmCiAKLVN1c3BlbmRlZFBhZ2VQcm94eTo6U3VzcGVuZGVkUGFnZVByb3h5KFdlYlBhZ2VQcm94
eSYgcGFnZSwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCB1aW50NjRfdCBtYWluRnJh
bWVJRCwgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmdNb2RlIHNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0
aW5nTW9kZSkKK1N1c3BlbmRlZFBhZ2VQcm94eTo6U3VzcGVuZGVkUGFnZVByb3h5KFdlYlBhZ2VQ
cm94eSYgcGFnZSwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFtZUlkZW50aWZp
ZXIgbWFpbkZyYW1lSUQsIFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nTW9kZSBzaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ01vZGUpCiAgICAgOiBtX3BhZ2UocGFnZSkKICAgICAsIG1fcHJvY2VzcyhX
VEZNb3ZlKHByb2Nlc3MpKQogICAgICwgbV9tYWluRnJhbWVJRChtYWluRnJhbWVJRCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmgKaW5kZXggMGRhZDA1NGIy
NzJhODE5ZDZlMGIwNmM3N2NlZDgxMmEyNjNkMTM0MC4uOTE2NTNjYzc4ZWEwMDg2NjBiMTRlMzM1
MDU1M2FhODllNzNkMTkxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3Vz
cGVuZGVkUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVk
UGFnZVByb3h5LmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJQcm9jZXNzVGhyb3R0bGVy
LmgiCiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oIgogI2luY2x1ZGUgIldlYlBh
Z2VQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAK
QEAgLTQyLDEyICs0MywxMiBAQCBlbnVtIGNsYXNzIFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50
ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSA6IGJvb2wgeyBObwogY2xhc3MgU3VzcGVu
ZGVkUGFnZVByb3h5IGZpbmFsOiBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBD
YW5NYWtlV2Vha1B0cjxTdXNwZW5kZWRQYWdlUHJveHk+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKLSAgICBTdXNwZW5kZWRQYWdlUHJveHkoV2ViUGFnZVByb3h5Jiwg
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3QgbWFpbkZyYW1lSUQsIFNob3VsZERlbGF5
Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSk7CisgICAgU3Vz
cGVuZGVkUGFnZVByb3h5KFdlYlBhZ2VQcm94eSYsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCwgU2hvdWxkRGVsYXlDbG9zaW5nVW50
aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKTsKICAgICB+U3VzcGVuZGVkUGFn
ZVByb3h5KCk7CiAKICAgICBXZWJQYWdlUHJveHkmIHBhZ2UoKSBjb25zdCB7IHJldHVybiBtX3Bh
Z2U7IH0KICAgICBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MoKSB7IHJldHVybiBtX3Byb2Nlc3Mu
Z2V0KCk7IH0KLSAgICB1aW50NjRfdCBtYWluRnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFp
bkZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQoKSBj
b25zdCB7IHJldHVybiBtX21haW5GcmFtZUlEOyB9CiAKICAgICBib29sIHBhZ2VJc0Nsb3NlZE9y
Q2xvc2luZygpIGNvbnN0OwogCkBAIC03NCw3ICs3NSw3IEBAIHByaXZhdGU6CiAKICAgICBXZWJQ
YWdlUHJveHkmIG1fcGFnZTsKICAgICBSZWY8V2ViUHJvY2Vzc1Byb3h5PiBtX3Byb2Nlc3M7Ci0g
ICAgdWludDY0X3QgbV9tYWluRnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
bV9tYWluRnJhbWVJRDsKICAgICBib29sIG1faXNDbG9zZWQgeyBmYWxzZSB9OwogICAgIFNob3Vs
ZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSBtX3No
b3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSB7
IFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9k
ZTo6Tm8gfTsKICAgICBib29sIG1fc2hvdWxkQ2xvc2VXaGVuRW50ZXJpbmdBY2NlbGVyYXRlZENv
bXBvc2l0aW5nTW9kZSB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5jcHAKaW5kZXggYWI3OTI0MDI5
ZTBlZjNhM2JiYWI3NGNiYWMwMGMyOTdmYTk2YTNjYS4uNGZhNmZkZjYwOGQ2YzM3ZWZlY2IwYTVl
MDZjMmNmZGU1MGViNTg0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmNwcApAQCAtMzMsNyArMzMsNyBAQAog
bmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotVXNlck1lZGlh
UGVybWlzc2lvbkNoZWNrUHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5KHVpbnQ2
NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlciwgUmVmPFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbikKK1VzZXJNZWRpYVBlcm1pc3Np
b25DaGVja1Byb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyLCBSZWY8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKQogICAgIDogbV9mcmFtZUlEKGZy
YW1lSUQpCiAgICAgLCBtX2NvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaGFuZGxlcikpCiAgICAg
LCBtX3VzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW4oV1RGTW92ZSh1c2VyTWVkaWFEb2N1
bWVudE9yaWdpbikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1l
ZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaAppbmRleCBkYzM0MDk4MTcxNGM3Mjc5M2MwMTA1ZDc4
MzM5MWI3ZmE5NDU5MThmLi5lODBiNTE5MTg0MWZkYjI0Njc1NTEwOTcyNTA5NjZlOTBiN2UyYTMy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
Q2hlY2tQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25DaGVja1Byb3h5LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHMuaD4KICNpbmNsdWRlIDx3dGYvQ29t
cGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTQx
LDcgKzQyLDcgQEAgcHVibGljOgogICAgIGVudW0gY2xhc3MgUGVybWlzc2lvbkluZm8geyBFcnJv
ciwgVW5rbm93biwgR3JhbnRlZCB9OwogICAgIHVzaW5nIENvbXBsZXRpb25IYW5kbGVyID0gV1RG
OjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBlcm1pc3Npb25JbmZvKT47CiAKLSAgICBzdGF0aWMg
UmVmPFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5PiBjcmVhdGUodWludDY0X3QgZnJhbWVJ
RCwgQ29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKQorICAgIHN0YXRpYyBSZWY8VXNlck1lZGlhUGVy
bWlzc2lvbkNoZWNrUHJveHk+IGNyZWF0ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgQ29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkoZnJhbWVJRCwgV1RGTW92ZSho
YW5kbGVyKSwgV1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiksIFdURk1vdmUodG9wTGV2
ZWxEb2N1bWVudE9yaWdpbikpKTsKICAgICB9CkBAIC01MCwxNyArNTEsMTcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0VXNlck1lZGlhQWNjZXNzSW5mbyhib29sKTsKICAgICB2b2lkIGludmFsaWRh
dGUoKSB7IGNvbXBsZXRlKFBlcm1pc3Npb25JbmZvOjpFcnJvcik7IH0KIAotICAgIHVpbnQ2NF90
IGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQogICAgIFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkg
eyByZXR1cm4gbV91c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luLmdldCgpOyB9CiAgICAg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbigp
IHsgcmV0dXJuIG1fdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luLmdldCgpOyB9CiAgICAg
CiBwcml2YXRlOgotICAgIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5KHVpbnQ2NF90IGZy
YW1lSUQsIENvbXBsZXRpb25IYW5kbGVyJiYsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4m
JiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYm
IHRvcExldmVsRG9jdW1lbnRPcmlnaW4pOworICAgIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1By
b3h5KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXImJiwgUmVmPFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7CiAgICAgflVz
ZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5KCk7CiAKICAgICB2b2lkIGNvbXBsZXRlKFBlcm1p
c3Npb25JbmZvKTsKICAgICAKLSAgICB1aW50NjRfdCBtX2ZyYW1lSUQ7CisgICAgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIG1fZnJhbWVJRDsKICAgICBDb21wbGV0aW9uSGFuZGxlciBtX2NvbXBs
ZXRpb25IYW5kbGVyOwogICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gbV91c2VyTWVk
aWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luOwogICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bj4gbV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5jcHAKaW5kZXggZDM0MDM3NmZmMjkwN2I4NzI5MzU2NDY0Mjg5ZDQzNDk2ZDQw
MDk5MS4uZGI0Y2RhMTExNjFkMjIyODI5ODRmZWU5YWVhZDQwYTRlZWMxYTQ5MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtMjQwLDkgKzI0MCw5IEBAIHZvaWQgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmZpbmlzaEdyYW50aW5nUmVxdWVz
dChVc2VyTWVkaWFQZXJtCiAgICAgcHJvY2Vzc05leHRVc2VyTWVkaWFSZXF1ZXN0SWZOZWVkZWQo
KTsKIH0KIAotdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVz
ZXRBY2Nlc3ModWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHk6OnJlc2V0QWNjZXNzKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewot
ICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgZnJhbWVJRCk7CisgICAgQUxXQVlTX0xPRyhM
T0dJREVOVElGSUVSLCBmcmFtZUlELmxvZ2dpbmdTdHJpbmcoKSk7CiAgICAgbV9ncmFudGVkUmVx
dWVzdHMucmVtb3ZlQWxsTWF0Y2hpbmcoW2ZyYW1lSURdKGNvbnN0IGF1dG8mIGdyYW50ZWRSZXF1
ZXN0KSB7CiAgICAgICAgIHJldHVybiBncmFudGVkUmVxdWVzdC0+bWFpbkZyYW1lSUQoKSA9PSBm
cmFtZUlEOwogICAgIH0pOwpAQCAtMjUxLDcgKzI1MSw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlc2V0QWNjZXNzKHVpbnQ2NF90IGZyYW1lSUQpCiAg
ICAgbV9oYXNGaWx0ZXJlZERldmljZUxpc3QgPSBmYWxzZTsKIH0KIAotY29uc3QgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eSogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk6OnNlYXJjaEZvckdyYW50ZWRSZXF1ZXN0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNl
Y3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmln
aW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGJvb2wgbmVlZHNBdWRpbywgYm9vbCBuZWVkc1Zp
ZGVvKSBjb25zdAorY29uc3QgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSogVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnNlYXJjaEZvckdyYW50ZWRSZXF1ZXN0
KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlh
RG9jdW1lbnRPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luLCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbykgY29uc3QKIHsKICAgICBpZiAo
bV9wYWdlLmlzTWVkaWFTdHJlYW1DYXB0dXJlTXV0ZWQoKSkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CkBAIC0yODIsNyArMjgyLDcgQEAgY29uc3QgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eSogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnMKICAgICByZXR1
cm4gbnVsbHB0cjsKIH0KIAotYm9vbCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6d2FzUmVxdWVzdERlbmllZCh1aW50NjRfdCBtYWluRnJhbWVJRCwgY29uc3QgU2VjdXJp
dHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYg
dG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8s
IGJvb2wgbmVlZHNTY3JlZW5DYXB0dXJlKQorYm9vbCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6d2FzUmVxdWVzdERlbmllZChGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1l
SUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3Qg
U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGJvb2wgbmVlZHNBdWRpbywg
Ym9vbCBuZWVkc1ZpZGVvLCBib29sIG5lZWRzU2NyZWVuQ2FwdHVyZSkKIHsKICAgICBmb3IgKGNv
bnN0IGF1dG8mIGRlbmllZFJlcXVlc3QgOiBtX2RlbmllZFJlcXVlc3RzKSB7CiAgICAgICAgIGlm
ICghZGVuaWVkUmVxdWVzdC51c2VyTWVkaWFEb2N1bWVudE9yaWdpbi0+aXNTYW1lU2NoZW1lSG9z
dFBvcnQodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pKQpAQCAtMzQ2LDcgKzM0Niw3IEBAIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpSZXF1ZXN0QWN0aW9uIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0CiB9CiAjZW5kaWYKIAotdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1
aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFNlY3VyaXR5T3JpZ2lu
PiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbiwgTWVkaWFTdHJlYW1SZXF1ZXN0JiYgdXNlclJlcXVlc3QpCit2b2lk
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlh
UGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBS
ZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgTWVkaWFTdHJlYW1S
ZXF1ZXN0JiYgdXNlclJlcXVlc3QpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBp
ZiAoIW1fcGFnZS5oYXNSdW5uaW5nUHJvY2VzcygpKQpAQCAtNTIxLDcgKzUyMSw3IEBAIHZvaWQg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnByb2Nlc3NVc2VyTWVkaWFQ
ZXJtaXNzaW9uVmFsaWRSZXF1CiAgICAgbV9wYWdlLnVpQ2xpZW50KCkuZGVjaWRlUG9saWN5Rm9y
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QobV9wYWdlLCAqd2ViRnJhbWUsIFdURk1vdmUodXNl
ck1lZGlhT3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZlbE9yaWdpbiksICptX2N1cnJlbnRVc2VyTWVk
aWFSZXF1ZXN0KTsKIH0KIAotdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6Z2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8odWludDY0X3QgZnJhbWVJRCwgUmVmPFNl
Y3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlPcmln
aW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQZXJt
aXNzaW9uSW5mbyk+JiYgaGFuZGxlcikKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHk6OmdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJl
ZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFBlcm1pc3Npb25JbmZvKT4mJiBoYW5kbGVyKQogewogICAgIGF1dG8qIHdlYkZy
YW1lID0gbV9wYWdlLnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBpZiAoIXdlYkZy
YW1lIHx8ICFTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhtX3BhZ2UucGFnZUxvYWRT
dGF0ZSgpLmFjdGl2ZVVSTCgpKS0+aXNTYW1lU2NoZW1lSG9zdFBvcnQodG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbi5nZXQoKSkpIHsKQEAgLTU0NSw3ICs1NDUsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpnZXRVc2VyTWVkaWFQZXJtaXNzaW9uSW5mbyh1aW50
NjRfdAogICAgIG1fcGFnZS51aUNsaWVudCgpLmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9y
aWdpbihtX3BhZ2UsICp3ZWJGcmFtZSwgdXNlck1lZGlhT3JpZ2luLmdldCgpLCB0b3BMZXZlbE9y
aWdpbi5nZXQoKSwgcmVxdWVzdC5nZXQoKSk7CiB9CiAKLWJvb2wgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc0dyYW50ZWRWaWRlb09yQXVkaW9BY2Nlc3ModWludDY0
X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
LCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbikKK2Jvb2wgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc0dyYW50ZWRWaWRlb09yQXVk
aW9BY2Nlc3MoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9j
dW1lbnRPcmlnaW4pCiB7CiAgICAgZm9yIChjb25zdCBhdXRvJiBncmFudGVkUmVxdWVzdCA6IG1f
Z3JhbnRlZFJlcXVlc3RzKSB7CiAgICAgICAgIGlmIChncmFudGVkUmVxdWVzdC0+cmVxdWlyZXNE
aXNwbGF5Q2FwdHVyZSgpKQpAQCAtNjA0LDcgKzYwNCw3IEBAIFZlY3RvcjxDYXB0dXJlRGV2aWNl
PiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y29tcHV0ZUZpbHRlcmVk
RGV2CiB9CiAjZW5kaWYKIAotdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQs
IHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pCit2
b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjplbnVtZXJhdGVNZWRp
YURldmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVm
PFNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pCiB7CiAjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIHVzZXJNZWRpYUlE
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCmluZGV4IGY1MDVlMjgwYzQ0MjkwYTgw
M2RiZGI2OGM5OGVlYTYzMGIxYzliYjYuLmJiYmE0NGFjODJiZDI4MDc1YmRkZmJiNDU0NDRjYTU2
OWFjY2ZiOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApAQCAtNjAsMTUgKzYw
LDE1IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgaW52YWxpZGF0ZVBlbmRpbmdSZXF1ZXN0cygpOwog
Ci0gICAgdm9pZCByZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVz
ZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+
JiYgIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+
JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYp
OworICAgIHZvaWQgcmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1
c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4+JiYgIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgV2ViQ29yZTo6TWVkaWFTdHJlYW1S
ZXF1ZXN0JiYpOwogCi0gICAgdm9pZCByZXNldEFjY2Vzcyh1aW50NjRfdCBtYWluRnJhbWVJRCk7
CisgICAgdm9pZCByZXNldEFjY2VzcyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1l
SUQpOwogICAgIHZvaWQgdmlld0lzQmVjb21pbmdWaXNpYmxlKCk7CiAKICAgICB2b2lkIGdyYW50
UmVxdWVzdChVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Jik7CiAgICAgdm9pZCBkZW55
UmVxdWVzdChVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiwgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uLCBjb25zdCBTdHJp
bmcmIGludmFsaWRDb25zdHJhaW50ID0geyB9KTsKIAotICAgIHZvaWQgZW51bWVyYXRlTWVkaWFE
ZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJl
ZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVm
PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pOworICAg
IHZvaWQgZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQs
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYm
IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYg
dG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7CiAKICAgICB2b2lkIHN0b3BDYXB0dXJlKCk7CiAgICAg
dm9pZCBzY2hlZHVsZU5leHRSZWplY3Rpb24oKTsKQEAgLTk1LDE5ICs5NSwxOSBAQCBwcml2YXRl
OgogICAgIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKSBjb25zdCBmaW5hbDsKICNlbmRpZgog
Ci0gICAgUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZVBlcm1pc3Np
b25SZXF1ZXN0KHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBtYWluRnJhbWVJRCwgdWlu
dDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbiwgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgYXVkaW9EZXZpY2Vz
LCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiB2aWRlb0RldmljZXMsIFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKKyAgICBSZWY8VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eT4gY3JlYXRlUGVybWlzc2lvblJlcXVlc3QodWludDY0X3QgdXNlck1lZGlhSUQsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmln
aW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
LCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVkaWFTdHJl
YW1SZXF1ZXN0JiYpOwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgdm9pZCBmaW5pc2hH
cmFudGluZ1JlcXVlc3QoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYpOwogCi0gICAg
Y29uc3QgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSogc2VhcmNoRm9yR3JhbnRlZFJl
cXVlc3QodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVz
ZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9w
TGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8pIGNv
bnN0OwotICAgIGJvb2wgd2FzUmVxdWVzdERlbmllZCh1aW50NjRfdCBtYWluRnJhbWVJRCwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBu
ZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8sIGJvb2wgbmVlZHNTY3JlZW5DYXB0dXJlKTsKKyAg
ICBjb25zdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KiBzZWFyY2hGb3JHcmFudGVk
UmVxdWVzdChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGJvb2wgbmVlZHNBdWRpbywgYm9vbCBuZWVk
c1ZpZGVvKSBjb25zdDsKKyAgICBib29sIHdhc1JlcXVlc3REZW5pZWQoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIG1haW5GcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNl
ck1lZGlhRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BM
ZXZlbERvY3VtZW50T3JpZ2luLCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbywgYm9v
bCBuZWVkc1NjcmVlbkNhcHR1cmUpOwogCiAgICAgdXNpbmcgUGVybWlzc2lvbkluZm8gPSBVc2Vy
TWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eTo6UGVybWlzc2lvbkluZm87Ci0gICAgdm9pZCBnZXRV
c2VyTWVkaWFQZXJtaXNzaW9uSW5mbyh1aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFBlcm1pc3Npb25JbmZvKT4mJik7CisgICAgdm9pZCBnZXRVc2VyTWVkaWFQZXJtaXNzaW9u
SW5mbyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
PiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUGVybWlz
c2lvbkluZm8pPiYmKTsKIAogICAgIFJlcXVlc3RBY3Rpb24gZ2V0UmVxdWVzdEFjdGlvbihjb25z
dCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Jik7CiAKLSAgICBib29sIHdhc0dyYW50
ZWRWaWRlb09yQXVkaW9BY2Nlc3ModWludDY0X3QsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pOworICAgIGJvb2wgd2FzR3JhbnRlZFZpZGVvT3JB
dWRpb0FjY2VzcyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pOwogCiAgICAgVmVjdG9yPFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2U+IGNvbXB1dGVGaWx0ZXJlZERldmljZUxpc3QoYm9vbCByZXZlYWxJZHNB
bmRMYWJlbHMsIGNvbnN0IFN0cmluZyYgZGV2aWNlSURIYXNoU2FsdCk7CiAKQEAgLTEzNCw3ICsx
MzQsNyBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxSZWY8VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eT4+IG1fZ3JhbnRlZFJlcXVlc3RzOwogCiAgICAgc3RydWN0IERlbmllZFJlcXVlc3Qg
ewotICAgICAgICB1aW50NjRfdCBtYWluRnJhbWVJRDsKKyAgICAgICAgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIG1haW5GcmFtZUlEOwogICAgICAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4+IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luOwogICAgICAgICBSZWY8V2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4+IHRvcExldmVsRG9jdW1lbnRPcmlnaW47CiAgICAgICAgIGJvb2wgaXNBdWRpb0Rl
bmllZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKaW5kZXggNGYwMjg0MDZiYTRhNzc1MTY0NzA2NDc2
NzFmM2E5NTA4OGFmZjRhYi4uOTY2ZmRhZDVjZjBkZDA5Yjk4ZmY1NTYxMDNlMjA2YWExMTc1Yzk2
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJNZWRpYUlE
LCB1aW50NjRfdCBtYWluRnJhbWVJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVjdG9yPFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmlj
ZT4mJiB2aWRlb0RldmljZXMsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmIHJlcXVlc3Qp
CitVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiBtYW5hZ2Vy
LCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgRnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlELCBGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJN
ZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbiwgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgYXVkaW9E
ZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiB2aWRlb0RldmljZXMsIFdl
YkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmIHJlcXVlc3QpCiAgICAgOiBtX21hbmFnZXIoJm1h
bmFnZXIpCiAgICAgLCBtX3VzZXJNZWRpYUlEKHVzZXJNZWRpYUlEKQogICAgICwgbV9tYWluRnJh
bWVJRChtYWluRnJhbWVJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaAppbmRleCA1NDRmNjExNmVkYjY2MmE4
ZmE5NjMxYmMzYWY4YjcwZGVkYzU4MjdmLi5iYTRlMGEzNDcxNjAzMWIxOGYwODVjZmQwMWE3MzUx
Nzc4YTAzMDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCkBAIC0yMSw2ICsyMSw3IEBACiAKICNpbmNs
dWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NhcHR1cmVEZXZpY2UuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVk
aWFTdHJlYW1SZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMzUsNyArMzYsNyBAQCBjbGFzcyBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTsKIAogY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGUoVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRf
dCBtYWluRnJhbWVJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiB2aWRl
b0RldmljZXMsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmIHJlcXVlc3QpCisgICAgc3Rh
dGljIFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGUoVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJNZWRp
YUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiBhdWRpb0Rl
dmljZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgV2Vi
Q29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYgcmVxdWVzdCkKICAgICB7CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkobWFuYWdlciwg
dXNlck1lZGlhSUQsIG1haW5GcmFtZUlELCBmcmFtZUlELCBXVEZNb3ZlKHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSwgV1RGTW92ZShhdWRp
b0RldmljZXMpLCBXVEZNb3ZlKHZpZGVvRGV2aWNlcyksIFdURk1vdmUocmVxdWVzdCkpKTsKICAg
ICB9CkBAIC02NSw4ICs2Niw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEhhc1BlcnNpc3RlbnRB
Y2Nlc3MoKSB7IG1faGFzUGVyc2lzdGVudEFjY2VzcyA9IHRydWU7IH0KIAogICAgIHVpbnQ2NF90
IHVzZXJNZWRpYUlEKCkgY29uc3QgeyByZXR1cm4gbV91c2VyTWVkaWFJRDsgfQotICAgIHVpbnQ2
NF90IG1haW5GcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJhbWVJRDsgfQotICAgIHVp
bnQ2NF90IGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KKyAgICBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX21haW5GcmFt
ZUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQoKSBjb25zdCB7IHJl
dHVybiBtX2ZyYW1lSUQ7IH0KIAogICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZl
bERvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSB7IHJldHVybiBtX3RvcExldmVsRG9jdW1lbnRTZWN1
cml0eU9yaWdpbi5nZXQoKTsgfQogICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVk
aWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkgeyByZXR1cm4gbV91c2VyTWVkaWFEb2N1bWVudFNl
Y3VyaXR5T3JpZ2luLmdldCgpOyB9CkBAIC04NCwxMiArODUsMTIgQEAgcHVibGljOgogICAgIFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2UgdmlkZW9EZXZpY2UoKSBjb25zdCB7IHJldHVybiBtX2VsaWdp
YmxlVmlkZW9EZXZpY2VzLmlzRW1wdHkoKSA/IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgeyB9IDog
bV9lbGlnaWJsZVZpZGVvRGV2aWNlc1swXTsgfQogCiBwcml2YXRlOgotICAgIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkmLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgbWFpbkZyYW1lSUQsIHVpbnQ2NF90
IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRP
cmlnaW4sIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVj
dG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3JlOjpNZWRp
YVN0cmVhbVJlcXVlc3QmJik7CisgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYsIHVpbnQ2NF90IHVzZXJNZWRp
YUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbiwgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgYXVkaW9EZXZpY2VzLCBW
ZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiB2aWRlb0RldmljZXMsIFdlYkNvcmU6Ok1l
ZGlhU3RyZWFtUmVxdWVzdCYmKTsKIAogICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5KiBtX21hbmFnZXI7CiAgICAgdWludDY0X3QgbV91c2VyTWVkaWFJRDsKLSAgICB1
aW50NjRfdCBtX21haW5GcmFtZUlEOwotICAgIHVpbnQ2NF90IG1fZnJhbWVJRDsKKyAgICBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgbV9tYWluRnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgbV9mcmFtZUlEOwogICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gbV91
c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luOwogICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbj4gbV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW47CiAgICAgVmVjdG9yPFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U+IG1fZWxpZ2libGVWaWRlb0RldmljZXM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCmluZGV4IDA3MTRiNDFlYjY3NzY4ZDllMGM5
ZDQxMmUyMGU4OThmODFlNzNkZDguLmVlMzM3MTA4MTcwN2VhMzZkMzUwZWZlMmNjNWEwM2MxZDE5
MWRhNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCkBAIC00
NSw5ICs0NSw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBjbGFzcyBXZWJQYWdlUHJv
eHk7CiAKLVdlYkZyYW1lUHJveHk6OldlYkZyYW1lUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCB1
aW50NjRfdCBmcmFtZUlEKQorV2ViRnJhbWVQcm94eTo6V2ViRnJhbWVQcm94eShXZWJQYWdlUHJv
eHkmIHBhZ2UsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogICAgIDogbV9wYWdlKG1ha2VXZWFr
UHRyKHBhZ2UpKQotICAgICwgbV9pc0ZyYW1lU2V0KGZhbHNlKQogICAgICwgbV9mcmFtZUlEKGZy
YW1lSUQpCiB7CiAgICAgV2ViUHJvY2Vzc1Bvb2w6OnN0YXRpc3RpY3MoKS53a0ZyYW1lQ291bnQr
KzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaAppbmRleCA0NDYwMGYxYzI3
MjkwZTVlNGMxNjhlYThjZDNjYzM5NjM2ZmRiYmUxLi5jY2RhNjM3ODAwMmQ1NWFiMTU3YTZmMTUz
N2M1ZWY3OWRiNDVjMjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJG
cmFtZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5o
CkBAIC01OSwxNCArNTksMTQgQEAgc3RydWN0IFdlYnNpdGVQb2xpY2llc0RhdGE7CiAKIGNsYXNz
IFdlYkZyYW1lUHJveHkgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBl
OjpGcmFtZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViRnJhbWVQcm94eT4gY3JlYXRl
KFdlYlBhZ2VQcm94eSYgcGFnZSwgdWludDY0X3QgZnJhbWVJRCkKKyAgICBzdGF0aWMgUmVmPFdl
YkZyYW1lUHJveHk+IGNyZWF0ZShXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBmcmFtZUlEKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2Vi
RnJhbWVQcm94eShwYWdlLCBmcmFtZUlEKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+V2ViRnJh
bWVQcm94eSgpOwogCi0gICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJh
bWVJRDsgfQorICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKCkgY29uc3QgeyBy
ZXR1cm4gbV9mcmFtZUlEOyB9CiAgICAgV2ViUGFnZVByb3h5KiBwYWdlKCkgY29uc3QgeyByZXR1
cm4gbV9wYWdlLmdldCgpOyB9CiAKICAgICB2b2lkIHdlYlByb2Nlc3NXaWxsU2h1dERvd24oKTsK
QEAgLTEzMCw3ICsxMzAsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBXZWJG
cmFtZVByb3h5KFdlYlBhZ2VQcm94eSYsIHVpbnQ2NF90IGZyYW1lSUQpOworICAgIFdlYkZyYW1l
UHJveHkoV2ViUGFnZVByb3h5JiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKIAogICAgIFdl
YWtQdHI8V2ViUGFnZVByb3h5PiBtX3BhZ2U7CiAKQEAgLTEzOCwxMSArMTM4LDExIEBAIHByaXZh
dGU6CiAKICAgICBTdHJpbmcgbV9NSU1FVHlwZTsKICAgICBTdHJpbmcgbV90aXRsZTsKLSAgICBi
b29sIG1faXNGcmFtZVNldDsKKyAgICBib29sIG1faXNGcmFtZVNldCB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX2NvbnRhaW5zUGx1Z2luRG9jdW1lbnQgeyBmYWxzZSB9OwogICAgIFJlZlB0cjxXZWJD
ZXJ0aWZpY2F0ZUluZm8+IG1fY2VydGlmaWNhdGVJbmZvOwogICAgIFJlZlB0cjxXZWJGcmFtZVBv
bGljeUxpc3RlbmVyUHJveHk+IG1fYWN0aXZlTGlzdGVuZXI7Ci0gICAgdWludDY0X3QgbV9mcmFt
ZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX2ZyYW1lSUQ7CiAjaWYgRU5BQkxF
KENPTlRFTlRfRklMVEVSSU5HKQogICAgIFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFu
ZGxlciBtX2NvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMzI2MzFjNDUwZWIyNmQ3NTQ1NDY4Yjcy
NmMxNWE0NDk4NWM5OThhOS4uZDJmOWE4ODcwNTdiMGRjZDc5NDc4YjEwYjcwMDczYzZkODZjN2Ji
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC03NDMsNyAr
NzQzLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxhdW5jaFByb2Nlc3MoY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIHJlZ2lzdHJhYmxlRG9tYWluKQogICAgIGZpbmlzaEF0dGFjaGluZ1RvV2ViUHJv
Y2VzcyhJc1Byb2Nlc3NTd2FwOjpObyk7CiB9CiAKLWJvb2wgV2ViUGFnZVByb3h5OjpzdXNwZW5k
Q3VycmVudFBhZ2VJZlBvc3NpYmxlKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgT3B0aW9u
YWw8dWludDY0X3Q+IG1haW5GcmFtZUlELCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHBy
b2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJp
bmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSBzaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVy
aW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpCitib29sIFdlYlBhZ2VQcm94eTo6c3VzcGVu
ZEN1cnJlbnRQYWdlSWZQb3NzaWJsZShBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIE9wdGlv
bmFsPEZyYW1lSWRlbnRpZmllcj4gbWFpbkZyYW1lSUQsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlD
bGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgU2hvdWxkRGVsYXlDbG9zaW5nVW50
aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlIHNob3VsZERlbGF5Q2xvc2luZ1Vu
dGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSkKIHsKICAgICBtX2xhc3RTdXNw
ZW5kZWRQYWdlID0gbnVsbHB0cjsKIApAQCAtMjkzMSwxMiArMjkzMSwxMiBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6cmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb24gYWN0aW9uLCBBUEk6
Ok5hdmlnYXRpb24qCiAgICAgc2VuZGVyLT5zZW5kKGFjdGlvbiwgbmF2aWdhdGlvbiA/IG5hdmln
YXRpb24tPm5hdmlnYXRpb25JRCgpIDogMCwgZG93bmxvYWRJRCwgV1RGTW92ZSh3ZWJzaXRlUG9s
aWNpZXMpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZSh1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1l
TG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZv
LCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2Vj
dXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYgdXNl
ckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6Y29tbWl0UHJvdmlzaW9uYWxQYWdlKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1l
TG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZv
LCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2Vj
dXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYgdXNl
ckRhdGEpCiB7CiAgICAgQVNTRVJUKG1fcHJvdmlzaW9uYWxQYWdlKTsKICAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKExvYWRpbmcsICJjb21taXRQcm92aXNpb25hbFBhZ2U6IHByZXZpb3VzUElE
ID0gJWksIG5ld1BJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vz
c0lkZW50aWZpZXIoKSwgbV9wcm92aXNpb25hbFBhZ2UtPnByb2Nlc3MoKS5wcm9jZXNzSWRlbnRp
ZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBt
YWluRnJhbWVJREluUHJldmlvdXNQcm9jZXNzID0gbV9tYWluRnJhbWUgPyBtYWtlT3B0aW9uYWwo
bV9tYWluRnJhbWUtPmZyYW1lSUQoKSkgOiBXVEY6Om51bGxvcHQ7CisgICAgT3B0aW9uYWw8RnJh
bWVJZGVudGlmaWVyPiBtYWluRnJhbWVJREluUHJldmlvdXNQcm9jZXNzID0gbV9tYWluRnJhbWUg
PyBtYWtlT3B0aW9uYWwobV9tYWluRnJhbWUtPmZyYW1lSUQoKSkgOiBXVEY6Om51bGxvcHQ7CiAK
ICAgICBBU1NFUlQobV9wcm9jZXNzLnB0cigpICE9ICZtX3Byb3Zpc2lvbmFsUGFnZS0+cHJvY2Vz
cygpKTsKIApAQCAtMzY3Miw3ICszNjcyLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFT
Y3JpcHRJbk1haW5GcmFtZVNjcmlwdFdvcmxkKGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib28KICAg
ICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlJ1bkphdmFTY3JpcHRJbk1haW5G
cmFtZVNjcmlwdFdvcmxkKHNjcmlwdCwgZm9yY2VVc2VyR2VzdHVyZSwgd29ybGROYW1lLCBjYWxs
YmFja0lEKSwgbV9wYWdlSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlw
dEluRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9y
Y2VVc2VyR2VzdHVyZSwgV1RGOjpGdW5jdGlvbjx2b2lkKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZh
bHVlKiwgYm9vbCBoYWRFeGNlcHRpb24sIGNvbnN0IEV4Y2VwdGlvbkRldGFpbHMmLCBDYWxsYmFj
a0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQordm9pZCBXZWJQYWdlUHJveHk6OnJ1
bkphdmFTY3JpcHRJbkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcm
IHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBXVEY6OkZ1bmN0aW9uPHZvaWQoQVBJOjpT
ZXJpYWxpemVkU2NyaXB0VmFsdWUqLCBib29sIGhhZEV4Y2VwdGlvbiwgY29uc3QgRXhjZXB0aW9u
RGV0YWlscyYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCiB7CiAg
ICAgQVNTRVJUKG1haW5GcmFtZSgpLT5mcmFtZUlEKCkgIT0gZnJhbWVJRCk7CiAgICAgYXV0byBj
YWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0KFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIG1f
cHJvY2Vzcy0+dGhyb3R0bGVyKCkuYmFja2dyb3VuZEFjdGl2aXR5VG9rZW4oKSk7CkBAIC0zODc4
LDcgKzM4NzgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cHJlZmVyZW5jZXNEaWRDaGFuZ2UoKQog
ICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6UHJlZmVyZW5jZXNEaWRDaGFu
Z2UocHJlZmVyZW5jZXNTdG9yZSgpKSwgbV9wYWdlSUQsIHByaW50aW5nU2VuZE9wdGlvbnMobV9p
c1BlcmZvcm1pbmdET01QcmludE9wZXJhdGlvbikpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkQ3JlYXRlTWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkQ3JlYXRlTWFpbkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIC8vIFRo
ZSBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyBJUEMgaXMgc3luY2hyb25vdXMg
YW5kIG1heSB0aGVyZWZvcmUgZ2V0IHByb2Nlc3NlZCBiZWZvcmUgdGhlIERpZENyZWF0ZU1haW5G
cmFtZSBvbmUuCiAgICAgLy8gV2hlbiB0aGlzIGhhcHBlbnMsIGRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25TeW5jKCkgY2FsbHMgZGlkQ3JlYXRlTWFpbkZyYW1lKCkgYW5kIHdlIG5lZWQg
dG8gaWdub3JlIHRoZSBEaWRDcmVhdGVNYWluRnJhbWUKQEAgLTM4OTcsNyArMzg5Nyw3IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJRCkKICAg
ICBtX3Byb2Nlc3MtPmZyYW1lQ3JlYXRlZChmcmFtZUlELCAqbV9tYWluRnJhbWUpOwogfQogCi12
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRlU3ViZnJhbWUodWludDY0X3QgZnJhbWVJRCkKK3Zv
aWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVTdWJmcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwog
CkBAIC0zOTE3LDcgKzM5MTcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRlU3ViZnJh
bWUodWludDY0X3QgZnJhbWVJRCkKICAgICBtX3Byb2Nlc3MtPmZyYW1lQ3JlYXRlZChmcmFtZUlE
LCBzdWJGcmFtZS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVXaW5k
b3codWludDY0X3QgZnJhbWVJRCwgR2xvYmFsV2luZG93SWRlbnRpZmllciYmIHdpbmRvd0lkZW50
aWZpZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRlV2luZG93KEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBHbG9iYWxXaW5kb3dJZGVudGlmaWVyJiYgd2luZG93SWRlbnRpZmllcikKIHsK
IH0KIApAQCAtMzk4MSwxMiArMzk4MSwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGVzdHJv
eU5hdmlnYXRpb24odWludDY0X3QgbmF2aWdhdGlvbklEKQogICAgIG1fbmF2aWdhdGlvblN0YXRl
LT5kaWREZXN0cm95TmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIFVSTCYmIHVybCwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRh
JiB1c2VyRGF0YSkKIHsKICAgICBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVk
KG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgV1RGTW92ZSh1cmwp
LCBXVEZNb3ZlKHVucmVhY2hhYmxlVVJMKSwgdXNlckRhdGEpOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgVVJMJiYgdXJsLCBVUkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVT
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwsIFVSTCYmIHVucmVhY2hhYmxl
VVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3Rv
ciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDAwNSw4ICs0MDA1LDggQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJgogICAgIGlmIChmcmFtZS0+aXNNYWluRnJhbWUoKSAmJiBuYXZpZ2F0
aW9uSUQpCiAgICAgICAgIG5hdmlnYXRpb24gPSBuYXZpZ2F0aW9uU3RhdGUoKS5uYXZpZ2F0aW9u
KG5hdmlnYXRpb25JRCk7CiAKLSAgICBMT0coTG9hZGluZywgIldlYlBhZ2VQcm94eSAlIiBQUkl1
NjQgIiBpbiBwcm9jZXNzIHBpZCAlaSBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lIHRv
IGZyYW1lSUQgJSIgUFJJdTY0ICIsIG5hdmlnYXRpb25JRCAlIiBQUkl1NjQgIiwgdXJsICVzIiwg
bV9wYWdlSUQudG9VSW50NjQoKSwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgZnJhbWVJ
RCwgbmF2aWdhdGlvbklELCB1cmwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFt
ZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
LCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFt
ZUlEKTsKKyAgICBMT0coTG9hZGluZywgIldlYlBhZ2VQcm94eSAlIiBQUkl1NjQgIiBpbiBwcm9j
ZXNzIHBpZCAlaSBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lIHRvIGZyYW1lSUQgJSIg
UFJJdTY0ICIsIG5hdmlnYXRpb25JRCAlIiBQUkl1NjQgIiwgdXJsICVzIiwgbV9wYWdlSUQudG9V
SW50NjQoKSwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgZnJhbWVJRC50b1VJbnQ2NCgp
LCBuYXZpZ2F0aW9uSUQsIHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
OiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQs
IHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1l
SUQudG9VSW50NjQoKSk7CiAKICAgICBhdXRvIHRyYW5zYWN0aW9uID0gbV9wYWdlTG9hZFN0YXRl
LnRyYW5zYWN0aW9uKCk7CiAKQEAgLTQwMzEsNyArNDAzMSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYKICAgICAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRTdGFydFByb3Zpc2lvbmFsTmF2
aWdhdGlvbigqdGhpcywgbmF2aWdhdGlvbi5nZXQoKSwgcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxl
c1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkRXhwbGljaXRPcGVuRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgVVJMJiYgdXJs
KQordm9pZCBXZWJQYWdlUHJveHk6OmRpZEV4cGxpY2l0T3BlbkZvckZyYW1lKEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBVUkwmJiB1cmwpCiB7CiAgICAgYXV0byogZnJhbWUgPSBtX3Byb2Nlc3Mt
PndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBmcmFtZSk7
CkBAIC00MDUwLDE1ICs0MDUwLDE1IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRFeHBsaWNpdE9w
ZW5Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBVUkwmJiB1cmwpCiAgICAgbV9wYWdlTG9hZFN0
YXRlLmNvbW1pdENoYW5nZXMoKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVT
ZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3Qg
VXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJS
ZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0
IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQ
cm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlE
LCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUocmVxdWVzdCksIHVzZXJEYXRhKTsKIH0KIAotdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgdWludDY0X3QgZnJh
bWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBj
b25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNl
cnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nl
c3NQcm94eT4mJiBwcm9jZXNzLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBVc2VyRGF0YSYgdXNl
ckRhdGEpCiB7Ci0gICAgTE9HKExvYWRpbmcsICJXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2
ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lIHRvIGZyYW1lSUQgJSIgUFJJdTY0
ICIsIG5hdmlnYXRpb25JRCAlIiBQUkl1NjQgIiwgdXJsICVzIiwgZnJhbWVJRCwgbmF2aWdhdGlv
bklELCByZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZy
YW1lSUQgPSAlIiBQUkl1NjQsIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlE
LnRvVUludDY0KCksIGZyYW1lSUQpOworICAgIExPRyhMb2FkaW5nLCAiV2ViUGFnZVByb3h5Ojpk
aWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSB0byBmcmFt
ZUlEICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9uSUQgJSIgUFJJdTY0ICIsIHVybCAlcyIsIGZyYW1l
SUQudG9VSW50NjQoKSwgbmF2aWdhdGlvbklELCByZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0Zjgo
KS5kYXRhKCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZFJlY2Vp
dmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwg
cGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIHByb2Nlc3MtPnByb2Nl
c3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7
CiAKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBA
IC00MDg1LDkgKzQwODUsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJl
ZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPAogICAgICAgICBtX25h
dmlnYXRpb25DbGllbnQtPmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTmF2
aWdhdGlvbigqdGhpcywgbmF2aWdhdGlvbi5nZXQoKSwgcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxl
c1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFN0cmluZyYgdXJsLCBkb3VibGUgZGVsYXksIFdlYkNvcmU6OkxvY2tCYWNrRm9yd2Fy
ZExpc3QpCit2b2lkIFdlYlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZy
YW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHVybCwgZG91YmxlIGRl
bGF5LCBXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0KQogewotICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoTG9hZGluZywgIndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZTogd2Vi
UElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3By
b2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQp
OworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgIndpbGxQZXJmb3JtQ2xpZW50
UmVkaXJlY3RGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlE
LnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAKICAgICBQYWdlQ2xpZW50UHJvdGVj
dG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00MDk4LDkgKzQwOTgsOSBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFN0cgogICAgICAgICBtX25hdmlnYXRpb25DbGllbnQtPndpbGxQZXJm
b3JtQ2xpZW50UmVkaXJlY3QoKnRoaXMsIHVybCwgZGVsYXkpOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQor
dm9pZCBXZWJQYWdlUHJveHk6OmRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUoRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5n
LCAiZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9
ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVu
dGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQpOworICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoTG9hZGluZywgImRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWU6IHdl
YlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9w
cm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlE
LnRvVUludDY0KCkpOwogCiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNs
aWVudCgpKTsKIApAQCAtNDExMSwxMiArNDExMSwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
Q2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQogICAgICAgICBt
X25hdmlnYXRpb25DbGllbnQtPmRpZENhbmNlbENsaWVudFJlZGlyZWN0KCp0aGlzKTsKIH0KIAot
dm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwpCit2b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwpCiB7CiAgICAgZGlkQ2hh
bmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFt
ZUlELCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUodXJsKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5
OjpkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYgcHJvY2VzcywgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QsIFVSTCYmIHVybCkKK3Zv
aWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVp
bnQ2NF90LCBVUkwmJiB1cmwpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3Io
cGFnZUNsaWVudCgpKTsKIApAQCAtNDEzNSw3ICs0MTM1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94
eT4mJgogICAgIGZyYW1lLT5kaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExv
YWQodXJsKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1l
U2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92
aXNpb25hbFVSTCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFdpbGxDb250aW51ZUxvYWRp
bmcgd2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBX
ZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2lu
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNv
bnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250aW51
ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBpZiAobV9wcm92aXNp
b25hbFBhZ2UgJiYgbV9wcm92aXNpb25hbFBhZ2UtPm5hdmlnYXRpb25JRCgpID09IG5hdmlnYXRp
b25JRCkgewogICAgICAgICAvLyBUaGUgbG9hZCBkaWQgbm90IGZhaWwsIGl0IGlzIG1lcmVseSBo
YXBwZW5pbmcgaW4gYSBuZXcgcHJvdmlzaW9uYWwgcHJvY2Vzcy4KQEAgLTQxNDUsMTAgKzQxNDUs
MTAgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cmkKICAgICBkaWRGYWlsUHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0
eU9yaWdpbiwgbmF2aWdhdGlvbklELCBwcm92aXNpb25hbFVSTCwgZXJyb3IsIHdpbGxDb250aW51
ZUxvYWRpbmcsIHVzZXJEYXRhKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92
aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3Ms
IHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0
eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFs
VVJMLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgV2lsbENvbnRpbnVlTG9hZGluZyB3aWxs
Q29udGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5
T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBj
b25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwg
V2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYg
dXNlckRhdGEpCiB7CiAgICAgTE9HKExvYWRpbmcsICIoTG9hZGluZykgV2ViUGFnZVByb3h5ICUi
IFBSSXU2NCAiIGluIHdlYiBwcm9jZXNzIHBpZCAlaSBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWUgdG8gcHJvdmlzaW9uYWxVUkwgJXMiLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBwcm9jZXNz
LT5wcm9jZXNzSWRlbnRpZmllcigpLCBwcm92aXNpb25hbFVSTC51dGY4KCkuZGF0YSgpKTsKLSAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3MsICJkaWRGYWlsUHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCAiLCBkb21haW4gPSAlcywgY29kZSA9ICVkIiwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50
aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCwgZXJyb3IuZG9tYWluKCkudXRm
OCgpLmRhdGEoKSwgZXJyb3IuZXJyb3JDb2RlKCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoUHJvY2VzcywgImRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZTogd2ViUElEID0gJWks
IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIGRvbWFpbiA9ICVz
LCBjb2RlID0gJWQiLCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJ
bnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCksIGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCks
IGVycm9yLmVycm9yQ29kZSgpKTsKIAogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9y
KHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQyMjQsMTEgKzQyMjQsMTEgQEAgc3RhdGljIE9wdGlvblNl
dDxDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyOjpGbGFnPiBjaGVja0lmTmF2aWdhdGlv
bkNvbnRhaW4KIH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMy
X3Qgb3BhcXVlRnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiBj
ZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8SGFz
SW5zZWN1cmVDb250ZW50PiBoYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJiB1c2Vy
RGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUoRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3Qgb3BhcXVl
RnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0
ZUluZm8sIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8SGFzSW5zZWN1cmVD
b250ZW50PiBoYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsK
ICAgICBMT0coTG9hZGluZywgIihMb2FkaW5nKSBXZWJQYWdlUHJveHkgJSIgUFJJdTY0ICIgZGlk
Q29tbWl0TG9hZEZvckZyYW1lIGluIG5hdmlnYXRpb24gJSIgUFJJdTY0LCBtX3BhZ2VJRC50b1VJ
bnQ2NCgpLCBuYXZpZ2F0aW9uSUQpOwogICAgIExPRyhCYWNrRm9yd2FyZCwgIihCYWNrL0Zvcndh
cmQpIEFmdGVyIGxvYWQgY29tbWl0LCBiYWNrL2ZvcndhcmQgbGlzdCBpcyBub3c6JXMiLCBtX2Jh
Y2tGb3J3YXJkTGlzdC0+bG9nZ2luZ1N0cmluZygpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKExvYWRpbmcsICJkaWRDb21taXRMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRl
bnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRDb21taXRMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVp
LCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5w
cm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0
KCkpOwogCiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsK
IApAQCAtNDMzOCw5ICs0MzM4LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQKICNlbmRpZgog
fQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBVc2VyRGF0YSYgdXNl
ckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgVXNl
ckRhdGEmIHVzZXJEYXRhKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywg
ImRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZp
ZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRChMb2FkaW5nLCAiZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWU6IHdlYlBJRCA9
ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNz
LT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUlu
dDY0KCkpOwogCiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgp
KTsKIApAQCAtNDM2MSwxMCArNDM2MSwxMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNo
RG9jdW1lbnRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aQogICAg
ICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRpZEZpbmlzaERvY3VtZW50TG9hZCgqdGhpcywgbmF2
aWdhdGlvbi5nZXQoKSwgbV9wcm9jZXNzLT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJE
YXRhLm9iamVjdCgpKS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hM
b2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25z
dCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZEZv
ckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBMT0coTG9hZGluZywgIldlYlBhZ2VQcm94
eTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lIC0gV2ViUGFnZVByb3h5ICVwIHdpdGggbmF2aWdhdGlv
bklEICUiIFBSSXU2NCAiIGRpZEZpbmlzaExvYWQiLCB0aGlzLCBuYXZpZ2F0aW9uSUQpOwotICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZEZpbmlzaExvYWRGb3JGcmFtZTog
d2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBt
X3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1l
SUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZEZpbmlzaExvYWRG
b3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0
KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3Rl
Y3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00NDA3LDkgKzQ0MDcsOSBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRAogICAgIG1faXNMb2FkaW5nQWx0ZXJuYXRlSFRNTFN0cmluZ0ZvckZhaWxpbmdQ
cm92aXNpb25hbExvYWQgPSBmYWxzZTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxM
b2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25z
dCBSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBX
ZWJQYWdlUHJveHk6OmRpZEZhaWxMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0
IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRp
bmcsICJkaWRGYWlsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgZG9tYWluID0gJXMsIGNvZGUgPSAlZCIsIG1fcHJv
Y2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCwg
ZXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSwgZXJyb3IuZXJyb3JDb2RlKCkpOworICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZEZhaWxMb2FkRm9yRnJhbWU6IHdlYlBJ
RCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBkb21h
aW4gPSAlcywgY29kZSA9ICVkIiwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3Bh
Z2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCksIGVycm9yLmRvbWFpbigpLnV0Zjgo
KS5kYXRhKCksIGVycm9yLmVycm9yQ29kZSgpKTsKIAogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3Ig
cHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQ0NDksOSArNDQ0OSw5IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwKICAgICB9CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRTYW1lRG9j
dW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdh
dGlvbklELCB1aW50MzJfdCBvcGFxdWVTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgVVJMJiYg
dXJsLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU2Ft
ZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQzMl90IG9wYXF1ZVNhbWVEb2N1bWVudE5hdmlnYXRpb25U
eXBlLCBVUkwmJiB1cmwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKLSAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJh
bWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2
NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBm
cmFtZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRTYW1lRG9j
dW1lbnROYXZpZ2F0aW9uRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBt
X3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCkpOwogCiAgICAgUGFnZUNsaWVu
dFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDQ4OCw3ICs0NDg4LDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdAogICAgICAgICBwYWdlQ2xpZW50KCkuZGlkU2FtZURv
Y3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShuYXZpZ2F0aW9uVHlwZSk7CiB9CiAKLXZvaWQg
V2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VNYWluRG9jdW1lbnQodWludDY0X3QgZnJhbWVJRCkKK3Zv
aWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VNYWluRG9jdW1lbnQoRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBpZiAobV91c2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpCkBAIC00NTA3LDcgKzQ1MDcsNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6dmlld0lzQmVjb21pbmdWaXNpYmxlKCkKICNlbmRpZgogfQogCi12b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
U3RyaW5nJiB0aXRsZSwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJv
eHk6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25z
dCBTdHJpbmcmIHRpdGxlLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgUGFnZUNs
aWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDUyOSwxMSArNDUy
OSwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRsZQogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRGaXJzdExheW91dEZvckZyYW1lKHVpbnQ2NF90LCBjb25zdCBVc2VyRGF0YSYg
dXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmlyc3RMYXlvdXRGb3JGcmFtZShGcmFt
ZUlkZW50aWZpZXIsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKIH0KIAotdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0
b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQ1NjQsNyArNDU2NCw3IEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpkaWRSZWFjaExheW91dE1pbGVzdG9uZShPcHRpb25TZXQ8V2ViQ29yZTo6
TGF5b3V0TWlsZXN0b25lPiBsCiAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5yZW5kZXJpbmdQcm9n
cmVzc0RpZENoYW5nZSgqdGhpcywgbGF5b3V0TWlsZXN0b25lcyk7CiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZERpc3Bs
YXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3Qg
VXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9y
KHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQ1NzgsNyArNDU3OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgVXNlCiAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWREaXNwbGF5SW5zZWN1cmVDb250ZW50
KCp0aGlzLCBtX3Byb2Nlc3MtPnRyYW5zZm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2Jq
ZWN0KCkpLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJ1bkluc2VjdXJlQ29u
dGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkK
K3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VD
bGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQ1OTIsNyArNDU5
Miw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBVc2VyRGF0CiAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5k
aWRSdW5JbnNlY3VyZUNvbnRlbnQoKnRoaXMsIG1fcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1Rv
T2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkRGV0ZWN0WFNTRm9yRnJhbWUodWludDY0X3QsIGNvbnN0IFVzZXJEYXRhJikKK3ZvaWQg
V2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIsIGNvbnN0
IFVzZXJEYXRhJikKIHsKIH0KIApAQCAtNDYwMSw3ICs0NjAxLDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6Om1haW5GcmFtZVBsdWdpbkhhbmRsZXNQYWdlU2NhbGVHZXN0dXJlRGlkQ2hhbmdlKGJvb2wg
bWFpbkZyYW0KICAgICBtX21haW5GcmFtZVBsdWdpbkhhbmRsZXNQYWdlU2NhbGVHZXN0dXJlID0g
bWFpbkZyYW1lUGx1Z2luSGFuZGxlc1BhZ2VTY2FsZUdlc3R1cmU7CiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpmcmFtZURpZEJlY29tZUZyYW1lU2V0KHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgdmFs
dWUpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZnJhbWVEaWRCZWNvbWVGcmFtZVNldChGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgYm9vbCB2YWx1ZSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHBy
b3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00NjIwLDcgKzQ2MjAsNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6YmVnaW5TYWZlQnJvd3NpbmdDaGVjayhjb25zdCBVUkwmLCBib29sLCBXZWJGcmFt
ZVBvbGljeUxpc3RlbgogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmModWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlm
aWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwKK3ZvaWQgV2ViUGFnZVByb3h5
OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4s
IFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
CiAgICAgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJ
bmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
PiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmln
aW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsCiAgICAgSVBD
OjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCB1aW50NjRf
dCBsaXN0ZW5lcklEKQogewpAQCAtNDYyOCw3ICs0NjI4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyh1aW50NjRfdCBmcmFtZUlELCBX
ZWJDb3IKICAgICAgICAgV1RGTW92ZShmcmFtZUluZm9EYXRhKSwgb3JpZ2luYXRpbmdQYWdlSUQs
IG9yaWdpbmFsUmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZXF1ZXN0Qm9keSks
IFdURk1vdmUocmVkaXJlY3RSZXNwb25zZSksIHVzZXJEYXRhLCBsaXN0ZW5lcklEKTsKIH0KIAot
dm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1No
YXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90IGZyYW1lSUQsIFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sCit2b2lkIFdl
YlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sCiAgICAgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJ
bmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
PiBvcmlnaW5hdGluZ1BhZ2VJRCwKICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgSVBD
OjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiYgcmVkaXJlY3RSZXNwb25zZSwKICAgICBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIHVp
bnQ2NF90IGxpc3RlbmVySUQpCkBAIC00NzY5LDcgKzQ3NjksNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
IHByb2NlcwogICAgICAgICBiZWdpblNhZmVCcm93c2luZ0NoZWNrKHJlcXVlc3QudXJsKCksIGZy
YW1lLmlzTWFpbkZyYW1lKCksIGxpc3RlbmVyKTsKIAogICAgIEFQSTo6TmF2aWdhdGlvbiogbWFp
bkZyYW1lTmF2aWdhdGlvbiA9IGZyYW1lLmlzTWFpbkZyYW1lKCkgPyBuYXZpZ2F0aW9uLmdldCgp
IDogbnVsbHB0cjsKLSAgICBXZWJGcmFtZVByb3h5KiBvcmlnaW5hdGluZ0ZyYW1lID0gcHJvY2Vz
cy0+d2ViRnJhbWUob3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLmZyYW1lSUQpOworICAgIFdlYkZy
YW1lUHJveHkqIG9yaWdpbmF0aW5nRnJhbWUgPSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEuZnJh
bWVJRCA/IHByb2Nlc3MtPndlYkZyYW1lKCpvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEuZnJhbWVJ
RCkgOiBudWxscHRyOwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAg
ICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlID0gd2Vic2l0ZURhdGFTdG9y
ZSgpLnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKQEAgLTQ4NTgsNyArNDg1OCw3IEBAIHZvaWQg
V2ViUGFnZVByb3h5Ojpsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgV2ViRnJhbWVQcm94eSYgZnJh
bWUsIGNvbnN0IFVSTCYgcGFnCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNN
YWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmln
aW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAordm9pZCBXZWJQYWdlUHJveHk6
OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFt
ZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKICAgICB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFj
dGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxQYWdlSWRl
bnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsCiAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVl
c3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsCiAgICAgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uU3luYzo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCkBAIC00ODc2LDcgKzQ4NzYsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmModWludDY0
X3QgZnJhbWVJRCwgYm9vbCBpcwogICAgICAgICBXVEZNb3ZlKGZyYW1lSW5mb0RhdGEpLCBvcmln
aW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3Zl
KHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNlckRhdGEsIFdURk1v
dmUocmVwbHkpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgdWlu
dDY0X3QgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZp
ZXIsCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5
bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYg
ZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCiAg
ICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRp
b25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8UGFn
ZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELAogICAgIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiBy
ZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLAogICAgIGNvbnN0IFVzZXJEYXRhJiB1
c2VyRGF0YSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQpAQCAtNDg5Myw3ICs0ODkzLDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHkKICAgICBzZW5kZXItPnNlbmQoUG9saWN5QWN0aW9uOjpV
c2UsIG5hdmlnYXRpb25JRCwgRG93bmxvYWRJRCgpLCBXVEY6Om51bGxvcHQpOwogfQogCi12b2lk
IFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9s
aWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBT
ZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRp
ZmllciBpZGVudGlmaWVyLAogICAgIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFj
dGlvbkRhdGEsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgZnJhbWVO
YW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAg
ICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKQEAgLTQ5MzEs
MTMgKzQ5MzEsMTMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5ld1dpbmRv
d0FjdGlvbih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cmkKICAgICAgICAgCiB9CiAKLXZv
aWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNo
ZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGlj
eUZvclJlc3BvbnNlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdp
bkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlm
aWVyLAogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlN
RVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVy
SUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBkZWNpZGVQb2xpY3lGb3JSZXNw
b25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBmcmFtZVNlY3VyaXR5T3Jp
Z2luLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93
TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRlLCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7CiB9CiAK
LXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5
T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlk
ZW50aWZpZXIsCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFy
ZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lD
aGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmli
dXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAg
ICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKQEAgLTQ5NzEs
NyArNDk3MSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNo
YXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsCiAgICAgfQogfQogCi12b2lkIFdl
YlBhZ2VQcm94eTo6dW5hYmxlVG9JbXBsZW1lbnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQg
V2ViUGFnZVByb3h5Ojp1bmFibGVUb0ltcGxlbWVudFBvbGljeShGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0
YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwog
CkBAIC00OTg1LDcgKzQ5ODUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dW5hYmxlVG9JbXBsZW1l
bnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VFcnJvcgogCiAvLyBGb3Jt
Q2xpZW50CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsU3VibWl0Rm9ybSh1aW50NjRfdCBmcmFt
ZUlELCB1aW50NjRfdCBzb3VyY2VGcmFtZUlELCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0cmlu
ZywgU3RyaW5nPj4mIHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3Qg
VXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OndpbGxTdWJtaXRGb3JtKEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFtZUlkZW50aWZpZXIgc291cmNlRnJhbWVJRCwgY29u
c3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+JiB0ZXh0RmllbGRWYWx1ZXMsIHVp
bnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBXZWJG
cmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVT
U0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKQEAgLTUwMDMsMTIgKzUwMDMsMTIgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OmNvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlvbihVUkwmJiB1cmwsIENv
bnRlbnRSdWxlTGlzdFJlc3VsdHMKICAgICBtX25hdmlnYXRpb25DbGllbnQtPmNvbnRlbnRSdWxl
TGlzdE5vdGlmaWNhdGlvbigqdGhpcywgV1RGTW92ZSh1cmwpLCBXVEZNb3ZlKHJlc3VsdHMpKTsK
IH0KICAgICAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0
YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiBzdG9yZSwgdWludDY0X3QgZnJhbWVJRCkg
Cit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29uc3Qg
V2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYgc3RvcmUsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQog
ewogICAgIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKG1fcHJvY2Vzcy5jb3B5
UmVmKCksIHN0b3JlLCBmcmFtZUlEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZE5hdmln
YXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vz
cywgY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYgc3RvcmUsIHVpbnQ2NF90IGZyYW1lSUQp
Cit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQo
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0
b3JlJiBzdG9yZSwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQ6
IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQsIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlm
aWVyKCksIG1fcGFnZUlELnRvVUludDY0KCkpOwogCkBAIC01MDIzLDE0ICs1MDIzLDE0IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YVNoYXJlZChSZWY8
V2ViUHJvY2Vzc1Byb3h5PiYmIHByCiAgICAgcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5oaXN0b3J5
Q2xpZW50KCkuZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEocHJvY2Vzcy0+cHJvY2Vzc1Bv
b2woKSwgKnRoaXMsIHN0b3JlLCAqZnJhbWUpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
UGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25z
dCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBX
ZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkKG1f
cHJvY2Vzcy5jb3B5UmVmKCksIHNvdXJjZVVSTFN0cmluZywgZGVzdGluYXRpb25VUkxTdHJpbmcs
IGZyYW1lSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGly
ZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgY29uc3QgU3RyaW5nJiBz
b3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2
NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0
U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIEZyYW1lSWRl
bnRpZmllciBmcmFtZUlEKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywg
ImRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZDogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmll
cigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKExvYWRpbmcsICJkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQ6IHdlYlBJRCA9
ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgcHJvY2Vzcy0+
cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2
NCgpKTsKIAogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7
CiAKQEAgLTUwNTAsMTIgKzUwNTAsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1D
bGllbnRSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MKICAgICBw
cm9jZXNzLT5wcm9jZXNzUG9vbCgpLmhpc3RvcnlDbGllbnQoKS5kaWRQZXJmb3JtQ2xpZW50UmVk
aXJlY3QocHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKSwgKnRoaXMsIHNvdXJjZVVSTFN0cmluZywgZGVz
dGluYXRpb25VUkxTdHJpbmcsICpmcmFtZSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRQ
ZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0
IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNl
VVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCkKIHsKICAgICBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQobV9w
cm9jZXNzLmNvcHlSZWYoKSwgc291cmNlVVJMU3RyaW5nLCBkZXN0aW5hdGlvblVSTFN0cmluZywg
ZnJhbWVJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJl
Y3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBjb25zdCBTdHJpbmcmIHNv
dXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0
X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RT
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAi
ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0OiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0
LCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpKTsKIApA
QCAtNTA3Niw3ICs1MDc2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1TZXJ2ZXJS
ZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MKICAgICBwcm9jZXNz
LT5wcm9jZXNzUG9vbCgpLmhpc3RvcnlDbGllbnQoKS5kaWRQZXJmb3JtU2VydmVyUmVkaXJlY3Qo
cHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKSwgKnRoaXMsIHNvdXJjZVVSTFN0cmluZywgZGVzdGluYXRp
b25VUkxTdHJpbmcsICpmcmFtZSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRVcGRhdGVI
aXN0b3J5VGl0bGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIHVpbnQ2
NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkVXBkYXRlSGlzdG9yeVRpdGxlKGNv
bnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgdXJsLCBGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkp
OwogCkBAIC01MTA3LDggKzUxMDcsMTAgQEAgc3RhdGljIHZvaWQgdHJ5U09BdXRob3JpemF0aW9u
KFJlZjxBUEk6Ok5hdmlnYXRpb25BY3Rpb24+JiYgbmF2aWdhdGlvbkFjdGlvbiwgV2UKIAogdm9p
ZCBXZWJQYWdlUHJveHk6OmNyZWF0ZU5ld1BhZ2UoY29uc3QgRnJhbWVJbmZvRGF0YSYgb3JpZ2lu
YXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQ
YWdlSUQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFdpbmRvd0ZlYXR1cmVzJiYgd2luZG93
RmVhdHVyZXMsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZU5ld1BhZ2U6OkRlbGF5ZWRSZXBseSYmIHJlcGx5
KQogewotICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBtX3Byb2Nlc3MtPndlYkZyYW1lKG9y
aWdpbmF0aW5nRnJhbWVJbmZvRGF0YS5mcmFtZUlEKSk7Ci0gICAgYXV0byBvcmlnaW5hdGluZ0Zy
YW1lSW5mbyA9IEFQSTo6RnJhbWVJbmZvOjpjcmVhdGUob3JpZ2luYXRpbmdGcmFtZUluZm9EYXRh
LCBvcmlnaW5hdGluZ1BhZ2VJRCA/IG1fcHJvY2Vzcy0+d2ViUGFnZSgqb3JpZ2luYXRpbmdQYWdl
SUQpIDogbnVsbHB0cik7CisgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIG9yaWdpbmF0aW5n
RnJhbWVJbmZvRGF0YS5mcmFtZUlEKTsKKyAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgbV9w
cm9jZXNzLT53ZWJGcmFtZSgqb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLmZyYW1lSUQpKTsKKwor
ICAgIGF1dG8gb3JpZ2luYXRpbmdGcmFtZUluZm8gPSBBUEk6OkZyYW1lSW5mbzo6Y3JlYXRlKG9y
aWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgbV9wcm9jZXNzLT53ZWJQYWdlKCpvcmlnaW5hdGluZ1Bh
Z2VJRCkpOwogICAgIGF1dG8gbWFpbkZyYW1lVVJMID0gbV9tYWluRnJhbWUgPyBtX21haW5GcmFt
ZS0+dXJsKCkgOiBVUkwoKTsKICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbWFpbkZyYW1lVVJMLCByZXF1ZXN0LCByZXBs
eSA9IFdURk1vdmUocmVwbHkpXSAoUmVmUHRyPFdlYlBhZ2VQcm94eT4gbmV3UGFnZSkgbXV0YWJs
ZSB7CiAgICAgICAgIGlmICghbmV3UGFnZSkgewpAQCAtNTE3OCw3ICs1MTgwLDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmNsb3NlUGFnZShib29sIHN0b3BSZXNwb25zaXZlbmVzc1RpbWVyKQogICAg
IG1fdWlDbGllbnQtPmNsb3NlKHRoaXMpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2
YVNjcmlwdEFsZXJ0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYg
c2VjdXJpdHlPcmlnaW4sIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6UnVuSmF2YVNjcmlwdEFsZXJ0OjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNv
bnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdEFsZXJ0OjpEZWxheWVk
UmVwbHkmJiByZXBseSkKIHsKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+
d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsK
QEAgLTUxOTcsNyArNTE5OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0QWxl
cnQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhCiAgICAgbV91aUNs
aWVudC0+cnVuSmF2YVNjcmlwdEFsZXJ0KHRoaXMsIG1lc3NhZ2UsIGZyYW1lLCBzZWN1cml0eU9y
aWdpbiwgV1RGTW92ZShyZXBseSkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNj
cmlwdENvbmZpcm0odWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBz
ZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybTo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit2b2lkIFdl
YlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENvbmZpcm06OkRl
bGF5ZWRSZXBseSYmIHJlcGx5KQogewogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9j
ZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJh
bWUpOwpAQCAtNTIxNyw3ICs1MjE5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3Jp
cHRDb25maXJtKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGEKICAgICBt
X3VpQ2xpZW50LT5ydW5KYXZhU2NyaXB0Q29uZmlybSh0aGlzLCBtZXNzYWdlLCBmcmFtZSwgc2Vj
dXJpdHlPcmlnaW4sIFdURk1vdmUocmVwbHkpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJ1
bkphdmFTY3JpcHRQcm9tcHQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5E
YXRhJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcm
IGRlZmF1bHRWYWx1ZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21w
dDo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit2b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlw
dFByb21wdChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRh
JiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRl
ZmF1bHRWYWx1ZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdDo6
RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7CiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3By
b2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBm
cmFtZSk7CkBAIC01Mzc2LDcgKzUzNzgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cm9vdFZpZXdU
b0FjY2Vzc2liaWxpdHlTY3JlZW4oY29uc3QgSW50UmVjdCYgdmlld1JlY3QsIENvbXBsZQogICAg
IGNvbXBsZXRpb25IYW5kbGVyKHBhZ2VDbGllbnQoKS5yb290Vmlld1RvQWNjZXNzaWJpbGl0eVNj
cmVlbih2aWV3UmVjdCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cnVuQmVmb3JlVW5sb2Fk
Q29uZmlybVBhbmVsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYg
c2VjdXJpdHlPcmlnaW4sIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6UnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsOjpEZWxheWVkUmVwbHkmJiByZXBseSkK
K3ZvaWQgV2ViUGFnZVByb3h5OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4s
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuQmVmb3Jl
VW5sb2FkQ29uZmlybVBhbmVsOjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsKICAgICBXZWJGcmFt
ZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FH
RV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKQEAgLTU0MTYsNyArNTQxOCw3IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpwYWdlRGlkU2Nyb2xsKCkKICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQcm94
eTo6cnVuT3BlblBhbmVsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0
YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgY29uc3QgRmlsZUNob29zZXJTZXR0aW5ncyYgc2V0dGlu
Z3MpCit2b2lkIFdlYlBhZ2VQcm94eTo6cnVuT3BlblBhbmVsKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIGNvbnN0
IEZpbGVDaG9vc2VyU2V0dGluZ3MmIHNldHRpbmdzKQogewogICAgIGlmIChtX29wZW5QYW5lbFJl
c3VsdExpc3RlbmVyKSB7CiAgICAgICAgIG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXItPmludmFs
aWRhdGUoKTsKQEAgLTU0NTUsNyArNTQ1Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzaG93U2hh
cmVTaGVldChjb25zdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMJiBzaGFyZURhdGEsIFNoYXJlCiAg
ICAgcGFnZUNsaWVudCgpLnNob3dTaGFyZVNoZWV0KHNoYXJlRGF0YSwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOwogfQogICAgIAotdm9pZCBXZWJQYWdlUHJveHk6OnByaW50RnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQordm9pZCBXZWJQYWdlUHJveHk6OnByaW50RnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBBU1NFUlQoIW1faXNQZXJmb3JtaW5nRE9NUHJpbnRPcGVyYXRpb24pOwogICAgIG1faXNQZXJm
b3JtaW5nRE9NUHJpbnRPcGVyYXRpb24gPSB0cnVlOwpAQCAtNjc2OSwyNyArNjc3MSwyNyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6cHJpbnRGaW5pc2hlZENhbGxiYWNrKGNvbnN0IFJlc291cmNlRXJy
b3ImIHByaW50RXJyb3IsIENhbGxiYQogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpm
b2N1c2VkRnJhbWVDaGFuZ2VkKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6
Zm9jdXNlZEZyYW1lQ2hhbmdlZChjb25zdCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+JiBmcmFt
ZUlEKQogewogICAgIGlmICghZnJhbWVJRCkgewogICAgICAgICBtX2ZvY3VzZWRGcmFtZSA9IG51
bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBXZWJGcmFtZVByb3h5KiBmcmFt
ZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CisgICAgV2ViRnJhbWVQcm94eSogZnJh
bWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKCpmcmFtZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKG1f
cHJvY2VzcywgZnJhbWUpOwogCiAgICAgbV9mb2N1c2VkRnJhbWUgPSBmcmFtZTsKIH0KIAotdm9p
ZCBXZWJQYWdlUHJveHk6OmZyYW1lU2V0TGFyZ2VzdEZyYW1lQ2hhbmdlZCh1aW50NjRfdCBmcmFt
ZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmZyYW1lU2V0TGFyZ2VzdEZyYW1lQ2hhbmdlZChjb25z
dCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+JiBmcmFtZUlEKQogewogICAgIGlmICghZnJhbWVJ
RCkgewogICAgICAgICBtX2ZyYW1lU2V0TGFyZ2VzdEZyYW1lID0gbnVsbHB0cjsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53
ZWJGcmFtZShmcmFtZUlEKTsKKyAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+
d2ViRnJhbWUoKmZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBmcmFtZSk7
CiAKICAgICBtX2ZyYW1lU2V0TGFyZ2VzdEZyYW1lID0gZnJhbWU7CkBAIC03MzQ1LDI2ICs3MzQ3
LDI2IEBAIFdlYWtQdHI8U2VjS2V5UHJveHlTdG9yZT4gV2ViUGFnZVByb3h5OjpzZWNLZXlQcm94
eVN0b3JlKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAg
ICAgCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
UHJveHkodWludDY0X3QsIFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmIGF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZVByb3h5KEZyYW1lSWRlbnRpZmllciwgUmVmPEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlUHJveHk+JiYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpCiB7CiAgICAgbV9uYXZp
Z2F0aW9uQ2xpZW50LT5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKnRoaXMsIGF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmV4
Y2VlZGVkRGF0YWJhc2VRdW90YSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdp
bklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRp
c3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5V
c2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNh
Z2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkV4Y2VlZGVkRGF0YWJhc2VRdW90YTo6RGVsYXll
ZFJlcGx5JiYgcmVwbHkpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZXhjZWVkZWREYXRhYmFzZVF1b3Rh
KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1
aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0
X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkV4Y2VlZGVkRGF0YWJhc2VRdW90YTo6RGVsYXllZFJlcGx5JiYgcmVw
bHkpCiB7CiAgICAgcmVxdWVzdFN0b3JhZ2VTcGFjZShmcmFtZUlELCBvcmlnaW5JZGVudGlmaWVy
LCBkYXRhYmFzZU5hbWUsIGRpc3BsYXlOYW1lLCBjdXJyZW50UXVvdGEsIGN1cnJlbnRPcmlnaW5V
c2FnZSwgY3VycmVudERhdGFiYXNlVXNhZ2UsIGV4cGVjdGVkVXNhZ2UsIFtyZXBseSA9IFdURk1v
dmUocmVwbHkpXShhdXRvIHF1b3RhKSBtdXRhYmxlIHsKICAgICAgICAgcmVwbHkocXVvdGEpOwog
ICAgIH0pOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFN0b3JhZ2VTcGFjZSh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJy
ZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERh
dGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQodWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6OnJl
cXVlc3RTdG9yYWdlU3BhY2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYg
b3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmlu
ZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9y
aWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0
ZWRVc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChTdG9yYWdlLCAicmVxdWVzdFN0
b3JhZ2VTcGFjZSBmb3IgZnJhbWUgJSIgUFJJdTY0ICIsIGN1cnJlbnQgcXVvdGEgJSIgUFJJdTY0
ICIgY3VycmVudCB1c2FnZSAlIiBQUkl1NjQgIiBleHBlY3RlZCB1c2FnZSAlIiBQUkl1NjQsIGZy
YW1lSUQsIGN1cnJlbnRRdW90YSwgY3VycmVudERhdGFiYXNlVXNhZ2UsIGV4cGVjdGVkVXNhZ2Up
OworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoU3RvcmFnZSwgInJlcXVlc3RTdG9yYWdlU3Bh
Y2UgZm9yIGZyYW1lICUiIFBSSXU2NCAiLCBjdXJyZW50IHF1b3RhICUiIFBSSXU2NCAiIGN1cnJl
bnQgdXNhZ2UgJSIgUFJJdTY0ICIgZXhwZWN0ZWQgdXNhZ2UgJSIgUFJJdTY0LCBmcmFtZUlELnRv
VUludDY0KCksIGN1cnJlbnRRdW90YSwgY3VycmVudERhdGFiYXNlVXNhZ2UsIGV4cGVjdGVkVXNh
Z2UpOwogCiAgICAgU3RvcmFnZVJlcXVlc3RzOjpzaW5nbGV0b24oKS5wcm9jZXNzT3JBcHBlbmQo
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcGFnZVVSTCA9IGN1cnJlbnRV
UkwoKSwgZnJhbWVJRCwgb3JpZ2luSWRlbnRpZmllciwgZGF0YWJhc2VOYW1lLCBkaXNwbGF5TmFt
ZSwgY3VycmVudFF1b3RhLCBjdXJyZW50T3JpZ2luVXNhZ2UsIGN1cnJlbnREYXRhYmFzZVVzYWdl
LCBleHBlY3RlZFVzYWdlLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXSgpIG11dGFibGUgewogICAgICAgICB0aGlzLT5tYWtlU3RvcmFnZVNwYWNlUmVxdWVz
dChmcmFtZUlELCBvcmlnaW5JZGVudGlmaWVyLCBkYXRhYmFzZU5hbWUsIGRpc3BsYXlOYW1lLCBj
dXJyZW50UXVvdGEsIGN1cnJlbnRPcmlnaW5Vc2FnZSwgY3VycmVudERhdGFiYXNlVXNhZ2UsIGV4
cGVjdGVkVXNhZ2UsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlz
KSwgZnJhbWVJRCwgcGFnZVVSTCA9IFdURk1vdmUocGFnZVVSTCksIGNvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGN1cnJlbnRRdW90YV0oYXV0byBxdW90YSkg
bXV0YWJsZSB7CiAKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoU3RvcmFnZSwg
InJlcXVlc3RTdG9yYWdlU3BhY2UgcmVzcG9uc2UgZm9yIGZyYW1lICUiIFBSSXU2NCAiLCBxdW90
YSAlIiBQUkl1NjQsIGZyYW1lSUQsIHF1b3RhKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoU3RvcmFnZSwgInJlcXVlc3RTdG9yYWdlU3BhY2UgcmVzcG9uc2UgZm9yIGZyYW1l
ICUiIFBSSXU2NCAiLCBxdW90YSAlIiBQUkl1NjQsIGZyYW1lSUQudG9VSW50NjQoKSwgcXVvdGEp
OwogCiAgICAgICAgICAgICBpZiAocXVvdGEgPD0gY3VycmVudFF1b3RhICYmIHRoaXMtPmN1cnJl
bnRVUkwoKSA9PSBwYWdlVVJMKSB7CiAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRChTdG9yYWdlLCAic3RvcmFnZSBzcGFjZSBpbmNyZWFzZSBkZW5pZWQiKTsKQEAgLTczNzYs
NyArNzM3OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0U3RvcmFnZVNwYWNlKHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlCiAgICAgfSk7CiB9CiAKLXZvaWQg
V2ViUGFnZVByb3h5OjptYWtlU3RvcmFnZVNwYWNlUmVxdWVzdCh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1l
LCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2
NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVp
bnQ2NF90IGV4cGVjdGVkVXNhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6Om1ha2VTdG9yYWdlU3BhY2VS
ZXF1ZXN0KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlO
YW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwg
dWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewog
ICAgIGlmIChtX2lzUXVvdGFJbmNyZWFzZURlbmllZCkgewogICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihjdXJyZW50UXVvdGEpOwpAQCAtNzQwMiw3ICs3NDA0LDcgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoY29uc3QgU3RyaW5nJiBvcmln
aW5JZGVudGkKICAgICBtX3VpQ2xpZW50LT5yZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1
b3RhKHRoaXMsIHNlY3VyaXR5T3JpZ2luLmdldCgpLCBjdXJyZW50UXVvdGEsIHRvdGFsQnl0ZXNO
ZWVkZWQsIFdURk1vdmUocmVwbHkpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RH
ZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCB1aW50
NjRfdCBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKK3ZvaWQgV2ViUGFnZVByb3h5
OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRp
b25JRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQog
ewogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlE
KTsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwpAQCAtNzQ0Niw3ICs3NDQ4
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWRPdmVy
cmlkZShPcHRpb25hbDxib29sPiBlbmFibGVkKQogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZVBy
b3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRp
YUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
ICB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRhdGEsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEsIFdlYkNvcmU6Ok1lZGlhU3RyZWFt
UmVxdWVzdCYmIHJlcXVlc3QpCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBl
cm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgIHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luRGF0YSwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luRGF0YSwgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYgcmVxdWVz
dCkKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9j
ZXNzLCBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpKTsKQEAgLTc0NjEsNyArNzQ2Myw3IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVp
bnQ2NF90IHVzZXJNZWRpYUlELCB1aW50CiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6
OmVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luRGF0YSwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0
b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjplbnVtZXJhdGVN
ZWRpYURldmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdXNlck1lZGlhRG9j
dW1lbnRPcmlnaW5EYXRhLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExl
dmVsRG9jdW1lbnRPcmlnaW5EYXRhKQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAg
V2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwpAQCAt
NzQ5Myw3ICs3NDk1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNsZWFyVXNlck1lZGlhU3RhdGUo
KQogfQogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLXZvaWQgV2ViUGFnZVByb3h5
OjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKHVpbnQ2NF90IGZy
YW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIG9yaWdpbkRhdGEsIGJvb2wgbWF5
UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25Q
ZXJtaXNzaW9uU3RhdGUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6
OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIG9yaWdpbkRhdGEsIGJv
b2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKERldmljZU9yaWVudGF0aW9uT3JN
b3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYkZy
YW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBNRVNT
QUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwpAQCAtODczNiw3ICs4NzM4LDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmxvYWRTeW5jaHJvbm91c1VSTFNjaGVtZVRhc2soVVJMU2NoZW1lVGFza1Bh
cmFtZXRlcnMmJiBwYXJhbWUKIH0KIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVl
c3RTdG9yYWdlQWNjZXNzQ29uZmlybShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVE
b21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgbV91aUNsaWVudC0+cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJt
KCp0aGlzLCBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpLCBzdWJGcmFtZURvbWFpbiwgdG9w
RnJhbWVEb21haW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYjQzODNjYWY4OGYzNzI3MmNmOTQ3N2I2NDAz
OWNlOWVmNWM5NDlhMS4uMjA3Njk1OTFhYzFlMzIyZjUxY2RjZjUyMGU1YWNlZWIyZTNmOWNhOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEwMTgsNyArMTAxOCw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZShjb25zdCBTdHJp
bmcmLCBib29sLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVl
KiwgYm9vbCBoYWRFeGNlcHRpb24sIGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHMmLCBD
YWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKTsKICAgICB2b2lkIHJ1bkph
dmFTY3JpcHRJbk1haW5GcmFtZVNjcmlwdFdvcmxkKGNvbnN0IFN0cmluZyYsIGJvb2wsIGNvbnN0
IE9wdGlvbmFsPFN0cmluZz4mIHdvcmxkTmFtZSwgV1RGOjpGdW5jdGlvbjx2b2lkKEFQSTo6U2Vy
aWFsaXplZFNjcmlwdFZhbHVlKiwgYm9vbCBoYWRFeGNlcHRpb24sIGNvbnN0IFdlYkNvcmU6OkV4
Y2VwdGlvbkRldGFpbHMmLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9u
KTsKICAgICAvLyBGb3Igc3ViIGZyYW1lcy4KLSAgICB2b2lkIHJ1bkphdmFTY3JpcHRJbkZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib29sIGZvcmNlVXNlckdl
c3R1cmUsIFdURjo6RnVuY3Rpb248dm9pZChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSosIGJv
b2wgaGFkRXhjZXB0aW9uLCBjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzJiwgQ2FsbGJh
Y2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbik7CisgICAgdm9pZCBydW5KYXZhU2Ny
aXB0SW5GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc2NyaXB0
LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIFdURjo6RnVuY3Rpb248dm9pZChBUEk6OlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZSosIGJvb2wgaGFkRXhjZXB0aW9uLCBjb25zdCBXZWJDb3JlOjpFeGNlcHRp
b25EZXRhaWxzJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbik7CiAg
ICAgdm9pZCBmb3JjZVJlcGFpbnQoUmVmUHRyPFZvaWRDYWxsYmFjaz4mJik7CiAKICAgICBmbG9h
dCBoZWFkZXJIZWlnaHQoV2ViRnJhbWVQcm94eSYpOwpAQCAtMTE2MSw3ICsxMTYxLDcgQEAgcHVi
bGljOgogICAgIHZvaWQgZHJhd1JlY3RUb0ltYWdlKFdlYkZyYW1lUHJveHkqLCBjb25zdCBQcmlu
dEluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYs
IFJlZjxJbWFnZUNhbGxiYWNrPiYmKTsKICAgICB2b2lkIGRyYXdQYWdlc1RvUERGKFdlYkZyYW1l
UHJveHkqLCBjb25zdCBQcmludEluZm8mLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQs
IFJlZjxEYXRhQ2FsbGJhY2s+JiYpOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgdWlu
dDMyX3QgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYodWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgUHJpbnRJbmZvJiwgRHJhd1RvUERGQ2FsbGJhY2s6OkNhbGxiYWNrRnVuY3Rpb24m
Jik7CisgICAgdWludDMyX3QgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mLCBEcmF3VG9QREZDYWxsYmFj
azo6Q2FsbGJhY2tGdW5jdGlvbiYmKTsKICAgICB2b2lkIGRyYXdUb1BERkNhbGxiYWNrKGNvbnN0
IElQQzo6RGF0YVJlZmVyZW5jZSYgcGRmRGF0YSwgV2ViS2l0OjpDYWxsYmFja0lEKTsKICNlbmRp
ZgogI2VsaWYgUExBVEZPUk0oR1RLKQpAQCAtMTI1Miw3ICsxMjUyLDcgQEAgcHVibGljOgogICAg
IHZvaWQgc2V0Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyhjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJik7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSB2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9y
dFVuaXRzKCkgY29uc3QgeyByZXR1cm4gbV92aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRz
LnZhbHVlT3IoV2ViQ29yZTo6SW50U2l6ZSgpKTsgfQogCi0gICAgdm9pZCBkaWRSZWNlaXZlQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSh1aW50NjRfdCBmcmFtZUlELCBSZWY8QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VQcm94eT4mJik7CisgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VQcm94eShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZjxBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZVByb3h5PiYmKTsKIAogICAgIFNwZWxsRG9jdW1lbnRUYWcgc3BlbGxEb2N1
bWVudFRhZygpOwogCkBAIC0xNDUyLDEyICsxNDUyLDEyIEBAIHB1YmxpYzoKICNlbmRpZgogCiAj
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLSAgICB2b2lkIHJlcXVlc3RTdG9y
YWdlQWNjZXNzQ29uZmlybShjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJh
bWVEb21haW4sIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFp
biwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Cisg
ICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oY29uc3QgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiYgdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBkaWRDb21taXRDcm9zc1NpdGVMb2Fk
V2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxlbnRSZXNvdXJjZSgpOwogI2VuZGlmCiAKICNpZiBF
TkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQotICAgIHZvaWQgc2hvdWxkQWxsb3dEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmJiwgYm9vbCBtYXlQcm9tcHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vi
Q29yZTo6RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+JiYpOworICAg
IHZvaWQgc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBib29sIG1h
eVByb21wdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlv
bk9yTW90aW9uUGVybWlzc2lvblN0YXRlKT4mJik7CiAjZW5kaWYKIAogICAgIHN0YXRpYyBXZWJQ
YWdlUHJveHkqIG5vbkVwaGVtZXJhbFdlYlBhZ2VQcm94eSgpOwpAQCAtMTQ5OCwzMyArMTQ5OCwz
MyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIFByb3Zpc2lvbmFsUGFnZVByb3h5KiBwcm92aXNp
b25hbFBhZ2VQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvdmlzaW9uYWxQYWdlLmdldCgpOyB9
Ci0gICAgdm9pZCBjb21taXRQcm92aXNpb25hbFBhZ2UodWludDY0X3QgZnJhbWVJRCwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3Vz
dG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3Jl
OjpDZXJ0aWZpY2F0ZUluZm8mLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFs
PFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBj
b25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgY29tbWl0UHJvdmlzaW9uYWxQYWdlKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1p
bWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFt
ZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mLCBib29sIGNvbnRhaW5z
UGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9y
Y2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYpOwogCiAgICAgLy8gTG9naWMg
c2hhcmVkIGJldHdlZW4gdGhlIFdlYlBhZ2VQcm94eSBhbmQgdGhlIFByb3Zpc2lvbmFsUGFnZVBy
b3h5LgotICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8
V2ViUHJvY2Vzc1Byb3h5PiYmLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIFVSTCYmLCBVUkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2
b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmLCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3Ry
aW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNv
cmU6OldpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRS
ZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8
V2ViUHJvY2Vzc1Byb3h5PiYmLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZv
aWQgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYs
IGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9u
VVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZFBlcmZvcm1DbGllbnRS
ZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0X3Qg
ZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YVNoYXJlZChS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiwgdWlu
dDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1l
U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgVVJMJiYpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVpbnQ2NF90IGZyYW1l
SUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwKKyAgICB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmLCBVUkwmJiB1bnJlYWNo
YWJsZVVSTCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExv
YWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0
eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFs
VVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6V2lsbENvbnRpbnVl
TG9hZGluZywgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRp
cmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZFBl
cmZvcm1TZXJ2ZXJSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBT
dHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmlu
ZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZFBlcmZvcm1DbGllbnRS
ZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRh
U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3Rv
cmUmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlz
aW9uYWxVUkxGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOworICAgIHZvaWQg
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlm
aWVyLAogICAgICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRh
JiYsIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9y
aWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFs
UmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsCiAgICAgICAgIElQQzo6Rm9ybURh
dGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJl
ZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7Ci0g
ICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmLCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
IGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwKKyAg
ICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZp
ZXIsCiAgICAgICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hv
d01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0
ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgc3RhcnRVUkxTY2hlbWVUYXNrU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYpOwog
ICAgIHZvaWQgbG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmLCBBUEk6Ok5hdmlnYXRpb24mLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBjb25zdCBT
dHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBjb25zdCBTdHJpbmcmIGJh
c2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmID0gV1RGOjpudWxsb3B0
LCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5ID0gV2ViQ29yZTo6U2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogICAgIHZvaWQgbG9hZFJl
cXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBBUEk6Ok5h
dmlnYXRpb24mLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6U2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYg
PSBXVEY6Om51bGxvcHQpOwogICAgIHZvaWQgYmFja0ZvcndhcmRHb1RvSXRlbVNoYXJlZChSZWY8
V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlm
aWVyJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJik+
JiYpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNTaGFyZWQo
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3QgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFt
ZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAor
ICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNTaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBib29sIGlzTWFpbkZy
YW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYs
CiAgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9y
aWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFS
ZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYm
KTsKICNpZiBVU0UoUVVJQ0tfTE9PSykKICAgICB2b2lkIGRpZFJlcXVlc3RQYXNzd29yZEZvclF1
aWNrTG9va0RvY3VtZW50SW5NYWluRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
Y29uc3QgU3RyaW5nJiBmaWxlTmFtZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxU
RVJJTkcpCi0gICAgdm9pZCBjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWVTaGFyZWQo
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxv
Y2tIYW5kbGVyJiwgdWludDY0X3QgZnJhbWVJRCk7CisgICAgdm9pZCBjb250ZW50RmlsdGVyRGlk
QmxvY2tMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgV2Vi
Q29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyKTsKICNlbmRpZgogCiAgICAgdm9pZCBkdW1wQWRDbGlja0F0dHJpYnV0aW9uKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJik+JiYpOwpAQCAtMTU2MSw3ICsxNTYxLDcgQEAg
cHVibGljOgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rl
cj4mKSBvdmVycmlkZTsKIAotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VTcGFjZSh1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0
YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVv
dGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNl
VXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9p
ZCh1aW50NjRfdCk+JiYpOworICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VTcGFjZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1
cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50
RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgV1RGOjpDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKHVpbnQ2NF90KT4mJik7CiAKICAgICBVUkwgY3VycmVudFJlc291cmNlRGlyZWN0
b3J5VVJMKCkgY29uc3Q7CiAKQEAgLTE1ODEsNyArMTU4MSw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCB1cGRhdGVUaHJvdHRsZVN0YXRlKCk7CiAgICAgdm9pZCB1cGRhdGVIaWRkZW5QYWdlVGhyb3R0
bGluZ0F1dG9JbmNyZWFzZXMoKTsKIAotICAgIGJvb2wgc3VzcGVuZEN1cnJlbnRQYWdlSWZQb3Nz
aWJsZShBUEk6Ok5hdmlnYXRpb24mLCBPcHRpb25hbDx1aW50NjRfdD4gbWFpbkZyYW1lSUQsIFBy
b2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJp
bmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSk7CisgICAgYm9vbCBzdXNwZW5kQ3VycmVudFBh
Z2VJZlBvc3NpYmxlKEFQSTo6TmF2aWdhdGlvbiYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcj4gbWFpbkZyYW1lSUQsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFNob3Vs
ZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSk7CiAK
ICAgICBlbnVtIGNsYXNzIFJlc2V0U3RhdGVSZWFzb24gewogICAgICAgICBQYWdlSW52YWxpZGF0
ZWQsCkBAIC0xNjEwLDMyICsxNjEwLDMyIEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0UG9p
bnRlclVubG9jaygpOwogI2VuZGlmCiAKLSAgICB2b2lkIGRpZENyZWF0ZU1haW5GcmFtZSh1aW50
NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZENyZWF0ZVN1YmZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQpOwotICAgIHZvaWQgZGlkQ3JlYXRlV2luZG93KHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6
Okdsb2JhbFdpbmRvd0lkZW50aWZpZXImJik7Ci0KLSAgICB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBV
UkwmJiwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBk
aWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVj
dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdXJsLCBkb3VibGUgZGVs
YXksIFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3QpOwotICAgIHZvaWQgZGlkQ2FuY2VsQ2xp
ZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZENoYW5n
ZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBVUkwmJik7Ci0gICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFt
ZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJv
dmlzaW9uYWxVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpXaWxs
Q29udGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkQ29tbWl0TG9h
ZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWlu
dDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiwgYm9v
bCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNv
bnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2
b2lkIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZEZpbmlzaExv
YWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0
IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYs
IGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50MzJfdCBz
YW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgVVJMJiYsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAg
dm9pZCBkaWRDaGFuZ2VNYWluRG9jdW1lbnQodWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBk
aWRFeHBsaWNpdE9wZW5Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBVUkwmJik7Ci0KLSAgICB2
b2lkIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRGaXJzdExheW91dEZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRGaXJzdFZpc3Vh
bGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVc2VyRGF0
YSYpOwotICAgIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRSdW5JbnNlY3VyZUNvbnRl
bnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQg
ZGlkRGV0ZWN0WFNTRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVXNlckRhdGEmKTsK
KyAgICB2b2lkIGRpZENyZWF0ZU1haW5GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwor
ICAgIHZvaWQgZGlkQ3JlYXRlU3ViZnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAg
ICB2b2lkIGRpZENyZWF0ZVdpbmRvdyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6
Okdsb2JhbFdpbmRvd0lkZW50aWZpZXImJik7CisKKyAgICB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIFVSTCYmLCBVUkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmKTsKKyAg
ICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIHdpbGxQZXJm
b3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgdXJsLCBkb3VibGUgZGVsYXksIFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3Qp
OworICAgIHZvaWQgZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZShX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOwor
ICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5
T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxV
UkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29udGludWVM
b2FkaW5nLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvckZyYW1l
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBT
dHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50
MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mLCBib29s
IGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29u
dGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZv
aWQgZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRG
aW5pc2hMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRGYWlsTG9hZEZvckZyYW1l
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZFNh
bWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMyX3Qgc2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUs
IFVSTCYmLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkQ2hhbmdlTWFpbkRvY3VtZW50
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRFeHBsaWNpdE9wZW5Gb3JG
cmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFVSTCYmKTsKKworICAgIHZvaWQgZGlkUmVj
ZWl2ZVRpdGxlRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkRmlyc3RMYXlvdXRGb3JGcmFtZShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRGaXJz
dFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9y
RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZv
aWQgZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkRGV0ZWN0WFNTRm9yRnJhbWUoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgbWFpbkZyYW1l
UGx1Z2luSGFuZGxlc1BhZ2VTY2FsZUdlc3R1cmVEaWRDaGFuZ2UoYm9vbCk7Ci0gICAgdm9pZCBm
cmFtZURpZEJlY29tZUZyYW1lU2V0KHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wpOworICAgIHZvaWQg
ZnJhbWVEaWRCZWNvbWVGcmFtZVNldChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGJvb2wpOwog
ICAgIHZvaWQgZGlkU3RhcnRQcm9ncmVzcygpOwogICAgIHZvaWQgZGlkQ2hhbmdlUHJvZ3Jlc3Mo
ZG91YmxlKTsKICAgICB2b2lkIGRpZEZpbmlzaFByb2dyZXNzKCk7CkBAIC0xNjQ4LDM3ICsxNjQ4
LDM3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkZyYW1lUHJveHkmLCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmJiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0
YSYmLAogICAgICAgICBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1E
YXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIFJlZjxQb2xpY3lEZWNp
c2lvblNlbmRlcj4mJik7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
QXN5bmModWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZp
Z2F0aW9uQWN0aW9uRGF0YSYmLAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbkFzeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAogICAgICAgICBGcmFtZUluZm9EYXRhJiYs
IE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCiAg
ICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25z
dCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmModWludDY0X3QgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFt
ZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAor
ICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0
aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKICAgICAg
ICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVz
ZXJEYXRhJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5l
d1dpbmRvd0FjdGlvbih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIE5hdmlnYXRpb25BY3Rp
b25EYXRhJiYsCisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBX
ZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCiAg
ICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFt
ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRlY2lk
ZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwKICAgICAg
ICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2Fk
QXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZv
aWQgdW5hYmxlVG9JbXBsZW1lbnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCB1bmFibGVUb0lt
cGxlbWVudFBvbGljeShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgYmVnaW5TYWZlQnJvd3Np
bmdDaGVjayhjb25zdCBVUkwmLCBib29sLCBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkmKTsK
IAogICAgIFdlYkNvbnRlbnRNb2RlIGVmZmVjdGl2ZUNvbnRlbnRNb2RlQWZ0ZXJBZGp1c3RpbmdQ
b2xpY2llcyhBUEk6OldlYnNpdGVQb2xpY2llcyYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYpOwogCi0gICAgdm9pZCB3aWxsU3VibWl0Rm9ybSh1aW50NjRfdCBmcmFtZUlELCB1aW50
NjRfdCBzb3VyY2VGcmFtZUlELCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5n
Pj4mIHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEm
KTsKKyAgICB2b2lkIHdpbGxTdWJtaXRGb3JtKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIHNvdXJjZUZyYW1lSUQsIGNvbnN0IFZlY3RvcjxzdGQ6OnBh
aXI8U3RyaW5nLCBTdHJpbmc+PiYgdGV4dEZpZWxkVmFsdWVzLCB1aW50NjRfdCBsaXN0ZW5lcklE
LCBjb25zdCBVc2VyRGF0YSYpOwogCiAgICAgdm9pZCBjb250ZW50UnVsZUxpc3ROb3RpZmljYXRp
b24oVVJMJiYsIFdlYkNvcmU6OkNvbnRlbnRSdWxlTGlzdFJlc3VsdHMmJik7CiAKICAgICAvLyBI
aXN0b3J5IGNsaWVudAotICAgIHZvaWQgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29u
c3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQg
ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBj
b25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKTsKLSAg
ICB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0
cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJ
RCk7Ci0gICAgdm9pZCBkaWRVcGRhdGVIaXN0b3J5VGl0bGUoY29uc3QgU3RyaW5nJiB0aXRsZSwg
Y29uc3QgU3RyaW5nJiB1cmwsIHVpbnQ2NF90IGZyYW1lSUQpOworICAgIHZvaWQgZGlkTmF2aWdh
dGVXaXRoTmF2aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3Qo
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25V
UkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRQZXJmb3Jt
U2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAg
dm9pZCBkaWRVcGRhdGVIaXN0b3J5VGl0bGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3Ry
aW5nJiB1cmwsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAKICAgICAvLyBVSSBjbGllbnQK
ICAgICB2b2lkIGNyZWF0ZU5ld1BhZ2UoY29uc3QgRnJhbWVJbmZvRGF0YSYsIE9wdGlvbmFsPFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYsIFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiYsIE5hdmlnYXRpb25BY3Rpb25E
YXRhJiYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZU5ld1BhZ2U6OkRlbGF5ZWRSZXBs
eSYmKTsKICAgICB2b2lkIHNob3dQYWdlKCk7Ci0gICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29u
c3QgU3RyaW5nJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdEFsZXJ0OjpE
ZWxheWVkUmVwbHkmJik7Ci0gICAgdm9pZCBydW5KYXZhU2NyaXB0Q29uZmlybSh1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcm
LCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybTo6RGVsYXllZFJl
cGx5JiYpOwotICAgIHZvaWQgcnVuSmF2YVNjcmlwdFByb21wdCh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBT
dHJpbmcmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0OjpEZWxh
eWVkUmVwbHkmJik7CisgICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJp
bmcmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQ6OkRlbGF5ZWRS
ZXBseSYmKTsKKyAgICB2b2lkIHJ1bkphdmFTY3JpcHRDb25maXJtKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5n
JiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENvbmZpcm06OkRlbGF5ZWRS
ZXBseSYmKTsKKyAgICB2b2lkIHJ1bkphdmFTY3JpcHRQcm9tcHQoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBTdHJpbmcmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJv
bXB0OjpEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBzZXRTdGF0dXNUZXh0KGNvbnN0IFN0cmlu
ZyYpOwogICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoV2ViSGl0VGVzdFJlc3VsdERh
dGEmJiwgdWludDMyX3QgbW9kaWZpZXJzLCBVc2VyRGF0YSYmKTsKIApAQCAtMTcwMSwyMSArMTcw
MSwyMSBAQCBwcml2YXRlOgogICAgIHZvaWQgcm9vdFZpZXdUb1NjcmVlbihjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiB2aWV3UmVjdCwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Um9vdFZpZXdUb1Nj
cmVlbjo6RGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgYWNjZXNzaWJpbGl0eVNjcmVlblRvUm9v
dFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcmVlblBvaW50LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkNvcmU6OkludFBvaW50KT4mJik7CiAgICAgdm9pZCByb290Vmlld1RvQWNj
ZXNzaWJpbGl0eVNjcmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB2aWV3UmVjdCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpJbnRSZWN0KT4mJik7Ci0gICAgdm9pZCBydW5CZWZv
cmVVbmxvYWRDb25maXJtUGFuZWwodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw6OkRlbGF5ZWRSZXBseSYmKTsKKyAg
ICB2b2lkIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
OjpEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMo
Y29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJik7CiAgICAgdm9pZCBwYWdlRGlkU2Ny
b2xsKCk7Ci0gICAgdm9pZCBydW5PcGVuUGFuZWwodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgV2ViQ29yZTo6RmlsZUNob29zZXJTZXR0
aW5ncyYpOworICAgIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgV2ViQ29yZTo6RmlsZUNo
b29zZXJTZXR0aW5ncyYpOwogICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQoY29uc3QgV2ViQ29yZTo6
U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIFNoYXJlU2hlZXRDYWxsYmFja0lEKTsKLSAgICB2b2lk
IHByaW50RnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKLSAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YSh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBj
b25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90
IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2
NF90IGV4cGVjdGVkVXNhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkV4Y2VlZGVkRGF0YWJh
c2VRdW90YTo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgcHJpbnRGcmFtZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBl
eGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBT
dHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJl
bnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4
cGVjdGVkVXNhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkV4Y2VlZGVkRGF0YWJhc2VRdW90
YTo6RGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmln
aW5RdW90YShjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIHVpbnQ2NF90IGN1cnJlbnRR
dW90YSwgdWludDY0X3QgdG90YWxCeXRlc05lZWRlZCwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
UmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YTo6RGVsYXllZFJlcGx5JiYpOwotICAg
IHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xv
Y2F0aW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKTsKKyAg
ICB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9s
b2NhdGlvbklELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFN0cmluZyBvcmlnaW5JZGVudGlm
aWVyKTsKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigp
OwogI2VuZGlmCi0gICAgdm9pZCByZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVp
bnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRp
ZmllciwgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYpOwotICAgIHZvaWQgZW51bWVyYXRl
TWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdXNlck1lZGlhRG9jdW1lbnRP
cmlnaW5EYXRhLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9j
dW1lbnRPcmlnaW5EYXRhKTsKKyAgICB2b2lkIHJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9y
RnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbklkZW50aWZpZXIsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKKyAg
ICB2b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlE
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5EYXRhLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5EYXRhKTsKICAgICB2b2lkIGJlZ2lu
TW9uaXRvcmluZ0NhcHR1cmVEZXZpY2VzKCk7CiAKICAgICB2b2lkIHJ1bk1vZGFsKCk7CkBAIC0x
ODk1LDggKzE4OTUsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJpbnRGaW5pc2hlZENhbGxiYWNr
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBDYWxsYmFja0lEKTsKICNlbmRpZgogCi0g
ICAgdm9pZCBmb2N1c2VkRnJhbWVDaGFuZ2VkKHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQg
ZnJhbWVTZXRMYXJnZXN0RnJhbWVDaGFuZ2VkKHVpbnQ2NF90IGZyYW1lSUQpOworICAgIHZvaWQg
Zm9jdXNlZEZyYW1lQ2hhbmdlZChjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXI+Jik7CisgICAgdm9pZCBmcmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQoY29uc3QgT3B0aW9u
YWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiYpOwogCiAgICAgdm9pZCBkaWRGaW5pc2hMb2Fk
aW5nRGF0YUZvckN1c3RvbUNvbnRlbnRQcm92aWRlcihjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZp
bGVuYW1lLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKTsKIApAQCAtMTk5Nyw3ICsxOTk3LDcg
QEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQotICAg
IHZvaWQgY29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKGNvbnN0IFdlYkNvcmU6OkNv
bnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYsIHVpbnQ2NF90IGZyYW1lSUQpOworICAgIHZvaWQg
Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRG
aWx0ZXJVbmJsb2NrSGFuZGxlciYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAjZW5kaWYK
IAogICAgIHZvaWQgdHJ5UmVsb2FkQWZ0ZXJQcm9jZXNzVGVybWluYXRpb24oKTsKQEAgLTIxMTAs
NyArMjExMCw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wgaXNJbkhhcmR3YXJlS2V5Ym9h
cmRNb2RlKCk7CiAjZW5kaWYKIAotICAgIHZvaWQgbWFrZVN0b3JhZ2VTcGFjZVJlcXVlc3QodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3Vy
cmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnRE
YXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKHVpbnQ2NF90KT4mJik7CisgICAgdm9pZCBtYWtlU3RvcmFnZVNwYWNlUmVxdWVzdChXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2
NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBj
dXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCh1aW50NjRfdCk+JiYpOwogCiAgICAgV2Vha1B0cjxQYWdlQ2xpZW50PiBtX3Bh
Z2VDbGllbnQ7CiAgICAgUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+IG1fY29uZmlndXJhdGlv
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgppbmRleCBlY2FkOTVlNDZiNTQzYWM5MTUwNDBlNjBlZjQwNGJlZDY0MjY3MTYxLi4xNTg5MTll
MzE2MDExZDY5OTQwZGQ5YjFlMmY3Y2NjMzFlYTRlNDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNSw5ICsyNSw5IEBAIG1l
c3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgQ3JlYXRlTmV3UGFnZShzdHJ1Y3QgV2ViS2l0
OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QgcmVxdWVzdCwgc3RydWN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzIHdpbmRvd0ZlYXR1
cmVzLCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9u
RGF0YSkgLT4gKE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBuZXdQYWdlSUQsIE9w
dGlvbmFsPFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycz4gbmV3UGFnZVBhcmFtZXRl
cnMpIFN5bmNocm9ub3VzCiAgICAgU2hvd1BhZ2UoKQogICAgIENsb3NlUGFnZShib29sIHN0b3BS
ZXNwb25zaXZlbmVzc1RpbWVyKQotICAgIFJ1bkphdmFTY3JpcHRBbGVydCh1aW50NjRfdCBmcmFt
ZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmln
aW4sIFN0cmluZyBtZXNzYWdlKSAtPiAoKSBTeW5jaHJvbm91cwotICAgIFJ1bkphdmFTY3JpcHRD
b25maXJtKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3NhZ2UpIC0+IChib29sIHJlc3VsdCkg
U3luY2hyb25vdXMKLSAgICBSdW5KYXZhU2NyaXB0UHJvbXB0KHVpbnQ2NF90IGZyYW1lSUQsIHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgU3Ry
aW5nIG1lc3NhZ2UsIFN0cmluZyBkZWZhdWx0VmFsdWUpIC0+IChTdHJpbmcgcmVzdWx0KSBTeW5j
aHJvbm91cworICAgIFJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5
T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSkgLT4gKCkgU3luY2hyb25vdXMKKyAgICBSdW5KYXZhU2Ny
aXB0Q29uZmlybShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBTdHJpbmcgbWVzc2Fn
ZSkgLT4gKGJvb2wgcmVzdWx0KSBTeW5jaHJvbm91cworICAgIFJ1bkphdmFTY3JpcHRQcm9tcHQo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBk
ZWZhdWx0VmFsdWUpIC0+IChTdHJpbmcgcmVzdWx0KSBTeW5jaHJvbm91cwogICAgIE1vdXNlRGlk
TW92ZU92ZXJFbGVtZW50KHN0cnVjdCBXZWJLaXQ6OldlYkhpdFRlc3RSZXN1bHREYXRhIGhpdFRl
c3RSZXN1bHREYXRhLCB1aW50MzJfdCBtb2RpZmllcnMsIFdlYktpdDo6VXNlckRhdGEgdXNlckRh
dGEpCiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKQEAgLTQ3LDggKzQ3LDggQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBTZXRUb29sVGlwKFN0cmluZyB0b29sVGlw
KQogICAgIFNldEZvY3VzKGJvb2wgZm9jdXNlZCkKICAgICBUYWtlRm9jdXModWludDMyX3QgZGly
ZWN0aW9uKQotICAgIEZvY3VzZWRGcmFtZUNoYW5nZWQodWludDY0X3QgZnJhbWVJRCkKLSAgICBG
cmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQodWludDY0X3QgZnJhbWVJRCkKKyAgICBGb2N1c2Vk
RnJhbWVDaGFuZ2VkKE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCkK
KyAgICBGcmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQoT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyPiBmcmFtZUlEKQogICAgIFNldFJlbmRlclRyZWVTaXplKHVpbnQ2NF90IHRyZWVT
aXplKQogICAgIFNldFRvb2xiYXJzQXJlVmlzaWJsZShib29sIHRvb2xiYXJzQXJlVmlzaWJsZSkK
ICAgICBHZXRUb29sYmFyc0FyZVZpc2libGUoKSAtPiAoYm9vbCB0b29sYmFyc0FyZVZpc2libGUp
IFN5bmNocm9ub3VzCkBAIC02OSwxMSArNjksMTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5
IHsKICAgICBIaWRlVmFsaWRhdGlvbk1lc3NhZ2UoKQogI2VuZGlmCiAKLSAgICBSdW5CZWZvcmVV
bmxvYWRDb25maXJtUGFuZWwodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSkgLT4gKGJv
b2wgc2hvdWxkQ2xvc2UpIFN5bmNocm9ub3VzCisgICAgUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBh
bmVsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFN0cmluZyBtZXNzYWdlKSAtPiAo
Ym9vbCBzaG91bGRDbG9zZSkgU3luY2hyb25vdXMKICAgICBQYWdlRGlkU2Nyb2xsKCkKLSAgICBS
dW5PcGVuUGFuZWwodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBzdHJ1Y3QgV2ViQ29yZTo6RmlsZUNob29zZXJT
ZXR0aW5ncyBwYXJhbWV0ZXJzKQorICAgIFJ1bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNl
Y3VyaXR5T3JpZ2luLCBzdHJ1Y3QgV2ViQ29yZTo6RmlsZUNob29zZXJTZXR0aW5ncyBwYXJhbWV0
ZXJzKQogICAgIFNob3dTaGFyZVNoZWV0KHN0cnVjdCBXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFy
c2VkVVJMIHNoYXJlRGF0YSwgdWludDY0X3QgY2FsbGJhY2tJRCkKLSAgICBQcmludEZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQpIC0+ICgpIFN5bmNocm9ub3VzCisgICAgUHJpbnRGcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkgLT4gKCkgU3luY2hyb25vdXMKICAgICBSdW5Nb2Rh
bCgpCiAgICAgTm90aWZ5U2Nyb2xsZXJUaHVtYklzVmlzaWJsZUluUmVjdChXZWJDb3JlOjpJbnRS
ZWN0IHNjcm9sbGVyVGh1bWIpCiAgICAgUmVjb21tZW5kZWRTY3JvbGxiYXJTdHlsZURpZENoYW5n
ZShpbnQzMl90IG5ld1N0eWxlKQpAQCAtMTAzLDExICsxMDMsMTEgQEAgbWVzc2FnZXMgLT4gV2Vi
UGFnZVByb3h5IHsKICNlbmRpZgogCiAgICAgIyBQb2xpY3kgbWVzc2FnZXMKLSAgICBEZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZSh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBTdHJpbmcgZG93bmxvYWRBdHRyaWJ1dGUs
IHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVj
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0
aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0Zy
YW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGlu
Z1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVz
dEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0
OjpVc2VyRGF0YSB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKLSAgICBEZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyh1aW50NjRfdCBmcmFtZUlELCBib29sIGlzTWFpbkZy
YW1lLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmln
aW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRh
dGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3Jp
Z2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4g
b3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVl
c3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJl
bmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9u
c2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpIC0+IChXZWJDb3JlOjpQb2xpY3lDaGVja0lk
ZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UG9s
aWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgdWludDY0X3QgbmV3TmF2aWdhdGlvbklELCBXZWJLaXQ6
OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgT3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNE
YXRhPiB3ZWJzaXRlUG9saWNpZXMpIFN5bmNocm9ub3VzCi0gICAgRGVjaWRlUG9saWN5Rm9yTmV3
V2luZG93QWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlm
aWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlv
bkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1
ZXN0LCBTdHJpbmcgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJE
YXRhIHVzZXJEYXRhKQotICAgIFVuYWJsZVRvSW1wbGVtZW50UG9saWN5KHVpbnQ2NF90IGZyYW1l
SUQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6VXNlckRhdGEgdXNlckRh
dGEpCisgICAgRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0
eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRp
ZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJl
c3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlN
RVR5cGUsIFN0cmluZyBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2Vi
S2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uQXN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5
Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9u
RGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0Rh
dGEsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHksIFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpVc2VyRGF0
YSB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKKyAgICBEZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uU3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCBp
c01haW5GcmFtZSwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25B
Y3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9E
YXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50
aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2lu
YWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0
YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVj
dFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKSAtPiAoV2ViQ29yZTo6UG9saWN5
Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgZW51bTp1aW50OF90IFdlYkNv
cmU6OlBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90IG5ld05hdmlnYXRpb25JRCwg
V2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIE9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBv
bGljaWVzRGF0YT4gd2Vic2l0ZVBvbGljaWVzKSBTeW5jaHJvbm91cworICAgIERlY2lkZVBvbGlj
eUZvck5ld1dpbmRvd0FjdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3Ry
dWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCBzdHJ1Y3Qg
V2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBmcmFtZU5hbWUsIHVpbnQ2NF90IGxp
c3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgVW5hYmxlVG9JbXBsZW1l
bnRQb2xpY3koV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlJlc291
cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAKICAgICAjIFByb2dy
ZXNzIG1lc3NhZ2VzCiAgICAgRGlkQ2hhbmdlUHJvZ3Jlc3MoZG91YmxlIHZhbHVlKQpAQCAtMTE3
LDUxICsxMTcsNTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBTZXROZXR3b3Jr
UmVxdWVzdHNJblByb2dyZXNzKGJvb2wgbmV0d29ya1JlcXVlc3RzSW5Qcm9ncmVzcykKIAogICAg
ICMgRnJhbWUgbGlmZXRpbWUgbWVzc2FnZXMKLSAgICBEaWRDcmVhdGVNYWluRnJhbWUodWludDY0
X3QgZnJhbWVJRCkKLSAgICBEaWRDcmVhdGVTdWJmcmFtZSh1aW50NjRfdCBmcmFtZUlEKQorICAg
IERpZENyZWF0ZU1haW5GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKKyAg
ICBEaWRDcmVhdGVTdWJmcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIAot
ICAgIERpZENyZWF0ZVdpbmRvdyh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6R2xv
YmFsV2luZG93SWRlbnRpZmllciB3aW5kb3dJZGVudGlmaWVyKQorICAgIERpZENyZWF0ZVdpbmRv
dyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6Okdsb2Jh
bFdpbmRvd0lkZW50aWZpZXIgd2luZG93SWRlbnRpZmllcikKIAogICAgICMgRnJhbWUgbG9hZCBt
ZXNzYWdlcwotICAgIERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwgdXJsLCBVUkwgdW5yZWFjaGFibGVVUkws
IFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0
Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV2ViS2l0OjpVc2Vy
RGF0YSB1c2VyRGF0YSkKLSAgICBXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgU3RyaW5nIHVybCwgZG91YmxlIGRlbGF5LCBlbnVtOmJvb2wgV2ViQ29y
ZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0KQotICAgIERpZENhbmNl
bENsaWVudFJlZGlyZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCkKLSAgICBEaWRDaGFuZ2VQ
cm92aXNpb25hbFVSTEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgVVJMIHVybCkKLSAgICBEaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFN0cmluZyBwcm92aXNpb25hbFVSTCwg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgZW51bTpib29sIFdlYkNvcmU6OldpbGxDb250
aW51ZUxvYWRpbmcgd2lsbENvbnRpbnVlTG9hZGluZywgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0
YSkKLSAgICBEaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBTdHJpbmcgbWltZVR5cGUsIGJvb2wgaGFzQ3VzdG9tQ29udGVudFByb3Zp
ZGVyLCB1aW50MzJfdCBsb2FkVHlwZSwgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvIGNlcnRpZmlj
YXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpI
YXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29udGVudCwgV2ViS2l0OjpVc2Vy
RGF0YSB1c2VyRGF0YSkKLSAgICBEaWRGYWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgV2Vi
S2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYktpdDo6VXNlckRh
dGEgdXNlckRhdGEpCi0gICAgRGlkRmluaXNoTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBE
aWRGaXJzdExheW91dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6VXNlckRhdGEg
dXNlckRhdGEpCi0gICAgRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWRTdGFydFBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCB1cmwsIFVSTCB1bnJlYWNoYWJsZVVSTCwgV2ViS2l0
OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92
aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV2Vi
S2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9y
RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyB1cmwsIGRvdWJs
ZSBkZWxheSwgZW51bTpib29sIFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tG
b3J3YXJkTGlzdCkKKyAgICBEaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQorICAgIERpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9y
RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgVVJMIHVybCkKKyAgICBEaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBTdHJpbmcg
cHJvdmlzaW9uYWxVUkwsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIGVudW06Ym9vbCBX
ZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250aW51ZUxvYWRpbmcsIFdlYktpdDo6
VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkQ29tbWl0TG9hZEZvckZyYW1lKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFN0cmluZyBtaW1l
VHlwZSwgYm9vbCBoYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGxvYWRUeXBlLCBX
ZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGVJbmZvLCBib29sIGNvbnRhaW5zUGx1
Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2Vk
SGFzSW5zZWN1cmVDb250ZW50LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZEZh
aWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgV2ViS2l0OjpVc2Vy
RGF0YSB1c2VyRGF0YSkKKyAgICBEaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJLaXQ6
OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZEZpbmlzaExvYWRGb3JGcmFtZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJLaXQ6OlVz
ZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZEZpcnN0TGF5b3V0Rm9yRnJhbWUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlk
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGlkUmVhY2hMYXlv
dXRNaWxlc3RvbmUoT3B0aW9uU2V0PFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZT4gbGF5b3V0TWls
ZXN0b25lcykKLSAgICBEaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBT
dHJpbmcgdGl0bGUsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlkRGlzcGxheUlu
c2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6VXNlckRhdGEg
dXNlckRhdGEpCi0gICAgRGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWREZXRlY3RYU1NGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZFNh
bWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIHVpbnQzMl90IHR5cGUsIFVSTCB1cmwsIFdlYktpdDo6VXNlckRhdGEgdXNl
ckRhdGEpCi0gICAgRGlkQ2hhbmdlTWFpbkRvY3VtZW50KHVpbnQ2NF90IGZyYW1lSUQpCi0gICAg
RGlkRXhwbGljaXRPcGVuRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgVVJMIHVybCkKKyAgICBE
aWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
U3RyaW5nIHRpdGxlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZERpc3BsYXlJ
bnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
V2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JG
cmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViS2l0OjpVc2VyRGF0YSB1
c2VyRGF0YSkKKyAgICBEaWREZXRlY3RYU1NGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWRTYW1lRG9jdW1l
bnROYXZpZ2F0aW9uRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMyX3QgdHlwZSwgVVJMIHVybCwgV2ViS2l0OjpVc2Vy
RGF0YSB1c2VyRGF0YSkKKyAgICBEaWRDaGFuZ2VNYWluRG9jdW1lbnQoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQpCisgICAgRGlkRXhwbGljaXRPcGVuRm9yRnJhbWUoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFVSTCB1cmwpCiAgICAgRGlkRGVzdHJveU5hdmlnYXRp
b24odWludDY0X3QgbmF2aWdhdGlvbklEKQogCiAgICAgSGFzSW5zZWN1cmVDb250ZW50KCkgLT4g
KGVudW06Ym9vbCBXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQgaGFzSW5zZWN1cmVDb250ZW50
KSBTeW5jaHJvbm91cwogCiAgICAgTWFpbkZyYW1lUGx1Z2luSGFuZGxlc1BhZ2VTY2FsZUdlc3R1
cmVEaWRDaGFuZ2UoYm9vbCBtYWluRnJhbWVQbHVnaW5IYW5kbGVzUGFnZVNjYWxlR2VzdHVyZSkK
IAotICAgIEZyYW1lRGlkQmVjb21lRnJhbWVTZXQodWludDY0X3QgZnJhbWVJRCwgYm9vbCB2YWx1
ZSkKKyAgICBGcmFtZURpZEJlY29tZUZyYW1lU2V0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBib29sIHZhbHVlKQogCiAgICAgIyBIaXN0b3J5IGNsaWVudCBtZXNzYWdlcy4KLSAg
ICBEaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShzdHJ1Y3QgV2ViS2l0OjpXZWJOYXZpZ2F0
aW9uRGF0YVN0b3JlIHN0b3JlLCB1aW50NjRfdCBmcmFtZUlEKQotICAgIERpZFBlcmZvcm1DbGll
bnRSZWRpcmVjdChTdHJpbmcgc291cmNlVVJMU3RyaW5nLCBTdHJpbmcgZGVzdGluYXRpb25VUkxT
dHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpCi0gICAgRGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KFN0
cmluZyBzb3VyY2VVUkxTdHJpbmcsIFN0cmluZyBkZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0
X3QgZnJhbWVJRCkKLSAgICBEaWRVcGRhdGVIaXN0b3J5VGl0bGUoU3RyaW5nIHRpdGxlLCBTdHJp
bmcgdXJsLCB1aW50NjRfdCBmcmFtZUlEKQorICAgIERpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25E
YXRhKHN0cnVjdCBXZWJLaXQ6OldlYk5hdmlnYXRpb25EYXRhU3RvcmUgc3RvcmUsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQorICAgIERpZFBlcmZvcm1DbGllbnRSZWRpcmVjdChT
dHJpbmcgc291cmNlVVJMU3RyaW5nLCBTdHJpbmcgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQorICAgIERpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVj
dChTdHJpbmcgc291cmNlVVJMU3RyaW5nLCBTdHJpbmcgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQorICAgIERpZFVwZGF0ZUhpc3RvcnlUaXRs
ZShTdHJpbmcgdGl0bGUsIFN0cmluZyB1cmwsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlEKQogCiAgICAgIyBDdXN0b20gcmVwcmVzZW50YXRpb25zCiAgICAgRGlkRmluaXNoTG9hZGlu
Z0RhdGFGb3JDdXN0b21Db250ZW50UHJvdmlkZXIoU3RyaW5nIHN1Z2dlc3RlZEZpbGVuYW1lLCBJ
UEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkKIAogICAgICMgRm9ybXMgbWVzc2FnZXMKLSAgICBXaWxs
U3VibWl0Rm9ybSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBzb3VyY2VGcmFtZUlELCBWZWN0
b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4gdGV4dEZpZWxkVmFsdWVzLCB1aW50NjRfdCBs
aXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIFdpbGxTdWJtaXRGb3Jt
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgc291cmNlRnJhbWVJRCwgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+IHRleHRG
aWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0
YSkKIAogICAgICMgQ2FsbGJhY2sgbWVzc2FnZXMKICAgICBWb2lkQ2FsbGJhY2soV2ViS2l0OjpD
YWxsYmFja0lEIGNhbGxiYWNrSUQpCkBAIC0yNzUsMTggKzI3NSwxOCBAQCBtZXNzYWdlcyAtPiBX
ZWJQYWdlUHJveHkgewogI2VuZGlmCiAKICAgICAjIERhdGFiYXNlIG1lc3NhZ2VzCi0gICAgRXhj
ZWVkZWREYXRhYmFzZVF1b3RhKHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlm
aWVyLCBTdHJpbmcgZGF0YWJhc2VOYW1lLCBTdHJpbmcgZGF0YWJhc2VEaXNwbGF5TmFtZSwgdWlu
dDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90
IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlKSAtPiAodWludDY0
X3QgbmV3UXVvdGEpIFN5bmNocm9ub3VzCisgICAgRXhjZWVkZWREYXRhYmFzZVF1b3RhKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllciwgU3Ry
aW5nIGRhdGFiYXNlTmFtZSwgU3RyaW5nIGRhdGFiYXNlRGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1
cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50
RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSkgLT4gKHVpbnQ2NF90IG5ld1F1
b3RhKSBTeW5jaHJvbm91cwogCiAgICAgIyBBcHBsaWNhdGlvbiBjYWNoZSBtZXNzYWdlcwogICAg
IFJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU3RyaW5nIG9yaWdpbklkZW50aWZp
ZXIsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgdG90YWxCeXRlc05lZWRlZCkgLT4g
KHVpbnQ2NF90IG5ld1F1b3RhKSBTeW5jaHJvbm91cwogCiAgICAgIyBHZW9sb2NhdGlvbiBtZXNz
YWdlcwotICAgIFJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBn
ZW9sb2NhdGlvbklELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikK
KyAgICBSZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9j
YXRpb25JRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBvcmlnaW5J
ZGVudGlmaWVyKQogICAgIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgIyBNZWRpYVN0
ZWFtIG1lc3NhZ2VzCi0gICAgUmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50
NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIHN0cnVjdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZp
ZXIsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QgcmVxdWVzdCkKLSAgICBFbnVt
ZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3Qg
ZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB1c2VyTWVkaWFEb2N1
bWVudE9yaWdpbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEg
dG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIpCisgICAgUmVxdWVzdFVzZXJNZWRpYVBl
cm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6
TWVkaWFTdHJlYW1SZXF1ZXN0IHJlcXVlc3QpCisgICAgRW51bWVyYXRlTWVkaWFEZXZpY2VzRm9y
RnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHVzZXJNZWRpYURvY3VtZW50
T3JpZ2luSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BM
ZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllcikKICAgICBCZWdpbk1vbml0b3JpbmdDYXB0dXJl
RGV2aWNlcygpCiAjZW5kaWYKIApAQCAtNDczLDcgKzQ3Myw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBh
Z2VQcm94eSB7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKLSAgICBD
b250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWUoV2ViQ29yZTo6Q29udGVudEZpbHRlclVu
YmxvY2tIYW5kbGVyIHVuYmxvY2tIYW5kbGVyLCB1aW50NjRfdCBmcmFtZUlEKQorICAgIENvbnRl
bnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9j
a0hhbmRsZXIgdW5ibG9ja0hhbmRsZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
KQogI2VuZGlmCiAKICAgICBJc1BsYXlpbmdNZWRpYURpZENoYW5nZSh1bnNpZ25lZCBzdGF0ZSwg
dWludDY0X3Qgc291cmNlRWxlbWVudElEKQpAQCAtNTM5LDcgKzUzOSw3IEBAIG1lc3NhZ2VzIC0+
IFdlYlBhZ2VQcm94eSB7CiAgICAgTG9hZFN5bmNocm9ub3VzVVJMU2NoZW1lVGFzayhzdHJ1Y3Qg
V2ViS2l0OjpVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyBwYXJhbWV0ZXJzKSAtPiAoV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwg
VmVjdG9yPGNoYXI+IGRhdGEpIFN5bmNocm9ub3VzCiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQotICAgIFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3Mo
dWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBvcmln
aW4sIGJvb2wgbWF5UHJvbXB0KSAtPiAoZW51bTp1aW50OF90IFdlYkNvcmU6OkRldmljZU9yaWVu
dGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUgcGVybWlzc2lvblN0YXRlKSBBc3luYworICAg
IFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEg
b3JpZ2luLCBib29sIG1heVByb21wdCkgLT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpEZXZpY2VP
cmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlIHBlcm1pc3Npb25TdGF0ZSkgQXN5bmMK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IGUxNjkxMzdmNTM4OWQzMGJiOGIx
MWIzYThlMWY1MGNhNDNhYTA2ZWQuLjk1YjU4NjM5ZjNjNDBjYzYzMDBhNDRmMmMwNDQ5ZWZmZWY4
YWQxMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApA
QCAtODI3LDI1ICs4MjcsMjUgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5j
aGluZyhQcm9jZXNzTGF1bmNoZXIqIGxhdW5jaGVyLCBJUEM6OkNvbm5lY3QKICNlbmRpZgogfQog
Ci1XZWJGcmFtZVByb3h5KiBXZWJQcm9jZXNzUHJveHk6OndlYkZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQpIGNvbnN0CitXZWJGcmFtZVByb3h5KiBXZWJQcm9jZXNzUHJveHk6OndlYkZyYW1lKEZyYW1l
SWRlbnRpZmllciBmcmFtZUlEKSBjb25zdAogewogICAgIGlmICghV2ViRnJhbWVQcm94eU1hcDo6
aXNWYWxpZEtleShmcmFtZUlEKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBu
dWxscHRyOwogCiAgICAgcmV0dXJuIG1fZnJhbWVNYXAuZ2V0KGZyYW1lSUQpOwogfQogCi1ib29s
IFdlYlByb2Nlc3NQcm94eTo6Y2FuQ3JlYXRlRnJhbWUodWludDY0X3QgZnJhbWVJRCkgY29uc3QK
K2Jvb2wgV2ViUHJvY2Vzc1Byb3h5OjpjYW5DcmVhdGVGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCkgY29uc3QKIHsKICAgICByZXR1cm4gV2ViRnJhbWVQcm94eU1hcDo6aXNWYWxpZEtleShm
cmFtZUlEKSAmJiAhbV9mcmFtZU1hcC5jb250YWlucyhmcmFtZUlEKTsKIH0KIAotdm9pZCBXZWJQ
cm9jZXNzUHJveHk6OmZyYW1lQ3JlYXRlZCh1aW50NjRfdCBmcmFtZUlELCBXZWJGcmFtZVByb3h5
JiBmcmFtZVByb3h5KQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmZyYW1lQ3JlYXRlZChGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgV2ViRnJhbWVQcm94eSYgZnJhbWVQcm94eSkKIHsKICAgICBtX2Zy
YW1lTWFwLnNldChmcmFtZUlELCAmZnJhbWVQcm94eSk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1By
b3h5OjpkaWREZXN0cm95RnJhbWUodWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUHJvY2Vzc1By
b3h5OjpkaWREZXN0cm95RnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgLy8g
SWYgdGhlIHBhZ2UgaXMgY2xvc2VkIGJlZm9yZSBpdCBoYXMgaGFkIHRoZSBjaGFuY2UgdG8gc2Vu
ZCB0aGUgRGlkQ3JlYXRlTWFpbkZyYW1lIG1lc3NhZ2UKICAgICAvLyBiYWNrIHRvIHRoZSBVSVBy
b2Nlc3MsIHRoZW4gdGhlIGZyYW1lRGVzdHJveWVkIG1lc3NhZ2Ugd2lsbCBzdGlsbCBiZSByZWNl
aXZlZCBiZWNhdXNlIGl0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
CmluZGV4IDMwMDk2ZGQzMDg1NDhiODkwNDljODM1MTBlZWE3MWJiMDU5NzZmZmMuLjE4ZjQ4ODBh
MGJiMmQ0ZDgzZDJmYjZjNTk3Yzg3YzdjZGQ2ZWM4OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiVmlzaWJs
ZVdlYlBhZ2VDb3VudGVyLmgiCiAjaW5jbHVkZSAiV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
IgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lc3NhZ2VQb3J0Q2hhbm5l
bFByb3ZpZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZXNzYWdlUG9ydElkZW50aWZpZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CkBAIC05Nyw3ICs5OCw3IEBAIGVu
dW0gY2xhc3MgQWxsb3dQcm9jZXNzQ2FjaGluZyB7IE5vLCBZZXMgfTsKIAogY2xhc3MgV2ViUHJv
Y2Vzc1Byb3h5IDogcHVibGljIEF1eGlsaWFyeVByb2Nlc3NQcm94eSwgcHVibGljIFJlc3BvbnNp
dmVuZXNzVGltZXI6OkNsaWVudCwgcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdlYlByb2Nl
c3NQcm94eT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxXZWJQcm9jZXNzUHJveHk+LCBwcml2YXRl
IFByb2Nlc3NUaHJvdHRsZXJDbGllbnQgewogcHVibGljOgotICAgIHR5cGVkZWYgSGFzaE1hcDx1
aW50NjRfdCwgUmVmUHRyPFdlYkZyYW1lUHJveHk+PiBXZWJGcmFtZVByb3h5TWFwOworICAgIHR5
cGVkZWYgSGFzaE1hcDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZlB0cjxXZWJGcmFtZVBy
b3h5Pj4gV2ViRnJhbWVQcm94eU1hcDsKICAgICB0eXBlZGVmIEhhc2hNYXA8V2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIsIFdlYlBhZ2VQcm94eSo+IFdlYlBhZ2VQcm94eU1hcDsKICAgICB0eXBlZGVm
IEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxBUEk6OlVzZXJJbml0aWF0ZWRBY3Rpb24+PiBVc2Vy
SW5pdGlhdGVkQWN0aW9uTWFwOwogCkBAIC0xNjQsOSArMTY1LDkgQEAgcHVibGljOgogICAgIFJl
c3BvbnNpdmVuZXNzVGltZXImIHJlc3BvbnNpdmVuZXNzVGltZXIoKSB7IHJldHVybiBtX3Jlc3Bv
bnNpdmVuZXNzVGltZXI7IH0KICAgICBib29sIGlzUmVzcG9uc2l2ZSgpIGNvbnN0OwogCi0gICAg
V2ViRnJhbWVQcm94eSogd2ViRnJhbWUodWludDY0X3QpIGNvbnN0OwotICAgIGJvb2wgY2FuQ3Jl
YXRlRnJhbWUodWludDY0X3QgZnJhbWVJRCkgY29uc3Q7Ci0gICAgdm9pZCBmcmFtZUNyZWF0ZWQo
dWludDY0X3QsIFdlYkZyYW1lUHJveHkmKTsKKyAgICBXZWJGcmFtZVByb3h5KiB3ZWJGcmFtZShX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpIGNvbnN0OworICAgIGJvb2wgY2FuQ3JlYXRlRnJhbWUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKSBjb25zdDsKKyAgICB2b2lkIGZyYW1lQ3JlYXRlZChX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkZyYW1lUHJveHkmKTsKICAgICB2b2lkIGRpc2Nv
bm5lY3RGcmFtZXNGcm9tUGFnZShXZWJQYWdlUHJveHkqKTsgLy8gSW5jbHVkaW5nIG1haW4gZnJh
bWUuCiAgICAgc2l6ZV90IGZyYW1lQ291bnRJblBhZ2UoV2ViUGFnZVByb3h5KikgY29uc3Q7IC8v
IEluY2x1ZGluZyBtYWluIGZyYW1lLgogCkBAIC0zMzUsNyArMzM2LDcgQEAgcHJvdGVjdGVkOgog
cHJpdmF0ZToKICAgICAvLyBJUEMgbWVzc2FnZSBoYW5kbGVycy4KICAgICB2b2lkIHVwZGF0ZUJh
Y2tGb3J3YXJkSXRlbShjb25zdCBCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUmKTsKLSAgICB2b2lk
IGRpZERlc3Ryb3lGcmFtZSh1aW50NjRfdCk7CisgICAgdm9pZCBkaWREZXN0cm95RnJhbWUoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZERlc3Ryb3lVc2VyR2VzdHVyZVRv
a2VuKHVpbnQ2NF90KTsKIAogICAgIGJvb2wgY2FuQmVBZGRlZFRvV2ViUHJvY2Vzc0NhY2hlKCkg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
bWVzc2FnZXMuaW4KaW5kZXggZjNkNWU5MzFlNmRlZTkwMmE0YWM1ZTVmYzViMTBkZDQ2MTViMTVk
MC4uMzJiYWZlYTllMTA5NThjMjVjZDE5NGRhMTg0NTM2YWQwOTNmNzUyZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAt
MjIsNyArMjIsNyBAQAogCiBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2
ZXIgewogICAgIFVwZGF0ZUJhY2tGb3J3YXJkSXRlbShzdHJ1Y3QgV2ViS2l0OjpCYWNrRm9yd2Fy
ZExpc3RJdGVtU3RhdGUgYmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlKQotICAgIERpZERlc3Ryb3lG
cmFtZSh1aW50NjRfdCBmcmFtZUlEKSAKKyAgICBEaWREZXN0cm95RnJhbWUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQpIAogCiAgICAgRGlkRGVzdHJveVVzZXJHZXN0dXJlVG9rZW4o
dWludDY0X3QgdXNlckdlc3R1cmVUb2tlbklEKSAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlldy5tbQppbmRleCA2ODExZTg3YTRhNDIxMDA1YmQ5NGE3YWMyMTY1
NDNlY2MwMGE3N2ZjLi5jMjk5MjE0NThhZjAxZmQ5N2E0MDA5MmM3MTNmNjdjNDFmZjc3ZTdlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQpAQCAtNzAx
LDkgKzcwMSw5IEBAIC0gKE5TVUludGVnZXIpX3drX3BhZ2VDb3VudEZvclByaW50Rm9ybWF0dGVy
OihfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIgKilwcmludEZvCiAgICAgaWYgKF9pc1ByaW50aW5n
VG9QREYpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgdWludDY0X3QgZnJhbWVJRDsKKyAgICBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRDsKICAgICBpZiAoX1dLRnJhbWVIYW5kbGUg
KmhhbmRsZSA9IHByaW50Rm9ybWF0dGVyLmZyYW1lVG9QcmludCkKLSAgICAgICAgZnJhbWVJRCA9
IGhhbmRsZS5fZnJhbWVJRDsKKyAgICAgICAgZnJhbWVJRCA9IFdlYkNvcmU6OmZyYW1lSWRlbnRp
ZmllckZyb21JRChoYW5kbGUuX2ZyYW1lSUQpOwogICAgIGVsc2UgaWYgKGF1dG8gbWFpbkZyYW1l
ID0gX3BhZ2UtPm1haW5GcmFtZSgpKQogICAgICAgICBmcmFtZUlEID0gbWFpbkZyYW1lLT5mcmFt
ZUlEKCk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdl
UHJveHlJT1MubW0KaW5kZXggYjAyODI0ODkyMDAzYTA0OTg5MjllNzA2YTU5MDQ1OWE0Zjg3MWFj
ZC4uODJkMzU0MjE3YjcwNjQyMDFlM2Q3YjA3NmU1YjA1OWI5NjAxMWNmMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC0xMDY2LDcgKzEw
NjYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlU21hcnRNYWduaWZpY2F0aW9uSW5mb3Jt
YXRpb25Gb3JQb3RlbnRpYWxUYXAodWludDY0X3QgcgogICAgIHBhZ2VDbGllbnQoKS5oYW5kbGVT
bWFydE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbkZvclBvdGVudGlhbFRhcChyZXF1ZXN0SUQsIHJl
bmRlclJlY3QsIGZpdEVudGlyZVJlY3QsIHZpZXdwb3J0TWluaW11bVNjYWxlLCB2aWV3cG9ydE1h
eGltdW1TY2FsZSk7CiB9CiAKLXVpbnQzMl90IFdlYlBhZ2VQcm94eTo6Y29tcHV0ZVBhZ2VzRm9y
UHJpbnRpbmdBbmREcmF3VG9QREYodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBw
cmludEluZm8sIERyYXdUb1BERkNhbGxiYWNrOjpDYWxsYmFja0Z1bmN0aW9uJiYgY2FsbGJhY2sp
Cit1aW50MzJfdCBXZWJQYWdlUHJveHk6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1Rv
UERGKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywg
RHJhd1RvUERGQ2FsbGJhY2s6OkNhbGxiYWNrRnVuY3Rpb24mJiBjYWxsYmFjaykKIHsKICAgICBp
ZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpIHsKICAgICAgICAgY2FsbGJhY2soSVBDOjpEYXRhUmVm
ZXJlbmNlKCksIENhbGxiYWNrQmFzZTo6RXJyb3I6Ok93bmVyV2FzSW52YWxpZGF0ZWQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlv
blNlc3Npb25Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9X
ZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNwcAppbmRleCBlNjM1M2NjZGQ1NGFkZmE1YWE1OTA1
Yjg5NzMwMzRiYzFjZTk1NmYyLi45NGZlOGE5ZTk3MzY5Y2ZkZjczMDVhNTc0OWQ0Y2NjN2M4M2Vk
Y2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJB
dXRvbWF0aW9uU2Vzc2lvblByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
QXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNwcApAQCAtMTQzLDcgKzE0Myw3
IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGV2YWx1YXRlSmF2YVNjcmlwdENhbGxiYWNrKEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmCiAgICAgaWYgKCFhdXRvbWF0aW9uU2Vzc2lvblBy
b3h5KQogICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiAKLSAg
ICB1aW50NjRfdCBmcmFtZUlEID0gSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1sw
XSwgZXhjZXB0aW9uKTsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCA9IFdl
YkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRChKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJn
dW1lbnRzWzBdLCBleGNlcHRpb24pKTsKICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gSlNWYWx1
ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1sxXSwgZXhjZXB0aW9uKTsKICAgICBhdXRvIHJl
c3VsdCA9IGFkb3B0UmVmKEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzJd
LCBleGNlcHRpb24pKTsKIApAQCAtMjIwLDcgKzIyMCw3IEBAIFdlYkNvcmU6OkVsZW1lbnQqIFdl
YkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmVsZW1lbnRGb3JOb2RlSGFuZGxlKFdlYkZyYW1lJiBm
cmFtCiAKIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZGlkQ2xlYXJXaW5kb3dPYmpl
Y3RGb3JGcmFtZShXZWJGcmFtZSYgZnJhbWUpCiB7Ci0gICAgdWludDY0X3QgZnJhbWVJRCA9IGZy
YW1lLmZyYW1lSUQoKTsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCA9IGZy
YW1lLmZyYW1lSUQoKTsKICAgICBpZiAoSlNPYmplY3RSZWYgc2NyaXB0T2JqZWN0ID0gbV93ZWJG
cmFtZVNjcmlwdE9iamVjdE1hcC50YWtlKGZyYW1lSUQpKQogICAgICAgICBKU1ZhbHVlVW5wcm90
ZWN0KGZyYW1lLmpzQ29udGV4dCgpLCBzY3JpcHRPYmplY3QpOwogCkBAIC0yMzIsNyArMjMyLDcg
QEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpkaWRDbGVhcldpbmRvd09iamVjdEZv
ckZyYW1lKFdlYkZyYW1lJiBmcmFtZSkKICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNl
c3Npb246OkRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKGNhbGxiYWNrSUQsIGVycm9yTWVz
c2FnZSwgZXJyb3JUeXBlKSwgMCk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eTo6ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFn
ZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIGZ1bmN0aW9uLCBWZWN0b3I8U3Ry
aW5nPiBhcmd1bWVudHMsIGJvb2wgZXhwZWN0c0ltcGxpY2l0Q2FsbGJhY2tBcmd1bWVudCwgaW50
IGNhbGxiYWNrVGltZW91dCwgdWludDY0X3QgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViQXV0b21hdGlv
blNlc3Npb25Qcm94eTo6ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3Qg
U3RyaW5nJiBmdW5jdGlvbiwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRzLCBib29sIGV4cGVjdHNJ
bXBsaWNpdENhbGxiYWNrQXJndW1lbnQsIGludCBjYWxsYmFja1RpbWVvdXQsIHVpbnQ2NF90IGNh
bGxiYWNrSUQpCiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsKQEAgLTI2Myw3ICsyNjMsNyBAQCB2
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9u
KFdlYkNvcmU6OlBhZ2VJZGVudGlmaQogICAgICAgICB0b0pTVmFsdWUoY29udGV4dCwgZnVuY3Rp
b24pLAogICAgICAgICB0b0pTQXJyYXkoY29udGV4dCwgYXJndW1lbnRzLCB0b0pTVmFsdWUsICZl
eGNlcHRpb24pLAogICAgICAgICBKU1ZhbHVlTWFrZUJvb2xlYW4oY29udGV4dCwgZXhwZWN0c0lt
cGxpY2l0Q2FsbGJhY2tBcmd1bWVudCksCi0gICAgICAgIEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRl
eHQsIGZyYW1lSUQpLAorICAgICAgICBKU1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCBmcmFtZUlE
LnRvVUludDY0KCkpLAogICAgICAgICBKU1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCBjYWxsYmFj
a0lEKSwKICAgICAgICAgSlNPYmplY3RNYWtlRnVuY3Rpb25XaXRoQ2FsbGJhY2soY29udGV4dCwg
bnVsbHB0ciwgZXZhbHVhdGVKYXZhU2NyaXB0Q2FsbGJhY2spLAogICAgICAgICBKU1ZhbHVlTWFr
ZU51bWJlcihjb250ZXh0LCBjYWxsYmFja1RpbWVvdXQpCkBAIC0zMDAsNyArMzAwLDcgQEAgdm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihX
ZWJDb3JlOjpQYWdlSWRlbnRpZmkKICAgICBkaWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihm
cmFtZUlELCBjYWxsYmFja0lELCBleGNlcHRpb25NZXNzYWdlLCBlcnJvclR5cGUpOwogfQogCi12
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0
aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFN0cmluZyYg
cmVzdWx0LCBjb25zdCBTdHJpbmcmIGVycm9yVHlwZSkKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b25Qcm94eTo6ZGlkRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFN0cmluZyYgcmVzdWx0
LCBjb25zdCBTdHJpbmcmIGVycm9yVHlwZSkKIHsKICAgICBhdXRvIGZpbmRSZXN1bHQgPSBtX3dl
YkZyYW1lUGVuZGluZ0V2YWx1YXRlSmF2YVNjcmlwdENhbGxiYWNrc01hcC5maW5kKGZyYW1lSUQp
OwogICAgIGlmIChmaW5kUmVzdWx0ICE9IG1fd2ViRnJhbWVQZW5kaW5nRXZhbHVhdGVKYXZhU2Ny
aXB0Q2FsbGJhY2tzTWFwLmVuZCgpKSB7CkBAIC0zMTMsMTIgKzMxMywxMiBAQCB2b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKHVpbnQ2
NF90IGZyYW1lSUQsCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb246OkRpZEV2YWx1
YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKGNhbGxiYWNrSUQsIHJlc3VsdCwgZXJyb3JUeXBlKSwgMCk7
CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVX
aXRoT3JkaW5hbChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQzMl90IG9yZGluYWwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3Ry
aW5nPiwgdWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJBdXRvbWF0aW9u
U2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhPcmRpbmFsKFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQz
Ml90IG9yZGluYWwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgT3B0
aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocGFn
ZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsKICAgICAgICAgU3RyaW5nIHdpbmRvd05vdEZvdW5kRXJy
b3JUeXBlID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1D
b25zdGFudFZhbHVlKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkVycm9yTWVzc2Fn
ZTo6V2luZG93Tm90Rm91bmQpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5kb3dOb3RG
b3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHdpbmRvd05vdEZv
dW5kRXJyb3JUeXBlLCBXVEY6Om51bGxvcHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBA
IC0zMjYsMzcgKzMyNiwzNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29s
dmVDaGlsZEZyYW1lV2l0aE9yZGluYWwoV2ViQ29yZTo6UGFnZUlkZW50aQogCiAgICAgV2ViRnJh
bWUqIGZyYW1lID0gZnJhbWVJRCA/IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZy
YW1lSUQpIDogcGFnZS0+bWFpbldlYkZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkgewotICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgV1RGOjpudWxsb3B0KTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWUg
PSBmcmFtZS0+Y29yZUZyYW1lKCk7CiAgICAgaWYgKCFjb3JlRnJhbWUpIHsKLSAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIFdURjo6bnVsbG9wdCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKICAgICBXZWJDb3JlOjpGcmFtZSogY29yZUNoaWxkRnJhbWUg
PSBjb3JlRnJhbWUtPnRyZWUoKS5zY29wZWRDaGlsZChvcmRpbmFsKTsKICAgICBpZiAoIWNvcmVD
aGlsZEZyYW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJv
clR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JU
eXBlLCBXVEY6Om51bGxvcHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgV2ViRnJh
bWUqIGNoaWxkRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqY29yZUNoaWxkRnJhbWUp
OwogICAgIGlmICghY2hpbGRGcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFt
ZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVO
b3RGb3VuZEVycm9yVHlwZSwgV1RGOjpudWxsb3B0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVsbG9wdCwgY2hpbGRGcmFtZS0+ZnJhbWVJ
RCgpKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRG
cmFtZVdpdGhOb2RlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0
X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhh
bmRsZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG5vZGVIYW5kbGUsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
Pik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsKICAgICAg
ICAgU3RyaW5nIHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVlKEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246OkVycm9yTWVzc2FnZTo6V2luZG93Tm90Rm91bmQpOwotICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlLCBXVEY6Om51bGxvcHQpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0zNjQsMzcgKzM2NCwzNyBAQCB2b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUoV2Vi
Q29yZTo6UGFnZUlkZQogCiAgICAgV2ViRnJhbWUqIGZyYW1lID0gZnJhbWVJRCA/IFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpIDogcGFnZS0+bWFpbldlYkZyYW1lKCk7
CiAgICAgaWYgKCFmcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZv
dW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3Vu
ZEVycm9yVHlwZSwgV1RGOjpudWxsb3B0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAg
IFdlYkNvcmU6OkVsZW1lbnQqIGNvcmVFbGVtZW50ID0gZWxlbWVudEZvck5vZGVIYW5kbGUoKmZy
YW1lLCBub2RlSGFuZGxlKTsKICAgICBpZiAoIWlzPFdlYkNvcmU6OkhUTUxGcmFtZUVsZW1lbnRC
YXNlPihjb3JlRWxlbWVudCkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RG
b3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91
bmRFcnJvclR5cGUsIFdURjo6bnVsbG9wdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAg
ICBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lRnJvbUVsZW1lbnQgPSBkb3duY2FzdDxXZWJDb3Jl
OjpIVE1MRnJhbWVFbGVtZW50QmFzZT4oKmNvcmVFbGVtZW50KS5jb250ZW50RnJhbWUoKTsKICAg
ICBpZiAoIWNvcmVGcmFtZUZyb21FbGVtZW50KSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihm
cmFtZU5vdEZvdW5kRXJyb3JUeXBlLCBXVEY6Om51bGxvcHQpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCiAgICAgV2ViRnJhbWUqIGZyYW1lRnJvbUVsZW1lbnQgPSBXZWJGcmFtZTo6ZnJvbUNv
cmVGcmFtZSgqY29yZUZyYW1lRnJvbUVsZW1lbnQpOwogICAgIGlmICghZnJhbWVGcm9tRWxlbWVu
dCkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAw
KTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgV1RG
OjpudWxsb3B0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGNvbXBsZXRpb25IYW5k
bGVyKFdURjo6bnVsbG9wdCwgZnJhbWVGcm9tRWxlbWVudC0+ZnJhbWVJRCgpKTsKIH0KIAotdm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2
NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoTmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdl
SUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG5hbWUs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgT3B0aW9uYWw8V2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUGFn
ZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBp
ZiAoIXBhZ2UpIHsKICAgICAgICAgU3RyaW5nIHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlID0gSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVl
KEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkVycm9yTWVzc2FnZTo6V2luZG93Tm90
Rm91bmQpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9yVHlw
ZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBl
LCBXVEY6Om51bGxvcHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC00MDIsMzcgKzQw
MiwzNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1l
V2l0aE5hbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZQogCiAgICAgV2ViRnJhbWUqIGZyYW1lID0g
ZnJhbWVJRCA/IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpIDogcGFn
ZS0+bWFpbldlYkZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkgewotICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgV1RGOjpudWxsb3B0KTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAogICAgIFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWUgPSBmcmFtZS0+Y29y
ZUZyYW1lKCk7CiAgICAgaWYgKCFjb3JlRnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIFdURjo6bnVsbG9wdCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKICAgICBXZWJDb3JlOjpGcmFtZSogY29yZUNoaWxkRnJhbWUgPSBjb3JlRnJhbWUt
PnRyZWUoKS5zY29wZWRDaGlsZChuYW1lKTsKICAgICBpZiAoIWNvcmVDaGlsZEZyYW1lKSB7Ci0g
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOworICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCBXVEY6Om51bGxv
cHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgV2ViRnJhbWUqIGNoaWxkRnJhbWUg
PSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqY29yZUNoaWxkRnJhbWUpOwogICAgIGlmICghY2hp
bGRGcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JU
eXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlw
ZSwgV1RGOjpudWxsb3B0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGNvbXBsZXRp
b25IYW5kbGVyKFdURjo6bnVsbG9wdCwgY2hpbGRGcmFtZS0+ZnJhbWVJRCgpKTsKIH0KIAotdm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlUGFyZW50RnJhbWUoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZVBhcmVudEZyYW1lKFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgT3B0aW9uYWw8V2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2Vi
UGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAg
ICBpZiAoIXBhZ2UpIHsKICAgICAgICAgU3RyaW5nIHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlID0g
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZh
bHVlKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkVycm9yTWVzc2FnZTo6V2luZG93
Tm90Rm91bmQpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9y
VHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JU
eXBlLCBXVEY6Om51bGxvcHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC00NDAsMjAg
KzQ0MCwyMCBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVQYXJlbnRG
cmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSQogCiAgICAgV2ViRnJhbWUqIGZyYW1l
ID0gZnJhbWVJRCA/IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpIDog
cGFnZS0+bWFpbldlYkZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkgewotICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgV1RGOjpudWxsb3B0KTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAogICAgIFdlYkZyYW1lKiBwYXJlbnRGcmFtZSA9IGZyYW1lLT5wYXJl
bnRGcmFtZSgpOwogICAgIGlmICghcGFyZW50RnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIFdURjo6bnVsbG9wdCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQsIHBhcmVudEZy
YW1lLT5mcmFtZUlEKCkpOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmZv
Y3VzRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlE
KQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpmb2N1c0ZyYW1lKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7
CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocGFn
ZUlEKTsKICAgICBpZiAoIXBhZ2UpCkBAIC01MjgsNyArNTI4LDcgQEAgc3RhdGljIFdlYkNvcmU6
OkZsb2F0UG9pbnQgY29udmVydFBvaW50RnJvbUZyYW1lQ2xpZW50VG9Sb290VmlldyhXZWJDb3Jl
OjpGcmFtZVYKICAgICByZXR1cm4gY2xpZW50UG9pbnQ7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlv
blNlc3Npb25Qcm94eTo6Y29tcHV0ZUVsZW1lbnRMYXlvdXQoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3Jv
bGxJbnRvVmlld0lmTmVlZGVkLCBDb29yZGluYXRlU3lzdGVtIGNvb3JkaW5hdGVTeXN0ZW0sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6SW50UmVjdCwg
T3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Y29tcHV0ZUVsZW1lbnRMYXlvdXQoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgQ29v
cmRpbmF0ZVN5c3RlbSBjb29yZGluYXRlU3lzdGVtLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9w
dGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkludFJlY3QsIE9wdGlvbmFsPFdlYkNvcmU6OkludFBv
aW50PiwgYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUGFnZSogcGFnZSA9
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBhZ2Up
IHsKQEAgLTYzNiw3ICs2MzYsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmNv
bXB1dGVFbGVtZW50TGF5b3V0KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZwogICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFdURjo6bnVsbG9wdCwgcmVzdWx0RWxlbWVudEJvdW5kcywgcmVzdWx0SW5W
aWV3Q2VudGVyUG9pbnQsIGlzT2JzY3VyZWQpOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNz
aW9uUHJveHk6OnNlbGVjdE9wdGlvbkVsZW1lbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFn
ZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2Vi
QXV0b21hdGlvblNlc3Npb25Qcm94eTo6c2VsZWN0T3B0aW9uRWxlbWVudChXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJp
bmcgbm9kZUhhbmRsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+KT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQYWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAgIGlmICghcGFnZSkgewpAQCAtNzA0LDcg
KzcwNCw3IEBAIHN0YXRpYyBXZWJDb3JlOjpJbnRSZWN0IHNuYXBzaG90UmVjdEZvclNjcmVlbnNo
b3QoV2ViUGFnZSYgcGFnZSwgV2ViQ29yZTo6RWxlbWVuCiAgICAgcmV0dXJuIHsgfTsKIH0KIAot
dm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojp0YWtlU2NyZWVuc2hvdChXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxl
LCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGJvb2wgY2xpcFRvVmlld3BvcnQsIHVpbnQ2
NF90IGNhbGxiYWNrSUQpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnRha2VTY3Jl
ZW5zaG90KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZO
ZWVkZWQsIGJvb2wgY2xpcFRvVmlld3BvcnQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7CiAgICAg
U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaGFuZGxlOwogCkBAIC03NTIsNyArNzUyLDcgQEAgdm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojp0YWtlU2NyZWVuc2hvdChXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciBwYWdlSUQsIHUKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6
RGlkVGFrZVNjcmVlbnNob3QoY2FsbGJhY2tJRCwgaGFuZGxlLCB7IH0pLCAwKTsKIH0KIAotdm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpnZXRDb29raWVzRm9yRnJhbWUoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+KT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Z2V0Q29va2ll
c0ZvckZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5n
PiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7
CiAgICAgaWYgKCFwYWdlKSB7CkBAIC03NzcsNyArNzc3LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9u
U2Vzc2lvblByb3h5OjpnZXRDb29raWVzRm9yRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
cGFnZUkKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQsIGZvdW5kQ29va2llcyk7
CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZGVsZXRlQ29va2llKFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIGNvb2tp
ZU5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRlbGV0ZUNvb2tp
ZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBTdHJpbmcgY29va2llTmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRp
b25hbDxTdHJpbmc+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQYWdlKiBwYWdl
ID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAgIGlmICghcGFn
ZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2Vi
QXV0b21hdGlvblNlc3Npb25Qcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9t
YXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5oCmluZGV4IDExNjc2NDUyNzdkYmMxOTMw
YTVhN2E1OTdkY2JjMmRmM2VjZjU1YzkuLmM5NTk0OGUxOTlkNjQyNDkxYzc4YzQyYzJlMWY5MjEz
MmRjMmEzZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9u
L1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmgKQEAgLTI4LDYgKzI4LDcg
QEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiQ29vcmRpbmF0ZVN5c3RlbS5o
IgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQmFzZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
RnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC01MSw3ICs1Miw3IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgZGlkQ2xlYXJXaW5kb3dPYmplY3RGb3JGcmFtZShXZWJGcmFtZSYpOwog
Ci0gICAgdm9pZCBkaWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbih1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBTdHJpbmcmIHJlc3VsdCwgY29uc3QgU3RyaW5n
JiBlcnJvclR5cGUpOworICAgIHZvaWQgZGlkRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBTdHJpbmcm
IHJlc3VsdCwgY29uc3QgU3RyaW5nJiBlcnJvclR5cGUpOwogCiBwcml2YXRlOgogICAgIEpTT2Jq
ZWN0UmVmIHNjcmlwdE9iamVjdEZvckZyYW1lKFdlYkZyYW1lJik7CkBAIC02MSwyMiArNjIsMjIg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwogCiAgICAgLy8gQ2FsbGVkIGJ5IFdlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHkgbWVzc2FnZXMKLSAgICB2b2lkIGV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0
aW9uKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJp
bmcmIGZ1bmN0aW9uLCBWZWN0b3I8U3RyaW5nPiBhcmd1bWVudHMsIGJvb2wgZXhwZWN0c0ltcGxp
Y2l0Q2FsbGJhY2tBcmd1bWVudCwgaW50IGNhbGxiYWNrVGltZW91dCwgdWludDY0X3QgY2FsbGJh
Y2tJRCk7Ci0gICAgdm9pZCByZXNvbHZlQ2hpbGRGcmFtZVdpdGhPcmRpbmFsKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBvcmRpbmFsLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4mJik7Ci0gICAgdm9p
ZCByZXNvbHZlQ2hpbGRGcmFtZVdpdGhOb2RlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
LCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG5vZGVIYW5kbGUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWludDY0X3QpPiYmKTsKLSAgICB2b2lkIHJl
c29sdmVDaGlsZEZyYW1lV2l0aE5hbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRp
b25hbDxTdHJpbmc+LCB1aW50NjRfdCk+JiYpOwotICAgIHZvaWQgcmVzb2x2ZVBhcmVudEZyYW1l
KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4mJik7Ci0gICAgdm9pZCBmb2N1
c0ZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2
b2lkIGNvbXB1dGVFbGVtZW50TGF5b3V0KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRf
dCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVk
LCBDb29yZGluYXRlU3lzdGVtLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmlu
Zz4sIFdlYkNvcmU6OkludFJlY3QsIE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiwgYm9vbCk+
JiYpOwotICAgIHZvaWQgc2VsZWN0T3B0aW9uRWxlbWVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+JiYpOwotICAgIHZvaWQgdGFrZVNjcmVlbnNob3QoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxl
LCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGJvb2wgY2xpcFRvVmlld3BvcnQsIHVpbnQ2
NF90IGNhbGxiYWNrSUQpOwotICAgIHZvaWQgZ2V0Q29va2llc0ZvckZyYW1lKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9w
dGlvbmFsPFN0cmluZz4sIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+KT4mJik7Ci0gICAgdm9pZCBk
ZWxldGVDb29raWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQsIFN0
cmluZyBjb29raWVOYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4p
PiYmKTsKKyAgICB2b2lkIGV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZnVuY3Rp
b24sIFZlY3RvcjxTdHJpbmc+IGFyZ3VtZW50cywgYm9vbCBleHBlY3RzSW1wbGljaXRDYWxsYmFj
a0FyZ3VtZW50LCBpbnQgY2FsbGJhY2tUaW1lb3V0LCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAg
ICB2b2lkIHJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGluYWwoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDMyX3Qgb3JkaW5hbCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXI+KT4mJik7CisgICAgdm9pZCByZXNvbHZlQ2hpbGRGcmFtZVdpdGhOb2RlSGFuZGxl
KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgbm9kZUhhbmRsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJp
bmc+LCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+KT4mJik7CisgICAgdm9pZCBy
ZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChPcHRpb25hbDxTdHJpbmc+LCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+
KT4mJik7CisgICAgdm9pZCByZXNvbHZlUGFyZW50RnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRp
b25hbDxTdHJpbmc+LCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+KT4mJik7Cisg
ICAgdm9pZCBmb2N1c0ZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIpOworICAgIHZvaWQgY29tcHV0ZUVsZW1lbnRMYXlvdXQoV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgU3RyaW5nIG5vZGVIYW5kbGUs
IGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgQ29vcmRpbmF0ZVN5c3RlbSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBXZWJDb3JlOjpJbnRSZWN0LCBPcHRpb25h
bDxXZWJDb3JlOjpJbnRQb2ludD4sIGJvb2wpPiYmKTsKKyAgICB2b2lkIHNlbGVjdE9wdGlvbkVs
ZW1lbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
U3RyaW5nIG5vZGVIYW5kbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5n
Pik+JiYpOworICAgIHZvaWQgdGFrZVNjcmVlbnNob3QoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xs
SW50b1ZpZXdJZk5lZWRlZCwgYm9vbCBjbGlwVG9WaWV3cG9ydCwgdWludDY0X3QgY2FsbGJhY2tJ
RCk7CisgICAgdm9pZCBnZXRDb29raWVzRm9yRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25h
bDxTdHJpbmc+LCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPik+JiYpOworICAgIHZvaWQgZGVsZXRl
Q29va2llKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IFN0cmluZyBjb29raWVOYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmlu
Zz4pPiYmKTsKIAogICAgIFN0cmluZyBtX3Nlc3Npb25JZGVudGlmaWVyOwogCi0gICAgSGFzaE1h
cDx1aW50NjRfdCwgSlNPYmplY3RSZWY+IG1fd2ViRnJhbWVTY3JpcHRPYmplY3RNYXA7Ci0gICAg
SGFzaE1hcDx1aW50NjRfdCwgVmVjdG9yPHVpbnQ2NF90Pj4gbV93ZWJGcmFtZVBlbmRpbmdFdmFs
dWF0ZUphdmFTY3JpcHRDYWxsYmFja3NNYXA7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIEpTT2JqZWN0UmVmPiBtX3dlYkZyYW1lU2NyaXB0T2JqZWN0TWFwOworICAgIEhh
c2hNYXA8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBWZWN0b3I8dWludDY0X3Q+PiBtX3dlYkZy
YW1lUGVuZGluZ0V2YWx1YXRlSmF2YVNjcmlwdENhbGxiYWNrc01hcDsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9t
YXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkubWVzc2Fn
ZXMuaW4KaW5kZXggZDcyZjg5ZDI2MzU5Y2YwMWNjZmQ1MzFlOTZlMDFmNDQ0MDlhYWY1OC4uYTdm
MmVkNWYxM2VmMzNiNWFmMmVkM2Q4YjgwM2UwMWVkYWFjMjc5OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJB
dXRvbWF0aW9uU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yMSwyMSArMjEsMjEgQEAKICMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KIAogbWVzc2FnZXMgLT4gV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eSB7Ci0g
ICAgRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFn
ZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgZnVuY3Rpb24sIFZlY3RvcjxTdHJpbmc+IGFy
Z3VtZW50cywgYm9vbCBleHBlY3RzSW1wbGljaXRDYWxsYmFja0FyZ3VtZW50LCBpbnQgY2FsbGJh
Y2tUaW1lb3V0LCB1aW50NjRfdCBjYWxsYmFja0lEKQorICAgIEV2YWx1YXRlSmF2YVNjcmlwdEZ1
bmN0aW9uKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIFN0cmluZyBmdW5jdGlvbiwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRz
LCBib29sIGV4cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJndW1lbnQsIGludCBjYWxsYmFja1RpbWVv
dXQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAKLSAgICBSZXNvbHZlQ2hpbGRGcmFtZVdpdGhPcmRp
bmFsKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgdWlu
dDMyX3Qgb3JkaW5hbCkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCB1aW50NjRfdCBm
cmFtZUlEKSBBc3luYwotICAgIFJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUoV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhh
bmRsZSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCB1aW50NjRfdCBmcmFtZUlEKSBB
c3luYwotICAgIFJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbmFtZSkgLT4gKE9wdGlvbmFsPFN0
cmluZz4gZXJyb3JUeXBlLCB1aW50NjRfdCBmcmFtZUlEKSBBc3luYwotICAgIFJlc29sdmVQYXJl
bnRGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQp
IC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgdWludDY0X3QgZnJhbWVJRCkgQXN5bmMK
KyAgICBSZXNvbHZlQ2hpbGRGcmFtZVdpdGhPcmRpbmFsKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQzMl90IG9yZGlu
YWwpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgT3B0aW9uYWw8V2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyPiBmcmFtZUlEKSBBc3luYworICAgIFJlc29sdmVDaGlsZEZyYW1lV2l0aE5v
ZGVIYW5kbGUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUpIC0+IChPcHRpb25hbDxTdHJpbmc+
IGVycm9yVHlwZSwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKSBB
c3luYworICAgIFJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIG5hbWUp
IC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyPiBmcmFtZUlEKSBBc3luYworICAgIFJlc29sdmVQYXJlbnRGcmFtZShXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
KSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcj4gZnJhbWVJRCkgQXN5bmMKIAotICAgIEZvY3VzRnJhbWUoV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlEKQorICAgIEZvY3VzRnJhbWUoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCkKIAotICAgIENvbXB1dGVFbGVtZW50TGF5b3V0KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xs
SW50b1ZpZXdJZk5lZWRlZCwgZW51bTp1aW50OF90IFdlYktpdDo6Q29vcmRpbmF0ZVN5c3RlbSBj
b29yZGluYXRlU3lzdGVtKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIFdlYkNvcmU6
OkludFJlY3QgcmVjdCwgT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+IGluVmlld0NlbnRlclBv
aW50LCBib29sIGlzT2JzY3VyZWQpIEFzeW5jCisgICAgQ29tcHV0ZUVsZW1lbnRMYXlvdXQoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgZW51
bTp1aW50OF90IFdlYktpdDo6Q29vcmRpbmF0ZVN5c3RlbSBjb29yZGluYXRlU3lzdGVtKSAtPiAo
T3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIFdlYkNvcmU6OkludFJlY3QgcmVjdCwgT3B0aW9u
YWw8V2ViQ29yZTo6SW50UG9pbnQ+IGluVmlld0NlbnRlclBvaW50LCBib29sIGlzT2JzY3VyZWQp
IEFzeW5jCiAKLSAgICBTZWxlY3RPcHRpb25FbGVtZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUpIC0+IChPcHRpb25h
bDxTdHJpbmc+IGVycm9yVHlwZSkgQXN5bmMKKyAgICBTZWxlY3RPcHRpb25FbGVtZW50KFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIFN0cmluZyBub2RlSGFuZGxlKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUpIEFz
eW5jCiAKLSAgICBUYWtlU2NyZWVuc2hvdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQs
IHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3
SWZOZWVkZWQsIGJvb2wgY2xpcFRvVmlld3BvcnQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAg
VGFrZVNjcmVlbnNob3QoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50
b1ZpZXdJZk5lZWRlZCwgYm9vbCBjbGlwVG9WaWV3cG9ydCwgdWludDY0X3QgY2FsbGJhY2tJRCkK
IAotICAgIEdldENvb2tpZXNGb3JGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQs
IHVpbnQ2NF90IGZyYW1lSUQpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgVmVjdG9y
PFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykgQXN5bmMKLSAgICBEZWxldGVDb29raWUoV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgY29va2ll
TmFtZSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlKSBBc3luYworICAgIEdldENvb2tp
ZXNGb3JGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlEKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIFZlY3Rv
cjxXZWJDb3JlOjpDb29raWU+IGNvb2tpZXMpIEFzeW5jCisgICAgRGVsZXRlQ29va2llKFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIFN0cmluZyBjb29raWVOYW1lKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUpIEFz
eW5jCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFt
ZS5tbQppbmRleCAwOTk3NjM3MmYwNzM3NTdlZWRiMTc0OTNkNzMxZmEwYTNkNDY2OGM2Li4yNTcz
ZTZkNDg1OWU1ZTBjZmU0YTY3ZjVmNGYzYmJhNmIzMGZlODY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1Bs
dWdJbkZyYW1lLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW0KQEAgLTQ4LDcgKzQ4LDcgQEAg
QGltcGxlbWVudGF0aW9uIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lIHsKIAogKyAoaW5zdGFuY2V0
eXBlKWxvb2tVcEZyYW1lRnJvbUhhbmRsZTooX1dLRnJhbWVIYW5kbGUgKiloYW5kbGUKIHsKLSAg
ICByZXR1cm4gd3JhcHBlcihXZWJLaXQ6OldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1l
KGhhbmRsZS5fZnJhbWVJRCkpOworICAgIHJldHVybiB3cmFwcGVyKFdlYktpdDo6V2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkud2ViRnJhbWUoV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKGhh
bmRsZS5fZnJhbWVJRCkpKTsKIH0KIAogLSAodm9pZClkZWFsbG9jCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0RnJhbWUu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dl
YktpdEZyYW1lLmNwcAppbmRleCBkYTY3OWRiMWI0ODJmMmI5ZmY4NzhjNDRjMGM5MDhkY2Y5N2U3
NGNjLi5hNGY1MmIyZTUwZmEyYzM3YTE4MjljOWU0ZTI2ZjQ4NjkwZTc1NWNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0
RnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ2xpYi9XZWJLaXRGcmFtZS5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgZ3VpbnQ2NCB3ZWJraXRf
ZnJhbWVfZ2V0X2lkKFdlYktpdEZyYW1lKiBmcmFtZSkKIHsKICAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChXRUJLSVRfSVNfRlJBTUUoZnJhbWUpLCAwKTsKIAotICAgIHJldHVybiBmcmFtZS0+cHJp
di0+d2ViRnJhbWUtPmZyYW1lSUQoKTsKKyAgICByZXR1cm4gZnJhbWUtPnByaXYtPndlYkZyYW1l
LT5mcmFtZUlEKCkudG9VSW50NjQoKTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKaW5kZXggYzQ4Y2Rk
ODU3OTRkOTIxNjk5NTIwYzJkODM4YTViNjcwZjNiMmZmMS4uNWRmYzQyNTc4ODRiYzI5MmE0ZGFl
OGM0NDVlOTJiNzMyN2E5NmNhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApAQCAtMTU5LDcgKzE1OSw3IEBAIHZv
aWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciYgcmVzb3Vy
Y2VMb2FkZXIsIENhY2hlZFJlc291CiAKICAgICBXZWJSZXNvdXJjZUxvYWRlcjo6VHJhY2tpbmdQ
YXJhbWV0ZXJzIHRyYWNraW5nUGFyYW1ldGVyczsKICAgICB0cmFja2luZ1BhcmFtZXRlcnMucGFn
ZUlEID0gZnJhbWVMb2FkZXJDbGllbnQucGFnZUlEKCkudmFsdWVPcihQYWdlSWRlbnRpZmllciB7
IH0pOwotICAgIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlEID0gZnJhbWVMb2FkZXJDbGllbnQu
ZnJhbWVJRCgpLnZhbHVlT3IoMCk7CisgICAgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQgPSBm
cmFtZUxvYWRlckNsaWVudC5mcmFtZUlEKCkudmFsdWVPcihGcmFtZUlkZW50aWZpZXIgeyB9KTsK
ICAgICB0cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCA9IGlkZW50aWZpZXI7CiAgICAgYXV0
byBzZXNzaW9uSUQgPSBmcmFtZUxvYWRlckNsaWVudC5zZXNzaW9uSUQoKTsKIApAQCAtMTY4LDcg
KzE2OCw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxv
YWRlciYgcmVzb3VyY2VMb2FkZXIsIENhY2hlZFJlc291CiAgICAgLy8gdGhlbiB3ZSBzaG91bGQg
cmVtZW1iZXIgdGhlIFJlc291cmNlTG9hZGVyIGluIG91ciByZWNvcmRzIGJ1dCBub3Qgc2NoZWR1
bGUgaXQgaW4gdGhlIE5ldHdvcmtQcm9jZXNzLgogICAgIGlmIChyZXNvdXJjZUxvYWRlci5kb2N1
bWVudExvYWRlcigpLT5zY2hlZHVsZUFyY2hpdmVMb2FkKHJlc291cmNlTG9hZGVyLCByZXNvdXJj
ZUxvYWRlci5yZXF1ZXN0KCkpKSB7CiAgICAgICAgIExPRyhOZXR3b3JrU2NoZWR1bGluZywgIihX
ZWJQcm9jZXNzKSBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkLCB1cmwgJyVzJyB3aWxs
IGJlIGhhbmRsZWQgYXMgYW4gYXJjaGl2ZSByZXNvdXJjZS4iLCByZXNvdXJjZUxvYWRlci51cmwo
KS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgaGFuZGxlZCBhcyBh
biBhcmNoaXZlIHJlc291cmNlIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VM
b2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFj
a2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7CisgICAgICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGhh
bmRsZWQgYXMgYW4gYXJjaGl2ZSByZXNvdXJjZSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIs
IHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50
NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmllcik7
CiAgICAgICAgIG1fd2ViUmVzb3VyY2VMb2FkZXJzLnNldChpZGVudGlmaWVyLCBXZWJSZXNvdXJj
ZUxvYWRlcjo6Y3JlYXRlKHJlc291cmNlTG9hZGVyLCB0cmFja2luZ1BhcmFtZXRlcnMpKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE3NiwxNCArMTc2LDE0IEBAIHZvaWQgV2ViTG9hZGVy
U3RyYXRlZ3k6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMb2FkZXIsIENh
Y2hlZFJlc291CiAKICAgICBpZiAocmVzb3VyY2VMb2FkZXIuZG9jdW1lbnRMb2FkZXIoKS0+YXBw
bGljYXRpb25DYWNoZUhvc3QoKS5tYXliZUxvYWRSZXNvdXJjZShyZXNvdXJjZUxvYWRlciwgcmVz
b3VyY2VMb2FkZXIucmVxdWVzdCgpLCByZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkudXJsKCkpKSB7
CiAgICAgICAgIExPRyhOZXR3b3JrU2NoZWR1bGluZywgIihXZWJQcm9jZXNzKSBXZWJMb2FkZXJT
dHJhdGVneTo6c2NoZWR1bGVMb2FkLCB1cmwgJyVzJyB3aWxsIGJlIGxvYWRlZCBmcm9tIGFwcGxp
Y2F0aW9uIGNhY2hlLiIsIHJlc291cmNlTG9hZGVyLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOwotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2No
ZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBsb2FkZWQgZnJvbSBhcHBsaWNhdGlvbiBjYWNoZSAoZnJh
bWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5n
UGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQs
IGlkZW50aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9h
ZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBsb2FkZWQgZnJvbSBhcHBsaWNhdGlvbiBj
YWNoZSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCks
IHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJz
LmZyYW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmllcik7CiAgICAgICAgIG1fd2ViUmVzb3VyY2VM
b2FkZXJzLnNldChpZGVudGlmaWVyLCBXZWJSZXNvdXJjZUxvYWRlcjo6Y3JlYXRlKHJlc291cmNl
TG9hZGVyLCB0cmFja2luZ1BhcmFtZXRlcnMpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIGlmIChyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkudXJsKCkucHJvdG9jb2xJc0RhdGEoKSkg
ewogICAgICAgICBMT0coTmV0d29ya1NjaGVkdWxpbmcsICIoV2ViUHJvY2VzcykgV2ViTG9hZGVy
U3RyYXRlZ3k6OnNjaGVkdWxlTG9hZCwgdXJsICclcycgd2lsbCBiZSBsb2FkZWQgYXMgZGF0YS4i
LCByZXNvdXJjZUxvYWRlci51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJM
IHdpbGwgYmUgbG9hZGVkIGFzIGRhdGEgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNv
dXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCks
IHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBpZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwg
YmUgbG9hZGVkIGFzIGRhdGEgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxv
YWRlci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNr
aW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIGlkZW50aWZpZXIpOwogICAgICAgICBz
dGFydExvY2FsTG9hZChyZXNvdXJjZUxvYWRlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBA
IC0xOTEsNyArMTkxLDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKFJl
c291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlciwgQ2FjaGVkUmVzb3UKICNpZiBVU0UoUVVJQ0tf
TE9PSykKICAgICBpZiAoaXNRdWlja0xvb2tQcmV2aWV3VVJMKHJlc291cmNlTG9hZGVyLnJlcXVl
c3QoKS51cmwoKSkpIHsKICAgICAgICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5nLCAiKFdlYlByb2Nl
c3MpIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQsIHVybCAnJXMnIHdpbGwgYmUgaGFu
ZGxlZCBhcyBhIFF1aWNrTG9vayByZXNvdXJjZS4iLCByZXNvdXJjZUxvYWRlci51cmwoKS5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNv
dXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgaGFuZGxlZCBhcyBhIFF1aWNr
TG9vayByZXNvdXJjZSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVy
LmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQ
YXJhbWV0ZXJzLmZyYW1lSUQsIGlkZW50aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBoYW5kbGVk
IGFzIGEgUXVpY2tMb29rIHJlc291cmNlIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVz
b3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgp
LCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsKICAg
ICAgICAgc3RhcnRMb2NhbExvYWQocmVzb3VyY2VMb2FkZXIpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtMjAyLDcgKzIwMiw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxl
TG9hZChSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMb2FkZXIsIENhY2hlZFJlc291CiAgICAgLy8g
aHR0cHM6Ly9ibG9ncy5nbm9tZS5vcmcvYWxleGwvMjAxMi8wMS8yNi9yZXNvdXJjZXMtaW4tZ2xp
Yi8KICAgICBpZiAocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnVybCgpLnByb3RvY29sSXMoInJl
c291cmNlIikpIHsKICAgICAgICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5nLCAiKFdlYlByb2Nlc3Mp
IFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQsIHVybCAnJXMnIHdpbGwgYmUgaGFuZGxl
ZCBhcyBhIEdSZXNvdXJjZS4iLCByZXNvdXJjZUxvYWRlci51cmwoKS5zdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwg
InNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgaGFuZGxlZCBhcyBhIEdSZXNvdXJjZSAoZnJhbWUg
PSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3Vy
Y2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFy
YW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIGlk
ZW50aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVy
LCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBoYW5kbGVkIGFzIGEgR1Jlc291cmNlIChmcmFt
ZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNv
dXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQ
YXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50
b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsKICAgICAgICAgc3RhcnRMb2NhbExvYWQocmVzb3VyY2VM
b2FkZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjEyLDExICsyMTIsMTEgQEAgdm9p
ZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiByZXNvdXJj
ZUxvYWRlciwgQ2FjaGVkUmVzb3UKICAgICBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXI6OnNpbmds
ZXRvbigpLmhhbmRsZUZldGNoKHJlc291cmNlTG9hZGVyLCBzZXNzaW9uSUQsIHNob3VsZENsZWFy
UmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFt0aGlzLCB0cmFja2luZ1BhcmFtZXRlcnMs
IGlkZW50aWZpZXIsIHNlc3Npb25JRCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBS
ZWRpcmVjdCwgbWF4aW11bUJ1ZmZlcmluZ1RpbWUgPSBtYXhpbXVtQnVmZmVyaW5nVGltZShyZXNv
dXJjZSksIHJlc291cmNlTG9hZGVyID0gbWFrZVJlZihyZXNvdXJjZUxvYWRlcildIChTZXJ2aWNl
V29ya2VyQ2xpZW50RmV0Y2g6OlJlc3VsdCByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAo
cmVzdWx0ICE9IFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6UmVzdWx0OjpVbmhhbmRsZWQpIHsK
ICAgICAgICAgICAgIExPRyhOZXR3b3JrU2NoZWR1bGluZywgIihXZWJQcm9jZXNzKSBXZWJMb2Fk
ZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkLCB1cmwgJyVzJyB3aWxsIGJlIHNjaGVkdWxlZCB0aHJv
dWdoIFNlcnZpY2VXb3JrZXIgaGFuZGxlIGZldGNoIGFsZ29yaXRobSIsIHJlc291cmNlTG9hZGVy
LT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwotICAgICAgICAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlci5nZXQoKSwgInNjaGVkdWxlTG9hZDogVVJMIHdp
bGwgYmUgc2NoZWR1bGVkIHRocm91Z2ggU2VydmljZVdvcmtlciBoYW5kbGUgZmV0Y2ggYWxnb3Jp
dGhtIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2
NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXItPmZyYW1lKCks
IHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJz
LmZyYW1lSUQsIGlkZW50aWZpZXIpOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RChyZXNvdXJjZUxvYWRlci5nZXQoKSwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgc2NoZWR1
bGVkIHRocm91Z2ggU2VydmljZVdvcmtlciBoYW5kbGUgZmV0Y2ggYWxnb3JpdGhtIChmcmFtZSA9
ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJj
ZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXItPmZyYW1lKCksIHRyYWNraW5nUGFy
YW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9V
SW50NjQoKSwgaWRlbnRpZmllcik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAg
ICAgICAgaWYgKHJlc291cmNlTG9hZGVyLT5vcHRpb25zKCkuc2VydmljZVdvcmtlcnNNb2RlID09
IFNlcnZpY2VXb3JrZXJzTW9kZTo6T25seSkgewotICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1JfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlci5nZXQoKSwgInNjaGVkdWxlTG9hZDogdW5hYmxl
IHRvIHNjaGVkdWxlIFVSTCB0aHJvdWdoIFNlcnZpY2VXb3JrZXIgaGFuZGxlIGZldGNoIGFsZ29y
aXRobSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLT5mcmFtZSgp
LCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVy
cy5mcmFtZUlELCBpZGVudGlmaWVyKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lG
X0FMTE9XRUQocmVzb3VyY2VMb2FkZXIuZ2V0KCksICJzY2hlZHVsZUxvYWQ6IHVuYWJsZSB0byBz
Y2hlZHVsZSBVUkwgdGhyb3VnaCBTZXJ2aWNlV29ya2VyIGhhbmRsZSBmZXRjaCBhbGdvcml0aG0g
KGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci0+ZnJhbWUoKSwgdHJh
Y2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJh
bWVJRC50b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsKICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJl
YWQoW3Jlc291cmNlTG9hZGVyID0gV1RGTW92ZShyZXNvdXJjZUxvYWRlcildIHsKICAgICAgICAg
ICAgICAgICBhdXRvIGVycm9yID0gaW50ZXJuYWxFcnJvcihyZXNvdXJjZUxvYWRlci0+cmVxdWVz
dCgpLnVybCgpKTsKICAgICAgICAgICAgICAgICBlcnJvci5zZXRUeXBlKFJlc291cmNlRXJyb3I6
OlR5cGU6OkNhbmNlbGxhdGlvbik7CkBAIC0yMjgsMTMgKzIyOCwxMyBAQCB2b2lkIFdlYkxvYWRl
clN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTG9hZGVyLCBD
YWNoZWRSZXNvdQogICAgICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkxvYWRl
clN0cmF0ZWd5KCkudHJ5TG9hZGluZ1VzaW5nVVJMU2NoZW1lSGFuZGxlcihyZXNvdXJjZUxvYWRl
cikpCiAgICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJMb2FkZXJTdHJhdGVn
eSgpLnNjaGVkdWxlTG9hZEZyb21OZXR3b3JrUHJvY2VzcyhyZXNvdXJjZUxvYWRlci5nZXQoKSwg
cmVzb3VyY2VMb2FkZXItPnJlcXVlc3QoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLCBzZXNzaW9uSUQs
IHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIG1heGltdW1CdWZmZXJp
bmdUaW1lKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RChyZXNvdXJjZUxvYWRlci5nZXQoKSwgInNjaGVkdWxlTG9hZDogVVJMIG5vdCBoYW5kbGVkIGJ5
IGFueSBoYW5kbGVycyAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVy
LT5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5n
UGFyYW1ldGVycy5mcmFtZUlELCBpZGVudGlmaWVyKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIuZ2V0KCksICJzY2hlZHVsZUxvYWQ6IFVSTCBub3Qg
aGFuZGxlZCBieSBhbnkgaGFuZGxlcnMgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNv
dXJjZUxvYWRlci0+ZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgp
LCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsKICAg
ICB9KTsKICNlbHNlCiAgICAgaWYgKCF0cnlMb2FkaW5nVXNpbmdVUkxTY2hlbWVIYW5kbGVyKHJl
c291cmNlTG9hZGVyKSkKICAgICAgICAgc2NoZWR1bGVMb2FkRnJvbU5ldHdvcmtQcm9jZXNzKHJl
c291cmNlTG9hZGVyLCByZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCksIHRyYWNraW5nUGFyYW1ldGVy
cywgc2Vzc2lvbklELCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBt
YXhpbXVtQnVmZmVyaW5nVGltZShyZXNvdXJjZSkpOwogICAgIGVsc2UKLSAgICAgICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIG5vdCBo
YW5kbGVkIGJ5IGFueSBoYW5kbGVycyAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIs
IGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291
cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwg
dHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIGlkZW50aWZpZXIpOworICAgICAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgbm90IGhh
bmRsZWQgYnkgYW55IGhhbmRsZXJzIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3Vy
Y2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0
cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsKICNlbmRp
ZgogfQogCkBAIC0zMjUsNyArMzI1LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1
bGVMb2FkRnJvbU5ldHdvcmtQcm9jZXNzKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUwKICAgICBp
ZiAobG9hZFBhcmFtZXRlcnMub3B0aW9ucy5tb2RlICE9IEZldGNoT3B0aW9uczo6TW9kZTo6TmF2
aWdhdGUpIHsKICAgICAgICAgQVNTRVJUKGxvYWRQYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbik7CiAg
ICAgICAgIGlmICghbG9hZFBhcmFtZXRlcnMuc291cmNlT3JpZ2luKSB7Ci0gICAgICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2Fk
OiBubyBzb3VyY2VPcmlnaW4gKGZyYW1lID0gJXAsIHByaW9yaXR5ID0gJWQsIHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQg
IikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlTG9h
ZGVyLnJlcXVlc3QoKS5wcmlvcml0eSgpKSwgbG9hZFBhcmFtZXRlcnMud2ViUGFnZUlELnRvVUlu
dDY0KCksIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQsIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZp
ZXIpOworICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChyZXNvdXJjZUxv
YWRlciwgInNjaGVkdWxlTG9hZDogbm8gc291cmNlT3JpZ2luIChmcmFtZSA9ICVwLCBwcmlvcml0
eSA9ICVkLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNv
dXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgc3RhdGljX2Nh
c3Q8aW50PihyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkucHJpb3JpdHkoKSksIGxvYWRQYXJhbWV0
ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUlu
dDY0KCksIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIpOwogICAgICAgICAgICAgc2NoZWR1bGVJ
bnRlcm5hbGx5RmFpbGVkTG9hZChyZXNvdXJjZUxvYWRlcik7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KQEAgLTM0OCw5ICszNDgsOSBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpz
Y2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTAog
CiAgICAgQVNTRVJUKChsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQgJiYgbG9hZFBhcmFtZXRlcnMu
d2ViRnJhbWVJRCkgfHwgbG9hZFBhcmFtZXRlcnMuY2xpZW50Q3JlZGVudGlhbFBvbGljeSA9PSBD
bGllbnRDcmVkZW50aWFsUG9saWN5OjpDYW5ub3RBc2tDbGllbnRGb3JDcmVkZW50aWFscyk7CiAK
LSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2Fk
OiBSZXNvdXJjZSBpcyBiZWluZyBzY2hlZHVsZWQgd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3MgKGZy
YW1lID0gJXAsIHByaW9yaXR5ID0gJWQsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5m
cmFtZSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS5wcmlvcml0
eSgpKSwgbG9hZFBhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJz
LndlYkZyYW1lSUQsIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIpOworICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFJlc291cmNlIGlzIGJl
aW5nIHNjaGVkdWxlZCB3aXRoIHRoZSBOZXR3b3JrUHJvY2VzcyAoZnJhbWUgPSAlcCwgcHJpb3Jp
dHkgPSAlZCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHN0YXRpY19j
YXN0PGludD4ocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnByaW9yaXR5KCkpLCBsb2FkUGFyYW1l
dGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJ
bnQ2NCgpLCBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyKTsKICAgICBpZiAoIVdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24o
KS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6U2NoZWR1bGVS
ZXNvdXJjZUxvYWQobG9hZFBhcmFtZXRlcnMpLCAwKSkgewotICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUl9JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVbmFibGUgdG8g
c2NoZWR1bGUgcmVzb3VyY2Ugd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3MgKGZyYW1lID0gJXAsIHBy
aW9yaXR5ID0gJWQsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCBzdGF0
aWNfY2FzdDxpbnQ+KHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS5wcmlvcml0eSgpKSwgbG9hZFBh
cmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQs
IGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9J
Rl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVbmFibGUgdG8gc2NoZWR1
bGUgcmVzb3VyY2Ugd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3MgKGZyYW1lID0gJXAsIHByaW9yaXR5
ID0gJWQsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCBzdGF0aWNfY2Fz
dDxpbnQ+KHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS5wcmlvcml0eSgpKSwgbG9hZFBhcmFtZXRl
cnMud2ViUGFnZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50
NjQoKSwgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllcik7CiAgICAgICAgIC8vIFdlIHByb2JhYmx5
IGZhaWxlZCB0byBzY2hlZHVsZSB0aGlzIGxvYWQgd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3MgYmVj
YXVzZSBpdCBoYWQgY3Jhc2hlZC4KICAgICAgICAgLy8gVGhpcyBsb2FkIHdpbGwgbmV2ZXIgc3Vj
Y2VlZCBzbyB3ZSB3aWxsIHNjaGVkdWxlIGl0IHRvIGZhaWwgYXN5bmNocm9ub3VzbHkuCiAgICAg
ICAgIHNjaGVkdWxlSW50ZXJuYWxseUZhaWxlZExvYWQocmVzb3VyY2VMb2FkZXIpOwpAQCAtNTIw
LDE4ICs1MjAsMTggQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hy
b25vdXNseShGcmFtZUxvYWRlciYgZnJhbWVMb2FkZXIsIHVuc2kKICAgICBXZWJQYWdlKiB3ZWJQ
YWdlID0gd2ViRnJhbWUgPyB3ZWJGcmFtZS0+cGFnZSgpIDogbnVsbHB0cjsKIAogICAgIGF1dG8g
cGFnZUlEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnBhZ2VJRCgpIDogUGFnZUlkZW50aWZpZXIgeyB9
OwotICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZyYW1lID8gd2ViRnJhbWUtPmZyYW1lSUQoKSA6IDA7
CisgICAgYXV0byBmcmFtZUlEID0gd2ViRnJhbWUgPyB3ZWJGcmFtZS0+ZnJhbWVJRCgpIDogRnJh
bWVJZGVudGlmaWVyIHsgfTsKICAgICBhdXRvIHNlc3Npb25JRCA9IHdlYlBhZ2UgPyB3ZWJQYWdl
LT5zZXNzaW9uSUQoKSA6IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CiAKICAg
ICBhdXRvKiBkb2N1bWVudCA9IGZyYW1lTG9hZGVyLmZyYW1lKCkuZG9jdW1lbnQoKTsKICAgICBp
ZiAoIWRvY3VtZW50KSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoc2Vz
c2lvbklELCAibG9hZFJlc291cmNlU3luY2hyb25vdXNseTogbm8gZG9jdW1lbnQgKHBhZ2VJRCA9
ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlbHUpIiwg
cGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQsIHJlc291cmNlTG9hZElkZW50aWZpZXIpOworICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHNlc3Npb25JRCwgImxvYWRSZXNvdXJj
ZVN5bmNocm9ub3VzbHk6IG5vIGRvY3VtZW50IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJWx1KSIsIHBhZ2VJRC50b1VJbnQ2NCgpLCBm
cmFtZUlELnRvVUludDY0KCksIHJlc291cmNlTG9hZElkZW50aWZpZXIpOwogICAgICAgICBlcnJv
ciA9IGludGVybmFsRXJyb3IocmVxdWVzdC51cmwoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKICAgICBpZiAoYXV0byBzeW5jTG9hZFJlc3VsdCA9IHRyeUxvYWRpbmdTeW5jaHJvbm91c2x5
VXNpbmdVUkxTY2hlbWVIYW5kbGVyKGZyYW1lTG9hZGVyLCByZXNvdXJjZUxvYWRJZGVudGlmaWVy
LCByZXF1ZXN0KSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHNlc3Np
b25JRCwgImxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6IGZhaWxlZCBjYWxsaW5nIHRyeUxvYWRp
bmdTeW5jaHJvbm91c2x5VXNpbmdVUkxTY2hlbWVIYW5kbGVyIChwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJWx1LCBlcnJvciA9ICVkKSIs
IHBhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELCByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBzeW5j
TG9hZFJlc3VsdC0+ZXJyb3IuZXJyb3JDb2RlKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJP
Ul9JRl9BTExPV0VEKHNlc3Npb25JRCwgImxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6IGZhaWxl
ZCBjYWxsaW5nIHRyeUxvYWRpbmdTeW5jaHJvbm91c2x5VXNpbmdVUkxTY2hlbWVIYW5kbGVyIChw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JWx1LCBlcnJvciA9ICVkKSIsIHBhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCks
IHJlc291cmNlTG9hZElkZW50aWZpZXIsIHN5bmNMb2FkUmVzdWx0LT5lcnJvci5lcnJvckNvZGUo
KSk7CiAgICAgICAgIGVycm9yID0gV1RGTW92ZShzeW5jTG9hZFJlc3VsdC0+ZXJyb3IpOwogICAg
ICAgICByZXNwb25zZSA9IFdURk1vdmUoc3luY0xvYWRSZXN1bHQtPnJlc3BvbnNlKTsKICAgICAg
ICAgZGF0YSA9IFdURk1vdmUoc3luY0xvYWRSZXN1bHQtPmRhdGEpOwpAQCAtNTY5LDcgKzU2OSw3
IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoRnJh
bWVMb2FkZXImIGZyYW1lTG9hZGVyLCB1bnNpCiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQ
b29sOjpTZXRXZWJQcm9jZXNzSGFzVXBsb2FkcyB7IFByb2Nlc3M6OmlkZW50aWZpZXIoKSB9LCAw
KTsKIAogICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6UGVyZm9ybVN5bmNocm9ub3VzTG9hZChsb2FkUGFyYW1ldGVy
cyksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGVyZm9ybVN5bmNo
cm9ub3VzTG9hZDo6UmVwbHkoZXJyb3IsIHJlc3BvbnNlLCBkYXRhKSwgMCkpIHsKLSAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChzZXNzaW9uSUQsICJsb2FkUmVzb3VyY2VTeW5j
aHJvbm91c2x5OiBmYWlsZWQgc2VuZGluZyBzeW5jaHJvbm91cyBuZXR3b3JrIHByb2Nlc3MgbWVz
c2FnZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3Vy
Y2VJRCA9ICVsdSkiLCBwYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCwgcmVzb3VyY2VMb2FkSWRl
bnRpZmllcik7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoc2Vzc2lvbklE
LCAibG9hZFJlc291cmNlU3luY2hyb25vdXNseTogZmFpbGVkIHNlbmRpbmcgc3luY2hyb25vdXMg
bmV0d29yayBwcm9jZXNzIG1lc3NhZ2UgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlbHUpIiwgcGFnZUlELnRvVUludDY0KCksIGZyYW1l
SUQudG9VSW50NjQoKSwgcmVzb3VyY2VMb2FkSWRlbnRpZmllcik7CiAgICAgICAgIGlmIChhdXRv
KiBwYWdlID0gd2ViUGFnZSA/IHdlYlBhZ2UtPmNvcmVQYWdlKCkgOiBudWxscHRyKQogICAgICAg
ICAgICAgcGFnZS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2Fn
ZShXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmludGVybmFsRXJyb3JLZXkoKSwgV2Vi
Q29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpzeW5jaHJvbm91c01lc3NhZ2VGYWlsZWRLZXko
KSwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlOjpObyk7CiAgICAgICAgIHJlc3BvbnNlID0gUmVzb3Vy
Y2VSZXNwb25zZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDg4YmQ1M2JmMWY4ZmI3MzZlYjE3M2VmNjRm
MWUzMDNkMWJiMTAwYzEuLmZhNTM5MjVlYjY4ZjA0MmZlYzc5YmYzODg2MGIyNzYwMzI1ZmI1MWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNl
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNv
dXJjZUxvYWRlci5jcHAKQEAgLTg4LDE2ICs4OCwxNiBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVy
Ojp3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcHJvcG9zZWRSZXF1ZXN0LCBSZXNv
dQogICAgIFJlZjxXZWJSZXNvdXJjZUxvYWRlcj4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAKICAg
ICBMT0coTmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRS
ZXF1ZXN0IHRvICclcyciLCBwcm9wb3NlZFJlcXVlc3QudXJsKCkuc3RyaW5nKCkubGF0aW4xKCku
ZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3aWxsU2VuZFJlcXVlc3Q6IChw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1f
dHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNl
SUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIndpbGxTZW5kUmVxdWVzdDogKHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQ
Ukl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFj
a2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5y
ZXNvdXJjZUlEKTsKIAogICAgIGlmIChtX2NvcmVMb2FkZXItPmRvY3VtZW50TG9hZGVyKCktPmFw
cGxpY2F0aW9uQ2FjaGVIb3N0KCkubWF5YmVMb2FkRmFsbGJhY2tGb3JSZWRpcmVjdChtX2NvcmVM
b2FkZXIuZ2V0KCksIHByb3Bvc2VkUmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSkpIHsKLSAgICAg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgid2lsbFNlbmRSZXF1ZXN0OiBleGl0aW5nIGVhcmx5
IGJlY2F1c2UgbWF5YmVMb2FkRmFsbGJhY2tGb3JSZWRpcmVjdCByZXR1cm5lZCBmYWxzZSAocGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUi
IFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Ry
YWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlE
KTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgid2lsbFNlbmRSZXF1ZXN0OiBleGl0
aW5nIGVhcmx5IGJlY2F1c2UgbWF5YmVMb2FkRmFsbGJhY2tGb3JSZWRpcmVjdCByZXR1cm5lZCBm
YWxzZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3Vy
Y2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2
NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQ
YXJhbWV0ZXJzLnJlc291cmNlSUQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgbV9j
b3JlTG9hZGVyLT53aWxsU2VuZFJlcXVlc3QoV1RGTW92ZShwcm9wb3NlZFJlcXVlc3QpLCByZWRp
cmVjdFJlc3BvbnNlLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhp
cyldKFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QpIHsKICAgICAgICAgaWYgKCFtX2NvcmVMb2Fk
ZXIgfHwgIW1fY29yZUxvYWRlci0+aWRlbnRpZmllcigpKSB7Ci0gICAgICAgICAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKCJ3aWxsU2VuZFJlcXVlc3Q6IGV4aXRpbmcgZWFybHkgYmVjYXVzZSBu
byBjb3JlbG9hZGVyIG9yIGlkZW50aWZpZXIgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFy
YW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwg
bV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAgICAgICAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKCJ3aWxsU2VuZFJlcXVlc3Q6IGV4aXRpbmcgZWFybHkgYmVjYXVzZSBubyBj
b3JlbG9hZGVyIG9yIGlkZW50aWZpZXIgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1l
dGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJ
bnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogCkBAIC0xMTMsMTIgKzExMywxMiBAQCB2b2lkIFdlYlJlc291cmNl
TG9hZGVyOjpkaWRTZW5kRGF0YSh1aW50NjRfdCBieXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0
ZXNUb0JlUwogdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZl
UmVzcG9uc2VNZXNzYWdlKQogewogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJl
c291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UgZm9yICclcycuIFN0YXR1cyAlZC4iLCBt
X2NvcmVMb2FkZXItPnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSwgcmVzcG9uc2UuaHR0
cFN0YXR1c0NvZGUoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJl
c3BvbnNlOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBzdGF0dXMgPSAlZCkiLCBtX3RyYWNraW5nUGFyYW1ldGVy
cy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFj
a2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSk7Cisg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiAocGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2
NCAiLCBzdGF0dXMgPSAlZCkiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQo
KSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFy
YW1ldGVycy5yZXNvdXJjZUlELCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpKTsKIAogICAgIFJl
ZjxXZWJSZXNvdXJjZUxvYWRlcj4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAKICAgICBpZiAobV9j
b3JlTG9hZGVyLT5kb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLm1heWJl
TG9hZEZhbGxiYWNrRm9yUmVzcG9uc2UobV9jb3JlTG9hZGVyLmdldCgpLCByZXNwb25zZSkpIHsK
LSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiBub3Qg
Y29udGludWluZyBsb2FkIGJlY2F1c2UgdGhlIGNvbnRlbnQgaXMgYWxyZWFkeSBjYWNoZWQgKHBh
Z2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAl
IiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90
cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJ
RCk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZTog
bm90IGNvbnRpbnVpbmcgbG9hZCBiZWNhdXNlIHRoZSBjb250ZW50IGlzIGFscmVhZHkgY2FjaGVk
IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlE
ID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCks
IG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFt
ZXRlcnMucmVzb3VyY2VJRCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEzNSw3ICsx
MzUsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGJvbwogICAgICAgICAgICAgaWYgKG1fY29yZUxv
YWRlciAmJiBtX2NvcmVMb2FkZXItPmlkZW50aWZpZXIoKSkKICAgICAgICAgICAgICAgICBzZW5k
KE1lc3NhZ2VzOjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OkNvbnRpbnVlRGlkUmVjZWl2ZVJlc3Bv
bnNlKCkpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZTogbm90IGNvbnRpbnVpbmcgbG9hZCBiZWNhdXNl
IG5vIGNvcmVMb2FkZXIgb3Igbm8gSUQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1l
dGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90
cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiBub3QgY29udGludWluZyBsb2FkIGJl
Y2F1c2Ugbm8gY29yZUxvYWRlciBvciBubyBJRCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQ
YXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlE
LnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwogICAgICAgICB9
OwogICAgIH0KIApAQCAtMTQ4LDcgKzE0OCw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRp
ZFJlY2VpdmVEYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgaW50NjRfdCBlCiAg
ICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghbV9pc1Byb2Nlc3NpbmdOZXR3b3JrUmVzcG9uc2UsICJO
ZXR3b3JrIHByb2Nlc3Mgc2hvdWxkIG5vdCBzZW5kIGRhdGEgdW50aWwgd2UndmUgdmFsaWRhdGVk
IHRoZSByZXNwb25zZSIpOwogCiAgICAgaWYgKCFtX251bUJ5dGVzUmVjZWl2ZWQpIHsKLSAgICAg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZURhdGE6IFN0YXJ0ZWQgcmVjZWl2
aW5nIGRhdGEgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJl
c291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9V
SW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRl
cnMucmVzb3VyY2VJRCk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2Vp
dmVEYXRhOiBTdGFydGVkIHJlY2VpdmluZyBkYXRhIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2lu
Z1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1l
SUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CiAgICAgfQog
ICAgIG1fbnVtQnl0ZXNSZWNlaXZlZCArPSBkYXRhLnNpemUoKTsKIApAQCAtMTU4LDcgKzE1OCw3
IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IElQQzo6RGF0
YVJlZmVyZW5jZSYgZGF0YSwgaW50NjRfdCBlCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRG
aW5pc2hSZXNvdXJjZUxvYWQoY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3JrTG9hZE1l
dHJpY3MpCiB7CiAgICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2Fk
ZXI6OmRpZEZpbmlzaFJlc291cmNlTG9hZCBmb3IgJyVzJyIsIG1fY29yZUxvYWRlci0+dXJsKCku
c3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJk
aWRGaW5pc2hSZXNvdXJjZUxvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGxlbmd0aCA9ICV6ZCkiLCBtX3Ry
YWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMu
ZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCwgbV9udW1CeXRlc1JlY2Vp
dmVkKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRGaW5pc2hSZXNvdXJjZUxvYWQ6
IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlE
ID0gJSIgUFJJdTY0ICIsIGxlbmd0aCA9ICV6ZCkiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdl
SUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBt
X3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlELCBtX251bUJ5dGVzUmVjZWl2ZWQpOwogCiAg
ICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghbV9pc1Byb2Nlc3NpbmdOZXR3b3JrUmVzcG9uc2UsICJM
b2FkIHNob3VsZCBub3QgYmUgYWJsZSB0byBmaW5pc2ggYmVmb3JlIHdlJ3ZlIHZhbGlkYXRlZCB0
aGUgcmVzcG9uc2UiKTsKICAgICBtX2NvcmVMb2FkZXItPmRpZEZpbmlzaExvYWRpbmcobmV0d29y
a0xvYWRNZXRyaWNzKTsKQEAgLTE2Nyw3ICsxNjcsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVy
OjpkaWRGaW5pc2hSZXNvdXJjZUxvYWQoY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3Jr
TAogdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbFJlc291cmNlTG9hZChjb25zdCBSZXNv
dXJjZUVycm9yJiBlcnJvcikKIHsKICAgICBMT0coTmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJS
ZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbFJlc291cmNlTG9hZCBmb3IgJyVzJyIsIG1fY29yZUxvYWRl
ci0+dXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJkaWRGYWlsUmVzb3VyY2VMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQ
YXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlE
LCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJkaWRGYWlsUmVzb3VyY2VMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQ
YXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlE
LnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwogCiAgICAgQVNT
RVJUX1dJVEhfTUVTU0FHRSghbV9pc1Byb2Nlc3NpbmdOZXR3b3JrUmVzcG9uc2UsICJMb2FkIHNo
b3VsZCBub3QgYmUgYWJsZSB0byBmaW5pc2ggYmVmb3JlIHdlJ3ZlIHZhbGlkYXRlZCB0aGUgcmVz
cG9uc2UiKTsKIApAQCAtMTc5LDcgKzE3OSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRp
ZEZhaWxSZXNvdXJjZUxvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB2b2lkIFdlYlJl
c291cmNlTG9hZGVyOjpkaWRCbG9ja0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCkKIHsKICAgICBM
T0coTmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkQmxvY2tBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSBmb3IgJyVzJyIsIG1fY29yZUxvYWRlci0+dXJsKCkuc3RyaW5n
KCkubGF0aW4xKCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRCbG9j
a0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJh
bWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBt
X3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKCJkaWRCbG9ja0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOiAocGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1f
dHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVy
cy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwog
CiAgICAgbV9jb3JlTG9hZGVyLT5kaWRCbG9ja0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCk7CiB9
CkBAIC0xODcsNyArMTg3LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkQmxvY2tBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSgpCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpzdG9wTG9hZGlu
Z0FmdGVyWEZyYW1lT3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVkKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nl
c3MpIFdlYlJlc291cmNlTG9hZGVyOjpzdG9wTG9hZGluZ0FmdGVyWEZyYW1lT3B0aW9uc09yQ29u
dGVudFNlY3VyaXR5UG9saWN5RGVuaWVkIGZvciAnJXMnIiwgbV9jb3JlTG9hZGVyLT51cmwoKS5z
dHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0
b3BMb2FkaW5nQWZ0ZXJYRnJhbWVPcHRpb25zT3JDb250ZW50U2VjdXJpdHlQb2xpY3lEZW5pZWQ6
IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlE
ID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCks
IG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291
cmNlSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0b3BMb2FkaW5nQWZ0ZXJYRnJh
bWVPcHRpb25zT3JDb250ZW50U2VjdXJpdHlQb2xpY3lEZW5pZWQ6IChwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwg
bV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0
ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7
CiAKICAgICBtX2NvcmVMb2FkZXItPmRvY3VtZW50TG9hZGVyKCktPnN0b3BMb2FkaW5nQWZ0ZXJY
RnJhbWVPcHRpb25zT3JDb250ZW50U2VjdXJpdHlQb2xpY3lEZW5pZWQobV9jb3JlTG9hZGVyLT5p
ZGVudGlmaWVyKCksIHJlc3BvbnNlKTsKIH0KQEAgLTE5NiwxMyArMTk2LDEzIEBAIHZvaWQgV2Vi
UmVzb3VyY2VMb2FkZXI6OnN0b3BMb2FkaW5nQWZ0ZXJYRnJhbWVPcHRpb25zT3JDb250ZW50U2Vj
dXJpdHlQb2xpY3lEZW5pCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzb3Vy
Y2UoY29uc3QgU2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSYgaGFuZGxlKQogewogICAgIExPRyhO
ZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzb3Vy
Y2UgZm9yICclcyciLCBtX2NvcmVMb2FkZXItPnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEo
KSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc291cmNlOiAocGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUi
IFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Ry
YWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlE
KTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzb3VyY2U6IChwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIg
UFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJh
Y2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMu
cmVzb3VyY2VJRCk7CiAKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBoYW5kbGUu
dHJ5V3JhcEluU2hhcmVkQnVmZmVyKCk7CiAKICAgICBpZiAoIWJ1ZmZlcikgewogICAgICAgICBM
T0dfRVJST1IoIlVuYWJsZSB0byBjcmVhdGUgYnVmZmVyIGZyb20gU2hhcmVhYmxlUmVzb3VyY2Ug
c2VudCBmcm9tIHRoZSBuZXR3b3JrIHByb2Nlc3MuIik7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoImRpZFJlY2VpdmVSZXNvdXJjZTogVW5hYmxlIHRvIGNyZWF0ZSBTaGFyZWRCdWZm
ZXIgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNl
SUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQo
KSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVz
b3VyY2VJRCk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNv
dXJjZTogVW5hYmxlIHRvIGNyZWF0ZSBTaGFyZWRCdWZmZXIgKHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3Ry
YWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMu
ZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKICAg
ICAgICAgaWYgKGF1dG8qIGZyYW1lID0gbV9jb3JlTG9hZGVyLT5mcmFtZSgpKSB7CiAgICAgICAg
ICAgICBpZiAoYXV0byogcGFnZSA9IGZyYW1lLT5wYWdlKCkpCiAgICAgICAgICAgICAgICAgcGFn
ZS0+ZGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZShXZWJDb3Jl
OjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmludGVybmFsRXJyb3JLZXkoKSwgV2ViQ29yZTo6RGlh
Z25vc3RpY0xvZ2dpbmdLZXlzOjpjcmVhdGVTaGFyZWRCdWZmZXJGYWlsZWRLZXkoKSwgV2ViQ29y
ZTo6U2hvdWxkU2FtcGxlOjpObyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaAppbmRleCA1ODY1NDM3MThlNWU4Mzg4YjhiNDFh
YjAyMDM3YWM3NmU3ODY5MzdjLi45YzExNDdkYTA1MTUzZGQ3YWM0NGFmMzE1ODFlMjIxYjY5YmU5
MjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNv
dXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJl
c291cmNlTG9hZGVyLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgi
CiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZVJlc291cmNl
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CkBAIC01Miw3ICs1Myw3IEBAIGNsYXNzIFdlYlJlc291cmNlTG9h
ZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViUmVzb3VyY2VMb2FkZXI+LCBwdWJsaWMgSVBDOjpN
ZXNzCiBwdWJsaWM6CiAgICAgc3RydWN0IFRyYWNraW5nUGFyYW1ldGVycyB7CiAgICAgICAgIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRDsKLSAgICAgICAgdWludDY0X3QgZnJhbWVJRCB7
IDAgfTsKKyAgICAgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQ7CiAgICAgICAg
IFJlc291cmNlTG9hZElkZW50aWZpZXIgcmVzb3VyY2VJRCB7IDAgfTsKICAgICB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKaW5kZXggNmZjMDljNGY2NWIyNDViNjBiZjRk
NGY1OTdhOWY5MGFkNGQwYWFmOS4uNDlkMjBjN2M0OWMwMmFhOTU5YWE0YWU0ZDllZWM4ZmU4M2M1
ZmU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcApAQCAtNzMsNyArNzMs
NyBAQCBzdGF0aWMgY29uc3QgU2Vjb25kcyBzeW5jV29ya2VyVGVybWluYXRpb25UaW1lb3V0IHsg
MTAwX21zIH07IC8vIE9ubHkgdXNlZCBieSBsYQogCiBjbGFzcyBTZXJ2aWNlV29ya2VyRnJhbWVM
b2FkZXJDbGllbnQgZmluYWwgOiBwdWJsaWMgRW1wdHlGcmFtZUxvYWRlckNsaWVudCB7CiBwdWJs
aWM6Ci0gICAgU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50KFdlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5n
JiB1c2VyQWdlbnQpCisgICAgU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50KFdlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50KQogICAgICAgICA6IG1fY29ubmVjdGlvbihjb25u
ZWN0aW9uKQogICAgICAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAgICAgLCBtX3Bh
Z2VJRChwYWdlSUQpCkBAIC05NiwxMyArOTYsMTMgQEAgcHJpdmF0ZToKIAogICAgIFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CiAg
ICAgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1fcGFnZUlEOyB9Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KKyAgICBPcHRpb25hbDxXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXI+IGZyYW1lSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2ZyYW1lSUQ7
IH0KICAgICBTdHJpbmcgdXNlckFnZW50KGNvbnN0IFVSTCYpIGZpbmFsIHsgcmV0dXJuIG1fdXNl
ckFnZW50OyB9CiAKICAgICBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiYgbV9jb25uZWN0
aW9uOwogICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwotICAgIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIG1fcGFnZUlEOwotICAgIHVpbnQ2NF90IG1fZnJhbWVJRCB7IDAgfTsKKyAgICBQ
YWdlSWRlbnRpZmllciBtX3BhZ2VJRDsKKyAgICBGcmFtZUlkZW50aWZpZXIgbV9mcmFtZUlEOwog
ICAgIFN0cmluZyBtX3VzZXJBZ2VudDsKIH07CiAKQEAgLTE1Myw3ICsxNTMsOCBAQCB2b2lkIFdl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjppbnN0YWxsU2VydmljZVdvcmtlcihjb25zdCBT
ZXJ2aWNlV29ya2VyQ29udAogCiAgICAgLy8gRklYTUU6IFRoaXMgbWV0aG9kIHNob3VsZCBiZSBt
b3ZlZCBkaXJlY3RseSB0byBXZWJDb3JlOjpTV0NvbnRleHRNYW5hZ2VyOjpDb25uZWN0aW9uCiAg
ICAgLy8gSWYgaXQgd2VyZW4ndCBmb3IgU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50J3Mg
ZGVwZW5kZW5jZSBvbiBXZWJEb2N1bWVudExvYWRlciwgdGhpcyBjb3VsZCBhbHJlYWR5IGhhcHBl
bi4KLSAgICBhdXRvIGZyYW1lTG9hZGVyQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxTZXJ2aWNl
V29ya2VyRnJhbWVMb2FkZXJDbGllbnQ+KCp0aGlzLCBzZXNzaW9uSUQsIG1fcGFnZUlELCArK21f
cHJldmlvdXNTZXJ2aWNlV29ya2VySUQsIGVmZmVjdGl2ZVVzZXJBZ2VudCk7CisgICAgLy8gRklY
TUU6IFdlaXJkIHRvIHBhc3MgbV9wcmV2aW91c1NlcnZpY2VXb3JrZXJJRCBhcyBhIEZyYW1lSWRl
bnRpZmllci4KKyAgICBhdXRvIGZyYW1lTG9hZGVyQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxT
ZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQ+KCp0aGlzLCBzZXNzaW9uSUQsIG1fcGFnZUlE
LCBmcmFtZUlkZW50aWZpZXJGcm9tSUQoKyttX3ByZXZpb3VzU2VydmljZVdvcmtlcklEKSwgZWZm
ZWN0aXZlVXNlckFnZW50KTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JN
YWluRnJhbWUgPSBmcmFtZUxvYWRlckNsaWVudC5nZXQoKTsKICAgICBtX2xvYWRlcnMuYWRkKFdU
Rk1vdmUoZnJhbWVMb2FkZXJDbGllbnQpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAz
Yzg3MmY1YWRmMzliZWFjZDNhNzA2NjdiMjY4OWQzOGM5YjExMTJlLi5mY2QwOThlNDg0MGE1OGEy
YjVhMjE5N2ViNTI5MWUwYTRmNDgyOWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMjY1
LDcgKzI2NSw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpmb2N1c2VkRnJhbWVDaGFuZ2VkKEZy
YW1lKiBmcmFtZSkKIHsKICAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBmcmFtZSA/IFdlYkZyYW1l
Ojpmcm9tQ29yZUZyYW1lKCpmcmFtZSkgOiBudWxscHRyOwogCi0gICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpGb2N1c2VkRnJhbWVDaGFuZ2VkKHdlYkZyYW1lID8gd2ViRnJhbWUtPmZyYW1lSUQo
KSA6IDApLCBtX3BhZ2UucGFnZUlEKCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBh
cmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Rm9j
dXNlZEZyYW1lQ2hhbmdlZCh3ZWJGcmFtZSA/IG1ha2VPcHRpb25hbCh3ZWJGcmFtZS0+ZnJhbWVJ
RCgpKSA6IFdURjo6bnVsbG9wdCksIG1fcGFnZS5wYWdlSUQoKSk7CiB9CiAKIFBhZ2UqIFdlYkNo
cm9tZUNsaWVudDo6Y3JlYXRlV2luZG93KEZyYW1lJiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVx
dWVzdCYgcmVxdWVzdCwgY29uc3QgV2luZG93RmVhdHVyZXMmIHdpbmRvd0ZlYXR1cmVzLCBjb25z
dCBOYXZpZ2F0aW9uQWN0aW9uJiBuYXZpZ2F0aW9uQWN0aW9uKQpAQCAtNjI1LDcgKzYyNSw3IEBA
IHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lJiBmcmFtZSwg
Y29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uCiAgICAgICAgIFdlYkZyYW1lKiBsYXJnZXN0RnJhbWUg
PSBmaW5kTGFyZ2VzdEZyYW1lSW5GcmFtZVNldChtX3BhZ2UpOwogICAgICAgICBpZiAobGFyZ2Vz
dEZyYW1lICE9IG1fY2FjaGVkRnJhbWVTZXRMYXJnZXN0RnJhbWUuZ2V0KCkpIHsKICAgICAgICAg
ICAgIG1fY2FjaGVkRnJhbWVTZXRMYXJnZXN0RnJhbWUgPSBsYXJnZXN0RnJhbWU7Ci0gICAgICAg
ICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGcmFtZVNldExhcmdlc3RG
cmFtZUNoYW5nZWQobGFyZ2VzdEZyYW1lID8gbGFyZ2VzdEZyYW1lLT5mcmFtZUlEKCkgOiAwKSk7
CisgICAgICAgICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGcmFtZVNl
dExhcmdlc3RGcmFtZUNoYW5nZWQobGFyZ2VzdEZyYW1lID8gbWFrZU9wdGlvbmFsKGxhcmdlc3RG
cmFtZS0+ZnJhbWVJRCgpKSA6IFdURjo6bnVsbG9wdCkpOwogICAgICAgICB9CiAgICAgfQogCkBA
IC0xMzE2LDEyICsxMzE2LDEyIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRJbnZhbGlkYXRl
RG9jdW1lbnRNYXJrZXJSZWN0cygpCiB9CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKQotdm9pZCBXZWJDaHJvbWVDbGllbnQ6Omhhc1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFi
bGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgUmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURv
bWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6
aGFzU3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdp
c3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgbV9wYWdlLmhhc1N0b3JhZ2VBY2Nlc3MoV1RGTW92ZShzdWJGcmFt
ZURvbWFpbiksIFdURk1vdmUodG9wRnJhbWVEb21haW4pLCBmcmFtZUlELCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0U3RvcmFn
ZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdpc3RyYWJsZURv
bWFpbiYmIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFj
Y2Vzc1Byb21wdFdhc1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1l
RG9tYWluLCBSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFn
ZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgbV9wYWdlLnJlcXVlc3RTdG9yYWdlQWNjZXNzKFdURk1vdmUo
c3ViRnJhbWVEb21haW4pLCBXVEZNb3ZlKHRvcEZyYW1lRG9tYWluKSwgZnJhbWVJRCwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGNlZDM2YTZj
MjViN2U0ZjgzNDRhNTg5OTQwMDY3OTFmN2NjOTI3NmYuLjJkYzY2MjJjMWI3ZjFjNWE5NWEyY2Nk
NzliMzIwOWJiNTg3MmE2MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTM2Nyw4ICszNjcsOCBA
QCBwcml2YXRlOgogICAgIHZvaWQgZGlkSW52YWxpZGF0ZURvY3VtZW50TWFya2VyUmVjdHMoKSBm
aW5hbDsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgdm9pZCBo
YXNTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21h
aW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90
IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpIGZpbmFsOwotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9y
YWdlQWNjZXNzV2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3du
KT4mJikgZmluYWw7CisgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYg
dG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7Cisg
ICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYm
IHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9t
YWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBX
VEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50
ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYpIGZpbmFsOwogI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAKaW5kZXggNjU3MzliYjhhYTk2ZGZlOGMyYjBlMjZjMTcxYTlmOWI3NmI3MzQw
OS4uNzA5ODBlZTViNWI4ZDcwMzdlNDViM2YyYWYzZTJiYjFmYTAzOTRhOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0xMjAsNyArMTIwLDcgQEAgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpwYWdlSUQoKSBjb25zdAogICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CiB9CiAKLU9wdGlvbmFsPHVpbnQ2NF90PiBXZWJGcmFtZUxvYWRlckNs
aWVudDo6ZnJhbWVJRCgpIGNvbnN0CitPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpmcmFtZUlEKCkgY29uc3QKIHsKICAgICBpZiAobV9mcmFtZSkKICAgICAg
ICAgcmV0dXJuIG1fZnJhbWUtPmZyYW1lSUQoKTsKQEAgLTU0Niw3ICs1NDYsNyBAQCB2b2lkIFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3Qg
UmVzb3VyY2VFcnJvciYgZQogICAgIGlmICghd2ViUGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgUkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0ICIpIiwgdGhpcywgd2ViUGFnZS0+cGFnZUlEKCkudG9VSW50NjQoKSwgbV9m
cmFtZS0+ZnJhbWVJRCgpKTsKKyAgICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkOiAocGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIikiLCB0aGlzLCB3ZWJQYWdlLT5wYWdl
SUQoKS50b1VJbnQ2NCgpLCBtX2ZyYW1lLT5mcmFtZUlEKCkudG9VSW50NjQoKSk7CiAKICAgICBS
ZWZQdHI8QVBJOjpPYmplY3Q+IHVzZXJEYXRhOwogCkBAIC01ODIsNyArNTgyLDcgQEAgdm9pZCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZChjb25zdCBSZXNvdXJjZUVy
cm9yJiBlcnJvcikKICAgICBpZiAoIXdlYlBhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJF
TEVBU0VfTE9HKE5ldHdvcmssICIlcCAtIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERp
ZEZhaWxMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiki
LCB0aGlzLCB3ZWJQYWdlLT5wYWdlSUQoKS50b1VJbnQ2NCgpLCBtX2ZyYW1lLT5mcmFtZUlEKCkp
OworICAgIFJFTEVBU0VfTE9HKE5ldHdvcmssICIlcCAtIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaERpZEZhaWxMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQ
Ukl1NjQgIikiLCB0aGlzLCB3ZWJQYWdlLT5wYWdlSUQoKS50b1VJbnQ2NCgpLCBtX2ZyYW1lLT5m
cmFtZUlEKCkudG9VSW50NjQoKSk7CiAKICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IHVzZXJEYXRh
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGM4ZmIyYWYyMTI1NjZjNjQ2ODYw
NzdhMGM4OWFmODEwNTM5MGE2ODAuLjY0MWI4YzA2NjM0MTM4MGMwNzAyODIwYjg3ODlkZDE4NWU4
YmIwNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC01Miw3ICs1Miw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGFwcGx5VG9Eb2N1bWVudExvYWRlcihXZWJzaXRlUG9saWNpZXNEYXRh
JiYpOwogCiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCgpIGNv
bnN0IGZpbmFsOwotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEKCkgY29uc3QgZmluYWw7
CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKCkgY29uc3Qg
ZmluYWw7CiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgZmluYWw7CiAKICNp
ZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5jcHAKaW5kZXggNzM4YmU5MmI5MmRjNzNk
MmRmNjc3ZWUzNGVjMTMwODFhNjBmMWExYy4uZjZjNTU3ZDVmMGZkMjAxZGJiNTA1MTE0N2ViYzI3
MGE1YjQ1Y2YzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViQ29va2llSmFyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJDb29raWVKYXIuY3BwCkBAIC01MCw3ICs1MCw3IEBAIFdlYkNvb2tpZUphcjo6V2ViQ29va2ll
SmFyKCkKIAogU3RyaW5nIFdlYkNvb2tpZUphcjo6Y29va2llcyhXZWJDb3JlOjpEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsKSBjb25zdAogewotICAgIE9wdGlvbmFsPHVpbnQ2NF90
PiBmcmFtZUlEOworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBP
cHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IGRv
Y3VtZW50LmZyYW1lKCkpIHsKICAgICAgICAgZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5jbGll
bnQoKS5mcmFtZUlEKCk7CkBAIC02Nyw3ICs2Nyw3IEBAIFN0cmluZyBXZWJDb29raWVKYXI6OmNv
b2tpZXMoV2ViQ29yZTo6RG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCkgY29uc3QK
IAogdm9pZCBXZWJDb29raWVKYXI6OnNldENvb2tpZXMoV2ViQ29yZTo6RG9jdW1lbnQmIGRvY3Vt
ZW50LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpCiB7Ci0gICAg
T3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVy
PiBmcmFtZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7CiAgICAgaWYg
KGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkgewogICAgICAgICBmcmFtZUlEID0gZnJh
bWUtPmxvYWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKTsKQEAgLTg1LDcgKzg1LDcgQEAgYm9vbCBX
ZWJDb29raWVKYXI6OmNvb2tpZXNFbmFibGVkKGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50JiBkb2N1
bWVudCkgY29uc3QKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGQ6OnBhaXI8U3RyaW5nLCBX
ZWJDb3JlOjpTZWN1cmVDb29raWVzQWNjZXNzZWQ+IFdlYkNvb2tpZUphcjo6Y29va2llUmVxdWVz
dEhlYWRlckZpZWxkVmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5m
bywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQ
YWdlSWRlbnRpZmllcj4gcGFnZUlELCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNs
dWRlU2VjdXJlQ29va2llcykgY29uc3QKK3N0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvcmU6OlNlY3Vy
ZUNvb2tpZXNBY2Nlc3NlZD4gV2ViQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRW
YWx1ZShjb25zdCBQQUw6OlNlc3Npb25JRCYgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwm
IHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRl
bnRpZmllcj4gcGFnZUlELCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2Vj
dXJlQ29va2llcykgY29uc3QKIHsKICAgICBTdHJpbmcgY29va2llU3RyaW5nOwogICAgIGJvb2wg
c2VjdXJlQ29va2llc0FjY2Vzc2VkID0gZmFsc2U7CkBAIC05Niw3ICs5Niw3IEBAIHN0ZDo6cGFp
cjxTdHJpbmcsIFdlYkNvcmU6OlNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gV2ViQ29va2llSmFyOjpj
b29raWVSZXF1ZXN0SGVhCiAKIGJvb2wgV2ViQ29va2llSmFyOjpnZXRSYXdDb29raWVzKGNvbnN0
IFdlYkNvcmU6OkRvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwsIFZlY3RvcjxXZWJD
b3JlOjpDb29raWU+JiByYXdDb29raWVzKSBjb25zdAogewotICAgIE9wdGlvbmFsPHVpbnQ2NF90
PiBmcmFtZUlEOworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBP
cHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IGRv
Y3VtZW50LmZyYW1lKCkpIHsKICAgICAgICAgZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5jbGll
bnQoKS5mcmFtZUlEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJDb29raWVKYXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YkNvb2tpZUphci5oCmluZGV4IDU1OWJkMGU1MGJiZWMzNWZmYjI1NmI5MTJiN2I0NmRhOTk0YjJk
NDguLjVkY2FjZGQ5NjhlNmE0YjA2MjdjNzg3YzZkYTFhNTE1NDcxYmY4OGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5oCkBAIC0zNiw3ICsz
Niw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgY29va2llcyhXZWJDb3JlOjpEb2N1bWVudCYsIGNv
bnN0IFVSTCYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgc2V0Q29va2llcyhXZWJDb3JlOjpEb2N1
bWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKSBmaW5hbDsKICAg
ICBib29sIGNvb2tpZXNFbmFibGVkKGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50JikgY29uc3QgZmlu
YWw7Ci0gICAgc3RkOjpwYWlyPFN0cmluZywgV2ViQ29yZTo6U2VjdXJlQ29va2llc0FjY2Vzc2Vk
PiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBQQUw6OlNlc3Npb25JRCYsIGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3Qg
VVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyPiwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0IGZpbmFsOwor
ICAgIHN0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvcmU6OlNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gY29v
a2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBjb25zdCBV
UkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYs
IE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyPiwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0IGZpbmFs
OwogICAgIGJvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBXZWJDb3JlOjpEb2N1bWVudCYsIGNvbnN0
IFVSTCYsIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBk
ZWxldGVDb29raWUoY29uc3QgV2ViQ29yZTo6RG9jdW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBT
dHJpbmcmIGNvb2tpZU5hbWUpIGZpbmFsOwogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAppbmRleCA2MGNmZDhkMmExNzU0YTdhY2VkNThk
NjFkZjE3YmU0YzE0MzEzNjk0Li5mMGViZmVkYmIyZTk1M2FkMGZjMDdmOWY4MTY2MDlkYjk3MzVi
NjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFt
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3Bw
CkBAIC05NSwxMiArOTUsNiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogREVGSU5FX0RF
QlVHX09OTFlfR0xPQkFMKFdURjo6UmVmQ291bnRlZExlYWtDb3VudGVyLCB3ZWJGcmFtZUNvdW50
ZXIsICgiV2ViRnJhbWUiKSk7CiAKLXN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUZyYW1lSUQoKQot
ewotICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVGcmFtZUlEID0gMTsKLSAgICByZXR1cm4gdW5p
cXVlRnJhbWVJRCsrOwotfQotCiBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVMaXN0ZW5lcklEKCkK
IHsKICAgICBzdGF0aWMgdWludDY0X3QgdW5pcXVlTGlzdGVuZXJJRCA9IDE7CkBAIC0xNDgsNyAr
MTQyLDcgQEAgUmVmPFdlYkZyYW1lPiBXZWJGcmFtZTo6Y3JlYXRlKHN0ZDo6dW5pcXVlX3B0cjxX
ZWJGcmFtZUxvYWRlckNsaWVudD4gZnJhbWVMb2FkZXIKIAogV2ViRnJhbWU6OldlYkZyYW1lKHN0
ZDo6dW5pcXVlX3B0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4gZnJhbWVMb2FkZXJDbGllbnQpCiAg
ICAgOiBtX2ZyYW1lTG9hZGVyQ2xpZW50KFdURk1vdmUoZnJhbWVMb2FkZXJDbGllbnQpKQotICAg
ICwgbV9mcmFtZUlEKGdlbmVyYXRlRnJhbWVJRCgpKQorICAgICwgbV9mcmFtZUlEKEZyYW1lSWRl
bnRpZmllcjo6Z2VuZXJhdGUoKSkKIHsKICAgICBtX2ZyYW1lTG9hZGVyQ2xpZW50LT5zZXRXZWJG
cmFtZSh0aGlzKTsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRXZWJGcmFtZShtX2Zy
YW1lSUQsIHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViRnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1l
LmgKaW5kZXggNzFiMzhmNjFhYjE5NTA1NWI0NDdlODdiZmZmN2U5NjQwNmRlZWE5Yy4uMWVjNTA3
NTQyNTdmODY2ZWIyYWU4ZWM0Y2IwYzZkMWZmZTg2NTZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCkBAIC04MCw3ICs4MCw3IEBAIHB1YmxpYzoKICAg
ICBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9jb3JlRnJhbWU7
IH0KIAogICAgIEZyYW1lSW5mb0RhdGEgaW5mbygpIGNvbnN0OwotICAgIHVpbnQ2NF90IGZyYW1l
SUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQogCiAgICAgZW51bSBj
bGFzcyBGb3JOYXZpZ2F0aW9uQWN0aW9uIHsgTm8sIFllcyB9OwogICAgIHVpbnQ2NF90IHNldFVw
UG9saWN5TGlzdGVuZXIoV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpG
cmFtZVBvbGljeUZ1bmN0aW9uJiYsIEZvck5hdmlnYXRpb25BY3Rpb24pOwpAQCAtMTg3LDcgKzE4
Nyw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50
PiBtX2ZyYW1lTG9hZGVyQ2xpZW50OwogICAgIExvYWRMaXN0ZW5lciogbV9sb2FkTGlzdGVuZXIg
eyBudWxscHRyIH07CiAgICAgCi0gICAgdWludDY0X3QgbV9mcmFtZUlEIHsgMCB9OworICAgIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX2ZyYW1lSUQ7CiAKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogICAgIHVpbnQ2NF90IG1fZmlyc3RMYXllclRyZWVUcmFuc2FjdGlvbklEQWZ0ZXJEaWRD
b21taXRMb2FkIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkluc3BlY3Rvci5jcHAKaW5kZXggZjI4ZGU1NjhlYzUxNWE1MWMzOGUwOWNhYWM0NGVhNzdm
MjFkM2RiZS4uMWYwMTZhZWFkYTk5NmY5NjNkZDVlNGVmYjk2ZDBjYWZlNjBhZDYxNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCkBA
IC0yMDksNyArMjA5LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3I6OnNob3dSZXNvdXJjZXMoKQogICAg
IH0pOwogfQogCi12b2lkIFdlYkluc3BlY3Rvcjo6c2hvd01haW5SZXNvdXJjZUZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSWRlbnRpZmllcikKK3ZvaWQgV2ViSW5zcGVjdG9yOjpzaG93TWFpblJlc291
cmNlRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSWRlbnRpZmllcikKIHsK
ICAgICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShm
cmFtZUlkZW50aWZpZXIpOwogICAgIGlmICghZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oCmluZGV4IDQ4OWU0MWMwNzRmYzM2M2IzODAx
MTYxN2I0Yzc1ODI0ZGY1OWQ0N2IuLjI2Yjg5ZTUyMjc3OTc4ZDUzYTMzZmUzYzcxMTVlYWViYmIz
ODI5NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYklu
c3BlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3Bl
Y3Rvci5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTYwLDcgKzYxLDcgQEAgcHVi
bGljOgogICAgIHZvaWQgc2hvd0NvbnNvbGUoKTsKICAgICB2b2lkIHNob3dSZXNvdXJjZXMoKTsK
IAotICAgIHZvaWQgc2hvd01haW5SZXNvdXJjZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSWRlbnRp
Zmllcik7CisgICAgdm9pZCBzaG93TWFpblJlc291cmNlRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyKTsKIAogICAgIHZvaWQgc2V0QXR0YWNoZWQoYm9vbCBhdHRhY2hlZCkgeyBtX2F0
dGFjaGVkID0gYXR0YWNoZWQ7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLm1lc3NhZ2VzLmluCmluZGV4IGI2ZjNjMDFiMjQy
MjI2YTIwZmI0OWM1NDIyMDNhNmRjZGUyMjFlNjkuLmRhZjc0YjVlNmIwNDMwYjZiMGNhM2JlMjYw
ZjVmZmFiZWNkNjU0ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IubWVzc2FnZXMuaW4KQEAgLTI5LDcgKzI5LDcgQEAgbWVz
c2FnZXMgLT4gV2ViSW5zcGVjdG9yIHsKICAgICBTaG93Q29uc29sZSgpCiAgICAgU2hvd1Jlc291
cmNlcygpCiAKLSAgICBTaG93TWFpblJlc291cmNlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJZGVu
dGlmaWVyKQorICAgIFNob3dNYWluUmVzb3VyY2VGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJZGVudGlmaWVyKQogCiAgICAgT3BlbkluTmV3VGFiKFN0cmluZyB1cmwpCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMTMz
NjU3MGQ5M2FhNTExMDY5Nzg1NjExNzAyNjA4OTNiOGEzY2RiNC4uMDFmZjFhNGY0NTdlNTM5MzU2
MTQzMjRhMDk0ODg0MDNhNzUwNTVhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE0OTcsNyArMTQ5Nyw3IEBAIHZvaWQgV2ViUGFnZTo6c3Vz
cGVuZEZvclByb2Nlc3NTd2FwKCkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRp
ZFN1c3BlbmRBZnRlclByb2Nlc3NTd2FwKCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OmxvYWRVUkxJ
bkZyYW1lKFVSTCYmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgdWludDY0X3QgZnJhbWVJ
RCkKK3ZvaWQgV2ViUGFnZTo6bG9hZFVSTEluRnJhbWUoVVJMJiYgdXJsLCBjb25zdCBTdHJpbmcm
IHJlZmVycmVyLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBXZWJGcmFtZSogZnJh
bWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBpZiAo
IWZyYW1lKQpAQCAtMTUwNiw3ICsxNTA2LDcgQEAgdm9pZCBXZWJQYWdlOjpsb2FkVVJMSW5GcmFt
ZShVUkwmJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIHVpbnQ2NF90IGZyYW1lSUQKICAg
ICBmcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVxdWVzdCgqZnJh
bWUtPmNvcmVGcmFtZSgpLCBSZXNvdXJjZVJlcXVlc3QodXJsLCByZWZlcnJlciksIFNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KSk7CiB9CiAKLXZvaWQgV2ViUGFn
ZTo6bG9hZERhdGFJbkZyYW1lKElQQzo6RGF0YVJlZmVyZW5jZSYmIGRhdGEsIFN0cmluZyYmIE1J
TUVUeXBlLCBTdHJpbmcmJiBlbmNvZGluZ05hbWUsIFVSTCYmIGJhc2VVUkwsIHVpbnQ2NF90IGZy
YW1lSUQpCit2b2lkIFdlYlBhZ2U6OmxvYWREYXRhSW5GcmFtZShJUEM6OkRhdGFSZWZlcmVuY2Um
JiBkYXRhLCBTdHJpbmcmJiBNSU1FVHlwZSwgU3RyaW5nJiYgZW5jb2RpbmdOYW1lLCBVUkwmJiBi
YXNlVVJMLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBXZWJGcmFtZSogZnJhbWUg
PSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBpZiAoIWZy
YW1lKQpAQCAtMTYxNCw3ICsxNjE0LDcgQEAgdm9pZCBXZWJQYWdlOjpuYXZpZ2F0ZVRvUERGTGlu
a1dpdGhTaW11bGF0ZWRDbGljayhjb25zdCBTdHJpbmcmIHVybCwgSW50UG9pbnQgZG8KICAgICBt
YWluRnJhbWUtPmxvYWRlcigpLnVybFNlbGVjdGVkKG1haW5GcmFtZURvY3VtZW50LT5jb21wbGV0
ZVVSTCh1cmwpLCBlbXB0eVN0cmluZygpLCBtb3VzZUV2ZW50LnB0cigpLCBMb2NrSGlzdG9yeTo6
Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBTaG91bGRTZW5kUmVmZXJyZXI6Ok5ldmVyU2Vu
ZFJlZmVycmVyLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7
CiB9CiAKLXZvaWQgV2ViUGFnZTo6c3RvcExvYWRpbmdGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQor
dm9pZCBXZWJQYWdlOjpzdG9wTG9hZGluZ0ZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQog
ewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1l
KGZyYW1lSUQpOwogICAgIGlmICghZnJhbWUpCkBAIC0zMjM0LDcgKzMyMzQsNyBAQCB2b2lkIFdl
YlBhZ2U6OnNldFNlc3Npb25JRChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgbV9wYWdl
LT5zZXRTZXNzaW9uSUQoc2Vzc2lvbklEKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZl
UG9saWN5RGVjaXNpb24odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCwgUG9s
aWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24s
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgRG93bmxvYWRJRCYgZG93bmxvYWRJRCwgT3B0
aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMpCit2b2lkIFdlYlBh
Z2U6OmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWlu
dDY0X3QgbGlzdGVuZXJJRCwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIFBvbGlj
eUFjdGlvbiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgRG93bmxv
YWRJRCYgZG93bmxvYWRJRCwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRl
UG9saWNpZXMpCiB7CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCFmcmFtZSkKQEAgLTMyNDIsNyArMzI0Miw3
IEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFBvCiAgICAgZnJhbWUtPmRpZFJlY2VpdmVQb2xpY3lE
ZWNpc2lvbihsaXN0ZW5lcklELCBpZGVudGlmaWVyLCBwb2xpY3lBY3Rpb24sIG5hdmlnYXRpb25J
RCwgZG93bmxvYWRJRCwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpKTsKIH0KIAotdm9pZCBXZWJQ
YWdlOjpjb250aW51ZVdpbGxTdWJtaXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGxp
c3RlbmVySUQpCit2b2lkIFdlYlBhZ2U6OmNvbnRpbnVlV2lsbFN1Ym1pdEZvcm0oRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQpCiB7CiAgICAgV2ViRnJhbWUqIGZy
YW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYg
KCFmcmFtZSkKQEAgLTMzODQsNyArMzM4NCw3IEBAIHZvaWQgV2ViUGFnZTo6cnVuSmF2YVNjcmlw
dEluTWFpbkZyYW1lU2NyaXB0V29ybGQoY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yCiAg
ICAgcnVuSmF2YVNjcmlwdChtYWluV2ViRnJhbWUoKSwgc2NyaXB0LCBmb3JjZVVzZXJHZXN0dXJl
LCB3b3JsZE5hbWUsIGNhbGxiYWNrSUQpOwogfQogCi12b2lkIFdlYlBhZ2U6OnJ1bkphdmFTY3Jp
cHRJbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib29sIGZv
cmNlVXNlckdlc3R1cmUsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6cnVu
SmF2YVNjcmlwdEluRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYg
c2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsK
ICAgICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShm
cmFtZUlEKTsKICAgICBBU1NFUlQobWFpbldlYkZyYW1lKCkgIT0gZnJhbWUpOwpAQCAtMzQ0NSw3
ICszNDQ1LDcgQEAgdm9pZCBXZWJQYWdlOjpnZXRTZWxlY3Rpb25PckNvbnRlbnRzQXNTdHJpbmco
Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
U3RyaW5nQ2FsbGJhY2socmVzdWx0U3RyaW5nLCBjYWxsYmFja0lEKSk7CiB9CiAKLXZvaWQgV2Vi
UGFnZTo6Z2V0U291cmNlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ2FsbGJhY2tJRCBjYWxs
YmFja0lEKQordm9pZCBXZWJQYWdlOjpnZXRTb3VyY2VGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIFN0cmluZyByZXN1bHRTdHJp
bmc7CiAgICAgaWYgKFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndl
YkZyYW1lKGZyYW1lSUQpKQpAQCAtMzQ1NCw3ICszNDU0LDcgQEAgdm9pZCBXZWJQYWdlOjpnZXRT
b3VyY2VGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAg
ICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdHJpbmdDYWxsYmFjayhyZXN1bHRTdHJp
bmcsIGNhbGxiYWNrSUQpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpnZXRNYWluUmVzb3VyY2VEYXRh
T2ZGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdl
YlBhZ2U6OmdldE1haW5SZXNvdXJjZURhdGFPZkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVm
ZmVyOwogICAgIGlmIChXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53
ZWJGcmFtZShmcmFtZUlEKSkgewpAQCAtMzQ4NSw3ICszNDg1LDcgQEAgc3RhdGljIFJlZlB0cjxT
aGFyZWRCdWZmZXI+IHJlc291cmNlRGF0YUZvckZyYW1lKEZyYW1lKiBmcmFtZSwgY29uc3QgVVJM
JiByZXNvdXIKICAgICByZXR1cm4gJnN1YnJlc291cmNlLT5kYXRhKCk7CiB9CiAKLXZvaWQgV2Vi
UGFnZTo6Z2V0UmVzb3VyY2VEYXRhRnJvbUZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0
cmluZyYgcmVzb3VyY2VVUkxTdHJpbmcsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2Vi
UGFnZTo6Z2V0UmVzb3VyY2VEYXRhRnJvbUZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBj
b25zdCBTdHJpbmcmIHJlc291cmNlVVJMU3RyaW5nLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7
CiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyOwogICAgIGlmIChhdXRvKiBmcmFtZSA9
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpKSB7CkBAIC0zNDk5LDcg
KzM0OTksNyBAQCB2b2lkIFdlYlBhZ2U6OmdldFJlc291cmNlRGF0YUZyb21GcmFtZSh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHJlc291cmNlVQogICAgIHNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6RGF0YUNhbGxiYWNrKGRhdGFSZWZlcmVuY2UsIGNhbGxiYWNrSUQpKTsKIH0K
IAotdm9pZCBXZWJQYWdlOjpnZXRXZWJBcmNoaXZlT2ZGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBD
YWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYlBhZ2U6OmdldFdlYkFyY2hpdmVPZkZyYW1l
KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAjaWYg
UExBVEZPUk0oQ09DT0EpCiAgICAgUmV0YWluUHRyPENGRGF0YVJlZj4gZGF0YTsKQEAgLTM4MDIs
MTMgKzM4MDIsMTMgQEAgV2ViRnVsbFNjcmVlbk1hbmFnZXIqIFdlYlBhZ2U6OmZ1bGxTY3JlZW5N
YW5hZ2VyKCkKIH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2U6OmFkZENvbnNvbGVNZXNzYWdlKHVp
bnQ2NF90IGZyYW1lSUQsIE1lc3NhZ2VTb3VyY2UgbWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVs
IG1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1aW50NjRfdCByZXF1ZXN0SUQp
Cit2b2lkIFdlYlBhZ2U6OmFkZENvbnNvbGVNZXNzYWdlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBNZXNzYWdlU291cmNlIG1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCBtZXNzYWdlTGV2ZWws
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdWludDY0X3QgcmVxdWVzdElEKQogewogICAgIGlmIChh
dXRvKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpKQog
ICAgICAgICBmcmFtZS0+YWRkQ29uc29sZU1lc3NhZ2UobWVzc2FnZVNvdXJjZSwgbWVzc2FnZUxl
dmVsLCBtZXNzYWdlLCByZXF1ZXN0SUQpOwogfQogCi12b2lkIFdlYlBhZ2U6OnNlbmRDU1BWaW9s
YXRpb25SZXBvcnQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVVJMJiByZXBvcnRVUkwsIElQQzo6
Rm9ybURhdGFSZWZlcmVuY2UmJiByZXBvcnREYXRhKQordm9pZCBXZWJQYWdlOjpzZW5kQ1NQVmlv
bGF0aW9uUmVwb3J0KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBVUkwmIHJlcG9ydFVS
TCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcG9ydERhdGEpCiB7CiAgICAgYXV0byByZXBv
cnQgPSByZXBvcnREYXRhLnRha2VEYXRhKCk7CiAgICAgaWYgKCFyZXBvcnQpCkBAIC0zODE3LDcg
KzM4MTcsNyBAQCB2b2lkIFdlYlBhZ2U6OnNlbmRDU1BWaW9sYXRpb25SZXBvcnQodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgVVJMJiByZXBvcnRVUkwsIElQQwogICAgICAgICBQaW5nTG9hZGVyOjpz
ZW5kVmlvbGF0aW9uUmVwb3J0KCpmcmFtZS0+Y29yZUZyYW1lKCksIHJlcG9ydFVSTCwgcmVwb3J0
LnJlbGVhc2VOb25OdWxsKCksIFZpb2xhdGlvblJlcG9ydFR5cGU6OkNvbnRlbnRTZWN1cml0eVBv
bGljeSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnQodWludDY0X3QgZnJhbWVJRCwgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5p
dCYmIGV2ZW50SW5pdCkKK3ZvaWQgV2ViUGFnZTo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0
aW9uRXZlbnQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9u
RXZlbnQ6OkluaXQmJiBldmVudEluaXQpCiB7CiAgICAgYXV0byogZnJhbWUgPSBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtNDY4
MCw3ICs0NjgwLDcgQEAgdm9pZCBXZWJQYWdlOjplZmZlY3RpdmVBcHBlYXJhbmNlRGlkQ2hhbmdl
KGJvb2wgdXNlRGFya0FwcGVhcmFuY2UsIGJvb2wgdXNlRWxldmEKIH0KICNlbmRpZgogCi12b2lk
IFdlYlBhZ2U6OmJlZ2luUHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZv
JiBwcmludEluZm8pCit2b2lkIFdlYlBhZ2U6OmJlZ2luUHJpbnRpbmcoRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvKQogewogICAgIFdlYkZyYW1lKiBm
cmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlm
ICghZnJhbWUpCkBAIC00NzI0LDcgKzQ3MjQsNyBAQCB2b2lkIFdlYlBhZ2U6OmVuZFByaW50aW5n
KCkKICAgICB9CiB9CiAKLXZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIENhbGxiYWNrSUQgY2Fs
bGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcoRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBDYWxsYmFja0lEIGNh
bGxiYWNrSUQpCiB7CiAgICAgVmVjdG9yPEludFJlY3Q+IHJlc3VsdFBhZ2VSZWN0czsKICAgICBk
b3VibGUgcmVzdWx0VG90YWxTY2FsZUZhY3RvckZvclByaW50aW5nID0gMTsKQEAgLTQ3MzMsNyAr
NDczMyw3IEBAIHZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluCiAgICAgc2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpDb21wdXRlZFBhZ2VzQ2FsbGJhY2socmVzdWx0UGFnZVJlY3RzLCByZXN1bHRU
b3RhbFNjYWxlRmFjdG9yRm9yUHJpbnRpbmcsIGNvbXB1dGVkUGFnZU1hcmdpbiwgY2FsbGJhY2tJ
RCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nSW1wbCh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgVmVjdG9yPFdlYkNvcmU6
OkludFJlY3Q+JiByZXN1bHRQYWdlUmVjdHMsIGRvdWJsZSYgcmVzdWx0VG90YWxTY2FsZUZhY3Rv
ckZvclByaW50aW5nLCBGbG9hdEJveEV4dGVudCYgY29tcHV0ZWRQYWdlTWFyZ2luKQordm9pZCBX
ZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZ0ltcGwoRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4m
IHJlc3VsdFBhZ2VSZWN0cywgZG91YmxlJiByZXN1bHRUb3RhbFNjYWxlRmFjdG9yRm9yUHJpbnRp
bmcsIEZsb2F0Qm94RXh0ZW50JiBjb21wdXRlZFBhZ2VNYXJnaW4pCiB7CiAgICAgQVNTRVJUKHJl
c3VsdFBhZ2VSZWN0cy5pc0VtcHR5KCkpOwogCkBAIC00NzU2LDcgKzQ3NTYsNyBAQCB2b2lkIFdl
YlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nSW1wbCh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBQcmludEluZm8mIHByaQogfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi12b2lkIFdlYlBhZ2U6
OmRyYXdSZWN0VG9JbWFnZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50
SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaW1hZ2VT
aXplLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYlBhZ2U6OmRyYXdSZWN0VG9JbWFn
ZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIGNv
bnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGltYWdlU2l6ZSwgQ2Fs
bGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBm
cmFtZSA/IGZyYW1lLT5jb3JlRnJhbWUoKSA6IDA7CkBAIC00ODA2LDE0ICs0ODA2LDE0IEBAIHZv
aWQgV2ViUGFnZTo6ZHJhd1JlY3RUb0ltYWdlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50
SW5mbyYgcHJpbnRJbmZvLCBjb25zCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpJ
bWFnZUNhbGxiYWNrKGhhbmRsZSwgY2FsbGJhY2tJRCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OmRy
YXdQYWdlc1RvUERGKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZv
LCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkK
K3ZvaWQgV2ViUGFnZTo6ZHJhd1BhZ2VzVG9QREYoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNv
bnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQs
IENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBSZXRhaW5QdHI8Q0ZNdXRhYmxlRGF0YVJl
Zj4gcGRmUGFnZURhdGE7CiAgICAgZHJhd1BhZ2VzVG9QREZJbXBsKGZyYW1lSUQsIHByaW50SW5m
bywgZmlyc3QsIGNvdW50LCBwZGZQYWdlRGF0YSk7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpEYXRhQ2FsbGJhY2soeyBDRkRhdGFHZXRCeXRlUHRyKHBkZlBhZ2VEYXRhLmdldCgp
KSwgc3RhdGljX2Nhc3Q8c2l6ZV90PihDRkRhdGFHZXRMZW5ndGgocGRmUGFnZURhdGEuZ2V0KCkp
KSB9LCBjYWxsYmFja0lEKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZHJhd1BhZ2VzVG9QREZJbXBs
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCB1aW50MzJfdCBm
aXJzdCwgdWludDMyX3QgY291bnQsIFJldGFpblB0cjxDRk11dGFibGVEYXRhUmVmPiYgcGRmUGFn
ZURhdGEpCit2b2lkIFdlYlBhZ2U6OmRyYXdQYWdlc1RvUERGSW1wbChGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIHVpbnQzMl90IGZpcnN0LCB1aW50
MzJfdCBjb3VudCwgUmV0YWluUHRyPENGTXV0YWJsZURhdGFSZWY+JiBwZGZQYWdlRGF0YSkKIHsK
ICAgICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShm
cmFtZUlEKTsKICAgICBGcmFtZSogY29yZUZyYW1lID0gZnJhbWUgPyBmcmFtZS0+Y29yZUZyYW1l
KCkgOiAwOwpAQCAtNDg2NCw3ICs0ODY0LDcgQEAgdm9pZCBXZWJQYWdlOjpkcmF3UGFnZXNUb1BE
RkltcGwodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIHUKIH0K
IAogI2VsaWYgUExBVEZPUk0oR1RLKQotdm9pZCBXZWJQYWdlOjpkcmF3UGFnZXNGb3JQcmludGlu
Zyh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgQ2FsbGJhY2tJ
RCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdlOjpkcmF3UGFnZXNGb3JQcmludGluZyhGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIENhbGxiYWNrSUQg
Y2FsbGJhY2tJRCkKIHsKICAgICBiZWdpblByaW50aW5nKGZyYW1lSUQsIHByaW50SW5mbyk7CiAg
ICAgaWYgKG1fcHJpbnRDb250ZXh0ICYmIG1fcHJpbnRPcGVyYXRpb24pIHsKQEAgLTY1MDIsNyAr
NjUwMiw3IEBAIHZvaWQgV2ViUGFnZTo6c2V0SXNTdXNwZW5kZWQoYm9vbCBzdXNwZW5kZWQpCiAg
ICAgc3VzcGVuZEZvclByb2Nlc3NTd2FwKCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZnJhbWVCZWNh
bWVSZW1vdGUodWludDY0X3QgZnJhbWVJRCwgR2xvYmFsRnJhbWVJZGVudGlmaWVyJiYgcmVtb3Rl
RnJhbWVJZGVudGlmaWVyLCBHbG9iYWxXaW5kb3dJZGVudGlmaWVyJiYgcmVtb3RlV2luZG93SWRl
bnRpZmllcikKK3ZvaWQgV2ViUGFnZTo6ZnJhbWVCZWNhbWVSZW1vdGUoRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIEdsb2JhbEZyYW1lSWRlbnRpZmllciYmIHJlbW90ZUZyYW1lSWRlbnRpZmllciwg
R2xvYmFsV2luZG93SWRlbnRpZmllciYmIHJlbW90ZVdpbmRvd0lkZW50aWZpZXIpCiB7CiAgICAg
UmVmUHRyPFdlYkZyYW1lPiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1l
KGZyYW1lSUQpOwogICAgIGlmICghZnJhbWUpCkBAIC02NTM0LDEyICs2NTM0LDEyIEBAIHZvaWQg
V2ViUGFnZTo6ZnJhbWVCZWNhbWVSZW1vdGUodWludDY0X3QgZnJhbWVJRCwgR2xvYmFsRnJhbWVJ
ZGVudGlmaWVyJiYgcmVtb3RlCiB9CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNU
SUNTKQotdm9pZCBXZWJQYWdlOjpoYXNTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWluJiYg
c3ViRnJhbWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2
NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit2b2lkIFdlYlBhZ2U6Omhhc1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4m
JiBzdWJGcmFtZURvbWFpbiwgUmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Okhhc1N0b3JhZ2VBY2Nlc3Mo
c2Vzc2lvbklEKCksIFdURk1vdmUoc3ViRnJhbWVEb21haW4pLCBXVEZNb3ZlKHRvcEZyYW1lRG9t
YWluKSwgZnJhbWVJRCwgbV9wYWdlSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9
CiAKLXZvaWQgV2ViUGFnZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4m
JiBzdWJGcmFtZURvbWFpbiwgUmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgdWlu
dDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNj
ZXNzV2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUmVn
aXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgUmVnaXN0cmFibGVEb21haW4mJiB0b3BG
cmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nl
c3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlv
bigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OlJlcXVlc3RTdG9yYWdlQWNjZXNzKHNlc3Npb25JRCgpLCBXVEZNb3ZlKHN1YkZyYW1l
RG9tYWluKSwgV1RGTW92ZSh0b3BGcmFtZURvbWFpbiksIGZyYW1lSUQsIG1fcGFnZUlEKSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQpAQCAtNjU1NSw3ICs2NTU1LDcgQEAgdm9pZCBX
ZWJQYWdlOjp3YXNMb2FkZWRXaXRoRGF0YVRyYW5zZmVyRnJvbVByZXZhbGVudFJlc291cmNlKCkK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKLXZvaWQgV2ViUGFnZTo6
c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh1aW50NjRfdCBmcmFt
ZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBvcmlnaW4sIGJvb2wgbWF5UHJvbXB0
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNz
aW9uU3RhdGUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlOjpzaG91bGRBbGxv
d0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBvcmlnaW4sIGJvb2wgbWF5UHJvbXB0LCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9u
U3RhdGUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIHNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzKGZyYW1lSUQsIFdURk1vdmUob3JpZ2luKSwgbWF5UHJvbXB0KSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCmluZGV4IGYzY2EyOWRhMTdhZjZmYTc4MGI4ZWRiYjI1MmIzNDFhNWU4YTQ5NDAu
LmUxZTVlMzkwMDI4MjI0YjYzY2FiZTRkMjZmMWIxZjI1ZmJiZThiMWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTM0Niw5ICszNDYsOSBAQCBwdWJs
aWM6CiAgICAgV2ViRnVsbFNjcmVlbk1hbmFnZXIqIGZ1bGxTY3JlZW5NYW5hZ2VyKCk7CiAjZW5k
aWYKIAotICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UodWludDY0X3QgZnJhbWVJRCwgTWVzc2Fn
ZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmLCB1aW50NjRfdCByZXF1ZXN0SUQg
PSAwKTsKLSAgICB2b2lkIHNlbmRDU1BWaW9sYXRpb25SZXBvcnQodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgVVJMJiByZXBvcnRVUkwsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJik7Ci0gICAgdm9p
ZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCh1aW50NjRfdCBmcmFtZUlELCBX
ZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYpOworICAgIHZvaWQg
YWRkQ29uc29sZU1lc3NhZ2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBNZXNzYWdlU291cmNl
LCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYsIHVpbnQ2NF90IHJlcXVlc3RJRCA9IDApOwor
ICAgIHZvaWQgc2VuZENTUFZpb2xhdGlvblJlcG9ydChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYpOworICAgIHZv
aWQgZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYpOwog
CiAgICAgLy8gLS0gQ2FsbGVkIGJ5IHRoZSBEcmF3aW5nQXJlYS4KICAgICAvLyBGSVhNRTogV2Ug
Y291bGQgZ2VuZXJpY2l6ZSB0aGVzZSBpbnRvIGEgRHJhd2luZ0FyZWEgY2xpZW50IGludGVyZmFj
ZS4gV291bGQgdGhhdCBiZSBiZW5lZmljaWFsPwpAQCAtNTIyLDcgKzUyMiw3IEBAIHB1YmxpYzoK
ICAgICBXZWJDb3JlOjpDb2xvciB1bmRlcmxheUNvbG9yKCkgY29uc3QgeyByZXR1cm4gbV91bmRl
cmxheUNvbG9yOyB9CiAKICAgICB2b2lkIHN0b3BMb2FkaW5nKCk7Ci0gICAgdm9pZCBzdG9wTG9h
ZGluZ0ZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpOworICAgIHZvaWQgc3RvcExvYWRpbmdGcmFtZShX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogICAgIGJvb2wgZGVmZXJzTG9hZGluZygpIGNvbnN0
OwogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVyTG9hZGluZyk7CiAKQEAgLTc2
OSw3ICs3NjksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb25maXJtQ29tcG9zaXRpb24oY29uc3Qg
U3RyaW5nJiB0ZXh0LCBpbnQ2NF90IHNlbGVjdGlvblN0YXJ0LCBpbnQ2NF90IHNlbGVjdGlvbkxl
bmd0aCk7CiAgICAgdm9pZCBjYW5jZWxDb21wb3NpdGlvbigpOwogCi0gICAgdm9pZCBjb2xsYXBz
ZVNlbGVjdGlvbkluRnJhbWUodWludDY0X3QgZnJhbWVJRCk7CisgICAgdm9pZCBjb2xsYXBzZVNl
bGVjdGlvbkluRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICAgICB2b2lkIHNob3dF
bW9qaVBpY2tlcihXZWJDb3JlOjpGcmFtZSYpOwogCiAgICAgdm9pZCBnZXRDZW50ZXJGb3Jab29t
R2VzdHVyZShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2VudGVySW5WaWV3Q29vcmRpbmF0ZXMs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6SW50UG9pbnQmJik+JiYpOwpAQCAtODYy
LDIzICs4NjIsMjMgQEAgcHVibGljOgogICAgIFdlYkNvcmU6OkRyYWdTb3VyY2VBY3Rpb24gYWxs
b3dlZERyYWdTb3VyY2VBY3Rpb25zKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd2VkRHJhZ1NvdXJj
ZUFjdGlvbnM7IH0KICNlbmRpZgogCi0gICAgdm9pZCBiZWdpblByaW50aW5nKHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFByaW50SW5mbyYpOworICAgIHZvaWQgYmVnaW5QcmludGluZyhXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYpOwogICAgIHZvaWQgZW5kUHJpbnRp
bmcoKTsKLSAgICB2b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFByaW50SW5mbyYsIENhbGxiYWNrSUQpOwotICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9y
UHJpbnRpbmdJbXBsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIFZlY3RvcjxX
ZWJDb3JlOjpJbnRSZWN0PiYgcGFnZVJlY3RzLCBkb3VibGUmIHRvdGFsU2NhbGVGYWN0b3IsIFdl
YkNvcmU6OkZsb2F0Qm94RXh0ZW50JiBjb21wdXRlZE1hcmdpbik7CisgICAgdm9pZCBjb21wdXRl
UGFnZXNGb3JQcmludGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50SW5m
byYsIENhbGxiYWNrSUQpOworICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdJbXBsKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgVmVjdG9yPFdlYkNvcmU6
OkludFJlY3Q+JiBwYWdlUmVjdHMsIGRvdWJsZSYgdG90YWxTY2FsZUZhY3RvciwgV2ViQ29yZTo6
RmxvYXRCb3hFeHRlbnQmIGNvbXB1dGVkTWFyZ2luKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQot
ICAgIHZvaWQgZHJhd1JlY3RUb0ltYWdlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5m
byYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgQ2Fs
bGJhY2tJRCk7Ci0gICAgdm9pZCBkcmF3UGFnZXNUb1BERih1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBQcmludEluZm8mLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIENhbGxiYWNrSUQp
OwotICAgIHZvaWQgZHJhd1BhZ2VzVG9QREZJbXBsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFBy
aW50SW5mbyYsIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgUmV0YWluUHRyPENGTXV0
YWJsZURhdGFSZWY+JiBwZGZQYWdlRGF0YSk7CisgICAgdm9pZCBkcmF3UmVjdFRvSW1hZ2UoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mLCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIENhbGxiYWNrSUQpOworICAgIHZvaWQg
ZHJhd1BhZ2VzVG9QREYoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8m
LCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIENhbGxiYWNrSUQpOworICAgIHZvaWQg
ZHJhd1BhZ2VzVG9QREZJbXBsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJ
bmZvJiwgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBSZXRhaW5QdHI8Q0ZNdXRhYmxl
RGF0YVJlZj4mIHBkZlBhZ2VEYXRhKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKLSAgICB2b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIENhbGxiYWNrSUQsIE1lc3NhZ2VzOjpXZWJQYWdl
OjpDb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERjo6RGVsYXllZFJlcGx5JiYpOwor
ICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mLCBDYWxsYmFja0lELCBNZXNzYWdlczo6V2Vi
UGFnZTo6Q29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREY6OkRlbGF5ZWRSZXBseSYm
KTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oR1RLKQotICAgIHZvaWQgZHJhd1BhZ2VzRm9yUHJp
bnRpbmcodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiwgQ2FsbGJhY2tJRCk7Cisg
ICAgdm9pZCBkcmF3UGFnZXNGb3JQcmludGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNv
bnN0IFByaW50SW5mbyYsIENhbGxiYWNrSUQpOwogICAgIHZvaWQgZGlkRmluaXNoUHJpbnRPcGVy
YXRpb24oY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIENhbGxiYWNrSUQpOwogI2VuZGlm
CiAKQEAgLTExMzEsMTMgKzExMzEsMTMgQEAgcHVibGljOgogICAgIHZvaWQgZmx1c2hQZW5kaW5n
RWRpdG9yU3RhdGVVcGRhdGUoKTsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCi0gICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
JiYgc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVE
b21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
OwotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4mJiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFt
ZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3Jl
OjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdh
c1Nob3duKT4mJik7CisgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYg
dG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFdlYkNv
cmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYpOwogICAgIHZvaWQgd2FzTG9hZGVk
V2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxlbnRSZXNvdXJjZSgpOwogI2VuZGlmCiAKICNpZiBF
TkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQotICAgIHZvaWQgc2hvdWxkQWxsb3dEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmJiwgYm9vbCBtYXlQcm9tcHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vi
Q29yZTo6RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+JiYpOworICAg
IHZvaWQgc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBib29sIG1h
eVByb21wdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlv
bk9yTW90aW9uUGVybWlzc2lvblN0YXRlKT4mJik7CiAjZW5kaWYKIAogICAgIHZvaWQgc2hvd1No
YXJlU2hlZXQoV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spOwpAQCAtMTM1Niw4ICsxMzU2LDggQEAgcHJpdmF0
ZToKICAgICBzdGF0aWMgYm9vbCBzY3JvbGwoV2ViQ29yZTo6UGFnZSosIFdlYkNvcmU6OlNjcm9s
bERpcmVjdGlvbiwgV2ViQ29yZTo6U2Nyb2xsR3JhbnVsYXJpdHkpOwogICAgIHN0YXRpYyBib29s
IGxvZ2ljYWxTY3JvbGwoV2ViQ29yZTo6UGFnZSosIFdlYkNvcmU6OlNjcm9sbExvZ2ljYWxEaXJl
Y3Rpb24sIFdlYkNvcmU6OlNjcm9sbEdyYW51bGFyaXR5KTsKIAotICAgIHZvaWQgbG9hZFVSTElu
RnJhbWUoVVJMJiYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIHVpbnQ2NF90IGZyYW1lSUQpOwot
ICAgIHZvaWQgbG9hZERhdGFJbkZyYW1lKElQQzo6RGF0YVJlZmVyZW5jZSYmLCBTdHJpbmcmJiBN
SU1FVHlwZSwgU3RyaW5nJiYgZW5jb2RpbmdOYW1lLCBVUkwmJiBiYXNlVVJMLCB1aW50NjRfdCBm
cmFtZUlEKTsKKyAgICB2b2lkIGxvYWRVUkxJbkZyYW1lKFVSTCYmLCBjb25zdCBTdHJpbmcmIHJl
ZmVycmVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgbG9hZERhdGFJbkZy
YW1lKElQQzo6RGF0YVJlZmVyZW5jZSYmLCBTdHJpbmcmJiBNSU1FVHlwZSwgU3RyaW5nJiYgZW5j
b2RpbmdOYW1lLCBVUkwmJiBiYXNlVVJMLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogCiAg
ICAgZW51bSBjbGFzcyBXYXNSZXN0b3JlZEJ5QVBJUmVxdWVzdCB7IE5vLCBZZXMgfTsKICAgICB2
b2lkIHJlc3RvcmVTZXNzaW9uSW50ZXJuYWwoY29uc3QgVmVjdG9yPEJhY2tGb3J3YXJkTGlzdEl0
ZW1TdGF0ZT4mLCBXYXNSZXN0b3JlZEJ5QVBJUmVxdWVzdCwgV2ViQmFja0ZvcndhcmRMaXN0UHJv
eHk6Ok92ZXJ3cml0ZUV4aXN0aW5nSXRlbSk7CkBAIC0xMzg5LDE2ICsxMzg5LDE2IEBAIHByaXZh
dGU6CiAjaWYgRU5BQkxFKE1IVE1MKQogICAgIHZvaWQgZ2V0Q29udGVudHNBc01IVE1MRGF0YShD
YWxsYmFja0lEKTsKICNlbmRpZgotICAgIHZvaWQgZ2V0TWFpblJlc291cmNlRGF0YU9mRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBnZXRSZXNvdXJjZURhdGFG
cm9tRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiByZXNvdXJjZVVSTCwgQ2Fs
bGJhY2tJRCk7CisgICAgdm9pZCBnZXRNYWluUmVzb3VyY2VEYXRhT2ZGcmFtZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIENhbGxiYWNrSUQpOworICAgIHZvaWQgZ2V0UmVzb3VyY2VEYXRhRnJv
bUZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiByZXNvdXJjZVVS
TCwgQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBnZXRSZW5kZXJUcmVlRXh0ZXJuYWxSZXByZXNlbnRh
dGlvbihDYWxsYmFja0lEKTsKICAgICB2b2lkIGdldFNlbGVjdGlvbk9yQ29udGVudHNBc1N0cmlu
ZyhDYWxsYmFja0lEKTsKICAgICB2b2lkIGdldFNlbGVjdGlvbkFzV2ViQXJjaGl2ZURhdGEoQ2Fs
bGJhY2tJRCk7Ci0gICAgdm9pZCBnZXRTb3VyY2VGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBD
YWxsYmFja0lEKTsKLSAgICB2b2lkIGdldFdlYkFyY2hpdmVPZkZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIENhbGxiYWNrSUQpOworICAgIHZvaWQgZ2V0U291cmNlRm9yRnJhbWUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIGdldFdlYkFyY2hpdmVPZkZyYW1l
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBydW5KYXZh
U2NyaXB0KFdlYkZyYW1lKiwgY29uc3QgU3RyaW5nJiwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBj
b25zdCBPcHRpb25hbDxTdHJpbmc+JiB3b3JsZE5hbWUsIENhbGxiYWNrSUQpOwogICAgIHZvaWQg
cnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lU2NyaXB0V29ybGQoY29uc3QgU3RyaW5nJiwgYm9vbCBm
b3JjZVVzZXJHZXN0dXJlLCBjb25zdCBPcHRpb25hbDxTdHJpbmc+JiB3b3JsZE5hbWUsIENhbGxi
YWNrSUQpOwotICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgU3RyaW5nJiwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBDYWxsYmFja0lEKTsKKyAgICB2
b2lkIHJ1bkphdmFTY3JpcHRJbkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBDYWxsYmFja0lEKTsKICAgICB2b2lkIGZv
cmNlUmVwYWludChDYWxsYmFja0lEKTsKICAgICB2b2lkIHRha2VTbmFwc2hvdChXZWJDb3JlOjpJ
bnRSZWN0IHNuYXBzaG90UmVjdCwgV2ViQ29yZTo6SW50U2l6ZSBiaXRtYXBTaXplLCB1aW50MzJf
dCBvcHRpb25zLCBDYWxsYmFja0lEKTsKIApAQCAtMTQxMiw4ICsxNDEyLDggQEAgcHJpdmF0ZToK
ICAgICBib29sIHBhcmVudFByb2Nlc3NIYXNTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQoKSBjb25z
dCB7IHJldHVybiB0cnVlOyB9CiAjZW5kaWYKIAotICAgIHZvaWQgZGlkUmVjZWl2ZVBvbGljeURl
Y2lzaW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYkNvcmU6OlBv
bGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6UG9saWN5QWN0aW9uLCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIGNvbnN0IERvd25sb2FkSUQmLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRh
PiYmKTsKLSAgICB2b2lkIGNvbnRpbnVlV2lsbFN1Ym1pdEZvcm0odWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgbGlzdGVuZXJJRCk7CisgICAgdm9pZCBkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24o
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJDb3JlOjpQ
b2xpY3lDaGVja0lkZW50aWZpZXIsIFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBjb25zdCBEb3dubG9hZElEJiwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0
YT4mJik7CisgICAgdm9pZCBjb250aW51ZVdpbGxTdWJtaXRGb3JtKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgdWludDY0X3QgbGlzdGVuZXJJRCk7CiAgICAgdm9pZCBzZXRVc2VyQWdlbnQoY29u
c3QgU3RyaW5nJik7CiAgICAgdm9pZCBzZXRDdXN0b21UZXh0RW5jb2RpbmdOYW1lKGNvbnN0IFN0
cmluZyYpOwogICAgIHZvaWQgc3VzcGVuZEFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zKCk7
CkBAIC0xNDMxLDcgKzE0MzEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgd2luZG93QW5kVmlld0Zy
YW1lc0NoYW5nZWQoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB3aW5kb3dGcmFtZUluU2NyZWVu
Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgd2luZG93RnJhbWVJblVuZmxp
cHBlZFNjcmVlbkNvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHZpZXdGcmFt
ZUluV2luZG93Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGFjY2Vzc2li
aWxpdHlWaWV3Q29vcmRpbmF0ZXMpOwogCiAgICAgUmV0YWluUHRyPFBERkRvY3VtZW50PiBwZGZE
b2N1bWVudEZvclByaW50aW5nRnJhbWUoV2ViQ29yZTo6RnJhbWUqKTsKLSAgICB2b2lkIGNvbXB1
dGVQYWdlc0ZvclByaW50aW5nUERGRG9jdW1lbnQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJp
bnRJbmZvJiwgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+JiByZXN1bHRQYWdlUmVjdHMpOworICAg
IHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdQREZEb2N1bWVudChXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYsIFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiYgcmVz
dWx0UGFnZVJlY3RzKTsKICAgICB2b2lkIGRyYXdQREZEb2N1bWVudChDR0NvbnRleHRSZWYsIFBE
RkRvY3VtZW50ICosIGNvbnN0IFByaW50SW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsK
ICAgICB2b2lkIGRyYXdQYWdlc1RvUERGRnJvbVBERkRvY3VtZW50KENHQ29udGV4dFJlZiwgUERG
RG9jdW1lbnQgKiwgY29uc3QgUHJpbnRJbmZvJiwgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNv
dW50KTsKICNlbmRpZgpAQCAtMTU4NCw3ICsxNTg0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHZv
aWNlc0RpZENoYW5nZSgpOwogI2VuZGlmCiAKLSAgICB2b2lkIGZyYW1lQmVjYW1lUmVtb3RlKHVp
bnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6Okdsb2JhbEZyYW1lSWRlbnRpZmllciYmIHJlbW90ZUZy
YW1lSWRlbnRpZmllciwgV2ViQ29yZTo6R2xvYmFsV2luZG93SWRlbnRpZmllciYmIHJlbW90ZVdp
bmRvd0lkZW50aWZpZXIpOworICAgIHZvaWQgZnJhbWVCZWNhbWVSZW1vdGUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBXZWJDb3JlOjpHbG9iYWxGcmFtZUlkZW50aWZpZXImJiByZW1vdGVGcmFt
ZUlkZW50aWZpZXIsIFdlYkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXImJiByZW1vdGVXaW5k
b3dJZGVudGlmaWVyKTsKIAogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVIYW5kbGVyKHVpbnQ2
NF90IGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc2NoZW1lKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggYTUy
ZTI1MWQyNWRhNmQ4ODcxYjI3MmQ3MTQyMjkxMzI5YzVmMjQzOC4uYmE3ZjY0YmZkY2JjY2Y4YWIy
YzMzZjZjMjc4YjQ2ZDE1MTg4OGYwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0yNyw5ICsyNyw5IEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgU2V0QmFja2dyb3VuZENvbG9y
KE9wdGlvbmFsPFdlYkNvcmU6OkNvbG9yPiBjb2xvcikKIAotICAgIEFkZENvbnNvbGVNZXNzYWdl
KHVpbnQ2NF90IGZyYW1lSUQsIGVudW06dWludDhfdCBKU0M6Ok1lc3NhZ2VTb3VyY2UgbWVzc2Fn
ZVNvdXJjZSwgZW51bTp1aW50OF90IEpTQzo6TWVzc2FnZUxldmVsIG1lc3NhZ2VMZXZlbCwgU3Ry
aW5nIG1lc3NhZ2UsIHVpbnQ2NF90IHJlcXVlc3RJRCkKLSAgICBTZW5kQ1NQVmlvbGF0aW9uUmVw
b3J0KHVpbnQ2NF90IGZyYW1lSUQsIFVSTCByZXBvcnRVUkwsIElQQzo6Rm9ybURhdGFSZWZlcmVu
Y2UgcmVwb3J0RGF0YSkKLSAgICBFbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCh1
aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJ
bml0IGV2ZW50SW5pdCkKKyAgICBBZGRDb25zb2xlTWVzc2FnZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgZW51bTp1aW50OF90IEpTQzo6TWVzc2FnZVNvdXJjZSBtZXNzYWdlU291
cmNlLCBlbnVtOnVpbnQ4X3QgSlNDOjpNZXNzYWdlTGV2ZWwgbWVzc2FnZUxldmVsLCBTdHJpbmcg
bWVzc2FnZSwgdWludDY0X3QgcmVxdWVzdElEKQorICAgIFNlbmRDU1BWaW9sYXRpb25SZXBvcnQo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFVSTCByZXBvcnRVUkwsIElQQzo6Rm9y
bURhdGFSZWZlcmVuY2UgcmVwb3J0RGF0YSkKKyAgICBFbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9s
YXRpb25FdmVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2Vj
dXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCBldmVudEluaXQpCiAKICAgICBUZXN0UHJv
Y2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoKSAtPiAoYm9v
bCBoYW5kbGVkKSBTeW5jaHJvbm91cwogCkBAIC0xNjIsOCArMTYyLDggQEAgR2VuZXJhdGVTeW50
aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5n
Q29tbWFuZFR5cGUKICAgICBHb1RvQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgc3RydWN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgYmFja0ZvcndhcmRJ
dGVtSUQsIGVudW06dWludDhfdCBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlIGJhY2tGb3J3YXJkVHlw
ZSwgZW51bTpib29sIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQsIE9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0
YT4gd2Vic2l0ZVBvbGljaWVzKQogICAgIFRyeVJlc3RvcmVTY3JvbGxQb3NpdGlvbigpCiAKLSAg
ICBMb2FkVVJMSW5GcmFtZShVUkwgdXJsLCBTdHJpbmcgcmVmZXJyZXIsIHVpbnQ2NF90IGZyYW1l
SUQpCi0gICAgTG9hZERhdGFJbkZyYW1lKElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhLCBTdHJpbmcg
TUlNRVR5cGUsIFN0cmluZyBlbmNvZGluZ05hbWUsIFVSTCBiYXNlVVJMLCB1aW50NjRfdCBmcmFt
ZUlEKQorICAgIExvYWRVUkxJbkZyYW1lKFVSTCB1cmwsIFN0cmluZyByZWZlcnJlciwgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCisgICAgTG9hZERhdGFJbkZyYW1lKElQQzo6RGF0
YVJlZmVyZW5jZSBkYXRhLCBTdHJpbmcgTUlNRVR5cGUsIFN0cmluZyBlbmNvZGluZ05hbWUsIFVS
TCBiYXNlVVJMLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKICAgICBMb2FkUmVx
dWVzdChzdHJ1Y3QgV2ViS2l0OjpMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycykKICAgICBM
b2FkRGF0YShzdHJ1Y3QgV2ViS2l0OjpMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycykKICAg
ICBMb2FkQWx0ZXJuYXRlSFRNTChzdHJ1Y3QgV2ViS2l0OjpMb2FkUGFyYW1ldGVycyBsb2FkUGFy
YW1ldGVycykKQEAgLTE3Myw3ICsxNzMsNyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21t
YW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAg
IFJlbG9hZCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQzMl90IHJlbG9hZE9wdGlvbnMsIFdl
YktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpCiAg
ICAgU3RvcExvYWRpbmcoKQogCi0gICAgU3RvcExvYWRpbmdGcmFtZSh1aW50NjRfdCBmcmFtZUlE
KQorICAgIFN0b3BMb2FkaW5nRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQp
CiAgICAgCiAgICAgUmVzdG9yZVNlc3Npb24oVmVjdG9yPFdlYktpdDo6QmFja0ZvcndhcmRMaXN0
SXRlbVN0YXRlPiBpdGVtU3RhdGVzKQogICAgIFVwZGF0ZUJhY2tGb3J3YXJkTGlzdEZvclJlYXR0
YWNoKFZlY3RvcjxXZWJLaXQ6OkJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZT4gaXRlbVN0YXRlcykK
QEAgLTE4Miw4ICsxODIsOCBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06
dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIERpZFJlbW92
ZUJhY2tGb3J3YXJkSXRlbShzdHJ1Y3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmll
ciBiYWNrRm9yd2FyZEl0ZW1JRCkKIAogICAgIFVwZGF0ZVdlYnNpdGVQb2xpY2llcyhzdHJ1Y3Qg
V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhIHdlYnNpdGVQb2xpY2llcykKLSAgICBEaWRSZWNl
aXZlUG9saWN5RGVjaXNpb24odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCwg
V2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgZW51
bTp1aW50OF90IFdlYkNvcmU6OlBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIE9wdGlvbmFsPFdlYktp
dDo6V2Vic2l0ZVBvbGljaWVzRGF0YT4gd2Vic2l0ZVBvbGljaWVzKQotICAgIENvbnRpbnVlV2ls
bFN1Ym1pdEZvcm0odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCkKKyAgICBE
aWRSZWNlaXZlUG9saWN5RGVjaXNpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xp
Y3lDaGVja0lkZW50aWZpZXIsIGVudW06dWludDhfdCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9s
aWN5QWN0aW9uLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3du
bG9hZElELCBPcHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQb2xp
Y2llcykKKyAgICBDb250aW51ZVdpbGxTdWJtaXRGb3JtKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCB1aW50NjRfdCBsaXN0ZW5lcklEKQogCiAgICAgQ2xlYXJTZWxlY3Rpb24oKQog
ICAgIFJlc3RvcmVTZWxlY3Rpb25JbkZvY3VzZWRFZGl0YWJsZUVsZW1lbnQoKQpAQCAtMTk2LDE1
ICsxOTYsMTUgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3Qg
V2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICNpZiBFTkFCTEUoTUhUTUwpCiAg
ICAgR2V0Q29udGVudHNBc01IVE1MRGF0YShXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkK
ICNlbmRpZgotICAgIEdldE1haW5SZXNvdXJjZURhdGFPZkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIEdldFJlc291cmNlRGF0YUZyb21G
cmFtZSh1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgcmVzb3VyY2VVUkwsIFdlYktpdDo6Q2FsbGJh
Y2tJRCBjYWxsYmFja0lEKQorICAgIEdldE1haW5SZXNvdXJjZURhdGFPZkZyYW1lKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkK
KyAgICBHZXRSZXNvdXJjZURhdGFGcm9tRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFN0cmluZyByZXNvdXJjZVVSTCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQp
CiAgICAgR2V0UmVuZGVyVHJlZUV4dGVybmFsUmVwcmVzZW50YXRpb24oV2ViS2l0OjpDYWxsYmFj
a0lEIGNhbGxiYWNrSUQpCiAgICAgR2V0U2VsZWN0aW9uT3JDb250ZW50c0FzU3RyaW5nKFdlYktp
dDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIEdldFNlbGVjdGlvbkFzV2ViQXJjaGl2ZURh
dGEoV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCi0gICAgR2V0U291cmNlRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCi0gICAgR2V0
V2ViQXJjaGl2ZU9mRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpDYWxsYmFja0lEIGNh
bGxiYWNrSUQpCisgICAgR2V0U291cmNlRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIEdldFdlYkFyY2hp
dmVPZkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJLaXQ6OkNhbGxi
YWNrSUQgY2FsbGJhY2tJRCkKICAgICBSdW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3Js
ZChTdHJpbmcgc2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIE9wdGlvbmFsPFN0cmluZz4g
d29ybGROYW1lLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKLSAgICBSdW5KYXZhU2Ny
aXB0SW5GcmFtZSh1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgc2NyaXB0LCBib29sIGZvcmNlVXNl
ckdlc3R1cmUsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIFJ1bkphdmFTY3Jp
cHRJbkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgc2NyaXB0
LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQog
ICAgIEZvcmNlUmVwYWludChXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIAogICAgIFNl
bGVjdEFsbCgpCkBAIC0zODAsMTggKzM4MCwxOCBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdD
b21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQog
ICAgIERpZFJlY2VpdmVOb3RpZmljYXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90
aWZpY2F0aW9uSUQsIGJvb2wgYWxsb3dlZCkKIAogICAgICMgUHJpbnRpbmcuCi0gICAgQmVnaW5Q
cmludGluZyh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJ
bmZvKQorICAgIEJlZ2luUHJpbnRpbmcoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8pCiAgICAgRW5kUHJpbnRpbmcoKQot
ICAgIENvbXB1dGVQYWdlc0ZvclByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJL
aXQ6OlByaW50SW5mbyBwcmludEluZm8sIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQor
ICAgIENvbXB1dGVQYWdlc0ZvclByaW50aW5nKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCBXZWJLaXQ6OkNhbGxiYWNr
SUQgY2FsbGJhY2tJRCkKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBEcmF3UmVjdFRvSW1hZ2Uo
dWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2Vi
Q29yZTo6SW50UmVjdCByZWN0LCBXZWJDb3JlOjpJbnRTaXplIGltYWdlU2l6ZSwgV2ViS2l0OjpD
YWxsYmFja0lEIGNhbGxiYWNrSUQpCi0gICAgRHJhd1BhZ2VzVG9QREYodWludDY0X3QgZnJhbWVJ
RCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgdWludDMyX3QgZmlyc3QsIHVp
bnQzMl90IGNvdW50LCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBEcmF3UmVj
dFRvSW1hZ2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6
OlByaW50SW5mbyBwcmludEluZm8sIFdlYkNvcmU6OkludFJlY3QgcmVjdCwgV2ViQ29yZTo6SW50
U2l6ZSBpbWFnZVNpemUsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIERyYXdQ
YWdlc1RvUERGKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0
OjpQcmludEluZm8gcHJpbnRJbmZvLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIFdl
YktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0g
ICAgQ29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYodWludDY0X3QgZnJhbWVJRCwg
c3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2ViS2l0OjpDYWxsYmFja0lEIGNh
bGxiYWNrSUQpIC0+ICh1aW50MzJfdCBwYWdlQ291bnQpIFN5bmNocm9ub3VzCisgICAgQ29tcHV0
ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIFdlYktpdDo6Q2FsbGJh
Y2tJRCBjYWxsYmFja0lEKSAtPiAodWludDMyX3QgcGFnZUNvdW50KSBTeW5jaHJvbm91cwogI2Vu
ZGlmCiAjZW5kaWYKICNpZiBQTEFURk9STShHVEspCi0gICAgRHJhd1BhZ2VzRm9yUHJpbnRpbmco
dWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2Vi
S2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCisgICAgRHJhd1BhZ2VzRm9yUHJpbnRpbmcoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBw
cmludEluZm8sIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogI2VuZGlmCiAKICAgICAj
IE1lZGlhCkBAIC00MTMsNyArNDEzLDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFu
ZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBD
b25maXJtQ29tcG9zaXRpb24oU3RyaW5nIHRleHQsIGludDY0X3Qgc2VsZWN0aW9uU3RhcnQsIGlu
dDY0X3Qgc2VsZWN0aW9uTGVuZ3RoKQogICAgIENhbmNlbENvbXBvc2l0aW9uKCkKIAotICAgIENv
bGxhcHNlU2VsZWN0aW9uSW5GcmFtZSh1aW50NjRfdCBmcmFtZUlEKQorICAgIENvbGxhcHNlU2Vs
ZWN0aW9uSW5GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIAogICAgIEdl
dENlbnRlckZvclpvb21HZXN0dXJlKFdlYkNvcmU6OkludFBvaW50IGNlbnRlckluVmlld0Nvb3Jk
aW5hdGVzKSAtPiAoV2ViQ29yZTo6SW50UG9pbnQgY2VudGVyKSBTeW5jaHJvbm91cwogI2VuZGlm
CkBAIC01MzYsNyArNTM2LDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVt
OnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBEaWRSZWNl
aXZlUGFzc3dvcmRGb3JRdWlja0xvb2tEb2N1bWVudChTdHJpbmcgcGFzc3dvcmQpCiAjZW5kaWYK
IAotICAgIEZyYW1lQmVjYW1lUmVtb3RlKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3Jl
OjpHbG9iYWxGcmFtZUlkZW50aWZpZXIgcmVtb3RlRnJhbWVJZGVudGlmaWVyLCBzdHJ1Y3QgV2Vi
Q29yZTo6R2xvYmFsV2luZG93SWRlbnRpZmllciByZW1vdGVXaW5kb3dJZGVudGlmaWVyKQorICAg
IEZyYW1lQmVjYW1lUmVtb3RlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1
Y3QgV2ViQ29yZTo6R2xvYmFsRnJhbWVJZGVudGlmaWVyIHJlbW90ZUZyYW1lSWRlbnRpZmllciwg
c3RydWN0IFdlYkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXIgcmVtb3RlV2luZG93SWRlbnRp
ZmllcikKIAogICAgIFJlZ2lzdGVyVVJMU2NoZW1lSGFuZGxlcih1aW50NjRfdCBpZGVudGlmaWVy
LCBTdHJpbmcgc2NoZW1lKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9ndGsvV2ViUGFnZUd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9ndGsvV2ViUGFnZUd0ay5jcHAKaW5kZXggYzk4MmQwYjc2MjFlYzMwYmFiNDdkZWEyODc2
ZTk3NjAwYWRiMzg4MS4uMzY4OGUxNWVhOTBlODdkYjljY2RlNzE5YmY2Y2U1NmIzMTgyYjhkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VH
dGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdl
R3RrLmNwcApAQCAtMTgzLDcgKzE4Myw3IEBAIHZvaWQgV2ViUGFnZTo6c2V0SW5wdXRNZXRob2RT
dGF0ZShib29sIGVuYWJsZWQpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRJ
bnB1dE1ldGhvZFN0YXRlKGVuYWJsZWQpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpjb2xsYXBzZVNl
bGVjdGlvbkluRnJhbWUodWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZTo6Y29sbGFwc2VT
ZWxlY3Rpb25JbkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIFdlYkZyYW1l
KiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAg
IGlmICghZnJhbWUgfHwgIWZyYW1lLT5jb3JlRnJhbWUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggNmY2Zjg2NTRhZWMz
YzY3ZWNmZTU5YmM4ZjE2ZTY1NjY4ZGJhOTczYy4uMTgxYzVhYzJkZjZjZGY0MzM1MzdhMjRhMWZh
OWFhZWI2YmJmZjJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTU1MSw3ICs1NTEsNyBAQCB2b2lkIFdlYlBhZ2U6OmFj
Y2VwdHNGaXJzdE1vdXNlKGludCwgY29uc3QgV2ViS2l0OjpXZWJNb3VzZUV2ZW50JiwgQ29tcGxl
dGlvbkhhbgogICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKIH0KIAotdm9pZCBXZWJQYWdl
Ojpjb21wdXRlUGFnZXNGb3JQcmludGluZ1BERkRvY3VtZW50KHVpbnQ2NF90LCBjb25zdCBQcmlu
dEluZm8mLCBWZWN0b3I8SW50UmVjdD4mKQordm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQ
cmludGluZ1BERkRvY3VtZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJ
bmZvJiwgVmVjdG9yPEludFJlY3Q+JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpAQCAt
MzcwNSw3ICszNzA1LDcgQEAgdm9pZCBXZWJQYWdlOjpkaXNwYXRjaEFzeW5jaHJvbm91c1RvdWNo
RXZlbnRzKGNvbnN0IFZlY3RvcjxXZWJUb3VjaEV2ZW50LCAxPiYgcXUKIH0KICNlbmRpZgogCi12
b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBDYWxsYmFja0lEIGNhbGxiYWNr
SUQsIE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BE
Rjo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclBy
aW50aW5nQW5kRHJhd1RvUERGKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25z
dCBQcmludEluZm8mIHByaW50SW5mbywgQ2FsbGJhY2tJRCBjYWxsYmFja0lELCBNZXNzYWdlczo6
V2ViUGFnZTo6Q29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREY6OkRlbGF5ZWRSZXBs
eSYmIHJlcGx5KQogewogICAgIGlmIChwcmludEluZm8uc25hcHNob3RGaXJzdFBhZ2UpIHsKICAg
ICAgICAgcmVwbHkoMSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9XZWJQYWdlTWFjLm1tCmluZGV4IDQzMWRmYTE3YWNhMDViNjBlZmU5YWUwNDAzYTQwODgw
ZTI4MThkODAuLmZlMjQxN2IwYTdkNTgzNjNjNTRiYjg2ZGE1Nzg5OGQxMWZiZTM1MzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1t
CkBAIC02NzAsNyArNjcwLDcgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVIZWFkZXJBbmRGb290ZXJM
YXllcnNGb3JEZXZpY2VTY2FsZUNoYW5nZShmbG9hdCBzY2FsZUZhY3RvcikKICAgICAgICAgbV9m
b290ZXJCYW5uZXItPmRpZENoYW5nZURldmljZVNjYWxlRmFjdG9yKHNjYWxlRmFjdG9yKTsKIH0K
IAotdm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZ1BERkRvY3VtZW50KHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBWZWN0b3I8SW50UmVjdD4m
IHJlc3VsdFBhZ2VSZWN0cykKK3ZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdQ
REZEb2N1bWVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJ
bmZvJiBwcmludEluZm8sIFZlY3RvcjxJbnRSZWN0PiYgcmVzdWx0UGFnZVJlY3RzKQogewogICAg
IEFTU0VSVChyZXN1bHRQYWdlUmVjdHMuaXNFbXB0eSgpKTsKICAgICBXZWJGcmFtZSogZnJhbWUg
PSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA3YjQ4YTBmNzI0NjJmZmU1N2ZlOTIwNmNi
Y2MwY2YzMzFjMzIxMWUxLi40ZWI2ZGVmMmRkMTBjYjhhYjM5MGZhMDIzN2U3YjkwMjQzNTVlOTcy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC03NjgsMTcgKzc2
OCwxNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZQogICAgIExPR19FUlJPUigiVW5oYW5kbGVk
IHdlYiBwcm9jZXNzIG1lc3NhZ2UgJyVzOiVzJyIsIGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFt
ZSgpLnRvU3RyaW5nKCkuZGF0YSgpLCBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkudG9TdHJpbmcoKS5k
YXRhKCkpOwogfQogCi1XZWJGcmFtZSogV2ViUHJvY2Vzczo6d2ViRnJhbWUodWludDY0X3QgZnJh
bWVJRCkgY29uc3QKK1dlYkZyYW1lKiBXZWJQcm9jZXNzOjp3ZWJGcmFtZShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9mcmFtZU1hcC5nZXQoZnJhbWVJRCk7
CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6YWRkV2ViRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2Vi
RnJhbWUqIGZyYW1lKQordm9pZCBXZWJQcm9jZXNzOjphZGRXZWJGcmFtZShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgV2ViRnJhbWUqIGZyYW1lKQogewogICAgIG1fZnJhbWVNYXAuc2V0KGZyYW1l
SUQsIGZyYW1lKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjpyZW1vdmVXZWJGcmFtZSh1aW50NjRf
dCBmcmFtZUlEKQordm9pZCBXZWJQcm9jZXNzOjpyZW1vdmVXZWJGcmFtZShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCkKIHsKICAgICBtX2ZyYW1lTWFwLnJlbW92ZShmcmFtZUlEKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZDRjMDFiYWIxZjkzZGE5MDg1YjBmMjE5
NGNkMzI3ZDQ3MTg2NTBiMi4uM2NiMmM0OTY5NDk5ODg3YjMyYjUzYjNhNjZkMGJiZjY4NWEzMjE4
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC00MCw2ICs0MCw3IEBA
CiAjaW5jbHVkZSAiV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyLmgiCiAjaW5jbHVkZSAiV2ViU29j
a2V0Q2hhbm5lbE1hbmFnZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FjdGl2aXR5U3RhdGUuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWluLmg+
CiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMTcyLDkgKzE3Myw5IEBAIHB1YmxpYzoKIAogICAgIGJv
b2wgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZnVsbEtleWJv
YXJkQWNjZXNzRW5hYmxlZDsgfQogCi0gICAgV2ViRnJhbWUqIHdlYkZyYW1lKHVpbnQ2NF90KSBj
b25zdDsKLSAgICB2b2lkIGFkZFdlYkZyYW1lKHVpbnQ2NF90LCBXZWJGcmFtZSopOwotICAgIHZv
aWQgcmVtb3ZlV2ViRnJhbWUodWludDY0X3QpOworICAgIFdlYkZyYW1lKiB3ZWJGcmFtZShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIpIGNvbnN0OworICAgIHZvaWQgYWRkV2ViRnJhbWUoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJGcmFtZSopOworICAgIHZvaWQgcmVtb3ZlV2ViRnJhbWUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKIAogICAgIFdlYlBhZ2VHcm91cFByb3h5KiB3ZWJQ
YWdlR3JvdXAoV2ViQ29yZTo6UGFnZUdyb3VwKik7CiAgICAgV2ViUGFnZUdyb3VwUHJveHkqIHdl
YlBhZ2VHcm91cCh1aW50NjRfdCBwYWdlR3JvdXBJRCk7CkBAIC00ODksNyArNDkwLDcgQEAgcHJp
dmF0ZToKIAogICAgIGJvb2wgbV9mdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkIHsgZmFsc2UgfTsK
IAotICAgIEhhc2hNYXA8dWludDY0X3QsIFdlYkZyYW1lKj4gbV9mcmFtZU1hcDsKKyAgICBIYXNo
TWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViRnJhbWUqPiBtX2ZyYW1lTWFwOwogCiAg
ICAgdHlwZWRlZiBIYXNoTWFwPGNvbnN0IGNoYXIqLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViUHJvY2Vz
c1N1cHBsZW1lbnQ+LCBQdHJIYXNoPGNvbnN0IGNoYXIqPj4gV2ViUHJvY2Vzc1N1cHBsZW1lbnRN
YXA7CiAgICAgV2ViUHJvY2Vzc1N1cHBsZW1lbnRNYXAgbV9zdXBwbGVtZW50czsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oCmluZGV4IGIxNDAzZDA1NjM5M2IzOTdkMDE3ZDA5M2RlNWZlMDRjZGNj
YThjY2QuLmQ2MDYzMGZlMGNhYWRmNDNhOGI3NDQ5ZDJkNTQ5MGVkYjA4ZTZhYzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtNjQsNyArNjQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wg
aGFzV2ViVmlldygpIGNvbnN0IGZpbmFsOyAvLyBtYWlubHkgZm9yIGFzc2VydGlvbnMKIAogICAg
IE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQoKSBjb25zdCBmaW5hbDsK
LSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCgpIGNvbnN0IGZpbmFsOworICAgIE9wdGlv
bmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCgpIGNvbnN0IGZpbmFsOwogICAg
IFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBtYWtl
UmVwcmVzZW50YXRpb24oV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKSBmaW5hbDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQubW0KaW5kZXggM2RkNTBlN2IzYjljZjk5MzM0OWM5YWJiNGNiNDk3ODM3
ZWVjMzUzZS4uYjdhNjVlOTkzNGZmZjA4ODBiNzU2OGNhMDBlOTYyZTAxNWFlNDIxMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTIxNCw3ICsyMTQsNyBAQCBPcHRpb25hbDxQYWdl
SWRlbnRpZmllcj4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnBhZ2VJRCgpIGNvbnN0CiAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKIH0KIAotT3B0aW9uYWw8dWludDY0X3Q+IFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpmcmFtZUlEKCkgY29uc3QKK09wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmZyYW1lSUQoKSBjb25zdAogewogICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376356</attachid>
            <date>2019-08-14 22:41:33 -0700</date>
            <delta_ts>2019-08-15 07:43:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199986-20190814224129.patch</filename>
            <type>text/plain</type>
            <size>464037</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjViYzhmMGJkODIyMTlm
YTcwYmJiZTk0MDdiZTZlMzY0MDY3NmQyMS4uMGIxN2YwOWE5MjllODJhMjhjNWQ4NTM3NTNkNWE2
OWJlNTA0NWRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE5LTA4LTE0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBPYmplY3RJ
ZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+IGZvciBmcmFtZUlEcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5OTg2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIFVzZSB0aGUgc3Ryb25nbHktdHlwZWQg
RnJhbWVJZGVudGlmaWVyIGluc3RlYWQgb2YgdWludDY0X3QgYXMgZnJhbWUgaWRlbnRpZmllcnMg
ZXZlcnl3aGVyZS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBsb2FkZXIvQ29va2llSmFyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNv
b2tpZUphcjo6Y29va2llcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDb29raWVKYXI6OnNl
dENvb2tpZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDb29raWVKYXI6OmdldFJh
d0Nvb2tpZXMgY29uc3QpOgorICAgICAgICAqIGxvYWRlci9Db29raWVKYXIuaDoKKyAgICAgICAg
KiBsb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIGxvYWRlci9GcmFt
ZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcDoK
KyAgICAgICAgKiBsb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6
TmF2aWdhdGlvbkFjdGlvbjo6UmVxdWVzdGVyOjpmcmFtZUlEIGNvbnN0KToKKyAgICAgICAgKiBw
YWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHBhZ2UvR2xvYmFsRnJhbWVJZGVudGlmaWVy
Lmg6CisgICAgICAgIChXZWJDb3JlOjpHbG9iYWxGcmFtZUlkZW50aWZpZXI6OmRlY29kZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Db29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eS5o
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2hvdWxkQmxvY2tDb29r
aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6aGFz
U3RvcmFnZUFjY2VzcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmdyYW50U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZSk6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAo
V2ViQ29yZTo6Y29va2llc0ZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpjb29raWVzRm9yU2Vz
c2lvbik6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNG
b3JET00gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpj
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9NIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyBjb25zdCk6CisK
IDIwMTktMDgtMTQgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbV0hMU0xdIFZhcmlhYmxlcyBzaG91bGRuJ3QgYmUgYWJsZSB0byBoYXZlIHZvaWQg
dHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCA3MDlmNWMzNjI1MTQyODY4OTQ3M2M5OThiMzhmZGFhYmI1NGE2MGNk
Li5hMGRlZWQ1MTMzMmY4ZDliOWQ1Y2EwMjI0MTk4Y2I1M2E0NDVhYTE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM0OSBAQAorMjAxOS0wOC0xNCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFw
cGxlLmNvbT4KKworICAgICAgICBVc2UgT2JqZWN0SWRlbnRpZmllcjxGcmFtZUlkZW50aWZpZXJU
eXBlPiBmb3IgZnJhbWVJRHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5OTk4NgorCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKwor
ICAgICAgICBVc2UgdGhlIHN0cm9uZ2x5LXR5cGVkIEZyYW1lSWRlbnRpZmllciBpbnN0ZWFkIG9m
IHVpbnQ2NF90IGFzIGZyYW1lIGlkZW50aWZpZXJzIGV2ZXJ5d2hlcmUuCisKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAo
V2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z3JhbnRTdG9yYWdl
QWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TWVtb3J5U3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TWVtb3J5U3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKToKKyAgICAg
ICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpncmFudFN0b3Jh
Z2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5
U3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEhhc1N0
b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3Mp
OgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxH
cmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNGb3JET00pOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0Q29va2llc0Zy
b21ET00pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Z2V0UmF3Q29va2llcyk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6aGFz
U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrTG9hZENoZWNrZXI6Ok5ldHdvcmtMb2FkQ2hlY2tlcik6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0xvYWRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpyZXRyaWV2ZUNhY2hlRW50
cnkpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0TmV0d29y
a0xvYWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnZlcnRU
b0Rvd25sb2FkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjphYm9y
dCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNl
aXZlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRG
aW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpk
aWRGYWlsTG9hZGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
Y29udGludWVXaWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0Ojplc2NhcGVJREZvckpT
T04pOgorICAgICAgICAoV2ViS2l0Ojpsb2dCbG9ja2VkQ29va2llSW5mb3JtYXRpb24pOgorICAg
ICAgICAoV2ViS2l0Ojpsb2dDb29raWVJbmZvcm1hdGlvbkludGVybmFsKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpsb2dDb29raWVJbmZvcm1hdGlvbik6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmg6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTaGFyZWQvQVBJ
L0FQSUZyYW1lSGFuZGxlLmNwcDoKKyAgICAgICAgKEFQSTo6RnJhbWVIYW5kbGU6OmNyZWF0ZSk6
CisgICAgICAgIChBUEk6OkZyYW1lSGFuZGxlOjpjcmVhdGVBdXRvY29udmVydGluZyk6CisgICAg
ICAgIChBUEk6OkZyYW1lSGFuZGxlOjpGcmFtZUhhbmRsZSk6CisgICAgICAgIChBUEk6OkZyYW1l
SGFuZGxlOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuaDoK
KyAgICAgICAgKEFQSTo6RnJhbWVIYW5kbGU6OmZyYW1lSUQgY29uc3QpOgorICAgICAgICAqIFNo
YXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5kbGUubW06CisgICAgICAgICgtW19XS0ZyYW1lSGFu
ZGxlIGhhc2hdKToKKyAgICAgICAgKC1bX1dLRnJhbWVIYW5kbGUgX2ZyYW1lSURdKToKKyAgICAg
ICAgKC1bX1dLRnJhbWVIYW5kbGUgaW5pdFdpdGhDb2RlcjpdKToKKyAgICAgICAgKC1bX1dLRnJh
bWVIYW5kbGUgZW5jb2RlV2l0aENvZGVyOl0pOgorICAgICAgICAqIFNoYXJlZC9BdXRoZW50aWNh
dGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50
aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAg
ICAgICogU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oOgorICAg
ICAgICAqIFNoYXJlZC9GcmFtZUluZm9EYXRhLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
L1dLRnJhbWVIYW5kbGVSZWYuY3BwOgorICAgICAgICAoV0tGcmFtZUhhbmRsZUdldEZyYW1lSUQp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAo
LVtXS1dlYlZpZXcgX3ByaW50T3BlcmF0aW9uV2l0aFByaW50SW5mbzpmb3JGcmFtZTpdKToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IF9jYW5DaGFuZ2VGcmFtZUxheW91dDpdKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5tbToKKyAgICAgICAgKC1bX1dLSW5zcGVj
dG9yIHNob3dNYWluUmVzb3VyY2VGb3JGcmFtZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0
b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpT
aW11bGF0ZWRJbnB1dERpc3BhdGNoZXI6OnJ1bik6CisgICAgICAgICogVUlQcm9jZXNzL0F1dG9t
YXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL0F1
dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJB
dXRvbWF0aW9uU2Vzc2lvbjo6d2ViRnJhbWVJREZvckhhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYkF1dG9tYXRpb25TZXNzaW9uOjpoYW5kbGVGb3JXZWJGcmFtZUlEKToKKyAgICAgICAgKFdl
YktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnN3aXRjaFRvQnJvd3NpbmdDb250ZXh0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OndhaXRGb3JOYXZpZ2F0aW9uVG9D
b21wbGV0ZSk6CisgICAgICAgIChXZWJLaXQ6OmZpbmRQYWdlRm9yRnJhbWVJRCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNwb25kVG9QZW5kaW5nRnJhbWVOYXZp
Z2F0aW9uQ2FsbGJhY2tzV2l0aFRpbWVvdXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0
aW9uU2Vzc2lvbjo6ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24pOgorICAgICAgICAoV2ViS2l0
OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVzb2x2ZUNoaWxkRnJhbWVIYW5kbGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVzb2x2ZVBhcmVudEZyYW1lSGFuZGxl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OmNvbXB1dGVFbGVtZW50
TGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnNlbGVjdE9w
dGlvbkVsZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Z2V0
QWxsQ29va2llcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpkZWxl
dGVTaW5nbGVDb29raWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6
dmlld3BvcnRJblZpZXdDZW50ZXJQb2ludE9mRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkF1dG9tYXRpb25TZXNzaW9uOjp0YWtlU2NyZWVuc2hvdCk6CisgICAgICAgICogVUlQcm9jZXNz
L0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGll
bnQ6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbik6CisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1dLUmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyLm1tOgorICAgICAg
ICAoLVtXS1JlbG9hZEZyYW1lRXJyb3JSZWNvdmVyeUF0dGVtcHRlciBhdHRlbXB0UmVjb3Zlcnld
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxv
Y2tMb2FkRm9yRnJhbWVTaGFyZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlByb3Zpc2lvbmFsUGFnZVByb3h5Ojp2YWxpZGF0ZUlucHV0KToKKyAgICAgICAgKFdlYktpdDo6
UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSk6CisgICAgICAgIChXZWJL
aXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QpOgorICAg
ICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExv
YWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRG
YWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25h
bFBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UHJv
dmlzaW9uYWxQYWdlUHJveHk6OmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKToKKyAgICAg
ICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJM
Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlz
aW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKFdlYktp
dDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJl
Y3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lv
bmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyk6CisgICAg
ICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tM
b2FkRm9yRnJhbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6U2VydmljZVdvcmtlclByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvU2VydmljZVdvcmtlclBy
b2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpTdXNwZW5kZWRQYWdlUHJveHk6OlN1c3BlbmRlZFBhZ2VQcm94
eSk6CisgICAgICAgICogVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9u
Q2hlY2tQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVj
a1Byb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5
OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94
eTo6ZnJhbWVJRCBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlc2V0QWNjZXNzKToKKyAgICAgICAgKFdlYktp
dDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnNlYXJjaEZvckdyYW50
ZWRSZXF1ZXN0IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6Ondhc1JlcXVlc3REZW5pZWQpOgorICAgICAgICAoV2ViS2l0OjpV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBl
cm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5OjpnZXRVc2VyTWVkaWFQZXJtaXNzaW9uSW5mbyk6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp3YXNHcmFu
dGVkVmlkZW9PckF1ZGlvQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6
OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6Om1haW5GcmFtZUlEIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6ZnJhbWVJRCBjb25z
dCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZVByb3h5OjpXZWJGcmFtZVByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViRnJhbWVQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZVByb3h5OjpjcmVhdGUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZVByb3h5OjpmcmFtZUlEIGNvbnN0KToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpzdXNwZW5kQ3VycmVudFBhZ2VJZlBvc3NpYmxlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5Ojpjb21taXRQcm92aXNpb25hbFBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRJbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmRpZENyZWF0ZVN1YmZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpkaWRDcmVhdGVXaW5kb3cpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFN0
YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZEV4cGxpY2l0T3BlbkZvckZyYW1lKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25h
bExvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2
ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ2FuY2VsQ2xpZW50UmVkaXJl
Y3RGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJv
dmlzaW9uYWxVUkxGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlk
Q2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9y
RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZpbmlzaExvYWRGb3JG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmFpbExvYWRGb3JGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkU2FtZURvY3VtZW50TmF2aWdh
dGlvbkZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VN
YWluRG9jdW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVU
aXRsZUZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGaXJzdExh
eW91dEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGaXJzdFZp
c3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRGV0ZWN0WFNTRm9yRnJhbWUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmZyYW1lRGlkQmVjb21lRnJhbWVTZXQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3lu
Yyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbkFzeW5jU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNTaGFyZWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0Fj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJl
c3BvbnNlU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1bmFibGVUb0lt
cGxlbWVudFBvbGljeSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6d2lsbFN1Ym1p
dEZvcm0pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZE5hdmlnYXRlV2l0aE5h
dmlnYXRpb25EYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWROYXZpZ2F0
ZVdpdGhOYXZpZ2F0aW9uRGF0YVNoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0U2hhcmVkKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRVcGRhdGVIaXN0b3J5VGl0bGUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRBbGVydCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdENvbmZpcm0pOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRQcm9tcHQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cnVuT3BlblBhbmVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpwcmludEZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpmb2N1
c2VkRnJhbWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpmcmFtZVNl
dExhcmdlc3RGcmFtZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpleGNlZWRlZERhdGFiYXNlUXVvdGEpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OnJlcXVlc3RTdG9yYWdlU3BhY2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6Om1ha2VTdG9yYWdlU3BhY2VSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNl
c0ZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzaG91bGRBbGxvd0Rl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OndlYkZyYW1lIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpjYW5DcmVhdGVGcmFtZSBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZnJhbWVDcmVhdGVkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Byb3h5OjpkaWREZXN0cm95RnJhbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbToKKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyBfd2tfcGFnZUNvdW50Rm9yUHJpbnRGb3JtYXR0ZXI6XSk6
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZXZhbHVhdGVKYXZhU2NyaXB0Q2FsbGJhY2spOgor
ICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpkaWRDbGVhcldpbmRv
d09iamVjdEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eTo6ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJB
dXRvbWF0aW9uU2Vzc2lvblByb3h5OjpkaWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZy
YW1lV2l0aE9yZGluYWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOb2RlSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoTmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVQYXJlbnRG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmZvY3Vz
RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpjb21w
dXRlRWxlbWVudExheW91dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9u
UHJveHk6OnNlbGVjdE9wdGlvbkVsZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5Ojp0YWtlU2NyZWVuc2hvdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OmdldENvb2tpZXNGb3JGcmFtZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRlbGV0ZUNvb2tpZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9X
S1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbToKKyAgICAgICAgKCtbV0tXZWJQcm9jZXNzUGx1Z0lu
RnJhbWUgbG9va1VwRnJhbWVGcm9tSGFuZGxlOl0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0
d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0
cmF0ZWd5OjpzY2hlZHVsZUxvYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVn
eTo6c2NoZWR1bGVMb2FkRnJvbU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
TG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaFJlc291cmNlTG9hZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlJlc291cmNlTG9hZGVyOjpkaWRGYWlsUmVzb3VyY2VMb2FkKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUmVzb3VyY2VMb2FkZXI6OmRpZEJsb2NrQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6c3RvcExvYWRpbmdBZnRlclhGcmFt
ZU9wdGlvbnNPckNvbnRlbnRTZWN1cml0eVBvbGljeURlbmllZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzb3VyY2UpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjppbnN0YWxsU2VydmljZVdvcmtlcik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmZvY3VzZWRGcmFtZUNoYW5nZWQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6Omhhc1N0b3JhZ2VBY2Nl
c3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RTdG9yYWdlQWNj
ZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZnJhbWVJ
RCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERpZEZhaWxQcm92aXNpb25hbExvYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRl
ckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJDb29raWVKYXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVKYXI6
OmNvb2tpZXMgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVKYXI6OnNldENvb2tp
ZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llSmFyOjpnZXRSYXdD
b29raWVzIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFy
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRnJhbWU6OldlYkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6Z2VuZXJhdGVG
cmFtZUlEKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUu
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OmZyYW1lSUQgY29uc3QpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJJbnNwZWN0b3I6OnNob3dNYWluUmVzb3VyY2VGb3JGcmFtZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJJbnNwZWN0b3IubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpsb2FkVVJMSW5GcmFtZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxvYWREYXRhSW5GcmFtZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OnN0b3BMb2FkaW5nRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
Ojpjb250aW51ZVdpbGxTdWJtaXRGb3JtKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cnVu
SmF2YVNjcmlwdEluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRTb3VyY2VG
b3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldE1haW5SZXNvdXJjZURhdGFP
ZkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0UmVzb3VyY2VEYXRhRnJvbUZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0V2ViQXJjaGl2ZU9mRnJhbWUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjphZGRDb25zb2xlTWVzc2FnZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OnNlbmRDU1BWaW9sYXRpb25SZXBvcnQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjplbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmJlZ2luUHJpbnRpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nSW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmRyYXdSZWN0VG9JbWFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRyYXdQYWdlc1Rv
UERGKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZHJhd1BhZ2VzVG9QREZJbXBsKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZHJhd1BhZ2VzRm9yUHJpbnRpbmcpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpmcmFtZUJlY2FtZVJlbW90ZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6Omhhc1N0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXF1
ZXN0U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNob3VsZEFsbG93
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9T
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZ1BE
RkRvY3VtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJp
bnRpbmdBbmREcmF3VG9QREYpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2Vi
UGFnZU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJp
bnRpbmdQREZEb2N1bWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6d2ViRnJhbWUgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzOjphZGRXZWJGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnJlbW92ZVdlYkZyYW1lKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
aDoKKwogMjAxOS0wOC0xNCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZW1vdmUgbV9ibG9ja1JlY3RGb3JUZXh0U2VsZWN0aW9uIChhbG9uZyB3aXRo
IHJlbGF0ZWQgY29kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCAwMmExY2U3YmE2
OGViZGQyZTdmYjNhYmY4NGMzZGI2OGQ3NDg1ZTZlLi43ZDQyYTg3NjllZGFiMzZhM2Q3OTIxN2Ni
NjljMjAxMWI4YzY0ZmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTktMDgtMTQgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CisKKyAgICAgICAgVXNlIE9iamVjdElkZW50aWZpZXI8RnJhbWVJZGVudGlmaWVyVHlwZT4gZm9y
IGZyYW1lSURzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTk5ODYKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAg
VXNlIHRoZSBzdHJvbmdseS10eXBlZCBGcmFtZUlkZW50aWZpZXIgaW5zdGVhZCBvZiB1aW50NjRf
dCBhcyBmcmFtZSBpZGVudGlmaWVycyBldmVyeXdoZXJlLgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpm
cmFtZUlEIGNvbnN0KToKKwogMjAxOS0wOC0xNCAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFw
cGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQ4NTI2LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UKaW5kZXggOGMzOWUyOGM3NGViMWQ1NTE0YTU0MTYwNzg4ZWNjMjJlYjdlZGM1
NS4uNmUzOWJlNDE4YWQ4ZTEwMDliZGEzZGIwYWYxMGE0YmIzNGFmZmNkNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCkBAIC03NzcsNiArNzc3LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogICAgIHBhZ2UvRm9jdXNEaXJlY3Rpb24uaAogICAgIHBhZ2UvRnJhbWUuaAogICAg
IHBhZ2UvRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmgKKyAgICBwYWdlL0ZyYW1lSWRlbnRpZmll
ci5oCiAgICAgcGFnZS9GcmFtZVNuYXBzaG90dGluZy5oCiAgICAgcGFnZS9GcmFtZVRyZWUuaAog
ICAgIHBhZ2UvRnJhbWVWaWV3LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiN2JlNzQ5M2ZiMzQ3ZTdhZWM1ZDExN2NjNWNjNjlh
OGExZWZjMWUzLi40OTU3YmFiYzk3YjE3MTA0YTQ0NTM1ZTQzODNmZGZhOGIxMjc0MjAxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0yODAsNiArMjgwLDcgQEAKIAkJMEYwM0MwNzQxODg0Njk1RTAwQTVGOENBIC8qIFN5c3RlbU1l
bW9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYw
M0MwNzMxODg0Njk1RTAwQTVGOENBIC8qIFN5c3RlbU1lbW9yeS5oICovOyB9OwogCQkwRjAzQzA3
NTE4ODQ4MDU1MDBBNUY4Q0EgLyogSW5zcGVjdG9yT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M1MjJENEExNUI0NzhCMjAwOUI3Qzk1IC8q
IEluc3BlY3Rvck92ZXJsYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkwRjA5OUQwOTE3Qjk2OEExMDBGRjg0QjkgLyogV2ViQ29yZVR5cGVkQXJy
YXlDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjA5OUQwNzE3Qjk2OEExMDBGRjg0QjkgLyogV2ViQ29yZVR5cGVkQXJyYXlDb250cm9s
bGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
MEYxMTc4MTgyMkUzQzQ3RjAwOEJENTcwIC8qIEZyYW1lSWRlbnRpZmllci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxMTc4MTYyMkUzQzQ3RTAwOEJE
NTcwIC8qIEZyYW1lSWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTBGMTFBNTRGMEYzOTIzMzEwMEMzNzg4NCAvKiBSZW5kZXJTZWxl
Y3Rpb25JbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjExQTU0RTBGMzkyMzMxMDBDMzc4ODQgLyogUmVuZGVyU2VsZWN0aW9uSW5mby5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMTMxNjNFMTZF
RDBDQzgwMDM1Q0MwNCAvKiBQbGF0Zm9ybUNBRmlsdGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxMzE2M0QxNkVEMENDODAwMzVDQzA0IC8qIFBs
YXRmb3JtQ0FGaWx0ZXJzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMEYxNURBOEEwRjNBQUVFNzAwMDBDRTQ3IC8qIENTU0FuaW1hdGlvbkNvbnRy
b2xsZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjE1REE4OTBGM0FBRUU3MDAwMENFNDcgLyogQ1NTQW5pbWF0aW9uQ29udHJvbGxlclBy
aXZhdGUuaCAqLzsgfTsKQEAgLTU1NzgsNiArNTU3OSw3IEBACiAJCTBGMDNDMDczMTg4NDY5NUUw
MEE1RjhDQSAvKiBTeXN0ZW1NZW1vcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU3lzdGVtTWVtb3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMDk5RDA2
MTdCOTY4QTEwMEZGODRCOSAvKiBXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZVR5cGVkQXJyYXlDb250cm9s
bGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYwOTlEMDcxN0I5NjhBMTAw
RkY4NEI5IC8qIFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYxMTc4MTYyMkUzQzQ3RTAwOEJENTcwIC8qIEZyYW1lSWRl
bnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGcmFtZUlkZW50aWZp
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxMUE1NEUwRjM5MjMzMTAwQzM3
ODg0IC8qIFJlbmRlclNlbGVjdGlvbkluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVuZGVyU2VsZWN0aW9uSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwRjEzMTYzRDE2RUQwQ0M4MDAzNUNDMDQgLyogUGxhdGZvcm1DQUZpbHRlcnMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1DQUZpbHRlcnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxMzE2M0YxNkVEMENERTAwMzVDQzA0IC8qIFBsYXRmb3Jt
Q0FGaWx0ZXJzQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBQbGF0Zm9ybUNBRmlsdGVyc0NvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMjAyMDQsNiArMjAyMDYsNyBAQAogCQkJCTY1QkYwMjJBMDk3NDgxNjMwMEM0MzE5NiAvKiBG
cmFtZS5oICovLAogCQkJCTk3NEE4NjIwMTRCN0FEQkIwMDNGREM3NiAvKiBGcmFtZURlc3RydWN0
aW9uT2JzZXJ2ZXIuY3BwICovLAogCQkJCTk3NEE4NjIxMTRCN0FEQkIwMDNGREM3NiAvKiBGcmFt
ZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCAqLywKKwkJCQkwRjExNzgxNjIyRTNDNDdFMDA4QkQ1NzAg
LyogRnJhbWVJZGVudGlmaWVyLmggKi8sCiAJCQkJQzRDRDYyOTgxODM4Mzc2NjAwN0VCQUYxIC8q
IEZyYW1lU25hcHNob3R0aW5nLmNwcCAqLywKIAkJCQlDNENENjI5OTE4MzgzNzY2MDA3RUJBRjEg
LyogRnJhbWVTbmFwc2hvdHRpbmcuaCAqLywKIAkJCQk2NUEyMTQ4MjA5N0EzRjUzMDBCOTA1MEEg
LyogRnJhbWVUcmVlLmNwcCAqLywKQEAgLTI5MjU1LDYgKzI5MjU4LDcgQEAKIAkJCQlBODUzMTIz
RDExRDA0NzFCMDBENEQwNzcgLyogRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk2NUJGMDIyRjA5NzQ4MTYzMDBDNDMxOTYgLyogRnJhbWUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTk3NEE4NjIzMTRCN0FEQkIwMDNGREM3NiAvKiBGcmFtZURlc3RydWN0aW9u
T2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMTE3ODE4MjJFM0M0N0YwMDhCRDU3MCAv
KiBGcmFtZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NkQzNzNDMEFEQkE1REUw
MEE0NTU0RCAvKiBGcmFtZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2RDM3M0UwQURC
QTVERTAwQTQ1NTREIC8qIEZyYW1lTG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlE
MDAwRUJBMzExQkRBRkQ0MDBDNDc3MjYgLyogRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuaCBpbiBI
ZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmNwcAppbmRleCA2OTYzMDMzMGI1
ZDc5MzBkN2Q3YWFmMWRkYjRhODlkZmI2MGRkZGNjLi42ZDAzNjJlOTc2NDE4OGI2MDg0Y2JhYThj
YzE0MmQ0ZDM5MWY1YTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2ll
SmFyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmNwcApAQCAtNzEs
NyArNzEsNyBAQCBTdHJpbmcgQ29va2llSmFyOjpjb29raWVzKERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgVVJMJiB1cmwpIGNvbnN0CiAKICAgICBhdXRvIGluY2x1ZGVTZWN1cmVDb29raWVzID0g
c2hvdWxkSW5jbHVkZVNlY3VyZUNvb2tpZXMoZG9jdW1lbnQsIHVybCk7CiAKLSAgICBPcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1l
SUQ7CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKICAgICBpZiAoYXV0byog
ZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGZyYW1lSUQgPSBmcmFtZS0+bG9h
ZGVyKCkuY2xpZW50KCkuZnJhbWVJRCgpOwpAQCAtOTQsNyArOTQsNyBAQCBDb29raWVSZXF1ZXN0
SGVhZGVyRmllbGRQcm94eSBDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5
KGNvbnN0IERvYwogewogICAgIFRyYWNlU2NvcGUgc2NvcGUoRmV0Y2hDb29raWVzU3RhcnQsIEZl
dGNoQ29va2llc0VuZCk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRDsKKyAgICBP
cHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQ7CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRDsKICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKSB7
CiAgICAgICAgIGZyYW1lSUQgPSBmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuZnJhbWVJRCgpOwpA
QCAtMTA2LDcgKzEwNiw3IEBAIENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5IENvb2tpZUph
cjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkoY29uc3QgRG9jCiAKIHZvaWQgQ29va2ll
SmFyOjpzZXRDb29raWVzKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0
IFN0cmluZyYgY29va2llU3RyaW5nKQogewotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlE
OworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQ
YWdlSWRlbnRpZmllcj4gcGFnZUlEOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZy
YW1lKCkpIHsKICAgICAgICAgZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFt
ZUlEKCk7CkBAIC0xMjgsNyArMTI4LDcgQEAgYm9vbCBDb29raWVKYXI6OmNvb2tpZXNFbmFibGVk
KGNvbnN0IERvY3VtZW50JikgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0ZDo6cGFp
cjxTdHJpbmcsIFNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gQ29va2llSmFyOjpjb29raWVSZXF1ZXN0
SGVhZGVyRmllbGRWYWx1ZShjb25zdCBQQUw6OlNlc3Npb25JRCYsIGNvbnN0IFVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBP
cHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJ
RCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CitzdGQ6
OnBhaXI8U3RyaW5nLCBTZWN1cmVDb29raWVzQWNjZXNzZWQ+IENvb2tpZUphcjo6Y29va2llUmVx
dWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVy
bCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRp
Zmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykg
Y29uc3QKIHsKICAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG1fc3RvcmFnZVNlc3Npb25Qcm92aWRl
ci0+c3RvcmFnZVNlc3Npb24oKSkgewogICAgICAgICBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBy
ZXN1bHQgPSBzZXNzaW9uLT5jb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShmaXJzdFBhcnR5
LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlELCBpbmNsdWRlU2VjdXJlQ29va2ll
cyk7CkBAIC0xNDEsNyArMTQxLDcgQEAgc3RkOjpwYWlyPFN0cmluZywgU2VjdXJlQ29va2llc0Fj
Y2Vzc2VkPiBDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHUKIAogU3RyaW5n
IENvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBjb25zdCBVUkwmIHVybCkgY29uc3QKIHsKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJh
bWVJRDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQ7CiAgICAgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVu
dC5mcmFtZSgpKSB7CiAgICAgICAgIGZyYW1lSUQgPSBmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCku
ZnJhbWVJRCgpOwpAQCAtMTU2LDcgKzE1Niw3IEBAIFN0cmluZyBDb29raWVKYXI6OmNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFZhbHVlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1CiAK
IGJvb2wgQ29va2llSmFyOjpnZXRSYXdDb29raWVzKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgVVJMJiB1cmwsIFZlY3RvcjxDb29raWU+JiBjb29raWVzKSBjb25zdAogewotICAgIE9w
dGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4g
ZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEOwogICAgIGlmIChh
dXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKICAgICAgICAgZnJhbWVJRCA9IGZyYW1l
LT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvQ29va2llSmFyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29va2llSmFyLmgK
aW5kZXggMjgxZjg0YzQ5MDA1MjY3ZWEwNTRkNTFkNzY4YTllYjczMmNiYzIzOS4uODA4N2I4Y2Q1
YjdjZjRmNTY5M2UyZjdlOTVkOGVmNmExNzk4NDZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0Nvb2tpZUphci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVK
YXIuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkZyYW1l
SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTU5LDcgKzYw
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRDb29raWVzKERvY3VtZW50JiwgY29u
c3QgVVJMJiwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpOwogCiAgICAgdmlydHVhbCBib29s
IGNvb2tpZXNFbmFibGVkKGNvbnN0IERvY3VtZW50JikgY29uc3Q7Ci0gICAgdmlydHVhbCBzdGQ6
OnBhaXI8U3RyaW5nLCBTZWN1cmVDb29raWVzQWNjZXNzZWQ+IGNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7
CisgICAgdmlydHVhbCBzdGQ6OnBhaXI8U3RyaW5nLCBTZWN1cmVDb29raWVzQWNjZXNzZWQ+IGNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25h
bDxGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1
cmVDb29raWVzKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBE
b2N1bWVudCYsIGNvbnN0IFVSTCYsIFZlY3RvcjxDb29raWU+JikgY29uc3Q7CiAgICAgdmlydHVh
bCB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBEb2N1bWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0
cmluZyYgY29va2llTmFtZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFt
ZUxvYWRlckNsaWVudC5oCmluZGV4IDFmN2EyOWM0YjMwMWEzNjU4MjJlNDIzM2I0MTVkZDFjMDAx
OTEzMmQuLmU1OWQxNzBkZjBiYTA4YTJjNGY2MDNmZGNmYTgzNTdkZmY4OWJkYjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMzIsNyAr
MzIsNyBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50IDogcHVi
bGljIEZyYW1lTG9hZGVyQ2xpZW50IHsKIAogICAgIHZvaWQgZnJhbWVMb2FkZXJEZXN0cm95ZWQo
KSBvdmVycmlkZSB7IH0KIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gV1RGOjpudWxsb3B0OyB9CisgICAgT3B0aW9uYWw8RnJhbWVJZGVu
dGlmaWVyPiBmcmFtZUlEKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gV1RGOjpudWxsb3B0OyB9
CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIFdURjo6bnVsbG9wdDsgfQogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNv
bnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5o
CmluZGV4IDA3NDg3NjExOGRjNjkxYWE3YzhhZGE5N2I3OTcxMzczM2EyOGE2OTUuLmVkODQ3Y2Iw
NDc4NTI1ZTUyMTBmMWNjODViN2ZlYzUzY2U3MjIyZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNwcmFnbWEgb25jZQog
CisjaW5jbHVkZSAiRnJhbWVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBl
cy5oIgogI2luY2x1ZGUgIkxheW91dE1pbGVzdG9uZS5oIgogI2luY2x1ZGUgIkxpbmtJY29uLmgi
CkBAIC0xMjgsNyArMTI5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBtYWtlUmVwcmVz
ZW50YXRpb24oRG9jdW1lbnRMb2FkZXIqKSA9IDA7CiAKICAgICB2aXJ0dWFsIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiBwYWdlSUQoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBPcHRpb25hbDx1
aW50NjRfdD4gZnJhbWVJRCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIE9wdGlvbmFsPEZyYW1l
SWRlbnRpZmllcj4gZnJhbWVJRCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCgpIGNvbnN0ID0gMDsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAKaW5kZXggNjJiYTJkZDJm
NzcwYTQwNmUxNWM5MDM5NWU0MTdjNDJjMjhmNTIwZS4uYmQ3MzhlMDg5NTdlMmZkODRkYTA1NWFi
NDUzZTFhNDNlMGIyODhkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmln
YXRpb25BY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0
aW9uLmNwcApAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBOYXZpZ2F0aW9u
QWN0aW9uOjpSZXF1ZXN0ZXI6OlJlcXVlc3Rlcihjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpCiAg
ICAgOiBtX3VybCB7IFVSTCB7IGRvY3VtZW50LnVybCgpIH0gfQogICAgICwgbV9vcmlnaW4geyBt
YWtlUmVmUHRyKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkpIH0KLSAgICAsIG1fcGFnZUlEQW5k
RnJhbWVJRFBhaXIgeyBkb2N1bWVudC5mcmFtZSgpID8gc3RkOjptYWtlX3BhaXIoZG9jdW1lbnQu
ZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkucGFnZUlEKCkudmFsdWVPcihQYWdlSWRlbnRpZmll
ciB7IH0pLCBkb2N1bWVudC5mcmFtZSgpLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlEKCkudmFs
dWVPcigwKSkgOiBzdGQ6Om1ha2VfcGFpcjxQYWdlSWRlbnRpZmllciwgdWludDY0X3Q+KHsgfSwg
MCkgfQorICAgICwgbV9wYWdlSURBbmRGcmFtZUlEUGFpciB7IGRvY3VtZW50LmZyYW1lKCkgPyBz
dGQ6Om1ha2VfcGFpcihkb2N1bWVudC5mcmFtZSgpLT5sb2FkZXIoKS5jbGllbnQoKS5wYWdlSUQo
KS52YWx1ZU9yKFBhZ2VJZGVudGlmaWVyIHsgfSksIGRvY3VtZW50LmZyYW1lKCktPmxvYWRlcigp
LmNsaWVudCgpLmZyYW1lSUQoKS52YWx1ZU9yKEZyYW1lSWRlbnRpZmllciB7IH0pKSA6IHN0ZDo6
bWFrZV9wYWlyPFBhZ2VJZGVudGlmaWVyLCBGcmFtZUlkZW50aWZpZXI+KHsgfSwgeyB9KSB9CiB7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oCmluZGV4IDM1Yzk2
MWFhMTU0N2I4ZWEwYzRiOTA0MDcwM2M4NWQzZWE4ZTdlNTcuLjBhMDIxZDRmYzc5ZDk2YjNmMmE4
OGJhZTQwNDU2MTkxMDRjZTkwYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9O
YXZpZ2F0aW9uQWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25B
Y3Rpb24uaApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQWRDbGlja0F0dHJpYnV0aW9u
LmgiCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIkZy
YW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKICNpbmNsdWRl
ICJMYXlvdXRQb2ludC5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCkBAIC02NCw3ICs2
NSw3IEBAIHB1YmxpYzoKICAgICBOYXZpZ2F0aW9uQWN0aW9uKE5hdmlnYXRpb25BY3Rpb24mJik7
CiAgICAgTmF2aWdhdGlvbkFjdGlvbiYgb3BlcmF0b3I9KE5hdmlnYXRpb25BY3Rpb24mJik7CiAK
LSAgICB1c2luZyBQYWdlSURBbmRGcmFtZUlEUGFpciA9IHN0ZDo6cGFpcjxQYWdlSWRlbnRpZmll
ciwgdWludDY0X3QgLyogZnJhbWVJRCAqLz47CisgICAgdXNpbmcgUGFnZUlEQW5kRnJhbWVJRFBh
aXIgPSBzdGQ6OnBhaXI8UGFnZUlkZW50aWZpZXIsIEZyYW1lSWRlbnRpZmllcj47IC8vIEZJWE1F
OiBVc2UgR2xvYmFsRnJhbWVJZGVudGlmaWVyLgogICAgIGNsYXNzIFJlcXVlc3RlciB7CiAgICAg
cHVibGljOgogICAgICAgICBSZXF1ZXN0ZXIoY29uc3QgRG9jdW1lbnQmKTsKQEAgLTcyLDcgKzcz
LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1f
dXJsOyB9CiAgICAgICAgIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBzZWN1cml0eU9yaWdpbigpIGNv
bnN0IHsgcmV0dXJuICptX29yaWdpbjsgfQogICAgICAgICBQYWdlSWRlbnRpZmllciBwYWdlSUQo
KSBjb25zdCB7IHJldHVybiBtX3BhZ2VJREFuZEZyYW1lSURQYWlyLmZpcnN0OyB9Ci0gICAgICAg
IHVpbnQ2NF90IGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VJREFuZEZyYW1lSURQYWly
LnNlY29uZDsgfQorICAgICAgICBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNvbnN0IHsgcmV0
dXJuIG1fcGFnZUlEQW5kRnJhbWVJRFBhaXIuc2Vjb25kOyB9CiAgICAgcHJpdmF0ZToKICAgICAg
ICAgVVJMIG1fdXJsOwogICAgICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG1fb3JpZ2luOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggYzI1YTAyNGJjMDYzYzU4ZjNiMjhiZDc5
Y2JiMDMzODQ0MjZjOGM1ZS4uZThhNWRlMzNlZDE3OTI2YzlhYTg1NmIwODE2YjRlZWNmODJjOTRm
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5j
bHVkZSAiRGlzcGxheVJlZnJlc2hNb25pdG9yLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRTdG9yYWdl
QWNjZXNzLmgiCiAjaW5jbHVkZSAiRm9jdXNEaXJlY3Rpb24uaCIKKyNpbmNsdWRlICJGcmFtZUlk
ZW50aWZpZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKQEAgLTQ4Niw4ICs0ODcsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBSZWZQdHI8SWNvbj4gY3JlYXRlSWNvbkZvckZpbGVzKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiAvKiBmaWxlbmFtZXMgKi8pID0gMDsKIAogI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgdmlydHVhbCB2b2lkIGhhc1N0b3JhZ2VBY2Nl
c3MoUmVnaXN0cmFibGVEb21haW4mJiAvKnN1YkZyYW1lRG9tYWluKi8sIFJlZ2lzdHJhYmxlRG9t
YWluJiYgLyp0b3BGcmFtZURvbWFpbiovLCB1aW50NjRfdCAvKmZyYW1lSUQqLywgUGFnZUlkZW50
aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcmVx
dWVzdFN0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiAvKnN1YkZyYW1lRG9tYWluKi8s
IFJlZ2lzdHJhYmxlRG9tYWluJiYgLyp0b3BGcmFtZURvbWFpbiovLCB1aW50NjRfdCAvKmZyYW1l
SUQqLywgUGFnZUlkZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdl
QWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZDo6
Tm8sIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bjo6Tm8pOyB9CisgICAgdmlydHVhbCB2b2lk
IGhhc1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiAvKnN1YkZyYW1lRG9tYWluKi8s
IFJlZ2lzdHJhYmxlRG9tYWluJiYgLyp0b3BGcmFtZURvbWFpbiovLCBGcmFtZUlkZW50aWZpZXIs
IFBhZ2VJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOyB9CisgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWluJiYgLypzdWJGcmFt
ZURvbWFpbiovLCBSZWdpc3RyYWJsZURvbWFpbiYmIC8qdG9wRnJhbWVEb21haW4qLywgRnJhbWVJ
ZGVudGlmaWVyLCBQYWdlSWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0
b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNv
bXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKFN0b3JhZ2VBY2Nlc3NXYXNHcmFu
dGVkOjpObywgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpObyk7IH0KICNlbmRpZgogCiAj
aWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lSWRlbnRp
Zmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjY1ZDQ5NjdhYjFiNDU0MjM1OGU4NjcyNDA1Y2I2NmI3ZDc4ZDcy
MjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lSWRlbnRpZmll
ci5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51
bSBGcmFtZUlkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIEZyYW1lSWRlbnRpZmllciA9IE9iamVj
dElkZW50aWZpZXI8RnJhbWVJZGVudGlmaWVyVHlwZT47CisKK2lubGluZSBGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJZGVudGlmaWVyRnJvbUlEKHVpbnQ2NF90IGZyYW1lSUQpCit7CisgICAgcmV0dXJu
IG1ha2VPYmplY3RJZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+KGZyYW1lSUQpOworfQor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0dsb2JhbEZyYW1lSWRlbnRpZmll
ci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9HbG9iYWxGcmFtZUlkZW50aWZpZXIuaAppbmRleCAw
ZDdiM2RiZjcyZjgxZTRmZDYyYTczZmVkMjU4MWNlYWVlMTY3YjRhLi43MDkzNDY3YjEyZjg1NjYx
YThmN2ZhZGYwMmIzNTc3OTk0ZWI2YTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0dsb2JhbEZyYW1lSWRlbnRpZmllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2xvYmFs
RnJhbWVJZGVudGlmaWVyLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNp
bmNsdWRlICJGcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJQYWdlSWRlbnRpZmllci5oIgog
I2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogCkBAIC0zMyw3ICszNCw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIC8vIEZyYW1lIGlkZW50aWZpZXIgdGhhdCBpcyB1bmlxdWUgYWNyb3NzIGFsbCBX
ZWJDb250ZW50IHByb2Nlc3Nlcy4KIHN0cnVjdCBHbG9iYWxGcmFtZUlkZW50aWZpZXIgewogICAg
IFBhZ2VJZGVudGlmaWVyIHBhZ2VJRDsKLSAgICB1aW50NjRfdCBmcmFtZUlEOworICAgIEZyYW1l
SWRlbnRpZmllciBmcmFtZUlEOwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBPcHRpb25hbDxHbG9iYWxGcmFtZUlkZW50aWZpZXI+IGRlY29kZShEZWNvZGVyJik7CkBAIC01
Myw3ICs1NCw3IEBAIE9wdGlvbmFsPEdsb2JhbEZyYW1lSWRlbnRpZmllcj4gR2xvYmFsRnJhbWVJ
ZGVudGlmaWVyOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICBpZiAoIXBhZ2VJRCkKICAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFt
ZUlEOworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBkZWNvZGVy
ID4+IGZyYW1lSUQ7CiAgICAgaWYgKCFmcmFtZUlEKQogICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Db29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9Db29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eS5oCmluZGV4IGEzMzAxOWY5ZDViMmFlZDI2
MDc0NjY5NDAxZmQ3MzIyZjAyZDUxNTcuLmM2ODZjODFiNTM3MWE2N2NkZDhhZTA5YjRhMTAxMzJh
NTJkNWIyZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ29v
a2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL0Nvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5LmgKQEAgLTI2LDYgKzI2LDcg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQ29va2llSmFyLmgiCisjaW5jbHVkZSAiRnJh
bWVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJT
YW1lU2l0ZUluZm8uaCIKICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CkBAIC0zOCw3ICszOSw3
IEBAIHN0cnVjdCBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eSB7CiAgICAgVVJMIGZpcnN0
UGFydHk7CiAgICAgU2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbzsKICAgICBVUkwgdXJsOwotICAg
IE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmll
cj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEOwogICAgIElu
Y2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzIHsgSW5jbHVkZVNlY3VyZUNv
b2tpZXM6Ok5vIH07CiAKQEAgLTc4LDggKzc5LDkgQEAgT3B0aW9uYWw8Q29va2llUmVxdWVzdEhl
YWRlckZpZWxkUHJveHk+IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5OjpkZWNvZGUoRGUK
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHVybCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRDsKLSAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKGZyYW1lSUQpKQorICAgIE9wdGlvbmFsPE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4+
IGZyYW1lSUQ7CisgICAgZGVjb2RlciA+PiBmcmFtZUlEOworICAgIGlmICghZnJhbWVJRCkKICAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAogICAgIE9wdGlvbmFsPE9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPj4gcGFnZUlEOwpAQCAtOTEsNyArOTMsNyBAQCBPcHRpb25hbDxDb29raWVSZXF1
ZXN0SGVhZGVyRmllbGRQcm94eT4gQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHk6OmRlY29k
ZShEZQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5jbHVkZVNlY3VyZUNvb2tpZXMpKQogICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgcmV0dXJuIENvb2tpZVJlcXVlc3RIZWFk
ZXJGaWVsZFByb3h5IHsgKnNlc3Npb25JRCwgV1RGTW92ZShmaXJzdFBhcnR5KSwgV1RGTW92ZShz
YW1lU2l0ZUluZm8pLCBXVEZNb3ZlKHVybCksIGZyYW1lSUQsICpwYWdlSUQsIGluY2x1ZGVTZWN1
cmVDb29raWVzIH07CisgICAgcmV0dXJuIENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5IHsg
KnNlc3Npb25JRCwgV1RGTW92ZShmaXJzdFBhcnR5KSwgV1RGTW92ZShzYW1lU2l0ZUluZm8pLCBX
VEZNb3ZlKHVybCksICpmcmFtZUlELCAqcGFnZUlELCBpbmNsdWRlU2VjdXJlQ29va2llcyB9Owog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAKaW5kZXggZTcxOTA3
ZDk3N2RmNTkyNzNmNDkxOWM1NjUxYWYxNzM2ZmIxYTY3Zi4uZjRiMDlhOGQ1ZTFhZDk0ODRlZDdi
MzJlYjU2ZTM5NmY3NWRhYzkwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcApAQCAtNzksMTIgKzc5LDEy
IEBAIGJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzaG91bGRCbG9ja1RoaXJkUGFydHlDb29r
aWVzQnV0S2VlcEZpcnN0UGFydHlDb29raWVzCiAgICAgcmV0dXJuIG1fcmVnaXN0cmFibGVEb21h
aW5zVG9CbG9ja0J1dEtlZXBDb29raWVzRm9yLmNvbnRhaW5zKHJlZ2lzdHJhYmxlRG9tYWluKTsK
IH0KIAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNob3VsZEJsb2NrQ29va2llcyhjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBP
cHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEKSBjb25zdAorYm9vbCBOZXR3b3JrU3RvcmFn
ZVNlc3Npb246OnNob3VsZEJsb2NrQ29va2llcyhjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRCkgY29uc3QKIHsKICAgICByZXR1cm4gc2hvdWxkQmxvY2tDb29raWVzKHJl
cXVlc3QuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgcmVxdWVzdC51cmwoKSwgZnJhbWVJRCwgcGFn
ZUlEKTsKIH0KICAgICAKLWJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzaG91bGRCbG9ja0Nv
b2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5Rm9yQ29va2llcywgY29uc3QgVVJMJiByZXNvdXJj
ZSwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBw
YWdlSUQpIGNvbnN0Citib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2hvdWxkQmxvY2tDb29r
aWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eUZvckNvb2tpZXMsIGNvbnN0IFVSTCYgcmVzb3VyY2Us
IE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZp
ZXI+IHBhZ2VJRCkgY29uc3QKIHsKICAgICBSZWdpc3RyYWJsZURvbWFpbiBmaXJzdFBhcnR5RG9t
YWluIHsgZmlyc3RQYXJ0eUZvckNvb2tpZXMgfTsKICAgICBpZiAoZmlyc3RQYXJ0eURvbWFpbi5p
c0VtcHR5KCkpCkBAIC0xMzYsNyArMTM2LDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OnJlbW92ZVByZXZhbGVudERvbWFpbnMoY29uc3QgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWkKICAg
ICB9CiB9CiAKLWJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpoYXNTdG9yYWdlQWNjZXNzKGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBQYWdl
SWRlbnRpZmllciBwYWdlSUQpIGNvbnN0Citib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6aGFz
U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDxGcmFtZUlk
ZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkgY29uc3QKIHsKICAgICBp
ZiAoZnJhbWVJRCkgewogICAgICAgICBhdXRvIGZyYW1lc0dyYW50ZWRJdGVyYXRvciA9IG1fZnJh
bWVzR3JhbnRlZFN0b3JhZ2VBY2Nlc3MuZmluZChwYWdlSUQpOwpAQCAtMTY5LDcgKzE2OSw3IEBA
IFZlY3RvcjxTdHJpbmc+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0QWxsU3RvcmFnZUFjY2Vz
c0VudHJpZXMoKSBjb25zdAogICAgIHJldHVybiBlbnRyaWVzOwogfQogICAgIAotdm9pZCBOZXR3
b3JrU3RvcmFnZVNlc3Npb246OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5
RG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlE
KQordm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCkKIHsKICAgICBpZiAoIWZyYW1lSUQpIHsKICAgICAgICAgaWYg
KGZpcnN0UGFydHlEb21haW4uaXNFbXB0eSgpKQpAQCAtMTkxLDcgKzE5MSw3IEBAIHZvaWQgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHJlc291cmNlCiAKICAgICBhdXRvIHBhZ2VzR3JhbnRlZEl0ZXJhdG9yID0gbV9mcmFt
ZXNHcmFudGVkU3RvcmFnZUFjY2Vzcy5maW5kKHBhZ2VJRCk7CiAgICAgaWYgKHBhZ2VzR3JhbnRl
ZEl0ZXJhdG9yID09IG1fZnJhbWVzR3JhbnRlZFN0b3JhZ2VBY2Nlc3MuZW5kKCkpIHsKLSAgICAg
ICAgSGFzaE1hcDx1aW50NjRfdCwgUmVnaXN0cmFibGVEb21haW4sIERlZmF1bHRIYXNoPHVpbnQ2
NF90Pjo6SGFzaCwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czx1aW50NjRfdD4+
IGVudHJ5OworICAgICAgICBIYXNoTWFwPEZyYW1lSWRlbnRpZmllciwgUmVnaXN0cmFibGVEb21h
aW4+IGVudHJ5OwogICAgICAgICBlbnRyeS5hZGQoZnJhbWVJRC52YWx1ZSgpLCByZXNvdXJjZURv
bWFpbik7CiAgICAgICAgIG1fZnJhbWVzR3JhbnRlZFN0b3JhZ2VBY2Nlc3MuYWRkKHBhZ2VJRCwg
ZW50cnkpOwogICAgIH0gZWxzZSB7CkBAIC0yMDMsNyArMjAzLDcgQEAgdm9pZCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
cmVzb3VyY2UKICAgICB9CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpyZW1vdmVT
dG9yYWdlQWNjZXNzRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFn
ZUlEKQordm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JG
cmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKQogewog
ICAgIGF1dG8gaXRlcmF0aW9uID0gbV9mcmFtZXNHcmFudGVkU3RvcmFnZUFjY2Vzcy5maW5kKHBh
Z2VJRCk7CiAgICAgaWYgKGl0ZXJhdGlvbiA9PSBtX2ZyYW1lc0dyYW50ZWRTdG9yYWdlQWNjZXNz
LmVuZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JrU3RvcmFnZVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uLmgKaW5kZXggYzhlZjhmN2JhYjc1ZmQ5OTc5YjI4MmY1ZjVhODcw
MmVmODBjODhiMy4uOGRkZjU1YjRhMWZjYTVjNTRhNDk5MGEzYTM3YzA1OTI2NjhmZTAwZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNl
c3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUg
IkNyZWRlbnRpYWxTdG9yYWdlLmgiCisjaW5jbHVkZSAiRnJhbWVJZGVudGlmaWVyLmgiCiAjaW5j
bHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJSZWdpc3RyYWJsZURvbWFpbi5oIgog
I2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KQEAgLTEyMyw3ICsxMjQsNyBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjb29raWVzRW5hYmxlZCgpIGNvbnN0OwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0Q29va2llKGNvbnN0IENvb2tpZSYpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0Q29va2llcyhjb25zdCBWZWN0b3I8Q29va2llPiYsIGNvbnN0IFVSTCYsIGNv
bnN0IFVSTCYgbWFpbkRvY3VtZW50VVJMKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENv
b2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwg
Y29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiwgY29uc3QgU3RyaW5nJikgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5m
byYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBkZWxldGVDb29raWUoY29uc3QgQ29va2llJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBk
ZWxldGVDb29raWUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBkZWxldGVBbGxDb29raWVzKCk7CkBAIC0xMzIsMjYgKzEzMywyNiBAQCBw
dWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZWxldGVDb29raWVzRm9ySG9zdG5hbWVz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBjb29raWVIb3N0TmFtZXMsIEluY2x1ZGVIdHRwT25seUNv
b2tpZXMpOwogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxDb29raWU+IGdldEFsbENvb2tpZXMo
KTsKICAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8Q29va2llPiBnZXRDb29raWVzKGNvbnN0IFVS
TCYpOwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgZ2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2
NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIFZlY3RvcjxDb29raWU+Jikg
Y29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IFVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJh
bWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBWZWN0b3I8Q29va2llPiYp
IGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZmx1c2hDb29raWVTdG9yZSgpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoSGFzaFNldDxTdHJp
bmc+JiBob3N0bmFtZXMpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6cGFpcjxTdHJpbmcsIGJv
b2w+IGNvb2tpZXNGb3JET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUlu
Zm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFn
ZUlkZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFs
dWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwm
LCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJ
bmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpwYWly
PFN0cmluZywgYm9vbD4gY29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4sIE9w
dGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0OworICAg
IFdFQkNPUkVfRVhQT1JUIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZVJlcXVlc3RIZWFk
ZXJGaWVsZFZhbHVlKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwg
Y29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQg
c3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29u
c3QgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkmKSBjb25zdDsKIAogI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91bGRC
bG9ja0Nvb2tpZXMoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPikgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5Rm9yQ29va2ll
cywgY29uc3QgVVJMJiByZXNvdXJjZSwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlv
bmFsPFBhZ2VJZGVudGlmaWVyPikgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91
bGRCbG9ja0Nvb2tpZXMoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgT3B0aW9uYWw8RnJhbWVJZGVu
dGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+KSBjb25zdDsKKyAgICBXRUJDT1JFX0VY
UE9SVCBib29sIHNob3VsZEJsb2NrQ29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHlGb3JDb29r
aWVzLCBjb25zdCBVUkwmIHJlc291cmNlLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4pIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2hv
dWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpIGNvbnN0
OwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llc0J1
dEtlZXBGaXJzdFBhcnR5Q29va2llc0Zvcihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpIGNvbnN0
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UHJldmFsZW50RG9tYWluc1RvQmxvY2tBbmRE
ZWxldGVDb29raWVzRm9yKGNvbnN0IFZlY3RvcjxSZWdpc3RyYWJsZURvbWFpbj4mKTsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldFByZXZhbGVudERvbWFpbnNUb0Jsb2NrQnV0S2VlcENvb2tp
ZXNGb3IoY29uc3QgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiYpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoT3B0aW9uYWw8U2Vjb25kcz4p
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlUHJldmFsZW50RG9tYWlucyhjb25zdCBW
ZWN0b3I8UmVnaXN0cmFibGVEb21haW4+JiBkb21haW5zKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBi
b29sIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9t
YWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyKSBjb25zdDsKKyAgICBXRUJDT1JFX0VY
UE9SVCBib29sIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291
cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0
aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgUGFnZUlkZW50aWZpZXIpIGNvbnN0OwogICAgIFdFQkNP
UkVfRVhQT1JUIFZlY3RvcjxTdHJpbmc+IGdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKCkgY29u
c3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
Zmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIFBhZ2VJZGVudGlm
aWVyKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllcik7CisgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNl
RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiwgUGFnZUlkZW50aWZpZXIpOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgcmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKEZyYW1lSWRlbnRpZmllciwgUGFnZUlk
ZW50aWZpZXIpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJQYWdlU3BlY2lmaWNEYXRh
Rm9yUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQYWdlSWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCByZW1vdmVBbGxTdG9yYWdlQWNjZXNzKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhTZWNvbmRzKTsKQEAg
LTE4NSw3ICsxODYsNyBAQCBwcml2YXRlOgogICAgIE9wdGlvbmFsPFNlY29uZHM+IGNsaWVudFNp
ZGVDb29raWVDYXAoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHksIE9wdGlvbmFs
PFBhZ2VJZGVudGlmaWVyPikgY29uc3Q7CiAgICAgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4g
bV9yZWdpc3RyYWJsZURvbWFpbnNUb0Jsb2NrQW5kRGVsZXRlQ29va2llc0ZvcjsKICAgICBIYXNo
U2V0PFJlZ2lzdHJhYmxlRG9tYWluPiBtX3JlZ2lzdHJhYmxlRG9tYWluc1RvQmxvY2tCdXRLZWVw
Q29va2llc0ZvcjsKLSAgICBIYXNoTWFwPFBhZ2VJZGVudGlmaWVyLCBIYXNoTWFwPHVpbnQ2NF90
LCBSZWdpc3RyYWJsZURvbWFpbiwgRGVmYXVsdEhhc2g8dWludDY0X3Q+OjpIYXNoLCBXVEY6OlVu
c2lnbmVkV2l0aFplcm9LZXlIYXNoVHJhaXRzPHVpbnQ2NF90Pj4+IG1fZnJhbWVzR3JhbnRlZFN0
b3JhZ2VBY2Nlc3M7CisgICAgSGFzaE1hcDxQYWdlSWRlbnRpZmllciwgSGFzaE1hcDxGcmFtZUlk
ZW50aWZpZXIsIFJlZ2lzdHJhYmxlRG9tYWluPj4gbV9mcmFtZXNHcmFudGVkU3RvcmFnZUFjY2Vz
czsKICAgICBIYXNoTWFwPFBhZ2VJZGVudGlmaWVyLCBIYXNoTWFwPFJlZ2lzdHJhYmxlRG9tYWlu
LCBSZWdpc3RyYWJsZURvbWFpbj4+IG1fcGFnZXNHcmFudGVkU3RvcmFnZUFjY2VzczsKICAgICBP
cHRpb25hbDxTZWNvbmRzPiBtX2NhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzIHsg
fTsKICAgICBPcHRpb25hbDxTZWNvbmRzPiBtX2FnZUNhcEZvckNsaWVudFNpZGVDb29raWVzIHsg
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3Ry
ZWFtSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3Ry
ZWFtSGFuZGxlLmNwcAppbmRleCBkYmEwZjEzZjQ3OWEzMzI2YmU4NWQ2NjkzOWU1MGM2M2MxM2I2
MWEwLi5iMDNmMmQyMTg4NjUxNGMyOGViMDkzNzQ4MWJjMGE5MzUzZDBjZDYwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NvY2tldFN0cmVhbUhhbmRsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGUu
Y3BwCkBAIC02MSw3ICs2MSw3IEBAIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxlOjpzZW5kSGFuZHNo
YWtlKENTdHJpbmcmJiBoYW5kc2hha2UsIE9wdGlvbmFsPENvb2tpZVJlcXVlCiB7CiAgICAgaWYg
KG1fc3RhdGUgPT0gQ29ubmVjdGluZyB8fCBtX3N0YXRlID09IENsb3NpbmcpCiAgICAgICAgIHJl
dHVybiBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSwgZmFsc2UpOwotICAgIHBsYXRmb3JtU2VuZEhh
bmRzaGFrZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihoYW5kc2hha2UuZGF0YSgp
KSwgaGFuZHNoYWtlLmxlbmd0aCgpLCBoZWFkZXJGaWVsZFByb3h5LCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CisgICAgcGxhdGZvcm1TZW5kSGFuZHNoYWtlKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgdWludDhfdCo+KGhhbmRzaGFrZS5kYXRhKCkpLCBoYW5kc2hha2UubGVuZ3RoKCksIFdU
Rk1vdmUoaGVhZGVyRmllbGRQcm94eSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0K
IAogdm9pZCBTb2NrZXRTdHJlYW1IYW5kbGU6OmNsb3NlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXRXaW4u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNl
c3Npb25DRk5ldFdpbi5jcHAKaW5kZXggMzMwYWE2MDg2NjE0MGIyNGQ5YjcwNTIzODNhODFjZWNm
OTBiOTlmNi4uZWI4MWMwNTJlYmRhNzJkYTA2ZGJlN2NkMjQ5NGY0ZDMyYWVlMGZkNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNl
c3Npb25DRk5ldFdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
Zi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldFdpbi5jcHAKQEAgLTE4OSw3ICsxODksNyBAQCBz
dGF0aWMgQ0ZBcnJheVJlZiBjcmVhdGVDb29raWVzKENGRGljdGlvbmFyeVJlZiBoZWFkZXJGaWVs
ZHMsIENGVVJMUmVmIHVybCkKICAgICByZXR1cm4gcGFyc2VkQ29va2llczsKIH0KIAotdm9pZCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2
NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBjb25zdCBTdHJp
bmcmIHZhbHVlKSBjb25zdAordm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXNG
cm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3Qg
VVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFn
ZUlkZW50aWZpZXI+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QKIHsKICAgICBV
TlVTRURfUEFSQU0oZnJhbWVJRCk7CiAgICAgVU5VU0VEX1BBUkFNKHBhZ2VJRCk7CkBAIC0yMjUs
NyArMjI1LDcgQEAgc3RhdGljIGJvb2wgY29udGFpbnNTZWN1cmVDb29raWVzKENGQXJyYXlSZWYg
Y29va2llcykKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3Vy
ZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CitzdGQ6OnBhaXI8U3RyaW5nLCBi
b29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNGb3JET00oY29uc3QgVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJh
bWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJ
bmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKIHsKICAgICBV
TlVTRURfUEFSQU0oZnJhbWVJRCk7CiAgICAgVU5VU0VEX1BBUkFNKHBhZ2VJRCk7CkBAIC0yNDAs
NyArMjQwLDcgQEAgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Ojpjb29raWVzRm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXIKICAgICByZXR1cm4geyBjb29raWVT
dHJpbmcsIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMgfTsKIH0KIAotc3RkOjpwYWlyPFN0cmluZywg
Ym9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1
ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYg
dXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+
IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0
CitzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNp
dGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJ
RCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMg
aW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CiB7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQp
OwogICAgIFVOVVNFRF9QQVJBTShwYWdlSUQpOwpAQCAtMjY0LDcgKzI2NCw3IEBAIGJvb2wgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVzRW5hYmxlZCgpIGNvbnN0CiAgICAgcmV0dXJuIHBv
bGljeSA9PSBDRkhUVFBDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1l
bnREb21haW4gfHwgcG9saWN5ID09IENGSFRUUENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3lFeGNs
dXNpdmVseUZyb21NYWluRG9jdW1lbnREb21haW4gfHwgcG9saWN5ID09IENGSFRUUENvb2tpZVN0
b3JhZ2VBY2NlcHRQb2xpY3lBbHdheXM7CiB9CiAKLWJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpnZXRSYXdDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZv
JiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQ
YWdlSWRlbnRpZmllcj4gcGFnZUlELCBWZWN0b3I8Q29va2llPiYgcmF3Q29va2llcykgY29uc3QK
K2Jvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzKGNvbnN0IFVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZy
YW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwg
VmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0CiB7CiAgICAgVU5VU0VEX1BBUkFNKGZy
YW1lSUQpOwogICAgIFVOVVNFRF9QQVJBTShwYWdlSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uQ29jb2EubW0KaW5kZXggODRiNzNiODM0NGIwY2FiNWE5MDQ4YjQ4NWVmYjE3NmQ1ZDM0
MDU4MS4uODVmNGM2MmUzYmY3NGMwZGU1NDM1ZjJmMDBiZTk4NGQ4MmVhZWY2YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNl
c3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29h
L05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tCkBAIC0yOTQsNyArMjk0LDcgQEAgc3RhdGlj
IFJldGFpblB0cjxOU0FycmF5PiBmaWx0ZXJDb29raWVzKE5TQXJyYXkgKnVuZmlsdGVyZWRDb29r
aWVzLCBPcHRpb25hbDxTZWMKICAgICByZXR1cm4gZmlsdGVyZWRDb29raWVzOwogfQogCi1zdGF0
aWMgTlNBcnJheSAqY29va2llc0ZvclVSTChjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNl
c3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0
ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkKK3N0YXRpYyBOU0FycmF5ICpjb29raWVzRm9yVVJM
KGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9w
dGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+
IHBhZ2VJRCkKIHsKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlm
IChzZXNzaW9uLnNob3VsZEJsb2NrQ29va2llcyhmaXJzdFBhcnR5LCB1cmwsIGZyYW1lSUQsIHBh
Z2VJRCkpCkBAIC0zMDcsNyArMzA3LDcgQEAgc3RhdGljIE5TQXJyYXkgKmNvb2tpZXNGb3JVUkwo
Y29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGYKIH0KIAog
ZW51bSBJbmNsdWRlSFRUUE9ubHlPck5vdCB7IERvTm90SW5jbHVkZUhUVFBPbmx5LCBJbmNsdWRl
SFRUUE9ubHkgfTsKLXN0YXRpYyBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yU2Vz
c2lvbihjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJs
LCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBh
Z2VJRCwgSW5jbHVkZUhUVFBPbmx5T3JOb3QgaW5jbHVkZUhUVFBPbmx5LCBJbmNsdWRlU2VjdXJl
Q29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykKK3N0YXRpYyBzdGQ6OnBhaXI8U3RyaW5nLCBi
b29sPiBjb29raWVzRm9yU2Vzc2lvbihjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Np
b24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUlu
Zm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9w
dGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVIVFRQT25seU9yTm90IGluY2x1
ZGVIVFRQT25seSwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpCiB7
CiAgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNj
ZXNzUmF3Q29va2llcykpOwogCkBAIC0zNjMsMTIgKzM2MywxMiBAQCBzdGF0aWMgdm9pZCBkZWxl
dGVBbGxIVFRQQ29va2llcyhDRkhUVFBDb29raWVTdG9yYWdlUmVmIGNvb2tpZVN0b3JhZ2UpCiAg
ICAgQ0ZIVFRQQ29va2llU3RvcmFnZURlbGV0ZUFsbENvb2tpZXMoY29va2llU3RvcmFnZSk7CiB9
CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2ll
c0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNp
dGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlv
bmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVT
ZWN1cmVDb29raWVzKSBjb25zdAorc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpjb29raWVzRm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2Ft
ZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlk
ZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1
ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAogewogICAgIHJldHVy
biBjb29raWVzRm9yU2Vzc2lvbigqdGhpcywgZmlyc3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmws
IGZyYW1lSUQsIHBhZ2VJRCwgRG9Ob3RJbmNsdWRlSFRUUE9ubHksIGluY2x1ZGVTZWN1cmVDb29r
aWVzKTsKIH0KIAotc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Ojpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNv
bnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1
ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAorc3RkOjpwYWlyPFN0
cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1ZXN0SGVhZGVyRmll
bGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNp
dGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlE
LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBp
bmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKIHsKICAgICByZXR1cm4gY29va2llc0ZvclNlc3Np
b24oKnRoaXMsIGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQs
IEluY2x1ZGVIVFRQT25seSwgaW5jbHVkZVNlY3VyZUNvb2tpZXMpOwogfQpAQCAtMzc4LDcgKzM3
OCw3IEBAIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29v
a2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uCiAgICAgcmV0dXJuIGNvb2tpZXNGb3JTZXNz
aW9uKCp0aGlzLCBoZWFkZXJGaWVsZFByb3h5LmZpcnN0UGFydHksIGhlYWRlckZpZWxkUHJveHku
c2FtZVNpdGVJbmZvLCBoZWFkZXJGaWVsZFByb3h5LnVybCwgaGVhZGVyRmllbGRQcm94eS5mcmFt
ZUlELCBoZWFkZXJGaWVsZFByb3h5LnBhZ2VJRCwgSW5jbHVkZUhUVFBPbmx5LCBoZWFkZXJGaWVs
ZFByb3h5LmluY2x1ZGVTZWN1cmVDb29raWVzKTsKIH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZVNl
c3Npb246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2Ft
ZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgY29uc3QgU3RyaW5n
JiBjb29raWVTdHIpIGNvbnN0Cit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2ll
c0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVT
aXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJ
RCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBjb29raWVT
dHIpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZp
bGVnZTo6Q2FuQWNjZXNzUmF3Q29va2llcykpOwogCkBAIC00NDMsNyArNDQzLDcgQEAgYm9vbCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNFbmFibGVkKCkgY29uc3QKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKLWJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzKGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNv
bnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+IHBhZ2VJRCwgVmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0Citib29s
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0
aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
cGFnZUlELCBWZWN0b3I8Q29va2llPiYgcmF3Q29va2llcykgY29uc3QKIHsKICAgICByYXdDb29r
aWVzLmNsZWFyKCk7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuY3Bw
CmluZGV4IDM5NGMzNDYyNjY0OWQ1ZGVhODY5ZTA5NWJlMGQ5ZmFlN2IxYTVlY2IuLjVlY2JhNjZl
Zjk0OTg0ZWJmZjVlM2ZmMDM0Mzc1YWJiNjhjYTcyZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJDdXJsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3VybC5jcHAKQEAgLTU5LDcg
KzU5LDcgQEAgc3RhdGljIFN0cmluZyBjb29raWVzRm9yU2Vzc2lvbihjb25zdCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYKICAgICByZXR1cm4gY29va2llcy50b1N0
cmluZygpOwogfQogCi12b2lkIENvb2tpZUphckN1cmw6OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29u
c3QKK3ZvaWQgQ29va2llSmFyQ3VybDo6c2V0Q29va2llc0Zyb21ET00oY29uc3QgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVT
aXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1l
SUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QK
IHsKICAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CiAKQEAgLTczLDcgKzczLDcgQEAgdm9pZCBD
b29raWVKYXJDdXJsOjpzZXRDb29raWVzRnJvbUhUVFBSZXNwb25zZShjb25zdCBOZXR3b3JrU3Rv
cmFnZVNlc3Npb24mIHNlc3MKICAgICBjb29raWVKYXJEQi5zZXRDb29raWUoZmlyc3RQYXJ0eSwg
dXJsLCB2YWx1ZSwgQ29va2llSmFyREI6OlNvdXJjZTo6TmV0d29yayk7CiB9CiAKLXN0ZDo6cGFp
cjxTdHJpbmcsIGJvb2w+IENvb2tpZUphckN1cmw6OmNvb2tpZXNGb3JET00oY29uc3QgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNv
bnN0CitzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBDb29raWVKYXJDdXJsOjpjb29raWVzRm9yRE9N
KGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJ
ZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNs
dWRlU2VjdXJlQ29va2llcykgY29uc3QKIHsKICAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CiAg
ICAgVU5VU0VEX1BBUkFNKHBhZ2VJRCk7CkBAIC04Miw3ICs4Miw3IEBAIHN0ZDo6cGFpcjxTdHJp
bmcsIGJvb2w+IENvb2tpZUphckN1cmw6OmNvb2tpZXNGb3JET00oY29uc3QgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uCiAgICAgcmV0dXJuIHsgY29va2llc0ZvclNlc3Npb24oc2Vzc2lvbiwgZmlyc3RQ
YXJ0eSwgdXJsLCBmYWxzZSksIGZhbHNlIH07CiB9CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+
IENvb2tpZUphckN1cmw6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBT
YW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQs
IE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzKSBj
b25zdAorc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gQ29va2llSmFyQ3VybDo6Y29va2llUmVxdWVz
dEhlYWRlckZpZWxkVmFsdWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBj
b25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJs
LCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlm
aWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAogewogICAgIFVOVVNFRF9Q
QVJBTShmcmFtZUlEKTsKICAgICBVTlVTRURfUEFSQU0ocGFnZUlEKTsKQEAgLTExMiw3ICsxMTIs
NyBAQCBib29sIENvb2tpZUphckN1cmw6OmNvb2tpZXNFbmFibGVkKGNvbnN0IE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbiYgc2Vzc2lvbikgY29uc3QKICAgICByZXR1cm4gc2Vzc2lvbi5jb29raWVEYXRh
YmFzZSgpLmlzRW5hYmxlZCgpOwogfQogCi1ib29sIENvb2tpZUphckN1cmw6OmdldFJhd0Nvb2tp
ZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50
NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgVmVjdG9yPENv
b2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0Citib29sIENvb2tpZUphckN1cmw6OmdldFJhd0Nvb2tp
ZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFt
ZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFZl
Y3RvcjxDb29raWU+JiByYXdDb29raWVzKSBjb25zdAogewogICAgIFVOVVNFRF9QQVJBTShmcmFt
ZUlEKTsKICAgICBVTlVTRURfUEFSQU0ocGFnZUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJDdXJsLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3VybC5oCmluZGV4IDI0YTA1YTIyN2Fl
MDZhYmExMTQzMTUyYThmYWM4NDgyOWUwMWY0MTAuLmU2MmJjNGEwN2U4MmUzZWNmN2NmMmY2OGE0
MWU0YTJhZGE3MGZiOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9Db29raWVKYXJDdXJsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL0Nvb2tpZUphckN1cmwuaApAQCAtMjQsNiArMjQsNyBAQAogCiAjcHJhZ21hIG9u
Y2UKIAorI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlm
aWVyLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5o
PgpAQCAtNDIsMTUgKzQzLDE1IEBAIGVudW0gY2xhc3MgQ29va2llQWNjZXB0UG9saWN5OwogCiBj
bGFzcyBDb29raWVKYXJDdXJsIHsKIHB1YmxpYzoKLSAgICBzdGQ6OnBhaXI8U3RyaW5nLCBib29s
PiBjb29raWVzRm9yRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWlu
dDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNv
b2tpZXMpIGNvbnN0OwotICAgIHZvaWQgc2V0Q29va2llc0Zyb21ET00oY29uc3QgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8m
LCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlk
ZW50aWZpZXI+LCBjb25zdCBTdHJpbmcmKSBjb25zdDsKKyAgICBzdGQ6OnBhaXI8U3RyaW5nLCBi
b29sPiBjb29raWVzRm9yRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8
RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1
ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKKyAgICB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2Ft
ZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlE
LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAgIHZv
aWQgc2V0Q29va2llc0Zyb21IVFRQUmVzcG9uc2UoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmKSBjb25z
dDsKICAgICB2b2lkIHNldENvb2tpZUFjY2VwdFBvbGljeShjb25zdCBOZXR3b3JrU3RvcmFnZVNl
c3Npb24mLCBDb29raWVBY2NlcHRQb2xpY3kpIGNvbnN0OwogICAgIENvb2tpZUFjY2VwdFBvbGlj
eSBjb29raWVBY2NlcHRQb2xpY3koY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJikgY29uc3Q7
CiAgICAgYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mKSBj
b25zdDsKLSAgICBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmll
bGRWYWx1ZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBm
cmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVzKSBj
b25zdDsKKyAgICBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmll
bGRWYWx1ZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZyYW1lSWRlbnRp
Zmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29v
a2llcykgY29uc3Q7CiAgICAgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llUmVxdWVzdEhl
YWRlckZpZWxkVmFsdWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgQ29va2ll
UmVxdWVzdEhlYWRlckZpZWxkUHJveHkmKSBjb25zdDsKLSAgICBib29sIGdldFJhd0Nvb2tpZXMo
Y29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwg
T3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBWZWN0b3I8Q29va2llPiYpIGNvbnN0OworICAgIGJv
b2wgZ2V0UmF3Q29va2llcyhjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZy
YW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBWZWN0b3I8
Q29va2llPiYpIGNvbnN0OwogICAgIHZvaWQgZGVsZXRlQ29va2llKGNvbnN0IE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAgIHZvaWQg
Z2V0SG9zdG5hbWVzV2l0aENvb2tpZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgSGFz
aFNldDxTdHJpbmc+JiBob3N0bmFtZXMpIGNvbnN0OwogICAgIHZvaWQgZGVsZXRlQ29va2llc0Zv
ckhvc3RuYW1lcyhjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgY29va2llSG9zdE5hbWVzKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25T
b3VwLmNwcAppbmRleCBlNGM4YjBmMTNlNmQwODlhNTg5MmFhN2FlMGE5YjgyMTU4NWJiOWE0Li5l
OTYxYzI4ODNiODYzMDEwNWRhN2Q3ODA3ZjNmYmJlMjYxYTIwNjEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291
cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtT
dG9yYWdlU2Vzc2lvblNvdXAuY3BwCkBAIC0yNjAsNyArMjYwLDcgQEAgc3RhdGljIGlubGluZSBi
b29sIGh0dHBPbmx5Q29va2llRXhpc3RzKGNvbnN0IEdTTGlzdCogY29va2llcywgY29uc3QgZ2No
YXIqIG5hbWUKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpzZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVT
aXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0
aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QK
K3ZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwm
IGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25h
bDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdl
SUQsIGNvbnN0IFN0cmluZyYgdmFsdWUpIGNvbnN0CiB7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1l
SUQpOwogICAgIFVOVVNFRF9QQVJBTShwYWdlSUQpOwpAQCAtNDEzLDcgKzQxMyw3IEBAIFZlY3Rv
cjxDb29raWU+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0Q29va2llcyhjb25zdCBVUkwmIHVy
bCkKICAgICByZXR1cm4gY29va2llczsKIH0KIAotYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8m
LCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiBwYWdlSUQsIFZlY3RvcjxDb29raWU+JiByYXdDb29raWVzKSBjb25zdAor
Ym9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJh
bWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBW
ZWN0b3I8Q29va2llPiYgcmF3Q29va2llcykgY29uc3QKIHsKICAgICBVTlVTRURfUEFSQU0oZmly
c3RQYXJ0eSk7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwpAQCAtNDgzLDcgKzQ4Myw3IEBA
IHN0YXRpYyBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yU2Vzc2lvbihjb25zdCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlCiAgICAgcmV0dXJuIHsgU3RyaW5nOjpmcm9tVVRGOChj
b29raWVIZWFkZXIuZ2V0KCkpLCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzIH07CiB9CiAKLXN0ZDo6
cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTShj
b25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJs
LCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBh
Z2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0Citz
dGQ6OnBhaXI8U3RyaW5nLCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNGb3JE
T00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwm
IHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRl
bnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2ll
cykgY29uc3QKIHsKICAgICBVTlVTRURfUEFSQU0oZmlyc3RQYXJ0eSk7CiAgICAgVU5VU0VEX1BB
UkFNKGZyYW1lSUQpOwpAQCAtNDkxLDcgKzQ5MSw3IEBAIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFy
CiAgICAgcmV0dXJuIGNvb2tpZXNGb3JTZXNzaW9uKCp0aGlzLCB1cmwsIGZhbHNlLCBpbmNsdWRl
U2VjdXJlQ29va2llcyk7CiB9CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWlu
dDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVT
ZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAorc3RkOjpwYWlyPFN0cmlu
ZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRW
YWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVS
TCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29r
aWVzKSBjb25zdAogewogICAgIFVOVVNFRF9QQVJBTShmaXJzdFBhcnR5KTsKICAgICBVTlVTRURf
UEFSQU0oZnJhbWVJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlLmNwcAppbmRleCA2ODdkMGIwNDYxYWZkZTdjMDcyOThjNmM5ZWZmZDI2
MTk0YmY0N2FjLi43NjNiNDc1OWU0MzNmODcxMzBiMzk0MDA2MjM0MGIyNjg0OGVhOGEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5j
cHAKQEAgLTcxNiw3ICs3MTYsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFz
ZVN0b3JlOjpzeW5jU3RvcmFnZUltbWVkaWF0ZWx5KCkKICAgICBtX2RhdGFiYXNlLnJ1blZhY3V1
bUNvbW1hbmQoKTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZTo6aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYgc3ViRnJhbWVEb21haW4s
IGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJRD4g
ZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0
YWJhc2VTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYgc3ViRnJh
bWVEb21haW4sIGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8
RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJU
KCFSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTc0Myw3ICs3NDMsNyBAQCB2b2lkIFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZy
YW1lRG9tYWluJgogICAgIH0pOwogfQogCi12b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1l
RG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlEIGZyYW1lSUQs
IFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNj
ZXNzU3RhdHVzKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFiYXNlU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYg
c3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoU3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
QVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTgwNCw3ICs4MDQsNyBAQCB2b2lkIFJl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc1Vu
ZGVyT3BlbmVyKERvbWFpbgogICAgIGdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFdURk1vdmUo
ZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzKSwgV1RGTW92ZShvcGVuZXJEb21haW4pLCBXVEY6
Om51bGxvcHQsIG9wZW5lclBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duOjpObywg
W10oU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpIHsgfSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFp
biYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCB1aW50
NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93biBwcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNj
ZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4m
JiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1By
b21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3Jh
Z2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQo
IVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtODE4LDcgKzgxOCw3IEBAIHZvaWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURv
bWFpbiYmIHN1CiAgICAgZ3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoV1RGTW92ZShzdWJGcmFt
ZURvbWFpbiksIFdURk1vdmUodG9wRnJhbWVEb21haW4pLCBmcmFtZUlELCBwYWdlSUQsIHByb21w
dFdhc1Nob3duLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFs
KFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJh
bWVEb21haW4sIE9wdGlvbmFsPEZyYW1lSUQ+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duTm93T3JFYXJsaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21h
aW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRp
Zmllcj4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0
V2FzU2hvd24gcHJvbXB0V2FzU2hvd25Ob3dPckVhcmxpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oCmluZGV4IDNjOGQyYjFmMTY1NDkzYzkzY2E1
ZDgyYmMwMjcyZjkxM2I3YTA3ZmEuLmQyNTZiZTIxY2ZmN2IxZjcwNTU2NDAzMWE1NzVmNWU1ZDIz
MzBlZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZS5oCkBAIC05MSw5ICs5MSw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY2FsY3VsYXRl
QW5kU3VibWl0VGVsZW1ldHJ5KCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIGhhc1N0b3Jh
Z2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9w
dGlvbmFsPEZyYW1lSUQ+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vz
cyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBGcmFtZUlELCBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVz
KT4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21h
aW4mJiwgVG9wRnJhbWVEb21haW4mJiwgRnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpIG92ZXJyaWRlOworICAg
IHZvaWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZy
YW1lRG9tYWluJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIG92ZXJyaWRl
OworICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJh
bWVEb21haW4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJikgb3Zl
cnJpZGU7CisgICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9w
RnJhbWVEb21haW4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJikgb3ZlcnJp
ZGU7CiAKICAgICB2b2lkIGxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBOYXZpZ2F0ZWRUb0RvbWFp
biYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgY29uc3QgTmF2aWdhdGVkRnJvbURvbWFpbiYsIGJv
b2wgaXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFtZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBsb2dV
c2VySW50ZXJhY3Rpb24oY29uc3QgVG9wRnJhbWVEb21haW4mKSBvdmVycmlkZTsKQEAgLTE1Myw3
ICsxNTMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3VyY2UoY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mLCBSZXNvdXJjZUxvYWRQcmV2YWxlbmNlKTsKICAgICB1bnNpZ25l
ZCByZWN1cnNpdmVseUZpbmROb25QcmV2YWxlbnREb21haW5zVGhhdFJlZGlyZWN0ZWRUb1RoaXNE
b21haW4odW5zaWduZWQgcHJpbWFyeURvbWFpbklELCBTdGRTZXQ8dW5zaWduZWQ+JiBub25QcmV2
YWxlbnRSZWRpcmVjdGlvblNvdXJjZXMsIHVuc2lnbmVkIG51bWJlck9mUmVjdXJzaXZlQ2FsbHMp
OwogICAgIHZvaWQgc2V0RG9tYWluc0FzUHJldmFsZW50KFN0ZFNldDx1bnNpZ25lZD4mJik7Ci0g
ICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChTdWJGcmFtZURvbWFpbiYmLCBUb3BG
cmFtZURvbWFpbiYmLCBPcHRpb25hbDxGcmFtZUlEPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpOworICAgIHZvaWQgZ3Jh
bnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4m
JiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpOwogICAgIHZv
aWQgbWFya0FzUHJldmFsZW50SWZIYXNSZWRpcmVjdGVkVG9QcmV2YWxlbnQoKTsKICAgICBWZWN0
b3I8UmVnaXN0cmFibGVEb21haW4+IGVuc3VyZVByZXZhbGVudFJlc291cmNlc0ZvckRlYnVnTW9k
ZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVtb3ZlRGF0YVJlY29yZHMoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NN
ZW1vcnlTdG9yZS5jcHAKaW5kZXggZTIzOWZjYzgwM2U4ZDc0NDU2MTIxOGQ2NzIxN2Y3MWVkNDFi
MTg3Zi4uZjZlZTkyZjliNjhkMzJmMDdlNTIxNWQzMDM1NDk5NTE0NGY3YTgzYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0
YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5jcHAKQEAgLTIx
MSw3ICsyMTEsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6c3lu
Y1N0b3JhZ2VJbW1lZGlhdGVseSgpCiAgICAgICAgIG1fcGVyc2lzdGVudFN0b3JhZ2UtPnNjaGVk
dWxlT3JXcml0ZU1lbW9yeVN0b3JlKFJlc291cmNlTG9hZFN0YXRpc3RpY3NQZXJzaXN0ZW50U3Rv
cmFnZTo6Rm9yY2VJbW1lZGlhdGVXcml0ZTo6WWVzKTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzTWVtb3J5U3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21h
aW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4s
IE9wdGlvbmFsPEZyYW1lSUQ+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZy
YW1lRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgVG9wRnJhbWVEb21haW4mIHRvcEZyYW1l
RG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtMjM1LDcgKzIzNSw3
IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpoYXNTdG9yYWdlQWNj
ZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiBzCiAgICAgfSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VM
b2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURv
bWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBG
cmFtZUlEIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJG
cmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9t
YWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC0yODgsNyArMjg4
LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OnJlcXVlc3RTdG9y
YWdlQWNjZXNzVW5kZXJPcGVuZXIoRG9tYWluSW4KICAgICBncmFudFN0b3JhZ2VBY2Nlc3NJbnRl
cm5hbChXVEZNb3ZlKGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcyksIFdURk1vdmUob3BlbmVy
RG9tYWluKSwgV1RGOjpudWxsb3B0LCBvcGVuZXJQYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93bjo6Tm8sIFtdKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKSB7IH0pOwogfQogCi12b2lk
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKFN1
YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVE
b21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFj
Y2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVz
b3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJh
bWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21haW4mJiB0b3BGcmFtZURvbWFp
biwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFn
ZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtMzAwLDcgKzMwMCw3IEBAIHZvaWQg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoU3Vi
RnJhbWVEb21haW4mJiBzdWJGCiAgICAgZ3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoV1RGTW92
ZShzdWJGcmFtZURvbWFpbiksIFdURk1vdmUodG9wRnJhbWVEb21haW4pLCBmcmFtZUlELCBwYWdl
SUQsIHByb21wdFdhc1Nob3duLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZv
aWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3NJ
bnRlcm5hbChTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYm
IHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDxGcmFtZUlEPiBmcmFtZUlELCBQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93bk5vd09y
RWFybGllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlT
dG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFt
ZURvbWFpbiwgVG9wRnJhbWVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJ
ZGVudGlmaWVyPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQ
cm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93bk5vd09yRWFybGllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVt
b3J5U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaAppbmRleCA1YWY2N2ExNmYwNjE2ZGE5ZmEw
YzA5MzMxNWFjYmMzNWRhYTViMTE5Li5hNGE3Yjg4ZTJkZmIwMDM0NmJkYzI3MWZlYjdlNWIyNGJh
ODIwOTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlT
dG9yZS5oCkBAIC05Nyw5ICs5Nyw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY2FsY3VsYXRlQW5k
U3VibWl0VGVsZW1ldHJ5KCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIGhhc1N0b3JhZ2VB
Y2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlv
bmFsPEZyYW1lSUQ+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhT
dWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBGcmFtZUlELCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4m
Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4m
JiwgVG9wRnJhbWVEb21haW4mJiwgRnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdl
YkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpIG92ZXJyaWRlOworICAgIHZv
aWQgaGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1l
RG9tYWluJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVE
b21haW4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJh
bWVEb21haW4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJikgb3ZlcnJpZGU7
CiAKICAgICB2b2lkIGxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBOYXZpZ2F0ZWRUb0RvbWFpbiYs
IGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgY29uc3QgTmF2aWdhdGVkRnJvbURvbWFpbiYsIGJvb2wg
aXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFtZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBsb2dVc2Vy
SW50ZXJhY3Rpb24oY29uc3QgVG9wRnJhbWVEb21haW4mKSBvdmVycmlkZTsKQEAgLTEyMyw3ICsx
MjMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgaW5jcmVtZW50UmVjb3Jkc0RlbGV0ZWRDb3VudEZv
ckRvbWFpbnMoSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4mJikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBzZXRQcmV2YWxlbnRSZXNvdXJjZShSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiwgUmVzb3VyY2VM
b2FkUHJldmFsZW5jZSk7CiAgICAgdW5zaWduZWQgcmVjdXJzaXZlbHlHZXRBbGxEb21haW5zVGhh
dEhhdmVSZWRpcmVjdGVkVG9UaGlzRG9tYWluKGNvbnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3Mm
LCBIYXNoU2V0PFJlZGlyZWN0ZWRUb0RvbWFpbj4mLCB1bnNpZ25lZCBudW1iZXJPZlJlY3Vyc2l2
ZUNhbGxzKSBjb25zdDsKLSAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFN1YkZy
YW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIE9wdGlvbmFsPEZyYW1lSUQ+LCBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4m
Jik7CisgICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChTdWJGcmFtZURvbWFpbiYm
LCBUb3BGcmFtZURvbWFpbiYmLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1No
b3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFu
dGVkKT4mJik7CiAgICAgdm9pZCBtYXJrQXNQcmV2YWxlbnRJZkhhc1JlZGlyZWN0ZWRUb1ByZXZh
bGVudChSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJik7CiAgICAgYm9vbCBpc1ByZXZhbGVudER1ZVRv
RGVidWdNb2RlKFJlc291cmNlTG9hZFN0YXRpc3RpY3MmKTsKICAgICBWZWN0b3I8UmVnaXN0cmFi
bGVEb21haW4+IGVuc3VyZVByZXZhbGVudFJlc291cmNlc0ZvckRlYnVnTW9kZSgpIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4IDcwYWNiZGNl
OTZmNjVjZjgzYTk0NjM3ZDNmYjhkMWU5YjI2NTUzZGQuLjIwOTQ1ZGEwOThhNjgwYTBhNGU5OTc3
ZmQ3NTI0NzBmNjc4ZDk5NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NDbGFzc2lmaWVyLmgiCiAjaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYv
Q29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KQEAgLTkwLDcgKzkxLDYgQEAgcHVibGljOgogICAgIHVzaW5nIE5hdmln
YXRlZFRvRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNpbmcgRG9t
YWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CiAg
ICAgdXNpbmcgT3BlbmVyRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47Ci0gICAg
dXNpbmcgRnJhbWVJRCA9IHVpbnQ2NF90OwogICAgIAogICAgIHZpcnR1YWwgflJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZSgpOwogCkBAIC0xNTksOSArMTU5LDkgQEAgcHVibGljOgogICAgIGJv
b2wgaXNEZWJ1Z01vZGVFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9kZWJ1Z01vZGVFbmFibGVk
OyB9OwogICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoY29uc3QgUmVn
aXN0cmFibGVEb21haW4mKTsKIAotICAgIHZpcnR1YWwgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNv
bnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxGcmFt
ZUlEPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJh
bWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgRnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYs
IFRvcEZyYW1lRG9tYWluJiYsIEZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJD
b3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
V2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFt
ZURvbWFpbiYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZy
YW1lRG9tYWluJiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYs
IFRvcEZyYW1lRG9tYWluJiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpID0g
MDsKIAogICAgIHZpcnR1YWwgdm9pZCBsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgTmF2aWdhdGVk
VG9Eb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0IE5hdmlnYXRlZEZyb21Eb21h
aW4mLCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNNYWluRnJhbWUpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgbG9nVXNlckludGVyYWN0aW9uKGNvbnN0IFRvcEZyYW1lRG9tYWluJikgPSAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAppbmRleCA4YzIx
MTU3Y2M3ZjY5MTdiYTk3MDg5ZTM2ZjE2OWQ4NmNmOGI4YWIwLi42NzVmMGRhZjU5Y2U5YjRmODg3
Yjc5NGJjODkyZWM0NGE4Mzc1NmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlLmNwcApAQCAtMjgwLDcgKzI4MCw3IEBAIHZvaWQgV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzVXBkYXRlZChWZWN0b3I8
V2ViQ29yCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFp
biwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDx1aW50
NjRfdD4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1
YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIE9w
dGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IEFTU0VSVChzdWJGcmFtZURvbWFpbiAhPSB0b3BGcmFtZURvbWFpbik7CiAgICAgQVNTRVJUKFJ1
bkxvb3A6OmlzTWFpbigpKTsKQEAgLTMwMSw3ICszMDEsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgcwogICAgIH0pOwogfQogCi1ib29sIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6
aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJj
ZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIHVpbnQ2
NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKK2Jvb2wgV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQ
YXJ0eURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCkKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC0zMTQsNyArMzE0LDcg
QEAgYm9vbCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3NG
b3JGcmFtZShjb25zdCBSZWdpc3RyYWJsZUQKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQg
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsSGFzU3RvcmFnZUFjY2Vzc0ZvckZy
YW1lSGFuZGxlcihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBoYXNBY2Nl
c3MpPiYmIGNhbGxiYWNrKQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNh
bGxIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21h
aW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBoYXNBY2Nlc3MpPiYmIGNhbGxiYWNrKQogewogICAgIEFT
U0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTMyOCw3ICszMjgsNyBAQCB2b2lkIFdlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhh
bmRsZXIoY29uc3QgUgogICAgIGNhbGxiYWNrKGZhbHNlKTsKIH0KIAotdm9pZCBXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZy
YW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQ
cm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVE
b21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nl
c3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1
bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtMzkxLDcgKzM5MSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyKFJlZ2lz
dHJhYmxlCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9t
YWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZy
YW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3du
IHByb21wdFdhc1Nob3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNH
cmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vz
cyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1No
b3duLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBTdG9y
YWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFT
U0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgcG9zdFRhc2soW3RoaXMsIHN1YkZyYW1lRG9t
YWluID0gc3ViRnJhbWVEb21haW4uaXNvbGF0ZWRDb3B5KCksIHRvcEZyYW1lRG9tYWluID0gdG9w
RnJhbWVEb21haW4uaXNvbGF0ZWRDb3B5KCksIGZyYW1lSUQsIHBhZ2VJRCwgcHJvbXB0V2FzU2hv
d24sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0
YWJsZSB7CkBAIC00MTAsNyArNDEwLDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYKICAgICB9
KTsKIH0KIAotU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291
cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKK1N0b3JhZ2VB
Y2Nlc3NXYXNHcmFudGVkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9y
YWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRp
Zmllcj4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKQogewogICAgIEFTU0VSVChSdW5M
b29wOjppc01haW4oKSk7CiAKQEAgLTQyNyw3ICs0MjcsNyBAQCBTdG9yYWdlQWNjZXNzV2FzR3Jh
bnRlZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzcyhj
b25zdAogICAgIHJldHVybiBpc1N0b3JhZ2VHcmFudGVkID8gU3RvcmFnZUFjY2Vzc1dhc0dyYW50
ZWQ6OlllcyA6IFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOjpObzsKIH0KIAotdm9pZCBXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxHcmFudFN0b3JhZ2VBY2Nlc3NIYW5kbGVyKGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgUGFnZUlk
ZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNH
cmFudGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjpjYWxsR3JhbnRTdG9yYWdlQWNjZXNzSGFuZGxlcihjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFt
ZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAppbmRleCAw
MjNkYzI3N2NmNTA1NDdiZjk2ODllY2NhNDg0NGQwZTY0YWIxMzJmLi45ZGExYjZiYjUyMTUyMWEw
MTI0MjM0Y2Q0MzI3MTE1NmY4Y2UwYjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQ29ubmVjdGlv
bi5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBY2Nlc3NTdGF0dXMuaCIKICNpbmNsdWRlICJXZWJzaXRl
RGF0YVR5cGUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lzdHJh
YmxlRG9tYWluLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CkBAIC04OSw3
ICs5MCw2IEBAIHB1YmxpYzoKICAgICB1c2luZyBOYXZpZ2F0ZWRUb0RvbWFpbiA9IFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluOwogICAgIHVzaW5nIERvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2Vz
cyA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwogICAgIHVzaW5nIE9wZW5lckRvbWFpbiA9
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwotICAgIHVzaW5nIEZyYW1lSUQgPSB1aW50NjRf
dDsKICAgICB1c2luZyBTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCA9IFdlYkNvcmU6OlN0b3JhZ2VB
Y2Nlc3NXYXNHcmFudGVkOwogICAgIHVzaW5nIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biA9
IFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bjsKIApAQCAtMTExLDcgKzExMSw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0
YVJlY29yZHNSZW1vdmFsKGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAg
dm9pZCBzZXRTaG91bGRTdWJtaXRUZWxlbWV0cnkoYm9vbCk7CiAKLSAgICB2b2lkIGdyYW50U3Rv
cmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwg
RnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNT
aG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3Rv
cmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJik7CisgICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nl
c3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFN0b3JhZ2VBY2Nlc3NQ
cm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3Jh
bnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJik7CiAKICAgICB2b2lkIGFwcGxp
Y2F0aW9uV2lsbFRlcm1pbmF0ZSgpOwogCkBAIC0xMjUsMTEgKzEyNSwxMSBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBjbGVhclVzZXJJbnRlcmFjdGlvbihjb25zdCBUb3BGcmFtZURvbWFpbiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvclJl
Z2lzdHJhYmxlRG9tYWlucyhPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgSGFzaE1hcDxSZWdp
c3RyYWJsZURvbWFpbiwgV2Vic2l0ZURhdGFUb1JlbW92ZT4mJiwgYm9vbCBzaG91bGROb3RpZnlQ
YWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21h
aW4+Jik+JiYpOwogICAgIHZvaWQgcmVnaXN0cmFibGVEb21haW5zV2l0aFdlYnNpdGVEYXRhKE9w
dGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBib29sIHNob3VsZE5vdGlmeVBhZ2UsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4mJik+JiYpOwotICAgIFN0
b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURv
bWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9uYWw8RnJhbWVJRD4sIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyKTsKKyAgICBTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCBncmFudFN0b3Jh
Z2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9w
dGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
KTsKICAgICB2b2lkIGhhc0hhZFVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotICAgIHZvaWQgaGFzU3RvcmFn
ZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0
aW9uYWw8RnJhbWVJRD4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKTsKLSAgICBib29sIGhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25z
dCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgRnJhbWVJRCwgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIpOwotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoY29uc3Qg
U3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIEZyYW1lSUQsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNH
cmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKTsKKyAgICB2b2lkIGhhc1N0
b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYs
IE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICBib29sIGhhc1N0b3Jh
Z2VBY2Nlc3NGb3JGcmFtZShjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9t
YWluJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7
CisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNv
bnN0IFRvcEZyYW1lRG9tYWluJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3Jh
bnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJik7CiAgICAgdm9pZCBzZXRMYXN0
U2Vlbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRW
ZXJ5UHJldmFsZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwpAQCAtMTcyLDExICsxNzIsMTEgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiAgICAgdm9pZCBsb2dUZXN0aW5n
RXZlbnQoY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBjYWxsR3JhbnRTdG9yYWdlQWNjZXNzSGFu
ZGxlcihjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgT3B0aW9u
YWw8RnJhbWVJRD4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJik7CisgICAgdm9pZCBjYWxsR3JhbnRTdG9y
YWdlQWNjZXNzSGFuZGxlcihjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9t
YWluJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQp
PiYmKTsKICAgICB2b2lkIHJlbW92ZUFsbFN0b3JhZ2VBY2Nlc3MoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKICAgICB2b2lkIGNhbGxVcGRhdGVQcmV2YWxlbnREb21haW5zVG9CbG9ja0Nv
b2tpZXNGb3JIYW5kbGVyKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluc1RvQmxvY2tDb29raWVzRm9y
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGNhbGxSZW1vdmVEb21h
aW5zSGFuZGxlcihjb25zdCBWZWN0b3I8UmVnaXN0cmFibGVEb21haW4+Jik7Ci0gICAgdm9pZCBj
YWxsSGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcihjb25zdCBTdWJGcmFtZURvbWFpbiYs
IGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgRnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgY2FsbEhhc1N0b3Jh
Z2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BG
cmFtZURvbWFpbiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogCiAgICAgdm9pZCBkaWRD
cmVhdGVOZXR3b3JrUHJvY2VzcygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaAppbmRleCA3OTMwMWIy
MGNjY2FmZWI1MjEwZDc1YWQ1NzQxZmQyZDkyZThhY2FkLi4yY2JmNGM2ZWUyYjNjYzUwYjUxMTdj
ZjI2ZjMxM2IxNTJjNzM5MGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmgKQEAgLTUxLDcgKzUxLDcg
QEAgcHVibGljOgogICAgICAgICBTdHJpbmcgdXNlckFnZW50OwogICAgICAgICBQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQ7CiAgICAgICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRDsK
LSAgICAgICAgdWludDY0X3QgZnJhbWVJRDsKKyAgICAgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQ7CiAgICAgICAgIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0
b3JlZENyZWRlbnRpYWxzUG9saWN5OwogICAgIH07CiAgICAgdXNpbmcgQ29tcGxldGlvbkNhbGxi
YWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYpPjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMWYxMDA0ZTFiNWJjZDM5ZDhiMTIyZGY4
YzZkYTQ4ZDEzN2M0YmU2MS4uMGMyYzk3NmZlZTIwZDMyOWI0MDdlMDRkYjk2MmZiNjc5OWFmNDMx
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTUyNSw3ICs1MjUsNyBAQCB2b2lk
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRv
RG93bmxvYWQoUEFMOjpTZXNzaQogICAgIGxvYWRlci0+Y29udmVydFRvRG93bmxvYWQoZG93bmxv
YWRJRCwgcmVxdWVzdCwgcmVzcG9uc2UpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpjb29raWVzRm9yRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3Qg
VVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRp
Zmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcywg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcgY29va2llU3RyaW5nLCBib29sIHNlY3VyZUNv
b2tpZXNBY2Nlc3NlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRm9yRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Y29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywg
Y29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNl
Y3VyZUNvb2tpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywg
Ym9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IGF1dG8mIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IHN0b3JhZ2VTZXNzaW9uKG5ldHdvcmtQcm9j
ZXNzKCksIHNlc3Npb25JRCk7CiAgICAgYXV0byByZXN1bHQgPSBuZXR3b3JrU3RvcmFnZVNlc3Np
b24uY29va2llc0ZvckRPTShmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwg
cGFnZUlELCBpbmNsdWRlU2VjdXJlQ29va2llcyk7CkBAIC01MzgsNyArNTM4LDcgQEAgdm9pZCBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIGNvbnMKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdC5m
aXJzdCksIHJlc3VsdC5zZWNvbmQpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpzZXRDb29raWVzRnJvbURPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0
IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpCit2b2lkIE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzZXRDb29raWVzRnJvbURPTShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1l
U2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGNvbnN0IFN0cmlu
ZyYgY29va2llU3RyaW5nKQogewogICAgIGF1dG8mIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IHN0
b3JhZ2VTZXNzaW9uKG5ldHdvcmtQcm9jZXNzKCksIHNlc3Npb25JRCk7CiAgICAgbmV0d29ya1N0
b3JhZ2VTZXNzaW9uLnNldENvb2tpZXNGcm9tRE9NKGZpcnN0UGFydHksIHNhbWVTaXRlSW5mbywg
dXJsLCBmcmFtZUlELCBwYWdlSUQsIGNvb2tpZVN0cmluZyk7CkBAIC01NTUsMTMgKzU1NSwxMyBA
QCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVzRW5hYmxlZChQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbQogICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0b3JhZ2VT
ZXNzaW9uKG5ldHdvcmtQcm9jZXNzKCksIHNlc3Npb25JRCkuY29va2llc0VuYWJsZWQoKSk7CiB9
CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZVJlcXVlc3RIZWFk
ZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9w
dGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlE
LCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcywgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChTdHJpbmcsIGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJ
ZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNs
dWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChTdHJpbmcsIGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8gcmVz
dWx0ID0gc3RvcmFnZVNlc3Npb24obmV0d29ya1Byb2Nlc3MoKSwgc2Vzc2lvbklEKS5jb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJh
bWVJRCwgcGFnZUlELCBpbmNsdWRlU2VjdXJlQ29va2llcyk7CiAgICAgY29tcGxldGlvbkhhbmRs
ZXIoV1RGTW92ZShyZXN1bHQuZmlyc3QpLCByZXN1bHQuc2Vjb25kKTsKIH0KIAotdm9pZCBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Z2V0UmF3Q29va2llcyhQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1l
U2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0
aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0
b3I8V2ViQ29yZTo6Q29va2llPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmdldFJhd0Nvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNp
dGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlE
LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IHJlc3VsdDsKICAgICBzdG9yYWdlU2Vzc2lvbihuZXR3
b3JrUHJvY2VzcygpLCBzZXNzaW9uSUQpLmdldFJhd0Nvb2tpZXMoZmlyc3RQYXJ0eSwgc2FtZVNp
dGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgcmVzdWx0KTsKQEAgLTY3MCw3ICs2NzAsNyBA
QCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjplbnN1cmVMZWdhY3lQcml2YXRl
QnJvd3NpbmdTZXNzaW9uKCkKIH0KIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1vdmVTdG9yYWdlQWNj
ZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBmcmFtZUlELCBQ
YWdlSWRlbnRpZmllciBwYWdlSUQpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpyZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKQogewogICAgIGlm
IChhdXRvKiBzdG9yYWdlU2Vzc2lvbiA9IG5ldHdvcmtQcm9jZXNzKCkuc3RvcmFnZVNlc3Npb24o
c2Vzc2lvbklEKSkKICAgICAgICAgc3RvcmFnZVNlc3Npb24tPnJlbW92ZVN0b3JhZ2VBY2Nlc3NG
b3JGcmFtZShmcmFtZUlELCBwYWdlSUQpOwpAQCAtNzI4LDcgKzcyOCw3IEBAIHZvaWQgTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVkKFZl
Y3RvcjxXZWJDb3JlCiAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnJlc291cmNlTG9h
ZFN0YXRpc3RpY3NVcGRhdGVkKFdURk1vdmUoc3RhdGlzdGljcykpOwogfQogCi12b2lkIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpoYXNTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Omhhc1N0
b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURv
bWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBp
ZiAoYXV0byogbmV0d29ya1Nlc3Npb24gPSBuZXR3b3JrUHJvY2VzcygpLm5ldHdvcmtTZXNzaW9u
KHNlc3Npb25JRCkpIHsKICAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3Mg
PSBuZXR3b3JrU2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKSB7CkBAIC03NDAsNyAr
NzQwLDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6aGFzU3RvcmFnZUFj
Y2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGMKICAgICBjb21wbGV0aW9uSGFuZGxlcih0
cnVlKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVxdWVzdFN0
b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURv
bWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIHdhc0dyYW50ZWQs
IFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93bik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpy
ZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRv
cEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFn
ZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFu
dGVkIHdhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9t
cHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdv
cmtTZXNzaW9uID0gbmV0d29ya1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7
CiAgICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Np
b24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmlu
ZGV4IDkyODY3MzNjNGI3Yzc1MTJjMjljNTMyNDM4MjFkMGVlMWVjNzEzMDkuLjI1NTA4NGY5MjMx
ZmVhODMwODAwOThkMzU5MzA1N2ExYmQ5MDdjNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgK
QEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJOZXR3b3JrUlRDUHJvdmlkZXIuaCIKICNpbmNs
dWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkTWFwLmgiCiAjaW5jbHVkZSAiV2ViUGF5bWVudENvb3Jk
aW5hdG9yUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTmV0d29ya0xvYWRJbmZvcm1hdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVy
Lmg+CkBAIC0xNzQsMTEgKzE3NSwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RhcnREb3dubG9h
ZChQQUw6OlNlc3Npb25JRCwgRG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWROYW1lID0geyB9KTsKICAgICB2b2lkIGNvbnZl
cnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgbWFp
blJlc291cmNlTG9hZElkZW50aWZpZXIsIERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKIAotICAgIHZv
aWQgY29va2llc0ZvckRPTShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpJ
bmNsdWRlU2VjdXJlQ29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcgY29va2ll
U3RyaW5nLCBib29sIHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCk+JiYpOwotICAgIHZvaWQgc2V0Q29v
a2llc0Zyb21ET00oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
V2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJik7
CisgICAgdm9pZCBjb29raWVzRm9yRE9NKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFs
PFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyPiwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQpPiYmKTsK
KyAgICB2b2lkIHNldENvb2tpZXNGcm9tRE9NKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlv
bmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyPiwgY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBjb29raWVzRW5hYmxlZChQQUw6OlNl
c3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCBjb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBX
ZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJp
bmcgY29va2llU3RyaW5nLCBib29sIHNlY3VyZUNvb2tpZXNBY2Nlc3NlZCk+JiYpOwotICAgIHZv
aWQgZ2V0UmF3Q29va2llcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYpPiYmKTsKKyAgICB2b2lkIGNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlv
bmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyPiwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQpPiYm
KTsKKyAgICB2b2lkIGdldFJhd0Nvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9u
YWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50
aWZpZXI+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiYp
PiYmKTsKICAgICB2b2lkIGRlbGV0ZUNvb2tpZShQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwg
Y29uc3QgU3RyaW5nJiBjb29raWVOYW1lKTsKIAogICAgIHZvaWQgcmVnaXN0ZXJGaWxlQmxvYlVS
TChQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBwYXRoLCBTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGUmJiwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSk7CkBAIC0yMTgs
NyArMjE5LDcgQEAgcHJpdmF0ZToKICAgICBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uJiBj
YWNoZVN0b3JhZ2VDb25uZWN0aW9uKCk7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFU
SVNUSUNTKQotICAgIHZvaWQgcmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lv
bklELCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CisgICAgdm9p
ZCByZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUoUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogICAgIHZvaWQgY2xlYXJQ
YWdlU3BlY2lmaWNEYXRhRm9yUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQQUw6OlNlc3Npb25JRCwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwogCiAgICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb24o
UEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJik7CkBAIC0yMjYsOCArMjI3
LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGxvZ1N1YnJlc291cmNlTG9hZGluZyhQQUw6OlNlc3Np
b25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRhcmdldERvbWFpbiwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBXYWxsVGltZSBsYXN0U2Vlbik7CiAgICAgdm9p
ZCBsb2dTdWJyZXNvdXJjZVJlZGlyZWN0KFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdGFyZ2V0RG9t
YWluKTsKICAgICB2b2lkIHJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVkKFZlY3RvcjxXZWJD
b3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPiYmKTsKLSAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nl
c3MoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFp
biwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFt
ZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJik7Ci0gICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNH
cmFudGVkLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKTsKKyAgICB2
b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9t
YWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdl
QWNjZXNzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVE
b21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFn
ZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJik7CiAgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vz
c1VuZGVyT3BlbmVyKFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYm
IGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcywgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgb3Bl
bmVyUGFnZUlELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIG9wZW5lckRvbWFpbik7CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXgg
NGIxMTg5YjM5Y2NlYmM4ZmIyMjZmOGZlZTAzNDI4YzZjODVhZDdhMy4uOTlhYmQwNzhmYjE0Yzlm
MzBiZTljODc2MDNhMTNkOTFiZDc5YTljZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluCkBAIC0zNCwxMSArMzQsMTEgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFN0YXJ0RG93bmxvYWQo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBzdWdnZXN0ZWROYW1lKQog
ICAgIENvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBXZWJLaXQ6OkRvd25s
b2FkSUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpCiAKLSAgICBDb29raWVzRm9yRE9NKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1l
U2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgZW51bTpib29sIFdl
YkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSAtPiAoU3Ry
aW5nIGNvb2tpZVN0cmluZywgYm9vbCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzKSBTeW5jaHJvbm91
cwotICAgIFNldENvb2tpZXNGcm9tRE9NKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZp
cnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwg
dXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXI+IHBhZ2VJRCwgU3RyaW5nIGNvb2tpZVN0cmluZykKKyAgICBDb29raWVzRm9yRE9N
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3Jl
OjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25hbDxXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
PiBwYWdlSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRl
U2VjdXJlQ29va2llcykgLT4gKFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgZGlkQWNjZXNzU2Vj
dXJlQ29va2llcykgU3luY2hyb25vdXMKKyAgICBTZXRDb29raWVzRnJvbURPTShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJ
bmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyPiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBT
dHJpbmcgY29va2llU3RyaW5nKQogICAgIENvb2tpZXNFbmFibGVkKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkgLT4gKGJvb2wgZW5hYmxlZCkgU3luY2hyb25vdXMKLSAgICBDb29raWVSZXF1ZXN0
SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5
LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
PiBwYWdlSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRl
U2VjdXJlQ29va2llcykgLT4gKFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgZGlkQWNjZXNzU2Vj
dXJlQ29va2llcykgU3luY2hyb25vdXMKLSAgICBHZXRSYXdDb29raWVzKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgVVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8g
c2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9u
YWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpD
b29raWU+IGNvb2tpZXMpIFN5bmNocm9ub3VzCisgICAgQ29va2llUmVxdWVzdEhlYWRlckZpZWxk
VmFsdWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdl
YkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRCwgZW51bTpib29sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzIGlu
Y2x1ZGVTZWN1cmVDb29raWVzKSAtPiAoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBkaWRBY2Nl
c3NTZWN1cmVDb29raWVzKSBTeW5jaHJvbm91cworICAgIEdldFJhd0Nvb2tpZXMoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRl
SW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRp
Zmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkg
LT4gKFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IGNvb2tpZXMpIFN5bmNocm9ub3VzCiAgICAgRGVs
ZXRlQ29va2llKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIHVybCwgU3RyaW5nIGNvb2tp
ZU5hbWUpCiAKICAgICBSZWdpc3RlckZpbGVCbG9iVVJMKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgVVJMIHVybCwgU3RyaW5nIHBhdGgsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
IGV4dGVuc2lvbkhhbmRsZSwgU3RyaW5nIGNvbnRlbnRUeXBlKQpAQCAtNTgsMTUgKzU4LDE1IEBA
IG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVy
IHsKICAgICBFbnN1cmVMZWdhY3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkKIAogI2lmIEVOQUJM
RShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgUmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZy
YW1lKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgcGFnZUlEKTsKKyAgICBSZW1vdmVTdG9yYWdlQWNjZXNzRm9yRnJhbWUo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKTsKICAgICBDbGVhclBhZ2VTcGVjaWZp
Y0RhdGFGb3JSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKTsKICAgICBMb2dVc2VySW50ZXJhY3Rpb24o
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21h
aW4pCiAgICAgTG9nV2ViU29ja2V0TG9hZGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRhcmdldERvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4gdG9wRnJhbWVEb21haW4sIFdhbGxUaW1lIGxhc3RTZWVuKQogICAgIExvZ1N1YnJl
c291cmNlTG9hZGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluIHRhcmdldERvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJh
bWVEb21haW4sIFdhbGxUaW1lIGxhc3RTZWVuKQogICAgIExvZ1N1YnJlc291cmNlUmVkaXJlY3Qo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzb3Vy
Y2VEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRhcmdldERvbWFpbikKICAgICBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzVXBkYXRlZChWZWN0b3I8V2ViQ29yZTo6UmVzb3VyY2VMb2Fk
U3RhdGlzdGljcz4gc3RhdGlzdGljcykKLSAgICBIYXNTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3ViRnJhbWVEb21haW4s
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFt
ZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpIC0+IChib29sIGhhc1N0b3JhZ2VB
Y2Nlc3MpIEFzeW5jCi0gICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkgLT4gKGVudW06Ym9vbCBXZWJDb3JlOjpTdG9y
YWdlQWNjZXNzV2FzR3JhbnRlZCB3YXNHcmFudGVkLCBlbnVtOmJvb2wgV2ViQ29yZTo6U3RvcmFn
ZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duKSBBc3luYworICAgIEhhc1N0b3Jh
Z2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVE
b21haW4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciBwYWdlSUQpIC0+IChib29sIGhhc1N0b3JhZ2VBY2Nlc3MpIEFzeW5jCisgICAgUmVx
dWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4g
dG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciBwYWdlSUQpIC0+IChlbnVtOmJvb2wgV2ViQ29yZTo6U3RvcmFnZUFj
Y2Vzc1dhc0dyYW50ZWQgd2FzR3JhbnRlZCwgZW51bTpib29sIFdlYkNvcmU6OlN0b3JhZ2VBY2Nl
c3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93bikgQXN5bmMKICAgICBSZXF1ZXN0U3RvcmFn
ZUFjY2Vzc1VuZGVyT3BlbmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4gZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzLCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciBvcGVuZXJQYWdlSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIG9wZW5l
ckRvbWFpbikKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtMb2FkQ2hlY2tlci5jcHAKaW5kZXggNDA5NzE0ZDY2NzI2YTg0NzRhZmYyOWExNjA4
MTdmMjQ3OTY3YjAxNi4uMTE3NmY1MzdhODU4MDliNGJhZTFjZTc2OGI1NjUzNWIxNWQ1ZWJiMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNr
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVj
a2VyLmNwcApAQCAtNDgsNyArNDgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTYW1lT3JpZ2lu
KGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTZWN1cml0eU9yaWdpbiogb3JpZ2luKQogICAgIHJldHVy
biB1cmwucHJvdG9jb2xJc0RhdGEoKSB8fCB1cmwucHJvdG9jb2xJc0Jsb2IoKSB8fCAhb3JpZ2lu
IHx8IG9yaWdpbi0+Y2FuUmVxdWVzdCh1cmwpOwogfQogCi1OZXR3b3JrTG9hZENoZWNrZXI6Ok5l
dHdvcmtMb2FkQ2hlY2tlcihOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIEZldGNoT3B0
aW9ucyYmIG9wdGlvbnMsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgUGFnZUlkZW50aWZpZXIg
cGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBIVFRQSGVhZGVyTWFwJiYgb3JpZ2luYWxSZXF1ZXN0
SGVhZGVycywgVVJMJiYgdXJsLCBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+JiYgc291cmNlT3JpZ2lu
LCBQcmVmbGlnaHRQb2xpY3kgcHJlZmxpZ2h0UG9saWN5LCBTdHJpbmcmJiByZWZlcnJlciwgYm9v
bCBpc0hUVFBTVXBncmFkZUVuYWJsZWQsIGJvb2wgc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xv
YWRNZXRyaWNzLCBMb2FkVHlwZSByZXF1ZXN0TG9hZFR5cGUpCitOZXR3b3JrTG9hZENoZWNrZXI6
Ok5ldHdvcmtMb2FkQ2hlY2tlcihOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIEZldGNo
T3B0aW9ucyYmIG9wdGlvbnMsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgUGFnZUlkZW50aWZp
ZXIgcGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgSFRUUEhlYWRlck1hcCYmIG9yaWdp
bmFsUmVxdWVzdEhlYWRlcnMsIFVSTCYmIHVybCwgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiYmIHNv
dXJjZU9yaWdpbiwgUHJlZmxpZ2h0UG9saWN5IHByZWZsaWdodFBvbGljeSwgU3RyaW5nJiYgcmVm
ZXJyZXIsIGJvb2wgaXNIVFRQU1VwZ3JhZGVFbmFibGVkLCBib29sIHNob3VsZENhcHR1cmVFeHRy
YU5ldHdvcmtMb2FkTWV0cmljcywgTG9hZFR5cGUgcmVxdWVzdExvYWRUeXBlKQogICAgIDogbV9v
cHRpb25zKFdURk1vdmUob3B0aW9ucykpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAg
ICAgLCBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQcm9jZXNzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmgKaW5kZXggMDc3MDY0NjcwZmNi
YjlhYzk0MmY4ZDg2MTgxMDQ5NTlmMDBlMDU3OC4uZWM5NGUxNDY5NTMzZDdkOTg3ODE2YmIyNmIx
N2RmYjIzYjk0M2ZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZENoZWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkQ2hlY2tlci5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9D
b250ZW50RXh0ZW5zaW9uQWN0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGVudFNlY3Vy
aXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GZXRjaE9wdGlv
bnMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvTmV0d29ya0xvYWRJbmZvcm1hdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlk
ZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KQEAgLTU1LDcg
KzU2LDcgQEAgY2xhc3MgTmV0d29ya0xvYWRDaGVja2VyIDogcHVibGljIENhbk1ha2VXZWFrUHRy
PE5ldHdvcmtMb2FkQ2hlY2tlcj4gewogcHVibGljOgogICAgIGVudW0gY2xhc3MgTG9hZFR5cGUg
OiBib29sIHsgTWFpbkZyYW1lLCBPdGhlciB9OwogCi0gICAgTmV0d29ya0xvYWRDaGVja2VyKE5l
dHdvcmtQcm9jZXNzJiwgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiYsIFBBTDo6U2Vzc2lvbklELCBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6SFRUUEhl
YWRlck1hcCYmLCBVUkwmJiwgUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmLCBXZWJD
b3JlOjpQcmVmbGlnaHRQb2xpY3ksIFN0cmluZyYmIHJlZmVycmVyLCBib29sIGlzSFRUUFNVcGdy
YWRlRW5hYmxlZCA9IGZhbHNlLCBib29sIHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0
cmljcyA9IGZhbHNlLCBMb2FkVHlwZSByZXF1ZXN0TG9hZFR5cGUgPSBMb2FkVHlwZTo6T3RoZXIp
OworICAgIE5ldHdvcmtMb2FkQ2hlY2tlcihOZXR3b3JrUHJvY2VzcyYsIFdlYkNvcmU6OkZldGNo
T3B0aW9ucyYmLCBQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYmLCBVUkwmJiwgUmVm
UHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmLCBXZWJDb3JlOjpQcmVmbGlnaHRQb2xpY3ks
IFN0cmluZyYmIHJlZmVycmVyLCBib29sIGlzSFRUUFNVcGdyYWRlRW5hYmxlZCA9IGZhbHNlLCBi
b29sIHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyA9IGZhbHNlLCBMb2FkVHlw
ZSByZXF1ZXN0TG9hZFR5cGUgPSBMb2FkVHlwZTo6T3RoZXIpOwogICAgIH5OZXR3b3JrTG9hZENo
ZWNrZXIoKTsKIAogICAgIHN0cnVjdCBSZWRpcmVjdGlvblRyaXBsZXQgewpAQCAtMTI3LDcgKzEy
OCw3IEBAIHByaXZhdGU6CiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgUmVm
PE5ldHdvcmtQcm9jZXNzPiBtX25ldHdvcmtQcm9jZXNzOwogICAgIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIG1fcGFnZUlEOwotICAgIHVpbnQ2NF90IG1fZnJhbWVJRDsKKyAgICBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgbV9mcmFtZUlEOwogICAgIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAgbV9v
cmlnaW5hbFJlcXVlc3RIZWFkZXJzOyAvLyBOZWVkZWQgZm9yIENPUlMgY2hlY2tzLgogICAgIFdl
YkNvcmU6OkhUVFBIZWFkZXJNYXAgbV9maXJzdFJlcXVlc3RIZWFkZXJzOyAvLyBOZWVkZWQgZm9y
IENPUlMgY2hlY2tzLgogICAgIFVSTCBtX3VybDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCmluZGV4IGM0M2U1ZGNkNzUwMTFh
NTU5MWU2ZTY4MjcyNGMxYTY5NTY1ZWNmMTcuLmI4ZjdkMTM5ZTMxZWM1YzgyNzEzNWUzNzMwYjdi
MGQ5ZWYwYTQ2MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0xvYWRQYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZFBhcmFtZXRlcnMuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiTmV0
d29ya0FjdGl2aXR5VHJhY2tlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQmxvYkRhdGFGaWxlUmVm
ZXJlbmNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxv
YWRlck9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgpAQCAt
NDYsNyArNDcsNyBAQCBwdWJsaWM6CiAKICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQ7CiAg
ICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEOwotICAgIHVpbnQ2NF90IHdlYkZy
YW1lSUQgeyAwIH07CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIHdlYkZyYW1lSUQ7CiAg
ICAgV1RGOjpQcm9jZXNzSUQgcGFyZW50UElEIHsgMCB9OwogICAgIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCByZXF1ZXN0OwogICAgIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBjb250
ZW50U25pZmZpbmdQb2xpY3kgeyBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3k6OlNuaWZm
Q29udGVudCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5oCmluZGV4IDFiZWI3YjY1ZGI2MzBjM2IzMjhiYjE1Y2ZjM2IzMTE2YjRiOTk0ZDYuLjYxMjFi
YWRiYTNmZTQ5YWYwODczYjg1NzMyZWM4MDIwNTZmZmU4MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTEzNyw3ICsxMzcsNiBAQCBwdWJs
aWM6CiAgICAgdXNpbmcgTmF2aWdhdGVkVG9Eb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbjsKICAgICB1c2luZyBEb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MgPSBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbjsKICAgICB1c2luZyBPcGVuZXJEb21haW4gPSBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbjsKLSAgICB1c2luZyBGcmFtZUlEID0gdWludDY0X3Q7CiAKICAgICBOZXR3
b3JrUHJvY2VzcyhBdXhpbGlhcnlQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiYpOwog
ICAgIH5OZXR3b3JrUHJvY2VzcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDQ3ODJlZjE1ZjNkZWVlNWFm
NGVhZWYwNWNkZjYwMzZhZTdlNmQyZmIuLmVjNmE4MGM4NDg5ZGVmMzJkNzg5Yjc0YmVjMTI3MzU3
YmVjNTU4MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTE4MCwxOCArMTgwLDE4IEBAIHZvaWQgTmV0d29y
a1Jlc291cmNlTG9hZGVyOjpzdGFydCgpCiAKICAgICAgICAgICAgIFdURjo6c3dpdGNoT24ocmVz
dWx0LAogICAgICAgICAgICAgICAgIFt0aGlzXSAoUmVzb3VyY2VFcnJvciYgZXJyb3IpIHsKLSAg
ICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6IGVycm9yIGNo
ZWNraW5nIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNv
dXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMg
PSAlZCwgcGFyZW50UElEID0gJWQsIGVycm9yLmRvbWFpbiA9ICV7cHVibGljfXMsIGVycm9yLmNv
ZGUgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVy
cy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgdGhpcy0+aXNNYWluUmVzb3Vy
Y2UoKSwgdGhpcy0+aXNTeW5jaHJvbm91cygpLCBtX3BhcmFtZXRlcnMucGFyZW50UElELCBlcnJv
ci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJvci5lcnJvckNvZGUoKSk7CisgICAgICAgICAg
ICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0OiBlcnJvciBjaGVja2luZyAo
cGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9
ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQsIHBh
cmVudFBJRCA9ICVkLCBlcnJvci5kb21haW4gPSAle3B1YmxpY31zLCBlcnJvci5jb2RlID0gJWQp
IiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJh
bWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgdGhpcy0+aXNNYWluUmVz
b3VyY2UoKSwgdGhpcy0+aXNTeW5jaHJvbm91cygpLCBtX3BhcmFtZXRlcnMucGFyZW50UElELCBl
cnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJvci5lcnJvckNvZGUoKSk7CiAgICAgICAg
ICAgICAgICAgICAgIGlmICghZXJyb3IuaXNDYW5jZWxsYXRpb24oKSkKICAgICAgICAgICAgICAg
ICAgICAgICAgIHRoaXMtPmRpZEZhaWxMb2FkaW5nKGVycm9yKTsKICAgICAgICAgICAgICAgICB9
LAogICAgICAgICAgICAgICAgIFt0aGlzXSAoTmV0d29ya0xvYWRDaGVja2VyOjpSZWRpcmVjdGlv
blRyaXBsZXQmIHRyaXBsZXQpIHsKICAgICAgICAgICAgICAgICAgICAgdGhpcy0+bV9pc1dhaXRp
bmdDb250aW51ZVdpbGxTZW5kUmVxdWVzdEZvckNhY2hlZFJlZGlyZWN0ID0gdHJ1ZTsKICAgICAg
ICAgICAgICAgICAgICAgdGhpcy0+d2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdChXVEZNb3ZlKHRy
aXBsZXQucmVxdWVzdCksIFdURk1vdmUodHJpcGxldC5yZWRpcmVjdFJlcXVlc3QpLCBXVEZNb3Zl
KHRyaXBsZXQucmVkaXJlY3RSZXNwb25zZSkpOwotICAgICAgICAgICAgICAgICAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKCJzdGFydDogc3ludGhldGljIHJlZGlyZWN0IHNlbnQgYmVjYXVzZSBy
ZXF1ZXN0IFVSTCB3YXMgbW9kaWZpZWQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAl
ZCwgaXNTeW5jaHJvbm91cyA9ICVkLCBwYXJlbnRQSUQgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2Vi
UGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMu
aWRlbnRpZmllciwgdGhpcy0+aXNNYWluUmVzb3VyY2UoKSwgdGhpcy0+aXNTeW5jaHJvbm91cygp
LCBtX3BhcmFtZXRlcnMucGFyZW50UElEKTsKKyAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgic3RhcnQ6IHN5bnRoZXRpYyByZWRpcmVjdCBzZW50IGJlY2F1c2UgcmVx
dWVzdCBVUkwgd2FzIG1vZGlmaWVkIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQs
IGlzU3luY2hyb25vdXMgPSAlZCwgcGFyZW50UElEID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBh
Z2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3Bh
cmFtZXRlcnMuaWRlbnRpZmllciwgdGhpcy0+aXNNYWluUmVzb3VyY2UoKSwgdGhpcy0+aXNTeW5j
aHJvbm91cygpLCBtX3BhcmFtZXRlcnMucGFyZW50UElEKTsKICAgICAgICAgICAgICAgICB9LAog
ICAgICAgICAgICAgICAgIFt0aGlzXSAoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KSB7CiAgICAg
ICAgICAgICAgICAgICAgIGlmICh0aGlzLT5jYW5Vc2VDYWNoZShyZXF1ZXN0KSkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6IENoZWNraW5n
IGNhY2hlIGZvciByZXNvdXJjZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQ
Ukl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBp
c1N5bmNocm9ub3VzID0gJWQsIHBhcmVudFBJRCA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdl
SUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVu
dGlmaWVyLCB0aGlzLT5pc01haW5SZXNvdXJjZSgpLCB0aGlzLT5pc1N5bmNocm9ub3VzKCksIG1f
cGFyYW1ldGVycy5wYXJlbnRQSUQpOworICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgic3RhcnQ6IENoZWNraW5nIGNhY2hlIGZvciByZXNvdXJjZSAocGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBS
SXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQsIHBhcmVudFBJ
RCA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJz
LndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIHRoaXMtPmlz
TWFpblJlc291cmNlKCksIHRoaXMtPmlzU3luY2hyb25vdXMoKSwgbV9wYXJhbWV0ZXJzLnBhcmVu
dFBJRCk7CiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLT5yZXRyaWV2ZUNhY2hlRW50cnko
cmVxdWVzdCk7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAg
ICAgICAgIH0KQEAgLTIwNCw3ICsyMDQsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
c3RhcnQoKQogICAgIH0KICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoYXQgY29kZSBwYXRoIG9uY2Ug
bV9uZXR3b3JrTG9hZENoZWNrZXIgaXMgdXNlZCBmb3IgYWxsIG5ldHdvcmsgbG9hZHMuCiAgICAg
aWYgKGNhblVzZUNhY2hlKG9yaWdpbmFsUmVxdWVzdCgpKSkgewotICAgICAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKCJzdGFydDogQ2hlY2tpbmcgY2FjaGUgZm9yIHJlc291cmNlIChwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJ
dTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCwgcGFyZW50UElE
ID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMu
d2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlz
U3luY2hyb25vdXMoKSwgbV9wYXJhbWV0ZXJzLnBhcmVudFBJRCk7CisgICAgICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoInN0YXJ0OiBDaGVja2luZyBjYWNoZSBmb3IgcmVzb3VyY2UgKHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQ
Ukl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkLCBwYXJlbnRQ
SUQgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVy
cy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5S
ZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCksIG1fcGFyYW1ldGVycy5wYXJlbnRQSUQpOwogICAg
ICAgICByZXRyaWV2ZUNhY2hlRW50cnkob3JpZ2luYWxSZXF1ZXN0KCkpOwogICAgICAgICByZXR1
cm47CiAgICAgfQpAQCAtMjQ0LDcgKzI0NCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVy
OjpyZXRyaWV2ZUNhY2hlRW50cnkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogICAg
ICAgICBsb2dTbG93Q2FjaGVSZXRyaWV2ZUlmTmVlZGVkKGluZm8pOwogCiAgICAgICAgIGlmICgh
ZW50cnkpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2Fj
aGVFbnRyeTogUmVzb3VyY2Ugbm90IGluIGNhY2hlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291
cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRv
VUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmll
ciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKKyAgICAgICAgICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogUmVzb3VyY2Ugbm90IGluIGNh
Y2hlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJj
ZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAl
ZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJG
cmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJj
ZSgpLCBpc1N5bmNocm9ub3VzKCkpOwogICAgICAgICAgICAgc3RhcnROZXR3b3JrTG9hZChXVEZN
b3ZlKHJlcXVlc3QpLCBGaXJzdExvYWQ6Olllcyk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6cmV0
cmlldmVDYWNoZUVudHJ5SW50ZXJuYWwoc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtDYQogewogI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgaWYgKGVudHJ5LT5oYXNSZWFj
aGVkUHJldmFsZW50UmVzb3VyY2VBZ2VDYXAoKSkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJlc291cmNlIGhhcyByZWFjaGVkIHByZXZhbGVu
dCByZXNvdXJjZSBhZ2UgY2FwIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlz
U3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1f
cGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVz
b3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RCgicmV0cmlldmVDYWNoZUVudHJ5OiBSZXNvdXJjZSBoYXMgcmVhY2hlZCBwcmV2YWxlbnQgcmVz
b3VyY2UgYWdlIGNhcCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQg
IiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNo
cm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFt
ZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNN
YWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKICAgICAgICAgbV9jYWNoZUVudHJ5Rm9y
TWF4QWdlQ2FwVmFsaWRhdGlvbiA9IFdURk1vdmUoZW50cnkpOwogICAgICAgICBSZXNvdXJjZVJl
cXVlc3QgcmV2YWxpZGF0aW9uUmVxdWVzdCA9IG9yaWdpbmFsUmVxdWVzdCgpOwogICAgICAgICBz
dGFydE5ldHdvcmtMb2FkKFdURk1vdmUocmV2YWxpZGF0aW9uUmVxdWVzdCksIEZpcnN0TG9hZDo6
WWVzKTsKQEAgLTI2NCwyOCArMjY0LDI4IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpy
ZXRyaWV2ZUNhY2hlRW50cnlJbnRlcm5hbChzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0NhCiAgICAg
fQogI2VuZGlmCiAgICAgaWYgKGVudHJ5LT5yZWRpcmVjdFJlcXVlc3QoKSkgewotICAgICAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IEhhbmRsaW5nIHJlZGly
ZWN0IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJj
ZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAl
ZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJG
cmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5j
aHJvbm91cygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNo
ZUVudHJ5OiBIYW5kbGluZyByZWRpcmVjdCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9
ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2
NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRl
bnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKICAgICAgICAgZGlz
cGF0Y2hXaWxsU2VuZFJlcXVlc3RGb3JDYWNoZUVudHJ5KFdURk1vdmUocmVxdWVzdCksIFdURk1v
dmUoZW50cnkpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAobV9wYXJhbWV0ZXJz
Lm5lZWRzQ2VydGlmaWNhdGVJbmZvICYmICFlbnRyeS0+cmVzcG9uc2UoKS5jZXJ0aWZpY2F0ZUlu
Zm8oKSkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50
cnk6IFJlc291cmNlIGRvZXMgbm90IGhhdmUgcmVxdWlyZWQgY2VydGlmaWNhdGUgKHBhZ2VJRCA9
ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1
NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1l
dGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFy
YW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOwor
ICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJlc291
cmNlIGRvZXMgbm90IGhhdmUgcmVxdWlyZWQgY2VydGlmaWNhdGUgKHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNN
YWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQ
YWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9w
YXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7
CiAgICAgICAgIHN0YXJ0TmV0d29ya0xvYWQoV1RGTW92ZShyZXF1ZXN0KSwgRmlyc3RMb2FkOjpZ
ZXMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGlmIChlbnRyeS0+bmVlZHNWYWxpZGF0
aW9uKCkgfHwgcmVxdWVzdC5jYWNoZVBvbGljeSgpID09IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dENhY2hlUG9saWN5OjpSZWZyZXNoQW55Q2FjaGVEYXRhKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogVmFsaWRhdGluZyBjYWNoZSBlbnRyeSAo
cGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9
ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwg
bV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJ
RCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25v
dXMoKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRy
eTogVmFsaWRhdGluZyBjYWNoZSBlbnRyeSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9
ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2
NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRl
bnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKICAgICAgICAgdmFs
aWRhdGVDYWNoZUVudHJ5KFdURk1vdmUoZW50cnkpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
LSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJldHJpZXZl
ZCByZXNvdXJjZSBmcm9tIGNhY2hlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQs
IGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCks
IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWlu
UmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJldHJpZXZlZCByZXNvdXJjZSBmcm9tIGNhY2hlIChwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIg
UFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3Bh
cmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRv
VUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5
bmNocm9ub3VzKCkpOwogICAgIGRpZFJldHJpZXZlQ2FjaGVFbnRyeShXVEZNb3ZlKGVudHJ5KSk7
CiB9CiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydE5ldHdvcmtMb2FkKFJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEZpcnN0TG9hZCBsb2FkKQogewogICAgIGlmIChsb2FkID09
IEZpcnN0TG9hZDo6WWVzKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0
TmV0d29ya0xvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAi
LCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hy
b25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1l
dGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2Uo
KSwgaXNTeW5jaHJvbm91cygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3Rh
cnROZXR3b3JrTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5j
aHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJh
bWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlz
TWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CiAKICAgICAgICAgY29uc3VtZVNhbmRi
b3hFeHRlbnNpb25zKCk7CiAKQEAgLTMwOCw3ICszMDgsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJj
ZUxvYWRlcjo6c3RhcnROZXR3b3JrTG9hZChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBGaXJz
dExvYQogICAgIH0KICAgICBpZiAoIW5ldHdvcmtTZXNzaW9uKSB7CiAgICAgICAgIFdURkxvZ0Fs
d2F5cygiQXR0ZW1wdGVkIHRvIGNyZWF0ZSBhIE5ldHdvcmtMb2FkIHdpdGggYSBzZXNzaW9uIChp
ZD0lIiBQUkl1NjQgIikgdGhhdCBkb2VzIG5vdCBleGlzdC4iLCBwYXJhbWV0ZXJzLnNlc3Npb25J
RC5zZXNzaW9uSUQoKSk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoInN0
YXJ0TmV0d29ya0xvYWQ6IEF0dGVtcHRlZCB0byBjcmVhdGUgYSBOZXR3b3JrTG9hZCB3aXRoIGEg
c2Vzc2lvbiB0aGF0IGRvZXMgbm90IGV4aXN0IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIHNlc3Npb25JRD0lIiBQ
Ukl1NjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVy
cy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgcGFyYW1ldGVycy5zZXNzaW9u
SUQuc2Vzc2lvbklEKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKCJz
dGFydE5ldHdvcmtMb2FkOiBBdHRlbXB0ZWQgdG8gY3JlYXRlIGEgTmV0d29ya0xvYWQgd2l0aCBh
IHNlc3Npb24gdGhhdCBkb2VzIG5vdCBleGlzdCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBzZXNzaW9uSUQ9JSIg
UFJJdTY0ICIpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRl
cnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgcGFyYW1l
dGVycy5zZXNzaW9uSUQuc2Vzc2lvbklEKCkpOwogICAgICAgICBtX2Nvbm5lY3Rpb24tPm5ldHdv
cmtQcm9jZXNzKCkubG9nRGlhZ25vc3RpY01lc3NhZ2UobV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCwg
V2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjppbnRlcm5hbEVycm9yS2V5KCksIFdlYkNv
cmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6aW52YWxpZFNlc3Npb25JREtleSgpLCBXZWJDb3Jl
OjpTaG91bGRTYW1wbGU6Ok5vKTsKICAgICAgICAgZGlkRmFpbExvYWRpbmcoaW50ZXJuYWxFcnJv
cihyZXF1ZXN0LnVybCgpKSk7CiAgICAgICAgIHJldHVybjsKQEAgLTMyMCw3ICszMjAsNyBAQCB2
b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnROZXR3b3JrTG9hZChSZXNvdXJjZVJlcXVl
c3QmJiByZXF1ZXN0LCBGaXJzdExvYQogICAgIHBhcmFtZXRlcnMucmVxdWVzdCA9IFdURk1vdmUo
cmVxdWVzdCk7CiAgICAgbV9uZXR3b3JrTG9hZCA9IHN0ZDo6bWFrZV91bmlxdWU8TmV0d29ya0xv
YWQ+KCp0aGlzLCAmbmV0d29ya1Nlc3Npb24tPmJsb2JSZWdpc3RyeSgpLCBXVEZNb3ZlKHBhcmFt
ZXRlcnMpLCAqbmV0d29ya1Nlc3Npb24pOwogCi0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgi
c3RhcnROZXR3b3JrTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgZGVzY3JpcHRpb24gPSAle3B1YmxpY31z
KSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZy
YW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBtX25ldHdvcmtMb2FkLT5kZXNjcmlwdGlv
bigpLnV0ZjgoKS5kYXRhKCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0TmV0
d29ya0xvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBy
ZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGRlc2NyaXB0aW9uID0gJXtwdWJsaWN9cykiLCBtX3Bh
cmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRv
VUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBtX25ldHdvcmtMb2FkLT5kZXNjcmlw
dGlvbigpLnV0ZjgoKS5kYXRhKCkpOwogfQogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
Y2xlYW51cChMb2FkUmVzdWx0IHJlc3VsdCkKQEAgLTM0NCw3ICszNDQsNyBAQCB2b2lkIE5ldHdv
cmtSZXNvdXJjZUxvYWRlcjo6Y2xlYW51cChMb2FkUmVzdWx0IHJlc3VsdCkKIAogdm9pZCBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnZlcnRUb0Rvd25sb2FkKERvd25sb2FkSUQgZG93bmxvYWRJ
RCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSkKIHsKLSAgICBSRUxFQVNFX0xPRyhMb2FkaW5nLCAiQ29udmVydGluZyBOZXR3
b3JrUmVzb3VyY2VMb2FkZXIgJXAgdG8gZG93bmxvYWQgJSIgUFJJdTY0ICIgKHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQg
IikiLCB0aGlzLCBkb3dubG9hZElELmRvd25sb2FkSUQoKSwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJ
RC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50
aWZpZXIpOworICAgIFJFTEVBU0VfTE9HKExvYWRpbmcsICJDb252ZXJ0aW5nIE5ldHdvcmtSZXNv
dXJjZUxvYWRlciAlcCB0byBkb3dubG9hZCAlIiBQUkl1NjQgIiAocGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHRo
aXMsIGRvd25sb2FkSUQuZG93bmxvYWRJRCgpLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUlu
dDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5p
ZGVudGlmaWVyKTsKICAgICAKICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gaWYgdGhlIHJlc291cmNl
IGNhbWUgZnJvbSB0aGUgZGlzayBjYWNoZS4KICAgICBpZiAoIW1fbmV0d29ya0xvYWQpIHsKQEAg
LTM2Miw3ICszNjIsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6YWJvcnQoKQogICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KCJhYm9ydDogQ2FuY2VsaW5nIHJlc291cmNlIGxvYWQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLAotICAgICAg
ICBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFt
ZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CisgICAgICAgIG1fcGFyYW1ldGVycy53ZWJQ
YWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9w
YXJhbWV0ZXJzLmlkZW50aWZpZXIpOwogCiAgICAgaWYgKG1fcGFyYW1ldGVycy5vcHRpb25zLmtl
ZXBBbGl2ZSAmJiBtX3Jlc3BvbnNlLmlzTnVsbCgpICYmICFtX2lzS2VwdEFsaXZlKSB7CiAgICAg
ICAgIG1faXNLZXB0QWxpdmUgPSB0cnVlOwpAQCAtNDQ3LDcgKzQ0Nyw3IEBAIGJvb2wgTmV0d29y
a1Jlc291cmNlTG9hZGVyOjpzaG91bGRJbnRlcnJ1cHRMb2FkRm9yQ1NQRnJhbWVBbmNlc3RvcnNP
clhGcmFtZU9wdGlvCiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVz
cG9uc2UoUmVzb3VyY2VSZXNwb25zZSYmIHJlY2VpdmVkUmVzcG9uc2UsIFJlc3BvbnNlQ29tcGxl
dGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGh0dHBTdGF0dXNDb2Rl
ID0gJWQsIGxlbmd0aCA9ICUiIFBSSWQ2NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9V
SW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVy
LCByZWNlaXZlZFJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCksIHJlY2VpdmVkUmVzcG9uc2UuZXhw
ZWN0ZWRDb250ZW50TGVuZ3RoKCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJl
Y2VpdmVSZXNwb25zZTogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaHR0cFN0YXR1c0NvZGUgPSAlZCwgbGVuZ3Ro
ID0gJSIgUFJJZDY0ICIpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Bh
cmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwg
cmVjZWl2ZWRSZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpLCByZWNlaXZlZFJlc3BvbnNlLmV4cGVj
dGVkQ29udGVudExlbmd0aCgpKTsKIAogICAgIG1fcmVzcG9uc2UgPSBXVEZNb3ZlKHJlY2VpdmVk
UmVzcG9uc2UpOwogCkBAIC01MjcsNyArNTI3LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVjZWl2ZWRSZXNwb24K
IHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlQnVmZmVyKFJlZjxTaGFyZWRC
dWZmZXI+JiYgYnVmZmVyLCBpbnQgcmVwb3J0ZWRFbmNvZGVkRGF0YUxlbmd0aCkKIHsKICAgICBp
ZiAoIW1fbnVtQnl0ZXNSZWNlaXZlZCkKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgi
ZGlkUmVjZWl2ZUJ1ZmZlcjogU3RhcnRlZCByZWNlaXZpbmcgZGF0YSAocGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIs
IG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1l
SUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRCgiZGlkUmVjZWl2ZUJ1ZmZlcjogU3RhcnRlZCByZWNlaXZpbmcgZGF0YSAocGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2
NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndl
YkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIpOwogICAgIG1fbnVt
Qnl0ZXNSZWNlaXZlZCArPSBidWZmZXItPnNpemUoKTsKIAogICAgIEFTU0VSVCghbV9jYWNoZUVu
dHJ5Rm9yVmFsaWRhdGlvbik7CkBAIC01NTYsNyArNTU2LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OmRpZFJlY2VpdmVCdWZmZXIoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIsIGlu
dCByZXAKIAogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoY29u
c3QgTmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3JrTG9hZE1ldHJpY3MpCiB7Ci0gICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgiZGlkRmluaXNoTG9hZGluZzogKHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgbGVuZ3Ro
ID0gJXpkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJz
LndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBtX251bUJ5dGVzUmVjZWl2ZWQp
OworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZpbmlzaExvYWRpbmc6IChwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJ
dTY0ICIsIGxlbmd0aCA9ICV6ZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCks
IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlm
aWVyLCBtX251bUJ5dGVzUmVjZWl2ZWQpOwogCiAgICAgaWYgKHNob3VsZENhcHR1cmVFeHRyYU5l
dHdvcmtMb2FkTWV0cmljcygpKQogICAgICAgICBtX2Nvbm5lY3Rpb24tPmFkZE5ldHdvcmtMb2Fk
SW5mb3JtYXRpb25NZXRyaWNzKGlkZW50aWZpZXIoKSwgbmV0d29ya0xvYWRNZXRyaWNzKTsKQEAg
LTU5MSw3ICs1OTEsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9h
ZGluZyhjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMbwogCiB2b2lkIE5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbExvYWRpbmcoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3Ip
CiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkRmFpbExvYWRpbmc6IChwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJ
dTY0ICIsIGlzVGltZW91dCA9ICVkLCBpc0NhbmNlbGxhdGlvbiA9ICVkLCBpc0FjY2Vzc0NvbnRy
b2wgPSAlZCwgZXJyQ29kZSA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQo
KSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBlcnJv
ci5pc1RpbWVvdXQoKSwgZXJyb3IuaXNDYW5jZWxsYXRpb24oKSwgZXJyb3IuaXNBY2Nlc3NDb250
cm9sKCksIGVycm9yLmVycm9yQ29kZSgpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJk
aWRGYWlsTG9hZGluZzogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNUaW1lb3V0ID0gJWQsIGlzQ2FuY2VsbGF0
aW9uID0gJWQsIGlzQWNjZXNzQ29udHJvbCA9ICVkLCBlcnJDb2RlID0gJWQpIiwgbV9wYXJhbWV0
ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2
NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgZXJyb3IuaXNUaW1lb3V0KCksIGVycm9yLmlz
Q2FuY2VsbGF0aW9uKCksIGVycm9yLmlzQWNjZXNzQ29udHJvbCgpLCBlcnJvci5lcnJvckNvZGUo
KSk7CiAKICAgICBpZiAoc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKCkpCiAg
ICAgICAgIG1fY29ubmVjdGlvbi0+cmVtb3ZlTmV0d29ya0xvYWRJbmZvcm1hdGlvbihpZGVudGlm
aWVyKCkpOwpAQCAtNzU2LDcgKzc1Niw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpj
b250aW51ZVdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiBuZXdSZXF1ZXN0CiAgICAg
ICAgIH0KICAgICB9CiAKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJjb250aW51ZVdpbGxT
ZW5kUmVxdWVzdDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUlu
dDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7
CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiY29udGludWVXaWxsU2VuZFJlcXVlc3Q6IChw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0g
JSIgUFJJdTY0ICIpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFt
ZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CiAK
ICAgICBtX2lzQWxsb3dlZFRvQXNrVXNlckZvckNyZWRlbnRpYWxzID0gaXNBbGxvd2VkVG9Bc2tV
c2VyRm9yQ3JlZGVudGlhbHM7CiAKQEAgLTEwMTEsMTIgKzEwMTEsMTcgQEAgc3RhdGljIFN0cmlu
ZyBlc2NhcGVGb3JKU09OKFN0cmluZyBzKQogc3RhdGljIFN0cmluZyBlc2NhcGVJREZvckpTT04o
Y29uc3QgT3B0aW9uYWw8dWludDY0X3Q+JiB2YWx1ZSkKIHsKICAgICByZXR1cm4gdmFsdWUgPyBT
dHJpbmc6Om51bWJlcih2YWx1ZS52YWx1ZSgpKSA6IFN0cmluZygiTm9uZSJfcyk7Ci19OworfQor
CitzdGF0aWMgU3RyaW5nIGVzY2FwZUlERm9ySlNPTihjb25zdCBPcHRpb25hbDxGcmFtZUlkZW50
aWZpZXI+JiB2YWx1ZSkKK3sKKyAgICByZXR1cm4gdmFsdWUgPyBTdHJpbmc6Om51bWJlcih2YWx1
ZS0+dG9VSW50NjQoKSkgOiBTdHJpbmcoIk5vbmUiX3MpOworfQogCiBzdGF0aWMgU3RyaW5nIGVz
Y2FwZUlERm9ySlNPTihjb25zdCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4mIHZhbHVlKQogewog
ICAgIHJldHVybiB2YWx1ZSA/IFN0cmluZzo6bnVtYmVyKHZhbHVlLT50b1VJbnQ2NCgpKSA6IFN0
cmluZygiTm9uZSJfcyk7Ci19OworfQogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6bG9n
Q29va2llSW5mb3JtYXRpb24oKSBjb25zdAogewpAQCAtMTAyOCw3ICsxMDMzLDcgQEAgdm9pZCBO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uKCkgY29uc3QKICAgICBs
b2dDb29raWVJbmZvcm1hdGlvbihtX2Nvbm5lY3Rpb24sICJOZXR3b3JrUmVzb3VyY2VMb2FkZXIi
LCByZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPih0aGlzKSwgKm5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiwgb3JpZ2luYWxSZXF1ZXN0KCkuZmlyc3RQYXJ0eUZvckNvb2tpZXMoKSwgU2FtZVNpdGVJ
bmZvOjpjcmVhdGUob3JpZ2luYWxSZXF1ZXN0KCkpLCBvcmlnaW5hbFJlcXVlc3QoKS51cmwoKSwg
b3JpZ2luYWxSZXF1ZXN0KCkuaHR0cFJlZmVycmVyKCksIGZyYW1lSUQoKSwgcGFnZUlEKCksIGlk
ZW50aWZpZXIoKSk7CiB9CiAKLXN0YXRpYyB2b2lkIGxvZ0Jsb2NrZWRDb29raWVJbmZvcm1hdGlv
bihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgY29uc3QgU3RyaW5n
JiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBjb25zdCBXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgcmVmZXJyZXIsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25h
bDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBPcHRpb25hbDx1aW50NjRfdD4gaWRlbnRpZmllcikK
K3N0YXRpYyB2b2lkIGxvZ0Jsb2NrZWRDb29raWVJbmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9p
ZCogbG9nZ2VkT2JqZWN0LCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIG5l
dHdvcmtTdG9yYWdlU2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0
ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJy
ZXIsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRCwgT3B0aW9uYWw8dWludDY0X3Q+IGlkZW50aWZpZXIpCiB7CiAgICAgQVNT
RVJUKE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oY29u
bmVjdGlvbiwgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLnNlc3Npb25JRCgpKSk7CiAKQEAgLTEwNTUs
NyArMTA2MCw3IEBAIHN0YXRpYyB2b2lkIGxvZ0Jsb2NrZWRDb29raWVJbmZvcm1hdGlvbihOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvCiAjdW5kZWYgTE9DQUxfTE9HX0lG
X0FMTE9XRUQKIH0KIAotc3RhdGljIHZvaWQgbG9nQ29va2llSW5mb3JtYXRpb25JbnRlcm5hbChO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgY29uc3QgU3RyaW5nJiBs
YWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3Rv
cmFnZVNlc3Npb24mIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1
cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBP
cHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBPcHRpb25hbDx1aW50NjRfdD4gaWRlbnRp
ZmllcikKK3N0YXRpYyB2b2lkIGxvZ0Nvb2tpZUluZm9ybWF0aW9uSW50ZXJuYWwoTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNv
bnN0IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNz
aW9uJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
V2ViQ29yZTo6U2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBjb25z
dCBTdHJpbmcmIHJlZmVycmVyLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9w
dGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIE9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlm
aWVyKQogewogICAgIEFTU0VSVChOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNob3VsZExvZ0Nvb2tp
ZUluZm9ybWF0aW9uKGNvbm5lY3Rpb24sIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5zZXNzaW9uSUQo
KSkpOwogCkBAIC0xMTE2LDcgKzExMjEsNyBAQCBzdGF0aWMgdm9pZCBsb2dDb29raWVJbmZvcm1h
dGlvbkludGVybmFsKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aQogI3Vu
ZGVmIExPQ0FMX0xPR19JRl9BTExPV0VECiB9CiAKLXZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVy
Ojpsb2dDb29raWVJbmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29u
bmVjdGlvbiwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBj
b25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3Qg
VVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFt
ZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBPcHRpb25hbDx1aW50NjRfdD4g
aWRlbnRpZmllcikKK3ZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpsb2dDb29raWVJbmZvcm1h
dGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgY29uc3QgU3Ry
aW5nJiBsYWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBjb25zdCBOZXR3b3JrU3RvcmFn
ZVNlc3Npb24mIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBj
b25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0
cmluZyYgcmVmZXJyZXIsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgT3B0aW9uYWw8dWludDY0X3Q+IGlkZW50aWZpZXIp
CiB7CiAgICAgQVNTRVJUKHNob3VsZExvZ0Nvb2tpZUluZm9ybWF0aW9uKGNvbm5lY3Rpb24sIG5l
dHdvcmtTdG9yYWdlU2Vzc2lvbi5zZXNzaW9uSUQoKSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAppbmRleCA2MmM2NWNk
ZGZmN2NhMGIyMGExYzE5MDk5YjlmNzE1ZmFlNDU0YThlLi43NDkyZGYzMmY3OTk2ZTA5MDNiZTkw
ZGEwMDVlOWIxNDZkYTE1ZmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKQEAgLTg1LDcgKzg1LDcgQEAgcHVibGljOgog
ICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNz
KCkgY29uc3QgeyByZXR1cm4gbV9jb25uZWN0aW9uOyB9CiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLnNlc3Npb25JRDsgfQogICAgIFJl
c291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1l
dGVycy5pZGVudGlmaWVyOyB9Ci0gICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJu
IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRDsgfQogICAg
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1l
dGVycy53ZWJQYWdlSUQ7IH0KIAogICAgIHN0cnVjdCBTeW5jaHJvbm91c0xvYWREYXRhOwpAQCAt
MTEyLDcgKzExMiw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJ
U1RJQ1MpICYmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIHN0YXRpYyBib29sIHNob3VsZExv
Z0Nvb2tpZUluZm9ybWF0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgY29uc3Qg
UEFMOjpTZXNzaW9uSUQmKTsKLSAgICBzdGF0aWMgdm9pZCBsb2dDb29raWVJbmZvcm1hdGlvbihO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0
IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBj
b25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBPcHRpb25hbDx1aW50NjRfdD4gZnJh
bWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBPcHRpb25hbDx1aW50NjRf
dD4gaWRlbnRpZmllcik7CisgICAgc3RhdGljIHZvaWQgbG9nQ29va2llSW5mb3JtYXRpb24oTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2
b2lkKiBsb2dnZWRPYmplY3QsIGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYs
IGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29u
c3QgVVJMJiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyPiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBPcHRpb25hbDx1
aW50NjRfdD4gaWRlbnRpZmllcik7CiAjZW5kaWYKIAogICAgIHZvaWQgZGlzYWJsZUV4dHJhTmV0
d29ya0xvYWRNZXRyaWNzQ2FwdHVyZSgpIHsgbV9zaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9h
ZE1ldHJpY3MgPSBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlLmgKaW5kZXggZDk0ZmM3MzgwZjE5YTVmNWY1Yjc4ZWEzOWVmMWQ2
NWE5MjExZWU0Zi4uODVkMTAwY2E2YzdjMDVmYjhjM2QxMmQwM2E0NDAyODExMDM5NWVmOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5o
CkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlRW50cnkuaCIKICNpbmNs
dWRlICJOZXR3b3JrQ2FjaGVTdG9yYWdlLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlUmVzb3VyY2Uu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2Uu
aD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KQEAgLTg1LDcgKzg2LDcgQEAg
ZW51bSBjbGFzcyBVc2VEZWNpc2lvbiB7CiAgICAgTm9EdWVUb0V4cGlyZWRSZWRpcmVjdAogfTsK
IAotdXNpbmcgR2xvYmFsRnJhbWVJRCA9IHN0ZDo6cGFpcjxXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgdWludDY0X3QgLyp3ZWJGcmFtZUlEKi8+OwordXNpbmcgR2xvYmFsRnJhbWVJRCA9IHN0ZDo6
cGFpcjxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPjsg
Ly8gRklYTUU6IFVzZSBHbG9iYWxGcmFtZUlkZW50aWZpZXIuCiAKIGVudW0gY2xhc3MgQ2FjaGVP
cHRpb24gOiB1aW50OF90IHsKICAgICAvLyBJbiB0ZXN0aW5nIG1vZGUgd2UgdHJ5IHRvIGVsaW1p
bmF0ZSBzb3VyY2VzIG9mIHJhbmRvbW5lc3MuIENhY2hlIGRvZXMgbm90IHNocmluayBhbmQgdGhl
cmUgYXJlIG5vIHJlYWQgdGltZW91dHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKaW5kZXggMjc5MzU3NTM1
YmUxZTg0YTEzZDMxZmY3ZmMzMmVjODJlNjllZGI4Zi4uNDNhZDZmMWRlNDFjNTE2MWRkOWRiM2I2
OWFmOTFjYTNmN2FiMjQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaApAQCAtNDIsNyArNDIsNyBAQCBj
bGFzcyBOZXR3b3JrU2Vzc2lvbkNvY29hOwogY2xhc3MgTmV0d29ya0RhdGFUYXNrQ29jb2EgZmlu
YWwgOiBwdWJsaWMgTmV0d29ya0RhdGFUYXNrIHsKICAgICBmcmllbmQgY2xhc3MgTmV0d29ya1Nl
c3Npb25Db2NvYTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5ldHdvcmtEYXRhVGFzaz4gY3Jl
YXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVu
dCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCB1aW50NjRfdCBmcmFt
ZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OlN0b3JlZENyZWRl
bnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25p
ZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdT
bmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgYm9vbCBzaG91bGRDbGVh
clJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVj
b25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgYm9vbCBk
YXRhVGFza0lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lLCBPcHRpb25hbDxO
ZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBuZXR3b3JrQWN0aXZpdHlUcmFja2VyKQorICAgIHN0YXRp
YyBSZWY8TmV0d29ya0RhdGFUYXNrPiBjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5l
dHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0
b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hv
dWxkQ29udGVudFNuaWZmLCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBz
aG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQ
U1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSwgYm9v
bCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgYm9vbCBkYXRhVGFza0lzRm9yTWFp
blJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlU
cmFja2VyPiBuZXR3b3JrQWN0aXZpdHlUcmFja2VyKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgTmV0d29ya0RhdGFUYXNrQ29jb2Eoc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0
LCBmcmFtZUlELCBwYWdlSUQsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDb250ZW50
U25pZmYsIHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBzaG91bGRDbGVhclJlZmVycmVyT25I
VFRQU1RvSFRUUFJlZGlyZWN0LCBzaG91bGRQcmVjb25uZWN0T25seSwgZGF0YVRhc2tJc0Zvck1h
aW5GcmFtZU5hdmlnYXRpb24sIGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9y
QW55RnJhbWUsIG5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpKTsKICAgICB9CkBAIC02OSwxMyArNjks
MTMgQEAgcHVibGljOgogCiAgICAgV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3Jr
TG9hZE1ldHJpY3MoKSB7IHJldHVybiBtX25ldHdvcmtMb2FkTWV0cmljczsgfQogCi0gICAgdWlu
dDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfTsKKyAgICBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfTsK
ICAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3Bh
Z2VJRDsgfTsKIAogICAgIFN0cmluZyBkZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCiBw
cml2YXRlOgotICAgIE5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29y
a0RhdGFUYXNrQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgdWludDY0
X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JlZENyZWRl
bnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3ksIFdlYkNvcmU6OkNv
bnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5LCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhU
VFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWlu
RnJhbWVOYXZpZ2F0aW9uLCBib29sIGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9u
Rm9yQW55RnJhbWUsIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+KTsKKyAgICBOZXR3
b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtEYXRhVGFza0NsaWVudCYs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRFbmNv
ZGluZ1NuaWZmaW5nUG9saWN5LCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZp
Z2F0aW9uLCBib29sIGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJh
bWUsIE9wdGlvbmFsPE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+KTsKIAogICAgIGJvb2wgdHJ5UGFz
c3dvcmRCYXNlZEF1dGhlbnRpY2F0aW9uKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlJiwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImKTsKICAgICB2b2lkIGFwcGx5U25p
ZmZpbmdQb2xpY2llc0FuZEJpbmRSZXF1ZXN0VG9JbmZlcmZhY2VJZk5lZWRlZChfX3N0cm9uZyBO
U1VSTFJlcXVlc3QqJiwgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ29udGVu
dEVuY29kaW5nU25pZmYpOwpAQCAtOTIsNyArOTIsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxT
YW5kYm94RXh0ZW5zaW9uPiBtX3NhbmRib3hFeHRlbnNpb247CiAgICAgUmV0YWluUHRyPE5TVVJM
U2Vzc2lvbkRhdGFUYXNrPiBtX3Rhc2s7CiAgICAgV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNz
IG1fbmV0d29ya0xvYWRNZXRyaWNzOwotICAgIHVpbnQ2NF90IG1fZnJhbWVJRDsKKyAgICBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgbV9mcmFtZUlEOwogICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyIG1fcGFnZUlEOwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFU
YXNrQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtE
YXRhVGFza0NvY29hLm1tCmluZGV4IDQyZTdhY2U0MjRiMmFiOGJiMDBhMzdjOTYzZWE5N2Q0NDEz
MTVhZTAuLmMyZTdiMzY4NTRlNzM5NWNiNjkzMGQ2ZTI1NzQ4YzRiYWQ2MDEyMTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29j
b2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0
YVRhc2tDb2NvYS5tbQpAQCAtMTcwLDcgKzE3MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBjb21w
dXRlSXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uKQogICAg
IHJldHVybiBzZXNzaW9uLnNlc3Npb25JRCgpLmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpOwog
fQogCi1OZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nl
c3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIHVpbnQ2NF90IGZy
YW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6U3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRT
bmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIFdlYkNvcmU6OkNvbnRlbnRFbmNvZGlu
Z1NuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmLCBib29sIHNob3VsZENs
ZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFBy
ZWNvbm5lY3RPbmx5LCBib29sIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBib29s
IGRhdGFUYXNrSXNGb3JNYWluUmVzb3VyY2VOYXZpZ2F0aW9uRm9yQW55RnJhbWUsIE9wdGlvbmFs
PE5ldHdvcmtBY3Rpdml0eVRyYWNrZXI+IG5ldHdvcmtBY3Rpdml0eVRyYWNrZXIpCitOZXR3b3Jr
RGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Np
b24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OlN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250
ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBXZWJDb3JlOjpDb250ZW50RW5j
b2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgYm9vbCBzaG91
bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91
bGRQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwg
Ym9vbCBkYXRhVGFza0lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lLCBPcHRp
b25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBuZXR3b3JrQWN0aXZpdHlUcmFja2VyKQogICAg
IDogTmV0d29ya0RhdGFUYXNrKHNlc3Npb24sIGNsaWVudCwgcmVxdWVzdFdpdGhDcmVkZW50aWFs
cywgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9I
VFRQUmVkaXJlY3QsIGRhdGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uKQogICAgICwgbV9m
cmFtZUlEKGZyYW1lSUQpCiAgICAgLCBtX3BhZ2VJRChwYWdlSUQpCkBAIC0yNTYsNyArMjU2LDcg
QEAgTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNz
aW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVQKICAgICBpZiAoc2hvdWxkQmxvY2tDb29raWVzKSB7
CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgICAgIGlmIChtX3Nlc3Npb24tPnNob3Vs
ZExvZ0Nvb2tpZUluZm9ybWF0aW9uKCkpCi0gICAgICAgICAgICBSRUxFQVNFX0xPR19JRihpc0Fs
d2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29yaywgIiVwIC0gTmV0d29ya0RhdGFUYXNrQ29j
b2E6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uOiBwYWdlSUQgPSAlbGx1LCBmcmFtZUlEID0gJWxsdSwg
dGFza0lEID0gJWx1OiBCbG9ja2luZyBjb29raWVzIGZvciBVUkwgJXMiLCB0aGlzLCBwYWdlSUQu
dG9VSW50NjQoKSwgZnJhbWVJRCwgKHVuc2lnbmVkIGxvbmcpW21fdGFzayB0YXNrSWRlbnRpZmll
cl0sIG5zUmVxdWVzdC5VUkwuYWJzb2x1dGVTdHJpbmcuVVRGOFN0cmluZyk7CisgICAgICAgICAg
ICBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29yaywgIiVw
IC0gTmV0d29ya0RhdGFUYXNrQ29jb2E6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uOiBwYWdlSUQgPSAl
bGx1LCBmcmFtZUlEID0gJWxsdSwgdGFza0lEID0gJWx1OiBCbG9ja2luZyBjb29raWVzIGZvciBV
UkwgJXMiLCB0aGlzLCBwYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpLCAodW5z
aWduZWQgbG9uZylbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgbnNSZXF1ZXN0LlVSTC5hYnNvbHV0
ZVN0cmluZy5VVEY4U3RyaW5nKTsKICNlbHNlCiAgICAgICAgIExPRyhOZXR3b3JrU2Vzc2lvbiwg
IiVsbHUgQmxvY2tpbmcgY29va2llcyBmb3IgVVJMICVzIiwgW21fdGFzayB0YXNrSWRlbnRpZmll
cl0sIG5zUmVxdWVzdC5VUkwuYWJzb2x1dGVTdHJpbmcuVVRGOFN0cmluZyk7CiAjZW5kaWYKQEAg
LTM5MCw3ICszOTAsNyBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza0NvY29hOjp3aWxsUGVyZm9ybUhU
VFBSZWRpcmVjdGlvbihXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJgogICAgIH0KICNpZiAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKICAgICBpZiAobV9zZXNzaW9uLT5zaG91bGRMb2dDb29raWVJbmZv
cm1hdGlvbigpKQotICAgICAgICBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93
ZWQoKSwgTmV0d29yaywgIiVwIC0gTmV0d29ya0RhdGFUYXNrQ29jb2E6OndpbGxQZXJmb3JtSFRU
UFJlZGlyZWN0aW9uOjpsb2dDb29raWVJbmZvcm1hdGlvbjogcGFnZUlEID0gJWxsdSwgZnJhbWVJ
RCA9ICVsbHUsIHRhc2tJRCA9ICVsdTogJXMgY29va2llcyBmb3IgcmVkaXJlY3QgVVJMICVzIiwg
dGhpcywgbV9wYWdlSUQudG9VSW50NjQoKSwgbV9mcmFtZUlELCAodW5zaWduZWQgbG9uZylbbV90
YXNrIHRhc2tJZGVudGlmaWVyXSwgKG1faGFzQmVlblNldFRvVXNlU3RhdGVsZXNzQ29va2llU3Rv
cmFnZSA/ICJCbG9ja2luZyIgOiAiTm90IGJsb2NraW5nIiksIHJlcXVlc3QudXJsKCkuc3RyaW5n
KCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dn
aW5nQWxsb3dlZCgpLCBOZXR3b3JrLCAiJXAgLSBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6d2lsbFBl
cmZvcm1IVFRQUmVkaXJlY3Rpb246OmxvZ0Nvb2tpZUluZm9ybWF0aW9uOiBwYWdlSUQgPSAlbGx1
LCBmcmFtZUlEID0gJWxsdSwgdGFza0lEID0gJWx1OiAlcyBjb29raWVzIGZvciByZWRpcmVjdCBV
UkwgJXMiLCB0aGlzLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBtX2ZyYW1lSUQudG9VSW50NjQoKSwg
KHVuc2lnbmVkIGxvbmcpW21fdGFzayB0YXNrSWRlbnRpZmllcl0sIChtX2hhc0JlZW5TZXRUb1Vz
ZVN0YXRlbGVzc0Nvb2tpZVN0b3JhZ2UgPyAiQmxvY2tpbmciIDogIk5vdCBibG9ja2luZyIpLCBy
ZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogI2Vsc2UKICAgICBMT0coTmV0
d29ya1Nlc3Npb24sICIlbGx1ICVzIGNvb2tpZXMgZm9yIHJlZGlyZWN0IFVSTCAlcyIsIFttX3Rh
c2sgdGFza0lkZW50aWZpZXJdLCAobV9oYXNCZWVuU2V0VG9Vc2VTdGF0ZWxlc3NDb29raWVTdG9y
YWdlID8gIkJsb2NraW5nIiA6ICJOb3QgYmxvY2tpbmciKSwgcmVxdWVzdC51cmwoKS5zdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkKaW5kZXggZjBlYzhkYzFiNzE2OWJjY2E1NWE2NTQ5MTJlZDJmZWY1MzcwZGYxMC4u
YzAxZTg5NTllODA3ZmY2MjRlZjg1NzdlYjM1NTY1ZTQyZDkzYTNiMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yMDUsNiArMjA1LDcgQEAgZGVmIGZvcndh
cmRfZGVjbGFyYXRpb25zX2FuZF9oZWFkZXJzKHJlY2VpdmVyKToKICAgICAgICAgJ1N0cmluZycs
CiAgICAgICAgICdXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29y
ZTo6RmV0Y2hJZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYkNvcmU6OkZyYW1lSWRlbnRpZmllcics
CiAgICAgICAgICdXZWJDb3JlOjpQYWdlSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpQ
b2ludGVySUQnLAogICAgICAgICAnV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXInLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5jcHAKaW5kZXggNzk2NDZhYzZlNTlj
NDFkNGRmNzA5MDFkYmE3ZTI2NzUzMzZkNTI0YS4uNDA4MDEzODg1NDhhMTgxMWFiNTllNWNiMjQ1
YTExNTIxMTQyYmVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUZy
YW1lSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5k
bGUuY3BwCkBAIC0zMSwxNyArMzEsMTcgQEAKIAogbmFtZXNwYWNlIEFQSSB7CiAKLVJlZjxGcmFt
ZUhhbmRsZT4gRnJhbWVIYW5kbGU6OmNyZWF0ZSh1aW50NjRfdCBmcmFtZUlEKQorUmVmPEZyYW1l
SGFuZGxlPiBGcmFtZUhhbmRsZTo6Y3JlYXRlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlEKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZyYW1lSGFuZGxlKGZyYW1lSUQsIGZh
bHNlKSk7CiB9CiAKLVJlZjxGcmFtZUhhbmRsZT4gRnJhbWVIYW5kbGU6OmNyZWF0ZUF1dG9jb252
ZXJ0aW5nKHVpbnQ2NF90IGZyYW1lSUQpCitSZWY8RnJhbWVIYW5kbGU+IEZyYW1lSGFuZGxlOjpj
cmVhdGVBdXRvY29udmVydGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsK
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGcmFtZUhhbmRsZShmcmFtZUlELCB0cnVlKSk7CiB9
CiAKLUZyYW1lSGFuZGxlOjpGcmFtZUhhbmRsZSh1aW50NjRfdCBmcmFtZUlELCBib29sIGlzQXV0
b2NvbnZlcnRpbmcpCitGcmFtZUhhbmRsZTo6RnJhbWVIYW5kbGUoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIGJvb2wgaXNBdXRvY29udmVydGluZykKICAgICA6IG1fZnJhbWVJRChm
cmFtZUlEKQogICAgICwgbV9pc0F1dG9jb252ZXJ0aW5nKGlzQXV0b2NvbnZlcnRpbmcpCiB7CkBA
IC01OSw3ICs1OSw3IEBAIHZvaWQgRnJhbWVIYW5kbGU6OmVuY29kZShJUEM6OkVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiAKIGJvb2wgRnJhbWVIYW5kbGU6OmRlY29kZShJUEM6OkRlY29kZXImIGRl
Y29kZXIsIFJlZlB0cjxPYmplY3Q+JiByZXN1bHQpCiB7Ci0gICAgdWludDY0X3QgZnJhbWVJRDsK
KyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRDsKICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKGZyYW1lSUQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmgKaW5kZXggYjEwZTgwOGE0YjE5YWQzMTNkOGI0NTVj
MjNiOWQ4Mzk5Y2MzODU1MC4uMWM2NGE0YWQxZTgwMmEwNDY3Mjk4MWJjYmY4YTc2MDE2NDI1ZmZk
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSUZyYW1lSGFuZGxlLmgKQEAgLTI3LDYg
KzI3LDcgQEAKICNkZWZpbmUgQVBJRnJhbWVIYW5kbGVfaAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYv
UmVmLmg+CiAKIG5hbWVzcGFjZSBJUEMgewpAQCAtMzgsMjAgKzM5LDIwIEBAIG5hbWVzcGFjZSBB
UEkgewogCiBjbGFzcyBGcmFtZUhhbmRsZSA6IHB1YmxpYyBPYmplY3RJbXBsPE9iamVjdDo6VHlw
ZTo6RnJhbWVIYW5kbGU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEZyYW1lSGFuZGxlPiBj
cmVhdGUodWludDY0X3QgZnJhbWVJRCk7Ci0gICAgc3RhdGljIFJlZjxGcmFtZUhhbmRsZT4gY3Jl
YXRlQXV0b2NvbnZlcnRpbmcodWludDY0X3QgZnJhbWVJRCk7CisgICAgc3RhdGljIFJlZjxGcmFt
ZUhhbmRsZT4gY3JlYXRlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgc3RhdGljIFJl
ZjxGcmFtZUhhbmRsZT4gY3JlYXRlQXV0b2NvbnZlcnRpbmcoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyKTsKIAotICAgIGV4cGxpY2l0IEZyYW1lSGFuZGxlKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wg
aXNBdXRvY29udmVydGluZyk7CisgICAgZXhwbGljaXQgRnJhbWVIYW5kbGUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBib29sIGlzQXV0b2NvbnZlcnRpbmcpOwogICAgIHZpcnR1YWwgfkZyYW1l
SGFuZGxlKCk7CiAKLSAgICB1aW50NjRfdCBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFt
ZUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQoKSBjb25zdCB7IHJl
dHVybiBtX2ZyYW1lSUQ7IH0KICAgICBib29sIGlzQXV0b2NvbnZlcnRpbmcoKSBjb25zdCB7IHJl
dHVybiBtX2lzQXV0b2NvbnZlcnRpbmc7IH0KIAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2Rl
ciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkRlY29kZXImLCBSZWZQdHI8
T2JqZWN0PiYpOwogCiBwcml2YXRlOgotICAgIGNvbnN0IHVpbnQ2NF90IG1fZnJhbWVJRDsKKyAg
ICBjb25zdCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbV9mcmFtZUlEOwogICAgIGNvbnN0IGJv
b2wgbV9pc0F1dG9jb252ZXJ0aW5nOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvQVBJL0NvY29hL19XS0ZyYW1lSGFuZGxlLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
QVBJL0NvY29hL19XS0ZyYW1lSGFuZGxlLm1tCmluZGV4IGE0MWE2MTNhN2QzNzFkN2FlMmE3M2U0
MDU4MjdiMGFiZDczNTcwNzAuLmVkY2IzOGU2MzVhN2JmMDkyN2IxMTBjYzdkNGNmOTc2NmFiNWQw
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhh
bmRsZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5k
bGUubW0KQEAgLTI2LDYgKzI2LDggQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiX1dL
RnJhbWVIYW5kbGVJbnRlcm5hbC5oIgogCisjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmll
ci5oPgorCiBAaW1wbGVtZW50YXRpb24gX1dLRnJhbWVIYW5kbGUgewogICAgIEFQSTo6T2JqZWN0
U3RvcmFnZTxBUEk6OkZyYW1lSGFuZGxlPiBfZnJhbWVIYW5kbGU7CiB9CkBAIC01MCwxMiArNTIs
MTIgQEAgLSAoQk9PTClpc0VxdWFsOihpZClvYmplY3QKIAogLSAoTlNVSW50ZWdlciloYXNoCiB7
Ci0gICAgcmV0dXJuIF9mcmFtZUhhbmRsZS0+ZnJhbWVJRCgpOworICAgIHJldHVybiBfZnJhbWVI
YW5kbGUtPmZyYW1lSUQoKS50b1VJbnQ2NCgpOwogfQogCiAtICh1aW50NjRfdClfZnJhbWVJRAog
ewotICAgIHJldHVybiBfZnJhbWVIYW5kbGUtPmZyYW1lSUQoKTsKKyAgICByZXR1cm4gX2ZyYW1l
SGFuZGxlLT5mcmFtZUlEKCkudG9VSW50NjQoKTsKIH0KIAogI3ByYWdtYSBtYXJrIE5TQ29weWlu
ZyBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbgpAQCAtODMsMTQgKzg1LDE0IEBAIC0gKGlkKWluaXRX
aXRoQ29kZXI6KE5TQ29kZXIgKilkZWNvZGVyCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQog
Ci0gICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OkZyYW1lSGFuZGxlPihz
ZWxmLCBmcmFtZUlELnVuc2lnbmVkTG9uZ0xvbmdWYWx1ZSwgZmFsc2UpOworICAgIEFQSTo6T2Jq
ZWN0Ojpjb25zdHJ1Y3RJbldyYXBwZXI8QVBJOjpGcmFtZUhhbmRsZT4oc2VsZiwgV2ViQ29yZTo6
ZnJhbWVJZGVudGlmaWVyRnJvbUlEKGZyYW1lSUQudW5zaWduZWRMb25nTG9uZ1ZhbHVlKSwgZmFs
c2UpOwogCiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKIC0gKHZvaWQpZW5jb2RlV2l0aENvZGVyOihO
U0NvZGVyICopY29kZXIKIHsKLSAgICBbY29kZXIgZW5jb2RlT2JqZWN0OkAoX2ZyYW1lSGFuZGxl
LT5mcmFtZUlEKCkpIGZvcktleTpAImZyYW1lSUQiXTsKKyAgICBbY29kZXIgZW5jb2RlT2JqZWN0
OkAoW3NlbGYgX2ZyYW1lSURdKSBmb3JLZXk6QCJmcmFtZUlEIl07CiB9CiAKICNwcmFnbWEgbWFy
ayBXS09iamVjdCBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5j
cHAKaW5kZXggOWRlYjc2ZmYxMzJjNmNiNWZkZjVlYmY1MjIyMzRmNmQ0NDNlZjk0ZC4uMzhhNWJm
ZjZhZmQyNTcxZDUyZGNlNGMwOTgwNGFhNzU0NGFiZTRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFn
ZXIuY3BwCkBAIC0xMDgsNyArMTA4LDcgQEAgVmVjdG9yPHVpbnQ2NF90PiBBdXRoZW50aWNhdGlv
bk1hbmFnZXI6OmNvYWxlc2NlQ2hhbGxlbmdlc01hdGNoaW5nKHVpbnQ2NF90IGNoYWwKICAgICBy
ZXR1cm4gY2hhbGxlbmdlc1RvQ29hbGVzY2U7CiB9CiAKLXZvaWQgQXV0aGVudGljYXRpb25NYW5h
Z2VyOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUGFnZUlkZW50aWZpZXIgcGFn
ZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYXV0
aGVudGljYXRpb25DaGFsbGVuZ2UsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxl
dGlvbkhhbmRsZXIpCit2b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBhdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBBU1NFUlQocGFnZUlEKTsKICAgICBBU1NFUlQoZnJhbWVJRCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFn
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9u
TWFuYWdlci5oCmluZGV4IDg2ZTc0NGMxMDhkZjRjYmNmNWQwNDc2MDlhY2Y5NmM2ODIzZDZiMTYu
LjQwMzZlYWI3N2ZkOWNlMTU1NTMwZmI2YTRjYzU2MTY4M2Q3ZWQ5MWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9u
TWFuYWdlci5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NTdXBw
bGVtZW50LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1N1cHBsZW1lbnQuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFt
ZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5j
bHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
QEAgLTYxLDcgKzYyLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBs
ZW1lbnROYW1lKCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29y
ZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYm
KTsKKyAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYpOwog
ICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKElQQzo6TWVzc2FnZVNl
bmRlciYgZG93bmxvYWQsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwg
Q2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJik7CiAKICAgICB2b2lkIGNvbXBsZXRlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UodWludDY0X3QgY2hhbGxlbmdlSUQsIEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlRGlzcG9zaXRpb24sIFdlYkNvcmU6OkNyZWRlbnRpYWwmJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9GcmFtZUluZm9EYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0ZyYW1lSW5mb0RhdGEuY3BwCmluZGV4IDk0NDIzNzQ1NjU4MTZmNGU4ODA0MGZmMDg0ZTBj
MWEzYmU1MzFmZjQuLjNlOWQ3MmVhZDUzYzU4MzJjNDMzMTczNGI3MDc0MWZkYjM0YTIxMjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuY3BwCkBAIC00OSw4ICs0OSwxMiBAQCBi
b29sIEZyYW1lSW5mb0RhdGE6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIEZyYW1lSW5m
b0RhdGEmIHJlc3VsdCkKICAgICBpZiAoIXNlY3VyaXR5T3JpZ2luKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgcmVzdWx0LnNlY3VyaXR5T3JpZ2luID0gV1RGTW92ZSgqc2VjdXJpdHlPcmln
aW4pOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmZyYW1lSUQpKQorICAgIAorICAg
IE9wdGlvbmFsPE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4+IGZyYW1lSUQ7CisgICAgZGVjb2Rl
ciA+PiBmcmFtZUlEOworICAgIGlmICghZnJhbWVJRCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIHJlc3VsdC5mcmFtZUlEID0gV1RGTW92ZSgqZnJhbWVJRCk7CiAKICAgICByZXR1cm4gdHJ1
ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0RhdGEuaAppbmRleCBhODI4MzY4NmYxNmFi
M2NkMzUyNDljZTcwNWQzZjJiOGU3YmIzYzY2Li41Mzg3MTZlYjIxZWI1NDBhNDE3NzljN2U2Yjhm
ZmQ0MzUyZmJjMTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9GcmFtZUluZm9E
YXRhLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRnJhbWVJbmZvRGF0YS5oCkBAIC0yNSw2
ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50
aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAKQEAgLTQyLDcgKzQzLDcgQEAgc3RydWN0
IEZyYW1lSW5mb0RhdGEgewogICAgIGJvb2wgaXNNYWluRnJhbWUgeyBmYWxzZSB9OwogICAgIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0OwogICAgIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSBzZWN1cml0eU9yaWdpbjsKLSAgICB1aW50NjRfdCBmcmFtZUlEIHsgMCB9OworICAg
IE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKIH07CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElGcmFtZUluZm8uY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUZyYW1lSW5mby5jcHAKaW5kZXggOTZiMTNk
MTc4NTQ0NWMzOTczM2IyZjA0OGE2MGYyMDIxNTA4YzhjOC4uODI5NzI4YjkxZDYxYWEyNjA0NzVl
MmExYzkxZDI0MjBlOTc4NjBmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSUZyYW1lSW5mby5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SUZyYW1lSW5mby5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgRnJhbWVJbmZvOjpGcmFtZUluZm8oY29u
c3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhJiBmcmFtZUluZm9EYXRhLCBXZWJLaXQ6OldlYlBhZ2UK
ICAgICA6IG1faXNNYWluRnJhbWUgeyBmcmFtZUluZm9EYXRhLmlzTWFpbkZyYW1lIH0KICAgICAs
IG1fcmVxdWVzdCB7IGZyYW1lSW5mb0RhdGEucmVxdWVzdCB9CiAgICAgLCBtX3NlY3VyaXR5T3Jp
Z2luIHsgU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShmcmFtZUluZm9EYXRhLnNlY3VyaXR5T3JpZ2lu
LnNlY3VyaXR5T3JpZ2luKCkpIH0KLSAgICAsIG1faGFuZGxlIHsgQVBJOjpGcmFtZUhhbmRsZTo6
Y3JlYXRlKGZyYW1lSW5mb0RhdGEuZnJhbWVJRCkgfQorICAgICwgbV9oYW5kbGUgeyBBUEk6OkZy
YW1lSGFuZGxlOjpjcmVhdGUoZnJhbWVJbmZvRGF0YS5mcmFtZUlEID8gKmZyYW1lSW5mb0RhdGEu
ZnJhbWVJRCA6IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcnsgfSkgfQogICAgICwgbV9wYWdlIHsg
bWFrZVJlZlB0cihwYWdlKSB9CiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS0ZyYW1lSGFuZGxlUmVmLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLRnJhbWVIYW5kbGVSZWYuY3BwCmluZGV4IGIzOWZjYTFiZTU3ZjBkMjc0ZDg0NTdm
MDQzZjUwZWFiNjJmMjNjNTguLmU4NzNmYzQ2NTFkNTI2OTM4OTM2OWZjNjBhNzgwMjY1NDIwNWRk
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVIYW5k
bGVSZWYuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVIYW5k
bGVSZWYuY3BwCkBAIC0zOCw1ICszOCw1IEBAIFdLVHlwZUlEIFdLRnJhbWVIYW5kbGVHZXRUeXBl
SUQoKQogCiB1aW50NjRfdCBXS0ZyYW1lSGFuZGxlR2V0RnJhbWVJRChXS0ZyYW1lSGFuZGxlUmVm
IGZyYW1lSGFuZGxlUmVmKQogewotICAgIHJldHVybiB0b0ltcGwoZnJhbWVIYW5kbGVSZWYpLT5m
cmFtZUlEKCk7CisgICAgcmV0dXJuIHRvSW1wbChmcmFtZUhhbmRsZVJlZiktPmZyYW1lSUQoKS50
b1VJbnQ2NCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0KaW5kZXggMDM5MWExOTkyZTM1MzJkYmU1ZjIxZGI2OTFkZDgxMDhhYWUyYTY2Yy4u
MDk1MWU5NDQzN2JjZTQ2NjVkNjE1YmQwNDBkMjZkZjIwYjY0ZGYzNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC02NjIxLDcgKzY2MjEs
NyBAQCAtIChOU1ByaW50T3BlcmF0aW9uICopX3ByaW50T3BlcmF0aW9uV2l0aFByaW50SW5mbzoo
TlNQcmludEluZm8gKilwcmludEluZm8KIAogLSAoTlNQcmludE9wZXJhdGlvbiAqKV9wcmludE9w
ZXJhdGlvbldpdGhQcmludEluZm86KE5TUHJpbnRJbmZvICopcHJpbnRJbmZvIGZvckZyYW1lOihf
V0tGcmFtZUhhbmRsZSAqKWZyYW1lSGFuZGxlCiB7Ci0gICAgaWYgKGF1dG8qIHdlYkZyYW1lUHJv
eHkgPSBfcGFnZS0+cHJvY2VzcygpLndlYkZyYW1lKGZyYW1lSGFuZGxlLl9mcmFtZUlEKSkKKyAg
ICBpZiAoYXV0byogd2ViRnJhbWVQcm94eSA9IF9wYWdlLT5wcm9jZXNzKCkud2ViRnJhbWUoV2Vi
Q29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKGZyYW1lSGFuZGxlLl9mcmFtZUlEKSkpCiAgICAg
ICAgIHJldHVybiBfaW1wbC0+cHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvKHByaW50SW5mbywg
KndlYkZyYW1lUHJveHkpOwogICAgIHJldHVybiBuaWw7CiB9CkBAIC03MTE0LDcgKzcxMTQsNyBA
QCAtICh2b2lkKV9jb21wbGV0ZUltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbgogCiAtIChCT09MKV9j
YW5DaGFuZ2VGcmFtZUxheW91dDooX1dLRnJhbWVIYW5kbGUgKilmcmFtZUhhbmRsZQogewotICAg
IGlmIChhdXRvKiB3ZWJGcmFtZVByb3h5ID0gX3BhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShmcmFt
ZUhhbmRsZS5fZnJhbWVJRCkpCisgICAgaWYgKGF1dG8qIHdlYkZyYW1lUHJveHkgPSBfcGFnZS0+
cHJvY2VzcygpLndlYkZyYW1lKFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRChmcmFtZUhh
bmRsZS5fZnJhbWVJRCkpKQogICAgICAgICByZXR1cm4gX2ltcGwtPmNhbkNoYW5nZUZyYW1lTGF5
b3V0KCp3ZWJGcmFtZVByb3h5KTsKICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5tbQppbmRleCBjNDk5YjE4
ZmE5Mzg4YTQ1ODQzMTQ3NzA4ZDNkMjk2ZGQ1MzI5MGE0Li4zZDE1ZWMyZWVhNzkxMWIyYTM5ZDY0
MDg3OTM2YmY0ZWE2MzQxM2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tJbnNwZWN0b3IubW0KQEAgLTMwLDYgKzMwLDcgQEAKICNpbXBvcnQgIldlYlBy
b2Nlc3NQcm94eS5oIgogI2ltcG9ydCAiX1dLRnJhbWVIYW5kbGVJbnRlcm5hbC5oIgogI2ltcG9y
dCAiX1dLSW5zcGVjdG9ySW50ZXJuYWwuaCIKKyNpbXBvcnQgPFdlYkNvcmUvRnJhbWVJZGVudGlm
aWVyLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKIEBpbXBsZW1lbnRhdGlvbiBfV0tJ
bnNwZWN0b3IKQEAgLTk5LDcgKzEwMCw3IEBAIC0gKHZvaWQpc2hvd1Jlc291cmNlcwogLSAodm9p
ZClzaG93TWFpblJlc291cmNlRm9yRnJhbWU6KF9XS0ZyYW1lSGFuZGxlICopZnJhbWUKIHsKICAg
ICBpZiAoYXV0byogcGFnZSA9IF9pbnNwZWN0b3ItPmluc3BlY3RlZFBhZ2UoKSkKLSAgICAgICAg
X2luc3BlY3Rvci0+c2hvd01haW5SZXNvdXJjZUZvckZyYW1lKHBhZ2UtPnByb2Nlc3MoKS53ZWJG
cmFtZShmcmFtZS5fZnJhbWVJRCkpOworICAgICAgICBfaW5zcGVjdG9yLT5zaG93TWFpblJlc291
cmNlRm9yRnJhbWUocGFnZS0+cHJvY2VzcygpLndlYkZyYW1lKFdlYkNvcmU6OmZyYW1lSWRlbnRp
ZmllckZyb21JRChmcmFtZS5fZnJhbWVJRCkpKTsKIH0KIAogLSAodm9pZClhdHRhY2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXRE
aXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxh
dGVkSW5wdXREaXNwYXRjaGVyLmNwcAppbmRleCA3YWNjNjhiYWVmZWFiMDczYmY2NjBmNmMwYmNl
NWVmYjk3YjVhZTYyLi5kODc0OGVlYTdmYzZkYWUxNTQyNmFkYWVhOTY5Yjc0YmRlZTYzZGM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElu
cHV0RGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlv
bi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3BwCkBAIC0zODIsNyArMzgyLDcgQEAgdm9pZCBT
aW11bGF0ZWRJbnB1dERpc3BhdGNoZXI6OnRyYW5zaXRpb25JbnB1dFNvdXJjZVRvU3RhdGUoU2lt
dWxhdGVkSW5wdXRTb3VyY2UKICAgICB9CiB9CiAKLXZvaWQgU2ltdWxhdGVkSW5wdXREaXNwYXRj
aGVyOjpydW4odWludDY0X3QgZnJhbWVJRCwgVmVjdG9yPFNpbXVsYXRlZElucHV0S2V5RnJhbWU+
JiYga2V5RnJhbWVzLCBIYXNoU2V0PFJlZjxTaW11bGF0ZWRJbnB1dFNvdXJjZT4+JiBpbnB1dFNv
dXJjZXMsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQor
dm9pZCBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXI6OnJ1bihXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgVmVjdG9yPFNpbXVsYXRlZElucHV0S2V5RnJhbWU+JiYga2V5RnJhbWVzLCBI
YXNoU2V0PFJlZjxTaW11bGF0ZWRJbnB1dFNvdXJjZT4+JiBpbnB1dFNvdXJjZXMsIEF1dG9tYXRp
b25Db21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCgh
aXNBY3RpdmUoKSk7CiAgICAgaWYgKGlzQWN0aXZlKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hl
ci5oCmluZGV4IDdmNDE0MWNlMGEzOWU1NjA3M2M3ZWM4YTk2NTYwY2JjMzQ4YWRmYTYuLmIwODkx
YThmMGI2NzUyOWNiOWIzOTg2Yjg3OTUzMDcxMmE0YWFkNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3Bh
dGNoZXIuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShXRUJEUklWRVJfQUNUSU9OU19B
UEkpCiAKICNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVu
dGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KQEAgLTEzMiw3ICsxMzMs
NyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdFQkRSSVZFUl9LRVlCT0FSRF9JTlRFUkFDVElPTlMp
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzaW11bGF0ZUtleWJvYXJkSW50ZXJhY3Rpb24oV2ViUGFn
ZVByb3h5JiwgS2V5Ym9hcmRJbnRlcmFjdGlvbiwgV1RGOjpWYXJpYW50PFZpcnR1YWxLZXksIENo
YXJLZXk+JiYsIEF1dG9tYXRpb25Db21wbGV0aW9uSGFuZGxlciYmKSA9IDA7CiAjZW5kaWYKLSAg
ICAgICAgdmlydHVhbCB2b2lkIHZpZXdwb3J0SW5WaWV3Q2VudGVyUG9pbnRPZkVsZW1lbnQoV2Vi
UGFnZVByb3h5JiwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBG
dW5jdGlvbjx2b2lkIChPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIE9wdGlvbmFsPEF1dG9t
YXRpb25Db21tYW5kRXJyb3I+KT4mJikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgdmlld3Bv
cnRJblZpZXdDZW50ZXJQb2ludE9mRWxlbWVudChXZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbm9kZUhhbmRsZSwgRnVuY3Rpb248dm9pZCAoT3B0
aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBPcHRpb25hbDxBdXRvbWF0aW9uQ29tbWFuZEVycm9y
Pik+JiYpID0gMDsKICAgICB9OwogCiAgICAgc3RhdGljIFJlZjxTaW11bGF0ZWRJbnB1dERpc3Bh
dGNoZXI+IGNyZWF0ZShXZWJQYWdlUHJveHkmIHBhZ2UsIFNpbXVsYXRlZElucHV0RGlzcGF0Y2hl
cjo6Q2xpZW50JiBjbGllbnQpCkBAIC0xNDIsNyArMTQzLDcgQEAgcHVibGljOgogCiAgICAgflNp
bXVsYXRlZElucHV0RGlzcGF0Y2hlcigpOwogCi0gICAgdm9pZCBydW4odWludDY0X3QgZnJhbWVJ
RCwgVmVjdG9yPFNpbXVsYXRlZElucHV0S2V5RnJhbWU+JiYga2V5RnJhbWVzLCBIYXNoU2V0PFJl
ZjxTaW11bGF0ZWRJbnB1dFNvdXJjZT4+JiBpbnB1dFNvdXJjZXMsIEF1dG9tYXRpb25Db21wbGV0
aW9uSGFuZGxlciYmKTsKKyAgICB2b2lkIHJ1bihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFZl
Y3RvcjxTaW11bGF0ZWRJbnB1dEtleUZyYW1lPiYmIGtleUZyYW1lcywgSGFzaFNldDxSZWY8U2lt
dWxhdGVkSW5wdXRTb3VyY2U+PiYgaW5wdXRTb3VyY2VzLCBBdXRvbWF0aW9uQ29tcGxldGlvbkhh
bmRsZXImJik7CiAgICAgdm9pZCBjYW5jZWwoKTsKIAogICAgIGJvb2wgaXNBY3RpdmUoKSBjb25z
dDsKQEAgLTE2NSw3ICsxNjYsNyBAQCBwcml2YXRlOgogICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdl
OwogICAgIFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlcjo6Q2xpZW50JiBtX2NsaWVudDsKIAotICAg
IE9wdGlvbmFsPHVpbnQ2NF90PiBtX2ZyYW1lSUQ7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyPiBtX2ZyYW1lSUQ7CiAgICAgQXV0b21hdGlvbkNvbXBsZXRpb25IYW5kbGVy
IG1fcnVuQ29tcGxldGlvbkhhbmRsZXI7CiAgICAgQXV0b21hdGlvbkNvbXBsZXRpb25IYW5kbGVy
IG1fa2V5RnJhbWVUcmFuc2l0aW9uQ29tcGxldGlvbkhhbmRsZXI7CiAgICAgUnVuTG9vcDo6VGlt
ZXI8U2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyPiBtX2tleUZyYW1lVHJhbnNpdGlvbkR1cmF0aW9u
VGltZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dl
YkF1dG9tYXRpb25TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRp
b24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCmluZGV4IGUzMzU0M2I3YmRhMWQ1OTNmMzA0NTNh
ZTRkNjliZjI1ZGU3NDBjYmUuLmNmNzlhZmQ3NTM2YWIzYjQ2MDViNmU3YzdhZDRiZDM3YjFiMDU3
OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0
b21hdGlvblNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRp
b24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCkBAIC0yMDIsNDEgKzIwMiw0MyBAQCBTdHJpbmcg
V2ViQXV0b21hdGlvblNlc3Npb246OmhhbmRsZUZvcldlYlBhZ2VQcm94eShjb25zdCBXZWJQYWdl
UHJveHkmIHdlYlBhZ2VQcgogICAgIHJldHVybiBoYW5kbGU7CiB9CiAKLU9wdGlvbmFsPHVpbnQ2
NF90PiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2ViRnJhbWVJREZvckhhbmRsZShjb25zdCBTdHJp
bmcmIGhhbmRsZSkKK09wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gV2ViQXV0b21hdGlvblNlc3Np
b246OndlYkZyYW1lSURGb3JIYW5kbGUoY29uc3QgU3RyaW5nJiBoYW5kbGUsIGJvb2wmIGZyYW1l
Tm90Rm91bmQpCiB7CiAgICAgaWYgKGhhbmRsZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiAw
OworICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCiAgICAgYXV0byBpdGVyID0gbV9oYW5k
bGVXZWJGcmFtZU1hcC5maW5kKGhhbmRsZSk7Ci0gICAgaWYgKGl0ZXIgPT0gbV9oYW5kbGVXZWJG
cmFtZU1hcC5lbmQoKSkKKyAgICBpZiAoaXRlciA9PSBtX2hhbmRsZVdlYkZyYW1lTWFwLmVuZCgp
KSB7CisgICAgICAgIGZyYW1lTm90Rm91bmQgPSB0cnVlOwogICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworICAgIH0KIAogICAgIHJldHVybiBpdGVyLT52YWx1ZTsKIH0KIAotU3RyaW5nIFdl
YkF1dG9tYXRpb25TZXNzaW9uOjpoYW5kbGVGb3JXZWJGcmFtZUlEKHVpbnQ2NF90IGZyYW1lSUQp
CitTdHJpbmcgV2ViQXV0b21hdGlvblNlc3Npb246OmhhbmRsZUZvcldlYkZyYW1lSUQoT3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKQogewotICAgIGlmICghZnJhbWVJRCkKKyAgICBp
ZiAoIWZyYW1lSUQgfHwgISpmcmFtZUlEKQogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsK
IAogICAgIGZvciAoYXV0byYgcHJvY2VzcyA6IG1fcHJvY2Vzc1Bvb2wtPnByb2Nlc3NlcygpKSB7
Ci0gICAgICAgIGlmIChXZWJGcmFtZVByb3h5KiBmcmFtZSA9IHByb2Nlc3MtPndlYkZyYW1lKGZy
YW1lSUQpKSB7CisgICAgICAgIGlmIChXZWJGcmFtZVByb3h5KiBmcmFtZSA9IHByb2Nlc3MtPndl
YkZyYW1lKCpmcmFtZUlEKSkgewogICAgICAgICAgICAgaWYgKGZyYW1lLT5pc01haW5GcmFtZSgp
KQogICAgICAgICAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBhdXRvIGl0ZXIgPSBtX3dlYkZyYW1lSGFuZGxl
TWFwLmZpbmQoZnJhbWVJRCk7CisgICAgYXV0byBpdGVyID0gbV93ZWJGcmFtZUhhbmRsZU1hcC5m
aW5kKCpmcmFtZUlEKTsKICAgICBpZiAoaXRlciAhPSBtX3dlYkZyYW1lSGFuZGxlTWFwLmVuZCgp
KQogICAgICAgICByZXR1cm4gaXRlci0+dmFsdWU7CiAKICAgICBTdHJpbmcgaGFuZGxlID0gImZy
YW1lLSIgKyBjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkuY29udmVydFRvQVNDSUlVcHBlcmNh
c2UoKTsKIAotICAgIGF1dG8gZmlyc3RBZGRSZXN1bHQgPSBtX3dlYkZyYW1lSGFuZGxlTWFwLmFk
ZChmcmFtZUlELCBoYW5kbGUpOworICAgIGF1dG8gZmlyc3RBZGRSZXN1bHQgPSBtX3dlYkZyYW1l
SGFuZGxlTWFwLmFkZCgqZnJhbWVJRCwgaGFuZGxlKTsKICAgICBSRUxFQVNFX0FTU0VSVChmaXJz
dEFkZFJlc3VsdC5pc05ld0VudHJ5KTsKIAotICAgIGF1dG8gc2Vjb25kQWRkUmVzdWx0ID0gbV9o
YW5kbGVXZWJGcmFtZU1hcC5hZGQoaGFuZGxlLCBmcmFtZUlEKTsKKyAgICBhdXRvIHNlY29uZEFk
ZFJlc3VsdCA9IG1faGFuZGxlV2ViRnJhbWVNYXAuYWRkKGhhbmRsZSwgKmZyYW1lSUQpOwogICAg
IFJFTEVBU0VfQVNTRVJUKHNlY29uZEFkZFJlc3VsdC5pc05ld0VudHJ5KTsKIAogICAgIHJldHVy
biBoYW5kbGU7CkBAIC0zNjIsMTQgKzM2NCwxNSBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9u
Ojpzd2l0Y2hUb0Jyb3dzaW5nQ29udGV4dChjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dAog
ICAgIGlmICghcGFnZSkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1Io
V2luZG93Tm90Rm91bmQpOwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQgPSB3ZWJG
cmFtZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5kbGUgPyAqb3B0aW9uYWxGcmFtZUhhbmRs
ZSA6IGVtcHR5U3RyaW5nKCkpOwotICAgIGlmICghZnJhbWVJRCkKKyAgICBib29sIGZyYW1lTm90
Rm91bmQgPSBmYWxzZTsKKyAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9w
dGlvbmFsRnJhbWVIYW5kbGUgPyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCks
IGZyYW1lTm90Rm91bmQpOworICAgIGlmIChmcmFtZU5vdEZvdW5kKQogICAgICAgICBBU1lOQ19G
QUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIAogCiAgICAgbV9jbGll
bnQtPnJlcXVlc3RTd2l0Y2hUb1BhZ2UoKnRoaXMsICpwYWdlLCBbZnJhbWVJRCwgcGFnZSA9IG1h
a2VSZWYoKnBhZ2UpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgpIHsKICAgICAgICAg
cGFnZS0+c2V0Rm9jdXModHJ1ZSk7Ci0gICAgICAgIHBhZ2UtPnByb2Nlc3MoKS5zZW5kKE1lc3Nh
Z2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpGb2N1c0ZyYW1lKHBhZ2UtPnBhZ2VJRCgp
LCBmcmFtZUlELnZhbHVlKCkpLCAwKTsKKyAgICAgICAgcGFnZS0+cHJvY2VzcygpLnNlbmQoTWVz
c2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OkZvY3VzRnJhbWUocGFnZS0+cGFnZUlE
KCksIGZyYW1lSUQpLCAwKTsKIAogICAgICAgICBjYWxsYmFjay0+c2VuZFN1Y2Nlc3MoKTsKICAg
ICB9KTsKQEAgLTQ1OSw4ICs0NjIsOSBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjp3YWl0
Rm9yTmF2aWdhdGlvblRvQ29tcGxldGUoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbgogICAgICAg
ICAmJiBwYWdlLT5wYWdlTG9hZFN0YXRlKCkuaXNMb2FkaW5nKCkgJiYgbV9jbGllbnQtPmlzU2hv
d2luZ0phdmFTY3JpcHREaWFsb2dPblBhZ2UoKnRoaXMsICpwYWdlKTsKIAogICAgIGlmIChvcHRp
b25hbEZyYW1lSGFuZGxlICYmICFvcHRpb25hbEZyYW1lSGFuZGxlLT5pc0VtcHR5KCkpIHsKLSAg
ICAgICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKCpv
cHRpb25hbEZyYW1lSGFuZGxlKTsKLSAgICAgICAgaWYgKCFmcmFtZUlEKQorICAgICAgICBib29s
IGZyYW1lTm90Rm91bmQgPSBmYWxzZTsKKyAgICAgICAgYXV0byBmcmFtZUlEID0gd2ViRnJhbWVJ
REZvckhhbmRsZSgqb3B0aW9uYWxGcmFtZUhhbmRsZSwgZnJhbWVOb3RGb3VuZCk7CisgICAgICAg
IGlmIChmcmFtZU5vdEZvdW5kKQogICAgICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklO
RURfRVJST1IoRnJhbWVOb3RGb3VuZCk7CiAgICAgICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0g
cGFnZS0+cHJvY2VzcygpLndlYkZyYW1lKGZyYW1lSUQudmFsdWUoKSk7CiAgICAgICAgIGlmICgh
ZnJhbWUpCkBAIC01MzcsNyArNTQxLDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVz
cG9uZFRvUGVuZGluZ1BhZ2VOYXZpZ2F0aW9uQ2FsbGJhY2tzV2l0aFRpbWVvdXQoSGEKICAgICB9
CiB9CiAKLXN0YXRpYyBXZWJQYWdlUHJveHkqIGZpbmRQYWdlRm9yRnJhbWVJRChjb25zdCBXZWJQ
cm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIHVpbnQ2NF90IGZyYW1lSUQpCitzdGF0aWMgV2ViUGFn
ZVByb3h5KiBmaW5kUGFnZUZvckZyYW1lSUQoY29uc3QgV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQ
b29sLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBmb3IgKGF1dG8mIHByb2Nlc3Mg
OiBwcm9jZXNzUG9vbC5wcm9jZXNzZXMoKSkgewogICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBw
cm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKSkKQEAgLTU0Niw3ICs1NTAsNyBAQCBzdGF0aWMgV2Vi
UGFnZVByb3h5KiBmaW5kUGFnZUZvckZyYW1lSUQoY29uc3QgV2ViUHJvY2Vzc1Bvb2wmIHByb2Nl
c3NQb29sLCB1aW50NgogICAgIHJldHVybiBudWxscHRyOwogfQogCi12b2lkIFdlYkF1dG9tYXRp
b25TZXNzaW9uOjpyZXNwb25kVG9QZW5kaW5nRnJhbWVOYXZpZ2F0aW9uQ2FsbGJhY2tzV2l0aFRp
bWVvdXQoSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNo
ZXI6OkNhbGxiYWNrQmFzZT4+JiBtYXApCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNw
b25kVG9QZW5kaW5nRnJhbWVOYXZpZ2F0aW9uQ2FsbGJhY2tzV2l0aFRpbWVvdXQoSGFzaE1hcDxG
cmFtZUlkZW50aWZpZXIsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxs
YmFja0Jhc2U+PiYgbWFwKQogewogICAgIEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcgdGltZW91dEVy
cm9yID0gU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VSUk9SX05BTUUoVGltZW91dCk7CiAgICAgZm9y
IChhdXRvIGlkIDogY29weVRvVmVjdG9yKG1hcC5rZXlzKCkpKSB7CkBAIC05MjQsOCArOTI4LDkg
QEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24o
Y29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnQKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIEFTWU5D
X0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKIAotICAgIE9wdGlv
bmFsPHVpbnQ2NF90PiBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShvcHRpb25hbEZyYW1l
SGFuZGxlID8gKm9wdGlvbmFsRnJhbWVIYW5kbGUgOiBlbXB0eVN0cmluZygpKTsKLSAgICBpZiAo
IWZyYW1lSUQpCisgICAgYm9vbCBmcmFtZU5vdEZvdW5kID0gZmFsc2U7CisgICAgYXV0byBmcmFt
ZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShvcHRpb25hbEZyYW1lSGFuZGxlID8gKm9wdGlvbmFs
RnJhbWVIYW5kbGUgOiBlbXB0eVN0cmluZygpLCBmcmFtZU5vdEZvdW5kKTsKKyAgICBpZiAoZnJh
bWVOb3RGb3VuZCkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoRnJh
bWVOb3RGb3VuZCk7CiAKICAgICBWZWN0b3I8U3RyaW5nPiBhcmd1bWVudHNWZWN0b3I7CkBAIC05
NDMsNyArOTQ4LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6ZXZhbHVhdGVKYXZhU2Ny
aXB0RnVuY3Rpb24oY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnQKICAgICB1aW50NjRfdCBjYWxs
YmFja0lEID0gbV9uZXh0RXZhbHVhdGVKYXZhU2NyaXB0Q2FsbGJhY2tJRCsrOwogICAgIG1fZXZh
bHVhdGVKYXZhU2NyaXB0RnVuY3Rpb25DYWxsYmFja3Muc2V0KGNhbGxiYWNrSUQsIFdURk1vdmUo
Y2FsbGJhY2spKTsKIAotICAgIHBhZ2UtPnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRv
bWF0aW9uU2Vzc2lvblByb3h5OjpFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihwYWdlLT5wYWdl
SUQoKSwgZnJhbWVJRC52YWx1ZSgpLCBmdW5jdGlvbiwgYXJndW1lbnRzVmVjdG9yLCBleHBlY3Rz
SW1wbGljaXRDYWxsYmFja0FyZ3VtZW50LCBjYWxsYmFja1RpbWVvdXQsIGNhbGxiYWNrSUQpLCAw
KTsKKyAgICBwYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Np
b25Qcm94eTo6RXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24ocGFnZS0+cGFnZUlEKCksIGZyYW1l
SUQsIGZ1bmN0aW9uLCBhcmd1bWVudHNWZWN0b3IsIGV4cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJn
dW1lbnQsIGNhbGxiYWNrVGltZW91dCwgY2FsbGJhY2tJRCksIDApOwogfQogCiB2b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uOjpkaWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbih1aW50NjRfdCBj
YWxsYmFja0lELCBjb25zdCBTdHJpbmcmIHJlc3VsdCwgY29uc3QgU3RyaW5nJiBlcnJvclR5cGUp
CkBAIC05NjcsMTEgKzk3MiwxMiBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZl
Q2hpbGRGcmFtZUhhbmRsZShjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dAogICAgIGlmICgh
cGFnZSkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90
Rm91bmQpOwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9y
SGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5kbGUgPyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5
U3RyaW5nKCkpOwotICAgIGlmICghZnJhbWVJRCkKKyAgICBib29sIGZyYW1lTm90Rm91bmQgPSBm
YWxzZTsKKyAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJh
bWVIYW5kbGUgPyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCksIGZyYW1lTm90
Rm91bmQpOworICAgIGlmIChmcmFtZU5vdEZvdW5kKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhf
UFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIAotICAgIFdURjo6Q29tcGxldGlvbkhh
bmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCB1aW50NjRfdCk+IGNvbXBsZXRpb25IYW5kbGVy
ID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FsbGJhY2sgPSBjYWxs
YmFjay5jb3B5UmVmKCldKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCB1aW50NjRfdCBmcmFt
ZUlEKSBtdXRhYmxlIHsKKyAgICBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8
U3RyaW5nPiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPik+IGNvbXBsZXRpb25IYW5kbGVyID0g
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FsbGJhY2sgPSBjYWxsYmFj
ay5jb3B5UmVmKCldKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBPcHRpb25hbDxGcmFtZUlk
ZW50aWZpZXI+IGZyYW1lSUQpIG11dGFibGUgewogICAgICAgICBpZiAoZXJyb3JUeXBlKSB7CiAg
ICAgICAgICAgICBjYWxsYmFjay0+c2VuZEZhaWx1cmUoU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VS
Uk9SX01FU1NBR0UoKmVycm9yVHlwZSkpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtOTgxLDE3
ICs5ODcsMTcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVzb2x2ZUNoaWxkRnJhbWVI
YW5kbGUoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHQKICAgICB9OwogCiAgICAgaWYgKG9w
dGlvbmFsTm9kZUhhbmRsZSkgewotICAgICAgICBwYWdlLT5wcm9jZXNzKCkuc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpSZXNvbHZlQ2hpbGRG
cmFtZVdpdGhOb2RlSGFuZGxlKHBhZ2UtPnBhZ2VJRCgpLCBmcmFtZUlELnZhbHVlKCksICpvcHRp
b25hbE5vZGVIYW5kbGUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgIHBh
Z2UtPnByb2Nlc3MoKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25T
ZXNzaW9uUHJveHk6OlJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUocGFnZS0+cGFnZUlE
KCksIGZyYW1lSUQsICpvcHRpb25hbE5vZGVIYW5kbGUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAob3B0aW9uYWxOYW1lKSB7
Ci0gICAgICAgIHBhZ2UtPnByb2Nlc3MoKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Oldl
YkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OlJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUocGFnZS0+
cGFnZUlEKCksIGZyYW1lSUQudmFsdWUoKSwgKm9wdGlvbmFsTmFtZSksIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKKyAgICAgICAgcGFnZS0+cHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6UmVzb2x2ZUNoaWxkRnJhbWVX
aXRoTmFtZShwYWdlLT5wYWdlSUQoKSwgZnJhbWVJRCwgKm9wdGlvbmFsTmFtZSksIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChv
cHRpb25hbE9yZGluYWwpIHsKLSAgICAgICAgcGFnZS0+cHJvY2VzcygpLnNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6UmVzb2x2ZUNoaWxkRnJh
bWVXaXRoT3JkaW5hbChwYWdlLT5wYWdlSUQoKSwgZnJhbWVJRC52YWx1ZSgpLCAqb3B0aW9uYWxP
cmRpbmFsKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgICAgICBwYWdlLT5wcm9j
ZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5OjpSZXNvbHZlQ2hpbGRGcmFtZVdpdGhPcmRpbmFsKHBhZ2UtPnBhZ2VJRCgpLCBmcmFtZUlE
LCAqb3B0aW9uYWxPcmRpbmFsKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCkBAIC0xMDA0LDExICsxMDEwLDEyIEBAIHZvaWQgV2ViQXV0b21h
dGlvblNlc3Npb246OnJlc29sdmVQYXJlbnRGcmFtZUhhbmRsZShjb25zdCBTdHJpbmcmIGJyb3dz
aW5nQ29udGV4CiAgICAgaWYgKCFwYWdlKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVG
SU5FRF9FUlJPUihXaW5kb3dOb3RGb3VuZCk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJh
bWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUoZnJhbWVIYW5kbGUpOwotICAgIGlmICghZnJhbWVJ
RCkKKyAgICBib29sIGZyYW1lTm90Rm91bmQgPSBmYWxzZTsKKyAgICBhdXRvIGZyYW1lSUQgPSB3
ZWJGcmFtZUlERm9ySGFuZGxlKGZyYW1lSGFuZGxlLCBmcmFtZU5vdEZvdW5kKTsKKyAgICBpZiAo
ZnJhbWVOb3RGb3VuZCkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1Io
RnJhbWVOb3RGb3VuZCk7CiAKLSAgICBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9u
YWw8U3RyaW5nPiwgdWludDY0X3QpPiBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhbGxiYWNrID0gY2FsbGJhY2suY29weVJlZigpXShP
cHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgdWludDY0X3QgZnJhbWVJRCkgbXV0YWJsZSB7Cisg
ICAgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIE9wdGlvbmFs
PEZyYW1lSWRlbnRpZmllcj4pPiBjb21wbGV0aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyksIGNhbGxiYWNrID0gY2FsbGJhY2suY29weVJlZigpXShPcHRp
b25hbDxTdHJpbmc+IGVycm9yVHlwZSwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlE
KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGVycm9yVHlwZSkgewogICAgICAgICAgICAgY2FsbGJh
Y2stPnNlbmRGYWlsdXJlKFNUUklOR19GT1JfUFJFREVGSU5FRF9FUlJPUl9NRVNTQUdFKCplcnJv
clR5cGUpKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTEwMTcsNyArMTAyNCw3IEBAIHZvaWQg
V2ViQXV0b21hdGlvblNlc3Npb246OnJlc29sdmVQYXJlbnRGcmFtZUhhbmRsZShjb25zdCBTdHJp
bmcmIGJyb3dzaW5nQ29udGV4CiAgICAgICAgIGNhbGxiYWNrLT5zZW5kU3VjY2VzcyhoYW5kbGVG
b3JXZWJGcmFtZUlEKGZyYW1lSUQpKTsKICAgICB9OwogCi0gICAgcGFnZS0+cHJvY2VzcygpLnNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6UmVz
b2x2ZVBhcmVudEZyYW1lKHBhZ2UtPnBhZ2VJRCgpLCBmcmFtZUlELnZhbHVlKCkpLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgcGFnZS0+cHJvY2VzcygpLnNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6UmVzb2x2ZVBhcmVudEZy
YW1lKHBhZ2UtPnBhZ2VJRCgpLCBmcmFtZUlEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwogfQogCiBzdGF0aWMgT3B0aW9uYWw8Q29vcmRpbmF0ZVN5c3RlbT4gcHJvdG9jb2xTdHJpbmdU
b0Nvb3JkaW5hdGVTeXN0ZW0oY29uc3QgU3RyaW5nJiBjb29yZGluYXRlU3lzdGVtU3RyaW5nKQpA
QCAtMTAzNSw4ICsxMDQyLDkgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Y29tcHV0ZUVs
ZW1lbnRMYXlvdXQoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW4KICAgICBpZiAoIXBh
Z2UpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZv
dW5kKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhh
bmRsZShmcmFtZUhhbmRsZSk7Ci0gICAgaWYgKCFmcmFtZUlEKQorICAgIGJvb2wgZnJhbWVOb3RG
b3VuZCA9IGZhbHNlOworICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUoZnJh
bWVIYW5kbGUsIGZyYW1lTm90Rm91bmQpOworICAgIGlmIChmcmFtZU5vdEZvdW5kKQogICAgICAg
ICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIAogICAg
IE9wdGlvbmFsPENvb3JkaW5hdGVTeXN0ZW0+IGNvb3JkaW5hdGVTeXN0ZW0gPSBwcm90b2NvbFN0
cmluZ1RvQ29vcmRpbmF0ZVN5c3RlbShjb29yZGluYXRlU3lzdGVtU3RyaW5nKTsKQEAgLTEwNzgs
NyArMTA4Niw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmNvbXB1dGVFbGVtZW50TGF5
b3V0KGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuCiAgICAgfTsKIAogICAgIGJvb2wg
c2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCA9IG9wdGlvbmFsU2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCA/
ICpvcHRpb25hbFNjcm9sbEludG9WaWV3SWZOZWVkZWQgOiBmYWxzZTsKLSAgICBwYWdlLT5wcm9j
ZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5OjpDb21wdXRlRWxlbWVudExheW91dChwYWdlLT5wYWdlSUQoKSwgZnJhbWVJRC52YWx1ZSgp
LCBub2RlSGFuZGxlLCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBjb29yZGluYXRlU3lzdGVtLnZh
bHVlKCkpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgcGFnZS0+cHJvY2Vzcygp
LnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6
Q29tcHV0ZUVsZW1lbnRMYXlvdXQocGFnZS0+cGFnZUlEKCksIGZyYW1lSUQsIG5vZGVIYW5kbGUs
IHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGNvb3JkaW5hdGVTeXN0ZW0udmFsdWUoKSksIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6
c2VsZWN0T3B0aW9uRWxlbWVudChjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwg
Y29uc3QgU3RyaW5nJiBmcmFtZUhhbmRsZSwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBSZWY8
U2VsZWN0T3B0aW9uRWxlbWVudENhbGxiYWNrPiYmIGNhbGxiYWNrKQpAQCAtMTA4Nyw4ICsxMDk1
LDkgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2VsZWN0T3B0aW9uRWxlbWVudChjb25z
dCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmQKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIEFT
WU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKIAotICAgIE9w
dGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShmcmFtZUhhbmRs
ZSk7Ci0gICAgaWYgKCFmcmFtZUlEKQorICAgIGJvb2wgZnJhbWVOb3RGb3VuZCA9IGZhbHNlOwor
ICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUoZnJhbWVIYW5kbGUsIGZyYW1l
Tm90Rm91bmQpOworICAgIGlmIChmcmFtZU5vdEZvdW5kKQogICAgICAgICBBU1lOQ19GQUlMX1dJ
VEhfUFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIAogICAgIFdURjo6Q29tcGxldGlv
bkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+KT4gY29tcGxldGlvbkhhbmRsZXIgPSBbY2Fs
bGJhY2sgPSBjYWxsYmFjay5jb3B5UmVmKCldKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlKSBt
dXRhYmxlIHsKQEAgLTExMDAsNyArMTEwOSw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246
OnNlbGVjdE9wdGlvbkVsZW1lbnQoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kCiAg
ICAgICAgIGNhbGxiYWNrLT5zZW5kU3VjY2VzcygpOwogICAgIH07CiAKLSAgICBwYWdlLT5wcm9j
ZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5OjpTZWxlY3RPcHRpb25FbGVtZW50KHBhZ2UtPnBhZ2VJRCgpLCBmcmFtZUlELnZhbHVlKCks
IG5vZGVIYW5kbGUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgcGFnZS0+cHJv
Y2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eTo6U2VsZWN0T3B0aW9uRWxlbWVudChwYWdlLT5wYWdlSUQoKSwgZnJhbWVJRCwgbm9kZUhh
bmRsZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBXZWJBdXRvbWF0
aW9uU2Vzc2lvbjo6aXNTaG93aW5nSmF2YVNjcmlwdERpYWxvZyhJbnNwZWN0b3I6OkVycm9yU3Ry
aW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kbGUsIGJv
b2wqIHJlc3VsdCkKQEAgLTEyNzAsOSArMTI3OSw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b246OmdldEFsbENvb2tpZXMoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kbGUsIFJl
CiAgICAgICAgIGNhbGxiYWNrLT5zZW5kU3VjY2VzcyhidWlsZEFycmF5Rm9yQ29va2llcyhjb29r
aWVzKSk7CiAgICAgfTsKIAotICAgIC8vIEFsd2F5cyBzZW5kIHRoZSBtYWluIGZyYW1lIElEIGFz
IDAgc28gaXQgaXMgcmVzb2x2ZWQgb24gdGhlIFdlYlByb2Nlc3Mgc2lkZS4gVGhpcyBhdm9pZHMg
YSByYWNlIHdoZW4gcGFnZS0+bWFpbkZyYW1lKCkgaXMgbnVsbCBzdGlsbC4KLSAgICBjb25zdCB1
aW50NjRfdCBtYWluRnJhbWVJRCA9IDA7Ci0gICAgcGFnZS0+cHJvY2VzcygpLnNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6R2V0Q29va2llc0Zv
ckZyYW1lKHBhZ2UtPnBhZ2VJRCgpLCBtYWluRnJhbWVJRCksIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKKyAgICBwYWdlLT5wcm9jZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpHZXRDb29raWVzRm9yRnJhbWUocGFnZS0+cGFn
ZUlEKCksIFdURjo6bnVsbG9wdCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAog
dm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6ZGVsZXRlU2luZ2xlQ29va2llKGNvbnN0IFN0cmlu
ZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUsIFJlZjxE
ZWxldGVTaW5nbGVDb29raWVDYWxsYmFjaz4mJiBjYWxsYmFjaykKQEAgLTEyOTAsOSArMTI5Nyw3
IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmRlbGV0ZVNpbmdsZUNvb2tpZShjb25zdCBT
dHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsCiAgICAgICAgIGNhbGxiYWNrLT5zZW5kU3VjY2Vz
cygpOwogICAgIH07CiAKLSAgICAvLyBBbHdheXMgc2VuZCB0aGUgbWFpbiBmcmFtZSBJRCBhcyAw
IHNvIGl0IGlzIHJlc29sdmVkIG9uIHRoZSBXZWJQcm9jZXNzIHNpZGUuIFRoaXMgYXZvaWRzIGEg
cmFjZSB3aGVuIHBhZ2UtPm1haW5GcmFtZSgpIGlzIG51bGwgc3RpbGwuCi0gICAgY29uc3QgdWlu
dDY0X3QgbWFpbkZyYW1lSUQgPSAwOwotICAgIHBhZ2UtPnByb2Nlc3MoKS5zZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OkRlbGV0ZUNvb2tpZShw
YWdlLT5wYWdlSUQoKSwgbWFpbkZyYW1lSUQsIGNvb2tpZU5hbWUpLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CisgICAgcGFnZS0+cHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6RGVsZXRlQ29va2llKHBhZ2UtPnBhZ2VJ
RCgpLCBXVEY6Om51bGxvcHQsIGNvb2tpZU5hbWUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CiB9CiAKIHN0YXRpYyBTdHJpbmcgZG9tYWluQnlBZGRpbmdEb3RQcmVmaXhJZk5lZWRlZChT
dHJpbmcgZG9tYWluKQpAQCAtMTQ1Nyw3ICsxNDYyLDcgQEAgU2ltdWxhdGVkSW5wdXRTb3VyY2Uq
IFdlYkF1dG9tYXRpb25TZXNzaW9uOjppbnB1dFNvdXJjZUZvclR5cGUoU2ltdWxhdGVkSW5wdXRT
b3UKIH0KIAogLy8gTUFSSzogU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyOjpDbGllbnQgQVBJCi12
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjp2aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVt
ZW50KFdlYlBhZ2VQcm94eSYgcGFnZSwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBu
b2RlSGFuZGxlLCBGdW5jdGlvbjx2b2lkIChPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIE9w
dGlvbmFsPEF1dG9tYXRpb25Db21tYW5kRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgV2ViQXV0b21hdGlvblNlc3Npb246OnZpZXdwb3J0SW5WaWV3Q2VudGVyUG9pbnRPZkVsZW1l
bnQoV2ViUGFnZVByb3h5JiBwYWdlLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3Ry
aW5nJiBub2RlSGFuZGxlLCBGdW5jdGlvbjx2b2lkIChPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2lu
dD4sIE9wdGlvbmFsPEF1dG9tYXRpb25Db21tYW5kRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwg
V2ViQ29yZTo6SW50UmVjdCwgT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBib29sKT4gZGlk
Q29tcHV0ZUVsZW1lbnRMYXlvdXRIYW5kbGVyID0gW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBXZWJDb3Jl
OjpJbnRSZWN0LCBPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4gaW5WaWV3Q2VudGVyUG9pbnQs
IGJvb2wpIG11dGFibGUgewogICAgICAgICBpZiAoZXJyb3JUeXBlKSB7CkBAIC0xNzc4LDggKzE3
ODMsOSBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwZXJmb3JtSW50ZXJhY3Rpb25TZXF1
ZW5jZShjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29ucwogICAgIGlmICghcGFnZSkKICAgICAgICAg
QVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwogCi0gICAg
YXV0byBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShvcHRpb25hbEZyYW1lSGFuZGxlID8g
Km9wdGlvbmFsRnJhbWVIYW5kbGUgOiBlbXB0eVN0cmluZygpKTsKLSAgICBpZiAoIWZyYW1lSUQp
CisgICAgYm9vbCBmcmFtZU5vdEZvdW5kID0gZmFsc2U7CisgICAgYXV0byBmcmFtZUlEID0gd2Vi
RnJhbWVJREZvckhhbmRsZShvcHRpb25hbEZyYW1lSGFuZGxlID8gKm9wdGlvbmFsRnJhbWVIYW5k
bGUgOiBlbXB0eVN0cmluZygpLCBmcmFtZU5vdEZvdW5kKTsKKyAgICBpZiAoZnJhbWVOb3RGb3Vu
ZCkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoRnJhbWVOb3RGb3Vu
ZCk7CiAKICAgICBIYXNoTWFwPFN0cmluZywgUmVmPFNpbXVsYXRlZElucHV0U291cmNlPj4gc291
cmNlSWRUb0lucHV0U291cmNlTWFwOwpAQCAtMTk1Myw4ICsxOTU5LDkgQEAgdm9pZCBXZWJBdXRv
bWF0aW9uU2Vzc2lvbjo6Y2FuY2VsSW50ZXJhY3Rpb25TZXF1ZW5jZShjb25zdCBTdHJpbmcmIGhh
bmRsZSwgY29uc3QKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVE
RUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKIAotICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZy
YW1lSURGb3JIYW5kbGUob3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpvcHRpb25hbEZyYW1lSGFuZGxl
IDogZW1wdHlTdHJpbmcoKSk7Ci0gICAgaWYgKCFmcmFtZUlEKQorICAgIGJvb2wgZnJhbWVOb3RG
b3VuZCA9IGZhbHNlOworICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUob3B0
aW9uYWxGcmFtZUhhbmRsZSA/ICpvcHRpb25hbEZyYW1lSGFuZGxlIDogZW1wdHlTdHJpbmcoKSwg
ZnJhbWVOb3RGb3VuZCk7CisgICAgaWYgKGZyYW1lTm90Rm91bmQpCiAgICAgICAgIEFTWU5DX0ZB
SUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKEZyYW1lTm90Rm91bmQpOwogCiAgICAgVmVjdG9yPFNp
bXVsYXRlZElucHV0S2V5RnJhbWU+IGtleUZyYW1lcyh7IFNpbXVsYXRlZElucHV0S2V5RnJhbWU6
OmtleUZyYW1lVG9SZXNldElucHV0U291cmNlcyhtX2lucHV0U291cmNlcykgfSk7CkBAIC0xOTc2
LDggKzE5ODMsOSBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjp0YWtlU2NyZWVuc2hvdChj
b25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgU3RyaW5nKiBvcAogICAgIGlmICghcGFnZSkKICAg
ICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwog
Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9w
dGlvbmFsRnJhbWVIYW5kbGUgPyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCkp
OwotICAgIGlmICghZnJhbWVJRCkKKyAgICBib29sIGZyYW1lTm90Rm91bmQgPSBmYWxzZTsKKyAg
ICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5kbGUg
PyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCksIGZyYW1lTm90Rm91bmQpOwor
ICAgIGlmIChmcmFtZU5vdEZvdW5kKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5F
RF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIAogICAgIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRl
ZCA9IG9wdGlvbmFsU2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCA/ICpvcHRpb25hbFNjcm9sbEludG9W
aWV3SWZOZWVkZWQgOiBmYWxzZTsKQEAgLTE5ODcsNyArMTk5NSw3IEBAIHZvaWQgV2ViQXV0b21h
dGlvblNlc3Npb246OnRha2VTY3JlZW5zaG90KGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBT
dHJpbmcqIG9wCiAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IG1fbmV4dFNjcmVlbnNob3RDYWxs
YmFja0lEKys7CiAgICAgbV9zY3JlZW5zaG90Q2FsbGJhY2tzLnNldChjYWxsYmFja0lELCBXVEZN
b3ZlKGNhbGxiYWNrKSk7CiAKLSAgICBwYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2Vi
QXV0b21hdGlvblNlc3Npb25Qcm94eTo6VGFrZVNjcmVlbnNob3QocGFnZS0+cGFnZUlEKCksIGZy
YW1lSUQudmFsdWUoKSwgbm9kZUhhbmRsZSwgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgY2xpcFRv
Vmlld3BvcnQsIGNhbGxiYWNrSUQpLCAwKTsKKyAgICBwYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNz
YWdlczo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6VGFrZVNjcmVlbnNob3QocGFnZS0+cGFn
ZUlEKCksIGZyYW1lSUQsIG5vZGVIYW5kbGUsIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGNsaXBU
b1ZpZXdwb3J0LCBjYWxsYmFja0lEKSwgMCk7CiB9CiAKIHZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b246OmRpZFRha2VTY3JlZW5zaG90KHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFNoYXJlYWJs
ZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGFIYW5kbGUsIGNvbnN0IFN0cmluZyYgZXJyb3JUeXBl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRv
bWF0aW9uU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJB
dXRvbWF0aW9uU2Vzc2lvbi5oCmluZGV4IDY4YTI3N2FhOWU5NzY4YzlhNGZhMjA5Njk3OGRhOWM3
YTMyOTUyNTEuLjc1OTZmZWU3Mjc3YjYzODI0ZDdhNjVmNjU2MzllOGUwMGFhNDZjMDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNl
c3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9t
YXRpb25TZXNzaW9uLmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJTaGFyZWFibGVCaXRt
YXAuaCIKICNpbmNsdWRlICJTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaCIKICNpbmNsdWRlICJX
ZWJFdmVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFu
ZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC0xNTIsNyArMTUzLDcgQEAgcHVi
bGljOgogI2lmIEVOQUJMRShXRUJEUklWRVJfS0VZQk9BUkRfSU5URVJBQ1RJT05TKQogICAgIHZv
aWQgc2ltdWxhdGVLZXlib2FyZEludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYsIEtleWJvYXJkSW50
ZXJhY3Rpb24sIFdURjo6VmFyaWFudDxWaXJ0dWFsS2V5LCBDaGFyS2V5PiYmLCBBdXRvbWF0aW9u
Q29tcGxldGlvbkhhbmRsZXImJikgZmluYWw7CiAjZW5kaWYKLSAgICB2b2lkIHZpZXdwb3J0SW5W
aWV3Q2VudGVyUG9pbnRPZkVsZW1lbnQoV2ViUGFnZVByb3h5JiwgdWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBGdW5jdGlvbjx2b2lkIChPcHRpb25hbDxXZWJDb3Jl
OjpJbnRQb2ludD4sIE9wdGlvbmFsPEF1dG9tYXRpb25Db21tYW5kRXJyb3I+KT4mJikgZmluYWw7
CisgICAgdm9pZCB2aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVtZW50KFdlYlBhZ2VQcm94
eSYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBG
dW5jdGlvbjx2b2lkIChPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIE9wdGlvbmFsPEF1dG9t
YXRpb25Db21tYW5kRXJyb3I+KT4mJikgZmluYWw7CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCRFJJ
VkVSX0FDVElPTlNfQVBJKQogCkBAIC0yMjAsMTQgKzIyMSwxNCBAQCBwcml2YXRlOgogICAgIFJl
ZjxJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpCcm93c2luZ0NvbnRleHQ+IGJ1aWxk
QnJvd3NpbmdDb250ZXh0Rm9yUGFnZShXZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpGbG9hdFJlY3Qg
d2luZG93RnJhbWUpOwogICAgIHZvaWQgZ2V0TmV4dENvbnRleHQoUmVmPFdlYkF1dG9tYXRpb25T
ZXNzaW9uPiYmLCBWZWN0b3I8UmVmPFdlYlBhZ2VQcm94eT4+JiYsIFJlZjxKU09OOjpBcnJheU9m
PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkJyb3dzaW5nQ29udGV4dD4+LCBSZWY8
V2ViQXV0b21hdGlvblNlc3Npb246OkdldEJyb3dzaW5nQ29udGV4dHNDYWxsYmFjaz4mJik7CiAK
LSAgICBPcHRpb25hbDx1aW50NjRfdD4gd2ViRnJhbWVJREZvckhhbmRsZShjb25zdCBTdHJpbmcm
KTsKLSAgICBTdHJpbmcgaGFuZGxlRm9yV2ViRnJhbWVJRCh1aW50NjRfdCBmcmFtZUlEKTsKKyAg
ICBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IHdlYkZyYW1lSURGb3JIYW5kbGUo
Y29uc3QgU3RyaW5nJiwgYm9vbCYgZnJhbWVOb3RGb3VuZCk7CisgICAgU3RyaW5nIGhhbmRsZUZv
cldlYkZyYW1lSUQoT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPik7CiAgICAgU3Ry
aW5nIGhhbmRsZUZvcldlYkZyYW1lUHJveHkoY29uc3QgV2ViRnJhbWVQcm94eSYpOwogCiAgICAg
dm9pZCB3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVPblBhZ2UoV2ViUGFnZVByb3h5JiwgSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6UGFnZUxvYWRTdHJhdGVneSwgU2Vjb25kcywg
UmVmPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4mJik7CiAgICAg
dm9pZCB3YWl0Rm9yTmF2aWdhdGlvblRvQ29tcGxldGVPbkZyYW1lKFdlYkZyYW1lUHJveHkmLCBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpQYWdlTG9hZFN0cmF0ZWd5LCBTZWNvbmRz
LCBSZWY8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPiYmKTsKICAg
ICB2b2lkIHJlc3BvbmRUb1BlbmRpbmdQYWdlTmF2aWdhdGlvbkNhbGxiYWNrc1dpdGhUaW1lb3V0
KEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tl
bmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiYpOwotICAgIHZvaWQgcmVzcG9uZFRvUGVuZGlu
Z0ZyYW1lTmF2aWdhdGlvbkNhbGxiYWNrc1dpdGhUaW1lb3V0KEhhc2hNYXA8dWludDY0X3QsIFJl
ZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiYpOworICAg
IHZvaWQgcmVzcG9uZFRvUGVuZGluZ0ZyYW1lTmF2aWdhdGlvbkNhbGxiYWNrc1dpdGhUaW1lb3V0
KEhhc2hNYXA8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNr
ZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4mKTsKICAgICB2b2lkIGxvYWRUaW1lckZpcmVk
KCk7CiAKICAgICB2b2lkIGV4aXRGdWxsc2NyZWVuV2luZG93Rm9yUGFnZShXZWJQYWdlUHJveHkm
LCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CkBAIC0yODQsMTMgKzI4NSwxMyBA
QCBwcml2YXRlOgogICAgIEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFN0cmluZz4g
bV93ZWJQYWdlSGFuZGxlTWFwOwogICAgIEhhc2hNYXA8U3RyaW5nLCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllcj4gbV9oYW5kbGVXZWJQYWdlTWFwOwogCi0gICAgSGFzaE1hcDx1aW50NjRfdCwgU3Ry
aW5nPiBtX3dlYkZyYW1lSGFuZGxlTWFwOwotICAgIEhhc2hNYXA8U3RyaW5nLCB1aW50NjRfdD4g
bV9oYW5kbGVXZWJGcmFtZU1hcDsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgU3RyaW5nPiBtX3dlYkZyYW1lSGFuZGxlTWFwOworICAgIEhhc2hNYXA8U3RyaW5nLCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXI+IG1faGFuZGxlV2ViRnJhbWVNYXA7CiAKICAgICBIYXNoTWFw
PFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0
Y2hlcjo6Q2FsbGJhY2tCYXNlPj4gbV9wZW5kaW5nTm9ybWFsTmF2aWdhdGlvbkluQnJvd3NpbmdD
b250ZXh0Q2FsbGJhY2tzUGVyUGFnZTsKICAgICBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4g
bV9wZW5kaW5nRWFnZXJOYXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJQYWdl
OwotICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRj
aGVyOjpDYWxsYmFja0Jhc2U+PiBtX3BlbmRpbmdOb3JtYWxOYXZpZ2F0aW9uSW5Ccm93c2luZ0Nv
bnRleHRDYWxsYmFja3NQZXJGcmFtZTsKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8SW5z
cGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4gbV9wZW5kaW5nRWFnZXJO
YXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJGcmFtZTsKKyAgICBIYXNoTWFw
PFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3Bh
dGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGluZ05vcm1hbE5hdmlnYXRpb25JbkJyb3dzaW5n
Q29udGV4dENhbGxiYWNrc1BlckZyYW1lOworICAgIEhhc2hNYXA8V2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNl
Pj4gbV9wZW5kaW5nRWFnZXJOYXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJG
cmFtZTsKICAgICBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBSZWZQdHI8SW5zcGVj
dG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4gbV9wZW5kaW5nSW5zcGVjdG9y
Q2FsbGJhY2tzUGVyUGFnZTsKICNpZiBFTkFCTEUoV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNU
SU9OUykKICAgICBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBGdW5jdGlvbjx2b2lk
KE9wdGlvbmFsPEF1dG9tYXRpb25Db21tYW5kRXJyb3I+KT4+IG1fcGVuZGluZ0tleWJvYXJkRXZl
bnRzRmx1c2hlZENhbGxiYWNrc1BlclBhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVUlEZWxlZ2F0ZS5tbQppbmRleCBhNTFhMjIzNjIzODQxNTFhYjExZDQ4OTQzNjlmOGExODU4
MDA2N2RhLi4zMDJmNjgyMjgyYmNjN2VlMzhkM2Y2NzI3ZDZkMjNmODRiMjg5ZGE4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAgLTEwMzIsNyArMTAz
Miw3IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmNoZWNrVXNlck1lZGlhUGVybWlzc2lv
bkZvck9yaWdpbihXZWJQYWdlUHJveHkmIHBhZ2UsCiAgICAgVVJMIHJlcXVlc3RGcmFtZVVSTCB7
IFVSTCgpLCBmcmFtZS51cmwoKSB9OwogICAgIFVSTCBtYWluRnJhbWVVUkwgeyBVUkwoKSwgbWFp
bkZyYW1lLT51cmwoKSB9OwogCi0gICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdh
dGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Np
b25Gb3JVUkw6cmVxdWVzdEZyYW1lVVJMIG1haW5GcmFtZVVSTDptYWluRnJhbWVVUkwgZnJhbWVJ
ZGVudGlmaWVyOmZyYW1lLmZyYW1lSUQoKSBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVy
LmdldCgpXTsKKyAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmll
dzptX3VpRGVsZWdhdGUubV93ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDpy
ZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6
ZnJhbWUuZnJhbWVJRCgpLnRvVUludDY0KCkgZGVjaXNpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxl
ci5nZXQoKV07CiB9CiAKIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6Om1lZGlhQ2FwdHVyZVN0
YXRlRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dLUmVsb2FkRnJh
bWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW0KaW5kZXggODRkMjBjNGNl
OGIxZjAwMTdlMWJhNzdiOWQwZGY0ZjEwMTM4YTkwMC4uOWM0MDkyZWZkNDM2ZDAyMjQwYjgwNmEy
YzI0MGY2NDM2ZDJlZGI1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIu
bW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIldlYkZyYW1lUHJveHkuaCIKICNpbXBvcnQg
IldlYlBhZ2VQcm94eS5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW1wb3J0IDxX
ZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2lt
cG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+CiAKQEAgLTYyLDggKzYzLDcgQEAgLSAoQk9PTClhdHRl
bXB0UmVjb3ZlcnkKICAgICBpZiAoIXdlYlZpZXcpCiAgICAgICAgIHJldHVybiBOTzsKIAotICAg
IHVpbnQ2NF90IGZyYW1lSUQgPSBbX2ZyYW1lSGFuZGxlIF9mcmFtZUlEXTsKLSAgICBXZWJLaXQ6
OldlYkZyYW1lUHJveHkqIHdlYkZyYW1lUHJveHkgPSB3ZWJWaWV3LT5fcGFnZS0+cHJvY2Vzcygp
LndlYkZyYW1lKGZyYW1lSUQpOworICAgIFdlYktpdDo6V2ViRnJhbWVQcm94eSogd2ViRnJhbWVQ
cm94eSA9IHdlYlZpZXctPl9wYWdlLT5wcm9jZXNzKCkud2ViRnJhbWUoV2ViQ29yZTo6ZnJhbWVJ
ZGVudGlmaWVyRnJvbUlEKFtfZnJhbWVIYW5kbGUgX2ZyYW1lSURdKSk7CiAgICAgaWYgKCF3ZWJG
cmFtZVByb3h5KQogICAgICAgICByZXR1cm4gTk87CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KaW5kZXggYTFhZjk4ZDIxMDkzZTVh
ZWVlOGIzZDQ4MGI4MTYxZmUyNmU5ZWE1MS4uZDk2MTM5MThmNzVmYTVlOGRmNTgzNGYyNTI0NDM4
ZTA2ZTk4NmI5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
UGFnZVByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
UGFnZVByb3h5Q29jb2EubW0KQEAgLTEwMSwxMiArMTAxLDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpiZWdpblNhZmVCcm93c2luZ0NoZWNrKGNvbnN0IFVSTCYgdXJsLCBib29sIGZvck1haW5GcmFt
ZU5hdmlnCiB9CiAKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCi12b2lkIFdlYlBhZ2VQ
cm94eTo6Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKGNvbnN0IFdlYkNvcmU6OkNv
bnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYgdW5ibG9ja0hhbmRsZXIsIHVpbnQ2NF90IGZyYW1l
SUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1l
KGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYgdW5ibG9ja0hhbmRs
ZXIsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIGNvbnRlbnRGaWx0ZXJEaWRCbG9j
a0xvYWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCB1bmJsb2NrSGFuZGxlciwg
ZnJhbWVJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tM
b2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBjb25zdCBX
ZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIHVuYmxvY2tIYW5kbGVyLCB1aW50
NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xv
YWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIGNvbnN0IFdl
YkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYgdW5ibG9ja0hhbmRsZXIsIEZyYW1l
SWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIGlmIChXZWJGcmFtZVByb3h5KiBmcmFtZSA9IHBy
b2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpKQogICAgICAgICBmcmFtZS0+Y29udGVudEZpbHRlckRp
ZEJsb2NrTG9hZCh1bmJsb2NrSGFuZGxlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA5NGZhZjZiOWRl
MjYyMDFkODRkMjZmZjgzOTMzZjgyMjljMDVkNmI5Li45MWVjZTFmMGRhZmZlM2VhNjNhZGJjMGQ5
MWVhYzRkMTgxMTEzMDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTMxMiw3ICszMTIsNyBAQCB2b2lk
IE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZENyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzKGNvbnN0IElQQzo6QXR0YQogI2VuZGlmCiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94
eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmJiBj
b3JlQ2hhbGxlbmdlLCB1aW50NjRfdCBjaGFsbGVuZ2VJRCkKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQ
cm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlJiYgY29yZUNoYWxsZW5nZSwgdWludDY0X3QgY2hhbGxlbmdlSUQpCiB7CiAjaWYgRU5B
QkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIGlmIChhdXRvKiBzZXJ2aWNlV29ya2VyUHJvY2Vzc1By
b3h5ID0gbV9wcm9jZXNzUG9vbC5zZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5RnJvbVBhZ2VJRChw
YWdlSUQpKSB7CkBAIC03MzcsNyArNzM3LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpz
ZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXMKICAg
ICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRHcmFuZGZh
dGhlcmVkKHNlc3Npb25JRCwgcmVzb3VyY2VEb21haW4sIGlzR3JhbmRmYXRoZXJlZCksIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpy
ZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oUGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6
cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFp
biwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlBhZ2VQcm94
eSogcGFnZSA9IFdlYlByb2Nlc3NQcm94eTo6d2ViUGFnZShwYWdlSUQpOwogICAgIGlmICghcGFn
ZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuaAppbmRleCA0MzM1NDVjMGUzM2ZhYWVlZDlkZWJiMzRmNmIyMGNmY2FlNWU5
NWM4Li40MGY4MWRlOWI0N2YxOTIyMTkwMjZhNmU4YTA3YjJhNWUyZDZhOTkwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
aApAQCAtODIsNyArODIsNiBAQCBwdWJsaWM6CiAgICAgdXNpbmcgTmF2aWdhdGVkVG9Eb21haW4g
PSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKICAgICB1c2luZyBEb21haW5Jbk5lZWRPZlN0
b3JhZ2VBY2Nlc3MgPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKICAgICB1c2luZyBPcGVu
ZXJEb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKLSAgICB1c2luZyBGcmFtZUlE
ID0gdWludDY0X3Q7CiAKICAgICBleHBsaWNpdCBOZXR3b3JrUHJvY2Vzc1Byb3h5KFdlYlByb2Nl
c3NQb29sJik7CiAgICAgfk5ldHdvcmtQcm9jZXNzUHJveHkoKTsKQEAgLTEzMCw3ICsxMjksNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShQQUw6
OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0VmVyeVByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lv
bklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CiAgICAgdm9pZCBnZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcyhQQUw6OlNlc3Npb25JRCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiBkb21haW5zKT4mJik7Ci0gICAg
dm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IEZyYW1lSUQsIGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdl
QWNjZXNzQ29uZmlybShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCByZXNldFBhcmFtZXRlcnNU
b0RlZmF1bHRWYWx1ZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CiAgICAgdm9pZCBzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFBBTDo6U2Vz
c2lvbklELCBTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3MsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CiAgICAgdm9pZCBzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFBB
TDo6U2Vzc2lvbklELCBPcHRpb25hbDxXYWxsVGltZT4gbW9kaWZpZWRTaW5jZSwgU2hvdWxkR3Jh
bmRmYXRoZXJTdGF0aXN0aWNzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpAQCAtMjEz
LDcgKzIxMiw3IEBAIHByaXZhdGU6CiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycwogICAgIHZvaWQg
ZGlkUmVjZWl2ZU5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpOwogICAgIHZvaWQgZGlkQ3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MoY29uc3QgSVBDOjpBdHRhY2htZW50Jik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1l
SUQsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYsIHVpbnQ2NF90IGNoYWxsZW5n
ZUlEKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSYmLCB1aW50NjRfdCBjaGFsbGVuZ2VJRCk7CiAgICAgdm9pZCBk
aWRGZXRjaFdlYnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFdlYnNpdGVEYXRh
Jik7CiAgICAgdm9pZCBkaWREZWxldGVXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lEKTsK
ICAgICB2b2lkIGRpZERlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyh1aW50NjRfdCBjYWxsYmFj
a0lEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCAxMWQ4YzVkZWUxZGJhODFm
OGY2M2Y3ZDk0OGVmNjYxNjE5ODFkMTM0Li5iZmFmOWYwNDk2ZTU2YTliOTMxZWY2ZmY3NzUxYzNh
Y2Y1ZDEzOWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0yMyw3ICsyMyw3
IEBACiBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAg
ICBEaWRDcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhJUEM6OkF0dGFjaG1lbnQg
Y29ubmVjdGlvbklkZW50aWZpZXIpCiAKLSAgICBEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBX
ZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjaGFsbGVuZ2UsIHVpbnQ2NF90IGNoYWxs
ZW5nZUlEKQorICAgIERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBX
ZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjaGFsbGVuZ2UsIHVpbnQ2NF90IGNoYWxs
ZW5nZUlEKQogCiAgICAgRGlkRmV0Y2hXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lELCBz
dHJ1Y3QgV2ViS2l0OjpXZWJzaXRlRGF0YSB3ZWJzaXRlRGF0YSkKICAgICBEaWREZWxldGVXZWJz
aXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lEKQpAQCAtNDgsNyArNDgsNyBAQCBtZXNzYWdlcyAt
PiBOZXR3b3JrUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBOb3RpZnlXZWJzaXRl
RGF0YURlbGV0aW9uRm9yUmVnaXN0cmFibGVEb21haW5zRmluaXNoZWQoKQogICAgIE5vdGlmeVdl
YnNpdGVEYXRhU2NhbkZvclJlZ2lzdHJhYmxlRG9tYWluc0ZpbmlzaGVkKCkKICAgICBOb3RpZnlS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVsZW1ldHJ5RmluaXNoZWQodW5zaWduZWQgdG90YWxQcmV2
YWxlbnRSZXNvdXJjZXMsIHVuc2lnbmVkIHRvdGFsUHJldmFsZW50UmVzb3VyY2VzV2l0aFVzZXJJ
bnRlcmFjdGlvbiwgdW5zaWduZWQgdG9wM1N1YmZyYW1lVW5kZXJUb3BGcmFtZU9yaWdpbnMpCi0g
ICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3ViRnJh
bWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluKSAtPiAo
Ym9vbCB1c2VyRGlkR3JhbnRBY2Nlc3MpIEFzeW5jCisgICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3ND
b25maXJtKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkZyYW1lRG9tYWlu
LCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbikgLT4gKGJvb2wgdXNl
ckRpZEdyYW50QWNjZXNzKSBBc3luYwogICAgIERlbGV0ZVdlYnNpdGVEYXRhSW5VSVByb2Nlc3NG
b3JSZWdpc3RyYWJsZURvbWFpbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8
V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgT3B0aW9uU2V0PFdlYktpdDo6V2Vi
c2l0ZURhdGFGZXRjaE9wdGlvbj4gZmV0Y2hPcHRpb25zLCBWZWN0b3I8V2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4+IGRvbWFpbnMpIC0+IChIYXNoU2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluPiBkb21haW5zV2l0aE1hdGNoaW5nRGF0YVJlY29yZHMpIEFzeW5jCiAgICAgRGlkQ29tbWl0
Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXJGcm9tUHJldmFsZW50UmVzb3VyY2UoV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKaW5kZXggNjY2ZmJkM2RhMTBmYjVkNTlh
ZjIxMDUyN2EzYzE1NDVjMTQ4MTNlMi4uZDdmMGMzYzk1MDI3NGRlOGUwYTk1Y2I4NWFkYzI3NjU1
OGY3MmQ5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQ
YWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFn
ZVByb3h5LmNwcApAQCAtMTc2LDcgKzE3Niw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6
OmdvVG9CYWNrRm9yd2FyZEl0ZW0oQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBXZWJCCiAg
ICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQoKTsKIH0KIAotaW5saW5l
IGJvb2wgUHJvdmlzaW9uYWxQYWdlUHJveHk6OnZhbGlkYXRlSW5wdXQodWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgT3B0aW9uYWw8dWludDY0X3Q+JiBuYXZpZ2F0aW9uSUQpCitpbmxpbmUgYm9vbCBQ
cm92aXNpb25hbFBhZ2VQcm94eTo6dmFsaWRhdGVJbnB1dChGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgY29uc3QgT3B0aW9uYWw8dWludDY0X3Q+JiBuYXZpZ2F0aW9uSUQpCiB7CiAgICAgLy8gSWYg
dGhlIHByZXZpb3VzIHByb3Zpc2lvbmFsIGxvYWQgdXNlZCBhbiBleGlzdGluZyBwcm9jZXNzLCB3
ZSBtYXkgcmVjZWl2ZSBsZWZ0b3ZlciBJUEMgZm9yIGEgcHJldmlvdXMgbmF2aWdhdGlvbiwgd2hp
Y2ggd2UgbmVlZCB0byBpZ25vcmUuCiAgICAgaWYgKCFtX21haW5GcmFtZSB8fCBtX21haW5GcmFt
ZS0+ZnJhbWVJRCgpICE9IGZyYW1lSUQpCkBAIC0xODUsOSArMTg1LDkgQEAgaW5saW5lIGJvb2wg
UHJvdmlzaW9uYWxQYWdlUHJveHk6OnZhbGlkYXRlSW5wdXQodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgT3B0aW9uYWwKICAgICByZXR1cm4gIW5hdmlnYXRpb25JRCB8fCAhKm5hdmlnYXRpb25JRCB8
fCAqbmF2aWdhdGlvbklEID09IG1fbmF2aWdhdGlvbklEOwogfQogCi12b2lkIFByb3Zpc2lvbmFs
UGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgUHJv
dmlzaW9uYWxQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZShGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgImRp
ZENyZWF0ZU1haW5GcmFtZTogcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQsIG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgImRpZENyZWF0ZU1haW5GcmFtZTogcGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcGFnZS5wYWdlSUQoKS50b1VJ
bnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCkpOwogICAgIEFTU0VSVCghbV9tYWluRnJhbWUpOwog
CiAgICAgbV9tYWluRnJhbWUgPSBXZWJGcmFtZVByb3h5OjpjcmVhdGUobV9wYWdlLCBmcmFtZUlE
KTsKQEAgLTIxMiw3ICsyMTIsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDcmVh
dGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJRCkKICAgICB9CiB9CiAKLXZvaWQgUHJvdmlzaW9u
YWxQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0X3Qg
ZnJhbWVJRCkKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRp
cmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5h
dGlvblVSTFN0cmluZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgaWYgKCF2YWxp
ZGF0ZUlucHV0KGZyYW1lSUQpKQogICAgICAgICByZXR1cm47CkBAIC0yMjAsMTIgKzIyMCwxMiBA
QCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29u
c3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbgogICAgIG1fcGFnZS5kaWRQZXJmb3JtQ2xpZW50UmVk
aXJlY3RTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgc291cmNlVVJMU3RyaW5nLCBkZXN0aW5h
dGlvblVSTFN0cmluZywgZnJhbWVJRCk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6
OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwsIFVSTCYmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBV
c2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRTdGFydFBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIFVSTCYmIHVybCwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJE
YXRhJiB1c2VyRGF0YSkKIHsKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCwgbmF2aWdh
dGlvbklEKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQ
cm9jZXNzU3dhcHBpbmcsICJkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiBwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9uSUQgPSAlIiBQ
Ukl1NjQsIG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQp
OworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2Vzc1N3YXBwaW5nLCAiZGlkU3RhcnRQ
cm92aXNpb25hbExvYWRGb3JGcmFtZTogcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAl
IiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEID0gJSIgUFJJdTY0LCBtX3BhZ2UucGFnZUlEKCkudG9V
SW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpLCBuYXZpZ2F0aW9uSUQpOwogICAgIEFTU0VSVCht
X3Byb3Zpc2lvbmFsTG9hZFVSTC5pc051bGwoKSk7CiAgICAgbV9wcm92aXNpb25hbExvYWRVUkwg
PSB1cmw7CiAKQEAgLTI0MCwxMiArMjQwLDEyIEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6
OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWluCiAg
ICAgbV9wYWdlLmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQobV9wcm9jZXNz
LmNvcHlSZWYoKSwgZnJhbWVJRCwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKHVybCksIFdURk1vdmUo
dW5yZWFjaGFibGVVUkwpLCB1c2VyRGF0YSk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJv
eHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IsIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcg
d2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBQcm92
aXNpb25hbFBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1l
U2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92
aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IsIFdlYkNvcmU6
OldpbGxDb250aW51ZUxvYWRpbmcgd2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEm
IHVzZXJEYXRhKQogewogICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlELCBuYXZpZ2F0aW9u
SUQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VE
KFByb2Nlc3NTd2FwcGluZywgImRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZTogcGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEID0gJSIg
UFJJdTY0LCBtX3BhZ2UucGFnZUlEKCkudG9VSW50NjQoKSwgZnJhbWVJRCwgbmF2aWdhdGlvbklE
KTsKKyAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgImRp
ZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZTogcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEID0gJSIgUFJJdTY0LCBtX3BhZ2UucGFnZUlE
KCkudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpLCBuYXZpZ2F0aW9uSUQpOwogICAgIEFT
U0VSVCghbV9wcm92aXNpb25hbExvYWRVUkwuaXNOdWxsKCkpOwogICAgIG1fcHJvdmlzaW9uYWxM
b2FkVVJMID0geyB9OwogCkBAIC0yNTYsMTIgKzI1NiwxMiBAQCB2b2lkIFByb3Zpc2lvbmFsUGFn
ZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
Y29ucwogICAgIG1fcGFnZS5kaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQobV9w
cm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0eU9yaWdpbiwgbmF2aWdhdGlv
bklELCBwcm92aXNpb25hbFVSTCwgZXJyb3IsIHdpbGxDb250aW51ZUxvYWRpbmcsIHVzZXJEYXRh
KTsgLy8gTWF5IGRlbGV0ZSB8dGhpc3wuCiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6
OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50
UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmlj
YXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9w
dGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250
ZW50LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5
OjpkaWRDb21taXRMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3Rv
bUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6
Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1
bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNl
Y3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBpZiAoIXZhbGlk
YXRlSW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICJkaWRDb21taXRMb2FkRm9y
RnJhbWU6IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIG5hdmln
YXRpb25JRCA9ICUiIFBSSXU2NCwgbV9wYWdlLnBhZ2VJRCgpLnRvVUludDY0KCksIGZyYW1lSUQs
IG5hdmlnYXRpb25JRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBp
bmcsICJkaWRDb21taXRMb2FkRm9yRnJhbWU6IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0ICIsIG5hdmlnYXRpb25JRCA9ICUiIFBSSXU2NCwgbV9wYWdlLnBhZ2VJRCgp
LnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSwgbmF2aWdhdGlvbklEKTsKICAgICBtX3By
b3Zpc2lvbmFsTG9hZFVSTCA9IHsgfTsKICAgICBtX3Byb2Nlc3MtPnJlbW92ZU1lc3NhZ2VSZWNl
aXZlcihNZXNzYWdlczo6V2ViUGFnZVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFn
ZS5wYWdlSUQoKSk7CiAKQEAgLTI2OSw3ICsyNjksNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVBy
b3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2
aQogICAgIG1fcGFnZS5jb21taXRQcm92aXNpb25hbFBhZ2UoZnJhbWVJRCwgbmF2aWdhdGlvbklE
LCBtaW1lVHlwZSwgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIGZyYW1lTG9hZFR5cGUs
IGNlcnRpZmljYXRlSW5mbywgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgZm9yY2VkSGFzSW5zZWN1
cmVDb250ZW50LCB1c2VyRGF0YSk7IC8vIFdpbGwgZGVsZXRlIHx0aGlzfC4KIH0KIAotdm9pZCBQ
cm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29uc3Qg
V2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYgc3RvcmUsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFBy
b3Zpc2lvbmFsUGFnZVByb3h5OjpkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShjb25zdCBX
ZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiBzdG9yZSwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7
CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQpKQogICAgICAgICByZXR1cm47CkBAIC0y
NzcsNyArMjc3LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRo
TmF2aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdhdGlvbkRhdGEKICAgICBtX3BhZ2UuZGlkTmF2
aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgc3RvcmUs
IGZyYW1lSUQpOwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92
aXNpb25hbFVSTEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgVVJMJiYgdXJsKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlz
aW9uYWxVUkxGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBVUkwmJiB1cmwpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5h
dmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKQEAgLTI4NSw3ICsyODUsNyBAQCB2b2lkIFBy
b3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIHVpbgogICAgIG1fcGFnZS5kaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZy
YW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgV1RG
TW92ZSh1cmwpKTsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNr
SWRlbnRpZmllciBpZGVudGlmaWVyLAordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3Jl
OjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKICAgICB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1l
SW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gb3JpZ2lu
YXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1
ZXN0LAogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9ybURh
dGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJl
ZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVu
ZXJJRCkKIHsKQEAgLTI5Niw3ICsyOTYsNyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmModWludDY0X3QgZnJhbWVJRAogICAg
ICAgICBXVEZNb3ZlKGZyYW1lSW5mb0RhdGEpLCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxS
ZXF1ZXN0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92ZShy
ZWRpcmVjdFJlc3BvbnNlKSwgdXNlckRhdGEsIGxpc3RlbmVySUQpOwogfQogCi12b2lkIFByb3Zp
c2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4s
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAordm9pZCBQcm92aXNp
b25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9y
aWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCiAgICAgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBib29sIGNhblNo
b3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlz
dGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIGlmICghdmFsaWRhdGVJ
bnB1dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQpKQpAQCAtMzA1LDcgKzMwNSw3IEBAIHZvaWQgUHJv
dmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFdlYkNvCiAgICAgbV9wYWdlLmRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVk
KG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIGlkZW50
aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2UsIHJlcXVlc3QsIGNhblNob3dNSU1FVHlwZSwg
ZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVySUQsIHVzZXJEYXRhKTsKIH0KIAotdm9pZCBQcm92
aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmluZyYg
c291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50
NjRfdCBmcmFtZUlEKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZl
clJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRl
c3RpbmF0aW9uVVJMU3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBpZiAo
IXZhbGlkYXRlSW5wdXQoZnJhbWVJRCkpCiAgICAgICAgIHJldHVybjsKQEAgLTMxMyw3ICszMTMs
NyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3Qo
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbgogICAgIG1fcGFnZS5kaWRQZXJmb3JtU2VydmVy
UmVkaXJlY3RTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgc291cmNlVVJMU3RyaW5nLCBkZXN0
aW5hdGlvblVSTFN0cmluZywgZnJhbWVJRCk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJv
eHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBQcm92aXNp
b25hbFBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhKQogewogICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQpKQog
ICAgICAgICByZXR1cm47CkBAIC0zMzEsNyArMzMxLDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQ
cm94eTo6YmFja0ZvcndhcmRHb1RvSXRlbShjb25zdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1J
ZGUKICAgICBtX3BhZ2UuYmFja0ZvcndhcmRHb1RvSXRlbVNoYXJlZChtX3Byb2Nlc3MuY29weVJl
ZigpLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQg
UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5j
KHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciBpZGVudGlmaWVyLAordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wgaXNN
YWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmln
aW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAogICAgIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9u
RGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFBhZ2VJZGVudGlm
aWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwKICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwg
SVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwKICAgICBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEs
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25T
eW5jOjpEZWxheWVkUmVwbHkmJiByZXBseSkKQEAgLTM2Niw3ICszNjYsNyBAQCB2b2lkIFByb3Zp
c2lvbmFsUGFnZVByb3h5OjpyZWdpc3RlcldlYlByb2Nlc3NBY2Nlc3NpYmlsaXR5VG9rZW4oY29u
c3QgSVBDOjpEYXRhUgogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCi12
b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJh
bWUoY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiB1bmJsb2NrSGFu
ZGxlciwgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmNvbnRl
bnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVy
VW5ibG9ja0hhbmRsZXImIHVuYmxvY2tIYW5kbGVyLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkK
IHsKICAgICBtX3BhZ2UuY29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hhcmVkKG1f
cHJvY2Vzcy5jb3B5UmVmKCksIHVuYmxvY2tIYW5kbGVyLCBmcmFtZUlEKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCmluZGV4IDMzMzIxNmEy
Y2M3ODU2NjcxNjMyNGFiMDZmZjFiM2I5NjA4MGMwYmUuLmRlM2VlNjg3ZmE3ZDgxNzUwYjU4ZmVk
YTU4NDU4M2ZkMWYxZTJkNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1By
b3Zpc2lvbmFsUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlz
aW9uYWxQYWdlUHJveHkuaApAQCAtOTIsMjMgKzkyLDIzIEBAIHByaXZhdGU6CiAgICAgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsK
ICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIGZpbmFsOwogCi0gICAgdm9p
ZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmModWludDY0X3QgZnJhbWVJRCwg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBGcmFt
ZUluZm9EYXRhJiYsCisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5
bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiwKICAgICAgICAgT3B0aW9u
YWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKICAgICAgICAg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJE
YXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNw
b25zZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsCisgICAgdm9pZCBkZWNpZGVQb2xpY3lG
b3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwKICAgICAgICAg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNv
bnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0
IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOwotICAgIHZvaWQg
ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBj
b25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKTsKLSAg
ICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWROYXZpZ2F0ZVdpdGhO
YXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiwgdWludDY0X3QgZnJh
bWVJRCk7Ci0gICAgdm9pZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgU3RyaW5nJiBz
b3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2
NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkQ3JlYXRlTWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQpOwotICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmLCBVUkwmJiB1bnJlYWNoYWJsZVVS
TCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5
cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9h
ZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYsIGJvb2wgY29udGFpbnNQbHVn
aW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRI
YXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRGYWlsUHJv
dmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
RXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYpOwor
ICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOworICAgIHZvaWQgZGlkUGVy
Zm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBT
dHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwor
ICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkTmF2
aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJl
Y3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRp
b25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRDcmVh
dGVNYWluRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZFN0YXJ0
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIFVSTCYmLCBVUkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRh
dGEmKTsKKyAgICB2b2lkIGRpZENvbW1pdExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9v
bCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwg
Y29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiwgYm9vbCBjb250YWluc1BsdWdpbkRvY3Vt
ZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2Vj
dXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZEZhaWxQcm92aXNpb25h
bExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJiwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEmKTsK
ICAgICB2b2lkIHN0YXJ0VVJMU2NoZW1lVGFzayhVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmKTsK
ICAgICB2b2lkIGJhY2tGb3J3YXJkR29Ub0l0ZW0oY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJ
dGVtSWRlbnRpZmllciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlJiYpPiYmKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25T
eW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKKyAgICB2b2lkIGRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBp
c01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGlj
eUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9u
RGF0YSYmLAogICAgICAgICBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZv
cm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVk
UmVwbHkmJik7CiAjaWYgVVNFKFFVSUNLX0xPT0spCkBAIC0xMTgsMTEgKzExOCwxMSBAQCBwcml2
YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJXZWJQcm9jZXNzQWNjZXNzaWJpbGl0eVRva2VuKGNvbnN0
IElQQzo6RGF0YVJlZmVyZW5jZSYpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVS
SU5HKQotICAgIHZvaWQgY29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKGNvbnN0IFdl
YkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYsIHVpbnQ2NF90IGZyYW1lSUQpOwor
ICAgIHZvaWQgY29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKGNvbnN0IFdlYkNvcmU6
OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7
CiAjZW5kaWYKIAogICAgIHZvaWQgaW5pdGlhbGl6ZVdlYlBhZ2UoKTsKLSAgICBib29sIHZhbGlk
YXRlSW5wdXQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgT3B0aW9uYWw8dWludDY0X3Q+JiBuYXZp
Z2F0aW9uSUQgPSBXVEY6Om51bGxvcHQpOworICAgIGJvb2wgdmFsaWRhdGVJbnB1dChXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IE9wdGlvbmFsPHVpbnQ2NF90PiYgbmF2aWdhdGlvbklE
ID0gV1RGOjpudWxsb3B0KTsKIAogICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdlOwogICAgIFJlZjxX
ZWJQcm9jZXNzUHJveHk+IG1fcHJvY2VzczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHAKaW5kZXggYjJmNzcyOWZkMzkzNWY3
MmUxYmM5MTE1YTMwYTE4ZjY0ZTM5ZmQyNS4uZjc4YTdjMzg2Yzg5NTkwMTE1NmI1NjhhYWY5OGJh
YjIzYjA4MDZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdv
cmtlclByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2Vydmlj
ZVdvcmtlclByb2Nlc3NQcm94eS5jcHAKQEAgLTkwLDcgKzkwLDcgQEAgdm9pZCBTZXJ2aWNlV29y
a2VyUHJvY2Vzc1Byb3h5Ojp1cGRhdGVQcmVmZXJlbmNlc1N0b3JlKGNvbnN0IFdlYlByZWZlcmVu
Y2VzU3RvcmUKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bjo6VXBkYXRlUHJlZmVyZW5jZXNTdG9yZSB7IHN0b3JlIH0sIDApOwogfQogCi12b2lkIFNlcnZp
Y2VXb3JrZXJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZVByb3h5PiYmIGNoYWxsZW5nZSkKK3ZvaWQgU2VydmljZVdvcmtlclByb2Nlc3NQ
cm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZVByb3h5PiYmIGNoYWxsZW5nZSkKIHsKICAgICBVTlVTRURfUEFSQU0ocGFnZUlEKTsKICAgICBV
TlVTRURfUEFSQU0oZnJhbWVJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgKaW5kZXggZTkzNjVhZmFjNGY0N2Q3ZmQ3NDdmOTg5
ODNhZDk5OTBlOGFiOTc1NS4uN2Q4ODc2MDVlZWEwYjY0NzlkNjk3NjkxYWJiNTUyODA3ZGUyMTg0
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nl
c3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9j
ZXNzUHJveHkuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgYm9vbCBo
YXNSZWdpc3RlcmVkU2VydmljZVdvcmtlcnMoY29uc3QgU3RyaW5nJiBzZXJ2aWNlV29ya2VyRGly
ZWN0b3J5KTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBSZWY8QXV0aGVudGljYXRp
b25DaGFsbGVuZ2VQcm94eT4mJik7CisgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYpOwogCiAgICAgdm9pZCBzdGFy
dChjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiwgT3B0aW9uYWw8UEFMOjpTZXNzaW9uSUQ+IGlu
aXRpYWxTZXNzaW9uSUQpOwogICAgIHZvaWQgc2V0VXNlckFnZW50KGNvbnN0IFN0cmluZyYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHAKaW5kZXgg
ZjZkM2I1MzZkZjhhYWIxOTdkOTExZWQxNGQyZWE0MGZlZmYyZTFkZC4uYzY0ZDdlZjE5YmQwZGU3
MTE2OTY5OTkyYzA3NjcxZTYxZDgyODNlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TdXNwZW5kZWRQYWdlUHJveHkuY3BwCkBAIC03OCw3ICs3OCw3IEBAIHN0YXRpYyBjb25zdCBI
YXNoU2V0PElQQzo6U3RyaW5nUmVmZXJlbmNlPiYgbWVzc2FnZU5hbWVzVG9JZ25vcmVXaGlsZVN1
c3BlbmRlZCgpCiB9CiAjZW5kaWYKIAotU3VzcGVuZGVkUGFnZVByb3h5OjpTdXNwZW5kZWRQYWdl
UHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3Ms
IHVpbnQ2NF90IG1haW5GcmFtZUlELCBTaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUgc2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKQorU3VzcGVuZGVkUGFnZVByb3h5OjpTdXNwZW5kZWRQ
YWdlUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nl
c3MsIEZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCwgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxF
bnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlIHNob3VsZERlbGF5Q2xvc2luZ1VudGls
RW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSkKICAgICA6IG1fcGFnZShwYWdlKQog
ICAgICwgbV9wcm9jZXNzKFdURk1vdmUocHJvY2VzcykpCiAgICAgLCBtX21haW5GcmFtZUlEKG1h
aW5GcmFtZUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVk
UGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHku
aAppbmRleCAwZGFkMDU0YjI3MmE4MTlkNmUwYjA2Yzc3Y2VkODEyYTI2M2QxMzQwLi45MTY1M2Nj
NzhlYTAwODY2MGIxNGUzMzUwNTUzYWE4OWU3M2QxOTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHkuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUg
IlByb2Nlc3NUaHJvdHRsZXIuaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmgi
CiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Zy
YW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KIApAQCAtNDIsMTIgKzQzLDEyIEBAIGVudW0gY2xhc3MgU2hvdWxkRGVs
YXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlIDogYm9vbCB7
IE5vCiBjbGFzcyBTdXNwZW5kZWRQYWdlUHJveHkgZmluYWw6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VS
ZWNlaXZlciwgcHVibGljIENhbk1ha2VXZWFrUHRyPFN1c3BlbmRlZFBhZ2VQcm94eT4gewogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFN1c3BlbmRlZFBhZ2VQcm94
eShXZWJQYWdlUHJveHkmLCBSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCB1aW50NjRfdCBtYWluRnJh
bWVJRCwgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmdNb2RlKTsKKyAgICBTdXNwZW5kZWRQYWdlUHJveHkoV2ViUGFnZVByb3h5JiwgUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlELCBTaG91
bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOwog
ICAgIH5TdXNwZW5kZWRQYWdlUHJveHkoKTsKIAogICAgIFdlYlBhZ2VQcm94eSYgcGFnZSgpIGNv
bnN0IHsgcmV0dXJuIG1fcGFnZTsgfQogICAgIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcygpIHsg
cmV0dXJuIG1fcHJvY2Vzcy5nZXQoKTsgfQotICAgIHVpbnQ2NF90IG1haW5GcmFtZUlEKCkgY29u
c3QgeyByZXR1cm4gbV9tYWluRnJhbWVJRDsgfQorICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBtYWluRnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbkZyYW1lSUQ7IH0KIAogICAgIGJv
b2wgcGFnZUlzQ2xvc2VkT3JDbG9zaW5nKCkgY29uc3Q7CiAKQEAgLTc0LDcgKzc1LDcgQEAgcHJp
dmF0ZToKIAogICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdlOwogICAgIFJlZjxXZWJQcm9jZXNzUHJv
eHk+IG1fcHJvY2VzczsKLSAgICB1aW50NjRfdCBtX21haW5GcmFtZUlEOworICAgIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBtX21haW5GcmFtZUlEOwogICAgIGJvb2wgbV9pc0Nsb3NlZCB7IGZh
bHNlIH07CiAgICAgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdNb2RlIG1fc2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlIHsgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJh
dGVkQ29tcG9zaXRpbmdNb2RlOjpObyB9OwogICAgIGJvb2wgbV9zaG91bGRDbG9zZVdoZW5FbnRl
cmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmNw
cAppbmRleCBhYjc5MjQwMjllMGVmM2EzYmJhYjc0Y2JhYzAwYzI5N2ZhOTZhM2NhLi40ZmE2ZmRm
NjA4ZDZjMzdlZmVjYjBhNWUwNmMyY2ZkZTUwZWI1ODRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuY3BwCkBA
IC0zMyw3ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCi1Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eTo6VXNlck1lZGlhUGVybWlzc2lv
bkNoZWNrUHJveHkodWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVy
LCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4s
IFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKQor
VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1By
b3h5KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIs
IFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwg
UmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pCiAg
ICAgOiBtX2ZyYW1lSUQoZnJhbWVJRCkKICAgICAsIG1fY29tcGxldGlvbkhhbmRsZXIoV1RGTW92
ZShoYW5kbGVyKSkKICAgICAsIG1fdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbihXVEZN
b3ZlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oCmluZGV4IGRjMzQwOTgx
NzE0YzcyNzkzYzAxMDVkNzgzMzkxYjdmYTk0NTkxOGYuLmU4MGI1MTkxODQxZmRiMjQ2NzU1MTA5
NzI1MDk2NmU5MGI3ZTJhMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaApAQCAtMjYsNiArMjYsNyBAQAogI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Zy
YW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFDb25zdHJhaW50cy5oPgog
I2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgpAQCAtNDEsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBQZXJt
aXNzaW9uSW5mbyB7IEVycm9yLCBVbmtub3duLCBHcmFudGVkIH07CiAgICAgdXNpbmcgQ29tcGxl
dGlvbkhhbmRsZXIgPSBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoUGVybWlzc2lvbkluZm8p
PjsKIAotICAgIHN0YXRpYyBSZWY8VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk+IGNyZWF0
ZSh1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIsIFJlZjxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pCisgICAgc3RhdGlj
IFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eT4gY3JlYXRlKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIsIFJlZjxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pCiAgICAgewogICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eShm
cmFtZUlELCBXVEZNb3ZlKGhhbmRsZXIpLCBXVEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
KSwgV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSkpOwogICAgIH0KQEAgLTUwLDE3ICs1
MSwxNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRVc2VyTWVkaWFBY2Nlc3NJbmZvKGJvb2wpOwog
ICAgIHZvaWQgaW52YWxpZGF0ZSgpIHsgY29tcGxldGUoUGVybWlzc2lvbkluZm86OkVycm9yKTsg
fQogCi0gICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQor
ICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9m
cmFtZUlEOyB9CiAgICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50
U2VjdXJpdHlPcmlnaW4oKSB7IHJldHVybiBtX3VzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmln
aW4uZ2V0KCk7IH0KICAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVu
dFNlY3VyaXR5T3JpZ2luKCkgeyByZXR1cm4gbV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmln
aW4uZ2V0KCk7IH0KICAgICAKIHByaXZhdGU6Ci0gICAgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNr
UHJveHkodWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXImJiwgUmVmPFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7CisgICAgVXNlck1lZGlh
UGVybWlzc2lvbkNoZWNrUHJveHkoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlciYmLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1l
bnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50
T3JpZ2luKTsKICAgICB+VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkoKTsKIAogICAgIHZv
aWQgY29tcGxldGUoUGVybWlzc2lvbkluZm8pOwogICAgIAotICAgIHVpbnQ2NF90IG1fZnJhbWVJ
RDsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbV9mcmFtZUlEOwogICAgIENvbXBsZXRp
b25IYW5kbGVyIG1fY29tcGxldGlvbkhhbmRsZXI7CiAgICAgUmVmPFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luPiBtX3VzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW47CiAgICAgUmVmPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luPiBtX3RvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAppbmRleCBkMzQwMzc2ZmYyOTA3Yjg3Mjkz
NTY0NjQyODlkNDM0OTZkNDAwOTkxLi5kYjRjZGExMTE2MWQyMjI4Mjk4NGZlZTlhZWFkNDBhNGVl
YzFhNDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC0yNDAsOSAr
MjQwLDkgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Zmlu
aXNoR3JhbnRpbmdSZXF1ZXN0KFVzZXJNZWRpYVBlcm0KICAgICBwcm9jZXNzTmV4dFVzZXJNZWRp
YVJlcXVlc3RJZk5lZWRlZCgpOwogfQogCi12b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5OjpyZXNldEFjY2Vzcyh1aW50NjRfdCBmcmFtZUlEKQordm9pZCBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVzZXRBY2Nlc3MoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQpCiB7Ci0gICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBmcmFtZUlEKTsK
KyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIGZyYW1lSUQubG9nZ2luZ1N0cmluZygpKTsK
ICAgICBtX2dyYW50ZWRSZXF1ZXN0cy5yZW1vdmVBbGxNYXRjaGluZyhbZnJhbWVJRF0oY29uc3Qg
YXV0byYgZ3JhbnRlZFJlcXVlc3QpIHsKICAgICAgICAgcmV0dXJuIGdyYW50ZWRSZXF1ZXN0LT5t
YWluRnJhbWVJRCgpID09IGZyYW1lSUQ7CiAgICAgfSk7CkBAIC0yNTEsNyArMjUxLDcgQEAgdm9p
ZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVzZXRBY2Nlc3ModWlu
dDY0X3QgZnJhbWVJRCkKICAgICBtX2hhc0ZpbHRlcmVkRGV2aWNlTGlzdCA9IGZhbHNlOwogfQog
Ci1jb25zdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KiBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6c2VhcmNoRm9yR3JhbnRlZFJlcXVlc3QodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBj
b25zdCBTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1
ZGlvLCBib29sIG5lZWRzVmlkZW8pIGNvbnN0Citjb25zdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5KiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6c2VhcmNo
Rm9yR3JhbnRlZFJlcXVlc3QoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5
T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRv
cExldmVsRG9jdW1lbnRPcmlnaW4sIGJvb2wgbmVlZHNBdWRpbywgYm9vbCBuZWVkc1ZpZGVvKSBj
b25zdAogewogICAgIGlmIChtX3BhZ2UuaXNNZWRpYVN0cmVhbUNhcHR1cmVNdXRlZCgpKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTI4Miw3ICsyODIsNyBAQCBjb25zdCBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5KiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6cwogICAgIHJldHVybiBudWxscHRyOwogfQogCi1ib29sIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5Ojp3YXNSZXF1ZXN0RGVuaWVkKHVpbnQ2NF90IG1haW5GcmFt
ZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIGNvbnN0
IFNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBib29sIG5lZWRzQXVkaW8s
IGJvb2wgbmVlZHNWaWRlbywgYm9vbCBuZWVkc1NjcmVlbkNhcHR1cmUpCitib29sIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp3YXNSZXF1ZXN0RGVuaWVkKEZyYW1lSWRl
bnRpZmllciBtYWluRnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwg
Ym9vbCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8sIGJvb2wgbmVlZHNTY3JlZW5DYXB0dXJl
KQogewogICAgIGZvciAoY29uc3QgYXV0byYgZGVuaWVkUmVxdWVzdCA6IG1fZGVuaWVkUmVxdWVz
dHMpIHsKICAgICAgICAgaWYgKCFkZW5pZWRSZXF1ZXN0LnVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
LT5pc1NhbWVTY2hlbWVIb3N0UG9ydCh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbikpCkBAIC0zNDYs
NyArMzQ2LDcgQEAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OlJlcXVl
c3RBY3Rpb24gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QKIH0KICNlbmRpZgogCi12b2lkIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVy
bWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBS
ZWY8U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxTZWN1cml0
eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBNZWRpYVN0cmVhbVJlcXVlc3QmJiB1
c2VyUmVxdWVzdCkKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6
OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQs
IEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlh
RG9jdW1lbnRPcmlnaW4sIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luLCBNZWRpYVN0cmVhbVJlcXVlc3QmJiB1c2VyUmVxdWVzdCkKIHsKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQogICAgIGlmICghbV9wYWdlLmhhc1J1bm5pbmdQcm9jZXNzKCkpCkBAIC01MjEs
NyArNTIxLDcgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
cHJvY2Vzc1VzZXJNZWRpYVBlcm1pc3Npb25WYWxpZFJlcXUKICAgICBtX3BhZ2UudWlDbGllbnQo
KS5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChtX3BhZ2UsICp3ZWJG
cmFtZSwgV1RGTW92ZSh1c2VyTWVkaWFPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsT3JpZ2luKSwg
Km1fY3VycmVudFVzZXJNZWRpYVJlcXVlc3QpOwogfQogCi12b2lkIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5OjpnZXRVc2VyTWVkaWFQZXJtaXNzaW9uSW5mbyh1aW50NjRf
dCBmcmFtZUlELCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4s
IFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFBlcm1pc3Npb25JbmZvKT4mJiBoYW5kbGVyKQordm9pZCBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Z2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8o
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFE
b2N1bWVudE9yaWdpbiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmln
aW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUGVybWlzc2lvbkluZm8pPiYmIGhhbmRsZXIpCiB7
CiAgICAgYXV0byogd2ViRnJhbWUgPSBtX3BhZ2UucHJvY2VzcygpLndlYkZyYW1lKGZyYW1lSUQp
OwogICAgIGlmICghd2ViRnJhbWUgfHwgIVNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5n
KG1fcGFnZS5wYWdlTG9hZFN0YXRlKCkuYWN0aXZlVVJMKCkpLT5pc1NhbWVTY2hlbWVIb3N0UG9y
dCh0b3BMZXZlbERvY3VtZW50T3JpZ2luLmdldCgpKSkgewpAQCAtNTQ1LDcgKzU0NSw3IEBAIHZv
aWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmdldFVzZXJNZWRpYVBl
cm1pc3Npb25JbmZvKHVpbnQ2NF90CiAgICAgbV9wYWdlLnVpQ2xpZW50KCkuY2hlY2tVc2VyTWVk
aWFQZXJtaXNzaW9uRm9yT3JpZ2luKG1fcGFnZSwgKndlYkZyYW1lLCB1c2VyTWVkaWFPcmlnaW4u
Z2V0KCksIHRvcExldmVsT3JpZ2luLmdldCgpLCByZXF1ZXN0LmdldCgpKTsKIH0KIAotYm9vbCBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6d2FzR3JhbnRlZFZpZGVvT3JB
dWRpb0FjY2Vzcyh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50
T3JpZ2luKQorYm9vbCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6d2Fz
R3JhbnRlZFZpZGVvT3JBdWRpb0FjY2VzcyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3Qg
U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBTZWN1cml0eU9y
aWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbikKIHsKICAgICBmb3IgKGNvbnN0IGF1dG8mIGdy
YW50ZWRSZXF1ZXN0IDogbV9ncmFudGVkUmVxdWVzdHMpIHsKICAgICAgICAgaWYgKGdyYW50ZWRS
ZXF1ZXN0LT5yZXF1aXJlc0Rpc3BsYXlDYXB0dXJlKCkpCkBAIC02MDQsNyArNjA0LDcgQEAgVmVj
dG9yPENhcHR1cmVEZXZpY2U+IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
Ojpjb21wdXRlRmlsdGVyZWREZXYKIH0KICNlbmRpZgogCi12b2lkIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5OjplbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50
NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFNlY3VyaXR5T3JpZ2luPiYm
IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxE
b2N1bWVudE9yaWdpbikKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdp
bikKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIEFMV0FZU19MT0coTE9HSURFTlRJ
RklFUiwgdXNlck1lZGlhSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKaW5kZXgg
ZjUwNWUyODBjNDQyOTBhODAzZGJkYjY4Yzk4ZWVhNjMwYjFjOWJiNi4uYmJiYTQ0YWM4MmJkMjgw
NzViZGRmYmI0NTQ0NGNhNTY5YWNjZmI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oCkBAIC02MCwxNSArNjAsMTUgQEAgcHVibGljOgogCiAgICAgdm9pZCBpbnZhbGlkYXRlUGVu
ZGluZ1JlcXVlc3RzKCk7CiAKLSAgICB2b2lkIHJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9y
RnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbj4mJiAgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBXZWJDb3JlOjpNZWRp
YVN0cmVhbVJlcXVlc3QmJik7CisgICAgdm9pZCByZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZv
ckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJl
ZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiAgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJl
ZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBXZWJD
b3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJik7CiAKLSAgICB2b2lkIHJlc2V0QWNjZXNzKHVpbnQ2
NF90IG1haW5GcmFtZUlEKTsKKyAgICB2b2lkIHJlc2V0QWNjZXNzKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBtYWluRnJhbWVJRCk7CiAgICAgdm9pZCB2aWV3SXNCZWNvbWluZ1Zpc2libGUoKTsK
IAogICAgIHZvaWQgZ3JhbnRSZXF1ZXN0KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkm
KTsKICAgICB2b2lkIGRlbnlSZXF1ZXN0KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkm
LCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxS
ZWFzb24sIGNvbnN0IFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnQgPSB7IH0pOwogCi0gICAgdm9p
ZCBlbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWlu
dDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbik7CisgICAgdm9pZCBlbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50
NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKTsKIAogICAgIHZvaWQgc3Rv
cENhcHR1cmUoKTsKICAgICB2b2lkIHNjaGVkdWxlTmV4dFJlamVjdGlvbigpOwpAQCAtOTUsMTkg
Kzk1LDE5IEBAIHByaXZhdGU6CiAgICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpIGNvbnN0
IGZpbmFsOwogI2VuZGlmCiAKLSAgICBSZWY8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eT4gY3JlYXRlUGVybWlzc2lvblJlcXVlc3QodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90
IG1haW5GcmFtZUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmlj
ZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIHZpZGVv
RGV2aWNlcywgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYpOworICAgIFJlZjxVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGVQZXJtaXNzaW9uUmVxdWVzdCh1aW50NjRf
dCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlELCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExl
dmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlv
RGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBX
ZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJik7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
ICAgICB2b2lkIGZpbmlzaEdyYW50aW5nUmVxdWVzdChVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5Jik7CiAKLSAgICBjb25zdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KiBz
ZWFyY2hGb3JHcmFudGVkUmVxdWVzdCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBib29sIG5lZWRzQXVkaW8sIGJv
b2wgbmVlZHNWaWRlbykgY29uc3Q7Ci0gICAgYm9vbCB3YXNSZXF1ZXN0RGVuaWVkKHVpbnQ2NF90
IG1haW5GcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9j
dW1lbnRPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luLCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbywgYm9vbCBuZWVkc1Nj
cmVlbkNhcHR1cmUpOworICAgIGNvbnN0IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkq
IHNlYXJjaEZvckdyYW50ZWRSZXF1ZXN0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBuZWVk
c0F1ZGlvLCBib29sIG5lZWRzVmlkZW8pIGNvbnN0OworICAgIGJvb2wgd2FzUmVxdWVzdERlbmll
ZChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGJvb2wgbmVlZHNBdWRpbywgYm9v
bCBuZWVkc1ZpZGVvLCBib29sIG5lZWRzU2NyZWVuQ2FwdHVyZSk7CiAKICAgICB1c2luZyBQZXJt
aXNzaW9uSW5mbyA9IFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5OjpQZXJtaXNzaW9uSW5m
bzsKLSAgICB2b2lkIGdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKHVpbnQ2NF90IGZyYW1lSUQs
IFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwg
UmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoUGVybWlzc2lvbkluZm8pPiYmKTsKKyAgICB2b2lkIGdldFVz
ZXJNZWRpYVBlcm1pc3Npb25JbmZvKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChQZXJtaXNzaW9uSW5mbyk+JiYpOwogCiAgICAgUmVxdWVzdEFjdGlvbiBnZXRS
ZXF1ZXN0QWN0aW9uKGNvbnN0IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKTsKIAot
ICAgIGJvb2wgd2FzR3JhbnRlZFZpZGVvT3JBdWRpb0FjY2Vzcyh1aW50NjRfdCwgY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7CisgICAgYm9vbCB3
YXNHcmFudGVkVmlkZW9PckF1ZGlvQWNjZXNzKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7CiAKICAg
ICBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gY29tcHV0ZUZpbHRlcmVkRGV2aWNlTGlz
dChib29sIHJldmVhbElkc0FuZExhYmVscywgY29uc3QgU3RyaW5nJiBkZXZpY2VJREhhc2hTYWx0
KTsKIApAQCAtMTM0LDcgKzEzNCw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFJlZjxVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Pj4gbV9ncmFudGVkUmVxdWVzdHM7CiAKICAgICBzdHJ1
Y3QgRGVuaWVkUmVxdWVzdCB7Ci0gICAgICAgIHVpbnQ2NF90IG1haW5GcmFtZUlEOworICAgICAg
ICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQ7CiAgICAgICAgIFJlZjxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbj4gdXNlck1lZGlhRG9jdW1lbnRPcmlnaW47CiAgICAgICAgIFJl
ZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gdG9wTGV2ZWxEb2N1bWVudE9yaWdpbjsKICAgICAg
ICAgYm9vbCBpc0F1ZGlvRGVuaWVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAppbmRleCA0ZjAyODQw
NmJhNGE3NzUxNjQ3MDY0NzY3MWYzYTk1MDg4YWZmNGFiLi45NjZmZGFkNWNmMGRkMDliOThmZjU1
NjEwM2UyMDZhYTExNzVjOTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9V
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcApAQCAtMzAsNyArMzAs
NyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgdWlu
dDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IG1haW5GcmFtZUlELCB1aW50NjRfdCBmcmFtZUlE
LCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4s
IFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBW
ZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVkaWFTdHJlYW1S
ZXF1ZXN0JiYgcmVxdWVzdCkKK1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJNZWRpYUlELCBGcmFtZUlkZW50aWZpZXIg
bWFpbkZyYW1lSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVy
ZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYm
IHZpZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYgcmVxdWVzdCkKICAg
ICA6IG1fbWFuYWdlcigmbWFuYWdlcikKICAgICAsIG1fdXNlck1lZGlhSUQodXNlck1lZGlhSUQp
CiAgICAgLCBtX21haW5GcmFtZUlEKG1haW5GcmFtZUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCmluZGV4
IDU0NGY2MTE2ZWRiNjYyYThmYTk2MzFiYzNhZjhiNzBkZWRjNTgyN2YuLmJhNGUwYTM0NzE2MDMx
YjE4ZjA4NWNmZDAxYTczNTE3NzhhMDMwNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKQEAgLTIxLDYg
KzIxLDcgQEAKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ2Fw
dHVyZURldmljZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9NZWRpYVN0cmVhbVJlcXVlc3QuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC0zNSw3ICszNiw3IEBAIGNs
YXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OwogCiBjbGFzcyBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6
Ok9iamVjdDo6VHlwZTo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q+IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZShVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgdWludDY0X3QgdXNl
ck1lZGlhSUQsIHVpbnQ2NF90IG1haW5GcmFtZUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0b3I8V2Vi
Q29yZTo6Q2FwdHVyZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYg
cmVxdWVzdCkKKyAgICBzdGF0aWMgUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+
IGNyZWF0ZShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwg
dWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJ
RCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYg
dmlkZW9EZXZpY2VzLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJiByZXF1ZXN0KQogICAg
IHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eShtYW5hZ2VyLCB1c2VyTWVkaWFJRCwgbWFpbkZyYW1lSUQsIGZyYW1lSUQsIFdURk1v
dmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsRG9jdW1lbnRPcmln
aW4pLCBXVEZNb3ZlKGF1ZGlvRGV2aWNlcyksIFdURk1vdmUodmlkZW9EZXZpY2VzKSwgV1RGTW92
ZShyZXF1ZXN0KSkpOwogICAgIH0KQEAgLTY1LDggKzY2LDggQEAgcHVibGljOgogICAgIHZvaWQg
c2V0SGFzUGVyc2lzdGVudEFjY2VzcygpIHsgbV9oYXNQZXJzaXN0ZW50QWNjZXNzID0gdHJ1ZTsg
fQogCiAgICAgdWludDY0X3QgdXNlck1lZGlhSUQoKSBjb25zdCB7IHJldHVybiBtX3VzZXJNZWRp
YUlEOyB9Ci0gICAgdWludDY0X3QgbWFpbkZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX21haW5G
cmFtZUlEOyB9Ci0gICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJ
RDsgfQorICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCgpIGNvbnN0IHsg
cmV0dXJuIG1fbWFpbkZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQogCiAgICAgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIHsgcmV0dXJuIG1fdG9w
TGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luLmdldCgpOyB9CiAgICAgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSB7IHJldHVybiBtX3Vz
ZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW4uZ2V0KCk7IH0KQEAgLTg0LDEyICs4NSwxMiBA
QCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZSB2aWRlb0RldmljZSgpIGNvbnN0
IHsgcmV0dXJuIG1fZWxpZ2libGVWaWRlb0RldmljZXMuaXNFbXB0eSgpID8gV2ViQ29yZTo6Q2Fw
dHVyZURldmljZSB7IH0gOiBtX2VsaWdpYmxlVmlkZW9EZXZpY2VzWzBdOyB9CiAKIHByaXZhdGU6
Ci0gICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eSYsIHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBtYWlu
RnJhbWVJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYm
IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYg
dG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYg
YXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiB2aWRlb0Rldmlj
ZXMsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKKyAgICBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Jiwg
dWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJ
RCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+
JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4m
JiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4m
JiBhdWRpb0RldmljZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIHZpZGVvRGV2
aWNlcywgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYpOwogCiAgICAgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkqIG1fbWFuYWdlcjsKICAgICB1aW50NjRfdCBtX3Vz
ZXJNZWRpYUlEOwotICAgIHVpbnQ2NF90IG1fbWFpbkZyYW1lSUQ7Ci0gICAgdWludDY0X3QgbV9m
cmFtZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX21haW5GcmFtZUlEOworICAg
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtX2ZyYW1lSUQ7CiAgICAgUmVmPFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luPiBtX3VzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW47CiAgICAgUmVm
PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBtX3RvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdp
bjsKICAgICBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4gbV9lbGlnaWJsZVZpZGVvRGV2
aWNlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAKaW5kZXggMDcx
NGI0MWViNjc3NjhkOWUwYzlkNDEyZTIwZTg5OGY4MWU3M2RkOC4uZWUzMzcxMDgxNzA3ZWEzNmQz
NTBlZmUyY2M1YTAzYzFkMTkxZGE0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViRnJhbWVQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJh
bWVQcm94eS5jcHAKQEAgLTQ1LDkgKzQ1LDggQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IGNsYXNzIFdlYlBhZ2VQcm94eTsKIAotV2ViRnJhbWVQcm94eTo6V2ViRnJhbWVQcm94eShXZWJQ
YWdlUHJveHkmIHBhZ2UsIHVpbnQ2NF90IGZyYW1lSUQpCitXZWJGcmFtZVByb3h5OjpXZWJGcmFt
ZVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAgICAg
OiBtX3BhZ2UobWFrZVdlYWtQdHIocGFnZSkpCi0gICAgLCBtX2lzRnJhbWVTZXQoZmFsc2UpCiAg
ICAgLCBtX2ZyYW1lSUQoZnJhbWVJRCkKIHsKICAgICBXZWJQcm9jZXNzUG9vbDo6c3RhdGlzdGlj
cygpLndrRnJhbWVDb3VudCsrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViRnJhbWVQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5o
CmluZGV4IDQ0NjAwZjFjMjcyOTBlNWU0YzE2OGVhOGNkM2NjMzk2MzZmZGJiZTEuLmNjZGE2Mzc4
MDAyZDU1YWIxNTdhNmYxNTM3YzVlZjc5ZGI0NWMyNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJGcmFtZVByb3h5LmgKQEAgLTU5LDE0ICs1OSwxNCBAQCBzdHJ1Y3QgV2Vic2l0ZVBvbGlj
aWVzRGF0YTsKIAogY2xhc3MgV2ViRnJhbWVQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8
QVBJOjpPYmplY3Q6OlR5cGU6OkZyYW1lPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJG
cmFtZVByb3h5PiBjcmVhdGUoV2ViUGFnZVByb3h5JiBwYWdlLCB1aW50NjRfdCBmcmFtZUlEKQor
ICAgIHN0YXRpYyBSZWY8V2ViRnJhbWVQcm94eT4gY3JlYXRlKFdlYlBhZ2VQcm94eSYgcGFnZSwg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAgICAgewogICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBXZWJGcmFtZVByb3h5KHBhZ2UsIGZyYW1lSUQpKTsKICAgICB9CiAKICAg
ICB2aXJ0dWFsIH5XZWJGcmFtZVByb3h5KCk7CiAKLSAgICB1aW50NjRfdCBmcmFtZUlEKCkgY29u
c3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KICAgICBXZWJQYWdlUHJveHkqIHBh
Z2UoKSBjb25zdCB7IHJldHVybiBtX3BhZ2UuZ2V0KCk7IH0KIAogICAgIHZvaWQgd2ViUHJvY2Vz
c1dpbGxTaHV0RG93bigpOwpAQCAtMTMwLDcgKzEzMCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiBw
cml2YXRlOgotICAgIFdlYkZyYW1lUHJveHkoV2ViUGFnZVByb3h5JiwgdWludDY0X3QgZnJhbWVJ
RCk7CisgICAgV2ViRnJhbWVQcm94eShXZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIpOwogCiAgICAgV2Vha1B0cjxXZWJQYWdlUHJveHk+IG1fcGFnZTsKIApAQCAtMTM4LDEx
ICsxMzgsMTEgQEAgcHJpdmF0ZToKIAogICAgIFN0cmluZyBtX01JTUVUeXBlOwogICAgIFN0cmlu
ZyBtX3RpdGxlOwotICAgIGJvb2wgbV9pc0ZyYW1lU2V0OworICAgIGJvb2wgbV9pc0ZyYW1lU2V0
IHsgZmFsc2UgfTsKICAgICBib29sIG1fY29udGFpbnNQbHVnaW5Eb2N1bWVudCB7IGZhbHNlIH07
CiAgICAgUmVmUHRyPFdlYkNlcnRpZmljYXRlSW5mbz4gbV9jZXJ0aWZpY2F0ZUluZm87CiAgICAg
UmVmUHRyPFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eT4gbV9hY3RpdmVMaXN0ZW5lcjsKLSAg
ICB1aW50NjRfdCBtX2ZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fZnJh
bWVJRDsKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCiAgICAgV2ViQ29yZTo6Q29udGVu
dEZpbHRlclVuYmxvY2tIYW5kbGVyIG1fY29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAzMjYzMWM0
NTBlYjI2ZDc1NDU0NjhiNzI2YzE1YTQ0OTg1Yzk5OGE5Li5kMmY5YTg4NzA1N2IwZGNkNzk0Nzhi
MTBiNzAwNzNjNmQ4NmM3YmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKQEAgLTc0Myw3ICs3NDMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bGF1bmNoUHJvY2Vz
cyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVnaXN0cmFibGVEb21haW4pCiAgICAgZmluaXNo
QXR0YWNoaW5nVG9XZWJQcm9jZXNzKElzUHJvY2Vzc1N3YXA6Ok5vKTsKIH0KIAotYm9vbCBXZWJQ
YWdlUHJveHk6OnN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUoQVBJOjpOYXZpZ2F0aW9uJiBu
YXZpZ2F0aW9uLCBPcHRpb25hbDx1aW50NjRfdD4gbWFpbkZyYW1lSUQsIFByb2Nlc3NTd2FwUmVx
dWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgU2hvdWxkRGVsYXlD
bG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlIHNob3VsZERlbGF5
Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSkKK2Jvb2wgV2Vi
UGFnZVByb3h5OjpzdXNwZW5kQ3VycmVudFBhZ2VJZlBvc3NpYmxlKEFQSTo6TmF2aWdhdGlvbiYg
bmF2aWdhdGlvbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBtYWluRnJhbWVJRCwgUHJvY2Vz
c1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBTaG91
bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUgc2hv
dWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKQog
ewogICAgIG1fbGFzdFN1c3BlbmRlZFBhZ2UgPSBudWxscHRyOwogCkBAIC0yOTMxLDEyICsyOTMx
LDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWNlaXZlZFBvbGljeURlY2lzaW9uKFBvbGljeUFj
dGlvbiBhY3Rpb24sIEFQSTo6TmF2aWdhdGlvbioKICAgICBzZW5kZXItPnNlbmQoYWN0aW9uLCBu
YXZpZ2F0aW9uID8gbmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCkgOiAwLCBkb3dubG9hZElELCBX
VEZNb3ZlKHdlYnNpdGVQb2xpY2llcykpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6Y29tbWl0
UHJvdmlzaW9uYWxQYWdlKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRl
ciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZv
JiBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8
V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpjb21taXRQcm92aXNp
b25hbFBhZ2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRl
ciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZv
JiBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8
V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBBU1NFUlQobV9wcm92aXNpb25hbFBhZ2Up
OwogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImNvbW1pdFByb3Zpc2lvbmFs
UGFnZTogcHJldmlvdXNQSUQgPSAlaSwgbmV3UElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCwg
bV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3Byb3Zpc2lvbmFsUGFnZS0+cHJvY2Vz
cygpLnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCkpOwogCi0gICAgT3B0
aW9uYWw8dWludDY0X3Q+IG1haW5GcmFtZUlESW5QcmV2aW91c1Byb2Nlc3MgPSBtX21haW5GcmFt
ZSA/IG1ha2VPcHRpb25hbChtX21haW5GcmFtZS0+ZnJhbWVJRCgpKSA6IFdURjo6bnVsbG9wdDsK
KyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IG1haW5GcmFtZUlESW5QcmV2aW91c1Byb2Nl
c3MgPSBtX21haW5GcmFtZSA/IG1ha2VPcHRpb25hbChtX21haW5GcmFtZS0+ZnJhbWVJRCgpKSA6
IFdURjo6bnVsbG9wdDsKIAogICAgIEFTU0VSVChtX3Byb2Nlc3MucHRyKCkgIT0gJm1fcHJvdmlz
aW9uYWxQYWdlLT5wcm9jZXNzKCkpOwogCkBAIC0zNjcyLDcgKzM2NzIsNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6cnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lU2NyaXB0V29ybGQoY29uc3QgU3RyaW5n
JiBzY3JpcHQsIGJvbwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6UnVu
SmF2YVNjcmlwdEluTWFpbkZyYW1lU2NyaXB0V29ybGQoc2NyaXB0LCBmb3JjZVVzZXJHZXN0dXJl
LCB3b3JsZE5hbWUsIGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVBy
b3h5OjpydW5KYXZhU2NyaXB0SW5GcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcm
IHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBXVEY6OkZ1bmN0aW9uPHZvaWQoQVBJOjpT
ZXJpYWxpemVkU2NyaXB0VmFsdWUqLCBib29sIGhhZEV4Y2VwdGlvbiwgY29uc3QgRXhjZXB0aW9u
RGV0YWlscyYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCit2b2lk
IFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEluRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIFdURjo6RnVu
Y3Rpb248dm9pZChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSosIGJvb2wgaGFkRXhjZXB0aW9u
LCBjb25zdCBFeGNlcHRpb25EZXRhaWxzJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJh
Y2tGdW5jdGlvbikKIHsKICAgICBBU1NFUlQobWFpbkZyYW1lKCktPmZyYW1lSUQoKSAhPSBmcmFt
ZUlEKTsKICAgICBhdXRvIGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoV1RGTW92ZShjYWxs
YmFja0Z1bmN0aW9uKSwgbV9wcm9jZXNzLT50aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0aXZpdHlU
b2tlbigpKTsKQEAgLTM4NzgsNyArMzg3OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpwcmVmZXJl
bmNlc0RpZENoYW5nZSgpCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpQ
cmVmZXJlbmNlc0RpZENoYW5nZShwcmVmZXJlbmNlc1N0b3JlKCkpLCBtX3BhZ2VJRCwgcHJpbnRp
bmdTZW5kT3B0aW9ucyhtX2lzUGVyZm9ybWluZ0RPTVByaW50T3BlcmF0aW9uKSk7CiB9CiAKLXZv
aWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJRCkKK3Zv
aWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQpCiB7CiAgICAgLy8gVGhlIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jIElQ
QyBpcyBzeW5jaHJvbm91cyBhbmQgbWF5IHRoZXJlZm9yZSBnZXQgcHJvY2Vzc2VkIGJlZm9yZSB0
aGUgRGlkQ3JlYXRlTWFpbkZyYW1lIG9uZS4KICAgICAvLyBXaGVuIHRoaXMgaGFwcGVucywgZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoKSBjYWxscyBkaWRDcmVhdGVNYWluRnJh
bWUoKSBhbmQgd2UgbmVlZCB0byBpZ25vcmUgdGhlIERpZENyZWF0ZU1haW5GcmFtZQpAQCAtMzg5
Nyw3ICszODk3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0ZU1haW5GcmFtZSh1aW50
NjRfdCBmcmFtZUlEKQogICAgIG1fcHJvY2Vzcy0+ZnJhbWVDcmVhdGVkKGZyYW1lSUQsICptX21h
aW5GcmFtZSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVTdWJmcmFtZSh1aW50
NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENyZWF0ZVN1YmZyYW1lKEZyYW1l
SWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9y
KHBhZ2VDbGllbnQoKSk7CiAKQEAgLTM5MTcsNyArMzkxNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpkaWRDcmVhdGVTdWJmcmFtZSh1aW50NjRfdCBmcmFtZUlEKQogICAgIG1fcHJvY2Vzcy0+ZnJh
bWVDcmVhdGVkKGZyYW1lSUQsIHN1YkZyYW1lLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZENyZWF0ZVdpbmRvdyh1aW50NjRfdCBmcmFtZUlELCBHbG9iYWxXaW5kb3dJZGVudGlm
aWVyJiYgd2luZG93SWRlbnRpZmllcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVXaW5k
b3coRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEdsb2JhbFdpbmRvd0lkZW50aWZpZXImJiB3aW5k
b3dJZGVudGlmaWVyKQogewogfQogCkBAIC0zOTgxLDEyICszOTgxLDEyIEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpkaWREZXN0cm95TmF2aWdhdGlvbih1aW50NjRfdCBuYXZpZ2F0aW9uSUQpCiAgICAg
bV9uYXZpZ2F0aW9uU3RhdGUtPmRpZERlc3Ryb3lOYXZpZ2F0aW9uKG5hdmlnYXRpb25JRCk7CiB9
CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYgdXJsLCBVUkwmJiB1
bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJv
eHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYgdXJsLCBVUkwmJiB1bnJlYWNoYWJsZVVS
TCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIGRpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgZnJhbWVJRCwgbmF2aWdhdGlv
bklELCBXVEZNb3ZlKHVybCksIFdURk1vdmUodW5yZWFjaGFibGVVUkwpLCB1c2VyRGF0YSk7CiB9
CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hh
cmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgdWludDY0X3QgZnJhbWVJRCwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwsIFVSTCYmIHVucmVhY2hhYmxlVVJMLCBjb25z
dCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNp
b25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCwg
VVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBQ
YWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00MDA1LDgg
KzQwMDUsOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JG
cmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmCiAgICAgaWYgKGZyYW1lLT5pc01haW5G
cmFtZSgpICYmIG5hdmlnYXRpb25JRCkKICAgICAgICAgbmF2aWdhdGlvbiA9IG5hdmlnYXRpb25T
dGF0ZSgpLm5hdmlnYXRpb24obmF2aWdhdGlvbklEKTsKIAotICAgIExPRyhMb2FkaW5nLCAiV2Vi
UGFnZVByb3h5ICUiIFBSSXU2NCAiIGluIHByb2Nlc3MgcGlkICVpIGRpZFN0YXJ0UHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUgdG8gZnJhbWVJRCAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEICUiIFBS
SXU2NCAiLCB1cmwgJXMiLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBwcm9jZXNzLT5wcm9jZXNzSWRl
bnRpZmllcigpLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQsIHVybC5zdHJpbmcoKS51dGY4KCkuZGF0
YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRTdGFydFByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZy
YW1lSUQgPSAlIiBQUkl1NjQsIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlE
LnRvVUludDY0KCksIGZyYW1lSUQpOworICAgIExPRyhMb2FkaW5nLCAiV2ViUGFnZVByb3h5ICUi
IFBSSXU2NCAiIGluIHByb2Nlc3MgcGlkICVpIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWUgdG8gZnJhbWVJRCAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEICUiIFBSSXU2NCAiLCB1cmwg
JXMiLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBm
cmFtZUlELnRvVUludDY0KCksIG5hdmlnYXRpb25JRCwgdXJsLnN0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZFN0YXJ0UHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQu
dG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAgIGF1dG8gdHJhbnNhY3Rpb24g
PSBtX3BhZ2VMb2FkU3RhdGUudHJhbnNhY3Rpb24oKTsKIApAQCAtNDAzMSw3ICs0MDMxLDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQo
UmVmPFdlYlByb2Nlc3NQcm94eT4mJgogICAgICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRpZFN0
YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uKCp0aGlzLCBuYXZpZ2F0aW9uLmdldCgpLCBwcm9jZXNz
LT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9iamVjdCgpKS5nZXQoKSk7CiB9
CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRFeHBsaWNpdE9wZW5Gb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCBVUkwmJiB1cmwpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRXhwbGljaXRPcGVuRm9y
RnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFVSTCYmIHVybCkKIHsKICAgICBhdXRvKiBm
cmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyht
X3Byb2Nlc3MsIGZyYW1lKTsKQEAgLTQwNTAsMTUgKzQwNTAsMTUgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OmRpZEV4cGxpY2l0T3BlbkZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFVSTCYmIHVybCkK
ICAgICBtX3BhZ2VMb2FkU3RhdGUuY29tbWl0Q2hhbmdlcygpOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBSZXNvdXJjZVJlcXVlc3Qm
JiByZXF1ZXN0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgUmVzb3VyY2VSZXF1ZXN0
JiYgcmVxdWVzdCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIGRpZFJlY2VpdmVT
ZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5j
b3B5UmVmKCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgV1RGTW92ZShyZXF1ZXN0KSwgdXNlckRh
dGEpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9y
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9j
ZXNzLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFJlc291cmNlUmVx
dWVzdCYmIHJlcXVlc3QsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVNo
YXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKLSAgICBMT0coTG9hZGluZywgIldlYlBhZ2VQcm94
eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUgdG8g
ZnJhbWVJRCAlIiBQUkl1NjQgIiwgbmF2aWdhdGlvbklEICUiIFBSSXU2NCAiLCB1cmwgJXMiLCBm
cmFtZUlELCBuYXZpZ2F0aW9uSUQsIHJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEo
KSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkUmVjZWl2ZVNlcnZl
clJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50
aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgTE9HKExvYWRpbmcs
ICJXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lIHRvIGZyYW1lSUQgJSIgUFJJdTY0ICIsIG5hdmlnYXRpb25JRCAlIiBQUkl1NjQg
IiwgdXJsICVzIiwgZnJhbWVJRC50b1VJbnQ2NCgpLCBuYXZpZ2F0aW9uSUQsIHJlcXVlc3QudXJs
KCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChM
b2FkaW5nLCAiZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2
NCwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJh
bWVJRC50b1VJbnQ2NCgpKTsKIAogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBh
Z2VDbGllbnQoKSk7CiAKQEAgLTQwODUsOSArNDA4NSw5IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChS
ZWY8CiAgICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0
Rm9yUHJvdmlzaW9uYWxOYXZpZ2F0aW9uKCp0aGlzLCBuYXZpZ2F0aW9uLmdldCgpLCBwcm9jZXNz
LT50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9iamVjdCgpKS5nZXQoKSk7CiB9
CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1cmwsIGRvdWJsZSBkZWxheSwgV2ViQ29y
ZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCkKK3ZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsUGVyZm9ybUNs
aWVudFJlZGlyZWN0Rm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmlu
ZyYgdXJsLCBkb3VibGUgZGVsYXksIFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3QpCiB7Ci0g
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAid2lsbFBlcmZvcm1DbGllbnRSZWRp
cmVjdEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9V
SW50NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAi
d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50
aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAg
IFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQwOTgs
OSArNDA5OCw5IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyCiAgICAgICAgIG1fbmF2aWdhdGlv
bkNsaWVudC0+d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdCgqdGhpcywgdXJsLCBkZWxheSk7CiB9
CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2FuY2VsQ2xpZW50UmVkaXJl
Y3RGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKLSAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKExvYWRpbmcsICJkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lOiB3ZWJQ
SUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJv
Y2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCk7
CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkQ2FuY2VsQ2xpZW50UmVk
aXJlY3RGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRv
VUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9y
IHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00MTExLDEyICs0MTExLDEyIEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQpCiAgICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkQ2FuY2VsQ2xpZW50UmVkaXJl
Y3QoKnRoaXMpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxV
UkxGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYm
IHVybCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1l
KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVy
bCkKIHsKICAgICBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vz
cy5jb3B5UmVmKCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgV1RGTW92ZSh1cmwpKTsKIH0KIAot
dm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQo
UmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRf
dCwgVVJMJiYgdXJsKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJM
Rm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgdWludDY0X3QsIFVSTCYmIHVybCkKIHsKICAgICBQYWdlQ2xpZW50UHJv
dGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00MTM1LDcgKzQxMzUsNyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNoYXJlZChS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmCiAgICAgZnJhbWUtPmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZCh1cmwpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFp
bFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5
T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBj
b25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwg
V2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYg
dXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZy
YW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBw
cm92aXNpb25hbFVSTCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFdpbGxDb250aW51ZUxv
YWRpbmcgd2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewog
ICAgIGlmIChtX3Byb3Zpc2lvbmFsUGFnZSAmJiBtX3Byb3Zpc2lvbmFsUGFnZS0+bmF2aWdhdGlv
bklEKCkgPT0gbmF2aWdhdGlvbklEKSB7CiAgICAgICAgIC8vIFRoZSBsb2FkIGRpZCBub3QgZmFp
bCwgaXQgaXMgbWVyZWx5IGhhcHBlbmluZyBpbiBhIG5ldyBwcm92aXNpb25hbCBwcm9jZXNzLgpA
QCAtNDE0NSwxMCArNDE0NSwxMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaQogICAgIGRpZEZh
aWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFt
ZUlELCBmcmFtZVNlY3VyaXR5T3JpZ2luLCBuYXZpZ2F0aW9uSUQsIHByb3Zpc2lvbmFsVVJMLCBl
cnJvciwgd2lsbENvbnRpbnVlTG9hZGluZywgdXNlckRhdGEpOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYgcHJvY2VzcywgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5E
YXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0
cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBXaWxsQ29u
dGludWVMb2FkaW5nIHdpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0
YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFy
ZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFJlc291
cmNlRXJyb3ImIGVycm9yLCBXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250aW51ZUxvYWRpbmcs
IGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBMT0coTG9hZGluZywgIihMb2FkaW5n
KSBXZWJQYWdlUHJveHkgJSIgUFJJdTY0ICIgaW4gd2ViIHByb2Nlc3MgcGlkICVpIGRpZEZhaWxQ
cm92aXNpb25hbExvYWRGb3JGcmFtZSB0byBwcm92aXNpb25hbFVSTCAlcyIsIG1fcGFnZUlELnRv
VUludDY0KCksIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIHByb3Zpc2lvbmFsVVJMLnV0
ZjgoKS5kYXRhKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2VzcywgImRpZEZh
aWxQcm92aXNpb25hbExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIGRvbWFpbiA9ICVzLCBjb2RlID0gJWQiLCBwcm9j
ZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELCBl
cnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJvci5lcnJvckNvZGUoKSk7CisgICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzLCAiZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgZG9tYWluID0gJXMsIGNvZGUgPSAlZCIsIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVy
KCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSwgZXJyb3IuZG9tYWlu
KCkudXRmOCgpLmRhdGEoKSwgZXJyb3IuZXJyb3JDb2RlKCkpOwogCiAgICAgUGFnZUNsaWVudFBy
b3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDIyNCwxMSArNDIyNCwxMSBA
QCBzdGF0aWMgT3B0aW9uU2V0PENyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXI6OkZsYWc+
IGNoZWNrSWZOYXZpZ2F0aW9uQ29udGFpbgogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZVByb3h5
OjpkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVu
dFByb3ZpZGVyLCB1aW50MzJfdCBvcGFxdWVGcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpD
ZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdpbkRvY3Vt
ZW50LCBPcHRpb25hbDxIYXNJbnNlY3VyZUNvbnRlbnQ+IGhhc0luc2VjdXJlQ29udGVudCwgY29u
c3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRG
b3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBj
b25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVy
LCB1aW50MzJfdCBvcGFxdWVGcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0
ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBPcHRp
b25hbDxIYXNJbnNlY3VyZUNvbnRlbnQ+IGhhc0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRh
dGEmIHVzZXJEYXRhKQogewogICAgIExPRyhMb2FkaW5nLCAiKExvYWRpbmcpIFdlYlBhZ2VQcm94
eSAlIiBQUkl1NjQgIiBkaWRDb21taXRMb2FkRm9yRnJhbWUgaW4gbmF2aWdhdGlvbiAlIiBQUkl1
NjQsIG1fcGFnZUlELnRvVUludDY0KCksIG5hdmlnYXRpb25JRCk7CiAgICAgTE9HKEJhY2tGb3J3
YXJkLCAiKEJhY2svRm9yd2FyZCkgQWZ0ZXIgbG9hZCBjb21taXQsIGJhY2svZm9yd2FyZCBsaXN0
IGlzIG5vdzolcyIsIG1fYmFja0ZvcndhcmRMaXN0LT5sb2dnaW5nU3RyaW5nKCkpOwotICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZENvbW1pdExvYWRGb3JGcmFtZTogd2Vi
UElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3By
b2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQp
OworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZENvbW1pdExvYWRGb3JG
cmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCks
IGZyYW1lSUQudG9VSW50NjQoKSk7CiAKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3Rv
cihwYWdlQ2xpZW50KCkpOwogCkBAIC00MzM4LDkgKzQzMzgsOSBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmln
YXRpb25JRAogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVu
dExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hEb2N1
bWVudExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRChMb2FkaW5nLCAiZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWU6IHdlYlBJRCA9
ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNz
LT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRGaW5pc2hEb2N1bWVudExvYWRG
b3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0
KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3Rl
Y3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00MzYxLDEwICs0MzYxLDEwIEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1
aW50NjRfdCBuYXZpCiAgICAgICAgIG1fbmF2aWdhdGlvbkNsaWVudC0+ZGlkRmluaXNoRG9jdW1l
bnRMb2FkKCp0aGlzLCBuYXZpZ2F0aW9uLmdldCgpLCBtX3Byb2Nlc3MtPnRyYW5zZm9ybUhhbmRs
ZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0KCkpLmdldCgpKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmRpZEZpbmlzaExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5
OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIExPRyhMb2Fk
aW5nLCAiV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUgLSBXZWJQYWdlUHJveHkg
JXAgd2l0aCBuYXZpZ2F0aW9uSUQgJSIgUFJJdTY0ICIgZGlkRmluaXNoTG9hZCIsIHRoaXMsIG5h
dmlnYXRpb25JRCk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkRmlu
aXNoTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQu
dG9VSW50NjQoKSwgZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5n
LCAiZGlkRmluaXNoTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0
ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwg
bV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAgIFBhZ2VDbGll
bnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQ0MDcsOSArNDQwNyw5
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklECiAgICAgbV9pc0xvYWRpbmdBbHRlcm5hdGVIVE1M
U3RyaW5nRm9yRmFpbGluZ1Byb3Zpc2lvbmFsTG9hZCA9IGZhbHNlOwogfQogCi12b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkRmFpbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBjb25zdCBVc2VyRGF0YSYg
dXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbExvYWRGb3JGcmFtZShGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJjZUVy
cm9yJiBlcnJvciwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewotICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoTG9hZGluZywgImRpZEZhaWxMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBw
YWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBkb21haW4gPSAlcywg
Y29kZSA9ICVkIiwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJ
bnQ2NCgpLCBmcmFtZUlELCBlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJvci5lcnJv
ckNvZGUoKSk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkRmFpbExv
YWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0ICIsIGRvbWFpbiA9ICVzLCBjb2RlID0gJWQiLCBtX3Byb2Nlc3MtPnByb2Nlc3NJ
ZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSwgZXJy
b3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSwgZXJyb3IuZXJyb3JDb2RlKCkpOwogCiAgICAgUGFn
ZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDQ0OSw5ICs0
NDQ5LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxMb2FkRm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELAogICAgIH0KIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQzMl90IG9wYXF1ZVNhbWVEb2N1bWVudE5hdmln
YXRpb25UeXBlLCBVUkwmJiB1cmwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMyX3Qgb3BhcXVlU2FtZURv
Y3VtZW50TmF2aWdhdGlvblR5cGUsIFVSTCYmIHVybCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRh
KQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZFNhbWVEb2N1bWVu
dE5hdmlnYXRpb25Gb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFn
ZUlELnRvVUludDY0KCksIGZyYW1lSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9h
ZGluZywgImRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZTogd2ViUElEID0gJWksIHBh
Z2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nl
c3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7
CiAKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBA
IC00NDg4LDcgKzQ0ODgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU2FtZURvY3VtZW50TmF2
aWdhdGlvbkZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90CiAgICAgICAgIHBhZ2VD
bGllbnQoKS5kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKG5hdmlnYXRpb25U
eXBlKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZU1haW5Eb2N1bWVudCh1aW50
NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZU1haW5Eb2N1bWVudChG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAg
IGlmIChtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcikKQEAgLTQ1MDcsNyArNDUw
Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp2aWV3SXNCZWNvbWluZ1Zpc2libGUoKQogI2VuZGlm
CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEp
Cit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0
YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwog
CkBAIC00NTI5LDExICs0NTI5LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlVGl0
bGVGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHRpdGxlCiAjZW5kaWYK
IH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpcnN0TGF5b3V0Rm9yRnJhbWUodWludDY0X3Qs
IGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdExh
eW91dEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQog
ewogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9p
ZCBXZWJQYWdlUHJveHk6OmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAg
UGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDU2NCw3
ICs0NTY0LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlYWNoTGF5b3V0TWlsZXN0b25lKE9w
dGlvblNldDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+IGwKICAgICBtX25hdmlnYXRpb25DbGll
bnQtPnJlbmRlcmluZ1Byb2dyZXNzRGlkQ2hhbmdlKCp0aGlzLCBsYXlvdXRNaWxlc3RvbmVzKTsK
IH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgUGFnZUNsaWVudFBy
b3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDU3OCw3ICs0NTc4LDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBVc2UKICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRpZERpc3Bs
YXlJbnNlY3VyZUNvbnRlbnQoKnRoaXMsIG1fcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2Jq
ZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVXNl
ckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJ1bkluc2VjdXJlQ29udGVu
dEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBVc2VyRGF0YSYgdXNlckRh
dGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsK
IApAQCAtNDU5Miw3ICs0NTkyLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJ1bkluc2VjdXJl
Q29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXQKICAgICBtX25h
dmlnYXRpb25DbGllbnQtPmRpZFJ1bkluc2VjdXJlQ29udGVudCgqdGhpcywgbV9wcm9jZXNzLT50
cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9iamVjdCgpKS5nZXQoKSk7CiB9CiAK
LXZvaWQgV2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NGb3JGcmFtZSh1aW50NjRfdCwgY29uc3Qg
VXNlckRhdGEmKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZERldGVjdFhTU0ZvckZyYW1lKEZyYW1l
SWRlbnRpZmllciwgY29uc3QgVXNlckRhdGEmKQogewogfQogCkBAIC00NjAxLDcgKzQ2MDEsNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6bWFpbkZyYW1lUGx1Z2luSGFuZGxlc1BhZ2VTY2FsZUdlc3R1
cmVEaWRDaGFuZ2UoYm9vbCBtYWluRnJhbQogICAgIG1fbWFpbkZyYW1lUGx1Z2luSGFuZGxlc1Bh
Z2VTY2FsZUdlc3R1cmUgPSBtYWluRnJhbWVQbHVnaW5IYW5kbGVzUGFnZVNjYWxlR2VzdHVyZTsK
IH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmZyYW1lRGlkQmVjb21lRnJhbWVTZXQodWludDY0X3Qg
ZnJhbWVJRCwgYm9vbCB2YWx1ZSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpmcmFtZURpZEJlY29tZUZy
YW1lU2V0KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIHZhbHVlKQogewogICAgIFBhZ2VD
bGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQ2MjAsNyArNDYy
MCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpiZWdpblNhZmVCcm93c2luZ0NoZWNrKGNvbnN0IFVS
TCYsIGJvb2wsIFdlYkZyYW1lUG9saWN5TGlzdGVuCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdl
UHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyh1aW50NjRfdCBmcmFt
ZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQ
b2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELAor
dm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJh
bWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwKICAgICBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25B
Y3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYg
cmVxdWVzdCwKICAgICBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYg
dXNlckRhdGEsIHVpbnQ2NF90IGxpc3RlbmVySUQpCiB7CkBAIC00NjI4LDcgKzQ2MjgsNyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKHVp
bnQ2NF90IGZyYW1lSUQsIFdlYkNvcgogICAgICAgICBXVEZNb3ZlKGZyYW1lSW5mb0RhdGEpLCBv
cmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZN
b3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNlckRhdGEsIGxp
c3RlbmVySUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgdWlu
dDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0
eU9yaWdpbiwKK3ZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0
eU9yaWdpbiwKICAgICBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25B
Y3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELAogICAgIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLAogICAgIGNvbnN0IFVzZXJE
YXRhJiB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVuZXJJRCkKQEAgLTQ3NjksNyArNDc2OSw3IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzCiAgICAgICAgIGJlZ2luU2FmZUJyb3dzaW5nQ2hlY2so
cmVxdWVzdC51cmwoKSwgZnJhbWUuaXNNYWluRnJhbWUoKSwgbGlzdGVuZXIpOwogCiAgICAgQVBJ
OjpOYXZpZ2F0aW9uKiBtYWluRnJhbWVOYXZpZ2F0aW9uID0gZnJhbWUuaXNNYWluRnJhbWUoKSA/
IG5hdmlnYXRpb24uZ2V0KCkgOiBudWxscHRyOwotICAgIFdlYkZyYW1lUHJveHkqIG9yaWdpbmF0
aW5nRnJhbWUgPSBwcm9jZXNzLT53ZWJGcmFtZShvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEuZnJh
bWVJRCk7CisgICAgV2ViRnJhbWVQcm94eSogb3JpZ2luYXRpbmdGcmFtZSA9IG9yaWdpbmF0aW5n
RnJhbWVJbmZvRGF0YS5mcmFtZUlEID8gcHJvY2Vzcy0+d2ViRnJhbWUoKm9yaWdpbmF0aW5nRnJh
bWVJbmZvRGF0YS5mcmFtZUlEKSA6IG51bGxwdHI7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKQogICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUg
PSB3ZWJzaXRlRGF0YVN0b3JlKCkucmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQpAQCAtNDg1OCw3
ICs0ODU4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvZ0ZyYW1lTmF2aWdhdGlvbihjb25zdCBX
ZWJGcmFtZVByb3h5JiBmcmFtZSwgY29uc3QgVVJMJiBwYWcKIH0KICNlbmRpZgogCi12b2lkIFdl
YlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmModWludDY0X3Qg
ZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYg
ZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCit2
b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBp
ZGVudGlmaWVyLAogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRh
dGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEs
IE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwKICAgICBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5
LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwKICAgICBjb25z
dCBVc2VyRGF0YSYgdXNlckRhdGEsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVkUmVwbHkmJiByZXBseSkKQEAgLTQ4NzYs
NyArNDg3Niw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uU3luYyh1aW50NjRfdCBmcmFtZUlELCBib29sIGlzCiAgICAgICAgIFdURk1vdmUoZnJh
bWVJbmZvRGF0YSksIG9yaWdpbmF0aW5nUGFnZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdURk1vdmUo
cmVxdWVzdCksIFdURk1vdmUocmVxdWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2Up
LCB1c2VyRGF0YSwgV1RGTW92ZShyZXBseSkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiBwcm9jZXNzLCB1aW50NjRfdCBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lk
ZW50aWZpZXIgaWRlbnRpZmllciwKK3ZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3Ms
IEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZp
ZXIgaWRlbnRpZmllciwKICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rp
b25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9E
YXRhLCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsCiAgICAgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0
Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsCiAgICAg
Y29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCkBAIC00
ODkzLDcgKzQ4OTMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvblN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eQogICAgIHNlbmRlci0+c2Vu
ZChQb2xpY3lBY3Rpb246OlVzZSwgbmF2aWdhdGlvbklELCBEb3dubG9hZElEKCksIFdURjo6bnVs
bG9wdCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dB
Y3Rpb24odWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNl
Y3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwg
UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCiAgICAgTmF2aWdhdGlvbkFjdGlvbkRh
dGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29u
c3QgU3RyaW5nJiBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRh
JiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xp
ZW50KCkpOwpAQCAtNDkzMSwxMyArNDkzMSwxMyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaQog
ICAgICAgICAKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNl
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0
eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCit2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNv
bnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBib29sIGNhblNob3dNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBkb3dubG9hZEF0dHJpYnV0ZSwg
dWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIGRl
Y2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQs
IGZyYW1lU2VjdXJpdHlPcmlnaW4sIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgcmVzcG9uc2Us
IHJlcXVlc3QsIGNhblNob3dNSU1FVHlwZSwgZG93bmxvYWRBdHRyaWJ1dGUsIGxpc3RlbmVySUQs
IHVzZXJEYXRhKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3Bv
bnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgdWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lD
aGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKK3ZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIEZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJp
dHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAogICAgIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmlu
ZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRh
JiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xp
ZW50KCkpOwpAQCAtNDk3MSw3ICs0OTcxLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBv
bGljeUZvclJlc3BvbnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywKICAg
ICB9CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojp1bmFibGVUb0ltcGxlbWVudFBvbGljeSh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgVXNlckRhdGEm
IHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OnVuYWJsZVRvSW1wbGVtZW50UG9saWN5KEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3Qg
VXNlckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9y
KHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQ5ODUsNyArNDk4NSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
Ojp1bmFibGVUb0ltcGxlbWVudFBvbGljeSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBSZXNvdXJj
ZUVycm9yCiAKIC8vIEZvcm1DbGllbnQKIAotdm9pZCBXZWJQYWdlUHJveHk6OndpbGxTdWJtaXRG
b3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZyYW1lSUQsIGNvbnN0IFZlY3Rv
cjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiYgdGV4dEZpZWxkVmFsdWVzLCB1aW50NjRfdCBs
aXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6
d2lsbFN1Ym1pdEZvcm0oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lSWRlbnRpZmllciBz
b3VyY2VGcmFtZUlELCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4mIHRl
eHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhKQogewogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShm
cmFtZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwpAQCAtNTAwMywx
MiArNTAwMywxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGVudFJ1bGVMaXN0Tm90aWZpY2F0
aW9uKFVSTCYmIHVybCwgQ29udGVudFJ1bGVMaXN0UmVzdWx0cwogICAgIG1fbmF2aWdhdGlvbkNs
aWVudC0+Y29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uKCp0aGlzLCBXVEZNb3ZlKHVybCksIFdU
Rk1vdmUocmVzdWx0cykpOwogfQogICAgIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZE5hdmlnYXRl
V2l0aE5hdmlnYXRpb25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmIHN0b3JlLCB1
aW50NjRfdCBmcmFtZUlEKSAKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWROYXZpZ2F0ZVdpdGhOYXZp
Z2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiBzdG9yZSwgRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFy
ZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgc3RvcmUsIGZyYW1lSUQpOwogfQogCi12b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQoUmVmPFdlYlByb2Nl
c3NQcm94eT4mJiBwcm9jZXNzLCBjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiBzdG9yZSwg
dWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWROYXZpZ2F0ZVdpdGhOYXZp
Z2F0aW9uRGF0YVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIGNvbnN0IFdl
Yk5hdmlnYXRpb25EYXRhU3RvcmUmIHN0b3JlLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsK
ICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWROYXZpZ2F0ZVdpdGhOYXZp
Z2F0aW9uRGF0YVNoYXJlZDogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCwgcHJvY2Vz
cy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSk7CiAKQEAgLTUwMjMs
MTQgKzUwMjMsMTQgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRp
b25EYXRhU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHIKICAgICBwcm9jZXNzLT5wcm9j
ZXNzUG9vbCgpLmhpc3RvcnlDbGllbnQoKS5kaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShw
cm9jZXNzLT5wcm9jZXNzUG9vbCgpLCAqdGhpcywgc3RvcmUsICpmcmFtZSk7CiB9CiAKLXZvaWQg
V2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90
IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNv
bnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJM
U3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBkaWRQZXJmb3JtQ2xpZW50
UmVkaXJlY3RTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgc291cmNlVVJMU3RyaW5nLCBkZXN0
aW5hdGlvblVSTFN0cmluZywgZnJhbWVJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNz
LCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlv
blVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJm
b3JtQ2xpZW50UmVkaXJlY3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVS
TFN0cmluZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRChMb2FkaW5nLCAiZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkOiB3ZWJQSUQg
PSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIHByb2Nlc3Mt
PnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQpOworICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZFBlcmZvcm1DbGllbnRSZWRpcmVj
dFNoYXJlZDogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0LCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgp
LCBmcmFtZUlELnRvVUludDY0KCkpOwogCiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0
b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNTA1MCwxMiArNTA1MCwxMiBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYgcHJvY2VzcwogICAgIHByb2Nlc3MtPnByb2Nlc3NQb29sKCkuaGlzdG9yeUNsaWVudCgpLmRp
ZFBlcmZvcm1DbGllbnRSZWRpcmVjdChwcm9jZXNzLT5wcm9jZXNzUG9vbCgpLCAqdGhpcywgc291
cmNlVVJMU3RyaW5nLCBkZXN0aW5hdGlvblVSTFN0cmluZywgKmZyYW1lKTsKIH0KIAotdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0X3Qg
ZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29u
c3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxT
dHJpbmcsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIGRpZFBlcmZvcm1TZXJ2ZXJS
ZWRpcmVjdFNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBzb3VyY2VVUkxTdHJpbmcsIGRlc3Rp
bmF0aW9uVVJMU3RyaW5nLCBmcmFtZUlEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFBl
cmZvcm1TZXJ2ZXJSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3Ms
IGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9u
VVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFBlcmZv
cm1TZXJ2ZXJSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIGNv
bnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJM
U3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKExvYWRpbmcsICJkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3Q6IHdlYlBJRCA9ICVpLCBw
YWdlSUQgPSAlIiBQUkl1NjQsIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlE
LnRvVUludDY0KCkpOwogCkBAIC01MDc2LDcgKzUwNzYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJv
Y2VzcwogICAgIHByb2Nlc3MtPnByb2Nlc3NQb29sKCkuaGlzdG9yeUNsaWVudCgpLmRpZFBlcmZv
cm1TZXJ2ZXJSZWRpcmVjdChwcm9jZXNzLT5wcm9jZXNzUG9vbCgpLCAqdGhpcywgc291cmNlVVJM
U3RyaW5nLCBkZXN0aW5hdGlvblVSTFN0cmluZywgKmZyYW1lKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmRpZFVwZGF0ZUhpc3RvcnlUaXRsZShjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBT
dHJpbmcmIHVybCwgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRVcGRh
dGVIaXN0b3J5VGl0bGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIEZy
YW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVj
dG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTUxMDcsOCArNTEwNywxMCBAQCBzdGF0aWMgdm9pZCB0
cnlTT0F1dGhvcml6YXRpb24oUmVmPEFQSTo6TmF2aWdhdGlvbkFjdGlvbj4mJiBuYXZpZ2F0aW9u
QWN0aW9uLCBXZQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6Y3JlYXRlTmV3UGFnZShjb25zdCBGcmFt
ZUluZm9EYXRhJiBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFBhZ2VJZGVudGlm
aWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgV2luZG93
RmVhdHVyZXMmJiB3aW5kb3dGZWF0dXJlcywgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0
aW9uQWN0aW9uRGF0YSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3JlYXRlTmV3UGFnZTo6RGVs
YXllZFJlcGx5JiYgcmVwbHkpCiB7Ci0gICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIG1fcHJv
Y2Vzcy0+d2ViRnJhbWUob3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLmZyYW1lSUQpKTsKLSAgICBh
dXRvIG9yaWdpbmF0aW5nRnJhbWVJbmZvID0gQVBJOjpGcmFtZUluZm86OmNyZWF0ZShvcmlnaW5h
dGluZ0ZyYW1lSW5mb0RhdGEsIG9yaWdpbmF0aW5nUGFnZUlEID8gbV9wcm9jZXNzLT53ZWJQYWdl
KCpvcmlnaW5hdGluZ1BhZ2VJRCkgOiBudWxscHRyKTsKKyAgICBNRVNTQUdFX0NIRUNLKG1fcHJv
Y2Vzcywgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLmZyYW1lSUQpOworICAgIE1FU1NBR0VfQ0hF
Q0sobV9wcm9jZXNzLCBtX3Byb2Nlc3MtPndlYkZyYW1lKCpvcmlnaW5hdGluZ0ZyYW1lSW5mb0Rh
dGEuZnJhbWVJRCkpOworCisgICAgYXV0byBvcmlnaW5hdGluZ0ZyYW1lSW5mbyA9IEFQSTo6RnJh
bWVJbmZvOjpjcmVhdGUob3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBtX3Byb2Nlc3MtPndlYlBh
Z2UoKm9yaWdpbmF0aW5nUGFnZUlEKSk7CiAgICAgYXV0byBtYWluRnJhbWVVUkwgPSBtX21haW5G
cmFtZSA/IG1fbWFpbkZyYW1lLT51cmwoKSA6IFVSTCgpOwogICAgIGF1dG8gY29tcGxldGlvbkhh
bmRsZXIgPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBtYWluRnJhbWVV
UkwsIHJlcXVlc3QsIHJlcGx5ID0gV1RGTW92ZShyZXBseSldIChSZWZQdHI8V2ViUGFnZVByb3h5
PiBuZXdQYWdlKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFuZXdQYWdlKSB7CkBAIC01MTc4LDcg
KzUxODAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xvc2VQYWdlKGJvb2wgc3RvcFJlc3BvbnNp
dmVuZXNzVGltZXIpCiAgICAgbV91aUNsaWVudC0+Y2xvc2UodGhpcyk7CiB9CiAKLXZvaWQgV2Vi
UGFnZVByb3h5OjpydW5KYXZhU2NyaXB0QWxlcnQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2Vj
dXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQ6OkRlbGF5ZWRSZXBseSYm
IHJlcGx5KQordm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbiwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2Ny
aXB0QWxlcnQ6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQogewogICAgIFdlYkZyYW1lUHJveHkqIGZy
YW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKG1f
cHJvY2VzcywgZnJhbWUpOwpAQCAtNTE5Nyw3ICs1MTk5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OnJ1bkphdmFTY3JpcHRBbGVydCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdp
bkRhdGEKICAgICBtX3VpQ2xpZW50LT5ydW5KYXZhU2NyaXB0QWxlcnQodGhpcywgbWVzc2FnZSwg
ZnJhbWUsIHNlY3VyaXR5T3JpZ2luLCBXVEZNb3ZlKHJlcGx5KSk7CiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpydW5KYXZhU2NyaXB0Q29uZmlybSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1
cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRDb25maXJtOjpEZWxheWVkUmVwbHkm
JiByZXBseSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdp
biwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZh
U2NyaXB0Q29uZmlybTo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7CiAgICAgV2ViRnJhbWVQcm94
eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hF
Q0sobV9wcm9jZXNzLCBmcmFtZSk7CkBAIC01MjE3LDcgKzUyMTksNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6cnVuSmF2YVNjcmlwdENvbmZpcm0odWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJp
dHlPcmlnaW5EYQogICAgIG1fdWlDbGllbnQtPnJ1bkphdmFTY3JpcHRDb25maXJtKHRoaXMsIG1l
c3NhZ2UsIGZyYW1lLCBzZWN1cml0eU9yaWdpbiwgV1RGTW92ZShyZXBseSkpOwogfQogCi12b2lk
IFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdFByb21wdCh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpS
dW5KYXZhU2NyaXB0UHJvbXB0OjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBT
ZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5K
YXZhU2NyaXB0UHJvbXB0OjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsKICAgICBXZWJGcmFtZVBy
b3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9D
SEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKQEAgLTUzNzYsNyArNTM3OCw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5Ojpyb290Vmlld1RvQWNjZXNzaWJpbGl0eVNjcmVlbihjb25zdCBJbnRSZWN0JiB2aWV3
UmVjdCwgQ29tcGxlCiAgICAgY29tcGxldGlvbkhhbmRsZXIocGFnZUNsaWVudCgpLnJvb3RWaWV3
VG9BY2Nlc3NpYmlsaXR5U2NyZWVuKHZpZXdSZWN0KSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5
OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2Vj
dXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw6OkRlbGF5
ZWRSZXBseSYmIHJlcGx5KQordm9pZCBXZWJQYWdlUHJveHk6OnJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRh
JiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw6OkRlbGF5ZWRSZXBseSYmIHJlcGx5
KQogewogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFt
ZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwpAQCAtNTQxNiw3ICs1
NDE4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnBhZ2VEaWRTY3JvbGwoKQogI2VuZGlmCiB9CiAK
LXZvaWQgV2ViUGFnZVByb3h5OjpydW5PcGVuUGFuZWwodWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBjb25zdCBGaWxlQ2hvb3Nl
clNldHRpbmdzJiBzZXR0aW5ncykKK3ZvaWQgV2ViUGFnZVByb3h5OjpydW5PcGVuUGFuZWwoRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1
cml0eU9yaWdpbiwgY29uc3QgRmlsZUNob29zZXJTZXR0aW5ncyYgc2V0dGluZ3MpCiB7CiAgICAg
aWYgKG1fb3BlblBhbmVsUmVzdWx0TGlzdGVuZXIpIHsKICAgICAgICAgbV9vcGVuUGFuZWxSZXN1
bHRMaXN0ZW5lci0+aW52YWxpZGF0ZSgpOwpAQCAtNTQ1NSw3ICs1NDU3LDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnNob3dTaGFyZVNoZWV0KGNvbnN0IFNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmIHNo
YXJlRGF0YSwgU2hhcmUKICAgICBwYWdlQ2xpZW50KCkuc2hvd1NoYXJlU2hlZXQoc2hhcmVEYXRh
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAgICAgCi12b2lkIFdlYlBhZ2VQcm94
eTo6cHJpbnRGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6cHJpbnRGcmFtZShGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIEFTU0VSVCghbV9pc1BlcmZvcm1pbmdET01QcmludE9wZXJhdGlv
bik7CiAgICAgbV9pc1BlcmZvcm1pbmdET01QcmludE9wZXJhdGlvbiA9IHRydWU7CkBAIC02NzY5
LDI3ICs2NzcxLDI3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpwcmludEZpbmlzaGVkQ2FsbGJhY2so
Y29uc3QgUmVzb3VyY2VFcnJvciYgcHJpbnRFcnJvciwgQ2FsbGJhCiB9CiAjZW5kaWYKIAotdm9p
ZCBXZWJQYWdlUHJveHk6OmZvY3VzZWRGcmFtZUNoYW5nZWQodWludDY0X3QgZnJhbWVJRCkKK3Zv
aWQgV2ViUGFnZVByb3h5Ojpmb2N1c2VkRnJhbWVDaGFuZ2VkKGNvbnN0IE9wdGlvbmFsPEZyYW1l
SWRlbnRpZmllcj4mIGZyYW1lSUQpCiB7CiAgICAgaWYgKCFmcmFtZUlEKSB7CiAgICAgICAgIG1f
Zm9jdXNlZEZyYW1lID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFdl
YkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKKyAgICBX
ZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoKmZyYW1lSUQpOwogICAg
IE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBmcmFtZSk7CiAKICAgICBtX2ZvY3VzZWRGcmFtZSA9
IGZyYW1lOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZnJhbWVTZXRMYXJnZXN0RnJhbWVDaGFu
Z2VkKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZnJhbWVTZXRMYXJnZXN0
RnJhbWVDaGFuZ2VkKGNvbnN0IE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4mIGZyYW1lSUQpCiB7
CiAgICAgaWYgKCFmcmFtZUlEKSB7CiAgICAgICAgIG1fZnJhbWVTZXRMYXJnZXN0RnJhbWUgPSBu
dWxscHRyOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgV2ViRnJhbWVQcm94eSogZnJh
bWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOworICAgIFdlYkZyYW1lUHJveHkqIGZy
YW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZSgqZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyht
X3Byb2Nlc3MsIGZyYW1lKTsKIAogICAgIG1fZnJhbWVTZXRMYXJnZXN0RnJhbWUgPSBmcmFtZTsK
QEAgLTczNDUsMjYgKzczNDcsMjYgQEAgV2Vha1B0cjxTZWNLZXlQcm94eVN0b3JlPiBXZWJQYWdl
UHJveHk6OnNlY0tleVByb3h5U3RvcmUoY29uc3QgV2ViQ29yZTo6QXV0aGVudGkKICAgICByZXR1
cm4gbnVsbHB0cjsKIH0KICAgICAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VQcm94eSh1aW50NjRfdCwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlUHJveHk+JiYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpCit2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkoRnJhbWVJZGVudGlmaWVyLCBS
ZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSkKIHsKICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSgqdGhpcywgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UuZ2V0KCkpOwogfQogCi12b2lk
IFdlYlBhZ2VQcm94eTo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUs
IGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0
X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWlu
dDY0X3QgZXhwZWN0ZWRVc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhjZWVkZWREYXRh
YmFzZVF1b3RhOjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpleGNl
ZWRlZERhdGFiYXNlUXVvdGEoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYg
b3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmlu
ZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9y
aWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0
ZWRVc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhjZWVkZWREYXRhYmFzZVF1b3RhOjpE
ZWxheWVkUmVwbHkmJiByZXBseSkKIHsKICAgICByZXF1ZXN0U3RvcmFnZVNwYWNlKGZyYW1lSUQs
IG9yaWdpbklkZW50aWZpZXIsIGRhdGFiYXNlTmFtZSwgZGlzcGxheU5hbWUsIGN1cnJlbnRRdW90
YSwgY3VycmVudE9yaWdpblVzYWdlLCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgZXhwZWN0ZWRVc2Fn
ZSwgW3JlcGx5ID0gV1RGTW92ZShyZXBseSldKGF1dG8gcXVvdGEpIG11dGFibGUgewogICAgICAg
ICByZXBseShxdW90YSk7CiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0
U3RvcmFnZVNwYWNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5h
bWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1
aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lk
IFdlYlBhZ2VQcm94eTo6cmVxdWVzdFN0b3JhZ2VTcGFjZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNl
TmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1
aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdl
LCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFN0
b3JhZ2UsICJyZXF1ZXN0U3RvcmFnZVNwYWNlIGZvciBmcmFtZSAlIiBQUkl1NjQgIiwgY3VycmVu
dCBxdW90YSAlIiBQUkl1NjQgIiBjdXJyZW50IHVzYWdlICUiIFBSSXU2NCAiIGV4cGVjdGVkIHVz
YWdlICUiIFBSSXU2NCwgZnJhbWVJRCwgY3VycmVudFF1b3RhLCBjdXJyZW50RGF0YWJhc2VVc2Fn
ZSwgZXhwZWN0ZWRVc2FnZSk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChTdG9yYWdlLCAi
cmVxdWVzdFN0b3JhZ2VTcGFjZSBmb3IgZnJhbWUgJSIgUFJJdTY0ICIsIGN1cnJlbnQgcXVvdGEg
JSIgUFJJdTY0ICIgY3VycmVudCB1c2FnZSAlIiBQUkl1NjQgIiBleHBlY3RlZCB1c2FnZSAlIiBQ
Ukl1NjQsIGZyYW1lSUQudG9VSW50NjQoKSwgY3VycmVudFF1b3RhLCBjdXJyZW50RGF0YWJhc2VV
c2FnZSwgZXhwZWN0ZWRVc2FnZSk7CiAKICAgICBTdG9yYWdlUmVxdWVzdHM6OnNpbmdsZXRvbigp
LnByb2Nlc3NPckFwcGVuZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBw
YWdlVVJMID0gY3VycmVudFVSTCgpLCBmcmFtZUlELCBvcmlnaW5JZGVudGlmaWVyLCBkYXRhYmFz
ZU5hbWUsIGRpc3BsYXlOYW1lLCBjdXJyZW50UXVvdGEsIGN1cnJlbnRPcmlnaW5Vc2FnZSwgY3Vy
cmVudERhdGFiYXNlVXNhZ2UsIGV4cGVjdGVkVXNhZ2UsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAgIHRoaXMtPm1ha2VT
dG9yYWdlU3BhY2VSZXF1ZXN0KGZyYW1lSUQsIG9yaWdpbklkZW50aWZpZXIsIGRhdGFiYXNlTmFt
ZSwgZGlzcGxheU5hbWUsIGN1cnJlbnRRdW90YSwgY3VycmVudE9yaWdpblVzYWdlLCBjdXJyZW50
RGF0YWJhc2VVc2FnZSwgZXhwZWN0ZWRVc2FnZSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZN
b3ZlKHByb3RlY3RlZFRoaXMpLCBmcmFtZUlELCBwYWdlVVJMID0gV1RGTW92ZShwYWdlVVJMKSwg
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgY3VycmVudFF1
b3RhXShhdXRvIHF1b3RhKSBtdXRhYmxlIHsKIAotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRChTdG9yYWdlLCAicmVxdWVzdFN0b3JhZ2VTcGFjZSByZXNwb25zZSBmb3IgZnJhbWUg
JSIgUFJJdTY0ICIsIHF1b3RhICUiIFBSSXU2NCwgZnJhbWVJRCwgcXVvdGEpOworICAgICAgICAg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChTdG9yYWdlLCAicmVxdWVzdFN0b3JhZ2VTcGFjZSBy
ZXNwb25zZSBmb3IgZnJhbWUgJSIgUFJJdTY0ICIsIHF1b3RhICUiIFBSSXU2NCwgZnJhbWVJRC50
b1VJbnQ2NCgpLCBxdW90YSk7CiAKICAgICAgICAgICAgIGlmIChxdW90YSA8PSBjdXJyZW50UXVv
dGEgJiYgdGhpcy0+Y3VycmVudFVSTCgpID09IHBhZ2VVUkwpIHsKICAgICAgICAgICAgICAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKFN0b3JhZ2UsICJzdG9yYWdlIHNwYWNlIGluY3JlYXNlIGRl
bmllZCIpOwpAQCAtNzM3Niw3ICs3Mzc4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RT
dG9yYWdlU3BhY2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGUKICAg
ICB9KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6Om1ha2VTdG9yYWdlU3BhY2VSZXF1ZXN0KHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1
cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50
RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCh1aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6
bWFrZVN0b3JhZ2VTcGFjZVJlcXVlc3QoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0
cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0
IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3Vy
cmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3Qg
ZXhwZWN0ZWRVc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKG1faXNRdW90YUluY3JlYXNlRGVuaWVkKSB7CiAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKGN1cnJlbnRRdW90YSk7CkBAIC03NDAyLDcgKzc0MDQsNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShj
b25zdCBTdHJpbmcmIG9yaWdpbklkZW50aQogICAgIG1fdWlDbGllbnQtPnJlYWNoZWRBcHBsaWNh
dGlvbkNhY2hlT3JpZ2luUXVvdGEodGhpcywgc2VjdXJpdHlPcmlnaW4uZ2V0KCksIGN1cnJlbnRR
dW90YSwgdG90YWxCeXRlc05lZWRlZCwgV1RGTW92ZShyZXBseSkpOwogfQogCi12b2lkIFdlYlBh
Z2VQcm94eTo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdl
b2xvY2F0aW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQor
dm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSh1
aW50NjRfdCBnZW9sb2NhdGlvbklELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIG9y
aWdpbklkZW50aWZpZXIpCiB7CiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3Mt
PndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBmcmFtZSk7
CkBAIC03NDQ2LDcgKzc0NDgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0TW9ja0NhcHR1cmVE
ZXZpY2VzRW5hYmxlZE92ZXJyaWRlKE9wdGlvbmFsPGJvb2w+IGVuYWJsZWQpCiB9CiAjZW5kaWYK
IAotdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUo
dWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYgIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luRGF0YSwgY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YSwgV2Vi
Q29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYgcmVxdWVzdCkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpy
ZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiAgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5EYXRhLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5EYXRhLCBXZWJDb3JlOjpNZWRpYVN0cmVh
bVJlcXVlc3QmJiByZXF1ZXN0KQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgTUVT
U0FHRV9DSEVDSyhtX3Byb2Nlc3MsIG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCkpOwpAQCAt
NzQ2MSw3ICs3NDYzLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJt
aXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQKICNlbmRpZgogfQogCi12
b2lkIFdlYlBhZ2VQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3Qg
dXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5EYXRhLCBjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5EYXRhKQordm9pZCBXZWJQYWdl
UHJveHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlE
LCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRhdGEsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEpCiB7CiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJh
bWUoZnJhbWVJRCk7CkBAIC03NDkzLDcgKzc0OTUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xl
YXJVc2VyTWVkaWFTdGF0ZSgpCiB9CiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQot
dm9pZCBXZWJQYWdlUHJveHk6OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3ModWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgb3Jp
Z2luRGF0YSwgYm9vbCBtYXlQcm9tcHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRGV2aWNlT3Jp
ZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2
b2lkIFdlYlBhZ2VQcm94eTo6c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFj
Y2VzcyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiYgb3JpZ2luRGF0YSwgYm9vbCBtYXlQcm9tcHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRGV2
aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZy
YW1lSUQpOwogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBmcmFtZSk7CkBAIC04NzM2LDcg
Kzg3MzgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFN5bmNocm9ub3VzVVJMU2NoZW1lVGFz
ayhVUkxTY2hlbWVUYXNrUGFyYW1ldGVycyYmIHBhcmFtZQogfQogCiAjaWYgRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykKLXZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0U3RvcmFnZUFj
Y2Vzc0NvbmZpcm0oY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdl
YlBhZ2VQcm94eTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1l
RG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3VpQ2xpZW50LT5yZXF1ZXN0U3Rv
cmFnZUFjY2Vzc0NvbmZpcm0oKnRoaXMsIG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCksIHN1
YkZyYW1lRG9tYWluLCB0b3BGcmFtZURvbWFpbiwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBiNDM4M2NhZjg4
ZjM3MjcyY2Y5NDc3YjY0MDM5Y2U5ZWY1Yzk0OWExLi4yMDc2OTU5MWFjMWUzMjJmNTFjZGNmNTIw
ZTVhY2VlYjJlM2Y5Y2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApA
QCAtMTAxOCw3ICsxMDE4LDcgQEAgcHVibGljOgogICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluTWFp
bkZyYW1lKGNvbnN0IFN0cmluZyYsIGJvb2wsIFdURjo6RnVuY3Rpb248dm9pZCAoQVBJOjpTZXJp
YWxpemVkU2NyaXB0VmFsdWUqLCBib29sIGhhZEV4Y2VwdGlvbiwgY29uc3QgV2ViQ29yZTo6RXhj
ZXB0aW9uRGV0YWlscyYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24p
OwogICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lU2NyaXB0V29ybGQoY29uc3QgU3Ry
aW5nJiwgYm9vbCwgY29uc3QgT3B0aW9uYWw8U3RyaW5nPiYgd29ybGROYW1lLCBXVEY6OkZ1bmN0
aW9uPHZvaWQoQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqLCBib29sIGhhZEV4Y2VwdGlvbiwg
Y29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGV0YWlscyYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYm
IGNhbGxiYWNrRnVuY3Rpb24pOwogICAgIC8vIEZvciBzdWIgZnJhbWVzLgotICAgIHZvaWQgcnVu
SmF2YVNjcmlwdEluRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBzY3JpcHQs
IGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgV1RGOjpGdW5jdGlvbjx2b2lkKEFQSTo6U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlKiwgYm9vbCBoYWRFeGNlcHRpb24sIGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlv
bkRldGFpbHMmLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKTsKKyAg
ICB2b2lkIHJ1bkphdmFTY3JpcHRJbkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgV1RGOjpGdW5jdGlvbjx2
b2lkKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiwgYm9vbCBoYWRFeGNlcHRpb24sIGNvbnN0
IFdlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHMmLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxs
YmFja0Z1bmN0aW9uKTsKICAgICB2b2lkIGZvcmNlUmVwYWludChSZWZQdHI8Vm9pZENhbGxiYWNr
PiYmKTsKIAogICAgIGZsb2F0IGhlYWRlckhlaWdodChXZWJGcmFtZVByb3h5Jik7CkBAIC0xMTYx
LDcgKzExNjEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkcmF3UmVjdFRvSW1hZ2UoV2ViRnJhbWVQ
cm94eSosIGNvbnN0IFByaW50SW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJiwgUmVmPEltYWdlQ2FsbGJhY2s+JiYpOwogICAgIHZvaWQgZHJhd1Bh
Z2VzVG9QREYoV2ViRnJhbWVQcm94eSosIGNvbnN0IFByaW50SW5mbyYsIHVpbnQzMl90IGZpcnN0
LCB1aW50MzJfdCBjb3VudCwgUmVmPERhdGFDYWxsYmFjaz4mJik7CiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKLSAgICB1aW50MzJfdCBjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BE
Rih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mLCBEcmF3VG9QREZDYWxsYmFjazo6
Q2FsbGJhY2tGdW5jdGlvbiYmKTsKKyAgICB1aW50MzJfdCBjb21wdXRlUGFnZXNGb3JQcmludGlu
Z0FuZERyYXdUb1BERihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYs
IERyYXdUb1BERkNhbGxiYWNrOjpDYWxsYmFja0Z1bmN0aW9uJiYpOwogICAgIHZvaWQgZHJhd1Rv
UERGQ2FsbGJhY2soY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBwZGZEYXRhLCBXZWJLaXQ6OkNh
bGxiYWNrSUQpOwogI2VuZGlmCiAjZWxpZiBQTEFURk9STShHVEspCkBAIC0xMjUyLDcgKzEyNTIs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRz
KGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKICAgICBXZWJDb3JlOjpJbnRTaXplIHZpZXdwb3J0
U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdwb3J0U2l6ZUZv
ckNTU1ZpZXdwb3J0VW5pdHMudmFsdWVPcihXZWJDb3JlOjpJbnRTaXplKCkpOyB9CiAKLSAgICB2
b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5KHVpbnQ2NF90IGZyYW1l
SUQsIFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYpOwogCiAgICAgU3BlbGxEb2N1
bWVudFRhZyBzcGVsbERvY3VtZW50VGFnKCk7CiAKQEAgLTE0NTIsMTIgKzE0NTIsMTIgQEAgcHVi
bGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAg
IHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4mIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShjb25z
dCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIGRpZENv
bW1pdENyb3NzU2l0ZUxvYWRXaXRoRGF0YVRyYW5zZmVyRnJvbVByZXZhbGVudFJlc291cmNlKCk7
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgdm9pZCBzaG91
bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKHVpbnQ2NF90IGZyYW1lSUQs
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBib29sIG1heVByb21wdCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lv
blN0YXRlKT4mJik7CisgICAgdm9pZCBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiYsIGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6
OkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmKTsKICNlbmRpZgog
CiAgICAgc3RhdGljIFdlYlBhZ2VQcm94eSogbm9uRXBoZW1lcmFsV2ViUGFnZVByb3h5KCk7CkBA
IC0xNDk4LDMzICsxNDk4LDMzIEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgUHJvdmlzaW9uYWxQ
YWdlUHJveHkqIHByb3Zpc2lvbmFsUGFnZVByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9wcm92aXNp
b25hbFBhZ2UuZ2V0KCk7IH0KLSAgICB2b2lkIGNvbW1pdFByb3Zpc2lvbmFsUGFnZSh1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUs
IGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5
cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYsIGJvb2wgY29udGFpbnNQbHVnaW5E
b2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJ
bnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBjb21taXRQcm92aXNp
b25hbFBhZ2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlk
ZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5m
byYsIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5z
ZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJik7
CiAKICAgICAvLyBMb2dpYyBzaGFyZWQgYmV0d2VlbiB0aGUgV2ViUGFnZVByb3h5IGFuZCB0aGUg
UHJvdmlzaW9uYWxQYWdlUHJveHkuCi0gICAgdm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVpbnQ2NF90IGZyYW1lSUQsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYsIFVSTCYmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBV
c2VyRGF0YSYpOwotICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yJiwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEm
KTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVpbnQ2NF90IGZyYW1lSUQsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFVz
ZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0
cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQg
ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNv
bnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJM
U3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmln
YXRpb25EYXRhU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFdlYk5hdmlnYXRp
b25EYXRhU3RvcmUmLCB1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZENoYW5nZVByb3Zp
c2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWludDY0X3Qg
ZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJik7Ci0gICAgdm9pZCBkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLAorICAgIHZvaWQg
ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJM
JiYsIFVSTCYmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlk
RmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYs
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0
cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBXZWJD
b3JlOjpXaWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlk
UmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBVc2VyRGF0YSYp
OworICAgIHZvaWQgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRl
c3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQg
ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNv
bnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJM
U3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkTmF2aWdhdGVX
aXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgV2Vi
TmF2aWdhdGlvbkRhdGFTdG9yZSYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9p
ZCBkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBV
UkwmJik7CisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFy
ZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQ
b2xpY3lDaGVja0lkZW50aWZpZXIsCiAgICAgICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2
aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwKICAg
ICAgICAgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCB1aW50NjRf
dCBsaXN0ZW5lcklEKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyLAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBv
bGljeUNoZWNrSWRlbnRpZmllciwKICAgICAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1
dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBzdGFy
dFVSTFNjaGVtZVRhc2tTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgVVJMU2NoZW1lVGFz
a1BhcmFtZXRlcnMmJik7CiAgICAgdm9pZCBsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYsIEFQSTo6TmF2aWdhdGlvbiYsIGNvbnN0IElQQzo6RGF0YVJl
ZmVyZW5jZSYsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2Rpbmcs
IGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpT
aG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+
JiYgPSBXVEY6Om51bGxvcHQsIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kg
PSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7
CiAgICAgdm9pZCBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYsIEFQSTo6TmF2aWdhdGlvbiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBX
ZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBBUEk6Ok9iamVjdCogdXNlckRh
dGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0aW9uYWw8V2Vic2l0
ZVBvbGljaWVzRGF0YT4mJiA9IFdURjo6bnVsbG9wdCk7CiAgICAgdm9pZCBiYWNrRm9yd2FyZEdv
VG9JdGVtU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFdlYkNvcmU6OkJhY2tG
b3J3YXJkSXRlbUlkZW50aWZpZXImLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSYmKT4mJik7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uU3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCB1aW50NjRfdCBmcmFtZUlE
LCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRp
b25BY3Rpb25EYXRhJiYsCisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
U3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdh
dGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
JiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAogICAgICAgICBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3lu
Yzo6RGVsYXllZFJlcGx5JiYpOwogI2lmIFVTRShRVUlDS19MT09LKQogICAgIHZvaWQgZGlkUmVx
dWVzdFBhc3N3b3JkRm9yUXVpY2tMb29rRG9jdW1lbnRJbk1haW5GcmFtZVNoYXJlZChSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lKTsKICNlbmRpZgogI2lmIEVO
QUJMRShDT05URU5UX0ZJTFRFUklORykKLSAgICB2b2lkIGNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xv
YWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBXZWJDb3JlOjpD
b250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImLCB1aW50NjRfdCBmcmFtZUlEKTsKKyAgICB2b2lk
IGNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmLCBjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImLCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIpOwogI2VuZGlmCiAKICAgICB2b2lkIGR1bXBBZENsaWNrQXR0
cmlidXRpb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBTdHJpbmcmKT4mJik7CkBAIC0x
NTYxLDcgKzE1NjEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1
ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOwogCi0gICAgdm9pZCByZXF1ZXN0U3RvcmFn
ZVNwYWNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVp
bnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRf
dCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgV1RGOjpDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJik7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFn
ZVNwYWNlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5
TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2Us
IHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBX
VEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmKTsKIAogICAgIFVSTCBjdXJy
ZW50UmVzb3VyY2VEaXJlY3RvcnlVUkwoKSBjb25zdDsKIApAQCAtMTU4MSw3ICsxNTgxLDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZVRocm90dGxlU3RhdGUoKTsKICAgICB2b2lkIHVwZGF0
ZUhpZGRlblBhZ2VUaHJvdHRsaW5nQXV0b0luY3JlYXNlcygpOwogCi0gICAgYm9vbCBzdXNwZW5k
Q3VycmVudFBhZ2VJZlBvc3NpYmxlKEFQSTo6TmF2aWdhdGlvbiYsIE9wdGlvbmFsPHVpbnQ2NF90
PiBtYWluRnJhbWVJRCwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgU2hvdWxkRGVsYXlD
bG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKTsKKyAgICBib29s
IHN1c3BlbmRDdXJyZW50UGFnZUlmUG9zc2libGUoQVBJOjpOYXZpZ2F0aW9uJiwgT3B0aW9uYWw8
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBtYWluRnJhbWVJRCwgUHJvY2Vzc1N3YXBSZXF1ZXN0
ZWRCeUNsaWVudCwgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdNb2RlKTsKIAogICAgIGVudW0gY2xhc3MgUmVzZXRTdGF0ZVJlYXNvbiB7CiAgICAg
ICAgIFBhZ2VJbnZhbGlkYXRlZCwKQEAgLTE2MTAsMzIgKzE2MTAsMzIgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHJlcXVlc3RQb2ludGVyVW5sb2NrKCk7CiAjZW5kaWYKIAotICAgIHZvaWQgZGlkQ3Jl
YXRlTWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkQ3JlYXRlU3ViZnJh
bWUodWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRDcmVhdGVXaW5kb3codWludDY0X3Qg
ZnJhbWVJRCwgV2ViQ29yZTo6R2xvYmFsV2luZG93SWRlbnRpZmllciYmKTsKLQotICAgIHZvaWQg
ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIFVSTCYmLCBVUkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRh
dGEmKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCB3aWxsUGVy
Zm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5n
JiB1cmwsIGRvdWJsZSBkZWxheSwgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCk7Ci0gICAg
dm9pZCBkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpOwot
ICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKLSAgICB2b2lkIGRpZEZhaWxQcm92aXNp
b25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
Y29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciYsIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAg
dm9pZCBkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29u
dGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0
aWZpY2F0ZUluZm8mLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNv
cmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBV
c2VyRGF0YSYpOwotICAgIHZvaWQgZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBVc2VyRGF0YSYpOwotICAg
IHZvaWQgZGlkRmluaXNoTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZEZhaWxMb2FkRm9yRnJh
bWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yJiwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZFNhbWVEb2N1
bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIHVpbnQzMl90IHNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLCBVUkwmJiwgY29uc3Qg
VXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZENoYW5nZU1haW5Eb2N1bWVudCh1aW50NjRfdCBmcmFt
ZUlEKTsKLSAgICB2b2lkIGRpZEV4cGxpY2l0T3BlbkZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IFVSTCYmKTsKLQotICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgY29uc3QgU3RyaW5nJiwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZEZpcnN0
TGF5b3V0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2
b2lkIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRp
ZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJE
YXRhJik7Ci0gICAgdm9pZCBkaWREZXRlY3RYU1NGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkQ3JlYXRlTWFpbkZyYW1lKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRDcmVhdGVTdWJmcmFtZShXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkQ3JlYXRlV2luZG93KFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgV2ViQ29yZTo6R2xvYmFsV2luZG93SWRlbnRpZmllciYmKTsKKworICAgIHZvaWQg
ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYsIFVSTCYmIHVucmVhY2hhYmxlVVJMLCBjb25z
dCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBVc2VyRGF0YSYpOwor
ICAgIHZvaWQgd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB1cmwsIGRvdWJsZSBkZWxheSwgV2ViQ29yZTo6TG9j
a0JhY2tGb3J3YXJkTGlzdCk7CisgICAgdm9pZCBkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZy
YW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRDaGFuZ2VQcm92aXNp
b25hbFVSTEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBVUkwmJik7CisgICAgdm9pZCBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3Ry
aW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNv
cmU6OldpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRD
b21taXRMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250
ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRp
ZmljYXRlSW5mbyYsIGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29y
ZTo6SGFzSW5zZWN1cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVz
ZXJEYXRhJik7CisgICAgdm9pZCBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEm
KTsKKyAgICB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRp
ZEZhaWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0YSYp
OworICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50MzJfdCBzYW1lRG9jdW1l
bnROYXZpZ2F0aW9uVHlwZSwgVVJMJiYsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRD
aGFuZ2VNYWluRG9jdW1lbnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRp
ZEV4cGxpY2l0T3BlbkZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgVVJMJiYpOwor
CisgICAgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRGaXJzdExh
eW91dEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgVXNlckRhdGEmKTsK
KyAgICB2b2lkIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZERpc3BsYXlJ
bnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFVz
ZXJEYXRhJik7CisgICAgdm9pZCBkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWREZXRlY3RY
U1NGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFVzZXJEYXRhJik7CiAg
ICAgdm9pZCBtYWluRnJhbWVQbHVnaW5IYW5kbGVzUGFnZVNjYWxlR2VzdHVyZURpZENoYW5nZShi
b29sKTsKLSAgICB2b2lkIGZyYW1lRGlkQmVjb21lRnJhbWVTZXQodWludDY0X3QgZnJhbWVJRCwg
Ym9vbCk7CisgICAgdm9pZCBmcmFtZURpZEJlY29tZUZyYW1lU2V0KFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgYm9vbCk7CiAgICAgdm9pZCBkaWRTdGFydFByb2dyZXNzKCk7CiAgICAgdm9pZCBk
aWRDaGFuZ2VQcm9ncmVzcyhkb3VibGUpOwogICAgIHZvaWQgZGlkRmluaXNoUHJvZ3Jlc3MoKTsK
QEAgLTE2NDgsMzcgKzE2NDgsMzcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViRnJhbWVQcm94eSYs
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5h
dmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKICAgICAgICAgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRh
JiwgUmVmPFBvbGljeURlY2lzaW9uU2VuZGVyPiYmKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb25Bc3luYyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCisgICAgdm9pZCBkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVy
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAg
IEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdp
bmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVx
dWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2Um
JiByZXF1ZXN0Qm9keSwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGly
ZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7Ci0gICAg
dm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyh1aW50NjRfdCBmcmFtZUlE
LCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRp
b25BY3Rpb25EYXRhJiYsCisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
U3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAgRnJh
bWVJbmZvRGF0YSYmLCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRp
bmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJl
cXVlc3RCb2R5LAogICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RS
ZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYpOwotICAgIHZvaWQg
ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dp
bmRvd0FjdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgTmF2aWdhdGlv
bkFjdGlvbkRhdGEmJiwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0
IFN0cmluZyYgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYp
OwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsCisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2
aWdhdGlvbklELAogICAgICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0
IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVz
ZXJEYXRhJik7Ci0gICAgdm9pZCB1bmFibGVUb0ltcGxlbWVudFBvbGljeSh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgVXNlckRhdGEmKTsKKyAg
ICB2b2lkIHVuYWJsZVRvSW1wbGVtZW50UG9saWN5KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9p
ZCBiZWdpblNhZmVCcm93c2luZ0NoZWNrKGNvbnN0IFVSTCYsIGJvb2wsIFdlYkZyYW1lUG9saWN5
TGlzdGVuZXJQcm94eSYpOwogCiAgICAgV2ViQ29udGVudE1vZGUgZWZmZWN0aXZlQ29udGVudE1v
ZGVBZnRlckFkanVzdGluZ1BvbGljaWVzKEFQSTo6V2Vic2l0ZVBvbGljaWVzJiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAKLSAgICB2b2lkIHdpbGxTdWJtaXRGb3JtKHVpbnQ2
NF90IGZyYW1lSUQsIHVpbnQ2NF90IHNvdXJjZUZyYW1lSUQsIGNvbnN0IFZlY3RvcjxzdGQ6OnBh
aXI8U3RyaW5nLCBTdHJpbmc+PiYgdGV4dEZpZWxkVmFsdWVzLCB1aW50NjRfdCBsaXN0ZW5lcklE
LCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgd2lsbFN1Ym1pdEZvcm0oV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgc291cmNlRnJhbWVJRCwgY29u
c3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+JiB0ZXh0RmllbGRWYWx1ZXMsIHVp
bnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CiAKICAgICB2b2lkIGNvbnRlbnRS
dWxlTGlzdE5vdGlmaWNhdGlvbihVUkwmJiwgV2ViQ29yZTo6Q29udGVudFJ1bGVMaXN0UmVzdWx0
cyYmKTsKIAogICAgIC8vIEhpc3RvcnkgY2xpZW50Ci0gICAgdm9pZCBkaWROYXZpZ2F0ZVdpdGhO
YXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiwgdWludDY0X3QgZnJh
bWVJRCk7Ci0gICAgdm9pZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgU3RyaW5nJiBz
b3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2
NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KGNvbnN0IFN0
cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5n
LCB1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZFVwZGF0ZUhpc3RvcnlUaXRsZShjb25z
dCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIHVybCwgdWludDY0X3QgZnJhbWVJRCk7Cisg
ICAgdm9pZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9u
RGF0YVN0b3JlJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZFBlcmZv
cm1DbGllbnRSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3Ry
aW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAg
ICB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0
cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZFVwZGF0ZUhpc3RvcnlUaXRsZShjb25zdCBTdHJpbmcm
IHRpdGxlLCBjb25zdCBTdHJpbmcmIHVybCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKIAog
ICAgIC8vIFVJIGNsaWVudAogICAgIHZvaWQgY3JlYXRlTmV3UGFnZShjb25zdCBGcmFtZUluZm9E
YXRhJiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlE
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMmJiwg
TmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3JlYXRlTmV3
UGFnZTo6RGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgc2hvd1BhZ2UoKTsKLSAgICB2b2lkIHJ1
bkphdmFTY3JpcHRBbGVydCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5K
YXZhU2NyaXB0QWxlcnQ6OkRlbGF5ZWRSZXBseSYmKTsKLSAgICB2b2lkIHJ1bkphdmFTY3JpcHRD
b25maXJtKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYsIGNvbnN0IFN0cmluZyYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRD
b25maXJtOjpEZWxheWVkUmVwbHkmJik7Ci0gICAgdm9pZCBydW5KYXZhU2NyaXB0UHJvbXB0KHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFT
Y3JpcHRQcm9tcHQ6OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVy
dChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYsIGNvbnN0IFN0cmluZyYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3Jp
cHRBbGVydDo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdENvbmZpcm0o
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmLCBjb25zdCBTdHJpbmcmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0
Q29uZmlybTo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdFByb21wdChX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OkRlbGF5ZWRSZXBseSYmKTsKICAgICB2b2lkIHNldFN0YXR1
c1RleHQoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChX
ZWJIaXRUZXN0UmVzdWx0RGF0YSYmLCB1aW50MzJfdCBtb2RpZmllcnMsIFVzZXJEYXRhJiYpOwog
CkBAIC0xNzAxLDIxICsxNzAxLDIxIEBAIHByaXZhdGU6CiAgICAgdm9pZCByb290Vmlld1RvU2Ny
ZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHZpZXdSZWN0LCBNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpSb290Vmlld1RvU2NyZWVuOjpEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCBhY2Nlc3Np
YmlsaXR5U2NyZWVuVG9Sb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2NyZWVuUG9p
bnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6SW50UG9pbnQpPiYmKTsKICAgICB2
b2lkIHJvb3RWaWV3VG9BY2Nlc3NpYmlsaXR5U2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IHZpZXdSZWN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkludFJlY3QpPiYmKTsK
LSAgICB2b2lkIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDo6RGVs
YXllZFJlcGx5JiYpOworICAgIHZvaWQgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5CZWZvcmVV
bmxvYWRDb25maXJtUGFuZWw6OkRlbGF5ZWRSZXBseSYmKTsKICAgICB2b2lkIGRpZENoYW5nZVZp
ZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmKTsKICAg
ICB2b2lkIHBhZ2VEaWRTY3JvbGwoKTsKLSAgICB2b2lkIHJ1bk9wZW5QYW5lbCh1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBXZWJDb3Jl
OjpGaWxlQ2hvb3NlclNldHRpbmdzJik7CisgICAgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBjb25z
dCBXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzJik7CiAgICAgdm9pZCBzaG93U2hhcmVTaGVl
dChjb25zdCBXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJMJiwgU2hhcmVTaGVldENhbGxi
YWNrSUQpOwotICAgIHZvaWQgcHJpbnRGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJl
bnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0
YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6RXhjZWVkZWREYXRhYmFzZVF1b3RhOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBwcmlu
dEZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKKyAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRh
YmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90
YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VV
c2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhj
ZWVkZWREYXRhYmFzZVF1b3RhOjpEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCByZWFjaGVkQXBw
bGljYXRpb25DYWNoZU9yaWdpblF1b3RhKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwg
dWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCB0b3RhbEJ5dGVzTmVlZGVkLCBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpSZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhOjpEZWxh
eWVkUmVwbHkmJik7Ci0gICAgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJh
bWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdp
bklkZW50aWZpZXIpOworICAgIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZy
YW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgU3Ry
aW5nIG9yaWdpbklkZW50aWZpZXIpOwogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgdXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyKCk7CiAjZW5kaWYKLSAgICB2b2lkIHJlcXVlc3RVc2VyTWVkaWFQZXJt
aXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5J
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9j
dW1lbnRPcmlnaW5JZGVudGlmaWVyLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJik7Ci0g
ICAgdm9pZCBlbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJ
RCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRhdGEsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEpOworICAgIHZvaWQgcmVxdWVzdFVzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFTdHJl
YW1SZXF1ZXN0JiYpOworICAgIHZvaWQgZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWlu
dDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRhdGEsIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEp
OwogICAgIHZvaWQgYmVnaW5Nb25pdG9yaW5nQ2FwdHVyZURldmljZXMoKTsKIAogICAgIHZvaWQg
cnVuTW9kYWwoKTsKQEAgLTE4OTUsOCArMTg5NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwcmlu
dEZpbmlzaGVkQ2FsbGJhY2soY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIENhbGxiYWNr
SUQpOwogI2VuZGlmCiAKLSAgICB2b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQodWludDY0X3QgZnJh
bWVJRCk7Ci0gICAgdm9pZCBmcmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQodWludDY0X3QgZnJh
bWVJRCk7CisgICAgdm9pZCBmb2N1c2VkRnJhbWVDaGFuZ2VkKGNvbnN0IE9wdGlvbmFsPFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcj4mKTsKKyAgICB2b2lkIGZyYW1lU2V0TGFyZ2VzdEZyYW1lQ2hh
bmdlZChjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+Jik7CiAKICAgICB2
b2lkIGRpZEZpbmlzaExvYWRpbmdEYXRhRm9yQ3VzdG9tQ29udGVudFByb3ZpZGVyKGNvbnN0IFN0
cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpOwogCkBA
IC0xOTk3LDcgKzE5OTcsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ09OVEVO
VF9GSUxURVJJTkcpCi0gICAgdm9pZCBjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWUo
Y29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiwgdWludDY0X3QgZnJh
bWVJRCk7CisgICAgdm9pZCBjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWUoY29uc3Qg
V2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyKTsKICNlbmRpZgogCiAgICAgdm9pZCB0cnlSZWxvYWRBZnRlclByb2Nlc3NUZXJtaW5h
dGlvbigpOwpAQCAtMjExMCw3ICsyMTEwLDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgYm9vbCBp
c0luSGFyZHdhcmVLZXlib2FyZE1vZGUoKTsKICNlbmRpZgogCi0gICAgdm9pZCBtYWtlU3RvcmFn
ZVNwYWNlUmVxdWVzdCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlO
YW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwg
dWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmKTsKKyAgICB2b2lkIG1ha2VTdG9yYWdl
U3BhY2VSZXF1ZXN0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBvcmln
aW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBk
aXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2lu
VXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVz
YWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJik7CiAKICAgICBXZWFrUHRy
PFBhZ2VDbGllbnQ+IG1fcGFnZUNsaWVudDsKICAgICBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlv
bj4gbV9jb25maWd1cmF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGVjYWQ5NWU0NmI1NDNhYzkxNTA0MGU2MGVmNDA0YmVk
NjQyNjcxNjEuLjE1ODkxOWUzMTYwMTFkNjk5NDBkZDliMWUyZjdjY2MzMWVhNGU0M2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAg
LTI1LDkgKzI1LDkgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBDcmVhdGVOZXdQ
YWdlKHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRh
LCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBzdHJ1Y3QgV2ViQ29yZTo6V2luZG93RmVh
dHVyZXMgd2luZG93RmVhdHVyZXMsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRh
IG5hdmlnYXRpb25BY3Rpb25EYXRhKSAtPiAoT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXI+IG5ld1BhZ2VJRCwgT3B0aW9uYWw8V2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
PiBuZXdQYWdlUGFyYW1ldGVycykgU3luY2hyb25vdXMKICAgICBTaG93UGFnZSgpCiAgICAgQ2xv
c2VQYWdlKGJvb2wgc3RvcFJlc3BvbnNpdmVuZXNzVGltZXIpCi0gICAgUnVuSmF2YVNjcmlwdEFs
ZXJ0KHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEg
ZnJhbWVTZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3NhZ2UpIC0+ICgpIFN5bmNocm9ub3VzCi0g
ICAgUnVuSmF2YVNjcmlwdENvbmZpcm0odWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSkg
LT4gKGJvb2wgcmVzdWx0KSBTeW5jaHJvbm91cwotICAgIFJ1bkphdmFTY3JpcHRQcm9tcHQodWlu
dDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNl
Y3VyaXR5T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSwgU3RyaW5nIGRlZmF1bHRWYWx1ZSkgLT4gKFN0
cmluZyByZXN1bHQpIFN5bmNocm9ub3VzCisgICAgUnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFN0cmluZyBtZXNzYWdlKSAtPiAoKSBTeW5jaHJvbm91
cworICAgIFJ1bkphdmFTY3JpcHRDb25maXJtKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmln
aW4sIFN0cmluZyBtZXNzYWdlKSAtPiAoYm9vbCByZXN1bHQpIFN5bmNocm9ub3VzCisgICAgUnVu
SmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBTdHJpbmcg
bWVzc2FnZSwgU3RyaW5nIGRlZmF1bHRWYWx1ZSkgLT4gKFN0cmluZyByZXN1bHQpIFN5bmNocm9u
b3VzCiAgICAgTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoc3RydWN0IFdlYktpdDo6V2ViSGl0VGVz
dFJlc3VsdERhdGEgaGl0VGVzdFJlc3VsdERhdGEsIHVpbnQzMl90IG1vZGlmaWVycywgV2ViS2l0
OjpVc2VyRGF0YSB1c2VyRGF0YSkKIAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQpA
QCAtNDcsOCArNDcsOCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIFNldFRvb2xU
aXAoU3RyaW5nIHRvb2xUaXApCiAgICAgU2V0Rm9jdXMoYm9vbCBmb2N1c2VkKQogICAgIFRha2VG
b2N1cyh1aW50MzJfdCBkaXJlY3Rpb24pCi0gICAgRm9jdXNlZEZyYW1lQ2hhbmdlZCh1aW50NjRf
dCBmcmFtZUlEKQotICAgIEZyYW1lU2V0TGFyZ2VzdEZyYW1lQ2hhbmdlZCh1aW50NjRfdCBmcmFt
ZUlEKQorICAgIEZvY3VzZWRGcmFtZUNoYW5nZWQoT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyPiBmcmFtZUlEKQorICAgIEZyYW1lU2V0TGFyZ2VzdEZyYW1lQ2hhbmdlZChPcHRpb25h
bDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQpCiAgICAgU2V0UmVuZGVyVHJlZVNp
emUodWludDY0X3QgdHJlZVNpemUpCiAgICAgU2V0VG9vbGJhcnNBcmVWaXNpYmxlKGJvb2wgdG9v
bGJhcnNBcmVWaXNpYmxlKQogICAgIEdldFRvb2xiYXJzQXJlVmlzaWJsZSgpIC0+IChib29sIHRv
b2xiYXJzQXJlVmlzaWJsZSkgU3luY2hyb25vdXMKQEAgLTY5LDExICs2OSwxMSBAQCBtZXNzYWdl
cyAtPiBXZWJQYWdlUHJveHkgewogICAgIEhpZGVWYWxpZGF0aW9uTWVzc2FnZSgpCiAjZW5kaWYK
IAotICAgIFJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCh1aW50NjRfdCBmcmFtZUlELCBzdHJ1
Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFN0cmlu
ZyBtZXNzYWdlKSAtPiAoYm9vbCBzaG91bGRDbG9zZSkgU3luY2hyb25vdXMKKyAgICBSdW5CZWZv
cmVVbmxvYWRDb25maXJtUGFuZWwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgU3Ry
aW5nIG1lc3NhZ2UpIC0+IChib29sIHNob3VsZENsb3NlKSBTeW5jaHJvbm91cwogICAgIFBhZ2VE
aWRTY3JvbGwoKQotICAgIFJ1bk9wZW5QYW5lbCh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHN0cnVjdCBXZWJD
b3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzIHBhcmFtZXRlcnMpCisgICAgUnVuT3BlblBhbmVsKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHN0cnVjdCBXZWJDb3JlOjpGaWxlQ2hvb3Nl
clNldHRpbmdzIHBhcmFtZXRlcnMpCiAgICAgU2hvd1NoYXJlU2hlZXQoc3RydWN0IFdlYkNvcmU6
OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwgc2hhcmVEYXRhLCB1aW50NjRfdCBjYWxsYmFja0lEKQot
ICAgIFByaW50RnJhbWUodWludDY0X3QgZnJhbWVJRCkgLT4gKCkgU3luY2hyb25vdXMKKyAgICBQ
cmludEZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSAtPiAoKSBTeW5jaHJv
bm91cwogICAgIFJ1bk1vZGFsKCkKICAgICBOb3RpZnlTY3JvbGxlclRodW1iSXNWaXNpYmxlSW5S
ZWN0KFdlYkNvcmU6OkludFJlY3Qgc2Nyb2xsZXJUaHVtYikKICAgICBSZWNvbW1lbmRlZFNjcm9s
bGJhclN0eWxlRGlkQ2hhbmdlKGludDMyX3QgbmV3U3R5bGUpCkBAIC0xMDMsMTEgKzEwMywxMSBA
QCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2VuZGlmCiAKICAgICAjIFBvbGljeSBtZXNz
YWdlcwotICAgIERlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVj
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIFN0cmluZyBk
b3dubG9hZEF0dHJpYnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1
c2VyRGF0YSkKLSAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmModWludDY0
X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVu
dGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25B
Y3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9E
YXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50
aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2lu
YWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0
YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVj
dFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5lcklE
KQotICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKHVpbnQ2NF90IGZyYW1l
SUQsIGJvb2wgaXNNYWluRnJhbWUsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEg
ZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGlj
eUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpO
YXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6
RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQ
Qzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkgLT4gKFdlYkNv
cmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIGVudW06dWlu
dDhfdCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCB1aW50NjRfdCBuZXdOYXZp
Z2F0aW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBPcHRpb25hbDxXZWJLaXQ6
OldlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQb2xpY2llcykgU3luY2hyb25vdXMKLSAgICBE
ZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24odWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQ
b2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0
OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVy
SUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgVW5hYmxlVG9JbXBsZW1lbnRQb2xp
Y3kodWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgV2ViS2l0
OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIg
cG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0
LCBib29sIGNhblNob3dNSU1FVHlwZSwgU3RyaW5nIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRf
dCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2lu
LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRh
IG5hdmlnYXRpb25BY3Rpb25EYXRhLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdp
bmF0aW5nRnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9y
aWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5j
ZSByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNl
LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQorICAgIERl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdl
YktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0cnVjdCBX
ZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25hbDxX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1
ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpIC0+
IChXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCBl
bnVtOnVpbnQ4X3QgV2ViQ29yZTo6UG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgdWludDY0X3Qg
bmV3TmF2aWdhdGlvbklELCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgT3B0aW9uYWw8
V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9saWNpZXMpIFN5bmNocm9ub3Vz
CisgICAgRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lk
ZW50aWZpZXIsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25B
Y3Rpb25EYXRhLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIGZyYW1l
TmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAg
ICBVbmFibGVUb0ltcGxlbWVudFBvbGljeShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0
YSkKIAogICAgICMgUHJvZ3Jlc3MgbWVzc2FnZXMKICAgICBEaWRDaGFuZ2VQcm9ncmVzcyhkb3Vi
bGUgdmFsdWUpCkBAIC0xMTcsNTEgKzExNyw1MSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkg
ewogICAgIFNldE5ldHdvcmtSZXF1ZXN0c0luUHJvZ3Jlc3MoYm9vbCBuZXR3b3JrUmVxdWVzdHNJ
blByb2dyZXNzKQogCiAgICAgIyBGcmFtZSBsaWZldGltZSBtZXNzYWdlcwotICAgIERpZENyZWF0
ZU1haW5GcmFtZSh1aW50NjRfdCBmcmFtZUlEKQotICAgIERpZENyZWF0ZVN1YmZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQpCisgICAgRGlkQ3JlYXRlTWFpbkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlEKQorICAgIERpZENyZWF0ZVN1YmZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlEKQogCi0gICAgRGlkQ3JlYXRlV2luZG93KHVpbnQ2NF90IGZyYW1lSUQsIHN0
cnVjdCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlmaWVyIHdpbmRvd0lkZW50aWZpZXIpCisg
ICAgRGlkQ3JlYXRlV2luZG93KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1
Y3QgV2ViQ29yZTo6R2xvYmFsV2luZG93SWRlbnRpZmllciB3aW5kb3dJZGVudGlmaWVyKQogCiAg
ICAgIyBGcmFtZSBsb2FkIG1lc3NhZ2VzCi0gICAgRGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCB1cmwsIFVS
TCB1bnJlYWNoYWJsZVVSTCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWRSZWNl
aXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1
ZXN0LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIFdpbGxQZXJmb3JtQ2xpZW50UmVk
aXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgdXJsLCBkb3VibGUgZGVsYXks
IGVudW06Ym9vbCBXZWJDb3JlOjpMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExp
c3QpCi0gICAgRGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
KQotICAgIERpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwgdXJsKQotICAgIERpZEZhaWxQcm92aXNpb25hbExv
YWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgU3RyaW5n
IHByb3Zpc2lvbmFsVVJMLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yLCBlbnVtOmJvb2wg
V2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBXZWJLaXQ6
OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFN0cmluZyBtaW1lVHlwZSwgYm9vbCBoYXND
dXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGxvYWRUeXBlLCBXZWJDb3JlOjpDZXJ0aWZp
Y2F0ZUluZm8gY2VydGlmaWNhdGVJbmZvLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9w
dGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250
ZW50LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZEZhaWxMb2FkRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yIGVycm9yLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZEZpbmlzaERv
Y3VtZW50TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWRGaW5pc2hMb2FkRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJLaXQ6OlVzZXJEYXRh
IHVzZXJEYXRhKQotICAgIERpZEZpcnN0TGF5b3V0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
V2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlM
YXlvdXRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRh
KQorICAgIERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMIHVybCwgVVJMIHVucmVh
Y2hhYmxlVVJMLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZFJlY2VpdmVTZXJ2
ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCByZXF1ZXN0LCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIFdpbGxQZXJmb3Jt
Q2xpZW50UmVkaXJlY3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
U3RyaW5nIHVybCwgZG91YmxlIGRlbGF5LCBlbnVtOmJvb2wgV2ViQ29yZTo6TG9ja0JhY2tGb3J3
YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0KQorICAgIERpZENhbmNlbENsaWVudFJlZGlyZWN0
Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCisgICAgRGlkQ2hhbmdl
UHJvdmlzaW9uYWxVUkxGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwgdXJsKQorICAgIERpZEZhaWxQcm92aXNpb25hbExv
YWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIFN0cmluZyBwcm92aXNpb25hbFVSTCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBl
cnJvciwgZW51bTpib29sIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcgd2lsbENvbnRpbnVl
TG9hZGluZywgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWRDb21taXRMb2FkRm9y
RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgU3RyaW5nIG1pbWVUeXBlLCBib29sIGhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWlu
dDMyX3QgbG9hZFR5cGUsIFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZUluZm8s
IGJvb2wgY29udGFpbnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1
cmVDb250ZW50PiBmb3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIFdlYktpdDo6VXNlckRhdGEgdXNl
ckRhdGEpCisgICAgRGlkRmFpbExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVy
cm9yLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZEZpbmlzaERvY3VtZW50TG9h
ZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkRmluaXNoTG9hZEZv
ckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkRmlyc3RMYXlvdXRGb3JG
cmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViS2l0OjpVc2VyRGF0YSB1
c2VyRGF0YSkKKyAgICBEaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkK
ICAgICBEaWRSZWFjaExheW91dE1pbGVzdG9uZShPcHRpb25TZXQ8V2ViQ29yZTo6TGF5b3V0TWls
ZXN0b25lPiBsYXlvdXRNaWxlc3RvbmVzKQotICAgIERpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHVp
bnQ2NF90IGZyYW1lSUQsIFN0cmluZyB0aXRsZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkK
LSAgICBEaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
V2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERp
ZERldGVjdFhTU0ZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6VXNlckRhdGEgdXNl
ckRhdGEpCi0gICAgRGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMyX3QgdHlwZSwgVVJMIHVybCwgV2Vi
S2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWRDaGFuZ2VNYWluRG9jdW1lbnQodWludDY0
X3QgZnJhbWVJRCkKLSAgICBEaWRFeHBsaWNpdE9wZW5Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBVUkwgdXJsKQorICAgIERpZFJlY2VpdmVUaXRsZUZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBTdHJpbmcgdGl0bGUsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEp
CisgICAgRGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZFJ1bklu
c2VjdXJlQ29udGVudEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBX
ZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZERldGVjdFhTU0ZvckZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQor
ICAgIERpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50MzJfdCB0eXBlLCBVUkwg
dXJsLCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZENoYW5nZU1haW5Eb2N1bWVu
dChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKKyAgICBEaWRFeHBsaWNpdE9wZW5G
b3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgVVJMIHVybCkKICAgICBE
aWREZXN0cm95TmF2aWdhdGlvbih1aW50NjRfdCBuYXZpZ2F0aW9uSUQpCiAKICAgICBIYXNJbnNl
Y3VyZUNvbnRlbnQoKSAtPiAoZW51bTpib29sIFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudCBo
YXNJbnNlY3VyZUNvbnRlbnQpIFN5bmNocm9ub3VzCiAKICAgICBNYWluRnJhbWVQbHVnaW5IYW5k
bGVzUGFnZVNjYWxlR2VzdHVyZURpZENoYW5nZShib29sIG1haW5GcmFtZVBsdWdpbkhhbmRsZXNQ
YWdlU2NhbGVHZXN0dXJlKQogCi0gICAgRnJhbWVEaWRCZWNvbWVGcmFtZVNldCh1aW50NjRfdCBm
cmFtZUlELCBib29sIHZhbHVlKQorICAgIEZyYW1lRGlkQmVjb21lRnJhbWVTZXQoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJvb2wgdmFsdWUpCiAKICAgICAjIEhpc3RvcnkgY2xp
ZW50IG1lc3NhZ2VzLgotICAgIERpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKHN0cnVjdCBX
ZWJLaXQ6OldlYk5hdmlnYXRpb25EYXRhU3RvcmUgc3RvcmUsIHVpbnQ2NF90IGZyYW1lSUQpCi0g
ICAgRGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KFN0cmluZyBzb3VyY2VVUkxTdHJpbmcsIFN0cmlu
ZyBkZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCkKLSAgICBEaWRQZXJmb3Jt
U2VydmVyUmVkaXJlY3QoU3RyaW5nIHNvdXJjZVVSTFN0cmluZywgU3RyaW5nIGRlc3RpbmF0aW9u
VVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKQotICAgIERpZFVwZGF0ZUhpc3RvcnlUaXRsZShT
dHJpbmcgdGl0bGUsIFN0cmluZyB1cmwsIHVpbnQ2NF90IGZyYW1lSUQpCisgICAgRGlkTmF2aWdh
dGVXaXRoTmF2aWdhdGlvbkRhdGEoc3RydWN0IFdlYktpdDo6V2ViTmF2aWdhdGlvbkRhdGFTdG9y
ZSBzdG9yZSwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCisgICAgRGlkUGVyZm9y
bUNsaWVudFJlZGlyZWN0KFN0cmluZyBzb3VyY2VVUkxTdHJpbmcsIFN0cmluZyBkZXN0aW5hdGlv
blVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCisgICAgRGlkUGVy
Zm9ybVNlcnZlclJlZGlyZWN0KFN0cmluZyBzb3VyY2VVUkxTdHJpbmcsIFN0cmluZyBkZXN0aW5h
dGlvblVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCisgICAgRGlk
VXBkYXRlSGlzdG9yeVRpdGxlKFN0cmluZyB0aXRsZSwgU3RyaW5nIHVybCwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQpCiAKICAgICAjIEN1c3RvbSByZXByZXNlbnRhdGlvbnMKICAg
ICBEaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3RvbUNvbnRlbnRQcm92aWRlcihTdHJpbmcgc3Vn
Z2VzdGVkRmlsZW5hbWUsIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhKQogCiAgICAgIyBGb3JtcyBt
ZXNzYWdlcwotICAgIFdpbGxTdWJtaXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHNv
dXJjZUZyYW1lSUQsIFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiB0ZXh0RmllbGRW
YWx1ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisg
ICAgV2lsbFN1Ym1pdEZvcm0oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBzb3VyY2VGcmFtZUlELCBWZWN0b3I8c3RkOjpwYWlyPFN0cmlu
ZywgU3RyaW5nPj4gdGV4dEZpZWxkVmFsdWVzLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6
OlVzZXJEYXRhIHVzZXJEYXRhKQogCiAgICAgIyBDYWxsYmFjayBtZXNzYWdlcwogICAgIFZvaWRD
YWxsYmFjayhXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKQEAgLTI3NSwxOCArMjc1LDE4
IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjZW5kaWYKIAogICAgICMgRGF0YWJhc2Ug
bWVzc2FnZXMKLSAgICBFeGNlZWRlZERhdGFiYXNlUXVvdGEodWludDY0X3QgZnJhbWVJRCwgU3Ry
aW5nIG9yaWdpbklkZW50aWZpZXIsIFN0cmluZyBkYXRhYmFzZU5hbWUsIFN0cmluZyBkYXRhYmFz
ZURpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmln
aW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVk
VXNhZ2UpIC0+ICh1aW50NjRfdCBuZXdRdW90YSkgU3luY2hyb25vdXMKKyAgICBFeGNlZWRlZERh
dGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyBvcmln
aW5JZGVudGlmaWVyLCBTdHJpbmcgZGF0YWJhc2VOYW1lLCBTdHJpbmcgZGF0YWJhc2VEaXNwbGF5
TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2Us
IHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlKSAt
PiAodWludDY0X3QgbmV3UXVvdGEpIFN5bmNocm9ub3VzCiAKICAgICAjIEFwcGxpY2F0aW9uIGNh
Y2hlIG1lc3NhZ2VzCiAgICAgUmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTdHJp
bmcgb3JpZ2luSWRlbnRpZmllciwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCB0b3Rh
bEJ5dGVzTmVlZGVkKSAtPiAodWludDY0X3QgbmV3UXVvdGEpIFN5bmNocm9ub3VzCiAKICAgICAj
IEdlb2xvY2F0aW9uIG1lc3NhZ2VzCi0gICAgUmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZv
ckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBv
cmlnaW5JZGVudGlmaWVyKQorICAgIFJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFt
ZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCiAgICAgCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKICAgICAjIE1lZGlhU3RlYW0gbWVzc2FnZXMKLSAgICBSZXF1ZXN0VXNlck1lZGlhUGVybWlz
c2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBzdHJ1
Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRl
bnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCBy
ZXF1ZXN0KQotICAgIEVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJN
ZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllcikKKyAgICBS
ZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIHN0cnVjdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIs
IHN0cnVjdCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QgcmVxdWVzdCkKKyAgICBFbnVtZXJh
dGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEg
dXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyKQogICAgIEJlZ2lu
TW9uaXRvcmluZ0NhcHR1cmVEZXZpY2VzKCkKICNlbmRpZgogCkBAIC00NzMsNyArNDczLDcgQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFTlRf
RklMVEVSSU5HKQotICAgIENvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShXZWJDb3Jl
OjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIgdW5ibG9ja0hhbmRsZXIsIHVpbnQ2NF90IGZy
YW1lSUQpCisgICAgQ29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKFdlYkNvcmU6OkNv
bnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciB1bmJsb2NrSGFuZGxlciwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQpCiAjZW5kaWYKIAogICAgIElzUGxheWluZ01lZGlhRGlkQ2hhbmdl
KHVuc2lnbmVkIHN0YXRlLCB1aW50NjRfdCBzb3VyY2VFbGVtZW50SUQpCkBAIC01MzksNyArNTM5
LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBMb2FkU3luY2hyb25vdXNVUkxT
Y2hlbWVUYXNrKHN0cnVjdCBXZWJLaXQ6OlVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzIHBhcmFtZXRl
cnMpIC0+IChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yIGVycm9yLCBWZWN0b3I8Y2hhcj4gZGF0YSkgU3luY2hyb25vdXMKIAogI2lmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgU2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlv
bkFuZE1vdGlvbkFjY2Vzcyh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhIG9yaWdpbiwgYm9vbCBtYXlQcm9tcHQpIC0+IChlbnVtOnVpbnQ4X3QgV2Vi
Q29yZTo6RGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSBwZXJtaXNzaW9u
U3RhdGUpIEFzeW5jCisgICAgU2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFj
Y2VzcyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4sIGJvb2wgbWF5UHJvbXB0KSAtPiAoZW51bTp1aW50OF90
IFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUgcGVybWlz
c2lvblN0YXRlKSBBc3luYwogI2VuZGlmCiAKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5U
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggZTE2
OTEzN2Y1Mzg5ZDMwYmI4YjExYjNhOGUxZjUwY2E0M2FhMDZlZC4uOTViNTg2MzlmM2M0MGNjNjMw
MGE0NGYyYzA0NDllZmZlZjhhZDEzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCkBAIC04MjcsMjUgKzgyNywyNSBAQCB2b2lkIFdlYlByb2Nlc3NQcm94
eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciogbGF1bmNoZXIsIElQQzo6Q29u
bmVjdAogI2VuZGlmCiB9CiAKLVdlYkZyYW1lUHJveHkqIFdlYlByb2Nlc3NQcm94eTo6d2ViRnJh
bWUodWludDY0X3QgZnJhbWVJRCkgY29uc3QKK1dlYkZyYW1lUHJveHkqIFdlYlByb2Nlc3NQcm94
eTo6d2ViRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIGNvbnN0CiB7CiAgICAgaWYgKCFX
ZWJGcmFtZVByb3h5TWFwOjppc1ZhbGlkS2V5KGZyYW1lSUQpKQotICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICByZXR1cm4gbV9mcmFtZU1hcC5nZXQoZnJh
bWVJRCk7CiB9CiAKLWJvb2wgV2ViUHJvY2Vzc1Byb3h5OjpjYW5DcmVhdGVGcmFtZSh1aW50NjRf
dCBmcmFtZUlEKSBjb25zdAorYm9vbCBXZWJQcm9jZXNzUHJveHk6OmNhbkNyZWF0ZUZyYW1lKEZy
YW1lSWRlbnRpZmllciBmcmFtZUlEKSBjb25zdAogewogICAgIHJldHVybiBXZWJGcmFtZVByb3h5
TWFwOjppc1ZhbGlkS2V5KGZyYW1lSUQpICYmICFtX2ZyYW1lTWFwLmNvbnRhaW5zKGZyYW1lSUQp
OwogfQogCi12b2lkIFdlYlByb2Nlc3NQcm94eTo6ZnJhbWVDcmVhdGVkKHVpbnQ2NF90IGZyYW1l
SUQsIFdlYkZyYW1lUHJveHkmIGZyYW1lUHJveHkpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZnJh
bWVDcmVhdGVkKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJGcmFtZVByb3h5JiBmcmFtZVBy
b3h5KQogewogICAgIG1fZnJhbWVNYXAuc2V0KGZyYW1lSUQsICZmcmFtZVByb3h5KTsKIH0KIAot
dm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZERlc3Ryb3lGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQor
dm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZERlc3Ryb3lGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCkKIHsKICAgICAvLyBJZiB0aGUgcGFnZSBpcyBjbG9zZWQgYmVmb3JlIGl0IGhhcyBoYWQg
dGhlIGNoYW5jZSB0byBzZW5kIHRoZSBEaWRDcmVhdGVNYWluRnJhbWUgbWVzc2FnZQogICAgIC8v
IGJhY2sgdG8gdGhlIFVJUHJvY2VzcywgdGhlbiB0aGUgZnJhbWVEZXN0cm95ZWQgbWVzc2FnZSB3
aWxsIHN0aWxsIGJlIHJlY2VpdmVkIGJlY2F1c2UgaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggMzAwOTZkZDMwODU0OGI4OTA0OWM4MzUxMGVlYTcxYmIw
NTk3NmZmYy4uMThmNDg4MGEwYmIyZDRkODNkMmZiNmM1OTdjODdjN2NkZDZlYzg5NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTM4LDYgKzM4LDcgQEAK
ICNpbmNsdWRlICJWaXNpYmxlV2ViUGFnZUNvdW50ZXIuaCIKICNpbmNsdWRlICJXZWJDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lc3NhZ2VQ
b3J0SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KQEAg
LTk3LDcgKzk4LDcgQEAgZW51bSBjbGFzcyBBbGxvd1Byb2Nlc3NDYWNoaW5nIHsgTm8sIFllcyB9
OwogCiBjbGFzcyBXZWJQcm9jZXNzUHJveHkgOiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5
LCBwdWJsaWMgUmVzcG9uc2l2ZW5lc3NUaW1lcjo6Q2xpZW50LCBwdWJsaWMgVGhyZWFkU2FmZVJl
ZkNvdW50ZWQ8V2ViUHJvY2Vzc1Byb3h5PiwgcHVibGljIENhbk1ha2VXZWFrUHRyPFdlYlByb2Nl
c3NQcm94eT4sIHByaXZhdGUgUHJvY2Vzc1Rocm90dGxlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAg
dHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViRnJhbWVQcm94eT4+IFdlYkZyYW1l
UHJveHlNYXA7CisgICAgdHlwZWRlZiBIYXNoTWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
UmVmUHRyPFdlYkZyYW1lUHJveHk+PiBXZWJGcmFtZVByb3h5TWFwOwogICAgIHR5cGVkZWYgSGFz
aE1hcDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViUGFnZVByb3h5Kj4gV2ViUGFnZVByb3h5
TWFwOwogICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEFQSTo6VXNlckluaXRp
YXRlZEFjdGlvbj4+IFVzZXJJbml0aWF0ZWRBY3Rpb25NYXA7CiAKQEAgLTE2NCw5ICsxNjUsOSBA
QCBwdWJsaWM6CiAgICAgUmVzcG9uc2l2ZW5lc3NUaW1lciYgcmVzcG9uc2l2ZW5lc3NUaW1lcigp
IHsgcmV0dXJuIG1fcmVzcG9uc2l2ZW5lc3NUaW1lcjsgfQogICAgIGJvb2wgaXNSZXNwb25zaXZl
KCkgY29uc3Q7CiAKLSAgICBXZWJGcmFtZVByb3h5KiB3ZWJGcmFtZSh1aW50NjRfdCkgY29uc3Q7
Ci0gICAgYm9vbCBjYW5DcmVhdGVGcmFtZSh1aW50NjRfdCBmcmFtZUlEKSBjb25zdDsKLSAgICB2
b2lkIGZyYW1lQ3JlYXRlZCh1aW50NjRfdCwgV2ViRnJhbWVQcm94eSYpOworICAgIFdlYkZyYW1l
UHJveHkqIHdlYkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcikgY29uc3Q7CisgICAgYm9v
bCBjYW5DcmVhdGVGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpIGNvbnN0OworICAgIHZv
aWQgZnJhbWVDcmVhdGVkKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViRnJhbWVQcm94eSYp
OwogICAgIHZvaWQgZGlzY29ubmVjdEZyYW1lc0Zyb21QYWdlKFdlYlBhZ2VQcm94eSopOyAvLyBJ
bmNsdWRpbmcgbWFpbiBmcmFtZS4KICAgICBzaXplX3QgZnJhbWVDb3VudEluUGFnZShXZWJQYWdl
UHJveHkqKSBjb25zdDsgLy8gSW5jbHVkaW5nIG1haW4gZnJhbWUuCiAKQEAgLTMzNSw3ICszMzYs
NyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIC8vIElQQyBtZXNzYWdlIGhhbmRsZXJzLgog
ICAgIHZvaWQgdXBkYXRlQmFja0ZvcndhcmRJdGVtKGNvbnN0IEJhY2tGb3J3YXJkTGlzdEl0ZW1T
dGF0ZSYpOwotICAgIHZvaWQgZGlkRGVzdHJveUZyYW1lKHVpbnQ2NF90KTsKKyAgICB2b2lkIGRp
ZERlc3Ryb3lGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZGlkRGVz
dHJveVVzZXJHZXN0dXJlVG9rZW4odWludDY0X3QpOwogCiAgICAgYm9vbCBjYW5CZUFkZGVkVG9X
ZWJQcm9jZXNzQ2FjaGUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCBmM2Q1ZTkzMWU2ZGVlOTAyYTRhYzVl
NWZjNWIxMGRkNDYxNWIxNWQwLi4zMmJhZmVhOWUxMDk1OGMyNWNkMTk0ZGExODQ1MzZhZDA5M2Y3
NTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
Lm1lc3NhZ2VzLmluCkBAIC0yMiw3ICsyMiw3IEBACiAKIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQ
cm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgVXBkYXRlQmFja0ZvcndhcmRJdGVtKHN0cnVjdCBX
ZWJLaXQ6OkJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSBiYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUp
Ci0gICAgRGlkRGVzdHJveUZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpIAorICAgIERpZERlc3Ryb3lG
cmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkgCiAKICAgICBEaWREZXN0cm95
VXNlckdlc3R1cmVUb2tlbih1aW50NjRfdCB1c2VyR2VzdHVyZVRva2VuSUQpIAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCmluZGV4IDY4MTFlODdhNGE0
MjEwMDViZDk0YTdhYzIxNjU0M2VjYzAwYTc3ZmMuLmMyOTkyMTQ1OGFmMDFmZDk3YTQwMDkyYzcx
M2Y2N2M0MWZmNzdlN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3Lm1tCkBAIC03MDEsOSArNzAxLDkgQEAgLSAoTlNVSW50ZWdlcilfd2tfcGFnZUNvdW50
Rm9yUHJpbnRGb3JtYXR0ZXI6KF9XS1dlYlZpZXdQcmludEZvcm1hdHRlciAqKXByaW50Rm8KICAg
ICBpZiAoX2lzUHJpbnRpbmdUb1BERikKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICB1aW50NjRf
dCBmcmFtZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEOwogICAgIGlm
IChfV0tGcmFtZUhhbmRsZSAqaGFuZGxlID0gcHJpbnRGb3JtYXR0ZXIuZnJhbWVUb1ByaW50KQot
ICAgICAgICBmcmFtZUlEID0gaGFuZGxlLl9mcmFtZUlEOworICAgICAgICBmcmFtZUlEID0gV2Vi
Q29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKGhhbmRsZS5fZnJhbWVJRCk7CiAgICAgZWxzZSBp
ZiAoYXV0byBtYWluRnJhbWUgPSBfcGFnZS0+bWFpbkZyYW1lKCkpCiAgICAgICAgIGZyYW1lSUQg
PSBtYWluRnJhbWUtPmZyYW1lSUQoKTsKICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCBiMDI4MjQ4OTIwMDNhMDQ5ODkyOWU3
MDZhNTkwNDU5YTRmODcxYWNkLi44MmQzNTQyMTdiNzA2NDIwMWUzZDdiMDc2ZTViMDU5Yjk2MDEx
Y2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5
SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1Mu
bW0KQEAgLTEwNjYsNyArMTA2Niw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVTbWFydE1h
Z25pZmljYXRpb25JbmZvcm1hdGlvbkZvclBvdGVudGlhbFRhcCh1aW50NjRfdCByCiAgICAgcGFn
ZUNsaWVudCgpLmhhbmRsZVNtYXJ0TWFnbmlmaWNhdGlvbkluZm9ybWF0aW9uRm9yUG90ZW50aWFs
VGFwKHJlcXVlc3RJRCwgcmVuZGVyUmVjdCwgZml0RW50aXJlUmVjdCwgdmlld3BvcnRNaW5pbXVt
U2NhbGUsIHZpZXdwb3J0TWF4aW11bVNjYWxlKTsKIH0KIAotdWludDMyX3QgV2ViUGFnZVByb3h5
Ojpjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERih1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBQcmludEluZm8mIHByaW50SW5mbywgRHJhd1RvUERGQ2FsbGJhY2s6OkNhbGxiYWNrRnVu
Y3Rpb24mJiBjYWxsYmFjaykKK3VpbnQzMl90IFdlYlBhZ2VQcm94eTo6Y29tcHV0ZVBhZ2VzRm9y
UHJpbnRpbmdBbmREcmF3VG9QREYoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50
SW5mbyYgcHJpbnRJbmZvLCBEcmF3VG9QREZDYWxsYmFjazo6Q2FsbGJhY2tGdW5jdGlvbiYmIGNh
bGxiYWNrKQogewogICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSkgewogICAgICAgICBjYWxs
YmFjayhJUEM6OkRhdGFSZWZlcmVuY2UoKSwgQ2FsbGJhY2tCYXNlOjpFcnJvcjo6T3duZXJXYXNJ
bnZhbGlkYXRlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21h
dGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwCmluZGV4IGU2MzUz
Y2NkZDU0YWRmYTVhYTU5MDViODk3MzAzNGJjMWNlOTU2ZjIuLmJiZTI1NjUwODM5ZWUwMzUzZDdm
MDNjNmM3ODRmMzVjM2FiYmYwOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3Bw
CkBAIC0xNDMsNyArMTQzLDcgQEAgc3RhdGljIEpTVmFsdWVSZWYgZXZhbHVhdGVKYXZhU2NyaXB0
Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGYKICAgICBpZiAoIWF1
dG9tYXRpb25TZXNzaW9uUHJveHkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5l
ZChjb250ZXh0KTsKIAotICAgIHVpbnQ2NF90IGZyYW1lSUQgPSBKU1ZhbHVlVG9OdW1iZXIoY29u
dGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlEID0gV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKEpTVmFsdWVUb051
bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbikpOwogICAgIHVpbnQ2NF90IGNh
bGxiYWNrSUQgPSBKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzFdLCBleGNlcHRp
b24pOwogICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoSlNWYWx1ZVRvU3RyaW5nQ29weShjb250
ZXh0LCBhcmd1bWVudHNbMl0sIGV4Y2VwdGlvbikpOwogCkBAIC0yMjAsNyArMjIwLDcgQEAgV2Vi
Q29yZTo6RWxlbWVudCogV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZWxlbWVudEZvck5vZGVI
YW5kbGUoV2ViRnJhbWUmIGZyYW0KIAogdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpk
aWRDbGVhcldpbmRvd09iamVjdEZvckZyYW1lKFdlYkZyYW1lJiBmcmFtZSkKIHsKLSAgICB1aW50
NjRfdCBmcmFtZUlEID0gZnJhbWUuZnJhbWVJRCgpOworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlEID0gZnJhbWUuZnJhbWVJRCgpOwogICAgIGlmIChKU09iamVjdFJlZiBzY3Jp
cHRPYmplY3QgPSBtX3dlYkZyYW1lU2NyaXB0T2JqZWN0TWFwLnRha2UoZnJhbWVJRCkpCiAgICAg
ICAgIEpTVmFsdWVVbnByb3RlY3QoZnJhbWUuanNDb250ZXh0KCksIHNjcmlwdE9iamVjdCk7CiAK
QEAgLTIzMiw3ICsyMzIsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmRpZENs
ZWFyV2luZG93T2JqZWN0Rm9yRnJhbWUoV2ViRnJhbWUmIGZyYW1lKQogICAgICAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6RGlkRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oY2Fs
bGJhY2tJRCwgZXJyb3JNZXNzYWdlLCBlcnJvclR5cGUpLCAwKTsKIH0KIAotdm9pZCBXZWJBdXRv
bWF0aW9uU2Vzc2lvblByb3h5OjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgZnVu
Y3Rpb24sIFZlY3RvcjxTdHJpbmc+IGFyZ3VtZW50cywgYm9vbCBleHBlY3RzSW1wbGljaXRDYWxs
YmFja0FyZ3VtZW50LCBpbnQgY2FsbGJhY2tUaW1lb3V0LCB1aW50NjRfdCBjYWxsYmFja0lEKQor
dm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlv
bihXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcj4gb3B0aW9uYWxGcmFtZUlELCBjb25zdCBTdHJpbmcmIGZ1bmN0aW9uLCBWZWN0
b3I8U3RyaW5nPiBhcmd1bWVudHMsIGJvb2wgZXhwZWN0c0ltcGxpY2l0Q2FsbGJhY2tBcmd1bWVu
dCwgaW50IGNhbGxiYWNrVGltZW91dCwgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKICAgICBXZWJQ
YWdlKiBwYWdlID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAg
IGlmICghcGFnZSkgewpAQCAtMjQwLDcgKzI0MCw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b25Qcm94eTo6ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6UGFnZUlkZW50aWZp
CiAgICAgICAgICAgICBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0
RW51bUNvbnN0YW50VmFsdWUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JN
ZXNzYWdlOjpXaW5kb3dOb3RGb3VuZCkpLCAwKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAg
ICBXZWJGcmFtZSogZnJhbWUgPSBmcmFtZUlEID8gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2Vi
RnJhbWUoZnJhbWVJRCkgOiBwYWdlLT5tYWluV2ViRnJhbWUoKTsKKyAgICBXZWJGcmFtZSogZnJh
bWUgPSBvcHRpb25hbEZyYW1lSUQgPyBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZSgq
b3B0aW9uYWxGcmFtZUlEKSA6IHBhZ2UtPm1haW5XZWJGcmFtZSgpOwogICAgIGlmICghZnJhbWUp
IHsKICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb246OkRpZEV2YWx1YXRlSmF2
YVNjcmlwdEZ1bmN0aW9uKGNhbGxiYWNrSUQsIHsgfSwKICAgICAgICAgICAgIEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1ZShJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OkZyYW1lTm90Rm91bmQpKSwg
MCk7CkBAIC0yNTAsNyArMjUwLDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpl
dmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRpZmkKICAgICBKU09i
amVjdFJlZiBzY3JpcHRPYmplY3QgPSBzY3JpcHRPYmplY3RGb3JGcmFtZSgqZnJhbWUpOwogICAg
IEFTU0VSVChzY3JpcHRPYmplY3QpOwogCi0gICAgZnJhbWVJRCA9IGZyYW1lLT5mcmFtZUlEKCk7
CisgICAgYXV0byBmcmFtZUlEID0gZnJhbWUtPmZyYW1lSUQoKTsKICAgICBKU1ZhbHVlUmVmIGV4
Y2VwdGlvbiA9IG51bGxwdHI7CiAgICAgSlNHbG9iYWxDb250ZXh0UmVmIGNvbnRleHQgPSBmcmFt
ZS0+anNDb250ZXh0KCk7CiAKQEAgLTI2Myw3ICsyNjMsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25T
ZXNzaW9uUHJveHk6OmV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaQogICAgICAgICB0b0pTVmFsdWUoY29udGV4dCwgZnVuY3Rpb24pLAogICAgICAgICB0b0pT
QXJyYXkoY29udGV4dCwgYXJndW1lbnRzLCB0b0pTVmFsdWUsICZleGNlcHRpb24pLAogICAgICAg
ICBKU1ZhbHVlTWFrZUJvb2xlYW4oY29udGV4dCwgZXhwZWN0c0ltcGxpY2l0Q2FsbGJhY2tBcmd1
bWVudCksCi0gICAgICAgIEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIGZyYW1lSUQpLAorICAg
ICAgICBKU1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCBmcmFtZUlELnRvVUludDY0KCkpLAogICAg
ICAgICBKU1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCBjYWxsYmFja0lEKSwKICAgICAgICAgSlNP
YmplY3RNYWtlRnVuY3Rpb25XaXRoQ2FsbGJhY2soY29udGV4dCwgbnVsbHB0ciwgZXZhbHVhdGVK
YXZhU2NyaXB0Q2FsbGJhY2spLAogICAgICAgICBKU1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCBj
YWxsYmFja1RpbWVvdXQpCkBAIC0zMDAsNyArMzAwLDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvblByb3h5OjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRp
ZmkKICAgICBkaWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihmcmFtZUlELCBjYWxsYmFja0lE
LCBleGNlcHRpb25NZXNzYWdlLCBlcnJvclR5cGUpOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25T
ZXNzaW9uUHJveHk6OmRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFN0cmluZyYgcmVzdWx0LCBjb25zdCBTdHJp
bmcmIGVycm9yVHlwZSkKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZGlkRXZhbHVh
dGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVp
bnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFN0cmluZyYgcmVzdWx0LCBjb25zdCBTdHJpbmcmIGVy
cm9yVHlwZSkKIHsKICAgICBhdXRvIGZpbmRSZXN1bHQgPSBtX3dlYkZyYW1lUGVuZGluZ0V2YWx1
YXRlSmF2YVNjcmlwdENhbGxiYWNrc01hcC5maW5kKGZyYW1lSUQpOwogICAgIGlmIChmaW5kUmVz
dWx0ICE9IG1fd2ViRnJhbWVQZW5kaW5nRXZhbHVhdGVKYXZhU2NyaXB0Q2FsbGJhY2tzTWFwLmVu
ZCgpKSB7CkBAIC0zMTMsMTUzICszMTMsMTUzIEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eTo6ZGlkRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24odWludDY0X3QgZnJhbWVJRCwKICAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6RGlkRXZhbHVhdGVKYXZhU2NyaXB0RnVu
Y3Rpb24oY2FsbGJhY2tJRCwgcmVzdWx0LCBlcnJvclR5cGUpLCAwKTsKIH0KIAotdm9pZCBXZWJB
dXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhPcmRpbmFsKFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgdWludDMyX3Qgb3Jk
aW5hbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCB1aW50NjRfdCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJl
c29sdmVDaGlsZEZyYW1lV2l0aE9yZGluYWwoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIHVpbnQzMl90IG9y
ZGluYWwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgT3B0aW9uYWw8
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
V2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsK
ICAgICBpZiAoIXBhZ2UpIHsKICAgICAgICAgU3RyaW5nIHdpbmRvd05vdEZvdW5kRXJyb3JUeXBl
ID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFu
dFZhbHVlKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkVycm9yTWVzc2FnZTo6V2lu
ZG93Tm90Rm91bmQpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVy
cm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHdpbmRvd05vdEZvdW5kRXJy
b3JUeXBlLCBXVEY6Om51bGxvcHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgU3Ry
aW5nIGZyYW1lTm90Rm91bmRFcnJvclR5cGUgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0
b21hdGlvbjo6RXJyb3JNZXNzYWdlOjpGcmFtZU5vdEZvdW5kKTsKIAotICAgIFdlYkZyYW1lKiBm
cmFtZSA9IGZyYW1lSUQgPyBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlE
KSA6IHBhZ2UtPm1haW5XZWJGcmFtZSgpOworICAgIFdlYkZyYW1lKiBmcmFtZSA9IGZyYW1lSUQg
PyBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZSgqZnJhbWVJRCkgOiBwYWdlLT5tYWlu
V2ViRnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihm
cmFtZU5vdEZvdW5kRXJyb3JUeXBlLCBXVEY6Om51bGxvcHQpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCiAgICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZSA9IGZyYW1lLT5jb3JlRnJhbWUo
KTsKICAgICBpZiAoIWNvcmVGcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFt
ZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVO
b3RGb3VuZEVycm9yVHlwZSwgV1RGOjpudWxsb3B0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAogICAgIFdlYkNvcmU6OkZyYW1lKiBjb3JlQ2hpbGRGcmFtZSA9IGNvcmVGcmFtZS0+dHJlZSgp
LnNjb3BlZENoaWxkKG9yZGluYWwpOwogICAgIGlmICghY29yZUNoaWxkRnJhbWUpIHsKLSAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIFdURjo6bnVsbG9wdCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBXZWJGcmFtZSogY2hpbGRGcmFtZSA9IFdl
YkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpjb3JlQ2hpbGRGcmFtZSk7CiAgICAgaWYgKCFjaGlsZEZy
YW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUs
IDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCBX
VEY6Om51bGxvcHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgY29tcGxldGlvbkhh
bmRsZXIoV1RGOjpudWxsb3B0LCBjaGlsZEZyYW1lLT5mcmFtZUlEKCkpOwogfQogCi12b2lkIFdl
YkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5vZGVIYW5kbGUo
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBT
dHJpbmcmIG5vZGVIYW5kbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5n
PiwgdWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOb2RlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFt
ZUlELCBjb25zdCBTdHJpbmcmIG5vZGVIYW5kbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0
aW9uYWw8U3RyaW5nPiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsKICAgICAgICAgU3RyaW5n
IHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVlKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb246OkVycm9yTWVzc2FnZTo6V2luZG93Tm90Rm91bmQpOwotICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlLCBXVEY6Om51bGxvcHQpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCiAgICAgU3RyaW5nIGZyYW1lTm90Rm91bmRFcnJvclR5cGUgPSBJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUo
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JNZXNzYWdlOjpGcmFtZU5vdEZv
dW5kKTsKIAotICAgIFdlYkZyYW1lKiBmcmFtZSA9IGZyYW1lSUQgPyBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSA6IHBhZ2UtPm1haW5XZWJGcmFtZSgpOworICAgIFdl
YkZyYW1lKiBmcmFtZSA9IGZyYW1lSUQgPyBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFt
ZSgqZnJhbWVJRCkgOiBwYWdlLT5tYWluV2ViRnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKSB7Ci0g
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOworICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCBXVEY6Om51bGxv
cHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgV2ViQ29yZTo6RWxlbWVudCogY29y
ZUVsZW1lbnQgPSBlbGVtZW50Rm9yTm9kZUhhbmRsZSgqZnJhbWUsIG5vZGVIYW5kbGUpOwogICAg
IGlmICghaXM8V2ViQ29yZTo6SFRNTEZyYW1lRWxlbWVudEJhc2U+KGNvcmVFbGVtZW50KSkgewot
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgV1RGOjpudWxs
b3B0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFdlYkNvcmU6OkZyYW1lKiBjb3Jl
RnJhbWVGcm9tRWxlbWVudCA9IGRvd25jYXN0PFdlYkNvcmU6OkhUTUxGcmFtZUVsZW1lbnRCYXNl
PigqY29yZUVsZW1lbnQpLmNvbnRlbnRGcmFtZSgpOwogICAgIGlmICghY29yZUZyYW1lRnJvbUVs
ZW1lbnQpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlw
ZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUs
IFdURjo6bnVsbG9wdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBXZWJGcmFtZSog
ZnJhbWVGcm9tRWxlbWVudCA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpjb3JlRnJhbWVGcm9t
RWxlbWVudCk7CiAgICAgaWYgKCFmcmFtZUZyb21FbGVtZW50KSB7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCBXVEY6Om51bGxvcHQpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGOjpudWxsb3B0LCBmcmFt
ZUZyb21FbGVtZW50LT5mcmFtZUlEKCkpOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9u
UHJveHk6OnJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
cGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdp
dGhOYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgT3B0aW9uYWw8V2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsK
ICAgICAgICAgU3RyaW5nIHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlID0gSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVlKEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb246OkVycm9yTWVzc2FnZTo6V2luZG93Tm90Rm91bmQpOwotICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlLCBXVEY6Om51bGxv
cHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgU3RyaW5nIGZyYW1lTm90Rm91bmRF
cnJvclR5cGUgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0RW51
bUNvbnN0YW50VmFsdWUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JNZXNz
YWdlOjpGcmFtZU5vdEZvdW5kKTsKIAotICAgIFdlYkZyYW1lKiBmcmFtZSA9IGZyYW1lSUQgPyBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSA6IHBhZ2UtPm1haW5XZWJG
cmFtZSgpOworICAgIFdlYkZyYW1lKiBmcmFtZSA9IGZyYW1lSUQgPyBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS53ZWJGcmFtZSgqZnJhbWVJRCkgOiBwYWdlLT5tYWluV2ViRnJhbWUoKTsKICAgICBp
ZiAoIWZyYW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJv
clR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JU
eXBlLCBXVEY6Om51bGxvcHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgV2ViQ29y
ZTo6RnJhbWUqIGNvcmVGcmFtZSA9IGZyYW1lLT5jb3JlRnJhbWUoKTsKICAgICBpZiAoIWNvcmVG
cmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBl
LCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwg
V1RGOjpudWxsb3B0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFdlYkNvcmU6OkZy
YW1lKiBjb3JlQ2hpbGRGcmFtZSA9IGNvcmVGcmFtZS0+dHJlZSgpLnNjb3BlZENoaWxkKG5hbWUp
OwogICAgIGlmICghY29yZUNoaWxkRnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
ZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZy
YW1lTm90Rm91bmRFcnJvclR5cGUsIFdURjo6bnVsbG9wdCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKICAgICBXZWJGcmFtZSogY2hpbGRGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1l
KCpjb3JlQ2hpbGRGcmFtZSk7CiAgICAgaWYgKCFjaGlsZEZyYW1lKSB7Ci0gICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCBXVEY6Om51bGxvcHQpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGOjpudWxsb3B0LCBj
aGlsZEZyYW1lLT5mcmFtZUlEKCkpOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHk6OnJlc29sdmVQYXJlbnRGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVp
bnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwg
dWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lv
blByb3h5OjpyZXNvbHZlUGFyZW50RnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsK
ICAgICAgICAgU3RyaW5nIHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlID0gSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVlKEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb246OkVycm9yTWVzc2FnZTo6V2luZG93Tm90Rm91bmQpOwotICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKHdpbmRvd05vdEZvdW5kRXJyb3JUeXBlLCBXVEY6Om51bGxv
cHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgU3RyaW5nIGZyYW1lTm90Rm91bmRF
cnJvclR5cGUgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0RW51
bUNvbnN0YW50VmFsdWUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JNZXNz
YWdlOjpGcmFtZU5vdEZvdW5kKTsKIAotICAgIFdlYkZyYW1lKiBmcmFtZSA9IGZyYW1lSUQgPyBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSA6IHBhZ2UtPm1haW5XZWJG
cmFtZSgpOworICAgIFdlYkZyYW1lKiBmcmFtZSA9IGZyYW1lSUQgPyBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS53ZWJGcmFtZSgqZnJhbWVJRCkgOiBwYWdlLT5tYWluV2ViRnJhbWUoKTsKICAgICBp
ZiAoIWZyYW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJv
clR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JU
eXBlLCBXVEY6Om51bGxvcHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgV2ViRnJh
bWUqIHBhcmVudEZyYW1lID0gZnJhbWUtPnBhcmVudEZyYW1lKCk7CiAgICAgaWYgKCFwYXJlbnRG
cmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBl
LCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwg
V1RGOjpudWxsb3B0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGNvbXBsZXRpb25I
YW5kbGVyKFdURjo6bnVsbG9wdCwgcGFyZW50RnJhbWUtPmZyYW1lSUQoKSk7CiB9CiAKLXZvaWQg
V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Zm9jdXNGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9u
UHJveHk6OmZvY3VzRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBPcHRpb25h
bDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQpCiB7CiAgICAgV2ViUGFnZSogcGFn
ZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBh
Z2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYkZyYW1lKiBmcmFtZSA9IGZyYW1lSUQgPyBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSA6IHBhZ2UtPm1haW5XZWJG
cmFtZSgpOworICAgIFdlYkZyYW1lKiBmcmFtZSA9IGZyYW1lSUQgPyBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS53ZWJGcmFtZSgqZnJhbWVJRCkgOiBwYWdlLT5tYWluV2ViRnJhbWUoKTsKICAgICBp
ZiAoIWZyYW1lKQogICAgICAgICByZXR1cm47CiAKQEAgLTUyOCw3ICs1MjgsNyBAQCBzdGF0aWMg
V2ViQ29yZTo6RmxvYXRQb2ludCBjb252ZXJ0UG9pbnRGcm9tRnJhbWVDbGllbnRUb1Jvb3RWaWV3
KFdlYkNvcmU6OkZyYW1lVgogICAgIHJldHVybiBjbGllbnRQb2ludDsKIH0KIAotdm9pZCBXZWJB
dXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpjb21wdXRlRWxlbWVudExheW91dChXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBi
b29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIENvb3JkaW5hdGVTeXN0ZW0gY29vcmRpbmF0ZVN5
c3RlbSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBXZWJDb3JlOjpJ
bnRSZWN0LCBPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIGJvb2wpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpjb21wdXRlRWxlbWVudExh
eW91dChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIE9wdGlvbmFsPFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50
b1ZpZXdJZk5lZWRlZCwgQ29vcmRpbmF0ZVN5c3RlbSBjb29yZGluYXRlU3lzdGVtLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkludFJlY3QsIE9wdGlv
bmFsPFdlYkNvcmU6OkludFBvaW50PiwgYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2UocGFnZUlE
KTsKICAgICBpZiAoIXBhZ2UpIHsKQEAgLTUzNyw3ICs1MzcsNyBAQCB2b2lkIFdlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHk6OmNvbXB1dGVFbGVtZW50TGF5b3V0KFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyIHBhZwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgV2ViRnJhbWUqIGZyYW1lID0g
ZnJhbWVJRCA/IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpIDogcGFn
ZS0+bWFpbldlYkZyYW1lKCk7CisgICAgV2ViRnJhbWUqIGZyYW1lID0gZnJhbWVJRCA/IFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKCpmcmFtZUlEKSA6IHBhZ2UtPm1haW5XZWJGcmFt
ZSgpOwogICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT5jb3JlRnJhbWUoKSB8fCAhZnJhbWUtPmNv
cmVGcmFtZSgpLT52aWV3KCkpIHsKICAgICAgICAgU3RyaW5nIGZyYW1lTm90Rm91bmRFcnJvclR5
cGUgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0
YW50VmFsdWUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JNZXNzYWdlOjpG
cmFtZU5vdEZvdW5kKTsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVy
cm9yVHlwZSwgeyB9LCBXVEY6Om51bGxvcHQsIGZhbHNlKTsKQEAgLTYzNiw3ICs2MzYsNyBAQCB2
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmNvbXB1dGVFbGVtZW50TGF5b3V0KFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZwogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVsbG9w
dCwgcmVzdWx0RWxlbWVudEJvdW5kcywgcmVzdWx0SW5WaWV3Q2VudGVyUG9pbnQsIGlzT2JzY3Vy
ZWQpOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnNlbGVjdE9wdGlvbkVs
ZW1lbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBT
dHJpbmcgbm9kZUhhbmRsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6
c2VsZWN0T3B0aW9uRWxlbWVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIE9wdGlv
bmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndl
YlBhZ2UocGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsKQEAgLTY0NSw3ICs2NDUsNyBAQCB2b2lk
IFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnNlbGVjdE9wdGlvbkVsZW1lbnQoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgcGFnZQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgV2ViRnJh
bWUqIGZyYW1lID0gZnJhbWVJRCA/IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZy
YW1lSUQpIDogcGFnZS0+bWFpbldlYkZyYW1lKCk7CisgICAgV2ViRnJhbWUqIGZyYW1lID0gZnJh
bWVJRCA/IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKCpmcmFtZUlEKSA6IHBhZ2Ut
Pm1haW5XZWJGcmFtZSgpOwogICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT5jb3JlRnJhbWUoKSB8
fCAhZnJhbWUtPmNvcmVGcmFtZSgpLT52aWV3KCkpIHsKICAgICAgICAgU3RyaW5nIGZyYW1lTm90
Rm91bmRFcnJvclR5cGUgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uSGVscGVyczo6
Z2V0RW51bUNvbnN0YW50VmFsdWUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6RXJy
b3JNZXNzYWdlOjpGcmFtZU5vdEZvdW5kKTsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJh
bWVOb3RGb3VuZEVycm9yVHlwZSk7CkBAIC03MDQsNyArNzA0LDcgQEAgc3RhdGljIFdlYkNvcmU6
OkludFJlY3Qgc25hcHNob3RSZWN0Rm9yU2NyZWVuc2hvdChXZWJQYWdlJiBwYWdlLCBXZWJDb3Jl
OjpFbGVtZW4KICAgICByZXR1cm4geyB9OwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9u
UHJveHk6OnRha2VTY3JlZW5zaG90KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWlu
dDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5l
ZWRlZCwgYm9vbCBjbGlwVG9WaWV3cG9ydCwgdWludDY0X3QgY2FsbGJhY2tJRCkKK3ZvaWQgV2Vi
QXV0b21hdGlvblNlc3Npb25Qcm94eTo6dGFrZVNjcmVlbnNob3QoV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgcGFnZUlELCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQs
IFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGJvb2wgY2xp
cFRvVmlld3BvcnQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7CiAgICAgU2hhcmVhYmxlQml0bWFw
OjpIYW5kbGUgaGFuZGxlOwogCkBAIC03MTUsNyArNzE1LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9u
U2Vzc2lvblByb3h5Ojp0YWtlU2NyZWVuc2hvdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdl
SUQsIHUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFdlYkZyYW1lKiBmcmFtZSA9IGZy
YW1lSUQgPyBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSA6IHBhZ2Ut
Pm1haW5XZWJGcmFtZSgpOworICAgIFdlYkZyYW1lKiBmcmFtZSA9IGZyYW1lSUQgPyBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZSgqZnJhbWVJRCkgOiBwYWdlLT5tYWluV2ViRnJhbWUo
KTsKICAgICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+Y29yZUZyYW1lKCkpIHsKICAgICAgICAgU3Ry
aW5nIGZyYW1lTm90Rm91bmRFcnJvclR5cGUgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0
b21hdGlvbjo6RXJyb3JNZXNzYWdlOjpGcmFtZU5vdEZvdW5kKTsKICAgICAgICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6
V2ViQXV0b21hdGlvblNlc3Npb246OkRpZFRha2VTY3JlZW5zaG90KGNhbGxiYWNrSUQsIGhhbmRs
ZSwgZnJhbWVOb3RGb3VuZEVycm9yVHlwZSksIDApOwpAQCAtNzUyLDcgKzc1Miw3IEBAIHZvaWQg
V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6dGFrZVNjcmVlbnNob3QoV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgcGFnZUlELCB1CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb246OkRp
ZFRha2VTY3JlZW5zaG90KGNhbGxiYWNrSUQsIGhhbmRsZSwgeyB9KSwgMCk7CiB9CiAKLXZvaWQg
V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Z2V0Q29va2llc0ZvckZyYW1lKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChPcHRpb25hbDxTdHJpbmc+LCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmdldENvb2tpZXNG
b3JGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIE9wdGlvbmFsPFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25h
bDxTdHJpbmc+LCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPik+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2Uo
cGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsKQEAgLTc2MSw3ICs3NjEsNyBAQCB2b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OmdldENvb2tpZXNGb3JGcmFtZShXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciBwYWdlSQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgV2ViRnJhbWUqIGZy
YW1lID0gZnJhbWVJRCA/IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQp
IDogcGFnZS0+bWFpbldlYkZyYW1lKCk7CisgICAgV2ViRnJhbWUqIGZyYW1lID0gZnJhbWVJRCA/
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKCpmcmFtZUlEKSA6IHBhZ2UtPm1haW5X
ZWJGcmFtZSgpOwogICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT5jb3JlRnJhbWUoKSB8fCAhZnJh
bWUtPmNvcmVGcmFtZSgpLT5kb2N1bWVudCgpKSB7CiAgICAgICAgIFN0cmluZyBmcmFtZU5vdEZv
dW5kRXJyb3JUeXBlID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6Omdl
dEVudW1Db25zdGFudFZhbHVlKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkVycm9y
TWVzc2FnZTo6RnJhbWVOb3RGb3VuZCk7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1l
Tm90Rm91bmRFcnJvclR5cGUsIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+KCkpOwpAQCAtNzc3LDcg
Kzc3Nyw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Z2V0Q29va2llc0ZvckZy
YW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJCiAgICAgY29tcGxldGlvbkhhbmRsZXIo
V1RGOjpudWxsb3B0LCBmb3VuZENvb2tpZXMpOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNz
aW9uUHJveHk6OmRlbGV0ZUNvb2tpZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVp
bnQ2NF90IGZyYW1lSUQsIFN0cmluZyBjb29raWVOYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KE9wdGlvbmFsPFN0cmluZz4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5OjpkZWxldGVDb29raWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFn
ZUlELCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFN0cmluZyBj
b29raWVOYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4pPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAgICAgaWYgKCFwYWdlKSB7CkBAIC03ODYsNyArNzg2
LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpkZWxldGVDb29raWUoV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW4KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIFdlYkZyYW1lKiBmcmFtZSA9IGZyYW1lSUQgPyBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53
ZWJGcmFtZShmcmFtZUlEKSA6IHBhZ2UtPm1haW5XZWJGcmFtZSgpOworICAgIFdlYkZyYW1lKiBm
cmFtZSA9IGZyYW1lSUQgPyBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZSgqZnJhbWVJ
RCkgOiBwYWdlLT5tYWluV2ViRnJhbWUoKTsKICAgICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+Y29y
ZUZyYW1lKCkgfHwgIWZyYW1lLT5jb3JlRnJhbWUoKS0+ZG9jdW1lbnQoKSkgewogICAgICAgICBT
dHJpbmcgZnJhbWVOb3RGb3VuZEVycm9yVHlwZSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1ZShJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OkZyYW1lTm90Rm91bmQpOwogICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9u
UHJveHkuaAppbmRleCAxMTY3NjQ1Mjc3ZGJjMTkzMGE1YTdhNTk3ZGNiYzJkZjNlY2Y1NWM5Li5i
NmJhNzhkZjQ4NTcwYWI0Y2NlNDIxNmY0MjZhYTAxMzY5OGFkZWJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlv
blNlc3Npb25Qcm94eS5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5o
IgogI2luY2x1ZGUgIkNvb3JkaW5hdGVTeXN0ZW0uaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIApAQCAtNTEsNyArNTIsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRpZENsZWFyV2lu
ZG93T2JqZWN0Rm9yRnJhbWUoV2ViRnJhbWUmKTsKIAotICAgIHZvaWQgZGlkRXZhbHVhdGVKYXZh
U2NyaXB0RnVuY3Rpb24odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgY2FsbGJhY2tJRCwgY29u
c3QgU3RyaW5nJiByZXN1bHQsIGNvbnN0IFN0cmluZyYgZXJyb3JUeXBlKTsKKyAgICB2b2lkIGRp
ZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWlu
dDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgU3RyaW5nJiByZXN1bHQsIGNvbnN0IFN0cmluZyYgZXJy
b3JUeXBlKTsKIAogcHJpdmF0ZToKICAgICBKU09iamVjdFJlZiBzY3JpcHRPYmplY3RGb3JGcmFt
ZShXZWJGcmFtZSYpOwpAQCAtNjEsMjIgKzYyLDIyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsK
IAogICAgIC8vIENhbGxlZCBieSBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5IG1lc3NhZ2VzCi0g
ICAgdm9pZCBldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBmdW5jdGlvbiwgVmVjdG9yPFN0cmlu
Zz4gYXJndW1lbnRzLCBib29sIGV4cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJndW1lbnQsIGludCBj
YWxsYmFja1RpbWVvdXQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwotICAgIHZvaWQgcmVzb2x2ZUNo
aWxkRnJhbWVXaXRoT3JkaW5hbChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJh
bWVJRCwgdWludDMyX3Qgb3JkaW5hbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxT
dHJpbmc+LCB1aW50NjRfdCk+JiYpOwotICAgIHZvaWQgcmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9k
ZUhhbmRsZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
U3RyaW5nJiBub2RlSGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmlu
Zz4sIHVpbnQ2NF90KT4mJik7Ci0gICAgdm9pZCByZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG5h
bWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWludDY0X3QpPiYm
KTsKLSAgICB2b2lkIHJlc29sdmVQYXJlbnRGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
dWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+
LCB1aW50NjRfdCk+JiYpOwotICAgIHZvaWQgZm9jdXNGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBjb21wdXRlRWxlbWVudExheW91dChX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5k
bGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgQ29vcmRpbmF0ZVN5c3RlbSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBXZWJDb3JlOjpJbnRSZWN0LCBPcHRp
b25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIGJvb2wpPiYmKTsKLSAgICB2b2lkIHNlbGVjdE9wdGlv
bkVsZW1lbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmlu
ZyBub2RlSGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4pPiYm
KTsKLSAgICB2b2lkIHRha2VTY3JlZW5zaG90KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50
NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVl
ZGVkLCBib29sIGNsaXBUb1ZpZXdwb3J0LCB1aW50NjRfdCBjYWxsYmFja0lEKTsKLSAgICB2b2lk
IGdldENvb2tpZXNGb3JGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJh
bWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBWZWN0b3I8V2Vi
Q29yZTo6Q29va2llPik+JiYpOwotICAgIHZvaWQgZGVsZXRlQ29va2llKFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgY29va2llTmFtZSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJik7CisgICAgdm9pZCBldmFsdWF0ZUph
dmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgT3B0aW9uYWw8V2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJiBmdW5jdGlvbiwgVmVjdG9yPFN0cmlu
Zz4gYXJndW1lbnRzLCBib29sIGV4cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJndW1lbnQsIGludCBj
YWxsYmFja1RpbWVvdXQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIHZvaWQgcmVzb2x2ZUNo
aWxkRnJhbWVXaXRoT3JkaW5hbChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgT3B0aW9uYWw8V2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyPiwgdWludDMyX3Qgb3JkaW5hbCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXI+KT4mJik7CisgICAgdm9pZCByZXNvbHZlQ2hpbGRGcmFtZVdpdGhOb2RlSGFuZGxlKFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBj
b25zdCBTdHJpbmcmIG5vZGVIYW5kbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8
U3RyaW5nPiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPik+JiYpOworICAgIHZv
aWQgcmVzb2x2ZUNoaWxkRnJhbWVXaXRoTmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgT3B0
aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJiBuYW1lLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIE9wdGlvbmFsPFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllcj4pPiYmKTsKKyAgICB2b2lkIHJlc29sdmVQYXJlbnRGcmFtZShXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBPcHRpb25hbDxXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXI+KT4mJik7CisgICAgdm9pZCBmb2N1c0ZyYW1lKFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+KTsKKyAgICB2b2lk
IGNvbXB1dGVFbGVtZW50TGF5b3V0KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBPcHRpb25hbDxX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJ
bnRvVmlld0lmTmVlZGVkLCBDb29yZGluYXRlU3lzdGVtLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KE9wdGlvbmFsPFN0cmluZz4sIFdlYkNvcmU6OkludFJlY3QsIE9wdGlvbmFsPFdlYkNvcmU6Oklu
dFBvaW50PiwgYm9vbCk+JiYpOworICAgIHZvaWQgc2VsZWN0T3B0aW9uRWxlbWVudChXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgU3Ry
aW5nIG5vZGVIYW5kbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+
JiYpOworICAgIHZvaWQgdGFrZVNjcmVlbnNob3QoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIE9w
dGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIFN0cmluZyBub2RlSGFuZGxlLCBib29s
IHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGJvb2wgY2xpcFRvVmlld3BvcnQsIHVpbnQ2NF90IGNh
bGxiYWNrSUQpOworICAgIHZvaWQgZ2V0Q29va2llc0ZvckZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+KT4mJik7
CisgICAgdm9pZCBkZWxldGVDb29raWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIE9wdGlvbmFs
PFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIFN0cmluZyBjb29raWVOYW1lLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4pPiYmKTsKIAogICAgIFN0cmluZyBtX3Nlc3Np
b25JZGVudGlmaWVyOwogCi0gICAgSGFzaE1hcDx1aW50NjRfdCwgSlNPYmplY3RSZWY+IG1fd2Vi
RnJhbWVTY3JpcHRPYmplY3RNYXA7Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgVmVjdG9yPHVpbnQ2
NF90Pj4gbV93ZWJGcmFtZVBlbmRpbmdFdmFsdWF0ZUphdmFTY3JpcHRDYWxsYmFja3NNYXA7Cisg
ICAgSGFzaE1hcDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEpTT2JqZWN0UmVmPiBtX3dlYkZy
YW1lU2NyaXB0T2JqZWN0TWFwOworICAgIEhhc2hNYXA8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBWZWN0b3I8dWludDY0X3Q+PiBtX3dlYkZyYW1lUGVuZGluZ0V2YWx1YXRlSmF2YVNjcmlwdENh
bGxiYWNrc01hcDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZDcyZjg5ZDI2MzU5Y2YwMWNj
ZmQ1MzFlOTZlMDFmNDQ0MDlhYWY1OC4uZmM2ZDlmZDE1NTljMWNmYTY1MjJmMTQ4NDY5Nzk4Mzk4
ZjZhYTE5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24v
V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lm1lc3NhZ2Vz
LmluCkBAIC0yMSwyMSArMjEsMjEgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogbWVzc2FnZXMgLT4gV2Vi
QXV0b21hdGlvblNlc3Npb25Qcm94eSB7Ci0gICAgRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24o
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcg
ZnVuY3Rpb24sIFZlY3RvcjxTdHJpbmc+IGFyZ3VtZW50cywgYm9vbCBleHBlY3RzSW1wbGljaXRD
YWxsYmFja0FyZ3VtZW50LCBpbnQgY2FsbGJhY2tUaW1lb3V0LCB1aW50NjRfdCBjYWxsYmFja0lE
KQorICAgIEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBTdHJp
bmcgZnVuY3Rpb24sIFZlY3RvcjxTdHJpbmc+IGFyZ3VtZW50cywgYm9vbCBleHBlY3RzSW1wbGlj
aXRDYWxsYmFja0FyZ3VtZW50LCBpbnQgY2FsbGJhY2tUaW1lb3V0LCB1aW50NjRfdCBjYWxsYmFj
a0lEKQogCi0gICAgUmVzb2x2ZUNoaWxkRnJhbWVXaXRoT3JkaW5hbChXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG9yZGluYWwpIC0+IChP
cHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgdWludDY0X3QgZnJhbWVJRCkgQXN5bmMKLSAgICBS
ZXNvbHZlQ2hpbGRGcmFtZVdpdGhOb2RlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUpIC0+IChPcHRpb25hbDxT
dHJpbmc+IGVycm9yVHlwZSwgdWludDY0X3QgZnJhbWVJRCkgQXN5bmMKLSAgICBSZXNvbHZlQ2hp
bGRGcmFtZVdpdGhOYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3Qg
ZnJhbWVJRCwgU3RyaW5nIG5hbWUpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgdWlu
dDY0X3QgZnJhbWVJRCkgQXN5bmMKLSAgICBSZXNvbHZlUGFyZW50RnJhbWUoV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlEKSAtPiAoT3B0aW9uYWw8U3RyaW5n
PiBlcnJvclR5cGUsIHVpbnQ2NF90IGZyYW1lSUQpIEFzeW5jCisgICAgUmVzb2x2ZUNoaWxkRnJh
bWVXaXRoT3JkaW5hbChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIE9wdGlvbmFsPFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgdWludDMyX3Qgb3JkaW5hbCkgLT4gKE9w
dGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXI+IGZyYW1lSUQpIEFzeW5jCisgICAgUmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhhbmRsZShX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcj4gZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUpIC0+IChPcHRpb25hbDxTdHJpbmc+
IGVycm9yVHlwZSwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKSBB
c3luYworICAgIFJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIgcGFnZUlELCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFN0
cmluZyBuYW1lKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIE9wdGlvbmFsPFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCkgQXN5bmMKKyAgICBSZXNvbHZlUGFyZW50RnJh
bWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBPcHRpb25hbDxXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXI+IGZyYW1lSUQpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgT3B0
aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKSBBc3luYwogCi0gICAgRm9j
dXNGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQp
CisgICAgRm9jdXNGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIE9wdGlvbmFs
PFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCkKIAotICAgIENvbXB1dGVFbGVtZW50
TGF5b3V0KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwg
U3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgZW51bTp1aW50
OF90IFdlYktpdDo6Q29vcmRpbmF0ZVN5c3RlbSBjb29yZGluYXRlU3lzdGVtKSAtPiAoT3B0aW9u
YWw8U3RyaW5nPiBlcnJvclR5cGUsIFdlYkNvcmU6OkludFJlY3QgcmVjdCwgT3B0aW9uYWw8V2Vi
Q29yZTo6SW50UG9pbnQ+IGluVmlld0NlbnRlclBvaW50LCBib29sIGlzT2JzY3VyZWQpIEFzeW5j
CisgICAgQ29tcHV0ZUVsZW1lbnRMYXlvdXQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFN0cmluZyBub2Rl
SGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGVudW06dWludDhfdCBXZWJLaXQ6
OkNvb3JkaW5hdGVTeXN0ZW0gY29vcmRpbmF0ZVN5c3RlbSkgLT4gKE9wdGlvbmFsPFN0cmluZz4g
ZXJyb3JUeXBlLCBXZWJDb3JlOjpJbnRSZWN0IHJlY3QsIE9wdGlvbmFsPFdlYkNvcmU6OkludFBv
aW50PiBpblZpZXdDZW50ZXJQb2ludCwgYm9vbCBpc09ic2N1cmVkKSBBc3luYwogCi0gICAgU2Vs
ZWN0T3B0aW9uRWxlbWVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90
IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5
cGUpIEFzeW5jCisgICAgU2VsZWN0T3B0aW9uRWxlbWVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgU3Ry
aW5nIG5vZGVIYW5kbGUpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSkgQXN5bmMKIAot
ICAgIFRha2VTY3JlZW5zaG90KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0
X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRl
ZCwgYm9vbCBjbGlwVG9WaWV3cG9ydCwgdWludDY0X3QgY2FsbGJhY2tJRCkKKyAgICBUYWtlU2Ny
ZWVuc2hvdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIE9wdGlvbmFsPFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xs
SW50b1ZpZXdJZk5lZWRlZCwgYm9vbCBjbGlwVG9WaWV3cG9ydCwgdWludDY0X3QgY2FsbGJhY2tJ
RCkKIAotICAgIEdldENvb2tpZXNGb3JGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdl
SUQsIHVpbnQ2NF90IGZyYW1lSUQpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgVmVj
dG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykgQXN5bmMKLSAgICBEZWxldGVDb29raWUoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgY29v
a2llTmFtZSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlKSBBc3luYworICAgIEdldENv
b2tpZXNGb3JGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIE9wdGlvbmFsPFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJy
b3JUeXBlLCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBjb29raWVzKSBBc3luYworICAgIERlbGV0
ZUNvb2tpZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIE9wdGlvbmFsPFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgU3RyaW5nIGNvb2tpZU5hbWUpIC0+IChPcHRpb25h
bDxTdHJpbmc+IGVycm9yVHlwZSkgQXN5bmMKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJh
bWUubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29h
L1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tCmluZGV4IDA5OTc2MzcyZjA3Mzc1N2VlZGIxNzQ5
M2Q3MzFmYTBhM2Q0NjY4YzYuLjI1NzNlNmQ0ODU5ZTVlMGNmZTRhNjdmNWY0ZjNiYmE2YjMwZmU4
NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW0KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFt
ZS5tbQpAQCAtNDgsNyArNDgsNyBAQCBAaW1wbGVtZW50YXRpb24gV0tXZWJQcm9jZXNzUGx1Z0lu
RnJhbWUgewogCiArIChpbnN0YW5jZXR5cGUpbG9va1VwRnJhbWVGcm9tSGFuZGxlOihfV0tGcmFt
ZUhhbmRsZSAqKWhhbmRsZQogewotICAgIHJldHVybiB3cmFwcGVyKFdlYktpdDo6V2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkud2ViRnJhbWUoaGFuZGxlLl9mcmFtZUlEKSk7CisgICAgcmV0dXJuIHdy
YXBwZXIoV2ViS2l0OjpXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShXZWJDb3JlOjpm
cmFtZUlkZW50aWZpZXJGcm9tSUQoaGFuZGxlLl9mcmFtZUlEKSkpOwogfQogCiAtICh2b2lkKWRl
YWxsb2MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ2xpYi9XZWJLaXRGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0RnJhbWUuY3BwCmluZGV4IGRhNjc5ZGIxYjQ4MmYy
YjlmZjg3OGM0NGMwYzkwOGRjZjk3ZTc0Y2MuLmE0ZjUyYjJlNTBmYTJjMzdhMTgyOWM5ZTRlMjZm
NDg2OTBlNzU1Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdEZyYW1lLmNwcApAQCAtNzQsNyAr
NzQsNyBAQCBndWludDY0IHdlYmtpdF9mcmFtZV9nZXRfaWQoV2ViS2l0RnJhbWUqIGZyYW1lKQog
ewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19GUkFNRShmcmFtZSksIDApOwog
Ci0gICAgcmV0dXJuIGZyYW1lLT5wcml2LT53ZWJGcmFtZS0+ZnJhbWVJRCgpOworICAgIHJldHVy
biBmcmFtZS0+cHJpdi0+d2ViRnJhbWUtPmZyYW1lSUQoKS50b1VJbnQ2NCgpOwogfQogCiAvKioK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0
cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0
cmF0ZWd5LmNwcAppbmRleCBjNDhjZGQ4NTc5NGQ5MjE2OTk1MjBjMmQ4MzhhNWI2NzBmM2IyZmYx
Li41ZGZjNDI1Nzg4NGJjMjkyYTRkYWU4YzQ0NWU5MmI3MzI3YTk2Y2EyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3Bw
CkBAIC0xNTksNyArMTU5LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2Fk
KFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlciwgQ2FjaGVkUmVzb3UKIAogICAgIFdlYlJl
c291cmNlTG9hZGVyOjpUcmFja2luZ1BhcmFtZXRlcnMgdHJhY2tpbmdQYXJhbWV0ZXJzOwogICAg
IHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQgPSBmcmFtZUxvYWRlckNsaWVudC5wYWdlSUQoKS52
YWx1ZU9yKFBhZ2VJZGVudGlmaWVyIHsgfSk7Ci0gICAgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1l
SUQgPSBmcmFtZUxvYWRlckNsaWVudC5mcmFtZUlEKCkudmFsdWVPcigwKTsKKyAgICB0cmFja2lu
Z1BhcmFtZXRlcnMuZnJhbWVJRCA9IGZyYW1lTG9hZGVyQ2xpZW50LmZyYW1lSUQoKS52YWx1ZU9y
KEZyYW1lSWRlbnRpZmllciB7IH0pOwogICAgIHRyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlE
ID0gaWRlbnRpZmllcjsKICAgICBhdXRvIHNlc3Npb25JRCA9IGZyYW1lTG9hZGVyQ2xpZW50LnNl
c3Npb25JRCgpOwogCkBAIC0xNjgsNyArMTY4LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6
c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlciwgQ2FjaGVkUmVzb3UK
ICAgICAvLyB0aGVuIHdlIHNob3VsZCByZW1lbWJlciB0aGUgUmVzb3VyY2VMb2FkZXIgaW4gb3Vy
IHJlY29yZHMgYnV0IG5vdCBzY2hlZHVsZSBpdCBpbiB0aGUgTmV0d29ya1Byb2Nlc3MuCiAgICAg
aWYgKHJlc291cmNlTG9hZGVyLmRvY3VtZW50TG9hZGVyKCktPnNjaGVkdWxlQXJjaGl2ZUxvYWQo
cmVzb3VyY2VMb2FkZXIsIHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKSkpIHsKICAgICAgICAgTE9H
KE5ldHdvcmtTY2hlZHVsaW5nLCAiKFdlYlByb2Nlc3MpIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hl
ZHVsZUxvYWQsIHVybCAnJXMnIHdpbGwgYmUgaGFuZGxlZCBhcyBhbiBhcmNoaXZlIHJlc291cmNl
LiIsIHJlc291cmNlTG9hZGVyLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBV
Ukwgd2lsbCBiZSBoYW5kbGVkIGFzIGFuIGFyY2hpdmUgcmVzb3VyY2UgKGZyYW1lID0gJXAsIHBh
Z2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAl
IiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMu
cGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBpZGVudGlmaWVy
KTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVk
dWxlTG9hZDogVVJMIHdpbGwgYmUgaGFuZGxlZCBhcyBhbiBhcmNoaXZlIHJlc291cmNlIChmcmFt
ZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNv
dXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQ
YXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50
b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsKICAgICAgICAgbV93ZWJSZXNvdXJjZUxvYWRlcnMuc2V0
KGlkZW50aWZpZXIsIFdlYlJlc291cmNlTG9hZGVyOjpjcmVhdGUocmVzb3VyY2VMb2FkZXIsIHRy
YWNraW5nUGFyYW1ldGVycykpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTc2LDE0ICsx
NzYsMTQgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9h
ZGVyJiByZXNvdXJjZUxvYWRlciwgQ2FjaGVkUmVzb3UKIAogICAgIGlmIChyZXNvdXJjZUxvYWRl
ci5kb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLm1heWJlTG9hZFJlc291
cmNlKHJlc291cmNlTG9hZGVyLCByZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCksIHJlc291cmNlTG9h
ZGVyLnJlcXVlc3QoKS51cmwoKSkpIHsKICAgICAgICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5nLCAi
KFdlYlByb2Nlc3MpIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQsIHVybCAnJXMnIHdp
bGwgYmUgbG9hZGVkIGZyb20gYXBwbGljYXRpb24gY2FjaGUuIiwgcmVzb3VyY2VMb2FkZXIudXJs
KCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGxvYWRlZCBmcm9t
IGFwcGxpY2F0aW9uIGNhY2hlIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VM
b2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFj
a2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7CisgICAgICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGxv
YWRlZCBmcm9tIGFwcGxpY2F0aW9uIGNhY2hlIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwg
cmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2
NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsK
ICAgICAgICAgbV93ZWJSZXNvdXJjZUxvYWRlcnMuc2V0KGlkZW50aWZpZXIsIFdlYlJlc291cmNl
TG9hZGVyOjpjcmVhdGUocmVzb3VyY2VMb2FkZXIsIHRyYWNraW5nUGFyYW1ldGVycykpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS51
cmwoKS5wcm90b2NvbElzRGF0YSgpKSB7CiAgICAgICAgIExPRyhOZXR3b3JrU2NoZWR1bGluZywg
IihXZWJQcm9jZXNzKSBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkLCB1cmwgJyVzJyB3
aWxsIGJlIGxvYWRlZCBhcyBkYXRhLiIsIHJlc291cmNlTG9hZGVyLnVybCgpLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOwotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9h
ZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBsb2FkZWQgYXMgZGF0YSAoZnJhbWUgPSAl
cCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJ
RCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1l
dGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIGlkZW50
aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAi
c2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBsb2FkZWQgYXMgZGF0YSAoZnJhbWUgPSAlcCwgcGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUi
IFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5w
YWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwg
aWRlbnRpZmllcik7CiAgICAgICAgIHN0YXJ0TG9jYWxMb2FkKHJlc291cmNlTG9hZGVyKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE5MSw3ICsxOTEsNyBAQCB2b2lkIFdlYkxvYWRlclN0
cmF0ZWd5OjpzY2hlZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTG9hZGVyLCBDYWNo
ZWRSZXNvdQogI2lmIFVTRShRVUlDS19MT09LKQogICAgIGlmIChpc1F1aWNrTG9va1ByZXZpZXdV
UkwocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnVybCgpKSkgewogICAgICAgICBMT0coTmV0d29y
a1NjaGVkdWxpbmcsICIoV2ViUHJvY2VzcykgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9h
ZCwgdXJsICclcycgd2lsbCBiZSBoYW5kbGVkIGFzIGEgUXVpY2tMb29rIHJlc291cmNlLiIsIHJl
c291cmNlTG9hZGVyLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2ls
bCBiZSBoYW5kbGVkIGFzIGEgUXVpY2tMb29rIHJlc291cmNlIChmcmFtZSA9ICVwLCBwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJ
dTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJ
RC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7Cisg
ICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxv
YWQ6IFVSTCB3aWxsIGJlIGhhbmRsZWQgYXMgYSBRdWlja0xvb2sgcmVzb3VyY2UgKGZyYW1lID0g
JXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNl
SUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1BhcmFt
ZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUlu
dDY0KCksIGlkZW50aWZpZXIpOwogICAgICAgICBzdGFydExvY2FsTG9hZChyZXNvdXJjZUxvYWRl
cik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yMDIsNyArMjAyLDcgQEAgdm9pZCBXZWJM
b2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRl
ciwgQ2FjaGVkUmVzb3UKICAgICAvLyBodHRwczovL2Jsb2dzLmdub21lLm9yZy9hbGV4bC8yMDEy
LzAxLzI2L3Jlc291cmNlcy1pbi1nbGliLwogICAgIGlmIChyZXNvdXJjZUxvYWRlci5yZXF1ZXN0
KCkudXJsKCkucHJvdG9jb2xJcygicmVzb3VyY2UiKSkgewogICAgICAgICBMT0coTmV0d29ya1Nj
aGVkdWxpbmcsICIoV2ViUHJvY2VzcykgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZCwg
dXJsICclcycgd2lsbCBiZSBoYW5kbGVkIGFzIGEgR1Jlc291cmNlLiIsIHJlc291cmNlTG9hZGVy
LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBoYW5kbGVk
IGFzIGEgR1Jlc291cmNlIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2Fk
ZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2lu
Z1BhcmFtZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7CisgICAgICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGhhbmRs
ZWQgYXMgYSBHUmVzb3VyY2UgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxv
YWRlci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNr
aW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIGlkZW50aWZpZXIpOwogICAgICAgICBz
dGFydExvY2FsTG9hZChyZXNvdXJjZUxvYWRlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBA
IC0yMTIsMTEgKzIxMiwxMSBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQo
UmVzb3VyY2VMb2FkZXImIHJlc291cmNlTG9hZGVyLCBDYWNoZWRSZXNvdQogICAgIFdlYlNlcnZp
Y2VXb3JrZXJQcm92aWRlcjo6c2luZ2xldG9uKCkuaGFuZGxlRmV0Y2gocmVzb3VyY2VMb2FkZXIs
IHNlc3Npb25JRCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgW3Ro
aXMsIHRyYWNraW5nUGFyYW1ldGVycywgaWRlbnRpZmllciwgc2Vzc2lvbklELCBzaG91bGRDbGVh
clJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBtYXhpbXVtQnVmZmVyaW5nVGltZSA9IG1h
eGltdW1CdWZmZXJpbmdUaW1lKHJlc291cmNlKSwgcmVzb3VyY2VMb2FkZXIgPSBtYWtlUmVmKHJl
c291cmNlTG9hZGVyKV0gKFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6UmVzdWx0IHJlc3VsdCkg
bXV0YWJsZSB7CiAgICAgICAgIGlmIChyZXN1bHQgIT0gU2VydmljZVdvcmtlckNsaWVudEZldGNo
OjpSZXN1bHQ6OlVuaGFuZGxlZCkgewogICAgICAgICAgICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5n
LCAiKFdlYlByb2Nlc3MpIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQsIHVybCAnJXMn
IHdpbGwgYmUgc2NoZWR1bGVkIHRocm91Z2ggU2VydmljZVdvcmtlciBoYW5kbGUgZmV0Y2ggYWxn
b3JpdGhtIiwgcmVzb3VyY2VMb2FkZXItPnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSk7
Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLmdldCgp
LCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBzY2hlZHVsZWQgdGhyb3VnaCBTZXJ2aWNlV29y
a2VyIGhhbmRsZSBmZXRjaCBhbGdvcml0aG0gKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBy
ZXNvdXJjZUxvYWRlci0+ZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2
NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgaWRlbnRpZmllcik7CisgICAgICAgICAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLmdldCgpLCAic2NoZWR1bGVM
b2FkOiBVUkwgd2lsbCBiZSBzY2hlZHVsZWQgdGhyb3VnaCBTZXJ2aWNlV29ya2VyIGhhbmRsZSBm
ZXRjaCBhbGdvcml0aG0gKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRl
ci0+ZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2lu
Z1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogICAgICAgICBpZiAocmVzb3VyY2VMb2FkZXItPm9wdGlvbnMo
KS5zZXJ2aWNlV29ya2Vyc01vZGUgPT0gU2VydmljZVdvcmtlcnNNb2RlOjpPbmx5KSB7Ci0gICAg
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLmdldCgp
LCAic2NoZWR1bGVMb2FkOiB1bmFibGUgdG8gc2NoZWR1bGUgVVJMIHRocm91Z2ggU2VydmljZVdv
cmtlciBoYW5kbGUgZmV0Y2ggYWxnb3JpdGhtIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwg
cmVzb3VyY2VMb2FkZXItPmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50
NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIGlkZW50aWZpZXIpOworICAgICAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlci5nZXQoKSwgInNj
aGVkdWxlTG9hZDogdW5hYmxlIHRvIHNjaGVkdWxlIFVSTCB0aHJvdWdoIFNlcnZpY2VXb3JrZXIg
aGFuZGxlIGZldGNoIGFsZ29yaXRobSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIs
IGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291
cmNlTG9hZGVyLT5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCks
IHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIGlkZW50aWZpZXIpOwogICAg
ICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbcmVzb3VyY2VMb2FkZXIgPSBXVEZNb3ZlKHJlc291
cmNlTG9hZGVyKV0gewogICAgICAgICAgICAgICAgIGF1dG8gZXJyb3IgPSBpbnRlcm5hbEVycm9y
KHJlc291cmNlTG9hZGVyLT5yZXF1ZXN0KCkudXJsKCkpOwogICAgICAgICAgICAgICAgIGVycm9y
LnNldFR5cGUoUmVzb3VyY2VFcnJvcjo6VHlwZTo6Q2FuY2VsbGF0aW9uKTsKQEAgLTIyOCwxMyAr
MjI4LDEzIEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxv
YWRlciYgcmVzb3VyY2VMb2FkZXIsIENhY2hlZFJlc291CiAgICAgICAgIGlmICghV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkud2ViTG9hZGVyU3RyYXRlZ3koKS50cnlMb2FkaW5nVXNpbmdVUkxTY2hl
bWVIYW5kbGVyKHJlc291cmNlTG9hZGVyKSkKICAgICAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLndlYkxvYWRlclN0cmF0ZWd5KCkuc2NoZWR1bGVMb2FkRnJvbU5ldHdvcmtQcm9jZXNz
KHJlc291cmNlTG9hZGVyLmdldCgpLCByZXNvdXJjZUxvYWRlci0+cmVxdWVzdCgpLCB0cmFja2lu
Z1BhcmFtZXRlcnMsIHNlc3Npb25JRCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBS
ZWRpcmVjdCwgbWF4aW11bUJ1ZmZlcmluZ1RpbWUpOwogICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLmdldCgpLCAic2NoZWR1bGVM
b2FkOiBVUkwgbm90IGhhbmRsZWQgYnkgYW55IGhhbmRsZXJzIChmcmFtZSA9ICVwLCBwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJ
dTY0ICIpIiwgcmVzb3VyY2VMb2FkZXItPmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdl
SUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIGlkZW50aWZpZXIpOwor
ICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlci5nZXQoKSwg
InNjaGVkdWxlTG9hZDogVVJMIG5vdCBoYW5kbGVkIGJ5IGFueSBoYW5kbGVycyAoZnJhbWUgPSAl
cCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJ
RCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLT5mcmFtZSgpLCB0cmFja2luZ1BhcmFt
ZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUlu
dDY0KCksIGlkZW50aWZpZXIpOwogICAgIH0pOwogI2Vsc2UKICAgICBpZiAoIXRyeUxvYWRpbmdV
c2luZ1VSTFNjaGVtZUhhbmRsZXIocmVzb3VyY2VMb2FkZXIpKQogICAgICAgICBzY2hlZHVsZUxv
YWRGcm9tTmV0d29ya1Byb2Nlc3MocmVzb3VyY2VMb2FkZXIsIHJlc291cmNlTG9hZGVyLnJlcXVl
c3QoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLCBzZXNzaW9uSUQsIHNob3VsZENsZWFyUmVmZXJyZXJP
bkhUVFBTVG9IVFRQUmVkaXJlY3QsIG1heGltdW1CdWZmZXJpbmdUaW1lKHJlc291cmNlKSk7CiAg
ICAgZWxzZQotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAi
c2NoZWR1bGVMb2FkOiBVUkwgbm90IGhhbmRsZWQgYnkgYW55IGhhbmRsZXJzIChmcmFtZSA9ICVw
LCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlE
ID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0
ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgaWRlbnRp
Zmllcik7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJz
Y2hlZHVsZUxvYWQ6IFVSTCBub3QgaGFuZGxlZCBieSBhbnkgaGFuZGxlcnMgKGZyYW1lID0gJXAs
IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQg
PSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRl
cnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0
KCksIGlkZW50aWZpZXIpOwogI2VuZGlmCiB9CiAKQEAgLTMyNSw3ICszMjUsNyBAQCB2b2lkIFdl
YkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MoUmVzb3VyY2VM
b2FkZXImIHJlc291cmNlTAogICAgIGlmIChsb2FkUGFyYW1ldGVycy5vcHRpb25zLm1vZGUgIT0g
RmV0Y2hPcHRpb25zOjpNb2RlOjpOYXZpZ2F0ZSkgewogICAgICAgICBBU1NFUlQobG9hZFBhcmFt
ZXRlcnMuc291cmNlT3JpZ2luKTsKICAgICAgICAgaWYgKCFsb2FkUGFyYW1ldGVycy5zb3VyY2VP
cmlnaW4pIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQocmVzb3Vy
Y2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IG5vIHNvdXJjZU9yaWdpbiAoZnJhbWUgPSAlcCwgcHJp
b3JpdHkgPSAlZCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwg
cmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHN0YXRp
Y19jYXN0PGludD4ocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnByaW9yaXR5KCkpLCBsb2FkUGFy
YW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRCwg
bG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllcik7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJP
Ul9JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBubyBzb3VyY2VPcmln
aW4gKGZyYW1lID0gJXAsIHByaW9yaXR5ID0gJWQsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxv
YWRlci5mcmFtZSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS5w
cmlvcml0eSgpKSwgbG9hZFBhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIGxvYWRQYXJh
bWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllcik7
CiAgICAgICAgICAgICBzY2hlZHVsZUludGVybmFsbHlGYWlsZWRMb2FkKHJlc291cmNlTG9hZGVy
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMzQ4LDkgKzM0OCw5IEBAIHZv
aWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZEZyb21OZXR3b3JrUHJvY2VzcyhSZXNv
dXJjZUxvYWRlciYgcmVzb3VyY2VMCiAKICAgICBBU1NFUlQoKGxvYWRQYXJhbWV0ZXJzLndlYlBh
Z2VJRCAmJiBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlEKSB8fCBsb2FkUGFyYW1ldGVycy5jbGll
bnRDcmVkZW50aWFsUG9saWN5ID09IENsaWVudENyZWRlbnRpYWxQb2xpY3k6OkNhbm5vdEFza0Ns
aWVudEZvckNyZWRlbnRpYWxzKTsKIAotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3Vy
Y2VMb2FkZXIsICJzY2hlZHVsZUxvYWQ6IFJlc291cmNlIGlzIGJlaW5nIHNjaGVkdWxlZCB3aXRo
IHRoZSBOZXR3b3JrUHJvY2VzcyAoZnJhbWUgPSAlcCwgcHJpb3JpdHkgPSAlZCwgcGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2
NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHN0YXRpY19jYXN0PGludD4ocmVzb3VyY2VM
b2FkZXIucmVxdWVzdCgpLnByaW9yaXR5KCkpLCBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQudG9V
SW50NjQoKSwgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRCwgbG9hZFBhcmFtZXRlcnMuaWRlbnRp
Zmllcik7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVk
dWxlTG9hZDogUmVzb3VyY2UgaXMgYmVpbmcgc2NoZWR1bGVkIHdpdGggdGhlIE5ldHdvcmtQcm9j
ZXNzIChmcmFtZSA9ICVwLCBwcmlvcml0eSA9ICVkLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VM
b2FkZXIuZnJhbWUoKSwgc3RhdGljX2Nhc3Q8aW50PihyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCku
cHJpb3JpdHkoKSksIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBsb2FkUGFy
YW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIp
OwogICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpTY2hlZHVsZVJlc291cmNlTG9hZChsb2FkUGFyYW1ldGVycyksIDApKSB7
Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJz
Y2hlZHVsZUxvYWQ6IFVuYWJsZSB0byBzY2hlZHVsZSByZXNvdXJjZSB3aXRoIHRoZSBOZXR3b3Jr
UHJvY2VzcyAoZnJhbWUgPSAlcCwgcHJpb3JpdHkgPSAlZCwgcGFnZUlEID0gJSIgUFJJdTY0ICIs
IGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291
cmNlTG9hZGVyLmZyYW1lKCksIHN0YXRpY19jYXN0PGludD4ocmVzb3VyY2VMb2FkZXIucmVxdWVz
dCgpLnByaW9yaXR5KCkpLCBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbG9h
ZFBhcmFtZXRlcnMud2ViRnJhbWVJRCwgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllcik7CisgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQocmVzb3VyY2VMb2FkZXIsICJzY2hlZHVs
ZUxvYWQ6IFVuYWJsZSB0byBzY2hlZHVsZSByZXNvdXJjZSB3aXRoIHRoZSBOZXR3b3JrUHJvY2Vz
cyAoZnJhbWUgPSAlcCwgcHJpb3JpdHkgPSAlZCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9h
ZGVyLmZyYW1lKCksIHN0YXRpY19jYXN0PGludD4ocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnBy
aW9yaXR5KCkpLCBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbG9hZFBhcmFt
ZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyKTsK
ICAgICAgICAgLy8gV2UgcHJvYmFibHkgZmFpbGVkIHRvIHNjaGVkdWxlIHRoaXMgbG9hZCB3aXRo
IHRoZSBOZXR3b3JrUHJvY2VzcyBiZWNhdXNlIGl0IGhhZCBjcmFzaGVkLgogICAgICAgICAvLyBU
aGlzIGxvYWQgd2lsbCBuZXZlciBzdWNjZWVkIHNvIHdlIHdpbGwgc2NoZWR1bGUgaXQgdG8gZmFp
bCBhc3luY2hyb25vdXNseS4KICAgICAgICAgc2NoZWR1bGVJbnRlcm5hbGx5RmFpbGVkTG9hZChy
ZXNvdXJjZUxvYWRlcik7CkBAIC01MjAsMTggKzUyMCwxOCBAQCB2b2lkIFdlYkxvYWRlclN0cmF0
ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KEZyYW1lTG9hZGVyJiBmcmFtZUxvYWRlciwg
dW5zaQogICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSB3ZWJGcmFtZSA/IHdlYkZyYW1lLT5wYWdlKCkg
OiBudWxscHRyOwogCiAgICAgYXV0byBwYWdlSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+cGFnZUlE
KCkgOiBQYWdlSWRlbnRpZmllciB7IH07Ci0gICAgYXV0byBmcmFtZUlEID0gd2ViRnJhbWUgPyB3
ZWJGcmFtZS0+ZnJhbWVJRCgpIDogMDsKKyAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZSA/IHdl
YkZyYW1lLT5mcmFtZUlEKCkgOiBGcmFtZUlkZW50aWZpZXIgeyB9OwogICAgIGF1dG8gc2Vzc2lv
bklEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogUEFMOjpTZXNzaW9uSUQ6OmRl
ZmF1bHRTZXNzaW9uSUQoKTsKIAogICAgIGF1dG8qIGRvY3VtZW50ID0gZnJhbWVMb2FkZXIuZnJh
bWUoKS5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQpIHsKLSAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1JfSUZfQUxMT1dFRChzZXNzaW9uSUQsICJsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5
OiBubyBkb2N1bWVudCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQg
IiwgcmVzb3VyY2VJRCA9ICVsdSkiLCBwYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCwgcmVzb3Vy
Y2VMb2FkSWRlbnRpZmllcik7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQo
c2Vzc2lvbklELCAibG9hZFJlc291cmNlU3luY2hyb25vdXNseTogbm8gZG9jdW1lbnQgKHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlbHUp
IiwgcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSwgcmVzb3VyY2VMb2FkSWRl
bnRpZmllcik7CiAgICAgICAgIGVycm9yID0gaW50ZXJuYWxFcnJvcihyZXF1ZXN0LnVybCgpKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChhdXRvIHN5bmNMb2FkUmVzdWx0ID0g
dHJ5TG9hZGluZ1N5bmNocm9ub3VzbHlVc2luZ1VSTFNjaGVtZUhhbmRsZXIoZnJhbWVMb2FkZXIs
IHJlc291cmNlTG9hZElkZW50aWZpZXIsIHJlcXVlc3QpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SX0lGX0FMTE9XRUQoc2Vzc2lvbklELCAibG9hZFJlc291cmNlU3luY2hyb25vdXNseTog
ZmFpbGVkIGNhbGxpbmcgdHJ5TG9hZGluZ1N5bmNocm9ub3VzbHlVc2luZ1VSTFNjaGVtZUhhbmRs
ZXIgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNl
SUQgPSAlbHUsIGVycm9yID0gJWQpIiwgcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQsIHJlc291
cmNlTG9hZElkZW50aWZpZXIsIHN5bmNMb2FkUmVzdWx0LT5lcnJvci5lcnJvckNvZGUoKSk7Cisg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoc2Vzc2lvbklELCAibG9hZFJlc291
cmNlU3luY2hyb25vdXNseTogZmFpbGVkIGNhbGxpbmcgdHJ5TG9hZGluZ1N5bmNocm9ub3VzbHlV
c2luZ1VSTFNjaGVtZUhhbmRsZXIgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0ICIsIHJlc291cmNlSUQgPSAlbHUsIGVycm9yID0gJWQpIiwgcGFnZUlELnRvVUludDY0
KCksIGZyYW1lSUQudG9VSW50NjQoKSwgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgc3luY0xvYWRS
ZXN1bHQtPmVycm9yLmVycm9yQ29kZSgpKTsKICAgICAgICAgZXJyb3IgPSBXVEZNb3ZlKHN5bmNM
b2FkUmVzdWx0LT5lcnJvcik7CiAgICAgICAgIHJlc3BvbnNlID0gV1RGTW92ZShzeW5jTG9hZFJl
c3VsdC0+cmVzcG9uc2UpOwogICAgICAgICBkYXRhID0gV1RGTW92ZShzeW5jTG9hZFJlc3VsdC0+
ZGF0YSk7CkBAIC01NjksNyArNTY5LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6bG9hZFJl
c291cmNlU3luY2hyb25vdXNseShGcmFtZUxvYWRlciYgZnJhbWVMb2FkZXIsIHVuc2kKICAgICAg
ICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2Vu
ZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Bvb2w6OlNldFdlYlByb2Nlc3NIYXNVcGxvYWRzIHsgUHJv
Y2Vzczo6aWRlbnRpZmllcigpIH0sIDApOwogCiAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5
bmMoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQZXJmb3JtU3luY2hy
b25vdXNMb2FkKGxvYWRQYXJhbWV0ZXJzKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpQZXJmb3JtU3luY2hyb25vdXNMb2FkOjpSZXBseShlcnJvciwgcmVzcG9uc2Us
IGRhdGEpLCAwKSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHNlc3Np
b25JRCwgImxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6IGZhaWxlZCBzZW5kaW5nIHN5bmNocm9u
b3VzIG5ldHdvcmsgcHJvY2VzcyBtZXNzYWdlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJWx1KSIsIHBhZ2VJRC50b1VJbnQ2NCgpLCBm
cmFtZUlELCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1JfSUZfQUxMT1dFRChzZXNzaW9uSUQsICJsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiBmYWls
ZWQgc2VuZGluZyBzeW5jaHJvbm91cyBuZXR3b3JrIHByb2Nlc3MgbWVzc2FnZSAocGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICVsdSkiLCBw
YWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpLCByZXNvdXJjZUxvYWRJZGVudGlm
aWVyKTsKICAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSB3ZWJQYWdlID8gd2ViUGFnZS0+Y29yZVBh
Z2UoKSA6IG51bGxwdHIpCiAgICAgICAgICAgICBwYWdlLT5kaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dCgpLmxvZ0RpYWdub3N0aWNNZXNzYWdlKFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6
aW50ZXJuYWxFcnJvcktleSgpLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OnN5bmNo
cm9ub3VzTWVzc2FnZUZhaWxlZEtleSgpLCBXZWJDb3JlOjpTaG91bGRTYW1wbGU6Ok5vKTsKICAg
ICAgICAgcmVzcG9uc2UgPSBSZXNvdXJjZVJlc3BvbnNlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggODhi
ZDUzYmYxZjhmYjczNmViMTczZWY2NGYxZTMwM2QxYmIxMDBjMS4uZmE1MzkyNWViNjhmMDQyZmVj
NzliZjM4ODYwYjI3NjAzMjVmYjUxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcApAQCAtODgsMTYgKzg4LDE2IEBA
IHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qm
JiBwcm9wb3NlZFJlcXVlc3QsIFJlc291CiAgICAgUmVmPFdlYlJlc291cmNlTG9hZGVyPiBwcm90
ZWN0ZWRUaGlzKCp0aGlzKTsKIAogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJl
c291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QgdG8gJyVzJyIsIHByb3Bvc2VkUmVxdWVzdC51
cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoIndpbGxTZW5kUmVxdWVzdDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVy
cy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFj
a2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgi
d2lsbFNlbmRSZXF1ZXN0OiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBh
Z2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCks
IG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwogCiAgICAgaWYgKG1fY29yZUxvYWRl
ci0+ZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS5tYXliZUxvYWRGYWxs
YmFja0ZvclJlZGlyZWN0KG1fY29yZUxvYWRlci5nZXQoKSwgcHJvcG9zZWRSZXF1ZXN0LCByZWRp
cmVjdFJlc3BvbnNlKSkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3aWxsU2Vu
ZFJlcXVlc3Q6IGV4aXRpbmcgZWFybHkgYmVjYXVzZSBtYXliZUxvYWRGYWxsYmFja0ZvclJlZGly
ZWN0IHJldHVybmVkIGZhbHNlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMu
cGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tp
bmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KCJ3aWxsU2VuZFJlcXVlc3Q6IGV4aXRpbmcgZWFybHkgYmVjYXVzZSBtYXliZUxvYWRGYWxsYmFj
a0ZvclJlZGlyZWN0IHJldHVybmVkIGZhbHNlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1Bh
cmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQu
dG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKICAgICBtX2NvcmVMb2FkZXItPndpbGxTZW5kUmVxdWVzdChXVEZNb3Zl
KHByb3Bvc2VkUmVxdWVzdCksIHJlZGlyZWN0UmVzcG9uc2UsIFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0oUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkgewog
ICAgICAgICBpZiAoIW1fY29yZUxvYWRlciB8fCAhbV9jb3JlTG9hZGVyLT5pZGVudGlmaWVyKCkp
IHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIndpbGxTZW5kUmVxdWVzdDog
ZXhpdGluZyBlYXJseSBiZWNhdXNlIG5vIGNvcmVsb2FkZXIgb3IgaWRlbnRpZmllciAocGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBS
SXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNr
aW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsK
KyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIndpbGxTZW5kUmVxdWVzdDogZXhp
dGluZyBlYXJseSBiZWNhdXNlIG5vIGNvcmVsb2FkZXIgb3IgaWRlbnRpZmllciAocGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2
NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5n
UGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291
cmNlSUQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTExMywxMiArMTEz
LDEyIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFNlbmREYXRhKHVpbnQ2NF90IGJ5dGVz
U2VudCwgdWludDY0X3QgdG90YWxCeXRlc1RvQmVTCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpk
aWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGJvb2wg
bmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpCiB7CiAgICAgTE9HKE5ldHdv
cmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZSBm
b3IgJyVzJy4gU3RhdHVzICVkLiIsIG1fY29yZUxvYWRlci0+dXJsKCkuc3RyaW5nKCkubGF0aW4x
KCkuZGF0YSgpLCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpKTsKLSAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIHN0YXR1cyA9ICVk
KSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFy
YW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlELCByZXNwb25z
ZS5odHRwU3RhdHVzQ29kZSgpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNl
aXZlUmVzcG9uc2U6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAi
LCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIHN0YXR1cyA9ICVkKSIsIG1fdHJhY2tpbmdQYXJh
bWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRv
VUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQsIHJlc3BvbnNlLmh0dHBT
dGF0dXNDb2RlKCkpOwogCiAgICAgUmVmPFdlYlJlc291cmNlTG9hZGVyPiBwcm90ZWN0ZWRUaGlz
KCp0aGlzKTsKIAogICAgIGlmIChtX2NvcmVMb2FkZXItPmRvY3VtZW50TG9hZGVyKCktPmFwcGxp
Y2F0aW9uQ2FjaGVIb3N0KCkubWF5YmVMb2FkRmFsbGJhY2tGb3JSZXNwb25zZShtX2NvcmVMb2Fk
ZXIuZ2V0KCksIHJlc3BvbnNlKSkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJk
aWRSZWNlaXZlUmVzcG9uc2U6IG5vdCBjb250aW51aW5nIGxvYWQgYmVjYXVzZSB0aGUgY29udGVu
dCBpcyBhbHJlYWR5IGNhY2hlZCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQ
Ukl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJz
LnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNr
aW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiBub3QgY29udGludWluZyBsb2FkIGJlY2F1c2UgdGhlIGNv
bnRlbnQgaXMgYWxyZWFkeSBjYWNoZWQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1l
dGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJ
bnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApAQCAtMTM1LDcgKzEzNSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRp
ZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgYm9vCiAg
ICAgICAgICAgICBpZiAobV9jb3JlTG9hZGVyICYmIG1fY29yZUxvYWRlci0+aWRlbnRpZmllcigp
KQogICAgICAgICAgICAgICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
Q29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKSk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAg
ICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiBub3Qg
Y29udGludWluZyBsb2FkIGJlY2F1c2Ugbm8gY29yZUxvYWRlciBvciBubyBJRCAocGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2
NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5n
UGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKKyAg
ICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6
IG5vdCBjb250aW51aW5nIGxvYWQgYmVjYXVzZSBubyBjb3JlTG9hZGVyIG9yIG5vIElEIChwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIg
UFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJh
Y2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMu
cmVzb3VyY2VJRCk7CiAgICAgICAgIH07CiAgICAgfQogCkBAIC0xNDgsNyArMTQ4LDcgQEAgdm9p
ZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJl
bmNlJiBkYXRhLCBpbnQ2NF90IGUKICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFtX2lzUHJvY2Vz
c2luZ05ldHdvcmtSZXNwb25zZSwgIk5ldHdvcmsgcHJvY2VzcyBzaG91bGQgbm90IHNlbmQgZGF0
YSB1bnRpbCB3ZSd2ZSB2YWxpZGF0ZWQgdGhlIHJlc3BvbnNlIik7CiAKICAgICBpZiAoIW1fbnVt
Qnl0ZXNSZWNlaXZlZCkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNl
aXZlRGF0YTogU3RhcnRlZCByZWNlaXZpbmcgZGF0YSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZy
YW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tp
bmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFt
ZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKKyAgICAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZURhdGE6IFN0YXJ0ZWQgcmVjZWl2aW5nIGRhdGEgKHBh
Z2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAl
IiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90
cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVy
cy5yZXNvdXJjZUlEKTsKICAgICB9CiAgICAgbV9udW1CeXRlc1JlY2VpdmVkICs9IGRhdGEuc2l6
ZSgpOwogCkBAIC0xNTgsNyArMTU4LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVj
ZWl2ZURhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBpbnQ2NF90IGUKIHZvaWQg
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaFJlc291cmNlTG9hZChjb25zdCBOZXR3b3JrTG9h
ZE1ldHJpY3MmIG5ldHdvcmtMb2FkTWV0cmljcykKIHsKICAgICBMT0coTmV0d29yaywgIihXZWJQ
cm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkIGZvciAnJXMn
IiwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwotICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZpbmlzaFJlc291cmNlTG9hZDogKHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQg
IiwgbGVuZ3RoID0gJXpkKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgp
LCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNv
dXJjZUlELCBtX251bUJ5dGVzUmVjZWl2ZWQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
ImRpZEZpbmlzaFJlc291cmNlTG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgbGVuZ3RoID0gJXpkKSIsIG1f
dHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVy
cy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQsIG1f
bnVtQnl0ZXNSZWNlaXZlZCk7CiAKICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFtX2lzUHJvY2Vz
c2luZ05ldHdvcmtSZXNwb25zZSwgIkxvYWQgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIGZpbmlzaCBi
ZWZvcmUgd2UndmUgdmFsaWRhdGVkIHRoZSByZXNwb25zZSIpOwogICAgIG1fY29yZUxvYWRlci0+
ZGlkRmluaXNoTG9hZGluZyhuZXR3b3JrTG9hZE1ldHJpY3MpOwpAQCAtMTY3LDcgKzE2Nyw3IEBA
IHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaFJlc291cmNlTG9hZChjb25zdCBOZXR3
b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRGYWls
UmVzb3VyY2VMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewogICAgIExPRyhOZXR3
b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9hZGVyOjpkaWRGYWlsUmVzb3VyY2VMb2Fk
IGZvciAnJXMnIiwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkp
OwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZhaWxSZXNvdXJjZUxvYWQ6IChwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIg
UFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJh
Y2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQp
OworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZhaWxSZXNvdXJjZUxvYWQ6IChwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIg
UFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJh
Y2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMu
cmVzb3VyY2VJRCk7CiAKICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFtX2lzUHJvY2Vzc2luZ05l
dHdvcmtSZXNwb25zZSwgIkxvYWQgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIGZpbmlzaCBiZWZvcmUg
d2UndmUgdmFsaWRhdGVkIHRoZSByZXNwb25zZSIpOwogCkBAIC0xNzksNyArMTc5LDcgQEAgdm9p
ZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbFJlc291cmNlTG9hZChjb25zdCBSZXNvdXJjZUVy
cm9yJiBlcnJvcikKIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEJsb2NrQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UoKQogewogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291
cmNlTG9hZGVyOjpkaWRCbG9ja0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGZvciAnJXMnIiwgbV9j
b3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCkpOwotICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoImRpZEJsb2NrQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6IChwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJ
dTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tp
bmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwor
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEJsb2NrQXV0aGVudGljYXRpb25DaGFsbGVu
Z2U6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJj
ZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0
KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1Bh
cmFtZXRlcnMucmVzb3VyY2VJRCk7CiAKICAgICBtX2NvcmVMb2FkZXItPmRpZEJsb2NrQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UoKTsKIH0KQEAgLTE4Nyw3ICsxODcsNyBAQCB2b2lkIFdlYlJlc291
cmNlTG9hZGVyOjpkaWRCbG9ja0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCkKIHZvaWQgV2ViUmVz
b3VyY2VMb2FkZXI6OnN0b3BMb2FkaW5nQWZ0ZXJYRnJhbWVPcHRpb25zT3JDb250ZW50U2VjdXJp
dHlQb2xpY3lEZW5pZWQoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAg
TE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OnN0b3BMb2FkaW5n
QWZ0ZXJYRnJhbWVPcHRpb25zT3JDb250ZW50U2VjdXJpdHlQb2xpY3lEZW5pZWQgZm9yICclcyci
LCBtX2NvcmVMb2FkZXItPnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSk7Ci0gICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRCgic3RvcExvYWRpbmdBZnRlclhGcmFtZU9wdGlvbnNPckNvbnRl
bnRTZWN1cml0eVBvbGljeURlbmllZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1l
dGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90
cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RCgic3RvcExvYWRpbmdBZnRlclhGcmFtZU9wdGlvbnNPckNvbnRlbnRTZWN1cml0eVBvbGljeURl
bmllZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50
NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5n
UGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKIAogICAgIG1fY29yZUxvYWRlci0+ZG9jdW1lbnRMb2Fk
ZXIoKS0+c3RvcExvYWRpbmdBZnRlclhGcmFtZU9wdGlvbnNPckNvbnRlbnRTZWN1cml0eVBvbGlj
eURlbmllZChtX2NvcmVMb2FkZXItPmlkZW50aWZpZXIoKSwgcmVzcG9uc2UpOwogfQpAQCAtMTk2
LDEzICsxOTYsMTMgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6c3RvcExvYWRpbmdBZnRlclhG
cmFtZU9wdGlvbnNPckNvbnRlbnRTZWN1cml0eVBvbGljeURlbmkKIHZvaWQgV2ViUmVzb3VyY2VM
b2FkZXI6OmRpZFJlY2VpdmVSZXNvdXJjZShjb25zdCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxl
JiBoYW5kbGUpCiB7CiAgICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VM
b2FkZXI6OmRpZFJlY2VpdmVSZXNvdXJjZSBmb3IgJyVzJyIsIG1fY29yZUxvYWRlci0+dXJsKCku
c3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJk
aWRSZWNlaXZlUmVzb3VyY2U6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMu
cGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIG1fdHJhY2tp
bmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRp
ZFJlY2VpdmVSZXNvdXJjZTogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5w
YWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgp
LCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKIAogICAgIFJlZlB0cjxTaGFyZWRC
dWZmZXI+IGJ1ZmZlciA9IGhhbmRsZS50cnlXcmFwSW5TaGFyZWRCdWZmZXIoKTsKIAogICAgIGlm
ICghYnVmZmVyKSB7CiAgICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIGNyZWF0ZSBidWZmZXIg
ZnJvbSBTaGFyZWFibGVSZXNvdXJjZSBzZW50IGZyb20gdGhlIG5ldHdvcmsgcHJvY2Vzcy4iKTsK
LSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc291cmNlOiBVbmFi
bGUgdG8gY3JlYXRlIFNoYXJlZEJ1ZmZlciAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJh
bWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBt
X3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgiZGlkUmVjZWl2ZVJlc291cmNlOiBVbmFibGUgdG8gY3JlYXRlIFNoYXJlZEJ1ZmZl
ciAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJ
RCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgp
LCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJh
bWV0ZXJzLnJlc291cmNlSUQpOwogICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBtX2NvcmVMb2Fk
ZXItPmZyYW1lKCkpIHsKICAgICAgICAgICAgIGlmIChhdXRvKiBwYWdlID0gZnJhbWUtPnBhZ2Uo
KSkKICAgICAgICAgICAgICAgICBwYWdlLT5kaWFnbm9zdGljTG9nZ2luZ0NsaWVudCgpLmxvZ0Rp
YWdub3N0aWNNZXNzYWdlKFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6aW50ZXJuYWxF
cnJvcktleSgpLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmNyZWF0ZVNoYXJlZEJ1
ZmZlckZhaWxlZEtleSgpLCBXZWJDb3JlOjpTaG91bGRTYW1wbGU6Ok5vKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oCmluZGV4
IDU4NjU0MzcxOGU1ZTgzODhiOGI0MWFiMDIwMzdhYzc2ZTc4NjkzN2MuLjljMTE0N2RhMDUxNTNk
ZDdhYzQ0YWYzMTU4MWUyMjFiNjliZTkyNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaApAQCAtMjgsNiArMjgsNyBAQAog
I2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5j
bHVkZSAiU2hhcmVhYmxlUmVzb3VyY2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRp
Zmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTUyLDcgKzUzLDcg
QEAgY2xhc3MgV2ViUmVzb3VyY2VMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJSZXNvdXJj
ZUxvYWRlcj4sIHB1YmxpYyBJUEM6Ok1lc3MKIHB1YmxpYzoKICAgICBzdHJ1Y3QgVHJhY2tpbmdQ
YXJhbWV0ZXJzIHsKICAgICAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEOwotICAg
ICAgICB1aW50NjRfdCBmcmFtZUlEIHsgMCB9OworICAgICAgICBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRDsKICAgICAgICAgUmVzb3VyY2VMb2FkSWRlbnRpZmllciByZXNvdXJjZUlE
IHsgMCB9OwogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAppbmRl
eCA2ZmMwOWM0ZjY1YjI0NWI2MGJmNGQ0ZjU5N2E5ZjkwYWQ0ZDBhYWY5Li40OWQyMGM3YzQ5YzAy
YWE5NTlhYTRhZTRkOWVlYzhmZTgzYzVmZTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24uY3BwCkBAIC03Myw3ICs3Myw3IEBAIHN0YXRpYyBjb25zdCBTZWNvbmRzIHN5bmNXb3Jr
ZXJUZXJtaW5hdGlvblRpbWVvdXQgeyAxMDBfbXMgfTsgLy8gT25seSB1c2VkIGJ5IGxhCiAKIGNs
YXNzIFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudCBmaW5hbCA6IHB1YmxpYyBFbXB0eUZy
YW1lTG9hZGVyQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJD
bGllbnQoV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCkKKyAgICBTZXJ2aWNlV29ya2VyRnJh
bWVMb2FkZXJDbGllbnQoV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpCiAgICAg
ICAgIDogbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCiAgICAgICAgICwgbV9zZXNzaW9uSUQoc2Vz
c2lvbklEKQogICAgICAgICAsIG1fcGFnZUlEKHBhZ2VJRCkKQEAgLTk2LDEzICs5NiwxMyBAQCBw
cml2YXRlOgogCiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9zZXNzaW9uSUQ7IH0KICAgICBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmll
cj4gcGFnZUlEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9wYWdlSUQ7IH0KLSAgICBPcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZnJhbWVJRDsgfQor
ICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fZnJhbWVJRDsgfQogICAgIFN0cmluZyB1c2VyQWdlbnQoY29uc3QgVVJM
JikgZmluYWwgeyByZXR1cm4gbV91c2VyQWdlbnQ7IH0KIAogICAgIFdlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uJiBtX2Nvbm5lY3Rpb247CiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9u
SUQ7Ci0gICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV9wYWdlSUQ7Ci0gICAgdWludDY0X3Qg
bV9mcmFtZUlEIHsgMCB9OworICAgIFBhZ2VJZGVudGlmaWVyIG1fcGFnZUlEOworICAgIEZyYW1l
SWRlbnRpZmllciBtX2ZyYW1lSUQ7CiAgICAgU3RyaW5nIG1fdXNlckFnZW50OwogfTsKIApAQCAt
MTUzLDcgKzE1Myw4IEBAIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omluc3Rh
bGxTZXJ2aWNlV29ya2VyKGNvbnN0IFNlcnZpY2VXb3JrZXJDb250CiAKICAgICAvLyBGSVhNRTog
VGhpcyBtZXRob2Qgc2hvdWxkIGJlIG1vdmVkIGRpcmVjdGx5IHRvIFdlYkNvcmU6OlNXQ29udGV4
dE1hbmFnZXI6OkNvbm5lY3Rpb24KICAgICAvLyBJZiBpdCB3ZXJlbid0IGZvciBTZXJ2aWNlV29y
a2VyRnJhbWVMb2FkZXJDbGllbnQncyBkZXBlbmRlbmNlIG9uIFdlYkRvY3VtZW50TG9hZGVyLCB0
aGlzIGNvdWxkIGFscmVhZHkgaGFwcGVuLgotICAgIGF1dG8gZnJhbWVMb2FkZXJDbGllbnQgPSBz
dGQ6Om1ha2VfdW5pcXVlPFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudD4oKnRoaXMsIHNl
c3Npb25JRCwgbV9wYWdlSUQsICsrbV9wcmV2aW91c1NlcnZpY2VXb3JrZXJJRCwgZWZmZWN0aXZl
VXNlckFnZW50KTsKKyAgICAvLyBGSVhNRTogV2VpcmQgdG8gcGFzcyBtX3ByZXZpb3VzU2Vydmlj
ZVdvcmtlcklEIGFzIGEgRnJhbWVJZGVudGlmaWVyLgorICAgIGF1dG8gZnJhbWVMb2FkZXJDbGll
bnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudD4oKnRo
aXMsIHNlc3Npb25JRCwgbV9wYWdlSUQsIGZyYW1lSWRlbnRpZmllckZyb21JRCgrK21fcHJldmlv
dXNTZXJ2aWNlV29ya2VySUQpLCBlZmZlY3RpdmVVc2VyQWdlbnQpOwogICAgIHBhZ2VDb25maWd1
cmF0aW9uLmxvYWRlckNsaWVudEZvck1haW5GcmFtZSA9IGZyYW1lTG9hZGVyQ2xpZW50LmdldCgp
OwogICAgIG1fbG9hZGVycy5hZGQoV1RGTW92ZShmcmFtZUxvYWRlckNsaWVudCkpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCmluZGV4IDNjODcyZjVhZGYzOWJlYWNkM2E3MDY2N2IyNjg5ZDM4Yzli
MTExMmUuLmZjZDA5OGU0ODQwYTU4YTJiNWEyMTk3ZWI1MjkxZTBhNGY0ODI5ZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCkBAIC0yNjUsNyArMjY1LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmZvY3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUqIGZyYW1lKQogewogICAgIFdlYkZyYW1lKiB3ZWJG
cmFtZSA9IGZyYW1lID8gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lKSA6IG51bGxwdHI7
CiAKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkZvY3VzZWRGcmFtZUNoYW5nZWQod2ViRnJh
bWUgPyB3ZWJGcmFtZS0+ZnJhbWVJRCgpIDogMCksIG1fcGFnZS5wYWdlSUQoKSk7CisgICAgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpGb2N1c2VkRnJhbWVDaGFuZ2VkKHdlYkZyYW1lID8gbWFrZU9w
dGlvbmFsKHdlYkZyYW1lLT5mcmFtZUlEKCkpIDogV1RGOjpudWxsb3B0KSwgbV9wYWdlLnBhZ2VJ
RCgpKTsKIH0KIAogUGFnZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3coRnJhbWUmIGZy
YW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXaW5kb3dGZWF0dXJl
cyYgd2luZG93RmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIG5hdmlnYXRpb25BY3Rp
b24pCkBAIC02MjUsNyArNjI1LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6
ZUNoYW5nZWQoRnJhbWUmIGZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb24KICAgICAgICAg
V2ViRnJhbWUqIGxhcmdlc3RGcmFtZSA9IGZpbmRMYXJnZXN0RnJhbWVJbkZyYW1lU2V0KG1fcGFn
ZSk7CiAgICAgICAgIGlmIChsYXJnZXN0RnJhbWUgIT0gbV9jYWNoZWRGcmFtZVNldExhcmdlc3RG
cmFtZS5nZXQoKSkgewogICAgICAgICAgICAgbV9jYWNoZWRGcmFtZVNldExhcmdlc3RGcmFtZSA9
IGxhcmdlc3RGcmFtZTsKLSAgICAgICAgICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkZyYW1lU2V0TGFyZ2VzdEZyYW1lQ2hhbmdlZChsYXJnZXN0RnJhbWUgPyBsYXJnZXN0
RnJhbWUtPmZyYW1lSUQoKSA6IDApKTsKKyAgICAgICAgICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkZyYW1lU2V0TGFyZ2VzdEZyYW1lQ2hhbmdlZChsYXJnZXN0RnJhbWUg
PyBtYWtlT3B0aW9uYWwobGFyZ2VzdEZyYW1lLT5mcmFtZUlEKCkpIDogV1RGOjpudWxsb3B0KSk7
CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTEzMTYsMTIgKzEzMTYsMTIgQEAgdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmRpZEludmFsaWRhdGVEb2N1bWVudE1hcmtlclJlY3RzKCkKIH0KIAogI2lmIEVO
QUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi12b2lkIFdlYkNocm9tZUNsaWVudDo6aGFz
U3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdpc3Ry
YWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRp
ZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpoYXNTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWlu
JiYgc3ViRnJhbWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3BhZ2UuaGFzU3RvcmFn
ZUFjY2VzcyhXVEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0b3BGcmFtZURvbWFpbiks
IGZyYW1lSUQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJh
bWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZy
YW1lSUQsIFBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nl
c3NXYXNHcmFudGVkLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFJlZ2lz
dHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJh
bWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1By
b21wdFdhc1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3BhZ2UucmVxdWVz
dFN0b3JhZ2VBY2Nlc3MoV1RGTW92ZShzdWJGcmFtZURvbWFpbiksIFdURk1vdmUodG9wRnJhbWVE
b21haW4pLCBmcmFtZUlELCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmgKaW5kZXggY2VkMzZhNmMyNWI3ZTRmODM0NGE1ODk5NDAwNjc5MWY3Y2M5Mjc2Zi4u
MmRjNjYyMmMxYjdmMWM1YTk1YTJjY2Q3OWIzMjA5YmI1ODcyYTYyYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaApAQCAtMzY3LDggKzM2Nyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRJbnZhbGlkYXRl
RG9jdW1lbnRNYXJrZXJSZWN0cygpIGZpbmFsOwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURf
U1RBVElTVElDUykKLSAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiB0
b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7Ci0gICAgdm9pZCBy
ZXF1ZXN0U3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1l
RG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCB1aW50
NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBXZWJDb3JlOjpTdG9y
YWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKSBmaW5hbDsKKyAgICB2b2lkIGhhc1N0b3JhZ2VB
Y2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmKSBmaW5hbDsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3Jl
OjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdh
c1Nob3duKT4mJikgZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJ
T04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA2NTczOWJiOGFhOTZkZmU4
YzJiMGUyNmMxNzFhOWY5Yjc2YjczNDA5Li43MDk4MGVlNWI1YjhkNzAzN2U0NWIzZjJhZjNlMmJi
MWZhMDM5NGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTEyMCw3ICsx
MjAsNyBAQCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnBh
Z2VJRCgpIGNvbnN0CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KIAotT3B0aW9uYWw8dWlu
dDY0X3Q+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlEKCkgY29uc3QKK09wdGlvbmFsPEZy
YW1lSWRlbnRpZmllcj4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZyYW1lSUQoKSBjb25zdAogewog
ICAgIGlmIChtX2ZyYW1lKQogICAgICAgICByZXR1cm4gbV9mcmFtZS0+ZnJhbWVJRCgpOwpAQCAt
NTQ2LDcgKzU0Niw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFp
bFByb3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlCiAgICAgaWYgKCF3ZWJQYWdl
KQogICAgICAgICByZXR1cm47CiAKLSAgICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBXZWJG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkOiAocGFnZUlE
ID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIikiLCB0aGlzLCB3ZWJQYWdlLT5w
YWdlSUQoKS50b1VJbnQ2NCgpLCBtX2ZyYW1lLT5mcmFtZUlEKCkpOworICAgIFJFTEVBU0VfTE9H
KE5ldHdvcmssICIlcCAtIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxQcm92
aXNpb25hbExvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAi
KSIsIHRoaXMsIHdlYlBhZ2UtPnBhZ2VJRCgpLnRvVUludDY0KCksIG1fZnJhbWUtPmZyYW1lSUQo
KS50b1VJbnQ2NCgpKTsKIAogICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4gdXNlckRhdGE7CiAKQEAg
LTU4Miw3ICs1ODIsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZh
aWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAgIGlmICghd2ViUGFnZSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgUkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0gV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiKSIsIHRoaXMsIHdlYlBhZ2UtPnBhZ2VJRCgpLnRvVUludDY0
KCksIG1fZnJhbWUtPmZyYW1lSUQoKSk7CisgICAgUkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0g
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWQ6IChwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiKSIsIHRoaXMsIHdlYlBhZ2UtPnBhZ2VJRCgp
LnRvVUludDY0KCksIG1fZnJhbWUtPmZyYW1lSUQoKS50b1VJbnQ2NCgpKTsKIAogICAgIFJlZlB0
cjxBUEk6Ok9iamVjdD4gdXNlckRhdGE7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5k
ZXggYzhmYjJhZjIxMjU2NmM2NDY4NjA3N2EwYzg5YWY4MTA1MzkwYTY4MC4uNjQxYjhjMDY2MzQx
MzgwYzA3MDI4MjBiODc4OWRkMTg1ZThiYjA0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIHZvaWQgYXBwbHlUb0RvY3VtZW50TG9h
ZGVyKFdlYnNpdGVQb2xpY2llc0RhdGEmJik7CiAKICAgICBPcHRpb25hbDxXZWJDb3JlOjpQYWdl
SWRlbnRpZmllcj4gcGFnZUlEKCkgY29uc3QgZmluYWw7Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+
IGZyYW1lSUQoKSBjb25zdCBmaW5hbDsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXI+IGZyYW1lSUQoKSBjb25zdCBmaW5hbDsKICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQoKSBjb25zdCBmaW5hbDsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVK
YXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmNw
cAppbmRleCA3MzhiZTkyYjkyZGM3M2QyZGY2NzdlZTM0ZWMxMzA4MWE2MGYxYTFjLi5mNmM1NTdk
NWYwZmQyMDFkYmI1MDUxMTQ3ZWJjMjcwYTViNDVjZjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5jcHAKQEAgLTUwLDcgKzUwLDcgQEAg
V2ViQ29va2llSmFyOjpXZWJDb29raWVKYXIoKQogCiBTdHJpbmcgV2ViQ29va2llSmFyOjpjb29r
aWVzKFdlYkNvcmU6OkRvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwpIGNvbnN0CiB7
Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVu
dGlmaWVyPiBmcmFtZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7CiAg
ICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkgewogICAgICAgICBmcmFtZUlE
ID0gZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKTsKQEAgLTY3LDcgKzY3LDcgQEAg
U3RyaW5nIFdlYkNvb2tpZUphcjo6Y29va2llcyhXZWJDb3JlOjpEb2N1bWVudCYgZG9jdW1lbnQs
IGNvbnN0IFVSTCYgdXJsKSBjb25zdAogCiB2b2lkIFdlYkNvb2tpZUphcjo6c2V0Q29va2llcyhX
ZWJDb3JlOjpEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcm
IGNvb2tpZVN0cmluZykKIHsKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRDsKKyAgICBP
cHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQ7CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRDsKICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKSB7
CiAgICAgICAgIGZyYW1lSUQgPSBmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuZnJhbWVJRCgpOwpA
QCAtODUsNyArODUsNyBAQCBib29sIFdlYkNvb2tpZUphcjo6Y29va2llc0VuYWJsZWQoY29uc3Qg
V2ViQ29yZTo6RG9jdW1lbnQmIGRvY3VtZW50KSBjb25zdAogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvcmU6OlNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gV2Vi
Q29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBQQUw6OlNlc3Np
b25JRCYgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNh
bWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0
X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFdlYkNvcmU6Oklu
Y2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAorc3RkOjpwYWly
PFN0cmluZywgV2ViQ29yZTo6U2VjdXJlQ29va2llc0FjY2Vzc2VkPiBXZWJDb29raWVKYXI6OmNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiBzZXNzaW9u
SUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiBz
YW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZy
YW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFdlYkNvcmU6OkluY2x1ZGVT
ZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAogewogICAgIFN0cmluZyBj
b29raWVTdHJpbmc7CiAgICAgYm9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQgPSBmYWxzZTsKQEAg
LTk2LDcgKzk2LDcgQEAgc3RkOjpwYWlyPFN0cmluZywgV2ViQ29yZTo6U2VjdXJlQ29va2llc0Fj
Y2Vzc2VkPiBXZWJDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWEKIAogYm9vbCBXZWJDb29raWVK
YXI6OmdldFJhd0Nvb2tpZXMoY29uc3QgV2ViQ29yZTo6RG9jdW1lbnQmIGRvY3VtZW50LCBjb25z
dCBVUkwmIHVybCwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0CiB7
Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVu
dGlmaWVyPiBmcmFtZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7CiAg
ICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkgewogICAgICAgICBmcmFtZUlE
ID0gZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmgKaW5kZXggNTU5YmQwZTUwYmJlYzM1
ZmZiMjU2YjkxMmI3YjQ2ZGE5OTRiMmQ0OC4uNWRjYWNkZDk2OGU2YTRiMDYyN2M3ODdjNmRhMWE1
MTU0NzFiZjg4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViQ29va2llSmFyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
Q29va2llSmFyLmgKQEAgLTM2LDcgKzM2LDcgQEAgcHVibGljOgogICAgIFN0cmluZyBjb29raWVz
KFdlYkNvcmU6OkRvY3VtZW50JiwgY29uc3QgVVJMJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBz
ZXRDb29raWVzKFdlYkNvcmU6OkRvY3VtZW50JiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBj
b29raWVTdHJpbmcpIGZpbmFsOwogICAgIGJvb2wgY29va2llc0VuYWJsZWQoY29uc3QgV2ViQ29y
ZTo6RG9jdW1lbnQmKSBjb25zdCBmaW5hbDsKLSAgICBzdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb3Jl
OjpTZWN1cmVDb29raWVzQWNjZXNzZWQ+IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNv
bnN0IFBBTDo6U2Vzc2lvbklEJiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3Jl
OjpTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwg
T3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJl
Q29va2llcykgY29uc3QgZmluYWw7CisgICAgc3RkOjpwYWlyPFN0cmluZywgV2ViQ29yZTo6U2Vj
dXJlQ29va2llc0FjY2Vzc2VkPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBQ
QUw6OlNlc3Npb25JRCYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2Ft
ZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
PiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpJbmNsdWRlU2Vj
dXJlQ29va2llcykgY29uc3QgZmluYWw7CiAgICAgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IFdl
YkNvcmU6OkRvY3VtZW50JiwgY29uc3QgVVJMJiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mKSBj
b25zdCBmaW5hbDsKICAgICB2b2lkIGRlbGV0ZUNvb2tpZShjb25zdCBXZWJDb3JlOjpEb2N1bWVu
dCYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSkgZmluYWw7CiBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCmluZGV4
IDYwY2ZkOGQyYTE3NTRhN2FjZWQ1OGQ2MWRmMTdiZTRjMTQzMTM2OTQuLmYwZWJmZWRiYjJlOTUz
YWQwZmMwN2Y5ZjgxNjYwOWRiOTczNWI2NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKQEAgLTk1LDEyICs5NSw2IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCiBERUZJTkVfREVCVUdfT05MWV9HTE9CQUwoV1RGOjpSZWZDb3VudGVkTGVh
a0NvdW50ZXIsIHdlYkZyYW1lQ291bnRlciwgKCJXZWJGcmFtZSIpKTsKIAotc3RhdGljIHVpbnQ2
NF90IGdlbmVyYXRlRnJhbWVJRCgpCi17Ci0gICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZUZyYW1l
SUQgPSAxOwotICAgIHJldHVybiB1bmlxdWVGcmFtZUlEKys7Ci19Ci0KIHN0YXRpYyB1aW50NjRf
dCBnZW5lcmF0ZUxpc3RlbmVySUQoKQogewogICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVMaXN0
ZW5lcklEID0gMTsKQEAgLTE0OCw3ICsxNDIsNyBAQCBSZWY8V2ViRnJhbWU+IFdlYkZyYW1lOjpj
cmVhdGUoc3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50PiBmcmFtZUxvYWRlcgog
CiBXZWJGcmFtZTo6V2ViRnJhbWUoc3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50
PiBmcmFtZUxvYWRlckNsaWVudCkKICAgICA6IG1fZnJhbWVMb2FkZXJDbGllbnQoV1RGTW92ZShm
cmFtZUxvYWRlckNsaWVudCkpCi0gICAgLCBtX2ZyYW1lSUQoZ2VuZXJhdGVGcmFtZUlEKCkpCisg
ICAgLCBtX2ZyYW1lSUQoRnJhbWVJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKQogewogICAgIG1fZnJh
bWVMb2FkZXJDbGllbnQtPnNldFdlYkZyYW1lKHRoaXMpOwogICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLmFkZFdlYkZyYW1lKG1fZnJhbWVJRCwgdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaAppbmRleCA3MWIzOGY2MWFiMTk1MDU1YjQ0N2U4N2Jm
ZmY3ZTk2NDA2ZGVlYTljLi4xZWM1MDc1NDI1N2Y4NjZlYjJhZThlYzRjYjBjNmQxZmZlODY1NmVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKQEAgLTgw
LDcgKzgwLDcgQEAgcHVibGljOgogICAgIFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWUoKSBjb25z
dCB7IHJldHVybiBtX2NvcmVGcmFtZTsgfQogCiAgICAgRnJhbWVJbmZvRGF0YSBpbmZvKCkgY29u
c3Q7Ci0gICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQor
ICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9m
cmFtZUlEOyB9CiAKICAgICBlbnVtIGNsYXNzIEZvck5hdmlnYXRpb25BY3Rpb24geyBObywgWWVz
IH07CiAgICAgdWludDY0X3Qgc2V0VXBQb2xpY3lMaXN0ZW5lcihXZWJDb3JlOjpQb2xpY3lDaGVj
a0lkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJiwgRm9yTmF2aWdhdGlv
bkFjdGlvbik7CkBAIC0xODcsNyArMTg3LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+IG1fZnJhbWVMb2FkZXJDbGllbnQ7CiAgICAgTG9hZExp
c3RlbmVyKiBtX2xvYWRMaXN0ZW5lciB7IG51bGxwdHIgfTsKICAgICAKLSAgICB1aW50NjRfdCBt
X2ZyYW1lSUQgeyAwIH07CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fZnJhbWVJRDsK
IAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgdWludDY0X3QgbV9maXJzdExheWVyVHJl
ZVRyYW5zYWN0aW9uSURBZnRlckRpZENvbW1pdExvYWQgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcAppbmRleCBmMjhkZTU2OGVj
NTE1YTUxYzM4ZTA5Y2FhYzQ0ZWE3N2YyMWQzZGJlLi4xZjAxNmFlYWRhOTk2Zjk2M2RkNWU0ZWZi
OTZkMGNhZmU2MGFkNjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJJbnNwZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkluc3BlY3Rvci5jcHAKQEAgLTIwOSw3ICsyMDksNyBAQCB2b2lkIFdlYkluc3BlY3Rv
cjo6c2hvd1Jlc291cmNlcygpCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViSW5zcGVjdG9yOjpzaG93
TWFpblJlc291cmNlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJZGVudGlmaWVyKQordm9pZCBXZWJJ
bnNwZWN0b3I6OnNob3dNYWluUmVzb3VyY2VGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJZGVudGlmaWVyKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSWRlbnRpZmllcik7CiAgICAgaWYgKCFmcmFtZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rv
ci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmgKaW5k
ZXggNDg5ZTQxYzA3NGZjMzYzYjM4MDExNjE3YjRjNzU4MjRkZjU5ZDQ3Yi4uMjZiODllNTIyNzc5
NzhkNTNhMzNmZTNjNzExNWVhZWJiYjM4Mjk1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRl
ICJBUElPYmplY3QuaCIKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVzc2Fn
ZVJlY2VpdmVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
IApAQCAtNjAsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzaG93Q29uc29sZSgpOwogICAg
IHZvaWQgc2hvd1Jlc291cmNlcygpOwogCi0gICAgdm9pZCBzaG93TWFpblJlc291cmNlRm9yRnJh
bWUodWludDY0X3QgZnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIHNob3dNYWluUmVzb3VyY2VG
b3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogCiAgICAgdm9pZCBzZXRBdHRhY2hl
ZChib29sIGF0dGFjaGVkKSB7IG1fYXR0YWNoZWQgPSBhdHRhY2hlZDsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IubWVzc2Fn
ZXMuaW4KaW5kZXggYjZmM2MwMWIyNDIyMjZhMjBmYjQ5YzU0MjIwM2E2ZGNkZTIyMWU2OS4uZGFm
NzRiNWU2YjA0MzBiNmIwY2EzYmUyNjBmNWZmYWJlY2Q2NTQ4OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5tZXNzYWdlcy5p
bgpAQCAtMjksNyArMjksNyBAQCBtZXNzYWdlcyAtPiBXZWJJbnNwZWN0b3IgewogICAgIFNob3dD
b25zb2xlKCkKICAgICBTaG93UmVzb3VyY2VzKCkKIAotICAgIFNob3dNYWluUmVzb3VyY2VGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlkZW50aWZpZXIpCisgICAgU2hvd01haW5SZXNvdXJjZUZvckZy
YW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlkZW50aWZpZXIpCiAKICAgICBPcGVu
SW5OZXdUYWIoU3RyaW5nIHVybCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAppbmRleCAxMzM2NTcwZDkzYWE1MTEwNjk3ODU2MTE3MDI2MDg5M2I4YTNj
ZGI0Li4wMWZmMWE0ZjQ1N2U1MzkzNTYxNDMyNGEwOTQ4ODQwM2E3NTA1NWExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTQ5Nyw3ICsxNDk3
LDcgQEAgdm9pZCBXZWJQYWdlOjpzdXNwZW5kRm9yUHJvY2Vzc1N3YXAoKQogICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkU3VzcGVuZEFmdGVyUHJvY2Vzc1N3YXAoKSk7CiB9CiAK
LXZvaWQgV2ViUGFnZTo6bG9hZFVSTEluRnJhbWUoVVJMJiYgdXJsLCBjb25zdCBTdHJpbmcmIHJl
ZmVycmVyLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlOjpsb2FkVVJMSW5GcmFtZShV
UkwmJiB1cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
KQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZy
YW1lKGZyYW1lSUQpOwogICAgIGlmICghZnJhbWUpCkBAIC0xNTA2LDcgKzE1MDYsNyBAQCB2b2lk
IFdlYlBhZ2U6OmxvYWRVUkxJbkZyYW1lKFVSTCYmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJl
ciwgdWludDY0X3QgZnJhbWVJRAogICAgIGZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkubG9h
ZChGcmFtZUxvYWRSZXF1ZXN0KCpmcmFtZS0+Y29yZUZyYW1lKCksIFJlc291cmNlUmVxdWVzdCh1
cmwsIHJlZmVycmVyKSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxs
b3cpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpsb2FkRGF0YUluRnJhbWUoSVBDOjpEYXRhUmVmZXJl
bmNlJiYgZGF0YSwgU3RyaW5nJiYgTUlNRVR5cGUsIFN0cmluZyYmIGVuY29kaW5nTmFtZSwgVVJM
JiYgYmFzZVVSTCwgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZTo6bG9hZERhdGFJbkZy
YW1lKElQQzo6RGF0YVJlZmVyZW5jZSYmIGRhdGEsIFN0cmluZyYmIE1JTUVUeXBlLCBTdHJpbmcm
JiBlbmNvZGluZ05hbWUsIFVSTCYmIGJhc2VVUkwsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQog
ewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1l
KGZyYW1lSUQpOwogICAgIGlmICghZnJhbWUpCkBAIC0xNjE0LDcgKzE2MTQsNyBAQCB2b2lkIFdl
YlBhZ2U6Om5hdmlnYXRlVG9QREZMaW5rV2l0aFNpbXVsYXRlZENsaWNrKGNvbnN0IFN0cmluZyYg
dXJsLCBJbnRQb2ludCBkbwogICAgIG1haW5GcmFtZS0+bG9hZGVyKCkudXJsU2VsZWN0ZWQobWFp
bkZyYW1lRG9jdW1lbnQtPmNvbXBsZXRlVVJMKHVybCksIGVtcHR5U3RyaW5nKCksIG1vdXNlRXZl
bnQucHRyKCksIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIFNob3Vs
ZFNlbmRSZWZlcnJlcjo6TmV2ZXJTZW5kUmVmZXJyZXIsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3k6OlNob3VsZE5vdEFsbG93KTsKIH0KIAotdm9pZCBXZWJQYWdlOjpzdG9wTG9hZGluZ0Zy
YW1lKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2U6OnN0b3BMb2FkaW5nRnJhbWUoRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCFmcmFtZSkKQEAgLTMy
MzQsNyArMzIzNCw3IEBAIHZvaWQgV2ViUGFnZTo6c2V0U2Vzc2lvbklEKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCkKICAgICBtX3BhZ2UtPnNldFNlc3Npb25JRChzZXNzaW9uSUQpOwogfQogCi12
b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbih1aW50NjRfdCBmcmFtZUlELCB1
aW50NjRfdCBsaXN0ZW5lcklELCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwgUG9s
aWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBEb3du
bG9hZElEJiBkb3dubG9hZElELCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNp
dGVQb2xpY2llcykKK3ZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKEZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBsaXN0ZW5lcklELCBQb2xpY3lDaGVja0lkZW50
aWZpZXIgaWRlbnRpZmllciwgUG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBjb25zdCBEb3dubG9hZElEJiBkb3dubG9hZElELCBPcHRpb25hbDxXZWJzaXRl
UG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcykKIHsKICAgICBXZWJGcmFtZSogZnJhbWUg
PSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBpZiAoIWZy
YW1lKQpAQCAtMzI0Miw3ICszMjQyLDcgQEAgdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlUG9saWN5
RGVjaXNpb24odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCwgUG8KICAgICBm
cmFtZS0+ZGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKGxpc3RlbmVySUQsIGlkZW50aWZpZXIsIHBv
bGljeUFjdGlvbiwgbmF2aWdhdGlvbklELCBkb3dubG9hZElELCBXVEZNb3ZlKHdlYnNpdGVQb2xp
Y2llcykpOwogfQogCi12b2lkIFdlYlBhZ2U6OmNvbnRpbnVlV2lsbFN1Ym1pdEZvcm0odWludDY0
X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCkKK3ZvaWQgV2ViUGFnZTo6Y29udGludWVX
aWxsU3VibWl0Rm9ybShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJ
RCkKIHsKICAgICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJG
cmFtZShmcmFtZUlEKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtMzM4NCw3ICszMzg0LDcgQEAgdm9p
ZCBXZWJQYWdlOjpydW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3JsZChjb25zdCBTdHJp
bmcmIHNjcmlwdCwgYm9vbCBmb3IKICAgICBydW5KYXZhU2NyaXB0KG1haW5XZWJGcmFtZSgpLCBz
Y3JpcHQsIGZvcmNlVXNlckdlc3R1cmUsIHdvcmxkTmFtZSwgY2FsbGJhY2tJRCk7CiB9CiAKLXZv
aWQgV2ViUGFnZTo6cnVuSmF2YVNjcmlwdEluRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
U3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgQ2FsbGJhY2tJRCBjYWxsYmFj
a0lEKQordm9pZCBXZWJQYWdlOjpydW5KYXZhU2NyaXB0SW5GcmFtZShGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgQ2Fs
bGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIEFTU0VSVChtYWluV2ViRnJhbWUo
KSAhPSBmcmFtZSk7CkBAIC0zNDQ1LDcgKzM0NDUsNyBAQCB2b2lkIFdlYlBhZ2U6OmdldFNlbGVj
dGlvbk9yQ29udGVudHNBc1N0cmluZyhDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgc2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdHJpbmdDYWxsYmFjayhyZXN1bHRTdHJpbmcsIGNhbGxi
YWNrSUQpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpnZXRTb3VyY2VGb3JGcmFtZSh1aW50NjRfdCBm
cmFtZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYlBhZ2U6OmdldFNvdXJjZUZv
ckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7
CiAgICAgU3RyaW5nIHJlc3VsdFN0cmluZzsKICAgICBpZiAoV2ViRnJhbWUqIGZyYW1lID0gV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCkpCkBAIC0zNDU0LDcgKzM0NTQs
NyBAQCB2b2lkIFdlYlBhZ2U6OmdldFNvdXJjZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENh
bGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0
cmluZ0NhbGxiYWNrKHJlc3VsdFN0cmluZywgY2FsbGJhY2tJRCkpOwogfQogCi12b2lkIFdlYlBh
Z2U6OmdldE1haW5SZXNvdXJjZURhdGFPZkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENhbGxiYWNr
SUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6Z2V0TWFpblJlc291cmNlRGF0YU9mRnJhbWUo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBS
ZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXI7CiAgICAgaWYgKFdlYkZyYW1lKiBmcmFtZSA9IFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpKSB7CkBAIC0zNDg1LDcgKzM0
ODUsNyBAQCBzdGF0aWMgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gcmVzb3VyY2VEYXRhRm9yRnJhbWUo
RnJhbWUqIGZyYW1lLCBjb25zdCBVUkwmIHJlc291cgogICAgIHJldHVybiAmc3VicmVzb3VyY2Ut
PmRhdGEoKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpnZXRSZXNvdXJjZURhdGFGcm9tRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiByZXNvdXJjZVVSTFN0cmluZywgQ2FsbGJhY2tJ
RCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdlOjpnZXRSZXNvdXJjZURhdGFGcm9tRnJhbWUoRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VVUkxTdHJpbmcsIENh
bGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXI7
CiAgICAgaWYgKGF1dG8qIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUo
ZnJhbWVJRCkpIHsKQEAgLTM0OTksNyArMzQ5OSw3IEBAIHZvaWQgV2ViUGFnZTo6Z2V0UmVzb3Vy
Y2VEYXRhRnJvbUZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VV
CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEYXRhQ2FsbGJhY2soZGF0YVJlZmVy
ZW5jZSwgY2FsbGJhY2tJRCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OmdldFdlYkFyY2hpdmVPZkZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFn
ZTo6Z2V0V2ViQXJjaGl2ZU9mRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENhbGxiYWNr
SUQgY2FsbGJhY2tJRCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8Q0ZE
YXRhUmVmPiBkYXRhOwpAQCAtMzgwMiwxMyArMzgwMiwxMyBAQCBXZWJGdWxsU2NyZWVuTWFuYWdl
ciogV2ViUGFnZTo6ZnVsbFNjcmVlbk1hbmFnZXIoKQogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFn
ZTo6YWRkQ29uc29sZU1lc3NhZ2UodWludDY0X3QgZnJhbWVJRCwgTWVzc2FnZVNvdXJjZSBtZXNz
YWdlU291cmNlLCBNZXNzYWdlTGV2ZWwgbWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIHVpbnQ2NF90IHJlcXVlc3RJRCkKK3ZvaWQgV2ViUGFnZTo6YWRkQ29uc29sZU1lc3NhZ2Uo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIE1lc3NhZ2VTb3VyY2UgbWVzc2FnZVNvdXJjZSwgTWVz
c2FnZUxldmVsIG1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1aW50NjRfdCBy
ZXF1ZXN0SUQpCiB7CiAgICAgaWYgKGF1dG8qIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkud2ViRnJhbWUoZnJhbWVJRCkpCiAgICAgICAgIGZyYW1lLT5hZGRDb25zb2xlTWVzc2FnZSht
ZXNzYWdlU291cmNlLCBtZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIHJlcXVlc3RJRCk7CiB9CiAKLXZv
aWQgV2ViUGFnZTo6c2VuZENTUFZpb2xhdGlvblJlcG9ydCh1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBVUkwmIHJlcG9ydFVSTCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcG9ydERhdGEpCit2
b2lkIFdlYlBhZ2U6OnNlbmRDU1BWaW9sYXRpb25SZXBvcnQoRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVwb3J0
RGF0YSkKIHsKICAgICBhdXRvIHJlcG9ydCA9IHJlcG9ydERhdGEudGFrZURhdGEoKTsKICAgICBp
ZiAoIXJlcG9ydCkKQEAgLTM4MTcsNyArMzgxNyw3IEBAIHZvaWQgV2ViUGFnZTo6c2VuZENTUFZp
b2xhdGlvblJlcG9ydCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgSVBD
CiAgICAgICAgIFBpbmdMb2FkZXI6OnNlbmRWaW9sYXRpb25SZXBvcnQoKmZyYW1lLT5jb3JlRnJh
bWUoKSwgcmVwb3J0VVJMLCByZXBvcnQucmVsZWFzZU5vbk51bGwoKSwgVmlvbGF0aW9uUmVwb3J0
VHlwZTo6Q29udGVudFNlY3VyaXR5UG9saWN5KTsKIH0KIAotdm9pZCBXZWJQYWdlOjplbnF1ZXVl
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCh1aW50NjRfdCBmcmFtZUlELCBTZWN1cml0eVBv
bGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYgZXZlbnRJbml0KQordm9pZCBXZWJQYWdlOjplbnF1
ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmIGV2ZW50SW5pdCkKIHsKICAgICBh
dXRvKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwog
ICAgIGlmICghZnJhbWUpCkBAIC00NjgwLDcgKzQ2ODAsNyBAQCB2b2lkIFdlYlBhZ2U6OmVmZmVj
dGl2ZUFwcGVhcmFuY2VEaWRDaGFuZ2UoYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSwgYm9vbCB1c2VF
bGV2YQogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZTo6YmVnaW5QcmludGluZyh1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbykKK3ZvaWQgV2ViUGFnZTo6YmVnaW5Q
cmludGluZyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludElu
Zm8pCiB7CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2Vi
RnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCFmcmFtZSkKQEAgLTQ3MjQsNyArNDcyNCw3IEBAIHZv
aWQgV2ViUGFnZTo6ZW5kUHJpbnRpbmcoKQogICAgIH0KIH0KIAotdm9pZCBXZWJQYWdlOjpjb21w
dXRlUGFnZXNGb3JQcmludGluZyh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHBy
aW50SW5mbywgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdlOjpjb21wdXRlUGFn
ZXNGb3JQcmludGluZyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBw
cmludEluZm8sIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBWZWN0b3I8SW50UmVjdD4g
cmVzdWx0UGFnZVJlY3RzOwogICAgIGRvdWJsZSByZXN1bHRUb3RhbFNjYWxlRmFjdG9yRm9yUHJp
bnRpbmcgPSAxOwpAQCAtNDczMyw3ICs0NzMzLDcgQEAgdm9pZCBXZWJQYWdlOjpjb21wdXRlUGFn
ZXNGb3JQcmludGluZyh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW4K
ICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNvbXB1dGVkUGFnZXNDYWxsYmFjayhy
ZXN1bHRQYWdlUmVjdHMsIHJlc3VsdFRvdGFsU2NhbGVGYWN0b3JGb3JQcmludGluZywgY29tcHV0
ZWRQYWdlTWFyZ2luLCBjYWxsYmFja0lEKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBh
Z2VzRm9yUHJpbnRpbmdJbXBsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJp
bnRJbmZvLCBWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4mIHJlc3VsdFBhZ2VSZWN0cywgZG91Ymxl
JiByZXN1bHRUb3RhbFNjYWxlRmFjdG9yRm9yUHJpbnRpbmcsIEZsb2F0Qm94RXh0ZW50JiBjb21w
dXRlZFBhZ2VNYXJnaW4pCit2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nSW1w
bChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIFZl
Y3RvcjxXZWJDb3JlOjpJbnRSZWN0PiYgcmVzdWx0UGFnZVJlY3RzLCBkb3VibGUmIHJlc3VsdFRv
dGFsU2NhbGVGYWN0b3JGb3JQcmludGluZywgRmxvYXRCb3hFeHRlbnQmIGNvbXB1dGVkUGFnZU1h
cmdpbikKIHsKICAgICBBU1NFUlQocmVzdWx0UGFnZVJlY3RzLmlzRW1wdHkoKSk7CiAKQEAgLTQ3
NTYsNyArNDc1Niw3IEBAIHZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdJbXBs
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpCiB9CiAKICNpZiBQTEFURk9S
TShDT0NPQSkKLXZvaWQgV2ViUGFnZTo6ZHJhd1JlY3RUb0ltYWdlKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0LCBjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJiBpbWFnZVNpemUsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQg
V2ViUGFnZTo6ZHJhd1JlY3RUb0ltYWdlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBQ
cmludEluZm8mIHByaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgaW1hZ2VTaXplLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgV2ViRnJh
bWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAg
ICAgRnJhbWUqIGNvcmVGcmFtZSA9IGZyYW1lID8gZnJhbWUtPmNvcmVGcmFtZSgpIDogMDsKQEAg
LTQ4MDYsMTQgKzQ4MDYsMTQgQEAgdm9pZCBXZWJQYWdlOjpkcmF3UmVjdFRvSW1hZ2UodWludDY0
X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIGNvbnMKICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkltYWdlQ2FsbGJhY2soaGFuZGxlLCBjYWxsYmFja0lEKSk7
CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZHJhd1BhZ2VzVG9QREYodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgUHJpbnRJbmZvJiBwcmludEluZm8sIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwg
Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdlOjpkcmF3UGFnZXNUb1BERihGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIHVpbnQzMl90
IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIFJl
dGFpblB0cjxDRk11dGFibGVEYXRhUmVmPiBwZGZQYWdlRGF0YTsKICAgICBkcmF3UGFnZXNUb1BE
RkltcGwoZnJhbWVJRCwgcHJpbnRJbmZvLCBmaXJzdCwgY291bnQsIHBkZlBhZ2VEYXRhKTsKICAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRhdGFDYWxsYmFjayh7IENGRGF0YUdldEJ5
dGVQdHIocGRmUGFnZURhdGEuZ2V0KCkpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KENGRGF0YUdldExl
bmd0aChwZGZQYWdlRGF0YS5nZXQoKSkpIH0sIGNhbGxiYWNrSUQpKTsKIH0KIAotdm9pZCBXZWJQ
YWdlOjpkcmF3UGFnZXNUb1BERkltcGwodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZv
JiBwcmludEluZm8sIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgUmV0YWluUHRyPENG
TXV0YWJsZURhdGFSZWY+JiBwZGZQYWdlRGF0YSkKK3ZvaWQgV2ViUGFnZTo6ZHJhd1BhZ2VzVG9Q
REZJbXBsKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5m
bywgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBSZXRhaW5QdHI8Q0ZNdXRhYmxlRGF0
YVJlZj4mIHBkZlBhZ2VEYXRhKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBm
cmFtZSA/IGZyYW1lLT5jb3JlRnJhbWUoKSA6IDA7CkBAIC00ODY0LDcgKzQ4NjQsNyBAQCB2b2lk
IFdlYlBhZ2U6OmRyYXdQYWdlc1RvUERGSW1wbCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmlu
dEluZm8mIHByaW50SW5mbywgdQogfQogCiAjZWxpZiBQTEFURk9STShHVEspCi12b2lkIFdlYlBh
Z2U6OmRyYXdQYWdlc0ZvclByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5m
byYgcHJpbnRJbmZvLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYlBhZ2U6OmRyYXdQ
YWdlc0ZvclByaW50aW5nKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBQcmludEluZm8m
IHByaW50SW5mbywgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIGJlZ2luUHJpbnRpbmco
ZnJhbWVJRCwgcHJpbnRJbmZvKTsKICAgICBpZiAobV9wcmludENvbnRleHQgJiYgbV9wcmludE9w
ZXJhdGlvbikgewpAQCAtNjUwMiw3ICs2NTAyLDcgQEAgdm9pZCBXZWJQYWdlOjpzZXRJc1N1c3Bl
bmRlZChib29sIHN1c3BlbmRlZCkKICAgICBzdXNwZW5kRm9yUHJvY2Vzc1N3YXAoKTsKIH0KIAot
dm9pZCBXZWJQYWdlOjpmcmFtZUJlY2FtZVJlbW90ZSh1aW50NjRfdCBmcmFtZUlELCBHbG9iYWxG
cmFtZUlkZW50aWZpZXImJiByZW1vdGVGcmFtZUlkZW50aWZpZXIsIEdsb2JhbFdpbmRvd0lkZW50
aWZpZXImJiByZW1vdGVXaW5kb3dJZGVudGlmaWVyKQordm9pZCBXZWJQYWdlOjpmcmFtZUJlY2Ft
ZVJlbW90ZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgR2xvYmFsRnJhbWVJZGVudGlmaWVyJiYg
cmVtb3RlRnJhbWVJZGVudGlmaWVyLCBHbG9iYWxXaW5kb3dJZGVudGlmaWVyJiYgcmVtb3RlV2lu
ZG93SWRlbnRpZmllcikKIHsKICAgICBSZWZQdHI8V2ViRnJhbWU+IGZyYW1lID0gV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCFmcmFtZSkKQEAgLTY1
MzQsMTIgKzY1MzQsMTIgQEAgdm9pZCBXZWJQYWdlOjpmcmFtZUJlY2FtZVJlbW90ZSh1aW50NjRf
dCBmcmFtZUlELCBHbG9iYWxGcmFtZUlkZW50aWZpZXImJiByZW1vdGUKIH0KIAogI2lmIEVOQUJM
RShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi12b2lkIFdlYlBhZ2U6Omhhc1N0b3JhZ2VBY2Nl
c3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgUmVnaXN0cmFibGVEb21haW4m
JiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUGFnZTo6aGFzU3RvcmFnZUFj
Y2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdpc3RyYWJsZURvbWFp
biYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9u
KCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6SGFzU3RvcmFnZUFjY2VzcyhzZXNzaW9uSUQoKSwgV1RGTW92ZShzdWJGcmFtZURvbWFp
biksIFdURk1vdmUodG9wRnJhbWVEb21haW4pLCBmcmFtZUlELCBtX3BhZ2VJRCksIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpyZXF1ZXN0U3RvcmFnZUFj
Y2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdpc3RyYWJsZURvbWFp
biYmIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBXZWJDb3JlOjpTdG9yYWdlQWNj
ZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlOjpy
ZXF1ZXN0U3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBS
ZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRl
ZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVxdWVzdFN0b3JhZ2VBY2Nlc3Moc2Vzc2lv
bklEKCksIFdURk1vdmUoc3ViRnJhbWVEb21haW4pLCBXVEZNb3ZlKHRvcEZyYW1lRG9tYWluKSwg
ZnJhbWVJRCwgbV9wYWdlSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CkBAIC02
NTU1LDcgKzY1NTUsNyBAQCB2b2lkIFdlYlBhZ2U6Ondhc0xvYWRlZFdpdGhEYXRhVHJhbnNmZXJG
cm9tUHJldmFsZW50UmVzb3VyY2UoKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQotdm9pZCBXZWJQYWdlOjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYm
IG9yaWdpbiwgYm9vbCBtYXlQcm9tcHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRGV2aWNlT3Jp
ZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2
b2lkIFdlYlBhZ2U6OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3Mo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIG9y
aWdpbiwgYm9vbCBtYXlQcm9tcHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRGV2aWNlT3JpZW50
YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3VsZEFsbG93
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoZnJhbWVJRCwgV1RGTW92ZShvcmlnaW4p
LCBtYXlQcm9tcHQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZjNjYTI5ZGExN2FmNmZhNzgw
YjhlZGJiMjUyYjM0MWE1ZThhNDk0MC4uZTFlNWUzOTAwMjgyMjRiNjNjYWJlNGQyNmYxYjFmMjVm
YmJlOGIxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApA
QCAtMzQ2LDkgKzM0Niw5IEBAIHB1YmxpYzoKICAgICBXZWJGdWxsU2NyZWVuTWFuYWdlciogZnVs
bFNjcmVlbk1hbmFnZXIoKTsKICNlbmRpZgogCi0gICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZSh1
aW50NjRfdCBmcmFtZUlELCBNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmlu
ZyYsIHVpbnQ2NF90IHJlcXVlc3RJRCA9IDApOwotICAgIHZvaWQgc2VuZENTUFZpb2xhdGlvblJl
cG9ydCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgSVBDOjpGb3JtRGF0
YVJlZmVyZW5jZSYmKTsKLSAgICB2b2lkIGVucXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2
ZW50KHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnQ6OkluaXQmJik7CisgICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiwgdWlu
dDY0X3QgcmVxdWVzdElEID0gMCk7CisgICAgdm9pZCBzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgVVJMJiByZXBvcnRVUkwsIElQQzo6Rm9ybURh
dGFSZWZlcmVuY2UmJik7CisgICAgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25F
dmVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5Vmlv
bGF0aW9uRXZlbnQ6OkluaXQmJik7CiAKICAgICAvLyAtLSBDYWxsZWQgYnkgdGhlIERyYXdpbmdB
cmVhLgogICAgIC8vIEZJWE1FOiBXZSBjb3VsZCBnZW5lcmljaXplIHRoZXNlIGludG8gYSBEcmF3
aW5nQXJlYSBjbGllbnQgaW50ZXJmYWNlLiBXb3VsZCB0aGF0IGJlIGJlbmVmaWNpYWw/CkBAIC01
MjIsNyArNTIyLDcgQEAgcHVibGljOgogICAgIFdlYkNvcmU6OkNvbG9yIHVuZGVybGF5Q29sb3Io
KSBjb25zdCB7IHJldHVybiBtX3VuZGVybGF5Q29sb3I7IH0KIAogICAgIHZvaWQgc3RvcExvYWRp
bmcoKTsKLSAgICB2b2lkIHN0b3BMb2FkaW5nRnJhbWUodWludDY0X3QgZnJhbWVJRCk7CisgICAg
dm9pZCBzdG9wTG9hZGluZ0ZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CiAgICAgYm9v
bCBkZWZlcnNMb2FkaW5nKCkgY29uc3Q7CiAgICAgdm9pZCBzZXREZWZlcnNMb2FkaW5nKGJvb2wg
ZGVmZXJMb2FkaW5nKTsKIApAQCAtNzY5LDcgKzc2OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNv
bmZpcm1Db21wb3NpdGlvbihjb25zdCBTdHJpbmcmIHRleHQsIGludDY0X3Qgc2VsZWN0aW9uU3Rh
cnQsIGludDY0X3Qgc2VsZWN0aW9uTGVuZ3RoKTsKICAgICB2b2lkIGNhbmNlbENvbXBvc2l0aW9u
KCk7CiAKLSAgICB2b2lkIGNvbGxhcHNlU2VsZWN0aW9uSW5GcmFtZSh1aW50NjRfdCBmcmFtZUlE
KTsKKyAgICB2b2lkIGNvbGxhcHNlU2VsZWN0aW9uSW5GcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIpOwogICAgIHZvaWQgc2hvd0Vtb2ppUGlja2VyKFdlYkNvcmU6OkZyYW1lJik7CiAKICAg
ICB2b2lkIGdldENlbnRlckZvclpvb21HZXN0dXJlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBj
ZW50ZXJJblZpZXdDb29yZGluYXRlcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpJ
bnRQb2ludCYmKT4mJik7CkBAIC04NjIsMjMgKzg2MiwyMyBAQCBwdWJsaWM6CiAgICAgV2ViQ29y
ZTo6RHJhZ1NvdXJjZUFjdGlvbiBhbGxvd2VkRHJhZ1NvdXJjZUFjdGlvbnMoKSBjb25zdCB7IHJl
dHVybiBtX2FsbG93ZWREcmFnU291cmNlQWN0aW9uczsgfQogI2VuZGlmCiAKLSAgICB2b2lkIGJl
Z2luUHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJik7CisgICAgdm9p
ZCBiZWdpblByaW50aW5nKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZv
Jik7CiAgICAgdm9pZCBlbmRQcmludGluZygpOwotICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJp
bnRpbmcodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiwgQ2FsbGJhY2tJRCk7Ci0g
ICAgdm9pZCBjb21wdXRlUGFnZXNGb3JQcmludGluZ0ltcGwodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgUHJpbnRJbmZvJiwgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+JiBwYWdlUmVjdHMsIGRvdWJs
ZSYgdG90YWxTY2FsZUZhY3RvciwgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIGNvbXB1dGVkTWFy
Z2luKTsKKyAgICB2b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBjb21wdXRl
UGFnZXNGb3JQcmludGluZ0ltcGwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmlu
dEluZm8mLCBWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4mIHBhZ2VSZWN0cywgZG91YmxlJiB0b3Rh
bFNjYWxlRmFjdG9yLCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgY29tcHV0ZWRNYXJnaW4pOwog
CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdm9pZCBkcmF3UmVjdFRvSW1hZ2UodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0
IFdlYkNvcmU6OkludFNpemUmLCBDYWxsYmFja0lEKTsKLSAgICB2b2lkIGRyYXdQYWdlc1RvUERG
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIHVpbnQzMl90IGZpcnN0LCB1aW50
MzJfdCBjb3VudCwgQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBkcmF3UGFnZXNUb1BERkltcGwodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiwgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90
IGNvdW50LCBSZXRhaW5QdHI8Q0ZNdXRhYmxlRGF0YVJlZj4mIHBkZlBhZ2VEYXRhKTsKKyAgICB2
b2lkIGRyYXdSZWN0VG9JbWFnZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50
SW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwg
Q2FsbGJhY2tJRCk7CisgICAgdm9pZCBkcmF3UGFnZXNUb1BERihXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIGNvbnN0IFByaW50SW5mbyYsIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwg
Q2FsbGJhY2tJRCk7CisgICAgdm9pZCBkcmF3UGFnZXNUb1BERkltcGwoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291
bnQsIFJldGFpblB0cjxDRk11dGFibGVEYXRhUmVmPiYgcGRmUGFnZURhdGEpOwogI2VuZGlmCiAK
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRp
bmdBbmREcmF3VG9QREYodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiwgQ2FsbGJh
Y2tJRCwgTWVzc2FnZXM6OldlYlBhZ2U6OkNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1Rv
UERGOjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBjb21wdXRlUGFnZXNGb3JQcmludGluZ0Fu
ZERyYXdUb1BERihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYsIENh
bGxiYWNrSUQsIE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERy
YXdUb1BERjo6RGVsYXllZFJlcGx5JiYpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShHVEspCi0g
ICAgdm9pZCBkcmF3UGFnZXNGb3JQcmludGluZyh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmlu
dEluZm8mLCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIGRyYXdQYWdlc0ZvclByaW50aW5nKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgQ2FsbGJhY2tJRCk7CiAgICAg
dm9pZCBkaWRGaW5pc2hQcmludE9wZXJhdGlvbihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
JiwgQ2FsbGJhY2tJRCk7CiAjZW5kaWYKIApAQCAtMTEzMSwxMyArMTEzMSwxMyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBmbHVzaFBlbmRpbmdFZGl0b3JTdGF0ZVVwZGF0ZSgpOwogCiAjaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKLSAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBXZWJDb3Jl
OjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmKTsKKyAgICB2b2lkIGhhc1N0b3JhZ2VB
Y2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHJlcXVl
c3RTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21h
aW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdl
QWNjZXNzV2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4m
Jik7CiAgICAgdm9pZCB3YXNMb2FkZWRXaXRoRGF0YVRyYW5zZmVyRnJvbVByZXZhbGVudFJlc291
cmNlKCk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCi0gICAgdm9p
ZCBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKHVpbnQ2NF90IGZy
YW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBib29sIG1heVByb21wdCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVy
bWlzc2lvblN0YXRlKT4mJik7CisgICAgdm9pZCBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9u
QW5kTW90aW9uQWNjZXNzKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiYsIGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmKTsKICNl
bmRpZgogCiAgICAgdm9pZCBzaG93U2hhcmVTaGVldChXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFy
c2VkVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFjayk7CkBAIC0x
MzU2LDggKzEzNTYsOCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBib29sIHNjcm9sbChXZWJDb3Jl
OjpQYWdlKiwgV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uLCBXZWJDb3JlOjpTY3JvbGxHcmFudWxh
cml0eSk7CiAgICAgc3RhdGljIGJvb2wgbG9naWNhbFNjcm9sbChXZWJDb3JlOjpQYWdlKiwgV2Vi
Q29yZTo6U2Nyb2xsTG9naWNhbERpcmVjdGlvbiwgV2ViQ29yZTo6U2Nyb2xsR3JhbnVsYXJpdHkp
OwogCi0gICAgdm9pZCBsb2FkVVJMSW5GcmFtZShVUkwmJiwgY29uc3QgU3RyaW5nJiByZWZlcnJl
ciwgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBsb2FkRGF0YUluRnJhbWUoSVBDOjpEYXRh
UmVmZXJlbmNlJiYsIFN0cmluZyYmIE1JTUVUeXBlLCBTdHJpbmcmJiBlbmNvZGluZ05hbWUsIFVS
TCYmIGJhc2VVUkwsIHVpbnQ2NF90IGZyYW1lSUQpOworICAgIHZvaWQgbG9hZFVSTEluRnJhbWUo
VVJMJiYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7
CisgICAgdm9pZCBsb2FkRGF0YUluRnJhbWUoSVBDOjpEYXRhUmVmZXJlbmNlJiYsIFN0cmluZyYm
IE1JTUVUeXBlLCBTdHJpbmcmJiBlbmNvZGluZ05hbWUsIFVSTCYmIGJhc2VVUkwsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcik7CiAKICAgICBlbnVtIGNsYXNzIFdhc1Jlc3RvcmVkQnlBUElSZXF1
ZXN0IHsgTm8sIFllcyB9OwogICAgIHZvaWQgcmVzdG9yZVNlc3Npb25JbnRlcm5hbChjb25zdCBW
ZWN0b3I8QmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlPiYsIFdhc1Jlc3RvcmVkQnlBUElSZXF1ZXN0
LCBXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6T3ZlcndyaXRlRXhpc3RpbmdJdGVtKTsKQEAgLTEz
ODksMTYgKzEzODksMTYgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoTUhUTUwpCiAgICAgdm9pZCBn
ZXRDb250ZW50c0FzTUhUTUxEYXRhKENhbGxiYWNrSUQpOwogI2VuZGlmCi0gICAgdm9pZCBnZXRN
YWluUmVzb3VyY2VEYXRhT2ZGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDYWxsYmFja0lEKTsKLSAg
ICB2b2lkIGdldFJlc291cmNlRGF0YUZyb21GcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBT
dHJpbmcmIHJlc291cmNlVVJMLCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIGdldE1haW5SZXNvdXJj
ZURhdGFPZkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ2FsbGJhY2tJRCk7CisgICAg
dm9pZCBnZXRSZXNvdXJjZURhdGFGcm9tRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIHJlc291cmNlVVJMLCBDYWxsYmFja0lEKTsKICAgICB2b2lkIGdldFJlbmRl
clRyZWVFeHRlcm5hbFJlcHJlc2VudGF0aW9uKENhbGxiYWNrSUQpOwogICAgIHZvaWQgZ2V0U2Vs
ZWN0aW9uT3JDb250ZW50c0FzU3RyaW5nKENhbGxiYWNrSUQpOwogICAgIHZvaWQgZ2V0U2VsZWN0
aW9uQXNXZWJBcmNoaXZlRGF0YShDYWxsYmFja0lEKTsKLSAgICB2b2lkIGdldFNvdXJjZUZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIENhbGxiYWNrSUQpOwotICAgIHZvaWQgZ2V0V2ViQXJjaGl2
ZU9mRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBnZXRTb3Vy
Y2VGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENhbGxiYWNrSUQpOworICAgIHZv
aWQgZ2V0V2ViQXJjaGl2ZU9mRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBDYWxsYmFj
a0lEKTsKICAgICB2b2lkIHJ1bkphdmFTY3JpcHQoV2ViRnJhbWUqLCBjb25zdCBTdHJpbmcmLCBi
b29sIGZvcmNlVXNlckdlc3R1cmUsIGNvbnN0IE9wdGlvbmFsPFN0cmluZz4mIHdvcmxkTmFtZSwg
Q2FsbGJhY2tJRCk7CiAgICAgdm9pZCBydW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3Js
ZChjb25zdCBTdHJpbmcmLCBib29sIGZvcmNlVXNlckdlc3R1cmUsIGNvbnN0IE9wdGlvbmFsPFN0
cmluZz4mIHdvcmxkTmFtZSwgQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBydW5KYXZhU2NyaXB0SW5G
cmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmLCBib29sIGZvcmNlVXNlckdlc3R1
cmUsIENhbGxiYWNrSUQpOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluRnJhbWUoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBib29sIGZvcmNlVXNlckdlc3R1cmUsIENh
bGxiYWNrSUQpOwogICAgIHZvaWQgZm9yY2VSZXBhaW50KENhbGxiYWNrSUQpOwogICAgIHZvaWQg
dGFrZVNuYXBzaG90KFdlYkNvcmU6OkludFJlY3Qgc25hcHNob3RSZWN0LCBXZWJDb3JlOjpJbnRT
aXplIGJpdG1hcFNpemUsIHVpbnQzMl90IG9wdGlvbnMsIENhbGxiYWNrSUQpOwogCkBAIC0xNDEy
LDggKzE0MTIsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgcGFyZW50UHJvY2Vzc0hhc1NlcnZpY2VX
b3JrZXJFbnRpdGxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICNlbmRpZgogCi0gICAg
dm9pZCBkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3Qg
bGlzdGVuZXJJRCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpQb2xp
Y3lBY3Rpb24sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgRG93bmxvYWRJRCYsIE9wdGlv
bmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYpOwotICAgIHZvaWQgY29udGludWVXaWxsU3VibWl0
Rm9ybSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBsaXN0ZW5lcklEKTsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90
IGxpc3RlbmVySUQsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgV2ViQ29yZTo6UG9s
aWN5QWN0aW9uLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IERvd25sb2FkSUQmLCBPcHRp
b25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmKTsKKyAgICB2b2lkIGNvbnRpbnVlV2lsbFN1Ym1p
dEZvcm0oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBsaXN0ZW5lcklEKTsKICAg
ICB2b2lkIHNldFVzZXJBZ2VudChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHNldEN1c3RvbVRl
eHRFbmNvZGluZ05hbWUoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBzdXNwZW5kQWN0aXZlRE9N
T2JqZWN0c0FuZEFuaW1hdGlvbnMoKTsKQEAgLTE0MzEsNyArMTQzMSw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCB3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiB3aW5kb3dGcmFtZUluVW5mbGlwcGVkU2NyZWVuQ29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcywgY29uc3QgV2ViQ29y
ZTo6RmxvYXRQb2ludCYgYWNjZXNzaWJpbGl0eVZpZXdDb29yZGluYXRlcyk7CiAKICAgICBSZXRh
aW5QdHI8UERGRG9jdW1lbnQ+IHBkZkRvY3VtZW50Rm9yUHJpbnRpbmdGcmFtZShXZWJDb3JlOjpG
cmFtZSopOwotICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdQREZEb2N1bWVudCh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mLCBWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4m
IHJlc3VsdFBhZ2VSZWN0cyk7CisgICAgdm9pZCBjb21wdXRlUGFnZXNGb3JQcmludGluZ1BERkRv
Y3VtZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgVmVjdG9y
PFdlYkNvcmU6OkludFJlY3Q+JiByZXN1bHRQYWdlUmVjdHMpOwogICAgIHZvaWQgZHJhd1BERkRv
Y3VtZW50KENHQ29udGV4dFJlZiwgUERGRG9jdW1lbnQgKiwgY29uc3QgUHJpbnRJbmZvJiwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYpOwogICAgIHZvaWQgZHJhd1BhZ2VzVG9QREZGcm9tUERGRG9j
dW1lbnQoQ0dDb250ZXh0UmVmLCBQREZEb2N1bWVudCAqLCBjb25zdCBQcmludEluZm8mLCB1aW50
MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQpOwogI2VuZGlmCkBAIC0xNTg0LDcgKzE1ODQsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgdm9pY2VzRGlkQ2hhbmdlKCk7CiAjZW5kaWYKIAotICAgIHZv
aWQgZnJhbWVCZWNhbWVSZW1vdGUodWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6R2xvYmFsRnJh
bWVJZGVudGlmaWVyJiYgcmVtb3RlRnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpHbG9iYWxXaW5k
b3dJZGVudGlmaWVyJiYgcmVtb3RlV2luZG93SWRlbnRpZmllcik7CisgICAgdm9pZCBmcmFtZUJl
Y2FtZVJlbW90ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6Okdsb2JhbEZyYW1l
SWRlbnRpZmllciYmIHJlbW90ZUZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6R2xvYmFsV2luZG93
SWRlbnRpZmllciYmIHJlbW90ZVdpbmRvd0lkZW50aWZpZXIpOwogCiAgICAgdm9pZCByZWdpc3Rl
clVSTFNjaGVtZUhhbmRsZXIodWludDY0X3QgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzY2hl
bWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbgppbmRleCBhNTJlMjUxZDI1ZGE2ZDg4NzFiMjcyZDcxNDIyOTEzMjljNWYy
NDM4Li5iYTdmNjRiZmRjYmNjZjhhYjJjMzNmNmMyNzhiNDZkMTUxODg4ZjAxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4K
QEAgLTI3LDkgKzI3LDkgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAK
ICAgICBTZXRCYWNrZ3JvdW5kQ29sb3IoT3B0aW9uYWw8V2ViQ29yZTo6Q29sb3I+IGNvbG9yKQog
Ci0gICAgQWRkQ29uc29sZU1lc3NhZ2UodWludDY0X3QgZnJhbWVJRCwgZW51bTp1aW50OF90IEpT
Qzo6TWVzc2FnZVNvdXJjZSBtZXNzYWdlU291cmNlLCBlbnVtOnVpbnQ4X3QgSlNDOjpNZXNzYWdl
TGV2ZWwgbWVzc2FnZUxldmVsLCBTdHJpbmcgbWVzc2FnZSwgdWludDY0X3QgcmVxdWVzdElEKQot
ICAgIFNlbmRDU1BWaW9sYXRpb25SZXBvcnQodWludDY0X3QgZnJhbWVJRCwgVVJMIHJlcG9ydFVS
TCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXBvcnREYXRhKQotICAgIEVucXVldWVTZWN1cml0
eVBvbGljeVZpb2xhdGlvbkV2ZW50KHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQgZXZlbnRJbml0KQorICAgIEFkZENvbnNvbGVNZXNz
YWdlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBlbnVtOnVpbnQ4X3QgSlNDOjpN
ZXNzYWdlU291cmNlIG1lc3NhZ2VTb3VyY2UsIGVudW06dWludDhfdCBKU0M6Ok1lc3NhZ2VMZXZl
bCBtZXNzYWdlTGV2ZWwsIFN0cmluZyBtZXNzYWdlLCB1aW50NjRfdCByZXF1ZXN0SUQpCisgICAg
U2VuZENTUFZpb2xhdGlvblJlcG9ydChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
VVJMIHJlcG9ydFVSTCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXBvcnREYXRhKQorICAgIEVu
cXVldWVTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0IGV2
ZW50SW5pdCkKIAogICAgIFRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGlu
Z0ZvclN5bmNSZXBseSgpIC0+IChib29sIGhhbmRsZWQpIFN5bmNocm9ub3VzCiAKQEAgLTE2Miw4
ICsxNjIsOCBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBX
ZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIEdvVG9CYWNrRm9yd2FyZEl0
ZW0odWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVt
SWRlbnRpZmllciBiYWNrRm9yd2FyZEl0ZW1JRCwgZW51bTp1aW50OF90IFdlYkNvcmU6OkZyYW1l
TG9hZFR5cGUgYmFja0ZvcndhcmRUeXBlLCBlbnVtOmJvb2wgV2ViQ29yZTo6U2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0aW9uYWw8V2Vi
S2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9saWNpZXMpCiAgICAgVHJ5UmVzdG9y
ZVNjcm9sbFBvc2l0aW9uKCkKIAotICAgIExvYWRVUkxJbkZyYW1lKFVSTCB1cmwsIFN0cmluZyBy
ZWZlcnJlciwgdWludDY0X3QgZnJhbWVJRCkKLSAgICBMb2FkRGF0YUluRnJhbWUoSVBDOjpEYXRh
UmVmZXJlbmNlIGRhdGEsIFN0cmluZyBNSU1FVHlwZSwgU3RyaW5nIGVuY29kaW5nTmFtZSwgVVJM
IGJhc2VVUkwsIHVpbnQ2NF90IGZyYW1lSUQpCisgICAgTG9hZFVSTEluRnJhbWUoVVJMIHVybCwg
U3RyaW5nIHJlZmVycmVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKKyAgICBM
b2FkRGF0YUluRnJhbWUoSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEsIFN0cmluZyBNSU1FVHlwZSwg
U3RyaW5nIGVuY29kaW5nTmFtZSwgVVJMIGJhc2VVUkwsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlEKQogICAgIExvYWRSZXF1ZXN0KHN0cnVjdCBXZWJLaXQ6OkxvYWRQYXJhbWV0ZXJz
IGxvYWRQYXJhbWV0ZXJzKQogICAgIExvYWREYXRhKHN0cnVjdCBXZWJLaXQ6OkxvYWRQYXJhbWV0
ZXJzIGxvYWRQYXJhbWV0ZXJzKQogICAgIExvYWRBbHRlcm5hdGVIVE1MKHN0cnVjdCBXZWJLaXQ6
OkxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzKQpAQCAtMTczLDcgKzE3Myw3IEBAIEdlbmVy
YXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGlj
RWRpdGluZ0NvbW1hbmRUeXBlCiAgICAgUmVsb2FkKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWlu
dDMyX3QgcmVsb2FkT3B0aW9ucywgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2Fu
ZGJveEV4dGVuc2lvbkhhbmRsZSkKICAgICBTdG9wTG9hZGluZygpCiAKLSAgICBTdG9wTG9hZGlu
Z0ZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCisgICAgU3RvcExvYWRpbmdGcmFtZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKICAgICAKICAgICBSZXN0b3JlU2Vzc2lvbihWZWN0b3I8
V2ViS2l0OjpCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGU+IGl0ZW1TdGF0ZXMpCiAgICAgVXBkYXRl
QmFja0ZvcndhcmRMaXN0Rm9yUmVhdHRhY2goVmVjdG9yPFdlYktpdDo6QmFja0ZvcndhcmRMaXN0
SXRlbVN0YXRlPiBpdGVtU3RhdGVzKQpAQCAtMTgyLDggKzE4Miw4IEBAIEdlbmVyYXRlU3ludGhl
dGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0Nv
bW1hbmRUeXBlCiAgICAgRGlkUmVtb3ZlQmFja0ZvcndhcmRJdGVtKHN0cnVjdCBXZWJDb3JlOjpC
YWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyIGJhY2tGb3J3YXJkSXRlbUlEKQogCiAgICAgVXBkYXRl
V2Vic2l0ZVBvbGljaWVzKHN0cnVjdCBXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGEgd2Vic2l0
ZVBvbGljaWVzKQotICAgIERpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbih1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9s
aWN5Q2hlY2tJZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UG9saWN5QWN0aW9uIHBv
bGljeUFjdGlvbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93
bmxvYWRJRCwgT3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9s
aWNpZXMpCi0gICAgQ29udGludWVXaWxsU3VibWl0Rm9ybSh1aW50NjRfdCBmcmFtZUlELCB1aW50
NjRfdCBsaXN0ZW5lcklEKQorICAgIERpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViQ29yZTo6UG9s
aWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgZW51bTp1aW50OF90IFdl
YkNvcmU6OlBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
V2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIE9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBv
bGljaWVzRGF0YT4gd2Vic2l0ZVBvbGljaWVzKQorICAgIENvbnRpbnVlV2lsbFN1Ym1pdEZvcm0o
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQpCiAK
ICAgICBDbGVhclNlbGVjdGlvbigpCiAgICAgUmVzdG9yZVNlbGVjdGlvbkluRm9jdXNlZEVkaXRh
YmxlRWxlbWVudCgpCkBAIC0xOTYsMTUgKzE5NiwxNSBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRp
bmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlw
ZQogI2lmIEVOQUJMRShNSFRNTCkKICAgICBHZXRDb250ZW50c0FzTUhUTUxEYXRhKFdlYktpdDo6
Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogI2VuZGlmCi0gICAgR2V0TWFpblJlc291cmNlRGF0YU9m
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCi0g
ICAgR2V0UmVzb3VyY2VEYXRhRnJvbUZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyByZXNv
dXJjZVVSTCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCisgICAgR2V0TWFpblJlc291
cmNlRGF0YU9mRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYktpdDo6
Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIEdldFJlc291cmNlRGF0YUZyb21GcmFtZShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIHJlc291cmNlVVJMLCBXZWJLaXQ6
OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBHZXRSZW5kZXJUcmVlRXh0ZXJuYWxSZXByZXNl
bnRhdGlvbihXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAgICBHZXRTZWxlY3Rpb25P
ckNvbnRlbnRzQXNTdHJpbmcoV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgR2V0
U2VsZWN0aW9uQXNXZWJBcmNoaXZlRGF0YShXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkK
LSAgICBHZXRTb3VyY2VGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6OkNhbGxiYWNr
SUQgY2FsbGJhY2tJRCkKLSAgICBHZXRXZWJBcmNoaXZlT2ZGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBHZXRTb3VyY2VGb3JGcmFtZShX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxi
YWNrSUQpCisgICAgR2V0V2ViQXJjaGl2ZU9mRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIFJ1bkphdmFTY3Jp
cHRJbk1haW5GcmFtZVNjcmlwdFdvcmxkKFN0cmluZyBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2Vz
dHVyZSwgT3B0aW9uYWw8U3RyaW5nPiB3b3JsZE5hbWUsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxs
YmFja0lEKQotICAgIFJ1bkphdmFTY3JpcHRJbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFN0cmlu
ZyBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxi
YWNrSUQpCisgICAgUnVuSmF2YVNjcmlwdEluRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIFN0cmluZyBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgV2ViS2l0OjpD
YWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgRm9yY2VSZXBhaW50KFdlYktpdDo6Q2FsbGJhY2tJ
RCBjYWxsYmFja0lEKQogCiAgICAgU2VsZWN0QWxsKCkKQEAgLTM4MCwxOCArMzgwLDE4IEBAIEdl
bmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhl
dGljRWRpdGluZ0NvbW1hbmRUeXBlCiAgICAgRGlkUmVjZWl2ZU5vdGlmaWNhdGlvblBlcm1pc3Np
b25EZWNpc2lvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCwgYm9vbCBhbGxvd2VkKQogCiAgICAg
IyBQcmludGluZy4KLSAgICBCZWdpblByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBX
ZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8pCisgICAgQmVnaW5QcmludGluZyhXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5m
bykKICAgICBFbmRQcmludGluZygpCi0gICAgQ29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcodWludDY0
X3QgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2ViS2l0OjpD
YWxsYmFja0lEIGNhbGxiYWNrSUQpCisgICAgQ29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmlu
dEluZm8sIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogI2lmIFBMQVRGT1JNKENPQ09B
KQotICAgIERyYXdSZWN0VG9JbWFnZSh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQ
cmludEluZm8gcHJpbnRJbmZvLCBXZWJDb3JlOjpJbnRSZWN0IHJlY3QsIFdlYkNvcmU6OkludFNp
emUgaW1hZ2VTaXplLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKLSAgICBEcmF3UGFn
ZXNUb1BERih1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJ
bmZvLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIFdlYktpdDo6Q2FsbGJhY2tJRCBj
YWxsYmFja0lEKQorICAgIERyYXdSZWN0VG9JbWFnZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2ViQ29yZTo6SW50
UmVjdCByZWN0LCBXZWJDb3JlOjpJbnRTaXplIGltYWdlU2l6ZSwgV2ViS2l0OjpDYWxsYmFja0lE
IGNhbGxiYWNrSUQpCisgICAgRHJhd1BhZ2VzVG9QREYoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIHVpbnQzMl90IGZp
cnN0LCB1aW50MzJfdCBjb3VudCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBDb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdU
b1BERih1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZv
LCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkgLT4gKHVpbnQzMl90IHBhZ2VDb3VudCkg
U3luY2hyb25vdXMKKyAgICBDb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERihXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJbmZvIHBy
aW50SW5mbywgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpIC0+ICh1aW50MzJfdCBwYWdl
Q291bnQpIFN5bmNocm9ub3VzCiAjZW5kaWYKICNlbmRpZgogI2lmIFBMQVRGT1JNKEdUSykKLSAg
ICBEcmF3UGFnZXNGb3JQcmludGluZyh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQ
cmludEluZm8gcHJpbnRJbmZvLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBE
cmF3UGFnZXNGb3JQcmludGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3Ry
dWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxi
YWNrSUQpCiAjZW5kaWYKIAogICAgICMgTWVkaWEKQEAgLTQxMyw3ICs0MTMsNyBAQCBHZW5lcmF0
ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0Vk
aXRpbmdDb21tYW5kVHlwZQogICAgIENvbmZpcm1Db21wb3NpdGlvbihTdHJpbmcgdGV4dCwgaW50
NjRfdCBzZWxlY3Rpb25TdGFydCwgaW50NjRfdCBzZWxlY3Rpb25MZW5ndGgpCiAgICAgQ2FuY2Vs
Q29tcG9zaXRpb24oKQogCi0gICAgQ29sbGFwc2VTZWxlY3Rpb25JbkZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQpCisgICAgQ29sbGFwc2VTZWxlY3Rpb25JbkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlEKQogCiAgICAgR2V0Q2VudGVyRm9yWm9vbUdlc3R1cmUoV2ViQ29yZTo6SW50
UG9pbnQgY2VudGVySW5WaWV3Q29vcmRpbmF0ZXMpIC0+IChXZWJDb3JlOjpJbnRQb2ludCBjZW50
ZXIpIFN5bmNocm9ub3VzCiAjZW5kaWYKQEAgLTUzNiw3ICs1MzYsNyBAQCBHZW5lcmF0ZVN5bnRo
ZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdD
b21tYW5kVHlwZQogICAgIERpZFJlY2VpdmVQYXNzd29yZEZvclF1aWNrTG9va0RvY3VtZW50KFN0
cmluZyBwYXNzd29yZCkKICNlbmRpZgogCi0gICAgRnJhbWVCZWNhbWVSZW1vdGUodWludDY0X3Qg
ZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6Okdsb2JhbEZyYW1lSWRlbnRpZmllciByZW1vdGVGcmFt
ZUlkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpHbG9iYWxXaW5kb3dJZGVudGlmaWVyIHJlbW90
ZVdpbmRvd0lkZW50aWZpZXIpCisgICAgRnJhbWVCZWNhbWVSZW1vdGUoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpHbG9iYWxGcmFtZUlkZW50aWZpZXIg
cmVtb3RlRnJhbWVJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6R2xvYmFsV2luZG93SWRlbnRp
ZmllciByZW1vdGVXaW5kb3dJZGVudGlmaWVyKQogCiAgICAgUmVnaXN0ZXJVUkxTY2hlbWVIYW5k
bGVyKHVpbnQ2NF90IGlkZW50aWZpZXIsIFN0cmluZyBzY2hlbWUpCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNwcAppbmRleCBjOTgy
ZDBiNzYyMWVjMzBiYWI0N2RlYTI4NzZlOTc2MDBhZGIzODgxLi4zNjg4ZTE1ZWE5MGU4N2RiOWNj
ZGU3MTliZjZjZTU2YjMxODJiOGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9ndGsvV2ViUGFnZUd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VHdGsuY3BwCkBAIC0xODMsNyArMTgzLDcgQEAgdm9pZCBX
ZWJQYWdlOjpzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wgZW5hYmxlZCkKICAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlNldElucHV0TWV0aG9kU3RhdGUoZW5hYmxlZCkpOwogfQogCi12
b2lkIFdlYlBhZ2U6OmNvbGxhcHNlU2VsZWN0aW9uSW5GcmFtZSh1aW50NjRfdCBmcmFtZUlEKQor
dm9pZCBXZWJQYWdlOjpjb2xsYXBzZVNlbGVjdGlvbkluRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQpCiB7CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPmNvcmVGcmFtZSgp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbQppbmRleCA2ZjZmODY1NGFlYzNjNjdlY2ZlNTliYzhmMTZlNjU2NjhkYmE5NzNjLi4xODFj
NWFjMmRmNmNkZjQzMzUzN2EyNGExZmE5YWFlYjZiYmZmMmNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtNTUxLDcgKzU1
MSw3IEBAIHZvaWQgV2ViUGFnZTo6YWNjZXB0c0ZpcnN0TW91c2UoaW50LCBjb25zdCBXZWJLaXQ6
OldlYk1vdXNlRXZlbnQmLCBDb21wbGV0aW9uSGFuCiAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFs
c2UpOwogfQogCi12b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERGRG9jdW1l
bnQodWludDY0X3QsIGNvbnN0IFByaW50SW5mbyYsIFZlY3RvcjxJbnRSZWN0PiYpCit2b2lkIFdl
YlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERGRG9jdW1lbnQoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mLCBWZWN0b3I8SW50UmVjdD4mKQogewogICAgIG5v
dEltcGxlbWVudGVkKCk7CiB9CkBAIC0zNzA1LDcgKzM3MDUsNyBAQCB2b2lkIFdlYlBhZ2U6OmRp
c3BhdGNoQXN5bmNocm9ub3VzVG91Y2hFdmVudHMoY29uc3QgVmVjdG9yPFdlYlRvdWNoRXZlbnQs
IDE+JiBxdQogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRp
bmdBbmREcmF3VG9QREYodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludElu
Zm8sIENhbGxiYWNrSUQgY2FsbGJhY2tJRCwgTWVzc2FnZXM6OldlYlBhZ2U6OkNvbXB1dGVQYWdl
c0ZvclByaW50aW5nQW5kRHJhd1RvUERGOjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3ZvaWQgV2Vi
UGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBDYWxsYmFja0lE
IGNhbGxiYWNrSUQsIE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21wdXRlUGFnZXNGb3JQcmludGluZ0Fu
ZERyYXdUb1BERjo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7CiAgICAgaWYgKHByaW50SW5mby5z
bmFwc2hvdEZpcnN0UGFnZSkgewogICAgICAgICByZXBseSgxKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KaW5kZXggNDMxZGZhMTdh
Y2EwNWI2MGVmZTlhZTA0MDNhNDA4ODBlMjgxOGQ4MC4uZmUyNDE3YjBhN2Q1ODM2M2M1NGJiODZk
YTU3ODk4ZDExZmJlMzUzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KQEAgLTY3MCw3ICs2NzAsNyBAQCB2b2lkIFdlYlBhZ2U6
OnVwZGF0ZUhlYWRlckFuZEZvb3RlckxheWVyc0ZvckRldmljZVNjYWxlQ2hhbmdlKGZsb2F0IHNj
YWxlRmFjdG9yKQogICAgICAgICBtX2Zvb3RlckJhbm5lci0+ZGlkQ2hhbmdlRGV2aWNlU2NhbGVG
YWN0b3Ioc2NhbGVGYWN0b3IpOwogfQogCi12b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclBy
aW50aW5nUERGRG9jdW1lbnQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmlu
dEluZm8sIFZlY3RvcjxJbnRSZWN0PiYgcmVzdWx0UGFnZVJlY3RzKQordm9pZCBXZWJQYWdlOjpj
b21wdXRlUGFnZXNGb3JQcmludGluZ1BERkRvY3VtZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgVmVjdG9yPEludFJlY3Q+JiBy
ZXN1bHRQYWdlUmVjdHMpCiB7CiAgICAgQVNTRVJUKHJlc3VsdFBhZ2VSZWN0cy5pc0VtcHR5KCkp
OwogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1l
KGZyYW1lSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDdi
NDhhMGY3MjQ2MmZmZTU3ZmU5MjA2Y2JjYzBjZjMzMWMzMjExZTEuLjRlYjZkZWYyZGQxMGNiOGFi
MzkwZmEwMjM3ZTdiOTAyNDM1NWU5NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKQEAgLTc2OCwxNyArNzY4LDE3IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlCiAg
ICAgTE9HX0VSUk9SKCJVbmhhbmRsZWQgd2ViIHByb2Nlc3MgbWVzc2FnZSAnJXM6JXMnIiwgZGVj
b2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkudG9TdHJpbmcoKS5kYXRhKCksIGRlY29kZXIubWVz
c2FnZU5hbWUoKS50b1N0cmluZygpLmRhdGEoKSk7CiB9CiAKLVdlYkZyYW1lKiBXZWJQcm9jZXNz
Ojp3ZWJGcmFtZSh1aW50NjRfdCBmcmFtZUlEKSBjb25zdAorV2ViRnJhbWUqIFdlYlByb2Nlc3M6
OndlYkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSBjb25zdAogewogICAgIHJldHVybiBt
X2ZyYW1lTWFwLmdldChmcmFtZUlEKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjphZGRXZWJGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBXZWJGcmFtZSogZnJhbWUpCit2b2lkIFdlYlByb2Nlc3M6OmFk
ZFdlYkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJGcmFtZSogZnJhbWUpCiB7CiAg
ICAgbV9mcmFtZU1hcC5zZXQoZnJhbWVJRCwgZnJhbWUpOwogfQogCi12b2lkIFdlYlByb2Nlc3M6
OnJlbW92ZVdlYkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlByb2Nlc3M6OnJlbW92
ZVdlYkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIG1fZnJhbWVNYXAucmVt
b3ZlKGZyYW1lSUQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBk
NGMwMWJhYjFmOTNkYTkwODViMGYyMTk0Y2QzMjdkNDcxODY1MGIyLi4zY2IyYzQ5Njk0OTk4ODdi
MzJiNTNiM2E2NmQwYmJmNjg1YTMyMThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmgKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJXZWJTUUxpdGVEYXRhYmFzZVRyYWNr
ZXIuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRDaGFubmVsTWFuYWdlci5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVy
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUmVnaXN0cmFibGVEb21haW4uaD4KICNpZiBQTEFURk9STShNQUMpCkBAIC0xNzIsOSArMTcz
LDkgQEAgcHVibGljOgogCiAgICAgYm9vbCBmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkKCkgY29u
c3QgeyByZXR1cm4gbV9mdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkOyB9CiAKLSAgICBXZWJGcmFt
ZSogd2ViRnJhbWUodWludDY0X3QpIGNvbnN0OwotICAgIHZvaWQgYWRkV2ViRnJhbWUodWludDY0
X3QsIFdlYkZyYW1lKik7Ci0gICAgdm9pZCByZW1vdmVXZWJGcmFtZSh1aW50NjRfdCk7CisgICAg
V2ViRnJhbWUqIHdlYkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcikgY29uc3Q7CisgICAg
dm9pZCBhZGRXZWJGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkZyYW1lKik7Cisg
ICAgdm9pZCByZW1vdmVXZWJGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogCiAgICAg
V2ViUGFnZUdyb3VwUHJveHkqIHdlYlBhZ2VHcm91cChXZWJDb3JlOjpQYWdlR3JvdXAqKTsKICAg
ICBXZWJQYWdlR3JvdXBQcm94eSogd2ViUGFnZUdyb3VwKHVpbnQ2NF90IHBhZ2VHcm91cElEKTsK
QEAgLTQ4OSw3ICs0OTAsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2Z1bGxLZXlib2FyZEFj
Y2Vzc0VuYWJsZWQgeyBmYWxzZSB9OwogCi0gICAgSGFzaE1hcDx1aW50NjRfdCwgV2ViRnJhbWUq
PiBtX2ZyYW1lTWFwOworICAgIEhhc2hNYXA8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJG
cmFtZSo+IG1fZnJhbWVNYXA7CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgY2hhciosIHN0
ZDo6dW5pcXVlX3B0cjxXZWJQcm9jZXNzU3VwcGxlbWVudD4sIFB0ckhhc2g8Y29uc3QgY2hhcio+
PiBXZWJQcm9jZXNzU3VwcGxlbWVudE1hcDsKICAgICBXZWJQcm9jZXNzU3VwcGxlbWVudE1hcCBt
X3N1cHBsZW1lbnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggYjE0MDNkMDU2Mzkz
YjM5N2QwMTdkMDkzZGU1ZmUwNGNkY2NhOGNjZC4uZDYwNjMwZmUwY2FhZGY0M2E4Yjc0NDlkMmQ1
NDkwZWRiMDhlNmFjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC02NCw3ICs2NCw3
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBoYXNXZWJWaWV3KCkgY29uc3QgZmluYWw7IC8vIG1haW5s
eSBmb3IgYXNzZXJ0aW9ucwogCiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+
IHBhZ2VJRCgpIGNvbnN0IGZpbmFsOwotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEKCkg
Y29uc3QgZmluYWw7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFt
ZUlEKCkgY29uc3QgZmluYWw7CiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Qg
ZmluYWw7CiAKICAgICB2b2lkIG1ha2VSZXByZXNlbnRhdGlvbihXZWJDb3JlOjpEb2N1bWVudExv
YWRlciopIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRleCAzZGQ1MGU3YjNi
OWNmOTkzMzQ5YzlhYmI0Y2I0OTc4MzdlZWMzNTNlLi5iN2E2NWU5OTM0ZmZmMDg4MGI3NTY4Y2Ew
MGU5NjJlMDE1YWU0MjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAtMjE0LDcg
KzIxNCw3IEBAIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBXZWJGcmFtZUxvYWRlckNsaWVudDo6
cGFnZUlEKCkgY29uc3QKICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQogCi1PcHRpb25hbDx1
aW50NjRfdD4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZyYW1lSUQoKSBjb25zdAorT3B0aW9uYWw8
RnJhbWVJZGVudGlmaWVyPiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZnJhbWVJRCgpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cAppbmRleCA4ZTM1NGI3MWNkZmQyYTVmOWI4YjAxMWEwMzI5ZDc0MjRiYzkwYmJjLi5lZTM4YTQz
NzRjNGE0MjE3YjI3NTkwZmY0MWU1MWUzOTg2MWJhYzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwCkBAIC0xMjcsNyArMTI3LDcgQEAgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50
aWZpZXI+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpwYWdlSUQoKSBjb25zdAogICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CiB9CiAKLU9wdGlvbmFsPHVpbnQ2NF90PiBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZnJhbWVJRCgpIGNvbnN0CitPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlEKCkgY29uc3QKIHsKICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggNjk3NWZkOGEzZjZhYTU4
Nzk1ZTg2NjlmNjg2NmNjZmM1MjEwZDg0MS4uYzc3ZTIyZWQ4OTI2YzA1YjRhOWQ3MzcwZTA1N2Q0
ZmJlMjMzOWNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC01Miw3ICs1Miw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGRpc3BhdGNoRGlkRmFpbFRvU3RhcnRQbHVnaW4oY29uc3QgV2Vi
Q29yZTo6UGx1Z2luVmlldyYpIGNvbnN0OwogCiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXI+IHBhZ2VJRCgpIGNvbnN0IGZpbmFsOwotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBm
cmFtZUlEKCkgY29uc3QgZmluYWw7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyPiBmcmFtZUlEKCkgY29uc3QgZmluYWw7CiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KCkgY29uc3QgZmluYWw7CiAKICAgICBib29sIGhhc1dlYlZpZXcoKSBjb25zdCBvdmVycmlkZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376377</attachid>
            <date>2019-08-15 07:43:47 -0700</date>
            <delta_ts>2019-08-15 08:35:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199986-20190815074342.patch</filename>
            <type>text/plain</type>
            <size>464050</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzY0ZmYzODZkMjExYTFh
Yjk3OTNlZDlkNGQxNjY4MzFkZWFjMzNjNS4uMWVlYWNjZjY5N2ZlNTg5NTg1OTlkMGUyNjA2OTVl
NzU2MmMzY2UyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE5LTA4LTE0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBPYmplY3RJ
ZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+IGZvciBmcmFtZUlEcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5OTg2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIFVzZSB0aGUgc3Ryb25nbHktdHlwZWQg
RnJhbWVJZGVudGlmaWVyIGluc3RlYWQgb2YgdWludDY0X3QgYXMgZnJhbWUgaWRlbnRpZmllcnMg
ZXZlcnl3aGVyZS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBsb2FkZXIvQ29va2llSmFyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNv
b2tpZUphcjo6Y29va2llcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDb29raWVKYXI6OnNl
dENvb2tpZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDb29raWVKYXI6OmdldFJh
d0Nvb2tpZXMgY29uc3QpOgorICAgICAgICAqIGxvYWRlci9Db29raWVKYXIuaDoKKyAgICAgICAg
KiBsb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIGxvYWRlci9GcmFt
ZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcDoK
KyAgICAgICAgKiBsb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6
TmF2aWdhdGlvbkFjdGlvbjo6UmVxdWVzdGVyOjpmcmFtZUlEIGNvbnN0KToKKyAgICAgICAgKiBw
YWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHBhZ2UvR2xvYmFsRnJhbWVJZGVudGlmaWVy
Lmg6CisgICAgICAgIChXZWJDb3JlOjpHbG9iYWxGcmFtZUlkZW50aWZpZXI6OmRlY29kZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Db29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eS5o
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2hvdWxkQmxvY2tDb29r
aWVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6aGFz
U3RvcmFnZUFjY2VzcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmdyYW50U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OnJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZSk6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAo
V2ViQ29yZTo6Y29va2llc0ZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpjb29raWVzRm9yU2Vz
c2lvbik6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNG
b3JET00gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpj
b29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OnNldENvb2tpZXNGcm9tRE9NIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyBjb25zdCk6CisK
IDIwMTktMDgtMTUgIFRoaWJhdWx0IFNhdW5pZXIgIDx0c2F1bmllckBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtHU3RyZWFtZXJdW1dlYlJUQ106IG9wZW5oMjY0IGVuY29kZXIgYml0cmF0ZSBpcyBp
biBiaXRzIHBlciBzZWNvbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNzA5ZjVjMzYyNTE0Mjg2ODk0NzNjOTk4YjM4
ZmRhYWJiNTRhNjBjZC4uYTBkZWVkNTEzMzJmOGQ5YjlkNWNhMDIyNDE5OGNiNTNhNDQ1YWExNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzNDkgQEAKKzIwMTktMDgtMTQgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIE9iamVjdElkZW50aWZpZXI8RnJh
bWVJZGVudGlmaWVyVHlwZT4gZm9yIGZyYW1lSURzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk5ODYKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9z
dWtlIE5pd2EuCisKKyAgICAgICAgVXNlIHRoZSBzdHJvbmdseS10eXBlZCBGcmFtZUlkZW50aWZp
ZXIgaW5zdGVhZCBvZiB1aW50NjRfdCBhcyBmcmFtZSBpZGVudGlmaWVycyBldmVyeXdoZXJlLgor
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YWJhc2VTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNz
KToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6
OmdyYW50U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbCk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VM
b2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdl
YktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFj
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9y
ZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc01lbW9yeVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbCk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5
U3RvcmUuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIv
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpoYXNTdG9yYWdlQWNjZXNz
Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OmNhbGxIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRT
dG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpjYWxsR3JhbnRTdG9yYWdlQWNjZXNzSGFuZGxlcik6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29raWVz
Rm9yRE9NKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OnNldENvb2tpZXNGcm9tRE9NKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmdldFJhd0Nvb2tpZXMpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVtb3ZlU3RvcmFn
ZUFjY2Vzc0ZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6Omhhc1N0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpOZXR3b3JrTG9hZENoZWNrZXIpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9h
ZGVyOjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6cmV0
cmlldmVDYWNoZUVudHJ5KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVy
OjpzdGFydE5ldHdvcmtMb2FkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9h
ZGVyOjpjb252ZXJ0VG9Eb3dubG9hZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJj
ZUxvYWRlcjo6YWJvcnQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxv
YWRlcjo6ZGlkUmVjZWl2ZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJj
ZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6ZGlkRmFpbExvYWRpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OmNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6
ZXNjYXBlSURGb3JKU09OKToKKyAgICAgICAgKFdlYktpdDo6bG9nQmxvY2tlZENvb2tpZUluZm9y
bWF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6bG9nQ29va2llSW5mb3JtYXRpb25JbnRlcm5hbCk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6bG9nQ29va2llSW5mb3Jt
YXRpb24pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmg6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW06CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYSk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjp3aWxsUGVyZm9ybUhUVFBSZWRp
cmVjdGlvbik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAg
ICogU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5jcHA6CisgICAgICAgIChBUEk6OkZyYW1lSGFu
ZGxlOjpjcmVhdGUpOgorICAgICAgICAoQVBJOjpGcmFtZUhhbmRsZTo6Y3JlYXRlQXV0b2NvbnZl
cnRpbmcpOgorICAgICAgICAoQVBJOjpGcmFtZUhhbmRsZTo6RnJhbWVIYW5kbGUpOgorICAgICAg
ICAoQVBJOjpGcmFtZUhhbmRsZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvQVBJL0FQSUZy
YW1lSGFuZGxlLmg6CisgICAgICAgIChBUEk6OkZyYW1lSGFuZGxlOjpmcmFtZUlEIGNvbnN0KToK
KyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL19XS0ZyYW1lSGFuZGxlLm1tOgorICAgICAgICAo
LVtfV0tGcmFtZUhhbmRsZSBoYXNoXSk6CisgICAgICAgICgtW19XS0ZyYW1lSGFuZGxlIF9mcmFt
ZUlEXSk6CisgICAgICAgICgtW19XS0ZyYW1lSGFuZGxlIGluaXRXaXRoQ29kZXI6XSk6CisgICAg
ICAgICgtW19XS0ZyYW1lSGFuZGxlIGVuY29kZVdpdGhDb2RlcjpdKToKKyAgICAgICAgKiBTaGFy
ZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6QXV0aGVudGljYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UpOgorICAgICAgICAqIFNoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1h
bmFnZXIuaDoKKyAgICAgICAgKiBTaGFyZWQvRnJhbWVJbmZvRGF0YS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9XS0ZyYW1lSGFuZGxlUmVmLmNwcDoKKyAgICAgICAgKFdLRnJhbWVIYW5k
bGVHZXRGcmFtZUlEKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9wcmludE9wZXJhdGlvbldpdGhQcmludEluZm86Zm9y
RnJhbWU6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfY2FuQ2hhbmdlRnJhbWVMYXlvdXQ6XSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW06CisgICAgICAg
ICgtW19XS0luc3BlY3RvciBzaG93TWFpblJlc291cmNlRm9yRnJhbWU6XSk6CisgICAgICAgICog
VUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6U2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyOjpydW4pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OndlYkZyYW1lSURGb3JIYW5kbGUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6aGFuZGxlRm9yV2ViRnJhbWVJRCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpzd2l0Y2hUb0Jyb3dzaW5n
Q29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjp3YWl0Rm9y
TmF2aWdhdGlvblRvQ29tcGxldGUpOgorICAgICAgICAoV2ViS2l0OjpmaW5kUGFnZUZvckZyYW1l
SUQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVzcG9uZFRvUGVu
ZGluZ0ZyYW1lTmF2aWdhdGlvbkNhbGxiYWNrc1dpdGhUaW1lb3V0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViQXV0b21hdGlvblNlc3Npb246OmV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnJlc29sdmVDaGlsZEZyYW1lSGFu
ZGxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnJlc29sdmVQYXJl
bnRGcmFtZUhhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpj
b21wdXRlRWxlbWVudExheW91dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNz
aW9uOjpzZWxlY3RPcHRpb25FbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlv
blNlc3Npb246OmdldEFsbENvb2tpZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9u
U2Vzc2lvbjo6ZGVsZXRlU2luZ2xlQ29va2llKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21h
dGlvblNlc3Npb246OnZpZXdwb3J0SW5WaWV3Q2VudGVyUG9pbnRPZkVsZW1lbnQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6dGFrZVNjcmVlbnNob3QpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVs
ZWdhdGU6OlVJQ2xpZW50OjpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XS1JlbG9hZEZyYW1lRXJyb3JSZWNvdmVyeUF0dGVtcHRl
ci5tbToKKyAgICAgICAgKC1bV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIgYXR0
ZW1wdFJlY292ZXJ5XSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNv
Y29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRC
bG9ja0xvYWRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29udGVu
dEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hhcmVkKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25m
aXJtKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6dmFsaWRhdGVJbnB1dCk6CisgICAg
ICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUpOgor
ICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybUNsaWVudFJl
ZGlyZWN0KToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFN0YXJ0
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBh
Z2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSk6CisgICAgICAg
IChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9u
RGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDaGFuZ2VQ
cm92aXNpb25hbFVSTEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdl
UHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyk6CisgICAgICAgIChX
ZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVk
aXJlY3QpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUmVjZWl2
ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
blN5bmMpOgorICAgICAgICAoV2ViS2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6Y29udGVudEZp
bHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvdmlzaW9u
YWxQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OmRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Nl
cnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3VzcGVuZGVk
UGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3VzcGVuZGVkUGFnZVByb3h5OjpTdXNw
ZW5kZWRQYWdlUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJveHku
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eTo6VXNlck1l
ZGlhUGVybWlzc2lvbkNoZWNrUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uQ2hlY2tQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNz
aW9uQ2hlY2tQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlz
c2lvbkNoZWNrUHJveHk6OmZyYW1lSUQgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXNldEFjY2Vzcyk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpz
ZWFyY2hGb3JHcmFudGVkUmVxdWVzdCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp3YXNSZXF1ZXN0RGVuaWVkKToKKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVl
c3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Z2V0VXNlck1lZGlhUGVybWlzc2lvbklu
Zm8pOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6d2FzR3JhbnRlZFZpZGVvT3JBdWRpb0FjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjplbnVtZXJhdGVNZWRpYURldmlj
ZXNGb3JGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpjcmVhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjptYWluRnJhbWVJRCBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6
OmZyYW1lSUQgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVQcm94eTo6V2ViRnJhbWVQcm94eSk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVQ
cm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVQcm94eTo6ZnJhbWVJRCBj
b25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3VzcGVuZEN1cnJlbnRQYWdlSWZQb3NzaWJsZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29tbWl0UHJvdmlzaW9uYWxQYWdlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0SW5GcmFtZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpkaWRDcmVhdGVTdWJmcmFtZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRlV2luZG93KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRFeHBsaWNpdE9wZW5Gb3JGcmFtZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0
Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hh
cmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp3aWxsUGVyZm9ybUNsaWVudFJl
ZGlyZWN0Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENhbmNl
bENsaWVudFJlZGlyZWN0Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWVTaGFyZWQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDb21taXRM
b2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZpbmlzaERv
Y3VtZW50TG9hZEZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRG
aW5pc2hMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZh
aWxMb2FkRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFNhbWVE
b2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGlkQ2hhbmdlTWFpbkRvY3VtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGlkRmlyc3RMYXlvdXRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJh
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZERldGVjdFhTU0ZvckZyYW1l
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpmcmFtZURpZEJlY29tZUZyYW1lU2V0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uQXN5bmMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25T
eW5jU2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lG
b3JOZXdXaW5kb3dBY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lk
ZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6dW5hYmxlVG9JbXBsZW1lbnRQb2xpY3kpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OndpbGxTdWJtaXRGb3JtKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRO
YXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdFNoYXJl
ZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkVXBkYXRlSGlzdG9yeVRpdGxl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0QWxlcnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRDb25maXJtKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0UHJvbXB0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJ1bk9wZW5QYW5lbCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6cHJpbnRGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZnJhbWVTZXRMYXJnZXN0RnJhbWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXF1ZXN0U3RvcmFnZVNwYWNlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjptYWtlU3RvcmFnZVNwYWNlUmVxdWVzdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVy
bWlzc2lvbkZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjplbnVtZXJh
dGVNZWRpYURldmljZXNGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojp3ZWJGcmFtZSBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Y2FuQ3JlYXRlRnJhbWUgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmZyYW1lQ3JlYXRlZCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkRGVzdHJveUZyYW1lKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXcubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3drX3BhZ2VDb3VudEZvclByaW50
Rm9ybWF0dGVyOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5n
QW5kRHJhd1RvUERGKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21h
dGlvblNlc3Npb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OmV2YWx1YXRlSmF2YVNjcmlw
dENhbGxiYWNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6
ZGlkQ2xlYXJXaW5kb3dPYmplY3RGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9t
YXRpb25TZXNzaW9uUHJveHk6OmV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZGlkRXZhbHVhdGVKYXZhU2NyaXB0
RnVuY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpy
ZXNvbHZlQ2hpbGRGcmFtZVdpdGhPcmRpbmFsKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21h
dGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhhbmRsZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnJlc29sdmVDaGlsZEZyYW1l
V2l0aE5hbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpy
ZXNvbHZlUGFyZW50RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lv
blByb3h5Ojpmb2N1c0ZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Np
b25Qcm94eTo6Y29tcHV0ZUVsZW1lbnRMYXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRv
bWF0aW9uU2Vzc2lvblByb3h5OjpzZWxlY3RPcHRpb25FbGVtZW50KToKKyAgICAgICAgKFdlYktp
dDo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6dGFrZVNjcmVlbnNob3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpnZXRDb29raWVzRm9yRnJhbWUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpkZWxldGVDb29raWUp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblBy
b3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNz
aW9uUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW06CisgICAgICAgICgrW1dLV2Vi
UHJvY2Vzc1BsdWdJbkZyYW1lIGxvb2tVcEZyYW1lRnJvbUhhbmRsZTpdKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
TG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZEZyb21OZXR3b3JrUHJvY2Vzcyk6CisgICAgICAg
IChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hSZXNvdXJjZUxvYWQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbFJlc291cmNlTG9hZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVyOjpkaWRCbG9ja0F1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6OnN0b3BMb2Fk
aW5nQWZ0ZXJYRnJhbWVPcHRpb25zT3JDb250ZW50U2VjdXJpdHlQb2xpY3lEZW5pZWQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc291cmNlKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6aW5zdGFsbFNl
cnZpY2VXb3JrZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpmb2N1c2Vk
RnJhbWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50
c1NpemVDaGFuZ2VkIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpo
YXNTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpyZXF1
ZXN0U3RvcmFnZUFjY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmZyYW1lSUQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExvYWQpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViQ29va2llSmFyOjpjb29raWVzIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2ll
SmFyOjpzZXRDb29raWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29va2llSmFyOjpjb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tp
ZUphcjo6Z2V0UmF3Q29va2llcyBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkNvb2tpZUphci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpXZWJGcmFtZSk6CisgICAgICAgIChXZWJL
aXQ6OmdlbmVyYXRlRnJhbWVJRCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkZyYW1lLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpmcmFtZUlEIGNvbnN0
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yOjpzaG93TWFpblJlc291cmNlRm9yRnJhbWUpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bG9h
ZFVSTEluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpsb2FkRGF0YUluRnJhbWUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzdG9wTG9hZGluZ0ZyYW1lKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6ZGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6Y29udGludWVXaWxsU3VibWl0Rm9ybSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OnJ1bkphdmFTY3JpcHRJbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6Z2V0U291cmNlRm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRNYWlu
UmVzb3VyY2VEYXRhT2ZGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldFJlc291
cmNlRGF0YUZyb21GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldFdlYkFyY2hp
dmVPZkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6YWRkQ29uc29sZU1lc3NhZ2Up
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZl
bnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpiZWdpblByaW50aW5nKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZ0ltcGwpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpkcmF3UmVjdFRvSW1hZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpkcmF3UGFnZXNUb1BERik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRyYXdQYWdlc1Rv
UERGSW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRyYXdQYWdlc0ZvclByaW50aW5n
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZnJhbWVCZWNhbWVSZW1vdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpoYXNTdG9yYWdlQWNjZXNzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y29tcHV0ZVBhZ2Vz
Rm9yUHJpbnRpbmdQREZEb2N1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNvbXB1
dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNvbXB1
dGVQYWdlc0ZvclByaW50aW5nUERGRG9jdW1lbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OndlYkZyYW1lIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6YWRkV2ViRnJhbWUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzOjpyZW1vdmVXZWJGcmFtZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmg6CisKIDIwMTktMDgtMTQgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIG1fYmxvY2tSZWN0Rm9yVGV4dFNlbGVjdGlv
biAoYWxvbmcgd2l0aCByZWxhdGVkIGNvZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5k
ZXggMDJhMWNlN2JhNjhlYmRkMmU3ZmIzYWJmODRjM2RiNjhkNzQ4NWU2ZS4uN2Q0MmE4NzY5ZWRh
YjM2YTNkNzkyMTdjYjY5YzIwMTFiOGM2NGZmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTA4LTE0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBPYmplY3RJZGVudGlmaWVyPEZyYW1lSWRlbnRp
ZmllclR5cGU+IGZvciBmcmFtZUlEcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTk5OTg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdh
LgorCisgICAgICAgIFVzZSB0aGUgc3Ryb25nbHktdHlwZWQgRnJhbWVJZGVudGlmaWVyIGluc3Rl
YWQgb2YgdWludDY0X3QgYXMgZnJhbWUgaWRlbnRpZmllcnMgZXZlcnl3aGVyZS4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAgIChXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZnJhbWVJRCBjb25zdCk6CisKIDIwMTktMDgtMTQgIFJ5YW4gSGFkZGFkICA8
cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjI0ODUyNi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDhjMzllMjhjNzRlYjFkNTUxNGE1NDE2MDc4
OGVjYzIyZWI3ZWRjNTUuLjZlMzliZTQxOGFkOGUxMDA5YmRhM2RiMGFmMTBhNGJiMzRhZmZjZDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtNzc3LDYgKzc3Nyw3IEBAIHNldChXZWJDb3JlX1BSSVZB
VEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwYWdlL0ZvY3VzRGlyZWN0aW9uLmgKICAgICBwYWdl
L0ZyYW1lLmgKICAgICBwYWdlL0ZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5oCisgICAgcGFnZS9G
cmFtZUlkZW50aWZpZXIuaAogICAgIHBhZ2UvRnJhbWVTbmFwc2hvdHRpbmcuaAogICAgIHBhZ2Uv
RnJhbWVUcmVlLmgKICAgICBwYWdlL0ZyYW1lVmlldy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjdiZTc0OTNmYjM0N2U3YWVj
NWQxMTdjYzVjYzY5YThhMWVmYzFlMy4uNDk1N2JhYmM5N2IxNzEwNGE0NDUzNWU0MzgzZmRmYThi
MTI3NDIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMjgwLDYgKzI4MCw3IEBACiAJCTBGMDNDMDc0MTg4NDY5NUUwMEE1RjhD
QSAvKiBTeXN0ZW1NZW1vcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGMDNDMDczMTg4NDY5NUUwMEE1RjhDQSAvKiBTeXN0ZW1NZW1vcnkuaCAqLzsg
fTsKIAkJMEYwM0MwNzUxODg0ODA1NTAwQTVGOENBIC8qIEluc3BlY3Rvck92ZXJsYXkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNTIyRDRBMTVCNDc4
QjIwMDlCN0M5NSAvKiBJbnNwZWN0b3JPdmVybGF5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEYwOTlEMDkxN0I5NjhBMTAwRkY4NEI5IC8qIFdl
YkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEYwOTlEMDcxN0I5NjhBMTAwRkY4NEI5IC8qIFdlYkNvcmVUeXBl
ZEFycmF5Q29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTBGMTE3ODE4MjJFM0M0N0YwMDhCRDU3MCAvKiBGcmFtZUlkZW50aWZpZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTE3ODE2
MjJFM0M0N0UwMDhCRDU3MCAvKiBGcmFtZUlkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjExQTU0RjBGMzkyMzMxMDBDMzc4ODQg
LyogUmVuZGVyU2VsZWN0aW9uSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEYxMUE1NEUwRjM5MjMzMTAwQzM3ODg0IC8qIFJlbmRlclNlbGVjdGlv
bkluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkwRjEzMTYzRTE2RUQwQ0M4MDAzNUNDMDQgLyogUGxhdGZvcm1DQUZpbHRlcnMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTMxNjNEMTZFRDBDQzgw
MDM1Q0MwNCAvKiBQbGF0Zm9ybUNBRmlsdGVycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGMTVEQThBMEYzQUFFRTcwMDAwQ0U0NyAvKiBDU1NB
bmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEYxNURBODkwRjNBQUVFNzAwMDBDRTQ3IC8qIENTU0FuaW1hdGlv
bkNvbnRyb2xsZXJQcml2YXRlLmggKi87IH07CkBAIC01NTc4LDYgKzU1NzksNyBAQAogCQkwRjAz
QzA3MzE4ODQ2OTVFMDBBNUY4Q0EgLyogU3lzdGVtTWVtb3J5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFN5c3RlbU1lbW9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjA5OUQwNjE3Qjk2OEExMDBGRjg0QjkgLyogV2ViQ29yZVR5cGVkQXJyYXlDb250cm9s
bGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvcmVUeXBl
ZEFycmF5Q29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMDk5
RDA3MTdCOTY4QTEwMEZGODRCOSAvKiBXZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMTE3ODE2MjJFM0M0N0UwMDhCRDU3
MCAvKiBGcmFtZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RnJhbWVJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMTFBNTRF
MEYzOTIzMzEwMEMzNzg4NCAvKiBSZW5kZXJTZWxlY3Rpb25JbmZvLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclNlbGVjdGlvbkluZm8uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEYxMzE2M0QxNkVEMENDODAwMzVDQzA0IC8qIFBsYXRmb3JtQ0FGaWx0
ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtQ0FGaWx0ZXJz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMTMxNjNGMTZFRDBDREUwMDM1Q0Mw
NCAvKiBQbGF0Zm9ybUNBRmlsdGVyc0NvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gUGxhdGZvcm1DQUZpbHRlcnNDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIwMjA0LDYgKzIwMjA2LDcgQEAKIAkJCQk2NUJGMDIyQTA5NzQ4MTYz
MDBDNDMxOTYgLyogRnJhbWUuaCAqLywKIAkJCQk5NzRBODYyMDE0QjdBREJCMDAzRkRDNzYgLyog
RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmNwcCAqLywKIAkJCQk5NzRBODYyMTE0QjdBREJCMDAz
RkRDNzYgLyogRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmggKi8sCisJCQkJMEYxMTc4MTYyMkUz
QzQ3RTAwOEJENTcwIC8qIEZyYW1lSWRlbnRpZmllci5oICovLAogCQkJCUM0Q0Q2Mjk4MTgzODM3
NjYwMDdFQkFGMSAvKiBGcmFtZVNuYXBzaG90dGluZy5jcHAgKi8sCiAJCQkJQzRDRDYyOTkxODM4
Mzc2NjAwN0VCQUYxIC8qIEZyYW1lU25hcHNob3R0aW5nLmggKi8sCiAJCQkJNjVBMjE0ODIwOTdB
M0Y1MzAwQjkwNTBBIC8qIEZyYW1lVHJlZS5jcHAgKi8sCkBAIC0yOTI1NSw2ICsyOTI1OCw3IEBA
CiAJCQkJQTg1MzEyM0QxMUQwNDcxQjAwRDREMDc3IC8qIEZyYWdtZW50U2NyaXB0aW5nUGVybWlz
c2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVCRjAyMkYwOTc0ODE2MzAwQzQzMTk2IC8qIEZy
YW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzRBODYyMzE0QjdBREJCMDAzRkRDNzYgLyogRnJh
bWVEZXN0cnVjdGlvbk9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjExNzgxODIyRTND
NDdGMDA4QkQ1NzAgLyogRnJhbWVJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTZE
MzczQzBBREJBNURFMDBBNDU1NEQgLyogRnJhbWVMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTY1NkQzNzNFMEFEQkE1REUwMEE0NTU0RCAvKiBGcmFtZUxvYWRlckNsaWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRDAwMEVCQTMxMUJEQUZENDAwQzQ3NzI2IC8qIEZyYW1lTG9hZGVyU3RhdGVN
YWNoaW5lLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Db29raWVKYXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5jcHAKaW5k
ZXggNjk2MzAzMzBiNWQ3OTMwZDdkN2FhZjFkZGI0YTg5ZGZiNjBkZGRjYy4uNmQwMzYyZTk3NjQx
ODhiNjA4NGNiYWE4Y2MxNDJkNGQzOTFmNWE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0Nvb2tpZUphci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUph
ci5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgU3RyaW5nIENvb2tpZUphcjo6Y29va2llcyhEb2N1bWVu
dCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsKSBjb25zdAogCiAgICAgYXV0byBpbmNsdWRlU2Vj
dXJlQ29va2llcyA9IHNob3VsZEluY2x1ZGVTZWN1cmVDb29raWVzKGRvY3VtZW50LCB1cmwpOwog
Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVu
dGlmaWVyPiBmcmFtZUlEOwogICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7CiAg
ICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKSkgewogICAgICAgICBmcmFtZUlE
ID0gZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLmZyYW1lSUQoKTsKQEAgLTk0LDcgKzk0LDcgQEAg
Q29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkgQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVh
ZGVyRmllbGRQcm94eShjb25zdCBEb2MKIHsKICAgICBUcmFjZVNjb3BlIHNjb3BlKEZldGNoQ29v
a2llc1N0YXJ0LCBGZXRjaENvb2tpZXNFbmQpOwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEOwogICAgIE9wdGlv
bmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7CiAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1l
bnQuZnJhbWUoKSkgewogICAgICAgICBmcmFtZUlEID0gZnJhbWUtPmxvYWRlcigpLmNsaWVudCgp
LmZyYW1lSUQoKTsKQEAgLTEwNiw3ICsxMDYsNyBAQCBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQ
cm94eSBDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5KGNvbnN0IERvYwog
CiB2b2lkIENvb2tpZUphcjo6c2V0Q29va2llcyhEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVS
TCYgdXJsLCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0cmluZykKIHsKLSAgICBPcHRpb25hbDx1aW50
NjRfdD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQ7CiAg
ICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRDsKICAgICBpZiAoYXV0byogZnJhbWUg
PSBkb2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGZyYW1lSUQgPSBmcmFtZS0+bG9hZGVyKCku
Y2xpZW50KCkuZnJhbWVJRCgpOwpAQCAtMTI4LDcgKzEyOCw3IEBAIGJvb2wgQ29va2llSmFyOjpj
b29raWVzRW5hYmxlZChjb25zdCBEb2N1bWVudCYpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCi1zdGQ6OnBhaXI8U3RyaW5nLCBTZWN1cmVDb29raWVzQWNjZXNzZWQ+IENvb2tpZUphcjo6
Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBjb25z
dCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25z
dCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVu
dGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVz
KSBjb25zdAorc3RkOjpwYWlyPFN0cmluZywgU2VjdXJlQ29va2llc0FjY2Vzc2VkPiBDb29raWVK
YXI6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFBBTDo6U2Vzc2lvbklEJiwg
Y29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywg
Y29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNl
Y3VyZUNvb2tpZXMpIGNvbnN0CiB7CiAgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBtX3N0b3JhZ2VT
ZXNzaW9uUHJvdmlkZXItPnN0b3JhZ2VTZXNzaW9uKCkpIHsKICAgICAgICAgc3RkOjpwYWlyPFN0
cmluZywgYm9vbD4gcmVzdWx0ID0gc2Vzc2lvbi0+Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFs
dWUoZmlyc3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgaW5jbHVk
ZVNlY3VyZUNvb2tpZXMpOwpAQCAtMTQxLDcgKzE0MSw3IEBAIHN0ZDo6cGFpcjxTdHJpbmcsIFNl
Y3VyZUNvb2tpZXNBY2Nlc3NlZD4gQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRW
YWx1CiAKIFN0cmluZyBDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKERv
Y3VtZW50JiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwpIGNvbnN0CiB7Ci0gICAgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlE
OwogICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7CiAgICAgaWYgKGF1dG8qIGZy
YW1lID0gZG9jdW1lbnQuZnJhbWUoKSkgewogICAgICAgICBmcmFtZUlEID0gZnJhbWUtPmxvYWRl
cigpLmNsaWVudCgpLmZyYW1lSUQoKTsKQEAgLTE1Niw3ICsxNTYsNyBAQCBTdHJpbmcgQ29va2ll
SmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNv
bnN0IFVSTCYgdQogCiBib29sIENvb2tpZUphcjo6Z2V0UmF3Q29va2llcyhjb25zdCBEb2N1bWVu
dCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBWZWN0b3I8Q29va2llPiYgY29va2llcykgY29u
c3QKIHsKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxGcmFt
ZUlkZW50aWZpZXI+IGZyYW1lSUQ7CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJ
RDsKICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpKSB7CiAgICAgICAgIGZy
YW1lSUQgPSBmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuZnJhbWVJRCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0Nvb2tpZUphci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0Nvb2tpZUphci5oCmluZGV4IDI4MWY4NGM0OTAwNTI2N2VhMDU0ZDUxZDc2OGE5ZWI3MzJjYmMy
MzkuLjgwODdiOGNkNWI3Y2Y0ZjU2OTNlMmY3ZTk1ZDhlZjZhMTc5ODQ2YTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db29raWVKYXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvQ29va2llSmFyLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNp
bmNsdWRlICJGcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJQYWdlSWRlbnRpZmllci5oIgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CkBAIC01OSw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29va2llcyhE
b2N1bWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKTsKIAogICAg
IHZpcnR1YWwgYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBEb2N1bWVudCYpIGNvbnN0OwotICAg
IHZpcnR1YWwgc3RkOjpwYWlyPFN0cmluZywgU2VjdXJlQ29va2llc0FjY2Vzc2VkPiBjb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBQQUw6OlNlc3Npb25JRCYsIGNvbnN0IFVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWlu
dDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNv
b2tpZXMpIGNvbnN0OworICAgIHZpcnR1YWwgc3RkOjpwYWlyPFN0cmluZywgU2VjdXJlQ29va2ll
c0FjY2Vzc2VkPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBQQUw6OlNlc3Np
b25JRCYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3Qg
VVJMJiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+
LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGdldFJhd0Nv
b2tpZXMoY29uc3QgRG9jdW1lbnQmLCBjb25zdCBVUkwmLCBWZWN0b3I8Q29va2llPiYpIGNvbnN0
OwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVDb29raWUoY29uc3QgRG9jdW1lbnQmLCBjb25zdCBV
UkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAxZjdhMjljNGIzMDFhMzY1ODIyZTQy
MzNiNDE1ZGQxYzAwMTkxMzJkLi5lNTlkMTcwZGYwYmEwOGEyYzRmNjAzZmRjZmE4MzU3ZGZmODli
ZGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50
LmgKQEAgLTMyLDcgKzMyLDcgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgRW1wdHlGcmFtZUxvYWRl
ckNsaWVudCA6IHB1YmxpYyBGcmFtZUxvYWRlckNsaWVudCB7CiAKICAgICB2b2lkIGZyYW1lTG9h
ZGVyRGVzdHJveWVkKCkgb3ZlcnJpZGUgeyB9CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJh
bWVJRCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFdURjo6bnVsbG9wdDsgfQorICAgIE9wdGlv
bmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsgfQogICAgIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KICAgICBQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQoKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXJDbGllbnQuaAppbmRleCAwNzQ4NzYxMThkYzY5MWFhN2M4YWRhOTdiNzk3MTM3MzNhMjhh
Njk1Li5lZDg0N2NiMDQ3ODUyNWU1MjEwZjFjYzg1YjdmZWM1M2NlNzIyMmVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjksNiArMjksNyBAQAogCiAj
cHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkZyYW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkZy
YW1lTG9hZGVyVHlwZXMuaCIKICNpbmNsdWRlICJMYXlvdXRNaWxlc3RvbmUuaCIKICNpbmNsdWRl
ICJMaW5rSWNvbi5oIgpAQCAtMTI4LDcgKzEyOSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgbWFrZVJlcHJlc2VudGF0aW9uKERvY3VtZW50TG9hZGVyKikgPSAwOwogCiAgICAgdmlydHVh
bCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlEKCkgY29uc3QgPSAwOwotICAgIHZpcnR1
YWwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBP
cHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVh
bCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCA9IDA7CiAKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25B
Y3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24uY3BwCmlu
ZGV4IDYyYmEyZGQyZjc3MGE0MDZlMTVjOTAzOTVlNDE3YzQyYzI4ZjUyMGUuLmJkNzM4ZTA4OTU3
ZTJmZDg0ZGEwNTVhYjQ1M2UxYTQzZTBiMjg4ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
TmF2aWdhdGlvbkFjdGlvbi5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogTmF2aWdhdGlvbkFjdGlvbjo6UmVxdWVzdGVyOjpSZXF1ZXN0ZXIoY29uc3QgRG9jdW1lbnQm
IGRvY3VtZW50KQogICAgIDogbV91cmwgeyBVUkwgeyBkb2N1bWVudC51cmwoKSB9IH0KICAgICAs
IG1fb3JpZ2luIHsgbWFrZVJlZlB0cihkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpKSB9Ci0gICAg
LCBtX3BhZ2VJREFuZEZyYW1lSURQYWlyIHsgZG9jdW1lbnQuZnJhbWUoKSA/IHN0ZDo6bWFrZV9w
YWlyKGRvY3VtZW50LmZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgpLnBhZ2VJRCgpLnZhbHVlT3Io
UGFnZUlkZW50aWZpZXIgeyB9KSwgZG9jdW1lbnQuZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCku
ZnJhbWVJRCgpLnZhbHVlT3IoMCkpIDogc3RkOjptYWtlX3BhaXI8UGFnZUlkZW50aWZpZXIsIHVp
bnQ2NF90Pih7IH0sIDApIH0KKyAgICAsIG1fcGFnZUlEQW5kRnJhbWVJRFBhaXIgeyBkb2N1bWVu
dC5mcmFtZSgpID8gc3RkOjptYWtlX3BhaXIoZG9jdW1lbnQuZnJhbWUoKS0+bG9hZGVyKCkuY2xp
ZW50KCkucGFnZUlEKCkudmFsdWVPcihQYWdlSWRlbnRpZmllciB7IH0pLCBkb2N1bWVudC5mcmFt
ZSgpLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlEKCkudmFsdWVPcihGcmFtZUlkZW50aWZpZXIg
eyB9KSkgOiBzdGQ6Om1ha2VfcGFpcjxQYWdlSWRlbnRpZmllciwgRnJhbWVJZGVudGlmaWVyPih7
IH0sIHsgfSkgfQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2
aWdhdGlvbkFjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rpb24u
aAppbmRleCAzNWM5NjFhYTE1NDdiOGVhMGM0YjkwNDA3MDNjODVkM2VhOGU3ZTU3Li4wYTAyMWQ0
ZmM3OWQ5NmIzZjJhODhiYWU0MDQ1NjE5MTA0Y2U5MGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9OYXZpZ2F0aW9uQWN0aW9uLmgKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkFkQ2xp
Y2tBdHRyaWJ1dGlvbi5oIgogI2luY2x1ZGUgIkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXIuaCIK
KyNpbmNsdWRlICJGcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVz
LmgiCiAjaW5jbHVkZSAiTGF5b3V0UG9pbnQuaCIKICNpbmNsdWRlICJQYWdlSWRlbnRpZmllci5o
IgpAQCAtNjQsNyArNjUsNyBAQCBwdWJsaWM6CiAgICAgTmF2aWdhdGlvbkFjdGlvbihOYXZpZ2F0
aW9uQWN0aW9uJiYpOwogICAgIE5hdmlnYXRpb25BY3Rpb24mIG9wZXJhdG9yPShOYXZpZ2F0aW9u
QWN0aW9uJiYpOwogCi0gICAgdXNpbmcgUGFnZUlEQW5kRnJhbWVJRFBhaXIgPSBzdGQ6OnBhaXI8
UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IC8qIGZyYW1lSUQgKi8+OworICAgIHVzaW5nIFBhZ2VJ
REFuZEZyYW1lSURQYWlyID0gc3RkOjpwYWlyPFBhZ2VJZGVudGlmaWVyLCBGcmFtZUlkZW50aWZp
ZXI+OyAvLyBGSVhNRTogVXNlIEdsb2JhbEZyYW1lSWRlbnRpZmllci4KICAgICBjbGFzcyBSZXF1
ZXN0ZXIgewogICAgIHB1YmxpYzoKICAgICAgICAgUmVxdWVzdGVyKGNvbnN0IERvY3VtZW50Jik7
CkBAIC03Miw3ICs3Myw3IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3QgVVJMJiB1cmwoKSBjb25z
dCB7IHJldHVybiBtX3VybDsgfQogICAgICAgICBjb25zdCBTZWN1cml0eU9yaWdpbiYgc2VjdXJp
dHlPcmlnaW4oKSBjb25zdCB7IHJldHVybiAqbV9vcmlnaW47IH0KICAgICAgICAgUGFnZUlkZW50
aWZpZXIgcGFnZUlEKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlSURBbmRGcmFtZUlEUGFpci5maXJz
dDsgfQotICAgICAgICB1aW50NjRfdCBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlSURB
bmRGcmFtZUlEUGFpci5zZWNvbmQ7IH0KKyAgICAgICAgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQo
KSBjb25zdCB7IHJldHVybiBtX3BhZ2VJREFuZEZyYW1lSURQYWlyLnNlY29uZDsgfQogICAgIHBy
aXZhdGU6CiAgICAgICAgIFVSTCBtX3VybDsKICAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2lu
PiBtX29yaWdpbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGMyNWEwMjRiYzA2
M2M1OGYzYjI4YmQ3OWNiYjAzMzg0NDI2YzhjNWUuLmU4YTVkZTMzZWQxNzkyNmM5YWE4NTZiMDgx
NmI0ZWVjZjgyYzk0ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMzAsNiAr
MzAsNyBAQAogI2luY2x1ZGUgIkRpc3BsYXlSZWZyZXNoTW9uaXRvci5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50U3RvcmFnZUFjY2Vzcy5oIgogI2luY2x1ZGUgIkZvY3VzRGlyZWN0aW9uLmgiCisjaW5j
bHVkZSAiRnJhbWVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNs
dWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCkBAIC00
ODYsOCArNDg3LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgUmVmUHRyPEljb24+IGNyZWF0ZUlj
b25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgLyogZmlsZW5hbWVzICovKSA9IDA7CiAK
ICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIHZpcnR1YWwgdm9pZCBo
YXNTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWluJiYgLypzdWJGcmFtZURvbWFpbiovLCBS
ZWdpc3RyYWJsZURvbWFpbiYmIC8qdG9wRnJhbWVEb21haW4qLywgdWludDY0X3QgLypmcmFtZUlE
Ki8sIFBhZ2VJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOyB9Ci0gICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWluJiYgLypzdWJG
cmFtZURvbWFpbiovLCBSZWdpc3RyYWJsZURvbWFpbiYmIC8qdG9wRnJhbWVEb21haW4qLywgdWlu
dDY0X3QgLypmcmFtZUlEKi8sIFBhZ2VJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVy
PHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93
bik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoU3RvcmFnZUFjY2Vz
c1dhc0dyYW50ZWQ6Ok5vLCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd246Ok5vKTsgfQorICAg
IHZpcnR1YWwgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWluJiYgLypzdWJG
cmFtZURvbWFpbiovLCBSZWdpc3RyYWJsZURvbWFpbiYmIC8qdG9wRnJhbWVEb21haW4qLywgRnJh
bWVJZGVudGlmaWVyLCBQYWdlSWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsg
fQorICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFp
biYmIC8qc3ViRnJhbWVEb21haW4qLywgUmVnaXN0cmFibGVEb21haW4mJiAvKnRvcEZyYW1lRG9t
YWluKi8sIEZyYW1lSWRlbnRpZmllciwgUGFnZUlkZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhh
bmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdh
c1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihTdG9yYWdl
QWNjZXNzV2FzR3JhbnRlZDo6Tm8sIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bjo6Tm8pOyB9
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lSWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZUlkZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NWQ0OTY3YWIxYjQ1NDIzNThlODY3MjQw
NWNiNjZiN2Q3OGQ3MjI2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZUlkZW50aWZpZXIuaApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2VudW0gRnJhbWVJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBGcmFtZUlkZW50
aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPEZyYW1lSWRlbnRpZmllclR5cGU+OworCitpbmxpbmUg
RnJhbWVJZGVudGlmaWVyIGZyYW1lSWRlbnRpZmllckZyb21JRCh1aW50NjRfdCBmcmFtZUlEKQor
eworICAgIHJldHVybiBtYWtlT2JqZWN0SWRlbnRpZmllcjxGcmFtZUlkZW50aWZpZXJUeXBlPihm
cmFtZUlEKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9HbG9iYWxG
cmFtZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvR2xvYmFsRnJhbWVJZGVudGlm
aWVyLmgKaW5kZXggMGQ3YjNkYmY3MmY4MWU0ZmQ2MmE3M2ZlZDI1ODFjZWFlZTE2N2I0YS4uNzA5
MzQ2N2IxMmY4NTY2MWE4ZjdmYWRmMDJiMzU3Nzk5NGViNmEwMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9HbG9iYWxGcmFtZUlkZW50aWZpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0dsb2JhbEZyYW1lSWRlbnRpZmllci5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFn
bWEgb25jZQogCisjaW5jbHVkZSAiRnJhbWVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUlk
ZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KIApAQCAtMzMsNyArMzQsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBGcmFtZSBpZGVudGlmaWVyIHRoYXQgaXMgdW5pcXVl
IGFjcm9zcyBhbGwgV2ViQ29udGVudCBwcm9jZXNzZXMuCiBzdHJ1Y3QgR2xvYmFsRnJhbWVJZGVu
dGlmaWVyIHsKICAgICBQYWdlSWRlbnRpZmllciBwYWdlSUQ7Ci0gICAgdWludDY0X3QgZnJhbWVJ
RDsKKyAgICBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRDsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8R2xvYmFsRnJhbWVJZGVudGlmaWVyPiBkZWNvZGUoRGVj
b2RlciYpOwpAQCAtNTMsNyArNTQsNyBAQCBPcHRpb25hbDxHbG9iYWxGcmFtZUlkZW50aWZpZXI+
IEdsb2JhbEZyYW1lSWRlbnRpZmllcjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgaWYg
KCFwYWdlSUQpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLSAgICBPcHRpb25hbDx1
aW50NjRfdD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQ7
CiAgICAgZGVjb2RlciA+PiBmcmFtZUlEOwogICAgIGlmICghZnJhbWVJRCkKICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkuaAppbmRleCBhMzMw
MTlmOWQ1YjJhZWQyNjA3NDY2OTQwMWZkNzMyMmYwMmQ1MTU3Li5jNjg2YzgxYjUzNzFhNjdjZGQ4
YWUwOWI0YTEwMTMyYTUyZDViMmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL0Nvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9Db29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eS5oCkBA
IC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkNvb2tpZUphci5oIgor
I2luY2x1ZGUgIkZyYW1lSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgi
CiAjaW5jbHVkZSAiU2FtZVNpdGVJbmZvLmgiCiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgpA
QCAtMzgsNyArMzksNyBAQCBzdHJ1Y3QgQ29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkgewog
ICAgIFVSTCBmaXJzdFBhcnR5OwogICAgIFNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm87CiAgICAg
VVJMIHVybDsKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRDsKKyAgICBPcHRpb25hbDxG
cmFtZUlkZW50aWZpZXI+IGZyYW1lSUQ7CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBh
Z2VJRDsKICAgICBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcyB7IElu
Y2x1ZGVTZWN1cmVDb29raWVzOjpObyB9OwogCkBAIC03OCw4ICs3OSw5IEBAIE9wdGlvbmFsPENv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5PiBDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94
eTo6ZGVjb2RlKERlCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh1cmwpKQogICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQ7Ci0gICAg
aWYgKCFkZWNvZGVyLmRlY29kZShmcmFtZUlEKSkKKyAgICBPcHRpb25hbDxPcHRpb25hbDxGcmFt
ZUlkZW50aWZpZXI+PiBmcmFtZUlEOworICAgIGRlY29kZXIgPj4gZnJhbWVJRDsKKyAgICBpZiAo
IWZyYW1lSUQpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKICAgICBPcHRpb25hbDxP
cHRpb25hbDxQYWdlSWRlbnRpZmllcj4+IHBhZ2VJRDsKQEAgLTkxLDcgKzkzLDcgQEAgT3B0aW9u
YWw8Q29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHk+IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVs
ZFByb3h5OjpkZWNvZGUoRGUKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluY2x1ZGVTZWN1cmVD
b29raWVzKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIHJldHVybiBDb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eSB7ICpzZXNzaW9uSUQsIFdURk1vdmUoZmlyc3RQYXJ0
eSksIFdURk1vdmUoc2FtZVNpdGVJbmZvKSwgV1RGTW92ZSh1cmwpLCBmcmFtZUlELCAqcGFnZUlE
LCBpbmNsdWRlU2VjdXJlQ29va2llcyB9OworICAgIHJldHVybiBDb29raWVSZXF1ZXN0SGVhZGVy
RmllbGRQcm94eSB7ICpzZXNzaW9uSUQsIFdURk1vdmUoZmlyc3RQYXJ0eSksIFdURk1vdmUoc2Ft
ZVNpdGVJbmZvKSwgV1RGTW92ZSh1cmwpLCAqZnJhbWVJRCwgKnBhZ2VJRCwgaW5jbHVkZVNlY3Vy
ZUNvb2tpZXMgfTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3Bw
CmluZGV4IGU3MTkwN2Q5NzdkZjU5MjczZjQ5MTljNTY1MWFmMTczNmZiMWE2N2YuLmY0YjA5YThk
NWUxYWQ5NDg0ZWQ3YjMyZWI1NmUzOTZmNzVkYWM5MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAKQEAg
LTc5LDEyICs3OSwxMiBAQCBib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2hvdWxkQmxvY2tU
aGlyZFBhcnR5Q29va2llc0J1dEtlZXBGaXJzdFBhcnR5Q29va2llcwogICAgIHJldHVybiBtX3Jl
Z2lzdHJhYmxlRG9tYWluc1RvQmxvY2tCdXRLZWVwQ29va2llc0Zvci5jb250YWlucyhyZWdpc3Ry
YWJsZURvbWFpbik7CiB9CiAKLWJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzaG91bGRCbG9j
a0Nvb2tpZXMoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCkgY29uc3QKK2Jvb2wg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlv
bmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHNob3VsZEJs
b2NrQ29va2llcyhyZXF1ZXN0LmZpcnN0UGFydHlGb3JDb29raWVzKCksIHJlcXVlc3QudXJsKCks
IGZyYW1lSUQsIHBhZ2VJRCk7CiB9CiAgICAgCi1ib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
c2hvdWxkQmxvY2tDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eUZvckNvb2tpZXMsIGNvbnN0
IFVSTCYgcmVzb3VyY2UsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdl
SWRlbnRpZmllcj4gcGFnZUlEKSBjb25zdAorYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnNo
b3VsZEJsb2NrQ29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHlGb3JDb29raWVzLCBjb25zdCBV
UkwmIHJlc291cmNlLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFs
PFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQpIGNvbnN0CiB7CiAgICAgUmVnaXN0cmFibGVEb21haW4g
Zmlyc3RQYXJ0eURvbWFpbiB7IGZpcnN0UGFydHlGb3JDb29raWVzIH07CiAgICAgaWYgKGZpcnN0
UGFydHlEb21haW4uaXNFbXB0eSgpKQpAQCAtMTM2LDcgKzEzNiw3IEBAIHZvaWQgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpyZW1vdmVQcmV2YWxlbnREb21haW5zKGNvbnN0IFZlY3RvcjxSZWdpc3Ry
YWJsZURvbWFpCiAgICAgfQogfQogCi1ib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6aGFzU3Rv
cmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25hbDx1aW50NjRfdD4g
ZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKSBjb25zdAorYm9vbCBOZXR3b3JrU3RvcmFn
ZVNlc3Npb246Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291
cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0
aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQpIGNv
bnN0CiB7CiAgICAgaWYgKGZyYW1lSUQpIHsKICAgICAgICAgYXV0byBmcmFtZXNHcmFudGVkSXRl
cmF0b3IgPSBtX2ZyYW1lc0dyYW50ZWRTdG9yYWdlQWNjZXNzLmZpbmQocGFnZUlEKTsKQEAgLTE2
OSw3ICsxNjksNyBAQCBWZWN0b3I8U3RyaW5nPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldEFs
bFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKCkgY29uc3QKICAgICByZXR1cm4gZW50cmllczsKIH0KICAg
ICAKLXZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIFBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCkKK3ZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpncmFudFN0b3JhZ2VB
Y2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVy
PiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQpCiB7CiAgICAgaWYgKCFmcmFtZUlEKSB7
CiAgICAgICAgIGlmIChmaXJzdFBhcnR5RG9tYWluLmlzRW1wdHkoKSkKQEAgLTE5MSw3ICsxOTEs
NyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZQogCiAgICAgYXV0byBwYWdlc0dyYW50ZWRJdGVy
YXRvciA9IG1fZnJhbWVzR3JhbnRlZFN0b3JhZ2VBY2Nlc3MuZmluZChwYWdlSUQpOwogICAgIGlm
IChwYWdlc0dyYW50ZWRJdGVyYXRvciA9PSBtX2ZyYW1lc0dyYW50ZWRTdG9yYWdlQWNjZXNzLmVu
ZCgpKSB7Ci0gICAgICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZ2lzdHJhYmxlRG9tYWluLCBEZWZh
dWx0SGFzaDx1aW50NjRfdD46Okhhc2gsIFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFp
dHM8dWludDY0X3Q+PiBlbnRyeTsKKyAgICAgICAgSGFzaE1hcDxGcmFtZUlkZW50aWZpZXIsIFJl
Z2lzdHJhYmxlRG9tYWluPiBlbnRyeTsKICAgICAgICAgZW50cnkuYWRkKGZyYW1lSUQudmFsdWUo
KSwgcmVzb3VyY2VEb21haW4pOwogICAgICAgICBtX2ZyYW1lc0dyYW50ZWRTdG9yYWdlQWNjZXNz
LmFkZChwYWdlSUQsIGVudHJ5KTsKICAgICB9IGVsc2UgewpAQCAtMjAzLDcgKzIwMyw3IEBAIHZv
aWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIHJlc291cmNlCiAgICAgfQogfQogCi12b2lkIE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCkKK3ZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpyZW1vdmVTdG9y
YWdlQWNjZXNzRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCkKIHsKICAgICBhdXRvIGl0ZXJhdGlvbiA9IG1fZnJhbWVzR3JhbnRlZFN0b3JhZ2VB
Y2Nlc3MuZmluZChwYWdlSUQpOwogICAgIGlmIChpdGVyYXRpb24gPT0gbV9mcmFtZXNHcmFudGVk
U3RvcmFnZUFjY2Vzcy5lbmQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCmluZGV4IGM4ZWY4ZjdiYWI3NWZkOTk3
OWIyODJmNWY1YTg3MDJlZjgwYzg4YjMuLjhkZGY1NWI0YTFmY2E1YzU0YTQ5OTBhM2EzN2MwNTky
NjY4ZmUwMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNl
CiAKICNpbmNsdWRlICJDcmVkZW50aWFsU3RvcmFnZS5oIgorI2luY2x1ZGUgIkZyYW1lSWRlbnRp
Zmllci5oIgogI2luY2x1ZGUgIlBhZ2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUmVnaXN0cmFi
bGVEb21haW4uaCIKICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CkBAIC0xMjMsNyArMTI0LDcg
QEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY29va2llc0VuYWJsZWQoKSBjb25z
dDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENvb2tpZShjb25zdCBDb29raWUmKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENvb2tpZXMoY29uc3QgVmVjdG9yPENvb2tpZT4mLCBj
b25zdCBVUkwmLCBjb25zdCBVUkwmIG1haW5Eb2N1bWVudFVSTCk7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRp
b25hbDxQYWdlSWRlbnRpZmllcj4sIGNvbnN0IFN0cmluZyYpIGNvbnN0OworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+LCBP
cHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgZGVsZXRlQ29va2llKGNvbnN0IENvb2tpZSYpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgZGVsZXRlQ29va2llKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYpIGNvbnN0
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVsZXRlQWxsQ29va2llcygpOwpAQCAtMTMyLDI2
ICsxMzMsMjYgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVsZXRlQ29va2ll
c0Zvckhvc3RuYW1lcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgY29va2llSG9zdE5hbWVzLCBJbmNs
dWRlSHR0cE9ubHlDb29raWVzKTsKICAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8Q29va2llPiBn
ZXRBbGxDb29raWVzKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPENvb2tpZT4gZ2V0Q29v
a2llcyhjb25zdCBVUkwmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIGdldFJhd0Nvb2tpZXMo
Y29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBP
cHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBWZWN0
b3I8Q29va2llPiYpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgZ2V0UmF3Q29va2ll
cyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYs
IE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgVmVj
dG9yPENvb2tpZT4mKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZsdXNoQ29va2ll
U3RvcmUoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdldEhvc3RuYW1lc1dpdGhDb29raWVz
KEhhc2hTZXQ8U3RyaW5nPiYgaG9zdG5hbWVzKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6OnBh
aXI8U3RyaW5nLCBib29sPiBjb29raWVzRm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29u
c3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQs
IE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0Owot
ICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZv
JiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQ
T1JUIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZXNGb3JET00oY29uc3QgVVJMJiBmaXJz
dFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25hbDxGcmFtZUlk
ZW50aWZpZXI+LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIEluY2x1ZGVTZWN1cmVDb29raWVz
KSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBjb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNh
bWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4sIE9wdGlv
bmFsPFBhZ2VJZGVudGlmaWVyPiwgSW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0OwogICAgIFdF
QkNPUkVfRVhQT1JUIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlKGNvbnN0IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5JikgY29uc3Q7CiAK
ICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIFdFQkNPUkVfRVhQT1JU
IGJvb2wgc2hvdWxkQmxvY2tDb29raWVzKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIE9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4pIGNvbnN0OwotICAg
IFdFQkNPUkVfRVhQT1JUIGJvb2wgc2hvdWxkQmxvY2tDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQ
YXJ0eUZvckNvb2tpZXMsIGNvbnN0IFVSTCYgcmVzb3VyY2UsIE9wdGlvbmFsPHVpbnQ2NF90PiBm
cmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4pIGNvbnN0OworICAgIFdFQkNPUkVfRVhQ
T1JUIGJvb2wgc2hvdWxkQmxvY2tDb29raWVzKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIE9wdGlv
bmFsPEZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPikgY29uc3Q7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzaG91bGRCbG9ja0Nvb2tpZXMoY29uc3QgVVJMJiBmaXJz
dFBhcnR5Rm9yQ29va2llcywgY29uc3QgVVJMJiByZXNvdXJjZSwgT3B0aW9uYWw8RnJhbWVJZGVu
dGlmaWVyPiwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+KSBjb25zdDsKICAgICBXRUJDT1JFX0VY
UE9SVCBib29sIHNob3VsZEJsb2NrVGhpcmRQYXJ0eUNvb2tpZXMoY29uc3QgUmVnaXN0cmFibGVE
b21haW4mKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNob3VsZEJsb2NrVGhpcmRQ
YXJ0eUNvb2tpZXNCdXRLZWVwRmlyc3RQYXJ0eUNvb2tpZXNGb3IoY29uc3QgUmVnaXN0cmFibGVE
b21haW4mKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFByZXZhbGVudERvbWFp
bnNUb0Jsb2NrQW5kRGVsZXRlQ29va2llc0Zvcihjb25zdCBWZWN0b3I8UmVnaXN0cmFibGVEb21h
aW4+Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRQcmV2YWxlbnREb21haW5zVG9CbG9j
a0J1dEtlZXBDb29raWVzRm9yKGNvbnN0IFZlY3RvcjxSZWdpc3RyYWJsZURvbWFpbj4mKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKE9wdGlv
bmFsPFNlY29uZHM+KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVByZXZhbGVudERv
bWFpbnMoY29uc3QgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiYgZG9tYWlucyk7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgYm9vbCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21h
aW4sIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBQYWdlSWRlbnRpZmllcikgY29uc3Q7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFy
dHlEb21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4sIFBhZ2VJZGVudGlmaWVyKSBjb25z
dDsKICAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8U3RyaW5nPiBnZXRBbGxTdG9yYWdlQWNjZXNz
RW50cmllcygpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZ3JhbnRTdG9yYWdlQWNj
ZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIGZpcnN0UGFydHlEb21haW4sIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlE
LCBQYWdlSWRlbnRpZmllcik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVTdG9yYWdl
QWNjZXNzRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIpOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFydHlE
b21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4sIFBhZ2VJZGVudGlmaWVyKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFtZShGcmFtZUlkZW50
aWZpZXIsIFBhZ2VJZGVudGlmaWVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyUGFn
ZVNwZWNpZmljRGF0YUZvclJlc291cmNlTG9hZFN0YXRpc3RpY3MoUGFnZUlkZW50aWZpZXIpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlQWxsU3RvcmFnZUFjY2VzcygpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMo
U2Vjb25kcyk7CkBAIC0xODUsNyArMTg2LDcgQEAgcHJpdmF0ZToKICAgICBPcHRpb25hbDxTZWNv
bmRzPiBjbGllbnRTaWRlQ29va2llQ2FwKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBh
cnR5LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4pIGNvbnN0OwogICAgIEhhc2hTZXQ8UmVnaXN0
cmFibGVEb21haW4+IG1fcmVnaXN0cmFibGVEb21haW5zVG9CbG9ja0FuZERlbGV0ZUNvb2tpZXNG
b3I7CiAgICAgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4gbV9yZWdpc3RyYWJsZURvbWFpbnNU
b0Jsb2NrQnV0S2VlcENvb2tpZXNGb3I7Ci0gICAgSGFzaE1hcDxQYWdlSWRlbnRpZmllciwgSGFz
aE1hcDx1aW50NjRfdCwgUmVnaXN0cmFibGVEb21haW4sIERlZmF1bHRIYXNoPHVpbnQ2NF90Pjo6
SGFzaCwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czx1aW50NjRfdD4+PiBtX2Zy
YW1lc0dyYW50ZWRTdG9yYWdlQWNjZXNzOworICAgIEhhc2hNYXA8UGFnZUlkZW50aWZpZXIsIEhh
c2hNYXA8RnJhbWVJZGVudGlmaWVyLCBSZWdpc3RyYWJsZURvbWFpbj4+IG1fZnJhbWVzR3JhbnRl
ZFN0b3JhZ2VBY2Nlc3M7CiAgICAgSGFzaE1hcDxQYWdlSWRlbnRpZmllciwgSGFzaE1hcDxSZWdp
c3RyYWJsZURvbWFpbiwgUmVnaXN0cmFibGVEb21haW4+PiBtX3BhZ2VzR3JhbnRlZFN0b3JhZ2VB
Y2Nlc3M7CiAgICAgT3B0aW9uYWw8U2Vjb25kcz4gbV9jYWNoZU1heEFnZUNhcEZvclByZXZhbGVu
dFJlc291cmNlcyB7IH07CiAgICAgT3B0aW9uYWw8U2Vjb25kcz4gbV9hZ2VDYXBGb3JDbGllbnRT
aWRlQ29va2llcyB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1NvY2tldFN0cmVhbUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1NvY2tldFN0cmVhbUhhbmRsZS5jcHAKaW5kZXggZGJhMGYxM2Y0NzlhMzMyNmJlODVkNjY5
MzllNTBjNjNjMTNiNjFhMC4uYjAzZjJkMjE4ODY1MTRjMjhlYjA5Mzc0ODFiYzBhOTM1M2QwY2Q2
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJl
YW1IYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0
U3RyZWFtSGFuZGxlLmNwcApAQCAtNjEsNyArNjEsNyBAQCB2b2lkIFNvY2tldFN0cmVhbUhhbmRs
ZTo6c2VuZEhhbmRzaGFrZShDU3RyaW5nJiYgaGFuZHNoYWtlLCBPcHRpb25hbDxDb29raWVSZXF1
ZQogewogICAgIGlmIChtX3N0YXRlID09IENvbm5lY3RpbmcgfHwgbV9zdGF0ZSA9PSBDbG9zaW5n
KQogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoZmFsc2UsIGZhbHNlKTsKLSAgICBw
bGF0Zm9ybVNlbmRIYW5kc2hha2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oaGFu
ZHNoYWtlLmRhdGEoKSksIGhhbmRzaGFrZS5sZW5ndGgoKSwgaGVhZGVyRmllbGRQcm94eSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHBsYXRmb3JtU2VuZEhhbmRzaGFrZShyZWlu
dGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihoYW5kc2hha2UuZGF0YSgpKSwgaGFuZHNoYWtl
Lmxlbmd0aCgpLCBXVEZNb3ZlKGhlYWRlckZpZWxkUHJveHkpLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7CiB9CiAKIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxlOjpjbG9zZSgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vz
c2lvbkNGTmV0V2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXRXaW4uY3BwCmluZGV4IDMzMGFhNjA4NjYxNDBiMjRkOWI3
MDUyMzgzYTgxY2VjZjkwYjk5ZjYuLmViODFjMDUyZWJkYTcyZGEwNmRiZTdjZDI0OTRmNGQzMmFl
ZTBmZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXRXaW4uY3BwCkBAIC0xODks
NyArMTg5LDcgQEAgc3RhdGljIENGQXJyYXlSZWYgY3JlYXRlQ29va2llcyhDRkRpY3Rpb25hcnlS
ZWYgaGVhZGVyRmllbGRzLCBDRlVSTFJlZiB1cmwpCiAgICAgcmV0dXJuIHBhcnNlZENvb2tpZXM7
CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVzRnJvbURPTShjb25z
dCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBP
cHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJ
RCwgY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QKK3ZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpzZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRl
SW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQs
IE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGNvbnN0IFN0cmluZyYgdmFsdWUpIGNv
bnN0CiB7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwogICAgIFVOVVNFRF9QQVJBTShwYWdl
SUQpOwpAQCAtMjI1LDcgKzIyNSw3IEBAIHN0YXRpYyBib29sIGNvbnRhaW5zU2VjdXJlQ29va2ll
cyhDRkFycmF5UmVmIGNvb2tpZXMpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1zdGQ6OnBhaXI8
U3RyaW5nLCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNGb3JET00oY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQs
IEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAorc3RkOjpw
YWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVzRm9yRE9NKGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmws
IE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZp
ZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNv
bnN0CiB7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwogICAgIFVOVVNFRF9QQVJBTShwYWdl
SUQpOwpAQCAtMjQwLDcgKzI0MCw3IEBAIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFyCiAgICAgcmV0
dXJuIHsgY29va2llU3RyaW5nLCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzIH07CiB9CiAKLXN0ZDo6
cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llUmVxdWVzdEhl
YWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8m
LCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVD
b29raWVzKSBjb25zdAorc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50
aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVT
ZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdAogewogICAgIFVOVVNFRF9Q
QVJBTShmcmFtZUlEKTsKICAgICBVTlVTRURfUEFSQU0ocGFnZUlEKTsKQEAgLTI2NCw3ICsyNjQs
NyBAQCBib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0VuYWJsZWQoKSBjb25zdAog
ICAgIHJldHVybiBwb2xpY3kgPT0gQ0ZIVFRQQ29va2llU3RvcmFnZUFjY2VwdFBvbGljeU9ubHlG
cm9tTWFpbkRvY3VtZW50RG9tYWluIHx8IHBvbGljeSA9PSBDRkhUVFBDb29raWVTdG9yYWdlQWNj
ZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluIHx8IHBvbGljeSA9PSBD
RkhUVFBDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5QWx3YXlzOwogfQogCi1ib29sIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJ
RCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgVmVjdG9yPENvb2tpZT4mIHJhd0Nv
b2tpZXMpIGNvbnN0Citib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0UmF3Q29va2llcyhj
b25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYgdXJs
LCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlm
aWVyPiBwYWdlSUQsIFZlY3RvcjxDb29raWU+JiByYXdDb29raWVzKSBjb25zdAogewogICAgIFVO
VVNFRF9QQVJBTShmcmFtZUlEKTsKICAgICBVTlVTRURfUEFSQU0ocGFnZUlEKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05l
dHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tCmluZGV4IDg0YjczYjgzNDRiMGNhYjVhOTA0OGI0
ODVlZmIxNzZkNWQzNDA1ODEuLjg1ZjRjNjJlM2JmNzRjMGRlNTQzNWYyZjAwYmU5ODRkODJlYWVm
NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Npb25Db2NvYS5tbQpAQCAtMjk0LDcgKzI5
NCw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gZmlsdGVyQ29va2llcyhOU0FycmF5ICp1
bmZpbHRlcmVkQ29va2llcywgT3B0aW9uYWw8U2VjCiAgICAgcmV0dXJuIGZpbHRlcmVkQ29va2ll
czsKIH0KIAotc3RhdGljIE5TQXJyYXkgKmNvb2tpZXNGb3JVUkwoY29uc3QgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRl
SW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQpCitzdGF0aWMgTlNBcnJheSAq
Y29va2llc0ZvclVSTChjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0
IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBh
Z2VJZGVudGlmaWVyPiBwYWdlSUQpCiB7CiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykKICAgICBpZiAoc2Vzc2lvbi5zaG91bGRCbG9ja0Nvb2tpZXMoZmlyc3RQYXJ0eSwgdXJs
LCBmcmFtZUlELCBwYWdlSUQpKQpAQCAtMzA3LDcgKzMwNyw3IEBAIHN0YXRpYyBOU0FycmF5ICpj
b29raWVzRm9yVVJMKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3Qg
VVJMJiBmCiB9CiAKIGVudW0gSW5jbHVkZUhUVFBPbmx5T3JOb3QgeyBEb05vdEluY2x1ZGVIVFRQ
T25seSwgSW5jbHVkZUhUVFBPbmx5IH07Ci1zdGF0aWMgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4g
Y29va2llc0ZvclNlc3Npb24oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBj
b25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBj
b25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVIVFRQT25seU9yTm90IGluY2x1ZGVIVFRQT25seSwg
SW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpCitzdGF0aWMgc3RkOjpw
YWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvclNlc3Npb24oY29uc3QgTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5m
byYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVy
PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlSFRUUE9u
bHlPck5vdCBpbmNsdWRlSFRUUE9ubHksIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1
cmVDb29raWVzKQogewogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2
aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsKIApAQCAtMzYzLDEyICszNjMsMTIgQEAgc3Rh
dGljIHZvaWQgZGVsZXRlQWxsSFRUUENvb2tpZXMoQ0ZIVFRQQ29va2llU3RvcmFnZVJlZiBjb29r
aWVTdG9yYWdlKQogICAgIENGSFRUUENvb2tpZVN0b3JhZ2VEZWxldGVBbGxDb29raWVzKGNvb2tp
ZVN0b3JhZ2UpOwogfQogCi1zdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmNvb2tpZXNGb3JET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0
ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBm
cmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29v
a2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKK3N0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0
aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
cGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QK
IHsKICAgICByZXR1cm4gY29va2llc0ZvclNlc3Npb24oKnRoaXMsIGZpcnN0UGFydHksIHNhbWVT
aXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIERvTm90SW5jbHVkZUhUVFBPbmx5LCBpbmNs
dWRlU2VjdXJlQ29va2llcyk7CiB9CiAKLXN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1
cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4g
cGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QK
K3N0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llUmVx
dWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0
ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRp
Zmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNl
Y3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGNv
b2tpZXNGb3JTZXNzaW9uKCp0aGlzLCBmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJh
bWVJRCwgcGFnZUlELCBJbmNsdWRlSFRUUE9ubHksIGluY2x1ZGVTZWN1cmVDb29raWVzKTsKIH0K
QEAgLTM3OCw3ICszNzgsNyBAQCBzdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBOZXR3b3JrU3RvcmFn
ZVNlc3Npb246OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbgogICAgIHJldHVybiBj
b29raWVzRm9yU2Vzc2lvbigqdGhpcywgaGVhZGVyRmllbGRQcm94eS5maXJzdFBhcnR5LCBoZWFk
ZXJGaWVsZFByb3h5LnNhbWVTaXRlSW5mbywgaGVhZGVyRmllbGRQcm94eS51cmwsIGhlYWRlckZp
ZWxkUHJveHkuZnJhbWVJRCwgaGVhZGVyRmllbGRQcm94eS5wYWdlSUQsIEluY2x1ZGVIVFRQT25s
eSwgaGVhZGVyRmllbGRQcm94eS5pbmNsdWRlU2VjdXJlQ29va2llcyk7CiB9CiAKLXZvaWQgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVzRnJvbURPTShjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQs
IGNvbnN0IFN0cmluZyYgY29va2llU3RyKSBjb25zdAordm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Np
b246OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNp
dGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50
aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGNvbnN0IFN0
cmluZyYgY29va2llU3RyKSBjb25zdAogewogICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdl
KFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsKIApAQCAtNDQzLDcgKzQ0
Myw3IEBAIGJvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVzRW5hYmxlZCgpIGNvbnN0
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0
UmF3Q29va2llcyhjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2Ft
ZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9w
dGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFZlY3RvcjxDb29raWU+JiByYXdDb29raWVz
KSBjb25zdAorYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldFJhd0Nvb2tpZXMoY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3Qg
VVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFn
ZUlkZW50aWZpZXI+IHBhZ2VJRCwgVmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0CiB7
CiAgICAgcmF3Q29va2llcy5jbGVhcigpOwogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9O
UzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29r
aWVKYXJDdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29r
aWVKYXJDdXJsLmNwcAppbmRleCAzOTRjMzQ2MjY2NDlkNWRlYTg2OWUwOTViZTBkOWZhZTdiMWE1
ZWNiLi41ZWNiYTY2ZWY5NDk4NGViZmY1ZTNmZjAzNDM3NWFiYjY4Y2E3MmZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3VybC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwu
Y3BwCkBAIC01OSw3ICs1OSw3IEBAIHN0YXRpYyBTdHJpbmcgY29va2llc0ZvclNlc3Npb24oY29u
c3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmCiAgICAgcmV0dXJu
IGNvb2tpZXMudG9TdHJpbmcoKTsKIH0KIAotdm9pZCBDb29raWVKYXJDdXJsOjpzZXRDb29raWVz
RnJvbURPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIGNvbnN0IFN0cmlu
ZyYgdmFsdWUpIGNvbnN0Cit2b2lkIENvb2tpZUphckN1cmw6OnNldENvb2tpZXNGcm9tRE9NKGNv
bnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVu
dGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIGNvbnN0IFN0cmluZyYg
dmFsdWUpIGNvbnN0CiB7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwogCkBAIC03Myw3ICs3
Myw3IEBAIHZvaWQgQ29va2llSmFyQ3VybDo6c2V0Q29va2llc0Zyb21IVFRQUmVzcG9uc2UoY29u
c3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzCiAgICAgY29va2llSmFyREIuc2V0Q29va2ll
KGZpcnN0UGFydHksIHVybCwgdmFsdWUsIENvb2tpZUphckRCOjpTb3VyY2U6Ok5ldHdvcmspOwog
fQogCi1zdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBDb29raWVKYXJDdXJsOjpjb29raWVzRm9yRE9N
KGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0
X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1
cmVDb29raWVzKSBjb25zdAorc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gQ29va2llSmFyQ3VybDo6
Y29va2llc0ZvckRPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9w
dGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+
IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0CiB7CiAgICAgVU5VU0VEX1BBUkFN
KGZyYW1lSUQpOwogICAgIFVOVVNFRF9QQVJBTShwYWdlSUQpOwpAQCAtODIsNyArODIsNyBAQCBz
dGQ6OnBhaXI8U3RyaW5nLCBib29sPiBDb29raWVKYXJDdXJsOjpjb29raWVzRm9yRE9NKGNvbnN0
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbgogICAgIHJldHVybiB7IGNvb2tpZXNGb3JTZXNzaW9uKHNl
c3Npb24sIGZpcnN0UGFydHksIHVybCwgZmFsc2UpLCBmYWxzZSB9OwogfQogCi1zdGQ6OnBhaXI8
U3RyaW5nLCBib29sPiBDb29raWVKYXJDdXJsOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1
ZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQ
YXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2
NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2Vj
dXJlQ29va2llcykgY29uc3QKK3N0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IENvb2tpZUphckN1cmw6
OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lv
biYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBj
b25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25h
bDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKIHsK
ICAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CiAgICAgVU5VU0VEX1BBUkFNKHBhZ2VJRCk7CkBA
IC0xMTIsNyArMTEyLDcgQEAgYm9vbCBDb29raWVKYXJDdXJsOjpjb29raWVzRW5hYmxlZChjb25z
dCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24pIGNvbnN0CiAgICAgcmV0dXJuIHNlc3Np
b24uY29va2llRGF0YWJhc2UoKS5pc0VuYWJsZWQoKTsKIH0KIAotYm9vbCBDb29raWVKYXJDdXJs
OjpnZXRSYXdDb29raWVzKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29u
c3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwg
T3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdl
SUQsIFZlY3RvcjxDb29raWU+JiByYXdDb29raWVzKSBjb25zdAorYm9vbCBDb29raWVKYXJDdXJs
OjpnZXRSYXdDb29raWVzKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29u
c3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwg
T3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmll
cj4gcGFnZUlELCBWZWN0b3I8Q29va2llPiYgcmF3Q29va2llcykgY29uc3QKIHsKICAgICBVTlVT
RURfUEFSQU0oZnJhbWVJRCk7CiAgICAgVU5VU0VEX1BBUkFNKHBhZ2VJRCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3VybC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckN1cmwuaAppbmRl
eCAyNGEwNWEyMjdhZTA2YWJhMTE0MzE1MmE4ZmFjODQ4MjllMDFmNDEwLi5lNjJiYzRhMDdlODJl
M2VjZjdjZjJmNjhhNDFlNGEyYWRhNzBmYjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3VybC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJDdXJsLmgKQEAgLTI0LDYgKzI0LDcgQEAK
IAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJGcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRl
ICJQYWdlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hTZXQuaD4KQEAgLTQyLDE1ICs0MywxNSBAQCBlbnVtIGNsYXNzIENvb2tpZUFjY2Vw
dFBvbGljeTsKIAogY2xhc3MgQ29va2llSmFyQ3VybCB7CiBwdWJsaWM6Ci0gICAgc3RkOjpwYWly
PFN0cmluZywgYm9vbD4gY29va2llc0ZvckRPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24m
LCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYs
IE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4sIElu
Y2x1ZGVTZWN1cmVDb29raWVzKSBjb25zdDsKLSAgICB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNv
bnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9w
dGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJikgY29uc3Q7CisgICAgc3RkOjpw
YWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvckRPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Np
b24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVS
TCYsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+LCBJbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3Q7CisgICAgdm9pZCBzZXRDb29raWVz
RnJvbURPTShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPEZyYW1lSWRlbnRp
Zmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBjb25zdCBTdHJpbmcmKSBj
b25zdDsKICAgICB2b2lkIHNldENvb2tpZXNGcm9tSFRUUFJlc3BvbnNlKGNvbnN0IE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiwgY29uc3Qg
U3RyaW5nJikgY29uc3Q7CiAgICAgdm9pZCBzZXRDb29raWVBY2NlcHRQb2xpY3koY29uc3QgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uJiwgQ29va2llQWNjZXB0UG9saWN5KSBjb25zdDsKICAgICBDb29r
aWVBY2NlcHRQb2xpY3kgY29va2llQWNjZXB0UG9saWN5KGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiYpIGNvbnN0OwogICAgIGJvb2wgY29va2llc0VuYWJsZWQoY29uc3QgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uJikgY29uc3Q7Ci0gICAgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llUmVx
dWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+LCBJbmNsdWRlU2Vj
dXJlQ29va2llcykgY29uc3Q7CisgICAgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llUmVx
dWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3Qg
VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmLCBPcHRpb25h
bDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgSW5j
bHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0OwogICAgIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYs
IGNvbnN0IENvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5JikgY29uc3Q7Ci0gICAgYm9vbCBn
ZXRSYXdDb29raWVzKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0
X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiwgVmVjdG9yPENvb2tpZT4mKSBj
b25zdDsKKyAgICBib29sIGdldFJhd0Nvb2tpZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
JiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwm
LCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlm
aWVyPiwgVmVjdG9yPENvb2tpZT4mKSBjb25zdDsKICAgICB2b2lkIGRlbGV0ZUNvb2tpZShjb25z
dCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmKSBjb25z
dDsKICAgICB2b2lkIGdldEhvc3RuYW1lc1dpdGhDb29raWVzKGNvbnN0IE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiYsIEhhc2hTZXQ8U3RyaW5nPiYgaG9zdG5hbWVzKSBjb25zdDsKICAgICB2b2lkIGRl
bGV0ZUNvb2tpZXNGb3JIb3N0bmFtZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29u
c3QgVmVjdG9yPFN0cmluZz4mIGNvb2tpZUhvc3ROYW1lcykgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9u
U291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uU291cC5jcHAKaW5kZXggZTRjOGIwZjEzZTZkMDg5YTU4OTJhYTdhZTBhOWI4
MjE1ODViYjlhNC4uZTk2MWMyODgzYjg2MzAxMDVkYTdkNzgwN2YzZmJiZTI2MWEyMDYxMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9y
YWdlU2Vzc2lvblNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcApAQCAtMjYwLDcgKzI2MCw3IEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBodHRwT25seUNvb2tpZUV4aXN0cyhjb25zdCBHU0xpc3QqIGNvb2tp
ZXMsIGNvbnN0IGdjaGFyKiBuYW1lCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5
LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+
IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGNvbnN0IFN0cmluZyYg
dmFsdWUpIGNvbnN0Cit2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llc0Zyb21E
T00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBjb25zdCBVUkwm
IHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRl
bnRpZmllcj4gcGFnZUlELCBjb25zdCBTdHJpbmcmIHZhbHVlKSBjb25zdAogewogICAgIFVOVVNF
RF9QQVJBTShmcmFtZUlEKTsKICAgICBVTlVTRURfUEFSQU0ocGFnZUlEKTsKQEAgLTQxMyw3ICs0
MTMsNyBAQCBWZWN0b3I8Q29va2llPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldENvb2tpZXMo
Y29uc3QgVVJMJiB1cmwpCiAgICAgcmV0dXJuIGNvb2tpZXM7CiB9CiAKLWJvb2wgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3Qg
U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlE
LCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBWZWN0b3I8Q29va2llPiYgcmF3Q29v
a2llcykgY29uc3QKK2Jvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRSYXdDb29raWVzKGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmws
IE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZp
ZXI+IHBhZ2VJRCwgVmVjdG9yPENvb2tpZT4mIHJhd0Nvb2tpZXMpIGNvbnN0CiB7CiAgICAgVU5V
U0VEX1BBUkFNKGZpcnN0UGFydHkpOwogICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKQEAgLTQ4
Myw3ICs0ODMsNyBAQCBzdGF0aWMgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvclNl
c3Npb24oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZQogICAgIHJldHVybiB7IFN0cmlu
Zzo6ZnJvbVVURjgoY29va2llSGVhZGVyLmdldCgpKSwgZGlkQWNjZXNzU2VjdXJlQ29va2llcyB9
OwogfQogCi1zdGQ6OnBhaXI8U3RyaW5nLCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNv
b2tpZXNGb3JET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mLCBj
b25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJ
ZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29r
aWVzKSBjb25zdAorc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gTmV0d29ya1N0b3JhZ2VTZXNzaW9u
Ojpjb29raWVzRm9yRE9NKGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZv
JiwgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0
aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVk
ZVNlY3VyZUNvb2tpZXMpIGNvbnN0CiB7CiAgICAgVU5VU0VEX1BBUkFNKGZpcnN0UGFydHkpOwog
ICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKQEAgLTQ5MSw3ICs0OTEsNyBAQCBzdGQ6OnBhaXI8
U3RyaW5nLCBib29sPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZXNGb3JET00oY29uc3Qg
VVJMJiBmaXJzdFBhcgogICAgIHJldHVybiBjb29raWVzRm9yU2Vzc2lvbigqdGhpcywgdXJsLCBm
YWxzZSwgaW5jbHVkZVNlY3VyZUNvb2tpZXMpOwogfQogCi1zdGQ6OnBhaXI8U3RyaW5nLCBib29s
PiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiB1cmws
IE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFn
ZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKK3N0
ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y29va2llUmVxdWVz
dEhlYWRlckZpZWxkVmFsdWUoY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUlu
Zm8mLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBP
cHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNs
dWRlU2VjdXJlQ29va2llcykgY29uc3QKIHsKICAgICBVTlVTRURfUEFSQU0oZmlyc3RQYXJ0eSk7
CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKaW5kZXggNjg3ZDBiMDQ2MWFmZGU3YzA3
Mjk4YzZjOWVmZmQyNjE5NGJmNDdhYy4uNzYzYjQ3NTllNDMzZjg3MTMwYjM5NDAwNjIzNDBiMjY4
NDhlYThhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lm
aWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmUuY3BwCkBAIC03MTYsNyArNzE2LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGF0YWJhc2VTdG9yZTo6c3luY1N0b3JhZ2VJbW1lZGlhdGVseSgpCiAgICAgbV9kYXRh
YmFzZS5ydW5WYWN1dW1Db21tYW5kKCk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFiYXNlU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mIHN1
YkZyYW1lRG9tYWluLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIE9wdGlv
bmFsPEZyYW1lSUQ+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVE
b21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21h
aW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFn
ZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC03NDMsNyArNzQzLDcgQEAg
dm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6aGFzU3RvcmFnZUFjY2Vz
cyhjb25zdCBTdWJGcmFtZURvbWFpbiYKICAgICB9KTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21h
aW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJh
bWVJRCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJG
cmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9t
YWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC04MDQsNyArODA0
LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6cmVxdWVzdFN0
b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihEb21haW4KICAgICBncmFudFN0b3JhZ2VBY2Nlc3NJbnRl
cm5hbChXVEZNb3ZlKGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcyksIFdURk1vdmUob3BlbmVy
RG9tYWluKSwgV1RGOjpudWxsb3B0LCBvcGVuZXJQYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRX
YXNTaG93bjo6Tm8sIFtdKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKSB7IH0pOwogfQogCi12b2lk
IFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3Mo
U3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21haW4mJiB0b3BGcmFt
ZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBTdG9yYWdl
QWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKFN1
YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVE
b21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIFN0
b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTgxOCw3ICs4MTgsNyBAQCB2
b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nl
c3MoU3ViRnJhbWVEb21haW4mJiBzdQogICAgIGdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFdU
Rk1vdmUoc3ViRnJhbWVEb21haW4pLCBXVEZNb3ZlKHRvcEZyYW1lRG9tYWluKSwgZnJhbWVJRCwg
cGFnZUlELCBwcm9tcHRXYXNTaG93biwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQog
Ci12b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpncmFudFN0b3JhZ2VB
Y2Nlc3NJbnRlcm5hbChTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURv
bWFpbiYmIHRvcEZyYW1lRG9tYWluLCBPcHRpb25hbDxGcmFtZUlEPiBmcmFtZUlELCBQYWdlSWRl
bnRpZmllciBwYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93
bk5vd09yRWFybGllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3Jh
bnRlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChTdWJGcmFtZURvbWFpbiYm
IHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBPcHRpb25h
bDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgU3RvcmFn
ZUFjY2Vzc1Byb21wdFdhc1Nob3duIHByb21wdFdhc1Nob3duTm93T3JFYXJsaWVyLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaAppbmRleCAzYzhkMmIx
ZjE2NTQ5M2M5M2NhNWQ4MmJjMDI3MmY5MTNiN2EwN2ZhLi5kMjU2YmUyMWNmZjdiMWY3MDU1NjQw
MzFhNTc1ZjVlNWQyMzMwZWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmUuaApAQCAtOTEsOSArOTEsOSBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIGNhbGN1bGF0ZUFuZFN1Ym1pdFRlbGVtZXRyeSgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAg
dm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJh
bWVEb21haW4mLCBPcHRpb25hbDxGcmFtZUlEPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVxdWVz
dFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgRnJhbWVJ
RCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFn
ZUFjY2Vzc1N0YXR1cyk+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNz
KFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIEZyYW1lSUQsIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKSBv
dmVycmlkZTsKKyAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4m
LCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
cj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9t
YWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1N0
YXR1cyk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzKFN1YkZyYW1l
RG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93
biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRl
ZCk+JiYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgTmF2
aWdhdGVkVG9Eb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0IE5hdmlnYXRlZEZy
b21Eb21haW4mLCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNNYWluRnJhbWUpIG92ZXJyaWRlOwog
ICAgIHZvaWQgbG9nVXNlckludGVyYWN0aW9uKGNvbnN0IFRvcEZyYW1lRG9tYWluJikgb3ZlcnJp
ZGU7CkBAIC0xNTMsNyArMTUzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFByZXZhbGVudFJl
c291cmNlKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgUmVzb3VyY2VMb2FkUHJldmFsZW5jZSk7
CiAgICAgdW5zaWduZWQgcmVjdXJzaXZlbHlGaW5kTm9uUHJldmFsZW50RG9tYWluc1RoYXRSZWRp
cmVjdGVkVG9UaGlzRG9tYWluKHVuc2lnbmVkIHByaW1hcnlEb21haW5JRCwgU3RkU2V0PHVuc2ln
bmVkPiYgbm9uUHJldmFsZW50UmVkaXJlY3Rpb25Tb3VyY2VzLCB1bnNpZ25lZCBudW1iZXJPZlJl
Y3Vyc2l2ZUNhbGxzKTsKICAgICB2b2lkIHNldERvbWFpbnNBc1ByZXZhbGVudChTdGRTZXQ8dW5z
aWduZWQ+JiYpOwotICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoU3ViRnJhbWVE
b21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgT3B0aW9uYWw8RnJhbWVJRD4sIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKTsK
KyAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFN1YkZyYW1lRG9tYWluJiYsIFRv
cEZyYW1lRG9tYWluJiYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQp
PiYmKTsKICAgICB2b2lkIG1hcmtBc1ByZXZhbGVudElmSGFzUmVkaXJlY3RlZFRvUHJldmFsZW50
KCk7CiAgICAgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiBlbnN1cmVQcmV2YWxlbnRSZXNvdXJj
ZXNGb3JEZWJ1Z01vZGUoKSBvdmVycmlkZTsKICAgICB2b2lkIHJlbW92ZURhdGFSZWNvcmRzKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3Jl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCmluZGV4IGUyMzlmY2M4MDNlOGQ3NDQ1NjEyMThk
NjcyMTdmNzFlZDQxYjE4N2YuLmY2ZWU5MmY5YjY4ZDMyZjA3ZTUyMTVkMzAzNTQ5OTUxNDRmN2E4
M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3Rv
cmUuY3BwCkBAIC0yMTEsNyArMjExLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVt
b3J5U3RvcmU6OnN5bmNTdG9yYWdlSW1tZWRpYXRlbHkoKQogICAgICAgICBtX3BlcnNpc3RlbnRT
dG9yYWdlLT5zY2hlZHVsZU9yV3JpdGVNZW1vcnlTdG9yZShSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
UGVyc2lzdGVudFN0b3JhZ2U6OkZvcmNlSW1tZWRpYXRlV3JpdGU6Olllcyk7CiB9CiAKLXZvaWQg
UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0
IFN1YkZyYW1lRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgVG9wRnJhbWVEb21haW4mIHRv
cEZyYW1lRG9tYWluLCBPcHRpb25hbDxGcmFtZUlEPiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBw
YWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
Cit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6aGFzU3RvcmFnZUFjY2Vz
cyhjb25zdCBTdWJGcmFtZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFRvcEZyYW1lRG9t
YWluJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKQEAg
LTIzNSw3ICsyMzUsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6
aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYgcwogICAgIH0pOwogfQogCi12
b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nl
c3MoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21haW4mJiB0b3BG
cmFtZURvbWFpbiwgRnJhbWVJRCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1N0YXR1cyk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6cmVxdWVzdFN0b3Jh
Z2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9wRnJhbWVEb21haW4m
JiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVzKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApA
QCAtMjg4LDcgKzI4OCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3Jl
OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyKERvbWFpbkluCiAgICAgZ3JhbnRTdG9y
YWdlQWNjZXNzSW50ZXJuYWwoV1RGTW92ZShkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MpLCBX
VEZNb3ZlKG9wZW5lckRvbWFpbiksIFdURjo6bnVsbG9wdCwgb3BlbmVyUGFnZUlELCBTdG9yYWdl
QWNjZXNzUHJvbXB0V2FzU2hvd246Ok5vLCBbXShTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCkgeyB9
KTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmU6OmdyYW50U3Rv
cmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBUb3BGcmFtZURvbWFp
biYmIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdl
SUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93biwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6Z3JhbnRTdG9yYWdl
QWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYg
dG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBw
YWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93biwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTMwMCw3ICsz
MDAsNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6Z3JhbnRTdG9y
YWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYgc3ViRgogICAgIGdyYW50U3RvcmFnZUFjY2Vzc0lu
dGVybmFsKFdURk1vdmUoc3ViRnJhbWVEb21haW4pLCBXVEZNb3ZlKHRvcEZyYW1lRG9tYWluKSwg
ZnJhbWVJRCwgcGFnZUlELCBwcm9tcHRXYXNTaG93biwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwogfQogCi12b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZTo6Z3JhbnRT
dG9yYWdlQWNjZXNzSW50ZXJuYWwoU3ViRnJhbWVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgVG9w
RnJhbWVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8RnJhbWVJRD4gZnJhbWVJRCwg
UGFnZUlkZW50aWZpZXIgcGFnZUlELCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0
V2FzU2hvd25Ob3dPckVhcmxpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vz
c1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWVtb3J5U3RvcmU6OmdyYW50U3RvcmFnZUFjY2Vzc0ludGVybmFsKFN1YkZyYW1lRG9t
YWluJiYgc3ViRnJhbWVEb21haW4sIFRvcEZyYW1lRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIE9w
dGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBT
dG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd25Ob3dPckVhcmxpZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc01lbW9yeVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgKaW5kZXggNWFmNjdh
MTZmMDYxNmRhOWZhMGMwOTMzMTVhY2JjMzVkYWE1YjExOS4uYTRhN2I4OGUyZGZiMDAzNDZiZGMy
NzFmZWI3ZTViMjRiYTgyMDk2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0
aXN0aWNzTWVtb3J5U3RvcmUuaApAQCAtOTcsOSArOTcsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IGNhbGN1bGF0ZUFuZFN1Ym1pdFRlbGVtZXRyeSgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdm9p
ZCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVE
b21haW4mLCBPcHRpb25hbDxGcmFtZUlEPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVxdWVzdFN0
b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgRnJhbWVJRCwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFj
Y2Vzc1N0YXR1cyk+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzKFN1
YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIEZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBj
b25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4s
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWlu
JiYsIFRvcEZyYW1lRG9tYWluJiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1N0YXR1
cyk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9t
YWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+
JiYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBsb2dGcmFtZU5hdmlnYXRpb24oY29uc3QgTmF2aWdh
dGVkVG9Eb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0IE5hdmlnYXRlZEZyb21E
b21haW4mLCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNNYWluRnJhbWUpIG92ZXJyaWRlOwogICAg
IHZvaWQgbG9nVXNlckludGVyYWN0aW9uKGNvbnN0IFRvcEZyYW1lRG9tYWluJikgb3ZlcnJpZGU7
CkBAIC0xMjMsNyArMTIzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGluY3JlbWVudFJlY29yZHNE
ZWxldGVkQ291bnRGb3JEb21haW5zKEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+JiYpIG92ZXJy
aWRlOwogICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3VyY2UoUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyYsIFJlc291cmNlTG9hZFByZXZhbGVuY2UpOwogICAgIHVuc2lnbmVkIHJlY3Vyc2l2ZWx5R2V0
QWxsRG9tYWluc1RoYXRIYXZlUmVkaXJlY3RlZFRvVGhpc0RvbWFpbihjb25zdCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzJiwgSGFzaFNldDxSZWRpcmVjdGVkVG9Eb21haW4+JiwgdW5zaWduZWQgbnVt
YmVyT2ZSZWN1cnNpdmVDYWxscykgY29uc3Q7Ci0gICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3NJ
bnRlcm5hbChTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBPcHRpb25hbDxGcmFt
ZUlEPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9t
cHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNz
V2FzR3JhbnRlZCk+JiYpOworICAgIHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoU3Vi
RnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nl
c3NQcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdl
QWNjZXNzV2FzR3JhbnRlZCk+JiYpOwogICAgIHZvaWQgbWFya0FzUHJldmFsZW50SWZIYXNSZWRp
cmVjdGVkVG9QcmV2YWxlbnQoUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpOwogICAgIGJvb2wgaXNQ
cmV2YWxlbnREdWVUb0RlYnVnTW9kZShSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJik7CiAgICAgVmVj
dG9yPFJlZ2lzdHJhYmxlRG9tYWluPiBlbnN1cmVQcmV2YWxlbnRSZXNvdXJjZXNGb3JEZWJ1Z01v
ZGUoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Q2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaApp
bmRleCA3MGFjYmRjZTk2ZjY1Y2Y4M2E5NDYzN2QzZmI4ZDFlOWIyNjU1M2RkLi4yMDk0NWRhMDk4
YTY4MGEwYTRlOTk3N2ZkNzUyNDcwZjY3OGQ5OTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzQ2xhc3NpZmllci5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAj
aW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CkBAIC05MCw3ICs5MSw2IEBAIHB1YmxpYzoKICAg
ICB1c2luZyBOYXZpZ2F0ZWRUb0RvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwog
ICAgIHVzaW5nIERvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcyA9IFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluOwogICAgIHVzaW5nIE9wZW5lckRvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluOwotICAgIHVzaW5nIEZyYW1lSUQgPSB1aW50NjRfdDsKICAgICAKICAgICB2aXJ0dWFs
IH5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoKTsKIApAQCAtMTU5LDkgKzE1OSw5IEBAIHB1
YmxpYzoKICAgICBib29sIGlzRGVidWdNb2RlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGVi
dWdNb2RlRW5hYmxlZDsgfTsKICAgICB2b2lkIHNldFByZXZhbGVudFJlc291cmNlRm9yRGVidWdN
b2RlKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgaGFzU3Rv
cmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwg
T3B0aW9uYWw8RnJhbWVJRD4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTdG9yYWdl
QWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIEZyYW1lSUQsIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NT
dGF0dXMpPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGdyYW50U3RvcmFnZUFjY2VzcyhTdWJG
cmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBGcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwg
Y29uc3QgVG9wRnJhbWVEb21haW4mLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+
LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURv
bWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NT
dGF0dXMpPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdyYW50U3RvcmFnZUFjY2VzcyhTdWJG
cmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2Fz
U2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dy
YW50ZWQpPiYmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgbG9nRnJhbWVOYXZpZ2F0aW9uKGNv
bnN0IE5hdmlnYXRlZFRvRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBjb25zdCBOYXZp
Z2F0ZWRGcm9tRG9tYWluJiwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlzTWFpbkZyYW1lKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGxvZ1VzZXJJbnRlcmFjdGlvbihjb25zdCBUb3BGcmFtZURvbWFp
biYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5j
cHAKaW5kZXggOGMyMTE1N2NjN2Y2OTE3YmE5NzA4OWUzNmYxNjlkODZjZjhiOGFiMC4uNjc1ZjBk
YWY1OWNlOWI0Zjg4N2I3OTRiYzg5MmVjNDRhODM3NTZmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTI4MCw3ICsyODAsNyBAQCB2b2lk
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc1Vw
ZGF0ZWQoVmVjdG9yPFdlYkNvcgogICAgIH0pOwogfQogCi12b2lkIFdlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
c3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwg
T3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZy
YW1lRG9tYWluLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBBU1NFUlQoc3ViRnJhbWVEb21haW4gIT0gdG9wRnJhbWVEb21haW4pOwog
ICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CkBAIC0zMDEsNyArMzAxLDcgQEAgdm9pZCBX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHMKICAgICB9KTsKIH0KIAotYm9vbCBXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6Omhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZShjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5
RG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQpCitib29sIFdl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6aGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIGZpcnN0UGFydHlEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRl
bnRpZmllciBwYWdlSUQpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAt
MzE0LDcgKzMxNCw3IEBAIGJvb2wgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpoYXNT
dG9yYWdlQWNjZXNzRm9yRnJhbWUoY29uc3QgUmVnaXN0cmFibGVECiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCi12b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEhhc1N0b3Jh
Z2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNl
RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbiwgdWludDY0
X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wgaGFzQWNjZXNzKT4mJiBjYWxsYmFjaykKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjpjYWxsSGFzU3RvcmFnZUFjY2Vzc0ZvckZyYW1lSGFuZGxlcihjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBm
aXJzdFBhcnR5RG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIg
cGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgaGFzQWNjZXNzKT4mJiBjYWxsYmFj
aykKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC0zMjgsNyArMzI4LDcg
QEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNhbGxIYXNTdG9yYWdlQWNj
ZXNzRm9yRnJhbWVIYW5kbGVyKGNvbnN0IFIKICAgICBjYWxsYmFjayhmYWxzZSk7CiB9CiAKLXZv
aWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzcyhj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIg
cGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkLCBT
dG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZp
ZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVk
LCBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewog
ICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTM5MSw3ICszOTEsNyBAQCB2b2lk
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRl
ck9wZW5lcihSZWdpc3RyYWJsZQogICAgIH0pOwogfQogCi12b2lkIFdlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWlu
LCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQ
cm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9y
YWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpncmFu
dFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93
biBwcm9tcHRXYXNTaG93biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2Fz
R3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIHBvc3RUYXNrKFt0aGlz
LCBzdWJGcmFtZURvbWFpbiA9IHN1YkZyYW1lRG9tYWluLmlzb2xhdGVkQ29weSgpLCB0b3BGcmFt
ZURvbWFpbiA9IHRvcEZyYW1lRG9tYWluLmlzb2xhdGVkQ29weSgpLCBmcmFtZUlELCBwYWdlSUQs
IHByb21wdFdhc1Nob3duLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXSgpIG11dGFibGUgewpAQCAtNDEwLDcgKzQxMCw3IEBAIHZvaWQgV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgUmVnaXN0cmFibGVE
b21haW4mCiAgICAgfSk7CiB9CiAKLVN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZpcnN0UGFy
dHlEb21haW4sIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdl
SUQpCitTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OmdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VE
b21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluLCBPcHRpb25h
bDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKIHsKICAg
ICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC00MjcsNyArNDI3LDcgQEAgU3RvcmFn
ZUFjY2Vzc1dhc0dyYW50ZWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpncmFudFN0
b3JhZ2VBY2Nlc3MoY29uc3QKICAgICByZXR1cm4gaXNTdG9yYWdlR3JhbnRlZCA/IFN0b3JhZ2VB
Y2Nlc3NXYXNHcmFudGVkOjpZZXMgOiBTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZDo6Tm87CiB9CiAK
LXZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjYWxsR3JhbnRTdG9yYWdlQWNj
ZXNzSGFuZGxlcihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9y
YWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Y2FsbEdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIoY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgdG9wRnJhbWVEb21haW4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwg
UGFnZUlkZW50aWZpZXIgcGFnZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nl
c3NXYXNHcmFudGVkKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoUnVuTG9v
cDo6aXNNYWluKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmgKaW5kZXggMDIzZGMyNzdjZjUwNTQ3YmY5Njg5ZWNjYTQ4NDRkMGU2NGFiMTMyZi4uOWRh
MWI2YmI1MjE1MjFhMDEyNDIzNGNkNDMyNzExNTZmOGNlMGI1ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1
ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJTdG9yYWdlQWNjZXNzU3RhdHVzLmgiCiAjaW5j
bHVkZSAiV2Vic2l0ZURhdGFUeXBlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZp
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxl
ci5oPgpAQCAtODksNyArOTAsNiBAQCBwdWJsaWM6CiAgICAgdXNpbmcgTmF2aWdhdGVkVG9Eb21h
aW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKICAgICB1c2luZyBEb21haW5Jbk5lZWRP
ZlN0b3JhZ2VBY2Nlc3MgPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKICAgICB1c2luZyBP
cGVuZXJEb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKLSAgICB1c2luZyBGcmFt
ZUlEID0gdWludDY0X3Q7CiAgICAgdXNpbmcgU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgPSBXZWJD
b3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZDsKICAgICB1c2luZyBTdG9yYWdlQWNjZXNzUHJv
bXB0V2FzU2hvd24gPSBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd247CiAKQEAg
LTExMSw3ICsxMTEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTaG91bGRDbGFzc2lmeVJlc291
cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogICAgIHZvaWQgc2V0U2hvdWxkU3VibWl0VGVsZW1ldHJ5KGJvb2wpOwogCi0gICAg
dm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BG
cmFtZURvbWFpbiYsIEZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBTdG9yYWdlQWNj
ZXNzUHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dh
c0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYpOworICAgIHZvaWQgZ3Jh
bnRTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21h
aW4mLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBT
dG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFn
ZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYpOwogCiAg
ICAgdm9pZCBhcHBsaWNhdGlvbldpbGxUZXJtaW5hdGUoKTsKIApAQCAtMTI1LDExICsxMjUsMTEg
QEAgcHVibGljOgogICAgIHZvaWQgY2xlYXJVc2VySW50ZXJhY3Rpb24oY29uc3QgVG9wRnJhbWVE
b21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgZGVsZXRlV2Vi
c2l0ZURhdGFGb3JSZWdpc3RyYWJsZURvbWFpbnMoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4s
IEhhc2hNYXA8UmVnaXN0cmFibGVEb21haW4sIFdlYnNpdGVEYXRhVG9SZW1vdmU+JiYsIGJvb2wg
c2hvdWxkTm90aWZ5UGFnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBIYXNoU2V0PFJl
Z2lzdHJhYmxlRG9tYWluPiYpPiYmKTsKICAgICB2b2lkIHJlZ2lzdHJhYmxlRG9tYWluc1dpdGhX
ZWJzaXRlRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgYm9vbCBzaG91bGROb3RpZnlQ
YWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+JiYp
PiYmKTsKLSAgICBTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCBncmFudFN0b3JhZ2VBY2Nlc3MoY29u
c3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPEZyYW1l
SUQ+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7CisgICAgU3RvcmFnZUFjY2Vzc1dhc0dyYW50
ZWQgZ3JhbnRTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJh
bWVEb21haW4mLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllcik7CiAgICAgdm9pZCBoYXNIYWRVc2VySW50ZXJhY3Rpb24oY29uc3QgUmVn
aXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKLSAgICB2
b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFt
ZURvbWFpbiYsIE9wdGlvbmFsPEZyYW1lSUQ+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgYm9vbCBoYXNTdG9yYWdlQWNjZXNz
Rm9yRnJhbWUoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIEZy
YW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKLSAgICB2b2lkIHJlcXVlc3RTdG9yYWdl
QWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBGcmFt
ZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9y
YWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJik7Cisg
ICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9w
RnJhbWVEb21haW4mLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAg
Ym9vbCBoYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWUoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25z
dCBUb3BGcmFtZURvbWFpbiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIpOworICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJh
bWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFn
ZUFjY2Vzc1dhc0dyYW50ZWQsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYpOwogICAg
IHZvaWQgc2V0TGFzdFNlZW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBTZWNvbmRzLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3VyY2Uo
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwog
ICAgIHZvaWQgc2V0VmVyeVByZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTE3MiwxMSArMTcyLDExIEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldFByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogICAgIHZv
aWQgbG9nVGVzdGluZ0V2ZW50KGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgY2FsbEdyYW50U3Rv
cmFnZUFjY2Vzc0hhbmRsZXIoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURv
bWFpbiYsIE9wdGlvbmFsPEZyYW1lSUQ+LCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpOworICAgIHZvaWQg
Y2FsbEdyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25z
dCBUb3BGcmFtZURvbWFpbiYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nl
c3NXYXNHcmFudGVkKT4mJik7CiAgICAgdm9pZCByZW1vdmVBbGxTdG9yYWdlQWNjZXNzKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBjYWxsVXBkYXRlUHJldmFsZW50RG9t
YWluc1RvQmxvY2tDb29raWVzRm9ySGFuZGxlcihjb25zdCBSZWdpc3RyYWJsZURvbWFpbnNUb0Js
b2NrQ29va2llc0ZvciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBj
YWxsUmVtb3ZlRG9tYWluc0hhbmRsZXIoY29uc3QgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiYp
OwotICAgIHZvaWQgY2FsbEhhc1N0b3JhZ2VBY2Nlc3NGb3JGcmFtZUhhbmRsZXIoY29uc3QgU3Vi
RnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIEZyYW1lSUQsIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lk
IGNhbGxIYXNTdG9yYWdlQWNjZXNzRm9yRnJhbWVIYW5kbGVyKGNvbnN0IFN1YkZyYW1lRG9tYWlu
JiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKIAog
ICAgIHZvaWQgZGlkQ3JlYXRlTmV0d29ya1Byb2Nlc3MoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmgK
aW5kZXggNzkzMDFiMjBjY2NhZmViNTIxMGQ3NWFkNTc0MWZkMmQ5MmU4YWNhZC4uMmNiZjRjNmVl
MmIzY2M1MGI1MTE3Y2YyNmYzMTNiMTUyYzczOTBmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5oCkBA
IC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICAgICAgU3RyaW5nIHVzZXJBZ2VudDsKICAgICAg
ICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEOwogICAgICAgICBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciBwYWdlSUQ7Ci0gICAgICAgIHVpbnQ2NF90IGZyYW1lSUQ7CisgICAgICAgIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEOwogICAgICAgICBXZWJDb3JlOjpTdG9yZWRDcmVkZW50
aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeTsKICAgICB9OwogICAgIHVzaW5nIENv
bXBsZXRpb25DYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciYmKT47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDFmMTAwNGUxYjVi
Y2QzOWQ4YjEyMmRmOGM2ZGE0OGQxMzdjNGJlNjEuLjBjMmM5NzZmZWUyMGQzMjliNDA3ZTA0ZGI5
NjJmYjY3OTlhZjQzMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC01MjUsNyAr
NTI1LDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29udmVydE1haW5S
ZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFBBTDo6U2Vzc2kKICAgICBsb2FkZXItPmNvbnZlcnRUb0Rv
d25sb2FkKGRvd25sb2FkSUQsIHJlcXVlc3QsIHJlc3BvbnNlKTsKIH0KIAotdm9pZCBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0
ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9u
YWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNl
Y3VyZUNvb2tpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywg
Ym9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2llc0ZvckRPTShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBz
YW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZy
YW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29r
aWVzIGluY2x1ZGVTZWN1cmVDb29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyBj
b29raWVTdHJpbmcsIGJvb2wgc2VjdXJlQ29va2llc0FjY2Vzc2VkKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBhdXRvJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBzdG9yYWdlU2Vzc2lv
bihuZXR3b3JrUHJvY2VzcygpLCBzZXNzaW9uSUQpOwogICAgIGF1dG8gcmVzdWx0ID0gbmV0d29y
a1N0b3JhZ2VTZXNzaW9uLmNvb2tpZXNGb3JET00oZmlyc3RQYXJ0eSwgc2FtZVNpdGVJbmZvLCB1
cmwsIGZyYW1lSUQsIHBhZ2VJRCwgaW5jbHVkZVNlY3VyZUNvb2tpZXMpOwpAQCAtNTM4LDcgKzUz
OCw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZXNGb3JET00o
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zCiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RG
TW92ZShyZXN1bHQuZmlyc3QpLCByZXN1bHQuc2Vjb25kKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0Q29va2llc0Zyb21ET00oUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNp
dGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlv
bmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nKQor
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6c2V0Q29va2llc0Zyb21ET00oUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVT
aXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8V2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlE
LCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0cmluZykKIHsKICAgICBhdXRvJiBuZXR3b3JrU3RvcmFn
ZVNlc3Npb24gPSBzdG9yYWdlU2Vzc2lvbihuZXR3b3JrUHJvY2VzcygpLCBzZXNzaW9uSUQpOwog
ICAgIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5zZXRDb29raWVzRnJvbURPTShmaXJzdFBhcnR5LCBz
YW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFnZUlELCBjb29raWVTdHJpbmcpOwpAQCAtNTU1
LDEzICs1NTUsMTMgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29va2ll
c0VuYWJsZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb20KICAgICBjb21wbGV0aW9uSGFu
ZGxlcihzdG9yYWdlU2Vzc2lvbihuZXR3b3JrUHJvY2VzcygpLCBzZXNzaW9uSUQpLmNvb2tpZXNF
bmFibGVkKCkpOwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0
IFVSTCYgdXJsLCBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nLCBib29sKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvb2tpZVJlcXVlc3RIZWFk
ZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBh
cnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9w
dGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+
IHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNvb2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nLCBib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBhdXRvIHJlc3VsdCA9IHN0b3JhZ2VTZXNzaW9uKG5ldHdvcmtQcm9jZXNzKCksIHNlc3Np
b25JRCkuY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoZmlyc3RQYXJ0eSwgc2FtZVNpdGVJ
bmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgaW5jbHVkZVNlY3VyZUNvb2tpZXMpOwogICAgIGNv
bXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0LmZpcnN0KSwgcmVzdWx0LnNlY29uZCk7CiB9
CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmdldFJhd0Nvb2tpZXMoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFNhbWVT
aXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+
IGZyYW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIp
Cit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpnZXRSYXdDb29raWVzKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0
ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9wdGlvbmFsPEZyYW1lSWRlbnRp
Zmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYmKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiByZXN1bHQ7CiAgICAgc3RvcmFn
ZVNlc3Npb24obmV0d29ya1Byb2Nlc3MoKSwgc2Vzc2lvbklEKS5nZXRSYXdDb29raWVzKGZpcnN0
UGFydHksIHNhbWVTaXRlSW5mbywgdXJsLCBmcmFtZUlELCBwYWdlSUQsIHJlc3VsdCk7CkBAIC02
NzAsNyArNjcwLDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZW5zdXJl
TGVnYWN5UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCiB9CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTKQotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVt
b3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0
X3QgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlEKQordm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6cmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCkKIHsKICAgICBpZiAoYXV0byogc3RvcmFnZVNlc3Npb24gPSBuZXR3b3JrUHJvY2VzcygpLnN0
b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCiAgICAgICAgIHN0b3JhZ2VTZXNzaW9uLT5yZW1vdmVT
dG9yYWdlQWNjZXNzRm9yRnJhbWUoZnJhbWVJRCwgcGFnZUlEKTsKQEAgLTcyOCw3ICs3MjgsNyBA
QCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZXNvdXJjZUxvYWRTdGF0aXN0
aWNzVXBkYXRlZChWZWN0b3I8V2ViQ29yZQogICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNz
LT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzVXBkYXRlZChXVEZNb3ZlKHN0YXRpc3RpY3MpKTsKIH0K
IAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6aGFzU3RvcmFnZUFjY2VzcyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFt
ZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCB1aW50NjRf
dCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpoYXNTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgdG9wRnJhbWVEb21haW4sIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gbmV0d29ya1Byb2Nlc3MoKS5u
ZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CiAgICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzID0gbmV0d29ya1Nlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkg
ewpAQCAtNzQwLDcgKzc0MCw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
Omhhc1N0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjCiAgICAgY29tcGxl
dGlvbkhhbmRsZXIodHJ1ZSk7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRl
ZCB3YXNHcmFudGVkLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0
V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdl
QWNjZXNzV2FzR3JhbnRlZCB3YXNHcmFudGVkLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0
V2FzU2hvd24gcHJvbXB0V2FzU2hvd24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlm
IChhdXRvKiBuZXR3b3JrU2Vzc2lvbiA9IG5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24o
c2Vzc2lvbklEKSkgewogICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9
IG5ldHdvcmtTZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaAppbmRleCA5Mjg2NzMzYzRiN2M3NTEyYzI5YzUzMjQzODIxZDBlZTFlYzcxMzA5
Li4yNTUwODRmOTIzMWZlYTgzMDgwMDk4ZDM1OTMwNTdhMWJkOTA3YzUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1JUQ1Byb3Zp
ZGVyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZE1hcC5oIgogI2luY2x1ZGUgIldl
YlBheW1lbnRDb29yZGluYXRvclByb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50
aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtMb2FkSW5mb3JtYXRpb24uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9j
ZXNzSWRlbnRpZmllci5oPgpAQCAtMTc0LDExICsxNzUsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHN0YXJ0RG93bmxvYWQoUEFMOjpTZXNzaW9uSUQsIERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFtZSA9IHsgfSk7CiAg
ICAgdm9pZCBjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoUEFMOjpTZXNzaW9uSUQs
IHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBEb3dubG9hZElELCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
Jik7CiAKLSAgICB2b2lkIGNvb2tpZXNGb3JET00oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
PiwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQpPiYmKTsKLSAg
ICB2b2lkIHNldENvb2tpZXNGcm9tRE9NKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFs
PHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4sIGNv
bnN0IFN0cmluZyYpOworICAgIHZvaWQgY29va2llc0ZvckRPTShQQUw6OlNlc3Npb25JRCwgY29u
c3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25zdCBV
UkwmLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllcj4sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgc2VjdXJlQ29va2llc0Fj
Y2Vzc2VkKT4mJik7CisgICAgdm9pZCBzZXRDb29raWVzRnJvbURPTShQQUw6OlNlc3Npb25JRCwg
Y29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25z
dCBVUkwmLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcj4sIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgY29va2llc0Vu
YWJsZWQoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwot
ICAgIHZvaWQgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3Qg
VVJMJiwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyPiwgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoU3RyaW5nIGNvb2tpZVN0cmluZywgYm9vbCBzZWN1cmVDb29raWVzQWNjZXNzZWQp
PiYmKTsKLSAgICB2b2lkIGdldFJhd0Nvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0
aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
PiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYmKT4mJik7
CisgICAgdm9pZCBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShQQUw6OlNlc3Npb25JRCwg
Y29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mLCBjb25z
dCBVUkwmLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBPcHRpb25hbDxXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcj4sIFdlYkNvcmU6OkluY2x1ZGVTZWN1cmVDb29raWVzLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgc2VjdXJlQ29va2ll
c0FjY2Vzc2VkKT4mJik7CisgICAgdm9pZCBnZXRSYXdDb29raWVzKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0
IFVSTCYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViQ29y
ZTo6Q29va2llPiYmKT4mJik7CiAgICAgdm9pZCBkZWxldGVDb29raWUoUEFMOjpTZXNzaW9uSUQs
IGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSk7CiAKICAgICB2b2lkIHJlZ2lz
dGVyRmlsZUJsb2JVUkwoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYg
cGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYsIGNvbnN0IFN0cmluZyYgY29udGVudFR5
cGUpOwpAQCAtMjE4LDcgKzIxOSw3IEBAIHByaXZhdGU6CiAgICAgQ2FjaGVTdG9yYWdlRW5naW5l
Q29ubmVjdGlvbiYgY2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpOwogCiAjaWYgRU5BQkxFKFJFU09V
UkNFX0xPQURfU1RBVElTVElDUykKLSAgICB2b2lkIHJlbW92ZVN0b3JhZ2VBY2Nlc3NGb3JGcmFt
ZShQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIpOworICAgIHZvaWQgcmVtb3ZlU3RvcmFnZUFjY2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lvbklE
LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKICAg
ICB2b2lkIGNsZWFyUGFnZVNwZWNpZmljRGF0YUZvclJlc291cmNlTG9hZFN0YXRpc3RpY3MoUEFM
OjpTZXNzaW9uSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKIAogICAgIHZvaWQgbG9nVXNl
ckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpOwpA
QCAtMjI2LDggKzIyNyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsb2dTdWJyZXNvdXJjZUxvYWRp
bmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0YXJnZXREb21haW4s
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgV2FsbFRpbWUgbGFzdFNl
ZW4pOwogICAgIHZvaWQgbG9nU3VicmVzb3VyY2VSZWRpcmVjdChQQUw6OlNlc3Npb25JRCwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIHNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIHRhcmdldERvbWFpbik7CiAgICAgdm9pZCByZXNvdXJjZUxvYWRTdGF0aXN0aWNzVXBkYXRl
ZChWZWN0b3I8V2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4mJik7Ci0gICAgdm9pZCBo
YXNTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
c3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwg
dWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYpOwotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCB1aW50NjRfdCBmcmFtZUlELCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9y
YWdlQWNjZXNzV2FzR3JhbnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3du
KT4mJik7CisgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklELCBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCBy
ZXF1ZXN0U3RvcmFnZUFjY2VzcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21h
aW4sIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFdl
YkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYpOwogICAgIHZvaWQgcmVxdWVz
dFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4mJiBkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIG9wZW5lclBhZ2VJRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBvcGVu
ZXJEb21haW4pOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluCmluZGV4IDRiMTE4OWIzOWNjZWJjOGZiMjI2ZjhmZWUwMzQyOGM2Yzg1YWQ3YTMuLjk5
YWJkMDc4ZmIxNGM5ZjMwYmU5Yzg3NjAzYTEzZDkxYmQ3OWE5Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMzQsMTEgKzM0LDExIEBAIG1lc3NhZ2Vz
IC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBT
dGFydERvd25sb2FkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpEb3dubG9hZElE
IGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcgc3Vn
Z2VzdGVkTmFtZSkKICAgICBDb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwg
V2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKQogCi0gICAgQ29va2ll
c0ZvckRPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3Qg
V2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8dWlu
dDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQs
IGVudW06Ym9vbCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29v
a2llcykgLT4gKFN0cmluZyBjb29raWVTdHJpbmcsIGJvb2wgZGlkQWNjZXNzU2VjdXJlQ29va2ll
cykgU3luY2hyb25vdXMKLSAgICBTZXRDb29raWVzRnJvbURPTShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVT
aXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIFN0cmluZyBjb29raWVTdHJpbmcpCisgICAg
Q29va2llc0ZvckRPTShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5LCBz
dHJ1Y3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9u
YWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllcj4gcGFnZUlELCBlbnVtOmJvb2wgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNv
b2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIC0+IChTdHJpbmcgY29va2llU3RyaW5nLCBib29s
IGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMpIFN5bmNocm9ub3VzCisgICAgU2V0Q29va2llc0Zyb21E
T00oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBVUkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNv
cmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8sIFVSTCB1cmwsIE9wdGlvbmFsPFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXI+IHBhZ2VJRCwgU3RyaW5nIGNvb2tpZVN0cmluZykKICAgICBDb29raWVzRW5hYmxlZChQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChib29sIGVuYWJsZWQpIFN5bmNocm9ub3VzCi0gICAg
Q29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBV
UkwgZmlyc3RQYXJ0eSwgc3RydWN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyBzYW1lU2l0ZUluZm8s
IFVSTCB1cmwsIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllcj4gcGFnZUlELCBlbnVtOmJvb2wgV2ViQ29yZTo6SW5jbHVkZVNlY3VyZUNv
b2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpIC0+IChTdHJpbmcgY29va2llU3RyaW5nLCBib29s
IGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMpIFN5bmNocm9ub3VzCi0gICAgR2V0UmF3Q29va2llcyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCBmaXJzdFBhcnR5LCBzdHJ1Y3QgV2ViQ29yZTo6
U2FtZVNpdGVJbmZvIHNhbWVTaXRlSW5mbywgVVJMIHVybCwgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQpIC0+IChWZWN0
b3I8V2ViQ29yZTo6Q29va2llPiBjb29raWVzKSBTeW5jaHJvbm91cworICAgIENvb2tpZVJlcXVl
c3RIZWFkZXJGaWVsZFZhbHVlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZpcnN0UGFy
dHksIHN0cnVjdCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBP
cHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpJbmNsdWRlU2Vj
dXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgLT4gKFN0cmluZyBjb29raWVTdHJpbmcs
IGJvb2wgZGlkQWNjZXNzU2VjdXJlQ29va2llcykgU3luY2hyb25vdXMKKyAgICBHZXRSYXdDb29r
aWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVVJMIGZpcnN0UGFydHksIHN0cnVjdCBXZWJD
b3JlOjpTYW1lU2l0ZUluZm8gc2FtZVNpdGVJbmZvLCBVUkwgdXJsLCBPcHRpb25hbDxXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyPiBwYWdlSUQpIC0+IChWZWN0b3I8V2ViQ29yZTo6Q29va2llPiBjb29raWVzKSBTeW5jaHJv
bm91cwogICAgIERlbGV0ZUNvb2tpZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFVSTCB1cmws
IFN0cmluZyBjb29raWVOYW1lKQogCiAgICAgUmVnaXN0ZXJGaWxlQmxvYlVSTChQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFVSTCB1cmwsIFN0cmluZyBwYXRoLCBXZWJLaXQ6OlNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSBleHRlbnNpb25IYW5kbGUsIFN0cmluZyBjb250ZW50VHlwZSkKQEAgLTU4
LDE1ICs1OCwxNSBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBM
ZWdhY3lSZWNlaXZlciB7CiAgICAgRW5zdXJlTGVnYWN5UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigp
CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotICAgIFJlbW92ZVN0b3Jh
Z2VBY2Nlc3NGb3JGcmFtZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IGZyYW1l
SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCk7CisgICAgUmVtb3ZlU3RvcmFnZUFj
Y2Vzc0ZvckZyYW1lKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCk7CiAgICAgQ2xl
YXJQYWdlU3BlY2lmaWNEYXRhRm9yUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCk7CiAgICAgTG9nVXNl
ckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4gZG9tYWluKQogICAgIExvZ1dlYlNvY2tldExvYWRpbmcoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0YXJnZXREb21haW4sIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCBXYWxsVGltZSBsYXN0U2VlbikK
ICAgICBMb2dTdWJyZXNvdXJjZUxvYWRpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0YXJnZXREb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluIHRvcEZyYW1lRG9tYWluLCBXYWxsVGltZSBsYXN0U2VlbikKICAgICBMb2dTdWJyZXNv
dXJjZVJlZGlyZWN0KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4gc291cmNlRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0YXJnZXRE
b21haW4pCiAgICAgUmVzb3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0ZWQoVmVjdG9yPFdlYkNvcmU6
OlJlc291cmNlTG9hZFN0YXRpc3RpY3M+IHN0YXRpc3RpY3MpCi0gICAgSGFzU3RvcmFnZUFjY2Vz
cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1
YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwg
dWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKSAtPiAoYm9v
bCBoYXNTdG9yYWdlQWNjZXNzKSBBc3luYwotICAgIFJlcXVlc3RTdG9yYWdlQWNjZXNzKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3ViRnJhbWVE
b21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCB1aW50NjRf
dCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQpIC0+IChlbnVtOmJvb2wg
V2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgd2FzR3JhbnRlZCwgZW51bTpib29sIFdl
YkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBwcm9tcHRXYXNTaG93bikgQXN5bmMK
KyAgICBIYXNTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4gc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKSAtPiAoYm9vbCBoYXNTdG9yYWdlQWNjZXNzKSBB
c3luYworICAgIFJlcXVlc3RTdG9yYWdlQWNjZXNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKSAtPiAoZW51bTpib29sIFdlYkNv
cmU6OlN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIHdhc0dyYW50ZWQsIGVudW06Ym9vbCBXZWJDb3Jl
OjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gcHJvbXB0V2FzU2hvd24pIEFzeW5jCiAgICAg
UmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2Vzcywg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgb3BlbmVyUGFnZUlELCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiBvcGVuZXJEb21haW4pCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuY3BwCmluZGV4IDQwOTcxNGQ2NjcyNmE4
NDc0YWZmMjlhMTYwODE3ZjI0Nzk2N2IwMTYuLjExNzZmNTM3YTg1ODA5YjRiYWUxY2U3NjhiNTY1
MzViMTVkNWViYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0xvYWRDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkQ2hlY2tlci5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RhdGljIGlubGluZSBib29s
IGlzU2FtZU9yaWdpbihjb25zdCBVUkwmIHVybCwgY29uc3QgU2VjdXJpdHlPcmlnaW4qIG9yaWdp
bikKICAgICByZXR1cm4gdXJsLnByb3RvY29sSXNEYXRhKCkgfHwgdXJsLnByb3RvY29sSXNCbG9i
KCkgfHwgIW9yaWdpbiB8fCBvcmlnaW4tPmNhblJlcXVlc3QodXJsKTsKIH0KIAotTmV0d29ya0xv
YWRDaGVja2VyOjpOZXR3b3JrTG9hZENoZWNrZXIoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9j
ZXNzLCBGZXRjaE9wdGlvbnMmJiBvcHRpb25zLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgSFRUUEhlYWRlck1hcCYmIG9y
aWdpbmFsUmVxdWVzdEhlYWRlcnMsIFVSTCYmIHVybCwgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiYm
IHNvdXJjZU9yaWdpbiwgUHJlZmxpZ2h0UG9saWN5IHByZWZsaWdodFBvbGljeSwgU3RyaW5nJiYg
cmVmZXJyZXIsIGJvb2wgaXNIVFRQU1VwZ3JhZGVFbmFibGVkLCBib29sIHNob3VsZENhcHR1cmVF
eHRyYU5ldHdvcmtMb2FkTWV0cmljcywgTG9hZFR5cGUgcmVxdWVzdExvYWRUeXBlKQorTmV0d29y
a0xvYWRDaGVja2VyOjpOZXR3b3JrTG9hZENoZWNrZXIoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQ
cm9jZXNzLCBGZXRjaE9wdGlvbnMmJiBvcHRpb25zLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEhUVFBIZWFk
ZXJNYXAmJiBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzLCBVUkwmJiB1cmwsIFJlZlB0cjxTZWN1cml0
eU9yaWdpbj4mJiBzb3VyY2VPcmlnaW4sIFByZWZsaWdodFBvbGljeSBwcmVmbGlnaHRQb2xpY3ks
IFN0cmluZyYmIHJlZmVycmVyLCBib29sIGlzSFRUUFNVcGdyYWRlRW5hYmxlZCwgYm9vbCBzaG91
bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MsIExvYWRUeXBlIHJlcXVlc3RMb2FkVHlw
ZSkKICAgICA6IG1fb3B0aW9ucyhXVEZNb3ZlKG9wdGlvbnMpKQogICAgICwgbV9zZXNzaW9uSUQo
c2Vzc2lvbklEKQogICAgICwgbV9uZXR3b3JrUHJvY2VzcyhuZXR3b3JrUHJvY2VzcykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmgg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5oCmluZGV4
IDA3NzA2NDY3MGZjYmI5YWM5NDJmOGQ4NjE4MTA0OTU5ZjAwZTA1NzguLmVjOTRlMTQ2OTUzM2Q3
ZDk4NzgxNmJiMjZiMTdkZmIyM2I5NDNmYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0NvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRmV0Y2hPcHRpb25zLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtMb2FkSW5mb3JtYXRpb24uaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9y
Lmg+CkBAIC01NSw3ICs1Niw3IEBAIGNsYXNzIE5ldHdvcmtMb2FkQ2hlY2tlciA6IHB1YmxpYyBD
YW5NYWtlV2Vha1B0cjxOZXR3b3JrTG9hZENoZWNrZXI+IHsKIHB1YmxpYzoKICAgICBlbnVtIGNs
YXNzIExvYWRUeXBlIDogYm9vbCB7IE1haW5GcmFtZSwgT3RoZXIgfTsKIAotICAgIE5ldHdvcmtM
b2FkQ2hlY2tlcihOZXR3b3JrUHJvY2VzcyYsIFdlYkNvcmU6OkZldGNoT3B0aW9ucyYmLCBQQUw6
OlNlc3Npb25JRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQsIFdl
YkNvcmU6OkhUVFBIZWFkZXJNYXAmJiwgVVJMJiYsIFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbj4mJiwgV2ViQ29yZTo6UHJlZmxpZ2h0UG9saWN5LCBTdHJpbmcmJiByZWZlcnJlciwgYm9v
bCBpc0hUVFBTVXBncmFkZUVuYWJsZWQgPSBmYWxzZSwgYm9vbCBzaG91bGRDYXB0dXJlRXh0cmFO
ZXR3b3JrTG9hZE1ldHJpY3MgPSBmYWxzZSwgTG9hZFR5cGUgcmVxdWVzdExvYWRUeXBlID0gTG9h
ZFR5cGU6Ok90aGVyKTsKKyAgICBOZXR3b3JrTG9hZENoZWNrZXIoTmV0d29ya1Byb2Nlc3MmLCBX
ZWJDb3JlOjpGZXRjaE9wdGlvbnMmJiwgUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAm
JiwgVVJMJiYsIFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiwgV2ViQ29yZTo6UHJl
ZmxpZ2h0UG9saWN5LCBTdHJpbmcmJiByZWZlcnJlciwgYm9vbCBpc0hUVFBTVXBncmFkZUVuYWJs
ZWQgPSBmYWxzZSwgYm9vbCBzaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MgPSBm
YWxzZSwgTG9hZFR5cGUgcmVxdWVzdExvYWRUeXBlID0gTG9hZFR5cGU6Ok90aGVyKTsKICAgICB+
TmV0d29ya0xvYWRDaGVja2VyKCk7CiAKICAgICBzdHJ1Y3QgUmVkaXJlY3Rpb25UcmlwbGV0IHsK
QEAgLTEyNyw3ICsxMjgsNyBAQCBwcml2YXRlOgogICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lv
bklEOwogICAgIFJlZjxOZXR3b3JrUHJvY2Vzcz4gbV9uZXR3b3JrUHJvY2VzczsKICAgICBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciBtX3BhZ2VJRDsKLSAgICB1aW50NjRfdCBtX2ZyYW1lSUQ7Cisg
ICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fZnJhbWVJRDsKICAgICBXZWJDb3JlOjpIVFRQ
SGVhZGVyTWFwIG1fb3JpZ2luYWxSZXF1ZXN0SGVhZGVyczsgLy8gTmVlZGVkIGZvciBDT1JTIGNo
ZWNrcy4KICAgICBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwIG1fZmlyc3RSZXF1ZXN0SGVhZGVyczsg
Ly8gTmVlZGVkIGZvciBDT1JTIGNoZWNrcy4KICAgICBVUkwgbV91cmw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAppbmRleCBj
NDNlNWRjZDc1MDExYTU1OTFlNmU2ODI3MjRjMWE2OTU2NWVjZjE3Li5iOGY3ZDEzOWUzMWVjNWM4
MjcxMzVlMzczMGI3YjBkOWVmMGE0NjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAog
I2luY2x1ZGUgIk5ldHdvcmtBY3Rpdml0eVRyYWNrZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Js
b2JEYXRhRmlsZVJlZmVyZW5jZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVy
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJl
cXVlc3QuaD4KQEAgLTQ2LDcgKzQ3LDcgQEAgcHVibGljOgogCiAgICAgUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEOwogICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRDsKLSAgICB1
aW50NjRfdCB3ZWJGcmFtZUlEIHsgMCB9OworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciB3
ZWJGcmFtZUlEOwogICAgIFdURjo6UHJvY2Vzc0lEIHBhcmVudFBJRCB7IDAgfTsKICAgICBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdDsKICAgICBXZWJDb3JlOjpDb250ZW50U25pZmZp
bmdQb2xpY3kgY29udGVudFNuaWZmaW5nUG9saWN5IHsgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5n
UG9saWN5OjpTbmlmZkNvbnRlbnQgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaAppbmRleCAxYmViN2I2NWRiNjMwYzNiMzI4YmIxNWNmYzNiMzExNmI0
Yjk5NGQ2Li42MTIxYmFkYmEzZmU0OWFmMDg3M2I4NTczMmVjODAyMDU2ZmZlODAwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0xMzcsNyAr
MTM3LDYgQEAgcHVibGljOgogICAgIHVzaW5nIE5hdmlnYXRlZFRvRG9tYWluID0gV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNpbmcgRG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNz
ID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNpbmcgT3BlbmVyRG9tYWluID0g
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47Ci0gICAgdXNpbmcgRnJhbWVJRCA9IHVpbnQ2NF90
OwogCiAgICAgTmV0d29ya1Byb2Nlc3MoQXV4aWxpYXJ5UHJvY2Vzc0luaXRpYWxpemF0aW9uUGFy
YW1ldGVycyYmKTsKICAgICB+TmV0d29ya1Byb2Nlc3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCA0Nzgy
ZWYxNWYzZGVlZTVhZjRlYWVmMDVjZGY2MDM2YWU3ZTZkMmZiLi5lYzZhODBjODQ4OWRlZjMyZDc4
OWI3NGJlYzEyNzM1N2JlYzU1ODM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0xODAsMTggKzE4MCwxOCBA
QCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQoKQogCiAgICAgICAgICAgICBXVEY6
OnN3aXRjaE9uKHJlc3VsdCwKICAgICAgICAgICAgICAgICBbdGhpc10gKFJlc291cmNlRXJyb3Im
IGVycm9yKSB7Ci0gICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0
YXJ0OiBlcnJvciBjaGVja2luZyAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQ
Ukl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBp
c1N5bmNocm9ub3VzID0gJWQsIHBhcmVudFBJRCA9ICVkLCBlcnJvci5kb21haW4gPSAle3B1Ymxp
Y31zLCBlcnJvci5jb2RlID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgp
LCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIHRoaXMt
PmlzTWFpblJlc291cmNlKCksIHRoaXMtPmlzU3luY2hyb25vdXMoKSwgbV9wYXJhbWV0ZXJzLnBh
cmVudFBJRCwgZXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSwgZXJyb3IuZXJyb3JDb2RlKCkp
OworICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydDogZXJy
b3IgY2hlY2tpbmcgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJv
bm91cyA9ICVkLCBwYXJlbnRQSUQgPSAlZCwgZXJyb3IuZG9tYWluID0gJXtwdWJsaWN9cywgZXJy
b3IuY29kZSA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJh
bWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIHRo
aXMtPmlzTWFpblJlc291cmNlKCksIHRoaXMtPmlzU3luY2hyb25vdXMoKSwgbV9wYXJhbWV0ZXJz
LnBhcmVudFBJRCwgZXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSwgZXJyb3IuZXJyb3JDb2Rl
KCkpOwogICAgICAgICAgICAgICAgICAgICBpZiAoIWVycm9yLmlzQ2FuY2VsbGF0aW9uKCkpCiAg
ICAgICAgICAgICAgICAgICAgICAgICB0aGlzLT5kaWRGYWlsTG9hZGluZyhlcnJvcik7CiAgICAg
ICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICBbdGhpc10gKE5ldHdvcmtMb2FkQ2hlY2tl
cjo6UmVkaXJlY3Rpb25UcmlwbGV0JiB0cmlwbGV0KSB7CiAgICAgICAgICAgICAgICAgICAgIHRo
aXMtPm1faXNXYWl0aW5nQ29udGludWVXaWxsU2VuZFJlcXVlc3RGb3JDYWNoZWRSZWRpcmVjdCA9
IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMtPndpbGxTZW5kUmVkaXJlY3RlZFJlcXVl
c3QoV1RGTW92ZSh0cmlwbGV0LnJlcXVlc3QpLCBXVEZNb3ZlKHRyaXBsZXQucmVkaXJlY3RSZXF1
ZXN0KSwgV1RGTW92ZSh0cmlwbGV0LnJlZGlyZWN0UmVzcG9uc2UpKTsKLSAgICAgICAgICAgICAg
ICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6IHN5bnRoZXRpYyByZWRpcmVjdCBz
ZW50IGJlY2F1c2UgcmVxdWVzdCBVUkwgd2FzIG1vZGlmaWVkIChwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFp
blJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCwgcGFyZW50UElEID0gJWQpIiwgbV9w
YXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwg
bV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIHRoaXMtPmlzTWFpblJlc291cmNlKCksIHRoaXMtPmlz
U3luY2hyb25vdXMoKSwgbV9wYXJhbWV0ZXJzLnBhcmVudFBJRCk7CisgICAgICAgICAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0OiBzeW50aGV0aWMgcmVkaXJlY3Qgc2Vu
dCBiZWNhdXNlIHJlcXVlc3QgVVJMIHdhcyBtb2RpZmllZCAocGFnZUlEID0gJSIgUFJJdTY0ICIs
IGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5S
ZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQsIHBhcmVudFBJRCA9ICVkKSIsIG1fcGFy
YW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9V
SW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIHRoaXMtPmlzTWFpblJlc291cmNlKCks
IHRoaXMtPmlzU3luY2hyb25vdXMoKSwgbV9wYXJhbWV0ZXJzLnBhcmVudFBJRCk7CiAgICAgICAg
ICAgICAgICAgfSwKICAgICAgICAgICAgICAgICBbdGhpc10gKFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCkgewogICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy0+Y2FuVXNlQ2FjaGUocmVxdWVz
dCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0
YXJ0OiBDaGVja2luZyBjYWNoZSBmb3IgcmVzb3VyY2UgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVz
b3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkLCBwYXJlbnRQSUQgPSAlZCkiLCBtX3BhcmFt
ZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3Bh
cmFtZXRlcnMuaWRlbnRpZmllciwgdGhpcy0+aXNNYWluUmVzb3VyY2UoKSwgdGhpcy0+aXNTeW5j
aHJvbm91cygpLCBtX3BhcmFtZXRlcnMucGFyZW50UElEKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0OiBDaGVja2luZyBjYWNoZSBmb3IgcmVz
b3VyY2UgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9
ICVkLCBwYXJlbnRQSUQgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCks
IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlm
aWVyLCB0aGlzLT5pc01haW5SZXNvdXJjZSgpLCB0aGlzLT5pc1N5bmNocm9ub3VzKCksIG1fcGFy
YW1ldGVycy5wYXJlbnRQSUQpOwogICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy0+cmV0cmll
dmVDYWNoZUVudHJ5KHJlcXVlc3QpOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICAgICAgICAgICAgICB9CkBAIC0yMDQsNyArMjA0LDcgQEAgdm9pZCBOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OnN0YXJ0KCkKICAgICB9CiAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGF0IGNv
ZGUgcGF0aCBvbmNlIG1fbmV0d29ya0xvYWRDaGVja2VyIGlzIHVzZWQgZm9yIGFsbCBuZXR3b3Jr
IGxvYWRzLgogICAgIGlmIChjYW5Vc2VDYWNoZShvcmlnaW5hbFJlcXVlc3QoKSkpIHsKLSAgICAg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6IENoZWNraW5nIGNhY2hlIGZvciByZXNv
dXJjZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3Vy
Y2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0g
JWQsIHBhcmVudFBJRCA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwg
bV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5S
ZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCksIG1fcGFyYW1ldGVycy5wYXJlbnRQSUQpOworICAg
ICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydDogQ2hlY2tpbmcgY2FjaGUgZm9yIHJl
c291cmNlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNv
dXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMg
PSAlZCwgcGFyZW50UElEID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgp
LCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRp
ZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpLCBtX3BhcmFtZXRlcnMucGFy
ZW50UElEKTsKICAgICAgICAgcmV0cmlldmVDYWNoZUVudHJ5KG9yaWdpbmFsUmVxdWVzdCgpKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTI0NCw3ICsyNDQsNyBAQCB2b2lkIE5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6cmV0cmlldmVDYWNoZUVudHJ5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCkKICAgICAgICAgbG9nU2xvd0NhY2hlUmV0cmlldmVJZk5lZWRlZChpbmZvKTsKIAog
ICAgICAgICBpZiAoIWVudHJ5KSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJlc291cmNlIG5vdCBpbiBjYWNoZSAocGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAi
LCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJz
LndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0
ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CisgICAg
ICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFJlc291
cmNlIG5vdCBpbiBjYWNoZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5
bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Bh
cmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwg
aXNNYWluUmVzb3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKICAgICAgICAgICAgIHN0YXJ0TmV0
d29ya0xvYWQoV1RGTW92ZShyZXF1ZXN0KSwgRmlyc3RMb2FkOjpZZXMpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CkBAIC0yNTYsNyArMjU2LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRyeUludGVybmFsKHN0ZDo6dW5pcXVlX3B0cjxOZXR3
b3JrQ2EKIHsKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogICAgIGlmIChl
bnRyeS0+aGFzUmVhY2hlZFByZXZhbGVudFJlc291cmNlQWdlQ2FwKCkpIHsKLSAgICAgICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNoZUVudHJ5OiBSZXNvdXJjZSBoYXMgcmVh
Y2hlZCBwcmV2YWxlbnQgcmVzb3VyY2UgYWdlIGNhcCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZy
YW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNv
dXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50
b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZp
ZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CisgICAgICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeTogUmVzb3VyY2UgaGFzIHJlYWNoZWQg
cHJldmFsZW50IHJlc291cmNlIGFnZSBjYXAgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2Ug
PSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50
NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlk
ZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CiAgICAgICAgIG1f
Y2FjaGVFbnRyeUZvck1heEFnZUNhcFZhbGlkYXRpb24gPSBXVEZNb3ZlKGVudHJ5KTsKICAgICAg
ICAgUmVzb3VyY2VSZXF1ZXN0IHJldmFsaWRhdGlvblJlcXVlc3QgPSBvcmlnaW5hbFJlcXVlc3Qo
KTsKICAgICAgICAgc3RhcnROZXR3b3JrTG9hZChXVEZNb3ZlKHJldmFsaWRhdGlvblJlcXVlc3Qp
LCBGaXJzdExvYWQ6Olllcyk7CkBAIC0yNjQsMjggKzI2NCwyOCBAQCB2b2lkIE5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6cmV0cmlldmVDYWNoZUVudHJ5SW50ZXJuYWwoc3RkOjp1bmlxdWVfcHRyPE5l
dHdvcmtDYQogICAgIH0KICNlbmRpZgogICAgIGlmIChlbnRyeS0+cmVkaXJlY3RSZXF1ZXN0KCkp
IHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNoZUVudHJ5OiBI
YW5kbGluZyByZWRpcmVjdCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5
bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Bh
cmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291
cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
InJldHJpZXZlQ2FjaGVFbnRyeTogSGFuZGxpbmcgcmVkaXJlY3QgKHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNN
YWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQ
YWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9w
YXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7
CiAgICAgICAgIGRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0Rm9yQ2FjaGVFbnRyeShXVEZNb3ZlKHJl
cXVlc3QpLCBXVEZNb3ZlKGVudHJ5KSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYg
KG1fcGFyYW1ldGVycy5uZWVkc0NlcnRpZmljYXRlSW5mbyAmJiAhZW50cnktPnJlc3BvbnNlKCku
Y2VydGlmaWNhdGVJbmZvKCkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0
cmlldmVDYWNoZUVudHJ5OiBSZXNvdXJjZSBkb2VzIG5vdCBoYXZlIHJlcXVpcmVkIGNlcnRpZmlj
YXRlIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJj
ZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAl
ZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJG
cmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgaXNTeW5j
aHJvbm91cygpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNo
ZUVudHJ5OiBSZXNvdXJjZSBkb2VzIG5vdCBoYXZlIHJlcXVpcmVkIGNlcnRpZmljYXRlIChwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIg
UFJJdTY0ICIsIGlzTWFpblJlc291cmNlID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3Bh
cmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRv
VUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5
bmNocm9ub3VzKCkpOwogICAgICAgICBzdGFydE5ldHdvcmtMb2FkKFdURk1vdmUocmVxdWVzdCks
IEZpcnN0TG9hZDo6WWVzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAoZW50cnkt
Pm5lZWRzVmFsaWRhdGlvbigpIHx8IHJlcXVlc3QuY2FjaGVQb2xpY3koKSA9PSBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeTo6UmVmcmVzaEFueUNhY2hlRGF0YSkgewotICAgICAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IFZhbGlkYXRpbmcg
Y2FjaGUgZW50cnkgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIs
IHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJv
bm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0
ZXJzLndlYkZyYW1lSUQsIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgp
LCBpc1N5bmNocm9ub3VzKCkpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRy
aWV2ZUNhY2hlRW50cnk6IFZhbGlkYXRpbmcgY2FjaGUgZW50cnkgKHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwgaXNN
YWluUmVzb3VyY2UgPSAlZCwgaXNTeW5jaHJvbm91cyA9ICVkKSIsIG1fcGFyYW1ldGVycy53ZWJQ
YWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9w
YXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7
CiAgICAgICAgIHZhbGlkYXRlQ2FjaGVFbnRyeShXVEZNb3ZlKGVudHJ5KSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNoZUVu
dHJ5OiBSZXRyaWV2ZWQgcmVzb3VyY2UgZnJvbSBjYWNoZSAocGFnZUlEID0gJSIgUFJJdTY0ICIs
IGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5S
ZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJ
RC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50
aWZpZXIsIGlzTWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CisgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNoZUVudHJ5OiBSZXRyaWV2ZWQgcmVzb3VyY2UgZnJv
bSBjYWNoZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9ICVkLCBpc1N5bmNocm9ub3Vz
ID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMu
d2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVz
b3VyY2UoKSwgaXNTeW5jaHJvbm91cygpKTsKICAgICBkaWRSZXRyaWV2ZUNhY2hlRW50cnkoV1RG
TW92ZShlbnRyeSkpOwogfQogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnROZXR3
b3JrTG9hZChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBGaXJzdExvYWQgbG9hZCkKIHsKICAg
ICBpZiAobG9hZCA9PSBGaXJzdExvYWQ6OlllcykgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJzdGFydE5ldHdvcmtMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBpc01haW5SZXNvdXJjZSA9
ICVkLCBpc1N5bmNocm9ub3VzID0gJWQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2
NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlz
TWFpblJlc291cmNlKCksIGlzU3luY2hyb25vdXMoKSk7CisgICAgICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoInN0YXJ0TmV0d29ya0xvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzTWFpblJlc291cmNl
ID0gJWQsIGlzU3luY2hyb25vdXMgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUlu
dDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5p
ZGVudGlmaWVyLCBpc01haW5SZXNvdXJjZSgpLCBpc1N5bmNocm9ub3VzKCkpOwogCiAgICAgICAg
IGNvbnN1bWVTYW5kYm94RXh0ZW5zaW9ucygpOwogCkBAIC0zMDgsNyArMzA4LDcgQEAgdm9pZCBO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0TmV0d29ya0xvYWQoUmVzb3VyY2VSZXF1ZXN0JiYg
cmVxdWVzdCwgRmlyc3RMb2EKICAgICB9CiAgICAgaWYgKCFuZXR3b3JrU2Vzc2lvbikgewogICAg
ICAgICBXVEZMb2dBbHdheXMoIkF0dGVtcHRlZCB0byBjcmVhdGUgYSBOZXR3b3JrTG9hZCB3aXRo
IGEgc2Vzc2lvbiAoaWQ9JSIgUFJJdTY0ICIpIHRoYXQgZG9lcyBub3QgZXhpc3QuIiwgcGFyYW1l
dGVycy5zZXNzaW9uSUQuc2Vzc2lvbklEKCkpOwotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9J
Rl9BTExPV0VEKCJzdGFydE5ldHdvcmtMb2FkOiBBdHRlbXB0ZWQgdG8gY3JlYXRlIGEgTmV0d29y
a0xvYWQgd2l0aCBhIHNlc3Npb24gdGhhdCBkb2VzIG5vdCBleGlzdCAocGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBz
ZXNzaW9uSUQ9JSIgUFJJdTY0ICIpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgp
LCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIHBhcmFt
ZXRlcnMuc2Vzc2lvbklELnNlc3Npb25JRCgpKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Jf
SUZfQUxMT1dFRCgic3RhcnROZXR3b3JrTG9hZDogQXR0ZW1wdGVkIHRvIGNyZWF0ZSBhIE5ldHdv
cmtMb2FkIHdpdGggYSBzZXNzaW9uIHRoYXQgZG9lcyBub3QgZXhpc3QgKHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiwg
c2Vzc2lvbklEPSUiIFBSSXU2NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQo
KSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50
aWZpZXIsIHBhcmFtZXRlcnMuc2Vzc2lvbklELnNlc3Npb25JRCgpKTsKICAgICAgICAgbV9jb25u
ZWN0aW9uLT5uZXR3b3JrUHJvY2VzcygpLmxvZ0RpYWdub3N0aWNNZXNzYWdlKG1fcGFyYW1ldGVy
cy53ZWJQYWdlSUQsIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6aW50ZXJuYWxFcnJv
cktleSgpLCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmludmFsaWRTZXNzaW9uSURL
ZXkoKSwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlOjpObyk7CiAgICAgICAgIGRpZEZhaWxMb2FkaW5n
KGludGVybmFsRXJyb3IocmVxdWVzdC51cmwoKSkpOwogICAgICAgICByZXR1cm47CkBAIC0zMjAs
NyArMzIwLDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0TmV0d29ya0xvYWQo
UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgRmlyc3RMb2EKICAgICBwYXJhbWV0ZXJzLnJlcXVl
c3QgPSBXVEZNb3ZlKHJlcXVlc3QpOwogICAgIG1fbmV0d29ya0xvYWQgPSBzdGQ6Om1ha2VfdW5p
cXVlPE5ldHdvcmtMb2FkPigqdGhpcywgJm5ldHdvcmtTZXNzaW9uLT5ibG9iUmVnaXN0cnkoKSwg
V1RGTW92ZShwYXJhbWV0ZXJzKSwgKm5ldHdvcmtTZXNzaW9uKTsKIAotICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoInN0YXJ0TmV0d29ya0xvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGRlc2NyaXB0aW9u
ID0gJXtwdWJsaWN9cykiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFy
YW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgbV9uZXR3b3JrTG9h
ZC0+ZGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKCJzdGFydE5ldHdvcmtMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAl
IiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBkZXNjcmlwdGlvbiA9ICV7cHVi
bGljfXMpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMu
d2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgbV9uZXR3b3Jr
TG9hZC0+ZGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OmNsZWFudXAoTG9hZFJlc3VsdCByZXN1bHQpCkBAIC0zNDQsNyArMzQ0LDcg
QEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNsZWFudXAoTG9hZFJlc3VsdCByZXN1bHQp
CiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjb252ZXJ0VG9Eb3dubG9hZChEb3dubG9h
ZElEIGRvd25sb2FkSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7Ci0gICAgUkVMRUFTRV9MT0coTG9hZGluZywgIkNv
bnZlcnRpbmcgTmV0d29ya1Jlc291cmNlTG9hZGVyICVwIHRvIGRvd25sb2FkICUiIFBSSXU2NCAi
IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlE
ID0gJSIgUFJJdTY0ICIpIiwgdGhpcywgZG93bmxvYWRJRC5kb3dubG9hZElEKCksIG1fcGFyYW1l
dGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQsIG1fcGFy
YW1ldGVycy5pZGVudGlmaWVyKTsKKyAgICBSRUxFQVNFX0xPRyhMb2FkaW5nLCAiQ29udmVydGlu
ZyBOZXR3b3JrUmVzb3VyY2VMb2FkZXIgJXAgdG8gZG93bmxvYWQgJSIgUFJJdTY0ICIgKHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQ
Ukl1NjQgIikiLCB0aGlzLCBkb3dubG9hZElELmRvd25sb2FkSUQoKSwgbV9wYXJhbWV0ZXJzLndl
YlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBt
X3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CiAgICAgCiAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlm
IHRoZSByZXNvdXJjZSBjYW1lIGZyb20gdGhlIGRpc2sgY2FjaGUuCiAgICAgaWYgKCFtX25ldHdv
cmtMb2FkKSB7CkBAIC0zNjIsNyArMzYyLDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OmFib3J0KCkKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgiYWJvcnQ6IENhbmNlbGluZyByZXNvdXJjZSBsb2FkIChwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0
ICIpIiwKLSAgICAgICAgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFt
ZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIpOworICAgICAgICBtX3Bh
cmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRv
VUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVyKTsKIAogICAgIGlmIChtX3BhcmFtZXRl
cnMub3B0aW9ucy5rZWVwQWxpdmUgJiYgbV9yZXNwb25zZS5pc051bGwoKSAmJiAhbV9pc0tlcHRB
bGl2ZSkgewogICAgICAgICBtX2lzS2VwdEFsaXZlID0gdHJ1ZTsKQEAgLTQ0Nyw3ICs0NDcsNyBA
QCBib29sIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2hvdWxkSW50ZXJydXB0TG9hZEZvckNTUEZy
YW1lQW5jZXN0b3JzT3JYRnJhbWVPcHRpbwogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJiByZWNlaXZlZFJlc3BvbnNlLCBS
ZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiAocGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBo
dHRwU3RhdHVzQ29kZSA9ICVkLCBsZW5ndGggPSAlIiBQUklkNjQgIikiLCBtX3BhcmFtZXRlcnMu
d2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRl
cnMuaWRlbnRpZmllciwgcmVjZWl2ZWRSZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpLCByZWNlaXZl
ZFJlc3BvbnNlLmV4cGVjdGVkQ29udGVudExlbmd0aCgpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGh0dHBTdGF0dXNDb2Rl
ID0gJWQsIGxlbmd0aCA9ICUiIFBSSWQ2NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9V
SW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJz
LmlkZW50aWZpZXIsIHJlY2VpdmVkUmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSwgcmVjZWl2ZWRS
ZXNwb25zZS5leHBlY3RlZENvbnRlbnRMZW5ndGgoKSk7CiAKICAgICBtX3Jlc3BvbnNlID0gV1RG
TW92ZShyZWNlaXZlZFJlc3BvbnNlKTsKIApAQCAtNTI3LDcgKzUyNyw3IEBAIHZvaWQgTmV0d29y
a1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZSYmIHJl
Y2VpdmVkUmVzcG9uCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZUJ1ZmZl
cihSZWY8U2hhcmVkQnVmZmVyPiYmIGJ1ZmZlciwgaW50IHJlcG9ydGVkRW5jb2RlZERhdGFMZW5n
dGgpCiB7CiAgICAgaWYgKCFtX251bUJ5dGVzUmVjZWl2ZWQpCi0gICAgICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoImRpZFJlY2VpdmVCdWZmZXI6IFN0YXJ0ZWQgcmVjZWl2aW5nIGRhdGEgKHBh
Z2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAl
IiBQUkl1NjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1fcGFyYW1l
dGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcik7CisgICAgICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVCdWZmZXI6IFN0YXJ0ZWQgcmVjZWl2aW5nIGRh
dGEgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNl
SUQgPSAlIiBQUkl1NjQgIikiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1f
cGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVy
KTsKICAgICBtX251bUJ5dGVzUmVjZWl2ZWQgKz0gYnVmZmVyLT5zaXplKCk7CiAKICAgICBBU1NF
UlQoIW1fY2FjaGVFbnRyeUZvclZhbGlkYXRpb24pOwpAQCAtNTU2LDcgKzU1Niw3IEBAIHZvaWQg
TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlQnVmZmVyKFJlZjxTaGFyZWRCdWZmZXI+
JiYgYnVmZmVyLCBpbnQgcmVwCiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRGaW5p
c2hMb2FkaW5nKGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRNZXRyaWNzKQog
ewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZpbmlzaExvYWRpbmc6IChwYWdlSUQg
PSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJ
dTY0ICIsIGxlbmd0aCA9ICV6ZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCks
IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgbV9udW1C
eXRlc1JlY2VpdmVkKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRGaW5pc2hMb2Fk
aW5nOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3Vy
Y2VJRCA9ICUiIFBSSXU2NCAiLCBsZW5ndGggPSAlemQpIiwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJ
RC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBtX3BhcmFt
ZXRlcnMuaWRlbnRpZmllciwgbV9udW1CeXRlc1JlY2VpdmVkKTsKIAogICAgIGlmIChzaG91bGRD
YXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MoKSkKICAgICAgICAgbV9jb25uZWN0aW9uLT5h
ZGROZXR3b3JrTG9hZEluZm9ybWF0aW9uTWV0cmljcyhpZGVudGlmaWVyKCksIG5ldHdvcmtMb2Fk
TWV0cmljcyk7CkBAIC01OTEsNyArNTkxLDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OmRpZEZpbmlzaExvYWRpbmcoY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3JrTG8KIAog
dm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxMb2FkaW5nKGNvbnN0IFJlc291cmNl
RXJyb3ImIGVycm9yKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZhaWxMb2Fk
aW5nOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3Vy
Y2VJRCA9ICUiIFBSSXU2NCAiLCBpc1RpbWVvdXQgPSAlZCwgaXNDYW5jZWxsYXRpb24gPSAlZCwg
aXNBY2Nlc3NDb250cm9sID0gJWQsIGVyckNvZGUgPSAlZCkiLCBtX3BhcmFtZXRlcnMud2ViUGFn
ZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELCBtX3BhcmFtZXRlcnMuaWRl
bnRpZmllciwgZXJyb3IuaXNUaW1lb3V0KCksIGVycm9yLmlzQ2FuY2VsbGF0aW9uKCksIGVycm9y
LmlzQWNjZXNzQ29udHJvbCgpLCBlcnJvci5lcnJvckNvZGUoKSk7CisgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgiZGlkRmFpbExvYWRpbmc6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJ
RCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGlzVGltZW91dCA9ICVk
LCBpc0NhbmNlbGxhdGlvbiA9ICVkLCBpc0FjY2Vzc0NvbnRyb2wgPSAlZCwgZXJyQ29kZSA9ICVk
KSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZy
YW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGVycm9yLmlzVGltZW91
dCgpLCBlcnJvci5pc0NhbmNlbGxhdGlvbigpLCBlcnJvci5pc0FjY2Vzc0NvbnRyb2woKSwgZXJy
b3IuZXJyb3JDb2RlKCkpOwogCiAgICAgaWYgKHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2Fk
TWV0cmljcygpKQogICAgICAgICBtX2Nvbm5lY3Rpb24tPnJlbW92ZU5ldHdvcmtMb2FkSW5mb3Jt
YXRpb24oaWRlbnRpZmllcigpKTsKQEAgLTc1Niw3ICs3NTYsNyBAQCB2b2lkIE5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6Y29udGludWVXaWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgbmV3
UmVxdWVzdAogICAgICAgICB9CiAgICAgfQogCi0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgi
Y29udGludWVXaWxsU2VuZFJlcXVlc3Q6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9
ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV9wYXJhbWV0ZXJzLndl
YlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRCwgbV9wYXJhbWV0ZXJz
LmlkZW50aWZpZXIpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImNvbnRpbnVlV2lsbFNl
bmRSZXF1ZXN0OiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwg
cmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50
NjQoKSwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlk
ZW50aWZpZXIpOwogCiAgICAgbV9pc0FsbG93ZWRUb0Fza1VzZXJGb3JDcmVkZW50aWFscyA9IGlz
QWxsb3dlZFRvQXNrVXNlckZvckNyZWRlbnRpYWxzOwogCkBAIC0xMDExLDEyICsxMDExLDE3IEBA
IHN0YXRpYyBTdHJpbmcgZXNjYXBlRm9ySlNPTihTdHJpbmcgcykKIHN0YXRpYyBTdHJpbmcgZXNj
YXBlSURGb3JKU09OKGNvbnN0IE9wdGlvbmFsPHVpbnQ2NF90PiYgdmFsdWUpCiB7CiAgICAgcmV0
dXJuIHZhbHVlID8gU3RyaW5nOjpudW1iZXIodmFsdWUudmFsdWUoKSkgOiBTdHJpbmcoIk5vbmUi
X3MpOwotfTsKK30KKworc3RhdGljIFN0cmluZyBlc2NhcGVJREZvckpTT04oY29uc3QgT3B0aW9u
YWw8RnJhbWVJZGVudGlmaWVyPiYgdmFsdWUpCit7CisgICAgcmV0dXJuIHZhbHVlID8gU3RyaW5n
OjpudW1iZXIodmFsdWUtPnRvVUludDY0KCkpIDogU3RyaW5nKCJOb25lIl9zKTsKK30KIAogc3Rh
dGljIFN0cmluZyBlc2NhcGVJREZvckpTT04oY29uc3QgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+
JiB2YWx1ZSkKIHsKICAgICByZXR1cm4gdmFsdWUgPyBTdHJpbmc6Om51bWJlcih2YWx1ZS0+dG9V
SW50NjQoKSkgOiBTdHJpbmcoIk5vbmUiX3MpOwotfTsKK30KIAogdm9pZCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OmxvZ0Nvb2tpZUluZm9ybWF0aW9uKCkgY29uc3QKIHsKQEAgLTEwMjgsNyArMTAz
Myw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpsb2dDb29raWVJbmZvcm1hdGlvbigp
IGNvbnN0CiAgICAgbG9nQ29va2llSW5mb3JtYXRpb24obV9jb25uZWN0aW9uLCAiTmV0d29ya1Jl
c291cmNlTG9hZGVyIiwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB2b2lkKj4odGhpcyksICpuZXR3
b3JrU3RvcmFnZVNlc3Npb24sIG9yaWdpbmFsUmVxdWVzdCgpLmZpcnN0UGFydHlGb3JDb29raWVz
KCksIFNhbWVTaXRlSW5mbzo6Y3JlYXRlKG9yaWdpbmFsUmVxdWVzdCgpKSwgb3JpZ2luYWxSZXF1
ZXN0KCkudXJsKCksIG9yaWdpbmFsUmVxdWVzdCgpLmh0dHBSZWZlcnJlcigpLCBmcmFtZUlEKCks
IHBhZ2VJRCgpLCBpZGVudGlmaWVyKCkpOwogfQogCi1zdGF0aWMgdm9pZCBsb2dCbG9ja2VkQ29v
a2llSW5mb3JtYXRpb24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24s
IGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29uc3QgV2Vi
Q29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24sIGNvbnN0
IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0
IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBPcHRpb25hbDx1aW50NjRfdD4gZnJh
bWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgT3B0aW9uYWw8dWludDY0X3Q+
IGlkZW50aWZpZXIpCitzdGF0aWMgdm9pZCBsb2dCbG9ja2VkQ29va2llSW5mb3JtYXRpb24oTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIGNvbnN0IFN0cmluZyYgbGFi
ZWwsIGNvbnN0IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3Jh
Z2VTZXNzaW9uJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwg
Y29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBT
dHJpbmcmIHJlZmVycmVyLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIE9wdGlv
bmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIE9wdGlvbmFsPHVpbnQ2NF90PiBpZGVudGlmaWVy
KQogewogICAgIEFTU0VSVChOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNob3VsZExvZ0Nvb2tpZUlu
Zm9ybWF0aW9uKGNvbm5lY3Rpb24sIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbi5zZXNzaW9uSUQoKSkp
OwogCkBAIC0xMDU1LDcgKzEwNjAsNyBAQCBzdGF0aWMgdm9pZCBsb2dCbG9ja2VkQ29va2llSW5m
b3JtYXRpb24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3RpbwogI3VuZGVm
IExPQ0FMX0xPR19JRl9BTExPV0VECiB9CiAKLXN0YXRpYyB2b2lkIGxvZ0Nvb2tpZUluZm9ybWF0
aW9uSW50ZXJuYWwoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIGNv
bnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29uc3QgV2ViQ29y
ZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24sIGNvbnN0IFVS
TCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8s
IGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgT3B0aW9uYWw8dWlu
dDY0X3Q+IGlkZW50aWZpZXIpCitzdGF0aWMgdm9pZCBsb2dDb29raWVJbmZvcm1hdGlvbkludGVy
bmFsKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBjb25zdCBTdHJp
bmcmIGxhYmVsLCBjb25zdCB2b2lkKiBsb2dnZWRPYmplY3QsIGNvbnN0IFdlYkNvcmU6Ok5ldHdv
cmtTdG9yYWdlU2Vzc2lvbiYgbmV0d29ya1N0b3JhZ2VTZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBV
UkwmIHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVy
PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBPcHRpb25hbDx1aW50
NjRfdD4gaWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQoTmV0d29ya1Jlc291cmNlTG9hZGVyOjpz
aG91bGRMb2dDb29raWVJbmZvcm1hdGlvbihjb25uZWN0aW9uLCBuZXR3b3JrU3RvcmFnZVNlc3Np
b24uc2Vzc2lvbklEKCkpKTsKIApAQCAtMTExNiw3ICsxMTIxLDcgQEAgc3RhdGljIHZvaWQgbG9n
Q29va2llSW5mb3JtYXRpb25JbnRlcm5hbChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYg
Y29ubmVjdGkKICN1bmRlZiBMT0NBTF9MT0dfSUZfQUxMT1dFRAogfQogCi12b2lkIE5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6bG9nQ29va2llSW5mb3JtYXRpb24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MmIGNvbm5lY3Rpb24sIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IHZvaWQqIGxv
Z2dlZE9iamVjdCwgY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBuZXR3b3JrU3RvcmFnZVNl
c3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0
ZUluZm8sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBPcHRpb25hbDx1
aW50NjRfdD4gZnJhbWVJRCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCwgT3B0aW9u
YWw8dWludDY0X3Q+IGlkZW50aWZpZXIpCit2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6bG9n
Q29va2llSW5mb3JtYXRpb24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rp
b24sIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IHZvaWQqIGxvZ2dlZE9iamVjdCwgY29uc3Qg
TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBuZXR3b3JrU3RvcmFnZVNlc3Npb24sIGNvbnN0IFVSTCYg
Zmlyc3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IGZy
YW1lSUQsIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQsIE9wdGlvbmFsPHVpbnQ2NF90
PiBpZGVudGlmaWVyKQogewogICAgIEFTU0VSVChzaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbihj
b25uZWN0aW9uLCBuZXR3b3JrU3RvcmFnZVNlc3Npb24uc2Vzc2lvbklEKCkpKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIu
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgK
aW5kZXggNjJjNjVjZGRmZjdjYTBiMjBhMWMxOTA5OWI5ZjcxNWZhZTQ1NGE4ZS4uNzQ5MmRmMzJm
Nzk5NmUwOTAzYmU5MGRhMDA1ZTliMTQ2ZGExNWZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCkBAIC04NSw3ICs4NSw3
IEBAIHB1YmxpYzoKICAgICBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlv
blRvV2ViUHJvY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1fY29ubmVjdGlvbjsgfQogICAgIFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVycy5zZXNzaW9u
SUQ7IH0KICAgICBSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJl
dHVybiBtX3BhcmFtZXRlcnMuaWRlbnRpZmllcjsgfQotICAgIHVpbnQ2NF90IGZyYW1lSUQoKSBj
b25zdCB7IHJldHVybiBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRDsgfQorICAgIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9wYXJhbWV0ZXJzLndlYkZy
YW1lSUQ7IH0KICAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQoKSBjb25zdCB7IHJl
dHVybiBtX3BhcmFtZXRlcnMud2ViUGFnZUlEOyB9CiAKICAgICBzdHJ1Y3QgU3luY2hyb25vdXNM
b2FkRGF0YTsKQEAgLTExMiw3ICsxMTIsNyBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoUkVTT1VS
Q0VfTE9BRF9TVEFUSVNUSUNTKSAmJiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBzdGF0aWMg
Ym9vbCBzaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYsIGNvbnN0IFBBTDo6U2Vzc2lvbklEJik7Ci0gICAgc3RhdGljIHZvaWQgbG9nQ29va2ll
SW5mb3JtYXRpb24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBjb25zdCBTdHJpbmcm
IGxhYmVsLCBjb25zdCB2b2lkKiBsb2dnZWRPYmplY3QsIGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6U2Ft
ZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgT3B0
aW9uYWw8dWludDY0X3Q+IGlkZW50aWZpZXIpOworICAgIHN0YXRpYyB2b2lkIGxvZ0Nvb2tpZUlu
Zm9ybWF0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgY29uc3QgU3RyaW5nJiBs
YWJlbCwgY29uc3Qgdm9pZCogbG9nZ2VkT2JqZWN0LCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3Rv
cmFnZVNlc3Npb24mLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNhbWVT
aXRlSW5mbyYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIE9wdGlvbmFsPFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
PiwgT3B0aW9uYWw8dWludDY0X3Q+IGlkZW50aWZpZXIpOwogI2VuZGlmCiAKICAgICB2b2lkIGRp
c2FibGVFeHRyYU5ldHdvcmtMb2FkTWV0cmljc0NhcHR1cmUoKSB7IG1fc2hvdWxkQ2FwdHVyZUV4
dHJhTmV0d29ya0xvYWRNZXRyaWNzID0gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZS5oCmluZGV4IGQ5NGZjNzM4MGYxOWE1ZjVm
NWI3OGVhMzllZjFkNjVhOTIxMWVlNGYuLjg1ZDEwMGNhNmM3YzA1ZmI4YzNkMTJkMDNhNDQwMjgx
MTAzOTVlZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
TmV0d29ya0NhY2hlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9O
ZXR3b3JrQ2FjaGUuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZUVu
dHJ5LmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlU3RvcmFnZS5oIgogI2luY2x1ZGUgIlNoYXJl
YWJsZVJlc291cmNlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CkBAIC04
NSw3ICs4Niw3IEBAIGVudW0gY2xhc3MgVXNlRGVjaXNpb24gewogICAgIE5vRHVlVG9FeHBpcmVk
UmVkaXJlY3QKIH07CiAKLXVzaW5nIEdsb2JhbEZyYW1lSUQgPSBzdGQ6OnBhaXI8V2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IC8qd2ViRnJhbWVJRCovPjsKK3VzaW5nIEdsb2JhbEZy
YW1lSUQgPSBzdGQ6OnBhaXI8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcj47IC8vIEZJWE1FOiBVc2UgR2xvYmFsRnJhbWVJZGVudGlmaWVyLgogCiBlbnVt
IGNsYXNzIENhY2hlT3B0aW9uIDogdWludDhfdCB7CiAgICAgLy8gSW4gdGVzdGluZyBtb2RlIHdl
IHRyeSB0byBlbGltaW5hdGUgc291cmNlcyBvZiByYW5kb21uZXNzLiBDYWNoZSBkb2VzIG5vdCBz
aHJpbmsgYW5kIHRoZXJlIGFyZSBubyByZWFkIHRpbWVvdXRzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCmlu
ZGV4IDI3OTM1NzUzNWJlMWU4NGExM2QzMWZmN2ZjMzJlYzgyZTY5ZWRiOGYuLjQzYWQ2ZjFkZTQx
YzUxNjFkZDlkYjNiNjlhZjkxY2EzZjdhYjI0MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKQEAgLTQy
LDcgKzQyLDcgQEAgY2xhc3MgTmV0d29ya1Nlc3Npb25Db2NvYTsKIGNsYXNzIE5ldHdvcmtEYXRh
VGFza0NvY29hIGZpbmFsIDogcHVibGljIE5ldHdvcmtEYXRhVGFzayB7CiAgICAgZnJpZW5kIGNs
YXNzIE5ldHdvcmtTZXNzaW9uQ29jb2E7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxOZXR3b3Jr
RGF0YVRhc2s+IGNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNr
Q2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
dWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3Jl
OjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29y
ZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgV2ViQ29yZTo6Q29u
dGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIGJv
b2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9u
bHkgc2hvdWxkUHJlY29ubmVjdE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmln
YXRpb24sIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFt
ZSwgT3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4gbmV0d29ya0FjdGl2aXR5VHJhY2tl
cikKKyAgICBzdGF0aWMgUmVmPE5ldHdvcmtEYXRhVGFzaz4gY3JlYXRlKE5ldHdvcmtTZXNzaW9u
JiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50
aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZm
aW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgV2ViQ29yZTo6Q29udGVudEVuY29kaW5nU25p
ZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudEVuY29kaW5nU25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJS
ZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29u
bmVjdE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFtZU5hdmlnYXRpb24sIGJvb2wgZGF0
YVRhc2tJc0Zvck1haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JBbnlGcmFtZSwgT3B0aW9uYWw8TmV0
d29ya0FjdGl2aXR5VHJhY2tlcj4gbmV0d29ya0FjdGl2aXR5VHJhY2tlcikKICAgICB7CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtEYXRhVGFza0NvY29hKHNlc3Npb24sIGNs
aWVudCwgcmVxdWVzdCwgZnJhbWVJRCwgcGFnZUlELCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwg
c2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwgc2hvdWxkQ2xl
YXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgc2hvdWxkUHJlY29ubmVjdE9ubHksIGRh
dGFUYXNrSXNGb3JNYWluRnJhbWVOYXZpZ2F0aW9uLCBkYXRhVGFza0lzRm9yTWFpblJlc291cmNl
TmF2aWdhdGlvbkZvckFueUZyYW1lLCBuZXR3b3JrQWN0aXZpdHlUcmFja2VyKSk7CiAgICAgfQpA
QCAtNjksMTMgKzY5LDEzIEBAIHB1YmxpYzoKIAogICAgIFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0
cmljcyYgbmV0d29ya0xvYWRNZXRyaWNzKCkgeyByZXR1cm4gbV9uZXR3b3JrTG9hZE1ldHJpY3M7
IH0KIAotICAgIHVpbnQ2NF90IGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH07
CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBt
X2ZyYW1lSUQ7IH07CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKCkgY29uc3Qg
eyByZXR1cm4gbV9wYWdlSUQ7IH07CiAKICAgICBTdHJpbmcgZGVzY3JpcHRpb24oKSBjb25zdCBv
dmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vz
c2lvbiYsIE5ldHdvcmtEYXRhVGFza0NsaWVudCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3Jl
OjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5
LCBXZWJDb3JlOjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgYm9vbCBzaG91bGRDbGVh
clJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSwgYm9vbCBkYXRh
VGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlvbiwgYm9vbCBkYXRhVGFza0lzRm9yTWFpblJlc291
cmNlTmF2aWdhdGlvbkZvckFueUZyYW1lLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2Vy
Pik7CisgICAgTmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrRGF0
YVRhc2tDbGllbnQmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yZWRD
cmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBXZWJDb3Jl
OjpDb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lzRm9y
TWFpbkZyYW1lTmF2aWdhdGlvbiwgYm9vbCBkYXRhVGFza0lzRm9yTWFpblJlc291cmNlTmF2aWdh
dGlvbkZvckFueUZyYW1lLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPik7CiAKICAg
ICBib29sIHRyeVBhc3N3b3JkQmFzZWRBdXRoZW50aWNhdGlvbihjb25zdCBXZWJDb3JlOjpBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJik7CiAgICAg
dm9pZCBhcHBseVNuaWZmaW5nUG9saWNpZXNBbmRCaW5kUmVxdWVzdFRvSW5mZXJmYWNlSWZOZWVk
ZWQoX19zdHJvbmcgTlNVUkxSZXF1ZXN0KiYsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBib29s
IHNob3VsZENvbnRlbnRFbmNvZGluZ1NuaWZmKTsKQEAgLTkyLDcgKzkyLDcgQEAgcHJpdmF0ZToK
ICAgICBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gbV9zYW5kYm94RXh0ZW5zaW9uOwogICAgIFJl
dGFpblB0cjxOU1VSTFNlc3Npb25EYXRhVGFzaz4gbV90YXNrOwogICAgIFdlYkNvcmU6Ok5ldHdv
cmtMb2FkTWV0cmljcyBtX25ldHdvcmtMb2FkTWV0cmljczsKLSAgICB1aW50NjRfdCBtX2ZyYW1l
SUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fZnJhbWVJRDsKICAgICBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciBtX3BhZ2VJRDsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtEYXRhVGFza0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQppbmRleCA0MmU3YWNlNDI0YjJhYjhiYjAwYTM3
Yzk2M2VhOTdkNDQxMzE1YWUwLi5jMmU3YjM2ODU0ZTczOTVjYjY5MzBkNmUyNTc0OGM0YmFkNjAx
MjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtEYXRhVGFza0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KQEAgLTE3MCw3ICsxNzAsNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgY29tcHV0ZUlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZChOZXR3b3JrU2Vzc2lvbiYg
c2Vzc2lvbikKICAgICByZXR1cm4gc2Vzc2lvbi5zZXNzaW9uSUQoKS5pc0Fsd2F5c09uTG9nZ2lu
Z0FsbG93ZWQoKTsKIH0KIAotTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0Nv
Y29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVu
dCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0aENyZWRlbnRpYWxz
LCB1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNv
cmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJD
b3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBXZWJDb3JlOjpD
b250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50RW5jb2RpbmdTbmlmZiwg
Ym9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0
T25seSBzaG91bGRQcmVjb25uZWN0T25seSwgYm9vbCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2
aWdhdGlvbiwgYm9vbCBkYXRhVGFza0lzRm9yTWFpblJlc291cmNlTmF2aWdhdGlvbkZvckFueUZy
YW1lLCBPcHRpb25hbDxOZXR3b3JrQWN0aXZpdHlUcmFja2VyPiBuZXR3b3JrQWN0aXZpdHlUcmFj
a2VyKQorTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtT
ZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBX
ZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwg
V2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgV2ViQ29y
ZTo6Q29udGVudEVuY29kaW5nU25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudEVuY29kaW5nU25p
ZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29u
bmVjdE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHksIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5GcmFt
ZU5hdmlnYXRpb24sIGJvb2wgZGF0YVRhc2tJc0Zvck1haW5SZXNvdXJjZU5hdmlnYXRpb25Gb3JB
bnlGcmFtZSwgT3B0aW9uYWw8TmV0d29ya0FjdGl2aXR5VHJhY2tlcj4gbmV0d29ya0FjdGl2aXR5
VHJhY2tlcikKICAgICA6IE5ldHdvcmtEYXRhVGFzayhzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3RX
aXRoQ3JlZGVudGlhbHMsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDbGVhclJlZmVy
cmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBkYXRhVGFza0lzRm9yTWFpbkZyYW1lTmF2aWdhdGlv
bikKICAgICAsIG1fZnJhbWVJRChmcmFtZUlEKQogICAgICwgbV9wYWdlSUQocGFnZUlEKQpAQCAt
MjU2LDcgKzI1Niw3IEBAIE5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2Nv
YShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUCiAgICAgaWYgKHNob3VsZEJs
b2NrQ29va2llcykgewogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICAgICBpZiAobV9z
ZXNzaW9uLT5zaG91bGRMb2dDb29raWVJbmZvcm1hdGlvbigpKQotICAgICAgICAgICAgUkVMRUFT
RV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdvcmssICIlcCAtIE5ldHdv
cmtEYXRhVGFza0NvY29hOjpsb2dDb29raWVJbmZvcm1hdGlvbjogcGFnZUlEID0gJWxsdSwgZnJh
bWVJRCA9ICVsbHUsIHRhc2tJRCA9ICVsdTogQmxvY2tpbmcgY29va2llcyBmb3IgVVJMICVzIiwg
dGhpcywgcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQsICh1bnNpZ25lZCBsb25nKVttX3Rhc2sg
dGFza0lkZW50aWZpZXJdLCBuc1JlcXVlc3QuVVJMLmFic29sdXRlU3RyaW5nLlVURjhTdHJpbmcp
OworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCks
IE5ldHdvcmssICIlcCAtIE5ldHdvcmtEYXRhVGFza0NvY29hOjpsb2dDb29raWVJbmZvcm1hdGlv
bjogcGFnZUlEID0gJWxsdSwgZnJhbWVJRCA9ICVsbHUsIHRhc2tJRCA9ICVsdTogQmxvY2tpbmcg
Y29va2llcyBmb3IgVVJMICVzIiwgdGhpcywgcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9V
SW50NjQoKSwgKHVuc2lnbmVkIGxvbmcpW21fdGFzayB0YXNrSWRlbnRpZmllcl0sIG5zUmVxdWVz
dC5VUkwuYWJzb2x1dGVTdHJpbmcuVVRGOFN0cmluZyk7CiAjZWxzZQogICAgICAgICBMT0coTmV0
d29ya1Nlc3Npb24sICIlbGx1IEJsb2NraW5nIGNvb2tpZXMgZm9yIFVSTCAlcyIsIFttX3Rhc2sg
dGFza0lkZW50aWZpZXJdLCBuc1JlcXVlc3QuVVJMLmFic29sdXRlU3RyaW5nLlVURjhTdHJpbmcp
OwogI2VuZGlmCkBAIC0zOTAsNyArMzkwLDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6
d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYKICAg
ICB9CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgaWYgKG1fc2Vzc2lvbi0+c2hvdWxk
TG9nQ29va2llSW5mb3JtYXRpb24oKSkKLSAgICAgICAgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNP
bkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdvcmssICIlcCAtIE5ldHdvcmtEYXRhVGFza0NvY29hOjp3
aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbjo6bG9nQ29va2llSW5mb3JtYXRpb246IHBhZ2VJRCA9
ICVsbHUsIGZyYW1lSUQgPSAlbGx1LCB0YXNrSUQgPSAlbHU6ICVzIGNvb2tpZXMgZm9yIHJlZGly
ZWN0IFVSTCAlcyIsIHRoaXMsIG1fcGFnZUlELnRvVUludDY0KCksIG1fZnJhbWVJRCwgKHVuc2ln
bmVkIGxvbmcpW21fdGFzayB0YXNrSWRlbnRpZmllcl0sIChtX2hhc0JlZW5TZXRUb1VzZVN0YXRl
bGVzc0Nvb2tpZVN0b3JhZ2UgPyAiQmxvY2tpbmciIDogIk5vdCBibG9ja2luZyIpLCByZXF1ZXN0
LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBSRUxFQVNFX0xPR19JRihp
c0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29yaywgIiVwIC0gTmV0d29ya0RhdGFUYXNr
Q29jb2E6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uOjpsb2dDb29raWVJbmZvcm1hdGlvbjog
cGFnZUlEID0gJWxsdSwgZnJhbWVJRCA9ICVsbHUsIHRhc2tJRCA9ICVsdTogJXMgY29va2llcyBm
b3IgcmVkaXJlY3QgVVJMICVzIiwgdGhpcywgbV9wYWdlSUQudG9VSW50NjQoKSwgbV9mcmFtZUlE
LnRvVUludDY0KCksICh1bnNpZ25lZCBsb25nKVttX3Rhc2sgdGFza0lkZW50aWZpZXJdLCAobV9o
YXNCZWVuU2V0VG9Vc2VTdGF0ZWxlc3NDb29raWVTdG9yYWdlID8gIkJsb2NraW5nIiA6ICJOb3Qg
YmxvY2tpbmciKSwgcmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICNlbHNl
CiAgICAgTE9HKE5ldHdvcmtTZXNzaW9uLCAiJWxsdSAlcyBjb29raWVzIGZvciByZWRpcmVjdCBV
UkwgJXMiLCBbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgKG1faGFzQmVlblNldFRvVXNlU3RhdGVs
ZXNzQ29va2llU3RvcmFnZSA/ICJCbG9ja2luZyIgOiAiTm90IGJsb2NraW5nIiksIHJlcXVlc3Qu
dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IGYwZWM4ZGMxYjcxNjliY2NhNTVhNjU0OTEyZWQy
ZmVmNTM3MGRmMTAuLmMwMWU4OTU5ZTgwN2ZmNjI0ZWY4NTc3ZWIzNTU2NWU0MmQ5M2EzYjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMjA1LDYgKzIwNSw3
IEBAIGRlZiBmb3J3YXJkX2RlY2xhcmF0aW9uc19hbmRfaGVhZGVycyhyZWNlaXZlcik6CiAgICAg
ICAgICdTdHJpbmcnLAogICAgICAgICAnV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyJywKICAg
ICAgICAgJ1dlYkNvcmU6OkZldGNoSWRlbnRpZmllcicsCisgICAgICAgICdXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6UGFnZUlkZW50aWZpZXInLAogICAgICAg
ICAnV2ViQ29yZTo6UG9pbnRlcklEJywKICAgICAgICAgJ1dlYkNvcmU6OlByb2Nlc3NJZGVudGlm
aWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRs
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuY3BwCmluZGV4
IDc5NjQ2YWM2ZTU5YzQxZDRkZjcwOTAxZGJhN2UyNjc1MzM2ZDUyNGEuLjQwODAxMzg4NTQ4YTE4
MTFhYjU5ZTVjYjI0NWExMTUyMTE0MmJlZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0FQSS9BUElGcmFtZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJ
L0FQSUZyYW1lSGFuZGxlLmNwcApAQCAtMzEsMTcgKzMxLDE3IEBACiAKIG5hbWVzcGFjZSBBUEkg
ewogCi1SZWY8RnJhbWVIYW5kbGU+IEZyYW1lSGFuZGxlOjpjcmVhdGUodWludDY0X3QgZnJhbWVJ
RCkKK1JlZjxGcmFtZUhhbmRsZT4gRnJhbWVIYW5kbGU6OmNyZWF0ZShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGcmFtZUhhbmRs
ZShmcmFtZUlELCBmYWxzZSkpOwogfQogCi1SZWY8RnJhbWVIYW5kbGU+IEZyYW1lSGFuZGxlOjpj
cmVhdGVBdXRvY29udmVydGluZyh1aW50NjRfdCBmcmFtZUlEKQorUmVmPEZyYW1lSGFuZGxlPiBG
cmFtZUhhbmRsZTo6Y3JlYXRlQXV0b2NvbnZlcnRpbmcoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRnJhbWVIYW5kbGUoZnJhbWVJ
RCwgdHJ1ZSkpOwogfQogCi1GcmFtZUhhbmRsZTo6RnJhbWVIYW5kbGUodWludDY0X3QgZnJhbWVJ
RCwgYm9vbCBpc0F1dG9jb252ZXJ0aW5nKQorRnJhbWVIYW5kbGU6OkZyYW1lSGFuZGxlKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzQXV0b2NvbnZlcnRpbmcpCiAgICAg
OiBtX2ZyYW1lSUQoZnJhbWVJRCkKICAgICAsIG1faXNBdXRvY29udmVydGluZyhpc0F1dG9jb252
ZXJ0aW5nKQogewpAQCAtNTksNyArNTksNyBAQCB2b2lkIEZyYW1lSGFuZGxlOjplbmNvZGUoSVBD
OjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogCiBib29sIEZyYW1lSGFuZGxlOjpkZWNvZGUoSVBD
OjpEZWNvZGVyJiBkZWNvZGVyLCBSZWZQdHI8T2JqZWN0PiYgcmVzdWx0KQogewotICAgIHVpbnQ2
NF90IGZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQ7CiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShmcmFtZUlEKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJRnJhbWVIYW5kbGUuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRsZS5oCmluZGV4IGIxMGU4MDhhNGIx
OWFkMzEzZDhiNDU1YzIzYjlkODM5OWNjMzg1NTAuLjFjNjRhNGFkMWU4MDJhMDQ2NzI5ODFiY2Jm
OGE3NjAxNjQyNWZmZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElG
cmFtZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElGcmFtZUhhbmRs
ZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIEFQSUZyYW1lSGFuZGxlX2gKIAogI2luY2x1
ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZi5oPgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTM4LDIwICszOSwyMCBA
QCBuYW1lc3BhY2UgQVBJIHsKIAogY2xhc3MgRnJhbWVIYW5kbGUgOiBwdWJsaWMgT2JqZWN0SW1w
bDxPYmplY3Q6OlR5cGU6OkZyYW1lSGFuZGxlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxG
cmFtZUhhbmRsZT4gY3JlYXRlKHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHN0YXRpYyBSZWY8RnJh
bWVIYW5kbGU+IGNyZWF0ZUF1dG9jb252ZXJ0aW5nKHVpbnQ2NF90IGZyYW1lSUQpOworICAgIHN0
YXRpYyBSZWY8RnJhbWVIYW5kbGU+IGNyZWF0ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwor
ICAgIHN0YXRpYyBSZWY8RnJhbWVIYW5kbGU+IGNyZWF0ZUF1dG9jb252ZXJ0aW5nKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcik7CiAKLSAgICBleHBsaWNpdCBGcmFtZUhhbmRsZSh1aW50NjRfdCBm
cmFtZUlELCBib29sIGlzQXV0b2NvbnZlcnRpbmcpOworICAgIGV4cGxpY2l0IEZyYW1lSGFuZGxl
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBpc0F1dG9jb252ZXJ0aW5nKTsKICAgICB2
aXJ0dWFsIH5GcmFtZUhhbmRsZSgpOwogCi0gICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IHsg
cmV0dXJuIG1fZnJhbWVJRDsgfQorICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
KCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9CiAgICAgYm9vbCBpc0F1dG9jb252ZXJ0aW5n
KCkgY29uc3QgeyByZXR1cm4gbV9pc0F1dG9jb252ZXJ0aW5nOyB9CiAKICAgICB2b2lkIGVuY29k
ZShJUEM6OkVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpEZWNv
ZGVyJiwgUmVmUHRyPE9iamVjdD4mKTsKIAogcHJpdmF0ZToKLSAgICBjb25zdCB1aW50NjRfdCBt
X2ZyYW1lSUQ7CisgICAgY29uc3QgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fZnJhbWVJRDsK
ICAgICBjb25zdCBib29sIG1faXNBdXRvY29udmVydGluZzsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5tbSBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5tbQppbmRleCBhNDFhNjEzYTdk
MzcxZDdhZTJhNzNlNDA1ODI3YjBhYmQ3MzU3MDcwLi5lZGNiMzhlNjM1YTdiZjA5MjdiMTEwY2M3
ZDRjZjk3NjZhYjVkMDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29j
b2EvX1dLRnJhbWVIYW5kbGUubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29h
L19XS0ZyYW1lSGFuZGxlLm1tCkBAIC0yNiw2ICsyNiw4IEBACiAjaW1wb3J0ICJjb25maWcuaCIK
ICNpbXBvcnQgIl9XS0ZyYW1lSGFuZGxlSW50ZXJuYWwuaCIKIAorI2ltcG9ydCA8V2ViQ29yZS9G
cmFtZUlkZW50aWZpZXIuaD4KKwogQGltcGxlbWVudGF0aW9uIF9XS0ZyYW1lSGFuZGxlIHsKICAg
ICBBUEk6Ok9iamVjdFN0b3JhZ2U8QVBJOjpGcmFtZUhhbmRsZT4gX2ZyYW1lSGFuZGxlOwogfQpA
QCAtNTAsMTIgKzUyLDEyIEBAIC0gKEJPT0wpaXNFcXVhbDooaWQpb2JqZWN0CiAKIC0gKE5TVUlu
dGVnZXIpaGFzaAogewotICAgIHJldHVybiBfZnJhbWVIYW5kbGUtPmZyYW1lSUQoKTsKKyAgICBy
ZXR1cm4gX2ZyYW1lSGFuZGxlLT5mcmFtZUlEKCkudG9VSW50NjQoKTsKIH0KIAogLSAodWludDY0
X3QpX2ZyYW1lSUQKIHsKLSAgICByZXR1cm4gX2ZyYW1lSGFuZGxlLT5mcmFtZUlEKCk7CisgICAg
cmV0dXJuIF9mcmFtZUhhbmRsZS0+ZnJhbWVJRCgpLnRvVUludDY0KCk7CiB9CiAKICNwcmFnbWEg
bWFyayBOU0NvcHlpbmcgcHJvdG9jb2wgaW1wbGVtZW50YXRpb24KQEAgLTgzLDE0ICs4NSwxNCBA
QCAtIChpZClpbml0V2l0aENvZGVyOihOU0NvZGVyICopZGVjb2RlcgogICAgICAgICByZXR1cm4g
bmlsOwogICAgIH0KIAotICAgIEFQSTo6T2JqZWN0Ojpjb25zdHJ1Y3RJbldyYXBwZXI8QVBJOjpG
cmFtZUhhbmRsZT4oc2VsZiwgZnJhbWVJRC51bnNpZ25lZExvbmdMb25nVmFsdWUsIGZhbHNlKTsK
KyAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVyPEFQSTo6RnJhbWVIYW5kbGU+KHNl
bGYsIFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRChmcmFtZUlELnVuc2lnbmVkTG9uZ0xv
bmdWYWx1ZSksIGZhbHNlKTsKIAogICAgIHJldHVybiBzZWxmOwogfQogCiAtICh2b2lkKWVuY29k
ZVdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCiB7Ci0gICAgW2NvZGVyIGVuY29kZU9iamVjdDpA
KF9mcmFtZUhhbmRsZS0+ZnJhbWVJRCgpKSBmb3JLZXk6QCJmcmFtZUlEIl07CisgICAgW2NvZGVy
IGVuY29kZU9iamVjdDpAKFtzZWxmIF9mcmFtZUlEXSkgZm9yS2V5OkAiZnJhbWVJRCJdOwogfQog
CiAjcHJhZ21hIG1hcmsgV0tPYmplY3QgcHJvdG9jb2wgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNh
dGlvbk1hbmFnZXIuY3BwCmluZGV4IDlkZWI3NmZmMTMyYzZjYjVmZGY1ZWJmNTIyMjM0ZjZkNDQz
ZWY5NGQuLjM4YTViZmY2YWZkMjU3MWQ1MmRjZTRjMDk4MDRhYTc1NDRhYmU0ZjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFu
YWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVu
dGljYXRpb25NYW5hZ2VyLmNwcApAQCAtMTA4LDcgKzEwOCw3IEBAIFZlY3Rvcjx1aW50NjRfdD4g
QXV0aGVudGljYXRpb25NYW5hZ2VyOjpjb2FsZXNjZUNoYWxsZW5nZXNNYXRjaGluZyh1aW50NjRf
dCBjaGFsCiAgICAgcmV0dXJuIGNoYWxsZW5nZXNUb0NvYWxlc2NlOwogfQogCi12b2lkIEF1dGhl
bnRpY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFu
ZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYXV0
aGVudGljYXRpb25DaGFsbGVuZ2UsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKHBhZ2VJRCk7CiAgICAgQVNTRVJUKGZyYW1lSUQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVu
dGljYXRpb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9B
dXRoZW50aWNhdGlvbk1hbmFnZXIuaAppbmRleCA4NmU3NDRjMTA4ZGY0Y2JjZjVkMDQ3NjA5YWNm
OTZjNjgyM2Q2YjE2Li40MDM2ZWFiNzdmZDljZTE1NTUzMGZiNmE0Y2M1NjE2ODNkN2VkOTFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNh
dGlvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9B
dXRoZW50aWNhdGlvbk1hbmFnZXIuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIk5ldHdv
cmtQcm9jZXNzU3VwcGxlbWVudC5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NTdXBwbGVtZW50Lmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRp
Zmllci5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CkBAIC02MSw3ICs2Miw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25z
dCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgQ2hhbGxlbmdlQ29tcGxl
dGlvbkhhbmRsZXImJik7CisgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21wbGV0aW9u
SGFuZGxlciYmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShJ
UEM6Ok1lc3NhZ2VTZW5kZXImIGRvd25sb2FkLCBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYpOwogCiAgICAgdm9pZCBj
b21wbGV0ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHVpbnQ2NF90IGNoYWxsZW5nZUlELCBBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uLCBXZWJDb3JlOjpDcmVkZW50aWFsJiYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRnJhbWVJbmZvRGF0YS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9GcmFtZUluZm9EYXRhLmNwcAppbmRleCA5NDQyMzc0NTY1ODE2ZjRl
ODgwNDBmZjA4NGUwYzFhM2JlNTMxZmY0Li4zZTlkNzJlYWQ1M2M1ODMyYzQzMzE3MzRiNzA3NDFm
ZGIzNGEyMTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9GcmFtZUluZm9EYXRh
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9GcmFtZUluZm9EYXRhLmNwcApAQCAtNDks
OCArNDksMTIgQEAgYm9vbCBGcmFtZUluZm9EYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNv
ZGVyLCBGcmFtZUluZm9EYXRhJiByZXN1bHQpCiAgICAgaWYgKCFzZWN1cml0eU9yaWdpbikKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJlc3VsdC5zZWN1cml0eU9yaWdpbiA9IFdURk1vdmUo
KnNlY3VyaXR5T3JpZ2luKTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5mcmFtZUlE
KSkKKyAgICAKKyAgICBPcHRpb25hbDxPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+PiBmcmFtZUlE
OworICAgIGRlY29kZXIgPj4gZnJhbWVJRDsKKyAgICBpZiAoIWZyYW1lSUQpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICByZXN1bHQuZnJhbWVJRCA9IFdURk1vdmUoKmZyYW1lSUQpOwogCiAg
ICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9GcmFt
ZUluZm9EYXRhLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9GcmFtZUluZm9EYXRhLmgKaW5kZXgg
YTgyODM2ODZmMTZhYjNjZDM1MjQ5Y2U3MDVkM2YyYjhlN2JiM2M2Ni4uNTM4NzE2ZWIyMWViNTQw
YTQxNzc5YzdlNmI4ZmZkNDM1MmZiYzEzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvRnJhbWVJbmZvRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZyYW1lSW5mb0Rh
dGEuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPFdlYkNv
cmUvRnJhbWVJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3Qu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgogCkBAIC00Miw3ICs0
Myw3IEBAIHN0cnVjdCBGcmFtZUluZm9EYXRhIHsKICAgICBib29sIGlzTWFpbkZyYW1lIHsgZmFs
c2UgfTsKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdDsKICAgICBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEgc2VjdXJpdHlPcmlnaW47Ci0gICAgdWludDY0X3QgZnJhbWVJ
RCB7IDAgfTsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQ7
CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJRnJh
bWVJbmZvLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElGcmFtZUluZm8uY3Bw
CmluZGV4IDk2YjEzZDE3ODU0NDVjMzk3MzNiMmYwNDhhNjBmMjAyMTUwOGM4YzguLjgyOTcyOGI5
MWQ2MWFhMjYwNDc1ZTJhMWM5MWQyNDIwZTk3ODYwZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElGcmFtZUluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElGcmFtZUluZm8uY3BwCkBAIC01NSw3ICs1NSw3IEBAIEZyYW1lSW5mbzo6
RnJhbWVJbmZvKGNvbnN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSYgZnJhbWVJbmZvRGF0YSwgV2Vi
S2l0OjpXZWJQYWdlCiAgICAgOiBtX2lzTWFpbkZyYW1lIHsgZnJhbWVJbmZvRGF0YS5pc01haW5G
cmFtZSB9CiAgICAgLCBtX3JlcXVlc3QgeyBmcmFtZUluZm9EYXRhLnJlcXVlc3QgfQogICAgICwg
bV9zZWN1cml0eU9yaWdpbiB7IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoZnJhbWVJbmZvRGF0YS5z
ZWN1cml0eU9yaWdpbi5zZWN1cml0eU9yaWdpbigpKSB9Ci0gICAgLCBtX2hhbmRsZSB7IEFQSTo6
RnJhbWVIYW5kbGU6OmNyZWF0ZShmcmFtZUluZm9EYXRhLmZyYW1lSUQpIH0KKyAgICAsIG1faGFu
ZGxlIHsgQVBJOjpGcmFtZUhhbmRsZTo6Y3JlYXRlKGZyYW1lSW5mb0RhdGEuZnJhbWVJRCA/ICpm
cmFtZUluZm9EYXRhLmZyYW1lSUQgOiBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXJ7IH0pIH0KICAg
ICAsIG1fcGFnZSB7IG1ha2VSZWZQdHIocGFnZSkgfQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tGcmFtZUhhbmRsZVJlZi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lSGFuZGxlUmVmLmNwcAppbmRleCBiMzlmY2ExYmU1
N2YwZDI3NGQ4NDU3ZjA0M2Y1MGVhYjYyZjIzYzU4Li5lODczZmM0NjUxZDUyNjkzODkzNjlmYzYw
YTc4MDI2NTQyMDVkZDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS0ZyYW1lSGFuZGxlUmVmLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS0ZyYW1lSGFuZGxlUmVmLmNwcApAQCAtMzgsNSArMzgsNSBAQCBXS1R5cGVJRCBXS0ZyYW1l
SGFuZGxlR2V0VHlwZUlEKCkKIAogdWludDY0X3QgV0tGcmFtZUhhbmRsZUdldEZyYW1lSUQoV0tG
cmFtZUhhbmRsZVJlZiBmcmFtZUhhbmRsZVJlZikKIHsKLSAgICByZXR1cm4gdG9JbXBsKGZyYW1l
SGFuZGxlUmVmKS0+ZnJhbWVJRCgpOworICAgIHJldHVybiB0b0ltcGwoZnJhbWVIYW5kbGVSZWYp
LT5mcmFtZUlEKCkudG9VSW50NjQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDAzOTFhMTk5MmUzNTMyZGJlNWYyMWRiNjkxZGQ4
MTA4YWFlMmE2NmMuLjA5NTFlOTQ0MzdiY2U0NjY1ZDYxNWJkMDQwZDI2ZGYyMGI2NGRmMzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAt
NjYyMSw3ICs2NjIxLDcgQEAgLSAoTlNQcmludE9wZXJhdGlvbiAqKV9wcmludE9wZXJhdGlvbldp
dGhQcmludEluZm86KE5TUHJpbnRJbmZvICopcHJpbnRJbmZvCiAKIC0gKE5TUHJpbnRPcGVyYXRp
b24gKilfcHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvOihOU1ByaW50SW5mbyAqKXByaW50SW5m
byBmb3JGcmFtZTooX1dLRnJhbWVIYW5kbGUgKilmcmFtZUhhbmRsZQogewotICAgIGlmIChhdXRv
KiB3ZWJGcmFtZVByb3h5ID0gX3BhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUhhbmRsZS5f
ZnJhbWVJRCkpCisgICAgaWYgKGF1dG8qIHdlYkZyYW1lUHJveHkgPSBfcGFnZS0+cHJvY2Vzcygp
LndlYkZyYW1lKFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRChmcmFtZUhhbmRsZS5fZnJh
bWVJRCkpKQogICAgICAgICByZXR1cm4gX2ltcGwtPnByaW50T3BlcmF0aW9uV2l0aFByaW50SW5m
byhwcmludEluZm8sICp3ZWJGcmFtZVByb3h5KTsKICAgICByZXR1cm4gbmlsOwogfQpAQCAtNzEx
NCw3ICs3MTE0LDcgQEAgLSAodm9pZClfY29tcGxldGVJbW1lZGlhdGVBY3Rpb25BbmltYXRpb24K
IAogLSAoQk9PTClfY2FuQ2hhbmdlRnJhbWVMYXlvdXQ6KF9XS0ZyYW1lSGFuZGxlICopZnJhbWVI
YW5kbGUKIHsKLSAgICBpZiAoYXV0byogd2ViRnJhbWVQcm94eSA9IF9wYWdlLT5wcm9jZXNzKCku
d2ViRnJhbWUoZnJhbWVIYW5kbGUuX2ZyYW1lSUQpKQorICAgIGlmIChhdXRvKiB3ZWJGcmFtZVBy
b3h5ID0gX3BhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShXZWJDb3JlOjpmcmFtZUlkZW50aWZpZXJG
cm9tSUQoZnJhbWVIYW5kbGUuX2ZyYW1lSUQpKSkKICAgICAgICAgcmV0dXJuIF9pbXBsLT5jYW5D
aGFuZ2VGcmFtZUxheW91dCgqd2ViRnJhbWVQcm94eSk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rv
ci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW0K
aW5kZXggYzQ5OWIxOGZhOTM4OGE0NTg0MzE0NzcwOGQzZDI5NmRkNTMyOTBhNC4uM2QxNWVjMmVl
YTc5MTFiMmEzOWQ2NDA4NzkzNmJmNGVhNjM0MTNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCkBAIC0zMCw2ICszMCw3IEBACiAj
aW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbXBvcnQgIl9XS0ZyYW1lSGFuZGxlSW50ZXJu
YWwuaCIKICNpbXBvcnQgIl9XS0luc3BlY3RvckludGVybmFsLmgiCisjaW1wb3J0IDxXZWJDb3Jl
L0ZyYW1lSWRlbnRpZmllci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiBAaW1wbGVt
ZW50YXRpb24gX1dLSW5zcGVjdG9yCkBAIC05OSw3ICsxMDAsNyBAQCAtICh2b2lkKXNob3dSZXNv
dXJjZXMKIC0gKHZvaWQpc2hvd01haW5SZXNvdXJjZUZvckZyYW1lOihfV0tGcmFtZUhhbmRsZSAq
KWZyYW1lCiB7CiAgICAgaWYgKGF1dG8qIHBhZ2UgPSBfaW5zcGVjdG9yLT5pbnNwZWN0ZWRQYWdl
KCkpCi0gICAgICAgIF9pbnNwZWN0b3ItPnNob3dNYWluUmVzb3VyY2VGb3JGcmFtZShwYWdlLT5w
cm9jZXNzKCkud2ViRnJhbWUoZnJhbWUuX2ZyYW1lSUQpKTsKKyAgICAgICAgX2luc3BlY3Rvci0+
c2hvd01haW5SZXNvdXJjZUZvckZyYW1lKHBhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShXZWJDb3Jl
OjpmcmFtZUlkZW50aWZpZXJGcm9tSUQoZnJhbWUuX2ZyYW1lSUQpKSk7CiB9CiAKIC0gKHZvaWQp
YXR0YWNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1Np
bXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRv
bWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5jcHAKaW5kZXggN2FjYzY4YmFlZmVhYjA3
M2JmNjYwZjZjMGJjZTVlZmI5N2I1YWU2Mi4uZDg3NDhlZWE3ZmM2ZGFlMTU0MjZhZGFlYTk2OWI3
NGJkZWU2M2RjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlv
bi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmNwcApAQCAtMzgyLDcgKzM4
Miw3IEBAIHZvaWQgU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyOjp0cmFuc2l0aW9uSW5wdXRTb3Vy
Y2VUb1N0YXRlKFNpbXVsYXRlZElucHV0U291cmNlCiAgICAgfQogfQogCi12b2lkIFNpbXVsYXRl
ZElucHV0RGlzcGF0Y2hlcjo6cnVuKHVpbnQ2NF90IGZyYW1lSUQsIFZlY3RvcjxTaW11bGF0ZWRJ
bnB1dEtleUZyYW1lPiYmIGtleUZyYW1lcywgSGFzaFNldDxSZWY8U2ltdWxhdGVkSW5wdXRTb3Vy
Y2U+PiYgaW5wdXRTb3VyY2VzLCBBdXRvbWF0aW9uQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0
aW9uSGFuZGxlcikKK3ZvaWQgU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyOjpydW4oV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFZlY3RvcjxTaW11bGF0ZWRJbnB1dEtleUZyYW1lPiYm
IGtleUZyYW1lcywgSGFzaFNldDxSZWY8U2ltdWxhdGVkSW5wdXRTb3VyY2U+PiYgaW5wdXRTb3Vy
Y2VzLCBBdXRvbWF0aW9uQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBBU1NFUlQoIWlzQWN0aXZlKCkpOwogICAgIGlmIChpc0FjdGl2ZSgpKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlz
cGF0Y2hlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJ
bnB1dERpc3BhdGNoZXIuaAppbmRleCA3ZjQxNDFjZTBhMzllNTYwNzNjN2VjOGE5NjU2MGNiYzM0
OGFkZmE2Li5iMDg5MWE4ZjBiNjc1MjljYjliMzk4NmI4Nzk1MzA3MTJhNGFhZDQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlz
cGF0Y2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxh
dGVkSW5wdXREaXNwYXRjaGVyLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoV0VCRFJJ
VkVSX0FDVElPTlNfQVBJKQogCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL0ZyYW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5o
PgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CkBA
IC0xMzIsNyArMTMzLDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShXRUJEUklWRVJfS0VZQk9BUkRf
SU5URVJBQ1RJT05TKQogICAgICAgICB2aXJ0dWFsIHZvaWQgc2ltdWxhdGVLZXlib2FyZEludGVy
YWN0aW9uKFdlYlBhZ2VQcm94eSYsIEtleWJvYXJkSW50ZXJhY3Rpb24sIFdURjo6VmFyaWFudDxW
aXJ0dWFsS2V5LCBDaGFyS2V5PiYmLCBBdXRvbWF0aW9uQ29tcGxldGlvbkhhbmRsZXImJikgPSAw
OwogI2VuZGlmCi0gICAgICAgIHZpcnR1YWwgdm9pZCB2aWV3cG9ydEluVmlld0NlbnRlclBvaW50
T2ZFbGVtZW50KFdlYlBhZ2VQcm94eSYsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYg
bm9kZUhhbmRsZSwgRnVuY3Rpb248dm9pZCAoT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBP
cHRpb25hbDxBdXRvbWF0aW9uQ29tbWFuZEVycm9yPik+JiYpID0gMDsKKyAgICAgICAgdmlydHVh
bCB2b2lkIHZpZXdwb3J0SW5WaWV3Q2VudGVyUG9pbnRPZkVsZW1lbnQoV2ViUGFnZVByb3h5Jiwg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5vZGVIYW5kbGUsIEZ1bmN0
aW9uPHZvaWQgKE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiwgT3B0aW9uYWw8QXV0b21hdGlv
bkNvbW1hbmRFcnJvcj4pPiYmKSA9IDA7CiAgICAgfTsKIAogICAgIHN0YXRpYyBSZWY8U2ltdWxh
dGVkSW5wdXREaXNwYXRjaGVyPiBjcmVhdGUoV2ViUGFnZVByb3h5JiBwYWdlLCBTaW11bGF0ZWRJ
bnB1dERpc3BhdGNoZXI6OkNsaWVudCYgY2xpZW50KQpAQCAtMTQyLDcgKzE0Myw3IEBAIHB1Ymxp
YzoKIAogICAgIH5TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIoKTsKIAotICAgIHZvaWQgcnVuKHVp
bnQ2NF90IGZyYW1lSUQsIFZlY3RvcjxTaW11bGF0ZWRJbnB1dEtleUZyYW1lPiYmIGtleUZyYW1l
cywgSGFzaFNldDxSZWY8U2ltdWxhdGVkSW5wdXRTb3VyY2U+PiYgaW5wdXRTb3VyY2VzLCBBdXRv
bWF0aW9uQ29tcGxldGlvbkhhbmRsZXImJik7CisgICAgdm9pZCBydW4oV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBWZWN0b3I8U2ltdWxhdGVkSW5wdXRLZXlGcmFtZT4mJiBrZXlGcmFtZXMsIEhh
c2hTZXQ8UmVmPFNpbXVsYXRlZElucHV0U291cmNlPj4mIGlucHV0U291cmNlcywgQXV0b21hdGlv
bkNvbXBsZXRpb25IYW5kbGVyJiYpOwogICAgIHZvaWQgY2FuY2VsKCk7CiAKICAgICBib29sIGlz
QWN0aXZlKCkgY29uc3Q7CkBAIC0xNjUsNyArMTY2LDcgQEAgcHJpdmF0ZToKICAgICBXZWJQYWdl
UHJveHkmIG1fcGFnZTsKICAgICBTaW11bGF0ZWRJbnB1dERpc3BhdGNoZXI6OkNsaWVudCYgbV9j
bGllbnQ7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gbV9mcmFtZUlEOworICAgIE9wdGlvbmFs
PFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gbV9mcmFtZUlEOwogICAgIEF1dG9tYXRpb25Db21w
bGV0aW9uSGFuZGxlciBtX3J1bkNvbXBsZXRpb25IYW5kbGVyOwogICAgIEF1dG9tYXRpb25Db21w
bGV0aW9uSGFuZGxlciBtX2tleUZyYW1lVHJhbnNpdGlvbkNvbXBsZXRpb25IYW5kbGVyOwogICAg
IFJ1bkxvb3A6OlRpbWVyPFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlcj4gbV9rZXlGcmFtZVRyYW5z
aXRpb25EdXJhdGlvblRpbWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcAppbmRleCBlMzM1NDNiN2Jk
YTFkNTkzZjMwNDUzYWU0ZDY5YmYyNWRlNzQwY2JlLi5jZjc5YWZkNzUzNmFiM2I0NjA1YjZlN2M3
YWQ0YmQzN2IxYjA1NzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRv
bWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcApAQCAtMjAyLDQxICsyMDIs
NDMgQEAgU3RyaW5nIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpoYW5kbGVGb3JXZWJQYWdlUHJveHko
Y29uc3QgV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHIKICAgICByZXR1cm4gaGFuZGxlOwogfQogCi1P
cHRpb25hbDx1aW50NjRfdD4gV2ViQXV0b21hdGlvblNlc3Npb246OndlYkZyYW1lSURGb3JIYW5k
bGUoY29uc3QgU3RyaW5nJiBoYW5kbGUpCitPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IFdlYkF1
dG9tYXRpb25TZXNzaW9uOjp3ZWJGcmFtZUlERm9ySGFuZGxlKGNvbnN0IFN0cmluZyYgaGFuZGxl
LCBib29sJiBmcmFtZU5vdEZvdW5kKQogewogICAgIGlmIChoYW5kbGUuaXNFbXB0eSgpKQotICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAogICAgIGF1dG8g
aXRlciA9IG1faGFuZGxlV2ViRnJhbWVNYXAuZmluZChoYW5kbGUpOwotICAgIGlmIChpdGVyID09
IG1faGFuZGxlV2ViRnJhbWVNYXAuZW5kKCkpCisgICAgaWYgKGl0ZXIgPT0gbV9oYW5kbGVXZWJG
cmFtZU1hcC5lbmQoKSkgeworICAgICAgICBmcmFtZU5vdEZvdW5kID0gdHJ1ZTsKICAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICB9CiAKICAgICByZXR1cm4gaXRlci0+dmFsdWU7CiB9
CiAKLVN0cmluZyBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6aGFuZGxlRm9yV2ViRnJhbWVJRCh1aW50
NjRfdCBmcmFtZUlEKQorU3RyaW5nIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpoYW5kbGVGb3JXZWJG
cmFtZUlEKE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCkKIHsKLSAgICBpZiAoIWZy
YW1lSUQpCisgICAgaWYgKCFmcmFtZUlEIHx8ICEqZnJhbWVJRCkKICAgICAgICAgcmV0dXJuIGVt
cHR5U3RyaW5nKCk7CiAKICAgICBmb3IgKGF1dG8mIHByb2Nlc3MgOiBtX3Byb2Nlc3NQb29sLT5w
cm9jZXNzZXMoKSkgewotICAgICAgICBpZiAoV2ViRnJhbWVQcm94eSogZnJhbWUgPSBwcm9jZXNz
LT53ZWJGcmFtZShmcmFtZUlEKSkgeworICAgICAgICBpZiAoV2ViRnJhbWVQcm94eSogZnJhbWUg
PSBwcm9jZXNzLT53ZWJGcmFtZSgqZnJhbWVJRCkpIHsKICAgICAgICAgICAgIGlmIChmcmFtZS0+
aXNNYWluRnJhbWUoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQogCi0gICAgYXV0byBpdGVyID0gbV93
ZWJGcmFtZUhhbmRsZU1hcC5maW5kKGZyYW1lSUQpOworICAgIGF1dG8gaXRlciA9IG1fd2ViRnJh
bWVIYW5kbGVNYXAuZmluZCgqZnJhbWVJRCk7CiAgICAgaWYgKGl0ZXIgIT0gbV93ZWJGcmFtZUhh
bmRsZU1hcC5lbmQoKSkKICAgICAgICAgcmV0dXJuIGl0ZXItPnZhbHVlOwogCiAgICAgU3RyaW5n
IGhhbmRsZSA9ICJmcmFtZS0iICsgY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpLmNvbnZlcnRU
b0FTQ0lJVXBwZXJjYXNlKCk7CiAKLSAgICBhdXRvIGZpcnN0QWRkUmVzdWx0ID0gbV93ZWJGcmFt
ZUhhbmRsZU1hcC5hZGQoZnJhbWVJRCwgaGFuZGxlKTsKKyAgICBhdXRvIGZpcnN0QWRkUmVzdWx0
ID0gbV93ZWJGcmFtZUhhbmRsZU1hcC5hZGQoKmZyYW1lSUQsIGhhbmRsZSk7CiAgICAgUkVMRUFT
RV9BU1NFUlQoZmlyc3RBZGRSZXN1bHQuaXNOZXdFbnRyeSk7CiAKLSAgICBhdXRvIHNlY29uZEFk
ZFJlc3VsdCA9IG1faGFuZGxlV2ViRnJhbWVNYXAuYWRkKGhhbmRsZSwgZnJhbWVJRCk7CisgICAg
YXV0byBzZWNvbmRBZGRSZXN1bHQgPSBtX2hhbmRsZVdlYkZyYW1lTWFwLmFkZChoYW5kbGUsICpm
cmFtZUlEKTsKICAgICBSRUxFQVNFX0FTU0VSVChzZWNvbmRBZGRSZXN1bHQuaXNOZXdFbnRyeSk7
CiAKICAgICByZXR1cm4gaGFuZGxlOwpAQCAtMzYyLDE0ICszNjQsMTUgQEAgdm9pZCBXZWJBdXRv
bWF0aW9uU2Vzc2lvbjo6c3dpdGNoVG9Ccm93c2luZ0NvbnRleHQoY29uc3QgU3RyaW5nJiBicm93
c2luZ0NvbnRleHQKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVE
RUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBm
cmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShvcHRpb25hbEZyYW1lSGFuZGxlID8gKm9wdGlv
bmFsRnJhbWVIYW5kbGUgOiBlbXB0eVN0cmluZygpKTsKLSAgICBpZiAoIWZyYW1lSUQpCisgICAg
Ym9vbCBmcmFtZU5vdEZvdW5kID0gZmFsc2U7CisgICAgYXV0byBmcmFtZUlEID0gd2ViRnJhbWVJ
REZvckhhbmRsZShvcHRpb25hbEZyYW1lSGFuZGxlID8gKm9wdGlvbmFsRnJhbWVIYW5kbGUgOiBl
bXB0eVN0cmluZygpLCBmcmFtZU5vdEZvdW5kKTsKKyAgICBpZiAoZnJhbWVOb3RGb3VuZCkKICAg
ICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoRnJhbWVOb3RGb3VuZCk7CiAK
IAogICAgIG1fY2xpZW50LT5yZXF1ZXN0U3dpdGNoVG9QYWdlKCp0aGlzLCAqcGFnZSwgW2ZyYW1l
SUQsIHBhZ2UgPSBtYWtlUmVmKCpwYWdlKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0o
KSB7CiAgICAgICAgIHBhZ2UtPnNldEZvY3VzKHRydWUpOwotICAgICAgICBwYWdlLT5wcm9jZXNz
KCkuc2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Rm9jdXNGcmFtZShw
YWdlLT5wYWdlSUQoKSwgZnJhbWVJRC52YWx1ZSgpKSwgMCk7CisgICAgICAgIHBhZ2UtPnByb2Nl
c3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpGb2N1c0ZyYW1l
KHBhZ2UtPnBhZ2VJRCgpLCBmcmFtZUlEKSwgMCk7CiAKICAgICAgICAgY2FsbGJhY2stPnNlbmRT
dWNjZXNzKCk7CiAgICAgfSk7CkBAIC00NTksOCArNDYyLDkgQEAgdm9pZCBXZWJBdXRvbWF0aW9u
U2Vzc2lvbjo6d2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRlKGNvbnN0IFN0cmluZyYgYnJvd3Np
bmdDb24KICAgICAgICAgJiYgcGFnZS0+cGFnZUxvYWRTdGF0ZSgpLmlzTG9hZGluZygpICYmIG1f
Y2xpZW50LT5pc1Nob3dpbmdKYXZhU2NyaXB0RGlhbG9nT25QYWdlKCp0aGlzLCAqcGFnZSk7CiAK
ICAgICBpZiAob3B0aW9uYWxGcmFtZUhhbmRsZSAmJiAhb3B0aW9uYWxGcmFtZUhhbmRsZS0+aXNF
bXB0eSgpKSB7Ci0gICAgICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEID0gd2ViRnJhbWVJ
REZvckhhbmRsZSgqb3B0aW9uYWxGcmFtZUhhbmRsZSk7Ci0gICAgICAgIGlmICghZnJhbWVJRCkK
KyAgICAgICAgYm9vbCBmcmFtZU5vdEZvdW5kID0gZmFsc2U7CisgICAgICAgIGF1dG8gZnJhbWVJ
RCA9IHdlYkZyYW1lSURGb3JIYW5kbGUoKm9wdGlvbmFsRnJhbWVIYW5kbGUsIGZyYW1lTm90Rm91
bmQpOworICAgICAgICBpZiAoZnJhbWVOb3RGb3VuZCkKICAgICAgICAgICAgIEFTWU5DX0ZBSUxf
V0lUSF9QUkVERUZJTkVEX0VSUk9SKEZyYW1lTm90Rm91bmQpOwogICAgICAgICBXZWJGcmFtZVBy
b3h5KiBmcmFtZSA9IHBhZ2UtPnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlELnZhbHVlKCkpOwog
ICAgICAgICBpZiAoIWZyYW1lKQpAQCAtNTM3LDcgKzU0MSw3IEBAIHZvaWQgV2ViQXV0b21hdGlv
blNlc3Npb246OnJlc3BvbmRUb1BlbmRpbmdQYWdlTmF2aWdhdGlvbkNhbGxiYWNrc1dpdGhUaW1l
b3V0KEhhCiAgICAgfQogfQogCi1zdGF0aWMgV2ViUGFnZVByb3h5KiBmaW5kUGFnZUZvckZyYW1l
SUQoY29uc3QgV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCB1aW50NjRfdCBmcmFtZUlEKQor
c3RhdGljIFdlYlBhZ2VQcm94eSogZmluZFBhZ2VGb3JGcmFtZUlEKGNvbnN0IFdlYlByb2Nlc3NQ
b29sJiBwcm9jZXNzUG9vbCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgZm9yIChh
dXRvJiBwcm9jZXNzIDogcHJvY2Vzc1Bvb2wucHJvY2Vzc2VzKCkpIHsKICAgICAgICAgaWYgKGF1
dG8qIGZyYW1lID0gcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCkpCkBAIC01NDYsNyArNTUwLDcg
QEAgc3RhdGljIFdlYlBhZ2VQcm94eSogZmluZFBhZ2VGb3JGcmFtZUlEKGNvbnN0IFdlYlByb2Nl
c3NQb29sJiBwcm9jZXNzUG9vbCwgdWludDYKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotdm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVzcG9uZFRvUGVuZGluZ0ZyYW1lTmF2aWdhdGlvbkNh
bGxiYWNrc1dpdGhUaW1lb3V0KEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxJbnNwZWN0b3I6OkJh
Y2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiYgbWFwKQordm9pZCBXZWJBdXRvbWF0aW9u
U2Vzc2lvbjo6cmVzcG9uZFRvUGVuZGluZ0ZyYW1lTmF2aWdhdGlvbkNhbGxiYWNrc1dpdGhUaW1l
b3V0KEhhc2hNYXA8RnJhbWVJZGVudGlmaWVyLCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlz
cGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4mIG1hcCkKIHsKICAgICBJbnNwZWN0b3I6OkVycm9yU3Ry
aW5nIHRpbWVvdXRFcnJvciA9IFNUUklOR19GT1JfUFJFREVGSU5FRF9FUlJPUl9OQU1FKFRpbWVv
dXQpOwogICAgIGZvciAoYXV0byBpZCA6IGNvcHlUb1ZlY3RvcihtYXAua2V5cygpKSkgewpAQCAt
OTI0LDggKzkyOCw5IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmV2YWx1YXRlSmF2YVNj
cmlwdEZ1bmN0aW9uKGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250CiAgICAgaWYgKCFwYWdlKQog
ICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5kb3dOb3RGb3VuZCk7
CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUo
b3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpvcHRpb25hbEZyYW1lSGFuZGxlIDogZW1wdHlTdHJpbmco
KSk7Ci0gICAgaWYgKCFmcmFtZUlEKQorICAgIGJvb2wgZnJhbWVOb3RGb3VuZCA9IGZhbHNlOwor
ICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUob3B0aW9uYWxGcmFtZUhhbmRs
ZSA/ICpvcHRpb25hbEZyYW1lSGFuZGxlIDogZW1wdHlTdHJpbmcoKSwgZnJhbWVOb3RGb3VuZCk7
CisgICAgaWYgKGZyYW1lTm90Rm91bmQpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJ
TkVEX0VSUk9SKEZyYW1lTm90Rm91bmQpOwogCiAgICAgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRz
VmVjdG9yOwpAQCAtOTQzLDcgKzk0OCw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmV2
YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250CiAgICAg
dWludDY0X3QgY2FsbGJhY2tJRCA9IG1fbmV4dEV2YWx1YXRlSmF2YVNjcmlwdENhbGxiYWNrSUQr
KzsKICAgICBtX2V2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uQ2FsbGJhY2tzLnNldChjYWxsYmFj
a0lELCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAKLSAgICBwYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNz
YWdlczo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6RXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rp
b24ocGFnZS0+cGFnZUlEKCksIGZyYW1lSUQudmFsdWUoKSwgZnVuY3Rpb24sIGFyZ3VtZW50c1Zl
Y3RvciwgZXhwZWN0c0ltcGxpY2l0Q2FsbGJhY2tBcmd1bWVudCwgY2FsbGJhY2tUaW1lb3V0LCBj
YWxsYmFja0lEKSwgMCk7CisgICAgcGFnZS0+cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OkV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKHBhZ2UtPnBh
Z2VJRCgpLCBmcmFtZUlELCBmdW5jdGlvbiwgYXJndW1lbnRzVmVjdG9yLCBleHBlY3RzSW1wbGlj
aXRDYWxsYmFja0FyZ3VtZW50LCBjYWxsYmFja1RpbWVvdXQsIGNhbGxiYWNrSUQpLCAwKTsKIH0K
IAogdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6ZGlkRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rp
b24odWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgU3RyaW5nJiByZXN1bHQsIGNvbnN0IFN0cmlu
ZyYgZXJyb3JUeXBlKQpAQCAtOTY3LDExICs5NzIsMTIgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvbjo6cmVzb2x2ZUNoaWxkRnJhbWVIYW5kbGUoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRl
eHQKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VS
Uk9SKFdpbmRvd05vdEZvdW5kKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEID0g
d2ViRnJhbWVJREZvckhhbmRsZShvcHRpb25hbEZyYW1lSGFuZGxlID8gKm9wdGlvbmFsRnJhbWVI
YW5kbGUgOiBlbXB0eVN0cmluZygpKTsKLSAgICBpZiAoIWZyYW1lSUQpCisgICAgYm9vbCBmcmFt
ZU5vdEZvdW5kID0gZmFsc2U7CisgICAgYXV0byBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRs
ZShvcHRpb25hbEZyYW1lSGFuZGxlID8gKm9wdGlvbmFsRnJhbWVIYW5kbGUgOiBlbXB0eVN0cmlu
ZygpLCBmcmFtZU5vdEZvdW5kKTsKKyAgICBpZiAoZnJhbWVOb3RGb3VuZCkKICAgICAgICAgQVNZ
TkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoRnJhbWVOb3RGb3VuZCk7CiAKLSAgICBXVEY6
OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgdWludDY0X3QpPiBjb21w
bGV0aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNh
bGxiYWNrID0gY2FsbGJhY2suY29weVJlZigpXShPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwg
dWludDY0X3QgZnJhbWVJRCkgbXV0YWJsZSB7CisgICAgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPFN0cmluZz4sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4pPiBjb21wbGV0
aW9uSGFuZGxlciA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhbGxi
YWNrID0gY2FsbGJhY2suY29weVJlZigpXShPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgT3B0
aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGVy
cm9yVHlwZSkgewogICAgICAgICAgICAgY2FsbGJhY2stPnNlbmRGYWlsdXJlKFNUUklOR19GT1Jf
UFJFREVGSU5FRF9FUlJPUl9NRVNTQUdFKCplcnJvclR5cGUpKTsKICAgICAgICAgICAgIHJldHVy
bjsKQEAgLTk4MSwxNyArOTg3LDE3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnJlc29s
dmVDaGlsZEZyYW1lSGFuZGxlKGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0CiAgICAgfTsK
IAogICAgIGlmIChvcHRpb25hbE5vZGVIYW5kbGUpIHsKLSAgICAgICAgcGFnZS0+cHJvY2Vzcygp
LnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6
UmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhhbmRsZShwYWdlLT5wYWdlSUQoKSwgZnJhbWVJRC52
YWx1ZSgpLCAqb3B0aW9uYWxOb2RlSGFuZGxlKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OworICAgICAgICBwYWdlLT5wcm9jZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpX
ZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpSZXNvbHZlQ2hpbGRGcmFtZVdpdGhOb2RlSGFuZGxl
KHBhZ2UtPnBhZ2VJRCgpLCBmcmFtZUlELCAqb3B0aW9uYWxOb2RlSGFuZGxlKSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKG9w
dGlvbmFsTmFtZSkgewotICAgICAgICBwYWdlLT5wcm9jZXNzKCkuc2VuZFdpdGhBc3luY1JlcGx5
KE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpSZXNvbHZlQ2hpbGRGcmFtZVdp
dGhOYW1lKHBhZ2UtPnBhZ2VJRCgpLCBmcmFtZUlELnZhbHVlKCksICpvcHRpb25hbE5hbWUpLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgICAgIHBhZ2UtPnByb2Nlc3MoKS5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OlJlc29s
dmVDaGlsZEZyYW1lV2l0aE5hbWUocGFnZS0+cGFnZUlEKCksIGZyYW1lSUQsICpvcHRpb25hbE5h
bWUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKICAgICBpZiAob3B0aW9uYWxPcmRpbmFsKSB7Ci0gICAgICAgIHBhZ2UtPnByb2Nlc3MoKS5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OlJl
c29sdmVDaGlsZEZyYW1lV2l0aE9yZGluYWwocGFnZS0+cGFnZUlEKCksIGZyYW1lSUQudmFsdWUo
KSwgKm9wdGlvbmFsT3JkaW5hbCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAg
ICAgcGFnZS0+cHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQXV0b21h
dGlvblNlc3Npb25Qcm94eTo6UmVzb2x2ZUNoaWxkRnJhbWVXaXRoT3JkaW5hbChwYWdlLT5wYWdl
SUQoKSwgZnJhbWVJRCwgKm9wdGlvbmFsT3JkaW5hbCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTAwNCwxMSArMTAxMCwxMiBAQCB2
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZlUGFyZW50RnJhbWVIYW5kbGUoY29uc3Qg
U3RyaW5nJiBicm93c2luZ0NvbnRleAogICAgIGlmICghcGFnZSkKICAgICAgICAgQVNZTkNfRkFJ
TF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwogCi0gICAgT3B0aW9uYWw8
dWludDY0X3Q+IGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKGZyYW1lSGFuZGxlKTsKLSAg
ICBpZiAoIWZyYW1lSUQpCisgICAgYm9vbCBmcmFtZU5vdEZvdW5kID0gZmFsc2U7CisgICAgYXV0
byBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShmcmFtZUhhbmRsZSwgZnJhbWVOb3RGb3Vu
ZCk7CisgICAgaWYgKGZyYW1lTm90Rm91bmQpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVE
RUZJTkVEX0VSUk9SKEZyYW1lTm90Rm91bmQpOwogCi0gICAgV1RGOjpDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4gY29tcGxldGlvbkhhbmRsZXIgPSBb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxsYmFjayA9IGNhbGxiYWNr
LmNvcHlSZWYoKV0oT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIHVpbnQ2NF90IGZyYW1lSUQp
IG11dGFibGUgeworICAgIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJp
bmc+LCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+KT4gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxsYmFjayA9IGNhbGxiYWNrLmNv
cHlSZWYoKV0oT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIE9wdGlvbmFsPEZyYW1lSWRlbnRp
Zmllcj4gZnJhbWVJRCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChlcnJvclR5cGUpIHsKICAgICAg
ICAgICAgIGNhbGxiYWNrLT5zZW5kRmFpbHVyZShTVFJJTkdfRk9SX1BSRURFRklORURfRVJST1Jf
TUVTU0FHRSgqZXJyb3JUeXBlKSk7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0xMDE3LDcgKzEw
MjQsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNvbHZlUGFyZW50RnJhbWVIYW5k
bGUoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleAogICAgICAgICBjYWxsYmFjay0+c2VuZFN1
Y2Nlc3MoaGFuZGxlRm9yV2ViRnJhbWVJRChmcmFtZUlEKSk7CiAgICAgfTsKIAotICAgIHBhZ2Ut
PnByb2Nlc3MoKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNz
aW9uUHJveHk6OlJlc29sdmVQYXJlbnRGcmFtZShwYWdlLT5wYWdlSUQoKSwgZnJhbWVJRC52YWx1
ZSgpKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHBhZ2UtPnByb2Nlc3MoKS5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OlJl
c29sdmVQYXJlbnRGcmFtZShwYWdlLT5wYWdlSUQoKSwgZnJhbWVJRCksIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKIH0KIAogc3RhdGljIE9wdGlvbmFsPENvb3JkaW5hdGVTeXN0ZW0+IHBy
b3RvY29sU3RyaW5nVG9Db29yZGluYXRlU3lzdGVtKGNvbnN0IFN0cmluZyYgY29vcmRpbmF0ZVN5
c3RlbVN0cmluZykKQEAgLTEwMzUsOCArMTA0Miw5IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b246OmNvbXB1dGVFbGVtZW50TGF5b3V0KGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFu
CiAgICAgaWYgKCFwYWdlKQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJP
UihXaW5kb3dOb3RGb3VuZCk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCA9IHdl
YkZyYW1lSURGb3JIYW5kbGUoZnJhbWVIYW5kbGUpOwotICAgIGlmICghZnJhbWVJRCkKKyAgICBi
b29sIGZyYW1lTm90Rm91bmQgPSBmYWxzZTsKKyAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZUlE
Rm9ySGFuZGxlKGZyYW1lSGFuZGxlLCBmcmFtZU5vdEZvdW5kKTsKKyAgICBpZiAoZnJhbWVOb3RG
b3VuZCkKICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoRnJhbWVOb3RG
b3VuZCk7CiAKICAgICBPcHRpb25hbDxDb29yZGluYXRlU3lzdGVtPiBjb29yZGluYXRlU3lzdGVt
ID0gcHJvdG9jb2xTdHJpbmdUb0Nvb3JkaW5hdGVTeXN0ZW0oY29vcmRpbmF0ZVN5c3RlbVN0cmlu
Zyk7CkBAIC0xMDc4LDcgKzEwODYsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpjb21w
dXRlRWxlbWVudExheW91dChjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbgogICAgIH07
CiAKICAgICBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQgPSBvcHRpb25hbFNjcm9sbEludG9W
aWV3SWZOZWVkZWQgPyAqb3B0aW9uYWxTY3JvbGxJbnRvVmlld0lmTmVlZGVkIDogZmFsc2U7Ci0g
ICAgcGFnZS0+cHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQXV0b21h
dGlvblNlc3Npb25Qcm94eTo6Q29tcHV0ZUVsZW1lbnRMYXlvdXQocGFnZS0+cGFnZUlEKCksIGZy
YW1lSUQudmFsdWUoKSwgbm9kZUhhbmRsZSwgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgY29vcmRp
bmF0ZVN5c3RlbS52YWx1ZSgpKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHBh
Z2UtPnByb2Nlc3MoKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25T
ZXNzaW9uUHJveHk6OkNvbXB1dGVFbGVtZW50TGF5b3V0KHBhZ2UtPnBhZ2VJRCgpLCBmcmFtZUlE
LCBub2RlSGFuZGxlLCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBjb29yZGluYXRlU3lzdGVtLnZh
bHVlKCkpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIHZvaWQgV2ViQXV0b21h
dGlvblNlc3Npb246OnNlbGVjdE9wdGlvbkVsZW1lbnQoY29uc3QgU3RyaW5nJiBicm93c2luZ0Nv
bnRleHRIYW5kbGUsIGNvbnN0IFN0cmluZyYgZnJhbWVIYW5kbGUsIGNvbnN0IFN0cmluZyYgbm9k
ZUhhbmRsZSwgUmVmPFNlbGVjdE9wdGlvbkVsZW1lbnRDYWxsYmFjaz4mJiBjYWxsYmFjaykKQEAg
LTEwODcsOCArMTA5NSw5IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnNlbGVjdE9wdGlv
bkVsZW1lbnQoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kCiAgICAgaWYgKCFwYWdl
KQogICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5kb3dOb3RGb3Vu
ZCk7CiAKLSAgICBPcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5k
bGUoZnJhbWVIYW5kbGUpOwotICAgIGlmICghZnJhbWVJRCkKKyAgICBib29sIGZyYW1lTm90Rm91
bmQgPSBmYWxzZTsKKyAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKGZyYW1l
SGFuZGxlLCBmcmFtZU5vdEZvdW5kKTsKKyAgICBpZiAoZnJhbWVOb3RGb3VuZCkKICAgICAgICAg
QVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoRnJhbWVOb3RGb3VuZCk7CiAKICAgICBX
VEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+IGNvbXBsZXRpb25I
YW5kbGVyID0gW2NhbGxiYWNrID0gY2FsbGJhY2suY29weVJlZigpXShPcHRpb25hbDxTdHJpbmc+
IGVycm9yVHlwZSkgbXV0YWJsZSB7CkBAIC0xMTAwLDcgKzExMDksNyBAQCB2b2lkIFdlYkF1dG9t
YXRpb25TZXNzaW9uOjpzZWxlY3RPcHRpb25FbGVtZW50KGNvbnN0IFN0cmluZyYgYnJvd3NpbmdD
b250ZXh0SGFuZAogICAgICAgICBjYWxsYmFjay0+c2VuZFN1Y2Nlc3MoKTsKICAgICB9OwogCi0g
ICAgcGFnZS0+cHJvY2VzcygpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQXV0b21h
dGlvblNlc3Npb25Qcm94eTo6U2VsZWN0T3B0aW9uRWxlbWVudChwYWdlLT5wYWdlSUQoKSwgZnJh
bWVJRC52YWx1ZSgpLCBub2RlSGFuZGxlKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwor
ICAgIHBhZ2UtPnByb2Nlc3MoKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dG9t
YXRpb25TZXNzaW9uUHJveHk6OlNlbGVjdE9wdGlvbkVsZW1lbnQocGFnZS0+cGFnZUlEKCksIGZy
YW1lSUQsIG5vZGVIYW5kbGUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIHZv
aWQgV2ViQXV0b21hdGlvblNlc3Npb246OmlzU2hvd2luZ0phdmFTY3JpcHREaWFsb2coSW5zcGVj
dG9yOjpFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250
ZXh0SGFuZGxlLCBib29sKiByZXN1bHQpCkBAIC0xMjcwLDkgKzEyNzksNyBAQCB2b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uOjpnZXRBbGxDb29raWVzKGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250
ZXh0SGFuZGxlLCBSZQogICAgICAgICBjYWxsYmFjay0+c2VuZFN1Y2Nlc3MoYnVpbGRBcnJheUZv
ckNvb2tpZXMoY29va2llcykpOwogICAgIH07CiAKLSAgICAvLyBBbHdheXMgc2VuZCB0aGUgbWFp
biBmcmFtZSBJRCBhcyAwIHNvIGl0IGlzIHJlc29sdmVkIG9uIHRoZSBXZWJQcm9jZXNzIHNpZGUu
IFRoaXMgYXZvaWRzIGEgcmFjZSB3aGVuIHBhZ2UtPm1haW5GcmFtZSgpIGlzIG51bGwgc3RpbGwu
Ci0gICAgY29uc3QgdWludDY0X3QgbWFpbkZyYW1lSUQgPSAwOwotICAgIHBhZ2UtPnByb2Nlc3Mo
KS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6
OkdldENvb2tpZXNGb3JGcmFtZShwYWdlLT5wYWdlSUQoKSwgbWFpbkZyYW1lSUQpLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgcGFnZS0+cHJvY2VzcygpLnNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6R2V0Q29va2llc0ZvckZy
YW1lKHBhZ2UtPnBhZ2VJRCgpLCBXVEY6Om51bGxvcHQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CiB9CiAKIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmRlbGV0ZVNpbmdsZUNvb2tp
ZShjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3QgU3RyaW5nJiBjb29r
aWVOYW1lLCBSZWY8RGVsZXRlU2luZ2xlQ29va2llQ2FsbGJhY2s+JiYgY2FsbGJhY2spCkBAIC0x
MjkwLDkgKzEyOTcsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpkZWxldGVTaW5nbGVD
b29raWUoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kbAogICAgICAgICBjYWxsYmFj
ay0+c2VuZFN1Y2Nlc3MoKTsKICAgICB9OwogCi0gICAgLy8gQWx3YXlzIHNlbmQgdGhlIG1haW4g
ZnJhbWUgSUQgYXMgMCBzbyBpdCBpcyByZXNvbHZlZCBvbiB0aGUgV2ViUHJvY2VzcyBzaWRlLiBU
aGlzIGF2b2lkcyBhIHJhY2Ugd2hlbiBwYWdlLT5tYWluRnJhbWUoKSBpcyBudWxsIHN0aWxsLgot
ICAgIGNvbnN0IHVpbnQ2NF90IG1haW5GcmFtZUlEID0gMDsKLSAgICBwYWdlLT5wcm9jZXNzKCku
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpE
ZWxldGVDb29raWUocGFnZS0+cGFnZUlEKCksIG1haW5GcmFtZUlELCBjb29raWVOYW1lKSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHBhZ2UtPnByb2Nlc3MoKS5zZW5kV2l0aEFz
eW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OkRlbGV0ZUNvb2tp
ZShwYWdlLT5wYWdlSUQoKSwgV1RGOjpudWxsb3B0LCBjb29raWVOYW1lKSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOwogfQogCiBzdGF0aWMgU3RyaW5nIGRvbWFpbkJ5QWRkaW5nRG90UHJl
Zml4SWZOZWVkZWQoU3RyaW5nIGRvbWFpbikKQEAgLTE0NTcsNyArMTQ2Miw3IEBAIFNpbXVsYXRl
ZElucHV0U291cmNlKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6aW5wdXRTb3VyY2VGb3JUeXBlKFNp
bXVsYXRlZElucHV0U291CiB9CiAKIC8vIE1BUks6IFNpbXVsYXRlZElucHV0RGlzcGF0Y2hlcjo6
Q2xpZW50IEFQSQotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6dmlld3BvcnRJblZpZXdDZW50
ZXJQb2ludE9mRWxlbWVudChXZWJQYWdlUHJveHkmIHBhZ2UsIHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFN0cmluZyYgbm9kZUhhbmRsZSwgRnVuY3Rpb248dm9pZCAoT3B0aW9uYWw8V2ViQ29yZTo6
SW50UG9pbnQ+LCBPcHRpb25hbDxBdXRvbWF0aW9uQ29tbWFuZEVycm9yPik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjp2aWV3cG9ydEluVmlld0NlbnRl
clBvaW50T2ZFbGVtZW50KFdlYlBhZ2VQcm94eSYgcGFnZSwgRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIGNvbnN0IFN0cmluZyYgbm9kZUhhbmRsZSwgRnVuY3Rpb248dm9pZCAoT3B0aW9uYWw8V2Vi
Q29yZTo6SW50UG9pbnQ+LCBPcHRpb25hbDxBdXRvbWF0aW9uQ29tbWFuZEVycm9yPik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlv
bmFsPFN0cmluZz4sIFdlYkNvcmU6OkludFJlY3QsIE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50
PiwgYm9vbCk+IGRpZENvbXB1dGVFbGVtZW50TGF5b3V0SGFuZGxlciA9IFtjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShPcHRpb25hbDxTdHJpbmc+IGVycm9y
VHlwZSwgV2ViQ29yZTo6SW50UmVjdCwgT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+IGluVmll
d0NlbnRlclBvaW50LCBib29sKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGVycm9yVHlwZSkgewpA
QCAtMTc3OCw4ICsxNzgzLDkgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGVyZm9ybUlu
dGVyYWN0aW9uU2VxdWVuY2UoY29uc3QgU3RyaW5nJiBoYW5kbGUsIGNvbnMKICAgICBpZiAoIXBh
Z2UpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZv
dW5kKTsKIAotICAgIGF1dG8gZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUob3B0aW9uYWxG
cmFtZUhhbmRsZSA/ICpvcHRpb25hbEZyYW1lSGFuZGxlIDogZW1wdHlTdHJpbmcoKSk7Ci0gICAg
aWYgKCFmcmFtZUlEKQorICAgIGJvb2wgZnJhbWVOb3RGb3VuZCA9IGZhbHNlOworICAgIGF1dG8g
ZnJhbWVJRCA9IHdlYkZyYW1lSURGb3JIYW5kbGUob3B0aW9uYWxGcmFtZUhhbmRsZSA/ICpvcHRp
b25hbEZyYW1lSGFuZGxlIDogZW1wdHlTdHJpbmcoKSwgZnJhbWVOb3RGb3VuZCk7CisgICAgaWYg
KGZyYW1lTm90Rm91bmQpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9S
KEZyYW1lTm90Rm91bmQpOwogCiAgICAgSGFzaE1hcDxTdHJpbmcsIFJlZjxTaW11bGF0ZWRJbnB1
dFNvdXJjZT4+IHNvdXJjZUlkVG9JbnB1dFNvdXJjZU1hcDsKQEAgLTE5NTMsOCArMTk1OSw5IEBA
IHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmNhbmNlbEludGVyYWN0aW9uU2VxdWVuY2UoY29u
c3QgU3RyaW5nJiBoYW5kbGUsIGNvbnN0CiAgICAgaWYgKCFwYWdlKQogICAgICAgICBBU1lOQ19G
QUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5kb3dOb3RGb3VuZCk7CiAKLSAgICBhdXRvIGZy
YW1lSUQgPSB3ZWJGcmFtZUlERm9ySGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5kbGUgPyAqb3B0aW9u
YWxGcmFtZUhhbmRsZSA6IGVtcHR5U3RyaW5nKCkpOwotICAgIGlmICghZnJhbWVJRCkKKyAgICBi
b29sIGZyYW1lTm90Rm91bmQgPSBmYWxzZTsKKyAgICBhdXRvIGZyYW1lSUQgPSB3ZWJGcmFtZUlE
Rm9ySGFuZGxlKG9wdGlvbmFsRnJhbWVIYW5kbGUgPyAqb3B0aW9uYWxGcmFtZUhhbmRsZSA6IGVt
cHR5U3RyaW5nKCksIGZyYW1lTm90Rm91bmQpOworICAgIGlmIChmcmFtZU5vdEZvdW5kKQogICAg
ICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihGcmFtZU5vdEZvdW5kKTsKIAog
ICAgIFZlY3RvcjxTaW11bGF0ZWRJbnB1dEtleUZyYW1lPiBrZXlGcmFtZXMoeyBTaW11bGF0ZWRJ
bnB1dEtleUZyYW1lOjprZXlGcmFtZVRvUmVzZXRJbnB1dFNvdXJjZXMobV9pbnB1dFNvdXJjZXMp
IH0pOwpAQCAtMTk3Niw4ICsxOTgzLDkgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6dGFr
ZVNjcmVlbnNob3QoY29uc3QgU3RyaW5nJiBoYW5kbGUsIGNvbnN0IFN0cmluZyogb3AKICAgICBp
ZiAoIXBhZ2UpCiAgICAgICAgIEFTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRv
d05vdEZvdW5kKTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEID0gd2ViRnJhbWVJ
REZvckhhbmRsZShvcHRpb25hbEZyYW1lSGFuZGxlID8gKm9wdGlvbmFsRnJhbWVIYW5kbGUgOiBl
bXB0eVN0cmluZygpKTsKLSAgICBpZiAoIWZyYW1lSUQpCisgICAgYm9vbCBmcmFtZU5vdEZvdW5k
ID0gZmFsc2U7CisgICAgYXV0byBmcmFtZUlEID0gd2ViRnJhbWVJREZvckhhbmRsZShvcHRpb25h
bEZyYW1lSGFuZGxlID8gKm9wdGlvbmFsRnJhbWVIYW5kbGUgOiBlbXB0eVN0cmluZygpLCBmcmFt
ZU5vdEZvdW5kKTsKKyAgICBpZiAoZnJhbWVOb3RGb3VuZCkKICAgICAgICAgQVNZTkNfRkFJTF9X
SVRIX1BSRURFRklORURfRVJST1IoRnJhbWVOb3RGb3VuZCk7CiAKICAgICBib29sIHNjcm9sbElu
dG9WaWV3SWZOZWVkZWQgPSBvcHRpb25hbFNjcm9sbEludG9WaWV3SWZOZWVkZWQgPyAqb3B0aW9u
YWxTY3JvbGxJbnRvVmlld0lmTmVlZGVkIDogZmFsc2U7CkBAIC0xOTg3LDcgKzE5OTUsNyBAQCB2
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjp0YWtlU2NyZWVuc2hvdChjb25zdCBTdHJpbmcmIGhh
bmRsZSwgY29uc3QgU3RyaW5nKiBvcAogICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBtX25leHRT
Y3JlZW5zaG90Q2FsbGJhY2tJRCsrOwogICAgIG1fc2NyZWVuc2hvdENhbGxiYWNrcy5zZXQoY2Fs
bGJhY2tJRCwgV1RGTW92ZShjYWxsYmFjaykpOwogCi0gICAgcGFnZS0+cHJvY2VzcygpLnNlbmQo
TWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OlRha2VTY3JlZW5zaG90KHBhZ2Ut
PnBhZ2VJRCgpLCBmcmFtZUlELnZhbHVlKCksIG5vZGVIYW5kbGUsIHNjcm9sbEludG9WaWV3SWZO
ZWVkZWQsIGNsaXBUb1ZpZXdwb3J0LCBjYWxsYmFja0lEKSwgMCk7CisgICAgcGFnZS0+cHJvY2Vz
cygpLnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OlRha2VTY3JlZW5z
aG90KHBhZ2UtPnBhZ2VJRCgpLCBmcmFtZUlELCBub2RlSGFuZGxlLCBzY3JvbGxJbnRvVmlld0lm
TmVlZGVkLCBjbGlwVG9WaWV3cG9ydCwgY2FsbGJhY2tJRCksIDApOwogfQogCiB2b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uOjpkaWRUYWtlU2NyZWVuc2hvdCh1aW50NjRfdCBjYWxsYmFja0lELCBj
b25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhSGFuZGxlLCBjb25zdCBTdHJp
bmcmIGVycm9yVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9t
YXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1
dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaAppbmRleCA2OGEyNzdhYTllOTc2OGM5YTRm
YTIwOTY5NzhkYTljN2EzMjk1MjUxLi43NTk2ZmVlNzI3N2I2MzgyNGQ3YTY1ZjY1NjM5ZThlMDBh
YTQ2YzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dl
YkF1dG9tYXRpb25TZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21h
dGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAi
U2hhcmVhYmxlQml0bWFwLmgiCiAjaW5jbHVkZSAiU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmgi
CiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmll
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYv
Q29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtMTUyLDcg
KzE1Myw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoV0VCRFJJVkVSX0tFWUJPQVJEX0lOVEVSQUNU
SU9OUykKICAgICB2b2lkIHNpbXVsYXRlS2V5Ym9hcmRJbnRlcmFjdGlvbihXZWJQYWdlUHJveHkm
LCBLZXlib2FyZEludGVyYWN0aW9uLCBXVEY6OlZhcmlhbnQ8VmlydHVhbEtleSwgQ2hhcktleT4m
JiwgQXV0b21hdGlvbkNvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOwogI2VuZGlmCi0gICAgdm9p
ZCB2aWV3cG9ydEluVmlld0NlbnRlclBvaW50T2ZFbGVtZW50KFdlYlBhZ2VQcm94eSYsIHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgbm9kZUhhbmRsZSwgRnVuY3Rpb248dm9pZCAoT3B0
aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBPcHRpb25hbDxBdXRvbWF0aW9uQ29tbWFuZEVycm9y
Pik+JiYpIGZpbmFsOworICAgIHZvaWQgdmlld3BvcnRJblZpZXdDZW50ZXJQb2ludE9mRWxlbWVu
dChXZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
bm9kZUhhbmRsZSwgRnVuY3Rpb248dm9pZCAoT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBP
cHRpb25hbDxBdXRvbWF0aW9uQ29tbWFuZEVycm9yPik+JiYpIGZpbmFsOwogCiAjZW5kaWYgLy8g
RU5BQkxFKFdFQkRSSVZFUl9BQ1RJT05TX0FQSSkKIApAQCAtMjIwLDE0ICsyMjEsMTQgQEAgcHJp
dmF0ZToKICAgICBSZWY8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6QnJvd3NpbmdD
b250ZXh0PiBidWlsZEJyb3dzaW5nQ29udGV4dEZvclBhZ2UoV2ViUGFnZVByb3h5JiwgV2ViQ29y
ZTo6RmxvYXRSZWN0IHdpbmRvd0ZyYW1lKTsKICAgICB2b2lkIGdldE5leHRDb250ZXh0KFJlZjxX
ZWJBdXRvbWF0aW9uU2Vzc2lvbj4mJiwgVmVjdG9yPFJlZjxXZWJQYWdlUHJveHk+PiYmLCBSZWY8
SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpCcm93c2luZ0Nv
bnRleHQ+PiwgUmVmPFdlYkF1dG9tYXRpb25TZXNzaW9uOjpHZXRCcm93c2luZ0NvbnRleHRzQ2Fs
bGJhY2s+JiYpOwogCi0gICAgT3B0aW9uYWw8dWludDY0X3Q+IHdlYkZyYW1lSURGb3JIYW5kbGUo
Y29uc3QgU3RyaW5nJik7Ci0gICAgU3RyaW5nIGhhbmRsZUZvcldlYkZyYW1lSUQodWludDY0X3Qg
ZnJhbWVJRCk7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiB3ZWJGcmFt
ZUlERm9ySGFuZGxlKGNvbnN0IFN0cmluZyYsIGJvb2wmIGZyYW1lTm90Rm91bmQpOworICAgIFN0
cmluZyBoYW5kbGVGb3JXZWJGcmFtZUlEKE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
cj4pOwogICAgIFN0cmluZyBoYW5kbGVGb3JXZWJGcmFtZVByb3h5KGNvbnN0IFdlYkZyYW1lUHJv
eHkmKTsKIAogICAgIHZvaWQgd2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRlT25QYWdlKFdlYlBh
Z2VQcm94eSYsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlBhZ2VMb2FkU3RyYXRl
Z3ksIFNlY29uZHMsIFJlZjxJbnNwZWN0b3I6OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jh
c2U+JiYpOwogICAgIHZvaWQgd2FpdEZvck5hdmlnYXRpb25Ub0NvbXBsZXRlT25GcmFtZShXZWJG
cmFtZVByb3h5JiwgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6UGFnZUxvYWRTdHJh
dGVneSwgU2Vjb25kcywgUmVmPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNr
QmFzZT4mJik7CiAgICAgdm9pZCByZXNwb25kVG9QZW5kaW5nUGFnZU5hdmlnYXRpb25DYWxsYmFj
a3NXaXRoVGltZW91dChIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBSZWZQdHI8SW5z
cGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4mKTsKLSAgICB2b2lkIHJl
c3BvbmRUb1BlbmRpbmdGcmFtZU5hdmlnYXRpb25DYWxsYmFja3NXaXRoVGltZW91dChIYXNoTWFw
PHVpbnQ2NF90LCBSZWZQdHI8SW5zcGVjdG9yOjpCYWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tC
YXNlPj4mKTsKKyAgICB2b2lkIHJlc3BvbmRUb1BlbmRpbmdGcmFtZU5hdmlnYXRpb25DYWxsYmFj
a3NXaXRoVGltZW91dChIYXNoTWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmUHRyPElu
c3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+Jik7CiAgICAgdm9pZCBs
b2FkVGltZXJGaXJlZCgpOwogCiAgICAgdm9pZCBleGl0RnVsbHNjcmVlbldpbmRvd0ZvclBhZ2Uo
V2ViUGFnZVByb3h5JiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpAQCAtMjg0
LDEzICsyODUsMTMgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCBTdHJpbmc+IG1fd2ViUGFnZUhhbmRsZU1hcDsKICAgICBIYXNoTWFwPFN0cmluZywgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXI+IG1faGFuZGxlV2ViUGFnZU1hcDsKIAotICAgIEhhc2hNYXA8
dWludDY0X3QsIFN0cmluZz4gbV93ZWJGcmFtZUhhbmRsZU1hcDsKLSAgICBIYXNoTWFwPFN0cmlu
ZywgdWludDY0X3Q+IG1faGFuZGxlV2ViRnJhbWVNYXA7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIFN0cmluZz4gbV93ZWJGcmFtZUhhbmRsZU1hcDsKKyAgICBIYXNoTWFw
PFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBtX2hhbmRsZVdlYkZyYW1lTWFwOwog
CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgUmVmUHRyPEluc3BlY3Rvcjo6
QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGluZ05vcm1hbE5hdmlnYXRp
b25JbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrc1BlclBhZ2U7CiAgICAgSGFzaE1hcDxXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNh
bGxiYWNrQmFzZT4+IG1fcGVuZGluZ0VhZ2VyTmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2Fs
bGJhY2tzUGVyUGFnZTsKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8SW5zcGVjdG9yOjpC
YWNrZW5kRGlzcGF0Y2hlcjo6Q2FsbGJhY2tCYXNlPj4gbV9wZW5kaW5nTm9ybWFsTmF2aWdhdGlv
bkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyRnJhbWU7Ci0gICAgSGFzaE1hcDx1aW50NjRf
dCwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1f
cGVuZGluZ0VhZ2VyTmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyRnJhbWU7
CisgICAgSGFzaE1hcDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZlB0cjxJbnNwZWN0b3I6
OkJhY2tlbmREaXNwYXRjaGVyOjpDYWxsYmFja0Jhc2U+PiBtX3BlbmRpbmdOb3JtYWxOYXZpZ2F0
aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJGcmFtZTsKKyAgICBIYXNoTWFwPFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgUmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6
OkNhbGxiYWNrQmFzZT4+IG1fcGVuZGluZ0VhZ2VyTmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0
Q2FsbGJhY2tzUGVyRnJhbWU7CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
UmVmUHRyPEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OkNhbGxiYWNrQmFzZT4+IG1fcGVu
ZGluZ0luc3BlY3RvckNhbGxiYWNrc1BlclBhZ2U7CiAjaWYgRU5BQkxFKFdFQkRSSVZFUl9LRVlC
T0FSRF9JTlRFUkFDVElPTlMpCiAgICAgSGFzaE1hcDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
RnVuY3Rpb248dm9pZChPcHRpb25hbDxBdXRvbWF0aW9uQ29tbWFuZEVycm9yPik+PiBtX3BlbmRp
bmdLZXlib2FyZEV2ZW50c0ZsdXNoZWRDYWxsYmFja3NQZXJQYWdlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KaW5kZXggYTUxYTIyMzYyMzg0MTUxYWIxMWQ0
ODk0MzY5ZjhhMTg1ODAwNjdkYS4uMzAyZjY4MjI4MmJjYzdlZTM4ZDNmNjcyN2Q2ZDIzZjg0YjI4
OWRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBA
IC0xMDMyLDcgKzEwMzIsNyBAQCB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpjaGVja1VzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiBwYWdlLAogICAgIFVSTCByZXF1
ZXN0RnJhbWVVUkwgeyBVUkwoKSwgZnJhbWUudXJsKCkgfTsKICAgICBVUkwgbWFpbkZyYW1lVVJM
IHsgVVJMKCksIG1haW5GcmFtZS0+dXJsKCkgfTsKIAotICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVBy
aXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgY2hlY2tVc2Vy
TWVkaWFQZXJtaXNzaW9uRm9yVVJMOnJlcXVlc3RGcmFtZVVSTCBtYWluRnJhbWVVUkw6bWFpbkZy
YW1lVVJMIGZyYW1lSWRlbnRpZmllcjpmcmFtZS5mcmFtZUlEKCkgZGVjaXNpb25IYW5kbGVyOmRl
Y2lzaW9uSGFuZGxlci5nZXQoKV07CisgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVs
ZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRlLm1fd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1p
c3Npb25Gb3JVUkw6cmVxdWVzdEZyYW1lVVJMIG1haW5GcmFtZVVSTDptYWluRnJhbWVVUkwgZnJh
bWVJZGVudGlmaWVyOmZyYW1lLmZyYW1lSUQoKS50b1VJbnQ2NCgpIGRlY2lzaW9uSGFuZGxlcjpk
ZWNpc2lvbkhhbmRsZXIuZ2V0KCldOwogfQogCiB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50Ojpt
ZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3Mgc3RhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XS1JlbG9hZEZyYW1lRXJyb3JSZWNvdmVyeUF0dGVtcHRlci5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dLUmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyLm1tCmlu
ZGV4IDg0ZDIwYzRjZThiMWYwMDE3ZTFiYTc3YjlkMGRmNGYxMDEzOGE5MDAuLjljNDA5MmVmZDQz
NmQwMjI0MGI4MDZhMmMyNDBmNjQzNmQyZWRiNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dLUmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dLUmVsb2FkRnJhbWVFcnJvclJlY292
ZXJ5QXR0ZW1wdGVyLm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0ICJXZWJGcmFtZVByb3h5
LmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5o
IgorI2ltcG9ydCA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbXBvcnQgPHd0Zi9SZXRh
aW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9XZWFrT2JqQ1B0ci5oPgogCkBAIC02Miw4ICs2Myw3IEBA
IC0gKEJPT0wpYXR0ZW1wdFJlY292ZXJ5CiAgICAgaWYgKCF3ZWJWaWV3KQogICAgICAgICByZXR1
cm4gTk87CiAKLSAgICB1aW50NjRfdCBmcmFtZUlEID0gW19mcmFtZUhhbmRsZSBfZnJhbWVJRF07
Ci0gICAgV2ViS2l0OjpXZWJGcmFtZVByb3h5KiB3ZWJGcmFtZVByb3h5ID0gd2ViVmlldy0+X3Bh
Z2UtPnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlEKTsKKyAgICBXZWJLaXQ6OldlYkZyYW1lUHJv
eHkqIHdlYkZyYW1lUHJveHkgPSB3ZWJWaWV3LT5fcGFnZS0+cHJvY2VzcygpLndlYkZyYW1lKFdl
YkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRChbX2ZyYW1lSGFuZGxlIF9mcmFtZUlEXSkpOwog
ICAgIGlmICghd2ViRnJhbWVQcm94eSkKICAgICAgICAgcmV0dXJuIE5POwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCmluZGV4IGEx
YWY5OGQyMTA5M2U1YWVlZThiM2Q0ODBiODE2MWZlMjZlOWVhNTEuLmQ5NjEzOTE4Zjc1ZmE1ZThk
ZjU4MzRmMjUyNDQzOGUwNmU5ODZiOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCkBAIC0xMDEsMTIgKzEwMSwxMiBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6YmVnaW5TYWZlQnJvd3NpbmdDaGVjayhjb25zdCBVUkwmIHVybCwgYm9v
bCBmb3JNYWluRnJhbWVOYXZpZwogfQogCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQot
dm9pZCBXZWJQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShjb25z
dCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIHVuYmxvY2tIYW5kbGVyLCB1
aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9j
a0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIm
IHVuYmxvY2tIYW5kbGVyLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBjb250ZW50
RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWVTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgdW5i
bG9ja0hhbmRsZXIsIGZyYW1lSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6Y29udGVudEZp
bHRlckRpZEJsb2NrTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJv
Y2VzcywgY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiB1bmJsb2Nr
SGFuZGxlciwgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpjb250ZW50Rmls
dGVyRGlkQmxvY2tMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9j
ZXNzLCBjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIHVuYmxvY2tI
YW5kbGVyLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBpZiAoV2ViRnJhbWVQcm94
eSogZnJhbWUgPSBwcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKSkKICAgICAgICAgZnJhbWUtPmNv
bnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWQodW5ibG9ja0hhbmRsZXIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5k
ZXggOTRmYWY2YjlkZTI2MjAxZDg0ZDI2ZmY4MzkzM2Y4MjI5YzA1ZDZiOS4uOTFlY2UxZjBkYWZm
ZTNlYTYzYWRiYzBkOTFlYWM0ZDE4MTExMzA5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0zMTIsNyAr
MzEyLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcyhjb25zdCBJUEM6OkF0dGEKICNlbmRpZgogfQogCi12b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShQYWdlSWRl
bnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlJiYgY29yZUNoYWxsZW5nZSwgdWludDY0X3QgY2hhbGxlbmdlSUQpCit2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShQYWdl
SWRlbnRpZmllciBwYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSYmIGNvcmVDaGFsbGVuZ2UsIHVpbnQ2NF90IGNoYWxsZW5nZUlE
KQogewogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICBpZiAoYXV0byogc2VydmljZVdv
cmtlclByb2Nlc3NQcm94eSA9IG1fcHJvY2Vzc1Bvb2wuc2VydmljZVdvcmtlclByb2Nlc3NQcm94
eUZyb21QYWdlSUQocGFnZUlEKSkgewpAQCAtNzM3LDcgKzczNyw3IEBAIHZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6c2V0R3JhbmRmYXRoZXJlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFJlZ2lzCiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vz
czo6U2V0R3JhbmRmYXRoZXJlZChzZXNzaW9uSUQsIHJlc291cmNlRG9tYWluLCBpc0dyYW5kZmF0
aGVyZWQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1l
RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShQYWdlSWRlbnRpZmllciBw
YWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
c3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBXZWJQcm9jZXNzUHJveHk6OndlYlBhZ2UocGFnZUlEKTsK
ICAgICBpZiAoIXBhZ2UpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggNDMzNTQ1YzBlMzNmYWFlZWQ5ZGViYjM0
ZjZiMjBjZmNhZTVlOTVjOC4uNDBmODFkZTliNDdmMTkyMjE5MDI2YTZlOGEwN2IyYTVlMmQ2YTk5
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmgKQEAgLTgyLDcgKzgyLDYgQEAgcHVibGljOgogICAgIHVzaW5nIE5hdmln
YXRlZFRvRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CiAgICAgdXNpbmcgRG9t
YWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CiAg
ICAgdXNpbmcgT3BlbmVyRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47Ci0gICAg
dXNpbmcgRnJhbWVJRCA9IHVpbnQ2NF90OwogCiAgICAgZXhwbGljaXQgTmV0d29ya1Byb2Nlc3NQ
cm94eShXZWJQcm9jZXNzUG9vbCYpOwogICAgIH5OZXR3b3JrUHJvY2Vzc1Byb3h5KCk7CkBAIC0x
MzAsNyArMTI5LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3VyY2VGb3JE
ZWJ1Z01vZGUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFZlcnlQcmV2YWxlbnRSZXNvdXJj
ZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgZ2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoUEFM
OjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4gZG9tYWlu
cyk+JiYpOwotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyLCBGcmFtZUlELCBjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZy
YW1lRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCBy
ZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0oV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFt
ZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgcmVz
ZXRQYXJhbWV0ZXJzVG9EZWZhdWx0VmFsdWVzKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2NoZWR1bGVDbGVhckluTWVtb3J5QW5kUGVyc2lz
dGVudChQQUw6OlNlc3Npb25JRCwgU2hvdWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2NoZWR1bGVDbGVhckluTWVtb3J5QW5k
UGVyc2lzdGVudChQQUw6OlNlc3Npb25JRCwgT3B0aW9uYWw8V2FsbFRpbWU+IG1vZGlmaWVkU2lu
Y2UsIFNob3VsZEdyYW5kZmF0aGVyU3RhdGlzdGljcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKQEAgLTIxMyw3ICsyMTIsNyBAQCBwcml2YXRlOgogICAgIC8vIE1lc3NhZ2UgaGFuZGxl
cnMKICAgICB2b2lkIGRpZFJlY2VpdmVOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKICAgICB2b2lkIGRpZENyZWF0ZU5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzKGNvbnN0IElQQzo6QXR0YWNobWVudCYpOwotICAgIHZvaWQgZGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1
aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYmLCB1aW50
NjRfdCBjaGFsbGVuZ2VJRCk7CisgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
V2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmJiwgdWludDY0X3QgY2hhbGxlbmdlSUQp
OwogICAgIHZvaWQgZGlkRmV0Y2hXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lELCBjb25z
dCBXZWJzaXRlRGF0YSYpOwogICAgIHZvaWQgZGlkRGVsZXRlV2Vic2l0ZURhdGEodWludDY0X3Qg
Y2FsbGJhY2tJRCk7CiAgICAgdm9pZCBkaWREZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnModWlu
dDY0X3QgY2FsbGJhY2tJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMTFk
OGM1ZGVlMWRiYTgxZjhmNjNmN2Q5NDhlZjY2MTYxOTgxZDEzNC4uYmZhZjlmMDQ5NmU1NmE5Yjkz
MWVmNmZmNzc1MWMzYWNmNWQxMzliYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpA
QCAtMjMsNyArMjMsNyBAQAogbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NQcm94eSBMZWdhY3lS
ZWNlaXZlciB7CiAgICAgRGlkQ3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoSVBD
OjpBdHRhY2htZW50IGNvbm5lY3Rpb25JZGVudGlmaWVyKQogCi0gICAgRGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0
X3QgZnJhbWVJRCwgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UgY2hhbGxlbmdlLCB1
aW50NjRfdCBjaGFsbGVuZ2VJRCkKKyAgICBEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UgY2hhbGxlbmdlLCB1
aW50NjRfdCBjaGFsbGVuZ2VJRCkKIAogICAgIERpZEZldGNoV2Vic2l0ZURhdGEodWludDY0X3Qg
Y2FsbGJhY2tJRCwgc3RydWN0IFdlYktpdDo6V2Vic2l0ZURhdGEgd2Vic2l0ZURhdGEpCiAgICAg
RGlkRGVsZXRlV2Vic2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCkKQEAgLTQ4LDcgKzQ4LDcg
QEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAg
Tm90aWZ5V2Vic2l0ZURhdGFEZWxldGlvbkZvclJlZ2lzdHJhYmxlRG9tYWluc0ZpbmlzaGVkKCkK
ICAgICBOb3RpZnlXZWJzaXRlRGF0YVNjYW5Gb3JSZWdpc3RyYWJsZURvbWFpbnNGaW5pc2hlZCgp
CiAgICAgTm90aWZ5UmVzb3VyY2VMb2FkU3RhdGlzdGljc1RlbGVtZXRyeUZpbmlzaGVkKHVuc2ln
bmVkIHRvdGFsUHJldmFsZW50UmVzb3VyY2VzLCB1bnNpZ25lZCB0b3RhbFByZXZhbGVudFJlc291
cmNlc1dpdGhVc2VySW50ZXJhY3Rpb24sIHVuc2lnbmVkIHRvcDNTdWJmcmFtZVVuZGVyVG9wRnJh
bWVPcmlnaW5zKQotICAgIFJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFt
ZURvbWFpbikgLT4gKGJvb2wgdXNlckRpZEdyYW50QWNjZXNzKSBBc3luYworICAgIFJlcXVlc3RT
dG9yYWdlQWNjZXNzQ29uZmlybShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBz
dWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4p
IC0+IChib29sIHVzZXJEaWRHcmFudEFjY2VzcykgQXN5bmMKICAgICBEZWxldGVXZWJzaXRlRGF0
YUluVUlQcm9jZXNzRm9yUmVnaXN0cmFibGVEb21haW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIE9wdGlvblNl
dDxXZWJLaXQ6OldlYnNpdGVEYXRhRmV0Y2hPcHRpb24+IGZldGNoT3B0aW9ucywgVmVjdG9yPFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21haW5zKSAtPiAoSGFzaFNldDxXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbj4gZG9tYWluc1dpdGhNYXRjaGluZ0RhdGFSZWNvcmRzKSBBc3luYwog
ICAgIERpZENvbW1pdENyb3NzU2l0ZUxvYWRXaXRoRGF0YVRyYW5zZmVyRnJvbVByZXZhbGVudFJl
c291cmNlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCmluZGV4IDY2NmZi
ZDNkYTEwZmI1ZDU5YWYyMTA1MjdhM2MxNTQ1YzE0ODEzZTIuLmQ3ZjBjM2M5NTAyNzRkZThlMGE5
NWNiODVhZGMyNzY1NThmNzJkOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
cm92aXNpb25hbFBhZ2VQcm94eS5jcHAKQEAgLTE3Niw3ICsxNzYsNyBAQCB2b2lkIFByb3Zpc2lv
bmFsUGFnZVByb3h5Ojpnb1RvQmFja0ZvcndhcmRJdGVtKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdh
dGlvbiwgV2ViQgogICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0KCk7
CiB9CiAKLWlubGluZSBib29sIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojp2YWxpZGF0ZUlucHV0KHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IE9wdGlvbmFsPHVpbnQ2NF90PiYgbmF2aWdhdGlvbklEKQor
aW5saW5lIGJvb2wgUHJvdmlzaW9uYWxQYWdlUHJveHk6OnZhbGlkYXRlSW5wdXQoRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIGNvbnN0IE9wdGlvbmFsPHVpbnQ2NF90PiYgbmF2aWdhdGlvbklEKQog
ewogICAgIC8vIElmIHRoZSBwcmV2aW91cyBwcm92aXNpb25hbCBsb2FkIHVzZWQgYW4gZXhpc3Rp
bmcgcHJvY2Vzcywgd2UgbWF5IHJlY2VpdmUgbGVmdG92ZXIgSVBDIGZvciBhIHByZXZpb3VzIG5h
dmlnYXRpb24sIHdoaWNoIHdlIG5lZWQgdG8gaWdub3JlLgogICAgIGlmICghbV9tYWluRnJhbWUg
fHwgbV9tYWluRnJhbWUtPmZyYW1lSUQoKSAhPSBmcmFtZUlEKQpAQCAtMTg1LDkgKzE4NSw5IEBA
IGlubGluZSBib29sIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojp2YWxpZGF0ZUlucHV0KHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IE9wdGlvbmFsCiAgICAgcmV0dXJuICFuYXZpZ2F0aW9uSUQgfHwgISpu
YXZpZ2F0aW9uSUQgfHwgKm5hdmlnYXRpb25JRCA9PSBtX25hdmlnYXRpb25JRDsKIH0KIAotdm9p
ZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUoRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNz
U3dhcHBpbmcsICJkaWRDcmVhdGVNYWluRnJhbWU6IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0LCBtX3BhZ2UucGFnZUlEKCkudG9VSW50NjQoKSwgZnJhbWVJRCk7Cisg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICJkaWRDcmVhdGVNYWlu
RnJhbWU6IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3BhZ2Uu
cGFnZUlEKCkudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKICAgICBBU1NFUlQoIW1f
bWFpbkZyYW1lKTsKIAogICAgIG1fbWFpbkZyYW1lID0gV2ViRnJhbWVQcm94eTo6Y3JlYXRlKG1f
cGFnZSwgZnJhbWVJRCk7CkBAIC0yMTIsNyArMjEyLDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQ
cm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpCiAgICAgfQogfQogCi12
b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3Qg
U3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJp
bmcsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkaWRQZXJm
b3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0
cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewog
ICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlEKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjIw
LDEyICsyMjAsMTIgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybUNsaWVu
dFJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW4KICAgICBtX3BhZ2UuZGlkUGVy
Zm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIHNvdXJjZVVSTFN0
cmluZywgZGVzdGluYXRpb25VUkxTdHJpbmcsIGZyYW1lSUQpOwogfQogCi12b2lkIFByb3Zpc2lv
bmFsUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYgdXJsLCBVUkwmJiB1bnJlYWNoYWJs
ZVVSTCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94
eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiB1cmwsIFVSTCYmIHVucmVhY2hhYmxlVVJM
LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZy
YW1lSUQsIG5hdmlnYXRpb25JRCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoUHJvY2Vzc1N3YXBwaW5nLCAiZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JG
cmFtZTogcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgbmF2aWdh
dGlvbklEID0gJSIgUFJJdTY0LCBtX3BhZ2UucGFnZUlEKCkudG9VSW50NjQoKSwgZnJhbWVJRCwg
bmF2aWdhdGlvbklEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGlu
ZywgImRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6IHBhZ2VJRCA9ICUiIFBSSXU2NCAi
LCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIG5hdmlnYXRpb25JRCA9ICUiIFBSSXU2NCwgbV9wYWdl
LnBhZ2VJRCgpLnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSwgbmF2aWdhdGlvbklEKTsK
ICAgICBBU1NFUlQobV9wcm92aXNpb25hbExvYWRVUkwuaXNOdWxsKCkpOwogICAgIG1fcHJvdmlz
aW9uYWxMb2FkVVJMID0gdXJsOwogCkBAIC0yNDAsMTIgKzI0MCwxMiBAQCB2b2lkIFByb3Zpc2lv
bmFsUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIHVpbgogICAgIG1fcGFnZS5kaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hh
cmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIG5hdmlnYXRpb25JRCwgV1RGTW92ZSh1
cmwpLCBXVEZNb3ZlKHVucmVhY2hhYmxlVVJMKSwgdXNlckRhdGEpOwogfQogCi12b2lkIFByb3Zp
c2lvbmFsUGFnZVByb3h5OjpkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5
T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxV
UkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yLCBXZWJDb3JlOjpXaWxsQ29u
dGludWVMb2FkaW5nIHdpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0
YSkKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JG
cmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0
IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIGVy
cm9yLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250aW51ZUxvYWRpbmcsIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJ
RCwgbmF2aWdhdGlvbklEKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUkVMRUFTRV9MT0dfRVJS
T1JfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICJkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWU6IHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIG5hdmln
YXRpb25JRCA9ICUiIFBSSXU2NCwgbV9wYWdlLnBhZ2VJRCgpLnRvVUludDY0KCksIGZyYW1lSUQs
IG5hdmlnYXRpb25JRCk7CisgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChQcm9jZXNz
U3dhcHBpbmcsICJkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6IHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIG5hdmlnYXRpb25JRCA9ICUiIFBSSXU2NCwg
bV9wYWdlLnBhZ2VJRCgpLnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSwgbmF2aWdhdGlv
bklEKTsKICAgICBBU1NFUlQoIW1fcHJvdmlzaW9uYWxMb2FkVVJMLmlzTnVsbCgpKTsKICAgICBt
X3Byb3Zpc2lvbmFsTG9hZFVSTCA9IHsgfTsKIApAQCAtMjU2LDEyICsyNTYsMTIgQEAgdm9pZCBQ
cm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnMKICAgICBtX3BhZ2UuZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGZyYW1lU2VjdXJpdHlPcmln
aW4sIG5hdmlnYXRpb25JRCwgcHJvdmlzaW9uYWxVUkwsIGVycm9yLCB3aWxsQ29udGludWVMb2Fk
aW5nLCB1c2VyRGF0YSk7IC8vIE1heSBkZWxldGUgfHRoaXN8LgogfQogCi12b2lkIFByb3Zpc2lv
bmFsUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFz
Q3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJD
b3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdp
bkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhh
c0luc2VjdXJlQ29udGVudCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBQcm92aXNp
b25hbFBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wg
ZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNv
bnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBib29sIGNvbnRh
aW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4g
Zm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAg
ICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQsIG5hdmlnYXRpb25JRCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2Vzc1N3YXBwaW5nLCAiZGlk
Q29tbWl0TG9hZEZvckZyYW1lOiBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCBuYXZpZ2F0aW9uSUQgPSAlIiBQUkl1NjQsIG1fcGFnZS5wYWdlSUQoKS50b1VJbnQ2
NCgpLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
UHJvY2Vzc1N3YXBwaW5nLCAiZGlkQ29tbWl0TG9hZEZvckZyYW1lOiBwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9uSUQgPSAlIiBQUkl1NjQsIG1f
cGFnZS5wYWdlSUQoKS50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCksIG5hdmlnYXRpb25J
RCk7CiAgICAgbV9wcm92aXNpb25hbExvYWRVUkwgPSB7IH07CiAgICAgbV9wcm9jZXNzLT5yZW1v
dmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpLCBtX3BhZ2UucGFnZUlEKCkpOwogCkBAIC0yNjksNyArMjY5LDcgQEAgdm9pZCBQcm92
aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IHVpbnQ2NF90IG5hdmkKICAgICBtX3BhZ2UuY29tbWl0UHJvdmlzaW9uYWxQYWdlKGZyYW1lSUQs
IG5hdmlnYXRpb25JRCwgbWltZVR5cGUsIGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCBm
cmFtZUxvYWRUeXBlLCBjZXJ0aWZpY2F0ZUluZm8sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIGZv
cmNlZEhhc0luc2VjdXJlQ29udGVudCwgdXNlckRhdGEpOyAvLyBXaWxsIGRlbGV0ZSB8dGhpc3wu
CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRp
b25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmIHN0b3JlLCB1aW50NjRfdCBmcmFt
ZUlEKQordm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlv
bkRhdGEoY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYgc3RvcmUsIEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlEKQogewogICAgIGlmICghdmFsaWRhdGVJbnB1dChmcmFtZUlEKSkKICAgICAgICAg
cmV0dXJuOwpAQCAtMjc3LDcgKzI3Nyw3IEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRp
ZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhCiAgICAg
bV9wYWdlLmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKG1fcHJvY2Vzcy5jb3B5
UmVmKCksIHN0b3JlLCBmcmFtZUlEKTsKIH0KIAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6
ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCkKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRp
ZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYgdXJsKQogewogICAgIGlmICghdmFsaWRhdGVJbnB1
dChmcmFtZUlELCBuYXZpZ2F0aW9uSUQpKQogICAgICAgICByZXR1cm47CkBAIC0yODUsNyArMjg1
LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW4KICAgICBtX3BhZ2UuZGlkQ2hhbmdlUHJvdmlz
aW9uYWxVUkxGb3JGcmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBuYXZp
Z2F0aW9uSUQsIFdURk1vdmUodXJsKSk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6
OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyh1aW50NjRfdCBmcmFtZUlELCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3Jl
OjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKK3ZvaWQgUHJvdmlzaW9uYWxQYWdl
UHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9y
aWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCiAgICAgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rp
b25EYXRhLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8UGFnZUlkZW50
aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IG9yaWdpbmFsUmVxdWVzdCwKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0
LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIHVp
bnQ2NF90IGxpc3RlbmVySUQpCiB7CkBAIC0yOTYsNyArMjk2LDcgQEAgdm9pZCBQcm92aXNpb25h
bFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKHVpbnQ2NF90
IGZyYW1lSUQKICAgICAgICAgV1RGTW92ZShmcmFtZUluZm9EYXRhKSwgb3JpZ2luYXRpbmdQYWdl
SUQsIG9yaWdpbmFsUmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZXF1ZXN0Qm9k
eSksIFdURk1vdmUocmVkaXJlY3RSZXNwb25zZSksIHVzZXJEYXRhLCBsaXN0ZW5lcklEKTsKIH0K
IAotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNl
Y3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwK
K3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKEZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZy
YW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlm
aWVyLAogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxvYWRBdHRyaWJ1dGUs
IHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBp
ZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCwgbmF2aWdhdGlvbklEKSkKQEAgLTMwNSw3ICszMDUs
NyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDbwogICAgIG1fcGFnZS5kZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBmcmFtZVNlY3VyaXR5
T3JpZ2luLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5T
aG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRlLCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7CiB9
CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVS
TFN0cmluZywgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRp
ZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29u
c3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQp
CiB7CiAgICAgaWYgKCF2YWxpZGF0ZUlucHV0KGZyYW1lSUQpKQogICAgICAgICByZXR1cm47CkBA
IC0zMTMsNyArMzEzLDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNl
cnZlclJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW4KICAgICBtX3BhZ2UuZGlk
UGVyZm9ybVNlcnZlclJlZGlyZWN0U2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIHNvdXJjZVVS
TFN0cmluZywgZGVzdGluYXRpb25VUkxTdHJpbmcsIGZyYW1lSUQpOwogfQogCi12b2lkIFByb3Zp
c2lvbmFsUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExv
YWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkK
K3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclBy
b3Zpc2lvbmFsTG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFVz
ZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBpZiAoIXZhbGlkYXRlSW5wdXQoZnJhbWVJRCwgbmF2
aWdhdGlvbklEKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMzMxLDcgKzMzMSw3IEBAIHZvaWQgUHJv
dmlzaW9uYWxQYWdlUHJveHk6OmJhY2tGb3J3YXJkR29Ub0l0ZW0oY29uc3QgV2ViQ29yZTo6QmFj
a0ZvcndhcmRJdGVtSWRlCiAgICAgbV9wYWdlLmJhY2tGb3J3YXJkR29Ub0l0ZW1TaGFyZWQobV9w
cm9jZXNzLmNvcHlSZWYoKSwgaWRlbnRpZmllciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwogfQogCi12b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uU3luYyh1aW50NjRfdCBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xp
Y3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6
OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFt
ZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmll
ciwKICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2
aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm9EYXRhLCBPcHRpb25h
bDxQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsCiAgICAgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmIHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsCiAgICAgY29uc3QgVXNlckRh
dGEmIHVzZXJEYXRhLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCkBAIC0zNjYsNyArMzY2LDcg
QEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6cmVnaXN0ZXJXZWJQcm9jZXNzQWNjZXNzaWJp
bGl0eVRva2VuKGNvbnN0IElQQzo6RGF0YVIKICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFTlRf
RklMVEVSSU5HKQotdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6Y29udGVudEZpbHRlckRpZEJs
b2NrTG9hZEZvckZyYW1lKGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxl
ciYgdW5ibG9ja0hhbmRsZXIsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFByb3Zpc2lvbmFsUGFn
ZVByb3h5Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWUoY29uc3QgV2ViQ29yZTo6
Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiB1bmJsb2NrSGFuZGxlciwgRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQpCiB7CiAgICAgbV9wYWdlLmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JG
cmFtZVNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCB1bmJsb2NrSGFuZGxlciwgZnJhbWVJRCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaApp
bmRleCAzMzMyMTZhMmNjNzg1NjY3MTYzMjRhYjA2ZmYxYjNiOTYwODBjMGJlLi5kZTNlZTY4N2Zh
N2Q4MTc1MGI1OGZlZGE1ODQ1ODNmZDFmMWUyZDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKQEAgLTkyLDIzICs5MiwyMyBAQCBwcml2YXRl
OgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNv
ZGVyJikgZmluYWw7CiAgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBmaW5h
bDsKIAotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKHVpbnQ2
NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xp
Y3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlv
bkRhdGEmJiwgRnJhbWVJbmZvRGF0YSYmLAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYsCiAg
ICAgICAgIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJ
RCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJv
ZHksCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNl
LCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3RlbmVySUQpOwotICAgIHZvaWQgZGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2UodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLAorICAgIHZvaWQg
ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZp
ZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYsCiAgICAgICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hv
d01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0
ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxV
UkxGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYm
KTsKLSAgICB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0X3Qg
ZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25h
bExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlk
TmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYs
IHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNv
bnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJM
U3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZENyZWF0ZU1haW5GcmFtZSh1
aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiwgVVJMJiYg
dW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRDb21taXRMb2Fk
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBT
dHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50
MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mLCBib29s
IGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29u
dGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZv
aWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZywgY29uc3Qg
VXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmKTsKKyAg
ICB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0
cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgVXNlckRhdGEmKTsKKyAg
ICB2b2lkIGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKGNvbnN0IFdlYk5hdmlnYXRpb25E
YXRhU3RvcmUmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkUGVyZm9y
bUNsaWVudFJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJp
bmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAg
IHZvaWQgZGlkQ3JlYXRlTWFpbkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAg
dm9pZCBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiwgVVJMJiYgdW5yZWFjaGFibGVVUkws
IGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRDb21taXRMb2FkRm9yRnJhbWUoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYg
bWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZy
YW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYsIGJvb2wgY29udGFp
bnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8V2ViQ29yZTo6SGFzSW5zZWN1cmVDb250ZW50PiBm
b3JjZWRIYXNJbnNlY3VyZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRG
YWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0
IFVzZXJEYXRhJik7CiAgICAgdm9pZCBzdGFydFVSTFNjaGVtZVRhc2soVVJMU2NoZW1lVGFza1Bh
cmFtZXRlcnMmJik7CiAgICAgdm9pZCBiYWNrRm9yd2FyZEdvVG9JdGVtKGNvbnN0IFdlYkNvcmU6
OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSYmKT4mJik7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uU3luYyh1aW50NjRfdCBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVy
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCisgICAgdm9p
ZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBX
ZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2
aWdhdGlvbkFjdGlvbkRhdGEmJiwKICAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCBPcHRpb25hbDxX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LAogICAgICAgICBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEm
LCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
U3luYzo6RGVsYXllZFJlcGx5JiYpOwogI2lmIFVTRShRVUlDS19MT09LKQpAQCAtMTE4LDExICsx
MTgsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlZ2lzdGVyV2ViUHJvY2Vzc0FjY2Vzc2liaWxp
dHlUb2tlbihjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKTsKICNlbmRpZgogI2lmIEVOQUJMRShD
T05URU5UX0ZJTFRFUklORykKLSAgICB2b2lkIGNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JG
cmFtZShjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImLCB1aW50NjRf
dCBmcmFtZUlEKTsKKyAgICB2b2lkIGNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShj
b25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImLCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIpOwogI2VuZGlmCiAKICAgICB2b2lkIGluaXRpYWxpemVXZWJQYWdlKCk7Ci0g
ICAgYm9vbCB2YWxpZGF0ZUlucHV0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IE9wdGlvbmFsPHVp
bnQ2NF90PiYgbmF2aWdhdGlvbklEID0gV1RGOjpudWxsb3B0KTsKKyAgICBib29sIHZhbGlkYXRl
SW5wdXQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBPcHRpb25hbDx1aW50NjRfdD4m
IG5hdmlnYXRpb25JRCA9IFdURjo6bnVsbG9wdCk7CiAKICAgICBXZWJQYWdlUHJveHkmIG1fcGFn
ZTsKICAgICBSZWY8V2ViUHJvY2Vzc1Byb3h5PiBtX3Byb2Nlc3M7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwCmluZGV4IGIy
Zjc3MjlmZDM5MzVmNzJlMWJjOTExNWEzMGExOGY2NGUzOWZkMjUuLmY3OGE3YzM4NmM4OTU5MDEx
NTZiNTY4YWFmOThiYWIyM2IwODA2ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwCkBAIC05MCw3ICs5MCw3IEBAIHZv
aWQgU2VydmljZVdvcmtlclByb2Nlc3NQcm94eTo6dXBkYXRlUHJlZmVyZW5jZXNTdG9yZShjb25z
dCBXZWJQcmVmZXJlbmNlc1N0b3JlCiAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb246OlVwZGF0ZVByZWZlcmVuY2VzU3RvcmUgeyBzdG9yZSB9LCAwKTsKIH0K
IAotdm9pZCBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJiBjaGFsbGVuZ2UpCit2b2lkIFNlcnZpY2VX
b3JrZXJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShQYWdl
SWRlbnRpZmllciBwYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VQcm94eT4mJiBjaGFsbGVuZ2UpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHBh
Z2VJRCk7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oCmluZGV4IGU5MzY1YWZhYzRm
NDdkN2ZkNzQ3Zjk4OTgzYWQ5OTkwZThhYjk3NTUuLjdkODg3NjA1ZWVhMGI2NDc5ZDY5NzY5MWFi
YjU1MjgwN2RlMjE4NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZp
Y2VXb3JrZXJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogCiAgICAg
c3RhdGljIGJvb2wgaGFzUmVnaXN0ZXJlZFNlcnZpY2VXb3JrZXJzKGNvbnN0IFN0cmluZyYgc2Vy
dmljZVdvcmtlckRpcmVjdG9yeSk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgUmVm
PEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmKTsKIAog
ICAgIHZvaWQgc3RhcnQoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYsIE9wdGlvbmFsPFBBTDo6
U2Vzc2lvbklEPiBpbml0aWFsU2Vzc2lvbklEKTsKICAgICB2b2lkIHNldFVzZXJBZ2VudChjb25z
dCBTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRl
ZFBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdXNwZW5kZWRQYWdlUHJv
eHkuY3BwCmluZGV4IGY2ZDNiNTM2ZGY4YWFiMTk3ZDkxMWVkMTRkMmVhNDBmZWZmMmUxZGQuLmM2
NGQ3ZWYxOWJkMGRlNzExNjk2OTk5MmMwNzY3MWU2MWQ4MjgzZWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmNwcApAQCAtNzgsNyArNzgsNyBAQCBz
dGF0aWMgY29uc3QgSGFzaFNldDxJUEM6OlN0cmluZ1JlZmVyZW5jZT4mIG1lc3NhZ2VOYW1lc1Rv
SWdub3JlV2hpbGVTdXNwZW5kZWQoKQogfQogI2VuZGlmCiAKLVN1c3BlbmRlZFBhZ2VQcm94eTo6
U3VzcGVuZGVkUGFnZVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiBwcm9jZXNzLCB1aW50NjRfdCBtYWluRnJhbWVJRCwgU2hvdWxkRGVsYXlDbG9zaW5nVW50
aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlIHNob3VsZERlbGF5Q2xvc2luZ1Vu
dGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSkKK1N1c3BlbmRlZFBhZ2VQcm94
eTo6U3VzcGVuZGVkUGFnZVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiBwcm9jZXNzLCBGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQsIFNob3VsZERlbGF5
Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSBzaG91bGREZWxh
eUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpCiAgICAgOiBt
X3BhZ2UocGFnZSkKICAgICAsIG1fcHJvY2VzcyhXVEZNb3ZlKHByb2Nlc3MpKQogICAgICwgbV9t
YWluRnJhbWVJRChtYWluRnJhbWVJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1N1c3BlbmRlZFBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVu
ZGVkUGFnZVByb3h5LmgKaW5kZXggMGRhZDA1NGIyNzJhODE5ZDZlMGIwNmM3N2NlZDgxMmEyNjNk
MTM0MC4uOTE2NTNjYzc4ZWEwMDg2NjBiMTRlMzM1MDU1M2FhODllNzNkMTkxMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvU3VzcGVuZGVkUGFnZVByb3h5LmgKQEAgLTI5LDYgKzI5LDcg
QEAKICNpbmNsdWRlICJQcm9jZXNzVGhyb3R0bGVyLmgiCiAjaW5jbHVkZSAiV2ViQmFja0Zvcndh
cmRMaXN0SXRlbS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKQEAgLTQyLDEyICs0MywxMiBAQCBlbnVtIGNs
YXNzIFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5n
TW9kZSA6IGJvb2wgeyBObwogY2xhc3MgU3VzcGVuZGVkUGFnZVByb3h5IGZpbmFsOiBwdWJsaWMg
SVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxTdXNwZW5kZWRQYWdl
UHJveHk+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBTdXNw
ZW5kZWRQYWdlUHJveHkoV2ViUGFnZVByb3h5JiwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWlu
dDY0X3QgbWFpbkZyYW1lSUQsIFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVy
YXRlZENvbXBvc2l0aW5nTW9kZSk7CisgICAgU3VzcGVuZGVkUGFnZVByb3h5KFdlYlBhZ2VQcm94
eSYsIFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWlu
RnJhbWVJRCwgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdNb2RlKTsKICAgICB+U3VzcGVuZGVkUGFnZVByb3h5KCk7CiAKICAgICBXZWJQYWdlUHJv
eHkmIHBhZ2UoKSBjb25zdCB7IHJldHVybiBtX3BhZ2U7IH0KICAgICBXZWJQcm9jZXNzUHJveHkm
IHByb2Nlc3MoKSB7IHJldHVybiBtX3Byb2Nlc3MuZ2V0KCk7IH0KLSAgICB1aW50NjRfdCBtYWlu
RnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbkZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX21haW5GcmFtZUlE
OyB9CiAKICAgICBib29sIHBhZ2VJc0Nsb3NlZE9yQ2xvc2luZygpIGNvbnN0OwogCkBAIC03NCw3
ICs3NSw3IEBAIHByaXZhdGU6CiAKICAgICBXZWJQYWdlUHJveHkmIG1fcGFnZTsKICAgICBSZWY8
V2ViUHJvY2Vzc1Byb3h5PiBtX3Byb2Nlc3M7Ci0gICAgdWludDY0X3QgbV9tYWluRnJhbWVJRDsK
KyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbV9tYWluRnJhbWVJRDsKICAgICBib29sIG1f
aXNDbG9zZWQgeyBmYWxzZSB9OwogICAgIFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSBtX3Nob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJp
bmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSB7IFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50
ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZTo6Tm8gfTsKICAgICBib29sIG1fc2hvdWxk
Q2xvc2VXaGVuRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSB7IGZhbHNlIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hl
Y2tQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9u
Q2hlY2tQcm94eS5jcHAKaW5kZXggYWI3OTI0MDI5ZTBlZjNhM2JiYWI3NGNiYWMwMGMyOTdmYTk2
YTNjYS4uNGZhNmZkZjYwOGQ2YzM3ZWZlY2IwYTVlMDZjMmNmZGU1MGViNTg0YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVj
a1Byb3h5LmNwcApAQCAtMzMsNyArMzMsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAotVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OlVzZXJN
ZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5KHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5k
bGVyJiYgaGFuZGxlciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbikKK1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5OjpVc2VyTWVkaWFQZXJt
aXNzaW9uQ2hlY2tQcm94eShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRs
ZXImJiBoYW5kbGVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9j
dW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luKQogICAgIDogbV9mcmFtZUlEKGZyYW1lSUQpCiAgICAgLCBtX2NvbXBsZXRpb25I
YW5kbGVyKFdURk1vdmUoaGFuZGxlcikpCiAgICAgLCBtX3VzZXJNZWRpYURvY3VtZW50U2VjdXJp
dHlPcmlnaW4oV1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbikpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaApp
bmRleCBkYzM0MDk4MTcxNGM3Mjc5M2MwMTA1ZDc4MzM5MWI3ZmE5NDU5MThmLi5lODBiNTE5MTg0
MWZkYjI0Njc1NTEwOTcyNTA5NjZlOTBiN2UyYTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmgKQEAgLTI2LDYg
KzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29u
c3RyYWludHMuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTQxLDcgKzQyLDcgQEAgcHVibGljOgogICAgIGVu
dW0gY2xhc3MgUGVybWlzc2lvbkluZm8geyBFcnJvciwgVW5rbm93biwgR3JhbnRlZCB9OwogICAg
IHVzaW5nIENvbXBsZXRpb25IYW5kbGVyID0gV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBl
cm1pc3Npb25JbmZvKT47CiAKLSAgICBzdGF0aWMgUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25DaGVj
a1Byb3h5PiBjcmVhdGUodWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXImJiBoYW5k
bGVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmln
aW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
KQorICAgIHN0YXRpYyBSZWY8VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk+IGNyZWF0ZShX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXImJiBoYW5k
bGVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmln
aW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVXNlck1lZGlhUGVybWlzc2lv
bkNoZWNrUHJveHkoZnJhbWVJRCwgV1RGTW92ZShoYW5kbGVyKSwgV1RGTW92ZSh1c2VyTWVkaWFE
b2N1bWVudE9yaWdpbiksIFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbikpKTsKICAgICB9
CkBAIC01MCwxNyArNTEsMTcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VXNlck1lZGlhQWNjZXNz
SW5mbyhib29sKTsKICAgICB2b2lkIGludmFsaWRhdGUoKSB7IGNvbXBsZXRlKFBlcm1pc3Npb25J
bmZvOjpFcnJvcik7IH0KIAotICAgIHVpbnQ2NF90IGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBt
X2ZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNvbnN0
IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQogICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2Vy
TWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkgeyByZXR1cm4gbV91c2VyTWVkaWFEb2N1bWVu
dFNlY3VyaXR5T3JpZ2luLmdldCgpOyB9CiAgICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRv
cExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIHsgcmV0dXJuIG1fdG9wTGV2ZWxEb2N1bWVu
dFNlY3VyaXR5T3JpZ2luLmdldCgpOyB9CiAgICAgCiBwcml2YXRlOgotICAgIFVzZXJNZWRpYVBl
cm1pc3Npb25DaGVja1Byb3h5KHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyJiYs
IFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwg
UmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pOwor
ICAgIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgQ29tcGxldGlvbkhhbmRsZXImJiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVz
ZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9w
TGV2ZWxEb2N1bWVudE9yaWdpbik7CiAgICAgflVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5
KCk7CiAKICAgICB2b2lkIGNvbXBsZXRlKFBlcm1pc3Npb25JbmZvKTsKICAgICAKLSAgICB1aW50
NjRfdCBtX2ZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fZnJhbWVJRDsK
ICAgICBDb21wbGV0aW9uSGFuZGxlciBtX2NvbXBsZXRpb25IYW5kbGVyOwogICAgIFJlZjxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbj4gbV91c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luOwog
ICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gbV90b3BMZXZlbERvY3VtZW50U2VjdXJp
dHlPcmlnaW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKaW5kZXggZDM0MDM3
NmZmMjkwN2I4NzI5MzU2NDY0Mjg5ZDQzNDk2ZDQwMDk5MS4uZGI0Y2RhMTExNjFkMjIyODI5ODRm
ZWU5YWVhZDQwYTRlZWMxYTQ5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNw
cApAQCAtMjQwLDkgKzI0MCw5IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHk6OmZpbmlzaEdyYW50aW5nUmVxdWVzdChVc2VyTWVkaWFQZXJtCiAgICAgcHJvY2Vz
c05leHRVc2VyTWVkaWFSZXF1ZXN0SWZOZWVkZWQoKTsKIH0KIAotdm9pZCBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVzZXRBY2Nlc3ModWludDY0X3QgZnJhbWVJRCkK
K3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlc2V0QWNjZXNz
KEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewotICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklF
UiwgZnJhbWVJRCk7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBmcmFtZUlELmxvZ2dp
bmdTdHJpbmcoKSk7CiAgICAgbV9ncmFudGVkUmVxdWVzdHMucmVtb3ZlQWxsTWF0Y2hpbmcoW2Zy
YW1lSURdKGNvbnN0IGF1dG8mIGdyYW50ZWRSZXF1ZXN0KSB7CiAgICAgICAgIHJldHVybiBncmFu
dGVkUmVxdWVzdC0+bWFpbkZyYW1lSUQoKSA9PSBmcmFtZUlEOwogICAgIH0pOwpAQCAtMjUxLDcg
KzI1MSw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJl
c2V0QWNjZXNzKHVpbnQ2NF90IGZyYW1lSUQpCiAgICAgbV9oYXNGaWx0ZXJlZERldmljZUxpc3Qg
PSBmYWxzZTsKIH0KIAotY29uc3QgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSogVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnNlYXJjaEZvckdyYW50ZWRSZXF1
ZXN0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1
bWVudE9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4s
IGJvb2wgbmVlZHNBdWRpbywgYm9vbCBuZWVkc1ZpZGVvKSBjb25zdAorY29uc3QgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eSogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk6OnNlYXJjaEZvckdyYW50ZWRSZXF1ZXN0KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBj
b25zdCBTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFNlY3Vy
aXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBib29sIG5lZWRzQXVkaW8sIGJvb2wg
bmVlZHNWaWRlbykgY29uc3QKIHsKICAgICBpZiAobV9wYWdlLmlzTWVkaWFTdHJlYW1DYXB0dXJl
TXV0ZWQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0yODIsNyArMjgyLDcgQEAgY29u
c3QgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSogVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OnMKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotYm9vbCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6d2FzUmVxdWVzdERlbmllZCh1aW50
NjRfdCBtYWluRnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50
T3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9v
bCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8sIGJvb2wgbmVlZHNTY3JlZW5DYXB0dXJlKQor
Ym9vbCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6d2FzUmVxdWVzdERl
bmllZChGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9j
dW1lbnRPcmlnaW4sIGJvb2wgbmVlZHNBdWRpbywgYm9vbCBuZWVkc1ZpZGVvLCBib29sIG5lZWRz
U2NyZWVuQ2FwdHVyZSkKIHsKICAgICBmb3IgKGNvbnN0IGF1dG8mIGRlbmllZFJlcXVlc3QgOiBt
X2RlbmllZFJlcXVlc3RzKSB7CiAgICAgICAgIGlmICghZGVuaWVkUmVxdWVzdC51c2VyTWVkaWFE
b2N1bWVudE9yaWdpbi0+aXNTYW1lU2NoZW1lSG9zdFBvcnQodXNlck1lZGlhRG9jdW1lbnRPcmln
aW4pKQpAQCAtMzQ2LDcgKzM0Niw3IEBAIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5OjpSZXF1ZXN0QWN0aW9uIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0CiB9CiAjZW5k
aWYKIAotdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVz
dFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0
X3QgZnJhbWVJRCwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
LCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgTWVkaWFTdHJl
YW1SZXF1ZXN0JiYgdXNlclJlcXVlc3QpCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90
IHVzZXJNZWRpYUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUmVmPFNlY3VyaXR5T3JpZ2lu
PiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbiwgTWVkaWFTdHJlYW1SZXF1ZXN0JiYgdXNlclJlcXVlc3QpCiB7CiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBpZiAoIW1fcGFnZS5oYXNSdW5uaW5nUHJvY2Vz
cygpKQpAQCAtNTIxLDcgKzUyMSw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHk6OnByb2Nlc3NVc2VyTWVkaWFQZXJtaXNzaW9uVmFsaWRSZXF1CiAgICAgbV9w
YWdlLnVpQ2xpZW50KCkuZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Qo
bV9wYWdlLCAqd2ViRnJhbWUsIFdURk1vdmUodXNlck1lZGlhT3JpZ2luKSwgV1RGTW92ZSh0b3BM
ZXZlbE9yaWdpbiksICptX2N1cnJlbnRVc2VyTWVkaWFSZXF1ZXN0KTsKIH0KIAotdm9pZCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Z2V0VXNlck1lZGlhUGVybWlzc2lv
bkluZm8odWludDY0X3QgZnJhbWVJRCwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdp
biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQZXJtaXNzaW9uSW5mbyk+JiYgaGFuZGxlcikKK3Zv
aWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmdldFVzZXJNZWRpYVBl
cm1pc3Npb25JbmZvKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8U2VjdXJpdHlPcmlnaW4+
JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBlcm1pc3Npb25JbmZvKT4m
JiBoYW5kbGVyKQogewogICAgIGF1dG8qIHdlYkZyYW1lID0gbV9wYWdlLnByb2Nlc3MoKS53ZWJG
cmFtZShmcmFtZUlEKTsKICAgICBpZiAoIXdlYkZyYW1lIHx8ICFTZWN1cml0eU9yaWdpbjo6Y3Jl
YXRlRnJvbVN0cmluZyhtX3BhZ2UucGFnZUxvYWRTdGF0ZSgpLmFjdGl2ZVVSTCgpKS0+aXNTYW1l
U2NoZW1lSG9zdFBvcnQodG9wTGV2ZWxEb2N1bWVudE9yaWdpbi5nZXQoKSkpIHsKQEAgLTU0NSw3
ICs1NDUsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpn
ZXRVc2VyTWVkaWFQZXJtaXNzaW9uSW5mbyh1aW50NjRfdAogICAgIG1fcGFnZS51aUNsaWVudCgp
LmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihtX3BhZ2UsICp3ZWJGcmFtZSwgdXNl
ck1lZGlhT3JpZ2luLmdldCgpLCB0b3BMZXZlbE9yaWdpbi5nZXQoKSwgcmVxdWVzdC5nZXQoKSk7
CiB9CiAKLWJvb2wgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc0dy
YW50ZWRWaWRlb09yQXVkaW9BY2Nlc3ModWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlP
cmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9w
TGV2ZWxEb2N1bWVudE9yaWdpbikKK2Jvb2wgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHk6Ondhc0dyYW50ZWRWaWRlb09yQXVkaW9BY2Nlc3MoRnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29u
c3QgU2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pCiB7CiAgICAgZm9yIChj
b25zdCBhdXRvJiBncmFudGVkUmVxdWVzdCA6IG1fZ3JhbnRlZFJlcXVlc3RzKSB7CiAgICAgICAg
IGlmIChncmFudGVkUmVxdWVzdC0+cmVxdWlyZXNEaXNwbGF5Q2FwdHVyZSgpKQpAQCAtNjA0LDcg
KzYwNCw3IEBAIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6Y29tcHV0ZUZpbHRlcmVkRGV2CiB9CiAjZW5kaWYKIAotdm9pZCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2Vz
Rm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxTZWN1
cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFNlY3VyaXR5T3JpZ2lu
PiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pCit2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5OjplbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50NjRfdCB1
c2VyTWVkaWFJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxTZWN1cml0eU9yaWdpbj4m
JiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVs
RG9jdW1lbnRPcmlnaW4pCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBBTFdBWVNf
TE9HKExPR0lERU5USUZJRVIsIHVzZXJNZWRpYUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5oCmluZGV4IGY1MDVlMjgwYzQ0MjkwYTgwM2RiZGI2OGM5OGVlYTYzMGIxYzliYjYuLmJi
YmE0NGFjODJiZDI4MDc1YmRkZmJiNDU0NDRjYTU2OWFjY2ZiOTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuaApAQCAtNjAsMTUgKzYwLDE1IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
aW52YWxpZGF0ZVBlbmRpbmdSZXF1ZXN0cygpOwogCi0gICAgdm9pZCByZXF1ZXN0VXNlck1lZGlh
UGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlE
LCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgIHVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
LCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwg
V2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYpOworICAgIHZvaWQgcmVxdWVzdFVzZXJNZWRp
YVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgIHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbiwgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYpOwogCi0gICAgdm9pZCByZXNl
dEFjY2Vzcyh1aW50NjRfdCBtYWluRnJhbWVJRCk7CisgICAgdm9pZCByZXNldEFjY2VzcyhXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQpOwogICAgIHZvaWQgdmlld0lzQmVjb21p
bmdWaXNpYmxlKCk7CiAKICAgICB2b2lkIGdyYW50UmVxdWVzdChVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5Jik7CiAgICAgdm9pZCBkZW55UmVxdWVzdChVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5JiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlh
QWNjZXNzRGVuaWFsUmVhc29uLCBjb25zdCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50ID0geyB9
KTsKIAotICAgIHZvaWQgZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNl
ck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4m
JiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYm
IHRvcExldmVsRG9jdW1lbnRPcmlnaW4pOworICAgIHZvaWQgZW51bWVyYXRlTWVkaWFEZXZpY2Vz
Rm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
UmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBS
ZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbik7CiAK
ICAgICB2b2lkIHN0b3BDYXB0dXJlKCk7CiAgICAgdm9pZCBzY2hlZHVsZU5leHRSZWplY3Rpb24o
KTsKQEAgLTk1LDE5ICs5NSwxOSBAQCBwcml2YXRlOgogICAgIFdURkxvZ0NoYW5uZWwmIGxvZ0No
YW5uZWwoKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCi0gICAgUmVmPFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk+IGNyZWF0ZVBlcm1pc3Npb25SZXF1ZXN0KHVpbnQ2NF90IHVzZXJNZWRp
YUlELCB1aW50NjRfdCBtYWluRnJhbWVJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVjdG9yPFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURl
dmljZT4mJiB2aWRlb0RldmljZXMsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKKyAg
ICBSZWY8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRlUGVybWlzc2lvblJl
cXVlc3QodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWlu
RnJhbWVJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURl
dmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIHZp
ZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYpOwogI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCiAgICAgdm9pZCBmaW5pc2hHcmFudGluZ1JlcXVlc3QoVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eSYpOwogCi0gICAgY29uc3QgVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eSogc2VhcmNoRm9yR3JhbnRlZFJlcXVlc3QodWludDY0X3QgZnJhbWVJRCwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBu
ZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8pIGNvbnN0OwotICAgIGJvb2wgd2FzUmVxdWVzdERl
bmllZCh1aW50NjRfdCBtYWluRnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4m
IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYg
dG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8s
IGJvb2wgbmVlZHNTY3JlZW5DYXB0dXJlKTsKKyAgICBjb25zdCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5KiBzZWFyY2hGb3JHcmFudGVkUmVxdWVzdChXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9y
aWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmln
aW4sIGJvb2wgbmVlZHNBdWRpbywgYm9vbCBuZWVkc1ZpZGVvKSBjb25zdDsKKyAgICBib29sIHdh
c1JlcXVlc3REZW5pZWQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlELCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBib29sIG5l
ZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbywgYm9vbCBuZWVkc1NjcmVlbkNhcHR1cmUpOwogCiAg
ICAgdXNpbmcgUGVybWlzc2lvbkluZm8gPSBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eTo6
UGVybWlzc2lvbkluZm87Ci0gICAgdm9pZCBnZXRVc2VyTWVkaWFQZXJtaXNzaW9uSW5mbyh1aW50
NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9j
dW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBlcm1pc3Npb25JbmZvKT4mJik7Cisg
ICAgdm9pZCBnZXRVc2VyTWVkaWFQZXJtaXNzaW9uSW5mbyhXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
biwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUGVybWlzc2lvbkluZm8pPiYmKTsKIAogICAgIFJlcXVl
c3RBY3Rpb24gZ2V0UmVxdWVzdEFjdGlvbihjb25zdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5Jik7CiAKLSAgICBib29sIHdhc0dyYW50ZWRWaWRlb09yQXVkaW9BY2Nlc3ModWludDY0
X3QsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
biwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4p
OworICAgIGJvb2wgd2FzR3JhbnRlZFZpZGVvT3JBdWRpb0FjY2VzcyhXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRP
cmlnaW4pOwogCiAgICAgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IGNvbXB1dGVGaWx0
ZXJlZERldmljZUxpc3QoYm9vbCByZXZlYWxJZHNBbmRMYWJlbHMsIGNvbnN0IFN0cmluZyYgZGV2
aWNlSURIYXNoU2FsdCk7CiAKQEAgLTEzNCw3ICsxMzQsNyBAQCBwcml2YXRlOgogICAgIFZlY3Rv
cjxSZWY8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4+IG1fZ3JhbnRlZFJlcXVlc3Rz
OwogCiAgICAgc3RydWN0IERlbmllZFJlcXVlc3QgewotICAgICAgICB1aW50NjRfdCBtYWluRnJh
bWVJRDsKKyAgICAgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlEOwogICAg
ICAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IHVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
OwogICAgICAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IHRvcExldmVsRG9jdW1lbnRP
cmlnaW47CiAgICAgICAgIGJvb2wgaXNBdWRpb0RlbmllZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAK
aW5kZXggNGYwMjg0MDZiYTRhNzc1MTY0NzA2NDc2NzFmM2E5NTA4OGFmZjRhYi4uOTY2ZmRhZDVj
ZjBkZDA5Yjk4ZmY1NTYxMDNlMjA2YWExMTc1Yzk2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAK
QEAgLTMwLDcgKzMwLDcgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKLVVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkm
IG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBtYWluRnJhbWVJRCwgdWlu
dDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbiwgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgYXVkaW9EZXZpY2Vz
LCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiB2aWRlb0RldmljZXMsIFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUmVxdWVzdCYmIHJlcXVlc3QpCitVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5JiBtYW5hZ2VyLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwgRnJh
bWVJZGVudGlmaWVyIG1haW5GcmFtZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUmVmPFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVjdG9yPFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6Q2Fw
dHVyZURldmljZT4mJiB2aWRlb0RldmljZXMsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYm
IHJlcXVlc3QpCiAgICAgOiBtX21hbmFnZXIoJm1hbmFnZXIpCiAgICAgLCBtX3VzZXJNZWRpYUlE
KHVzZXJNZWRpYUlEKQogICAgICwgbV9tYWluRnJhbWVJRChtYWluRnJhbWVJRCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkuaAppbmRleCA1NDRmNjExNmVkYjY2MmE4ZmE5NjMxYmMzYWY4YjcwZGVkYzU4MjdmLi5i
YTRlMGEzNDcxNjAzMWIxOGYwODVjZmQwMWE3MzUxNzc4YTAzMDU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eS5oCkBAIC0yMSw2ICsyMSw3IEBACiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL0NhcHR1cmVEZXZpY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRp
Zmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTdHJlYW1SZXF1ZXN0Lmg+CiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMzUs
NyArMzYsNyBAQCBjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTsK
IAogY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSA6IHB1YmxpYyBBUEk6Ok9i
amVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0PiB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
PiBjcmVhdGUoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIs
IHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBtYWluRnJhbWVJRCwgdWludDY0X3QgZnJh
bWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3Jp
Z2luLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdp
biwgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8
V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiB2aWRlb0RldmljZXMsIFdlYkNvcmU6Ok1lZGlhU3Ry
ZWFtUmVxdWVzdCYmIHJlcXVlc3QpCisgICAgc3RhdGljIFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5PiBjcmVhdGUoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkmIG1hbmFnZXIsIHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgbWFpbkZyYW1lSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0b3I8V2Vi
Q29yZTo6Q2FwdHVyZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYg
cmVxdWVzdCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkobWFuYWdlciwgdXNlck1lZGlhSUQsIG1haW5GcmFtZUlELCBm
cmFtZUlELCBXVEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZl
bERvY3VtZW50T3JpZ2luKSwgV1RGTW92ZShhdWRpb0RldmljZXMpLCBXVEZNb3ZlKHZpZGVvRGV2
aWNlcyksIFdURk1vdmUocmVxdWVzdCkpKTsKICAgICB9CkBAIC02NSw4ICs2Niw4IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldEhhc1BlcnNpc3RlbnRBY2Nlc3MoKSB7IG1faGFzUGVyc2lzdGVudEFj
Y2VzcyA9IHRydWU7IH0KIAogICAgIHVpbnQ2NF90IHVzZXJNZWRpYUlEKCkgY29uc3QgeyByZXR1
cm4gbV91c2VyTWVkaWFJRDsgfQotICAgIHVpbnQ2NF90IG1haW5GcmFtZUlEKCkgY29uc3QgeyBy
ZXR1cm4gbV9tYWluRnJhbWVJRDsgfQotICAgIHVpbnQ2NF90IGZyYW1lSUQoKSBjb25zdCB7IHJl
dHVybiBtX2ZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1l
SUQoKSBjb25zdCB7IHJldHVybiBtX21haW5GcmFtZUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KIAogICAgIFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSB7
IHJldHVybiBtX3RvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbi5nZXQoKTsgfQogICAgIFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkg
eyByZXR1cm4gbV91c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luLmdldCgpOyB9CkBAIC04
NCwxMiArODUsMTIgQEAgcHVibGljOgogICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgdmlkZW9E
ZXZpY2UoKSBjb25zdCB7IHJldHVybiBtX2VsaWdpYmxlVmlkZW9EZXZpY2VzLmlzRW1wdHkoKSA/
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgeyB9IDogbV9lbGlnaWJsZVZpZGVvRGV2aWNlc1swXTsg
fQogCiBwcml2YXRlOgotICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmLCB1aW50NjRfdCB1c2VyTWVkaWFJRCwg
dWludDY0X3QgbWFpbkZyYW1lSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFZlY3RvcjxXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+
JiYgdmlkZW9EZXZpY2VzLCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmJik7CisgICAgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eSYsIHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgbWFpbkZyYW1lSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgVmVjdG9yPFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmlj
ZT4mJiB2aWRlb0RldmljZXMsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKIAogICAg
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KiBtX21hbmFnZXI7CiAgICAg
dWludDY0X3QgbV91c2VyTWVkaWFJRDsKLSAgICB1aW50NjRfdCBtX21haW5GcmFtZUlEOwotICAg
IHVpbnQ2NF90IG1fZnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbV9tYWlu
RnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbV9mcmFtZUlEOwogICAgIFJl
ZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gbV91c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3Jp
Z2luOwogICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gbV90b3BMZXZlbERvY3VtZW50
U2VjdXJpdHlPcmlnaW47CiAgICAgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IG1fZWxp
Z2libGVWaWRlb0RldmljZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJGcmFtZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHku
Y3BwCmluZGV4IDA3MTRiNDFlYjY3NzY4ZDllMGM5ZDQxMmUyMGU4OThmODFlNzNkZDguLmVlMzM3
MTA4MTcwN2VhMzZkMzUwZWZlMmNjNWEwM2MxZDE5MWRhNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCkBAIC00NSw5ICs0NSw4IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCiBjbGFzcyBXZWJQYWdlUHJveHk7CiAKLVdlYkZyYW1lUHJveHk6OldlYkZy
YW1lUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlLCB1aW50NjRfdCBmcmFtZUlEKQorV2ViRnJhbWVQ
cm94eTo6V2ViRnJhbWVQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UsIEZyYW1lSWRlbnRpZmllciBm
cmFtZUlEKQogICAgIDogbV9wYWdlKG1ha2VXZWFrUHRyKHBhZ2UpKQotICAgICwgbV9pc0ZyYW1l
U2V0KGZhbHNlKQogICAgICwgbV9mcmFtZUlEKGZyYW1lSUQpCiB7CiAgICAgV2ViUHJvY2Vzc1Bv
b2w6OnN0YXRpc3RpY3MoKS53a0ZyYW1lQ291bnQrKzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkZyYW1lUHJveHkuaAppbmRleCA0NDYwMGYxYzI3MjkwZTVlNGMxNjhlYThjZDNjYzM5NjM2ZmRi
YmUxLi5jY2RhNjM3ODAwMmQ1NWFiMTU3YTZmMTUzN2M1ZWY3OWRiNDVjMjUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oCkBAIC01OSwxNCArNTksMTQgQEAgc3RydWN0
IFdlYnNpdGVQb2xpY2llc0RhdGE7CiAKIGNsYXNzIFdlYkZyYW1lUHJveHkgOiBwdWJsaWMgQVBJ
OjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpGcmFtZT4gewogcHVibGljOgotICAgIHN0
YXRpYyBSZWY8V2ViRnJhbWVQcm94eT4gY3JlYXRlKFdlYlBhZ2VQcm94eSYgcGFnZSwgdWludDY0
X3QgZnJhbWVJRCkKKyAgICBzdGF0aWMgUmVmPFdlYkZyYW1lUHJveHk+IGNyZWF0ZShXZWJQYWdl
UHJveHkmIHBhZ2UsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogICAgIHsKICAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViRnJhbWVQcm94eShwYWdlLCBmcmFtZUlEKSk7
CiAgICAgfQogCiAgICAgdmlydHVhbCB+V2ViRnJhbWVQcm94eSgpOwogCi0gICAgdWludDY0X3Qg
ZnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQorICAgIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9CiAgICAgV2Vi
UGFnZVByb3h5KiBwYWdlKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlLmdldCgpOyB9CiAKICAgICB2
b2lkIHdlYlByb2Nlc3NXaWxsU2h1dERvd24oKTsKQEAgLTEzMCw3ICsxMzAsNyBAQCBwdWJsaWM6
CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBXZWJGcmFtZVByb3h5KFdlYlBhZ2VQcm94eSYsIHVp
bnQ2NF90IGZyYW1lSUQpOworICAgIFdlYkZyYW1lUHJveHkoV2ViUGFnZVByb3h5JiwgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyKTsKIAogICAgIFdlYWtQdHI8V2ViUGFnZVByb3h5PiBtX3BhZ2U7
CiAKQEAgLTEzOCwxMSArMTM4LDExIEBAIHByaXZhdGU6CiAKICAgICBTdHJpbmcgbV9NSU1FVHlw
ZTsKICAgICBTdHJpbmcgbV90aXRsZTsKLSAgICBib29sIG1faXNGcmFtZVNldDsKKyAgICBib29s
IG1faXNGcmFtZVNldCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2NvbnRhaW5zUGx1Z2luRG9jdW1l
bnQgeyBmYWxzZSB9OwogICAgIFJlZlB0cjxXZWJDZXJ0aWZpY2F0ZUluZm8+IG1fY2VydGlmaWNh
dGVJbmZvOwogICAgIFJlZlB0cjxXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk+IG1fYWN0aXZl
TGlzdGVuZXI7Ci0gICAgdWludDY0X3QgbV9mcmFtZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBtX2ZyYW1lSUQ7CiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQogICAgIFdl
YkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciBtX2NvbnRlbnRGaWx0ZXJVbmJsb2Nr
SGFuZGxlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
aW5kZXggMzI2MzFjNDUwZWIyNmQ3NTQ1NDY4YjcyNmMxNWE0NDk4NWM5OThhOS4uZDJmOWE4ODcw
NTdiMGRjZDc5NDc4YjEwYjcwMDczYzZkODZjN2JiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCkBAIC03NDMsNyArNzQzLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmxhdW5jaFByb2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlZ2lzdHJhYmxlRG9tYWlu
KQogICAgIGZpbmlzaEF0dGFjaGluZ1RvV2ViUHJvY2VzcyhJc1Byb2Nlc3NTd2FwOjpObyk7CiB9
CiAKLWJvb2wgV2ViUGFnZVByb3h5OjpzdXNwZW5kQ3VycmVudFBhZ2VJZlBvc3NpYmxlKEFQSTo6
TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgT3B0aW9uYWw8dWludDY0X3Q+IG1haW5GcmFtZUlELCBQ
cm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQs
IFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9k
ZSBzaG91bGREZWxheUNsb3NpbmdVbnRpbEVudGVyaW5nQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01v
ZGUpCitib29sIFdlYlBhZ2VQcm94eTo6c3VzcGVuZEN1cnJlbnRQYWdlSWZQb3NzaWJsZShBUEk6
Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIE9wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gbWFpbkZy
YW1lSUQsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRC
eUNsaWVudCwgU2hvdWxkRGVsYXlDbG9zaW5nVW50aWxFbnRlcmluZ0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdNb2RlIHNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBv
c2l0aW5nTW9kZSkKIHsKICAgICBtX2xhc3RTdXNwZW5kZWRQYWdlID0gbnVsbHB0cjsKIApAQCAt
MjkzMSwxMiArMjkzMSwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVjZWl2ZWRQb2xpY3lEZWNp
c2lvbihQb2xpY3lBY3Rpb24gYWN0aW9uLCBBUEk6Ok5hdmlnYXRpb24qCiAgICAgc2VuZGVyLT5z
ZW5kKGFjdGlvbiwgbmF2aWdhdGlvbiA/IG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpIDogMCwg
ZG93bmxvYWRJRCwgV1RGTW92ZSh3ZWJzaXRlUG9saWNpZXMpKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21D
b250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNl
cnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1l
bnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1
cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6
Y29tbWl0UHJvdmlzaW9uYWxQYWdlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgZnJhbWVIYXNDdXN0b21D
b250ZW50UHJvdmlkZXIsIHVpbnQzMl90IGZyYW1lTG9hZFR5cGUsIGNvbnN0IFdlYkNvcmU6OkNl
cnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1l
bnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1
cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgQVNTRVJUKG1fcHJv
dmlzaW9uYWxQYWdlKTsKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJjb21t
aXRQcm92aXNpb25hbFBhZ2U6IHByZXZpb3VzUElEID0gJWksIG5ld1BJRCA9ICVpLCBwYWdlSUQg
PSAlIiBQUkl1NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wcm92aXNpb25h
bFBhZ2UtPnByb2Nlc3MoKS5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgp
KTsKIAotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBtYWluRnJhbWVJREluUHJldmlvdXNQcm9jZXNz
ID0gbV9tYWluRnJhbWUgPyBtYWtlT3B0aW9uYWwobV9tYWluRnJhbWUtPmZyYW1lSUQoKSkgOiBX
VEY6Om51bGxvcHQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBtYWluRnJhbWVJRElu
UHJldmlvdXNQcm9jZXNzID0gbV9tYWluRnJhbWUgPyBtYWtlT3B0aW9uYWwobV9tYWluRnJhbWUt
PmZyYW1lSUQoKSkgOiBXVEY6Om51bGxvcHQ7CiAKICAgICBBU1NFUlQobV9wcm9jZXNzLnB0cigp
ICE9ICZtX3Byb3Zpc2lvbmFsUGFnZS0+cHJvY2VzcygpKTsKIApAQCAtMzY3Miw3ICszNjcyLDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZVNjcmlwdFdvcmxk
KGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib28KICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OlJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZVNjcmlwdFdvcmxkKHNjcmlwdCwgZm9y
Y2VVc2VyR2VzdHVyZSwgd29ybGROYW1lLCBjYWxsYmFja0lEKSwgbV9wYWdlSUQpOwogfQogCi12
b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEluRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yY2VVc2VyR2VzdHVyZSwgV1RGOjpGdW5jdGlv
bjx2b2lkKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiwgYm9vbCBoYWRFeGNlcHRpb24sIGNv
bnN0IEV4Y2VwdGlvbkRldGFpbHMmLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1
bmN0aW9uKQordm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRJbkZyYW1lKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHNjcmlwdCwgYm9vbCBmb3JjZVVzZXJHZXN0
dXJlLCBXVEY6OkZ1bmN0aW9uPHZvaWQoQVBJOjpTZXJpYWxpemVkU2NyaXB0VmFsdWUqLCBib29s
IGhhZEV4Y2VwdGlvbiwgY29uc3QgRXhjZXB0aW9uRGV0YWlscyYsIENhbGxiYWNrQmFzZTo6RXJy
b3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCiB7CiAgICAgQVNTRVJUKG1haW5GcmFtZSgpLT5mcmFt
ZUlEKCkgIT0gZnJhbWVJRCk7CiAgICAgYXV0byBjYWxsYmFja0lEID0gbV9jYWxsYmFja3MucHV0
KFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIG1fcHJvY2Vzcy0+dGhyb3R0bGVyKCkuYmFja2dy
b3VuZEFjdGl2aXR5VG9rZW4oKSk7CkBAIC0zODc4LDcgKzM4NzgsNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6cHJlZmVyZW5jZXNEaWRDaGFuZ2UoKQogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6UHJlZmVyZW5jZXNEaWRDaGFuZ2UocHJlZmVyZW5jZXNTdG9yZSgpKSwgbV9w
YWdlSUQsIHByaW50aW5nU2VuZE9wdGlvbnMobV9pc1BlcmZvcm1pbmdET01QcmludE9wZXJhdGlv
bikpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKHVpbnQ2NF90
IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlEKQogewogICAgIC8vIFRoZSBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uU3luYyBJUEMgaXMgc3luY2hyb25vdXMgYW5kIG1heSB0aGVyZWZvcmUgZ2V0IHByb2Nl
c3NlZCBiZWZvcmUgdGhlIERpZENyZWF0ZU1haW5GcmFtZSBvbmUuCiAgICAgLy8gV2hlbiB0aGlz
IGhhcHBlbnMsIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKCkgY2FsbHMgZGlk
Q3JlYXRlTWFpbkZyYW1lKCkgYW5kIHdlIG5lZWQgdG8gaWdub3JlIHRoZSBEaWRDcmVhdGVNYWlu
RnJhbWUKQEAgLTM4OTcsNyArMzg5Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVN
YWluRnJhbWUodWludDY0X3QgZnJhbWVJRCkKICAgICBtX3Byb2Nlc3MtPmZyYW1lQ3JlYXRlZChm
cmFtZUlELCAqbV9tYWluRnJhbWUpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRl
U3ViZnJhbWUodWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVT
dWJmcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVj
dG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC0zOTE3LDcgKzM5MTcsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRlU3ViZnJhbWUodWludDY0X3QgZnJhbWVJRCkKICAgICBt
X3Byb2Nlc3MtPmZyYW1lQ3JlYXRlZChmcmFtZUlELCBzdWJGcmFtZS5nZXQoKSk7CiB9CiAKLXZv
aWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVXaW5kb3codWludDY0X3QgZnJhbWVJRCwgR2xvYmFs
V2luZG93SWRlbnRpZmllciYmIHdpbmRvd0lkZW50aWZpZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkQ3JlYXRlV2luZG93KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBHbG9iYWxXaW5kb3dJZGVu
dGlmaWVyJiYgd2luZG93SWRlbnRpZmllcikKIHsKIH0KIApAQCAtMzk4MSwxMiArMzk4MSwxMiBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGVzdHJveU5hdmlnYXRpb24odWludDY0X3QgbmF2aWdh
dGlvbklEKQogICAgIG1fbmF2aWdhdGlvblN0YXRlLT5kaWREZXN0cm95TmF2aWdhdGlvbihuYXZp
Z2F0aW9uSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExv
YWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYm
IHVybCwgVVJMJiYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3Zv
aWQgV2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmIHVybCwgVVJMJiYg
dW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBkaWRTdGFy
dFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1l
SUQsIG5hdmlnYXRpb25JRCwgV1RGTW92ZSh1cmwpLCBXVEZNb3ZlKHVucmVhY2hhYmxlVVJMKSwg
dXNlckRhdGEpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExv
YWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90
IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYgdXJsLCBVUkwmJiB1bnJlYWNo
YWJsZVVSTCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRp
ZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiBwcm9jZXNzLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBVUkwmJiB1cmwsIFVSTCYmIHVucmVhY2hhYmxlVVJMLCBjb25zdCBVc2VyRGF0YSYgdXNlckRh
dGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsK
IApAQCAtNDAwNSw4ICs0MDA1LDggQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJgogICAgIGlmIChm
cmFtZS0+aXNNYWluRnJhbWUoKSAmJiBuYXZpZ2F0aW9uSUQpCiAgICAgICAgIG5hdmlnYXRpb24g
PSBuYXZpZ2F0aW9uU3RhdGUoKS5uYXZpZ2F0aW9uKG5hdmlnYXRpb25JRCk7CiAKLSAgICBMT0co
TG9hZGluZywgIldlYlBhZ2VQcm94eSAlIiBQUkl1NjQgIiBpbiBwcm9jZXNzIHBpZCAlaSBkaWRT
dGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lIHRvIGZyYW1lSUQgJSIgUFJJdTY0ICIsIG5hdmln
YXRpb25JRCAlIiBQUkl1NjQgIiwgdXJsICVzIiwgbV9wYWdlSUQudG9VSW50NjQoKSwgcHJvY2Vz
cy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgZnJhbWVJRCwgbmF2aWdhdGlvbklELCB1cmwuc3RyaW5n
KCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAi
ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmll
cigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAgICBMT0coTG9hZGluZywgIldl
YlBhZ2VQcm94eSAlIiBQUkl1NjQgIiBpbiBwcm9jZXNzIHBpZCAlaSBkaWRTdGFydFByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lIHRvIGZyYW1lSUQgJSIgUFJJdTY0ICIsIG5hdmlnYXRpb25JRCAlIiBQ
Ukl1NjQgIiwgdXJsICVzIiwgbV9wYWdlSUQudG9VSW50NjQoKSwgcHJvY2Vzcy0+cHJvY2Vzc0lk
ZW50aWZpZXIoKSwgZnJhbWVJRC50b1VJbnQ2NCgpLCBuYXZpZ2F0aW9uSUQsIHVybC5zdHJpbmco
KS51dGY4KCkuZGF0YSgpKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJk
aWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVy
KCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAKICAgICBhdXRv
IHRyYW5zYWN0aW9uID0gbV9wYWdlTG9hZFN0YXRlLnRyYW5zYWN0aW9uKCk7CiAKQEAgLTQwMzEs
NyArNDAzMSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYKICAgICAgICAgbV9uYXZpZ2F0aW9u
Q2xpZW50LT5kaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbigqdGhpcywgbmF2aWdhdGlvbi5n
ZXQoKSwgcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3Qo
KSkuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRXhwbGljaXRPcGVuRm9yRnJh
bWUodWludDY0X3QgZnJhbWVJRCwgVVJMJiYgdXJsKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZEV4
cGxpY2l0T3BlbkZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBVUkwmJiB1cmwpCiB7
CiAgICAgYXV0byogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgIE1F
U1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBmcmFtZSk7CkBAIC00MDUwLDE1ICs0MDUwLDE1IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpkaWRFeHBsaWNpdE9wZW5Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBVUkwmJiB1cmwpCiAgICAgbV9wYWdlTG9hZFN0YXRlLmNvbW1pdENoYW5nZXMoKTsKIH0KIAot
dm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgUmVz
b3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBX
ZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFJl
c291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAg
ICBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJl
ZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUocmVx
dWVzdCksIHVzZXJEYXRhKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2
ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYgcHJvY2VzcywgdWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBSZXNvdXJjZVJlcXVlc3Qm
JiByZXF1ZXN0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7Ci0gICAgTE9HKExvYWRpbmcs
ICJXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lIHRvIGZyYW1lSUQgJSIgUFJJdTY0ICIsIG5hdmlnYXRpb25JRCAlIiBQUkl1NjQg
IiwgdXJsICVzIiwgZnJhbWVJRCwgbmF2aWdhdGlvbklELCByZXF1ZXN0LnVybCgpLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRp
ZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOiB3ZWJQSUQg
PSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQsIHByb2Nlc3Mt
PnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQpOworICAg
IExPRyhMb2FkaW5nLCAiV2ViUGFnZVByb3h5OjpkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQ
cm92aXNpb25hbExvYWRGb3JGcmFtZSB0byBmcmFtZUlEICUiIFBSSXU2NCAiLCBuYXZpZ2F0aW9u
SUQgJSIgUFJJdTY0ICIsIHVybCAlcyIsIGZyYW1lSUQudG9VSW50NjQoKSwgbmF2aWdhdGlvbklE
LCByZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoTG9hZGluZywgImRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1l
SUQgPSAlIiBQUkl1NjQsIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRv
VUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9y
IHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00MDg1LDkgKzQwODUsOSBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9y
RnJhbWVTaGFyZWQoUmVmPAogICAgICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRpZFJlY2VpdmVT
ZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTmF2aWdhdGlvbigqdGhpcywgbmF2aWdhdGlvbi5n
ZXQoKSwgcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3Qo
KSkuZ2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1DbGllbnRSZWRp
cmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdXJsLCBkb3VibGUg
ZGVsYXksIFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3QpCit2b2lkIFdlYlBhZ2VQcm94eTo6
d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBjb25zdCBTdHJpbmcmIHVybCwgZG91YmxlIGRlbGF5LCBXZWJDb3JlOjpMb2NrQmFja0Zvcndh
cmRMaXN0KQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgIndpbGxQZXJm
b3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCks
IG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoTG9hZGluZywgIndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZTogd2ViUElEID0g
JWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3Mt
PnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50
NjQoKSk7CiAKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkp
OwogCkBAIC00MDk4LDkgKzQwOTgsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6d2lsbFBlcmZvcm1D
bGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cgogICAgICAg
ICBtX25hdmlnYXRpb25DbGllbnQtPndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QoKnRoaXMsIHVy
bCwgZGVsYXkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2FuY2VsQ2xpZW50UmVkaXJl
Y3RGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZENhbmNl
bENsaWVudFJlZGlyZWN0Rm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7Ci0gICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RG
b3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIg
UFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0
KCksIGZyYW1lSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZENh
bmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigp
LCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCkpOwogCiAgICAgUGFnZUNs
aWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDExMSwxMiArNDEx
MSwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlEKQogICAgICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRpZENhbmNl
bENsaWVudFJlZGlyZWN0KCp0aGlzKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5n
ZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBVUkwmJiB1cmwpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlUHJvdmlzaW9u
YWxVUkxGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBVUkwmJiB1cmwpCiB7CiAgICAgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNo
YXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUo
dXJsKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZv
ckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgdWludDY0X3QgZnJh
bWVJRCwgdWludDY0X3QsIFVSTCYmIHVybCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VQ
cm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vz
cywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90LCBVUkwmJiB1cmwpCiB7CiAgICAg
UGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDEzNSw3
ICs0MTM1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9y
RnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJgogICAgIGZyYW1lLT5kaWRSZWNlaXZl
U2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWQodXJsKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3QgUmVzb3VyY2VF
cnJvciYgZXJyb3IsIFdpbGxDb250aW51ZUxvYWRpbmcgd2lsbENvbnRpbnVlTG9hZGluZywgY29u
c3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNp
b25hbExvYWRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlP
cmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNv
bnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBX
aWxsQ29udGludWVMb2FkaW5nIHdpbGxDb250aW51ZUxvYWRpbmcsIGNvbnN0IFVzZXJEYXRhJiB1
c2VyRGF0YSkKIHsKICAgICBpZiAobV9wcm92aXNpb25hbFBhZ2UgJiYgbV9wcm92aXNpb25hbFBh
Z2UtPm5hdmlnYXRpb25JRCgpID09IG5hdmlnYXRpb25JRCkgewogICAgICAgICAvLyBUaGUgbG9h
ZCBkaWQgbm90IGZhaWwsIGl0IGlzIG1lcmVseSBoYXBwZW5pbmcgaW4gYSBuZXcgcHJvdmlzaW9u
YWwgcHJvY2Vzcy4KQEAgLTQxNDUsMTAgKzQxNDUsMTAgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1
cmkKICAgICBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQobV9wcm9jZXNzLmNv
cHlSZWYoKSwgZnJhbWVJRCwgZnJhbWVTZWN1cml0eU9yaWdpbiwgbmF2aWdhdGlvbklELCBwcm92
aXNpb25hbFVSTCwgZXJyb3IsIHdpbGxDb250aW51ZUxvYWRpbmcsIHVzZXJEYXRhKTsKIH0KIAot
dm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNl
Y3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBSZXNvdXJjZUVycm9yJiBl
cnJvciwgV2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2Vy
RGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFByb3Zpc2lvbmFsTG9h
ZEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9y
aWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJM
LCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgV2lsbENvbnRpbnVlTG9hZGluZyB3aWxsQ29u
dGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgTE9HKExvYWRp
bmcsICIoTG9hZGluZykgV2ViUGFnZVByb3h5ICUiIFBSSXU2NCAiIGluIHdlYiBwcm9jZXNzIHBp
ZCAlaSBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUgdG8gcHJvdmlzaW9uYWxVUkwgJXMi
LCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBwcm92
aXNpb25hbFVSTC51dGY4KCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFBy
b2Nlc3MsICJkaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBkb21haW4gPSAlcywgY29k
ZSA9ICVkIiwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQo
KSwgZnJhbWVJRCwgZXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSwgZXJyb3IuZXJyb3JDb2Rl
KCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2VzcywgImRpZEZhaWxQcm92aXNp
b25hbExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0ICIsIGRvbWFpbiA9ICVzLCBjb2RlID0gJWQiLCBwcm9jZXNzLT5wcm9j
ZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCks
IGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCksIGVycm9yLmVycm9yQ29kZSgpKTsKIAogICAg
IFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQyMjQs
MTEgKzQyMjQsMTEgQEAgc3RhdGljIE9wdGlvblNldDxDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRy
YW5zZmVyOjpGbGFnPiBjaGVja0lmTmF2aWdhdGlvbkNvbnRhaW4KIH0KICNlbmRpZgogCi12b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhh
c0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3Qgb3BhcXVlRnJhbWVMb2FkVHlwZSwgY29u
c3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFp
bnNQbHVnaW5Eb2N1bWVudCwgT3B0aW9uYWw8SGFzSW5zZWN1cmVDb250ZW50PiBoYXNJbnNlY3Vy
ZUNvbnRlbnQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRDb21taXRMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFtZUhhc0N1c3RvbUNv
bnRlbnRQcm92aWRlciwgdWludDMyX3Qgb3BhcXVlRnJhbWVMb2FkVHlwZSwgY29uc3QgV2ViQ29y
ZTo6Q2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGJvb2wgY29udGFpbnNQbHVnaW5E
b2N1bWVudCwgT3B0aW9uYWw8SGFzSW5zZWN1cmVDb250ZW50PiBoYXNJbnNlY3VyZUNvbnRlbnQs
IGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBMT0coTG9hZGluZywgIihMb2FkaW5n
KSBXZWJQYWdlUHJveHkgJSIgUFJJdTY0ICIgZGlkQ29tbWl0TG9hZEZvckZyYW1lIGluIG5hdmln
YXRpb24gJSIgUFJJdTY0LCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBuYXZpZ2F0aW9uSUQpOwogICAg
IExPRyhCYWNrRm9yd2FyZCwgIihCYWNrL0ZvcndhcmQpIEFmdGVyIGxvYWQgY29tbWl0LCBiYWNr
L2ZvcndhcmQgbGlzdCBpcyBub3c6JXMiLCBtX2JhY2tGb3J3YXJkTGlzdC0+bG9nZ2luZ1N0cmlu
ZygpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRDb21taXRMb2Fk
Rm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUi
IFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2
NCgpLCBmcmFtZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRD
b21taXRMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJ
RC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCkpOwogCiAgICAgUGFnZUNsaWVudFByb3Rl
Y3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDMzOCw5ICs0MzM4LDkgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OmRpZENvbW1pdExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQKICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
RmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewotICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZy
YW1lOiB3ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdlSUQudG9VSW50NjQoKSwg
ZnJhbWVJRCk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkRmluaXNo
RG9jdW1lbnRMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3Bh
Z2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCkpOwogCiAgICAgUGFnZUNsaWVudFBy
b3RlY3RvciBwcm90ZWN0b3IocGFnZUNsaWVudCgpKTsKIApAQCAtNDM2MSwxMCArNDM2MSwxMCBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aQogICAgICAgICBtX25hdmlnYXRpb25DbGllbnQtPmRp
ZEZpbmlzaERvY3VtZW50TG9hZCgqdGhpcywgbmF2aWdhdGlvbi5nZXQoKSwgbV9wcm9jZXNzLT50
cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVzZXJEYXRhLm9iamVjdCgpKS5nZXQoKSk7CiB9CiAK
LXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaW5pc2hMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsK
ICAgICBMT0coTG9hZGluZywgIldlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZEZvckZyYW1lIC0g
V2ViUGFnZVByb3h5ICVwIHdpdGggbmF2aWdhdGlvbklEICUiIFBSSXU2NCAiIGRpZEZpbmlzaExv
YWQiLCB0aGlzLCBuYXZpZ2F0aW9uSUQpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9h
ZGluZywgImRpZEZpbmlzaExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVy
KCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQpOworICAgIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoTG9hZGluZywgImRpZEZpbmlzaExvYWRGb3JGcmFtZTogd2ViUElEID0gJWksIHBhZ2VJ
RCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0LCBtX3Byb2Nlc3MtPnByb2Nlc3NJ
ZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSk7CiAK
ICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00
NDA3LDkgKzQ0MDcsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoTG9hZEZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRAogICAgIG1faXNMb2FkaW5n
QWx0ZXJuYXRlSFRNTFN0cmluZ0ZvckZhaWxpbmdQcm92aXNpb25hbExvYWQgPSBmYWxzZTsKIH0K
IAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvciwgY29u
c3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZEZhaWxMb2FkRm9y
RnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29u
c3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKLSAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRGYWlsTG9hZEZvckZyYW1lOiB3
ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwg
ZG9tYWluID0gJXMsIGNvZGUgPSAlZCIsIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwg
bV9wYWdlSUQudG9VSW50NjQoKSwgZnJhbWVJRCwgZXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEo
KSwgZXJyb3IuZXJyb3JDb2RlKCkpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGlu
ZywgImRpZEZhaWxMb2FkRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBkb21haW4gPSAlcywgY29kZSA9ICVkIiwgbV9wcm9j
ZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRv
VUludDY0KCksIGVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCksIGVycm9yLmVycm9yQ29kZSgp
KTsKIAogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAK
QEAgLTQ0NDksOSArNDQ0OSw5IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRGYWlsTG9hZEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwKICAgICB9CiB9CiAK
LXZvaWQgV2ViUGFnZVByb3h5OjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50MzJfdCBvcGFxdWVTYW1l
RG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwgVVJMJiYgdXJsLCBjb25zdCBVc2VyRGF0YSYgdXNlckRh
dGEpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1l
KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQzMl90
IG9wYXF1ZVNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLCBVUkwmJiB1cmwsIGNvbnN0IFVzZXJE
YXRhJiB1c2VyRGF0YSkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJk
aWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWU6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAl
IiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRp
ZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlEKTsKKyAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKExvYWRpbmcsICJkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWU6IHdl
YlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCwgbV9w
cm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlE
LnRvVUludDY0KCkpOwogCiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFnZUNs
aWVudCgpKTsKIApAQCAtNDQ4OCw3ICs0NDg4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFNh
bWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdAog
ICAgICAgICBwYWdlQ2xpZW50KCkuZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFt
ZShuYXZpZ2F0aW9uVHlwZSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VNYWlu
RG9jdW1lbnQodWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VN
YWluRG9jdW1lbnQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKICAgICBpZiAobV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpCkBA
IC00NTA3LDcgKzQ1MDcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dmlld0lzQmVjb21pbmdWaXNp
YmxlKCkKICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVjZWl2ZVRpdGxlRm9y
RnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgVXNlckRh
dGEmIHVzZXJEYXRhKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVUaXRsZUZvckZyYW1l
KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBVc2Vy
RGF0YSYgdXNlckRhdGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90ZWN0b3IocGFn
ZUNsaWVudCgpKTsKIApAQCAtNDUyOSwxMSArNDUyOSwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0
aXRsZQogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdExheW91dEZvckZy
YW1lKHVpbnQ2NF90LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCit2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkRmlyc3RMYXlvdXRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFVzZXJEYXRh
JiB1c2VyRGF0YSkKIHsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpcnN0VmlzdWFsbHlO
b25FbXB0eUxheW91dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJiB1
c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlv
dXRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJE
YXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7
CiAKQEAgLTQ1NjQsNyArNDU2NCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWFjaExheW91
dE1pbGVzdG9uZShPcHRpb25TZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPiBsCiAgICAgbV9u
YXZpZ2F0aW9uQ2xpZW50LT5yZW5kZXJpbmdQcm9ncmVzc0RpZENoYW5nZSgqdGhpcywgbGF5b3V0
TWlsZXN0b25lcyk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWREaXNwbGF5SW5zZWN1cmVD
b250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRh
KQordm9pZCBXZWJQYWdlUHJveHk6OmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewogICAg
IFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTQ1Nzgs
NyArNDU3OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50
Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVXNlCiAgICAgbV9uYXZpZ2F0aW9uQ2xp
ZW50LT5kaWREaXNwbGF5SW5zZWN1cmVDb250ZW50KCp0aGlzLCBtX3Byb2Nlc3MtPnRyYW5zZm9y
bUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0KCkpLmdldCgpKTsKIH0KIAotdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRSdW5J
bnNlY3VyZUNvbnRlbnRGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgVXNl
ckRhdGEmIHVzZXJEYXRhKQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBh
Z2VDbGllbnQoKSk7CiAKQEAgLTQ1OTIsNyArNDU5Miw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBVc2Vy
RGF0CiAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRSdW5JbnNlY3VyZUNvbnRlbnQoKnRoaXMs
IG1fcHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSku
Z2V0KCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGV0ZWN0WFNTRm9yRnJhbWUodWlu
dDY0X3QsIGNvbnN0IFVzZXJEYXRhJikKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWREZXRlY3RYU1NG
b3JGcmFtZShGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFVzZXJEYXRhJikKIHsKIH0KIApAQCAtNDYw
MSw3ICs0NjAxLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6Om1haW5GcmFtZVBsdWdpbkhhbmRsZXNQ
YWdlU2NhbGVHZXN0dXJlRGlkQ2hhbmdlKGJvb2wgbWFpbkZyYW0KICAgICBtX21haW5GcmFtZVBs
dWdpbkhhbmRsZXNQYWdlU2NhbGVHZXN0dXJlID0gbWFpbkZyYW1lUGx1Z2luSGFuZGxlc1BhZ2VT
Y2FsZUdlc3R1cmU7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpmcmFtZURpZEJlY29tZUZyYW1l
U2V0KHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgdmFsdWUpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZnJh
bWVEaWRCZWNvbWVGcmFtZVNldChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCB2YWx1ZSkK
IHsKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBA
IC00NjIwLDcgKzQ2MjAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6YmVnaW5TYWZlQnJvd3NpbmdD
aGVjayhjb25zdCBVUkwmLCBib29sLCBXZWJGcmFtZVBvbGljeUxpc3RlbgogfQogI2VuZGlmCiAK
LXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMo
dWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1
cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwKK3ZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uQXN5bmMoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVu
dGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsCiAgICAgTmF2aWdhdGlvbkFjdGlvbkRhdGEm
JiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9w
dGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QsCiAgICAgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVl
c3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29u
c3QgVXNlckRhdGEmIHVzZXJEYXRhLCB1aW50NjRfdCBsaXN0ZW5lcklEKQogewpAQCAtNDYyOCw3
ICs0NjI4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25Bc3luYyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3IKICAgICAgICAgV1RGTW92ZShmcmFt
ZUluZm9EYXRhKSwgb3JpZ2luYXRpbmdQYWdlSUQsIG9yaWdpbmFsUmVxdWVzdCwgV1RGTW92ZShy
ZXF1ZXN0KSwgV1RGTW92ZShyZXF1ZXN0Qm9keSksIFdURk1vdmUocmVkaXJlY3RSZXNwb25zZSks
IHVzZXJEYXRhLCBsaXN0ZW5lcklEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
IHByb2Nlc3MsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYm
IGZyYW1lU2VjdXJpdHlPcmlnaW4sCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2Vz
cywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYm
IGZyYW1lU2VjdXJpdHlPcmlnaW4sCiAgICAgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVy
IGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEm
JiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIE9w
dGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwKICAgICBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVl
c3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwKICAg
ICBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIHVpbnQ2NF90IGxpc3RlbmVySUQpCkBAIC00NzY5
LDcgKzQ3NjksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbihSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2NlcwogICAgICAgICBiZWdpblNhZmVC
cm93c2luZ0NoZWNrKHJlcXVlc3QudXJsKCksIGZyYW1lLmlzTWFpbkZyYW1lKCksIGxpc3RlbmVy
KTsKIAogICAgIEFQSTo6TmF2aWdhdGlvbiogbWFpbkZyYW1lTmF2aWdhdGlvbiA9IGZyYW1lLmlz
TWFpbkZyYW1lKCkgPyBuYXZpZ2F0aW9uLmdldCgpIDogbnVsbHB0cjsKLSAgICBXZWJGcmFtZVBy
b3h5KiBvcmlnaW5hdGluZ0ZyYW1lID0gcHJvY2Vzcy0+d2ViRnJhbWUob3JpZ2luYXRpbmdGcmFt
ZUluZm9EYXRhLmZyYW1lSUQpOworICAgIFdlYkZyYW1lUHJveHkqIG9yaWdpbmF0aW5nRnJhbWUg
PSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEuZnJhbWVJRCA/IHByb2Nlc3MtPndlYkZyYW1lKCpv
cmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEuZnJhbWVJRCkgOiBudWxscHRyOwogCiAjaWYgRU5BQkxF
KFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlID0gd2Vic2l0ZURhdGFTdG9yZSgpLnJlc291cmNlTG9hZFN0YXRpc3RpY3Mo
KSkKQEAgLTQ4NTgsNyArNDg1OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2dGcmFtZU5hdmln
YXRpb24oY29uc3QgV2ViRnJhbWVQcm94eSYgZnJhbWUsIGNvbnN0IFVSTCYgcGFnCiB9CiAjZW5k
aWYKIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25T
eW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBp
ZGVudGlmaWVyLAordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25TeW5jKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVj
a0lkZW50aWZpZXIgaWRlbnRpZmllciwKICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmln
YXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBm
cmFtZUluZm9EYXRhLCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQs
CiAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2Um
JiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9u
c2UsCiAgICAgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYgcmVw
bHkpCkBAIC00ODc2LDcgKzQ4NzYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmModWludDY0X3QgZnJhbWVJRCwgYm9vbCBpcwogICAgICAg
ICBXVEZNb3ZlKGZyYW1lSW5mb0RhdGEpLCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1
ZXN0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRp
cmVjdFJlc3BvbnNlKSwgdXNlckRhdGEsIFdURk1vdmUocmVwbHkpKTsKIH0KIAotdm9pZCBXZWJQ
YWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgdWludDY0X3QgZnJhbWVJRCwgYm9vbCBpc01haW5G
cmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwg
UG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiBwcm9jZXNzLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5
Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCiAgICAgdWludDY0X3QgbmF2aWdhdGlvbklELCBO
YXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRh
JiYgZnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFn
ZUlELAogICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJl
bmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJl
c3BvbnNlLAogICAgIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYm
IHJlcGx5KQpAQCAtNDg5Myw3ICs0ODkzLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHkKICAg
ICBzZW5kZXItPnNlbmQoUG9saWN5QWN0aW9uOjpVc2UsIG5hdmlnYXRpb25JRCwgRG93bmxvYWRJ
RCgpLCBXVEY6Om51bGxvcHQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5
Rm9yTmV3V2luZG93QWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2lu
RGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZp
ZXIsCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKEZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAogICAgIE5hdmln
YXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIFJlc291cmNlUmVxdWVzdCYm
IHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBj
b25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90
ZWN0b3IocGFnZUNsaWVudCgpKTsKQEAgLTQ5MzEsMTMgKzQ5MzEsMTMgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBTZWN1cmkKICAgICAgICAgCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEm
IGZyYW1lU2VjdXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAor
dm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4s
IFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAogICAgIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxv
YWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0
YSkKIHsKICAgICBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChtX3Byb2Nlc3MuY29weVJl
ZigpLCBmcmFtZUlELCBmcmFtZVNlY3VyaXR5T3JpZ2luLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9u
SUQsIHJlc3BvbnNlLCByZXF1ZXN0LCBjYW5TaG93TUlNRVR5cGUsIGRvd25sb2FkQXR0cmlidXRl
LCBsaXN0ZW5lcklELCB1c2VyRGF0YSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVp
bnQ2NF90IGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9y
aWdpbiwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsCit2b2lkIFdlYlBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBw
cm9jZXNzLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRh
JiBmcmFtZVNlY3VyaXR5T3JpZ2luLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRlbnRpZmllciwK
ICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVUeXBl
LCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBj
b25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CiAgICAgUGFnZUNsaWVudFByb3RlY3RvciBwcm90
ZWN0b3IocGFnZUNsaWVudCgpKTsKQEAgLTQ5NzEsNyArNDk3MSw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
IHByb2Nlc3MsCiAgICAgfQogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6dW5hYmxlVG9JbXBsZW1l
bnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojp1bmFibGVUb0ltcGxl
bWVudFBvbGljeShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUmVzb3VyY2VFcnJvciYg
ZXJyb3IsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBQYWdlQ2xpZW50UHJvdGVj
dG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC00OTg1LDcgKzQ5ODUsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6dW5hYmxlVG9JbXBsZW1lbnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgUmVzb3VyY2VFcnJvcgogCiAvLyBGb3JtQ2xpZW50CiAKLXZvaWQgV2ViUGFnZVByb3h5
Ojp3aWxsU3VibWl0Rm9ybSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBzb3VyY2VGcmFtZUlE
LCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4mIHRleHRGaWVsZFZhbHVl
cywgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQordm9pZCBX
ZWJQYWdlUHJveHk6OndpbGxTdWJtaXRGb3JtKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBGcmFt
ZUlkZW50aWZpZXIgc291cmNlRnJhbWVJRCwgY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcs
IFN0cmluZz4+JiB0ZXh0RmllbGRWYWx1ZXMsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVz
ZXJEYXRhJiB1c2VyRGF0YSkKIHsKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vz
cy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1l
KTsKQEAgLTUwMDMsMTIgKzUwMDMsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbnRlbnRSdWxl
TGlzdE5vdGlmaWNhdGlvbihVUkwmJiB1cmwsIENvbnRlbnRSdWxlTGlzdFJlc3VsdHMKICAgICBt
X25hdmlnYXRpb25DbGllbnQtPmNvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlvbigqdGhpcywgV1RG
TW92ZSh1cmwpLCBXVEZNb3ZlKHJlc3VsdHMpKTsKIH0KICAgICAKLXZvaWQgV2ViUGFnZVByb3h5
OjpkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0
b3JlJiBzdG9yZSwgdWludDY0X3QgZnJhbWVJRCkgCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkTmF2
aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYgc3Rv
cmUsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIGRpZE5hdmlnYXRlV2l0aE5hdmln
YXRpb25EYXRhU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIHN0b3JlLCBmcmFtZUlEKTsKIH0K
IAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFT
dG9yZSYgc3RvcmUsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkTmF2
aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9j
ZXNzLCBjb25zdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiBzdG9yZSwgRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQpCiB7CiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkTmF2
aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGFTaGFyZWQ6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQ
Ukl1NjQsIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG1fcGFnZUlELnRvVUludDY0KCkp
OwogCkBAIC01MDIzLDE0ICs1MDIzLDE0IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWROYXZpZ2F0
ZVdpdGhOYXZpZ2F0aW9uRGF0YVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByCiAgICAg
cHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5oaXN0b3J5Q2xpZW50KCkuZGlkTmF2aWdhdGVXaXRoTmF2
aWdhdGlvbkRhdGEocHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKSwgKnRoaXMsIHN0b3JlLCAqZnJhbWUp
OwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0
IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3Ry
aW5nLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGll
bnRSZWRpcmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBk
ZXN0aW5hdGlvblVSTFN0cmluZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgZGlk
UGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIHNvdXJjZVVS
TFN0cmluZywgZGVzdGluYXRpb25VUkxTdHJpbmcsIGZyYW1lSUQpOwogfQogCi12b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJv
eHk+JiYgcHJvY2VzcywgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYgcHJvY2VzcywgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYg
ZGVzdGluYXRpb25VUkxTdHJpbmcsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewotICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNo
YXJlZDogd2ViUElEID0gJWksIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJ
dTY0LCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpLCBm
cmFtZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJkaWRQZXJmb3Jt
Q2xpZW50UmVkaXJlY3RTaGFyZWQ6IHdlYlBJRCA9ICVpLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgbV9wYWdl
SUQudG9VSW50NjQoKSwgZnJhbWVJRC50b1VJbnQ2NCgpKTsKIAogICAgIFBhZ2VDbGllbnRQcm90
ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTUwNTAsMTIgKzUwNTAsMTIgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MKICAgICBwcm9jZXNzLT5wcm9jZXNzUG9vbCgpLmhpc3Rv
cnlDbGllbnQoKS5kaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QocHJvY2Vzcy0+cHJvY2Vzc1Bvb2wo
KSwgKnRoaXMsIHNvdXJjZVVSTFN0cmluZywgZGVzdGluYXRpb25VUkxTdHJpbmcsICpmcmFtZSk7
CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3Qg
U3RyaW5nJiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJp
bmcsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybVNlcnZl
clJlZGlyZWN0KGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRl
c3RpbmF0aW9uVVJMU3RyaW5nLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBkaWRQ
ZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgc291cmNlVVJM
U3RyaW5nLCBkZXN0aW5hdGlvblVSTFN0cmluZywgZnJhbWVJRCk7CiB9CiAKLXZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiBwcm9jZXNzLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5n
JiBkZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3RTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiBwcm9jZXNzLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBk
ZXN0aW5hdGlvblVSTFN0cmluZywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0OiB3
ZWJQSUQgPSAlaSwgcGFnZUlEID0gJSIgUFJJdTY0LCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmll
cigpLCBtX3BhZ2VJRC50b1VJbnQ2NCgpKTsKIApAQCAtNTA3Niw3ICs1MDc2LDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmIHByb2Nlc3MKICAgICBwcm9jZXNzLT5wcm9jZXNzUG9vbCgpLmhpc3RvcnlDbGll
bnQoKS5kaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QocHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKSwgKnRo
aXMsIHNvdXJjZVVSTFN0cmluZywgZGVzdGluYXRpb25VUkxTdHJpbmcsICpmcmFtZSk7CiB9CiAK
LXZvaWQgV2ViUGFnZVByb3h5OjpkaWRVcGRhdGVIaXN0b3J5VGl0bGUoY29uc3QgU3RyaW5nJiB0
aXRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkVXBkYXRlSGlzdG9yeVRpdGxlKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0
cmluZyYgdXJsLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBQYWdlQ2xpZW50UHJv
dGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCkBAIC01MTA3LDggKzUxMDcsMTAgQEAg
c3RhdGljIHZvaWQgdHJ5U09BdXRob3JpemF0aW9uKFJlZjxBUEk6Ok5hdmlnYXRpb25BY3Rpb24+
JiYgbmF2aWdhdGlvbkFjdGlvbiwgV2UKIAogdm9pZCBXZWJQYWdlUHJveHk6OmNyZWF0ZU5ld1Bh
Z2UoY29uc3QgRnJhbWVJbmZvRGF0YSYgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRpb25h
bDxQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFJlc291cmNlUmVxdWVzdCYmIHJl
cXVlc3QsIFdpbmRvd0ZlYXR1cmVzJiYgd2luZG93RmVhdHVyZXMsIE5hdmlnYXRpb25BY3Rpb25E
YXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0
ZU5ld1BhZ2U6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQogewotICAgIE1FU1NBR0VfQ0hFQ0sobV9w
cm9jZXNzLCBtX3Byb2Nlc3MtPndlYkZyYW1lKG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YS5mcmFt
ZUlEKSk7Ci0gICAgYXV0byBvcmlnaW5hdGluZ0ZyYW1lSW5mbyA9IEFQSTo6RnJhbWVJbmZvOjpj
cmVhdGUob3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBvcmlnaW5hdGluZ1BhZ2VJRCA/IG1fcHJv
Y2Vzcy0+d2ViUGFnZSgqb3JpZ2luYXRpbmdQYWdlSUQpIDogbnVsbHB0cik7CisgICAgTUVTU0FH
RV9DSEVDSyhtX3Byb2Nlc3MsIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YS5mcmFtZUlEKTsKKyAg
ICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgbV9wcm9jZXNzLT53ZWJGcmFtZSgqb3JpZ2luYXRp
bmdGcmFtZUluZm9EYXRhLmZyYW1lSUQpKTsKKworICAgIGF1dG8gb3JpZ2luYXRpbmdGcmFtZUlu
Zm8gPSBBUEk6OkZyYW1lSW5mbzo6Y3JlYXRlKG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgbV9w
cm9jZXNzLT53ZWJQYWdlKCpvcmlnaW5hdGluZ1BhZ2VJRCkpOwogICAgIGF1dG8gbWFpbkZyYW1l
VVJMID0gbV9tYWluRnJhbWUgPyBtX21haW5GcmFtZS0+dXJsKCkgOiBVUkwoKTsKICAgICBhdXRv
IGNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgbWFpbkZyYW1lVVJMLCByZXF1ZXN0LCByZXBseSA9IFdURk1vdmUocmVwbHkpXSAoUmVmUHRy
PFdlYlBhZ2VQcm94eT4gbmV3UGFnZSkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghbmV3UGFnZSkg
ewpAQCAtNTE3OCw3ICs1MTgwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNsb3NlUGFnZShib29s
IHN0b3BSZXNwb25zaXZlbmVzc1RpbWVyKQogICAgIG1fdWlDbGllbnQtPmNsb3NlKHRoaXMpOwog
fQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdEFsZXJ0KHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdEFsZXJ0OjpE
ZWxheWVkUmVwbHkmJiByZXBseSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0QWxl
cnQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2Vj
dXJpdHlPcmlnaW4sIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6UnVuSmF2YVNjcmlwdEFsZXJ0OjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsKICAgICBXZWJG
cmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVT
U0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsKQEAgLTUxOTcsNyArNTE5OSw3IEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpydW5KYXZhU2NyaXB0QWxlcnQodWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
U2VjdXJpdHlPcmlnaW5EYXRhCiAgICAgbV91aUNsaWVudC0+cnVuSmF2YVNjcmlwdEFsZXJ0KHRo
aXMsIG1lc3NhZ2UsIGZyYW1lLCBzZWN1cml0eU9yaWdpbiwgV1RGTW92ZShyZXBseSkpOwogfQog
Ci12b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdENvbmZpcm0odWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybTo6
RGVsYXllZFJlcGx5JiYgcmVwbHkpCit2b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdENv
bmZpcm0oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYg
c2VjdXJpdHlPcmlnaW4sIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6UnVuSmF2YVNjcmlwdENvbmZpcm06OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQogewogICAg
IFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKICAg
ICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwpAQCAtNTIxNyw3ICs1MjE5LDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRDb25maXJtKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFNlY3VyaXR5T3JpZ2luRGEKICAgICBtX3VpQ2xpZW50LT5ydW5KYXZhU2NyaXB0Q29u
ZmlybSh0aGlzLCBtZXNzYWdlLCBmcmFtZSwgc2VjdXJpdHlPcmlnaW4sIFdURk1vdmUocmVwbHkp
KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJ1bkphdmFTY3JpcHRQcm9tcHQodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbiwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdDo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit2
b2lkIFdlYlBhZ2VQcm94eTo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbiwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdDo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7CiAg
ICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwog
ICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBmcmFtZSk7CkBAIC01Mzc2LDcgKzUzNzgsNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6cm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3JlZW4oY29uc3Qg
SW50UmVjdCYgdmlld1JlY3QsIENvbXBsZQogICAgIGNvbXBsZXRpb25IYW5kbGVyKHBhZ2VDbGll
bnQoKS5yb290Vmlld1RvQWNjZXNzaWJpbGl0eVNjcmVlbih2aWV3UmVjdCkpOwogfQogCi12b2lk
IFdlYlBhZ2VQcm94eTo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuQmVmb3JlVW5sb2FkQ29uZmly
bVBhbmVsOjpEZWxheWVkUmVwbHkmJiByZXBseSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpydW5CZWZv
cmVVbmxvYWRDb25maXJtUGFuZWwoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFNlY3Vy
aXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsOjpEZWxheWVk
UmVwbHkmJiByZXBseSkKIHsKICAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+
d2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1lKTsK
QEAgLTU0MTYsNyArNTQxOCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpwYWdlRGlkU2Nyb2xsKCkK
ICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6cnVuT3BlblBhbmVsKHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgY29u
c3QgRmlsZUNob29zZXJTZXR0aW5ncyYgc2V0dGluZ3MpCit2b2lkIFdlYlBhZ2VQcm94eTo6cnVu
T3BlblBhbmVsKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbkRh
dGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIGNvbnN0IEZpbGVDaG9vc2VyU2V0dGluZ3MmIHNldHRp
bmdzKQogewogICAgIGlmIChtX29wZW5QYW5lbFJlc3VsdExpc3RlbmVyKSB7CiAgICAgICAgIG1f
b3BlblBhbmVsUmVzdWx0TGlzdGVuZXItPmludmFsaWRhdGUoKTsKQEAgLTU0NTUsNyArNTQ1Nyw3
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzaG93U2hhcmVTaGVldChjb25zdCBTaGFyZURhdGFXaXRo
UGFyc2VkVVJMJiBzaGFyZURhdGEsIFNoYXJlCiAgICAgcGFnZUNsaWVudCgpLnNob3dTaGFyZVNo
ZWV0KHNoYXJlRGF0YSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogICAgIAotdm9p
ZCBXZWJQYWdlUHJveHk6OnByaW50RnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6OnBy
aW50RnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIW1faXNQZXJmb3JtaW5nRE9N
UHJpbnRPcGVyYXRpb24pOwogICAgIG1faXNQZXJmb3JtaW5nRE9NUHJpbnRPcGVyYXRpb24gPSB0
cnVlOwpAQCAtNjc2OSwyNyArNjc3MSwyNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cHJpbnRGaW5p
c2hlZENhbGxiYWNrKGNvbnN0IFJlc291cmNlRXJyb3ImIHByaW50RXJyb3IsIENhbGxiYQogfQog
I2VuZGlmCiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpmb2N1c2VkRnJhbWVDaGFuZ2VkKHVpbnQ2NF90
IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6Zm9jdXNlZEZyYW1lQ2hhbmdlZChjb25zdCBP
cHRpb25hbDxGcmFtZUlkZW50aWZpZXI+JiBmcmFtZUlEKQogewogICAgIGlmICghZnJhbWVJRCkg
ewogICAgICAgICBtX2ZvY3VzZWRGcmFtZSA9IG51bGxwdHI7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJh
bWVJRCk7CisgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKCpm
cmFtZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUpOwogCiAgICAgbV9m
b2N1c2VkRnJhbWUgPSBmcmFtZTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmZyYW1lU2V0TGFy
Z2VzdEZyYW1lQ2hhbmdlZCh1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlUHJveHk6OmZy
YW1lU2V0TGFyZ2VzdEZyYW1lQ2hhbmdlZChjb25zdCBPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+
JiBmcmFtZUlEKQogewogICAgIGlmICghZnJhbWVJRCkgewogICAgICAgICBtX2ZyYW1lU2V0TGFy
Z2VzdEZyYW1lID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFdlYkZy
YW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKKyAgICBXZWJG
cmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoKmZyYW1lSUQpOwogICAgIE1F
U1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBmcmFtZSk7CiAKICAgICBtX2ZyYW1lU2V0TGFyZ2VzdEZy
YW1lID0gZnJhbWU7CkBAIC03MzQ1LDI2ICs3MzQ3LDI2IEBAIFdlYWtQdHI8U2VjS2V5UHJveHlT
dG9yZT4gV2ViUGFnZVByb3h5OjpzZWNLZXlQcm94eVN0b3JlKGNvbnN0IFdlYkNvcmU6OkF1dGhl
bnRpCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAgICAgCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkodWludDY0X3QsIFJlZjxBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKQordm9pZCBX
ZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5KEZyYW1l
SWRlbnRpZmllciwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYgYXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UpCiB7CiAgICAgbV9uYXZpZ2F0aW9uQ2xpZW50LT5kaWRSZWNlaXZlQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UoKnRoaXMsIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmdldCgp
KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
ZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50
UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFi
YXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkV4Y2VlZGVkRGF0YWJhc2VRdW90YTo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit2b2lkIFdlYlBh
Z2VQcm94eTo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBj
b25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1l
LCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2
NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVp
bnQ2NF90IGV4cGVjdGVkVXNhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkV4Y2VlZGVkRGF0
YWJhc2VRdW90YTo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7CiAgICAgcmVxdWVzdFN0b3JhZ2VT
cGFjZShmcmFtZUlELCBvcmlnaW5JZGVudGlmaWVyLCBkYXRhYmFzZU5hbWUsIGRpc3BsYXlOYW1l
LCBjdXJyZW50UXVvdGEsIGN1cnJlbnRPcmlnaW5Vc2FnZSwgY3VycmVudERhdGFiYXNlVXNhZ2Us
IGV4cGVjdGVkVXNhZ2UsIFtyZXBseSA9IFdURk1vdmUocmVwbHkpXShhdXRvIHF1b3RhKSBtdXRh
YmxlIHsKICAgICAgICAgcmVwbHkocXVvdGEpOwogICAgIH0pOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6cmVxdWVzdFN0b3JhZ2VTcGFjZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcm
IG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJp
bmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRP
cmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVj
dGVkVXNhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RTdG9yYWdlU3BhY2UoRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1
cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50
RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCh1aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRChTdG9yYWdlLCAicmVxdWVzdFN0b3JhZ2VTcGFjZSBmb3IgZnJhbWUgJSIgUFJJ
dTY0ICIsIGN1cnJlbnQgcXVvdGEgJSIgUFJJdTY0ICIgY3VycmVudCB1c2FnZSAlIiBQUkl1NjQg
IiBleHBlY3RlZCB1c2FnZSAlIiBQUkl1NjQsIGZyYW1lSUQsIGN1cnJlbnRRdW90YSwgY3VycmVu
dERhdGFiYXNlVXNhZ2UsIGV4cGVjdGVkVXNhZ2UpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoU3RvcmFnZSwgInJlcXVlc3RTdG9yYWdlU3BhY2UgZm9yIGZyYW1lICUiIFBSSXU2NCAiLCBj
dXJyZW50IHF1b3RhICUiIFBSSXU2NCAiIGN1cnJlbnQgdXNhZ2UgJSIgUFJJdTY0ICIgZXhwZWN0
ZWQgdXNhZ2UgJSIgUFJJdTY0LCBmcmFtZUlELnRvVUludDY0KCksIGN1cnJlbnRRdW90YSwgY3Vy
cmVudERhdGFiYXNlVXNhZ2UsIGV4cGVjdGVkVXNhZ2UpOwogCiAgICAgU3RvcmFnZVJlcXVlc3Rz
OjpzaW5nbGV0b24oKS5wcm9jZXNzT3JBcHBlbmQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgcGFnZVVSTCA9IGN1cnJlbnRVUkwoKSwgZnJhbWVJRCwgb3JpZ2luSWRlbnRp
ZmllciwgZGF0YWJhc2VOYW1lLCBkaXNwbGF5TmFtZSwgY3VycmVudFF1b3RhLCBjdXJyZW50T3Jp
Z2luVXNhZ2UsIGN1cnJlbnREYXRhYmFzZVVzYWdlLCBleHBlY3RlZFVzYWdlLCBjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewogICAgICAg
ICB0aGlzLT5tYWtlU3RvcmFnZVNwYWNlUmVxdWVzdChmcmFtZUlELCBvcmlnaW5JZGVudGlmaWVy
LCBkYXRhYmFzZU5hbWUsIGRpc3BsYXlOYW1lLCBjdXJyZW50UXVvdGEsIGN1cnJlbnRPcmlnaW5V
c2FnZSwgY3VycmVudERhdGFiYXNlVXNhZ2UsIGV4cGVjdGVkVXNhZ2UsIFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgZnJhbWVJRCwgcGFnZVVSTCA9IFdURk1v
dmUocGFnZVVSTCksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
ciksIGN1cnJlbnRRdW90YV0oYXV0byBxdW90YSkgbXV0YWJsZSB7CiAKLSAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoU3RvcmFnZSwgInJlcXVlc3RTdG9yYWdlU3BhY2UgcmVzcG9u
c2UgZm9yIGZyYW1lICUiIFBSSXU2NCAiLCBxdW90YSAlIiBQUkl1NjQsIGZyYW1lSUQsIHF1b3Rh
KTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoU3RvcmFnZSwgInJlcXVlc3RT
dG9yYWdlU3BhY2UgcmVzcG9uc2UgZm9yIGZyYW1lICUiIFBSSXU2NCAiLCBxdW90YSAlIiBQUkl1
NjQsIGZyYW1lSUQudG9VSW50NjQoKSwgcXVvdGEpOwogCiAgICAgICAgICAgICBpZiAocXVvdGEg
PD0gY3VycmVudFF1b3RhICYmIHRoaXMtPmN1cnJlbnRVUkwoKSA9PSBwYWdlVVJMKSB7CiAgICAg
ICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChTdG9yYWdlLCAic3RvcmFnZSBzcGFj
ZSBpbmNyZWFzZSBkZW5pZWQiKTsKQEAgLTczNzYsNyArNzM3OCw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpyZXF1ZXN0U3RvcmFnZVNwYWNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYg
b3JpZ2luSWRlCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjptYWtlU3RvcmFnZVNw
YWNlUmVxdWVzdCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1l
LCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWlu
dDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBX
ZWJQYWdlUHJveHk6Om1ha2VTdG9yYWdlU3BhY2VSZXF1ZXN0KEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJh
c2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEs
IHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNh
Z2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0
X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChtX2lzUXVvdGFJbmNyZWFzZURl
bmllZCkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjdXJyZW50UXVvdGEpOwpAQCAtNzQw
Miw3ICs3NDA0LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hl
T3JpZ2luUXVvdGEoY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGkKICAgICBtX3VpQ2xpZW50LT5y
ZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKHRoaXMsIHNlY3VyaXR5T3JpZ2luLmdl
dCgpLCBjdXJyZW50UXVvdGEsIHRvdGFsQnl0ZXNOZWVkZWQsIFdURk1vdmUocmVwbHkpKTsKIH0K
IAotdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFt
ZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgb3JpZ2lu
SWRlbnRpZmllcikKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNz
aW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQogewogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1l
ID0gbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJv
Y2VzcywgZnJhbWUpOwpAQCAtNzQ0Niw3ICs3NDQ4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNl
dE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWRPdmVycmlkZShPcHRpb25hbDxib29sPiBlbmFibGVk
KQogfQogI2VuZGlmCiAKLXZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlz
c2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmICB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRh
dGEsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9y
aWdpbkRhdGEsIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmIHJlcXVlc3QpCit2b2lkIFdl
YlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1
c2VyTWVkaWFJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYgIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luRGF0YSwgY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YSwgV2ViQ29y
ZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYgcmVxdWVzdCkKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBtX3Byb2Nlc3MtPndlYkZyYW1lKGZy
YW1lSUQpKTsKQEAgLTc0NjEsNyArNzQ2Myw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0
VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50CiAj
ZW5kaWYKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZy
YW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luRGF0YSwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YSkK
K3ZvaWQgV2ViUGFnZVByb3h5OjplbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1aW50NjRf
dCB1c2VyTWVkaWFJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5EYXRhLCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5EYXRhKQogewog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3By
b2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwpAQCAtNzQ5Myw3ICs3NDk1LDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmNsZWFyVXNlck1lZGlhU3RhdGUoKQogfQogCiAjaWYgRU5BQkxFKERFVklDRV9P
UklFTlRBVElPTikKLXZvaWQgV2ViUGFnZVByb3h5OjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0
aW9uQW5kTW90aW9uQWNjZXNzKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYmIG9yaWdpbkRhdGEsIGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRp
b25BbmRNb3Rpb25BY2Nlc3MoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYmIG9yaWdpbkRhdGEsIGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wcm9jZXNz
LT53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgZnJhbWUp
OwpAQCAtODczNiw3ICs4NzM4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvYWRTeW5jaHJvbm91
c1VSTFNjaGVtZVRhc2soVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJiBwYXJhbWUKIH0KIAogI2lm
IEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVx
dWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFt
ZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCB1aW50NjRf
dCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbV91aUNsaWVu
dC0+cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtKCp0aGlzLCBtX3Byb2Nlc3MtPndlYkZyYW1l
KGZyYW1lSUQpLCBzdWJGcmFtZURvbWFpbiwgdG9wRnJhbWVEb21haW4sIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5k
ZXggYjQzODNjYWY4OGYzNzI3MmNmOTQ3N2I2NDAzOWNlOWVmNWM5NDlhMS4uMjA3Njk1OTFhYzFl
MzIyZjUxY2RjZjUyMGU1YWNlZWIyZTNmOWNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKQEAgLTEwMTgsNyArMTAxOCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJ1bkph
dmFTY3JpcHRJbk1haW5GcmFtZShjb25zdCBTdHJpbmcmLCBib29sLCBXVEY6OkZ1bmN0aW9uPHZv
aWQgKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiwgYm9vbCBoYWRFeGNlcHRpb24sIGNvbnN0
IFdlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHMmLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxs
YmFja0Z1bmN0aW9uKTsKICAgICB2b2lkIHJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZVNjcmlwdFdv
cmxkKGNvbnN0IFN0cmluZyYsIGJvb2wsIGNvbnN0IE9wdGlvbmFsPFN0cmluZz4mIHdvcmxkTmFt
ZSwgV1RGOjpGdW5jdGlvbjx2b2lkKEFQSTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlKiwgYm9vbCBo
YWRFeGNlcHRpb24sIGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHMmLCBDYWxsYmFja0Jh
c2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKTsKICAgICAvLyBGb3Igc3ViIGZyYW1lcy4K
LSAgICB2b2lkIHJ1bkphdmFTY3JpcHRJbkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0
cmluZyYgc2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIFdURjo6RnVuY3Rpb248dm9pZChB
UEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSosIGJvb2wgaGFkRXhjZXB0aW9uLCBjb25zdCBXZWJD
b3JlOjpFeGNlcHRpb25EZXRhaWxzJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tG
dW5jdGlvbik7CisgICAgdm9pZCBydW5KYXZhU2NyaXB0SW5GcmFtZShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIFdU
Rjo6RnVuY3Rpb248dm9pZChBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSosIGJvb2wgaGFkRXhj
ZXB0aW9uLCBjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzJiwgQ2FsbGJhY2tCYXNlOjpF
cnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbik7CiAgICAgdm9pZCBmb3JjZVJlcGFpbnQoUmVmUHRy
PFZvaWRDYWxsYmFjaz4mJik7CiAKICAgICBmbG9hdCBoZWFkZXJIZWlnaHQoV2ViRnJhbWVQcm94
eSYpOwpAQCAtMTE2MSw3ICsxMTYxLDcgQEAgcHVibGljOgogICAgIHZvaWQgZHJhd1JlY3RUb0lt
YWdlKFdlYkZyYW1lUHJveHkqLCBjb25zdCBQcmludEluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIFJlZjxJbWFnZUNhbGxiYWNrPiYmKTsKICAg
ICB2b2lkIGRyYXdQYWdlc1RvUERGKFdlYkZyYW1lUHJveHkqLCBjb25zdCBQcmludEluZm8mLCB1
aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIFJlZjxEYXRhQ2FsbGJhY2s+JiYpOwogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgdWludDMyX3QgY29tcHV0ZVBhZ2VzRm9yUHJpbnRp
bmdBbmREcmF3VG9QREYodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiwgRHJhd1Rv
UERGQ2FsbGJhY2s6OkNhbGxiYWNrRnVuY3Rpb24mJik7CisgICAgdWludDMyX3QgY29tcHV0ZVBh
Z2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25z
dCBQcmludEluZm8mLCBEcmF3VG9QREZDYWxsYmFjazo6Q2FsbGJhY2tGdW5jdGlvbiYmKTsKICAg
ICB2b2lkIGRyYXdUb1BERkNhbGxiYWNrKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgcGRmRGF0
YSwgV2ViS2l0OjpDYWxsYmFja0lEKTsKICNlbmRpZgogI2VsaWYgUExBVEZPUk0oR1RLKQpAQCAt
MTI1Miw3ICsxMjUyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Vmlld3BvcnRTaXplRm9yQ1NT
Vmlld3BvcnRVbml0cyhjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CiAgICAgV2ViQ29yZTo6SW50
U2l6ZSB2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCkgY29uc3QgeyByZXR1cm4gbV92
aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzLnZhbHVlT3IoV2ViQ29yZTo6SW50U2l6ZSgp
KTsgfQogCi0gICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSh1
aW50NjRfdCBmcmFtZUlELCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJik7Cisg
ICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmKTsKIAog
ICAgIFNwZWxsRG9jdW1lbnRUYWcgc3BlbGxEb2N1bWVudFRhZygpOwogCkBAIC0xNDUyLDEyICsx
NDUyLDEyIEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKLSAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShjb25zdCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vz
c0NvbmZpcm0oY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWlu
LCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAg
ICAgdm9pZCBkaWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2YWxl
bnRSZXNvdXJjZSgpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQot
ICAgIHZvaWQgc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh1aW50
NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgYm9vbCBtYXlQcm9t
cHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Pck1v
dGlvblBlcm1pc3Npb25TdGF0ZSk+JiYpOworICAgIHZvaWQgc2hvdWxkQWxsb3dEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBib29sIG1heVByb21wdCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlKT4m
Jik7CiAjZW5kaWYKIAogICAgIHN0YXRpYyBXZWJQYWdlUHJveHkqIG5vbkVwaGVtZXJhbFdlYlBh
Z2VQcm94eSgpOwpAQCAtMTQ5OCwzMyArMTQ5OCwzMyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAg
IFByb3Zpc2lvbmFsUGFnZVByb3h5KiBwcm92aXNpb25hbFBhZ2VQcm94eSgpIGNvbnN0IHsgcmV0
dXJuIG1fcHJvdmlzaW9uYWxQYWdlLmdldCgpOyB9Ci0gICAgdm9pZCBjb21taXRQcm92aXNpb25h
bFBhZ2UodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJp
bmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJf
dCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mLCBib29sIGNv
bnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVu
dD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQg
Y29tbWl0UHJvdmlzaW9uYWxQYWdlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1lSGFzQ3VzdG9t
Q29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBXZWJDb3JlOjpD
ZXJ0aWZpY2F0ZUluZm8mLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdl
YkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBjb25z
dCBVc2VyRGF0YSYpOwogCiAgICAgLy8gTG9naWMgc2hhcmVkIGJldHdlZW4gdGhlIFdlYlBhZ2VQ
cm94eSBhbmQgdGhlIFByb3Zpc2lvbmFsUGFnZVByb3h5LgotICAgIHZvaWQgZGlkU3RhcnRQcm92
aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCB1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmLCBVUkwmJiB1bnJlYWNoYWJs
ZVVSTCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRG
b3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCB1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNpb25hbFVSTCwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcsIGNv
bnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92
aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCB1aW50NjRf
dCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmLCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0
U2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMU3RyaW5nLCB1aW50NjRfdCBmcmFtZUlE
KTsKLSAgICB2b2lkIGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBk
ZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWROYXZp
Z2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25z
dCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiwgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBk
aWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOwotICAg
IHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQ
cm9jZXNzUHJveHk+JiYsIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciwKKyAgICB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIFVSTCYmLCBVUkwmJiB1bnJlYWNoYWJsZVVSTCwgY29uc3QgVXNlckRhdGEmKTsK
KyAgICB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZVNoYXJlZChSZWY8V2ViUHJv
Y2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBjb25zdCBTdHJpbmcmIHByb3Zpc2lvbmFsVVJMLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJiwgV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZywgY29uc3QgVXNlckRhdGEmKTsK
KyAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29u
c3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdFNoYXJlZChS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29u
c3QgU3RyaW5nJiBkZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
KTsKKyAgICB2b2lkIGRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdFNoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBk
ZXN0aW5hdGlvblVSTFN0cmluZywgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lk
IGRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYsIGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIpOworICAgIHZvaWQgZGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZVNoYXJlZChSZWY8
V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgVVJMJiYpOworICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgZnJhbWVTZWN1cml0eU9yaWdp
biwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLAogICAgICAgICB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9u
YWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiYsCiAgICAgICAgIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJE
YXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7Ci0gICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNw
b25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCB1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNv
cmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3Bv
bnNlU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2lu
LCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsCiAgICAgICAgIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGRv
d25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwog
ICAgIHZvaWQgc3RhcnRVUkxTY2hlbWVUYXNrU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYs
IFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYpOwogICAgIHZvaWQgbG9hZERhdGFXaXRoTmF2aWdh
dGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBBUEk6Ok5hdmlnYXRpb24mLCBjb25z
dCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJp
bmcmIGVuY29kaW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0
YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBPcHRpb25hbDxXZWJzaXRl
UG9saWNpZXNEYXRhPiYmID0gV1RGOjpudWxsb3B0LCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5ID0gV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hv
dWxkTm90QWxsb3cpOwogICAgIHZvaWQgbG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJlZChS
ZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBBUEk6Ok5hdmlnYXRpb24mLCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgQVBJOjpP
YmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9w
dGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBXVEY6Om51bGxvcHQpOwogICAgIHZvaWQg
YmFja0ZvcndhcmRHb1RvSXRlbVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25zdCBX
ZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJik+JiYpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgdWlu
dDY0X3QgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvblN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBib29sIGlzTWFpbkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwg
T3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKICAg
ICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0
IFVzZXJEYXRhJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdh
dGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmKTsKICNpZiBVU0UoUVVJQ0tfTE9PSykKICAg
ICB2b2lkIGRpZFJlcXVlc3RQYXNzd29yZEZvclF1aWNrTG9va0RvY3VtZW50SW5NYWluRnJhbWVT
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSk7CiAj
ZW5kaWYKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCi0gICAgdm9pZCBjb250ZW50Rmls
dGVyRGlkQmxvY2tMb2FkRm9yRnJhbWVTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29u
c3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiwgdWludDY0X3QgZnJhbWVJ
RCk7CisgICAgdm9pZCBjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWVTaGFyZWQoUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tI
YW5kbGVyJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICNlbmRpZgogCiAgICAgdm9pZCBk
dW1wQWRDbGlja0F0dHJpYnV0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5n
Jik+JiYpOwpAQCAtMTU2MSw3ICsxNTYxLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
Jiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKIAotICAgIHZvaWQg
cmVxdWVzdFN0b3JhZ2VTcGFjZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdp
bklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRp
c3BsYXlOYW1lLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5V
c2FnZSwgdWludDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNh
Z2UsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYpOworICAgIHZvaWQg
cmVxdWVzdFN0b3JhZ2VTcGFjZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0
cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVu
dE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhw
ZWN0ZWRVc2FnZSwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJik7CiAK
ICAgICBVUkwgY3VycmVudFJlc291cmNlRGlyZWN0b3J5VVJMKCkgY29uc3Q7CiAKQEAgLTE1ODEs
NyArMTU4MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVUaHJvdHRsZVN0YXRlKCk7CiAg
ICAgdm9pZCB1cGRhdGVIaWRkZW5QYWdlVGhyb3R0bGluZ0F1dG9JbmNyZWFzZXMoKTsKIAotICAg
IGJvb2wgc3VzcGVuZEN1cnJlbnRQYWdlSWZQb3NzaWJsZShBUEk6Ok5hdmlnYXRpb24mLCBPcHRp
b25hbDx1aW50NjRfdD4gbWFpbkZyYW1lSUQsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQs
IFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9k
ZSk7CisgICAgYm9vbCBzdXNwZW5kQ3VycmVudFBhZ2VJZlBvc3NpYmxlKEFQSTo6TmF2aWdhdGlv
biYsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gbWFpbkZyYW1lSUQsIFByb2Nl
c3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFNob3VsZERlbGF5Q2xvc2luZ1VudGlsRW50ZXJpbmdB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSk7CiAKICAgICBlbnVtIGNsYXNzIFJlc2V0U3RhdGVS
ZWFzb24gewogICAgICAgICBQYWdlSW52YWxpZGF0ZWQsCkBAIC0xNjEwLDMyICsxNjEwLDMyIEBA
IHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0UG9pbnRlclVubG9jaygpOwogI2VuZGlmCiAKLSAg
ICB2b2lkIGRpZENyZWF0ZU1haW5GcmFtZSh1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRp
ZENyZWF0ZVN1YmZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkQ3JlYXRlV2lu
ZG93KHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXImJik7
Ci0KLSAgICB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJiwgVVJMJiYgdW5yZWFjaGFibGVVUkws
IGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQ
cm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBVc2VyRGF0YSYpOwotICAg
IHZvaWQgd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFN0cmluZyYgdXJsLCBkb3VibGUgZGVsYXksIFdlYkNvcmU6OkxvY2tCYWNrRm9yd2Fy
ZExpc3QpOwotICAgIHZvaWQgZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBVUkwmJik7Ci0gICAgdm9pZCBk
aWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlRXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2Vy
RGF0YSYpOwotICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBmcmFt
ZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgdWludDMyX3QgZnJhbWVMb2FkVHlwZSwgY29uc3Qg
V2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJiwgYm9vbCBjb250YWluc1BsdWdpbkRvY3VtZW50LCBP
cHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhhc0luc2VjdXJlQ29u
dGVudCwgY29uc3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRpZEZpbmlzaERvY3VtZW50TG9hZEZv
ckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgVXNl
ckRhdGEmKTsKLSAgICB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRG
YWlsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9p
ZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCB1aW50MzJfdCBzYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSwg
VVJMJiYsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAgdm9pZCBkaWRDaGFuZ2VNYWluRG9jdW1lbnQo
dWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRFeHBsaWNpdE9wZW5Gb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBVUkwmJik7Ci0KLSAgICB2b2lkIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1l
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFVzZXJEYXRhJik7Ci0gICAg
dm9pZCBkaWRGaXJzdExheW91dEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJE
YXRhJik7Ci0gICAgdm9pZCBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkRGlzcGxheUlu
c2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFVzZXJEYXRhJik7
Ci0gICAgdm9pZCBkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgZGlkRGV0ZWN0WFNTRm9yRnJhbWUodWludDY0
X3QgZnJhbWVJRCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZENyZWF0ZU1haW5GcmFt
ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlkQ3JlYXRlU3ViZnJhbWUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZENyZWF0ZVdpbmRvdyhXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXImJik7
CisKKyAgICB2b2lkIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCYmLCBVUkwmJiB1bnJlYWNo
YWJsZVVSTCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRp
cmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3Qg
VXNlckRhdGEmKTsKKyAgICB2b2lkIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdXJsLCBkb3VibGUgZGVsYXks
IFdlYkNvcmU6OkxvY2tCYWNrRm9yd2FyZExpc3QpOworICAgIHZvaWQgZGlkQ2FuY2VsQ2xpZW50
UmVkaXJlY3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOworICAgIHZvaWQgZGlk
Q2hhbmdlUHJvdmlzaW9uYWxVUkxGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMJiYpOworICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIGNvbnN0IFN0cmluZyYgcHJvdmlzaW9uYWxVUkwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
RXJyb3ImLCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5nLCBjb25zdCBVc2VyRGF0YSYpOwor
ICAgIHZvaWQgZGlkQ29tbWl0TG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGZyYW1l
SGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBmcmFtZUxvYWRUeXBlLCBjb25zdCBX
ZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9w
dGlvbmFsPFdlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250
ZW50LCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9y
RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNv
bnN0IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRGaW5pc2hMb2FkRm9yRnJhbWUoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFVzZXJEYXRhJik7
CisgICAgdm9pZCBkaWRGYWlsTG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29u
c3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIGRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFt
ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMy
X3Qgc2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUsIFVSTCYmLCBjb25zdCBVc2VyRGF0YSYpOwor
ICAgIHZvaWQgZGlkQ2hhbmdlTWFpbkRvY3VtZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7
CisgICAgdm9pZCBkaWRFeHBsaWNpdE9wZW5Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIFVSTCYmKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWUoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZv
aWQgZGlkRmlyc3RMYXlvdXRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0
IFVzZXJEYXRhJik7CisgICAgdm9pZCBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JG
cmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgdm9p
ZCBkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9y
RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBVc2VyRGF0YSYpOworICAgIHZv
aWQgZGlkRGV0ZWN0WFNTRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBV
c2VyRGF0YSYpOwogICAgIHZvaWQgbWFpbkZyYW1lUGx1Z2luSGFuZGxlc1BhZ2VTY2FsZUdlc3R1
cmVEaWRDaGFuZ2UoYm9vbCk7Ci0gICAgdm9pZCBmcmFtZURpZEJlY29tZUZyYW1lU2V0KHVpbnQ2
NF90IGZyYW1lSUQsIGJvb2wpOworICAgIHZvaWQgZnJhbWVEaWRCZWNvbWVGcmFtZVNldChXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIGJvb2wpOwogICAgIHZvaWQgZGlkU3RhcnRQcm9ncmVzcygp
OwogICAgIHZvaWQgZGlkQ2hhbmdlUHJvZ3Jlc3MoZG91YmxlKTsKICAgICB2b2lkIGRpZEZpbmlz
aFByb2dyZXNzKCk7CkBAIC0xNjQ4LDM3ICsxNjQ4LDM3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdl
YkZyYW1lUHJveHkmLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAogICAgICAgICBGcmFtZUluZm9EYXRh
JiYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHks
CiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBj
b25zdCBVc2VyRGF0YSYsIFJlZjxQb2xpY3lEZWNpc2lvblNlbmRlcj4mJik7Ci0gICAgdm9pZCBk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmModWludDY0X3QgZnJhbWVJRCwgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmll
ciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAorICAgIHZv
aWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNo
ZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0
YSYmLAogICAgICAgICBGcmFtZUluZm9EYXRhJiYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1E
YXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIHVpbnQ2NF90IGxpc3Rl
bmVySUQpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmModWlu
dDY0X3QgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLAorICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvblN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBib29sIGlzTWFpbkZy
YW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYs
CiAgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9y
aWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFS
ZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKICAgICAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYm
KTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCisgICAgdm9pZCBkZWNpZGVQ
b2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZp
ZXIsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29u
c3QgVXNlckRhdGEmKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdlYkNvcmU6OlBv
bGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELAorICAgIHZvaWQgZGVj
aWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwKICAgICAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGJvb2wgY2FuU2hvd01J
TUVUeXBlLCBjb25zdCBTdHJpbmcmIGRvd25sb2FkQXR0cmlidXRlLCB1aW50NjRfdCBsaXN0ZW5l
cklELCBjb25zdCBVc2VyRGF0YSYpOwotICAgIHZvaWQgdW5hYmxlVG9JbXBsZW1lbnRQb2xpY3ko
dWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFVz
ZXJEYXRhJik7CisgICAgdm9pZCB1bmFibGVUb0ltcGxlbWVudFBvbGljeShXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBVc2VyRGF0
YSYpOwogICAgIHZvaWQgYmVnaW5TYWZlQnJvd3NpbmdDaGVjayhjb25zdCBVUkwmLCBib29sLCBX
ZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkmKTsKIAogICAgIFdlYkNvbnRlbnRNb2RlIGVmZmVj
dGl2ZUNvbnRlbnRNb2RlQWZ0ZXJBZGp1c3RpbmdQb2xpY2llcyhBUEk6OldlYnNpdGVQb2xpY2ll
cyYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogCi0gICAgdm9pZCB3aWxsU3Vi
bWl0Rm9ybSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBzb3VyY2VGcmFtZUlELCBjb25zdCBW
ZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4mIHRleHRGaWVsZFZhbHVlcywgdWludDY0
X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKKyAgICB2b2lkIHdpbGxTdWJtaXRGb3Jt
KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIHNvdXJj
ZUZyYW1lSUQsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiYgdGV4dEZp
ZWxkVmFsdWVzLCB1aW50NjRfdCBsaXN0ZW5lcklELCBjb25zdCBVc2VyRGF0YSYpOwogCiAgICAg
dm9pZCBjb250ZW50UnVsZUxpc3ROb3RpZmljYXRpb24oVVJMJiYsIFdlYkNvcmU6OkNvbnRlbnRS
dWxlTGlzdFJlc3VsdHMmJik7CiAKICAgICAvLyBIaXN0b3J5IGNsaWVudAotICAgIHZvaWQgZGlk
TmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29uc3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYs
IHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNv
bnN0IFN0cmluZyYgc291cmNlVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJM
U3RyaW5nLCB1aW50NjRfdCBmcmFtZUlEKTsKLSAgICB2b2lkIGRpZFBlcmZvcm1TZXJ2ZXJSZWRp
cmVjdChjb25zdCBTdHJpbmcmIHNvdXJjZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBkZXN0aW5h
dGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCk7Ci0gICAgdm9pZCBkaWRVcGRhdGVIaXN0
b3J5VGl0bGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIHVpbnQ2NF90
IGZyYW1lSUQpOworICAgIHZvaWQgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoY29uc3Qg
V2ViTmF2aWdhdGlvbkRhdGFTdG9yZSYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAg
dm9pZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkxTdHJp
bmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcik7CisgICAgdm9pZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRVcGRhdGVIaXN0b3J5VGl0bGUo
Y29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcik7CiAKICAgICAvLyBVSSBjbGllbnQKICAgICB2b2lkIGNyZWF0ZU5ld1BhZ2UoY29u
c3QgRnJhbWVJbmZvRGF0YSYsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBvcmln
aW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OldpbmRv
d0ZlYXR1cmVzJiYsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkNyZWF0ZU5ld1BhZ2U6OkRlbGF5ZWRSZXBseSYmKTsKICAgICB2b2lkIHNob3dQYWdlKCk7
Ci0gICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6UnVuSmF2YVNjcmlwdEFsZXJ0OjpEZWxheWVkUmVwbHkmJik7Ci0gICAgdm9pZCBy
dW5KYXZhU2NyaXB0Q29uZmlybSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpS
dW5KYXZhU2NyaXB0Q29uZmlybTo6RGVsYXllZFJlcGx5JiYpOwotICAgIHZvaWQgcnVuSmF2YVNj
cmlwdFByb21wdCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0OjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBydW5K
YXZhU2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpSdW5KYXZhU2NyaXB0QWxlcnQ6OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIHJ1bkphdmFT
Y3JpcHRDb25maXJtKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3RyaW5nJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
UnVuSmF2YVNjcmlwdENvbmZpcm06OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIHJ1bkphdmFT
Y3JpcHRQcm9tcHQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0OjpEZWxheWVkUmVwbHkmJik7CiAgICAg
dm9pZCBzZXRTdGF0dXNUZXh0KGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgbW91c2VEaWRNb3Zl
T3ZlckVsZW1lbnQoV2ViSGl0VGVzdFJlc3VsdERhdGEmJiwgdWludDMyX3QgbW9kaWZpZXJzLCBV
c2VyRGF0YSYmKTsKIApAQCAtMTcwMSwyMSArMTcwMSwyMSBAQCBwcml2YXRlOgogICAgIHZvaWQg
cm9vdFZpZXdUb1NjcmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB2aWV3UmVjdCwgTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6Um9vdFZpZXdUb1NjcmVlbjo6RGVsYXllZFJlcGx5JiYpOwogICAg
IHZvaWQgYWNjZXNzaWJpbGl0eVNjcmVlblRvUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIHNjcmVlblBvaW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkludFBvaW50
KT4mJik7CiAgICAgdm9pZCByb290Vmlld1RvQWNjZXNzaWJpbGl0eVNjcmVlbihjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiB2aWV3UmVjdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpJ
bnRSZWN0KT4mJik7Ci0gICAgdm9pZCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwodWludDY0
X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5CZWZvcmVVbmxvYWRDb25m
aXJtUGFuZWw6OkRlbGF5ZWRSZXBseSYmKTsKKyAgICB2b2lkIHJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6UnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsOjpEZWxheWVkUmVwbHkmJik7CiAgICAgdm9p
ZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRy
aWJ1dGVzJik7CiAgICAgdm9pZCBwYWdlRGlkU2Nyb2xsKCk7Ci0gICAgdm9pZCBydW5PcGVuUGFu
ZWwodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwg
Y29uc3QgV2ViQ29yZTo6RmlsZUNob29zZXJTZXR0aW5ncyYpOworICAgIHZvaWQgcnVuT3BlblBh
bmVsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJiwgY29uc3QgV2ViQ29yZTo6RmlsZUNob29zZXJTZXR0aW5ncyYpOwogICAgIHZvaWQg
c2hvd1NoYXJlU2hlZXQoY29uc3QgV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIFNo
YXJlU2hlZXRDYWxsYmFja0lEKTsKLSAgICB2b2lkIHByaW50RnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIGV4Y2VlZGVkRGF0YWJh
c2VRdW90YSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1
aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0
X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkV4Y2VlZGVkRGF0YWJhc2VRdW90YTo6RGVsYXllZFJlcGx5JiYpOwor
ICAgIHZvaWQgcHJpbnRGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRf
dCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3Vy
cmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OkV4Y2VlZGVkRGF0YWJhc2VRdW90YTo6RGVsYXllZFJlcGx5JiYpOwogICAgIHZv
aWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShjb25zdCBTdHJpbmcmIG9yaWdp
bklkZW50aWZpZXIsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgdG90YWxCeXRlc05l
ZWRlZCwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmln
aW5RdW90YTo6RGVsYXllZFJlcGx5JiYpOwotICAgIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVy
bWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IGdlb2xvY2F0aW9uSUQsIHVpbnQ2NF90IGZyYW1lSUQs
IFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBl
cm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKTsKIAogI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIHVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpOwogI2VuZGlmCi0gICAgdm9pZCByZXF1ZXN0
VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFTdHJlYW1S
ZXF1ZXN0JiYpOwotICAgIHZvaWQgZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0
X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5EYXRhLCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5EYXRhKTsKKyAgICB2b2lk
IHJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQs
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIFdlYkNv
cmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYmKTsKKyAgICB2b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNl
c0ZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdXNlck1lZGlhRG9jdW1lbnRPcmln
aW5EYXRhLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1l
bnRPcmlnaW5EYXRhKTsKICAgICB2b2lkIGJlZ2luTW9uaXRvcmluZ0NhcHR1cmVEZXZpY2VzKCk7
CiAKICAgICB2b2lkIHJ1bk1vZGFsKCk7CkBAIC0xODk1LDggKzE4OTUsOCBAQCBwcml2YXRlOgog
ICAgIHZvaWQgcHJpbnRGaW5pc2hlZENhbGxiYWNrKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImLCBDYWxsYmFja0lEKTsKICNlbmRpZgogCi0gICAgdm9pZCBmb2N1c2VkRnJhbWVDaGFuZ2Vk
KHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgZnJhbWVTZXRMYXJnZXN0RnJhbWVDaGFuZ2Vk
KHVpbnQ2NF90IGZyYW1lSUQpOworICAgIHZvaWQgZm9jdXNlZEZyYW1lQ2hhbmdlZChjb25zdCBP
cHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+Jik7CisgICAgdm9pZCBmcmFtZVNldExh
cmdlc3RGcmFtZUNoYW5nZWQoY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
PiYpOwogCiAgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3RvbUNvbnRlbnRQcm92
aWRlcihjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lLCBjb25zdCBJUEM6OkRhdGFSZWZl
cmVuY2UmKTsKIApAQCAtMTk5Nyw3ICsxOTk3LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYg
RU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQotICAgIHZvaWQgY29udGVudEZpbHRlckRpZEJsb2Nr
TG9hZEZvckZyYW1lKGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYs
IHVpbnQ2NF90IGZyYW1lSUQpOworICAgIHZvaWQgY29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZv
ckZyYW1lKGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcik7CiAjZW5kaWYKIAogICAgIHZvaWQgdHJ5UmVsb2FkQWZ0ZXJQ
cm9jZXNzVGVybWluYXRpb24oKTsKQEAgLTIxMTAsNyArMjExMCw3IEBAIHByaXZhdGU6CiAgICAg
c3RhdGljIGJvb2wgaXNJbkhhcmR3YXJlS2V5Ym9hcmRNb2RlKCk7CiAjZW5kaWYKIAotICAgIHZv
aWQgbWFrZVN0b3JhZ2VTcGFjZVJlcXVlc3QodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5n
JiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3Ry
aW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50
T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBl
Y3RlZFVzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJik7CisgICAgdm9p
ZCBtYWtlU3RvcmFnZVNwYWNlUmVxdWVzdChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNv
bnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3Qg
Y3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0
X3QgZXhwZWN0ZWRVc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYpOwog
CiAgICAgV2Vha1B0cjxQYWdlQ2xpZW50PiBtX3BhZ2VDbGllbnQ7CiAgICAgUmVmPEFQSTo6UGFn
ZUNvbmZpZ3VyYXRpb24+IG1fY29uZmlndXJhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBlY2FkOTVlNDZiNTQzYWM5MTUw
NDBlNjBlZjQwNGJlZDY0MjY3MTYxLi4xNTg5MTllMzE2MDExZDY5OTQwZGQ5YjFlMmY3Y2NjMzFl
YTRlNDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluCkBAIC0yNSw5ICsyNSw5IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAg
ICAgQ3JlYXRlTmV3UGFnZShzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5n
RnJhbWVJbmZvRGF0YSwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0
aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdlYkNv
cmU6OldpbmRvd0ZlYXR1cmVzIHdpbmRvd0ZlYXR1cmVzLCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0
aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSkgLT4gKE9wdGlvbmFsPFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyPiBuZXdQYWdlSUQsIE9wdGlvbmFsPFdlYktpdDo6V2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycz4gbmV3UGFnZVBhcmFtZXRlcnMpIFN5bmNocm9ub3VzCiAgICAgU2hvd1Bh
Z2UoKQogICAgIENsb3NlUGFnZShib29sIHN0b3BSZXNwb25zaXZlbmVzc1RpbWVyKQotICAgIFJ1
bkphdmFTY3JpcHRBbGVydCh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFN0cmluZyBtZXNzYWdlKSAtPiAoKSBT
eW5jaHJvbm91cwotICAgIFJ1bkphdmFTY3JpcHRDb25maXJtKHVpbnQ2NF90IGZyYW1lSUQsIHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgU3Ry
aW5nIG1lc3NhZ2UpIC0+IChib29sIHJlc3VsdCkgU3luY2hyb25vdXMKLSAgICBSdW5KYXZhU2Ny
aXB0UHJvbXB0KHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBkZWZhdWx0
VmFsdWUpIC0+IChTdHJpbmcgcmVzdWx0KSBTeW5jaHJvbm91cworICAgIFJ1bkphdmFTY3JpcHRB
bGVydChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSkgLT4g
KCkgU3luY2hyb25vdXMKKyAgICBSdW5KYXZhU2NyaXB0Q29uZmlybShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFt
ZVNlY3VyaXR5T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSkgLT4gKGJvb2wgcmVzdWx0KSBTeW5jaHJv
bm91cworICAgIFJ1bkphdmFTY3JpcHRQcm9tcHQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9y
aWdpbiwgU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBkZWZhdWx0VmFsdWUpIC0+IChTdHJpbmcgcmVz
dWx0KSBTeW5jaHJvbm91cwogICAgIE1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KHN0cnVjdCBXZWJL
aXQ6OldlYkhpdFRlc3RSZXN1bHREYXRhIGhpdFRlc3RSZXN1bHREYXRhLCB1aW50MzJfdCBtb2Rp
ZmllcnMsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAKICNpZiBFTkFCTEUoTkVUU0NBUEVf
UExVR0lOX0FQSSkKQEAgLTQ3LDggKzQ3LDggQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsK
ICAgICBTZXRUb29sVGlwKFN0cmluZyB0b29sVGlwKQogICAgIFNldEZvY3VzKGJvb2wgZm9jdXNl
ZCkKICAgICBUYWtlRm9jdXModWludDMyX3QgZGlyZWN0aW9uKQotICAgIEZvY3VzZWRGcmFtZUNo
YW5nZWQodWludDY0X3QgZnJhbWVJRCkKLSAgICBGcmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQo
dWludDY0X3QgZnJhbWVJRCkKKyAgICBGb2N1c2VkRnJhbWVDaGFuZ2VkKE9wdGlvbmFsPFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCkKKyAgICBGcmFtZVNldExhcmdlc3RGcmFtZUNo
YW5nZWQoT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKQogICAgIFNl
dFJlbmRlclRyZWVTaXplKHVpbnQ2NF90IHRyZWVTaXplKQogICAgIFNldFRvb2xiYXJzQXJlVmlz
aWJsZShib29sIHRvb2xiYXJzQXJlVmlzaWJsZSkKICAgICBHZXRUb29sYmFyc0FyZVZpc2libGUo
KSAtPiAoYm9vbCB0b29sYmFyc0FyZVZpc2libGUpIFN5bmNocm9ub3VzCkBAIC02OSwxMSArNjks
MTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBIaWRlVmFsaWRhdGlvbk1lc3Nh
Z2UoKQogI2VuZGlmCiAKLSAgICBSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwodWludDY0X3Qg
ZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5
T3JpZ2luLCBTdHJpbmcgbWVzc2FnZSkgLT4gKGJvb2wgc2hvdWxkQ2xvc2UpIFN5bmNocm9ub3Vz
CisgICAgUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJp
dHlPcmlnaW4sIFN0cmluZyBtZXNzYWdlKSAtPiAoYm9vbCBzaG91bGRDbG9zZSkgU3luY2hyb25v
dXMKICAgICBQYWdlRGlkU2Nyb2xsKCkKLSAgICBSdW5PcGVuUGFuZWwodWludDY0X3QgZnJhbWVJ
RCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2lu
LCBzdHJ1Y3QgV2ViQ29yZTo6RmlsZUNob29zZXJTZXR0aW5ncyBwYXJhbWV0ZXJzKQorICAgIFJ1
bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBzdHJ1Y3QgV2ViQ29y
ZTo6RmlsZUNob29zZXJTZXR0aW5ncyBwYXJhbWV0ZXJzKQogICAgIFNob3dTaGFyZVNoZWV0KHN0
cnVjdCBXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJMIHNoYXJlRGF0YSwgdWludDY0X3Qg
Y2FsbGJhY2tJRCkKLSAgICBQcmludEZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpIC0+ICgpIFN5bmNo
cm9ub3VzCisgICAgUHJpbnRGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkg
LT4gKCkgU3luY2hyb25vdXMKICAgICBSdW5Nb2RhbCgpCiAgICAgTm90aWZ5U2Nyb2xsZXJUaHVt
YklzVmlzaWJsZUluUmVjdChXZWJDb3JlOjpJbnRSZWN0IHNjcm9sbGVyVGh1bWIpCiAgICAgUmVj
b21tZW5kZWRTY3JvbGxiYXJTdHlsZURpZENoYW5nZShpbnQzMl90IG5ld1N0eWxlKQpAQCAtMTAz
LDExICsxMDMsMTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgogCiAgICAg
IyBQb2xpY3kgbWVzc2FnZXMKLSAgICBEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1aW50NjRfdCBm
cmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlP
cmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZp
ZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNw
b25zZSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGJvb2wgY2FuU2hvd01JTUVU
eXBlLCBTdHJpbmcgZG93bmxvYWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktp
dDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bkFzeW5jKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBv
bGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0
OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdlYktp
dDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qs
IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UgcmVkaXJlY3RSZXNwb25zZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSwgdWludDY0
X3QgbGlzdGVuZXJJRCkKLSAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyh1
aW50NjRfdCBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3Ry
dWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIHN0
cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBPcHRp
b25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UsIFdlYktpdDo6VXNlckRhdGEgdXNlckRh
dGEpIC0+IChXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlm
aWVyLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgdWlu
dDY0X3QgbmV3TmF2aWdhdGlvbklELCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgT3B0
aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRhPiB3ZWJzaXRlUG9saWNpZXMpIFN5bmNo
cm9ub3VzCi0gICAgRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHVpbnQ2NF90IGZyYW1l
SUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdp
biwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwg
c3RydWN0IFdlYktpdDo6TmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGEs
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcgZnJhbWVOYW1lLCB1aW50
NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIFVuYWJsZVRv
SW1wbGVtZW50UG9saWN5KHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3Ig
ZXJyb3IsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIFN0cmluZyBkb3dubG9hZEF0dHJp
YnV0ZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAg
ICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVT
ZWN1cml0eU9yaWdpbiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNr
SWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0
aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJ
bmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG9y
aWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIElQQzo6Rm9y
bURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVk
aXJlY3RSZXNwb25zZSwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSwgdWludDY0X3QgbGlzdGVu
ZXJJRCkKKyAgICBEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgc3RydWN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lD
aGVja0lkZW50aWZpZXIgcG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25E
YXRhLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0
YSwgT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRh
IHVzZXJEYXRhKSAtPiAoV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyIHBvbGljeUNoZWNr
SWRlbnRpZmllciwgZW51bTp1aW50OF90IFdlYkNvcmU6OlBvbGljeUFjdGlvbiBwb2xpY3lBY3Rp
b24sIHVpbnQ2NF90IG5ld05hdmlnYXRpb25JRCwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2Fk
SUQsIE9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0YT4gd2Vic2l0ZVBvbGljaWVz
KSBTeW5jaHJvbm91cworICAgIERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIg
cG9saWN5Q2hlY2tJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0
YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qs
IFN0cmluZyBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEg
dXNlckRhdGEpCisgICAgVW5hYmxlVG9JbXBsZW1lbnRQb2xpY3koV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IsIFdlYktpdDo6VXNl
ckRhdGEgdXNlckRhdGEpCiAKICAgICAjIFByb2dyZXNzIG1lc3NhZ2VzCiAgICAgRGlkQ2hhbmdl
UHJvZ3Jlc3MoZG91YmxlIHZhbHVlKQpAQCAtMTE3LDUxICsxMTcsNTEgQEAgbWVzc2FnZXMgLT4g
V2ViUGFnZVByb3h5IHsKICAgICBTZXROZXR3b3JrUmVxdWVzdHNJblByb2dyZXNzKGJvb2wgbmV0
d29ya1JlcXVlc3RzSW5Qcm9ncmVzcykKIAogICAgICMgRnJhbWUgbGlmZXRpbWUgbWVzc2FnZXMK
LSAgICBEaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJRCkKLSAgICBEaWRDcmVhdGVT
dWJmcmFtZSh1aW50NjRfdCBmcmFtZUlEKQorICAgIERpZENyZWF0ZU1haW5GcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKKyAgICBEaWRDcmVhdGVTdWJmcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIAotICAgIERpZENyZWF0ZVdpbmRvdyh1aW50NjRf
dCBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6R2xvYmFsV2luZG93SWRlbnRpZmllciB3aW5kb3dJ
ZGVudGlmaWVyKQorICAgIERpZENyZWF0ZVdpbmRvdyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6Okdsb2JhbFdpbmRvd0lkZW50aWZpZXIgd2luZG93SWRl
bnRpZmllcikKIAogICAgICMgRnJhbWUgbG9hZCBtZXNzYWdlcwotICAgIERpZFN0YXJ0UHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklE
LCBVUkwgdXJsLCBVUkwgdW5yZWFjaGFibGVVUkwsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEp
Ci0gICAgRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUo
dWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBXaWxsUGVy
Zm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIHVybCwg
ZG91YmxlIGRlbGF5LCBlbnVtOmJvb2wgV2ViQ29yZTo6TG9ja0JhY2tGb3J3YXJkTGlzdCBsb2Nr
QmFja0ZvcndhcmRMaXN0KQotICAgIERpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCkKLSAgICBEaWRDaGFuZ2VQcm92aXNpb25hbFVSTEZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMIHVybCkKLSAgICBEaWRGYWls
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsIFN0cmluZyBwcm92aXNpb25hbFVSTCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJv
ciwgZW51bTpib29sIFdlYkNvcmU6OldpbGxDb250aW51ZUxvYWRpbmcgd2lsbENvbnRpbnVlTG9h
ZGluZywgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWRDb21taXRMb2FkRm9yRnJh
bWUodWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBTdHJpbmcgbWltZVR5
cGUsIGJvb2wgaGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCB1aW50MzJfdCBsb2FkVHlwZSwgV2Vi
Q29yZTo6Q2VydGlmaWNhdGVJbmZvIGNlcnRpZmljYXRlSW5mbywgYm9vbCBjb250YWluc1BsdWdp
bkRvY3VtZW50LCBPcHRpb25hbDxXZWJDb3JlOjpIYXNJbnNlY3VyZUNvbnRlbnQ+IGZvcmNlZEhh
c0luc2VjdXJlQ29udGVudCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWRGYWls
TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAg
ICBEaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlkRmluaXNo
TG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2Vi
S2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKLSAgICBEaWRGaXJzdExheW91dEZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlkRmlyc3RWaXN1
YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpVc2Vy
RGF0YSB1c2VyRGF0YSkKKyAgICBEaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIFVSTCB1
cmwsIFVSTCB1bnJlYWNoYWJsZVVSTCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBE
aWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWRGb3JGcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAg
ICBXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIFN0cmluZyB1cmwsIGRvdWJsZSBkZWxheSwgZW51bTpib29sIFdlYkNvcmU6
OkxvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCkKKyAgICBEaWRDYW5jZWxD
bGllbnRSZWRpcmVjdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQor
ICAgIERpZENoYW5nZVByb3Zpc2lvbmFsVVJMRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgVVJMIHVybCkKKyAgICBEaWRGYWls
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBTdHJpbmcgcHJvdmlzaW9uYWxVUkwsIFdlYkNvcmU6OlJl
c291cmNlRXJyb3IgZXJyb3IsIGVudW06Ym9vbCBXZWJDb3JlOjpXaWxsQ29udGludWVMb2FkaW5n
IHdpbGxDb250aW51ZUxvYWRpbmcsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlk
Q29tbWl0TG9hZEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIFN0cmluZyBtaW1lVHlwZSwgYm9vbCBoYXNDdXN0b21Db250ZW50
UHJvdmlkZXIsIHVpbnQzMl90IGxvYWRUeXBlLCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8gY2Vy
dGlmaWNhdGVJbmZvLCBib29sIGNvbnRhaW5zUGx1Z2luRG9jdW1lbnQsIE9wdGlvbmFsPFdlYkNv
cmU6Okhhc0luc2VjdXJlQ29udGVudD4gZm9yY2VkSGFzSW5zZWN1cmVDb250ZW50LCBXZWJLaXQ6
OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZEZhaWxMb2FkRm9yRnJhbWUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciBlcnJvciwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWRGaW5p
c2hEb2N1bWVudExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERp
ZEZpbmlzaExvYWRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBXZWJLaXQ6OlVzZXJEYXRhIHVzZXJEYXRhKQorICAgIERpZEZp
cnN0TGF5b3V0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYktp
dDo6VXNlckRhdGEgdXNlckRhdGEpCisgICAgRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0
Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYktpdDo6VXNlckRh
dGEgdXNlckRhdGEpCiAgICAgRGlkUmVhY2hMYXlvdXRNaWxlc3RvbmUoT3B0aW9uU2V0PFdlYkNv
cmU6OkxheW91dE1pbGVzdG9uZT4gbGF5b3V0TWlsZXN0b25lcykKLSAgICBEaWRSZWNlaXZlVGl0
bGVGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgdGl0bGUsIFdlYktpdDo6VXNlckRh
dGEgdXNlckRhdGEpCi0gICAgRGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2
NF90IGZyYW1lSUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlkUnVuSW5zZWN1
cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2Vy
RGF0YSkKLSAgICBEaWREZXRlY3RYU1NGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6
OlVzZXJEYXRhIHVzZXJEYXRhKQotICAgIERpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQzMl90IHR5cGUs
IFVSTCB1cmwsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCi0gICAgRGlkQ2hhbmdlTWFpbkRv
Y3VtZW50KHVpbnQ2NF90IGZyYW1lSUQpCi0gICAgRGlkRXhwbGljaXRPcGVuRm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgVVJMIHVybCkKKyAgICBEaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIHRpdGxlLCBXZWJLaXQ6OlVzZXJE
YXRhIHVzZXJEYXRhKQorICAgIERpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkK
KyAgICBEaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWREZXRlY3RYU1NG
b3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViS2l0OjpVc2VyRGF0
YSB1c2VyRGF0YSkKKyAgICBEaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWUoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMy
X3QgdHlwZSwgVVJMIHVybCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKKyAgICBEaWRDaGFu
Z2VNYWluRG9jdW1lbnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCisgICAgRGlk
RXhwbGljaXRPcGVuRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFVS
TCB1cmwpCiAgICAgRGlkRGVzdHJveU5hdmlnYXRpb24odWludDY0X3QgbmF2aWdhdGlvbklEKQog
CiAgICAgSGFzSW5zZWN1cmVDb250ZW50KCkgLT4gKGVudW06Ym9vbCBXZWJDb3JlOjpIYXNJbnNl
Y3VyZUNvbnRlbnQgaGFzSW5zZWN1cmVDb250ZW50KSBTeW5jaHJvbm91cwogCiAgICAgTWFpbkZy
YW1lUGx1Z2luSGFuZGxlc1BhZ2VTY2FsZUdlc3R1cmVEaWRDaGFuZ2UoYm9vbCBtYWluRnJhbWVQ
bHVnaW5IYW5kbGVzUGFnZVNjYWxlR2VzdHVyZSkKIAotICAgIEZyYW1lRGlkQmVjb21lRnJhbWVT
ZXQodWludDY0X3QgZnJhbWVJRCwgYm9vbCB2YWx1ZSkKKyAgICBGcmFtZURpZEJlY29tZUZyYW1l
U2V0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIHZhbHVlKQogCiAgICAg
IyBIaXN0b3J5IGNsaWVudCBtZXNzYWdlcy4KLSAgICBEaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9u
RGF0YShzdHJ1Y3QgV2ViS2l0OjpXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlIHN0b3JlLCB1aW50NjRf
dCBmcmFtZUlEKQotICAgIERpZFBlcmZvcm1DbGllbnRSZWRpcmVjdChTdHJpbmcgc291cmNlVVJM
U3RyaW5nLCBTdHJpbmcgZGVzdGluYXRpb25VUkxTdHJpbmcsIHVpbnQ2NF90IGZyYW1lSUQpCi0g
ICAgRGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KFN0cmluZyBzb3VyY2VVUkxTdHJpbmcsIFN0cmlu
ZyBkZXN0aW5hdGlvblVSTFN0cmluZywgdWludDY0X3QgZnJhbWVJRCkKLSAgICBEaWRVcGRhdGVI
aXN0b3J5VGl0bGUoU3RyaW5nIHRpdGxlLCBTdHJpbmcgdXJsLCB1aW50NjRfdCBmcmFtZUlEKQor
ICAgIERpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKHN0cnVjdCBXZWJLaXQ6OldlYk5hdmln
YXRpb25EYXRhU3RvcmUgc3RvcmUsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQor
ICAgIERpZFBlcmZvcm1DbGllbnRSZWRpcmVjdChTdHJpbmcgc291cmNlVVJMU3RyaW5nLCBTdHJp
bmcgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
KQorICAgIERpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdChTdHJpbmcgc291cmNlVVJMU3RyaW5nLCBT
dHJpbmcgZGVzdGluYXRpb25VUkxTdHJpbmcsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlEKQorICAgIERpZFVwZGF0ZUhpc3RvcnlUaXRsZShTdHJpbmcgdGl0bGUsIFN0cmluZyB1cmws
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogCiAgICAgIyBDdXN0b20gcmVwcmVz
ZW50YXRpb25zCiAgICAgRGlkRmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0b21Db250ZW50UHJvdmlk
ZXIoU3RyaW5nIHN1Z2dlc3RlZEZpbGVuYW1lLCBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkKIAog
ICAgICMgRm9ybXMgbWVzc2FnZXMKLSAgICBXaWxsU3VibWl0Rm9ybSh1aW50NjRfdCBmcmFtZUlE
LCB1aW50NjRfdCBzb3VyY2VGcmFtZUlELCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5n
Pj4gdGV4dEZpZWxkVmFsdWVzLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OlVzZXJEYXRh
IHVzZXJEYXRhKQorICAgIFdpbGxTdWJtaXRGb3JtKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgc291cmNlRnJhbWVJRCwgVmVjdG9yPHN0
ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+IHRleHRGaWVsZFZhbHVlcywgdWludDY0X3QgbGlzdGVu
ZXJJRCwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKIAogICAgICMgQ2FsbGJhY2sgbWVzc2Fn
ZXMKICAgICBWb2lkQ2FsbGJhY2soV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCkBAIC0y
NzUsMTggKzI3NSwxOCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2VuZGlmCiAKICAg
ICAjIERhdGFiYXNlIG1lc3NhZ2VzCi0gICAgRXhjZWVkZWREYXRhYmFzZVF1b3RhKHVpbnQ2NF90
IGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCBTdHJpbmcgZGF0YWJhc2VOYW1lLCBT
dHJpbmcgZGF0YWJhc2VEaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRf
dCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50
NjRfdCBleHBlY3RlZFVzYWdlKSAtPiAodWludDY0X3QgbmV3UXVvdGEpIFN5bmNocm9ub3VzCisg
ICAgRXhjZWVkZWREYXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllciwgU3RyaW5nIGRhdGFiYXNlTmFtZSwgU3RyaW5nIGRh
dGFiYXNlRGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVu
dE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhw
ZWN0ZWRVc2FnZSkgLT4gKHVpbnQ2NF90IG5ld1F1b3RhKSBTeW5jaHJvbm91cwogCiAgICAgIyBB
cHBsaWNhdGlvbiBjYWNoZSBtZXNzYWdlcwogICAgIFJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3Jp
Z2luUXVvdGEoU3RyaW5nIG9yaWdpbklkZW50aWZpZXIsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwg
dWludDY0X3QgdG90YWxCeXRlc05lZWRlZCkgLT4gKHVpbnQ2NF90IG5ld1F1b3RhKSBTeW5jaHJv
bm91cwogCiAgICAgIyBHZW9sb2NhdGlvbiBtZXNzYWdlcwotICAgIFJlcXVlc3RHZW9sb2NhdGlv
blBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBnZW9sb2NhdGlvbklELCB1aW50NjRfdCBmcmFt
ZUlELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKKyAgICBSZXF1ZXN0R2VvbG9jYXRpb25QZXJt
aXNzaW9uRm9yRnJhbWUodWludDY0X3QgZ2VvbG9jYXRpb25JRCwgV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQogICAgIAogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCiAgICAgIyBNZWRpYVN0ZWFtIG1lc3NhZ2VzCi0gICAgUmVxdWVzdFVz
ZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3Qg
ZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB1c2VyTWVkaWFEb2N1
bWVudE9yaWdpbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEg
dG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYVN0
cmVhbVJlcXVlc3QgcmVxdWVzdCkKLSAgICBFbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSh1
aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIHN0cnVj
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50
aWZpZXIpCisgICAgUmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1
c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVy
LCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcExldmVsRG9jdW1lbnRPcmln
aW5JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0IHJlcXVlc3Qp
CisgICAgRW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQs
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgc3RydWN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmll
cikKICAgICBCZWdpbk1vbml0b3JpbmdDYXB0dXJlRGV2aWNlcygpCiAjZW5kaWYKIApAQCAtNDcz
LDcgKzQ3Myw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShDT05URU5UX0ZJTFRFUklORykKLSAgICBDb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9y
RnJhbWUoV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyIHVuYmxvY2tIYW5kbGVy
LCB1aW50NjRfdCBmcmFtZUlEKQorICAgIENvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFt
ZShXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIgdW5ibG9ja0hhbmRsZXIsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogI2VuZGlmCiAKICAgICBJc1BsYXlpbmdN
ZWRpYURpZENoYW5nZSh1bnNpZ25lZCBzdGF0ZSwgdWludDY0X3Qgc291cmNlRWxlbWVudElEKQpA
QCAtNTM5LDcgKzUzOSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgTG9hZFN5
bmNocm9ub3VzVVJMU2NoZW1lVGFzayhzdHJ1Y3QgV2ViS2l0OjpVUkxTY2hlbWVUYXNrUGFyYW1l
dGVycyBwYXJhbWV0ZXJzKSAtPiAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgVmVjdG9yPGNoYXI+IGRhdGEpIFN5bmNocm9u
b3VzCiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQotICAgIFNob3VsZEFsbG93RGV2
aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3ModWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW4sIGJvb2wgbWF5UHJvbXB0KSAtPiAoZW51
bTp1aW50OF90IFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3Rh
dGUgcGVybWlzc2lvblN0YXRlKSBBc3luYworICAgIFNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRp
b25BbmRNb3Rpb25BY2Nlc3MoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVj
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luLCBib29sIG1heVByb21wdCkgLT4g
KGVudW06dWludDhfdCBXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lv
blN0YXRlIHBlcm1pc3Npb25TdGF0ZSkgQXN5bmMKICNlbmRpZgogCiAjaWYgRU5BQkxFKEFUVEFD
SE1FTlRfRUxFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwCmluZGV4IGUxNjkxMzdmNTM4OWQzMGJiOGIxMWIzYThlMWY1MGNhNDNhYTA2ZWQuLjk1YjU4
NjM5ZjNjNDBjYzYzMDBhNDRmMmMwNDQ5ZWZmZWY4YWQxMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtODI3LDI1ICs4MjcsMjUgQEAgdm9pZCBX
ZWJQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqIGxhdW5j
aGVyLCBJUEM6OkNvbm5lY3QKICNlbmRpZgogfQogCi1XZWJGcmFtZVByb3h5KiBXZWJQcm9jZXNz
UHJveHk6OndlYkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpIGNvbnN0CitXZWJGcmFtZVByb3h5KiBX
ZWJQcm9jZXNzUHJveHk6OndlYkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSBjb25zdAog
ewogICAgIGlmICghV2ViRnJhbWVQcm94eU1hcDo6aXNWYWxpZEtleShmcmFtZUlEKSkKLSAgICAg
ICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgcmV0dXJuIG1fZnJh
bWVNYXAuZ2V0KGZyYW1lSUQpOwogfQogCi1ib29sIFdlYlByb2Nlc3NQcm94eTo6Y2FuQ3JlYXRl
RnJhbWUodWludDY0X3QgZnJhbWVJRCkgY29uc3QKK2Jvb2wgV2ViUHJvY2Vzc1Byb3h5OjpjYW5D
cmVhdGVGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkgY29uc3QKIHsKICAgICByZXR1cm4g
V2ViRnJhbWVQcm94eU1hcDo6aXNWYWxpZEtleShmcmFtZUlEKSAmJiAhbV9mcmFtZU1hcC5jb250
YWlucyhmcmFtZUlEKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmZyYW1lQ3JlYXRlZCh1
aW50NjRfdCBmcmFtZUlELCBXZWJGcmFtZVByb3h5JiBmcmFtZVByb3h5KQordm9pZCBXZWJQcm9j
ZXNzUHJveHk6OmZyYW1lQ3JlYXRlZChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViRnJhbWVQ
cm94eSYgZnJhbWVQcm94eSkKIHsKICAgICBtX2ZyYW1lTWFwLnNldChmcmFtZUlELCAmZnJhbWVQ
cm94eSk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWREZXN0cm95RnJhbWUodWludDY0
X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWREZXN0cm95RnJhbWUoRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQpCiB7CiAgICAgLy8gSWYgdGhlIHBhZ2UgaXMgY2xvc2VkIGJlZm9y
ZSBpdCBoYXMgaGFkIHRoZSBjaGFuY2UgdG8gc2VuZCB0aGUgRGlkQ3JlYXRlTWFpbkZyYW1lIG1l
c3NhZ2UKICAgICAvLyBiYWNrIHRvIHRoZSBVSVByb2Nlc3MsIHRoZW4gdGhlIGZyYW1lRGVzdHJv
eWVkIG1lc3NhZ2Ugd2lsbCBzdGlsbCBiZSByZWNlaXZlZCBiZWNhdXNlIGl0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDMwMDk2ZGQzMDg1NDhiODkwNDlj
ODM1MTBlZWE3MWJiMDU5NzZmZmMuLjE4ZjQ4ODBhMGJiMmQ0ZDgzZDJmYjZjNTk3Yzg3YzdjZGQ2
ZWM4OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0z
OCw2ICszOCw3IEBACiAjaW5jbHVkZSAiVmlzaWJsZVdlYlBhZ2VDb3VudGVyLmgiCiAjaW5jbHVk
ZSAiV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94
eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9NZXNzYWdlUG9ydElkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVu
dGlmaWVyLmg+CkBAIC05Nyw3ICs5OCw3IEBAIGVudW0gY2xhc3MgQWxsb3dQcm9jZXNzQ2FjaGlu
ZyB7IE5vLCBZZXMgfTsKIAogY2xhc3MgV2ViUHJvY2Vzc1Byb3h5IDogcHVibGljIEF1eGlsaWFy
eVByb2Nlc3NQcm94eSwgcHVibGljIFJlc3BvbnNpdmVuZXNzVGltZXI6OkNsaWVudCwgcHVibGlj
IFRocmVhZFNhZmVSZWZDb3VudGVkPFdlYlByb2Nlc3NQcm94eT4sIHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxXZWJQcm9jZXNzUHJveHk+LCBwcml2YXRlIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQgewog
cHVibGljOgotICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYkZyYW1lUHJv
eHk+PiBXZWJGcmFtZVByb3h5TWFwOworICAgIHR5cGVkZWYgSGFzaE1hcDxXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIFJlZlB0cjxXZWJGcmFtZVByb3h5Pj4gV2ViRnJhbWVQcm94eU1hcDsKICAg
ICB0eXBlZGVmIEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYlBhZ2VQcm94eSo+
IFdlYlBhZ2VQcm94eU1hcDsKICAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxB
UEk6OlVzZXJJbml0aWF0ZWRBY3Rpb24+PiBVc2VySW5pdGlhdGVkQWN0aW9uTWFwOwogCkBAIC0x
NjQsOSArMTY1LDkgQEAgcHVibGljOgogICAgIFJlc3BvbnNpdmVuZXNzVGltZXImIHJlc3BvbnNp
dmVuZXNzVGltZXIoKSB7IHJldHVybiBtX3Jlc3BvbnNpdmVuZXNzVGltZXI7IH0KICAgICBib29s
IGlzUmVzcG9uc2l2ZSgpIGNvbnN0OwogCi0gICAgV2ViRnJhbWVQcm94eSogd2ViRnJhbWUodWlu
dDY0X3QpIGNvbnN0OwotICAgIGJvb2wgY2FuQ3JlYXRlRnJhbWUodWludDY0X3QgZnJhbWVJRCkg
Y29uc3Q7Ci0gICAgdm9pZCBmcmFtZUNyZWF0ZWQodWludDY0X3QsIFdlYkZyYW1lUHJveHkmKTsK
KyAgICBXZWJGcmFtZVByb3h5KiB3ZWJGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpIGNv
bnN0OworICAgIGJvb2wgY2FuQ3JlYXRlRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKSBj
b25zdDsKKyAgICB2b2lkIGZyYW1lQ3JlYXRlZChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdl
YkZyYW1lUHJveHkmKTsKICAgICB2b2lkIGRpc2Nvbm5lY3RGcmFtZXNGcm9tUGFnZShXZWJQYWdl
UHJveHkqKTsgLy8gSW5jbHVkaW5nIG1haW4gZnJhbWUuCiAgICAgc2l6ZV90IGZyYW1lQ291bnRJ
blBhZ2UoV2ViUGFnZVByb3h5KikgY29uc3Q7IC8vIEluY2x1ZGluZyBtYWluIGZyYW1lLgogCkBA
IC0zMzUsNyArMzM2LDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICAvLyBJUEMgbWVzc2Fn
ZSBoYW5kbGVycy4KICAgICB2b2lkIHVwZGF0ZUJhY2tGb3J3YXJkSXRlbShjb25zdCBCYWNrRm9y
d2FyZExpc3RJdGVtU3RhdGUmKTsKLSAgICB2b2lkIGRpZERlc3Ryb3lGcmFtZSh1aW50NjRfdCk7
CisgICAgdm9pZCBkaWREZXN0cm95RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKICAg
ICB2b2lkIGRpZERlc3Ryb3lVc2VyR2VzdHVyZVRva2VuKHVpbnQ2NF90KTsKIAogICAgIGJvb2wg
Y2FuQmVBZGRlZFRvV2ViUHJvY2Vzc0NhY2hlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZjNkNWU5MzFl
NmRlZTkwMmE0YWM1ZTVmYzViMTBkZDQ2MTViMTVkMC4uMzJiYWZlYTllMTA5NThjMjVjZDE5NGRh
MTg0NTM2YWQwOTNmNzUyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjIsNyArMjIsNyBAQAogCiBtZXNzYWdlcyAt
PiBXZWJQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogICAgIFVwZGF0ZUJhY2tGb3J3YXJk
SXRlbShzdHJ1Y3QgV2ViS2l0OjpCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUgYmFja0ZvcndhcmRM
aXN0SXRlbVN0YXRlKQotICAgIERpZERlc3Ryb3lGcmFtZSh1aW50NjRfdCBmcmFtZUlEKSAKKyAg
ICBEaWREZXN0cm95RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIAogCiAg
ICAgRGlkRGVzdHJveVVzZXJHZXN0dXJlVG9rZW4odWludDY0X3QgdXNlckdlc3R1cmVUb2tlbklE
KSAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQppbmRl
eCA2ODExZTg3YTRhNDIxMDA1YmQ5NGE3YWMyMTY1NDNlY2MwMGE3N2ZjLi5jMjk5MjE0NThhZjAx
ZmQ5N2E0MDA5MmM3MTNmNjdjNDFmZjc3ZTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlldy5tbQpAQCAtNzAxLDkgKzcwMSw5IEBAIC0gKE5TVUludGVnZXIp
X3drX3BhZ2VDb3VudEZvclByaW50Rm9ybWF0dGVyOihfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIg
KilwcmludEZvCiAgICAgaWYgKF9pc1ByaW50aW5nVG9QREYpCiAgICAgICAgIHJldHVybiAwOwog
Ci0gICAgdWludDY0X3QgZnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRDsKICAgICBpZiAoX1dLRnJhbWVIYW5kbGUgKmhhbmRsZSA9IHByaW50Rm9ybWF0dGVyLmZy
YW1lVG9QcmludCkKLSAgICAgICAgZnJhbWVJRCA9IGhhbmRsZS5fZnJhbWVJRDsKKyAgICAgICAg
ZnJhbWVJRCA9IFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21JRChoYW5kbGUuX2ZyYW1lSUQp
OwogICAgIGVsc2UgaWYgKGF1dG8gbWFpbkZyYW1lID0gX3BhZ2UtPm1haW5GcmFtZSgpKQogICAg
ICAgICBmcmFtZUlEID0gbWFpbkZyYW1lLT5mcmFtZUlEKCk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggYjAyODI0ODky
MDAzYTA0OTg5MjllNzA2YTU5MDQ1OWE0Zjg3MWFjZC4uODJkMzU0MjE3YjcwNjQyMDFlM2Q3YjA3
NmU1YjA1OWI5NjAxMWNmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2Vi
UGFnZVByb3h5SU9TLm1tCkBAIC0xMDY2LDcgKzEwNjYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
aGFuZGxlU21hcnRNYWduaWZpY2F0aW9uSW5mb3JtYXRpb25Gb3JQb3RlbnRpYWxUYXAodWludDY0
X3QgcgogICAgIHBhZ2VDbGllbnQoKS5oYW5kbGVTbWFydE1hZ25pZmljYXRpb25JbmZvcm1hdGlv
bkZvclBvdGVudGlhbFRhcChyZXF1ZXN0SUQsIHJlbmRlclJlY3QsIGZpdEVudGlyZVJlY3QsIHZp
ZXdwb3J0TWluaW11bVNjYWxlLCB2aWV3cG9ydE1heGltdW1TY2FsZSk7CiB9CiAKLXVpbnQzMl90
IFdlYlBhZ2VQcm94eTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYodWludDY0
X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIERyYXdUb1BERkNhbGxiYWNr
OjpDYWxsYmFja0Z1bmN0aW9uJiYgY2FsbGJhY2spCit1aW50MzJfdCBXZWJQYWdlUHJveHk6OmNv
bXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgRHJhd1RvUERGQ2FsbGJhY2s6OkNhbGxiYWNr
RnVuY3Rpb24mJiBjYWxsYmFjaykKIHsKICAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpIHsK
ICAgICAgICAgY2FsbGJhY2soSVBDOjpEYXRhUmVmZXJlbmNlKCksIENhbGxiYWNrQmFzZTo6RXJy
b3I6Ok93bmVyV2FzSW52YWxpZGF0ZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNw
cAppbmRleCBlNjM1M2NjZGQ1NGFkZmE1YWE1OTA1Yjg5NzMwMzRiYzFjZTk1NmYyLi5iYmUyNTY1
MDgzOWVlMDM1M2Q3ZjAzYzZjNzg0ZjM1YzNhYmJmMDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vz
c2lvblByb3h5LmNwcApAQCAtMTQzLDcgKzE0Myw3IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGV2YWx1
YXRlSmF2YVNjcmlwdENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBm
CiAgICAgaWYgKCFhdXRvbWF0aW9uU2Vzc2lvblByb3h5KQogICAgICAgICByZXR1cm4gSlNWYWx1
ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiAKLSAgICB1aW50NjRfdCBmcmFtZUlEID0gSlNWYWx1
ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKTsKKyAgICBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCA9IFdlYkNvcmU6OmZyYW1lSWRlbnRpZmllckZyb21J
RChKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pKTsKICAg
ICB1aW50NjRfdCBjYWxsYmFja0lEID0gSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50
c1sxXSwgZXhjZXB0aW9uKTsKICAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKEpTVmFsdWVUb1N0
cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzJdLCBleGNlcHRpb24pKTsKIApAQCAtMjIwLDcg
KzIyMCw3IEBAIFdlYkNvcmU6OkVsZW1lbnQqIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmVs
ZW1lbnRGb3JOb2RlSGFuZGxlKFdlYkZyYW1lJiBmcmFtCiAKIHZvaWQgV2ViQXV0b21hdGlvblNl
c3Npb25Qcm94eTo6ZGlkQ2xlYXJXaW5kb3dPYmplY3RGb3JGcmFtZShXZWJGcmFtZSYgZnJhbWUp
CiB7Ci0gICAgdWludDY0X3QgZnJhbWVJRCA9IGZyYW1lLmZyYW1lSUQoKTsKKyAgICBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCA9IGZyYW1lLmZyYW1lSUQoKTsKICAgICBpZiAoSlNP
YmplY3RSZWYgc2NyaXB0T2JqZWN0ID0gbV93ZWJGcmFtZVNjcmlwdE9iamVjdE1hcC50YWtlKGZy
YW1lSUQpKQogICAgICAgICBKU1ZhbHVlVW5wcm90ZWN0KGZyYW1lLmpzQ29udGV4dCgpLCBzY3Jp
cHRPYmplY3QpOwogCkBAIC0yMzIsNyArMjMyLDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lv
blByb3h5OjpkaWRDbGVhcldpbmRvd09iamVjdEZvckZyYW1lKFdlYkZyYW1lJiBmcmFtZSkKICAg
ICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb246OkRpZEV2YWx1YXRlSmF2YVNjcmlw
dEZ1bmN0aW9uKGNhbGxiYWNrSUQsIGVycm9yTWVzc2FnZSwgZXJyb3JUeXBlKSwgMCk7CiB9CiAK
LXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rp
b24oV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBTdHJpbmcmIGZ1bmN0aW9uLCBWZWN0b3I8U3RyaW5nPiBhcmd1bWVudHMsIGJvb2wgZXhwZWN0
c0ltcGxpY2l0Q2FsbGJhY2tBcmd1bWVudCwgaW50IGNhbGxiYWNrVGltZW91dCwgdWludDY0X3Qg
Y2FsbGJhY2tJRCkKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZXZhbHVhdGVKYXZh
U2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBPcHRpb25hbDxX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IG9wdGlvbmFsRnJhbWVJRCwgY29uc3QgU3RyaW5nJiBm
dW5jdGlvbiwgVmVjdG9yPFN0cmluZz4gYXJndW1lbnRzLCBib29sIGV4cGVjdHNJbXBsaWNpdENh
bGxiYWNrQXJndW1lbnQsIGludCBjYWxsYmFja1RpbWVvdXQsIHVpbnQ2NF90IGNhbGxiYWNrSUQp
CiB7CiAgICAgV2ViUGFnZSogcGFnZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlBhZ2Uo
cGFnZUlEKTsKICAgICBpZiAoIXBhZ2UpIHsKQEAgLTI0MCw3ICsyNDAsNyBAQCB2b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uUHJveHk6OmV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6
OlBhZ2VJZGVudGlmaQogICAgICAgICAgICAgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVlKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb246OkVycm9yTWVzc2FnZTo6V2luZG93Tm90Rm91bmQpKSwgMCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9Ci0gICAgV2ViRnJhbWUqIGZyYW1lID0gZnJhbWVJRCA/IFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpIDogcGFnZS0+bWFpbldlYkZyYW1lKCk7CisgICAg
V2ViRnJhbWUqIGZyYW1lID0gb3B0aW9uYWxGcmFtZUlEID8gV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkud2ViRnJhbWUoKm9wdGlvbmFsRnJhbWVJRCkgOiBwYWdlLT5tYWluV2ViRnJhbWUoKTsKICAg
ICBpZiAoIWZyYW1lKSB7CiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFBy
b2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpE
aWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihjYWxsYmFja0lELCB7IH0sCiAgICAgICAgICAg
ICBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0YW50
VmFsdWUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JNZXNzYWdlOjpGcmFt
ZU5vdEZvdW5kKSksIDApOwpAQCAtMjUwLDcgKzI1MCw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNl
c3Npb25Qcm94eTo6ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6UGFnZUlkZW50
aWZpCiAgICAgSlNPYmplY3RSZWYgc2NyaXB0T2JqZWN0ID0gc2NyaXB0T2JqZWN0Rm9yRnJhbWUo
KmZyYW1lKTsKICAgICBBU1NFUlQoc2NyaXB0T2JqZWN0KTsKIAotICAgIGZyYW1lSUQgPSBmcmFt
ZS0+ZnJhbWVJRCgpOworICAgIGF1dG8gZnJhbWVJRCA9IGZyYW1lLT5mcmFtZUlEKCk7CiAgICAg
SlNWYWx1ZVJlZiBleGNlcHRpb24gPSBudWxscHRyOwogICAgIEpTR2xvYmFsQ29udGV4dFJlZiBj
b250ZXh0ID0gZnJhbWUtPmpzQ29udGV4dCgpOwogCkBAIC0yNjMsNyArMjYzLDcgQEAgdm9pZCBX
ZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihXZWJD
b3JlOjpQYWdlSWRlbnRpZmkKICAgICAgICAgdG9KU1ZhbHVlKGNvbnRleHQsIGZ1bmN0aW9uKSwK
ICAgICAgICAgdG9KU0FycmF5KGNvbnRleHQsIGFyZ3VtZW50cywgdG9KU1ZhbHVlLCAmZXhjZXB0
aW9uKSwKICAgICAgICAgSlNWYWx1ZU1ha2VCb29sZWFuKGNvbnRleHQsIGV4cGVjdHNJbXBsaWNp
dENhbGxiYWNrQXJndW1lbnQpLAotICAgICAgICBKU1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCBm
cmFtZUlEKSwKKyAgICAgICAgSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgZnJhbWVJRC50b1VJ
bnQ2NCgpKSwKICAgICAgICAgSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgY2FsbGJhY2tJRCks
CiAgICAgICAgIEpTT2JqZWN0TWFrZUZ1bmN0aW9uV2l0aENhbGxiYWNrKGNvbnRleHQsIG51bGxw
dHIsIGV2YWx1YXRlSmF2YVNjcmlwdENhbGxiYWNrKSwKICAgICAgICAgSlNWYWx1ZU1ha2VOdW1i
ZXIoY29udGV4dCwgY2FsbGJhY2tUaW1lb3V0KQpAQCAtMzAwLDcgKzMwMCw3IEBAIHZvaWQgV2Vi
QXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29y
ZTo6UGFnZUlkZW50aWZpCiAgICAgZGlkRXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oZnJhbWVJ
RCwgY2FsbGJhY2tJRCwgZXhjZXB0aW9uTWVzc2FnZSwgZXJyb3JUeXBlKTsKIH0KIAotdm9pZCBX
ZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpkaWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbih1
aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBTdHJpbmcmIHJlc3Vs
dCwgY29uc3QgU3RyaW5nJiBlcnJvclR5cGUpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJv
eHk6OmRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCB1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBTdHJpbmcmIHJlc3VsdCwgY29u
c3QgU3RyaW5nJiBlcnJvclR5cGUpCiB7CiAgICAgYXV0byBmaW5kUmVzdWx0ID0gbV93ZWJGcmFt
ZVBlbmRpbmdFdmFsdWF0ZUphdmFTY3JpcHRDYWxsYmFja3NNYXAuZmluZChmcmFtZUlEKTsKICAg
ICBpZiAoZmluZFJlc3VsdCAhPSBtX3dlYkZyYW1lUGVuZGluZ0V2YWx1YXRlSmF2YVNjcmlwdENh
bGxiYWNrc01hcC5lbmQoKSkgewpAQCAtMzEzLDE1MyArMzEzLDE1MyBAQCB2b2lkIFdlYkF1dG9t
YXRpb25TZXNzaW9uUHJveHk6OmRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKHVpbnQ2NF90
IGZyYW1lSUQsCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb246OkRpZEV2YWx1YXRl
SmF2YVNjcmlwdEZ1bmN0aW9uKGNhbGxiYWNrSUQsIHJlc3VsdCwgZXJyb3JUeXBlKSwgMCk7CiB9
CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRo
T3JkaW5hbChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQs
IHVpbnQzMl90IG9yZGluYWwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5n
PiwgdWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhPcmRpbmFsKFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlE
LCB1aW50MzJfdCBvcmRpbmFsLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmlu
Zz4sIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4pPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQ
YWdlKHBhZ2VJRCk7CiAgICAgaWYgKCFwYWdlKSB7CiAgICAgICAgIFN0cmluZyB3aW5kb3dOb3RG
b3VuZEVycm9yVHlwZSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpn
ZXRFbnVtQ29uc3RhbnRWYWx1ZShJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJv
ck1lc3NhZ2U6OldpbmRvd05vdEZvdW5kKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIod2lu
ZG93Tm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5k
b3dOb3RGb3VuZEVycm9yVHlwZSwgV1RGOjpudWxsb3B0KTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAogICAgIFN0cmluZyBmcmFtZU5vdEZvdW5kRXJyb3JUeXBlID0gSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVlKEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb246OkVycm9yTWVzc2FnZTo6RnJhbWVOb3RGb3VuZCk7CiAKLSAg
ICBXZWJGcmFtZSogZnJhbWUgPSBmcmFtZUlEID8gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2Vi
RnJhbWUoZnJhbWVJRCkgOiBwYWdlLT5tYWluV2ViRnJhbWUoKTsKKyAgICBXZWJGcmFtZSogZnJh
bWUgPSBmcmFtZUlEID8gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoKmZyYW1lSUQp
IDogcGFnZS0+bWFpbldlYkZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkgewotICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgV1RGOjpudWxsb3B0KTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAogICAgIFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWUgPSBmcmFt
ZS0+Y29yZUZyYW1lKCk7CiAgICAgaWYgKCFjb3JlRnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIFdURjo6bnVsbG9wdCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKICAgICBXZWJDb3JlOjpGcmFtZSogY29yZUNoaWxkRnJhbWUgPSBjb3Jl
RnJhbWUtPnRyZWUoKS5zY29wZWRDaGlsZChvcmRpbmFsKTsKICAgICBpZiAoIWNvcmVDaGlsZEZy
YW1lKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUs
IDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCBX
VEY6Om51bGxvcHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgV2ViRnJhbWUqIGNo
aWxkRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqY29yZUNoaWxkRnJhbWUpOwogICAg
IGlmICghY2hpbGRGcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZv
dW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3Vu
ZEVycm9yVHlwZSwgV1RGOjpudWxsb3B0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAg
IGNvbXBsZXRpb25IYW5kbGVyKFdURjo6bnVsbG9wdCwgY2hpbGRGcmFtZS0+ZnJhbWVJRCgpKTsK
IH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdp
dGhOb2RlSGFuZGxlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJh
bWVJRCwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9w
dGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2Vi
QXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhhbmRsZShX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcj4gZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRp
Zmllcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAgICAgaWYgKCFwYWdlKSB7CiAg
ICAgICAgIFN0cmluZyB3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSA9IEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1ZShJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OldpbmRvd05vdEZvdW5kKTsKLSAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIod2luZG93Tm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSwgV1RGOjpudWxsb3B0
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFN0cmluZyBmcmFtZU5vdEZvdW5kRXJy
b3JUeXBlID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1D
b25zdGFudFZhbHVlKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkVycm9yTWVzc2Fn
ZTo6RnJhbWVOb3RGb3VuZCk7CiAKLSAgICBXZWJGcmFtZSogZnJhbWUgPSBmcmFtZUlEID8gV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCkgOiBwYWdlLT5tYWluV2ViRnJh
bWUoKTsKKyAgICBXZWJGcmFtZSogZnJhbWUgPSBmcmFtZUlEID8gV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkud2ViRnJhbWUoKmZyYW1lSUQpIDogcGFnZS0+bWFpbldlYkZyYW1lKCk7CiAgICAgaWYg
KCFmcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JU
eXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlw
ZSwgV1RGOjpudWxsb3B0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFdlYkNvcmU6
OkVsZW1lbnQqIGNvcmVFbGVtZW50ID0gZWxlbWVudEZvck5vZGVIYW5kbGUoKmZyYW1lLCBub2Rl
SGFuZGxlKTsKICAgICBpZiAoIWlzPFdlYkNvcmU6OkhUTUxGcmFtZUVsZW1lbnRCYXNlPihjb3Jl
RWxlbWVudCkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9y
VHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5
cGUsIFdURjo6bnVsbG9wdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBXZWJDb3Jl
OjpGcmFtZSogY29yZUZyYW1lRnJvbUVsZW1lbnQgPSBkb3duY2FzdDxXZWJDb3JlOjpIVE1MRnJh
bWVFbGVtZW50QmFzZT4oKmNvcmVFbGVtZW50KS5jb250ZW50RnJhbWUoKTsKICAgICBpZiAoIWNv
cmVGcmFtZUZyb21FbGVtZW50KSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90
Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZv
dW5kRXJyb3JUeXBlLCBXVEY6Om51bGxvcHQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAg
ICAgV2ViRnJhbWUqIGZyYW1lRnJvbUVsZW1lbnQgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgq
Y29yZUZyYW1lRnJvbUVsZW1lbnQpOwogICAgIGlmICghZnJhbWVGcm9tRWxlbWVudCkgewotICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgV1RGOjpudWxsb3B0
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURjo6
bnVsbG9wdCwgZnJhbWVGcm9tRWxlbWVudC0+ZnJhbWVJRCgpKTsKIH0KIAotdm9pZCBXZWJBdXRv
bWF0aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBuYW1l
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIHVpbnQ2NF90KT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2
ZUNoaWxkRnJhbWVXaXRoTmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIE9wdGlv
bmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBuYW1l
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIE9wdGlvbmFsPFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlBh
Z2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAgICAg
aWYgKCFwYWdlKSB7CiAgICAgICAgIFN0cmluZyB3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSA9IElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1
ZShJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OldpbmRvd05v
dEZvdW5kKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIod2luZG93Tm90Rm91bmRFcnJvclR5
cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9yVHlw
ZSwgV1RGOjpudWxsb3B0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFN0cmluZyBm
cmFtZU5vdEZvdW5kRXJyb3JUeXBlID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhl
bHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVlKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b246OkVycm9yTWVzc2FnZTo6RnJhbWVOb3RGb3VuZCk7CiAKLSAgICBXZWJGcmFtZSogZnJhbWUg
PSBmcmFtZUlEID8gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCkgOiBw
YWdlLT5tYWluV2ViRnJhbWUoKTsKKyAgICBXZWJGcmFtZSogZnJhbWUgPSBmcmFtZUlEID8gV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoKmZyYW1lSUQpIDogcGFnZS0+bWFpbldlYkZy
YW1lKCk7CiAgICAgaWYgKCFmcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFt
ZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVO
b3RGb3VuZEVycm9yVHlwZSwgV1RGOjpudWxsb3B0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAogICAgIFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWUgPSBmcmFtZS0+Y29yZUZyYW1lKCk7CiAg
ICAgaWYgKCFjb3JlRnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RG
b3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91
bmRFcnJvclR5cGUsIFdURjo6bnVsbG9wdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAg
ICBXZWJDb3JlOjpGcmFtZSogY29yZUNoaWxkRnJhbWUgPSBjb3JlRnJhbWUtPnRyZWUoKS5zY29w
ZWRDaGlsZChuYW1lKTsKICAgICBpZiAoIWNvcmVDaGlsZEZyYW1lKSB7Ci0gICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUsIDApOworICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCBXVEY6Om51bGxvcHQpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCiAgICAgV2ViRnJhbWUqIGNoaWxkRnJhbWUgPSBXZWJGcmFtZTo6
ZnJvbUNvcmVGcmFtZSgqY29yZUNoaWxkRnJhbWUpOwogICAgIGlmICghY2hpbGRGcmFtZSkgewot
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSwgV1RGOjpudWxs
b3B0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdU
Rjo6bnVsbG9wdCwgY2hpbGRGcmFtZS0+ZnJhbWVJRCgpKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5OjpyZXNvbHZlUGFyZW50RnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlv
bmFsPFN0cmluZz4sIHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eTo6cmVzb2x2ZVBhcmVudEZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4sIE9wdGlvbmFsPFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlBh
Z2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAgICAg
aWYgKCFwYWdlKSB7CiAgICAgICAgIFN0cmluZyB3aW5kb3dOb3RGb3VuZEVycm9yVHlwZSA9IElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1
ZShJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OldpbmRvd05v
dEZvdW5kKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIod2luZG93Tm90Rm91bmRFcnJvclR5
cGUsIDApOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih3aW5kb3dOb3RGb3VuZEVycm9yVHlw
ZSwgV1RGOjpudWxsb3B0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFN0cmluZyBm
cmFtZU5vdEZvdW5kRXJyb3JUeXBlID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhl
bHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVlKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b246OkVycm9yTWVzc2FnZTo6RnJhbWVOb3RGb3VuZCk7CiAKLSAgICBXZWJGcmFtZSogZnJhbWUg
PSBmcmFtZUlEID8gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCkgOiBw
YWdlLT5tYWluV2ViRnJhbWUoKTsKKyAgICBXZWJGcmFtZSogZnJhbWUgPSBmcmFtZUlEID8gV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoKmZyYW1lSUQpIDogcGFnZS0+bWFpbldlYkZy
YW1lKCk7CiAgICAgaWYgKCFmcmFtZSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmcmFt
ZU5vdEZvdW5kRXJyb3JUeXBlLCAwKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVO
b3RGb3VuZEVycm9yVHlwZSwgV1RGOjpudWxsb3B0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAogICAgIFdlYkZyYW1lKiBwYXJlbnRGcmFtZSA9IGZyYW1lLT5wYXJlbnRGcmFtZSgpOwogICAg
IGlmICghcGFyZW50RnJhbWUpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RG
b3VuZEVycm9yVHlwZSwgMCk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZyYW1lTm90Rm91
bmRFcnJvclR5cGUsIFdURjo6bnVsbG9wdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAg
ICBjb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQsIHBhcmVudEZyYW1lLT5mcmFtZUlEKCkp
OwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmZvY3VzRnJhbWUoV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJBdXRv
bWF0aW9uU2Vzc2lvblByb3h5Ojpmb2N1c0ZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKQogewogICAg
IFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7
CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBXZWJGcmFtZSogZnJhbWUg
PSBmcmFtZUlEID8gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCkgOiBw
YWdlLT5tYWluV2ViRnJhbWUoKTsKKyAgICBXZWJGcmFtZSogZnJhbWUgPSBmcmFtZUlEID8gV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoKmZyYW1lSUQpIDogcGFnZS0+bWFpbldlYkZy
YW1lKCk7CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC01MjgsNyArNTI4
LDcgQEAgc3RhdGljIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udmVydFBvaW50RnJvbUZyYW1lQ2xp
ZW50VG9Sb290VmlldyhXZWJDb3JlOjpGcmFtZVYKICAgICByZXR1cm4gY2xpZW50UG9pbnQ7CiB9
CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Y29tcHV0ZUVsZW1lbnRMYXlvdXQo
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcg
bm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBDb29yZGluYXRlU3lzdGVt
IGNvb3JkaW5hdGVTeXN0ZW0sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5n
PiwgV2ViQ29yZTo6SW50UmVjdCwgT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Y29t
cHV0ZUVsZW1lbnRMYXlvdXQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBPcHRpb25h
bDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBi
b29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIENvb3JkaW5hdGVTeXN0ZW0gY29vcmRpbmF0ZVN5
c3RlbSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBXZWJDb3JlOjpJ
bnRSZWN0LCBPcHRpb25hbDxXZWJDb3JlOjpJbnRQb2ludD4sIGJvb2wpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewogICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53
ZWJQYWdlKHBhZ2VJRCk7CiAgICAgaWYgKCFwYWdlKSB7CkBAIC01MzcsNyArNTM3LDcgQEAgdm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpjb21wdXRlRWxlbWVudExheW91dChXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciBwYWcKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFdlYkZy
YW1lKiBmcmFtZSA9IGZyYW1lSUQgPyBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShm
cmFtZUlEKSA6IHBhZ2UtPm1haW5XZWJGcmFtZSgpOworICAgIFdlYkZyYW1lKiBmcmFtZSA9IGZy
YW1lSUQgPyBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZSgqZnJhbWVJRCkgOiBwYWdl
LT5tYWluV2ViRnJhbWUoKTsKICAgICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+Y29yZUZyYW1lKCkg
fHwgIWZyYW1lLT5jb3JlRnJhbWUoKS0+dmlldygpKSB7CiAgICAgICAgIFN0cmluZyBmcmFtZU5v
dEZvdW5kRXJyb3JUeXBlID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6
OmdldEVudW1Db25zdGFudFZhbHVlKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkVy
cm9yTWVzc2FnZTo6RnJhbWVOb3RGb3VuZCk7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZy
YW1lTm90Rm91bmRFcnJvclR5cGUsIHsgfSwgV1RGOjpudWxsb3B0LCBmYWxzZSk7CkBAIC02MzYs
NyArNjM2LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpjb21wdXRlRWxlbWVu
dExheW91dChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWcKICAgICBjb21wbGV0aW9uSGFuZGxl
cihXVEY6Om51bGxvcHQsIHJlc3VsdEVsZW1lbnRCb3VuZHMsIHJlc3VsdEluVmlld0NlbnRlclBv
aW50LCBpc09ic2N1cmVkKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Ojpz
ZWxlY3RPcHRpb25FbGVtZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0
X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0
aW9uYWw8U3RyaW5nPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkF1dG9tYXRpb25T
ZXNzaW9uUHJveHk6OnNlbGVjdE9wdGlvbkVsZW1lbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
cGFnZUlELCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFN0cmlu
ZyBub2RlSGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4pPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAgICAgaWYgKCFwYWdlKSB7CkBAIC02NDUsNyAr
NjQ1LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpzZWxlY3RPcHRpb25FbGVt
ZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2UKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIFdlYkZyYW1lKiBmcmFtZSA9IGZyYW1lSUQgPyBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS53ZWJGcmFtZShmcmFtZUlEKSA6IHBhZ2UtPm1haW5XZWJGcmFtZSgpOworICAgIFdlYkZyYW1l
KiBmcmFtZSA9IGZyYW1lSUQgPyBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZSgqZnJh
bWVJRCkgOiBwYWdlLT5tYWluV2ViRnJhbWUoKTsKICAgICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+
Y29yZUZyYW1lKCkgfHwgIWZyYW1lLT5jb3JlRnJhbWUoKS0+dmlldygpKSB7CiAgICAgICAgIFN0
cmluZyBmcmFtZU5vdEZvdW5kRXJyb3JUeXBlID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVlKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OkVycm9yTWVzc2FnZTo6RnJhbWVOb3RGb3VuZCk7CiAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGZyYW1lTm90Rm91bmRFcnJvclR5cGUpOwpAQCAtNzA0LDcgKzcwNCw3IEBAIHN0
YXRpYyBXZWJDb3JlOjpJbnRSZWN0IHNuYXBzaG90UmVjdEZvclNjcmVlbnNob3QoV2ViUGFnZSYg
cGFnZSwgV2ViQ29yZTo6RWxlbWVuCiAgICAgcmV0dXJuIHsgfTsKIH0KIAotdm9pZCBXZWJBdXRv
bWF0aW9uU2Vzc2lvblByb3h5Ojp0YWtlU2NyZWVuc2hvdChXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9s
bEludG9WaWV3SWZOZWVkZWQsIGJvb2wgY2xpcFRvVmlld3BvcnQsIHVpbnQ2NF90IGNhbGxiYWNr
SUQpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnRha2VTY3JlZW5zaG90KFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyPiBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVl
ZGVkLCBib29sIGNsaXBUb1ZpZXdwb3J0LCB1aW50NjRfdCBjYWxsYmFja0lEKQogewogICAgIFNo
YXJlYWJsZUJpdG1hcDo6SGFuZGxlIGhhbmRsZTsKIApAQCAtNzE1LDcgKzcxNSw3IEBAIHZvaWQg
V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6dGFrZVNjcmVlbnNob3QoV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgcGFnZUlELCB1CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBXZWJGcmFt
ZSogZnJhbWUgPSBmcmFtZUlEID8gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJh
bWVJRCkgOiBwYWdlLT5tYWluV2ViRnJhbWUoKTsKKyAgICBXZWJGcmFtZSogZnJhbWUgPSBmcmFt
ZUlEID8gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoKmZyYW1lSUQpIDogcGFnZS0+
bWFpbldlYkZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPmNvcmVGcmFtZSgpKSB7
CiAgICAgICAgIFN0cmluZyBmcmFtZU5vdEZvdW5kRXJyb3JUeXBlID0gSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVlKEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb246OkVycm9yTWVzc2FnZTo6RnJhbWVOb3RGb3VuZCk7CiAgICAg
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNl
bmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpEaWRUYWtlU2NyZWVuc2hvdChjYWxs
YmFja0lELCBoYW5kbGUsIGZyYW1lTm90Rm91bmRFcnJvclR5cGUpLCAwKTsKQEAgLTc1Miw3ICs3
NTIsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OnRha2VTY3JlZW5zaG90KFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkF1dG9tYXRp
b25TZXNzaW9uOjpEaWRUYWtlU2NyZWVuc2hvdChjYWxsYmFja0lELCBoYW5kbGUsIHsgfSksIDAp
OwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OmdldENvb2tpZXNGb3JGcmFt
ZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tp
ZT4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5
OjpnZXRDb29raWVzRm9yRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBPcHRp
b25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4pPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIFdlYlBhZ2UqIHBhZ2UgPSBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS53ZWJQYWdlKHBhZ2VJRCk7CiAgICAgaWYgKCFwYWdlKSB7CkBAIC03NjEsNyArNzYxLDcg
QEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpnZXRDb29raWVzRm9yRnJhbWUoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IFdlYkZyYW1lKiBmcmFtZSA9IGZyYW1lSUQgPyBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJG
cmFtZShmcmFtZUlEKSA6IHBhZ2UtPm1haW5XZWJGcmFtZSgpOworICAgIFdlYkZyYW1lKiBmcmFt
ZSA9IGZyYW1lSUQgPyBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZSgqZnJhbWVJRCkg
OiBwYWdlLT5tYWluV2ViRnJhbWUoKTsKICAgICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+Y29yZUZy
YW1lKCkgfHwgIWZyYW1lLT5jb3JlRnJhbWUoKS0+ZG9jdW1lbnQoKSkgewogICAgICAgICBTdHJp
bmcgZnJhbWVOb3RGb3VuZEVycm9yVHlwZSA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1ZShJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpFcnJvck1lc3NhZ2U6OkZyYW1lTm90Rm91bmQpOwogICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihmcmFtZU5vdEZvdW5kRXJyb3JUeXBlLCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPigp
KTsKQEAgLTc3Nyw3ICs3NzcsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6Omdl
dENvb2tpZXNGb3JGcmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSQogICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFdURjo6bnVsbG9wdCwgZm91bmRDb29raWVzKTsKIH0KIAotdm9pZCBXZWJB
dXRvbWF0aW9uU2Vzc2lvblByb3h5OjpkZWxldGVDb29raWUoV2ViQ29yZTo6UGFnZUlkZW50aWZp
ZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgY29va2llTmFtZSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZGVsZXRlQ29va2llKFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFt
ZUlELCBTdHJpbmcgY29va2llTmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxT
dHJpbmc+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQYWdlKiBwYWdlID0gV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkud2ViUGFnZShwYWdlSUQpOwogICAgIGlmICghcGFnZSkgewpA
QCAtNzg2LDcgKzc4Niw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6ZGVsZXRl
Q29va2llKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWluCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBXZWJGcmFtZSogZnJhbWUgPSBmcmFtZUlEID8gV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCkgOiBwYWdlLT5tYWluV2ViRnJhbWUoKTsKKyAg
ICBXZWJGcmFtZSogZnJhbWUgPSBmcmFtZUlEID8gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2Vi
RnJhbWUoKmZyYW1lSUQpIDogcGFnZS0+bWFpbldlYkZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSB8
fCAhZnJhbWUtPmNvcmVGcmFtZSgpIHx8ICFmcmFtZS0+Y29yZUZyYW1lKCktPmRvY3VtZW50KCkp
IHsKICAgICAgICAgU3RyaW5nIGZyYW1lTm90Rm91bmRFcnJvclR5cGUgPSBJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUoSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JNZXNzYWdlOjpGcmFtZU5vdEZvdW5kKTsKICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoZnJhbWVOb3RGb3VuZEVycm9yVHlwZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vz
c2lvblByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRv
bWF0aW9uU2Vzc2lvblByb3h5LmgKaW5kZXggMTE2NzY0NTI3N2RiYzE5MzBhNWE3YTU5N2RjYmMy
ZGYzZWNmNTVjOS4uYjZiYTc4ZGY0ODU3MGFiNGNjZTQyMTZmNDI2YWEwMTM2OThhZGViYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlv
blNlc3Npb25Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9u
L1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUg
IkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJDb29yZGluYXRlU3lzdGVtLmgiCiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvSlNCYXNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZp
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTUxLDcgKzUyLDcgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBkaWRDbGVhcldpbmRvd09iamVjdEZvckZyYW1lKFdlYkZyYW1lJik7CiAKLSAgICB2b2lkIGRp
ZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGNh
bGxiYWNrSUQsIGNvbnN0IFN0cmluZyYgcmVzdWx0LCBjb25zdCBTdHJpbmcmIGVycm9yVHlwZSk7
CisgICAgdm9pZCBkaWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFN0cmluZyYgcmVzdWx0LCBjb25z
dCBTdHJpbmcmIGVycm9yVHlwZSk7CiAKIHByaXZhdGU6CiAgICAgSlNPYmplY3RSZWYgc2NyaXB0
T2JqZWN0Rm9yRnJhbWUoV2ViRnJhbWUmKTsKQEAgLTYxLDIyICs2MiwyMiBAQCBwcml2YXRlOgog
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
Jikgb3ZlcnJpZGU7CiAKICAgICAvLyBDYWxsZWQgYnkgV2ViQXV0b21hdGlvblNlc3Npb25Qcm94
eSBtZXNzYWdlcwotICAgIHZvaWQgZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgZnVuY3Rpb24s
IFZlY3RvcjxTdHJpbmc+IGFyZ3VtZW50cywgYm9vbCBleHBlY3RzSW1wbGljaXRDYWxsYmFja0Fy
Z3VtZW50LCBpbnQgY2FsbGJhY2tUaW1lb3V0LCB1aW50NjRfdCBjYWxsYmFja0lEKTsKLSAgICB2
b2lkIHJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGluYWwoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG9yZGluYWwsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoT3B0aW9uYWw8U3RyaW5nPiwgdWludDY0X3QpPiYmKTsKLSAgICB2b2lkIHJlc29sdmVDaGls
ZEZyYW1lV2l0aE5vZGVIYW5kbGUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFN0cmluZyYgbm9kZUhhbmRsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChP
cHRpb25hbDxTdHJpbmc+LCB1aW50NjRfdCk+JiYpOwotICAgIHZvaWQgcmVzb2x2ZUNoaWxkRnJh
bWVXaXRoTmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgY29u
c3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFN0cmluZz4s
IHVpbnQ2NF90KT4mJik7Ci0gICAgdm9pZCByZXNvbHZlUGFyZW50RnJhbWUoV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0
aW9uYWw8U3RyaW5nPiwgdWludDY0X3QpPiYmKTsKLSAgICB2b2lkIGZvY3VzRnJhbWUoV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgY29tcHV0ZUVs
ZW1lbnRMYXlvdXQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIHVpbnQ2NF90IGZyYW1lSUQsIFN0
cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIENvb3JkaW5hdGVT
eXN0ZW0sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgV2ViQ29yZTo6
SW50UmVjdCwgT3B0aW9uYWw8V2ViQ29yZTo6SW50UG9pbnQ+LCBib29sKT4mJik7Ci0gICAgdm9p
ZCBzZWxlY3RPcHRpb25FbGVtZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCB1aW50NjRfdCBm
cmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25h
bDxTdHJpbmc+KT4mJik7Ci0gICAgdm9pZCB0YWtlU2NyZWVuc2hvdChXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG5vZGVIYW5kbGUsIGJvb2wgc2Nyb2xs
SW50b1ZpZXdJZk5lZWRlZCwgYm9vbCBjbGlwVG9WaWV3cG9ydCwgdWludDY0X3QgY2FsbGJhY2tJ
RCk7Ci0gICAgdm9pZCBnZXRDb29raWVzRm9yRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5n
PiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4pPiYmKTsKLSAgICB2b2lkIGRlbGV0ZUNvb2tpZShX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIGNvb2tpZU5h
bWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPik+JiYpOworICAgIHZv
aWQgZXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24oV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIE9w
dGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIGNvbnN0IFN0cmluZyYgZnVuY3Rpb24s
IFZlY3RvcjxTdHJpbmc+IGFyZ3VtZW50cywgYm9vbCBleHBlY3RzSW1wbGljaXRDYWxsYmFja0Fy
Z3VtZW50LCBpbnQgY2FsbGJhY2tUaW1lb3V0LCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2
b2lkIHJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGluYWwoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIHVpbnQzMl90IG9yZGluYWwsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgT3B0aW9uYWw8V2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyPik+JiYpOworICAgIHZvaWQgcmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9k
ZUhhbmRsZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyPiwgY29uc3QgU3RyaW5nJiBub2RlSGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPFN0cmluZz4sIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4p
PiYmKTsKKyAgICB2b2lkIHJlc29sdmVDaGlsZEZyYW1lV2l0aE5hbWUoV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBPcHRpb25h
bDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+KT4mJik7CisgICAgdm9pZCByZXNvbHZlUGFyZW50
RnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcj4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8U3RyaW5nPiwgT3B0aW9u
YWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPik+JiYpOworICAgIHZvaWQgZm9jdXNGcmFtZShX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
Pik7CisgICAgdm9pZCBjb21wdXRlRWxlbWVudExheW91dChXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgU3RyaW5nIG5vZGVIYW5kbGUs
IGJvb2wgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCwgQ29vcmRpbmF0ZVN5c3RlbSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBXZWJDb3JlOjpJbnRSZWN0LCBPcHRpb25h
bDxXZWJDb3JlOjpJbnRQb2ludD4sIGJvb2wpPiYmKTsKKyAgICB2b2lkIHNlbGVjdE9wdGlvbkVs
ZW1lbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcj4sIFN0cmluZyBub2RlSGFuZGxlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlv
bmFsPFN0cmluZz4pPiYmKTsKKyAgICB2b2lkIHRha2VTY3JlZW5zaG90KFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBTdHJpbmcgbm9k
ZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBib29sIGNsaXBUb1ZpZXdwb3J0
LCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIGdldENvb2tpZXNGb3JGcmFtZShXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+LCBWZWN0b3I8V2ViQ29yZTo6
Q29va2llPik+JiYpOworICAgIHZvaWQgZGVsZXRlQ29va2llKFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBTdHJpbmcgY29va2llTmFt
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxTdHJpbmc+KT4mJik7CiAKICAgICBT
dHJpbmcgbV9zZXNzaW9uSWRlbnRpZmllcjsKIAotICAgIEhhc2hNYXA8dWludDY0X3QsIEpTT2Jq
ZWN0UmVmPiBtX3dlYkZyYW1lU2NyaXB0T2JqZWN0TWFwOwotICAgIEhhc2hNYXA8dWludDY0X3Qs
IFZlY3Rvcjx1aW50NjRfdD4+IG1fd2ViRnJhbWVQZW5kaW5nRXZhbHVhdGVKYXZhU2NyaXB0Q2Fs
bGJhY2tzTWFwOworICAgIEhhc2hNYXA8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBKU09iamVj
dFJlZj4gbV93ZWJGcmFtZVNjcmlwdE9iamVjdE1hcDsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgVmVjdG9yPHVpbnQ2NF90Pj4gbV93ZWJGcmFtZVBlbmRpbmdFdmFsdWF0
ZUphdmFTY3JpcHRDYWxsYmFja3NNYXA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXV0
b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGQ3MmY4
OWQyNjM1OWNmMDFjY2ZkNTMxZTk2ZTAxZjQ0NDA5YWFmNTguLmZjNmQ5ZmQxNTU5YzFjZmE2NTIy
ZjE0ODQ2OTc5ODM5OGY2YWExOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eS5tZXNzYWdlcy5pbgpAQCAtMjEsMjEgKzIxLDIxIEBACiAjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIG1l
c3NhZ2VzIC0+IFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkgewotICAgIEV2YWx1YXRlSmF2YVNj
cmlwdEZ1bmN0aW9uKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJh
bWVJRCwgU3RyaW5nIGZ1bmN0aW9uLCBWZWN0b3I8U3RyaW5nPiBhcmd1bWVudHMsIGJvb2wgZXhw
ZWN0c0ltcGxpY2l0Q2FsbGJhY2tBcmd1bWVudCwgaW50IGNhbGxiYWNrVGltZW91dCwgdWludDY0
X3QgY2FsbGJhY2tJRCkKKyAgICBFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbihXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4g
ZnJhbWVJRCwgU3RyaW5nIGZ1bmN0aW9uLCBWZWN0b3I8U3RyaW5nPiBhcmd1bWVudHMsIGJvb2wg
ZXhwZWN0c0ltcGxpY2l0Q2FsbGJhY2tBcmd1bWVudCwgaW50IGNhbGxiYWNrVGltZW91dCwgdWlu
dDY0X3QgY2FsbGJhY2tJRCkKIAotICAgIFJlc29sdmVDaGlsZEZyYW1lV2l0aE9yZGluYWwoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBv
cmRpbmFsKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIHVpbnQ2NF90IGZyYW1lSUQp
IEFzeW5jCi0gICAgUmVzb2x2ZUNoaWxkRnJhbWVXaXRoTm9kZUhhbmRsZShXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlKSAt
PiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIHVpbnQ2NF90IGZyYW1lSUQpIEFzeW5jCi0g
ICAgUmVzb2x2ZUNoaWxkRnJhbWVXaXRoTmFtZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdl
SUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBuYW1lKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBl
cnJvclR5cGUsIHVpbnQ2NF90IGZyYW1lSUQpIEFzeW5jCi0gICAgUmVzb2x2ZVBhcmVudEZyYW1l
KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCkgLT4gKE9w
dGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCB1aW50NjRfdCBmcmFtZUlEKSBBc3luYworICAgIFJl
c29sdmVDaGlsZEZyYW1lV2l0aE9yZGluYWwoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIHVpbnQzMl90IG9y
ZGluYWwpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSwgT3B0aW9uYWw8V2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKSBBc3luYworICAgIFJlc29sdmVDaGlsZEZyYW1lV2l0
aE5vZGVIYW5kbGUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBPcHRpb25hbDxXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlKSAtPiAoT3B0
aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
cj4gZnJhbWVJRCkgQXN5bmMKKyAgICBSZXNvbHZlQ2hpbGRGcmFtZVdpdGhOYW1lKFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
PiBmcmFtZUlELCBTdHJpbmcgbmFtZSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBP
cHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQpIEFzeW5jCisgICAgUmVz
b2x2ZVBhcmVudEZyYW1lKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgT3B0aW9uYWw8
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBl
cnJvclR5cGUsIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCkgQXN5
bmMKIAotICAgIEZvY3VzRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCB1aW50
NjRfdCBmcmFtZUlEKQorICAgIEZvY3VzRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFn
ZUlELCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQpCiAKLSAgICBD
b21wdXRlRWxlbWVudExheW91dChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHVpbnQ2
NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVk
ZWQsIGVudW06dWludDhfdCBXZWJLaXQ6OkNvb3JkaW5hdGVTeXN0ZW0gY29vcmRpbmF0ZVN5c3Rl
bSkgLT4gKE9wdGlvbmFsPFN0cmluZz4gZXJyb3JUeXBlLCBXZWJDb3JlOjpJbnRSZWN0IHJlY3Qs
IE9wdGlvbmFsPFdlYkNvcmU6OkludFBvaW50PiBpblZpZXdDZW50ZXJQb2ludCwgYm9vbCBpc09i
c2N1cmVkKSBBc3luYworICAgIENvbXB1dGVFbGVtZW50TGF5b3V0KFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlE
LCBTdHJpbmcgbm9kZUhhbmRsZSwgYm9vbCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkLCBlbnVtOnVp
bnQ4X3QgV2ViS2l0OjpDb29yZGluYXRlU3lzdGVtIGNvb3JkaW5hdGVTeXN0ZW0pIC0+IChPcHRp
b25hbDxTdHJpbmc+IGVycm9yVHlwZSwgV2ViQ29yZTo6SW50UmVjdCByZWN0LCBPcHRpb25hbDxX
ZWJDb3JlOjpJbnRQb2ludD4gaW5WaWV3Q2VudGVyUG9pbnQsIGJvb2wgaXNPYnNjdXJlZCkgQXN5
bmMKIAotICAgIFNlbGVjdE9wdGlvbkVsZW1lbnQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFn
ZUlELCB1aW50NjRfdCBmcmFtZUlELCBTdHJpbmcgbm9kZUhhbmRsZSkgLT4gKE9wdGlvbmFsPFN0
cmluZz4gZXJyb3JUeXBlKSBBc3luYworICAgIFNlbGVjdE9wdGlvbkVsZW1lbnQoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgcGFnZUlELCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+
IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5
cGUpIEFzeW5jCiAKLSAgICBUYWtlU2NyZWVuc2hvdChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBw
YWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxlLCBib29sIHNjcm9sbElu
dG9WaWV3SWZOZWVkZWQsIGJvb2wgY2xpcFRvVmlld3BvcnQsIHVpbnQ2NF90IGNhbGxiYWNrSUQp
CisgICAgVGFrZVNjcmVlbnNob3QoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBPcHRp
b25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFN0cmluZyBub2RlSGFuZGxl
LCBib29sIHNjcm9sbEludG9WaWV3SWZOZWVkZWQsIGJvb2wgY2xpcFRvVmlld3BvcnQsIHVpbnQ2
NF90IGNhbGxiYWNrSUQpCiAKLSAgICBHZXRDb29raWVzRm9yRnJhbWUoV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlEKSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBl
cnJvclR5cGUsIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+IGNvb2tpZXMpIEFzeW5jCi0gICAgRGVs
ZXRlQ29va2llKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJ
RCwgU3RyaW5nIGNvb2tpZU5hbWUpIC0+IChPcHRpb25hbDxTdHJpbmc+IGVycm9yVHlwZSkgQXN5
bmMKKyAgICBHZXRDb29raWVzRm9yRnJhbWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlE
LCBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQpIC0+IChPcHRpb25h
bDxTdHJpbmc+IGVycm9yVHlwZSwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gY29va2llcykgQXN5
bmMKKyAgICBEZWxldGVDb29raWUoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBPcHRp
b25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQsIFN0cmluZyBjb29raWVOYW1l
KSAtPiAoT3B0aW9uYWw8U3RyaW5nPiBlcnJvclR5cGUpIEFzeW5jCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJv
Y2Vzc1BsdWdJbkZyYW1lLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbQppbmRleCAwOTk3NjM3MmYw
NzM3NTdlZWRiMTc0OTNkNzMxZmEwYTNkNDY2OGM2Li4yNTczZTZkNDg1OWU1ZTBjZmU0YTY3ZjVm
NGYzYmJhNmIzMGZlODY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9j
ZXNzUGx1Z0luRnJhbWUubW0KQEAgLTQ4LDcgKzQ4LDcgQEAgQGltcGxlbWVudGF0aW9uIFdLV2Vi
UHJvY2Vzc1BsdWdJbkZyYW1lIHsKIAogKyAoaW5zdGFuY2V0eXBlKWxvb2tVcEZyYW1lRnJvbUhh
bmRsZTooX1dLRnJhbWVIYW5kbGUgKiloYW5kbGUKIHsKLSAgICByZXR1cm4gd3JhcHBlcihXZWJL
aXQ6OldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGhhbmRsZS5fZnJhbWVJRCkpOwor
ICAgIHJldHVybiB3cmFwcGVyKFdlYktpdDo6V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJh
bWUoV2ViQ29yZTo6ZnJhbWVJZGVudGlmaWVyRnJvbUlEKGhhbmRsZS5fZnJhbWVJRCkpKTsKIH0K
IAogLSAodm9pZClkZWFsbG9jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0RnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdEZyYW1lLmNwcAppbmRleCBk
YTY3OWRiMWI0ODJmMmI5ZmY4NzhjNDRjMGM5MDhkY2Y5N2U3NGNjLi5hNGY1MmIyZTUwZmEyYzM3
YTE4MjljOWU0ZTI2ZjQ4NjkwZTc1NWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0RnJhbWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRGcmFtZS5j
cHAKQEAgLTc0LDcgKzc0LDcgQEAgZ3VpbnQ2NCB3ZWJraXRfZnJhbWVfZ2V0X2lkKFdlYktpdEZy
YW1lKiBmcmFtZSkKIHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfRlJBTUUo
ZnJhbWUpLCAwKTsKIAotICAgIHJldHVybiBmcmFtZS0+cHJpdi0+d2ViRnJhbWUtPmZyYW1lSUQo
KTsKKyAgICByZXR1cm4gZnJhbWUtPnByaXYtPndlYkZyYW1lLT5mcmFtZUlEKCkudG9VSW50NjQo
KTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKaW5kZXggYzQ4Y2RkODU3OTRkOTIxNjk5NTIwYzJkODM4
YTViNjcwZjNiMmZmMS4uNWRmYzQyNTc4ODRiYzI5MmE0ZGFlOGM0NDVlOTJiNzMyN2E5NmNhMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3Ry
YXRlZ3kuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRl
clN0cmF0ZWd5LmNwcApAQCAtMTU5LDcgKzE1OSw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6
OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMb2FkZXIsIENhY2hlZFJlc291
CiAKICAgICBXZWJSZXNvdXJjZUxvYWRlcjo6VHJhY2tpbmdQYXJhbWV0ZXJzIHRyYWNraW5nUGFy
YW1ldGVyczsKICAgICB0cmFja2luZ1BhcmFtZXRlcnMucGFnZUlEID0gZnJhbWVMb2FkZXJDbGll
bnQucGFnZUlEKCkudmFsdWVPcihQYWdlSWRlbnRpZmllciB7IH0pOwotICAgIHRyYWNraW5nUGFy
YW1ldGVycy5mcmFtZUlEID0gZnJhbWVMb2FkZXJDbGllbnQuZnJhbWVJRCgpLnZhbHVlT3IoMCk7
CisgICAgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQgPSBmcmFtZUxvYWRlckNsaWVudC5mcmFt
ZUlEKCkudmFsdWVPcihGcmFtZUlkZW50aWZpZXIgeyB9KTsKICAgICB0cmFja2luZ1BhcmFtZXRl
cnMucmVzb3VyY2VJRCA9IGlkZW50aWZpZXI7CiAgICAgYXV0byBzZXNzaW9uSUQgPSBmcmFtZUxv
YWRlckNsaWVudC5zZXNzaW9uSUQoKTsKIApAQCAtMTY4LDcgKzE2OCw3IEBAIHZvaWQgV2ViTG9h
ZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMb2FkZXIs
IENhY2hlZFJlc291CiAgICAgLy8gdGhlbiB3ZSBzaG91bGQgcmVtZW1iZXIgdGhlIFJlc291cmNl
TG9hZGVyIGluIG91ciByZWNvcmRzIGJ1dCBub3Qgc2NoZWR1bGUgaXQgaW4gdGhlIE5ldHdvcmtQ
cm9jZXNzLgogICAgIGlmIChyZXNvdXJjZUxvYWRlci5kb2N1bWVudExvYWRlcigpLT5zY2hlZHVs
ZUFyY2hpdmVMb2FkKHJlc291cmNlTG9hZGVyLCByZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkpKSB7
CiAgICAgICAgIExPRyhOZXR3b3JrU2NoZWR1bGluZywgIihXZWJQcm9jZXNzKSBXZWJMb2FkZXJT
dHJhdGVneTo6c2NoZWR1bGVMb2FkLCB1cmwgJyVzJyB3aWxsIGJlIGhhbmRsZWQgYXMgYW4gYXJj
aGl2ZSByZXNvdXJjZS4iLCByZXNvdXJjZUxvYWRlci51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0
YSgpKTsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNj
aGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgaGFuZGxlZCBhcyBhbiBhcmNoaXZlIHJlc291cmNlIChm
cmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBy
ZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tp
bmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJ
RCwgaWRlbnRpZmllcik7CisgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VM
b2FkZXIsICJzY2hlZHVsZUxvYWQ6IFVSTCB3aWxsIGJlIGhhbmRsZWQgYXMgYW4gYXJjaGl2ZSBy
ZXNvdXJjZSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQ
Ukl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1l
KCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0
ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmllcik7CiAgICAgICAgIG1fd2ViUmVzb3Vy
Y2VMb2FkZXJzLnNldChpZGVudGlmaWVyLCBXZWJSZXNvdXJjZUxvYWRlcjo6Y3JlYXRlKHJlc291
cmNlTG9hZGVyLCB0cmFja2luZ1BhcmFtZXRlcnMpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
QEAgLTE3NiwxNCArMTc2LDE0IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9h
ZChSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMb2FkZXIsIENhY2hlZFJlc291CiAKICAgICBpZiAo
cmVzb3VyY2VMb2FkZXIuZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS5t
YXliZUxvYWRSZXNvdXJjZShyZXNvdXJjZUxvYWRlciwgcmVzb3VyY2VMb2FkZXIucmVxdWVzdCgp
LCByZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkudXJsKCkpKSB7CiAgICAgICAgIExPRyhOZXR3b3Jr
U2NoZWR1bGluZywgIihXZWJQcm9jZXNzKSBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2Fk
LCB1cmwgJyVzJyB3aWxsIGJlIGxvYWRlZCBmcm9tIGFwcGxpY2F0aW9uIGNhY2hlLiIsIHJlc291
cmNlTG9hZGVyLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBi
ZSBsb2FkZWQgZnJvbSBhcHBsaWNhdGlvbiBjYWNoZSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAi
KSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9V
SW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIGlkZW50aWZpZXIpOworICAgICAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBV
Ukwgd2lsbCBiZSBsb2FkZWQgZnJvbSBhcHBsaWNhdGlvbiBjYWNoZSAoZnJhbWUgPSAlcCwgcGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUi
IFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5w
YWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwg
aWRlbnRpZmllcik7CiAgICAgICAgIG1fd2ViUmVzb3VyY2VMb2FkZXJzLnNldChpZGVudGlmaWVy
LCBXZWJSZXNvdXJjZUxvYWRlcjo6Y3JlYXRlKHJlc291cmNlTG9hZGVyLCB0cmFja2luZ1BhcmFt
ZXRlcnMpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChyZXNvdXJjZUxvYWRl
ci5yZXF1ZXN0KCkudXJsKCkucHJvdG9jb2xJc0RhdGEoKSkgewogICAgICAgICBMT0coTmV0d29y
a1NjaGVkdWxpbmcsICIoV2ViUHJvY2VzcykgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9h
ZCwgdXJsICclcycgd2lsbCBiZSBsb2FkZWQgYXMgZGF0YS4iLCByZXNvdXJjZUxvYWRlci51cmwo
KS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgbG9hZGVkIGFzIGRh
dGEgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0
cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5m
cmFtZUlELCBpZGVudGlmaWVyKTsKKyAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNv
dXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgbG9hZGVkIGFzIGRhdGEgKGZy
YW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJl
c291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCB0cmFja2lu
Z1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlE
LnRvVUludDY0KCksIGlkZW50aWZpZXIpOwogICAgICAgICBzdGFydExvY2FsTG9hZChyZXNvdXJj
ZUxvYWRlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xOTEsNyArMTkxLDcgQEAgdm9p
ZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiByZXNvdXJj
ZUxvYWRlciwgQ2FjaGVkUmVzb3UKICNpZiBVU0UoUVVJQ0tfTE9PSykKICAgICBpZiAoaXNRdWlj
a0xvb2tQcmV2aWV3VVJMKHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS51cmwoKSkpIHsKICAgICAg
ICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5nLCAiKFdlYlByb2Nlc3MpIFdlYkxvYWRlclN0cmF0ZWd5
OjpzY2hlZHVsZUxvYWQsIHVybCAnJXMnIHdpbGwgYmUgaGFuZGxlZCBhcyBhIFF1aWNrTG9vayBy
ZXNvdXJjZS4iLCByZXNvdXJjZUxvYWRlci51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsK
LSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxl
TG9hZDogVVJMIHdpbGwgYmUgaGFuZGxlZCBhcyBhIFF1aWNrTG9vayByZXNvdXJjZSAoZnJhbWUg
PSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3Vy
Y2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFy
YW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIGlk
ZW50aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVy
LCAic2NoZWR1bGVMb2FkOiBVUkwgd2lsbCBiZSBoYW5kbGVkIGFzIGEgUXVpY2tMb29rIHJlc291
cmNlIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2
NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwg
dHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMu
ZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsKICAgICAgICAgc3RhcnRMb2NhbExvYWQo
cmVzb3VyY2VMb2FkZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjAyLDcgKzIwMiw3
IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciYg
cmVzb3VyY2VMb2FkZXIsIENhY2hlZFJlc291CiAgICAgLy8gaHR0cHM6Ly9ibG9ncy5nbm9tZS5v
cmcvYWxleGwvMjAxMi8wMS8yNi9yZXNvdXJjZXMtaW4tZ2xpYi8KICAgICBpZiAocmVzb3VyY2VM
b2FkZXIucmVxdWVzdCgpLnVybCgpLnByb3RvY29sSXMoInJlc291cmNlIikpIHsKICAgICAgICAg
TE9HKE5ldHdvcmtTY2hlZHVsaW5nLCAiKFdlYlByb2Nlc3MpIFdlYkxvYWRlclN0cmF0ZWd5Ojpz
Y2hlZHVsZUxvYWQsIHVybCAnJXMnIHdpbGwgYmUgaGFuZGxlZCBhcyBhIEdSZXNvdXJjZS4iLCBy
ZXNvdXJjZUxvYWRlci51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIHdp
bGwgYmUgaGFuZGxlZCBhcyBhIEdSZXNvdXJjZSAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIs
IHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50
NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIGlkZW50aWZpZXIpOworICAgICAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwg
d2lsbCBiZSBoYW5kbGVkIGFzIGEgR1Jlc291cmNlIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIp
IiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJ
bnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlmaWVy
KTsKICAgICAgICAgc3RhcnRMb2NhbExvYWQocmVzb3VyY2VMb2FkZXIpOwogICAgICAgICByZXR1
cm47CiAgICAgfQpAQCAtMjEyLDExICsyMTIsMTEgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6
c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUxvYWRlciwgQ2FjaGVkUmVzb3UK
ICAgICBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXI6OnNpbmdsZXRvbigpLmhhbmRsZUZldGNoKHJl
c291cmNlTG9hZGVyLCBzZXNzaW9uSUQsIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QsIFt0aGlzLCB0cmFja2luZ1BhcmFtZXRlcnMsIGlkZW50aWZpZXIsIHNlc3Npb25J
RCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgbWF4aW11bUJ1ZmZl
cmluZ1RpbWUgPSBtYXhpbXVtQnVmZmVyaW5nVGltZShyZXNvdXJjZSksIHJlc291cmNlTG9hZGVy
ID0gbWFrZVJlZihyZXNvdXJjZUxvYWRlcildIChTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OlJl
c3VsdCByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0ICE9IFNlcnZpY2VXb3Jr
ZXJDbGllbnRGZXRjaDo6UmVzdWx0OjpVbmhhbmRsZWQpIHsKICAgICAgICAgICAgIExPRyhOZXR3
b3JrU2NoZWR1bGluZywgIihXZWJQcm9jZXNzKSBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVM
b2FkLCB1cmwgJyVzJyB3aWxsIGJlIHNjaGVkdWxlZCB0aHJvdWdoIFNlcnZpY2VXb3JrZXIgaGFu
ZGxlIGZldGNoIGFsZ29yaXRobSIsIHJlc291cmNlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRp
bjEoKS5kYXRhKCkpOwotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJj
ZUxvYWRlci5nZXQoKSwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgc2NoZWR1bGVkIHRocm91
Z2ggU2VydmljZVdvcmtlciBoYW5kbGUgZmV0Y2ggYWxnb3JpdGhtIChmcmFtZSA9ICVwLCBwYWdl
SUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIg
UFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXItPmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5w
YWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQsIGlkZW50aWZpZXIp
OworICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlci5nZXQo
KSwgInNjaGVkdWxlTG9hZDogVVJMIHdpbGwgYmUgc2NoZWR1bGVkIHRocm91Z2ggU2VydmljZVdv
cmtlciBoYW5kbGUgZmV0Y2ggYWxnb3JpdGhtIChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1
NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwg
cmVzb3VyY2VMb2FkZXItPmZyYW1lKCksIHRyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50
NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgaWRlbnRpZmllcik7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgaWYgKHJlc291cmNlTG9h
ZGVyLT5vcHRpb25zKCkuc2VydmljZVdvcmtlcnNNb2RlID09IFNlcnZpY2VXb3JrZXJzTW9kZTo6
T25seSkgewotICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChyZXNvdXJj
ZUxvYWRlci5nZXQoKSwgInNjaGVkdWxlTG9hZDogdW5hYmxlIHRvIHNjaGVkdWxlIFVSTCB0aHJv
dWdoIFNlcnZpY2VXb3JrZXIgaGFuZGxlIGZldGNoIGFsZ29yaXRobSAoZnJhbWUgPSAlcCwgcGFn
ZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUi
IFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLT5mcmFtZSgpLCB0cmFja2luZ1BhcmFtZXRlcnMu
cGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBpZGVudGlmaWVy
KTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQocmVzb3VyY2VMb2Fk
ZXIuZ2V0KCksICJzY2hlZHVsZUxvYWQ6IHVuYWJsZSB0byBzY2hlZHVsZSBVUkwgdGhyb3VnaCBT
ZXJ2aWNlV29ya2VyIGhhbmRsZSBmZXRjaCBhbGdvcml0aG0gKGZyYW1lID0gJXAsIHBhZ2VJRCA9
ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1
NjQgIikiLCByZXNvdXJjZUxvYWRlci0+ZnJhbWUoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJ
RC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVu
dGlmaWVyKTsKICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Jlc291cmNlTG9hZGVyID0g
V1RGTW92ZShyZXNvdXJjZUxvYWRlcildIHsKICAgICAgICAgICAgICAgICBhdXRvIGVycm9yID0g
aW50ZXJuYWxFcnJvcihyZXNvdXJjZUxvYWRlci0+cmVxdWVzdCgpLnVybCgpKTsKICAgICAgICAg
ICAgICAgICBlcnJvci5zZXRUeXBlKFJlc291cmNlRXJyb3I6OlR5cGU6OkNhbmNlbGxhdGlvbik7
CkBAIC0yMjgsMTMgKzIyOCwxMyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxv
YWQoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTG9hZGVyLCBDYWNoZWRSZXNvdQogICAgICAgICBp
ZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkxvYWRlclN0cmF0ZWd5KCkudHJ5TG9hZGlu
Z1VzaW5nVVJMU2NoZW1lSGFuZGxlcihyZXNvdXJjZUxvYWRlcikpCiAgICAgICAgICAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS53ZWJMb2FkZXJTdHJhdGVneSgpLnNjaGVkdWxlTG9hZEZyb21O
ZXR3b3JrUHJvY2VzcyhyZXNvdXJjZUxvYWRlci5nZXQoKSwgcmVzb3VyY2VMb2FkZXItPnJlcXVl
c3QoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLCBzZXNzaW9uSUQsIHNob3VsZENsZWFyUmVmZXJyZXJP
bkhUVFBTVG9IVFRQUmVkaXJlY3QsIG1heGltdW1CdWZmZXJpbmdUaW1lKTsKICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlci5nZXQo
KSwgInNjaGVkdWxlTG9hZDogVVJMIG5vdCBoYW5kbGVkIGJ5IGFueSBoYW5kbGVycyAoZnJhbWUg
PSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3Vy
Y2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLT5mcmFtZSgpLCB0cmFja2luZ1Bh
cmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIHRyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBp
ZGVudGlmaWVyKTsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VM
b2FkZXIuZ2V0KCksICJzY2hlZHVsZUxvYWQ6IFVSTCBub3QgaGFuZGxlZCBieSBhbnkgaGFuZGxl
cnMgKGZyYW1lID0gJXAsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci0+ZnJhbWUoKSwg
dHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMu
ZnJhbWVJRC50b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsKICAgICB9KTsKICNlbHNlCiAgICAgaWYg
KCF0cnlMb2FkaW5nVXNpbmdVUkxTY2hlbWVIYW5kbGVyKHJlc291cmNlTG9hZGVyKSkKICAgICAg
ICAgc2NoZWR1bGVMb2FkRnJvbU5ldHdvcmtQcm9jZXNzKHJlc291cmNlTG9hZGVyLCByZXNvdXJj
ZUxvYWRlci5yZXF1ZXN0KCksIHRyYWNraW5nUGFyYW1ldGVycywgc2Vzc2lvbklELCBzaG91bGRD
bGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBtYXhpbXVtQnVmZmVyaW5nVGltZShy
ZXNvdXJjZSkpOwogICAgIGVsc2UKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChyZXNv
dXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDogVVJMIG5vdCBoYW5kbGVkIGJ5IGFueSBoYW5kbGVy
cyAoZnJhbWUgPSAlcCwgcGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQg
IiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHRy
YWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgdHJhY2tpbmdQYXJhbWV0ZXJzLmZy
YW1lSUQsIGlkZW50aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKHJlc291
cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVUkwgbm90IGhhbmRsZWQgYnkgYW55IGhhbmRsZXJz
IChmcmFtZSA9ICVwLCBwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAi
LCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgdHJh
Y2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCB0cmFja2luZ1BhcmFtZXRlcnMuZnJh
bWVJRC50b1VJbnQ2NCgpLCBpZGVudGlmaWVyKTsKICNlbmRpZgogfQogCkBAIC0zMjUsNyArMzI1
LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkRnJvbU5ldHdvcmtQcm9j
ZXNzKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUwKICAgICBpZiAobG9hZFBhcmFtZXRlcnMub3B0
aW9ucy5tb2RlICE9IEZldGNoT3B0aW9uczo6TW9kZTo6TmF2aWdhdGUpIHsKICAgICAgICAgQVNT
RVJUKGxvYWRQYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbik7CiAgICAgICAgIGlmICghbG9hZFBhcmFt
ZXRlcnMuc291cmNlT3JpZ2luKSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9B
TExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBubyBzb3VyY2VPcmlnaW4gKGZy
YW1lID0gJXAsIHByaW9yaXR5ID0gJWQsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0g
JSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5m
cmFtZSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS5wcmlvcml0
eSgpKSwgbG9hZFBhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJz
LndlYkZyYW1lSUQsIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIpOworICAgICAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRChyZXNvdXJjZUxvYWRlciwgInNjaGVkdWxlTG9hZDog
bm8gc291cmNlT3JpZ2luIChmcmFtZSA9ICVwLCBwcmlvcml0eSA9ICVkLCBwYWdlSUQgPSAlIiBQ
Ukl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIp
IiwgcmVzb3VyY2VMb2FkZXIuZnJhbWUoKSwgc3RhdGljX2Nhc3Q8aW50PihyZXNvdXJjZUxvYWRl
ci5yZXF1ZXN0KCkucHJpb3JpdHkoKSksIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2
NCgpLCBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJz
LmlkZW50aWZpZXIpOwogICAgICAgICAgICAgc2NoZWR1bGVJbnRlcm5hbGx5RmFpbGVkTG9hZChy
ZXNvdXJjZUxvYWRlcik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTM0OCw5
ICszNDgsOSBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29y
a1Byb2Nlc3MoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTAogCiAgICAgQVNTRVJUKChsb2FkUGFy
YW1ldGVycy53ZWJQYWdlSUQgJiYgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRCkgfHwgbG9hZFBh
cmFtZXRlcnMuY2xpZW50Q3JlZGVudGlhbFBvbGljeSA9PSBDbGllbnRDcmVkZW50aWFsUG9saWN5
OjpDYW5ub3RBc2tDbGllbnRGb3JDcmVkZW50aWFscyk7CiAKLSAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKHJlc291cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBSZXNvdXJjZSBpcyBiZWluZyBz
Y2hlZHVsZWQgd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3MgKGZyYW1lID0gJXAsIHByaW9yaXR5ID0g
JWQsIHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNl
SUQgPSAlIiBQUkl1NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCBzdGF0aWNfY2FzdDxp
bnQ+KHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS5wcmlvcml0eSgpKSwgbG9hZFBhcmFtZXRlcnMu
d2ViUGFnZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQsIGxvYWRQYXJh
bWV0ZXJzLmlkZW50aWZpZXIpOworICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQocmVzb3VyY2VM
b2FkZXIsICJzY2hlZHVsZUxvYWQ6IFJlc291cmNlIGlzIGJlaW5nIHNjaGVkdWxlZCB3aXRoIHRo
ZSBOZXR3b3JrUHJvY2VzcyAoZnJhbWUgPSAlcCwgcHJpb3JpdHkgPSAlZCwgcGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAi
KSIsIHJlc291cmNlTG9hZGVyLmZyYW1lKCksIHN0YXRpY19jYXN0PGludD4ocmVzb3VyY2VMb2Fk
ZXIucmVxdWVzdCgpLnByaW9yaXR5KCkpLCBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50
NjQoKSwgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVy
cy5pZGVudGlmaWVyKTsKICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6U2NoZWR1bGVSZXNvdXJjZUxvYWQobG9hZFBhcmFt
ZXRlcnMpLCAwKSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHJlc291
cmNlTG9hZGVyLCAic2NoZWR1bGVMb2FkOiBVbmFibGUgdG8gc2NoZWR1bGUgcmVzb3VyY2Ugd2l0
aCB0aGUgTmV0d29ya1Byb2Nlc3MgKGZyYW1lID0gJXAsIHByaW9yaXR5ID0gJWQsIHBhZ2VJRCA9
ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1
NjQgIikiLCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc291cmNl
TG9hZGVyLnJlcXVlc3QoKS5wcmlvcml0eSgpKSwgbG9hZFBhcmFtZXRlcnMud2ViUGFnZUlELnRv
VUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQsIGxvYWRQYXJhbWV0ZXJzLmlkZW50
aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHJlc291cmNlTG9h
ZGVyLCAic2NoZWR1bGVMb2FkOiBVbmFibGUgdG8gc2NoZWR1bGUgcmVzb3VyY2Ugd2l0aCB0aGUg
TmV0d29ya1Byb2Nlc3MgKGZyYW1lID0gJXAsIHByaW9yaXR5ID0gJWQsIHBhZ2VJRCA9ICUiIFBS
SXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIiki
LCByZXNvdXJjZUxvYWRlci5mcmFtZSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlTG9hZGVy
LnJlcXVlc3QoKS5wcmlvcml0eSgpKSwgbG9hZFBhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0
KCksIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbG9hZFBhcmFtZXRlcnMu
aWRlbnRpZmllcik7CiAgICAgICAgIC8vIFdlIHByb2JhYmx5IGZhaWxlZCB0byBzY2hlZHVsZSB0
aGlzIGxvYWQgd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3MgYmVjYXVzZSBpdCBoYWQgY3Jhc2hlZC4K
ICAgICAgICAgLy8gVGhpcyBsb2FkIHdpbGwgbmV2ZXIgc3VjY2VlZCBzbyB3ZSB3aWxsIHNjaGVk
dWxlIGl0IHRvIGZhaWwgYXN5bmNocm9ub3VzbHkuCiAgICAgICAgIHNjaGVkdWxlSW50ZXJuYWxs
eUZhaWxlZExvYWQocmVzb3VyY2VMb2FkZXIpOwpAQCAtNTIwLDE4ICs1MjAsMTggQEAgdm9pZCBX
ZWJMb2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShGcmFtZUxvYWRlciYg
ZnJhbWVMb2FkZXIsIHVuc2kKICAgICBXZWJQYWdlKiB3ZWJQYWdlID0gd2ViRnJhbWUgPyB3ZWJG
cmFtZS0+cGFnZSgpIDogbnVsbHB0cjsKIAogICAgIGF1dG8gcGFnZUlEID0gd2ViUGFnZSA/IHdl
YlBhZ2UtPnBhZ2VJRCgpIDogUGFnZUlkZW50aWZpZXIgeyB9OwotICAgIGF1dG8gZnJhbWVJRCA9
IHdlYkZyYW1lID8gd2ViRnJhbWUtPmZyYW1lSUQoKSA6IDA7CisgICAgYXV0byBmcmFtZUlEID0g
d2ViRnJhbWUgPyB3ZWJGcmFtZS0+ZnJhbWVJRCgpIDogRnJhbWVJZGVudGlmaWVyIHsgfTsKICAg
ICBhdXRvIHNlc3Npb25JRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSA6IFBBTDo6
U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CiAKICAgICBhdXRvKiBkb2N1bWVudCA9IGZy
YW1lTG9hZGVyLmZyYW1lKCkuZG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50KSB7Ci0gICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoc2Vzc2lvbklELCAibG9hZFJlc291cmNl
U3luY2hyb25vdXNseTogbm8gZG9jdW1lbnQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlE
ID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlbHUpIiwgcGFnZUlELnRvVUludDY0KCksIGZy
YW1lSUQsIHJlc291cmNlTG9hZElkZW50aWZpZXIpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJP
Ul9JRl9BTExPV0VEKHNlc3Npb25JRCwgImxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6IG5vIGRv
Y3VtZW50IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNv
dXJjZUlEID0gJWx1KSIsIHBhZ2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCksIHJl
c291cmNlTG9hZElkZW50aWZpZXIpOwogICAgICAgICBlcnJvciA9IGludGVybmFsRXJyb3IocmVx
dWVzdC51cmwoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoYXV0byBzeW5j
TG9hZFJlc3VsdCA9IHRyeUxvYWRpbmdTeW5jaHJvbm91c2x5VXNpbmdVUkxTY2hlbWVIYW5kbGVy
KGZyYW1lTG9hZGVyLCByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCByZXF1ZXN0KSkgewotICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHNlc3Npb25JRCwgImxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHk6IGZhaWxlZCBjYWxsaW5nIHRyeUxvYWRpbmdTeW5jaHJvbm91c2x5VXNpbmdV
UkxTY2hlbWVIYW5kbGVyIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2
NCAiLCByZXNvdXJjZUlEID0gJWx1LCBlcnJvciA9ICVkKSIsIHBhZ2VJRC50b1VJbnQ2NCgpLCBm
cmFtZUlELCByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBzeW5jTG9hZFJlc3VsdC0+ZXJyb3IuZXJy
b3JDb2RlKCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKHNlc3Npb25J
RCwgImxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHk6IGZhaWxlZCBjYWxsaW5nIHRyeUxvYWRpbmdT
eW5jaHJvbm91c2x5VXNpbmdVUkxTY2hlbWVIYW5kbGVyIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJWx1LCBlcnJvciA9ICVkKSIsIHBh
Z2VJRC50b1VJbnQ2NCgpLCBmcmFtZUlELnRvVUludDY0KCksIHJlc291cmNlTG9hZElkZW50aWZp
ZXIsIHN5bmNMb2FkUmVzdWx0LT5lcnJvci5lcnJvckNvZGUoKSk7CiAgICAgICAgIGVycm9yID0g
V1RGTW92ZShzeW5jTG9hZFJlc3VsdC0+ZXJyb3IpOwogICAgICAgICByZXNwb25zZSA9IFdURk1v
dmUoc3luY0xvYWRSZXN1bHQtPnJlc3BvbnNlKTsKICAgICAgICAgZGF0YSA9IFdURk1vdmUoc3lu
Y0xvYWRSZXN1bHQtPmRhdGEpOwpAQCAtNTY5LDcgKzU2OSw3IEBAIHZvaWQgV2ViTG9hZGVyU3Ry
YXRlZ3k6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoRnJhbWVMb2FkZXImIGZyYW1lTG9hZGVy
LCB1bnNpCiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQb29sOjpTZXRXZWJQcm9jZXNzSGFz
VXBsb2FkcyB7IFByb2Nlc3M6OmlkZW50aWZpZXIoKSB9LCAwKTsKIAogICAgIGlmICghV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVj
dGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
UGVyZm9ybVN5bmNocm9ub3VzTG9hZChsb2FkUGFyYW1ldGVycyksIE1lc3NhZ2VzOjpOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGVyZm9ybVN5bmNocm9ub3VzTG9hZDo6UmVwbHkoZXJy
b3IsIHJlc3BvbnNlLCBkYXRhKSwgMCkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZf
QUxMT1dFRChzZXNzaW9uSUQsICJsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiBmYWlsZWQgc2Vu
ZGluZyBzeW5jaHJvbm91cyBuZXR3b3JrIHByb2Nlc3MgbWVzc2FnZSAocGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICVsdSkiLCBwYWdlSUQu
dG9VSW50NjQoKSwgZnJhbWVJRCwgcmVzb3VyY2VMb2FkSWRlbnRpZmllcik7CisgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoc2Vzc2lvbklELCAibG9hZFJlc291cmNlU3luY2hy
b25vdXNseTogZmFpbGVkIHNlbmRpbmcgc3luY2hyb25vdXMgbmV0d29yayBwcm9jZXNzIG1lc3Nh
Z2UgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNl
SUQgPSAlbHUpIiwgcGFnZUlELnRvVUludDY0KCksIGZyYW1lSUQudG9VSW50NjQoKSwgcmVzb3Vy
Y2VMb2FkSWRlbnRpZmllcik7CiAgICAgICAgIGlmIChhdXRvKiBwYWdlID0gd2ViUGFnZSA/IHdl
YlBhZ2UtPmNvcmVQYWdlKCkgOiBudWxscHRyKQogICAgICAgICAgICAgcGFnZS0+ZGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZShXZWJDb3JlOjpEaWFnbm9zdGlj
TG9nZ2luZ0tleXM6OmludGVybmFsRXJyb3JLZXkoKSwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dp
bmdLZXlzOjpzeW5jaHJvbm91c01lc3NhZ2VGYWlsZWRLZXkoKSwgV2ViQ29yZTo6U2hvdWxkU2Ft
cGxlOjpObyk7CiAgICAgICAgIHJlc3BvbnNlID0gUmVzb3VyY2VSZXNwb25zZSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIu
Y3BwCmluZGV4IDg4YmQ1M2JmMWY4ZmI3MzZlYjE3M2VmNjRmMWUzMDNkMWJiMTAwYzEuLmZhNTM5
MjVlYjY4ZjA0MmZlYzc5YmYzODg2MGIyNzYwMzI1ZmI1MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTg4
LDE2ICs4OCwxNiBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QoUmVz
b3VyY2VSZXF1ZXN0JiYgcHJvcG9zZWRSZXF1ZXN0LCBSZXNvdQogICAgIFJlZjxXZWJSZXNvdXJj
ZUxvYWRlcj4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAKICAgICBMT0coTmV0d29yaywgIihXZWJQ
cm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0IHRvICclcyciLCBwcm9w
b3NlZFJlcXVlc3QudXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsKLSAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKCJ3aWxsU2VuZFJlcXVlc3Q6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwg
ZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFj
a2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZy
YW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOworICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoIndpbGxTZW5kUmVxdWVzdDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFt
ZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5n
UGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJ
RC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKIAogICAgIGlm
IChtX2NvcmVMb2FkZXItPmRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCku
bWF5YmVMb2FkRmFsbGJhY2tGb3JSZWRpcmVjdChtX2NvcmVMb2FkZXIuZ2V0KCksIHByb3Bvc2Vk
UmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRCgid2lsbFNlbmRSZXF1ZXN0OiBleGl0aW5nIGVhcmx5IGJlY2F1c2UgbWF5YmVMb2FkRmFs
bGJhY2tGb3JSZWRpcmVjdCByZXR1cm5lZCBmYWxzZSAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZy
YW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tp
bmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFt
ZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKKyAgICAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgid2lsbFNlbmRSZXF1ZXN0OiBleGl0aW5nIGVhcmx5IGJlY2F1c2UgbWF5
YmVMb2FkRmFsbGJhY2tGb3JSZWRpcmVjdCByZXR1cm5lZCBmYWxzZSAocGFnZUlEID0gJSIgUFJJ
dTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIs
IG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1l
dGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgbV9jb3JlTG9hZGVyLT53aWxsU2VuZFJl
cXVlc3QoV1RGTW92ZShwcm9wb3NlZFJlcXVlc3QpLCByZWRpcmVjdFJlc3BvbnNlLCBbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldKFJlc291cmNlUmVxdWVzdCYm
IHJlcXVlc3QpIHsKICAgICAgICAgaWYgKCFtX2NvcmVMb2FkZXIgfHwgIW1fY29yZUxvYWRlci0+
aWRlbnRpZmllcigpKSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3aWxs
U2VuZFJlcXVlc3Q6IGV4aXRpbmcgZWFybHkgYmVjYXVzZSBubyBjb3JlbG9hZGVyIG9yIGlkZW50
aWZpZXIgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291
cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50
NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMu
cmVzb3VyY2VJRCk7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3aWxsU2Vu
ZFJlcXVlc3Q6IGV4aXRpbmcgZWFybHkgYmVjYXVzZSBubyBjb3JlbG9hZGVyIG9yIGlkZW50aWZp
ZXIgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNl
SUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQo
KSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFy
YW1ldGVycy5yZXNvdXJjZUlEKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBA
IC0xMTMsMTIgKzExMywxMiBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRTZW5kRGF0YSh1
aW50NjRfdCBieXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0ZXNUb0JlUwogdm9pZCBXZWJSZXNv
dXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKQogewog
ICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNl
aXZlUmVzcG9uc2UgZm9yICclcycuIFN0YXR1cyAlZC4iLCBtX2NvcmVMb2FkZXItPnVybCgpLnN0
cmluZygpLmxhdGluMSgpLmRhdGEoKSwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSk7Ci0gICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiAocGFnZUlEID0gJSIg
UFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAi
LCBzdGF0dXMgPSAlZCkiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwg
bV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3Vy
Y2VJRCwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSk7CisgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiLCBzdGF0dXMgPSAlZCkiLCBt
X3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRl
cnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlELCBy
ZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpKTsKIAogICAgIFJlZjxXZWJSZXNvdXJjZUxvYWRlcj4g
cHJvdGVjdGVkVGhpcygqdGhpcyk7CiAKICAgICBpZiAobV9jb3JlTG9hZGVyLT5kb2N1bWVudExv
YWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLm1heWJlTG9hZEZhbGxiYWNrRm9yUmVzcG9u
c2UobV9jb3JlTG9hZGVyLmdldCgpLCByZXNwb25zZSkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiBub3QgY29udGludWluZyBsb2FkIGJlY2F1
c2UgdGhlIGNvbnRlbnQgaXMgYWxyZWFkeSBjYWNoZWQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBm
cmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNr
aW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJh
bWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAgICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZTogbm90IGNvbnRpbnVpbmcgbG9hZCBi
ZWNhdXNlIHRoZSBjb250ZW50IGlzIGFscmVhZHkgY2FjaGVkIChwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90
cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJz
LmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEzNSw3ICsxMzUsNyBAQCB2b2lkIFdlYlJlc291
cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UsIGJvbwogICAgICAgICAgICAgaWYgKG1fY29yZUxvYWRlciAmJiBtX2NvcmVMb2FkZXIt
PmlkZW50aWZpZXIoKSkKICAgICAgICAgICAgICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OkNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkpOwogICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVS
ZXNwb25zZTogbm90IGNvbnRpbnVpbmcgbG9hZCBiZWNhdXNlIG5vIGNvcmVMb2FkZXIgb3Igbm8g
SUQgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNl
SUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQo
KSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVz
b3VyY2VJRCk7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVj
ZWl2ZVJlc3BvbnNlOiBub3QgY29udGludWluZyBsb2FkIGJlY2F1c2Ugbm8gY29yZUxvYWRlciBv
ciBubyBJRCAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJ
bnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tp
bmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwogICAgICAgICB9OwogICAgIH0KIApAQCAtMTQ4LDcg
KzE0OCw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IElQ
Qzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgaW50NjRfdCBlCiAgICAgQVNTRVJUX1dJVEhfTUVTU0FH
RSghbV9pc1Byb2Nlc3NpbmdOZXR3b3JrUmVzcG9uc2UsICJOZXR3b3JrIHByb2Nlc3Mgc2hvdWxk
IG5vdCBzZW5kIGRhdGEgdW50aWwgd2UndmUgdmFsaWRhdGVkIHRoZSByZXNwb25zZSIpOwogCiAg
ICAgaWYgKCFtX251bUJ5dGVzUmVjZWl2ZWQpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRCgiZGlkUmVjZWl2ZURhdGE6IFN0YXJ0ZWQgcmVjZWl2aW5nIGRhdGEgKHBhZ2VJRCA9ICUi
IFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQg
IikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1Bh
cmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAg
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVEYXRhOiBTdGFydGVkIHJlY2Vp
dmluZyBkYXRhIChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCBy
ZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRv
VUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQoKSwgbV90cmFj
a2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CiAgICAgfQogICAgIG1fbnVtQnl0ZXNSZWNlaXZl
ZCArPSBkYXRhLnNpemUoKTsKIApAQCAtMTU4LDcgKzE1OCw3IEBAIHZvaWQgV2ViUmVzb3VyY2VM
b2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgaW50
NjRfdCBlCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hSZXNvdXJjZUxvYWQoY29u
c3QgTmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3JrTG9hZE1ldHJpY3MpCiB7CiAgICAgTE9HKE5l
dHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaFJlc291cmNl
TG9hZCBmb3IgJyVzJyIsIG1fY29yZUxvYWRlci0+dXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0
YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRGaW5pc2hSZXNvdXJjZUxvYWQ6
IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlE
ID0gJSIgUFJJdTY0ICIsIGxlbmd0aCA9ICV6ZCkiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdl
SUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRCwgbV90cmFja2luZ1Bh
cmFtZXRlcnMucmVzb3VyY2VJRCwgbV9udW1CeXRlc1JlY2VpdmVkKTsKKyAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKCJkaWRGaW5pc2hSZXNvdXJjZUxvYWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIsIGxlbmd0
aCA9ICV6ZCkiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFj
a2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5y
ZXNvdXJjZUlELCBtX251bUJ5dGVzUmVjZWl2ZWQpOwogCiAgICAgQVNTRVJUX1dJVEhfTUVTU0FH
RSghbV9pc1Byb2Nlc3NpbmdOZXR3b3JrUmVzcG9uc2UsICJMb2FkIHNob3VsZCBub3QgYmUgYWJs
ZSB0byBmaW5pc2ggYmVmb3JlIHdlJ3ZlIHZhbGlkYXRlZCB0aGUgcmVzcG9uc2UiKTsKICAgICBt
X2NvcmVMb2FkZXItPmRpZEZpbmlzaExvYWRpbmcobmV0d29ya0xvYWRNZXRyaWNzKTsKQEAgLTE2
Nyw3ICsxNjcsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hSZXNvdXJjZUxv
YWQoY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3JrTAogdm9pZCBXZWJSZXNvdXJjZUxv
YWRlcjo6ZGlkRmFpbFJlc291cmNlTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsK
ICAgICBMT0coTmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkRmFp
bFJlc291cmNlTG9hZCBmb3IgJyVzJyIsIG1fY29yZUxvYWRlci0+dXJsKCkuc3RyaW5nKCkubGF0
aW4xKCkuZGF0YSgpKTsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRGYWlsUmVzb3Vy
Y2VMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJ
bnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVy
cy5yZXNvdXJjZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRGYWlsUmVzb3Vy
Y2VMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVz
b3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJ
bnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCksIG1fdHJhY2tp
bmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwogCiAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghbV9p
c1Byb2Nlc3NpbmdOZXR3b3JrUmVzcG9uc2UsICJMb2FkIHNob3VsZCBub3QgYmUgYWJsZSB0byBm
aW5pc2ggYmVmb3JlIHdlJ3ZlIHZhbGlkYXRlZCB0aGUgcmVzcG9uc2UiKTsKIApAQCAtMTc5LDcg
KzE3OSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWxSZXNvdXJjZUxvYWQoY29u
c3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRCbG9j
a0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCkKIHsKICAgICBMT0coTmV0d29yaywgIihXZWJQcm9j
ZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBm
b3IgJyVzJyIsIG1fY29yZUxvYWRlci0+dXJsKCkuc3RyaW5nKCkubGF0aW4xKCkuZGF0YSgpKTsK
LSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRCbG9ja0F1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3Vy
Y2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2
NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5y
ZXNvdXJjZUlEKTsKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRCbG9ja0F1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnBh
Z2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFtZUlELnRvVUludDY0KCks
IG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOwogCiAgICAgbV9jb3JlTG9hZGVyLT5k
aWRCbG9ja0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCk7CiB9CkBAIC0xODcsNyArMTg3LDcgQEAg
dm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgp
CiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpzdG9wTG9hZGluZ0FmdGVyWEZyYW1lT3B0aW9uc09y
Q29udGVudFNlY3VyaXR5UG9saWN5RGVuaWVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlKQogewogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9hZGVy
OjpzdG9wTG9hZGluZ0FmdGVyWEZyYW1lT3B0aW9uc09yQ29udGVudFNlY3VyaXR5UG9saWN5RGVu
aWVkIGZvciAnJXMnIiwgbV9jb3JlTG9hZGVyLT51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRh
KCkpOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0b3BMb2FkaW5nQWZ0ZXJYRnJhbWVP
cHRpb25zT3JDb250ZW50U2VjdXJpdHlQb2xpY3lEZW5pZWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQg
IiwgZnJhbWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90
cmFja2luZ1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJz
LmZyYW1lSUQsIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLnJlc291cmNlSUQpOworICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoInN0b3BMb2FkaW5nQWZ0ZXJYRnJhbWVPcHRpb25zT3JDb250ZW50U2Vj
dXJpdHlQb2xpY3lEZW5pZWQ6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJhbWVJRCA9ICUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2luZ1BhcmFtZXRlcnMu
cGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1lSUQudG9VSW50NjQo
KSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CiAKICAgICBtX2NvcmVMb2FkZXIt
PmRvY3VtZW50TG9hZGVyKCktPnN0b3BMb2FkaW5nQWZ0ZXJYRnJhbWVPcHRpb25zT3JDb250ZW50
U2VjdXJpdHlQb2xpY3lEZW5pZWQobV9jb3JlTG9hZGVyLT5pZGVudGlmaWVyKCksIHJlc3BvbnNl
KTsKIH0KQEAgLTE5NiwxMyArMTk2LDEzIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OnN0b3BM
b2FkaW5nQWZ0ZXJYRnJhbWVPcHRpb25zT3JDb250ZW50U2VjdXJpdHlQb2xpY3lEZW5pCiB2b2lk
IFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzb3VyY2UoY29uc3QgU2hhcmVhYmxlUmVz
b3VyY2U6OkhhbmRsZSYgaGFuZGxlKQogewogICAgIExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3Mp
IFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzb3VyY2UgZm9yICclcyciLCBtX2NvcmVM
b2FkZXItPnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSk7Ci0gICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc291cmNlOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZy
YW1lSUQgPSAlIiBQUkl1NjQgIiwgcmVzb3VyY2VJRCA9ICUiIFBSSXU2NCAiKSIsIG1fdHJhY2tp
bmdQYXJhbWV0ZXJzLnBhZ2VJRC50b1VJbnQ2NCgpLCBtX3RyYWNraW5nUGFyYW1ldGVycy5mcmFt
ZUlELCBtX3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKKyAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzb3VyY2U6IChwYWdlSUQgPSAlIiBQUkl1NjQgIiwgZnJh
bWVJRCA9ICUiIFBSSXU2NCAiLCByZXNvdXJjZUlEID0gJSIgUFJJdTY0ICIpIiwgbV90cmFja2lu
Z1BhcmFtZXRlcnMucGFnZUlELnRvVUludDY0KCksIG1fdHJhY2tpbmdQYXJhbWV0ZXJzLmZyYW1l
SUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CiAKICAgICBS
ZWZQdHI8U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBoYW5kbGUudHJ5V3JhcEluU2hhcmVkQnVmZmVy
KCk7CiAKICAgICBpZiAoIWJ1ZmZlcikgewogICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBj
cmVhdGUgYnVmZmVyIGZyb20gU2hhcmVhYmxlUmVzb3VyY2Ugc2VudCBmcm9tIHRoZSBuZXR3b3Jr
IHByb2Nlc3MuIik7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVS
ZXNvdXJjZTogVW5hYmxlIHRvIGNyZWF0ZSBTaGFyZWRCdWZmZXIgKHBhZ2VJRCA9ICUiIFBSSXU2
NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBt
X3RyYWNraW5nUGFyYW1ldGVycy5wYWdlSUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRl
cnMuZnJhbWVJRCwgbV90cmFja2luZ1BhcmFtZXRlcnMucmVzb3VyY2VJRCk7CisgICAgICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNvdXJjZTogVW5hYmxlIHRvIGNyZWF0
ZSBTaGFyZWRCdWZmZXIgKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0
ICIsIHJlc291cmNlSUQgPSAlIiBQUkl1NjQgIikiLCBtX3RyYWNraW5nUGFyYW1ldGVycy5wYWdl
SUQudG9VSW50NjQoKSwgbV90cmFja2luZ1BhcmFtZXRlcnMuZnJhbWVJRC50b1VJbnQ2NCgpLCBt
X3RyYWNraW5nUGFyYW1ldGVycy5yZXNvdXJjZUlEKTsKICAgICAgICAgaWYgKGF1dG8qIGZyYW1l
ID0gbV9jb3JlTG9hZGVyLT5mcmFtZSgpKSB7CiAgICAgICAgICAgICBpZiAoYXV0byogcGFnZSA9
IGZyYW1lLT5wYWdlKCkpCiAgICAgICAgICAgICAgICAgcGFnZS0+ZGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQoKS5sb2dEaWFnbm9zdGljTWVzc2FnZShXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tl
eXM6OmludGVybmFsRXJyb3JLZXkoKSwgV2ViQ29yZTo6RGlhZ25vc3RpY0xvZ2dpbmdLZXlzOjpj
cmVhdGVTaGFyZWRCdWZmZXJGYWlsZWRLZXkoKSwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlOjpObyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJj
ZUxvYWRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VM
b2FkZXIuaAppbmRleCA1ODY1NDM3MThlNWU4Mzg4YjhiNDFhYjAyMDM3YWM3NmU3ODY5MzdjLi45
YzExNDdkYTA1MTUzZGQ3YWM0NGFmMzE1ODFlMjIxYjY5YmU5MjRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKQEAgLTI4
LDYgKzI4LDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNl
bmRlci5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZVJlc291cmNlLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9GcmFtZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBA
IC01Miw3ICs1Myw3IEBAIGNsYXNzIFdlYlJlc291cmNlTG9hZGVyIDogcHVibGljIFJlZkNvdW50
ZWQ8V2ViUmVzb3VyY2VMb2FkZXI+LCBwdWJsaWMgSVBDOjpNZXNzCiBwdWJsaWM6CiAgICAgc3Ry
dWN0IFRyYWNraW5nUGFyYW1ldGVycyB7CiAgICAgICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
IHBhZ2VJRDsKLSAgICAgICAgdWludDY0X3QgZnJhbWVJRCB7IDAgfTsKKyAgICAgICAgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQ7CiAgICAgICAgIFJlc291cmNlTG9hZElkZW50aWZp
ZXIgcmVzb3VyY2VJRCB7IDAgfTsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5jcHAKaW5kZXggNmZjMDljNGY2NWIyNDViNjBiZjRkNGY1OTdhOWY5MGFkNGQwYWFmOS4u
NDlkMjBjN2M0OWMwMmFhOTU5YWE0YWU0ZDllZWM4ZmU4M2M1ZmU3YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uLmNwcApAQCAtNzMsNyArNzMsNyBAQCBzdGF0aWMgY29uc3QgU2Vj
b25kcyBzeW5jV29ya2VyVGVybWluYXRpb25UaW1lb3V0IHsgMTAwX21zIH07IC8vIE9ubHkgdXNl
ZCBieSBsYQogCiBjbGFzcyBTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQgZmluYWwgOiBw
dWJsaWMgRW1wdHlGcmFtZUxvYWRlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgU2VydmljZVdvcmtl
ckZyYW1lTG9hZGVyQ2xpZW50KFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpCisgICAgU2Vy
dmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50KFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
JiBjb25uZWN0aW9uLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdXNl
ckFnZW50KQogICAgICAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQogICAgICAgICAsIG1f
c2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAgICAgLCBtX3BhZ2VJRChwYWdlSUQpCkBAIC05Niwx
MyArOTYsMTMgQEAgcHJpdmF0ZToKIAogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6
UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcGFnZUlEOyB9
Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZyYW1lSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X2ZyYW1lSUQ7IH0KKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+IGZyYW1l
SUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KICAgICBTdHJpbmcgdXNlckFn
ZW50KGNvbnN0IFVSTCYpIGZpbmFsIHsgcmV0dXJuIG1fdXNlckFnZW50OyB9CiAKICAgICBXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiYgbV9jb25uZWN0aW9uOwogICAgIFBBTDo6U2Vzc2lv
bklEIG1fc2Vzc2lvbklEOwotICAgIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIG1fcGFnZUlEOwot
ICAgIHVpbnQ2NF90IG1fZnJhbWVJRCB7IDAgfTsKKyAgICBQYWdlSWRlbnRpZmllciBtX3BhZ2VJ
RDsKKyAgICBGcmFtZUlkZW50aWZpZXIgbV9mcmFtZUlEOwogICAgIFN0cmluZyBtX3VzZXJBZ2Vu
dDsKIH07CiAKQEAgLTE1Myw3ICsxNTMsOCBAQCB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uOjppbnN0YWxsU2VydmljZVdvcmtlcihjb25zdCBTZXJ2aWNlV29ya2VyQ29udAogCiAg
ICAgLy8gRklYTUU6IFRoaXMgbWV0aG9kIHNob3VsZCBiZSBtb3ZlZCBkaXJlY3RseSB0byBXZWJD
b3JlOjpTV0NvbnRleHRNYW5hZ2VyOjpDb25uZWN0aW9uCiAgICAgLy8gSWYgaXQgd2VyZW4ndCBm
b3IgU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50J3MgZGVwZW5kZW5jZSBvbiBXZWJEb2N1
bWVudExvYWRlciwgdGhpcyBjb3VsZCBhbHJlYWR5IGhhcHBlbi4KLSAgICBhdXRvIGZyYW1lTG9h
ZGVyQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGll
bnQ+KCp0aGlzLCBzZXNzaW9uSUQsIG1fcGFnZUlELCArK21fcHJldmlvdXNTZXJ2aWNlV29ya2Vy
SUQsIGVmZmVjdGl2ZVVzZXJBZ2VudCk7CisgICAgLy8gRklYTUU6IFdlaXJkIHRvIHBhc3MgbV9w
cmV2aW91c1NlcnZpY2VXb3JrZXJJRCBhcyBhIEZyYW1lSWRlbnRpZmllci4KKyAgICBhdXRvIGZy
YW1lTG9hZGVyQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxTZXJ2aWNlV29ya2VyRnJhbWVMb2Fk
ZXJDbGllbnQ+KCp0aGlzLCBzZXNzaW9uSUQsIG1fcGFnZUlELCBmcmFtZUlkZW50aWZpZXJGcm9t
SUQoKyttX3ByZXZpb3VzU2VydmljZVdvcmtlcklEKSwgZWZmZWN0aXZlVXNlckFnZW50KTsKICAg
ICBwYWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUgPSBmcmFtZUxvYWRl
ckNsaWVudC5nZXQoKTsKICAgICBtX2xvYWRlcnMuYWRkKFdURk1vdmUoZnJhbWVMb2FkZXJDbGll
bnQpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAzYzg3MmY1YWRmMzliZWFjZDNhNzA2
NjdiMjY4OWQzOGM5YjExMTJlLi5mY2QwOThlNDg0MGE1OGEyYjVhMjE5N2ViNTI5MWUwYTRmNDgy
OWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMjY1LDcgKzI2NSw3IEBAIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50Ojpmb2N1c2VkRnJhbWVDaGFuZ2VkKEZyYW1lKiBmcmFtZSkKIHsKICAgICBX
ZWJGcmFtZSogd2ViRnJhbWUgPSBmcmFtZSA/IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFt
ZSkgOiBudWxscHRyOwogCi0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGb2N1c2VkRnJhbWVD
aGFuZ2VkKHdlYkZyYW1lID8gd2ViRnJhbWUtPmZyYW1lSUQoKSA6IDApLCBtX3BhZ2UucGFnZUlE
KCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Rm9jdXNlZEZyYW1lQ2hhbmdlZCh3ZWJG
cmFtZSA/IG1ha2VPcHRpb25hbCh3ZWJGcmFtZS0+ZnJhbWVJRCgpKSA6IFdURjo6bnVsbG9wdCks
IG1fcGFnZS5wYWdlSUQoKSk7CiB9CiAKIFBhZ2UqIFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlV2lu
ZG93KEZyYW1lJiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzdCwgY29uc3Qg
V2luZG93RmVhdHVyZXMmIHdpbmRvd0ZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBu
YXZpZ2F0aW9uQWN0aW9uKQpAQCAtNjI1LDcgKzYyNSw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50
Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lJiBmcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkg
Y29uCiAgICAgICAgIFdlYkZyYW1lKiBsYXJnZXN0RnJhbWUgPSBmaW5kTGFyZ2VzdEZyYW1lSW5G
cmFtZVNldChtX3BhZ2UpOwogICAgICAgICBpZiAobGFyZ2VzdEZyYW1lICE9IG1fY2FjaGVkRnJh
bWVTZXRMYXJnZXN0RnJhbWUuZ2V0KCkpIHsKICAgICAgICAgICAgIG1fY2FjaGVkRnJhbWVTZXRM
YXJnZXN0RnJhbWUgPSBsYXJnZXN0RnJhbWU7Ci0gICAgICAgICAgICBtX3BhZ2Uuc2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpGcmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQobGFyZ2VzdEZy
YW1lID8gbGFyZ2VzdEZyYW1lLT5mcmFtZUlEKCkgOiAwKSk7CisgICAgICAgICAgICBtX3BhZ2Uu
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGcmFtZVNldExhcmdlc3RGcmFtZUNoYW5nZWQo
bGFyZ2VzdEZyYW1lID8gbWFrZU9wdGlvbmFsKGxhcmdlc3RGcmFtZS0+ZnJhbWVJRCgpKSA6IFdU
Rjo6bnVsbG9wdCkpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xMzE2LDEyICsxMzE2LDEyIEBA
IHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRJbnZhbGlkYXRlRG9jdW1lbnRNYXJrZXJSZWN0cygp
CiB9CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotdm9pZCBXZWJDaHJv
bWVDbGllbnQ6Omhhc1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURv
bWFpbiwgUmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJ
RCwgUGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6aGFzU3RvcmFnZUFjY2VzcyhSZWdp
c3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZy
YW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbV9w
YWdlLmhhc1N0b3JhZ2VBY2Nlc3MoV1RGTW92ZShzdWJGcmFtZURvbWFpbiksIFdURk1vdmUodG9w
RnJhbWVEb21haW4pLCBmcmFtZUlELCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAK
LXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhSZWdpc3RyYWJsZURv
bWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWlu
LCB1aW50NjRfdCBmcmFtZUlELCBQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0U3RvcmFn
ZUFjY2VzcyhSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBSZWdpc3RyYWJsZURv
bWFpbiYmIHRvcEZyYW1lRG9tYWluLCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFN0
b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
bV9wYWdlLnJlcXVlc3RTdG9yYWdlQWNjZXNzKFdURk1vdmUoc3ViRnJhbWVEb21haW4pLCBXVEZN
b3ZlKHRvcEZyYW1lRG9tYWluKSwgZnJhbWVJRCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGNlZDM2YTZjMjViN2U0ZjgzNDRhNTg5OTQwMDY3
OTFmN2NjOTI3NmYuLjJkYzY2MjJjMWI3ZjFjNWE5NWEyY2NkNzliMzIwOWJiNTg3MmE2MmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKQEAgLTM2Nyw4ICszNjcsOCBAQCBwcml2YXRlOgogICAgIHZvaWQg
ZGlkSW52YWxpZGF0ZURvY3VtZW50TWFya2VyUmVjdHMoKSBmaW5hbDsKIAogI2lmIEVOQUJMRShS
RVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFs
OwotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4mJiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFt
ZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdURjo6
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwg
V2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJikgZmluYWw7CisgICAgdm9p
ZCBoYXNTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVE
b21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdURjo6Q29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0U3RvcmFn
ZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHN1YkZyYW1lRG9tYWluLCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VB
Y2Nlc3NQcm9tcHRXYXNTaG93bik+JiYpIGZpbmFsOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoREVW
SUNFX09SSUVOVEFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggNjU3
MzliYjhhYTk2ZGZlOGMyYjBlMjZjMTcxYTlmOWI3NmI3MzQwOS4uNzA5ODBlZTViNWI4ZDcwMzdl
NDViM2YyYWYzZTJiYjFmYTAzOTRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CkBAIC0xMjAsNyArMTIwLDcgQEAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpwYWdlSUQoKSBjb25zdAogICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiB9CiAK
LU9wdGlvbmFsPHVpbnQ2NF90PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZnJhbWVJRCgpIGNvbnN0
CitPcHRpb25hbDxGcmFtZUlkZW50aWZpZXI+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlE
KCkgY29uc3QKIHsKICAgICBpZiAobV9mcmFtZSkKICAgICAgICAgcmV0dXJuIG1fZnJhbWUtPmZy
YW1lSUQoKTsKQEAgLTU0Niw3ICs1NDYsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZQogICAg
IGlmICghd2ViUGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUkVMRUFTRV9MT0coTmV0d29y
aywgIiVwIC0gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFs
TG9hZDogKHBhZ2VJRCA9ICUiIFBSSXU2NCAiLCBmcmFtZUlEID0gJSIgUFJJdTY0ICIpIiwgdGhp
cywgd2ViUGFnZS0+cGFnZUlEKCkudG9VSW50NjQoKSwgbV9mcmFtZS0+ZnJhbWVJRCgpKTsKKyAg
ICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkOiAocGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQg
PSAlIiBQUkl1NjQgIikiLCB0aGlzLCB3ZWJQYWdlLT5wYWdlSUQoKS50b1VJbnQ2NCgpLCBtX2Zy
YW1lLT5mcmFtZUlEKCkudG9VSW50NjQoKSk7CiAKICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IHVz
ZXJEYXRhOwogCkBAIC01ODIsNyArNTgyLDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEaWRGYWlsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKICAgICBpZiAo
IXdlYlBhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJFTEVBU0VfTE9HKE5ldHdvcmssICIl
cCAtIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkOiAocGFnZUlEID0g
JSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIikiLCB0aGlzLCB3ZWJQYWdlLT5wYWdl
SUQoKS50b1VJbnQ2NCgpLCBtX2ZyYW1lLT5mcmFtZUlEKCkpOworICAgIFJFTEVBU0VfTE9HKE5l
dHdvcmssICIlcCAtIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxMb2FkOiAo
cGFnZUlEID0gJSIgUFJJdTY0ICIsIGZyYW1lSUQgPSAlIiBQUkl1NjQgIikiLCB0aGlzLCB3ZWJQ
YWdlLT5wYWdlSUQoKS50b1VJbnQ2NCgpLCBtX2ZyYW1lLT5mcmFtZUlEKCkudG9VSW50NjQoKSk7
CiAKICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IHVzZXJEYXRhOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oCmluZGV4IGM4ZmIyYWYyMTI1NjZjNjQ2ODYwNzdhMGM4OWFmODEwNTM5MGE2ODAu
LjY0MWI4YzA2NjM0MTM4MGMwNzAyODIwYjg3ODlkZDE4NWU4YmIwNDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFwcGx5
VG9Eb2N1bWVudExvYWRlcihXZWJzaXRlUG9saWNpZXNEYXRhJiYpOwogCiAgICAgT3B0aW9uYWw8
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCgpIGNvbnN0IGZpbmFsOwotICAgIE9wdGlv
bmFsPHVpbnQ2NF90PiBmcmFtZUlEKCkgY29uc3QgZmluYWw7CisgICAgT3B0aW9uYWw8V2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKCkgY29uc3QgZmluYWw7CiAgICAgUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgZmluYWw7CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9B
RF9TVEFUSVNUSUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViQ29va2llSmFyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YkNvb2tpZUphci5jcHAKaW5kZXggNzM4YmU5MmI5MmRjNzNkMmRmNjc3ZWUzNGVjMTMwODFhNjBm
MWExYy4uZjZjNTU3ZDVmMGZkMjAxZGJiNTA1MTE0N2ViYzI3MGE1YjQ1Y2YzYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llSmFyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuY3BwCkBAIC01
MCw3ICs1MCw3IEBAIFdlYkNvb2tpZUphcjo6V2ViQ29va2llSmFyKCkKIAogU3RyaW5nIFdlYkNv
b2tpZUphcjo6Y29va2llcyhXZWJDb3JlOjpEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYg
dXJsKSBjb25zdAogewotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlv
bmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmll
cj4gcGFnZUlEOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKICAg
ICAgICAgZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CkBAIC02
Nyw3ICs2Nyw3IEBAIFN0cmluZyBXZWJDb29raWVKYXI6OmNvb2tpZXMoV2ViQ29yZTo6RG9jdW1l
bnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCkgY29uc3QKIAogdm9pZCBXZWJDb29raWVKYXI6
OnNldENvb2tpZXMoV2ViQ29yZTo6RG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBVUkwmIHVybCwg
Y29uc3QgU3RyaW5nJiBjb29raWVTdHJpbmcpCiB7Ci0gICAgT3B0aW9uYWw8dWludDY0X3Q+IGZy
YW1lSUQ7CisgICAgT3B0aW9uYWw8RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEOwogICAgIE9wdGlv
bmFsPFBhZ2VJZGVudGlmaWVyPiBwYWdlSUQ7CiAgICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1l
bnQuZnJhbWUoKSkgewogICAgICAgICBmcmFtZUlEID0gZnJhbWUtPmxvYWRlcigpLmNsaWVudCgp
LmZyYW1lSUQoKTsKQEAgLTg1LDcgKzg1LDcgQEAgYm9vbCBXZWJDb29raWVKYXI6OmNvb2tpZXNF
bmFibGVkKGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50JiBkb2N1bWVudCkgY29uc3QKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCi1zdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb3JlOjpTZWN1cmVDb29raWVz
QWNjZXNzZWQ+IFdlYkNvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29u
c3QgUEFMOjpTZXNzaW9uSUQmIHNlc3Npb25JRCwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25z
dCBXZWJDb3JlOjpTYW1lU2l0ZUluZm8mIHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIE9w
dGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlE
LCBXZWJDb3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29u
c3QKK3N0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvcmU6OlNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gV2Vi
Q29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBQQUw6OlNlc3Np
b25JRCYgc2Vzc2lvbklELCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlNh
bWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgT3B0aW9uYWw8RnJhbWVJ
ZGVudGlmaWVyPiBmcmFtZUlELCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlELCBXZWJD
b3JlOjpJbmNsdWRlU2VjdXJlQ29va2llcyBpbmNsdWRlU2VjdXJlQ29va2llcykgY29uc3QKIHsK
ICAgICBTdHJpbmcgY29va2llU3RyaW5nOwogICAgIGJvb2wgc2VjdXJlQ29va2llc0FjY2Vzc2Vk
ID0gZmFsc2U7CkBAIC05Niw3ICs5Niw3IEBAIHN0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvcmU6OlNl
Y3VyZUNvb2tpZXNBY2Nlc3NlZD4gV2ViQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhCiAKIGJv
b2wgV2ViQ29va2llSmFyOjpnZXRSYXdDb29raWVzKGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50JiBk
b2N1bWVudCwgY29uc3QgVVJMJiB1cmwsIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JiByYXdDb29r
aWVzKSBjb25zdAogewotICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlEOworICAgIE9wdGlv
bmFsPEZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRDsKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmll
cj4gcGFnZUlEOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCkpIHsKICAg
ICAgICAgZnJhbWVJRCA9IGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5mcmFtZUlEKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVKYXIuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5oCmluZGV4IDU1
OWJkMGU1MGJiZWMzNWZmYjI1NmI5MTJiN2I0NmRhOTk0YjJkNDguLjVkY2FjZGQ5NjhlNmE0YjA2
MjdjNzg3YzZkYTFhNTE1NDcxYmY4OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUphci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkNvb2tpZUphci5oCkBAIC0zNiw3ICszNiw3IEBAIHB1YmxpYzoKICAgICBT
dHJpbmcgY29va2llcyhXZWJDb3JlOjpEb2N1bWVudCYsIGNvbnN0IFVSTCYpIGNvbnN0IGZpbmFs
OwogICAgIHZvaWQgc2V0Q29va2llcyhXZWJDb3JlOjpEb2N1bWVudCYsIGNvbnN0IFVSTCYsIGNv
bnN0IFN0cmluZyYgY29va2llU3RyaW5nKSBmaW5hbDsKICAgICBib29sIGNvb2tpZXNFbmFibGVk
KGNvbnN0IFdlYkNvcmU6OkRvY3VtZW50JikgY29uc3QgZmluYWw7Ci0gICAgc3RkOjpwYWlyPFN0
cmluZywgV2ViQ29yZTo6U2VjdXJlQ29va2llc0FjY2Vzc2VkPiBjb29raWVSZXF1ZXN0SGVhZGVy
RmllbGRWYWx1ZShjb25zdCBQQUw6OlNlc3Npb25JRCYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwg
Y29uc3QgV2ViQ29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgT3B0aW9uYWw8dWludDY0
X3Q+IGZyYW1lSUQsIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgV2ViQ29yZTo6
SW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0IGZpbmFsOworICAgIHN0ZDo6cGFpcjxTdHJpbmcs
IFdlYkNvcmU6OlNlY3VyZUNvb2tpZXNBY2Nlc3NlZD4gY29va2llUmVxdWVzdEhlYWRlckZpZWxk
VmFsdWUoY29uc3QgUEFMOjpTZXNzaW9uSUQmLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0
IFdlYkNvcmU6OlNhbWVTaXRlSW5mbyYsIGNvbnN0IFVSTCYsIE9wdGlvbmFsPFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllcj4sIE9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgV2ViQ29y
ZTo6SW5jbHVkZVNlY3VyZUNvb2tpZXMpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgZ2V0UmF3Q29v
a2llcyhjb25zdCBXZWJDb3JlOjpEb2N1bWVudCYsIGNvbnN0IFVSTCYsIFZlY3RvcjxXZWJDb3Jl
OjpDb29raWU+JikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBkZWxldGVDb29raWUoY29uc3QgV2Vi
Q29yZTo6RG9jdW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUpIGZp
bmFsOwogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZy
YW1lLmNwcAppbmRleCA2MGNmZDhkMmExNzU0YTdhY2VkNThkNjFkZjE3YmU0YzE0MzEzNjk0Li5m
MGViZmVkYmIyZTk1M2FkMGZjMDdmOWY4MTY2MDlkYjk3MzViNjY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC05NSwxMiArOTUsNiBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogREVGSU5FX0RFQlVHX09OTFlfR0xPQkFMKFdURjo6
UmVmQ291bnRlZExlYWtDb3VudGVyLCB3ZWJGcmFtZUNvdW50ZXIsICgiV2ViRnJhbWUiKSk7CiAK
LXN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUZyYW1lSUQoKQotewotICAgIHN0YXRpYyB1aW50NjRf
dCB1bmlxdWVGcmFtZUlEID0gMTsKLSAgICByZXR1cm4gdW5pcXVlRnJhbWVJRCsrOwotfQotCiBz
dGF0aWMgdWludDY0X3QgZ2VuZXJhdGVMaXN0ZW5lcklEKCkKIHsKICAgICBzdGF0aWMgdWludDY0
X3QgdW5pcXVlTGlzdGVuZXJJRCA9IDE7CkBAIC0xNDgsNyArMTQyLDcgQEAgUmVmPFdlYkZyYW1l
PiBXZWJGcmFtZTo6Y3JlYXRlKHN0ZDo6dW5pcXVlX3B0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4g
ZnJhbWVMb2FkZXIKIAogV2ViRnJhbWU6OldlYkZyYW1lKHN0ZDo6dW5pcXVlX3B0cjxXZWJGcmFt
ZUxvYWRlckNsaWVudD4gZnJhbWVMb2FkZXJDbGllbnQpCiAgICAgOiBtX2ZyYW1lTG9hZGVyQ2xp
ZW50KFdURk1vdmUoZnJhbWVMb2FkZXJDbGllbnQpKQotICAgICwgbV9mcmFtZUlEKGdlbmVyYXRl
RnJhbWVJRCgpKQorICAgICwgbV9mcmFtZUlEKEZyYW1lSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkK
IHsKICAgICBtX2ZyYW1lTG9hZGVyQ2xpZW50LT5zZXRXZWJGcmFtZSh0aGlzKTsKICAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5hZGRXZWJGcmFtZShtX2ZyYW1lSUQsIHRoaXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKaW5kZXggNzFiMzhmNjFhYjE5
NTA1NWI0NDdlODdiZmZmN2U5NjQwNmRlZWE5Yy4uMWVjNTA3NTQyNTdmODY2ZWIyYWU4ZWM0Y2Iw
YzZkMWZmZTg2NTZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJG
cmFtZS5oCkBAIC04MCw3ICs4MCw3IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpGcmFtZSogY29y
ZUZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9jb3JlRnJhbWU7IH0KIAogICAgIEZyYW1lSW5mb0Rh
dGEgaW5mbygpIGNvbnN0OwotICAgIHVpbnQ2NF90IGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBt
X2ZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNvbnN0
IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQogCiAgICAgZW51bSBjbGFzcyBGb3JOYXZpZ2F0aW9uQWN0
aW9uIHsgTm8sIFllcyB9OwogICAgIHVpbnQ2NF90IHNldFVwUG9saWN5TGlzdGVuZXIoV2ViQ29y
ZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYs
IEZvck5hdmlnYXRpb25BY3Rpb24pOwpAQCAtMTg3LDcgKzE4Nyw3IEBAIHByaXZhdGU6CiAgICAg
c3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50PiBtX2ZyYW1lTG9hZGVyQ2xpZW50
OwogICAgIExvYWRMaXN0ZW5lciogbV9sb2FkTGlzdGVuZXIgeyBudWxscHRyIH07CiAgICAgCi0g
ICAgdWludDY0X3QgbV9mcmFtZUlEIHsgMCB9OworICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBtX2ZyYW1lSUQ7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHVpbnQ2NF90IG1f
Zmlyc3RMYXllclRyZWVUcmFuc2FjdGlvbklEQWZ0ZXJEaWRDb21taXRMb2FkIHsgMCB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKaW5k
ZXggZjI4ZGU1NjhlYzUxNWE1MWMzOGUwOWNhYWM0NGVhNzdmMjFkM2RiZS4uMWYwMTZhZWFkYTk5
NmY5NjNkZDVlNGVmYjk2ZDBjYWZlNjBhZDYxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCkBAIC0yMDksNyArMjA5LDcgQEAgdm9p
ZCBXZWJJbnNwZWN0b3I6OnNob3dSZXNvdXJjZXMoKQogICAgIH0pOwogfQogCi12b2lkIFdlYklu
c3BlY3Rvcjo6c2hvd01haW5SZXNvdXJjZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSWRlbnRpZmll
cikKK3ZvaWQgV2ViSW5zcGVjdG9yOjpzaG93TWFpblJlc291cmNlRm9yRnJhbWUoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSWRlbnRpZmllcikKIHsKICAgICBXZWJGcmFtZSogZnJhbWUg
PSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlkZW50aWZpZXIpOwogICAg
IGlmICghZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJJbnNwZWN0b3IuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYklu
c3BlY3Rvci5oCmluZGV4IDQ4OWU0MWMwNzRmYzM2M2IzODAxMTYxN2I0Yzc1ODI0ZGY1OWQ0N2Iu
LjI2Yjg5ZTUyMjc3OTc4ZDUzYTMzZmUzYzcxMTVlYWViYmIzODI5NTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oCkBAIC0yOCw2ICsyOCw3
IEBACiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2lu
Y2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlm
aWVyLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKQEAgLTYwLDcgKzYxLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2hvd0Nv
bnNvbGUoKTsKICAgICB2b2lkIHNob3dSZXNvdXJjZXMoKTsKIAotICAgIHZvaWQgc2hvd01haW5S
ZXNvdXJjZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSWRlbnRpZmllcik7CisgICAgdm9pZCBzaG93
TWFpblJlc291cmNlRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKIAogICAgIHZv
aWQgc2V0QXR0YWNoZWQoYm9vbCBhdHRhY2hlZCkgeyBtX2F0dGFjaGVkID0gYXR0YWNoZWQ7IH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVj
dG9yLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5z
cGVjdG9yLm1lc3NhZ2VzLmluCmluZGV4IGI2ZjNjMDFiMjQyMjI2YTIwZmI0OWM1NDIyMDNhNmRj
ZGUyMjFlNjkuLmRhZjc0YjVlNmIwNDMwYjZiMGNhM2JlMjYwZjVmZmFiZWNkNjU0ODkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0
b3IubWVzc2FnZXMuaW4KQEAgLTI5LDcgKzI5LDcgQEAgbWVzc2FnZXMgLT4gV2ViSW5zcGVjdG9y
IHsKICAgICBTaG93Q29uc29sZSgpCiAgICAgU2hvd1Jlc291cmNlcygpCiAKLSAgICBTaG93TWFp
blJlc291cmNlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJZGVudGlmaWVyKQorICAgIFNob3dNYWlu
UmVzb3VyY2VGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJZGVudGlmaWVy
KQogCiAgICAgT3BlbkluTmV3VGFiKFN0cmluZyB1cmwpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMTMzNjU3MGQ5M2FhNTExMDY5Nzg1NjEx
NzAyNjA4OTNiOGEzY2RiNC4uMDFmZjFhNGY0NTdlNTM5MzU2MTQzMjRhMDk0ODg0MDNhNzUwNTVh
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAg
LTE0OTcsNyArMTQ5Nyw3IEBAIHZvaWQgV2ViUGFnZTo6c3VzcGVuZEZvclByb2Nlc3NTd2FwKCkK
ICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFN1c3BlbmRBZnRlclByb2Nlc3NT
d2FwKCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OmxvYWRVUkxJbkZyYW1lKFVSTCYmIHVybCwgY29u
c3QgU3RyaW5nJiByZWZlcnJlciwgdWludDY0X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZTo6bG9h
ZFVSTEluRnJhbWUoVVJMJiYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCkKIHsKICAgICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtMTUwNiw3ICsx
NTA2LDcgQEAgdm9pZCBXZWJQYWdlOjpsb2FkVVJMSW5GcmFtZShVUkwmJiB1cmwsIGNvbnN0IFN0
cmluZyYgcmVmZXJyZXIsIHVpbnQ2NF90IGZyYW1lSUQKICAgICBmcmFtZS0+Y29yZUZyYW1lKCkt
PmxvYWRlcigpLmxvYWQoRnJhbWVMb2FkUmVxdWVzdCgqZnJhbWUtPmNvcmVGcmFtZSgpLCBSZXNv
dXJjZVJlcXVlc3QodXJsLCByZWZlcnJlciksIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6
OlNob3VsZE5vdEFsbG93KSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6bG9hZERhdGFJbkZyYW1lKElQ
Qzo6RGF0YVJlZmVyZW5jZSYmIGRhdGEsIFN0cmluZyYmIE1JTUVUeXBlLCBTdHJpbmcmJiBlbmNv
ZGluZ05hbWUsIFVSTCYmIGJhc2VVUkwsIHVpbnQ2NF90IGZyYW1lSUQpCit2b2lkIFdlYlBhZ2U6
OmxvYWREYXRhSW5GcmFtZShJUEM6OkRhdGFSZWZlcmVuY2UmJiBkYXRhLCBTdHJpbmcmJiBNSU1F
VHlwZSwgU3RyaW5nJiYgZW5jb2RpbmdOYW1lLCBVUkwmJiBiYXNlVVJMLCBGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCkKIHsKICAgICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtMTYxNCw3ICsxNjE0
LDcgQEAgdm9pZCBXZWJQYWdlOjpuYXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0ZWRDbGljayhj
b25zdCBTdHJpbmcmIHVybCwgSW50UG9pbnQgZG8KICAgICBtYWluRnJhbWUtPmxvYWRlcigpLnVy
bFNlbGVjdGVkKG1haW5GcmFtZURvY3VtZW50LT5jb21wbGV0ZVVSTCh1cmwpLCBlbXB0eVN0cmlu
ZygpLCBtb3VzZUV2ZW50LnB0cigpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExp
c3Q6Ok5vLCBTaG91bGRTZW5kUmVmZXJyZXI6Ok5ldmVyU2VuZFJlZmVycmVyLCBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6
c3RvcExvYWRpbmdGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQYWdlOjpzdG9wTG9h
ZGluZ0ZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIFdlYkZyYW1lKiBmcmFt
ZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlmICgh
ZnJhbWUpCkBAIC0zMjM0LDcgKzMyMzQsNyBAQCB2b2lkIFdlYlBhZ2U6OnNldFNlc3Npb25JRChQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgbV9wYWdlLT5zZXRTZXNzaW9uSUQoc2Vzc2lv
bklEKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24odWludDY0
X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCwgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgY29uc3QgRG93bmxvYWRJRCYgZG93bmxvYWRJRCwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVz
RGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMpCit2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVQb2xpY3lE
ZWNpc2lvbihGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCwgUG9s
aWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24s
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgRG93bmxvYWRJRCYgZG93bmxvYWRJRCwgT3B0
aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMpCiB7CiAgICAgV2Vi
RnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7
CiAgICAgaWYgKCFmcmFtZSkKQEAgLTMyNDIsNyArMzI0Miw3IEBAIHZvaWQgV2ViUGFnZTo6ZGlk
UmVjZWl2ZVBvbGljeURlY2lzaW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVy
SUQsIFBvCiAgICAgZnJhbWUtPmRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihsaXN0ZW5lcklELCBp
ZGVudGlmaWVyLCBwb2xpY3lBY3Rpb24sIG5hdmlnYXRpb25JRCwgZG93bmxvYWRJRCwgV1RGTW92
ZSh3ZWJzaXRlUG9saWNpZXMpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpjb250aW51ZVdpbGxTdWJt
aXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQpCit2b2lkIFdlYlBh
Z2U6OmNvbnRpbnVlV2lsbFN1Ym1pdEZvcm0oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2
NF90IGxpc3RlbmVySUQpCiB7CiAgICAgV2ViRnJhbWUqIGZyYW1lID0gV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCFmcmFtZSkKQEAgLTMzODQsNyAr
MzM4NCw3IEBAIHZvaWQgV2ViUGFnZTo6cnVuSmF2YVNjcmlwdEluTWFpbkZyYW1lU2NyaXB0V29y
bGQoY29uc3QgU3RyaW5nJiBzY3JpcHQsIGJvb2wgZm9yCiAgICAgcnVuSmF2YVNjcmlwdChtYWlu
V2ViRnJhbWUoKSwgc2NyaXB0LCBmb3JjZVVzZXJHZXN0dXJlLCB3b3JsZE5hbWUsIGNhbGxiYWNr
SUQpOwogfQogCi12b2lkIFdlYlBhZ2U6OnJ1bkphdmFTY3JpcHRJbkZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIENhbGxi
YWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6cnVuSmF2YVNjcmlwdEluRnJhbWUoRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgc2NyaXB0LCBib29sIGZvcmNlVXNl
ckdlc3R1cmUsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBXZWJGcmFtZSogZnJhbWUg
PSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBBU1NFUlQo
bWFpbldlYkZyYW1lKCkgIT0gZnJhbWUpOwpAQCAtMzQ0NSw3ICszNDQ1LDcgQEAgdm9pZCBXZWJQ
YWdlOjpnZXRTZWxlY3Rpb25PckNvbnRlbnRzQXNTdHJpbmcoQ2FsbGJhY2tJRCBjYWxsYmFja0lE
KQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3RyaW5nQ2FsbGJhY2socmVzdWx0
U3RyaW5nLCBjYWxsYmFja0lEKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6Z2V0U291cmNlRm9yRnJh
bWUodWludDY0X3QgZnJhbWVJRCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBXZWJQYWdl
OjpnZXRTb3VyY2VGb3JGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ2FsbGJhY2tJRCBj
YWxsYmFja0lEKQogewogICAgIFN0cmluZyByZXN1bHRTdHJpbmc7CiAgICAgaWYgKFdlYkZyYW1l
KiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpKQpAQCAt
MzQ1NCw3ICszNDU0LDcgQEAgdm9pZCBXZWJQYWdlOjpnZXRTb3VyY2VGb3JGcmFtZSh1aW50NjRf
dCBmcmFtZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgc2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpTdHJpbmdDYWxsYmFjayhyZXN1bHRTdHJpbmcsIGNhbGxiYWNrSUQpKTsKIH0K
IAotdm9pZCBXZWJQYWdlOjpnZXRNYWluUmVzb3VyY2VEYXRhT2ZGcmFtZSh1aW50NjRfdCBmcmFt
ZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCit2b2lkIFdlYlBhZ2U6OmdldE1haW5SZXNvdXJj
ZURhdGFPZkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDYWxsYmFja0lEIGNhbGxiYWNr
SUQpCiB7CiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyOwogICAgIGlmIChXZWJGcmFt
ZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSkgewpA
QCAtMzQ4NSw3ICszNDg1LDcgQEAgc3RhdGljIFJlZlB0cjxTaGFyZWRCdWZmZXI+IHJlc291cmNl
RGF0YUZvckZyYW1lKEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiByZXNvdXIKICAgICByZXR1cm4g
JnN1YnJlc291cmNlLT5kYXRhKCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6Z2V0UmVzb3VyY2VEYXRh
RnJvbUZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VVUkxTdHJp
bmcsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6Z2V0UmVzb3VyY2VEYXRh
RnJvbUZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHJlc291cmNl
VVJMU3RyaW5nLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4gYnVmZmVyOwogICAgIGlmIChhdXRvKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLndlYkZyYW1lKGZyYW1lSUQpKSB7CkBAIC0zNDk5LDcgKzM0OTksNyBAQCB2b2lkIFdlYlBh
Z2U6OmdldFJlc291cmNlRGF0YUZyb21GcmFtZSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJp
bmcmIHJlc291cmNlVQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGF0YUNhbGxi
YWNrKGRhdGFSZWZlcmVuY2UsIGNhbGxiYWNrSUQpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpnZXRX
ZWJBcmNoaXZlT2ZGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQp
Cit2b2lkIFdlYlBhZ2U6OmdldFdlYkFyY2hpdmVPZkZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAg
UmV0YWluUHRyPENGRGF0YVJlZj4gZGF0YTsKQEAgLTM4MDIsMTMgKzM4MDIsMTMgQEAgV2ViRnVs
bFNjcmVlbk1hbmFnZXIqIFdlYlBhZ2U6OmZ1bGxTY3JlZW5NYW5hZ2VyKCkKIH0KICNlbmRpZgog
Ci12b2lkIFdlYlBhZ2U6OmFkZENvbnNvbGVNZXNzYWdlKHVpbnQ2NF90IGZyYW1lSUQsIE1lc3Nh
Z2VTb3VyY2UgbWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsIG1lc3NhZ2VMZXZlbCwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCB1aW50NjRfdCByZXF1ZXN0SUQpCit2b2lkIFdlYlBhZ2U6OmFkZENv
bnNvbGVNZXNzYWdlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBNZXNzYWdlU291cmNlIG1lc3Nh
Z2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCBtZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgdWludDY0X3QgcmVxdWVzdElEKQogewogICAgIGlmIChhdXRvKiBmcmFtZSA9IFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpKQogICAgICAgICBmcmFtZS0+YWRkQ29u
c29sZU1lc3NhZ2UobWVzc2FnZVNvdXJjZSwgbWVzc2FnZUxldmVsLCBtZXNzYWdlLCByZXF1ZXN0
SUQpOwogfQogCi12b2lkIFdlYlBhZ2U6OnNlbmRDU1BWaW9sYXRpb25SZXBvcnQodWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgVVJMJiByZXBvcnRVUkwsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiBy
ZXBvcnREYXRhKQordm9pZCBXZWJQYWdlOjpzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgSVBDOjpGb3JtRGF0YVJlZmVy
ZW5jZSYmIHJlcG9ydERhdGEpCiB7CiAgICAgYXV0byByZXBvcnQgPSByZXBvcnREYXRhLnRha2VE
YXRhKCk7CiAgICAgaWYgKCFyZXBvcnQpCkBAIC0zODE3LDcgKzM4MTcsNyBAQCB2b2lkIFdlYlBh
Z2U6OnNlbmRDU1BWaW9sYXRpb25SZXBvcnQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVVJMJiBy
ZXBvcnRVUkwsIElQQwogICAgICAgICBQaW5nTG9hZGVyOjpzZW5kVmlvbGF0aW9uUmVwb3J0KCpm
cmFtZS0+Y29yZUZyYW1lKCksIHJlcG9ydFVSTCwgcmVwb3J0LnJlbGVhc2VOb25OdWxsKCksIFZp
b2xhdGlvblJlcG9ydFR5cGU6OkNvbnRlbnRTZWN1cml0eVBvbGljeSk7CiB9CiAKLXZvaWQgV2Vi
UGFnZTo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQodWludDY0X3QgZnJhbWVJ
RCwgU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDo6SW5pdCYmIGV2ZW50SW5pdCkKK3ZvaWQg
V2ViUGFnZTo6ZW5xdWV1ZVNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQ6OkluaXQmJiBldmVudElu
aXQpCiB7CiAgICAgYXV0byogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFt
ZShmcmFtZUlEKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtNDY4MCw3ICs0NjgwLDcgQEAgdm9pZCBX
ZWJQYWdlOjplZmZlY3RpdmVBcHBlYXJhbmNlRGlkQ2hhbmdlKGJvb2wgdXNlRGFya0FwcGVhcmFu
Y2UsIGJvb2wgdXNlRWxldmEKIH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2U6OmJlZ2luUHJpbnRp
bmcodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8pCit2b2lkIFdl
YlBhZ2U6OmJlZ2luUHJpbnRpbmcoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50
SW5mbyYgcHJpbnRJbmZvKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlmICghZnJhbWUpCkBAIC00NzI0LDcg
KzQ3MjQsNyBAQCB2b2lkIFdlYlBhZ2U6OmVuZFByaW50aW5nKCkKICAgICB9CiB9CiAKLXZvaWQg
V2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
UHJpbnRJbmZvJiBwcmludEluZm8sIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFn
ZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0
IFByaW50SW5mbyYgcHJpbnRJbmZvLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgVmVj
dG9yPEludFJlY3Q+IHJlc3VsdFBhZ2VSZWN0czsKICAgICBkb3VibGUgcmVzdWx0VG90YWxTY2Fs
ZUZhY3RvckZvclByaW50aW5nID0gMTsKQEAgLTQ3MzMsNyArNDczMyw3IEBAIHZvaWQgV2ViUGFn
ZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJ
bmZvJiBwcmludEluCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDb21wdXRlZFBh
Z2VzQ2FsbGJhY2socmVzdWx0UGFnZVJlY3RzLCByZXN1bHRUb3RhbFNjYWxlRmFjdG9yRm9yUHJp
bnRpbmcsIGNvbXB1dGVkUGFnZU1hcmdpbiwgY2FsbGJhY2tJRCkpOwogfQogCi12b2lkIFdlYlBh
Z2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nSW1wbCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQ
cmludEluZm8mIHByaW50SW5mbywgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+JiByZXN1bHRQYWdl
UmVjdHMsIGRvdWJsZSYgcmVzdWx0VG90YWxTY2FsZUZhY3RvckZvclByaW50aW5nLCBGbG9hdEJv
eEV4dGVudCYgY29tcHV0ZWRQYWdlTWFyZ2luKQordm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNG
b3JQcmludGluZ0ltcGwoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYg
cHJpbnRJbmZvLCBWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4mIHJlc3VsdFBhZ2VSZWN0cywgZG91
YmxlJiByZXN1bHRUb3RhbFNjYWxlRmFjdG9yRm9yUHJpbnRpbmcsIEZsb2F0Qm94RXh0ZW50JiBj
b21wdXRlZFBhZ2VNYXJnaW4pCiB7CiAgICAgQVNTRVJUKHJlc3VsdFBhZ2VSZWN0cy5pc0VtcHR5
KCkpOwogCkBAIC00NzU2LDcgKzQ3NTYsNyBAQCB2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0Zv
clByaW50aW5nSW1wbCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaQogfQog
CiAjaWYgUExBVEZPUk0oQ09DT0EpCi12b2lkIFdlYlBhZ2U6OmRyYXdSZWN0VG9JbWFnZSh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgY29uc3QgSW50UmVjdCYg
cmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaW1hZ2VTaXplLCBDYWxsYmFja0lEIGNhbGxi
YWNrSUQpCit2b2lkIFdlYlBhZ2U6OmRyYXdSZWN0VG9JbWFnZShGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QsIGNv
bnN0IFdlYkNvcmU6OkludFNpemUmIGltYWdlU2l6ZSwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQog
ewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1l
KGZyYW1lSUQpOwogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBmcmFtZSA/IGZyYW1lLT5jb3JlRnJh
bWUoKSA6IDA7CkBAIC00ODA2LDE0ICs0ODA2LDE0IEBAIHZvaWQgV2ViUGFnZTo6ZHJhd1JlY3RU
b0ltYWdlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCBjb25z
CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpJbWFnZUNhbGxiYWNrKGhhbmRsZSwg
Y2FsbGJhY2tJRCkpOwogfQogCi12b2lkIFdlYlBhZ2U6OmRyYXdQYWdlc1RvUERGKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCB1aW50MzJfdCBmaXJzdCwgdWlu
dDMyX3QgY291bnQsIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKK3ZvaWQgV2ViUGFnZTo6ZHJhd1Bh
Z2VzVG9QREYoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJ
bmZvLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIENhbGxiYWNrSUQgY2FsbGJhY2tJ
RCkKIHsKICAgICBSZXRhaW5QdHI8Q0ZNdXRhYmxlRGF0YVJlZj4gcGRmUGFnZURhdGE7CiAgICAg
ZHJhd1BhZ2VzVG9QREZJbXBsKGZyYW1lSUQsIHByaW50SW5mbywgZmlyc3QsIGNvdW50LCBwZGZQ
YWdlRGF0YSk7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEYXRhQ2FsbGJhY2so
eyBDRkRhdGFHZXRCeXRlUHRyKHBkZlBhZ2VEYXRhLmdldCgpKSwgc3RhdGljX2Nhc3Q8c2l6ZV90
PihDRkRhdGFHZXRMZW5ndGgocGRmUGFnZURhdGEuZ2V0KCkpKSB9LCBjYWxsYmFja0lEKSk7CiB9
CiAKLXZvaWQgV2ViUGFnZTo6ZHJhd1BhZ2VzVG9QREZJbXBsKHVpbnQ2NF90IGZyYW1lSUQsIGNv
bnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQs
IFJldGFpblB0cjxDRk11dGFibGVEYXRhUmVmPiYgcGRmUGFnZURhdGEpCit2b2lkIFdlYlBhZ2U6
OmRyYXdQYWdlc1RvUERGSW1wbChGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJ
bmZvJiBwcmludEluZm8sIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgUmV0YWluUHRy
PENGTXV0YWJsZURhdGFSZWY+JiBwZGZQYWdlRGF0YSkKIHsKICAgICBXZWJGcmFtZSogZnJhbWUg
PSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBGcmFtZSog
Y29yZUZyYW1lID0gZnJhbWUgPyBmcmFtZS0+Y29yZUZyYW1lKCkgOiAwOwpAQCAtNDg2NCw3ICs0
ODY0LDcgQEAgdm9pZCBXZWJQYWdlOjpkcmF3UGFnZXNUb1BERkltcGwodWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIHUKIH0KIAogI2VsaWYgUExBVEZPUk0oR1RL
KQotdm9pZCBXZWJQYWdlOjpkcmF3UGFnZXNGb3JQcmludGluZyh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBQcmludEluZm8mIHByaW50SW5mbywgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQordm9pZCBX
ZWJQYWdlOjpkcmF3UGFnZXNGb3JQcmludGluZyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29u
c3QgUHJpbnRJbmZvJiBwcmludEluZm8sIENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIHsKICAgICBi
ZWdpblByaW50aW5nKGZyYW1lSUQsIHByaW50SW5mbyk7CiAgICAgaWYgKG1fcHJpbnRDb250ZXh0
ICYmIG1fcHJpbnRPcGVyYXRpb24pIHsKQEAgLTY1MDIsNyArNjUwMiw3IEBAIHZvaWQgV2ViUGFn
ZTo6c2V0SXNTdXNwZW5kZWQoYm9vbCBzdXNwZW5kZWQpCiAgICAgc3VzcGVuZEZvclByb2Nlc3NT
d2FwKCk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6ZnJhbWVCZWNhbWVSZW1vdGUodWludDY0X3QgZnJh
bWVJRCwgR2xvYmFsRnJhbWVJZGVudGlmaWVyJiYgcmVtb3RlRnJhbWVJZGVudGlmaWVyLCBHbG9i
YWxXaW5kb3dJZGVudGlmaWVyJiYgcmVtb3RlV2luZG93SWRlbnRpZmllcikKK3ZvaWQgV2ViUGFn
ZTo6ZnJhbWVCZWNhbWVSZW1vdGUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEdsb2JhbEZyYW1l
SWRlbnRpZmllciYmIHJlbW90ZUZyYW1lSWRlbnRpZmllciwgR2xvYmFsV2luZG93SWRlbnRpZmll
ciYmIHJlbW90ZVdpbmRvd0lkZW50aWZpZXIpCiB7CiAgICAgUmVmUHRyPFdlYkZyYW1lPiBmcmFt
ZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlmICgh
ZnJhbWUpCkBAIC02NTM0LDEyICs2NTM0LDEyIEBAIHZvaWQgV2ViUGFnZTo6ZnJhbWVCZWNhbWVS
ZW1vdGUodWludDY0X3QgZnJhbWVJRCwgR2xvYmFsRnJhbWVJZGVudGlmaWVyJiYgcmVtb3RlCiB9
CiAKICNpZiBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQotdm9pZCBXZWJQYWdlOjpo
YXNTdG9yYWdlQWNjZXNzKFJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFJlZ2lz
dHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2U6
Omhhc1N0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgUmVn
aXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
KCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6Okhhc1N0b3JhZ2VBY2Nlc3Moc2Vzc2lvbklEKCksIFdURk1vdmUo
c3ViRnJhbWVEb21haW4pLCBXVEZNb3ZlKHRvcEZyYW1lRG9tYWluKSwgZnJhbWVJRCwgbV9wYWdl
SUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6cmVx
dWVzdFN0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwgUmVn
aXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJhbWVJRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCwgV2ViQ29y
ZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgV2ViUGFnZTo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiBzdWJG
cmFtZURvbWFpbiwgUmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U3RvcmFnZUFj
Y2Vzc1dhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93bik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJl
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlJlcXVlc3RTdG9yYWdl
QWNjZXNzKHNlc3Npb25JRCgpLCBXVEZNb3ZlKHN1YkZyYW1lRG9tYWluKSwgV1RGTW92ZSh0b3BG
cmFtZURvbWFpbiksIGZyYW1lSUQsIG1fcGFnZUlEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwogfQpAQCAtNjU1NSw3ICs2NTU1LDcgQEAgdm9pZCBXZWJQYWdlOjp3YXNMb2FkZWRXaXRo
RGF0YVRyYW5zZmVyRnJvbVByZXZhbGVudFJlc291cmNlKCkKICNlbmRpZgogCiAjaWYgRU5BQkxF
KERFVklDRV9PUklFTlRBVElPTikKLXZvaWQgV2ViUGFnZTo6c2hvdWxkQWxsb3dEZXZpY2VPcmll
bnRhdGlvbkFuZE1vdGlvbkFjY2Vzcyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmJiBvcmlnaW4sIGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQordm9pZCBXZWJQYWdlOjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5k
TW90aW9uQWNjZXNzKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmJiBvcmlnaW4sIGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKGZyYW1lSUQsIFdU
Rk1vdmUob3JpZ2luKSwgbWF5UHJvbXB0KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGYzY2Ey
OWRhMTdhZjZmYTc4MGI4ZWRiYjI1MmIzNDFhNWU4YTQ5NDAuLmUxZTVlMzkwMDI4MjI0YjYzY2Fi
ZTRkMjZmMWIxZjI1ZmJiZThiMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKQEAgLTM0Niw5ICszNDYsOSBAQCBwdWJsaWM6CiAgICAgV2ViRnVsbFNjcmVl
bk1hbmFnZXIqIGZ1bGxTY3JlZW5NYW5hZ2VyKCk7CiAjZW5kaWYKIAotICAgIHZvaWQgYWRkQ29u
c29sZU1lc3NhZ2UodWludDY0X3QgZnJhbWVJRCwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVs
LCBjb25zdCBTdHJpbmcmLCB1aW50NjRfdCByZXF1ZXN0SUQgPSAwKTsKLSAgICB2b2lkIHNlbmRD
U1BWaW9sYXRpb25SZXBvcnQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgVVJMJiByZXBvcnRVUkws
IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJik7Ci0gICAgdm9pZCBlbnF1ZXVlU2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb25FdmVudCh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eVBvbGlj
eVZpb2xhdGlvbkV2ZW50OjpJbml0JiYpOworICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0
IFN0cmluZyYsIHVpbnQ2NF90IHJlcXVlc3RJRCA9IDApOworICAgIHZvaWQgc2VuZENTUFZpb2xh
dGlvblJlcG9ydChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFVSTCYgcmVwb3J0VVJM
LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYpOworICAgIHZvaWQgZW5xdWV1ZVNlY3VyaXR5UG9s
aWN5VmlvbGF0aW9uRXZlbnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpTZWN1
cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0JiYpOwogCiAgICAgLy8gLS0gQ2FsbGVkIGJ5
IHRoZSBEcmF3aW5nQXJlYS4KICAgICAvLyBGSVhNRTogV2UgY291bGQgZ2VuZXJpY2l6ZSB0aGVz
ZSBpbnRvIGEgRHJhd2luZ0FyZWEgY2xpZW50IGludGVyZmFjZS4gV291bGQgdGhhdCBiZSBiZW5l
ZmljaWFsPwpAQCAtNTIyLDcgKzUyMiw3IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpDb2xvciB1
bmRlcmxheUNvbG9yKCkgY29uc3QgeyByZXR1cm4gbV91bmRlcmxheUNvbG9yOyB9CiAKICAgICB2
b2lkIHN0b3BMb2FkaW5nKCk7Ci0gICAgdm9pZCBzdG9wTG9hZGluZ0ZyYW1lKHVpbnQ2NF90IGZy
YW1lSUQpOworICAgIHZvaWQgc3RvcExvYWRpbmdGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIpOwogICAgIGJvb2wgZGVmZXJzTG9hZGluZygpIGNvbnN0OwogICAgIHZvaWQgc2V0RGVmZXJz
TG9hZGluZyhib29sIGRlZmVyTG9hZGluZyk7CiAKQEAgLTc2OSw3ICs3NjksNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBjb25maXJtQ29tcG9zaXRpb24oY29uc3QgU3RyaW5nJiB0ZXh0LCBpbnQ2NF90
IHNlbGVjdGlvblN0YXJ0LCBpbnQ2NF90IHNlbGVjdGlvbkxlbmd0aCk7CiAgICAgdm9pZCBjYW5j
ZWxDb21wb3NpdGlvbigpOwogCi0gICAgdm9pZCBjb2xsYXBzZVNlbGVjdGlvbkluRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCk7CisgICAgdm9pZCBjb2xsYXBzZVNlbGVjdGlvbkluRnJhbWUoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyKTsKICAgICB2b2lkIHNob3dFbW9qaVBpY2tlcihXZWJDb3JlOjpG
cmFtZSYpOwogCiAgICAgdm9pZCBnZXRDZW50ZXJGb3Jab29tR2VzdHVyZShjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgY2VudGVySW5WaWV3Q29vcmRpbmF0ZXMsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoV2ViQ29yZTo6SW50UG9pbnQmJik+JiYpOwpAQCAtODYyLDIzICs4NjIsMjMgQEAgcHVibGlj
OgogICAgIFdlYkNvcmU6OkRyYWdTb3VyY2VBY3Rpb24gYWxsb3dlZERyYWdTb3VyY2VBY3Rpb25z
KCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd2VkRHJhZ1NvdXJjZUFjdGlvbnM7IH0KICNlbmRpZgog
Ci0gICAgdm9pZCBiZWdpblByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5m
byYpOworICAgIHZvaWQgYmVnaW5QcmludGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNv
bnN0IFByaW50SW5mbyYpOwogICAgIHZvaWQgZW5kUHJpbnRpbmcoKTsKLSAgICB2b2lkIGNvbXB1
dGVQYWdlc0ZvclByaW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIENh
bGxiYWNrSUQpOwotICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdJbXBsKHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiYgcGFn
ZVJlY3RzLCBkb3VibGUmIHRvdGFsU2NhbGVGYWN0b3IsIFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50
JiBjb21wdXRlZE1hcmdpbik7CisgICAgdm9pZCBjb21wdXRlUGFnZXNGb3JQcmludGluZyhXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYsIENhbGxiYWNrSUQpOworICAg
IHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdJbXBsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgY29uc3QgUHJpbnRJbmZvJiwgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+JiBwYWdlUmVjdHMs
IGRvdWJsZSYgdG90YWxTY2FsZUZhY3RvciwgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIGNvbXB1
dGVkTWFyZ2luKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHZvaWQgZHJhd1JlY3RUb0lt
YWdlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBk
cmF3UGFnZXNUb1BERih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mLCB1aW50MzJf
dCBmaXJzdCwgdWludDMyX3QgY291bnQsIENhbGxiYWNrSUQpOwotICAgIHZvaWQgZHJhd1BhZ2Vz
VG9QREZJbXBsKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIHVpbnQzMl90IGZp
cnN0LCB1aW50MzJfdCBjb3VudCwgUmV0YWluUHRyPENGTXV0YWJsZURhdGFSZWY+JiBwZGZQYWdl
RGF0YSk7CisgICAgdm9pZCBkcmF3UmVjdFRvSW1hZ2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBjb25zdCBQcmludEluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYsIENhbGxiYWNrSUQpOworICAgIHZvaWQgZHJhd1BhZ2VzVG9QREYoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQcmludEluZm8mLCB1aW50MzJfdCBmaXJzdCwgdWlu
dDMyX3QgY291bnQsIENhbGxiYWNrSUQpOworICAgIHZvaWQgZHJhd1BhZ2VzVG9QREZJbXBsKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgdWludDMyX3QgZmlyc3Qs
IHVpbnQzMl90IGNvdW50LCBSZXRhaW5QdHI8Q0ZNdXRhYmxlRGF0YVJlZj4mIHBkZlBhZ2VEYXRh
KTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB2b2lkIGNvbXB1dGVQ
YWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50
SW5mbyYsIENhbGxiYWNrSUQsIE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21wdXRlUGFnZXNGb3JQcmlu
dGluZ0FuZERyYXdUb1BERjo6RGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgY29tcHV0ZVBhZ2Vz
Rm9yUHJpbnRpbmdBbmREcmF3VG9QREYoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBQ
cmludEluZm8mLCBDYWxsYmFja0lELCBNZXNzYWdlczo6V2ViUGFnZTo6Q29tcHV0ZVBhZ2VzRm9y
UHJpbnRpbmdBbmREcmF3VG9QREY6OkRlbGF5ZWRSZXBseSYmKTsKICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oR1RLKQotICAgIHZvaWQgZHJhd1BhZ2VzRm9yUHJpbnRpbmcodWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgUHJpbnRJbmZvJiwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBkcmF3UGFnZXNGb3JQ
cmludGluZyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50SW5mbyYsIENhbGxi
YWNrSUQpOwogICAgIHZvaWQgZGlkRmluaXNoUHJpbnRPcGVyYXRpb24oY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciYsIENhbGxiYWNrSUQpOwogI2VuZGlmCiAKQEAgLTExMzEsMTMgKzExMzEs
MTMgQEAgcHVibGljOgogICAgIHZvaWQgZmx1c2hQZW5kaW5nRWRpdG9yU3RhdGVVcGRhdGUoKTsK
IAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCi0gICAgdm9pZCBoYXNTdG9y
YWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVEb21haW4sIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIHVpbnQ2NF90IGZyYW1l
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotICAgIHZvaWQgcmVxdWVzdFN0
b3JhZ2VBY2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBzdWJGcmFtZURvbWFpbiwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiB0b3BGcmFtZURvbWFpbiwgdWludDY0X3QgZnJh
bWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNjZXNzV2FzR3Jh
bnRlZCwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duKT4mJik7CisgICAgdm9p
ZCBoYXNTdG9yYWdlQWNjZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgc3ViRnJhbWVE
b21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgdG9wRnJhbWVEb21haW4sIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Cisg
ICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYm
IHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHRvcEZyYW1lRG9t
YWluLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vi
Q29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQsIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9t
cHRXYXNTaG93bik+JiYpOwogICAgIHZvaWQgd2FzTG9hZGVkV2l0aERhdGFUcmFuc2ZlckZyb21Q
cmV2YWxlbnRSZXNvdXJjZSgpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQotICAgIHZvaWQgc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vz
cyh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgYm9vbCBt
YXlQcm9tcHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRp
b25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+JiYpOworICAgIHZvaWQgc2hvdWxkQWxsb3dEZXZp
Y2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBib29sIG1heVByb21wdCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0
YXRlKT4mJik7CiAjZW5kaWYKIAogICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQoV2ViQ29yZTo6U2hh
cmVEYXRhV2l0aFBhcnNlZFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2Fs
bGJhY2spOwpAQCAtMTM1Niw4ICsxMzU2LDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgYm9vbCBz
Y3JvbGwoV2ViQ29yZTo6UGFnZSosIFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbiwgV2ViQ29yZTo6
U2Nyb2xsR3JhbnVsYXJpdHkpOwogICAgIHN0YXRpYyBib29sIGxvZ2ljYWxTY3JvbGwoV2ViQ29y
ZTo6UGFnZSosIFdlYkNvcmU6OlNjcm9sbExvZ2ljYWxEaXJlY3Rpb24sIFdlYkNvcmU6OlNjcm9s
bEdyYW51bGFyaXR5KTsKIAotICAgIHZvaWQgbG9hZFVSTEluRnJhbWUoVVJMJiYsIGNvbnN0IFN0
cmluZyYgcmVmZXJyZXIsIHVpbnQ2NF90IGZyYW1lSUQpOwotICAgIHZvaWQgbG9hZERhdGFJbkZy
YW1lKElQQzo6RGF0YVJlZmVyZW5jZSYmLCBTdHJpbmcmJiBNSU1FVHlwZSwgU3RyaW5nJiYgZW5j
b2RpbmdOYW1lLCBVUkwmJiBiYXNlVVJMLCB1aW50NjRfdCBmcmFtZUlEKTsKKyAgICB2b2lkIGxv
YWRVUkxJbkZyYW1lKFVSTCYmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyLCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIpOworICAgIHZvaWQgbG9hZERhdGFJbkZyYW1lKElQQzo6RGF0YVJlZmVyZW5j
ZSYmLCBTdHJpbmcmJiBNSU1FVHlwZSwgU3RyaW5nJiYgZW5jb2RpbmdOYW1lLCBVUkwmJiBiYXNl
VVJMLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwogCiAgICAgZW51bSBjbGFzcyBXYXNSZXN0
b3JlZEJ5QVBJUmVxdWVzdCB7IE5vLCBZZXMgfTsKICAgICB2b2lkIHJlc3RvcmVTZXNzaW9uSW50
ZXJuYWwoY29uc3QgVmVjdG9yPEJhY2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZT4mLCBXYXNSZXN0b3Jl
ZEJ5QVBJUmVxdWVzdCwgV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6Ok92ZXJ3cml0ZUV4aXN0aW5n
SXRlbSk7CkBAIC0xMzg5LDE2ICsxMzg5LDE2IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1IVE1M
KQogICAgIHZvaWQgZ2V0Q29udGVudHNBc01IVE1MRGF0YShDYWxsYmFja0lEKTsKICNlbmRpZgot
ICAgIHZvaWQgZ2V0TWFpblJlc291cmNlRGF0YU9mRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ2Fs
bGJhY2tJRCk7Ci0gICAgdm9pZCBnZXRSZXNvdXJjZURhdGFGcm9tRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgY29uc3QgU3RyaW5nJiByZXNvdXJjZVVSTCwgQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBn
ZXRNYWluUmVzb3VyY2VEYXRhT2ZGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENhbGxi
YWNrSUQpOworICAgIHZvaWQgZ2V0UmVzb3VyY2VEYXRhRnJvbUZyYW1lKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiByZXNvdXJjZVVSTCwgQ2FsbGJhY2tJRCk7CiAgICAg
dm9pZCBnZXRSZW5kZXJUcmVlRXh0ZXJuYWxSZXByZXNlbnRhdGlvbihDYWxsYmFja0lEKTsKICAg
ICB2b2lkIGdldFNlbGVjdGlvbk9yQ29udGVudHNBc1N0cmluZyhDYWxsYmFja0lEKTsKICAgICB2
b2lkIGdldFNlbGVjdGlvbkFzV2ViQXJjaGl2ZURhdGEoQ2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBn
ZXRTb3VyY2VGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDYWxsYmFja0lEKTsKLSAgICB2b2lk
IGdldFdlYkFyY2hpdmVPZkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENhbGxiYWNrSUQpOworICAg
IHZvaWQgZ2V0U291cmNlRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBDYWxsYmFj
a0lEKTsKKyAgICB2b2lkIGdldFdlYkFyY2hpdmVPZkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciwgQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBydW5KYXZhU2NyaXB0KFdlYkZyYW1lKiwgY29u
c3QgU3RyaW5nJiwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBjb25zdCBPcHRpb25hbDxTdHJpbmc+
JiB3b3JsZE5hbWUsIENhbGxiYWNrSUQpOwogICAgIHZvaWQgcnVuSmF2YVNjcmlwdEluTWFpbkZy
YW1lU2NyaXB0V29ybGQoY29uc3QgU3RyaW5nJiwgYm9vbCBmb3JjZVVzZXJHZXN0dXJlLCBjb25z
dCBPcHRpb25hbDxTdHJpbmc+JiB3b3JsZE5hbWUsIENhbGxiYWNrSUQpOwotICAgIHZvaWQgcnVu
SmF2YVNjcmlwdEluRnJhbWUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiwgYm9vbCBm
b3JjZVVzZXJHZXN0dXJlLCBDYWxsYmFja0lEKTsKKyAgICB2b2lkIHJ1bkphdmFTY3JpcHRJbkZy
YW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiwgYm9vbCBmb3JjZVVz
ZXJHZXN0dXJlLCBDYWxsYmFja0lEKTsKICAgICB2b2lkIGZvcmNlUmVwYWludChDYWxsYmFja0lE
KTsKICAgICB2b2lkIHRha2VTbmFwc2hvdChXZWJDb3JlOjpJbnRSZWN0IHNuYXBzaG90UmVjdCwg
V2ViQ29yZTo6SW50U2l6ZSBiaXRtYXBTaXplLCB1aW50MzJfdCBvcHRpb25zLCBDYWxsYmFja0lE
KTsKIApAQCAtMTQxMiw4ICsxNDEyLDggQEAgcHJpdmF0ZToKICAgICBib29sIHBhcmVudFByb2Nl
c3NIYXNTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAj
ZW5kaWYKIAotICAgIHZvaWQgZGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwg
V2ViQ29yZTo6UG9saWN5QWN0aW9uLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IERvd25s
b2FkSUQmLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmKTsKLSAgICB2b2lkIGNvbnRp
bnVlV2lsbFN1Ym1pdEZvcm0odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCk7
CisgICAgdm9pZCBkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIs
IFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBEb3du
bG9hZElEJiwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJik7CisgICAgdm9pZCBjb250
aW51ZVdpbGxTdWJtaXRGb3JtKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgdWludDY0X3QgbGlz
dGVuZXJJRCk7CiAgICAgdm9pZCBzZXRVc2VyQWdlbnQoY29uc3QgU3RyaW5nJik7CiAgICAgdm9p
ZCBzZXRDdXN0b21UZXh0RW5jb2RpbmdOYW1lKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgc3Vz
cGVuZEFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zKCk7CkBAIC0xNDMxLDcgKzE0MzEsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgd2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYgd2luZG93RnJhbWVJblVuZmxpcHBlZFNjcmVlbkNvb3JkaW5hdGVz
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIGFjY2Vzc2liaWxpdHlWaWV3Q29vcmRpbmF0ZXMp
OwogCiAgICAgUmV0YWluUHRyPFBERkRvY3VtZW50PiBwZGZEb2N1bWVudEZvclByaW50aW5nRnJh
bWUoV2ViQ29yZTo6RnJhbWUqKTsKLSAgICB2b2lkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nUERG
RG9jdW1lbnQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiwgVmVjdG9yPFdlYkNv
cmU6OkludFJlY3Q+JiByZXN1bHRQYWdlUmVjdHMpOworICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9y
UHJpbnRpbmdQREZEb2N1bWVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFByaW50
SW5mbyYsIFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiYgcmVzdWx0UGFnZVJlY3RzKTsKICAgICB2
b2lkIGRyYXdQREZEb2N1bWVudChDR0NvbnRleHRSZWYsIFBERkRvY3VtZW50ICosIGNvbnN0IFBy
aW50SW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKICAgICB2b2lkIGRyYXdQYWdlc1Rv
UERGRnJvbVBERkRvY3VtZW50KENHQ29udGV4dFJlZiwgUERGRG9jdW1lbnQgKiwgY29uc3QgUHJp
bnRJbmZvJiwgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50KTsKICNlbmRpZgpAQCAtMTU4
NCw3ICsxNTg0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHZvaWNlc0RpZENoYW5nZSgpOwogI2Vu
ZGlmCiAKLSAgICB2b2lkIGZyYW1lQmVjYW1lUmVtb3RlKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNv
cmU6Okdsb2JhbEZyYW1lSWRlbnRpZmllciYmIHJlbW90ZUZyYW1lSWRlbnRpZmllciwgV2ViQ29y
ZTo6R2xvYmFsV2luZG93SWRlbnRpZmllciYmIHJlbW90ZVdpbmRvd0lkZW50aWZpZXIpOworICAg
IHZvaWQgZnJhbWVCZWNhbWVSZW1vdGUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3Jl
OjpHbG9iYWxGcmFtZUlkZW50aWZpZXImJiByZW1vdGVGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6
Okdsb2JhbFdpbmRvd0lkZW50aWZpZXImJiByZW1vdGVXaW5kb3dJZGVudGlmaWVyKTsKIAogICAg
IHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVIYW5kbGVyKHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgc2NoZW1lKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggYTUyZTI1MWQyNWRhNmQ4ODcxYjI3MmQ3
MTQyMjkxMzI5YzVmMjQzOC4uYmE3ZjY0YmZkY2JjY2Y4YWIyYzMzZjZjMjc4YjQ2ZDE1MTg4OGYw
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCkBAIC0yNyw5ICsyNyw5IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5
UmVjZWl2ZXIgewogCiAgICAgU2V0QmFja2dyb3VuZENvbG9yKE9wdGlvbmFsPFdlYkNvcmU6OkNv
bG9yPiBjb2xvcikKIAotICAgIEFkZENvbnNvbGVNZXNzYWdlKHVpbnQ2NF90IGZyYW1lSUQsIGVu
dW06dWludDhfdCBKU0M6Ok1lc3NhZ2VTb3VyY2UgbWVzc2FnZVNvdXJjZSwgZW51bTp1aW50OF90
IEpTQzo6TWVzc2FnZUxldmVsIG1lc3NhZ2VMZXZlbCwgU3RyaW5nIG1lc3NhZ2UsIHVpbnQ2NF90
IHJlcXVlc3RJRCkKLSAgICBTZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KHVpbnQ2NF90IGZyYW1lSUQs
IFVSTCByZXBvcnRVUkwsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVwb3J0RGF0YSkKLSAgICBF
bnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudCh1aW50NjRfdCBmcmFtZUlELCBXZWJD
b3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50OjpJbml0IGV2ZW50SW5pdCkKKyAgICBB
ZGRDb25zb2xlTWVzc2FnZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgZW51bTp1
aW50OF90IEpTQzo6TWVzc2FnZVNvdXJjZSBtZXNzYWdlU291cmNlLCBlbnVtOnVpbnQ4X3QgSlND
OjpNZXNzYWdlTGV2ZWwgbWVzc2FnZUxldmVsLCBTdHJpbmcgbWVzc2FnZSwgdWludDY0X3QgcmVx
dWVzdElEKQorICAgIFNlbmRDU1BWaW9sYXRpb25SZXBvcnQoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIFVSTCByZXBvcnRVUkwsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVwb3J0
RGF0YSkKKyAgICBFbnF1ZXVlU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudChXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25F
dmVudDo6SW5pdCBldmVudEluaXQpCiAKICAgICBUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3Nh
Z2VzV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkoKSAtPiAoYm9vbCBoYW5kbGVkKSBTeW5jaHJvbm91
cwogCkBAIC0xNjIsOCArMTYyLDggQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChl
bnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBHb1Rv
QmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgc3RydWN0IFdlYkNvcmU6OkJh
Y2tGb3J3YXJkSXRlbUlkZW50aWZpZXIgYmFja0ZvcndhcmRJdGVtSUQsIGVudW06dWludDhfdCBX
ZWJDb3JlOjpGcmFtZUxvYWRUeXBlIGJhY2tGb3J3YXJkVHlwZSwgZW51bTpib29sIFdlYkNvcmU6
OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCBzaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQs
IE9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0YT4gd2Vic2l0ZVBvbGljaWVzKQog
ICAgIFRyeVJlc3RvcmVTY3JvbGxQb3NpdGlvbigpCiAKLSAgICBMb2FkVVJMSW5GcmFtZShVUkwg
dXJsLCBTdHJpbmcgcmVmZXJyZXIsIHVpbnQ2NF90IGZyYW1lSUQpCi0gICAgTG9hZERhdGFJbkZy
YW1lKElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhLCBTdHJpbmcgTUlNRVR5cGUsIFN0cmluZyBlbmNv
ZGluZ05hbWUsIFVSTCBiYXNlVVJMLCB1aW50NjRfdCBmcmFtZUlEKQorICAgIExvYWRVUkxJbkZy
YW1lKFVSTCB1cmwsIFN0cmluZyByZWZlcnJlciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQpCisgICAgTG9hZERhdGFJbkZyYW1lKElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhLCBTdHJp
bmcgTUlNRVR5cGUsIFN0cmluZyBlbmNvZGluZ05hbWUsIFVSTCBiYXNlVVJMLCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKICAgICBMb2FkUmVxdWVzdChzdHJ1Y3QgV2ViS2l0OjpM
b2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycykKICAgICBMb2FkRGF0YShzdHJ1Y3QgV2ViS2l0
OjpMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycykKICAgICBMb2FkQWx0ZXJuYXRlSFRNTChz
dHJ1Y3QgV2ViS2l0OjpMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycykKQEAgLTE3Myw3ICsx
NzMsNyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJL
aXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIFJlbG9hZCh1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIHVpbnQzMl90IHJlbG9hZE9wdGlvbnMsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpCiAgICAgU3RvcExvYWRpbmcoKQogCi0g
ICAgU3RvcExvYWRpbmdGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQorICAgIFN0b3BMb2FkaW5nRnJh
bWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpCiAgICAgCiAgICAgUmVzdG9yZVNl
c3Npb24oVmVjdG9yPFdlYktpdDo6QmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlPiBpdGVtU3RhdGVz
KQogICAgIFVwZGF0ZUJhY2tGb3J3YXJkTGlzdEZvclJlYXR0YWNoKFZlY3RvcjxXZWJLaXQ6OkJh
Y2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZT4gaXRlbVN0YXRlcykKQEAgLTE4Miw4ICsxODIsOCBAQCBH
ZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRo
ZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIERpZFJlbW92ZUJhY2tGb3J3YXJkSXRlbShzdHJ1
Y3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciBiYWNrRm9yd2FyZEl0ZW1JRCkK
IAogICAgIFVwZGF0ZVdlYnNpdGVQb2xpY2llcyhzdHJ1Y3QgV2ViS2l0OjpXZWJzaXRlUG9saWNp
ZXNEYXRhIHdlYnNpdGVQb2xpY2llcykKLSAgICBEaWRSZWNlaXZlUG9saWN5RGVjaXNpb24odWlu
dDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyIHBvbGljeUNoZWNrSWRlbnRpZmllciwgZW51bTp1aW50OF90IFdlYkNvcmU6OlBv
bGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgV2ViS2l0OjpE
b3dubG9hZElEIGRvd25sb2FkSUQsIE9wdGlvbmFsPFdlYktpdDo6V2Vic2l0ZVBvbGljaWVzRGF0
YT4gd2Vic2l0ZVBvbGljaWVzKQotICAgIENvbnRpbnVlV2lsbFN1Ym1pdEZvcm0odWludDY0X3Qg
ZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCkKKyAgICBEaWRSZWNlaXZlUG9saWN5RGVjaXNp
b24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQs
IFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBwb2xpY3lDaGVja0lkZW50aWZpZXIsIGVu
dW06dWludDhfdCBXZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBPcHRpb25hbDxXZWJL
aXQ6OldlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQb2xpY2llcykKKyAgICBDb250aW51ZVdp
bGxTdWJtaXRGb3JtKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCB1aW50NjRfdCBs
aXN0ZW5lcklEKQogCiAgICAgQ2xlYXJTZWxlY3Rpb24oKQogICAgIFJlc3RvcmVTZWxlY3Rpb25J
bkZvY3VzZWRFZGl0YWJsZUVsZW1lbnQoKQpAQCAtMTk2LDE1ICsxOTYsMTUgQEAgR2VuZXJhdGVT
eW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0
aW5nQ29tbWFuZFR5cGUKICNpZiBFTkFCTEUoTUhUTUwpCiAgICAgR2V0Q29udGVudHNBc01IVE1M
RGF0YShXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICNlbmRpZgotICAgIEdldE1haW5S
ZXNvdXJjZURhdGFPZkZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6Q2FsbGJhY2tJRCBj
YWxsYmFja0lEKQotICAgIEdldFJlc291cmNlRGF0YUZyb21GcmFtZSh1aW50NjRfdCBmcmFtZUlE
LCBTdHJpbmcgcmVzb3VyY2VVUkwsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAg
IEdldE1haW5SZXNvdXJjZURhdGFPZkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBHZXRSZXNvdXJjZURhdGFG
cm9tRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0cmluZyByZXNvdXJj
ZVVSTCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAgR2V0UmVuZGVyVHJlZUV4
dGVybmFsUmVwcmVzZW50YXRpb24oV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiAgICAg
R2V0U2VsZWN0aW9uT3JDb250ZW50c0FzU3RyaW5nKFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFj
a0lEKQogICAgIEdldFNlbGVjdGlvbkFzV2ViQXJjaGl2ZURhdGEoV2ViS2l0OjpDYWxsYmFja0lE
IGNhbGxiYWNrSUQpCi0gICAgR2V0U291cmNlRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2Vi
S2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCi0gICAgR2V0V2ViQXJjaGl2ZU9mRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpCisgICAgR2V0U291
cmNlRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFdlYktpdDo6Q2Fs
bGJhY2tJRCBjYWxsYmFja0lEKQorICAgIEdldFdlYkFyY2hpdmVPZkZyYW1lKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICAg
ICBSdW5KYXZhU2NyaXB0SW5NYWluRnJhbWVTY3JpcHRXb3JsZChTdHJpbmcgc2NyaXB0LCBib29s
IGZvcmNlVXNlckdlc3R1cmUsIE9wdGlvbmFsPFN0cmluZz4gd29ybGROYW1lLCBXZWJLaXQ6OkNh
bGxiYWNrSUQgY2FsbGJhY2tJRCkKLSAgICBSdW5KYXZhU2NyaXB0SW5GcmFtZSh1aW50NjRfdCBm
cmFtZUlELCBTdHJpbmcgc2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1cmUsIFdlYktpdDo6Q2Fs
bGJhY2tJRCBjYWxsYmFja0lEKQorICAgIFJ1bkphdmFTY3JpcHRJbkZyYW1lKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgc2NyaXB0LCBib29sIGZvcmNlVXNlckdlc3R1
cmUsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQogICAgIEZvcmNlUmVwYWludChXZWJL
aXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKIAogICAgIFNlbGVjdEFsbCgpCkBAIC0zODAsMTgg
KzM4MCwxOCBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBX
ZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIERpZFJlY2VpdmVOb3RpZmlj
YXRpb25QZXJtaXNzaW9uRGVjaXNpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQsIGJvb2wgYWxs
b3dlZCkKIAogICAgICMgUHJpbnRpbmcuCi0gICAgQmVnaW5QcmludGluZyh1aW50NjRfdCBmcmFt
ZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvKQorICAgIEJlZ2luUHJpbnRp
bmcoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50
SW5mbyBwcmludEluZm8pCiAgICAgRW5kUHJpbnRpbmcoKQotICAgIENvbXB1dGVQYWdlc0ZvclBy
aW50aW5nKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludElu
Zm8sIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIENvbXB1dGVQYWdlc0ZvclBy
aW50aW5nKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQ
cmludEluZm8gcHJpbnRJbmZvLCBXZWJLaXQ6OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKICNpZiBQ
TEFURk9STShDT0NPQSkKLSAgICBEcmF3UmVjdFRvSW1hZ2UodWludDY0X3QgZnJhbWVJRCwgc3Ry
dWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2ViQ29yZTo6SW50UmVjdCByZWN0LCBX
ZWJDb3JlOjpJbnRTaXplIGltYWdlU2l6ZSwgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQp
Ci0gICAgRHJhd1BhZ2VzVG9QREYodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJp
bnRJbmZvIHByaW50SW5mbywgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50LCBXZWJLaXQ6
OkNhbGxiYWNrSUQgY2FsbGJhY2tJRCkKKyAgICBEcmF3UmVjdFRvSW1hZ2UoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8s
IFdlYkNvcmU6OkludFJlY3QgcmVjdCwgV2ViQ29yZTo6SW50U2l6ZSBpbWFnZVNpemUsIFdlYktp
dDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKQorICAgIERyYXdQYWdlc1RvUERGKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZv
LCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxs
YmFja0lEKQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgQ29tcHV0ZVBhZ2VzRm9yUHJp
bnRpbmdBbmREcmF3VG9QREYodWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6UHJpbnRJ
bmZvIHByaW50SW5mbywgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxiYWNrSUQpIC0+ICh1aW50MzJf
dCBwYWdlQ291bnQpIFN5bmNocm9ub3VzCisgICAgQ29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmRE
cmF3VG9QREYoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6
OlByaW50SW5mbyBwcmludEluZm8sIFdlYktpdDo6Q2FsbGJhY2tJRCBjYWxsYmFja0lEKSAtPiAo
dWludDMyX3QgcGFnZUNvdW50KSBTeW5jaHJvbm91cwogI2VuZGlmCiAjZW5kaWYKICNpZiBQTEFU
Rk9STShHVEspCi0gICAgRHJhd1BhZ2VzRm9yUHJpbnRpbmcodWludDY0X3QgZnJhbWVJRCwgc3Ry
dWN0IFdlYktpdDo6UHJpbnRJbmZvIHByaW50SW5mbywgV2ViS2l0OjpDYWxsYmFja0lEIGNhbGxi
YWNrSUQpCisgICAgRHJhd1BhZ2VzRm9yUHJpbnRpbmcoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIFdlYktpdDo6Q2Fs
bGJhY2tJRCBjYWxsYmFja0lEKQogI2VuZGlmCiAKICAgICAjIE1lZGlhCkBAIC00MTMsNyArNDEz
LDcgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0
OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBDb25maXJtQ29tcG9zaXRpb24oU3Ry
aW5nIHRleHQsIGludDY0X3Qgc2VsZWN0aW9uU3RhcnQsIGludDY0X3Qgc2VsZWN0aW9uTGVuZ3Ro
KQogICAgIENhbmNlbENvbXBvc2l0aW9uKCkKIAotICAgIENvbGxhcHNlU2VsZWN0aW9uSW5GcmFt
ZSh1aW50NjRfdCBmcmFtZUlEKQorICAgIENvbGxhcHNlU2VsZWN0aW9uSW5GcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIAogICAgIEdldENlbnRlckZvclpvb21HZXN0dXJl
KFdlYkNvcmU6OkludFBvaW50IGNlbnRlckluVmlld0Nvb3JkaW5hdGVzKSAtPiAoV2ViQ29yZTo6
SW50UG9pbnQgY2VudGVyKSBTeW5jaHJvbm91cwogI2VuZGlmCkBAIC01MzYsNyArNTM2LDcgQEAg
R2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50
aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBEaWRSZWNlaXZlUGFzc3dvcmRGb3JRdWlja0xv
b2tEb2N1bWVudChTdHJpbmcgcGFzc3dvcmQpCiAjZW5kaWYKIAotICAgIEZyYW1lQmVjYW1lUmVt
b3RlKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpHbG9iYWxGcmFtZUlkZW50aWZp
ZXIgcmVtb3RlRnJhbWVJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6R2xvYmFsV2luZG93SWRl
bnRpZmllciByZW1vdGVXaW5kb3dJZGVudGlmaWVyKQorICAgIEZyYW1lQmVjYW1lUmVtb3RlKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6R2xvYmFsRnJh
bWVJZGVudGlmaWVyIHJlbW90ZUZyYW1lSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Okdsb2Jh
bFdpbmRvd0lkZW50aWZpZXIgcmVtb3RlV2luZG93SWRlbnRpZmllcikKIAogICAgIFJlZ2lzdGVy
VVJMU2NoZW1lSGFuZGxlcih1aW50NjRfdCBpZGVudGlmaWVyLCBTdHJpbmcgc2NoZW1lKQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUd0
ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUd0ay5j
cHAKaW5kZXggYzk4MmQwYjc2MjFlYzMwYmFiNDdkZWEyODc2ZTk3NjAwYWRiMzg4MS4uMzY4OGUx
NWVhOTBlODdkYjljY2RlNzE5YmY2Y2U1NmIzMTgyYjhkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VHdGsuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNwcApAQCAtMTgzLDcgKzE4
Myw3IEBAIHZvaWQgV2ViUGFnZTo6c2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpCiAg
ICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRJbnB1dE1ldGhvZFN0YXRlKGVuYWJs
ZWQpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpjb2xsYXBzZVNlbGVjdGlvbkluRnJhbWUodWludDY0
X3QgZnJhbWVJRCkKK3ZvaWQgV2ViUGFnZTo6Y29sbGFwc2VTZWxlY3Rpb25JbkZyYW1lKEZyYW1l
SWRlbnRpZmllciBmcmFtZUlEKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlmICghZnJhbWUgfHwgIWZyYW1l
LT5jb3JlRnJhbWUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
aW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggNmY2Zjg2NTRhZWMzYzY3ZWNmZTU5YmM4ZjE2ZTY1NjY4
ZGJhOTczYy4uMTgxYzVhYzJkZjZjZGY0MzM1MzdhMjRhMWZhOWFhZWI2YmJmZjJjZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0K
QEAgLTU1MSw3ICs1NTEsNyBAQCB2b2lkIFdlYlBhZ2U6OmFjY2VwdHNGaXJzdE1vdXNlKGludCwg
Y29uc3QgV2ViS2l0OjpXZWJNb3VzZUV2ZW50JiwgQ29tcGxldGlvbkhhbgogICAgIGNvbXBsZXRp
b25IYW5kbGVyKGZhbHNlKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmlu
dGluZ1BERkRvY3VtZW50KHVpbnQ2NF90LCBjb25zdCBQcmludEluZm8mLCBWZWN0b3I8SW50UmVj
dD4mKQordm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZ1BERkRvY3VtZW50KFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgVmVjdG9yPEludFJlY3Q+
JikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpAQCAtMzcwNSw3ICszNzA1LDcgQEAgdm9p
ZCBXZWJQYWdlOjpkaXNwYXRjaEFzeW5jaHJvbm91c1RvdWNoRXZlbnRzKGNvbnN0IFZlY3RvcjxX
ZWJUb3VjaEV2ZW50LCAxPiYgcXUKIH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2U6OmNvbXB1dGVQ
YWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50
SW5mbyYgcHJpbnRJbmZvLCBDYWxsYmFja0lEIGNhbGxiYWNrSUQsIE1lc3NhZ2VzOjpXZWJQYWdl
OjpDb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERjo6RGVsYXllZFJlcGx5JiYgcmVw
bHkpCit2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5m
bywgQ2FsbGJhY2tJRCBjYWxsYmFja0lELCBNZXNzYWdlczo6V2ViUGFnZTo6Q29tcHV0ZVBhZ2Vz
Rm9yUHJpbnRpbmdBbmREcmF3VG9QREY6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQogewogICAgIGlm
IChwcmludEluZm8uc25hcHNob3RGaXJzdFBhZ2UpIHsKICAgICAgICAgcmVwbHkoMSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5t
bSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCmlu
ZGV4IDQzMWRmYTE3YWNhMDViNjBlZmU5YWUwNDAzYTQwODgwZTI4MThkODAuLmZlMjQxN2IwYTdk
NTgzNjNjNTRiYjg2ZGE1Nzg5OGQxMWZiZTM1MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCkBAIC02NzAsNyArNjcwLDcgQEAg
dm9pZCBXZWJQYWdlOjp1cGRhdGVIZWFkZXJBbmRGb290ZXJMYXllcnNGb3JEZXZpY2VTY2FsZUNo
YW5nZShmbG9hdCBzY2FsZUZhY3RvcikKICAgICAgICAgbV9mb290ZXJCYW5uZXItPmRpZENoYW5n
ZURldmljZVNjYWxlRmFjdG9yKHNjYWxlRmFjdG9yKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpjb21w
dXRlUGFnZXNGb3JQcmludGluZ1BERkRvY3VtZW50KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFBy
aW50SW5mbyYgcHJpbnRJbmZvLCBWZWN0b3I8SW50UmVjdD4mIHJlc3VsdFBhZ2VSZWN0cykKK3Zv
aWQgV2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdQREZEb2N1bWVudChXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiBwcmludEluZm8sIFZlY3Rv
cjxJbnRSZWN0PiYgcmVzdWx0UGFnZVJlY3RzKQogewogICAgIEFTU0VSVChyZXN1bHRQYWdlUmVj
dHMuaXNFbXB0eSgpKTsKICAgICBXZWJGcmFtZSogZnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS53ZWJGcmFtZShmcmFtZUlEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcAppbmRleCA3YjQ4YTBmNzI0NjJmZmU1N2ZlOTIwNmNiY2MwY2YzMzFjMzIxMWUxLi40ZWI2
ZGVmMmRkMTBjYjhhYjM5MGZhMDIzN2U3YjkwMjQzNTVlOTcyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC03NjgsMTcgKzc2OCwxNyBAQCB2b2lkIFdlYlByb2Nl
c3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpE
ZWNvZGVyJiBkZQogICAgIExPR19FUlJPUigiVW5oYW5kbGVkIHdlYiBwcm9jZXNzIG1lc3NhZ2Ug
JyVzOiVzJyIsIGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpLnRvU3RyaW5nKCkuZGF0YSgp
LCBkZWNvZGVyLm1lc3NhZ2VOYW1lKCkudG9TdHJpbmcoKS5kYXRhKCkpOwogfQogCi1XZWJGcmFt
ZSogV2ViUHJvY2Vzczo6d2ViRnJhbWUodWludDY0X3QgZnJhbWVJRCkgY29uc3QKK1dlYkZyYW1l
KiBXZWJQcm9jZXNzOjp3ZWJGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkgY29uc3QKIHsK
ICAgICByZXR1cm4gbV9mcmFtZU1hcC5nZXQoZnJhbWVJRCk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vz
czo6YWRkV2ViRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2ViRnJhbWUqIGZyYW1lKQordm9pZCBX
ZWJQcm9jZXNzOjphZGRXZWJGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgV2ViRnJhbWUq
IGZyYW1lKQogewogICAgIG1fZnJhbWVNYXAuc2V0KGZyYW1lSUQsIGZyYW1lKTsKIH0KIAotdm9p
ZCBXZWJQcm9jZXNzOjpyZW1vdmVXZWJGcmFtZSh1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQ
cm9jZXNzOjpyZW1vdmVXZWJGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkKIHsKICAgICBt
X2ZyYW1lTWFwLnJlbW92ZShmcmFtZUlEKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmgKaW5kZXggZDRjMDFiYWIxZjkzZGE5MDg1YjBmMjE5NGNkMzI3ZDQ3MTg2NTBiMi4uM2Ni
MmM0OTY5NDk5ODg3YjMyYjUzYjNhNjZkMGJiZjY4NWEzMjE4ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiV2ViU1FMaXRl
RGF0YWJhc2VUcmFja2VyLmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0Q2hhbm5lbE1hbmFnZXIuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL0FjdGl2aXR5U3RhdGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zy
YW1lSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWluLmg+CiAjaWYgUExBVEZPUk0oTUFDKQpA
QCAtMTcyLDkgKzE3Myw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgZnVsbEtleWJvYXJkQWNjZXNz
RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZDsgfQog
Ci0gICAgV2ViRnJhbWUqIHdlYkZyYW1lKHVpbnQ2NF90KSBjb25zdDsKLSAgICB2b2lkIGFkZFdl
YkZyYW1lKHVpbnQ2NF90LCBXZWJGcmFtZSopOwotICAgIHZvaWQgcmVtb3ZlV2ViRnJhbWUodWlu
dDY0X3QpOworICAgIFdlYkZyYW1lKiB3ZWJGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIp
IGNvbnN0OworICAgIHZvaWQgYWRkV2ViRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBX
ZWJGcmFtZSopOworICAgIHZvaWQgcmVtb3ZlV2ViRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyKTsKIAogICAgIFdlYlBhZ2VHcm91cFByb3h5KiB3ZWJQYWdlR3JvdXAoV2ViQ29yZTo6UGFn
ZUdyb3VwKik7CiAgICAgV2ViUGFnZUdyb3VwUHJveHkqIHdlYlBhZ2VHcm91cCh1aW50NjRfdCBw
YWdlR3JvdXBJRCk7CkBAIC00ODksNyArNDkwLDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9m
dWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkIHsgZmFsc2UgfTsKIAotICAgIEhhc2hNYXA8dWludDY0
X3QsIFdlYkZyYW1lKj4gbV9mcmFtZU1hcDsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgV2ViRnJhbWUqPiBtX2ZyYW1lTWFwOwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPGNv
bnN0IGNoYXIqLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViUHJvY2Vzc1N1cHBsZW1lbnQ+LCBQdHJIYXNo
PGNvbnN0IGNoYXIqPj4gV2ViUHJvY2Vzc1N1cHBsZW1lbnRNYXA7CiAgICAgV2ViUHJvY2Vzc1N1
cHBsZW1lbnRNYXAgbV9zdXBwbGVtZW50czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4
IGIxNDAzZDA1NjM5M2IzOTdkMDE3ZDA5M2RlNWZlMDRjZGNjYThjY2QuLmQ2MDYzMGZlMGNhYWRm
NDNhOGI3NDQ5ZDJkNTQ5MGVkYjA4ZTZhYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApA
QCAtNjQsNyArNjQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaGFzV2ViVmlldygpIGNvbnN0IGZp
bmFsOyAvLyBtYWlubHkgZm9yIGFzc2VydGlvbnMKIAogICAgIE9wdGlvbmFsPFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyPiBwYWdlSUQoKSBjb25zdCBmaW5hbDsKLSAgICBPcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCgpIGNvbnN0IGZpbmFsOworICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcj4gZnJhbWVJRCgpIGNvbnN0IGZpbmFsOwogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCgpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBtYWtlUmVwcmVzZW50YXRpb24oV2ViQ29y
ZTo6RG9jdW1lbnRMb2FkZXIqKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KaW5k
ZXggM2RkNTBlN2IzYjljZjk5MzM0OWM5YWJiNGNiNDk3ODM3ZWVjMzUzZS4uYjdhNjVlOTkzNGZm
ZjA4ODBiNzU2OGNhMDBlOTYyZTAxNWFlNDIxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW0KQEAgLTIxNCw3ICsyMTQsNyBAQCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OnBhZ2VJRCgpIGNvbnN0CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0K
IAotT3B0aW9uYWw8dWludDY0X3Q+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUlEKCkgY29u
c3QKK09wdGlvbmFsPEZyYW1lSWRlbnRpZmllcj4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZyYW1l
SUQoKSBjb25zdAogewogICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKaW5kZXggOGUzNTRiNzFjZGZkMmE1ZjliOGIwMTFhMDMyOWQ3NDI0YmM5
MGJiYy4uZWUzOGE0Mzc0YzRhNDIxN2IyNzU5MGZmNDFlNTFlMzk4NjFiYWM0ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTI3LDcgKzEyNyw3IEBAIE9wdGlvbmFsPFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyPiBXZWJGcmFtZUxvYWRlckNsaWVudDo6cGFnZUlEKCkgY29uc3QK
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQogCi1PcHRpb25hbDx1aW50NjRfdD4gV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmZyYW1lSUQoKSBjb25zdAorT3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyPiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZnJhbWVJRCgpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDY5
NzVmZDhhM2Y2YWE1ODc5NWU4NjY5ZjY4NjZjY2ZjNTIxMGQ4NDEuLmM3N2UyMmVkODkyNmMwNWI0
YTlkNzM3MGUwNTdkNGZiZTIzMzljZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAt
NTIsNyArNTIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNwYXRjaERpZEZhaWxUb1N0YXJ0UGx1
Z2luKGNvbnN0IFdlYkNvcmU6OlBsdWdpblZpZXcmKSBjb25zdDsKIAogICAgIE9wdGlvbmFsPFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSUQoKSBjb25zdCBmaW5hbDsKLSAgICBPcHRpb25h
bDx1aW50NjRfdD4gZnJhbWVJRCgpIGNvbnN0IGZpbmFsOworICAgIE9wdGlvbmFsPFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCgpIGNvbnN0IGZpbmFsOwogICAgIFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCgpIGNvbnN0IGZpbmFsOwogCiAgICAgYm9vbCBoYXNXZWJWaWV3KCkgY29u
c3Qgb3ZlcnJpZGU7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>